diff --git a/doxy/html/_abstract_texture_8cpp.html b/doxy/html/_abstract_texture_8cpp.html
new file mode 100644
index 0000000000000000000000000000000000000000..4a0960be451bd5aa9e39d08859a8a41cc94f876e
--- /dev/null
+++ b/doxy/html/_abstract_texture_8cpp.html
@@ -0,0 +1,77 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: C:/Users/kosmx/Documents/GitHub/2d-game/AbstractTexture.cpp File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">C:/Users/kosmx/Documents/GitHub/2d-game/AbstractTexture.cpp File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p><a href="_abstract_texture_8cpp_source.html">Go to the source code of this file.</a></p>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/_abstract_texture_8cpp_source.html b/doxy/html/_abstract_texture_8cpp_source.html
new file mode 100644
index 0000000000000000000000000000000000000000..ae7382c9d6c88d29f366cefc492767bd117dc16a
--- /dev/null
+++ b/doxy/html/_abstract_texture_8cpp_source.html
@@ -0,0 +1,76 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: C:/Users/kosmx/Documents/GitHub/2d-game/AbstractTexture.cpp Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="headertitle">
+<div class="title">C:/Users/kosmx/Documents/GitHub/2d-game/AbstractTexture.cpp</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="_abstract_texture_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;include <span class="stringliteral">&quot;AbstractTexture.h&quot;</span></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/_character_entity_8cpp.html b/doxy/html/_character_entity_8cpp.html
new file mode 100644
index 0000000000000000000000000000000000000000..56b416d35967bce23cd25e7d1a9c53fc56e5330a
--- /dev/null
+++ b/doxy/html/_character_entity_8cpp.html
@@ -0,0 +1,87 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: C:/Users/kosmx/Documents/GitHub/2d-game/CharacterEntity.cpp File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#namespaces">Namespaces</a>  </div>
+  <div class="headertitle">
+<div class="title">C:/Users/kosmx/Documents/GitHub/2d-game/CharacterEntity.cpp File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &quot;<a class="el" href="_character_entity_8h_source.html">CharacterEntity.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="_weapon_8h_source.html">Weapon.h</a>&quot;</code><br />
+</div>
+<p><a href="_character_entity_8cpp_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
+Namespaces</h2></td></tr>
+<tr class="memitem:namespaceentities"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceentities.html">entities</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/_character_entity_8cpp_source.html b/doxy/html/_character_entity_8cpp_source.html
new file mode 100644
index 0000000000000000000000000000000000000000..88f0f69705452e1ae3661bcd7381c08c333c422e
--- /dev/null
+++ b/doxy/html/_character_entity_8cpp_source.html
@@ -0,0 +1,125 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: C:/Users/kosmx/Documents/GitHub/2d-game/CharacterEntity.cpp Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="headertitle">
+<div class="title">C:/Users/kosmx/Documents/GitHub/2d-game/CharacterEntity.cpp</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="_character_entity_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_character_entity_8h.html">CharacterEntity.h</a>&quot;</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160; </div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_weapon_8h.html">Weapon.h</a>&quot;</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160; </div>
+<div class="line"><a name="l00005"></a><span class="lineno"><a class="line" href="namespaceentities.html">    5</a></span>&#160;<span class="keyword">namespace </span><a class="code" href="namespaceentities.html">entities</a> {</div>
+<div class="line"><a name="l00006"></a><span class="lineno"><a class="line" href="classentities_1_1_character_entity.html#a7926bfbac4481203c1bd8920fcb2c432">    6</a></span>&#160;    std::shared_ptr&lt;weapons::Weapon&gt; <a class="code" href="classentities_1_1_character_entity.html#a7926bfbac4481203c1bd8920fcb2c432">CharacterEntity::getWeapon</a>()</div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;    {</div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;        <span class="keywordflow">return</span> std::shared_ptr&lt;weapons::Weapon&gt;();</div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;    }</div>
+<div class="line"><a name="l00010"></a><span class="lineno"><a class="line" href="classentities_1_1_character_entity.html#afdae03f49fd5d47d0837ed660e37038f">   10</a></span>&#160;    <a class="code" href="classrender_1_1_i_texture.html">render::ITexture</a>&amp; <a class="code" href="classentities_1_1_character_entity.html#afdae03f49fd5d47d0837ed660e37038f">CharacterEntity::getTexture</a>()</div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;    {</div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="classentities_1_1_character_entity.html#a295a77ffb22dd1a7b30164ab04ecf400">texture</a>;</div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;    }</div>
+<div class="line"><a name="l00014"></a><span class="lineno"><a class="line" href="classentities_1_1_character_entity.html#aa7c43269834b07ef51355a874be373e8">   14</a></span>&#160;    <a class="code" href="classentities_1_1_character_entity.html#aa7c43269834b07ef51355a874be373e8">CharacterEntity::CharacterEntity</a>(<a class="code" href="classrender_1_1_i_texture.html">render::ITexture</a>&amp; tex, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; pos)</div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;        : <a class="code" href="classentities_1_1_living_entity.html">LivingEntity</a>(pos), texture(tex) {}</div>
+<div class="line"><a name="l00016"></a><span class="lineno"><a class="line" href="classentities_1_1_character_entity.html#ae7cdddc6dca655e7bf8c2f48424c5208">   16</a></span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classentities_1_1_character_entity.html#ae7cdddc6dca655e7bf8c2f48424c5208">CharacterEntity::tick</a>(<a class="code" href="class_game_client.html">GameClient</a>&amp; client, <span class="keywordtype">float</span> deltaT, std::shared_ptr&lt;Entity&gt;&amp; shared_this)</div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;    {</div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;        <a class="code" href="classentities_1_1_living_entity.html#af13cb8c3fabd2960746e21cd7dabe4d6">LivingEntity::tick</a>(client, deltaT, shared_this);</div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;        <span class="keywordflow">if</span>(this-&gt;<a class="code" href="classentities_1_1_character_entity.html#a7926bfbac4481203c1bd8920fcb2c432">getWeapon</a>()){</div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;            this-&gt;<a class="code" href="classentities_1_1_character_entity.html#a7926bfbac4481203c1bd8920fcb2c432">getWeapon</a>()-&gt;setPos(this-&gt;<a class="code" href="classentities_1_1_entity.html#a799a692b988248dd23d207b95e7fe2b7">getPos</a>() + (this-&gt;<a class="code" href="classentities_1_1_living_entity.html#ad8b574e93d1fa34cdd119be6f0391acb">speed</a> != <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>(0, 0) ? this-&gt;<a class="code" href="classentities_1_1_living_entity.html#ad8b574e93d1fa34cdd119be6f0391acb">speed</a>.<a class="code" href="structolc_1_1v2d__generic.html#a9c62f12d51859a5a487c5a0c2d00b09a">norm</a>()/2 : <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>(0, 0)));</div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;        }</div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;    }</div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160; </div>
+<div class="line"><a name="l00024"></a><span class="lineno"><a class="line" href="classentities_1_1_character_entity.html#aeb6069f0f07d0914faf0f94c0cc33def">   24</a></span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classentities_1_1_character_entity.html#aeb6069f0f07d0914faf0f94c0cc33def">CharacterEntity::render</a>(<a class="code" href="classolc_1_1_transformed_view.html">olc::TransformedView</a>&amp; scene)</div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;    {</div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;        <a class="code" href="classentities_1_1_entity.html#abcc4364b5b7250f0364f3550a618b3ab">LivingEntity::render</a>(scene);</div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;        <span class="keywordflow">if</span> (this-&gt;<a class="code" href="classentities_1_1_character_entity.html#a7926bfbac4481203c1bd8920fcb2c432">getWeapon</a>()) {</div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;            this-&gt;<a class="code" href="classentities_1_1_character_entity.html#a7926bfbac4481203c1bd8920fcb2c432">getWeapon</a>()-&gt;render(scene);</div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;        }</div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;    }</div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;}</div>
+</div><!-- fragment --></div><!-- contents -->
+<div class="ttc" id="aclassentities_1_1_character_entity_html_afdae03f49fd5d47d0837ed660e37038f"><div class="ttname"><a href="classentities_1_1_character_entity.html#afdae03f49fd5d47d0837ed660e37038f">entities::CharacterEntity::getTexture</a></div><div class="ttdeci">render::ITexture &amp; getTexture() override</div><div class="ttdoc">the object's texture</div><div class="ttdef"><b>Definition:</b> <a href="_character_entity_8cpp_source.html#l00010">CharacterEntity.cpp:10</a></div></div>
+<div class="ttc" id="astructolc_1_1v2d__generic_html"><div class="ttname"><a href="structolc_1_1v2d__generic.html">olc::v2d_generic&lt; float &gt;</a></div></div>
+<div class="ttc" id="aclassentities_1_1_character_entity_html_aa7c43269834b07ef51355a874be373e8"><div class="ttname"><a href="classentities_1_1_character_entity.html#aa7c43269834b07ef51355a874be373e8">entities::CharacterEntity::CharacterEntity</a></div><div class="ttdeci">CharacterEntity(render::ITexture &amp;skin, const olc::vf2d &amp;pos)</div><div class="ttdef"><b>Definition:</b> <a href="_character_entity_8cpp_source.html#l00014">CharacterEntity.cpp:14</a></div></div>
+<div class="ttc" id="aclassentities_1_1_character_entity_html_a295a77ffb22dd1a7b30164ab04ecf400"><div class="ttname"><a href="classentities_1_1_character_entity.html#a295a77ffb22dd1a7b30164ab04ecf400">entities::CharacterEntity::texture</a></div><div class="ttdeci">render::ITexture &amp; texture</div><div class="ttdef"><b>Definition:</b> <a href="_character_entity_8h_source.html#l00022">CharacterEntity.h:22</a></div></div>
+<div class="ttc" id="aclassentities_1_1_entity_html_a799a692b988248dd23d207b95e7fe2b7"><div class="ttname"><a href="classentities_1_1_entity.html#a799a692b988248dd23d207b95e7fe2b7">entities::Entity::getPos</a></div><div class="ttdeci">virtual olc::vf2d getPos() const</div><div class="ttdef"><b>Definition:</b> <a href="_entity_8cpp_source.html#l00042">Entity.cpp:42</a></div></div>
+<div class="ttc" id="aclassentities_1_1_living_entity_html_ad8b574e93d1fa34cdd119be6f0391acb"><div class="ttname"><a href="classentities_1_1_living_entity.html#ad8b574e93d1fa34cdd119be6f0391acb">entities::LivingEntity::speed</a></div><div class="ttdeci">olc::vf2d speed</div><div class="ttdoc">Its speed and moving direction.</div><div class="ttdef"><b>Definition:</b> <a href="_living_entity_8h_source.html#l00032">LivingEntity.h:32</a></div></div>
+<div class="ttc" id="astructolc_1_1v2d__generic_html_a9c62f12d51859a5a487c5a0c2d00b09a"><div class="ttname"><a href="structolc_1_1v2d__generic.html#a9c62f12d51859a5a487c5a0c2d00b09a">olc::v2d_generic::norm</a></div><div class="ttdeci">v2d_generic norm() const</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00592">olcPixelGameEngine.h:592</a></div></div>
+<div class="ttc" id="aclass_game_client_html"><div class="ttname"><a href="class_game_client.html">GameClient</a></div><div class="ttdoc">The game main class itself. manages the entities, adjust the screen...</div><div class="ttdef"><b>Definition:</b> <a href="main_game_8h_source.html#l00011">mainGame.h:13</a></div></div>
+<div class="ttc" id="aclassentities_1_1_living_entity_html"><div class="ttname"><a href="classentities_1_1_living_entity.html">entities::LivingEntity</a></div><div class="ttdoc">Any moving animal or player.</div><div class="ttdef"><b>Definition:</b> <a href="_living_entity_8h_source.html#l00007">LivingEntity.h:9</a></div></div>
+<div class="ttc" id="aclassrender_1_1_i_texture_html"><div class="ttname"><a href="classrender_1_1_i_texture.html">render::ITexture</a></div><div class="ttdoc">Every texture, what can render an entity.</div><div class="ttdef"><b>Definition:</b> <a href="_i_texture_8h_source.html#l00015">ITexture.h:16</a></div></div>
+<div class="ttc" id="aclassentities_1_1_character_entity_html_ae7cdddc6dca655e7bf8c2f48424c5208"><div class="ttname"><a href="classentities_1_1_character_entity.html#ae7cdddc6dca655e7bf8c2f48424c5208">entities::CharacterEntity::tick</a></div><div class="ttdeci">void tick(GameClient &amp;client, float deltaT, std::shared_ptr&lt; Entity &gt; &amp;shared_this) override</div><div class="ttdoc">Entity tick multiple times per sec.</div><div class="ttdef"><b>Definition:</b> <a href="_character_entity_8cpp_source.html#l00016">CharacterEntity.cpp:16</a></div></div>
+<div class="ttc" id="anamespaceentities_html"><div class="ttname"><a href="namespaceentities.html">entities</a></div><div class="ttdef"><b>Definition:</b> <a href="_character_entity_8cpp_source.html#l00005">CharacterEntity.cpp:5</a></div></div>
+<div class="ttc" id="a_character_entity_8h_html"><div class="ttname"><a href="_character_entity_8h.html">CharacterEntity.h</a></div></div>
+<div class="ttc" id="aclassolc_1_1_transformed_view_html"><div class="ttname"><a href="classolc_1_1_transformed_view.html">olc::TransformedView</a></div><div class="ttdef"><b>Definition:</b> <a href="olc_p_g_e_x___transformed_view_8h_source.html#l00079">olcPGEX_TransformedView.h:80</a></div></div>
+<div class="ttc" id="aclassentities_1_1_character_entity_html_aeb6069f0f07d0914faf0f94c0cc33def"><div class="ttname"><a href="classentities_1_1_character_entity.html#aeb6069f0f07d0914faf0f94c0cc33def">entities::CharacterEntity::render</a></div><div class="ttdeci">void render(olc::TransformedView &amp;scene) override</div><div class="ttdoc">render</div><div class="ttdef"><b>Definition:</b> <a href="_character_entity_8cpp_source.html#l00024">CharacterEntity.cpp:24</a></div></div>
+<div class="ttc" id="aclassentities_1_1_living_entity_html_af13cb8c3fabd2960746e21cd7dabe4d6"><div class="ttname"><a href="classentities_1_1_living_entity.html#af13cb8c3fabd2960746e21cd7dabe4d6">entities::LivingEntity::tick</a></div><div class="ttdeci">void tick(GameClient &amp;client, float deltaT, std::shared_ptr&lt; Entity &gt; &amp;shared_this) override</div><div class="ttdoc">Entity tick multiple times per sec.</div><div class="ttdef"><b>Definition:</b> <a href="_living_entity_8cpp_source.html#l00082">LivingEntity.cpp:82</a></div></div>
+<div class="ttc" id="a_weapon_8h_html"><div class="ttname"><a href="_weapon_8h.html">Weapon.h</a></div></div>
+<div class="ttc" id="aclassentities_1_1_entity_html_abcc4364b5b7250f0364f3550a618b3ab"><div class="ttname"><a href="classentities_1_1_entity.html#abcc4364b5b7250f0364f3550a618b3ab">entities::Entity::render</a></div><div class="ttdeci">virtual void render(olc::TransformedView &amp;scene)</div><div class="ttdoc">render</div><div class="ttdef"><b>Definition:</b> <a href="_entity_8cpp_source.html#l00052">Entity.cpp:52</a></div></div>
+<div class="ttc" id="aclassentities_1_1_character_entity_html_a7926bfbac4481203c1bd8920fcb2c432"><div class="ttname"><a href="classentities_1_1_character_entity.html#a7926bfbac4481203c1bd8920fcb2c432">entities::CharacterEntity::getWeapon</a></div><div class="ttdeci">virtual std::shared_ptr&lt; weapons::Weapon &gt; getWeapon()</div><div class="ttdef"><b>Definition:</b> <a href="_character_entity_8cpp_source.html#l00006">CharacterEntity.cpp:6</a></div></div>
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/_character_entity_8h.html b/doxy/html/_character_entity_8h.html
new file mode 100644
index 0000000000000000000000000000000000000000..c4605b5437f5c336c59ac20aeee9f41e25480f0e
--- /dev/null
+++ b/doxy/html/_character_entity_8h.html
@@ -0,0 +1,95 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: C:/Users/kosmx/Documents/GitHub/2d-game/CharacterEntity.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#nested-classes">Classes</a> &#124;
+<a href="#namespaces">Namespaces</a>  </div>
+  <div class="headertitle">
+<div class="title">C:/Users/kosmx/Documents/GitHub/2d-game/CharacterEntity.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &quot;<a class="el" href="_living_entity_8h_source.html">LivingEntity.h</a>&quot;</code><br />
+</div>
+<p><a href="_character_entity_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_character_entity.html">entities::CharacterEntity</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A player or an enemy.  <a href="classentities_1_1_character_entity.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
+Namespaces</h2></td></tr>
+<tr class="memitem:namespaceweapons"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceweapons.html">weapons</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:namespaceentities"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceentities.html">entities</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/_character_entity_8h_source.html b/doxy/html/_character_entity_8h_source.html
new file mode 100644
index 0000000000000000000000000000000000000000..04dae2d1eb0c461ff3a81a1018a646678a7addbc
--- /dev/null
+++ b/doxy/html/_character_entity_8h_source.html
@@ -0,0 +1,115 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: C:/Users/kosmx/Documents/GitHub/2d-game/CharacterEntity.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="headertitle">
+<div class="title">C:/Users/kosmx/Documents/GitHub/2d-game/CharacterEntity.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="_character_entity_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_living_entity_8h.html">LivingEntity.h</a>&quot;</span></div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160; </div>
+<div class="line"><a name="l00004"></a><span class="lineno"><a class="line" href="namespaceweapons.html">    4</a></span>&#160;<span class="keyword">namespace </span><a class="code" href="namespaceweapons.html">weapons</a></div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;{</div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;    <span class="keyword">class </span><a class="code" href="classweapons_1_1_weapon.html">Weapon</a>;</div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;}</div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160; </div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespaceentities.html">entities</a> {</div>
+<div class="line"><a name="l00013"></a><span class="lineno"><a class="line" href="classentities_1_1_character_entity.html">   13</a></span>&#160;    <span class="keyword">class </span><a class="code" href="classentities_1_1_character_entity.html">CharacterEntity</a> :</div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;        <span class="keyword">public</span> <a class="code" href="classentities_1_1_living_entity.html">LivingEntity</a></div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;    {</div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;    <span class="keyword">protected</span>:</div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;        <span class="keyword">virtual</span> std::shared_ptr&lt;weapons::Weapon&gt; <a class="code" href="classentities_1_1_character_entity.html#a7926bfbac4481203c1bd8920fcb2c432">getWeapon</a>();</div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160; </div>
+<div class="line"><a name="l00022"></a><span class="lineno"><a class="line" href="classentities_1_1_character_entity.html#a295a77ffb22dd1a7b30164ab04ecf400">   22</a></span>&#160;        <a class="code" href="classrender_1_1_i_texture.html">render::ITexture</a>&amp; <a class="code" href="classentities_1_1_character_entity.html#a295a77ffb22dd1a7b30164ab04ecf400">texture</a>;</div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;        <a class="code" href="classrender_1_1_i_texture.html">render::ITexture</a>&amp; <a class="code" href="classentities_1_1_character_entity.html#afdae03f49fd5d47d0837ed660e37038f">getTexture</a>() <span class="keyword">override</span>;</div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;    <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;        <a class="code" href="classentities_1_1_character_entity.html#aa7c43269834b07ef51355a874be373e8">CharacterEntity</a>(<a class="code" href="classrender_1_1_i_texture.html">render::ITexture</a>&amp; skin, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; <a class="code" href="classentities_1_1_entity.html#a04f9c2febe8d435138a07eb2f48ba96b">pos</a>);</div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;        <span class="keywordtype">void</span> <a class="code" href="classentities_1_1_character_entity.html#ae7cdddc6dca655e7bf8c2f48424c5208">tick</a>(<a class="code" href="class_game_client.html">GameClient</a>&amp; client, <span class="keywordtype">float</span> deltaT, std::shared_ptr&lt;Entity&gt;&amp; shared_this) <span class="keyword">override</span>;</div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;        <span class="keywordtype">void</span> <a class="code" href="classentities_1_1_character_entity.html#aeb6069f0f07d0914faf0f94c0cc33def">render</a>(<a class="code" href="classolc_1_1_transformed_view.html">olc::TransformedView</a>&amp; scene) <span class="keyword">override</span>;</div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;    };</div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;}</div>
+</div><!-- fragment --></div><!-- contents -->
+<div class="ttc" id="aclassentities_1_1_character_entity_html_afdae03f49fd5d47d0837ed660e37038f"><div class="ttname"><a href="classentities_1_1_character_entity.html#afdae03f49fd5d47d0837ed660e37038f">entities::CharacterEntity::getTexture</a></div><div class="ttdeci">render::ITexture &amp; getTexture() override</div><div class="ttdoc">the object's texture</div><div class="ttdef"><b>Definition:</b> <a href="_character_entity_8cpp_source.html#l00010">CharacterEntity.cpp:10</a></div></div>
+<div class="ttc" id="astructolc_1_1v2d__generic_html"><div class="ttname"><a href="structolc_1_1v2d__generic.html">olc::v2d_generic&lt; float &gt;</a></div></div>
+<div class="ttc" id="aclassentities_1_1_entity_html_a04f9c2febe8d435138a07eb2f48ba96b"><div class="ttname"><a href="classentities_1_1_entity.html#a04f9c2febe8d435138a07eb2f48ba96b">entities::Entity::pos</a></div><div class="ttdeci">olc::vf2d pos</div><div class="ttdoc">it's position</div><div class="ttdef"><b>Definition:</b> <a href="_entity_8h_source.html#l00022">Entity.h:22</a></div></div>
+<div class="ttc" id="aclassentities_1_1_character_entity_html_aa7c43269834b07ef51355a874be373e8"><div class="ttname"><a href="classentities_1_1_character_entity.html#aa7c43269834b07ef51355a874be373e8">entities::CharacterEntity::CharacterEntity</a></div><div class="ttdeci">CharacterEntity(render::ITexture &amp;skin, const olc::vf2d &amp;pos)</div><div class="ttdef"><b>Definition:</b> <a href="_character_entity_8cpp_source.html#l00014">CharacterEntity.cpp:14</a></div></div>
+<div class="ttc" id="aclassweapons_1_1_weapon_html"><div class="ttname"><a href="classweapons_1_1_weapon.html">weapons::Weapon</a></div><div class="ttdoc">You can throw it to the ground, this is why it's an entity. But it will be possible to use it....</div><div class="ttdef"><b>Definition:</b> <a href="_weapon_8h_source.html#l00010">Weapon.h:12</a></div></div>
+<div class="ttc" id="aclassentities_1_1_character_entity_html_a295a77ffb22dd1a7b30164ab04ecf400"><div class="ttname"><a href="classentities_1_1_character_entity.html#a295a77ffb22dd1a7b30164ab04ecf400">entities::CharacterEntity::texture</a></div><div class="ttdeci">render::ITexture &amp; texture</div><div class="ttdef"><b>Definition:</b> <a href="_character_entity_8h_source.html#l00022">CharacterEntity.h:22</a></div></div>
+<div class="ttc" id="anamespaceweapons_html"><div class="ttname"><a href="namespaceweapons.html">weapons</a></div><div class="ttdef"><b>Definition:</b> <a href="_character_entity_8h_source.html#l00004">CharacterEntity.h:5</a></div></div>
+<div class="ttc" id="aclass_game_client_html"><div class="ttname"><a href="class_game_client.html">GameClient</a></div><div class="ttdoc">The game main class itself. manages the entities, adjust the screen...</div><div class="ttdef"><b>Definition:</b> <a href="main_game_8h_source.html#l00011">mainGame.h:13</a></div></div>
+<div class="ttc" id="a_living_entity_8h_html"><div class="ttname"><a href="_living_entity_8h.html">LivingEntity.h</a></div></div>
+<div class="ttc" id="aclassentities_1_1_living_entity_html"><div class="ttname"><a href="classentities_1_1_living_entity.html">entities::LivingEntity</a></div><div class="ttdoc">Any moving animal or player.</div><div class="ttdef"><b>Definition:</b> <a href="_living_entity_8h_source.html#l00007">LivingEntity.h:9</a></div></div>
+<div class="ttc" id="aclassrender_1_1_i_texture_html"><div class="ttname"><a href="classrender_1_1_i_texture.html">render::ITexture</a></div><div class="ttdoc">Every texture, what can render an entity.</div><div class="ttdef"><b>Definition:</b> <a href="_i_texture_8h_source.html#l00015">ITexture.h:16</a></div></div>
+<div class="ttc" id="aclassentities_1_1_character_entity_html_ae7cdddc6dca655e7bf8c2f48424c5208"><div class="ttname"><a href="classentities_1_1_character_entity.html#ae7cdddc6dca655e7bf8c2f48424c5208">entities::CharacterEntity::tick</a></div><div class="ttdeci">void tick(GameClient &amp;client, float deltaT, std::shared_ptr&lt; Entity &gt; &amp;shared_this) override</div><div class="ttdoc">Entity tick multiple times per sec.</div><div class="ttdef"><b>Definition:</b> <a href="_character_entity_8cpp_source.html#l00016">CharacterEntity.cpp:16</a></div></div>
+<div class="ttc" id="anamespaceentities_html"><div class="ttname"><a href="namespaceentities.html">entities</a></div><div class="ttdef"><b>Definition:</b> <a href="_character_entity_8cpp_source.html#l00005">CharacterEntity.cpp:5</a></div></div>
+<div class="ttc" id="aclassolc_1_1_transformed_view_html"><div class="ttname"><a href="classolc_1_1_transformed_view.html">olc::TransformedView</a></div><div class="ttdef"><b>Definition:</b> <a href="olc_p_g_e_x___transformed_view_8h_source.html#l00079">olcPGEX_TransformedView.h:80</a></div></div>
+<div class="ttc" id="aclassentities_1_1_character_entity_html_aeb6069f0f07d0914faf0f94c0cc33def"><div class="ttname"><a href="classentities_1_1_character_entity.html#aeb6069f0f07d0914faf0f94c0cc33def">entities::CharacterEntity::render</a></div><div class="ttdeci">void render(olc::TransformedView &amp;scene) override</div><div class="ttdoc">render</div><div class="ttdef"><b>Definition:</b> <a href="_character_entity_8cpp_source.html#l00024">CharacterEntity.cpp:24</a></div></div>
+<div class="ttc" id="aclassentities_1_1_character_entity_html"><div class="ttname"><a href="classentities_1_1_character_entity.html">entities::CharacterEntity</a></div><div class="ttdoc">A player or an enemy.</div><div class="ttdef"><b>Definition:</b> <a href="_character_entity_8h_source.html#l00013">CharacterEntity.h:15</a></div></div>
+<div class="ttc" id="aclassentities_1_1_character_entity_html_a7926bfbac4481203c1bd8920fcb2c432"><div class="ttname"><a href="classentities_1_1_character_entity.html#a7926bfbac4481203c1bd8920fcb2c432">entities::CharacterEntity::getWeapon</a></div><div class="ttdeci">virtual std::shared_ptr&lt; weapons::Weapon &gt; getWeapon()</div><div class="ttdef"><b>Definition:</b> <a href="_character_entity_8cpp_source.html#l00006">CharacterEntity.cpp:6</a></div></div>
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/_character_texture_8cpp.html b/doxy/html/_character_texture_8cpp.html
new file mode 100644
index 0000000000000000000000000000000000000000..b2a232bef0660162e57a3115c4605933c602b448
--- /dev/null
+++ b/doxy/html/_character_texture_8cpp.html
@@ -0,0 +1,89 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: C:/Users/kosmx/Documents/GitHub/2d-game/CharacterTexture.cpp File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#namespaces">Namespaces</a>  </div>
+  <div class="headertitle">
+<div class="title">C:/Users/kosmx/Documents/GitHub/2d-game/CharacterTexture.cpp File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &quot;<a class="el" href="_character_texture_8h_source.html">CharacterTexture.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="_entity_8h_source.html">Entity.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="_game_exception_8h_source.html">GameException.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="_living_entity_8h_source.html">LivingEntity.h</a>&quot;</code><br />
+</div>
+<p><a href="_character_texture_8cpp_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
+Namespaces</h2></td></tr>
+<tr class="memitem:namespacerender"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacerender.html">render</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/_character_texture_8cpp_source.html b/doxy/html/_character_texture_8cpp_source.html
new file mode 100644
index 0000000000000000000000000000000000000000..9df119085e88a0ed70a57e10032955f96b7dfb61
--- /dev/null
+++ b/doxy/html/_character_texture_8cpp_source.html
@@ -0,0 +1,127 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: C:/Users/kosmx/Documents/GitHub/2d-game/CharacterTexture.cpp Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="headertitle">
+<div class="title">C:/Users/kosmx/Documents/GitHub/2d-game/CharacterTexture.cpp</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="_character_texture_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_character_texture_8h.html">CharacterTexture.h</a>&quot;</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160; </div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_entity_8h.html">Entity.h</a>&quot;</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_game_exception_8h.html">GameException.h</a>&quot;</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_living_entity_8h.html">LivingEntity.h</a>&quot;</span></div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160; </div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="keyword">using namespace </span><a class="code" href="namespaceolc.html">olc</a>;</div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160; </div>
+<div class="line"><a name="l00009"></a><span class="lineno"><a class="line" href="namespacerender.html">    9</a></span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacerender.html">render</a> {</div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160; </div>
+<div class="line"><a name="l00011"></a><span class="lineno"><a class="line" href="classrender_1_1_character_texture.html#a0e5cb130b98e46c9de43e274ca206d1b">   11</a></span>&#160;    CharacterTexture::CharacterTexture(<span class="keyword">const</span> std::string&amp; name, <a class="code" href="structolc_1_1v2d__generic.html">vf2d</a> size)</div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;        : sprite(name), size(size) {}</div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160; </div>
+<div class="line"><a name="l00014"></a><span class="lineno"><a class="line" href="classrender_1_1_character_texture.html#a16ced1889ccaf7ca4c913ec1475c2f9a">   14</a></span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classrender_1_1_character_texture.html#a16ced1889ccaf7ca4c913ec1475c2f9a">CharacterTexture::render</a>(<a class="code" href="classolc_1_1_transformed_view.html">TransformedView</a>&amp; scene, <a class="code" href="classentities_1_1_entity.html">entities::Entity</a>&amp; entity)</div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;    {</div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;        <span class="keywordflow">if</span> (<span class="keyword">dynamic_cast&lt;</span><a class="code" href="classentities_1_1_living_entity.html">entities::LivingEntity</a>*<span class="keyword">&gt;</span>(&amp;entity) == <span class="keyword">nullptr</span>) {</div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="class_game_exception.html">GameException</a>(<span class="stringliteral">&quot;Can&#39;t render character texture for a not-living entity...&quot;</span>, entity);</div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;        }</div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;        <span class="keyword">auto</span>&amp; livingEntity = <span class="keyword">dynamic_cast&lt;</span><a class="code" href="classentities_1_1_living_entity.html">entities::LivingEntity</a>&amp;<span class="keyword">&gt;</span>(entity);</div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;        <a class="code" href="structolc_1_1v2d__generic.html">vf2d</a> pos = this-&gt;uv + <a class="code" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">vf2d</a>(livingEntity.getAnimPhase() * this-&gt;size.x, livingEntity.getDirection() * size.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a>);</div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;        this-&gt;sprite.<a class="code" href="classrender_1_1_lazy_sprite.html#a1e0b32f06c67b96eed8da12747aa4f0a">renderCentered</a>(scene, entity.<a class="code" href="classentities_1_1_entity.html#a799a692b988248dd23d207b95e7fe2b7">getPos</a>(), pos, size, entity.<a class="code" href="classentities_1_1_entity.html#ac60e9beb5a45fc65120e9779e680c04b">getSize</a>());</div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;    }</div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160; </div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;    <a class="code" href="classrender_1_1_character_texture.html">CharacterTexture</a> <a class="code" href="classrender_1_1_character_texture.html#a86b8570b892ad9e076b0dcc98e0190c3">CharacterTexture::EngineerTexture</a>(<span class="stringliteral">&quot;Commissions/Engineer.png&quot;</span>);</div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;    <a class="code" href="classrender_1_1_character_texture.html">CharacterTexture</a> <a class="code" href="classrender_1_1_character_texture.html#a29faf07d6f3edb7d05ad4811613a9ded">CharacterTexture::MageTexture</a>(<span class="stringliteral">&quot;Commissions/Mage.png&quot;</span>);</div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;    <a class="code" href="classrender_1_1_character_texture.html">CharacterTexture</a> <a class="code" href="classrender_1_1_character_texture.html#aa83fc0221f1d435820cd794cdb1b126e">CharacterTexture::PaladinTexture</a>(<span class="stringliteral">&quot;Commissions/Paladin.png&quot;</span>);</div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;    <a class="code" href="classrender_1_1_character_texture.html">CharacterTexture</a> <a class="code" href="classrender_1_1_character_texture.html#a48e57b7a2864c6adb791b91a24b5daea">CharacterTexture::RougeTexture</a>(<span class="stringliteral">&quot;Commissions/Rouge.png&quot;</span>);</div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;    <a class="code" href="classrender_1_1_character_texture.html">CharacterTexture</a> <a class="code" href="classrender_1_1_character_texture.html#a63149d0abd6b6c3fffac01f6bae855eb">CharacterTexture::WarriorTexture</a>(<span class="stringliteral">&quot;Commissions/Warrior.png&quot;</span>);</div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;}</div>
+</div><!-- fragment --></div><!-- contents -->
+<div class="ttc" id="astructolc_1_1v2d__generic_html"><div class="ttname"><a href="structolc_1_1v2d__generic.html">olc::v2d_generic&lt; float &gt;</a></div></div>
+<div class="ttc" id="astructolc_1_1v2d__generic_html_a5a9c94207b2163c69a39190c320fcbdf"><div class="ttname"><a href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">olc::v2d_generic::y</a></div><div class="ttdeci">T y</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00585">olcPixelGameEngine.h:585</a></div></div>
+<div class="ttc" id="anamespaceolc_html_adb87819740ea9625f84c821fffb16429"><div class="ttname"><a href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a></div><div class="ttdeci">v2d_generic&lt; float &gt; vf2d</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00646">olcPixelGameEngine.h:646</a></div></div>
+<div class="ttc" id="a_character_texture_8h_html"><div class="ttname"><a href="_character_texture_8h.html">CharacterTexture.h</a></div></div>
+<div class="ttc" id="aclassentities_1_1_entity_html_a799a692b988248dd23d207b95e7fe2b7"><div class="ttname"><a href="classentities_1_1_entity.html#a799a692b988248dd23d207b95e7fe2b7">entities::Entity::getPos</a></div><div class="ttdeci">virtual olc::vf2d getPos() const</div><div class="ttdef"><b>Definition:</b> <a href="_entity_8cpp_source.html#l00042">Entity.cpp:42</a></div></div>
+<div class="ttc" id="anamespaceolc_html"><div class="ttname"><a href="namespaceolc.html">olc</a></div><div class="ttdef"><b>Definition:</b> <a href="olc_p_g_e_x___transformed_view_8h_source.html#l00077">olcPGEX_TransformedView.h:78</a></div></div>
+<div class="ttc" id="aclassrender_1_1_character_texture_html_a29faf07d6f3edb7d05ad4811613a9ded"><div class="ttname"><a href="classrender_1_1_character_texture.html#a29faf07d6f3edb7d05ad4811613a9ded">render::CharacterTexture::MageTexture</a></div><div class="ttdeci">static CharacterTexture MageTexture</div><div class="ttdef"><b>Definition:</b> <a href="_character_texture_8h_source.html#l00013">CharacterTexture.h:13</a></div></div>
+<div class="ttc" id="aclassrender_1_1_character_texture_html_a63149d0abd6b6c3fffac01f6bae855eb"><div class="ttname"><a href="classrender_1_1_character_texture.html#a63149d0abd6b6c3fffac01f6bae855eb">render::CharacterTexture::WarriorTexture</a></div><div class="ttdeci">static CharacterTexture WarriorTexture</div><div class="ttdef"><b>Definition:</b> <a href="_character_texture_8h_source.html#l00015">CharacterTexture.h:15</a></div></div>
+<div class="ttc" id="aclass_game_exception_html"><div class="ttname"><a href="class_game_exception.html">GameException</a></div><div class="ttdef"><b>Definition:</b> <a href="_game_exception_8h_source.html#l00009">GameException.h:11</a></div></div>
+<div class="ttc" id="aclassentities_1_1_entity_html_ac60e9beb5a45fc65120e9779e680c04b"><div class="ttname"><a href="classentities_1_1_entity.html#ac60e9beb5a45fc65120e9779e680c04b">entities::Entity::getSize</a></div><div class="ttdeci">virtual olc::vf2d getSize() const</div><div class="ttdoc">get it's size to render</div><div class="ttdef"><b>Definition:</b> <a href="_entity_8cpp_source.html#l00047">Entity.cpp:47</a></div></div>
+<div class="ttc" id="aclassrender_1_1_lazy_sprite_html_a1e0b32f06c67b96eed8da12747aa4f0a"><div class="ttname"><a href="classrender_1_1_lazy_sprite.html#a1e0b32f06c67b96eed8da12747aa4f0a">render::LazySprite::renderCentered</a></div><div class="ttdeci">void renderCentered(olc::TransformedView &amp;scene, const olc::vf2d &amp;pos, const olc::vf2d &amp;uv, const olc::vf2d &amp;size, olc::vf2d scale=olc::vf2d(1, 1))</div><div class="ttdoc">Render, but pos in the center.</div><div class="ttdef"><b>Definition:</b> <a href="_lazy_sprite_8cpp_source.html#l00025">LazySprite.cpp:25</a></div></div>
+<div class="ttc" id="aclassentities_1_1_entity_html"><div class="ttname"><a href="classentities_1_1_entity.html">entities::Entity</a></div><div class="ttdoc">Every object, what can be on the map.</div><div class="ttdef"><b>Definition:</b> <a href="_entity_8h_source.html#l00016">Entity.h:17</a></div></div>
+<div class="ttc" id="aclassrender_1_1_character_texture_html_aa83fc0221f1d435820cd794cdb1b126e"><div class="ttname"><a href="classrender_1_1_character_texture.html#aa83fc0221f1d435820cd794cdb1b126e">render::CharacterTexture::PaladinTexture</a></div><div class="ttdeci">static CharacterTexture PaladinTexture</div><div class="ttdef"><b>Definition:</b> <a href="_character_texture_8h_source.html#l00014">CharacterTexture.h:14</a></div></div>
+<div class="ttc" id="a_game_exception_8h_html"><div class="ttname"><a href="_game_exception_8h.html">GameException.h</a></div></div>
+<div class="ttc" id="a_living_entity_8h_html"><div class="ttname"><a href="_living_entity_8h.html">LivingEntity.h</a></div></div>
+<div class="ttc" id="aclassrender_1_1_character_texture_html_a48e57b7a2864c6adb791b91a24b5daea"><div class="ttname"><a href="classrender_1_1_character_texture.html#a48e57b7a2864c6adb791b91a24b5daea">render::CharacterTexture::RougeTexture</a></div><div class="ttdeci">static CharacterTexture RougeTexture</div><div class="ttdef"><b>Definition:</b> <a href="_character_texture_8h_source.html#l00016">CharacterTexture.h:16</a></div></div>
+<div class="ttc" id="a_entity_8h_html"><div class="ttname"><a href="_entity_8h.html">Entity.h</a></div></div>
+<div class="ttc" id="aclassentities_1_1_living_entity_html"><div class="ttname"><a href="classentities_1_1_living_entity.html">entities::LivingEntity</a></div><div class="ttdoc">Any moving animal or player.</div><div class="ttdef"><b>Definition:</b> <a href="_living_entity_8h_source.html#l00007">LivingEntity.h:9</a></div></div>
+<div class="ttc" id="anamespacerender_html"><div class="ttname"><a href="namespacerender.html">render</a></div><div class="ttdef"><b>Definition:</b> <a href="_character_texture_8cpp_source.html#l00009">CharacterTexture.cpp:9</a></div></div>
+<div class="ttc" id="aclassrender_1_1_character_texture_html_a86b8570b892ad9e076b0dcc98e0190c3"><div class="ttname"><a href="classrender_1_1_character_texture.html#a86b8570b892ad9e076b0dcc98e0190c3">render::CharacterTexture::EngineerTexture</a></div><div class="ttdeci">static CharacterTexture EngineerTexture</div><div class="ttdef"><b>Definition:</b> <a href="_character_texture_8h_source.html#l00012">CharacterTexture.h:12</a></div></div>
+<div class="ttc" id="aclassolc_1_1_transformed_view_html"><div class="ttname"><a href="classolc_1_1_transformed_view.html">olc::TransformedView</a></div><div class="ttdef"><b>Definition:</b> <a href="olc_p_g_e_x___transformed_view_8h_source.html#l00079">olcPGEX_TransformedView.h:80</a></div></div>
+<div class="ttc" id="aclassrender_1_1_character_texture_html_a16ced1889ccaf7ca4c913ec1475c2f9a"><div class="ttname"><a href="classrender_1_1_character_texture.html#a16ced1889ccaf7ca4c913ec1475c2f9a">render::CharacterTexture::render</a></div><div class="ttdeci">void render(olc::TransformedView &amp;scene, entities::Entity &amp;entity) override</div><div class="ttdoc">Throws a GameException, if we try to render a non-character entity with it.</div><div class="ttdef"><b>Definition:</b> <a href="_character_texture_8cpp_source.html#l00014">CharacterTexture.cpp:14</a></div></div>
+<div class="ttc" id="aclassrender_1_1_character_texture_html"><div class="ttname"><a href="classrender_1_1_character_texture.html">render::CharacterTexture</a></div><div class="ttdoc">Texture for CharacterEntities.</div><div class="ttdef"><b>Definition:</b> <a href="_character_texture_8h_source.html#l00008">CharacterTexture.h:10</a></div></div>
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/_character_texture_8h.html b/doxy/html/_character_texture_8h.html
new file mode 100644
index 0000000000000000000000000000000000000000..e67b7fba7b523e0254e43442d5eaf2df774fb9a5
--- /dev/null
+++ b/doxy/html/_character_texture_8h.html
@@ -0,0 +1,93 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: C:/Users/kosmx/Documents/GitHub/2d-game/CharacterTexture.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#nested-classes">Classes</a> &#124;
+<a href="#namespaces">Namespaces</a>  </div>
+  <div class="headertitle">
+<div class="title">C:/Users/kosmx/Documents/GitHub/2d-game/CharacterTexture.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &quot;<a class="el" href="_i_texture_8h_source.html">ITexture.h</a>&quot;</code><br />
+</div>
+<p><a href="_character_texture_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classrender_1_1_character_texture.html">render::CharacterTexture</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Texture for CharacterEntities.  <a href="classrender_1_1_character_texture.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
+Namespaces</h2></td></tr>
+<tr class="memitem:namespacerender"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacerender.html">render</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/_character_texture_8h_source.html b/doxy/html/_character_texture_8h_source.html
new file mode 100644
index 0000000000000000000000000000000000000000..89115809b6160e0cade6b14e9d79cfd934a9aaf1
--- /dev/null
+++ b/doxy/html/_character_texture_8h_source.html
@@ -0,0 +1,114 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: C:/Users/kosmx/Documents/GitHub/2d-game/CharacterTexture.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="headertitle">
+<div class="title">C:/Users/kosmx/Documents/GitHub/2d-game/CharacterTexture.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="_character_texture_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_i_texture_8h.html">ITexture.h</a>&quot;</span></div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160; </div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacerender.html">render</a> {</div>
+<div class="line"><a name="l00008"></a><span class="lineno"><a class="line" href="classrender_1_1_character_texture.html">    8</a></span>&#160;    <span class="keyword">class </span><a class="code" href="classrender_1_1_character_texture.html">CharacterTexture</a> :</div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;        <span class="keyword">public</span> <a class="code" href="classrender_1_1_i_texture.html">ITexture</a></div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;    {</div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;    <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00012"></a><span class="lineno"><a class="line" href="classrender_1_1_character_texture.html#a86b8570b892ad9e076b0dcc98e0190c3">   12</a></span>&#160;        <span class="keyword">static</span> <a class="code" href="classrender_1_1_character_texture.html">CharacterTexture</a> <a class="code" href="classrender_1_1_character_texture.html#a86b8570b892ad9e076b0dcc98e0190c3">EngineerTexture</a>;</div>
+<div class="line"><a name="l00013"></a><span class="lineno"><a class="line" href="classrender_1_1_character_texture.html#a29faf07d6f3edb7d05ad4811613a9ded">   13</a></span>&#160;        <span class="keyword">static</span> <a class="code" href="classrender_1_1_character_texture.html">CharacterTexture</a> <a class="code" href="classrender_1_1_character_texture.html#a29faf07d6f3edb7d05ad4811613a9ded">MageTexture</a>;</div>
+<div class="line"><a name="l00014"></a><span class="lineno"><a class="line" href="classrender_1_1_character_texture.html#aa83fc0221f1d435820cd794cdb1b126e">   14</a></span>&#160;        <span class="keyword">static</span> <a class="code" href="classrender_1_1_character_texture.html">CharacterTexture</a> <a class="code" href="classrender_1_1_character_texture.html#aa83fc0221f1d435820cd794cdb1b126e">PaladinTexture</a>;</div>
+<div class="line"><a name="l00015"></a><span class="lineno"><a class="line" href="classrender_1_1_character_texture.html#a63149d0abd6b6c3fffac01f6bae855eb">   15</a></span>&#160;        <span class="keyword">static</span> <a class="code" href="classrender_1_1_character_texture.html">CharacterTexture</a> <a class="code" href="classrender_1_1_character_texture.html#a63149d0abd6b6c3fffac01f6bae855eb">WarriorTexture</a>;</div>
+<div class="line"><a name="l00016"></a><span class="lineno"><a class="line" href="classrender_1_1_character_texture.html#a48e57b7a2864c6adb791b91a24b5daea">   16</a></span>&#160;        <span class="keyword">static</span> <a class="code" href="classrender_1_1_character_texture.html">CharacterTexture</a> <a class="code" href="classrender_1_1_character_texture.html#a48e57b7a2864c6adb791b91a24b5daea">RougeTexture</a>;</div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;        <span class="comment">//TODO add the others</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;    <span class="keyword">private</span>:</div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;        <a class="code" href="classrender_1_1_lazy_sprite.html">LazySprite</a> sprite;</div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;        <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a> uv, size;</div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;    <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160; </div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;        <a class="code" href="classrender_1_1_character_texture.html#a0e5cb130b98e46c9de43e274ca206d1b">CharacterTexture</a>(<span class="keyword">const</span> std::string&amp; name, <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a> size = {16, 16});</div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160; </div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;        <span class="keywordtype">void</span> <a class="code" href="classrender_1_1_character_texture.html#a16ced1889ccaf7ca4c913ec1475c2f9a">render</a>(<a class="code" href="classolc_1_1_transformed_view.html">olc::TransformedView</a>&amp; scene, <a class="code" href="classentities_1_1_entity.html">entities::Entity</a>&amp; entity) <span class="keyword">override</span>;</div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;    };</div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;}</div>
+</div><!-- fragment --></div><!-- contents -->
+<div class="ttc" id="aclassrender_1_1_lazy_sprite_html"><div class="ttname"><a href="classrender_1_1_lazy_sprite.html">render::LazySprite</a></div><div class="ttdoc">Refer to one texture, not animated, not modifiable, just a simple image. Lazy loading means,...</div><div class="ttdef"><b>Definition:</b> <a href="_lazy_sprite_8h_source.html#l00013">LazySprite.h:14</a></div></div>
+<div class="ttc" id="astructolc_1_1v2d__generic_html"><div class="ttname"><a href="structolc_1_1v2d__generic.html">olc::v2d_generic&lt; float &gt;</a></div></div>
+<div class="ttc" id="aclassrender_1_1_character_texture_html_a0e5cb130b98e46c9de43e274ca206d1b"><div class="ttname"><a href="classrender_1_1_character_texture.html#a0e5cb130b98e46c9de43e274ca206d1b">render::CharacterTexture::CharacterTexture</a></div><div class="ttdeci">CharacterTexture(const std::string &amp;name, olc::vf2d size={16, 16})</div><div class="ttdef"><b>Definition:</b> <a href="_character_texture_8cpp_source.html#l00011">CharacterTexture.cpp:11</a></div></div>
+<div class="ttc" id="aclassrender_1_1_character_texture_html_a29faf07d6f3edb7d05ad4811613a9ded"><div class="ttname"><a href="classrender_1_1_character_texture.html#a29faf07d6f3edb7d05ad4811613a9ded">render::CharacterTexture::MageTexture</a></div><div class="ttdeci">static CharacterTexture MageTexture</div><div class="ttdef"><b>Definition:</b> <a href="_character_texture_8h_source.html#l00013">CharacterTexture.h:13</a></div></div>
+<div class="ttc" id="aclassrender_1_1_character_texture_html_a63149d0abd6b6c3fffac01f6bae855eb"><div class="ttname"><a href="classrender_1_1_character_texture.html#a63149d0abd6b6c3fffac01f6bae855eb">render::CharacterTexture::WarriorTexture</a></div><div class="ttdeci">static CharacterTexture WarriorTexture</div><div class="ttdef"><b>Definition:</b> <a href="_character_texture_8h_source.html#l00015">CharacterTexture.h:15</a></div></div>
+<div class="ttc" id="a_i_texture_8h_html"><div class="ttname"><a href="_i_texture_8h.html">ITexture.h</a></div></div>
+<div class="ttc" id="aclassentities_1_1_entity_html"><div class="ttname"><a href="classentities_1_1_entity.html">entities::Entity</a></div><div class="ttdoc">Every object, what can be on the map.</div><div class="ttdef"><b>Definition:</b> <a href="_entity_8h_source.html#l00016">Entity.h:17</a></div></div>
+<div class="ttc" id="aclassrender_1_1_character_texture_html_aa83fc0221f1d435820cd794cdb1b126e"><div class="ttname"><a href="classrender_1_1_character_texture.html#aa83fc0221f1d435820cd794cdb1b126e">render::CharacterTexture::PaladinTexture</a></div><div class="ttdeci">static CharacterTexture PaladinTexture</div><div class="ttdef"><b>Definition:</b> <a href="_character_texture_8h_source.html#l00014">CharacterTexture.h:14</a></div></div>
+<div class="ttc" id="aclassrender_1_1_character_texture_html_a48e57b7a2864c6adb791b91a24b5daea"><div class="ttname"><a href="classrender_1_1_character_texture.html#a48e57b7a2864c6adb791b91a24b5daea">render::CharacterTexture::RougeTexture</a></div><div class="ttdeci">static CharacterTexture RougeTexture</div><div class="ttdef"><b>Definition:</b> <a href="_character_texture_8h_source.html#l00016">CharacterTexture.h:16</a></div></div>
+<div class="ttc" id="aclassrender_1_1_i_texture_html"><div class="ttname"><a href="classrender_1_1_i_texture.html">render::ITexture</a></div><div class="ttdoc">Every texture, what can render an entity.</div><div class="ttdef"><b>Definition:</b> <a href="_i_texture_8h_source.html#l00015">ITexture.h:16</a></div></div>
+<div class="ttc" id="anamespacerender_html"><div class="ttname"><a href="namespacerender.html">render</a></div><div class="ttdef"><b>Definition:</b> <a href="_character_texture_8cpp_source.html#l00009">CharacterTexture.cpp:9</a></div></div>
+<div class="ttc" id="aclassrender_1_1_character_texture_html_a86b8570b892ad9e076b0dcc98e0190c3"><div class="ttname"><a href="classrender_1_1_character_texture.html#a86b8570b892ad9e076b0dcc98e0190c3">render::CharacterTexture::EngineerTexture</a></div><div class="ttdeci">static CharacterTexture EngineerTexture</div><div class="ttdef"><b>Definition:</b> <a href="_character_texture_8h_source.html#l00012">CharacterTexture.h:12</a></div></div>
+<div class="ttc" id="aclassolc_1_1_transformed_view_html"><div class="ttname"><a href="classolc_1_1_transformed_view.html">olc::TransformedView</a></div><div class="ttdef"><b>Definition:</b> <a href="olc_p_g_e_x___transformed_view_8h_source.html#l00079">olcPGEX_TransformedView.h:80</a></div></div>
+<div class="ttc" id="aclassrender_1_1_character_texture_html_a16ced1889ccaf7ca4c913ec1475c2f9a"><div class="ttname"><a href="classrender_1_1_character_texture.html#a16ced1889ccaf7ca4c913ec1475c2f9a">render::CharacterTexture::render</a></div><div class="ttdeci">void render(olc::TransformedView &amp;scene, entities::Entity &amp;entity) override</div><div class="ttdoc">Throws a GameException, if we try to render a non-character entity with it.</div><div class="ttdef"><b>Definition:</b> <a href="_character_texture_8cpp_source.html#l00014">CharacterTexture.cpp:14</a></div></div>
+<div class="ttc" id="aclassrender_1_1_character_texture_html"><div class="ttname"><a href="classrender_1_1_character_texture.html">render::CharacterTexture</a></div><div class="ttdoc">Texture for CharacterEntities.</div><div class="ttdef"><b>Definition:</b> <a href="_character_texture_8h_source.html#l00008">CharacterTexture.h:10</a></div></div>
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/_dummy_entity_8cpp.html b/doxy/html/_dummy_entity_8cpp.html
new file mode 100644
index 0000000000000000000000000000000000000000..9f8f7bf6a38bde592a62e3fdf710df57de225a2d
--- /dev/null
+++ b/doxy/html/_dummy_entity_8cpp.html
@@ -0,0 +1,86 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: C:/Users/kosmx/Documents/GitHub/2d-game/DummyEntity.cpp File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#namespaces">Namespaces</a>  </div>
+  <div class="headertitle">
+<div class="title">C:/Users/kosmx/Documents/GitHub/2d-game/DummyEntity.cpp File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &quot;<a class="el" href="_dummy_entity_8h_source.html">DummyEntity.h</a>&quot;</code><br />
+</div>
+<p><a href="_dummy_entity_8cpp_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
+Namespaces</h2></td></tr>
+<tr class="memitem:namespaceentities"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceentities.html">entities</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/_dummy_entity_8cpp_source.html b/doxy/html/_dummy_entity_8cpp_source.html
new file mode 100644
index 0000000000000000000000000000000000000000..1a51e7b918c0f56150f00b89fe0fe4992af996dd
--- /dev/null
+++ b/doxy/html/_dummy_entity_8cpp_source.html
@@ -0,0 +1,88 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: C:/Users/kosmx/Documents/GitHub/2d-game/DummyEntity.cpp Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="headertitle">
+<div class="title">C:/Users/kosmx/Documents/GitHub/2d-game/DummyEntity.cpp</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="_dummy_entity_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_dummy_entity_8h.html">DummyEntity.h</a>&quot;</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160; </div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespaceentities.html">entities</a></div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;{</div>
+<div class="line"><a name="l00005"></a><span class="lineno"><a class="line" href="classentities_1_1_dummy_entity.html#aa68ec40dca291f94607c943d7d50c34b">    5</a></span>&#160;    <a class="code" href="classentities_1_1_dummy_entity.html#aa68ec40dca291f94607c943d7d50c34b">DummyEntity::DummyEntity</a>(<a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a> pos, <a class="code" href="classrender_1_1_i_texture.html">render::ITexture</a>&amp; skin, <span class="keyword">const</span> std::string&amp; name)</div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;        : <a class="code" href="classentities_1_1_character_entity.html">CharacterEntity</a>(skin, pos), name(name) {}</div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;}</div>
+</div><!-- fragment --></div><!-- contents -->
+<div class="ttc" id="astructolc_1_1v2d__generic_html"><div class="ttname"><a href="structolc_1_1v2d__generic.html">olc::v2d_generic&lt; float &gt;</a></div></div>
+<div class="ttc" id="aclassrender_1_1_i_texture_html"><div class="ttname"><a href="classrender_1_1_i_texture.html">render::ITexture</a></div><div class="ttdoc">Every texture, what can render an entity.</div><div class="ttdef"><b>Definition:</b> <a href="_i_texture_8h_source.html#l00015">ITexture.h:16</a></div></div>
+<div class="ttc" id="aclassentities_1_1_dummy_entity_html_aa68ec40dca291f94607c943d7d50c34b"><div class="ttname"><a href="classentities_1_1_dummy_entity.html#aa68ec40dca291f94607c943d7d50c34b">entities::DummyEntity::DummyEntity</a></div><div class="ttdeci">DummyEntity(olc::vf2d pos, render::ITexture &amp;skin, const std::string &amp;name=&quot;DummyEntity&quot;)</div><div class="ttdef"><b>Definition:</b> <a href="_dummy_entity_8cpp_source.html#l00005">DummyEntity.cpp:5</a></div></div>
+<div class="ttc" id="anamespaceentities_html"><div class="ttname"><a href="namespaceentities.html">entities</a></div><div class="ttdef"><b>Definition:</b> <a href="_character_entity_8cpp_source.html#l00005">CharacterEntity.cpp:5</a></div></div>
+<div class="ttc" id="aclassentities_1_1_character_entity_html"><div class="ttname"><a href="classentities_1_1_character_entity.html">entities::CharacterEntity</a></div><div class="ttdoc">A player or an enemy.</div><div class="ttdef"><b>Definition:</b> <a href="_character_entity_8h_source.html#l00013">CharacterEntity.h:15</a></div></div>
+<div class="ttc" id="a_dummy_entity_8h_html"><div class="ttname"><a href="_dummy_entity_8h.html">DummyEntity.h</a></div></div>
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/_dummy_entity_8h.html b/doxy/html/_dummy_entity_8h.html
new file mode 100644
index 0000000000000000000000000000000000000000..c7117c8e20b32f6c09fb5a27f5fc9d15b29e5b2e
--- /dev/null
+++ b/doxy/html/_dummy_entity_8h.html
@@ -0,0 +1,93 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: C:/Users/kosmx/Documents/GitHub/2d-game/DummyEntity.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#nested-classes">Classes</a> &#124;
+<a href="#namespaces">Namespaces</a>  </div>
+  <div class="headertitle">
+<div class="title">C:/Users/kosmx/Documents/GitHub/2d-game/DummyEntity.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &quot;<a class="el" href="_character_entity_8h_source.html">CharacterEntity.h</a>&quot;</code><br />
+</div>
+<p><a href="_dummy_entity_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_dummy_entity.html">entities::DummyEntity</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A test/dummy entity. it can't do anything... no, it can die.  <a href="classentities_1_1_dummy_entity.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
+Namespaces</h2></td></tr>
+<tr class="memitem:namespaceentities"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceentities.html">entities</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/_dummy_entity_8h_source.html b/doxy/html/_dummy_entity_8h_source.html
new file mode 100644
index 0000000000000000000000000000000000000000..92c575fb635786a3f80c1c75cd57076a072abb75
--- /dev/null
+++ b/doxy/html/_dummy_entity_8h_source.html
@@ -0,0 +1,99 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: C:/Users/kosmx/Documents/GitHub/2d-game/DummyEntity.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="headertitle">
+<div class="title">C:/Users/kosmx/Documents/GitHub/2d-game/DummyEntity.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="_dummy_entity_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_character_entity_8h.html">CharacterEntity.h</a>&quot;</span></div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160; </div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespaceentities.html">entities</a> {</div>
+<div class="line"><a name="l00008"></a><span class="lineno"><a class="line" href="classentities_1_1_dummy_entity.html">    8</a></span>&#160;    <span class="keyword">class </span><a class="code" href="classentities_1_1_dummy_entity.html">DummyEntity</a> :</div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;        <span class="keyword">public</span> <a class="code" href="classentities_1_1_character_entity.html">CharacterEntity</a></div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;    {</div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;    <span class="keyword">private</span>:</div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;        std::string name;</div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;        std::shared_ptr&lt;weapons::Weapon&gt; weaponToPickUp;</div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;    <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160; </div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;        <a class="code" href="classentities_1_1_dummy_entity.html#aa68ec40dca291f94607c943d7d50c34b">DummyEntity</a>(<a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a> <a class="code" href="classentities_1_1_entity.html#a04f9c2febe8d435138a07eb2f48ba96b">pos</a>, <a class="code" href="classrender_1_1_i_texture.html">render::ITexture</a>&amp; skin, <span class="keyword">const</span> std::string&amp; name = <span class="stringliteral">&quot;DummyEntity&quot;</span>);</div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;    };</div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;    ;</div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;}</div>
+</div><!-- fragment --></div><!-- contents -->
+<div class="ttc" id="astructolc_1_1v2d__generic_html"><div class="ttname"><a href="structolc_1_1v2d__generic.html">olc::v2d_generic&lt; float &gt;</a></div></div>
+<div class="ttc" id="aclassentities_1_1_entity_html_a04f9c2febe8d435138a07eb2f48ba96b"><div class="ttname"><a href="classentities_1_1_entity.html#a04f9c2febe8d435138a07eb2f48ba96b">entities::Entity::pos</a></div><div class="ttdeci">olc::vf2d pos</div><div class="ttdoc">it's position</div><div class="ttdef"><b>Definition:</b> <a href="_entity_8h_source.html#l00022">Entity.h:22</a></div></div>
+<div class="ttc" id="aclassentities_1_1_dummy_entity_html"><div class="ttname"><a href="classentities_1_1_dummy_entity.html">entities::DummyEntity</a></div><div class="ttdoc">A test/dummy entity. it can't do anything... no, it can die.</div><div class="ttdef"><b>Definition:</b> <a href="_dummy_entity_8h_source.html#l00008">DummyEntity.h:10</a></div></div>
+<div class="ttc" id="aclassrender_1_1_i_texture_html"><div class="ttname"><a href="classrender_1_1_i_texture.html">render::ITexture</a></div><div class="ttdoc">Every texture, what can render an entity.</div><div class="ttdef"><b>Definition:</b> <a href="_i_texture_8h_source.html#l00015">ITexture.h:16</a></div></div>
+<div class="ttc" id="aclassentities_1_1_dummy_entity_html_aa68ec40dca291f94607c943d7d50c34b"><div class="ttname"><a href="classentities_1_1_dummy_entity.html#aa68ec40dca291f94607c943d7d50c34b">entities::DummyEntity::DummyEntity</a></div><div class="ttdeci">DummyEntity(olc::vf2d pos, render::ITexture &amp;skin, const std::string &amp;name=&quot;DummyEntity&quot;)</div><div class="ttdef"><b>Definition:</b> <a href="_dummy_entity_8cpp_source.html#l00005">DummyEntity.cpp:5</a></div></div>
+<div class="ttc" id="anamespaceentities_html"><div class="ttname"><a href="namespaceentities.html">entities</a></div><div class="ttdef"><b>Definition:</b> <a href="_character_entity_8cpp_source.html#l00005">CharacterEntity.cpp:5</a></div></div>
+<div class="ttc" id="a_character_entity_8h_html"><div class="ttname"><a href="_character_entity_8h.html">CharacterEntity.h</a></div></div>
+<div class="ttc" id="aclassentities_1_1_character_entity_html"><div class="ttname"><a href="classentities_1_1_character_entity.html">entities::CharacterEntity</a></div><div class="ttdoc">A player or an enemy.</div><div class="ttdef"><b>Definition:</b> <a href="_character_entity_8h_source.html#l00013">CharacterEntity.h:15</a></div></div>
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/_dungeon_generator_8cpp.html b/doxy/html/_dungeon_generator_8cpp.html
new file mode 100644
index 0000000000000000000000000000000000000000..2ff77ccc3f5de7a317ed122330ff4eefd802fd77
--- /dev/null
+++ b/doxy/html/_dungeon_generator_8cpp.html
@@ -0,0 +1,78 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: C:/Users/kosmx/Documents/GitHub/2d-game/DungeonGenerator.cpp File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">C:/Users/kosmx/Documents/GitHub/2d-game/DungeonGenerator.cpp File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &quot;<a class="el" href="_dungeon_generator_8h_source.html">DungeonGenerator.h</a>&quot;</code><br />
+</div>
+<p><a href="_dungeon_generator_8cpp_source.html">Go to the source code of this file.</a></p>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/_dungeon_generator_8cpp_source.html b/doxy/html/_dungeon_generator_8cpp_source.html
new file mode 100644
index 0000000000000000000000000000000000000000..991cf6fa73a9c5aaab5d139e7a5523080ca74393
--- /dev/null
+++ b/doxy/html/_dungeon_generator_8cpp_source.html
@@ -0,0 +1,77 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: C:/Users/kosmx/Documents/GitHub/2d-game/DungeonGenerator.cpp Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="headertitle">
+<div class="title">C:/Users/kosmx/Documents/GitHub/2d-game/DungeonGenerator.cpp</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="_dungeon_generator_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_dungeon_generator_8h.html">DungeonGenerator.h</a>&quot;</span></div>
+</div><!-- fragment --></div><!-- contents -->
+<div class="ttc" id="a_dungeon_generator_8h_html"><div class="ttname"><a href="_dungeon_generator_8h.html">DungeonGenerator.h</a></div></div>
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/_dungeon_generator_8h.html b/doxy/html/_dungeon_generator_8h.html
new file mode 100644
index 0000000000000000000000000000000000000000..9adf4fd3bb89bb89da90408e5175d777d038941b
--- /dev/null
+++ b/doxy/html/_dungeon_generator_8h.html
@@ -0,0 +1,93 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: C:/Users/kosmx/Documents/GitHub/2d-game/DungeonGenerator.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#nested-classes">Classes</a> &#124;
+<a href="#namespaces">Namespaces</a>  </div>
+  <div class="headertitle">
+<div class="title">C:/Users/kosmx/Documents/GitHub/2d-game/DungeonGenerator.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &lt;memory&gt;</code><br />
+</div>
+<p><a href="_dungeon_generator_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_dungeon_generator.html">DungeonGenerator</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Generate random dungeons...  <a href="class_dungeon_generator.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
+Namespaces</h2></td></tr>
+<tr class="memitem:namespaceentities"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceentities.html">entities</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/_dungeon_generator_8h_source.html b/doxy/html/_dungeon_generator_8h_source.html
new file mode 100644
index 0000000000000000000000000000000000000000..00438c914a788993a5e4de0a1ff1dcaf4a5286f4
--- /dev/null
+++ b/doxy/html/_dungeon_generator_8h_source.html
@@ -0,0 +1,94 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: C:/Users/kosmx/Documents/GitHub/2d-game/DungeonGenerator.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="headertitle">
+<div class="title">C:/Users/kosmx/Documents/GitHub/2d-game/DungeonGenerator.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="_dungeon_generator_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="preprocessor">#include &lt;memory&gt;</span></div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160; </div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespaceentities.html">entities</a> {</div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;    <span class="keyword">class </span>PlayerEntity;</div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;}</div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160; </div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="keyword">class </span><a class="code" href="class_game_client.html">GameClient</a>;</div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160; </div>
+<div class="line"><a name="l00013"></a><span class="lineno"><a class="line" href="class_dungeon_generator.html">   13</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_dungeon_generator.html">DungeonGenerator</a></div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;{</div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="keyword">public</span>:</div>
+<div class="line"><a name="l00016"></a><span class="lineno"><a class="line" href="class_dungeon_generator.html#add8fcec4f013307d734616106110a1ea">   16</a></span>&#160;    <span class="keyword">virtual</span> std::shared_ptr&lt;entities::PlayerEntity&gt; <a class="code" href="class_dungeon_generator.html#add8fcec4f013307d734616106110a1ea">generate</a>(<a class="code" href="class_game_client.html">GameClient</a>&amp; client) = 0;</div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;};</div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160; </div>
+</div><!-- fragment --></div><!-- contents -->
+<div class="ttc" id="aclass_dungeon_generator_html"><div class="ttname"><a href="class_dungeon_generator.html">DungeonGenerator</a></div><div class="ttdoc">Generate random dungeons...</div><div class="ttdef"><b>Definition:</b> <a href="_dungeon_generator_8h_source.html#l00013">DungeonGenerator.h:14</a></div></div>
+<div class="ttc" id="aclass_dungeon_generator_html_add8fcec4f013307d734616106110a1ea"><div class="ttname"><a href="class_dungeon_generator.html#add8fcec4f013307d734616106110a1ea">DungeonGenerator::generate</a></div><div class="ttdeci">virtual std::shared_ptr&lt; entities::PlayerEntity &gt; generate(GameClient &amp;client)=0</div></div>
+<div class="ttc" id="aclass_game_client_html"><div class="ttname"><a href="class_game_client.html">GameClient</a></div><div class="ttdoc">The game main class itself. manages the entities, adjust the screen...</div><div class="ttdef"><b>Definition:</b> <a href="main_game_8h_source.html#l00011">mainGame.h:13</a></div></div>
+<div class="ttc" id="anamespaceentities_html"><div class="ttname"><a href="namespaceentities.html">entities</a></div><div class="ttdef"><b>Definition:</b> <a href="_character_entity_8cpp_source.html#l00005">CharacterEntity.cpp:5</a></div></div>
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/_dynamic_array_8hpp.html b/doxy/html/_dynamic_array_8hpp.html
new file mode 100644
index 0000000000000000000000000000000000000000..e63abf7cefd476bdef972b7122f49639024fedca
--- /dev/null
+++ b/doxy/html/_dynamic_array_8hpp.html
@@ -0,0 +1,87 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: C:/Users/kosmx/Documents/GitHub/2d-game/DynamicArray.hpp File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#nested-classes">Classes</a>  </div>
+  <div class="headertitle">
+<div class="title">C:/Users/kosmx/Documents/GitHub/2d-game/DynamicArray.hpp File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &lt;list&gt;</code><br />
+</div>
+<p><a href="_dynamic_array_8hpp_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_dynamic_array.html">DynamicArray&lt; T &gt;</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Dynamic array, to store entities, have a buffer, to don't tick newly added entities too early.  <a href="class_dynamic_array.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/_dynamic_array_8hpp_source.html b/doxy/html/_dynamic_array_8hpp_source.html
new file mode 100644
index 0000000000000000000000000000000000000000..027136995e96fdb41dc456ac8770945fffd91bdb
--- /dev/null
+++ b/doxy/html/_dynamic_array_8hpp_source.html
@@ -0,0 +1,139 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: C:/Users/kosmx/Documents/GitHub/2d-game/DynamicArray.hpp Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="headertitle">
+<div class="title">C:/Users/kosmx/Documents/GitHub/2d-game/DynamicArray.hpp</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="_dynamic_array_8hpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160; </div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="preprocessor">#include &lt;list&gt;</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160; </div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment">//I won&#39;t be able to do an enhanced (Range-based) for with this...</span></div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160; </div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160; </div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment">//Dynamic data type, set (not ordered), I&#39;ll use arrays for entry pointers, I will leave nullptr in the list.</span></div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment">//I don&#39;t want to waste time with resizing this, I&#39;ll allocate more memory and if I delete from this, I&#39;ll do it in</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"></span><span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a name="l00014"></a><span class="lineno"><a class="line" href="class_dynamic_array.html">   14</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_dynamic_array.html">DynamicArray</a></div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;{</div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="keyword">private</span>:</div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;    <span class="comment">//I won&#39;t be very efficient</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;    std::list&lt;T&gt; entries;</div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;    std::list&lt;T&gt; newEntries;</div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160; </div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="keyword">public</span>:</div>
+<div class="line"><a name="l00022"></a><span class="lineno"><a class="line" href="class_dynamic_array.html#a7d42e6eaa66bab7c43f193e78d2d56a9">   22</a></span>&#160;    <a class="code" href="class_dynamic_array.html#a7d42e6eaa66bab7c43f193e78d2d56a9">DynamicArray</a>() : entries(), newEntries(){}</div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160; </div>
+<div class="line"><a name="l00024"></a><span class="lineno"><a class="line" href="class_dynamic_array.html#a9f3bb8f56ad0cb35f890ebae426c7a61">   24</a></span>&#160;    <a class="code" href="class_dynamic_array.html">DynamicArray&lt;T&gt;</a>&amp; <a class="code" href="class_dynamic_array.html#a9f3bb8f56ad0cb35f890ebae426c7a61">operator+=</a>(<a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0">T</a>&amp; entry)</div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;    {</div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;        newEntries.push_back(entry);</div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;        <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;    }</div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160; </div>
+<div class="line"><a name="l00033"></a><span class="lineno"><a class="line" href="class_dynamic_array.html#a180959557f211bf3fcdf5e26b7cb67ab">   33</a></span>&#160;    <span class="keyword">auto</span> <a class="code" href="class_dynamic_array.html#a180959557f211bf3fcdf5e26b7cb67ab">finalizeAdd</a>()</div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;    {</div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;        <span class="comment">//this moves every entry form newEntries to entries.</span></div>
+<div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;        <span class="comment">//makes the newEntries empty.</span></div>
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;        <span class="comment">//entries.merge(newEntries); merge needs two ordered lists, i have only sets.</span></div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;        <span class="keyword">auto</span> oldEnd = newEntries.begin() != newEntries.end() ? newEntries.begin() : entries.end();</div>
+<div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;        entries.splice(entries.end(), newEntries);</div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;        <span class="keywordflow">return</span> oldEnd;</div>
+<div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;    }</div>
+<div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160; </div>
+<div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="class_dynamic_array.html#a9db6489676b4560684be1ba03233fca0">   43</a></span>&#160;    <span class="keywordtype">void</span> <a class="code" href="class_dynamic_array.html#a9db6489676b4560684be1ba03233fca0">removeIf</a>(<span class="keywordtype">bool</span> (*l)(<span class="keyword">const</span> <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0">T</a>&amp;))</div>
+<div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;    {</div>
+<div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;        entries.remove_if(l);</div>
+<div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;    }</div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;    </div>
+<div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;    <span class="comment">//It will mainly iterate, not search</span></div>
+<div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="class_dynamic_array.html#a3b4f5925657f9e8dfd71bcc5973399ee">   49</a></span>&#160;    <span class="keyword">auto</span> <a class="code" href="class_dynamic_array.html#a3b4f5925657f9e8dfd71bcc5973399ee">begin</a>()</div>
+<div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;    {</div>
+<div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;        <span class="keywordflow">return</span> entries.begin();</div>
+<div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;    }</div>
+<div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="class_dynamic_array.html#ac316f2e7a1938687031cb5cc34df34cc">   53</a></span>&#160;    <span class="keyword">auto</span> <a class="code" href="class_dynamic_array.html#ac316f2e7a1938687031cb5cc34df34cc">end</a>()</div>
+<div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;    {</div>
+<div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;        <span class="keywordflow">return</span> entries.end();</div>
+<div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;    }</div>
+<div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="class_dynamic_array.html#acbec0bb643ebec934cf5e9dfc1ecf01e">   57</a></span>&#160;    <span class="keywordtype">int</span> <a class="code" href="class_dynamic_array.html#acbec0bb643ebec934cf5e9dfc1ecf01e">getSize</a>()<span class="keyword"> const</span></div>
+<div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;<span class="keyword">    </span>{</div>
+<div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;        <span class="keywordflow">return</span> entries.size();</div>
+<div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;    }</div>
+<div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;};</div>
+</div><!-- fragment --></div><!-- contents -->
+<div class="ttc" id="aclass_dynamic_array_html_a3b4f5925657f9e8dfd71bcc5973399ee"><div class="ttname"><a href="class_dynamic_array.html#a3b4f5925657f9e8dfd71bcc5973399ee">DynamicArray::begin</a></div><div class="ttdeci">auto begin()</div><div class="ttdef"><b>Definition:</b> <a href="_dynamic_array_8hpp_source.html#l00049">DynamicArray.hpp:49</a></div></div>
+<div class="ttc" id="aclass_dynamic_array_html_a9f3bb8f56ad0cb35f890ebae426c7a61"><div class="ttname"><a href="class_dynamic_array.html#a9f3bb8f56ad0cb35f890ebae426c7a61">DynamicArray::operator+=</a></div><div class="ttdeci">DynamicArray&lt; T &gt; &amp; operator+=(T &amp;entry)</div><div class="ttdef"><b>Definition:</b> <a href="_dynamic_array_8hpp_source.html#l00024">DynamicArray.hpp:24</a></div></div>
+<div class="ttc" id="aclass_dynamic_array_html"><div class="ttname"><a href="class_dynamic_array.html">DynamicArray</a></div><div class="ttdoc">Dynamic array, to store entities, have a buffer, to don't tick newly added entities too early.</div><div class="ttdef"><b>Definition:</b> <a href="_dynamic_array_8hpp_source.html#l00014">DynamicArray.hpp:15</a></div></div>
+<div class="ttc" id="aclass_dynamic_array_html_ac316f2e7a1938687031cb5cc34df34cc"><div class="ttname"><a href="class_dynamic_array.html#ac316f2e7a1938687031cb5cc34df34cc">DynamicArray::end</a></div><div class="ttdeci">auto end()</div><div class="ttdef"><b>Definition:</b> <a href="_dynamic_array_8hpp_source.html#l00053">DynamicArray.hpp:53</a></div></div>
+<div class="ttc" id="aclass_dynamic_array_html_a180959557f211bf3fcdf5e26b7cb67ab"><div class="ttname"><a href="class_dynamic_array.html#a180959557f211bf3fcdf5e26b7cb67ab">DynamicArray::finalizeAdd</a></div><div class="ttdeci">auto finalizeAdd()</div><div class="ttdef"><b>Definition:</b> <a href="_dynamic_array_8hpp_source.html#l00033">DynamicArray.hpp:33</a></div></div>
+<div class="ttc" id="aclass_dynamic_array_html_a7d42e6eaa66bab7c43f193e78d2d56a9"><div class="ttname"><a href="class_dynamic_array.html#a7d42e6eaa66bab7c43f193e78d2d56a9">DynamicArray::DynamicArray</a></div><div class="ttdeci">DynamicArray()</div><div class="ttdef"><b>Definition:</b> <a href="_dynamic_array_8hpp_source.html#l00022">DynamicArray.hpp:22</a></div></div>
+<div class="ttc" id="aclass_dynamic_array_html_a9db6489676b4560684be1ba03233fca0"><div class="ttname"><a href="class_dynamic_array.html#a9db6489676b4560684be1ba03233fca0">DynamicArray::removeIf</a></div><div class="ttdeci">void removeIf(bool(*l)(const T &amp;))</div><div class="ttdef"><b>Definition:</b> <a href="_dynamic_array_8hpp_source.html#l00043">DynamicArray.hpp:43</a></div></div>
+<div class="ttc" id="aclass_dynamic_array_html_acbec0bb643ebec934cf5e9dfc1ecf01e"><div class="ttname"><a href="class_dynamic_array.html#acbec0bb643ebec934cf5e9dfc1ecf01e">DynamicArray::getSize</a></div><div class="ttdeci">int getSize() const</div><div class="ttdef"><b>Definition:</b> <a href="_dynamic_array_8hpp_source.html#l00057">DynamicArray.hpp:57</a></div></div>
+<div class="ttc" id="anamespaceolc_html_aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0"><div class="ttname"><a href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0">olc::T</a></div><div class="ttdeci">@ T</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00551">olcPixelGameEngine.h:551</a></div></div>
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/_e_m_gun_8cpp.html b/doxy/html/_e_m_gun_8cpp.html
new file mode 100644
index 0000000000000000000000000000000000000000..1c70cc2a2b770de0f1d0cd07e02278c757f907b7
--- /dev/null
+++ b/doxy/html/_e_m_gun_8cpp.html
@@ -0,0 +1,87 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: C:/Users/kosmx/Documents/GitHub/2d-game/EMGun.cpp File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#namespaces">Namespaces</a>  </div>
+  <div class="headertitle">
+<div class="title">C:/Users/kosmx/Documents/GitHub/2d-game/EMGun.cpp File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &quot;<a class="el" href="_e_m_gun_8h_source.html">EMGun.h</a>&quot;</code><br />
+<code>#include &lt;random&gt;</code><br />
+</div>
+<p><a href="_e_m_gun_8cpp_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
+Namespaces</h2></td></tr>
+<tr class="memitem:namespaceweapons"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceweapons.html">weapons</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/_e_m_gun_8cpp_source.html b/doxy/html/_e_m_gun_8cpp_source.html
new file mode 100644
index 0000000000000000000000000000000000000000..c77160d55382c914cb5cef14b4ec1743927ae423
--- /dev/null
+++ b/doxy/html/_e_m_gun_8cpp_source.html
@@ -0,0 +1,119 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: C:/Users/kosmx/Documents/GitHub/2d-game/EMGun.cpp Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="headertitle">
+<div class="title">C:/Users/kosmx/Documents/GitHub/2d-game/EMGun.cpp</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="_e_m_gun_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_e_m_gun_8h.html">EMGun.h</a>&quot;</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="preprocessor">#include &lt;random&gt;</span></div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160; </div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespaceweapons.html">weapons</a> {</div>
+<div class="line"><a name="l00005"></a><span class="lineno"><a class="line" href="classweapons_1_1_e_m_gun.html#a39114a620affbf0d80d616cf4baf7e17">    5</a></span>&#160;    <a class="code" href="classweapons_1_1_e_m_gun.html#a39114a620affbf0d80d616cf4baf7e17">EMGun::EMGun</a>(<a class="code" href="classrender_1_1_i_texture.html">render::ITexture</a>&amp; texture, <span class="keywordtype">float</span> cooldownTime, <span class="keywordtype">int</span> damage, <span class="keywordtype">float</span> projectileSpeed, <span class="keyword">const</span> std::string&amp; name, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; pos, <span class="keywordtype">float</span> energyRegen)</div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;        : <a class="code" href="classweapons_1_1_pistol.html">Pistol</a>(texture, cooldownTime, damage, projectileSpeed, name, pos), energyRegenRate(energyRegen) {}</div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;    </div>
+<div class="line"><a name="l00008"></a><span class="lineno"><a class="line" href="classweapons_1_1_e_m_gun.html#a8034852a4a5957c3d3bc00ca5f7df6e4">    8</a></span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="classweapons_1_1_e_m_gun.html#a8034852a4a5957c3d3bc00ca5f7df6e4">EMGun::use</a>(std::shared_ptr&lt;Entity&gt; user, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; direction)</div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;    {</div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;        <span class="keywordflow">if</span> (energy &lt; 10) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160; </div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;        <span class="keywordtype">float</span> r1 = (rand() % 1024 - 512) / 512.0;</div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;        <span class="keywordtype">float</span> r2 = (rand() % 1024 - 512) / 512.0;</div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;        <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a> randv(r1, r2);</div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;        randv = randv.<a class="code" href="structolc_1_1v2d__generic.html#a9c62f12d51859a5a487c5a0c2d00b09a">norm</a>()*direction.<a class="code" href="structolc_1_1v2d__generic.html#ab06016810fe727fa826e43e44e02008b">mag</a>();</div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;        <span class="keywordflow">if</span>(<a class="code" href="classweapons_1_1_ranged_weapon.html#a0e8915ad79021eb8fd79a1a3d7b1c92c">Pistol::use</a>(user, direction + randv/8)){</div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;            energy -= 10;</div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;            <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;        }</div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;        <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;    }</div>
+<div class="line"><a name="l00022"></a><span class="lineno"><a class="line" href="classweapons_1_1_e_m_gun.html#a1d2c920f4fddd40d39dba5d4dddf496f">   22</a></span>&#160;    <span class="keywordtype">float</span> <a class="code" href="classweapons_1_1_e_m_gun.html#a1d2c920f4fddd40d39dba5d4dddf496f">EMGun::getSecondaryBar</a>()</div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;    {</div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;        <span class="keywordflow">return</span> energy / 128.f;</div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;    }</div>
+<div class="line"><a name="l00026"></a><span class="lineno"><a class="line" href="classweapons_1_1_e_m_gun.html#a0bb30401aa36e2205c011ea0fcf40303">   26</a></span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="classweapons_1_1_e_m_gun.html#a0bb30401aa36e2205c011ea0fcf40303">EMGun::update</a>(<span class="keywordtype">float</span> dTick)</div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;    {</div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;        energy = std::min(energy + energyRegenRate * dTick, 128.f);</div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="classweapons_1_1_weapon.html#a1cbf391f196bd151f3e3f1ae1e316088">Pistol::update</a>(dTick) &amp;&amp; energy &gt; 10;</div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;    }</div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;}</div>
+</div><!-- fragment --></div><!-- contents -->
+<div class="ttc" id="astructolc_1_1v2d__generic_html"><div class="ttname"><a href="structolc_1_1v2d__generic.html">olc::v2d_generic&lt; float &gt;</a></div></div>
+<div class="ttc" id="aclassweapons_1_1_e_m_gun_html_a0bb30401aa36e2205c011ea0fcf40303"><div class="ttname"><a href="classweapons_1_1_e_m_gun.html#a0bb30401aa36e2205c011ea0fcf40303">weapons::EMGun::update</a></div><div class="ttdeci">bool update(float dTick) override</div><div class="ttdoc">Update the weapon in a Character's inventory.</div><div class="ttdef"><b>Definition:</b> <a href="_e_m_gun_8cpp_source.html#l00026">EMGun.cpp:26</a></div></div>
+<div class="ttc" id="aclassweapons_1_1_weapon_html_a1cbf391f196bd151f3e3f1ae1e316088"><div class="ttname"><a href="classweapons_1_1_weapon.html#a1cbf391f196bd151f3e3f1ae1e316088">weapons::Weapon::update</a></div><div class="ttdeci">virtual bool update(float dTick)</div><div class="ttdoc">Update the weapon in a Character's inventory.</div><div class="ttdef"><b>Definition:</b> <a href="_weapon_8cpp_source.html#l00018">Weapon.cpp:18</a></div></div>
+<div class="ttc" id="aclassweapons_1_1_ranged_weapon_html_a0e8915ad79021eb8fd79a1a3d7b1c92c"><div class="ttname"><a href="classweapons_1_1_ranged_weapon.html#a0e8915ad79021eb8fd79a1a3d7b1c92c">weapons::RangedWeapon::use</a></div><div class="ttdeci">bool use(std::shared_ptr&lt; Entity &gt; user, const olc::vf2d &amp;direction) override</div><div class="ttdef"><b>Definition:</b> <a href="_ranged_weapon_8cpp_source.html#l00010">RangedWeapon.cpp:10</a></div></div>
+<div class="ttc" id="aclassweapons_1_1_pistol_html"><div class="ttname"><a href="classweapons_1_1_pistol.html">weapons::Pistol</a></div><div class="ttdoc">Just a pistol, nothing too dangerous.</div><div class="ttdef"><b>Definition:</b> <a href="_pistol_8h_source.html#l00010">Pistol.h:12</a></div></div>
+<div class="ttc" id="aclassweapons_1_1_e_m_gun_html_a39114a620affbf0d80d616cf4baf7e17"><div class="ttname"><a href="classweapons_1_1_e_m_gun.html#a39114a620affbf0d80d616cf4baf7e17">weapons::EMGun::EMGun</a></div><div class="ttdeci">EMGun(render::ITexture &amp;texture, float cooldownTime, int damage, float projectileSpeed=10, const std::string &amp;name=&quot;RangedWeapon&quot;, const olc::vf2d &amp;pos={ 0, 0 }, float energyRegen=12)</div><div class="ttdef"><b>Definition:</b> <a href="_e_m_gun_8cpp_source.html#l00005">EMGun.cpp:5</a></div></div>
+<div class="ttc" id="aclassweapons_1_1_e_m_gun_html_a1d2c920f4fddd40d39dba5d4dddf496f"><div class="ttname"><a href="classweapons_1_1_e_m_gun.html#a1d2c920f4fddd40d39dba5d4dddf496f">weapons::EMGun::getSecondaryBar</a></div><div class="ttdeci">float getSecondaryBar() override</div><div class="ttdoc">Shows the energy level in the secondary status-bar.</div><div class="ttdef"><b>Definition:</b> <a href="_e_m_gun_8cpp_source.html#l00022">EMGun.cpp:22</a></div></div>
+<div class="ttc" id="astructolc_1_1v2d__generic_html_a9c62f12d51859a5a487c5a0c2d00b09a"><div class="ttname"><a href="structolc_1_1v2d__generic.html#a9c62f12d51859a5a487c5a0c2d00b09a">olc::v2d_generic::norm</a></div><div class="ttdeci">v2d_generic norm() const</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00592">olcPixelGameEngine.h:592</a></div></div>
+<div class="ttc" id="anamespaceweapons_html"><div class="ttname"><a href="namespaceweapons.html">weapons</a></div><div class="ttdef"><b>Definition:</b> <a href="_character_entity_8h_source.html#l00004">CharacterEntity.h:5</a></div></div>
+<div class="ttc" id="a_e_m_gun_8h_html"><div class="ttname"><a href="_e_m_gun_8h.html">EMGun.h</a></div></div>
+<div class="ttc" id="aclassrender_1_1_i_texture_html"><div class="ttname"><a href="classrender_1_1_i_texture.html">render::ITexture</a></div><div class="ttdoc">Every texture, what can render an entity.</div><div class="ttdef"><b>Definition:</b> <a href="_i_texture_8h_source.html#l00015">ITexture.h:16</a></div></div>
+<div class="ttc" id="aclassweapons_1_1_e_m_gun_html_a8034852a4a5957c3d3bc00ca5f7df6e4"><div class="ttname"><a href="classweapons_1_1_e_m_gun.html#a8034852a4a5957c3d3bc00ca5f7df6e4">weapons::EMGun::use</a></div><div class="ttdeci">bool use(std::shared_ptr&lt; Entity &gt; user, const olc::vf2d &amp;direction) override</div><div class="ttdef"><b>Definition:</b> <a href="_e_m_gun_8cpp_source.html#l00008">EMGun.cpp:8</a></div></div>
+<div class="ttc" id="astructolc_1_1v2d__generic_html_ab06016810fe727fa826e43e44e02008b"><div class="ttname"><a href="structolc_1_1v2d__generic.html#ab06016810fe727fa826e43e44e02008b">olc::v2d_generic::mag</a></div><div class="ttdeci">T mag() const</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00590">olcPixelGameEngine.h:590</a></div></div>
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/_e_m_gun_8h.html b/doxy/html/_e_m_gun_8h.html
new file mode 100644
index 0000000000000000000000000000000000000000..5bc6ee3d28d7ce3e4b9fdd570d5d66d1c5cedbbd
--- /dev/null
+++ b/doxy/html/_e_m_gun_8h.html
@@ -0,0 +1,93 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: C:/Users/kosmx/Documents/GitHub/2d-game/EMGun.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#nested-classes">Classes</a> &#124;
+<a href="#namespaces">Namespaces</a>  </div>
+  <div class="headertitle">
+<div class="title">C:/Users/kosmx/Documents/GitHub/2d-game/EMGun.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &quot;<a class="el" href="_pistol_8h_source.html">Pistol.h</a>&quot;</code><br />
+</div>
+<p><a href="_e_m_gun_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_e_m_gun.html">weapons::EMGun</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classweapons_1_1_weapon.html" title="You can throw it to the ground, this is why it&#39;s an entity. But it will be possible to use it....">Weapon</a> with energy level.  <a href="classweapons_1_1_e_m_gun.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
+Namespaces</h2></td></tr>
+<tr class="memitem:namespaceweapons"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceweapons.html">weapons</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/_e_m_gun_8h_source.html b/doxy/html/_e_m_gun_8h_source.html
new file mode 100644
index 0000000000000000000000000000000000000000..b3077fef31040a23b737bada610a70d7214425b1
--- /dev/null
+++ b/doxy/html/_e_m_gun_8h_source.html
@@ -0,0 +1,111 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: C:/Users/kosmx/Documents/GitHub/2d-game/EMGun.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="headertitle">
+<div class="title">C:/Users/kosmx/Documents/GitHub/2d-game/EMGun.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="_e_m_gun_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_pistol_8h.html">Pistol.h</a>&quot;</span></div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160; </div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespaceweapons.html">weapons</a></div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;{</div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160; </div>
+<div class="line"><a name="l00010"></a><span class="lineno"><a class="line" href="classweapons_1_1_e_m_gun.html">   10</a></span>&#160;    <span class="keyword">class </span><a class="code" href="classweapons_1_1_e_m_gun.html">EMGun</a> : <span class="keyword">public</span> <a class="code" href="classweapons_1_1_pistol.html">Pistol</a></div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;    {</div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;    <span class="keyword">private</span>:</div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;        <span class="keywordtype">float</span> energy = 128;</div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;        <span class="keywordtype">float</span> energyRegenRate;</div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;    <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;        <a class="code" href="classweapons_1_1_e_m_gun.html#a39114a620affbf0d80d616cf4baf7e17">EMGun</a>(<a class="code" href="classrender_1_1_i_texture.html">render::ITexture</a>&amp; texture, <span class="keywordtype">float</span> <a class="code" href="classweapons_1_1_weapon.html#aa3d78dae766eee8279326026dbb46f1f">cooldownTime</a>, <span class="keywordtype">int</span> <a class="code" href="classweapons_1_1_weapon.html#a397c372ffe2838f7c9c1ce67c06e55a9">damage</a>, <span class="keywordtype">float</span> <a class="code" href="classweapons_1_1_ranged_weapon.html#a299d09c213670d80f7215e2310c92889">projectileSpeed</a> = 10, <span class="keyword">const</span> std::string&amp; <a class="code" href="classweapons_1_1_weapon.html#a3dab7574419aed48f2a0f2d54cfcd825">name</a> = <span class="stringliteral">&quot;RangedWeapon&quot;</span>, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; <a class="code" href="classentities_1_1_entity.html#a04f9c2febe8d435138a07eb2f48ba96b">pos</a> = { 0, 0 }, <span class="keywordtype">float</span> energyRegen = 12);</div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160; </div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;        <span class="keywordtype">bool</span> <a class="code" href="classweapons_1_1_e_m_gun.html#a8034852a4a5957c3d3bc00ca5f7df6e4">use</a>(std::shared_ptr&lt;Entity&gt; user, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; direction) <span class="keyword">override</span>;</div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160; </div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;        <span class="keywordtype">float</span> <a class="code" href="classweapons_1_1_e_m_gun.html#a1d2c920f4fddd40d39dba5d4dddf496f">getSecondaryBar</a>() <span class="keyword">override</span>;</div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160; </div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;        <span class="keywordtype">bool</span> <a class="code" href="classweapons_1_1_e_m_gun.html#a0bb30401aa36e2205c011ea0fcf40303">update</a>(<span class="keywordtype">float</span> dTick) <span class="keyword">override</span>;</div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;    };</div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;}</div>
+</div><!-- fragment --></div><!-- contents -->
+<div class="ttc" id="astructolc_1_1v2d__generic_html"><div class="ttname"><a href="structolc_1_1v2d__generic.html">olc::v2d_generic&lt; float &gt;</a></div></div>
+<div class="ttc" id="aclassentities_1_1_entity_html_a04f9c2febe8d435138a07eb2f48ba96b"><div class="ttname"><a href="classentities_1_1_entity.html#a04f9c2febe8d435138a07eb2f48ba96b">entities::Entity::pos</a></div><div class="ttdeci">olc::vf2d pos</div><div class="ttdoc">it's position</div><div class="ttdef"><b>Definition:</b> <a href="_entity_8h_source.html#l00022">Entity.h:22</a></div></div>
+<div class="ttc" id="aclassweapons_1_1_e_m_gun_html_a0bb30401aa36e2205c011ea0fcf40303"><div class="ttname"><a href="classweapons_1_1_e_m_gun.html#a0bb30401aa36e2205c011ea0fcf40303">weapons::EMGun::update</a></div><div class="ttdeci">bool update(float dTick) override</div><div class="ttdoc">Update the weapon in a Character's inventory.</div><div class="ttdef"><b>Definition:</b> <a href="_e_m_gun_8cpp_source.html#l00026">EMGun.cpp:26</a></div></div>
+<div class="ttc" id="aclassweapons_1_1_ranged_weapon_html_a299d09c213670d80f7215e2310c92889"><div class="ttname"><a href="classweapons_1_1_ranged_weapon.html#a299d09c213670d80f7215e2310c92889">weapons::RangedWeapon::projectileSpeed</a></div><div class="ttdeci">float projectileSpeed</div><div class="ttdef"><b>Definition:</b> <a href="_ranged_weapon_8h_source.html#l00020">RangedWeapon.h:20</a></div></div>
+<div class="ttc" id="a_pistol_8h_html"><div class="ttname"><a href="_pistol_8h.html">Pistol.h</a></div></div>
+<div class="ttc" id="aclassweapons_1_1_pistol_html"><div class="ttname"><a href="classweapons_1_1_pistol.html">weapons::Pistol</a></div><div class="ttdoc">Just a pistol, nothing too dangerous.</div><div class="ttdef"><b>Definition:</b> <a href="_pistol_8h_source.html#l00010">Pistol.h:12</a></div></div>
+<div class="ttc" id="aclassweapons_1_1_weapon_html_a3dab7574419aed48f2a0f2d54cfcd825"><div class="ttname"><a href="classweapons_1_1_weapon.html#a3dab7574419aed48f2a0f2d54cfcd825">weapons::Weapon::name</a></div><div class="ttdeci">std::string name</div><div class="ttdef"><b>Definition:</b> <a href="_weapon_8h_source.html#l00020">Weapon.h:20</a></div></div>
+<div class="ttc" id="aclassweapons_1_1_e_m_gun_html_a39114a620affbf0d80d616cf4baf7e17"><div class="ttname"><a href="classweapons_1_1_e_m_gun.html#a39114a620affbf0d80d616cf4baf7e17">weapons::EMGun::EMGun</a></div><div class="ttdeci">EMGun(render::ITexture &amp;texture, float cooldownTime, int damage, float projectileSpeed=10, const std::string &amp;name=&quot;RangedWeapon&quot;, const olc::vf2d &amp;pos={ 0, 0 }, float energyRegen=12)</div><div class="ttdef"><b>Definition:</b> <a href="_e_m_gun_8cpp_source.html#l00005">EMGun.cpp:5</a></div></div>
+<div class="ttc" id="aclassweapons_1_1_e_m_gun_html_a1d2c920f4fddd40d39dba5d4dddf496f"><div class="ttname"><a href="classweapons_1_1_e_m_gun.html#a1d2c920f4fddd40d39dba5d4dddf496f">weapons::EMGun::getSecondaryBar</a></div><div class="ttdeci">float getSecondaryBar() override</div><div class="ttdoc">Shows the energy level in the secondary status-bar.</div><div class="ttdef"><b>Definition:</b> <a href="_e_m_gun_8cpp_source.html#l00022">EMGun.cpp:22</a></div></div>
+<div class="ttc" id="anamespaceweapons_html"><div class="ttname"><a href="namespaceweapons.html">weapons</a></div><div class="ttdef"><b>Definition:</b> <a href="_character_entity_8h_source.html#l00004">CharacterEntity.h:5</a></div></div>
+<div class="ttc" id="aclassweapons_1_1_weapon_html_aa3d78dae766eee8279326026dbb46f1f"><div class="ttname"><a href="classweapons_1_1_weapon.html#aa3d78dae766eee8279326026dbb46f1f">weapons::Weapon::cooldownTime</a></div><div class="ttdeci">float cooldownTime</div><div class="ttdef"><b>Definition:</b> <a href="_weapon_8h_source.html#l00018">Weapon.h:18</a></div></div>
+<div class="ttc" id="aclassweapons_1_1_e_m_gun_html"><div class="ttname"><a href="classweapons_1_1_e_m_gun.html">weapons::EMGun</a></div><div class="ttdoc">Weapon with energy level.</div><div class="ttdef"><b>Definition:</b> <a href="_e_m_gun_8h_source.html#l00010">EMGun.h:11</a></div></div>
+<div class="ttc" id="aclassrender_1_1_i_texture_html"><div class="ttname"><a href="classrender_1_1_i_texture.html">render::ITexture</a></div><div class="ttdoc">Every texture, what can render an entity.</div><div class="ttdef"><b>Definition:</b> <a href="_i_texture_8h_source.html#l00015">ITexture.h:16</a></div></div>
+<div class="ttc" id="aclassweapons_1_1_weapon_html_a397c372ffe2838f7c9c1ce67c06e55a9"><div class="ttname"><a href="classweapons_1_1_weapon.html#a397c372ffe2838f7c9c1ce67c06e55a9">weapons::Weapon::damage</a></div><div class="ttdeci">bool damage(int damage, Entity &amp;attacker) override</div><div class="ttdoc">something damage this</div><div class="ttdef"><b>Definition:</b> <a href="_weapon_8cpp_source.html#l00045">Weapon.cpp:45</a></div></div>
+<div class="ttc" id="aclassweapons_1_1_e_m_gun_html_a8034852a4a5957c3d3bc00ca5f7df6e4"><div class="ttname"><a href="classweapons_1_1_e_m_gun.html#a8034852a4a5957c3d3bc00ca5f7df6e4">weapons::EMGun::use</a></div><div class="ttdeci">bool use(std::shared_ptr&lt; Entity &gt; user, const olc::vf2d &amp;direction) override</div><div class="ttdef"><b>Definition:</b> <a href="_e_m_gun_8cpp_source.html#l00008">EMGun.cpp:8</a></div></div>
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/_entity_8cpp.html b/doxy/html/_entity_8cpp.html
new file mode 100644
index 0000000000000000000000000000000000000000..00e19b9114cdf50df44c8e4d1a6b44b355c4e2c0
--- /dev/null
+++ b/doxy/html/_entity_8cpp.html
@@ -0,0 +1,180 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: C:/Users/kosmx/Documents/GitHub/2d-game/Entity.cpp File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#namespaces">Namespaces</a> &#124;
+<a href="#func-members">Functions</a> &#124;
+<a href="#var-members">Variables</a>  </div>
+  <div class="headertitle">
+<div class="title">C:/Users/kosmx/Documents/GitHub/2d-game/Entity.cpp File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &quot;<a class="el" href="_entity_8h_source.html">Entity.h</a>&quot;</code><br />
+<code>#include &lt;sstream&gt;</code><br />
+</div>
+<p><a href="_entity_8cpp_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
+Namespaces</h2></td></tr>
+<tr class="memitem:namespaceentities"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceentities.html">entities</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a84cbcaa4d8a9e6ac00abf777323fb212"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classolc_1_1_transformed_view.html">TransformedView</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_entity_8cpp.html#a84cbcaa4d8a9e6ac00abf777323fb212">operator+=</a> (<a class="el" href="classolc_1_1_transformed_view.html">TransformedView</a> &amp;scene, <a class="el" href="classentities_1_1_entity.html">entities::Entity</a> &amp;entity)</td></tr>
+<tr class="separator:a84cbcaa4d8a9e6ac00abf777323fb212"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a31a0b92a35aadc02f58f7ab817fada44"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classolc_1_1_transformed_view.html">TransformedView</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_entity_8cpp.html#a31a0b92a35aadc02f58f7ab817fada44">operator+=</a> (<a class="el" href="classolc_1_1_transformed_view.html">TransformedView</a> &amp;scene, std::shared_ptr&lt; <a class="el" href="classentities_1_1_entity.html">entities::Entity</a> &gt; &amp;entity)</td></tr>
+<tr class="separator:a31a0b92a35aadc02f58f7ab817fada44"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a>
+Variables</h2></td></tr>
+<tr class="memitem:abbe123cdd88a2c284df8426f38efafca"><td class="memItemLeft" align="right" valign="top">const float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_entity_8cpp.html#abbe123cdd88a2c284df8426f38efafca">ignoreDistance</a> = 0.1f</td></tr>
+<tr class="separator:abbe123cdd88a2c284df8426f38efafca"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a id="a84cbcaa4d8a9e6ac00abf777323fb212"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a84cbcaa4d8a9e6ac00abf777323fb212">&#9670;&nbsp;</a></span>operator+=() <span class="overload">[1/2]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classolc_1_1_transformed_view.html">TransformedView</a>&amp; operator+= </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a> &amp;&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a> &amp;&#160;</td>
+          <td class="paramname">&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>I literally add entities to the scene :D </p>
+
+<p class="definition">Definition at line <a class="el" href="_entity_8cpp_source.html#l00082">82</a> of file <a class="el" href="_entity_8cpp_source.html">Entity.cpp</a>.</p>
+
+</div>
+</div>
+<a id="a31a0b92a35aadc02f58f7ab817fada44"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a31a0b92a35aadc02f58f7ab817fada44">&#9670;&nbsp;</a></span>operator+=() <span class="overload">[2/2]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classolc_1_1_transformed_view.html">TransformedView</a>&amp; operator+= </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="classolc_1_1_transformed_view.html">TransformedView</a> &amp;&#160;</td>
+          <td class="paramname"><em>scene</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">std::shared_ptr&lt; <a class="el" href="classentities_1_1_entity.html">entities::Entity</a> &gt; &amp;&#160;</td>
+          <td class="paramname"><em>entity</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="_entity_8cpp_source.html#l00087">87</a> of file <a class="el" href="_entity_8cpp_source.html">Entity.cpp</a>.</p>
+
+</div>
+</div>
+<h2 class="groupheader">Variable Documentation</h2>
+<a id="abbe123cdd88a2c284df8426f38efafca"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#abbe123cdd88a2c284df8426f38efafca">&#9670;&nbsp;</a></span>ignoreDistance</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">const float ignoreDistance = 0.1f</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="_entity_8cpp_source.html#l00008">8</a> of file <a class="el" href="_entity_8cpp_source.html">Entity.cpp</a>.</p>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/_entity_8cpp_source.html b/doxy/html/_entity_8cpp_source.html
new file mode 100644
index 0000000000000000000000000000000000000000..81361da54ed48bc864cce2e1996d8b519006d4e1
--- /dev/null
+++ b/doxy/html/_entity_8cpp_source.html
@@ -0,0 +1,189 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: C:/Users/kosmx/Documents/GitHub/2d-game/Entity.cpp Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="headertitle">
+<div class="title">C:/Users/kosmx/Documents/GitHub/2d-game/Entity.cpp</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="_entity_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_entity_8h.html">Entity.h</a>&quot;</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="preprocessor">#include &lt;sstream&gt;</span></div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160; </div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="keyword">using namespace </span>std;</div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="keyword">using namespace </span><a class="code" href="namespaceolc.html">olc</a>;</div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160; </div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment">// fine tuning the collision engine, the edges of a box won&#39;t collide</span></div>
+<div class="line"><a name="l00008"></a><span class="lineno"><a class="line" href="_entity_8cpp.html#abbe123cdd88a2c284df8426f38efafca">    8</a></span>&#160;<span class="keyword">const</span> <span class="keywordtype">float</span> <a class="code" href="_entity_8cpp.html#abbe123cdd88a2c284df8426f38efafca">ignoreDistance</a> = 0.1f;</div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160; </div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespaceentities.html">entities</a> {</div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;    <span class="comment">/*</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment">     * hitBox calc</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment">     * @parameter other the other entity</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment">     * @return to move to avoid collision</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment">     */</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"><a class="line" href="classentities_1_1_entity.html#a94d18db8d502d677b6f4215dc1e1d820">   16</a></span>&#160;    <a class="code" href="structolc_1_1v2d__generic.html">vf2d</a> Entity::getCollision(<span class="keyword">const</span> <a class="code" href="classentities_1_1_entity.html">Entity</a>&amp; other)</div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;    {</div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;        <span class="keywordflow">if</span> (&amp;other == <span class="keyword">this</span>)<span class="keywordflow">return</span> { 0, 0 }; <span class="comment">//don&#39;t do collision with itself</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;        </div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;        <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">vf2d</a> delta = this-&gt;getPos() - other.<a class="code" href="classentities_1_1_entity.html#a799a692b988248dd23d207b95e7fe2b7">getPos</a>();</div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;        <span class="comment">//pair&lt;bool, bool&gt; dir(delta.x &lt; 0, delta.y &lt; 0);</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;        <a class="code" href="structolc_1_1v2d__generic.html">vf2d</a> dir(delta.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a> &lt; 0 ? 1 : -1, delta.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a> &lt; 0 ? 1 : -1);</div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;        <a class="code" href="structolc_1_1v2d__generic.html">vf2d</a> offset(abs(delta.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a>), abs(delta.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a>));</div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;        <a class="code" href="structolc_1_1v2d__generic.html">vf2d</a> hitSize = this-&gt;getHitBoxSize() + other.<a class="code" href="classentities_1_1_entity.html#a9cd7ba81ddbd978b8f43e9f10e97492f">getHitBoxSize</a>();</div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;        offset -= hitSize;</div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;        offset = <a class="code" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">vf2d</a>(offset.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a> &lt; 0 ? offset.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a> : 0, offset.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a> &lt; 0 ? offset.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a> : 0);</div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;        offset *= dir;</div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;        hitSize -= <a class="code" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">vf2d</a>(<a class="code" href="_entity_8cpp.html#abbe123cdd88a2c284df8426f38efafca">ignoreDistance</a>, <a class="code" href="_entity_8cpp.html#abbe123cdd88a2c284df8426f38efafca">ignoreDistance</a>);</div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;        <span class="keywordflow">if</span> (abs(delta.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a>) &gt; hitSize.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a>) {</div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;            offset.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a> = 0;</div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;        }</div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;        <span class="keywordflow">if</span> (abs(delta.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a>) &gt; hitSize.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a>) {</div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;            offset.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a> = 0;</div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;        }</div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;        <span class="keywordflow">return</span> offset;</div>
+<div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;    }</div>
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160; </div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;    </div>
+<div class="line"><a name="l00039"></a><span class="lineno"><a class="line" href="classentities_1_1_entity.html#a539ddef34b718b6068df421f316f4a6d">   39</a></span>&#160;    Entity::Entity(<span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; pos)</div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;        : pos(pos), is_initialized(false), is_alive(true){}</div>
+<div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;    </div>
+<div class="line"><a name="l00042"></a><span class="lineno"><a class="line" href="classentities_1_1_entity.html#a799a692b988248dd23d207b95e7fe2b7">   42</a></span>&#160;    <a class="code" href="structolc_1_1v2d__generic.html">vf2d</a> <a class="code" href="classentities_1_1_entity.html#a799a692b988248dd23d207b95e7fe2b7">Entity::getPos</a>()<span class="keyword"> const</span></div>
+<div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;<span class="keyword">    </span>{</div>
+<div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;        <span class="keywordflow">return</span> this-&gt;<a class="code" href="classentities_1_1_entity.html#a04f9c2febe8d435138a07eb2f48ba96b">pos</a>;</div>
+<div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;    }</div>
+<div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;    </div>
+<div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="classentities_1_1_entity.html#ac60e9beb5a45fc65120e9779e680c04b">   47</a></span>&#160;    <a class="code" href="structolc_1_1v2d__generic.html">vf2d</a> <a class="code" href="classentities_1_1_entity.html#ac60e9beb5a45fc65120e9779e680c04b">Entity::getSize</a>()<span class="keyword"> const</span></div>
+<div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;<span class="keyword">    </span>{</div>
+<div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">vf2d</a>(1, 1);</div>
+<div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;    }</div>
+<div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;    </div>
+<div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="classentities_1_1_entity.html#abcc4364b5b7250f0364f3550a618b3ab">   52</a></span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classentities_1_1_entity.html#abcc4364b5b7250f0364f3550a618b3ab">Entity::render</a>(<a class="code" href="classolc_1_1_transformed_view.html">TransformedView</a>&amp; scene)</div>
+<div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;    {</div>
+<div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;        <a class="code" href="classentities_1_1_entity.html#af01b796fb472ef3139aea41aeed36c76">getTexture</a>().<a class="code" href="classrender_1_1_i_texture.html#aedf64dab92f17e22a807635493196913">render</a>(scene, *<span class="keyword">this</span>);</div>
+<div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;    }</div>
+<div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160; </div>
+<div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="classentities_1_1_entity.html#a8c4b0c1eb69a673619e4c8943ef34f86">   57</a></span>&#160;    std::string <a class="code" href="classentities_1_1_entity.html#a8c4b0c1eb69a673619e4c8943ef34f86">Entity::getName</a>()<span class="keyword"> const</span></div>
+<div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;<span class="keyword">    </span>{</div>
+<div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;        stringstream s;</div>
+<div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;        s &lt;&lt; <span class="stringliteral">&quot;Entity#&quot;</span> &lt;&lt; <span class="keyword">this</span>;</div>
+<div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;        <span class="keywordflow">return</span> s.str();</div>
+<div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;    }</div>
+<div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160; </div>
+<div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160; </div>
+<div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="classentities_1_1_entity.html#ab010066d52a02c63908f70ff6ef7d873">   65</a></span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="classentities_1_1_entity.html#ab010066d52a02c63908f70ff6ef7d873">Entity::isInitialized</a>()</div>
+<div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;    {</div>
+<div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="classentities_1_1_entity.html#a1453bca3376a185aa54135dd4958b244">is_initialized</a>;</div>
+<div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;    }</div>
+<div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160; </div>
+<div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="classentities_1_1_entity.html#ab0ee90a84f2163b600e603f24cff046f">   70</a></span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="classentities_1_1_entity.html#ab0ee90a84f2163b600e603f24cff046f">Entity::isAlive</a>()<span class="keyword"> const</span></div>
+<div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;<span class="keyword">    </span>{</div>
+<div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;        <span class="keywordflow">return</span> this-&gt;<a class="code" href="classentities_1_1_entity.html#aedac7bb35b729e4a02c582b9f4369ab8">is_alive</a>;</div>
+<div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;    }</div>
+<div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160; </div>
+<div class="line"><a name="l00075"></a><span class="lineno"><a class="line" href="classentities_1_1_entity.html#a59426fe1b7dcefe96a0a748250724ff6">   75</a></span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="classentities_1_1_entity.html#a59426fe1b7dcefe96a0a748250724ff6">Entity::canBeRemoved</a>()<span class="keyword"> const</span></div>
+<div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;<span class="keyword">    </span>{</div>
+<div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;        <span class="keywordflow">return</span> !this-&gt;<a class="code" href="classentities_1_1_entity.html#ab0ee90a84f2163b600e603f24cff046f">isAlive</a>(); <span class="comment">//most times</span></div>
+<div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;    }</div>
+<div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160; </div>
+<div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;}</div>
+<div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160; </div>
+<div class="line"><a name="l00082"></a><span class="lineno"><a class="line" href="_entity_8h.html#afba80426f5df447305cca8887a8ff92d">   82</a></span>&#160;<a class="code" href="classolc_1_1_transformed_view.html">TransformedView</a>&amp; <a class="code" href="_entity_8cpp.html#a84cbcaa4d8a9e6ac00abf777323fb212">operator+=</a>(<a class="code" href="classolc_1_1_transformed_view.html">TransformedView</a>&amp; scene, <a class="code" href="classentities_1_1_entity.html">entities::Entity</a>&amp; entity) {</div>
+<div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;    entity.<a class="code" href="classentities_1_1_entity.html#abcc4364b5b7250f0364f3550a618b3ab">render</a>(scene);</div>
+<div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;    <span class="keywordflow">return</span> scene;</div>
+<div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;}</div>
+<div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160; </div>
+<div class="line"><a name="l00087"></a><span class="lineno"><a class="line" href="_entity_8h.html#a2ed5201a4cd62b1183dd0a5b20f268cc">   87</a></span>&#160;<a class="code" href="classolc_1_1_transformed_view.html">TransformedView</a>&amp; <a class="code" href="_entity_8cpp.html#a84cbcaa4d8a9e6ac00abf777323fb212">operator+=</a>(<a class="code" href="classolc_1_1_transformed_view.html">TransformedView</a>&amp; scene, std::shared_ptr&lt;entities::Entity&gt;&amp; entity) {</div>
+<div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;    entity-&gt;render(scene);</div>
+<div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;    <span class="keywordflow">return</span> scene;</div>
+<div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;}</div>
+</div><!-- fragment --></div><!-- contents -->
+<div class="ttc" id="aclassentities_1_1_entity_html_ab0ee90a84f2163b600e603f24cff046f"><div class="ttname"><a href="classentities_1_1_entity.html#ab0ee90a84f2163b600e603f24cff046f">entities::Entity::isAlive</a></div><div class="ttdeci">virtual bool isAlive() const</div><div class="ttdef"><b>Definition:</b> <a href="_entity_8cpp_source.html#l00070">Entity.cpp:70</a></div></div>
+<div class="ttc" id="aclassentities_1_1_entity_html_aedac7bb35b729e4a02c582b9f4369ab8"><div class="ttname"><a href="classentities_1_1_entity.html#aedac7bb35b729e4a02c582b9f4369ab8">entities::Entity::is_alive</a></div><div class="ttdeci">bool is_alive</div><div class="ttdoc">true, if it is alive</div><div class="ttdef"><b>Definition:</b> <a href="_entity_8h_source.html#l00046">Entity.h:46</a></div></div>
+<div class="ttc" id="astructolc_1_1v2d__generic_html"><div class="ttname"><a href="structolc_1_1v2d__generic.html">olc::v2d_generic&lt; float &gt;</a></div></div>
+<div class="ttc" id="aclassentities_1_1_entity_html_a04f9c2febe8d435138a07eb2f48ba96b"><div class="ttname"><a href="classentities_1_1_entity.html#a04f9c2febe8d435138a07eb2f48ba96b">entities::Entity::pos</a></div><div class="ttdeci">olc::vf2d pos</div><div class="ttdoc">it's position</div><div class="ttdef"><b>Definition:</b> <a href="_entity_8h_source.html#l00022">Entity.h:22</a></div></div>
+<div class="ttc" id="astructolc_1_1v2d__generic_html_a5a9c94207b2163c69a39190c320fcbdf"><div class="ttname"><a href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">olc::v2d_generic::y</a></div><div class="ttdeci">T y</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00585">olcPixelGameEngine.h:585</a></div></div>
+<div class="ttc" id="aclassentities_1_1_entity_html_a9cd7ba81ddbd978b8f43e9f10e97492f"><div class="ttname"><a href="classentities_1_1_entity.html#a9cd7ba81ddbd978b8f43e9f10e97492f">entities::Entity::getHitBoxSize</a></div><div class="ttdeci">virtual olc::vf2d getHitBoxSize() const =0</div><div class="ttdoc">half hitbox size</div></div>
+<div class="ttc" id="anamespaceolc_html_adb87819740ea9625f84c821fffb16429"><div class="ttname"><a href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a></div><div class="ttdeci">v2d_generic&lt; float &gt; vf2d</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00646">olcPixelGameEngine.h:646</a></div></div>
+<div class="ttc" id="aclassentities_1_1_entity_html_a59426fe1b7dcefe96a0a748250724ff6"><div class="ttname"><a href="classentities_1_1_entity.html#a59426fe1b7dcefe96a0a748250724ff6">entities::Entity::canBeRemoved</a></div><div class="ttdeci">virtual bool canBeRemoved() const</div><div class="ttdef"><b>Definition:</b> <a href="_entity_8cpp_source.html#l00075">Entity.cpp:75</a></div></div>
+<div class="ttc" id="astructolc_1_1v2d__generic_html_a2c6ce2738720f5e098c7d0bf17f33807"><div class="ttname"><a href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">olc::v2d_generic::x</a></div><div class="ttdeci">T x</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00584">olcPixelGameEngine.h:584</a></div></div>
+<div class="ttc" id="aclassentities_1_1_entity_html_a799a692b988248dd23d207b95e7fe2b7"><div class="ttname"><a href="classentities_1_1_entity.html#a799a692b988248dd23d207b95e7fe2b7">entities::Entity::getPos</a></div><div class="ttdeci">virtual olc::vf2d getPos() const</div><div class="ttdef"><b>Definition:</b> <a href="_entity_8cpp_source.html#l00042">Entity.cpp:42</a></div></div>
+<div class="ttc" id="anamespaceolc_html"><div class="ttname"><a href="namespaceolc.html">olc</a></div><div class="ttdef"><b>Definition:</b> <a href="olc_p_g_e_x___transformed_view_8h_source.html#l00077">olcPGEX_TransformedView.h:78</a></div></div>
+<div class="ttc" id="a_entity_8cpp_html_a84cbcaa4d8a9e6ac00abf777323fb212"><div class="ttname"><a href="_entity_8cpp.html#a84cbcaa4d8a9e6ac00abf777323fb212">operator+=</a></div><div class="ttdeci">TransformedView &amp; operator+=(TransformedView &amp;scene, entities::Entity &amp;entity)</div><div class="ttdef"><b>Definition:</b> <a href="_entity_8cpp_source.html#l00082">Entity.cpp:82</a></div></div>
+<div class="ttc" id="aclassentities_1_1_entity_html_ac60e9beb5a45fc65120e9779e680c04b"><div class="ttname"><a href="classentities_1_1_entity.html#ac60e9beb5a45fc65120e9779e680c04b">entities::Entity::getSize</a></div><div class="ttdeci">virtual olc::vf2d getSize() const</div><div class="ttdoc">get it's size to render</div><div class="ttdef"><b>Definition:</b> <a href="_entity_8cpp_source.html#l00047">Entity.cpp:47</a></div></div>
+<div class="ttc" id="aclassentities_1_1_entity_html_af01b796fb472ef3139aea41aeed36c76"><div class="ttname"><a href="classentities_1_1_entity.html#af01b796fb472ef3139aea41aeed36c76">entities::Entity::getTexture</a></div><div class="ttdeci">virtual render::ITexture &amp; getTexture()=0</div><div class="ttdoc">the object's texture</div></div>
+<div class="ttc" id="aclassentities_1_1_entity_html"><div class="ttname"><a href="classentities_1_1_entity.html">entities::Entity</a></div><div class="ttdoc">Every object, what can be on the map.</div><div class="ttdef"><b>Definition:</b> <a href="_entity_8h_source.html#l00016">Entity.h:17</a></div></div>
+<div class="ttc" id="a_entity_8cpp_html_abbe123cdd88a2c284df8426f38efafca"><div class="ttname"><a href="_entity_8cpp.html#abbe123cdd88a2c284df8426f38efafca">ignoreDistance</a></div><div class="ttdeci">const float ignoreDistance</div><div class="ttdef"><b>Definition:</b> <a href="_entity_8cpp_source.html#l00008">Entity.cpp:8</a></div></div>
+<div class="ttc" id="aclassrender_1_1_i_texture_html_aedf64dab92f17e22a807635493196913"><div class="ttname"><a href="classrender_1_1_i_texture.html#aedf64dab92f17e22a807635493196913">render::ITexture::render</a></div><div class="ttdeci">virtual void render(olc::TransformedView &amp;scene, entities::Entity &amp;entity)=0</div><div class="ttdoc">Render the sprite, abstract function.</div></div>
+<div class="ttc" id="a_entity_8h_html"><div class="ttname"><a href="_entity_8h.html">Entity.h</a></div></div>
+<div class="ttc" id="aclassentities_1_1_entity_html_a8c4b0c1eb69a673619e4c8943ef34f86"><div class="ttname"><a href="classentities_1_1_entity.html#a8c4b0c1eb69a673619e4c8943ef34f86">entities::Entity::getName</a></div><div class="ttdeci">virtual std::string getName() const</div><div class="ttdef"><b>Definition:</b> <a href="_entity_8cpp_source.html#l00057">Entity.cpp:57</a></div></div>
+<div class="ttc" id="aclassentities_1_1_entity_html_ab010066d52a02c63908f70ff6ef7d873"><div class="ttname"><a href="classentities_1_1_entity.html#ab010066d52a02c63908f70ff6ef7d873">entities::Entity::isInitialized</a></div><div class="ttdeci">virtual bool isInitialized()</div><div class="ttdef"><b>Definition:</b> <a href="_entity_8cpp_source.html#l00065">Entity.cpp:65</a></div></div>
+<div class="ttc" id="anamespaceentities_html"><div class="ttname"><a href="namespaceentities.html">entities</a></div><div class="ttdef"><b>Definition:</b> <a href="_character_entity_8cpp_source.html#l00005">CharacterEntity.cpp:5</a></div></div>
+<div class="ttc" id="aclassolc_1_1_transformed_view_html"><div class="ttname"><a href="classolc_1_1_transformed_view.html">olc::TransformedView</a></div><div class="ttdef"><b>Definition:</b> <a href="olc_p_g_e_x___transformed_view_8h_source.html#l00079">olcPGEX_TransformedView.h:80</a></div></div>
+<div class="ttc" id="aclassentities_1_1_entity_html_abcc4364b5b7250f0364f3550a618b3ab"><div class="ttname"><a href="classentities_1_1_entity.html#abcc4364b5b7250f0364f3550a618b3ab">entities::Entity::render</a></div><div class="ttdeci">virtual void render(olc::TransformedView &amp;scene)</div><div class="ttdoc">render</div><div class="ttdef"><b>Definition:</b> <a href="_entity_8cpp_source.html#l00052">Entity.cpp:52</a></div></div>
+<div class="ttc" id="aclassentities_1_1_entity_html_a1453bca3376a185aa54135dd4958b244"><div class="ttname"><a href="classentities_1_1_entity.html#a1453bca3376a185aa54135dd4958b244">entities::Entity::is_initialized</a></div><div class="ttdeci">bool is_initialized</div><div class="ttdoc">well, is initialized</div><div class="ttdef"><b>Definition:</b> <a href="_entity_8h_source.html#l00042">Entity.h:42</a></div></div>
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/_entity_8h.html b/doxy/html/_entity_8h.html
new file mode 100644
index 0000000000000000000000000000000000000000..731f6196f90b82b4d9aab942d228a5426fff1193
--- /dev/null
+++ b/doxy/html/_entity_8h.html
@@ -0,0 +1,164 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: C:/Users/kosmx/Documents/GitHub/2d-game/Entity.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#nested-classes">Classes</a> &#124;
+<a href="#namespaces">Namespaces</a> &#124;
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">C:/Users/kosmx/Documents/GitHub/2d-game/Entity.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &quot;<a class="el" href="olc_8h_source.html">olc.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="_i_texture_8h_source.html">ITexture.h</a>&quot;</code><br />
+</div>
+<p><a href="_entity_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Every object, what can be on the map.  <a href="classentities_1_1_entity.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
+Namespaces</h2></td></tr>
+<tr class="memitem:namespaceentities"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceentities.html">entities</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:afba80426f5df447305cca8887a8ff92d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_entity_8h.html#afba80426f5df447305cca8887a8ff92d">operator+=</a> (<a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a> &amp;, <a class="el" href="classentities_1_1_entity.html">entities::Entity</a> &amp;)</td></tr>
+<tr class="separator:afba80426f5df447305cca8887a8ff92d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2ed5201a4cd62b1183dd0a5b20f268cc"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_entity_8h.html#a2ed5201a4cd62b1183dd0a5b20f268cc">operator+=</a> (<a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a> &amp;, std::shared_ptr&lt; <a class="el" href="classentities_1_1_entity.html">entities::Entity</a> &gt; &amp;)</td></tr>
+<tr class="separator:a2ed5201a4cd62b1183dd0a5b20f268cc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a id="afba80426f5df447305cca8887a8ff92d"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#afba80426f5df447305cca8887a8ff92d">&#9670;&nbsp;</a></span>operator+=() <span class="overload">[1/2]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a>&amp; operator+= </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a> &amp;&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a> &amp;&#160;</td>
+          <td class="paramname">&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>I literally add entities to the scene :D </p>
+
+<p class="definition">Definition at line <a class="el" href="_entity_8cpp_source.html#l00082">82</a> of file <a class="el" href="_entity_8cpp_source.html">Entity.cpp</a>.</p>
+
+</div>
+</div>
+<a id="a2ed5201a4cd62b1183dd0a5b20f268cc"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a2ed5201a4cd62b1183dd0a5b20f268cc">&#9670;&nbsp;</a></span>operator+=() <span class="overload">[2/2]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a>&amp; operator+= </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a> &amp;&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">std::shared_ptr&lt; <a class="el" href="classentities_1_1_entity.html">entities::Entity</a> &gt; &amp;&#160;</td>
+          <td class="paramname">&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="_entity_8cpp_source.html#l00087">87</a> of file <a class="el" href="_entity_8cpp_source.html">Entity.cpp</a>.</p>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/_entity_8h_source.html b/doxy/html/_entity_8h_source.html
new file mode 100644
index 0000000000000000000000000000000000000000..f98a714aa607d46e345dfc9583221ec9ecd7f0c5
--- /dev/null
+++ b/doxy/html/_entity_8h_source.html
@@ -0,0 +1,160 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: C:/Users/kosmx/Documents/GitHub/2d-game/Entity.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="headertitle">
+<div class="title">C:/Users/kosmx/Documents/GitHub/2d-game/Entity.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="_entity_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160; </div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="olc_8h.html">olc.h</a>&quot;</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_i_texture_8h.html">ITexture.h</a>&quot;</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160; </div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="keyword">class </span><a class="code" href="class_game_client.html">GameClient</a>;</div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160; </div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespaceentities.html">entities</a> {</div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160; </div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;    <span class="keyword">class </span>WallEntity;</div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;    <span class="keyword">class </span>LivingEntity;</div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160; </div>
+<div class="line"><a name="l00016"></a><span class="lineno"><a class="line" href="classentities_1_1_entity.html">   16</a></span>&#160;    <span class="keyword">class </span><a class="code" href="classentities_1_1_entity.html">Entity</a></div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;    {</div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;    <span class="keyword">protected</span>:</div>
+<div class="line"><a name="l00022"></a><span class="lineno"><a class="line" href="classentities_1_1_entity.html#a04f9c2febe8d435138a07eb2f48ba96b">   22</a></span>&#160;        <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a> <a class="code" href="classentities_1_1_entity.html#a04f9c2febe8d435138a07eb2f48ba96b">pos</a>; <span class="comment">//I can store these safely directly</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno"><a class="line" href="classentities_1_1_entity.html#af01b796fb472ef3139aea41aeed36c76">   27</a></span>&#160;<span class="comment"></span>        <span class="keyword">virtual</span> <a class="code" href="classrender_1_1_i_texture.html">render::ITexture</a>&amp; <a class="code" href="classentities_1_1_entity.html#af01b796fb472ef3139aea41aeed36c76">getTexture</a>() = 0;</div>
+<div class="line"><a name="l00032"></a><span class="lineno"><a class="line" href="classentities_1_1_entity.html#a9cd7ba81ddbd978b8f43e9f10e97492f">   32</a></span>&#160;        <span class="keyword">virtual</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a> <a class="code" href="classentities_1_1_entity.html#a9cd7ba81ddbd978b8f43e9f10e97492f">getHitBoxSize</a>() <span class="keyword">const</span> = 0;</div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;        <span class="keyword">virtual</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a> <a class="code" href="classentities_1_1_entity.html#a94d18db8d502d677b6f4215dc1e1d820">getCollision</a>(<span class="keyword">const</span> <a class="code" href="classentities_1_1_entity.html">Entity</a>&amp; other);</div>
+<div class="line"><a name="l00042"></a><span class="lineno"><a class="line" href="classentities_1_1_entity.html#a1453bca3376a185aa54135dd4958b244">   42</a></span>&#160;        <span class="keywordtype">bool</span> <a class="code" href="classentities_1_1_entity.html#a1453bca3376a185aa54135dd4958b244">is_initialized</a>;</div>
+<div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="classentities_1_1_entity.html#aedac7bb35b729e4a02c582b9f4369ab8">   46</a></span>&#160;        <span class="keywordtype">bool</span> <a class="code" href="classentities_1_1_entity.html#aedac7bb35b729e4a02c582b9f4369ab8">is_alive</a>; <span class="comment">//walls shouldn&#39;t have variables like this. But it will be an intended bug.</span></div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;    <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160; </div>
+<div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;        <span class="keyword">explicit</span> <a class="code" href="classentities_1_1_entity.html#a539ddef34b718b6068df421f316f4a6d">Entity</a>(<span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; <a class="code" href="classentities_1_1_entity.html#a04f9c2febe8d435138a07eb2f48ba96b">pos</a>);</div>
+<div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160; </div>
+<div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="classentities_1_1_entity.html#afd80ddceccb36b87d0d80dcc7f88fc3b">   51</a></span>&#160;        <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classentities_1_1_entity.html#afd80ddceccb36b87d0d80dcc7f88fc3b">init</a>(<a class="code" href="class_game_client.html">GameClient</a>&amp; client){}</div>
+<div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;        <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classentities_1_1_entity.html#ab010066d52a02c63908f70ff6ef7d873">isInitialized</a>();</div>
+<div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160; </div>
+<div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;        <span class="comment">//nodiscard???</span></div>
+<div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;        [[nodiscard]] <span class="keyword">virtual</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a> <a class="code" href="classentities_1_1_entity.html#a799a692b988248dd23d207b95e7fe2b7">getPos</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;        [[nodiscard]] <span class="keyword">virtual</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a> <a class="code" href="classentities_1_1_entity.html#ac60e9beb5a45fc65120e9779e680c04b">getSize</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;        [[nodiscard]] <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classentities_1_1_entity.html#ab0ee90a84f2163b600e603f24cff046f">isAlive</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;        [[nodiscard]] <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classentities_1_1_entity.html#a59426fe1b7dcefe96a0a748250724ff6">canBeRemoved</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160; </div>
+<div class="line"><a name="l00072"></a><span class="lineno"><a class="line" href="classentities_1_1_entity.html#a0440674bf90ae83d9a26aa4b0ac8309e">   72</a></span>&#160;        <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classentities_1_1_entity.html#a0440674bf90ae83d9a26aa4b0ac8309e">tick</a>(<a class="code" href="class_game_client.html">GameClient</a>&amp; client, <span class="keywordtype">float</span> deltaT, std::shared_ptr&lt;Entity&gt;&amp; shared_this){}</div>
+<div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160; </div>
+<div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="classentities_1_1_entity.html#af7fc9949fc50b1b31abb36a3d51b0597">   80</a></span>&#160;        <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classentities_1_1_entity.html#af7fc9949fc50b1b31abb36a3d51b0597">damage</a>(<span class="keywordtype">int</span> <a class="code" href="classentities_1_1_entity.html#af7fc9949fc50b1b31abb36a3d51b0597">damage</a>, <a class="code" href="classentities_1_1_entity.html">Entity</a>&amp; attacker) = 0;</div>
+<div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;        <span class="comment">//this shouldn&#39;t change it&#39;s state</span></div>
+<div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;<span class="comment"></span>        <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classentities_1_1_entity.html#abcc4364b5b7250f0364f3550a618b3ab">render</a>(<a class="code" href="classolc_1_1_transformed_view.html">olc::TransformedView</a>&amp; scene);</div>
+<div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160; </div>
+<div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;        <span class="keyword">virtual</span> std::string <a class="code" href="classentities_1_1_entity.html#a8c4b0c1eb69a673619e4c8943ef34f86">getName</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;        </div>
+<div class="line"><a name="l00089"></a><span class="lineno"><a class="line" href="classentities_1_1_entity.html#a64d968c160dee2fdfca68aff2e49946b">   89</a></span>&#160;        <span class="keyword">virtual</span> <a class="code" href="classentities_1_1_entity.html#a64d968c160dee2fdfca68aff2e49946b">~Entity</a>() = <span class="keywordflow">default</span>;</div>
+<div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160; </div>
+<div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160; </div>
+<div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;        </div>
+<div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160; </div>
+<div class="line"><a name="l00094"></a><span class="lineno"><a class="line" href="classentities_1_1_entity.html#ad0a172ff99a7e73aaaee3658d5e3ae08">   94</a></span>&#160;        <span class="keyword">virtual</span> <span class="keyword">operator</span> <a class="code" href="classentities_1_1_wall_entity.html">WallEntity</a>* (){</div>
+<div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;            <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div>
+<div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;        }</div>
+<div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;    };</div>
+<div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160; </div>
+<div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160; </div>
+<div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;}</div>
+<div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160; </div>
+<div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;<a class="code" href="classolc_1_1_transformed_view.html">olc::TransformedView</a>&amp; <a class="code" href="_entity_8h.html#afba80426f5df447305cca8887a8ff92d">operator+=</a>(<a class="code" href="classolc_1_1_transformed_view.html">olc::TransformedView</a>&amp;, <a class="code" href="classentities_1_1_entity.html">entities::Entity</a>&amp;);</div>
+<div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;<a class="code" href="classolc_1_1_transformed_view.html">olc::TransformedView</a>&amp; <a class="code" href="_entity_8h.html#afba80426f5df447305cca8887a8ff92d">operator+=</a>(<a class="code" href="classolc_1_1_transformed_view.html">olc::TransformedView</a>&amp;, std::shared_ptr&lt;entities::Entity&gt;&amp;);</div>
+</div><!-- fragment --></div><!-- contents -->
+<div class="ttc" id="a_entity_8h_html_afba80426f5df447305cca8887a8ff92d"><div class="ttname"><a href="_entity_8h.html#afba80426f5df447305cca8887a8ff92d">operator+=</a></div><div class="ttdeci">olc::TransformedView &amp; operator+=(olc::TransformedView &amp;, entities::Entity &amp;)</div><div class="ttdef"><b>Definition:</b> <a href="_entity_8cpp_source.html#l00082">Entity.cpp:82</a></div></div>
+<div class="ttc" id="aclassentities_1_1_entity_html_ab0ee90a84f2163b600e603f24cff046f"><div class="ttname"><a href="classentities_1_1_entity.html#ab0ee90a84f2163b600e603f24cff046f">entities::Entity::isAlive</a></div><div class="ttdeci">virtual bool isAlive() const</div><div class="ttdef"><b>Definition:</b> <a href="_entity_8cpp_source.html#l00070">Entity.cpp:70</a></div></div>
+<div class="ttc" id="aclassentities_1_1_entity_html_aedac7bb35b729e4a02c582b9f4369ab8"><div class="ttname"><a href="classentities_1_1_entity.html#aedac7bb35b729e4a02c582b9f4369ab8">entities::Entity::is_alive</a></div><div class="ttdeci">bool is_alive</div><div class="ttdoc">true, if it is alive</div><div class="ttdef"><b>Definition:</b> <a href="_entity_8h_source.html#l00046">Entity.h:46</a></div></div>
+<div class="ttc" id="aclassentities_1_1_wall_entity_html"><div class="ttname"><a href="classentities_1_1_wall_entity.html">entities::WallEntity</a></div><div class="ttdoc">Just a stupid wall, it doesn't do much, can't be killed...</div><div class="ttdef"><b>Definition:</b> <a href="_wall_entity_8h_source.html#l00011">WallEntity.h:12</a></div></div>
+<div class="ttc" id="astructolc_1_1v2d__generic_html"><div class="ttname"><a href="structolc_1_1v2d__generic.html">olc::v2d_generic&lt; float &gt;</a></div></div>
+<div class="ttc" id="aclassentities_1_1_entity_html_a04f9c2febe8d435138a07eb2f48ba96b"><div class="ttname"><a href="classentities_1_1_entity.html#a04f9c2febe8d435138a07eb2f48ba96b">entities::Entity::pos</a></div><div class="ttdeci">olc::vf2d pos</div><div class="ttdoc">it's position</div><div class="ttdef"><b>Definition:</b> <a href="_entity_8h_source.html#l00022">Entity.h:22</a></div></div>
+<div class="ttc" id="aclassentities_1_1_entity_html_a9cd7ba81ddbd978b8f43e9f10e97492f"><div class="ttname"><a href="classentities_1_1_entity.html#a9cd7ba81ddbd978b8f43e9f10e97492f">entities::Entity::getHitBoxSize</a></div><div class="ttdeci">virtual olc::vf2d getHitBoxSize() const =0</div><div class="ttdoc">half hitbox size</div></div>
+<div class="ttc" id="aolc_8h_html"><div class="ttname"><a href="olc_8h.html">olc.h</a></div></div>
+<div class="ttc" id="aclassentities_1_1_entity_html_a59426fe1b7dcefe96a0a748250724ff6"><div class="ttname"><a href="classentities_1_1_entity.html#a59426fe1b7dcefe96a0a748250724ff6">entities::Entity::canBeRemoved</a></div><div class="ttdeci">virtual bool canBeRemoved() const</div><div class="ttdef"><b>Definition:</b> <a href="_entity_8cpp_source.html#l00075">Entity.cpp:75</a></div></div>
+<div class="ttc" id="aclassentities_1_1_entity_html_a0440674bf90ae83d9a26aa4b0ac8309e"><div class="ttname"><a href="classentities_1_1_entity.html#a0440674bf90ae83d9a26aa4b0ac8309e">entities::Entity::tick</a></div><div class="ttdeci">virtual void tick(GameClient &amp;client, float deltaT, std::shared_ptr&lt; Entity &gt; &amp;shared_this)</div><div class="ttdoc">Entity tick multiple times per sec.</div><div class="ttdef"><b>Definition:</b> <a href="_entity_8h_source.html#l00072">Entity.h:72</a></div></div>
+<div class="ttc" id="aclassentities_1_1_entity_html_a799a692b988248dd23d207b95e7fe2b7"><div class="ttname"><a href="classentities_1_1_entity.html#a799a692b988248dd23d207b95e7fe2b7">entities::Entity::getPos</a></div><div class="ttdeci">virtual olc::vf2d getPos() const</div><div class="ttdef"><b>Definition:</b> <a href="_entity_8cpp_source.html#l00042">Entity.cpp:42</a></div></div>
+<div class="ttc" id="aclassentities_1_1_entity_html_af7fc9949fc50b1b31abb36a3d51b0597"><div class="ttname"><a href="classentities_1_1_entity.html#af7fc9949fc50b1b31abb36a3d51b0597">entities::Entity::damage</a></div><div class="ttdeci">virtual bool damage(int damage, Entity &amp;attacker)=0</div><div class="ttdoc">something damage this</div></div>
+<div class="ttc" id="aclassentities_1_1_entity_html_ac60e9beb5a45fc65120e9779e680c04b"><div class="ttname"><a href="classentities_1_1_entity.html#ac60e9beb5a45fc65120e9779e680c04b">entities::Entity::getSize</a></div><div class="ttdeci">virtual olc::vf2d getSize() const</div><div class="ttdoc">get it's size to render</div><div class="ttdef"><b>Definition:</b> <a href="_entity_8cpp_source.html#l00047">Entity.cpp:47</a></div></div>
+<div class="ttc" id="aclassentities_1_1_entity_html_af01b796fb472ef3139aea41aeed36c76"><div class="ttname"><a href="classentities_1_1_entity.html#af01b796fb472ef3139aea41aeed36c76">entities::Entity::getTexture</a></div><div class="ttdeci">virtual render::ITexture &amp; getTexture()=0</div><div class="ttdoc">the object's texture</div></div>
+<div class="ttc" id="a_i_texture_8h_html"><div class="ttname"><a href="_i_texture_8h.html">ITexture.h</a></div></div>
+<div class="ttc" id="aclass_game_client_html"><div class="ttname"><a href="class_game_client.html">GameClient</a></div><div class="ttdoc">The game main class itself. manages the entities, adjust the screen...</div><div class="ttdef"><b>Definition:</b> <a href="main_game_8h_source.html#l00011">mainGame.h:13</a></div></div>
+<div class="ttc" id="aclassentities_1_1_entity_html"><div class="ttname"><a href="classentities_1_1_entity.html">entities::Entity</a></div><div class="ttdoc">Every object, what can be on the map.</div><div class="ttdef"><b>Definition:</b> <a href="_entity_8h_source.html#l00016">Entity.h:17</a></div></div>
+<div class="ttc" id="aclassrender_1_1_i_texture_html"><div class="ttname"><a href="classrender_1_1_i_texture.html">render::ITexture</a></div><div class="ttdoc">Every texture, what can render an entity.</div><div class="ttdef"><b>Definition:</b> <a href="_i_texture_8h_source.html#l00015">ITexture.h:16</a></div></div>
+<div class="ttc" id="aclassentities_1_1_entity_html_a8c4b0c1eb69a673619e4c8943ef34f86"><div class="ttname"><a href="classentities_1_1_entity.html#a8c4b0c1eb69a673619e4c8943ef34f86">entities::Entity::getName</a></div><div class="ttdeci">virtual std::string getName() const</div><div class="ttdef"><b>Definition:</b> <a href="_entity_8cpp_source.html#l00057">Entity.cpp:57</a></div></div>
+<div class="ttc" id="aclassentities_1_1_entity_html_a539ddef34b718b6068df421f316f4a6d"><div class="ttname"><a href="classentities_1_1_entity.html#a539ddef34b718b6068df421f316f4a6d">entities::Entity::Entity</a></div><div class="ttdeci">Entity(const olc::vf2d &amp;pos)</div><div class="ttdef"><b>Definition:</b> <a href="_entity_8cpp_source.html#l00039">Entity.cpp:39</a></div></div>
+<div class="ttc" id="aclassentities_1_1_entity_html_ab010066d52a02c63908f70ff6ef7d873"><div class="ttname"><a href="classentities_1_1_entity.html#ab010066d52a02c63908f70ff6ef7d873">entities::Entity::isInitialized</a></div><div class="ttdeci">virtual bool isInitialized()</div><div class="ttdef"><b>Definition:</b> <a href="_entity_8cpp_source.html#l00065">Entity.cpp:65</a></div></div>
+<div class="ttc" id="anamespaceentities_html"><div class="ttname"><a href="namespaceentities.html">entities</a></div><div class="ttdef"><b>Definition:</b> <a href="_character_entity_8cpp_source.html#l00005">CharacterEntity.cpp:5</a></div></div>
+<div class="ttc" id="aclassolc_1_1_transformed_view_html"><div class="ttname"><a href="classolc_1_1_transformed_view.html">olc::TransformedView</a></div><div class="ttdef"><b>Definition:</b> <a href="olc_p_g_e_x___transformed_view_8h_source.html#l00079">olcPGEX_TransformedView.h:80</a></div></div>
+<div class="ttc" id="aclassentities_1_1_entity_html_a94d18db8d502d677b6f4215dc1e1d820"><div class="ttname"><a href="classentities_1_1_entity.html#a94d18db8d502d677b6f4215dc1e1d820">entities::Entity::getCollision</a></div><div class="ttdeci">virtual olc::vf2d getCollision(const Entity &amp;other)</div><div class="ttdoc">Calculate collision with another Entity, how much should this entity move, to avoid the collision.</div><div class="ttdef"><b>Definition:</b> <a href="_entity_8cpp_source.html#l00016">Entity.cpp:16</a></div></div>
+<div class="ttc" id="aclassentities_1_1_entity_html_a64d968c160dee2fdfca68aff2e49946b"><div class="ttname"><a href="classentities_1_1_entity.html#a64d968c160dee2fdfca68aff2e49946b">entities::Entity::~Entity</a></div><div class="ttdeci">virtual ~Entity()=default</div></div>
+<div class="ttc" id="aclassentities_1_1_entity_html_abcc4364b5b7250f0364f3550a618b3ab"><div class="ttname"><a href="classentities_1_1_entity.html#abcc4364b5b7250f0364f3550a618b3ab">entities::Entity::render</a></div><div class="ttdeci">virtual void render(olc::TransformedView &amp;scene)</div><div class="ttdoc">render</div><div class="ttdef"><b>Definition:</b> <a href="_entity_8cpp_source.html#l00052">Entity.cpp:52</a></div></div>
+<div class="ttc" id="aclassentities_1_1_entity_html_afd80ddceccb36b87d0d80dcc7f88fc3b"><div class="ttname"><a href="classentities_1_1_entity.html#afd80ddceccb36b87d0d80dcc7f88fc3b">entities::Entity::init</a></div><div class="ttdeci">virtual void init(GameClient &amp;client)</div><div class="ttdef"><b>Definition:</b> <a href="_entity_8h_source.html#l00051">Entity.h:51</a></div></div>
+<div class="ttc" id="aclassentities_1_1_entity_html_a1453bca3376a185aa54135dd4958b244"><div class="ttname"><a href="classentities_1_1_entity.html#a1453bca3376a185aa54135dd4958b244">entities::Entity::is_initialized</a></div><div class="ttdeci">bool is_initialized</div><div class="ttdoc">well, is initialized</div><div class="ttdef"><b>Definition:</b> <a href="_entity_8h_source.html#l00042">Entity.h:42</a></div></div>
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/_entity_collection_8hpp.html b/doxy/html/_entity_collection_8hpp.html
new file mode 100644
index 0000000000000000000000000000000000000000..9264ea654427875131218833d8ce1786dd1e023c
--- /dev/null
+++ b/doxy/html/_entity_collection_8hpp.html
@@ -0,0 +1,77 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: C:/Users/kosmx/Documents/GitHub/2d-game/EntityCollection.hpp File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">C:/Users/kosmx/Documents/GitHub/2d-game/EntityCollection.hpp File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p><a href="_entity_collection_8hpp_source.html">Go to the source code of this file.</a></p>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/_entity_collection_8hpp_source.html b/doxy/html/_entity_collection_8hpp_source.html
new file mode 100644
index 0000000000000000000000000000000000000000..ebf7ec8ac207b1e8549245f946915aee8ca3fed2
--- /dev/null
+++ b/doxy/html/_entity_collection_8hpp_source.html
@@ -0,0 +1,76 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: C:/Users/kosmx/Documents/GitHub/2d-game/EntityCollection.hpp Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="headertitle">
+<div class="title">C:/Users/kosmx/Documents/GitHub/2d-game/EntityCollection.hpp</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="_entity_collection_8hpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="preprocessor">#pragma once</span></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/_entity_with_a_i_8cpp.html b/doxy/html/_entity_with_a_i_8cpp.html
new file mode 100644
index 0000000000000000000000000000000000000000..db4f991f6a299c7d0b7677763648ed3e5a157ae4
--- /dev/null
+++ b/doxy/html/_entity_with_a_i_8cpp.html
@@ -0,0 +1,112 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: C:/Users/kosmx/Documents/GitHub/2d-game/EntityWithAI.cpp File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#namespaces">Namespaces</a> &#124;
+<a href="#var-members">Variables</a>  </div>
+  <div class="headertitle">
+<div class="title">C:/Users/kosmx/Documents/GitHub/2d-game/EntityWithAI.cpp File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &quot;<a class="el" href="_entity_with_a_i_8h_source.html">EntityWithAI.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="main_game_8h_source.html">mainGame.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="_weapon_8h_source.html">Weapon.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="_ranged_weapon_8h_source.html">RangedWeapon.h</a>&quot;</code><br />
+</div>
+<p><a href="_entity_with_a_i_8cpp_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
+Namespaces</h2></td></tr>
+<tr class="memitem:namespaceentities"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceentities.html">entities</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a>
+Variables</h2></td></tr>
+<tr class="memitem:a57be3a52c6744615f203955322706cfc"><td class="memItemLeft" align="right" valign="top">const float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_entity_with_a_i_8cpp.html#a57be3a52c6744615f203955322706cfc">maxAttackCooldown</a> = 1.2f</td></tr>
+<tr class="separator:a57be3a52c6744615f203955322706cfc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Variable Documentation</h2>
+<a id="a57be3a52c6744615f203955322706cfc"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a57be3a52c6744615f203955322706cfc">&#9670;&nbsp;</a></span>maxAttackCooldown</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">const float maxAttackCooldown = 1.2f</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="_entity_with_a_i_8cpp_source.html#l00010">10</a> of file <a class="el" href="_entity_with_a_i_8cpp_source.html">EntityWithAI.cpp</a>.</p>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/_entity_with_a_i_8cpp_source.html b/doxy/html/_entity_with_a_i_8cpp_source.html
new file mode 100644
index 0000000000000000000000000000000000000000..b81f26d17a5fdc8040b4d996db3687d66354ac2b
--- /dev/null
+++ b/doxy/html/_entity_with_a_i_8cpp_source.html
@@ -0,0 +1,160 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: C:/Users/kosmx/Documents/GitHub/2d-game/EntityWithAI.cpp Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="headertitle">
+<div class="title">C:/Users/kosmx/Documents/GitHub/2d-game/EntityWithAI.cpp</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="_entity_with_a_i_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_entity_with_a_i_8h.html">EntityWithAI.h</a>&quot;</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160; </div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="main_game_8h.html">mainGame.h</a>&quot;</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_weapon_8h.html">Weapon.h</a>&quot;</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_ranged_weapon_8h.html">RangedWeapon.h</a>&quot;</span></div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160; </div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="keyword">using namespace </span>std;</div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="keyword">using namespace </span><a class="code" href="namespaceolc.html">olc</a>;</div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160; </div>
+<div class="line"><a name="l00010"></a><span class="lineno"><a class="line" href="_entity_with_a_i_8cpp.html#a57be3a52c6744615f203955322706cfc">   10</a></span>&#160;<span class="keyword">const</span> <span class="keywordtype">float</span> <a class="code" href="_entity_with_a_i_8cpp.html#a57be3a52c6744615f203955322706cfc">maxAttackCooldown</a> = 1.2f;</div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160; </div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespaceentities.html">entities</a></div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;{</div>
+<div class="line"><a name="l00014"></a><span class="lineno"><a class="line" href="classentities_1_1_entity_with_a_i.html#a92708b14b042c03fa9a8673192867e72">   14</a></span>&#160;    <span class="keywordtype">void</span> EntityWithAI::tick(<a class="code" href="class_game_client.html">GameClient</a>&amp; client, <span class="keywordtype">float</span> deltaT, std::shared_ptr&lt;Entity&gt;&amp; shared_this)</div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;    {</div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;        <a class="code" href="structolc_1_1v2d__generic.html">vf2d</a> dir = client.<a class="code" href="class_game_client.html#acc1e0f1d4836be4a8556289cfdfd4049">getPlayerEntity</a>()-&gt;getPos() - getPos();</div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;        speed = dir.<a class="code" href="structolc_1_1v2d__generic.html#a9c62f12d51859a5a487c5a0c2d00b09a">norm</a>() * 2;</div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;        <span class="keywordflow">if</span>(this-&gt;weapon){<span class="comment">//Has a weapon</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;            weapon-&gt;update(deltaT);</div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;            weapon-&gt;use(shared_this, dir.<a class="code" href="structolc_1_1v2d__generic.html#a9c62f12d51859a5a487c5a0c2d00b09a">norm</a>()); <span class="comment">//Just try to use the weapon...</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;            <span class="keywordflow">if</span>(dynamic_pointer_cast&lt;weapons::RangedWeapon&gt;(weapon)){</div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;                <span class="keywordflow">if</span>(dir.<a class="code" href="structolc_1_1v2d__generic.html#a6b83d7375119637fdf65233cf6dae947">mag2</a>() &lt; 100){</div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;                    dir = { 0, 0 };</div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;                }</div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;            }</div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;            <span class="keywordflow">else</span>{</div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;                <span class="keywordflow">if</span>(dir.<a class="code" href="structolc_1_1v2d__generic.html#a6b83d7375119637fdf65233cf6dae947">mag2</a>() &lt; 1){</div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;                    dir = { 0, 0 };</div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;                }</div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;            }</div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;        }</div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;        <span class="keywordflow">else</span>{</div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;            attackCooldown = std::max(attackCooldown - deltaT, 0.f);</div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;            <span class="keywordflow">if</span> (dir.<a class="code" href="structolc_1_1v2d__generic.html#a6b83d7375119637fdf65233cf6dae947">mag2</a>() &lt; 1) {</div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;                speed = { 0, 0 };</div>
+<div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;                <span class="keywordflow">if</span> (attackCooldown == 0) {</div>
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;                    client.<a class="code" href="class_game_client.html#acc1e0f1d4836be4a8556289cfdfd4049">getPlayerEntity</a>()-&gt;damage(damageAmount, *<span class="keyword">this</span>);</div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;                    attackCooldown = <a class="code" href="_entity_with_a_i_8cpp.html#a57be3a52c6744615f203955322706cfc">maxAttackCooldown</a>;</div>
+<div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;                }</div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;            }</div>
+<div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;        }</div>
+<div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;        CharacterEntity::tick(client, deltaT, shared_this);</div>
+<div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;    }</div>
+<div class="line"><a name="l00044"></a><span class="lineno"><a class="line" href="classentities_1_1_entity_with_a_i.html#af1e954b2ecf51732759a28e00dc2614c">   44</a></span>&#160;    <span class="keywordtype">void</span> EntityWithAI::addWeapon(std::shared_ptr&lt;weapons::Weapon&gt;&amp; weapon)</div>
+<div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;    {</div>
+<div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;        this-&gt;weapon = weapon;</div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;    }</div>
+<div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160; </div>
+<div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="classentities_1_1_entity_with_a_i.html#aa8bfaebef1ce596fbd8d70b36362135b">   49</a></span>&#160;    EntityWithAI::EntityWithAI(<span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; pos, <a class="code" href="classrender_1_1_i_texture.html">render::ITexture</a>&amp; skin, <span class="keywordtype">int</span> damage, <span class="keyword">const</span> std::string&amp; name)</div>
+<div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;        : <a class="code" href="classentities_1_1_character_entity.html">CharacterEntity</a>(skin, pos), damageAmount(damage) {}</div>
+<div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160; </div>
+<div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="classentities_1_1_entity_with_a_i.html#a49a1c8a8ec1a318f65007d54173c3d37">   52</a></span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="classentities_1_1_entity_with_a_i.html#a49a1c8a8ec1a318f65007d54173c3d37">EntityWithAI::damage</a>(<span class="keywordtype">int</span> damage, <a class="code" href="classentities_1_1_entity.html">Entity</a>&amp; attacker)</div>
+<div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;    {</div>
+<div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;        <span class="keywordtype">bool</span> bl = <a class="code" href="classentities_1_1_living_entity.html#a28d31eff59137171da3e23a8e3ef9c1c">CharacterEntity::damage</a>(<a class="code" href="classentities_1_1_entity_with_a_i.html#a49a1c8a8ec1a318f65007d54173c3d37">damage</a>, attacker);</div>
+<div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;        <span class="keywordflow">if</span> (bl &amp;&amp; !<a class="code" href="classentities_1_1_entity.html#ab0ee90a84f2163b600e603f24cff046f">isAlive</a>() &amp;&amp; weapon &amp;&amp; rand() % 4 == 0) { <span class="comment">//it this died, and has a weapon, there is a little chance to it will drop its weapon</span></div>
+<div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;            <a class="code" href="class_game_client.html#adfcb979db6333b335dee4e6d785aabcf">GameClient::getInstance</a>() += weapon;</div>
+<div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;        }</div>
+<div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;        this-&gt;weapon = <span class="keyword">nullptr</span>;</div>
+<div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;        <span class="keywordflow">return</span> bl;</div>
+<div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;    }</div>
+<div class="line"><a name="l00061"></a><span class="lineno"><a class="line" href="classentities_1_1_entity_with_a_i.html#a66937315f0a16d70c29359e89415d222">   61</a></span>&#160;    std::shared_ptr&lt;weapons::Weapon&gt; <a class="code" href="classentities_1_1_entity_with_a_i.html#a66937315f0a16d70c29359e89415d222">EntityWithAI::getWeapon</a>()</div>
+<div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;    {</div>
+<div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;        <span class="keywordflow">return</span> weapon;</div>
+<div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;    }</div>
+<div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;}</div>
+</div><!-- fragment --></div><!-- contents -->
+<div class="ttc" id="aclassentities_1_1_entity_html_ab0ee90a84f2163b600e603f24cff046f"><div class="ttname"><a href="classentities_1_1_entity.html#ab0ee90a84f2163b600e603f24cff046f">entities::Entity::isAlive</a></div><div class="ttdeci">virtual bool isAlive() const</div><div class="ttdef"><b>Definition:</b> <a href="_entity_8cpp_source.html#l00070">Entity.cpp:70</a></div></div>
+<div class="ttc" id="aclassentities_1_1_living_entity_html_a28d31eff59137171da3e23a8e3ef9c1c"><div class="ttname"><a href="classentities_1_1_living_entity.html#a28d31eff59137171da3e23a8e3ef9c1c">entities::LivingEntity::damage</a></div><div class="ttdeci">bool damage(int damage, Entity &amp;attacker) override</div><div class="ttdoc">something damage this</div><div class="ttdef"><b>Definition:</b> <a href="_living_entity_8cpp_source.html#l00043">LivingEntity.cpp:43</a></div></div>
+<div class="ttc" id="astructolc_1_1v2d__generic_html"><div class="ttname"><a href="structolc_1_1v2d__generic.html">olc::v2d_generic&lt; float &gt;</a></div></div>
+<div class="ttc" id="a_ranged_weapon_8h_html"><div class="ttname"><a href="_ranged_weapon_8h.html">RangedWeapon.h</a></div></div>
+<div class="ttc" id="aclassentities_1_1_entity_with_a_i_html_a49a1c8a8ec1a318f65007d54173c3d37"><div class="ttname"><a href="classentities_1_1_entity_with_a_i.html#a49a1c8a8ec1a318f65007d54173c3d37">entities::EntityWithAI::damage</a></div><div class="ttdeci">bool damage(int damage, Entity &amp;attacker) override</div><div class="ttdoc">something damage this</div><div class="ttdef"><b>Definition:</b> <a href="_entity_with_a_i_8cpp_source.html#l00052">EntityWithAI.cpp:52</a></div></div>
+<div class="ttc" id="anamespaceolc_html"><div class="ttname"><a href="namespaceolc.html">olc</a></div><div class="ttdef"><b>Definition:</b> <a href="olc_p_g_e_x___transformed_view_8h_source.html#l00077">olcPGEX_TransformedView.h:78</a></div></div>
+<div class="ttc" id="astructolc_1_1v2d__generic_html_a9c62f12d51859a5a487c5a0c2d00b09a"><div class="ttname"><a href="structolc_1_1v2d__generic.html#a9c62f12d51859a5a487c5a0c2d00b09a">olc::v2d_generic::norm</a></div><div class="ttdeci">v2d_generic norm() const</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00592">olcPixelGameEngine.h:592</a></div></div>
+<div class="ttc" id="aclass_game_client_html"><div class="ttname"><a href="class_game_client.html">GameClient</a></div><div class="ttdoc">The game main class itself. manages the entities, adjust the screen...</div><div class="ttdef"><b>Definition:</b> <a href="main_game_8h_source.html#l00011">mainGame.h:13</a></div></div>
+<div class="ttc" id="a_entity_with_a_i_8h_html"><div class="ttname"><a href="_entity_with_a_i_8h.html">EntityWithAI.h</a></div></div>
+<div class="ttc" id="aclassentities_1_1_entity_html"><div class="ttname"><a href="classentities_1_1_entity.html">entities::Entity</a></div><div class="ttdoc">Every object, what can be on the map.</div><div class="ttdef"><b>Definition:</b> <a href="_entity_8h_source.html#l00016">Entity.h:17</a></div></div>
+<div class="ttc" id="a_entity_with_a_i_8cpp_html_a57be3a52c6744615f203955322706cfc"><div class="ttname"><a href="_entity_with_a_i_8cpp.html#a57be3a52c6744615f203955322706cfc">maxAttackCooldown</a></div><div class="ttdeci">const float maxAttackCooldown</div><div class="ttdef"><b>Definition:</b> <a href="_entity_with_a_i_8cpp_source.html#l00010">EntityWithAI.cpp:10</a></div></div>
+<div class="ttc" id="aclassrender_1_1_i_texture_html"><div class="ttname"><a href="classrender_1_1_i_texture.html">render::ITexture</a></div><div class="ttdoc">Every texture, what can render an entity.</div><div class="ttdef"><b>Definition:</b> <a href="_i_texture_8h_source.html#l00015">ITexture.h:16</a></div></div>
+<div class="ttc" id="astructolc_1_1v2d__generic_html_a6b83d7375119637fdf65233cf6dae947"><div class="ttname"><a href="structolc_1_1v2d__generic.html#a6b83d7375119637fdf65233cf6dae947">olc::v2d_generic::mag2</a></div><div class="ttdeci">T mag2() const</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00591">olcPixelGameEngine.h:591</a></div></div>
+<div class="ttc" id="anamespaceentities_html"><div class="ttname"><a href="namespaceentities.html">entities</a></div><div class="ttdef"><b>Definition:</b> <a href="_character_entity_8cpp_source.html#l00005">CharacterEntity.cpp:5</a></div></div>
+<div class="ttc" id="aclass_game_client_html_adfcb979db6333b335dee4e6d785aabcf"><div class="ttname"><a href="class_game_client.html#adfcb979db6333b335dee4e6d785aabcf">GameClient::getInstance</a></div><div class="ttdeci">static GameClient &amp; getInstance()</div><div class="ttdef"><b>Definition:</b> <a href="main_game_8cpp_source.html#l00040">mainGame.cpp:40</a></div></div>
+<div class="ttc" id="aclassentities_1_1_entity_with_a_i_html_a66937315f0a16d70c29359e89415d222"><div class="ttname"><a href="classentities_1_1_entity_with_a_i.html#a66937315f0a16d70c29359e89415d222">entities::EntityWithAI::getWeapon</a></div><div class="ttdeci">std::shared_ptr&lt; weapons::Weapon &gt; getWeapon() override</div><div class="ttdef"><b>Definition:</b> <a href="_entity_with_a_i_8cpp_source.html#l00061">EntityWithAI.cpp:61</a></div></div>
+<div class="ttc" id="aclassentities_1_1_character_entity_html"><div class="ttname"><a href="classentities_1_1_character_entity.html">entities::CharacterEntity</a></div><div class="ttdoc">A player or an enemy.</div><div class="ttdef"><b>Definition:</b> <a href="_character_entity_8h_source.html#l00013">CharacterEntity.h:15</a></div></div>
+<div class="ttc" id="amain_game_8h_html"><div class="ttname"><a href="main_game_8h.html">mainGame.h</a></div></div>
+<div class="ttc" id="aclass_game_client_html_acc1e0f1d4836be4a8556289cfdfd4049"><div class="ttname"><a href="class_game_client.html#acc1e0f1d4836be4a8556289cfdfd4049">GameClient::getPlayerEntity</a></div><div class="ttdeci">std::shared_ptr&lt; entities::PlayerEntity &gt; getPlayerEntity()</div><div class="ttdoc">Get the main player.</div><div class="ttdef"><b>Definition:</b> <a href="main_game_8cpp_source.html#l00156">mainGame.cpp:156</a></div></div>
+<div class="ttc" id="a_weapon_8h_html"><div class="ttname"><a href="_weapon_8h.html">Weapon.h</a></div></div>
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/_entity_with_a_i_8h.html b/doxy/html/_entity_with_a_i_8h.html
new file mode 100644
index 0000000000000000000000000000000000000000..3894e78d1d3cbb4d069e1762acad017d412633f3
--- /dev/null
+++ b/doxy/html/_entity_with_a_i_8h.html
@@ -0,0 +1,93 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: C:/Users/kosmx/Documents/GitHub/2d-game/EntityWithAI.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#nested-classes">Classes</a> &#124;
+<a href="#namespaces">Namespaces</a>  </div>
+  <div class="headertitle">
+<div class="title">C:/Users/kosmx/Documents/GitHub/2d-game/EntityWithAI.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &quot;<a class="el" href="_character_entity_8h_source.html">CharacterEntity.h</a>&quot;</code><br />
+</div>
+<p><a href="_entity_with_a_i_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity_with_a_i.html">entities::EntityWithAI</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">The enemies. go after the player, and try to kill it.  <a href="classentities_1_1_entity_with_a_i.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
+Namespaces</h2></td></tr>
+<tr class="memitem:namespaceentities"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceentities.html">entities</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/_entity_with_a_i_8h_source.html b/doxy/html/_entity_with_a_i_8h_source.html
new file mode 100644
index 0000000000000000000000000000000000000000..5c5358ccd1f1d911993bc8e73de3687e2c7d41ea
--- /dev/null
+++ b/doxy/html/_entity_with_a_i_8h_source.html
@@ -0,0 +1,113 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: C:/Users/kosmx/Documents/GitHub/2d-game/EntityWithAI.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="headertitle">
+<div class="title">C:/Users/kosmx/Documents/GitHub/2d-game/EntityWithAI.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="_entity_with_a_i_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160; </div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_character_entity_8h.html">CharacterEntity.h</a>&quot;</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160; </div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespaceentities.html">entities</a></div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;{</div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160; </div>
+<div class="line"><a name="l00011"></a><span class="lineno"><a class="line" href="classentities_1_1_entity_with_a_i.html">   11</a></span>&#160;    <span class="keyword">class </span><a class="code" href="classentities_1_1_entity_with_a_i.html">EntityWithAI</a> : <span class="keyword">public</span> <a class="code" href="classentities_1_1_character_entity.html">CharacterEntity</a></div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;    {</div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;    <span class="keyword">private</span>:</div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;        std::shared_ptr&lt;weapons::Weapon&gt; weapon;</div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;        <span class="keywordtype">float</span> attackCooldown = 0;</div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;        <span class="keyword">const</span> <span class="keywordtype">int</span> damageAmount;</div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;    <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160; </div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;        <span class="keywordtype">void</span> <a class="code" href="classentities_1_1_entity_with_a_i.html#a92708b14b042c03fa9a8673192867e72">tick</a>(<a class="code" href="class_game_client.html">GameClient</a>&amp; client, <span class="keywordtype">float</span> deltaT, std::shared_ptr&lt;Entity&gt;&amp; shared_this) <span class="keyword">override</span>;</div>
+<div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;        <span class="keywordtype">void</span> <a class="code" href="classentities_1_1_entity_with_a_i.html#af1e954b2ecf51732759a28e00dc2614c">addWeapon</a>(std::shared_ptr&lt;weapons::Weapon&gt;&amp; weapon);</div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;        <a class="code" href="classentities_1_1_entity_with_a_i.html#aa8bfaebef1ce596fbd8d70b36362135b">EntityWithAI</a>(<span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; <a class="code" href="classentities_1_1_entity.html#a04f9c2febe8d435138a07eb2f48ba96b">pos</a>, <a class="code" href="classrender_1_1_i_texture.html">render::ITexture</a>&amp; skin, <span class="keywordtype">int</span> <a class="code" href="classentities_1_1_entity_with_a_i.html#a49a1c8a8ec1a318f65007d54173c3d37">damage</a> = 20, <span class="keyword">const</span> std::string&amp; name = <span class="stringliteral">&quot;Enemy&quot;</span>);</div>
+<div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160; </div>
+<div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;        <span class="keywordtype">bool</span> <a class="code" href="classentities_1_1_entity_with_a_i.html#a49a1c8a8ec1a318f65007d54173c3d37">damage</a>(<span class="keywordtype">int</span> <a class="code" href="classentities_1_1_entity_with_a_i.html#a49a1c8a8ec1a318f65007d54173c3d37">damage</a>, <a class="code" href="classentities_1_1_entity.html">Entity</a>&amp; attacker) <span class="keyword">override</span>;</div>
+<div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160; </div>
+<div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;        std::shared_ptr&lt;weapons::Weapon&gt; <a class="code" href="classentities_1_1_entity_with_a_i.html#a66937315f0a16d70c29359e89415d222">getWeapon</a>() <span class="keyword">override</span>;</div>
+<div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;    };</div>
+<div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;}</div>
+</div><!-- fragment --></div><!-- contents -->
+<div class="ttc" id="astructolc_1_1v2d__generic_html"><div class="ttname"><a href="structolc_1_1v2d__generic.html">olc::v2d_generic&lt; float &gt;</a></div></div>
+<div class="ttc" id="aclassentities_1_1_entity_html_a04f9c2febe8d435138a07eb2f48ba96b"><div class="ttname"><a href="classentities_1_1_entity.html#a04f9c2febe8d435138a07eb2f48ba96b">entities::Entity::pos</a></div><div class="ttdeci">olc::vf2d pos</div><div class="ttdoc">it's position</div><div class="ttdef"><b>Definition:</b> <a href="_entity_8h_source.html#l00022">Entity.h:22</a></div></div>
+<div class="ttc" id="aclassentities_1_1_entity_with_a_i_html_a92708b14b042c03fa9a8673192867e72"><div class="ttname"><a href="classentities_1_1_entity_with_a_i.html#a92708b14b042c03fa9a8673192867e72">entities::EntityWithAI::tick</a></div><div class="ttdeci">void tick(GameClient &amp;client, float deltaT, std::shared_ptr&lt; Entity &gt; &amp;shared_this) override</div><div class="ttdoc">Tick, from Entity.</div><div class="ttdef"><b>Definition:</b> <a href="_entity_with_a_i_8cpp_source.html#l00014">EntityWithAI.cpp:14</a></div></div>
+<div class="ttc" id="aclassentities_1_1_entity_with_a_i_html"><div class="ttname"><a href="classentities_1_1_entity_with_a_i.html">entities::EntityWithAI</a></div><div class="ttdoc">The enemies. go after the player, and try to kill it.</div><div class="ttdef"><b>Definition:</b> <a href="_entity_with_a_i_8h_source.html#l00011">EntityWithAI.h:12</a></div></div>
+<div class="ttc" id="aclassentities_1_1_entity_with_a_i_html_a49a1c8a8ec1a318f65007d54173c3d37"><div class="ttname"><a href="classentities_1_1_entity_with_a_i.html#a49a1c8a8ec1a318f65007d54173c3d37">entities::EntityWithAI::damage</a></div><div class="ttdeci">bool damage(int damage, Entity &amp;attacker) override</div><div class="ttdoc">something damage this</div><div class="ttdef"><b>Definition:</b> <a href="_entity_with_a_i_8cpp_source.html#l00052">EntityWithAI.cpp:52</a></div></div>
+<div class="ttc" id="aclass_game_client_html"><div class="ttname"><a href="class_game_client.html">GameClient</a></div><div class="ttdoc">The game main class itself. manages the entities, adjust the screen...</div><div class="ttdef"><b>Definition:</b> <a href="main_game_8h_source.html#l00011">mainGame.h:13</a></div></div>
+<div class="ttc" id="aclassentities_1_1_entity_html"><div class="ttname"><a href="classentities_1_1_entity.html">entities::Entity</a></div><div class="ttdoc">Every object, what can be on the map.</div><div class="ttdef"><b>Definition:</b> <a href="_entity_8h_source.html#l00016">Entity.h:17</a></div></div>
+<div class="ttc" id="aclassentities_1_1_entity_with_a_i_html_af1e954b2ecf51732759a28e00dc2614c"><div class="ttname"><a href="classentities_1_1_entity_with_a_i.html#af1e954b2ecf51732759a28e00dc2614c">entities::EntityWithAI::addWeapon</a></div><div class="ttdeci">void addWeapon(std::shared_ptr&lt; weapons::Weapon &gt; &amp;weapon)</div><div class="ttdoc">override it's weapon</div><div class="ttdef"><b>Definition:</b> <a href="_entity_with_a_i_8cpp_source.html#l00044">EntityWithAI.cpp:44</a></div></div>
+<div class="ttc" id="aclassrender_1_1_i_texture_html"><div class="ttname"><a href="classrender_1_1_i_texture.html">render::ITexture</a></div><div class="ttdoc">Every texture, what can render an entity.</div><div class="ttdef"><b>Definition:</b> <a href="_i_texture_8h_source.html#l00015">ITexture.h:16</a></div></div>
+<div class="ttc" id="anamespaceentities_html"><div class="ttname"><a href="namespaceentities.html">entities</a></div><div class="ttdef"><b>Definition:</b> <a href="_character_entity_8cpp_source.html#l00005">CharacterEntity.cpp:5</a></div></div>
+<div class="ttc" id="a_character_entity_8h_html"><div class="ttname"><a href="_character_entity_8h.html">CharacterEntity.h</a></div></div>
+<div class="ttc" id="aclassentities_1_1_entity_with_a_i_html_aa8bfaebef1ce596fbd8d70b36362135b"><div class="ttname"><a href="classentities_1_1_entity_with_a_i.html#aa8bfaebef1ce596fbd8d70b36362135b">entities::EntityWithAI::EntityWithAI</a></div><div class="ttdeci">EntityWithAI(const olc::vf2d &amp;pos, render::ITexture &amp;skin, int damage=20, const std::string &amp;name=&quot;Enemy&quot;)</div><div class="ttdef"><b>Definition:</b> <a href="_entity_with_a_i_8cpp_source.html#l00049">EntityWithAI.cpp:49</a></div></div>
+<div class="ttc" id="aclassentities_1_1_entity_with_a_i_html_a66937315f0a16d70c29359e89415d222"><div class="ttname"><a href="classentities_1_1_entity_with_a_i.html#a66937315f0a16d70c29359e89415d222">entities::EntityWithAI::getWeapon</a></div><div class="ttdeci">std::shared_ptr&lt; weapons::Weapon &gt; getWeapon() override</div><div class="ttdef"><b>Definition:</b> <a href="_entity_with_a_i_8cpp_source.html#l00061">EntityWithAI.cpp:61</a></div></div>
+<div class="ttc" id="aclassentities_1_1_character_entity_html"><div class="ttname"><a href="classentities_1_1_character_entity.html">entities::CharacterEntity</a></div><div class="ttdoc">A player or an enemy.</div><div class="ttdef"><b>Definition:</b> <a href="_character_entity_8h_source.html#l00013">CharacterEntity.h:15</a></div></div>
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/_explosive_projectile_8cpp.html b/doxy/html/_explosive_projectile_8cpp.html
new file mode 100644
index 0000000000000000000000000000000000000000..d4a4882c5775680cdba61836e046000b1e1f87b5
--- /dev/null
+++ b/doxy/html/_explosive_projectile_8cpp.html
@@ -0,0 +1,110 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: C:/Users/kosmx/Documents/GitHub/2d-game/ExplosiveProjectile.cpp File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#namespaces">Namespaces</a> &#124;
+<a href="#var-members">Variables</a>  </div>
+  <div class="headertitle">
+<div class="title">C:/Users/kosmx/Documents/GitHub/2d-game/ExplosiveProjectile.cpp File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &quot;<a class="el" href="_explosive_projectile_8h_source.html">ExplosiveProjectile.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="main_game_8h_source.html">mainGame.h</a>&quot;</code><br />
+</div>
+<p><a href="_explosive_projectile_8cpp_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
+Namespaces</h2></td></tr>
+<tr class="memitem:namespaceentities"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceentities.html">entities</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a>
+Variables</h2></td></tr>
+<tr class="memitem:a5eca5e4f5f408cb99671021a490cfac4"><td class="memItemLeft" align="right" valign="top">const float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_explosive_projectile_8cpp.html#a5eca5e4f5f408cb99671021a490cfac4">explosionRadius</a> = 2.5</td></tr>
+<tr class="separator:a5eca5e4f5f408cb99671021a490cfac4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Variable Documentation</h2>
+<a id="a5eca5e4f5f408cb99671021a490cfac4"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a5eca5e4f5f408cb99671021a490cfac4">&#9670;&nbsp;</a></span>explosionRadius</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">const float explosionRadius = 2.5</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="_explosive_projectile_8cpp_source.html#l00006">6</a> of file <a class="el" href="_explosive_projectile_8cpp_source.html">ExplosiveProjectile.cpp</a>.</p>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/_explosive_projectile_8cpp_source.html b/doxy/html/_explosive_projectile_8cpp_source.html
new file mode 100644
index 0000000000000000000000000000000000000000..1ead10cd4d31994f2201c049f04afdf6baa04a72
--- /dev/null
+++ b/doxy/html/_explosive_projectile_8cpp_source.html
@@ -0,0 +1,143 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: C:/Users/kosmx/Documents/GitHub/2d-game/ExplosiveProjectile.cpp Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="headertitle">
+<div class="title">C:/Users/kosmx/Documents/GitHub/2d-game/ExplosiveProjectile.cpp</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="_explosive_projectile_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_explosive_projectile_8h.html">ExplosiveProjectile.h</a>&quot;</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160; </div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="main_game_8h.html">mainGame.h</a>&quot;</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160; </div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160; </div>
+<div class="line"><a name="l00006"></a><span class="lineno"><a class="line" href="_explosive_projectile_8cpp.html#a5eca5e4f5f408cb99671021a490cfac4">    6</a></span>&#160;<span class="keyword">const</span> <span class="keywordtype">float</span> <a class="code" href="_explosive_projectile_8cpp.html#a5eca5e4f5f408cb99671021a490cfac4">explosionRadius</a> = 2.5;</div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160; </div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespaceentities.html">entities</a></div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;{</div>
+<div class="line"><a name="l00010"></a><span class="lineno"><a class="line" href="classentities_1_1_explosive_projectile.html#a7e0d880f0dfeb6570dc724a0739b1331">   10</a></span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="classentities_1_1_explosive_projectile.html#a7e0d880f0dfeb6570dc724a0739b1331">ExplosiveProjectile::onCollide</a>(<span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; collisionVector, std::shared_ptr&lt;Entity&gt;&amp; who)</div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;    {</div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;        this-&gt;state = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;        <span class="keywordflow">for</span> (<span class="keyword">auto</span>&amp; entity : <a class="code" href="class_game_client.html#adfcb979db6333b335dee4e6d785aabcf">GameClient::getInstance</a>().getEntities()) {</div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;            <span class="keywordflow">if</span> (entity != <a class="code" href="classentities_1_1_projectile_entity.html#ab01d1aa4b66b21481d07f7777bfb2ca3">user</a> &amp;&amp; (entity-&gt;getPos() - this-&gt;getPos()).mag() &lt; <a class="code" href="_explosive_projectile_8cpp.html#a5eca5e4f5f408cb99671021a490cfac4">explosionRadius</a>)</div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;                entity-&gt;damage(this-&gt;<a class="code" href="classentities_1_1_projectile_entity.html#ad4325b9194e4c76e68f27857226eefd8">damageValue</a>, *<a class="code" href="classentities_1_1_projectile_entity.html#ab01d1aa4b66b21481d07f7777bfb2ca3">user</a>);</div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;        }</div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;        <span class="keywordflow">return</span> <span class="keyword">true</span>; <span class="comment">//it exploded</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;    }</div>
+<div class="line"><a name="l00019"></a><span class="lineno"><a class="line" href="classentities_1_1_explosive_projectile.html#ae80625e2530015d21b963ec219be758e">   19</a></span>&#160;    <a class="code" href="classentities_1_1_explosive_projectile.html#ae80625e2530015d21b963ec219be758e">ExplosiveProjectile::ExplosiveProjectile</a>(std::shared_ptr&lt;Entity&gt;&amp; user, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; pos0, <a class="code" href="classrender_1_1_i_texture.html">render::ITexture</a>&amp; texture, <span class="keywordtype">int</span> damage)</div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;        : <a class="code" href="classentities_1_1_projectile_entity.html">ProjectileEntity</a>(user, pos0, texture) {}</div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;    </div>
+<div class="line"><a name="l00022"></a><span class="lineno"><a class="line" href="classentities_1_1_explosive_projectile.html#a3aa22ab3467caa20a8c7b3cc818b157d">   22</a></span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classentities_1_1_explosive_projectile.html#a3aa22ab3467caa20a8c7b3cc818b157d">ExplosiveProjectile::tick</a>(<a class="code" href="class_game_client.html">GameClient</a>&amp; client, <span class="keywordtype">float</span> deltaT, std::shared_ptr&lt;Entity&gt;&amp; shared_this)</div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;    {</div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;        <span class="keywordflow">if</span>(state){</div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;            stateTime += deltaT;</div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;        }</div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;        <span class="keywordflow">else</span>{</div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;            <a class="code" href="classentities_1_1_projectile_entity.html#a761f27885de02515edaf252e8a4162b5">ProjectileEntity::tick</a>(client, deltaT, shared_this);</div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;        }</div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;    }</div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;    </div>
+<div class="line"><a name="l00032"></a><span class="lineno"><a class="line" href="classentities_1_1_explosive_projectile.html#a8b075196a23aed5116e885709b64d583">   32</a></span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="classentities_1_1_explosive_projectile.html#a8b075196a23aed5116e885709b64d583">ExplosiveProjectile::canBeRemoved</a>()<span class="keyword"> const</span></div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;<span class="keyword">    </span>{</div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;        <span class="keywordflow">return</span> stateTime &gt; 1;</div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;    }</div>
+<div class="line"><a name="l00036"></a><span class="lineno"><a class="line" href="classentities_1_1_explosive_projectile.html#a86148b27403d275c1513f22bb3f47892">   36</a></span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classentities_1_1_explosive_projectile.html#a86148b27403d275c1513f22bb3f47892">ExplosiveProjectile::render</a>(<a class="code" href="classolc_1_1_transformed_view.html">olc::TransformedView</a>&amp; scene)</div>
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;    {</div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;        <span class="keywordflow">if</span>(state){</div>
+<div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;            explosion.<a class="code" href="classrender_1_1_simple_sprite.html#aaed7cf3094f69387291a2d287d7753a5">render</a>(scene, *<span class="keyword">this</span>);</div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;        }</div>
+<div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;        <span class="keywordflow">else</span>{</div>
+<div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;            <a class="code" href="classentities_1_1_entity.html#abcc4364b5b7250f0364f3550a618b3ab">ProjectileEntity::render</a>(scene);</div>
+<div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;        }</div>
+<div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;    }</div>
+<div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160; </div>
+<div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;    <a class="code" href="classrender_1_1_simple_sprite.html">render::SimpleSprite</a> ExplosiveProjectile::explosion(<span class="stringliteral">&quot;Objects/Effect0.png&quot;</span>, { 0, 0 }, { 48, 48 });</div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;}</div>
+</div><!-- fragment --></div><!-- contents -->
+<div class="ttc" id="aclassentities_1_1_explosive_projectile_html_a86148b27403d275c1513f22bb3f47892"><div class="ttname"><a href="classentities_1_1_explosive_projectile.html#a86148b27403d275c1513f22bb3f47892">entities::ExplosiveProjectile::render</a></div><div class="ttdeci">void render(olc::TransformedView &amp;scene) override</div><div class="ttdoc">render</div><div class="ttdef"><b>Definition:</b> <a href="_explosive_projectile_8cpp_source.html#l00036">ExplosiveProjectile.cpp:36</a></div></div>
+<div class="ttc" id="astructolc_1_1v2d__generic_html"><div class="ttname"><a href="structolc_1_1v2d__generic.html">olc::v2d_generic&lt; float &gt;</a></div></div>
+<div class="ttc" id="aclassentities_1_1_explosive_projectile_html_a3aa22ab3467caa20a8c7b3cc818b157d"><div class="ttname"><a href="classentities_1_1_explosive_projectile.html#a3aa22ab3467caa20a8c7b3cc818b157d">entities::ExplosiveProjectile::tick</a></div><div class="ttdeci">void tick(GameClient &amp;client, float deltaT, std::shared_ptr&lt; Entity &gt; &amp;shared_this) override</div><div class="ttdoc">Entity tick multiple times per sec.</div><div class="ttdef"><b>Definition:</b> <a href="_explosive_projectile_8cpp_source.html#l00022">ExplosiveProjectile.cpp:22</a></div></div>
+<div class="ttc" id="aclassentities_1_1_explosive_projectile_html_a7e0d880f0dfeb6570dc724a0739b1331"><div class="ttname"><a href="classentities_1_1_explosive_projectile.html#a7e0d880f0dfeb6570dc724a0739b1331">entities::ExplosiveProjectile::onCollide</a></div><div class="ttdeci">bool onCollide(const olc::vf2d &amp;collisionVector, std::shared_ptr&lt; Entity &gt; &amp;who) override</div><div class="ttdoc">Determines, what will the projectile do, if it hit something.</div><div class="ttdef"><b>Definition:</b> <a href="_explosive_projectile_8cpp_source.html#l00010">ExplosiveProjectile.cpp:10</a></div></div>
+<div class="ttc" id="aclass_game_client_html"><div class="ttname"><a href="class_game_client.html">GameClient</a></div><div class="ttdoc">The game main class itself. manages the entities, adjust the screen...</div><div class="ttdef"><b>Definition:</b> <a href="main_game_8h_source.html#l00011">mainGame.h:13</a></div></div>
+<div class="ttc" id="aclassrender_1_1_simple_sprite_html_aaed7cf3094f69387291a2d287d7753a5"><div class="ttname"><a href="classrender_1_1_simple_sprite.html#aaed7cf3094f69387291a2d287d7753a5">render::SimpleSprite::render</a></div><div class="ttdeci">void render(olc::TransformedView &amp;scene, entities::Entity &amp;entity) override</div><div class="ttdoc">Render the sprite, abstract function.</div><div class="ttdef"><b>Definition:</b> <a href="_simple_sprite_8cpp_source.html#l00009">SimpleSprite.cpp:9</a></div></div>
+<div class="ttc" id="a_explosive_projectile_8cpp_html_a5eca5e4f5f408cb99671021a490cfac4"><div class="ttname"><a href="_explosive_projectile_8cpp.html#a5eca5e4f5f408cb99671021a490cfac4">explosionRadius</a></div><div class="ttdeci">const float explosionRadius</div><div class="ttdef"><b>Definition:</b> <a href="_explosive_projectile_8cpp_source.html#l00006">ExplosiveProjectile.cpp:6</a></div></div>
+<div class="ttc" id="a_explosive_projectile_8h_html"><div class="ttname"><a href="_explosive_projectile_8h.html">ExplosiveProjectile.h</a></div></div>
+<div class="ttc" id="aclassrender_1_1_i_texture_html"><div class="ttname"><a href="classrender_1_1_i_texture.html">render::ITexture</a></div><div class="ttdoc">Every texture, what can render an entity.</div><div class="ttdef"><b>Definition:</b> <a href="_i_texture_8h_source.html#l00015">ITexture.h:16</a></div></div>
+<div class="ttc" id="aclassentities_1_1_explosive_projectile_html_ae80625e2530015d21b963ec219be758e"><div class="ttname"><a href="classentities_1_1_explosive_projectile.html#ae80625e2530015d21b963ec219be758e">entities::ExplosiveProjectile::ExplosiveProjectile</a></div><div class="ttdeci">ExplosiveProjectile(std::shared_ptr&lt; Entity &gt; &amp;user, const olc::vf2d &amp;pos0, render::ITexture &amp;texture, int damage=40)</div><div class="ttdef"><b>Definition:</b> <a href="_explosive_projectile_8cpp_source.html#l00019">ExplosiveProjectile.cpp:19</a></div></div>
+<div class="ttc" id="aclassentities_1_1_explosive_projectile_html_a8b075196a23aed5116e885709b64d583"><div class="ttname"><a href="classentities_1_1_explosive_projectile.html#a8b075196a23aed5116e885709b64d583">entities::ExplosiveProjectile::canBeRemoved</a></div><div class="ttdeci">bool canBeRemoved() const override</div><div class="ttdef"><b>Definition:</b> <a href="_explosive_projectile_8cpp_source.html#l00032">ExplosiveProjectile.cpp:32</a></div></div>
+<div class="ttc" id="anamespaceentities_html"><div class="ttname"><a href="namespaceentities.html">entities</a></div><div class="ttdef"><b>Definition:</b> <a href="_character_entity_8cpp_source.html#l00005">CharacterEntity.cpp:5</a></div></div>
+<div class="ttc" id="aclassolc_1_1_transformed_view_html"><div class="ttname"><a href="classolc_1_1_transformed_view.html">olc::TransformedView</a></div><div class="ttdef"><b>Definition:</b> <a href="olc_p_g_e_x___transformed_view_8h_source.html#l00079">olcPGEX_TransformedView.h:80</a></div></div>
+<div class="ttc" id="aclassentities_1_1_projectile_entity_html_ad4325b9194e4c76e68f27857226eefd8"><div class="ttname"><a href="classentities_1_1_projectile_entity.html#ad4325b9194e4c76e68f27857226eefd8">entities::ProjectileEntity::damageValue</a></div><div class="ttdeci">int damageValue</div><div class="ttdef"><b>Definition:</b> <a href="_projectile_entity_8h_source.html#l00028">ProjectileEntity.h:28</a></div></div>
+<div class="ttc" id="aclass_game_client_html_adfcb979db6333b335dee4e6d785aabcf"><div class="ttname"><a href="class_game_client.html#adfcb979db6333b335dee4e6d785aabcf">GameClient::getInstance</a></div><div class="ttdeci">static GameClient &amp; getInstance()</div><div class="ttdef"><b>Definition:</b> <a href="main_game_8cpp_source.html#l00040">mainGame.cpp:40</a></div></div>
+<div class="ttc" id="aclassrender_1_1_simple_sprite_html"><div class="ttname"><a href="classrender_1_1_simple_sprite.html">render::SimpleSprite</a></div><div class="ttdoc">Simplest useable texture.</div><div class="ttdef"><b>Definition:</b> <a href="_simple_sprite_8h_source.html#l00011">SimpleSprite.h:13</a></div></div>
+<div class="ttc" id="amain_game_8h_html"><div class="ttname"><a href="main_game_8h.html">mainGame.h</a></div></div>
+<div class="ttc" id="aclassentities_1_1_projectile_entity_html_ab01d1aa4b66b21481d07f7777bfb2ca3"><div class="ttname"><a href="classentities_1_1_projectile_entity.html#ab01d1aa4b66b21481d07f7777bfb2ca3">entities::ProjectileEntity::user</a></div><div class="ttdeci">std::shared_ptr&lt; Entity &gt; user</div><div class="ttdoc">Who is the owner of this bullet. needed to not damage the user.</div><div class="ttdef"><b>Definition:</b> <a href="_projectile_entity_8h_source.html#l00025">ProjectileEntity.h:25</a></div></div>
+<div class="ttc" id="aclassentities_1_1_entity_html_abcc4364b5b7250f0364f3550a618b3ab"><div class="ttname"><a href="classentities_1_1_entity.html#abcc4364b5b7250f0364f3550a618b3ab">entities::Entity::render</a></div><div class="ttdeci">virtual void render(olc::TransformedView &amp;scene)</div><div class="ttdoc">render</div><div class="ttdef"><b>Definition:</b> <a href="_entity_8cpp_source.html#l00052">Entity.cpp:52</a></div></div>
+<div class="ttc" id="aclassentities_1_1_projectile_entity_html_a761f27885de02515edaf252e8a4162b5"><div class="ttname"><a href="classentities_1_1_projectile_entity.html#a761f27885de02515edaf252e8a4162b5">entities::ProjectileEntity::tick</a></div><div class="ttdeci">void tick(GameClient &amp;client, float deltaT, std::shared_ptr&lt; Entity &gt; &amp;shared_this) override</div><div class="ttdoc">Entity tick multiple times per sec.</div><div class="ttdef"><b>Definition:</b> <a href="_projectile_entity_8cpp_source.html#l00043">ProjectileEntity.cpp:43</a></div></div>
+<div class="ttc" id="aclassentities_1_1_projectile_entity_html"><div class="ttname"><a href="classentities_1_1_projectile_entity.html">entities::ProjectileEntity</a></div><div class="ttdoc">A projectile, a bullet.</div><div class="ttdef"><b>Definition:</b> <a href="_projectile_entity_8h_source.html#l00009">ProjectileEntity.h:11</a></div></div>
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/_explosive_projectile_8h.html b/doxy/html/_explosive_projectile_8h.html
new file mode 100644
index 0000000000000000000000000000000000000000..12dba7137f32e59de97d7dae31a689604326a7ed
--- /dev/null
+++ b/doxy/html/_explosive_projectile_8h.html
@@ -0,0 +1,93 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: C:/Users/kosmx/Documents/GitHub/2d-game/ExplosiveProjectile.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#nested-classes">Classes</a> &#124;
+<a href="#namespaces">Namespaces</a>  </div>
+  <div class="headertitle">
+<div class="title">C:/Users/kosmx/Documents/GitHub/2d-game/ExplosiveProjectile.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &quot;<a class="el" href="_projectile_entity_8h_source.html">ProjectileEntity.h</a>&quot;</code><br />
+</div>
+<p><a href="_explosive_projectile_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_explosive_projectile.html">entities::ExplosiveProjectile</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A projectile, that explodes.  <a href="classentities_1_1_explosive_projectile.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
+Namespaces</h2></td></tr>
+<tr class="memitem:namespaceentities"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceentities.html">entities</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/_explosive_projectile_8h_source.html b/doxy/html/_explosive_projectile_8h_source.html
new file mode 100644
index 0000000000000000000000000000000000000000..7170956894d77d4c511042aa3b3877be18a47b5b
--- /dev/null
+++ b/doxy/html/_explosive_projectile_8h_source.html
@@ -0,0 +1,114 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: C:/Users/kosmx/Documents/GitHub/2d-game/ExplosiveProjectile.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="headertitle">
+<div class="title">C:/Users/kosmx/Documents/GitHub/2d-game/ExplosiveProjectile.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="_explosive_projectile_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_projectile_entity_8h.html">ProjectileEntity.h</a>&quot;</span></div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160; </div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespaceentities.html">entities</a> {</div>
+<div class="line"><a name="l00008"></a><span class="lineno"><a class="line" href="classentities_1_1_explosive_projectile.html">    8</a></span>&#160;    <span class="keyword">class </span><a class="code" href="classentities_1_1_explosive_projectile.html">ExplosiveProjectile</a> :</div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;        <span class="keyword">public</span> <a class="code" href="classentities_1_1_projectile_entity.html">ProjectileEntity</a></div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;    {</div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;    <span class="keyword">private</span>:</div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;        <span class="keywordtype">float</span> stateTime = 0;</div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;        <span class="keywordtype">bool</span> state = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;        <span class="keyword">static</span> <a class="code" href="classrender_1_1_simple_sprite.html">render::SimpleSprite</a> explosion;</div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;    <span class="keyword">protected</span>:</div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;        <span class="keywordtype">bool</span> <a class="code" href="classentities_1_1_explosive_projectile.html#a7e0d880f0dfeb6570dc724a0739b1331">onCollide</a>(<span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; collisionVector, std::shared_ptr&lt;Entity&gt;&amp; who) <span class="keyword">override</span>;</div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;    <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;        <a class="code" href="classentities_1_1_explosive_projectile.html#ae80625e2530015d21b963ec219be758e">ExplosiveProjectile</a>(std::shared_ptr&lt;Entity&gt;&amp; <a class="code" href="classentities_1_1_projectile_entity.html#ab01d1aa4b66b21481d07f7777bfb2ca3">user</a>, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; pos0, <a class="code" href="classrender_1_1_i_texture.html">render::ITexture</a>&amp; texture, <span class="keywordtype">int</span> <a class="code" href="classentities_1_1_projectile_entity.html#a723e706e6421504ce9c6d70d77561215">damage</a> = 40);</div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160; </div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;        <span class="keywordtype">void</span> <a class="code" href="classentities_1_1_explosive_projectile.html#a3aa22ab3467caa20a8c7b3cc818b157d">tick</a>(<a class="code" href="class_game_client.html">GameClient</a>&amp; client, <span class="keywordtype">float</span> deltaT, std::shared_ptr&lt;Entity&gt;&amp; shared_this) <span class="keyword">override</span>;</div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160; </div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;        <span class="keywordtype">bool</span> <a class="code" href="classentities_1_1_explosive_projectile.html#a8b075196a23aed5116e885709b64d583">canBeRemoved</a>() <span class="keyword">const override</span>;</div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160; </div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;        <span class="keywordtype">void</span> <a class="code" href="classentities_1_1_explosive_projectile.html#a86148b27403d275c1513f22bb3f47892">render</a>(<a class="code" href="classolc_1_1_transformed_view.html">olc::TransformedView</a>&amp; scene) <span class="keyword">override</span>;</div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;    };</div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;}</div>
+</div><!-- fragment --></div><!-- contents -->
+<div class="ttc" id="aclassentities_1_1_explosive_projectile_html_a86148b27403d275c1513f22bb3f47892"><div class="ttname"><a href="classentities_1_1_explosive_projectile.html#a86148b27403d275c1513f22bb3f47892">entities::ExplosiveProjectile::render</a></div><div class="ttdeci">void render(olc::TransformedView &amp;scene) override</div><div class="ttdoc">render</div><div class="ttdef"><b>Definition:</b> <a href="_explosive_projectile_8cpp_source.html#l00036">ExplosiveProjectile.cpp:36</a></div></div>
+<div class="ttc" id="astructolc_1_1v2d__generic_html"><div class="ttname"><a href="structolc_1_1v2d__generic.html">olc::v2d_generic&lt; float &gt;</a></div></div>
+<div class="ttc" id="aclassentities_1_1_explosive_projectile_html_a3aa22ab3467caa20a8c7b3cc818b157d"><div class="ttname"><a href="classentities_1_1_explosive_projectile.html#a3aa22ab3467caa20a8c7b3cc818b157d">entities::ExplosiveProjectile::tick</a></div><div class="ttdeci">void tick(GameClient &amp;client, float deltaT, std::shared_ptr&lt; Entity &gt; &amp;shared_this) override</div><div class="ttdoc">Entity tick multiple times per sec.</div><div class="ttdef"><b>Definition:</b> <a href="_explosive_projectile_8cpp_source.html#l00022">ExplosiveProjectile.cpp:22</a></div></div>
+<div class="ttc" id="aclassentities_1_1_explosive_projectile_html_a7e0d880f0dfeb6570dc724a0739b1331"><div class="ttname"><a href="classentities_1_1_explosive_projectile.html#a7e0d880f0dfeb6570dc724a0739b1331">entities::ExplosiveProjectile::onCollide</a></div><div class="ttdeci">bool onCollide(const olc::vf2d &amp;collisionVector, std::shared_ptr&lt; Entity &gt; &amp;who) override</div><div class="ttdoc">Determines, what will the projectile do, if it hit something.</div><div class="ttdef"><b>Definition:</b> <a href="_explosive_projectile_8cpp_source.html#l00010">ExplosiveProjectile.cpp:10</a></div></div>
+<div class="ttc" id="aclassentities_1_1_projectile_entity_html_a723e706e6421504ce9c6d70d77561215"><div class="ttname"><a href="classentities_1_1_projectile_entity.html#a723e706e6421504ce9c6d70d77561215">entities::ProjectileEntity::damage</a></div><div class="ttdeci">bool damage(int damage, Entity &amp;attacker) override</div><div class="ttdoc">something damage this</div><div class="ttdef"><b>Definition:</b> <a href="_projectile_entity_8cpp_source.html#l00066">ProjectileEntity.cpp:66</a></div></div>
+<div class="ttc" id="aclass_game_client_html"><div class="ttname"><a href="class_game_client.html">GameClient</a></div><div class="ttdoc">The game main class itself. manages the entities, adjust the screen...</div><div class="ttdef"><b>Definition:</b> <a href="main_game_8h_source.html#l00011">mainGame.h:13</a></div></div>
+<div class="ttc" id="aclassentities_1_1_explosive_projectile_html"><div class="ttname"><a href="classentities_1_1_explosive_projectile.html">entities::ExplosiveProjectile</a></div><div class="ttdoc">A projectile, that explodes.</div><div class="ttdef"><b>Definition:</b> <a href="_explosive_projectile_8h_source.html#l00008">ExplosiveProjectile.h:10</a></div></div>
+<div class="ttc" id="aclassrender_1_1_i_texture_html"><div class="ttname"><a href="classrender_1_1_i_texture.html">render::ITexture</a></div><div class="ttdoc">Every texture, what can render an entity.</div><div class="ttdef"><b>Definition:</b> <a href="_i_texture_8h_source.html#l00015">ITexture.h:16</a></div></div>
+<div class="ttc" id="aclassentities_1_1_explosive_projectile_html_ae80625e2530015d21b963ec219be758e"><div class="ttname"><a href="classentities_1_1_explosive_projectile.html#ae80625e2530015d21b963ec219be758e">entities::ExplosiveProjectile::ExplosiveProjectile</a></div><div class="ttdeci">ExplosiveProjectile(std::shared_ptr&lt; Entity &gt; &amp;user, const olc::vf2d &amp;pos0, render::ITexture &amp;texture, int damage=40)</div><div class="ttdef"><b>Definition:</b> <a href="_explosive_projectile_8cpp_source.html#l00019">ExplosiveProjectile.cpp:19</a></div></div>
+<div class="ttc" id="aclassentities_1_1_explosive_projectile_html_a8b075196a23aed5116e885709b64d583"><div class="ttname"><a href="classentities_1_1_explosive_projectile.html#a8b075196a23aed5116e885709b64d583">entities::ExplosiveProjectile::canBeRemoved</a></div><div class="ttdeci">bool canBeRemoved() const override</div><div class="ttdef"><b>Definition:</b> <a href="_explosive_projectile_8cpp_source.html#l00032">ExplosiveProjectile.cpp:32</a></div></div>
+<div class="ttc" id="anamespaceentities_html"><div class="ttname"><a href="namespaceentities.html">entities</a></div><div class="ttdef"><b>Definition:</b> <a href="_character_entity_8cpp_source.html#l00005">CharacterEntity.cpp:5</a></div></div>
+<div class="ttc" id="a_projectile_entity_8h_html"><div class="ttname"><a href="_projectile_entity_8h.html">ProjectileEntity.h</a></div></div>
+<div class="ttc" id="aclassolc_1_1_transformed_view_html"><div class="ttname"><a href="classolc_1_1_transformed_view.html">olc::TransformedView</a></div><div class="ttdef"><b>Definition:</b> <a href="olc_p_g_e_x___transformed_view_8h_source.html#l00079">olcPGEX_TransformedView.h:80</a></div></div>
+<div class="ttc" id="aclassrender_1_1_simple_sprite_html"><div class="ttname"><a href="classrender_1_1_simple_sprite.html">render::SimpleSprite</a></div><div class="ttdoc">Simplest useable texture.</div><div class="ttdef"><b>Definition:</b> <a href="_simple_sprite_8h_source.html#l00011">SimpleSprite.h:13</a></div></div>
+<div class="ttc" id="aclassentities_1_1_projectile_entity_html_ab01d1aa4b66b21481d07f7777bfb2ca3"><div class="ttname"><a href="classentities_1_1_projectile_entity.html#ab01d1aa4b66b21481d07f7777bfb2ca3">entities::ProjectileEntity::user</a></div><div class="ttdeci">std::shared_ptr&lt; Entity &gt; user</div><div class="ttdoc">Who is the owner of this bullet. needed to not damage the user.</div><div class="ttdef"><b>Definition:</b> <a href="_projectile_entity_8h_source.html#l00025">ProjectileEntity.h:25</a></div></div>
+<div class="ttc" id="aclassentities_1_1_projectile_entity_html"><div class="ttname"><a href="classentities_1_1_projectile_entity.html">entities::ProjectileEntity</a></div><div class="ttdoc">A projectile, a bullet.</div><div class="ttdef"><b>Definition:</b> <a href="_projectile_entity_8h_source.html#l00009">ProjectileEntity.h:11</a></div></div>
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/_game_exception_8cpp.html b/doxy/html/_game_exception_8cpp.html
new file mode 100644
index 0000000000000000000000000000000000000000..62f05d484e54bee327b13e341ea5eb38a77d4975
--- /dev/null
+++ b/doxy/html/_game_exception_8cpp.html
@@ -0,0 +1,80 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: C:/Users/kosmx/Documents/GitHub/2d-game/GameException.cpp File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">C:/Users/kosmx/Documents/GitHub/2d-game/GameException.cpp File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &quot;<a class="el" href="_game_exception_8h_source.html">GameException.h</a>&quot;</code><br />
+<code>#include &lt;iostream&gt;</code><br />
+<code>#include &quot;<a class="el" href="main_game_8h_source.html">mainGame.h</a>&quot;</code><br />
+</div>
+<p><a href="_game_exception_8cpp_source.html">Go to the source code of this file.</a></p>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/_game_exception_8cpp_source.html b/doxy/html/_game_exception_8cpp_source.html
new file mode 100644
index 0000000000000000000000000000000000000000..fead5af587ea9864109cd23ed23dd2fdfa9cf3c0
--- /dev/null
+++ b/doxy/html/_game_exception_8cpp_source.html
@@ -0,0 +1,92 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: C:/Users/kosmx/Documents/GitHub/2d-game/GameException.cpp Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="headertitle">
+<div class="title">C:/Users/kosmx/Documents/GitHub/2d-game/GameException.cpp</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="_game_exception_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_game_exception_8h.html">GameException.h</a>&quot;</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160; </div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="preprocessor">#include &lt;iostream&gt;</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="main_game_8h.html">mainGame.h</a>&quot;</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160; </div>
+<div class="line"><a name="l00006"></a><span class="lineno"><a class="line" href="class_game_exception.html#a076a7dd5228356c8d54dd0922d1c3048">    6</a></span>&#160;<a class="code" href="class_game_exception.html#a076a7dd5228356c8d54dd0922d1c3048">GameException::GameException</a>(<span class="keyword">const</span> std::string&amp; description, <a class="code" href="classentities_1_1_entity.html">entities::Entity</a>&amp; entity)</div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;    : runtime_error(description), affectedEntity(entity)</div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;{</div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;    std::cout &lt;&lt; <span class="stringliteral">&quot;An exception was thrown, turning on debug mode&quot;</span> &lt;&lt; std::endl;</div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;    <a class="code" href="class_game_client.html#adfcb979db6333b335dee4e6d785aabcf">GameClient::getInstance</a>().<a class="code" href="class_game_client.html#a9af9a685c31d428921b0cf5976a63c14">setDebugMode</a>(<span class="keyword">true</span>);</div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;}</div>
+</div><!-- fragment --></div><!-- contents -->
+<div class="ttc" id="aclass_game_client_html_a9af9a685c31d428921b0cf5976a63c14"><div class="ttname"><a href="class_game_client.html#a9af9a685c31d428921b0cf5976a63c14">GameClient::setDebugMode</a></div><div class="ttdeci">void setDebugMode(bool bl=true)</div><div class="ttdoc">turn on debug, caused by an exception</div><div class="ttdef"><b>Definition:</b> <a href="main_game_8cpp_source.html#l00135">mainGame.cpp:135</a></div></div>
+<div class="ttc" id="aclassentities_1_1_entity_html"><div class="ttname"><a href="classentities_1_1_entity.html">entities::Entity</a></div><div class="ttdoc">Every object, what can be on the map.</div><div class="ttdef"><b>Definition:</b> <a href="_entity_8h_source.html#l00016">Entity.h:17</a></div></div>
+<div class="ttc" id="a_game_exception_8h_html"><div class="ttname"><a href="_game_exception_8h.html">GameException.h</a></div></div>
+<div class="ttc" id="aclass_game_exception_html_a076a7dd5228356c8d54dd0922d1c3048"><div class="ttname"><a href="class_game_exception.html#a076a7dd5228356c8d54dd0922d1c3048">GameException::GameException</a></div><div class="ttdeci">GameException(const std::string &amp;description, entities::Entity &amp;entity)</div><div class="ttdef"><b>Definition:</b> <a href="_game_exception_8cpp_source.html#l00006">GameException.cpp:6</a></div></div>
+<div class="ttc" id="aclass_game_client_html_adfcb979db6333b335dee4e6d785aabcf"><div class="ttname"><a href="class_game_client.html#adfcb979db6333b335dee4e6d785aabcf">GameClient::getInstance</a></div><div class="ttdeci">static GameClient &amp; getInstance()</div><div class="ttdef"><b>Definition:</b> <a href="main_game_8cpp_source.html#l00040">mainGame.cpp:40</a></div></div>
+<div class="ttc" id="amain_game_8h_html"><div class="ttname"><a href="main_game_8h.html">mainGame.h</a></div></div>
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/_game_exception_8h.html b/doxy/html/_game_exception_8h.html
new file mode 100644
index 0000000000000000000000000000000000000000..3d356fe6ff456467f2e61ad0f6ec77e500c7831c
--- /dev/null
+++ b/doxy/html/_game_exception_8h.html
@@ -0,0 +1,92 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: C:/Users/kosmx/Documents/GitHub/2d-game/GameException.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#nested-classes">Classes</a> &#124;
+<a href="#namespaces">Namespaces</a>  </div>
+  <div class="headertitle">
+<div class="title">C:/Users/kosmx/Documents/GitHub/2d-game/GameException.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &lt;stdexcept&gt;</code><br />
+</div>
+<p><a href="_game_exception_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_game_exception.html">GameException</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
+Namespaces</h2></td></tr>
+<tr class="memitem:namespaceentities"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceentities.html">entities</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/_game_exception_8h_source.html b/doxy/html/_game_exception_8h_source.html
new file mode 100644
index 0000000000000000000000000000000000000000..e36aadd32404076d54b720c2df39677066d0de71
--- /dev/null
+++ b/doxy/html/_game_exception_8h_source.html
@@ -0,0 +1,96 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: C:/Users/kosmx/Documents/GitHub/2d-game/GameException.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="headertitle">
+<div class="title">C:/Users/kosmx/Documents/GitHub/2d-game/GameException.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="_game_exception_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="preprocessor">#include &lt;stdexcept&gt;</span></div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160; </div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespaceentities.html">entities</a></div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;{</div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;    <span class="keyword">class </span>Entity;</div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;}</div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160; </div>
+<div class="line"><a name="l00009"></a><span class="lineno"><a class="line" href="class_game_exception.html">    9</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_game_exception.html">GameException</a> :</div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;    <span class="keyword">public</span> std::runtime_error</div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;{</div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="keyword">private</span>:</div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;    <a class="code" href="classentities_1_1_entity.html">entities::Entity</a>&amp; affectedEntity;</div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="keyword">public</span>:</div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;    <a class="code" href="class_game_exception.html#a076a7dd5228356c8d54dd0922d1c3048">GameException</a>(<span class="keyword">const</span> std::string&amp; description, <a class="code" href="classentities_1_1_entity.html">entities::Entity</a>&amp; entity);</div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;};</div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160; </div>
+</div><!-- fragment --></div><!-- contents -->
+<div class="ttc" id="aclass_game_exception_html"><div class="ttname"><a href="class_game_exception.html">GameException</a></div><div class="ttdef"><b>Definition:</b> <a href="_game_exception_8h_source.html#l00009">GameException.h:11</a></div></div>
+<div class="ttc" id="aclassentities_1_1_entity_html"><div class="ttname"><a href="classentities_1_1_entity.html">entities::Entity</a></div><div class="ttdoc">Every object, what can be on the map.</div><div class="ttdef"><b>Definition:</b> <a href="_entity_8h_source.html#l00016">Entity.h:17</a></div></div>
+<div class="ttc" id="anamespaceentities_html"><div class="ttname"><a href="namespaceentities.html">entities</a></div><div class="ttdef"><b>Definition:</b> <a href="_character_entity_8cpp_source.html#l00005">CharacterEntity.cpp:5</a></div></div>
+<div class="ttc" id="aclass_game_exception_html_a076a7dd5228356c8d54dd0922d1c3048"><div class="ttname"><a href="class_game_exception.html#a076a7dd5228356c8d54dd0922d1c3048">GameException::GameException</a></div><div class="ttdeci">GameException(const std::string &amp;description, entities::Entity &amp;entity)</div><div class="ttdef"><b>Definition:</b> <a href="_game_exception_8cpp_source.html#l00006">GameException.cpp:6</a></div></div>
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/_glitch_gun_8cpp.html b/doxy/html/_glitch_gun_8cpp.html
new file mode 100644
index 0000000000000000000000000000000000000000..4c252d797613c704d150a5a871d013f39dd247b6
--- /dev/null
+++ b/doxy/html/_glitch_gun_8cpp.html
@@ -0,0 +1,88 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: C:/Users/kosmx/Documents/GitHub/2d-game/GlitchGun.cpp File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#namespaces">Namespaces</a>  </div>
+  <div class="headertitle">
+<div class="title">C:/Users/kosmx/Documents/GitHub/2d-game/GlitchGun.cpp File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &quot;<a class="el" href="_glitch_gun_8h_source.html">GlitchGun.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="_explosive_projectile_8h_source.html">ExplosiveProjectile.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="main_game_8h_source.html">mainGame.h</a>&quot;</code><br />
+</div>
+<p><a href="_glitch_gun_8cpp_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
+Namespaces</h2></td></tr>
+<tr class="memitem:namespaceweapons"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceweapons.html">weapons</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/_glitch_gun_8cpp_source.html b/doxy/html/_glitch_gun_8cpp_source.html
new file mode 100644
index 0000000000000000000000000000000000000000..767ac987bf817485eb09ac3e24f9bbb62054edd3
--- /dev/null
+++ b/doxy/html/_glitch_gun_8cpp_source.html
@@ -0,0 +1,149 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: C:/Users/kosmx/Documents/GitHub/2d-game/GlitchGun.cpp Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="headertitle">
+<div class="title">C:/Users/kosmx/Documents/GitHub/2d-game/GlitchGun.cpp</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="_glitch_gun_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_glitch_gun_8h.html">GlitchGun.h</a>&quot;</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160; </div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_explosive_projectile_8h.html">ExplosiveProjectile.h</a>&quot;</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="main_game_8h.html">mainGame.h</a>&quot;</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160; </div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="keyword">using namespace </span>std;</div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="keyword">using namespace </span><a class="code" href="namespaceentities.html">entities</a>;</div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="keyword">using namespace </span><a class="code" href="namespaceolc.html">olc</a>;</div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160; </div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespaceweapons.html">weapons</a> {</div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160; </div>
+<div class="line"><a name="l00012"></a><span class="lineno"><a class="line" href="classweapons_1_1_glitch_gun.html#ac8935765613bfe258bc6985441159702">   12</a></span>&#160;    <a class="code" href="classweapons_1_1_glitch_gun.html#ac8935765613bfe258bc6985441159702">weapons::GlitchGun::GlitchGun</a>(<span class="keywordtype">float</span> cooldownTime, <span class="keywordtype">int</span> damage, <span class="keywordtype">float</span> projectileSpeed, <span class="keyword">const</span> std::string&amp; name, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; pos, <span class="keywordtype">float</span> energyRegen)</div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;        : <a class="code" href="classweapons_1_1_e_m_gun.html">EMGun</a>(<a class="code" href="classweapons_1_1_glitch_gun.html">GlitchGun</a>::<a class="code" href="classweapons_1_1_glitch_texture.html">GlitchTexture</a>, cooldownTime, damage, projectileSpeed, name, pos, energyRegen) {}</div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160; </div>
+<div class="line"><a name="l00015"></a><span class="lineno"><a class="line" href="classweapons_1_1_glitch_gun.html#a9268757aeb63315254d6a13df8ed0ba4">   15</a></span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classweapons_1_1_glitch_gun.html#a9268757aeb63315254d6a13df8ed0ba4">weapons::GlitchGun::spawnProjectile</a>(std::shared_ptr&lt;Entity&gt;&amp; user, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; pos, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; v0, <span class="keywordtype">int</span> damage)</div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;    {</div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;        <span class="keywordflow">if</span> (rand() % 8 == 0) {</div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;            shared_ptr&lt;ExplosiveProjectile&gt; projectile(<span class="keyword">new</span> <a class="code" href="classentities_1_1_explosive_projectile.html">ExplosiveProjectile</a>(user, pos, ProjectileEntity::projectile, damage));</div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;            projectile-&gt;setVelocity(v0);</div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;            <a class="code" href="class_game_client.html#adfcb979db6333b335dee4e6d785aabcf">GameClient::getInstance</a>() += projectile;</div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;        }</div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;        <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;            <a class="code" href="classweapons_1_1_pistol.html#a37f81949e55c373d7cf1f35cb59c1c25">EMGun::spawnProjectile</a>(user, pos, v0, damage);</div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;        }</div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;    }</div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160; </div>
+<div class="line"><a name="l00027"></a><span class="lineno"><a class="line" href="classweapons_1_1_glitch_gun.html#a6687147e8005e96f12806862f73a6cd8">   27</a></span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="classweapons_1_1_glitch_gun.html#a6687147e8005e96f12806862f73a6cd8">weapons::GlitchGun::update</a>(<span class="keywordtype">float</span> dTick)</div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;    {</div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;        timeState += dTick;</div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;        <span class="keywordflow">if</span> (timeState &gt; 2) {</div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;            timeState -= 2;</div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;        }</div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="classweapons_1_1_e_m_gun.html#a0bb30401aa36e2205c011ea0fcf40303">EMGun::update</a>(dTick);</div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;    }</div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160; </div>
+<div class="line"><a name="l00036"></a><span class="lineno"><a class="line" href="classweapons_1_1_glitch_texture.html#a613747d0865e988631cb0f0213c54640">   36</a></span>&#160;    <a class="code" href="classweapons_1_1_glitch_texture.html#a613747d0865e988631cb0f0213c54640">weapons::GlitchTexture::GlitchTexture</a>(<span class="keyword">const</span> std::string&amp; name)</div>
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;        : sprite(name) {}</div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160; </div>
+<div class="line"><a name="l00039"></a><span class="lineno"><a class="line" href="classweapons_1_1_glitch_texture.html#a5484c864f917e54fb6041b7d0d33ef42">   39</a></span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classweapons_1_1_glitch_texture.html#a5484c864f917e54fb6041b7d0d33ef42">weapons::GlitchTexture::render</a>(<a class="code" href="classolc_1_1_transformed_view.html">olc::TransformedView</a>&amp; scene, <a class="code" href="classentities_1_1_entity.html">Entity</a>&amp; entity)</div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;    {</div>
+<div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;        <a class="code" href="classweapons_1_1_glitch_gun.html">GlitchGun</a>&amp; gun = <span class="keyword">dynamic_cast&lt;</span><a class="code" href="classweapons_1_1_glitch_gun.html">GlitchGun</a>&amp;<span class="keyword">&gt;</span>(entity);</div>
+<div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;        <a class="code" href="structolc_1_1v2d__generic.html">vi2d</a> pos = { 0, 0 };</div>
+<div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;        <span class="keywordflow">if</span> (gun.timeState &gt; 1) {</div>
+<div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;            pos += {0, 16};</div>
+<div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;        }</div>
+<div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;        <span class="keywordflow">if</span> (gun.timeState &gt; 0.5f &amp;&amp; gun.timeState &lt; 1 || gun.timeState &gt; 1.5) {</div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;            pos += {16, 0};</div>
+<div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;        }</div>
+<div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;        sprite.renderCentered(scene, gun.<a class="code" href="classentities_1_1_entity.html#a799a692b988248dd23d207b95e7fe2b7">getPos</a>(), pos, { 16, 16 });</div>
+<div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;    }</div>
+<div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;    <a class="code" href="classweapons_1_1_glitch_texture.html">GlitchTexture</a> GlitchGun::GlitchTexture;</div>
+<div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;}</div>
+</div><!-- fragment --></div><!-- contents -->
+<div class="ttc" id="astructolc_1_1v2d__generic_html"><div class="ttname"><a href="structolc_1_1v2d__generic.html">olc::v2d_generic&lt; float &gt;</a></div></div>
+<div class="ttc" id="aclassweapons_1_1_pistol_html_a37f81949e55c373d7cf1f35cb59c1c25"><div class="ttname"><a href="classweapons_1_1_pistol.html#a37f81949e55c373d7cf1f35cb59c1c25">weapons::Pistol::spawnProjectile</a></div><div class="ttdeci">void spawnProjectile(std::shared_ptr&lt; Entity &gt; &amp;user, const olc::vf2d &amp;pos, const olc::vf2d &amp;v0, int damage) override</div><div class="ttdoc">Spawn a projectile entity.</div><div class="ttdef"><b>Definition:</b> <a href="_pistol_8cpp_source.html#l00015">Pistol.cpp:15</a></div></div>
+<div class="ttc" id="aclassweapons_1_1_e_m_gun_html_a0bb30401aa36e2205c011ea0fcf40303"><div class="ttname"><a href="classweapons_1_1_e_m_gun.html#a0bb30401aa36e2205c011ea0fcf40303">weapons::EMGun::update</a></div><div class="ttdeci">bool update(float dTick) override</div><div class="ttdoc">Update the weapon in a Character's inventory.</div><div class="ttdef"><b>Definition:</b> <a href="_e_m_gun_8cpp_source.html#l00026">EMGun.cpp:26</a></div></div>
+<div class="ttc" id="aclassweapons_1_1_glitch_gun_html"><div class="ttname"><a href="classweapons_1_1_glitch_gun.html">weapons::GlitchGun</a></div><div class="ttdoc">TODO make the bug weapon more buggy.</div><div class="ttdef"><b>Definition:</b> <a href="_glitch_gun_8h_source.html#l00026">GlitchGun.h:28</a></div></div>
+<div class="ttc" id="aclassweapons_1_1_glitch_gun_html_ac8935765613bfe258bc6985441159702"><div class="ttname"><a href="classweapons_1_1_glitch_gun.html#ac8935765613bfe258bc6985441159702">weapons::GlitchGun::GlitchGun</a></div><div class="ttdeci">GlitchGun(float cooldownTime, int damage, float projectileSpeed=10, const std::string &amp;name=&quot;RangedWeapon&quot;, const olc::vf2d &amp;pos={ 0, 0 }, float energyRegen=10)</div><div class="ttdef"><b>Definition:</b> <a href="_glitch_gun_8cpp_source.html#l00012">GlitchGun.cpp:12</a></div></div>
+<div class="ttc" id="aclassentities_1_1_entity_html_a799a692b988248dd23d207b95e7fe2b7"><div class="ttname"><a href="classentities_1_1_entity.html#a799a692b988248dd23d207b95e7fe2b7">entities::Entity::getPos</a></div><div class="ttdeci">virtual olc::vf2d getPos() const</div><div class="ttdef"><b>Definition:</b> <a href="_entity_8cpp_source.html#l00042">Entity.cpp:42</a></div></div>
+<div class="ttc" id="anamespaceolc_html"><div class="ttname"><a href="namespaceolc.html">olc</a></div><div class="ttdef"><b>Definition:</b> <a href="olc_p_g_e_x___transformed_view_8h_source.html#l00077">olcPGEX_TransformedView.h:78</a></div></div>
+<div class="ttc" id="aclassweapons_1_1_glitch_texture_html_a613747d0865e988631cb0f0213c54640"><div class="ttname"><a href="classweapons_1_1_glitch_texture.html#a613747d0865e988631cb0f0213c54640">weapons::GlitchTexture::GlitchTexture</a></div><div class="ttdeci">GlitchTexture(const std::string &amp;name=&quot;FromMacskusz111/bug.png&quot;)</div><div class="ttdoc">Texture from my friend, Macskusz111.</div><div class="ttdef"><b>Definition:</b> <a href="_glitch_gun_8cpp_source.html#l00036">GlitchGun.cpp:36</a></div></div>
+<div class="ttc" id="anamespaceweapons_html"><div class="ttname"><a href="namespaceweapons.html">weapons</a></div><div class="ttdef"><b>Definition:</b> <a href="_character_entity_8h_source.html#l00004">CharacterEntity.h:5</a></div></div>
+<div class="ttc" id="aclassweapons_1_1_glitch_texture_html"><div class="ttname"><a href="classweapons_1_1_glitch_texture.html">weapons::GlitchTexture</a></div><div class="ttdoc">Texture for the bug weapon.</div><div class="ttdef"><b>Definition:</b> <a href="_glitch_gun_8h_source.html#l00009">GlitchGun.h:10</a></div></div>
+<div class="ttc" id="aclassentities_1_1_entity_html"><div class="ttname"><a href="classentities_1_1_entity.html">entities::Entity</a></div><div class="ttdoc">Every object, what can be on the map.</div><div class="ttdef"><b>Definition:</b> <a href="_entity_8h_source.html#l00016">Entity.h:17</a></div></div>
+<div class="ttc" id="aclassweapons_1_1_e_m_gun_html"><div class="ttname"><a href="classweapons_1_1_e_m_gun.html">weapons::EMGun</a></div><div class="ttdoc">Weapon with energy level.</div><div class="ttdef"><b>Definition:</b> <a href="_e_m_gun_8h_source.html#l00010">EMGun.h:11</a></div></div>
+<div class="ttc" id="a_explosive_projectile_8h_html"><div class="ttname"><a href="_explosive_projectile_8h.html">ExplosiveProjectile.h</a></div></div>
+<div class="ttc" id="aclassentities_1_1_explosive_projectile_html"><div class="ttname"><a href="classentities_1_1_explosive_projectile.html">entities::ExplosiveProjectile</a></div><div class="ttdoc">A projectile, that explodes.</div><div class="ttdef"><b>Definition:</b> <a href="_explosive_projectile_8h_source.html#l00008">ExplosiveProjectile.h:10</a></div></div>
+<div class="ttc" id="anamespaceentities_html"><div class="ttname"><a href="namespaceentities.html">entities</a></div><div class="ttdef"><b>Definition:</b> <a href="_character_entity_8cpp_source.html#l00005">CharacterEntity.cpp:5</a></div></div>
+<div class="ttc" id="aclassolc_1_1_transformed_view_html"><div class="ttname"><a href="classolc_1_1_transformed_view.html">olc::TransformedView</a></div><div class="ttdef"><b>Definition:</b> <a href="olc_p_g_e_x___transformed_view_8h_source.html#l00079">olcPGEX_TransformedView.h:80</a></div></div>
+<div class="ttc" id="aclassweapons_1_1_glitch_gun_html_a9268757aeb63315254d6a13df8ed0ba4"><div class="ttname"><a href="classweapons_1_1_glitch_gun.html#a9268757aeb63315254d6a13df8ed0ba4">weapons::GlitchGun::spawnProjectile</a></div><div class="ttdeci">void spawnProjectile(std::shared_ptr&lt; Entity &gt; &amp;user, const olc::vf2d &amp;pos, const olc::vf2d &amp;v0, int damage) override</div><div class="ttdoc">It does randomly shoot normal and explosive projectiles.</div><div class="ttdef"><b>Definition:</b> <a href="_glitch_gun_8cpp_source.html#l00015">GlitchGun.cpp:15</a></div></div>
+<div class="ttc" id="aclass_game_client_html_adfcb979db6333b335dee4e6d785aabcf"><div class="ttname"><a href="class_game_client.html#adfcb979db6333b335dee4e6d785aabcf">GameClient::getInstance</a></div><div class="ttdeci">static GameClient &amp; getInstance()</div><div class="ttdef"><b>Definition:</b> <a href="main_game_8cpp_source.html#l00040">mainGame.cpp:40</a></div></div>
+<div class="ttc" id="a_glitch_gun_8h_html"><div class="ttname"><a href="_glitch_gun_8h.html">GlitchGun.h</a></div></div>
+<div class="ttc" id="aclassweapons_1_1_glitch_gun_html_a6687147e8005e96f12806862f73a6cd8"><div class="ttname"><a href="classweapons_1_1_glitch_gun.html#a6687147e8005e96f12806862f73a6cd8">weapons::GlitchGun::update</a></div><div class="ttdeci">bool update(float dTick) override</div><div class="ttdoc">Update the weapon in a Character's inventory.</div><div class="ttdef"><b>Definition:</b> <a href="_glitch_gun_8cpp_source.html#l00027">GlitchGun.cpp:27</a></div></div>
+<div class="ttc" id="amain_game_8h_html"><div class="ttname"><a href="main_game_8h.html">mainGame.h</a></div></div>
+<div class="ttc" id="aclassweapons_1_1_glitch_texture_html_a5484c864f917e54fb6041b7d0d33ef42"><div class="ttname"><a href="classweapons_1_1_glitch_texture.html#a5484c864f917e54fb6041b7d0d33ef42">weapons::GlitchTexture::render</a></div><div class="ttdeci">void render(olc::TransformedView &amp;scene, Entity &amp;entity) override</div><div class="ttdoc">Render the sprite, abstract function.</div><div class="ttdef"><b>Definition:</b> <a href="_glitch_gun_8cpp_source.html#l00039">GlitchGun.cpp:39</a></div></div>
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/_glitch_gun_8h.html b/doxy/html/_glitch_gun_8h.html
new file mode 100644
index 0000000000000000000000000000000000000000..e61136685849c7ae3f91dd6bfc5935d955550d08
--- /dev/null
+++ b/doxy/html/_glitch_gun_8h.html
@@ -0,0 +1,96 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: C:/Users/kosmx/Documents/GitHub/2d-game/GlitchGun.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#nested-classes">Classes</a> &#124;
+<a href="#namespaces">Namespaces</a>  </div>
+  <div class="headertitle">
+<div class="title">C:/Users/kosmx/Documents/GitHub/2d-game/GlitchGun.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &quot;<a class="el" href="_e_m_gun_8h_source.html">EMGun.h</a>&quot;</code><br />
+</div>
+<p><a href="_glitch_gun_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_glitch_texture.html">weapons::GlitchTexture</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Texture for the bug weapon.  <a href="classweapons_1_1_glitch_texture.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_glitch_gun.html">weapons::GlitchGun</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">TODO make the bug weapon more buggy.  <a href="classweapons_1_1_glitch_gun.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
+Namespaces</h2></td></tr>
+<tr class="memitem:namespaceweapons"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceweapons.html">weapons</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/_glitch_gun_8h_source.html b/doxy/html/_glitch_gun_8h_source.html
new file mode 100644
index 0000000000000000000000000000000000000000..c0f3f421af042e77567252373db7814c1c2e7b31
--- /dev/null
+++ b/doxy/html/_glitch_gun_8h_source.html
@@ -0,0 +1,126 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: C:/Users/kosmx/Documents/GitHub/2d-game/GlitchGun.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="headertitle">
+<div class="title">C:/Users/kosmx/Documents/GitHub/2d-game/GlitchGun.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="_glitch_gun_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_e_m_gun_8h.html">EMGun.h</a>&quot;</span></div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160; </div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespaceweapons.html">weapons</a></div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;{</div>
+<div class="line"><a name="l00009"></a><span class="lineno"><a class="line" href="classweapons_1_1_glitch_texture.html">    9</a></span>&#160;    <span class="keyword">class </span><a class="code" href="classweapons_1_1_glitch_texture.html">GlitchTexture</a> : <span class="keyword">public</span> <a class="code" href="classrender_1_1_i_texture.html">render::ITexture</a></div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;    {</div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;    <span class="keyword">private</span>:</div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;        <a class="code" href="classrender_1_1_lazy_sprite.html">render::LazySprite</a> sprite;</div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;    <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;        <a class="code" href="classweapons_1_1_glitch_texture.html#a613747d0865e988631cb0f0213c54640">GlitchTexture</a>(<span class="keyword">const</span> std::string&amp; name = <span class="stringliteral">&quot;FromMacskusz111/bug.png&quot;</span>);</div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;        <span class="keywordtype">void</span> <a class="code" href="classweapons_1_1_glitch_texture.html#a5484c864f917e54fb6041b7d0d33ef42">render</a>(<a class="code" href="classolc_1_1_transformed_view.html">olc::TransformedView</a>&amp; scene, <a class="code" href="classentities_1_1_entity.html">Entity</a>&amp; entity) <span class="keyword">override</span>;</div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;    };</div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160; </div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160; </div>
+<div class="line"><a name="l00026"></a><span class="lineno"><a class="line" href="classweapons_1_1_glitch_gun.html">   26</a></span>&#160;    <span class="keyword">class </span><a class="code" href="classweapons_1_1_glitch_gun.html">GlitchGun</a> :</div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;        <span class="keyword">public</span> <a class="code" href="classweapons_1_1_e_m_gun.html">EMGun</a></div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;    {</div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;        <span class="keyword">friend</span> <a class="code" href="classweapons_1_1_glitch_texture.html">GlitchTexture</a>;</div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;    <span class="keyword">private</span>:</div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;        <span class="keywordtype">float</span> timeState = 0;</div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;        <span class="keyword">static</span> <a class="code" href="classweapons_1_1_glitch_texture.html">GlitchTexture</a> <a class="code" href="classweapons_1_1_glitch_texture.html">GlitchTexture</a>;</div>
+<div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;        </div>
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;    <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;        <a class="code" href="classweapons_1_1_glitch_gun.html#ac8935765613bfe258bc6985441159702">GlitchGun</a>(<span class="keywordtype">float</span> <a class="code" href="classweapons_1_1_weapon.html#aa3d78dae766eee8279326026dbb46f1f">cooldownTime</a>, <span class="keywordtype">int</span> <a class="code" href="classweapons_1_1_weapon.html#a397c372ffe2838f7c9c1ce67c06e55a9">damage</a>, <span class="keywordtype">float</span> <a class="code" href="classweapons_1_1_ranged_weapon.html#a299d09c213670d80f7215e2310c92889">projectileSpeed</a> = 10, <span class="keyword">const</span> std::string&amp; <a class="code" href="classweapons_1_1_weapon.html#a3dab7574419aed48f2a0f2d54cfcd825">name</a> = <span class="stringliteral">&quot;RangedWeapon&quot;</span>, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; <a class="code" href="classentities_1_1_entity.html#a04f9c2febe8d435138a07eb2f48ba96b">pos</a> = { 0, 0 }, <span class="keywordtype">float</span> energyRegen = 10);</div>
+<div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;        <span class="keywordtype">void</span> <a class="code" href="classweapons_1_1_glitch_gun.html#a9268757aeb63315254d6a13df8ed0ba4">spawnProjectile</a>(std::shared_ptr&lt;Entity&gt;&amp; user, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; <a class="code" href="classentities_1_1_entity.html#a04f9c2febe8d435138a07eb2f48ba96b">pos</a>, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; v0, <span class="keywordtype">int</span> <a class="code" href="classweapons_1_1_weapon.html#a397c372ffe2838f7c9c1ce67c06e55a9">damage</a>) <span class="keyword">override</span>;</div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;        <span class="keywordtype">bool</span> <a class="code" href="classweapons_1_1_glitch_gun.html#a6687147e8005e96f12806862f73a6cd8">update</a>(<span class="keywordtype">float</span> dTick) <span class="keyword">override</span>;</div>
+<div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;    };</div>
+<div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160; </div>
+<div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160; </div>
+<div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;}</div>
+</div><!-- fragment --></div><!-- contents -->
+<div class="ttc" id="aclassrender_1_1_lazy_sprite_html"><div class="ttname"><a href="classrender_1_1_lazy_sprite.html">render::LazySprite</a></div><div class="ttdoc">Refer to one texture, not animated, not modifiable, just a simple image. Lazy loading means,...</div><div class="ttdef"><b>Definition:</b> <a href="_lazy_sprite_8h_source.html#l00013">LazySprite.h:14</a></div></div>
+<div class="ttc" id="astructolc_1_1v2d__generic_html"><div class="ttname"><a href="structolc_1_1v2d__generic.html">olc::v2d_generic&lt; float &gt;</a></div></div>
+<div class="ttc" id="aclassentities_1_1_entity_html_a04f9c2febe8d435138a07eb2f48ba96b"><div class="ttname"><a href="classentities_1_1_entity.html#a04f9c2febe8d435138a07eb2f48ba96b">entities::Entity::pos</a></div><div class="ttdeci">olc::vf2d pos</div><div class="ttdoc">it's position</div><div class="ttdef"><b>Definition:</b> <a href="_entity_8h_source.html#l00022">Entity.h:22</a></div></div>
+<div class="ttc" id="aclassweapons_1_1_glitch_gun_html"><div class="ttname"><a href="classweapons_1_1_glitch_gun.html">weapons::GlitchGun</a></div><div class="ttdoc">TODO make the bug weapon more buggy.</div><div class="ttdef"><b>Definition:</b> <a href="_glitch_gun_8h_source.html#l00026">GlitchGun.h:28</a></div></div>
+<div class="ttc" id="aclassweapons_1_1_glitch_gun_html_ac8935765613bfe258bc6985441159702"><div class="ttname"><a href="classweapons_1_1_glitch_gun.html#ac8935765613bfe258bc6985441159702">weapons::GlitchGun::GlitchGun</a></div><div class="ttdeci">GlitchGun(float cooldownTime, int damage, float projectileSpeed=10, const std::string &amp;name=&quot;RangedWeapon&quot;, const olc::vf2d &amp;pos={ 0, 0 }, float energyRegen=10)</div><div class="ttdef"><b>Definition:</b> <a href="_glitch_gun_8cpp_source.html#l00012">GlitchGun.cpp:12</a></div></div>
+<div class="ttc" id="aclassweapons_1_1_ranged_weapon_html_a299d09c213670d80f7215e2310c92889"><div class="ttname"><a href="classweapons_1_1_ranged_weapon.html#a299d09c213670d80f7215e2310c92889">weapons::RangedWeapon::projectileSpeed</a></div><div class="ttdeci">float projectileSpeed</div><div class="ttdef"><b>Definition:</b> <a href="_ranged_weapon_8h_source.html#l00020">RangedWeapon.h:20</a></div></div>
+<div class="ttc" id="aclassweapons_1_1_weapon_html_a3dab7574419aed48f2a0f2d54cfcd825"><div class="ttname"><a href="classweapons_1_1_weapon.html#a3dab7574419aed48f2a0f2d54cfcd825">weapons::Weapon::name</a></div><div class="ttdeci">std::string name</div><div class="ttdef"><b>Definition:</b> <a href="_weapon_8h_source.html#l00020">Weapon.h:20</a></div></div>
+<div class="ttc" id="aclassweapons_1_1_glitch_texture_html_a613747d0865e988631cb0f0213c54640"><div class="ttname"><a href="classweapons_1_1_glitch_texture.html#a613747d0865e988631cb0f0213c54640">weapons::GlitchTexture::GlitchTexture</a></div><div class="ttdeci">GlitchTexture(const std::string &amp;name=&quot;FromMacskusz111/bug.png&quot;)</div><div class="ttdoc">Texture from my friend, Macskusz111.</div><div class="ttdef"><b>Definition:</b> <a href="_glitch_gun_8cpp_source.html#l00036">GlitchGun.cpp:36</a></div></div>
+<div class="ttc" id="anamespaceweapons_html"><div class="ttname"><a href="namespaceweapons.html">weapons</a></div><div class="ttdef"><b>Definition:</b> <a href="_character_entity_8h_source.html#l00004">CharacterEntity.h:5</a></div></div>
+<div class="ttc" id="aclassweapons_1_1_glitch_texture_html"><div class="ttname"><a href="classweapons_1_1_glitch_texture.html">weapons::GlitchTexture</a></div><div class="ttdoc">Texture for the bug weapon.</div><div class="ttdef"><b>Definition:</b> <a href="_glitch_gun_8h_source.html#l00009">GlitchGun.h:10</a></div></div>
+<div class="ttc" id="aclassweapons_1_1_weapon_html_aa3d78dae766eee8279326026dbb46f1f"><div class="ttname"><a href="classweapons_1_1_weapon.html#aa3d78dae766eee8279326026dbb46f1f">weapons::Weapon::cooldownTime</a></div><div class="ttdeci">float cooldownTime</div><div class="ttdef"><b>Definition:</b> <a href="_weapon_8h_source.html#l00018">Weapon.h:18</a></div></div>
+<div class="ttc" id="aclassentities_1_1_entity_html"><div class="ttname"><a href="classentities_1_1_entity.html">entities::Entity</a></div><div class="ttdoc">Every object, what can be on the map.</div><div class="ttdef"><b>Definition:</b> <a href="_entity_8h_source.html#l00016">Entity.h:17</a></div></div>
+<div class="ttc" id="aclassweapons_1_1_e_m_gun_html"><div class="ttname"><a href="classweapons_1_1_e_m_gun.html">weapons::EMGun</a></div><div class="ttdoc">Weapon with energy level.</div><div class="ttdef"><b>Definition:</b> <a href="_e_m_gun_8h_source.html#l00010">EMGun.h:11</a></div></div>
+<div class="ttc" id="a_e_m_gun_8h_html"><div class="ttname"><a href="_e_m_gun_8h.html">EMGun.h</a></div></div>
+<div class="ttc" id="aclassrender_1_1_i_texture_html"><div class="ttname"><a href="classrender_1_1_i_texture.html">render::ITexture</a></div><div class="ttdoc">Every texture, what can render an entity.</div><div class="ttdef"><b>Definition:</b> <a href="_i_texture_8h_source.html#l00015">ITexture.h:16</a></div></div>
+<div class="ttc" id="aclassolc_1_1_transformed_view_html"><div class="ttname"><a href="classolc_1_1_transformed_view.html">olc::TransformedView</a></div><div class="ttdef"><b>Definition:</b> <a href="olc_p_g_e_x___transformed_view_8h_source.html#l00079">olcPGEX_TransformedView.h:80</a></div></div>
+<div class="ttc" id="aclassweapons_1_1_glitch_gun_html_a9268757aeb63315254d6a13df8ed0ba4"><div class="ttname"><a href="classweapons_1_1_glitch_gun.html#a9268757aeb63315254d6a13df8ed0ba4">weapons::GlitchGun::spawnProjectile</a></div><div class="ttdeci">void spawnProjectile(std::shared_ptr&lt; Entity &gt; &amp;user, const olc::vf2d &amp;pos, const olc::vf2d &amp;v0, int damage) override</div><div class="ttdoc">It does randomly shoot normal and explosive projectiles.</div><div class="ttdef"><b>Definition:</b> <a href="_glitch_gun_8cpp_source.html#l00015">GlitchGun.cpp:15</a></div></div>
+<div class="ttc" id="aclassweapons_1_1_weapon_html_a397c372ffe2838f7c9c1ce67c06e55a9"><div class="ttname"><a href="classweapons_1_1_weapon.html#a397c372ffe2838f7c9c1ce67c06e55a9">weapons::Weapon::damage</a></div><div class="ttdeci">bool damage(int damage, Entity &amp;attacker) override</div><div class="ttdoc">something damage this</div><div class="ttdef"><b>Definition:</b> <a href="_weapon_8cpp_source.html#l00045">Weapon.cpp:45</a></div></div>
+<div class="ttc" id="aclassweapons_1_1_glitch_gun_html_a6687147e8005e96f12806862f73a6cd8"><div class="ttname"><a href="classweapons_1_1_glitch_gun.html#a6687147e8005e96f12806862f73a6cd8">weapons::GlitchGun::update</a></div><div class="ttdeci">bool update(float dTick) override</div><div class="ttdoc">Update the weapon in a Character's inventory.</div><div class="ttdef"><b>Definition:</b> <a href="_glitch_gun_8cpp_source.html#l00027">GlitchGun.cpp:27</a></div></div>
+<div class="ttc" id="aclassweapons_1_1_glitch_texture_html_a5484c864f917e54fb6041b7d0d33ef42"><div class="ttname"><a href="classweapons_1_1_glitch_texture.html#a5484c864f917e54fb6041b7d0d33ef42">weapons::GlitchTexture::render</a></div><div class="ttdeci">void render(olc::TransformedView &amp;scene, Entity &amp;entity) override</div><div class="ttdoc">Render the sprite, abstract function.</div><div class="ttdef"><b>Definition:</b> <a href="_glitch_gun_8cpp_source.html#l00039">GlitchGun.cpp:39</a></div></div>
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/_i_texture_8h.html b/doxy/html/_i_texture_8h.html
new file mode 100644
index 0000000000000000000000000000000000000000..b1a8265a771504a3504eff775c06affa4160a5bb
--- /dev/null
+++ b/doxy/html/_i_texture_8h.html
@@ -0,0 +1,96 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: C:/Users/kosmx/Documents/GitHub/2d-game/ITexture.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#nested-classes">Classes</a> &#124;
+<a href="#namespaces">Namespaces</a>  </div>
+  <div class="headertitle">
+<div class="title">C:/Users/kosmx/Documents/GitHub/2d-game/ITexture.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &quot;<a class="el" href="olc_p_g_e_x___transformed_view_8h_source.html">olcPGEX_TransformedView.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="_lazy_sprite_8h_source.html">LazySprite.h</a>&quot;</code><br />
+</div>
+<p><a href="_i_texture_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classrender_1_1_i_texture.html">render::ITexture</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Every texture, what can render an entity.  <a href="classrender_1_1_i_texture.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
+Namespaces</h2></td></tr>
+<tr class="memitem:namespaceentities"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceentities.html">entities</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:namespacerender"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacerender.html">render</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/_i_texture_8h_source.html b/doxy/html/_i_texture_8h_source.html
new file mode 100644
index 0000000000000000000000000000000000000000..bb562e2c42fb04b1ccbc5419a83f4f42efc816c5
--- /dev/null
+++ b/doxy/html/_i_texture_8h_source.html
@@ -0,0 +1,105 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: C:/Users/kosmx/Documents/GitHub/2d-game/ITexture.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="headertitle">
+<div class="title">C:/Users/kosmx/Documents/GitHub/2d-game/ITexture.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="_i_texture_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160; </div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="olc_p_g_e_x___transformed_view_8h.html">olcPGEX_TransformedView.h</a>&quot;</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_lazy_sprite_8h.html">LazySprite.h</a>&quot;</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160; </div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespaceentities.html">entities</a> {</div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;    <span class="keyword">class </span>Entity;</div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;}</div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160; </div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacerender.html">render</a></div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;{</div>
+<div class="line"><a name="l00015"></a><span class="lineno"><a class="line" href="classrender_1_1_i_texture.html">   15</a></span>&#160;    <span class="keyword">class </span><a class="code" href="classrender_1_1_i_texture.html">ITexture</a></div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;    {</div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;    <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160; </div>
+<div class="line"><a name="l00024"></a><span class="lineno"><a class="line" href="classrender_1_1_i_texture.html#aedf64dab92f17e22a807635493196913">   24</a></span>&#160;        <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classrender_1_1_i_texture.html#aedf64dab92f17e22a807635493196913">render</a>(<a class="code" href="classolc_1_1_transformed_view.html">olc::TransformedView</a>&amp; scene, <a class="code" href="classentities_1_1_entity.html">entities::Entity</a>&amp; entity) = 0;</div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160; </div>
+<div class="line"><a name="l00029"></a><span class="lineno"><a class="line" href="classrender_1_1_i_texture.html#a2dcbcad96404d6a0ff64e8053ccde162">   29</a></span>&#160;        <span class="keyword">virtual</span> <a class="code" href="classrender_1_1_i_texture.html#a2dcbcad96404d6a0ff64e8053ccde162">~ITexture</a>() = <span class="keywordflow">default</span>;</div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;    };</div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;}</div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160; </div>
+</div><!-- fragment --></div><!-- contents -->
+<div class="ttc" id="aolc_p_g_e_x___transformed_view_8h_html"><div class="ttname"><a href="olc_p_g_e_x___transformed_view_8h.html">olcPGEX_TransformedView.h</a></div></div>
+<div class="ttc" id="aclassentities_1_1_entity_html"><div class="ttname"><a href="classentities_1_1_entity.html">entities::Entity</a></div><div class="ttdoc">Every object, what can be on the map.</div><div class="ttdef"><b>Definition:</b> <a href="_entity_8h_source.html#l00016">Entity.h:17</a></div></div>
+<div class="ttc" id="aclassrender_1_1_i_texture_html_a2dcbcad96404d6a0ff64e8053ccde162"><div class="ttname"><a href="classrender_1_1_i_texture.html#a2dcbcad96404d6a0ff64e8053ccde162">render::ITexture::~ITexture</a></div><div class="ttdeci">virtual ~ITexture()=default</div><div class="ttdoc">mostly not needed, but I can never know it</div></div>
+<div class="ttc" id="aclassrender_1_1_i_texture_html_aedf64dab92f17e22a807635493196913"><div class="ttname"><a href="classrender_1_1_i_texture.html#aedf64dab92f17e22a807635493196913">render::ITexture::render</a></div><div class="ttdeci">virtual void render(olc::TransformedView &amp;scene, entities::Entity &amp;entity)=0</div><div class="ttdoc">Render the sprite, abstract function.</div></div>
+<div class="ttc" id="aclassrender_1_1_i_texture_html"><div class="ttname"><a href="classrender_1_1_i_texture.html">render::ITexture</a></div><div class="ttdoc">Every texture, what can render an entity.</div><div class="ttdef"><b>Definition:</b> <a href="_i_texture_8h_source.html#l00015">ITexture.h:16</a></div></div>
+<div class="ttc" id="anamespacerender_html"><div class="ttname"><a href="namespacerender.html">render</a></div><div class="ttdef"><b>Definition:</b> <a href="_character_texture_8cpp_source.html#l00009">CharacterTexture.cpp:9</a></div></div>
+<div class="ttc" id="anamespaceentities_html"><div class="ttname"><a href="namespaceentities.html">entities</a></div><div class="ttdef"><b>Definition:</b> <a href="_character_entity_8cpp_source.html#l00005">CharacterEntity.cpp:5</a></div></div>
+<div class="ttc" id="aclassolc_1_1_transformed_view_html"><div class="ttname"><a href="classolc_1_1_transformed_view.html">olc::TransformedView</a></div><div class="ttdef"><b>Definition:</b> <a href="olc_p_g_e_x___transformed_view_8h_source.html#l00079">olcPGEX_TransformedView.h:80</a></div></div>
+<div class="ttc" id="a_lazy_sprite_8h_html"><div class="ttname"><a href="_lazy_sprite_8h.html">LazySprite.h</a></div></div>
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/_lazy_sprite_8cpp.html b/doxy/html/_lazy_sprite_8cpp.html
new file mode 100644
index 0000000000000000000000000000000000000000..51214c37200f9f196e1b1ab4506015a2f7b02107
--- /dev/null
+++ b/doxy/html/_lazy_sprite_8cpp.html
@@ -0,0 +1,88 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: C:/Users/kosmx/Documents/GitHub/2d-game/LazySprite.cpp File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#namespaces">Namespaces</a>  </div>
+  <div class="headertitle">
+<div class="title">C:/Users/kosmx/Documents/GitHub/2d-game/LazySprite.cpp File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &quot;<a class="el" href="_lazy_sprite_8h_source.html">LazySprite.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="olc_p_g_e_x___transformed_view_8h_source.html">olcPGEX_TransformedView.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="_resource_manager_8h_source.html">ResourceManager.h</a>&quot;</code><br />
+</div>
+<p><a href="_lazy_sprite_8cpp_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
+Namespaces</h2></td></tr>
+<tr class="memitem:namespacerender"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacerender.html">render</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/_lazy_sprite_8cpp_source.html b/doxy/html/_lazy_sprite_8cpp_source.html
new file mode 100644
index 0000000000000000000000000000000000000000..ae6bb44536f901f668a657d5a6459e5051d6ea33
--- /dev/null
+++ b/doxy/html/_lazy_sprite_8cpp_source.html
@@ -0,0 +1,118 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: C:/Users/kosmx/Documents/GitHub/2d-game/LazySprite.cpp Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="headertitle">
+<div class="title">C:/Users/kosmx/Documents/GitHub/2d-game/LazySprite.cpp</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="_lazy_sprite_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_lazy_sprite_8h.html">LazySprite.h</a>&quot;</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="olc_p_g_e_x___transformed_view_8h.html">olcPGEX_TransformedView.h</a>&quot;</span></div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_resource_manager_8h.html">ResourceManager.h</a>&quot;</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160; </div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacerender.html">render</a> {</div>
+<div class="line"><a name="l00006"></a><span class="lineno"><a class="line" href="classrender_1_1_lazy_sprite.html#aea6cdfcf5295c8a2c4b3f4a51ee0bc28">    6</a></span>&#160;    <a class="code" href="classolc_1_1_decal.html">olc::Decal</a>* <a class="code" href="classrender_1_1_lazy_sprite.html#aea6cdfcf5295c8a2c4b3f4a51ee0bc28">LazySprite::getDecal</a>()</div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;    {</div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;        <span class="keywordflow">if</span> (sprite == <span class="keyword">nullptr</span>) {</div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;            this-&gt;sprite = <a class="code" href="classrender_1_1_resource_manager.html#a4ac8358921fdda1f37bf4564855f6fce">ResourceManager::getSprite</a>(this-&gt;<a class="code" href="classrender_1_1_lazy_sprite.html#a67a794671efc86ea29921c0e5934377e">resourceName</a>);</div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;        }</div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;        <span class="keywordflow">return</span> this-&gt;sprite;</div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;    }</div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160; </div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160; </div>
+<div class="line"><a name="l00015"></a><span class="lineno"><a class="line" href="classrender_1_1_lazy_sprite.html#a28a8d429dc27035aa9a09151aa150b0a">   15</a></span>&#160;    <a class="code" href="classrender_1_1_lazy_sprite.html#a28a8d429dc27035aa9a09151aa150b0a">LazySprite::LazySprite</a>(<span class="keyword">const</span> std::string&amp; resName)</div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;        : sprite(nullptr), resourceName(resName)</div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;    {}</div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160; </div>
+<div class="line"><a name="l00019"></a><span class="lineno"><a class="line" href="classrender_1_1_lazy_sprite.html#a3e2884ba94b5f6bbe9061c5a44ca6a23">   19</a></span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classrender_1_1_lazy_sprite.html#a3e2884ba94b5f6bbe9061c5a44ca6a23">LazySprite::render</a>(<a class="code" href="classolc_1_1_transformed_view.html">olc::TransformedView</a>&amp; scene, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; pos, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; uv, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; size, <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a> scale)</div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;    {</div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;        scene.<a class="code" href="classolc_1_1_transformed_view.html#a1daefdb27499350eb3927c79ec60bca5">DrawPartialDecal</a>(pos, this-&gt;<a class="code" href="classrender_1_1_lazy_sprite.html#aea6cdfcf5295c8a2c4b3f4a51ee0bc28">getDecal</a>(), uv, size, scale);</div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;    }</div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;    </div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160; </div>
+<div class="line"><a name="l00025"></a><span class="lineno"><a class="line" href="classrender_1_1_lazy_sprite.html#a1e0b32f06c67b96eed8da12747aa4f0a">   25</a></span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classrender_1_1_lazy_sprite.html#a1e0b32f06c67b96eed8da12747aa4f0a">LazySprite::renderCentered</a>(<a class="code" href="classolc_1_1_transformed_view.html">olc::TransformedView</a>&amp; scene, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; pos, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; uv, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; size, <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a> scale)</div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;    {</div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;        this-&gt;<a class="code" href="classrender_1_1_lazy_sprite.html#a3e2884ba94b5f6bbe9061c5a44ca6a23">render</a>(scene, pos - scale / 2.0f, uv, size, scale);</div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;    }</div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;}</div>
+</div><!-- fragment --></div><!-- contents -->
+<div class="ttc" id="astructolc_1_1v2d__generic_html"><div class="ttname"><a href="structolc_1_1v2d__generic.html">olc::v2d_generic&lt; float &gt;</a></div></div>
+<div class="ttc" id="aolc_p_g_e_x___transformed_view_8h_html"><div class="ttname"><a href="olc_p_g_e_x___transformed_view_8h.html">olcPGEX_TransformedView.h</a></div></div>
+<div class="ttc" id="aclassrender_1_1_resource_manager_html_a4ac8358921fdda1f37bf4564855f6fce"><div class="ttname"><a href="classrender_1_1_resource_manager.html#a4ac8358921fdda1f37bf4564855f6fce">render::ResourceManager::getSprite</a></div><div class="ttdeci">static olc::Decal * getSprite(const std::string &amp;key)</div><div class="ttdoc">get a sprite, it it's already loaded, doesn't load it again</div><div class="ttdef"><b>Definition:</b> <a href="_resource_manager_8cpp_source.html#l00046">ResourceManager.cpp:46</a></div></div>
+<div class="ttc" id="a_resource_manager_8h_html"><div class="ttname"><a href="_resource_manager_8h.html">ResourceManager.h</a></div></div>
+<div class="ttc" id="aclassrender_1_1_lazy_sprite_html_a1e0b32f06c67b96eed8da12747aa4f0a"><div class="ttname"><a href="classrender_1_1_lazy_sprite.html#a1e0b32f06c67b96eed8da12747aa4f0a">render::LazySprite::renderCentered</a></div><div class="ttdeci">void renderCentered(olc::TransformedView &amp;scene, const olc::vf2d &amp;pos, const olc::vf2d &amp;uv, const olc::vf2d &amp;size, olc::vf2d scale=olc::vf2d(1, 1))</div><div class="ttdoc">Render, but pos in the center.</div><div class="ttdef"><b>Definition:</b> <a href="_lazy_sprite_8cpp_source.html#l00025">LazySprite.cpp:25</a></div></div>
+<div class="ttc" id="aclassrender_1_1_lazy_sprite_html_aea6cdfcf5295c8a2c4b3f4a51ee0bc28"><div class="ttname"><a href="classrender_1_1_lazy_sprite.html#aea6cdfcf5295c8a2c4b3f4a51ee0bc28">render::LazySprite::getDecal</a></div><div class="ttdeci">olc::Decal * getDecal()</div><div class="ttdoc">get an old::Decal</div><div class="ttdef"><b>Definition:</b> <a href="_lazy_sprite_8cpp_source.html#l00006">LazySprite.cpp:6</a></div></div>
+<div class="ttc" id="aclassrender_1_1_lazy_sprite_html_a3e2884ba94b5f6bbe9061c5a44ca6a23"><div class="ttname"><a href="classrender_1_1_lazy_sprite.html#a3e2884ba94b5f6bbe9061c5a44ca6a23">render::LazySprite::render</a></div><div class="ttdeci">void render(olc::TransformedView &amp;scene, const olc::vf2d &amp;pos, const olc::vf2d &amp;uv, const olc::vf2d &amp;size, olc::vf2d scale=olc::vf2d(1, 1))</div><div class="ttdoc">Renders the sprite into the world.</div><div class="ttdef"><b>Definition:</b> <a href="_lazy_sprite_8cpp_source.html#l00019">LazySprite.cpp:19</a></div></div>
+<div class="ttc" id="aclassrender_1_1_lazy_sprite_html_a28a8d429dc27035aa9a09151aa150b0a"><div class="ttname"><a href="classrender_1_1_lazy_sprite.html#a28a8d429dc27035aa9a09151aa150b0a">render::LazySprite::LazySprite</a></div><div class="ttdeci">LazySprite(const std::string &amp;resName)</div><div class="ttdef"><b>Definition:</b> <a href="_lazy_sprite_8cpp_source.html#l00015">LazySprite.cpp:15</a></div></div>
+<div class="ttc" id="aclassolc_1_1_transformed_view_html_a1daefdb27499350eb3927c79ec60bca5"><div class="ttname"><a href="classolc_1_1_transformed_view.html#a1daefdb27499350eb3927c79ec60bca5">olc::TransformedView::DrawPartialDecal</a></div><div class="ttdeci">void DrawPartialDecal(const olc::vf2d &amp;pos, olc::Decal *decal, const olc::vf2d &amp;source_pos, const olc::vf2d &amp;source_size, const olc::vf2d &amp;scale={ 1.0f, 1.0f }, const olc::Pixel &amp;tint=olc::WHITE)</div></div>
+<div class="ttc" id="anamespacerender_html"><div class="ttname"><a href="namespacerender.html">render</a></div><div class="ttdef"><b>Definition:</b> <a href="_character_texture_8cpp_source.html#l00009">CharacterTexture.cpp:9</a></div></div>
+<div class="ttc" id="aclassolc_1_1_transformed_view_html"><div class="ttname"><a href="classolc_1_1_transformed_view.html">olc::TransformedView</a></div><div class="ttdef"><b>Definition:</b> <a href="olc_p_g_e_x___transformed_view_8h_source.html#l00079">olcPGEX_TransformedView.h:80</a></div></div>
+<div class="ttc" id="aclassrender_1_1_lazy_sprite_html_a67a794671efc86ea29921c0e5934377e"><div class="ttname"><a href="classrender_1_1_lazy_sprite.html#a67a794671efc86ea29921c0e5934377e">render::LazySprite::resourceName</a></div><div class="ttdeci">const std::string resourceName</div><div class="ttdef"><b>Definition:</b> <a href="_lazy_sprite_8h_source.html#l00019">LazySprite.h:19</a></div></div>
+<div class="ttc" id="a_lazy_sprite_8h_html"><div class="ttname"><a href="_lazy_sprite_8h.html">LazySprite.h</a></div></div>
+<div class="ttc" id="aclassolc_1_1_decal_html"><div class="ttname"><a href="classolc_1_1_decal.html">olc::Decal</a></div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00736">olcPixelGameEngine.h:737</a></div></div>
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/_lazy_sprite_8h.html b/doxy/html/_lazy_sprite_8h.html
new file mode 100644
index 0000000000000000000000000000000000000000..4bbf8a55203a0e59ad36a7ab8fb428f0bbad3e2a
--- /dev/null
+++ b/doxy/html/_lazy_sprite_8h.html
@@ -0,0 +1,95 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: C:/Users/kosmx/Documents/GitHub/2d-game/LazySprite.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#nested-classes">Classes</a> &#124;
+<a href="#namespaces">Namespaces</a>  </div>
+  <div class="headertitle">
+<div class="title">C:/Users/kosmx/Documents/GitHub/2d-game/LazySprite.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &lt;string&gt;</code><br />
+<code>#include &quot;<a class="el" href="olc_pixel_game_engine_8h_source.html">olcPixelGameEngine.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="olc_p_g_e_x___transformed_view_8h_source.html">olcPGEX_TransformedView.h</a>&quot;</code><br />
+</div>
+<p><a href="_lazy_sprite_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classrender_1_1_lazy_sprite.html">render::LazySprite</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Refer to one texture, not animated, not modifiable, just a simple image. Lazy loading means, it will load it only, when you're trying to use it.  <a href="classrender_1_1_lazy_sprite.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
+Namespaces</h2></td></tr>
+<tr class="memitem:namespacerender"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacerender.html">render</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/_lazy_sprite_8h_source.html b/doxy/html/_lazy_sprite_8h_source.html
new file mode 100644
index 0000000000000000000000000000000000000000..2bdff5c41af6584c5715a120353f921bf3fdfe08
--- /dev/null
+++ b/doxy/html/_lazy_sprite_8h_source.html
@@ -0,0 +1,115 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: C:/Users/kosmx/Documents/GitHub/2d-game/LazySprite.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="headertitle">
+<div class="title">C:/Users/kosmx/Documents/GitHub/2d-game/LazySprite.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="_lazy_sprite_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160; </div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="preprocessor">#include &lt;string&gt;</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="olc_pixel_game_engine_8h.html">olcPixelGameEngine.h</a>&quot;</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="olc_p_g_e_x___transformed_view_8h.html">olcPGEX_TransformedView.h</a>&quot;</span></div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160; </div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacerender.html">render</a> {</div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160; </div>
+<div class="line"><a name="l00013"></a><span class="lineno"><a class="line" href="classrender_1_1_lazy_sprite.html">   13</a></span>&#160;    <span class="keyword">class </span><a class="code" href="classrender_1_1_lazy_sprite.html">LazySprite</a></div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;    {</div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;    <span class="keyword">private</span>:</div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;        <a class="code" href="classolc_1_1_decal.html">olc::Decal</a>* sprite;</div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160; </div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;    <span class="keyword">protected</span>:</div>
+<div class="line"><a name="l00019"></a><span class="lineno"><a class="line" href="classrender_1_1_lazy_sprite.html#a67a794671efc86ea29921c0e5934377e">   19</a></span>&#160;        <span class="keyword">const</span> std::string <a class="code" href="classrender_1_1_lazy_sprite.html#a67a794671efc86ea29921c0e5934377e">resourceName</a>;</div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;        <span class="comment">//int const u, v, sizeU, sizeV;</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;        <span class="comment">//olc::vi2d const uv, size;</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<span class="comment"></span>        <a class="code" href="classolc_1_1_decal.html">olc::Decal</a>* <a class="code" href="classrender_1_1_lazy_sprite.html#aea6cdfcf5295c8a2c4b3f4a51ee0bc28">getDecal</a>();</div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;    <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;        <span class="keyword">explicit</span> <a class="code" href="classrender_1_1_lazy_sprite.html#a28a8d429dc27035aa9a09151aa150b0a">LazySprite</a>(<span class="keyword">const</span> std::string&amp; resName);</div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160; </div>
+<div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;        <span class="keywordtype">void</span> <a class="code" href="classrender_1_1_lazy_sprite.html#a3e2884ba94b5f6bbe9061c5a44ca6a23">render</a>(<a class="code" href="classolc_1_1_transformed_view.html">olc::TransformedView</a>&amp; scene, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; pos, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; uv, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; size, <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a> scale = <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>(1, 1));</div>
+<div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160; </div>
+<div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;        <span class="keywordtype">void</span> <a class="code" href="classrender_1_1_lazy_sprite.html#a1e0b32f06c67b96eed8da12747aa4f0a">renderCentered</a>(<a class="code" href="classolc_1_1_transformed_view.html">olc::TransformedView</a>&amp; scene, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; pos, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; uv, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; size, <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a> scale = <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>(1, 1));</div>
+<div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160; </div>
+<div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;        <span class="comment">//decal reference is not my stuff, I don&#39;t have to delete it.</span></div>
+<div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;    };</div>
+<div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;}</div>
+</div><!-- fragment --></div><!-- contents -->
+<div class="ttc" id="aclassrender_1_1_lazy_sprite_html"><div class="ttname"><a href="classrender_1_1_lazy_sprite.html">render::LazySprite</a></div><div class="ttdoc">Refer to one texture, not animated, not modifiable, just a simple image. Lazy loading means,...</div><div class="ttdef"><b>Definition:</b> <a href="_lazy_sprite_8h_source.html#l00013">LazySprite.h:14</a></div></div>
+<div class="ttc" id="astructolc_1_1v2d__generic_html"><div class="ttname"><a href="structolc_1_1v2d__generic.html">olc::v2d_generic&lt; float &gt;</a></div></div>
+<div class="ttc" id="aolc_pixel_game_engine_8h_html"><div class="ttname"><a href="olc_pixel_game_engine_8h.html">olcPixelGameEngine.h</a></div></div>
+<div class="ttc" id="aolc_p_g_e_x___transformed_view_8h_html"><div class="ttname"><a href="olc_p_g_e_x___transformed_view_8h.html">olcPGEX_TransformedView.h</a></div></div>
+<div class="ttc" id="aclassrender_1_1_lazy_sprite_html_a1e0b32f06c67b96eed8da12747aa4f0a"><div class="ttname"><a href="classrender_1_1_lazy_sprite.html#a1e0b32f06c67b96eed8da12747aa4f0a">render::LazySprite::renderCentered</a></div><div class="ttdeci">void renderCentered(olc::TransformedView &amp;scene, const olc::vf2d &amp;pos, const olc::vf2d &amp;uv, const olc::vf2d &amp;size, olc::vf2d scale=olc::vf2d(1, 1))</div><div class="ttdoc">Render, but pos in the center.</div><div class="ttdef"><b>Definition:</b> <a href="_lazy_sprite_8cpp_source.html#l00025">LazySprite.cpp:25</a></div></div>
+<div class="ttc" id="aclassrender_1_1_lazy_sprite_html_aea6cdfcf5295c8a2c4b3f4a51ee0bc28"><div class="ttname"><a href="classrender_1_1_lazy_sprite.html#aea6cdfcf5295c8a2c4b3f4a51ee0bc28">render::LazySprite::getDecal</a></div><div class="ttdeci">olc::Decal * getDecal()</div><div class="ttdoc">get an old::Decal</div><div class="ttdef"><b>Definition:</b> <a href="_lazy_sprite_8cpp_source.html#l00006">LazySprite.cpp:6</a></div></div>
+<div class="ttc" id="aclassrender_1_1_lazy_sprite_html_a3e2884ba94b5f6bbe9061c5a44ca6a23"><div class="ttname"><a href="classrender_1_1_lazy_sprite.html#a3e2884ba94b5f6bbe9061c5a44ca6a23">render::LazySprite::render</a></div><div class="ttdeci">void render(olc::TransformedView &amp;scene, const olc::vf2d &amp;pos, const olc::vf2d &amp;uv, const olc::vf2d &amp;size, olc::vf2d scale=olc::vf2d(1, 1))</div><div class="ttdoc">Renders the sprite into the world.</div><div class="ttdef"><b>Definition:</b> <a href="_lazy_sprite_8cpp_source.html#l00019">LazySprite.cpp:19</a></div></div>
+<div class="ttc" id="aclassrender_1_1_lazy_sprite_html_a28a8d429dc27035aa9a09151aa150b0a"><div class="ttname"><a href="classrender_1_1_lazy_sprite.html#a28a8d429dc27035aa9a09151aa150b0a">render::LazySprite::LazySprite</a></div><div class="ttdeci">LazySprite(const std::string &amp;resName)</div><div class="ttdef"><b>Definition:</b> <a href="_lazy_sprite_8cpp_source.html#l00015">LazySprite.cpp:15</a></div></div>
+<div class="ttc" id="anamespacerender_html"><div class="ttname"><a href="namespacerender.html">render</a></div><div class="ttdef"><b>Definition:</b> <a href="_character_texture_8cpp_source.html#l00009">CharacterTexture.cpp:9</a></div></div>
+<div class="ttc" id="aclassolc_1_1_transformed_view_html"><div class="ttname"><a href="classolc_1_1_transformed_view.html">olc::TransformedView</a></div><div class="ttdef"><b>Definition:</b> <a href="olc_p_g_e_x___transformed_view_8h_source.html#l00079">olcPGEX_TransformedView.h:80</a></div></div>
+<div class="ttc" id="aclassrender_1_1_lazy_sprite_html_a67a794671efc86ea29921c0e5934377e"><div class="ttname"><a href="classrender_1_1_lazy_sprite.html#a67a794671efc86ea29921c0e5934377e">render::LazySprite::resourceName</a></div><div class="ttdeci">const std::string resourceName</div><div class="ttdef"><b>Definition:</b> <a href="_lazy_sprite_8h_source.html#l00019">LazySprite.h:19</a></div></div>
+<div class="ttc" id="aclassolc_1_1_decal_html"><div class="ttname"><a href="classolc_1_1_decal.html">olc::Decal</a></div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00736">olcPixelGameEngine.h:737</a></div></div>
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/_living_entity_8cpp.html b/doxy/html/_living_entity_8cpp.html
new file mode 100644
index 0000000000000000000000000000000000000000..de1b0d4834196748decfd969993164f60360aa91
--- /dev/null
+++ b/doxy/html/_living_entity_8cpp.html
@@ -0,0 +1,88 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: C:/Users/kosmx/Documents/GitHub/2d-game/LivingEntity.cpp File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#namespaces">Namespaces</a>  </div>
+  <div class="headertitle">
+<div class="title">C:/Users/kosmx/Documents/GitHub/2d-game/LivingEntity.cpp File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &quot;<a class="el" href="_living_entity_8h_source.html">LivingEntity.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="main_game_8h_source.html">mainGame.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="_wall_entity_8h_source.html">WallEntity.h</a>&quot;</code><br />
+</div>
+<p><a href="_living_entity_8cpp_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
+Namespaces</h2></td></tr>
+<tr class="memitem:namespaceentities"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceentities.html">entities</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/_living_entity_8cpp_source.html b/doxy/html/_living_entity_8cpp_source.html
new file mode 100644
index 0000000000000000000000000000000000000000..dd777651d8236421643749042b85036cd1d0afbf
--- /dev/null
+++ b/doxy/html/_living_entity_8cpp_source.html
@@ -0,0 +1,200 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: C:/Users/kosmx/Documents/GitHub/2d-game/LivingEntity.cpp Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="headertitle">
+<div class="title">C:/Users/kosmx/Documents/GitHub/2d-game/LivingEntity.cpp</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="_living_entity_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_living_entity_8h.html">LivingEntity.h</a>&quot;</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160; </div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="main_game_8h.html">mainGame.h</a>&quot;</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_wall_entity_8h.html">WallEntity.h</a>&quot;</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160; </div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="keyword">using namespace </span><a class="code" href="namespaceolc.html">olc</a>;</div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160; </div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespaceentities.html">entities</a> {</div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160; </div>
+<div class="line"><a name="l00010"></a><span class="lineno"><a class="line" href="classentities_1_1_living_entity.html#aa965d3922663b974dd14cc5f8004ed65">   10</a></span>&#160;    <a class="code" href="structolc_1_1v2d__generic.html">vf2d</a> LivingEntity::getHitBoxSize()<span class="keyword"> const</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="keyword">    </span>{</div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a>(0.8f, 0.8f)/2;</div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;    }</div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160; </div>
+<div class="line"><a name="l00015"></a><span class="lineno"><a class="line" href="classentities_1_1_living_entity.html#a07a7d7f7e43f2140e3e6337322f78224">   15</a></span>&#160;    <a class="code" href="structolc_1_1v2d__generic.html">vf2d</a> LivingEntity::collisionOffset(<a class="code" href="class_game_client.html">GameClient</a>&amp; client)</div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;    {</div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;        <a class="code" href="structolc_1_1v2d__generic.html">vf2d</a> offset = { 0, 0 };</div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;        <span class="keywordflow">for</span> (<span class="keyword">auto</span>&amp; entity : client.<a class="code" href="class_game_client.html#a6984da0365fd19c81dbc8907b598bf49">getEntities</a>()) {</div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;            <span class="keywordflow">if</span>(std::dynamic_pointer_cast&lt;WallEntity&gt;(entity) == <span class="keyword">nullptr</span>){</div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;                <span class="keywordflow">continue</span>;</div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;            }</div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;            <a class="code" href="structolc_1_1v2d__generic.html">vf2d</a> current = this-&gt;getCollision(*entity);</div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;            <span class="keywordflow">if</span> (offset == <a class="code" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">vf2d</a>(0, 0)) {</div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;                offset = current;</div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;            }</div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;            <span class="keywordflow">else</span> <span class="keywordflow">if</span> (offset != current) {</div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;                <span class="keywordflow">if</span> (std::abs(offset.<a class="code" href="structolc_1_1v2d__generic.html#ad2e96c716c487677bbde6966464fc482">dot</a>(current)) &lt; 0.01) {</div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;                    offset += current;</div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;                }</div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;                <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;                    <span class="keywordflow">if</span> (offset.<a class="code" href="structolc_1_1v2d__generic.html#a6b83d7375119637fdf65233cf6dae947">mag2</a>() &lt; current.<a class="code" href="structolc_1_1v2d__generic.html#a6b83d7375119637fdf65233cf6dae947">mag2</a>()) {</div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;                        offset = current;</div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;                    }</div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;                }</div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;            }</div>
+<div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;        }</div>
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;        <span class="keywordflow">return</span> offset;</div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;    }</div>
+<div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160; </div>
+<div class="line"><a name="l00040"></a><span class="lineno"><a class="line" href="classentities_1_1_living_entity.html#a08837d43e7338c4ceff9acfbbbffd94b">   40</a></span>&#160;    LivingEntity::LivingEntity(<a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a> pos, <span class="keywordtype">int</span> health)</div>
+<div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;        : <a class="code" href="classentities_1_1_entity.html">Entity</a>(pos), health(health), direction(0), anim_phase(0), timeUntilNextPhase(0) {}</div>
+<div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160; </div>
+<div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="classentities_1_1_living_entity.html#a28d31eff59137171da3e23a8e3ef9c1c">   43</a></span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="classentities_1_1_living_entity.html#a28d31eff59137171da3e23a8e3ef9c1c">LivingEntity::damage</a>(<span class="keywordtype">int</span> damage, <a class="code" href="classentities_1_1_entity.html">Entity</a>&amp; attacker)</div>
+<div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;    {</div>
+<div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="classentities_1_1_entity.html#ab0ee90a84f2163b600e603f24cff046f">isAlive</a>()) {</div>
+<div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;            this-&gt;<a class="code" href="classentities_1_1_living_entity.html#a78282129a711906b7973c4ecb37b8434">health</a> = std::max(0, this-&gt;<a class="code" href="classentities_1_1_living_entity.html#a78282129a711906b7973c4ecb37b8434">health</a> - damage);</div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;            <span class="keywordflow">if</span> (<a class="code" href="classentities_1_1_living_entity.html#a78282129a711906b7973c4ecb37b8434">health</a> == 0) {</div>
+<div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;                this-&gt;<a class="code" href="classentities_1_1_entity.html#aedac7bb35b729e4a02c582b9f4369ab8">is_alive</a> = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;                std::cout &lt;&lt; attacker.<a class="code" href="classentities_1_1_entity.html#a8c4b0c1eb69a673619e4c8943ef34f86">getName</a>() &lt;&lt; <span class="stringliteral">&quot; killed &quot;</span> &lt;&lt; this-&gt;<a class="code" href="classentities_1_1_entity.html#a8c4b0c1eb69a673619e4c8943ef34f86">getName</a>() &lt;&lt; <span class="stringliteral">&quot;.&quot;</span> &lt;&lt; std::endl;</div>
+<div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;            }</div>
+<div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;            <span class="keywordflow">return</span> <span class="keyword">true</span>;<span class="comment">//basically you can do that</span></div>
+<div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;        }</div>
+<div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;        <span class="comment">//you can&#39;t hurt dead creatures.</span></div>
+<div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;        <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;    }</div>
+<div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160; </div>
+<div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="classentities_1_1_living_entity.html#a27f39311f1139c96967b28cbaf752bd2">   57</a></span>&#160;    <span class="keywordtype">char</span> <a class="code" href="classentities_1_1_living_entity.html#a27f39311f1139c96967b28cbaf752bd2">LivingEntity::getDirection</a>()</div>
+<div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;    {</div>
+<div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;        <span class="keywordflow">if</span>(<a class="code" href="classentities_1_1_living_entity.html#ad8b574e93d1fa34cdd119be6f0391acb">speed</a>.<a class="code" href="structolc_1_1v2d__generic.html#a6b83d7375119637fdf65233cf6dae947">mag2</a>() &lt; 0.1 ){</div>
+<div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;            <span class="keywordflow">return</span> direction;</div>
+<div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;        }</div>
+<div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;        <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="classentities_1_1_living_entity.html#ad8b574e93d1fa34cdd119be6f0391acb">speed</a>.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a> &gt;= std::abs(<a class="code" href="classentities_1_1_living_entity.html#ad8b574e93d1fa34cdd119be6f0391acb">speed</a>.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a>)){</div>
+<div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;            direction = 2;</div>
+<div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;        }</div>
+<div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;        <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="classentities_1_1_living_entity.html#ad8b574e93d1fa34cdd119be6f0391acb">speed</a>.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a> &lt;= -std::abs(<a class="code" href="classentities_1_1_living_entity.html#ad8b574e93d1fa34cdd119be6f0391acb">speed</a>.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a>)){</div>
+<div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;            direction = 1;</div>
+<div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;        }</div>
+<div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;        <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="classentities_1_1_living_entity.html#ad8b574e93d1fa34cdd119be6f0391acb">speed</a>.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a> &gt;= std::abs(<a class="code" href="classentities_1_1_living_entity.html#ad8b574e93d1fa34cdd119be6f0391acb">speed</a>.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a>)){</div>
+<div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;            direction = 0;</div>
+<div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;        }</div>
+<div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;        <span class="keywordflow">else</span>{</div>
+<div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;            direction = 3;</div>
+<div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;        }</div>
+<div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;        <span class="keywordflow">return</span> direction;</div>
+<div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;    }</div>
+<div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160; </div>
+<div class="line"><a name="l00077"></a><span class="lineno"><a class="line" href="classentities_1_1_living_entity.html#a657626746aaed854f45ac3bb6d6c2a2f">   77</a></span>&#160;    <span class="keywordtype">char</span> <a class="code" href="classentities_1_1_living_entity.html#a657626746aaed854f45ac3bb6d6c2a2f">LivingEntity::getAnimPhase</a>()<span class="keyword"> const</span></div>
+<div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;<span class="keyword">    </span>{</div>
+<div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;        <span class="keywordflow">return</span> this-&gt;anim_phase;</div>
+<div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;    }</div>
+<div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160; </div>
+<div class="line"><a name="l00082"></a><span class="lineno"><a class="line" href="classentities_1_1_living_entity.html#af13cb8c3fabd2960746e21cd7dabe4d6">   82</a></span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classentities_1_1_living_entity.html#af13cb8c3fabd2960746e21cd7dabe4d6">LivingEntity::tick</a>(<a class="code" href="class_game_client.html">GameClient</a>&amp; client, <span class="keywordtype">float</span> deltaT, std::shared_ptr&lt;Entity&gt;&amp; shared_this)</div>
+<div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;    {</div>
+<div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;        timeUntilNextPhase += deltaT * <a class="code" href="classentities_1_1_living_entity.html#ad8b574e93d1fa34cdd119be6f0391acb">speed</a>.<a class="code" href="structolc_1_1v2d__generic.html#ab06016810fe727fa826e43e44e02008b">mag</a>();</div>
+<div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="classentities_1_1_living_entity.html#ad8b574e93d1fa34cdd119be6f0391acb">speed</a> == <a class="code" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">vf2d</a>(0, 0))anim_phase = 0;</div>
+<div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;        <span class="keywordflow">if</span>(timeUntilNextPhase &gt; phaseLength){</div>
+<div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;            anim_phase = (anim_phase + 1) % 4;</div>
+<div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;            timeUntilNextPhase -= phaseLength;</div>
+<div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;        }</div>
+<div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;        </div>
+<div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;        <a class="code" href="classentities_1_1_entity.html#a0440674bf90ae83d9a26aa4b0ac8309e">Entity::tick</a>(client, deltaT, shared_this);</div>
+<div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;        <a class="code" href="classentities_1_1_entity.html#a04f9c2febe8d435138a07eb2f48ba96b">pos</a> += <a class="code" href="classentities_1_1_living_entity.html#ad8b574e93d1fa34cdd119be6f0391acb">speed</a> * deltaT;</div>
+<div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;        <a class="code" href="structolc_1_1v2d__generic.html">vf2d</a> offset = <a class="code" href="classentities_1_1_living_entity.html#a07a7d7f7e43f2140e3e6337322f78224">collisionOffset</a>(client);</div>
+<div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;        <a class="code" href="classentities_1_1_entity.html#a04f9c2febe8d435138a07eb2f48ba96b">pos</a> += offset;</div>
+<div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;    }</div>
+<div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160; </div>
+<div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;    <span class="keyword">const</span> <span class="keywordtype">float</span> LivingEntity::phaseLength = 1;</div>
+<div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;}</div>
+</div><!-- fragment --></div><!-- contents -->
+<div class="ttc" id="aclassentities_1_1_entity_html_ab0ee90a84f2163b600e603f24cff046f"><div class="ttname"><a href="classentities_1_1_entity.html#ab0ee90a84f2163b600e603f24cff046f">entities::Entity::isAlive</a></div><div class="ttdeci">virtual bool isAlive() const</div><div class="ttdef"><b>Definition:</b> <a href="_entity_8cpp_source.html#l00070">Entity.cpp:70</a></div></div>
+<div class="ttc" id="aclassentities_1_1_living_entity_html_a28d31eff59137171da3e23a8e3ef9c1c"><div class="ttname"><a href="classentities_1_1_living_entity.html#a28d31eff59137171da3e23a8e3ef9c1c">entities::LivingEntity::damage</a></div><div class="ttdeci">bool damage(int damage, Entity &amp;attacker) override</div><div class="ttdoc">something damage this</div><div class="ttdef"><b>Definition:</b> <a href="_living_entity_8cpp_source.html#l00043">LivingEntity.cpp:43</a></div></div>
+<div class="ttc" id="aclassentities_1_1_entity_html_aedac7bb35b729e4a02c582b9f4369ab8"><div class="ttname"><a href="classentities_1_1_entity.html#aedac7bb35b729e4a02c582b9f4369ab8">entities::Entity::is_alive</a></div><div class="ttdeci">bool is_alive</div><div class="ttdoc">true, if it is alive</div><div class="ttdef"><b>Definition:</b> <a href="_entity_8h_source.html#l00046">Entity.h:46</a></div></div>
+<div class="ttc" id="astructolc_1_1v2d__generic_html"><div class="ttname"><a href="structolc_1_1v2d__generic.html">olc::v2d_generic&lt; float &gt;</a></div></div>
+<div class="ttc" id="aclassentities_1_1_entity_html_a04f9c2febe8d435138a07eb2f48ba96b"><div class="ttname"><a href="classentities_1_1_entity.html#a04f9c2febe8d435138a07eb2f48ba96b">entities::Entity::pos</a></div><div class="ttdeci">olc::vf2d pos</div><div class="ttdoc">it's position</div><div class="ttdef"><b>Definition:</b> <a href="_entity_8h_source.html#l00022">Entity.h:22</a></div></div>
+<div class="ttc" id="astructolc_1_1v2d__generic_html_a5a9c94207b2163c69a39190c320fcbdf"><div class="ttname"><a href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">olc::v2d_generic::y</a></div><div class="ttdeci">T y</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00585">olcPixelGameEngine.h:585</a></div></div>
+<div class="ttc" id="anamespaceolc_html_adb87819740ea9625f84c821fffb16429"><div class="ttname"><a href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a></div><div class="ttdeci">v2d_generic&lt; float &gt; vf2d</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00646">olcPixelGameEngine.h:646</a></div></div>
+<div class="ttc" id="astructolc_1_1v2d__generic_html_a2c6ce2738720f5e098c7d0bf17f33807"><div class="ttname"><a href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">olc::v2d_generic::x</a></div><div class="ttdeci">T x</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00584">olcPixelGameEngine.h:584</a></div></div>
+<div class="ttc" id="astructolc_1_1v2d__generic_html_ad2e96c716c487677bbde6966464fc482"><div class="ttname"><a href="structolc_1_1v2d__generic.html#ad2e96c716c487677bbde6966464fc482">olc::v2d_generic::dot</a></div><div class="ttdeci">T dot(const v2d_generic &amp;rhs) const</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00598">olcPixelGameEngine.h:598</a></div></div>
+<div class="ttc" id="aclassentities_1_1_entity_html_a0440674bf90ae83d9a26aa4b0ac8309e"><div class="ttname"><a href="classentities_1_1_entity.html#a0440674bf90ae83d9a26aa4b0ac8309e">entities::Entity::tick</a></div><div class="ttdeci">virtual void tick(GameClient &amp;client, float deltaT, std::shared_ptr&lt; Entity &gt; &amp;shared_this)</div><div class="ttdoc">Entity tick multiple times per sec.</div><div class="ttdef"><b>Definition:</b> <a href="_entity_8h_source.html#l00072">Entity.h:72</a></div></div>
+<div class="ttc" id="anamespaceolc_html"><div class="ttname"><a href="namespaceolc.html">olc</a></div><div class="ttdef"><b>Definition:</b> <a href="olc_p_g_e_x___transformed_view_8h_source.html#l00077">olcPGEX_TransformedView.h:78</a></div></div>
+<div class="ttc" id="aclassentities_1_1_living_entity_html_ad8b574e93d1fa34cdd119be6f0391acb"><div class="ttname"><a href="classentities_1_1_living_entity.html#ad8b574e93d1fa34cdd119be6f0391acb">entities::LivingEntity::speed</a></div><div class="ttdeci">olc::vf2d speed</div><div class="ttdoc">Its speed and moving direction.</div><div class="ttdef"><b>Definition:</b> <a href="_living_entity_8h_source.html#l00032">LivingEntity.h:32</a></div></div>
+<div class="ttc" id="aclass_game_client_html_a6984da0365fd19c81dbc8907b598bf49"><div class="ttname"><a href="class_game_client.html#a6984da0365fd19c81dbc8907b598bf49">GameClient::getEntities</a></div><div class="ttdeci">DynamicArray&lt; std::shared_ptr&lt; entities::Entity &gt; &gt; &amp; getEntities()</div><div class="ttdef"><b>Definition:</b> <a href="main_game_8cpp_source.html#l00029">mainGame.cpp:29</a></div></div>
+<div class="ttc" id="aclass_game_client_html"><div class="ttname"><a href="class_game_client.html">GameClient</a></div><div class="ttdoc">The game main class itself. manages the entities, adjust the screen...</div><div class="ttdef"><b>Definition:</b> <a href="main_game_8h_source.html#l00011">mainGame.h:13</a></div></div>
+<div class="ttc" id="a_wall_entity_8h_html"><div class="ttname"><a href="_wall_entity_8h.html">WallEntity.h</a></div></div>
+<div class="ttc" id="aclassentities_1_1_entity_html"><div class="ttname"><a href="classentities_1_1_entity.html">entities::Entity</a></div><div class="ttdoc">Every object, what can be on the map.</div><div class="ttdef"><b>Definition:</b> <a href="_entity_8h_source.html#l00016">Entity.h:17</a></div></div>
+<div class="ttc" id="aclassentities_1_1_living_entity_html_a78282129a711906b7973c4ecb37b8434"><div class="ttname"><a href="classentities_1_1_living_entity.html#a78282129a711906b7973c4ecb37b8434">entities::LivingEntity::health</a></div><div class="ttdeci">int health</div><div class="ttdoc">It has a health.</div><div class="ttdef"><b>Definition:</b> <a href="_living_entity_8h_source.html#l00037">LivingEntity.h:37</a></div></div>
+<div class="ttc" id="a_living_entity_8h_html"><div class="ttname"><a href="_living_entity_8h.html">LivingEntity.h</a></div></div>
+<div class="ttc" id="aclassentities_1_1_entity_html_a8c4b0c1eb69a673619e4c8943ef34f86"><div class="ttname"><a href="classentities_1_1_entity.html#a8c4b0c1eb69a673619e4c8943ef34f86">entities::Entity::getName</a></div><div class="ttdeci">virtual std::string getName() const</div><div class="ttdef"><b>Definition:</b> <a href="_entity_8cpp_source.html#l00057">Entity.cpp:57</a></div></div>
+<div class="ttc" id="astructolc_1_1v2d__generic_html_a6b83d7375119637fdf65233cf6dae947"><div class="ttname"><a href="structolc_1_1v2d__generic.html#a6b83d7375119637fdf65233cf6dae947">olc::v2d_generic::mag2</a></div><div class="ttdeci">T mag2() const</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00591">olcPixelGameEngine.h:591</a></div></div>
+<div class="ttc" id="anamespaceentities_html"><div class="ttname"><a href="namespaceentities.html">entities</a></div><div class="ttdef"><b>Definition:</b> <a href="_character_entity_8cpp_source.html#l00005">CharacterEntity.cpp:5</a></div></div>
+<div class="ttc" id="aclassentities_1_1_living_entity_html_a27f39311f1139c96967b28cbaf752bd2"><div class="ttname"><a href="classentities_1_1_living_entity.html#a27f39311f1139c96967b28cbaf752bd2">entities::LivingEntity::getDirection</a></div><div class="ttdeci">char getDirection()</div><div class="ttdoc">Animation related getter.</div><div class="ttdef"><b>Definition:</b> <a href="_living_entity_8cpp_source.html#l00057">LivingEntity.cpp:57</a></div></div>
+<div class="ttc" id="aclassentities_1_1_living_entity_html_a07a7d7f7e43f2140e3e6337322f78224"><div class="ttname"><a href="classentities_1_1_living_entity.html#a07a7d7f7e43f2140e3e6337322f78224">entities::LivingEntity::collisionOffset</a></div><div class="ttdeci">virtual olc::vf2d collisionOffset(GameClient &amp;client)</div><div class="ttdef"><b>Definition:</b> <a href="_living_entity_8cpp_source.html#l00015">LivingEntity.cpp:15</a></div></div>
+<div class="ttc" id="aclassentities_1_1_living_entity_html_a657626746aaed854f45ac3bb6d6c2a2f"><div class="ttname"><a href="classentities_1_1_living_entity.html#a657626746aaed854f45ac3bb6d6c2a2f">entities::LivingEntity::getAnimPhase</a></div><div class="ttdeci">char getAnimPhase() const</div><div class="ttdoc">Animation phase.</div><div class="ttdef"><b>Definition:</b> <a href="_living_entity_8cpp_source.html#l00077">LivingEntity.cpp:77</a></div></div>
+<div class="ttc" id="amain_game_8h_html"><div class="ttname"><a href="main_game_8h.html">mainGame.h</a></div></div>
+<div class="ttc" id="aclassentities_1_1_living_entity_html_af13cb8c3fabd2960746e21cd7dabe4d6"><div class="ttname"><a href="classentities_1_1_living_entity.html#af13cb8c3fabd2960746e21cd7dabe4d6">entities::LivingEntity::tick</a></div><div class="ttdeci">void tick(GameClient &amp;client, float deltaT, std::shared_ptr&lt; Entity &gt; &amp;shared_this) override</div><div class="ttdoc">Entity tick multiple times per sec.</div><div class="ttdef"><b>Definition:</b> <a href="_living_entity_8cpp_source.html#l00082">LivingEntity.cpp:82</a></div></div>
+<div class="ttc" id="astructolc_1_1v2d__generic_html_ab06016810fe727fa826e43e44e02008b"><div class="ttname"><a href="structolc_1_1v2d__generic.html#ab06016810fe727fa826e43e44e02008b">olc::v2d_generic::mag</a></div><div class="ttdeci">T mag() const</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00590">olcPixelGameEngine.h:590</a></div></div>
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/_living_entity_8h.html b/doxy/html/_living_entity_8h.html
new file mode 100644
index 0000000000000000000000000000000000000000..e67c3d4bf05c8d600b049dfaa1ee24e7cd0c7d83
--- /dev/null
+++ b/doxy/html/_living_entity_8h.html
@@ -0,0 +1,93 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: C:/Users/kosmx/Documents/GitHub/2d-game/LivingEntity.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#nested-classes">Classes</a> &#124;
+<a href="#namespaces">Namespaces</a>  </div>
+  <div class="headertitle">
+<div class="title">C:/Users/kosmx/Documents/GitHub/2d-game/LivingEntity.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &quot;<a class="el" href="_entity_8h_source.html">Entity.h</a>&quot;</code><br />
+</div>
+<p><a href="_living_entity_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_living_entity.html">entities::LivingEntity</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Any moving animal or player.  <a href="classentities_1_1_living_entity.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
+Namespaces</h2></td></tr>
+<tr class="memitem:namespaceentities"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceentities.html">entities</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/_living_entity_8h_source.html b/doxy/html/_living_entity_8h_source.html
new file mode 100644
index 0000000000000000000000000000000000000000..451ec595fe0a8d73f7d8ca4a1671549dd1706189
--- /dev/null
+++ b/doxy/html/_living_entity_8h_source.html
@@ -0,0 +1,117 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: C:/Users/kosmx/Documents/GitHub/2d-game/LivingEntity.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="headertitle">
+<div class="title">C:/Users/kosmx/Documents/GitHub/2d-game/LivingEntity.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="_living_entity_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_entity_8h.html">Entity.h</a>&quot;</span></div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespaceentities.html">entities</a> {</div>
+<div class="line"><a name="l00007"></a><span class="lineno"><a class="line" href="classentities_1_1_living_entity.html">    7</a></span>&#160;    <span class="keyword">class </span><a class="code" href="classentities_1_1_living_entity.html">LivingEntity</a> :</div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;        <span class="keyword">public</span> <a class="code" href="classentities_1_1_entity.html">Entity</a></div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;    {</div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;    <span class="keyword">private</span>:</div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;        <span class="keywordtype">char</span> direction;</div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;        <span class="keywordtype">char</span> anim_phase;</div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;        <span class="keywordtype">float</span> timeUntilNextPhase;</div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;        <span class="keyword">const</span> <span class="keyword">static</span> <span class="keywordtype">float</span> phaseLength;</div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;    <span class="keyword">protected</span>:</div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;        <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a> <a class="code" href="classentities_1_1_living_entity.html#aa965d3922663b974dd14cc5f8004ed65">getHitBoxSize</a>() <span class="keyword">const override</span>;</div>
+<div class="line"><a name="l00032"></a><span class="lineno"><a class="line" href="classentities_1_1_living_entity.html#ad8b574e93d1fa34cdd119be6f0391acb">   32</a></span>&#160;        <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a> <a class="code" href="classentities_1_1_living_entity.html#ad8b574e93d1fa34cdd119be6f0391acb">speed</a>;</div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;        <span class="keyword">virtual</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a> <a class="code" href="classentities_1_1_living_entity.html#a07a7d7f7e43f2140e3e6337322f78224">collisionOffset</a>(<a class="code" href="class_game_client.html">GameClient</a>&amp; client);</div>
+<div class="line"><a name="l00037"></a><span class="lineno"><a class="line" href="classentities_1_1_living_entity.html#a78282129a711906b7973c4ecb37b8434">   37</a></span>&#160;        <span class="keywordtype">int</span> <a class="code" href="classentities_1_1_living_entity.html#a78282129a711906b7973c4ecb37b8434">health</a>;</div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;    <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;        <a class="code" href="classentities_1_1_living_entity.html#a08837d43e7338c4ceff9acfbbbffd94b">LivingEntity</a>(<a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a> <a class="code" href="classentities_1_1_entity.html#a04f9c2febe8d435138a07eb2f48ba96b">pos</a>, <span class="keywordtype">int</span> <a class="code" href="classentities_1_1_living_entity.html#a78282129a711906b7973c4ecb37b8434">health</a> = 100);</div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;        <span class="keywordtype">bool</span> <a class="code" href="classentities_1_1_living_entity.html#a28d31eff59137171da3e23a8e3ef9c1c">damage</a>(<span class="keywordtype">int</span> <a class="code" href="classentities_1_1_living_entity.html#a28d31eff59137171da3e23a8e3ef9c1c">damage</a>, <a class="code" href="classentities_1_1_entity.html">Entity</a>&amp; attacker) <span class="keyword">override</span>;</div>
+<div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;        <span class="keywordtype">char</span> <a class="code" href="classentities_1_1_living_entity.html#a27f39311f1139c96967b28cbaf752bd2">getDirection</a>();</div>
+<div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;        <span class="keywordtype">char</span> <a class="code" href="classentities_1_1_living_entity.html#a657626746aaed854f45ac3bb6d6c2a2f">getAnimPhase</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160; </div>
+<div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160; </div>
+<div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;        <span class="keywordtype">void</span> <a class="code" href="classentities_1_1_living_entity.html#af13cb8c3fabd2960746e21cd7dabe4d6">tick</a>(<a class="code" href="class_game_client.html">GameClient</a>&amp; client, <span class="keywordtype">float</span> deltaT, std::shared_ptr&lt;Entity&gt;&amp; shared_this) <span class="keyword">override</span>; <span class="comment">//TODO</span></div>
+<div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;    };</div>
+<div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;}</div>
+</div><!-- fragment --></div><!-- contents -->
+<div class="ttc" id="aclassentities_1_1_living_entity_html_a28d31eff59137171da3e23a8e3ef9c1c"><div class="ttname"><a href="classentities_1_1_living_entity.html#a28d31eff59137171da3e23a8e3ef9c1c">entities::LivingEntity::damage</a></div><div class="ttdeci">bool damage(int damage, Entity &amp;attacker) override</div><div class="ttdoc">something damage this</div><div class="ttdef"><b>Definition:</b> <a href="_living_entity_8cpp_source.html#l00043">LivingEntity.cpp:43</a></div></div>
+<div class="ttc" id="astructolc_1_1v2d__generic_html"><div class="ttname"><a href="structolc_1_1v2d__generic.html">olc::v2d_generic&lt; float &gt;</a></div></div>
+<div class="ttc" id="aclassentities_1_1_entity_html_a04f9c2febe8d435138a07eb2f48ba96b"><div class="ttname"><a href="classentities_1_1_entity.html#a04f9c2febe8d435138a07eb2f48ba96b">entities::Entity::pos</a></div><div class="ttdeci">olc::vf2d pos</div><div class="ttdoc">it's position</div><div class="ttdef"><b>Definition:</b> <a href="_entity_8h_source.html#l00022">Entity.h:22</a></div></div>
+<div class="ttc" id="aclassentities_1_1_living_entity_html_ad8b574e93d1fa34cdd119be6f0391acb"><div class="ttname"><a href="classentities_1_1_living_entity.html#ad8b574e93d1fa34cdd119be6f0391acb">entities::LivingEntity::speed</a></div><div class="ttdeci">olc::vf2d speed</div><div class="ttdoc">Its speed and moving direction.</div><div class="ttdef"><b>Definition:</b> <a href="_living_entity_8h_source.html#l00032">LivingEntity.h:32</a></div></div>
+<div class="ttc" id="aclass_game_client_html"><div class="ttname"><a href="class_game_client.html">GameClient</a></div><div class="ttdoc">The game main class itself. manages the entities, adjust the screen...</div><div class="ttdef"><b>Definition:</b> <a href="main_game_8h_source.html#l00011">mainGame.h:13</a></div></div>
+<div class="ttc" id="aclassentities_1_1_entity_html"><div class="ttname"><a href="classentities_1_1_entity.html">entities::Entity</a></div><div class="ttdoc">Every object, what can be on the map.</div><div class="ttdef"><b>Definition:</b> <a href="_entity_8h_source.html#l00016">Entity.h:17</a></div></div>
+<div class="ttc" id="aclassentities_1_1_living_entity_html_a78282129a711906b7973c4ecb37b8434"><div class="ttname"><a href="classentities_1_1_living_entity.html#a78282129a711906b7973c4ecb37b8434">entities::LivingEntity::health</a></div><div class="ttdeci">int health</div><div class="ttdoc">It has a health.</div><div class="ttdef"><b>Definition:</b> <a href="_living_entity_8h_source.html#l00037">LivingEntity.h:37</a></div></div>
+<div class="ttc" id="a_entity_8h_html"><div class="ttname"><a href="_entity_8h.html">Entity.h</a></div></div>
+<div class="ttc" id="aclassentities_1_1_living_entity_html"><div class="ttname"><a href="classentities_1_1_living_entity.html">entities::LivingEntity</a></div><div class="ttdoc">Any moving animal or player.</div><div class="ttdef"><b>Definition:</b> <a href="_living_entity_8h_source.html#l00007">LivingEntity.h:9</a></div></div>
+<div class="ttc" id="aclassentities_1_1_living_entity_html_aa965d3922663b974dd14cc5f8004ed65"><div class="ttname"><a href="classentities_1_1_living_entity.html#aa965d3922663b974dd14cc5f8004ed65">entities::LivingEntity::getHitBoxSize</a></div><div class="ttdeci">olc::vf2d getHitBoxSize() const override</div><div class="ttdoc">half hitbox size</div><div class="ttdef"><b>Definition:</b> <a href="_living_entity_8cpp_source.html#l00010">LivingEntity.cpp:10</a></div></div>
+<div class="ttc" id="anamespaceentities_html"><div class="ttname"><a href="namespaceentities.html">entities</a></div><div class="ttdef"><b>Definition:</b> <a href="_character_entity_8cpp_source.html#l00005">CharacterEntity.cpp:5</a></div></div>
+<div class="ttc" id="aclassentities_1_1_living_entity_html_a27f39311f1139c96967b28cbaf752bd2"><div class="ttname"><a href="classentities_1_1_living_entity.html#a27f39311f1139c96967b28cbaf752bd2">entities::LivingEntity::getDirection</a></div><div class="ttdeci">char getDirection()</div><div class="ttdoc">Animation related getter.</div><div class="ttdef"><b>Definition:</b> <a href="_living_entity_8cpp_source.html#l00057">LivingEntity.cpp:57</a></div></div>
+<div class="ttc" id="aclassentities_1_1_living_entity_html_a07a7d7f7e43f2140e3e6337322f78224"><div class="ttname"><a href="classentities_1_1_living_entity.html#a07a7d7f7e43f2140e3e6337322f78224">entities::LivingEntity::collisionOffset</a></div><div class="ttdeci">virtual olc::vf2d collisionOffset(GameClient &amp;client)</div><div class="ttdef"><b>Definition:</b> <a href="_living_entity_8cpp_source.html#l00015">LivingEntity.cpp:15</a></div></div>
+<div class="ttc" id="aclassentities_1_1_living_entity_html_a657626746aaed854f45ac3bb6d6c2a2f"><div class="ttname"><a href="classentities_1_1_living_entity.html#a657626746aaed854f45ac3bb6d6c2a2f">entities::LivingEntity::getAnimPhase</a></div><div class="ttdeci">char getAnimPhase() const</div><div class="ttdoc">Animation phase.</div><div class="ttdef"><b>Definition:</b> <a href="_living_entity_8cpp_source.html#l00077">LivingEntity.cpp:77</a></div></div>
+<div class="ttc" id="aclassentities_1_1_living_entity_html_af13cb8c3fabd2960746e21cd7dabe4d6"><div class="ttname"><a href="classentities_1_1_living_entity.html#af13cb8c3fabd2960746e21cd7dabe4d6">entities::LivingEntity::tick</a></div><div class="ttdeci">void tick(GameClient &amp;client, float deltaT, std::shared_ptr&lt; Entity &gt; &amp;shared_this) override</div><div class="ttdoc">Entity tick multiple times per sec.</div><div class="ttdef"><b>Definition:</b> <a href="_living_entity_8cpp_source.html#l00082">LivingEntity.cpp:82</a></div></div>
+<div class="ttc" id="aclassentities_1_1_living_entity_html_a08837d43e7338c4ceff9acfbbbffd94b"><div class="ttname"><a href="classentities_1_1_living_entity.html#a08837d43e7338c4ceff9acfbbbffd94b">entities::LivingEntity::LivingEntity</a></div><div class="ttdeci">LivingEntity(olc::vf2d pos, int health=100)</div><div class="ttdef"><b>Definition:</b> <a href="_living_entity_8cpp_source.html#l00040">LivingEntity.cpp:40</a></div></div>
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/_melee_weapon_8cpp.html b/doxy/html/_melee_weapon_8cpp.html
new file mode 100644
index 0000000000000000000000000000000000000000..537fa19e59cc0e48bf4811b59814425fa9b44699
--- /dev/null
+++ b/doxy/html/_melee_weapon_8cpp.html
@@ -0,0 +1,87 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: C:/Users/kosmx/Documents/GitHub/2d-game/MeleeWeapon.cpp File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#namespaces">Namespaces</a>  </div>
+  <div class="headertitle">
+<div class="title">C:/Users/kosmx/Documents/GitHub/2d-game/MeleeWeapon.cpp File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &quot;<a class="el" href="_melee_weapon_8h_source.html">MeleeWeapon.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="main_game_8h_source.html">mainGame.h</a>&quot;</code><br />
+</div>
+<p><a href="_melee_weapon_8cpp_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
+Namespaces</h2></td></tr>
+<tr class="memitem:namespaceweapons"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceweapons.html">weapons</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/_melee_weapon_8cpp_source.html b/doxy/html/_melee_weapon_8cpp_source.html
new file mode 100644
index 0000000000000000000000000000000000000000..8c24ccc8b32fcdc571a9d73f9d3b44bf0a877bf1
--- /dev/null
+++ b/doxy/html/_melee_weapon_8cpp_source.html
@@ -0,0 +1,145 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: C:/Users/kosmx/Documents/GitHub/2d-game/MeleeWeapon.cpp Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="headertitle">
+<div class="title">C:/Users/kosmx/Documents/GitHub/2d-game/MeleeWeapon.cpp</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="_melee_weapon_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_melee_weapon_8h.html">MeleeWeapon.h</a>&quot;</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160; </div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="main_game_8h.html">mainGame.h</a>&quot;</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160; </div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160; </div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespaceweapons.html">weapons</a> {</div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;    </div>
+<div class="line"><a name="l00008"></a><span class="lineno"><a class="line" href="classweapons_1_1_melee_weapon.html#a2636c0b628f8fa52d269bb2dab0b21bd">    8</a></span>&#160;    <span class="keywordtype">int</span> <a class="code" href="classweapons_1_1_melee_weapon.html#a2636c0b628f8fa52d269bb2dab0b21bd">MeleeWeapon::getDamage</a>()<span class="keyword"> const</span></div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="keyword">    </span>{</div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;        <span class="keywordflow">return</span> this-&gt;<a class="code" href="classweapons_1_1_weapon.html#a27456b08c51df0759ae0155b9f79e336">baseDamage</a>;</div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;    }</div>
+<div class="line"><a name="l00012"></a><span class="lineno"><a class="line" href="classweapons_1_1_melee_weapon.html#a6938e2705c6353b4b2782e8a4186de17">   12</a></span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="classweapons_1_1_melee_weapon.html#a6938e2705c6353b4b2782e8a4186de17">MeleeWeapon::damageEntity</a>(std::shared_ptr&lt;Entity&gt; user, std::shared_ptr&lt;Entity&gt;&amp; victim)</div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;    {</div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;        <span class="keywordflow">return</span> victim-&gt;damage(this-&gt;<a class="code" href="classweapons_1_1_melee_weapon.html#a2636c0b628f8fa52d269bb2dab0b21bd">getDamage</a>(), *victim);</div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;    }</div>
+<div class="line"><a name="l00016"></a><span class="lineno"><a class="line" href="classweapons_1_1_melee_weapon.html#a59a5b959539d2c71605c1b6fbec3111b">   16</a></span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="classweapons_1_1_melee_weapon.html#a59a5b959539d2c71605c1b6fbec3111b">MeleeWeapon::damageIf</a>(std::shared_ptr&lt;Entity&gt;&amp; user, std::function&lt;<span class="keywordtype">bool</span>(std::shared_ptr&lt;Entity&gt;, std::shared_ptr&lt;Entity&gt;)&gt; predicate)</div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;    {</div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;        <span class="keywordtype">bool</span> bl = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;        <span class="keywordflow">for</span>(<span class="keyword">auto</span>&amp; entity : <a class="code" href="class_game_client.html#adfcb979db6333b335dee4e6d785aabcf">GameClient::getInstance</a>().getEntities()){</div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;            <span class="keywordflow">if</span>(entity != user &amp;&amp; predicate(user, entity)){</div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;                bl = <a class="code" href="classweapons_1_1_melee_weapon.html#a6938e2705c6353b4b2782e8a4186de17">damageEntity</a>(user, entity) || bl;</div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;            }</div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;        }</div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;        <span class="keywordflow">return</span> bl;</div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;    }</div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160; </div>
+<div class="line"><a name="l00027"></a><span class="lineno"><a class="line" href="classweapons_1_1_melee_weapon.html#a719614055440a5e7cfaf943dab856bb1">   27</a></span>&#160;    <a class="code" href="classweapons_1_1_melee_weapon.html#a719614055440a5e7cfaf943dab856bb1">MeleeWeapon::MeleeWeapon</a>(<a class="code" href="classrender_1_1_i_texture.html">render::ITexture</a>&amp; texture, <span class="keyword">const</span> std::string&amp; name, <span class="keywordtype">float</span> cooldownTime, <span class="keywordtype">int</span> damage, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; pos)</div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;        : <a class="code" href="classweapons_1_1_weapon.html">Weapon</a>(texture, cooldownTime, damage, name, pos) {}</div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160; </div>
+<div class="line"><a name="l00030"></a><span class="lineno"><a class="line" href="classweapons_1_1_melee_weapon.html#ac1b9a6718cbf78cea0b9e5e0b8dcc64e">   30</a></span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="classweapons_1_1_melee_weapon.html#ac1b9a6718cbf78cea0b9e5e0b8dcc64e">MeleeWeapon::use</a>(std::shared_ptr&lt;Entity&gt; user, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; direction)</div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;    {</div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;        <span class="keywordflow">if</span> (this-&gt;<a class="code" href="classweapons_1_1_weapon.html#aa3529d6c0160f61132fc7bb1b9284a02">cooldown</a> != 0) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="classweapons_1_1_melee_weapon.html#a59a5b959539d2c71605c1b6fbec3111b">damageIf</a>(user, this-&gt;<a class="code" href="classweapons_1_1_melee_weapon.html#af14b624f27592421fc117c4fa81aba1b">getPredicator</a>(direction))) {</div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;            this-&gt;<a class="code" href="classweapons_1_1_weapon.html#aa3529d6c0160f61132fc7bb1b9284a02">cooldown</a> = this-&gt;<a class="code" href="classweapons_1_1_weapon.html#aa3d78dae766eee8279326026dbb46f1f">cooldownTime</a>;</div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;            <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;        }</div>
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;        <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;    }</div>
+<div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160; </div>
+<div class="line"><a name="l00040"></a><span class="lineno"><a class="line" href="classweapons_1_1_melee_weapon.html#ac6a6b662df60c1927531fddf9a93ebaa">   40</a></span>&#160;    <span class="keywordtype">float</span> <a class="code" href="classweapons_1_1_melee_weapon.html#ac6a6b662df60c1927531fddf9a93ebaa">MeleeWeapon::getHitOffset</a>()<span class="keyword"> const</span></div>
+<div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;<span class="keyword">    </span>{</div>
+<div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;        <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;    }</div>
+<div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;    </div>
+<div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="classweapons_1_1_melee_weapon_1_1predicate_distance.html#abfe04e14018aab1af891302df42255eb">   45</a></span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="classweapons_1_1_melee_weapon_1_1predicate_distance.html#abfe04e14018aab1af891302df42255eb">MeleeWeapon::predicateDistance::operator()</a>(<span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; usePos, std::shared_ptr&lt;Entity&gt; other)<span class="keyword"> const</span></div>
+<div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;<span class="keyword">    </span>{</div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;        <span class="keywordtype">float</span> d = (usePos - other-&gt;getPos()).mag();</div>
+<div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;        <span class="keywordflow">return</span> d &gt; <a class="code" href="classweapons_1_1_melee_weapon_1_1predicate_distance.html#ad75b973371de19453068e729b275af89">minDistance</a> &amp;&amp; d &lt;= <a class="code" href="classweapons_1_1_melee_weapon_1_1predicate_distance.html#a3d53f314c59a28ad09a209299c6f04dc">maxDistance</a>;</div>
+<div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;    }</div>
+<div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;}</div>
+</div><!-- fragment --></div><!-- contents -->
+<div class="ttc" id="astructolc_1_1v2d__generic_html"><div class="ttname"><a href="structolc_1_1v2d__generic.html">olc::v2d_generic&lt; float &gt;</a></div></div>
+<div class="ttc" id="aclassweapons_1_1_weapon_html"><div class="ttname"><a href="classweapons_1_1_weapon.html">weapons::Weapon</a></div><div class="ttdoc">You can throw it to the ground, this is why it's an entity. But it will be possible to use it....</div><div class="ttdef"><b>Definition:</b> <a href="_weapon_8h_source.html#l00010">Weapon.h:12</a></div></div>
+<div class="ttc" id="aclassweapons_1_1_melee_weapon_html_a59a5b959539d2c71605c1b6fbec3111b"><div class="ttname"><a href="classweapons_1_1_melee_weapon.html#a59a5b959539d2c71605c1b6fbec3111b">weapons::MeleeWeapon::damageIf</a></div><div class="ttdeci">virtual bool damageIf(std::shared_ptr&lt; Entity &gt; &amp;user, std::function&lt; bool(std::shared_ptr&lt; Entity &gt; self, std::shared_ptr&lt; Entity &gt; other)&gt; predicate)</div><div class="ttdoc">Tries to damage every entity in a range.</div><div class="ttdef"><b>Definition:</b> <a href="_melee_weapon_8cpp_source.html#l00016">MeleeWeapon.cpp:16</a></div></div>
+<div class="ttc" id="aclassweapons_1_1_melee_weapon_html_a6938e2705c6353b4b2782e8a4186de17"><div class="ttname"><a href="classweapons_1_1_melee_weapon.html#a6938e2705c6353b4b2782e8a4186de17">weapons::MeleeWeapon::damageEntity</a></div><div class="ttdeci">virtual bool damageEntity(std::shared_ptr&lt; Entity &gt; user, std::shared_ptr&lt; Entity &gt; &amp;victim)</div><div class="ttdoc">Damage the victim.</div><div class="ttdef"><b>Definition:</b> <a href="_melee_weapon_8cpp_source.html#l00012">MeleeWeapon.cpp:12</a></div></div>
+<div class="ttc" id="aclassweapons_1_1_melee_weapon_html_af14b624f27592421fc117c4fa81aba1b"><div class="ttname"><a href="classweapons_1_1_melee_weapon.html#af14b624f27592421fc117c4fa81aba1b">weapons::MeleeWeapon::getPredicator</a></div><div class="ttdeci">virtual std::function&lt; bool(std::shared_ptr&lt; Entity &gt;, std::shared_ptr&lt; Entity &gt;)&gt; getPredicator(const olc::vf2d &amp;direction)=0</div><div class="ttdoc">The predicate function getter for the damageIf.</div></div>
+<div class="ttc" id="aclassweapons_1_1_melee_weapon_html_a719614055440a5e7cfaf943dab856bb1"><div class="ttname"><a href="classweapons_1_1_melee_weapon.html#a719614055440a5e7cfaf943dab856bb1">weapons::MeleeWeapon::MeleeWeapon</a></div><div class="ttdeci">MeleeWeapon(render::ITexture &amp;texture, const std::string &amp;name, float cooldownTime, int damage=10, const olc::vf2d &amp;pos={ 0, 0 })</div><div class="ttdef"><b>Definition:</b> <a href="_melee_weapon_8cpp_source.html#l00027">MeleeWeapon.cpp:27</a></div></div>
+<div class="ttc" id="aclassweapons_1_1_melee_weapon_1_1predicate_distance_html_abfe04e14018aab1af891302df42255eb"><div class="ttname"><a href="classweapons_1_1_melee_weapon_1_1predicate_distance.html#abfe04e14018aab1af891302df42255eb">weapons::MeleeWeapon::predicateDistance::operator()</a></div><div class="ttdeci">bool operator()(const olc::vf2d &amp;usePos, std::shared_ptr&lt; Entity &gt; other) const</div><div class="ttdoc">A functor.</div><div class="ttdef"><b>Definition:</b> <a href="_melee_weapon_8cpp_source.html#l00045">MeleeWeapon.cpp:45</a></div></div>
+<div class="ttc" id="aclassweapons_1_1_melee_weapon_html_ac6a6b662df60c1927531fddf9a93ebaa"><div class="ttname"><a href="classweapons_1_1_melee_weapon.html#ac6a6b662df60c1927531fddf9a93ebaa">weapons::MeleeWeapon::getHitOffset</a></div><div class="ttdeci">virtual float getHitOffset() const</div><div class="ttdoc">the hit's center distance from the user</div><div class="ttdef"><b>Definition:</b> <a href="_melee_weapon_8cpp_source.html#l00040">MeleeWeapon.cpp:40</a></div></div>
+<div class="ttc" id="aclassweapons_1_1_weapon_html_a27456b08c51df0759ae0155b9f79e336"><div class="ttname"><a href="classweapons_1_1_weapon.html#a27456b08c51df0759ae0155b9f79e336">weapons::Weapon::baseDamage</a></div><div class="ttdeci">int baseDamage</div><div class="ttdef"><b>Definition:</b> <a href="_weapon_8h_source.html#l00019">Weapon.h:19</a></div></div>
+<div class="ttc" id="anamespaceweapons_html"><div class="ttname"><a href="namespaceweapons.html">weapons</a></div><div class="ttdef"><b>Definition:</b> <a href="_character_entity_8h_source.html#l00004">CharacterEntity.h:5</a></div></div>
+<div class="ttc" id="aclassweapons_1_1_weapon_html_aa3529d6c0160f61132fc7bb1b9284a02"><div class="ttname"><a href="classweapons_1_1_weapon.html#aa3529d6c0160f61132fc7bb1b9284a02">weapons::Weapon::cooldown</a></div><div class="ttdeci">float cooldown</div><div class="ttdef"><b>Definition:</b> <a href="_weapon_8h_source.html#l00017">Weapon.h:17</a></div></div>
+<div class="ttc" id="aclassweapons_1_1_weapon_html_aa3d78dae766eee8279326026dbb46f1f"><div class="ttname"><a href="classweapons_1_1_weapon.html#aa3d78dae766eee8279326026dbb46f1f">weapons::Weapon::cooldownTime</a></div><div class="ttdeci">float cooldownTime</div><div class="ttdef"><b>Definition:</b> <a href="_weapon_8h_source.html#l00018">Weapon.h:18</a></div></div>
+<div class="ttc" id="aclassweapons_1_1_melee_weapon_html_ac1b9a6718cbf78cea0b9e5e0b8dcc64e"><div class="ttname"><a href="classweapons_1_1_melee_weapon.html#ac1b9a6718cbf78cea0b9e5e0b8dcc64e">weapons::MeleeWeapon::use</a></div><div class="ttdeci">bool use(std::shared_ptr&lt; Entity &gt; user, const olc::vf2d &amp;direction) override</div><div class="ttdef"><b>Definition:</b> <a href="_melee_weapon_8cpp_source.html#l00030">MeleeWeapon.cpp:30</a></div></div>
+<div class="ttc" id="aclassrender_1_1_i_texture_html"><div class="ttname"><a href="classrender_1_1_i_texture.html">render::ITexture</a></div><div class="ttdoc">Every texture, what can render an entity.</div><div class="ttdef"><b>Definition:</b> <a href="_i_texture_8h_source.html#l00015">ITexture.h:16</a></div></div>
+<div class="ttc" id="aclassweapons_1_1_melee_weapon_html_a2636c0b628f8fa52d269bb2dab0b21bd"><div class="ttname"><a href="classweapons_1_1_melee_weapon.html#a2636c0b628f8fa52d269bb2dab0b21bd">weapons::MeleeWeapon::getDamage</a></div><div class="ttdeci">virtual int getDamage() const</div><div class="ttdef"><b>Definition:</b> <a href="_melee_weapon_8cpp_source.html#l00008">MeleeWeapon.cpp:8</a></div></div>
+<div class="ttc" id="aclassweapons_1_1_melee_weapon_1_1predicate_distance_html_ad75b973371de19453068e729b275af89"><div class="ttname"><a href="classweapons_1_1_melee_weapon_1_1predicate_distance.html#ad75b973371de19453068e729b275af89">weapons::MeleeWeapon::predicateDistance::minDistance</a></div><div class="ttdeci">float minDistance</div><div class="ttdef"><b>Definition:</b> <a href="_melee_weapon_8h_source.html#l00046">MeleeWeapon.h:46</a></div></div>
+<div class="ttc" id="a_melee_weapon_8h_html"><div class="ttname"><a href="_melee_weapon_8h.html">MeleeWeapon.h</a></div></div>
+<div class="ttc" id="aclass_game_client_html_adfcb979db6333b335dee4e6d785aabcf"><div class="ttname"><a href="class_game_client.html#adfcb979db6333b335dee4e6d785aabcf">GameClient::getInstance</a></div><div class="ttdeci">static GameClient &amp; getInstance()</div><div class="ttdef"><b>Definition:</b> <a href="main_game_8cpp_source.html#l00040">mainGame.cpp:40</a></div></div>
+<div class="ttc" id="amain_game_8h_html"><div class="ttname"><a href="main_game_8h.html">mainGame.h</a></div></div>
+<div class="ttc" id="aclassweapons_1_1_melee_weapon_1_1predicate_distance_html_a3d53f314c59a28ad09a209299c6f04dc"><div class="ttname"><a href="classweapons_1_1_melee_weapon_1_1predicate_distance.html#a3d53f314c59a28ad09a209299c6f04dc">weapons::MeleeWeapon::predicateDistance::maxDistance</a></div><div class="ttdeci">float maxDistance</div><div class="ttdef"><b>Definition:</b> <a href="_melee_weapon_8h_source.html#l00047">MeleeWeapon.h:47</a></div></div>
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/_melee_weapon_8h.html b/doxy/html/_melee_weapon_8h.html
new file mode 100644
index 0000000000000000000000000000000000000000..cf36778f77ad5441697a05155bcd2aebfe06c1ce
--- /dev/null
+++ b/doxy/html/_melee_weapon_8h.html
@@ -0,0 +1,97 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: C:/Users/kosmx/Documents/GitHub/2d-game/MeleeWeapon.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#nested-classes">Classes</a> &#124;
+<a href="#namespaces">Namespaces</a>  </div>
+  <div class="headertitle">
+<div class="title">C:/Users/kosmx/Documents/GitHub/2d-game/MeleeWeapon.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &quot;<a class="el" href="_weapon_8h_source.html">Weapon.h</a>&quot;</code><br />
+<code>#include &lt;functional&gt;</code><br />
+</div>
+<p><a href="_melee_weapon_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_melee_weapon.html">weapons::MeleeWeapon</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A melee weapon, like a spoon.  <a href="classweapons_1_1_melee_weapon.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_melee_weapon_1_1predicate_distance.html">weapons::MeleeWeapon::predicateDistance</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Functor to predicate entity distance. You can also use lambda, if you want.  <a href="classweapons_1_1_melee_weapon_1_1predicate_distance.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
+Namespaces</h2></td></tr>
+<tr class="memitem:namespaceweapons"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceweapons.html">weapons</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/_melee_weapon_8h_source.html b/doxy/html/_melee_weapon_8h_source.html
new file mode 100644
index 0000000000000000000000000000000000000000..59b769469f833816a10ea57d98e1db113b139c81
--- /dev/null
+++ b/doxy/html/_melee_weapon_8h_source.html
@@ -0,0 +1,125 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: C:/Users/kosmx/Documents/GitHub/2d-game/MeleeWeapon.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="headertitle">
+<div class="title">C:/Users/kosmx/Documents/GitHub/2d-game/MeleeWeapon.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="_melee_weapon_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_weapon_8h.html">Weapon.h</a>&quot;</span></div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="preprocessor">#include &lt;functional&gt;</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160; </div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespaceweapons.html">weapons</a> {</div>
+<div class="line"><a name="l00009"></a><span class="lineno"><a class="line" href="classweapons_1_1_melee_weapon.html">    9</a></span>&#160;    <span class="keyword">class </span><a class="code" href="classweapons_1_1_melee_weapon.html">MeleeWeapon</a> :</div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;        <span class="keyword">public</span> <a class="code" href="classweapons_1_1_weapon.html">Weapon</a></div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;    {</div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;    <span class="keyword">protected</span>:</div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;        <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classweapons_1_1_melee_weapon.html#a2636c0b628f8fa52d269bb2dab0b21bd">getDamage</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;        <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classweapons_1_1_melee_weapon.html#a6938e2705c6353b4b2782e8a4186de17">damageEntity</a>(std::shared_ptr&lt;Entity&gt; user, std::shared_ptr&lt;Entity&gt;&amp; victim);</div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;        <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classweapons_1_1_melee_weapon.html#a59a5b959539d2c71605c1b6fbec3111b">damageIf</a>(std::shared_ptr&lt;Entity&gt;&amp; user, std::function&lt;<span class="keywordtype">bool</span>(std::shared_ptr&lt;Entity&gt; <span class="keyword">self</span>, std::shared_ptr&lt;Entity&gt; other)&gt; predicate);</div>
+<div class="line"><a name="l00033"></a><span class="lineno"><a class="line" href="classweapons_1_1_melee_weapon.html#af14b624f27592421fc117c4fa81aba1b">   33</a></span>&#160;        <span class="keyword">virtual</span> std::function&lt;bool(std::shared_ptr&lt;Entity&gt;, std::shared_ptr&lt;Entity&gt;)&gt; <a class="code" href="classweapons_1_1_melee_weapon.html#af14b624f27592421fc117c4fa81aba1b">getPredicator</a>(<span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; direction) = 0;</div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160; </div>
+<div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;        <span class="keyword">virtual</span> <span class="keywordtype">float</span> <a class="code" href="classweapons_1_1_melee_weapon.html#ac6a6b662df60c1927531fddf9a93ebaa">getHitOffset</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="classweapons_1_1_melee_weapon_1_1predicate_distance.html">   43</a></span>&#160;        <span class="keyword">class </span><a class="code" href="classweapons_1_1_melee_weapon_1_1predicate_distance.html">predicateDistance</a></div>
+<div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;        {</div>
+<div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;        <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="classweapons_1_1_melee_weapon_1_1predicate_distance.html#ad75b973371de19453068e729b275af89">   46</a></span>&#160;            <span class="keywordtype">float</span> <a class="code" href="classweapons_1_1_melee_weapon_1_1predicate_distance.html#ad75b973371de19453068e729b275af89">minDistance</a> = 0;</div>
+<div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="classweapons_1_1_melee_weapon_1_1predicate_distance.html#a3d53f314c59a28ad09a209299c6f04dc">   47</a></span>&#160;            <span class="keywordtype">float</span> <a class="code" href="classweapons_1_1_melee_weapon_1_1predicate_distance.html#a3d53f314c59a28ad09a209299c6f04dc">maxDistance</a> = 5;</div>
+<div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;            <span class="keywordtype">bool</span> <a class="code" href="classweapons_1_1_melee_weapon_1_1predicate_distance.html#abfe04e14018aab1af891302df42255eb">operator()</a>(<span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; usePos, std::shared_ptr&lt;Entity&gt; other) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;        };</div>
+<div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;    </div>
+<div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;    <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;        <a class="code" href="classweapons_1_1_melee_weapon.html#a719614055440a5e7cfaf943dab856bb1">MeleeWeapon</a>(<a class="code" href="classrender_1_1_i_texture.html">render::ITexture</a>&amp; texture, <span class="keyword">const</span> std::string&amp; <a class="code" href="classweapons_1_1_weapon.html#a3dab7574419aed48f2a0f2d54cfcd825">name</a>, <span class="keywordtype">float</span> <a class="code" href="classweapons_1_1_weapon.html#aa3d78dae766eee8279326026dbb46f1f">cooldownTime</a>, <span class="keywordtype">int</span> <a class="code" href="classweapons_1_1_weapon.html#a397c372ffe2838f7c9c1ce67c06e55a9">damage</a> = 10, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; <a class="code" href="classentities_1_1_entity.html#a04f9c2febe8d435138a07eb2f48ba96b">pos</a> = { 0, 0 });</div>
+<div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;        </div>
+<div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;        <span class="keywordtype">bool</span> <a class="code" href="classweapons_1_1_melee_weapon.html#ac1b9a6718cbf78cea0b9e5e0b8dcc64e">use</a>(std::shared_ptr&lt;Entity&gt; user, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; direction) <span class="keyword">override</span>;</div>
+<div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;    };</div>
+<div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;}</div>
+</div><!-- fragment --></div><!-- contents -->
+<div class="ttc" id="astructolc_1_1v2d__generic_html"><div class="ttname"><a href="structolc_1_1v2d__generic.html">olc::v2d_generic&lt; float &gt;</a></div></div>
+<div class="ttc" id="aclassentities_1_1_entity_html_a04f9c2febe8d435138a07eb2f48ba96b"><div class="ttname"><a href="classentities_1_1_entity.html#a04f9c2febe8d435138a07eb2f48ba96b">entities::Entity::pos</a></div><div class="ttdeci">olc::vf2d pos</div><div class="ttdoc">it's position</div><div class="ttdef"><b>Definition:</b> <a href="_entity_8h_source.html#l00022">Entity.h:22</a></div></div>
+<div class="ttc" id="aclassweapons_1_1_weapon_html"><div class="ttname"><a href="classweapons_1_1_weapon.html">weapons::Weapon</a></div><div class="ttdoc">You can throw it to the ground, this is why it's an entity. But it will be possible to use it....</div><div class="ttdef"><b>Definition:</b> <a href="_weapon_8h_source.html#l00010">Weapon.h:12</a></div></div>
+<div class="ttc" id="aclassweapons_1_1_melee_weapon_html_a59a5b959539d2c71605c1b6fbec3111b"><div class="ttname"><a href="classweapons_1_1_melee_weapon.html#a59a5b959539d2c71605c1b6fbec3111b">weapons::MeleeWeapon::damageIf</a></div><div class="ttdeci">virtual bool damageIf(std::shared_ptr&lt; Entity &gt; &amp;user, std::function&lt; bool(std::shared_ptr&lt; Entity &gt; self, std::shared_ptr&lt; Entity &gt; other)&gt; predicate)</div><div class="ttdoc">Tries to damage every entity in a range.</div><div class="ttdef"><b>Definition:</b> <a href="_melee_weapon_8cpp_source.html#l00016">MeleeWeapon.cpp:16</a></div></div>
+<div class="ttc" id="aclassweapons_1_1_melee_weapon_html_a6938e2705c6353b4b2782e8a4186de17"><div class="ttname"><a href="classweapons_1_1_melee_weapon.html#a6938e2705c6353b4b2782e8a4186de17">weapons::MeleeWeapon::damageEntity</a></div><div class="ttdeci">virtual bool damageEntity(std::shared_ptr&lt; Entity &gt; user, std::shared_ptr&lt; Entity &gt; &amp;victim)</div><div class="ttdoc">Damage the victim.</div><div class="ttdef"><b>Definition:</b> <a href="_melee_weapon_8cpp_source.html#l00012">MeleeWeapon.cpp:12</a></div></div>
+<div class="ttc" id="aclassweapons_1_1_melee_weapon_html_af14b624f27592421fc117c4fa81aba1b"><div class="ttname"><a href="classweapons_1_1_melee_weapon.html#af14b624f27592421fc117c4fa81aba1b">weapons::MeleeWeapon::getPredicator</a></div><div class="ttdeci">virtual std::function&lt; bool(std::shared_ptr&lt; Entity &gt;, std::shared_ptr&lt; Entity &gt;)&gt; getPredicator(const olc::vf2d &amp;direction)=0</div><div class="ttdoc">The predicate function getter for the damageIf.</div></div>
+<div class="ttc" id="aclassweapons_1_1_melee_weapon_html_a719614055440a5e7cfaf943dab856bb1"><div class="ttname"><a href="classweapons_1_1_melee_weapon.html#a719614055440a5e7cfaf943dab856bb1">weapons::MeleeWeapon::MeleeWeapon</a></div><div class="ttdeci">MeleeWeapon(render::ITexture &amp;texture, const std::string &amp;name, float cooldownTime, int damage=10, const olc::vf2d &amp;pos={ 0, 0 })</div><div class="ttdef"><b>Definition:</b> <a href="_melee_weapon_8cpp_source.html#l00027">MeleeWeapon.cpp:27</a></div></div>
+<div class="ttc" id="aclassweapons_1_1_melee_weapon_1_1predicate_distance_html_abfe04e14018aab1af891302df42255eb"><div class="ttname"><a href="classweapons_1_1_melee_weapon_1_1predicate_distance.html#abfe04e14018aab1af891302df42255eb">weapons::MeleeWeapon::predicateDistance::operator()</a></div><div class="ttdeci">bool operator()(const olc::vf2d &amp;usePos, std::shared_ptr&lt; Entity &gt; other) const</div><div class="ttdoc">A functor.</div><div class="ttdef"><b>Definition:</b> <a href="_melee_weapon_8cpp_source.html#l00045">MeleeWeapon.cpp:45</a></div></div>
+<div class="ttc" id="aclassweapons_1_1_melee_weapon_html_ac6a6b662df60c1927531fddf9a93ebaa"><div class="ttname"><a href="classweapons_1_1_melee_weapon.html#ac6a6b662df60c1927531fddf9a93ebaa">weapons::MeleeWeapon::getHitOffset</a></div><div class="ttdeci">virtual float getHitOffset() const</div><div class="ttdoc">the hit's center distance from the user</div><div class="ttdef"><b>Definition:</b> <a href="_melee_weapon_8cpp_source.html#l00040">MeleeWeapon.cpp:40</a></div></div>
+<div class="ttc" id="aclassweapons_1_1_melee_weapon_1_1predicate_distance_html"><div class="ttname"><a href="classweapons_1_1_melee_weapon_1_1predicate_distance.html">weapons::MeleeWeapon::predicateDistance</a></div><div class="ttdoc">Functor to predicate entity distance. You can also use lambda, if you want.</div><div class="ttdef"><b>Definition:</b> <a href="_melee_weapon_8h_source.html#l00043">MeleeWeapon.h:44</a></div></div>
+<div class="ttc" id="aclassweapons_1_1_weapon_html_a3dab7574419aed48f2a0f2d54cfcd825"><div class="ttname"><a href="classweapons_1_1_weapon.html#a3dab7574419aed48f2a0f2d54cfcd825">weapons::Weapon::name</a></div><div class="ttdeci">std::string name</div><div class="ttdef"><b>Definition:</b> <a href="_weapon_8h_source.html#l00020">Weapon.h:20</a></div></div>
+<div class="ttc" id="anamespaceweapons_html"><div class="ttname"><a href="namespaceweapons.html">weapons</a></div><div class="ttdef"><b>Definition:</b> <a href="_character_entity_8h_source.html#l00004">CharacterEntity.h:5</a></div></div>
+<div class="ttc" id="aclassweapons_1_1_weapon_html_aa3d78dae766eee8279326026dbb46f1f"><div class="ttname"><a href="classweapons_1_1_weapon.html#aa3d78dae766eee8279326026dbb46f1f">weapons::Weapon::cooldownTime</a></div><div class="ttdeci">float cooldownTime</div><div class="ttdef"><b>Definition:</b> <a href="_weapon_8h_source.html#l00018">Weapon.h:18</a></div></div>
+<div class="ttc" id="aclassweapons_1_1_melee_weapon_html_ac1b9a6718cbf78cea0b9e5e0b8dcc64e"><div class="ttname"><a href="classweapons_1_1_melee_weapon.html#ac1b9a6718cbf78cea0b9e5e0b8dcc64e">weapons::MeleeWeapon::use</a></div><div class="ttdeci">bool use(std::shared_ptr&lt; Entity &gt; user, const olc::vf2d &amp;direction) override</div><div class="ttdef"><b>Definition:</b> <a href="_melee_weapon_8cpp_source.html#l00030">MeleeWeapon.cpp:30</a></div></div>
+<div class="ttc" id="aclassrender_1_1_i_texture_html"><div class="ttname"><a href="classrender_1_1_i_texture.html">render::ITexture</a></div><div class="ttdoc">Every texture, what can render an entity.</div><div class="ttdef"><b>Definition:</b> <a href="_i_texture_8h_source.html#l00015">ITexture.h:16</a></div></div>
+<div class="ttc" id="aclassweapons_1_1_melee_weapon_html_a2636c0b628f8fa52d269bb2dab0b21bd"><div class="ttname"><a href="classweapons_1_1_melee_weapon.html#a2636c0b628f8fa52d269bb2dab0b21bd">weapons::MeleeWeapon::getDamage</a></div><div class="ttdeci">virtual int getDamage() const</div><div class="ttdef"><b>Definition:</b> <a href="_melee_weapon_8cpp_source.html#l00008">MeleeWeapon.cpp:8</a></div></div>
+<div class="ttc" id="aclassweapons_1_1_melee_weapon_1_1predicate_distance_html_ad75b973371de19453068e729b275af89"><div class="ttname"><a href="classweapons_1_1_melee_weapon_1_1predicate_distance.html#ad75b973371de19453068e729b275af89">weapons::MeleeWeapon::predicateDistance::minDistance</a></div><div class="ttdeci">float minDistance</div><div class="ttdef"><b>Definition:</b> <a href="_melee_weapon_8h_source.html#l00046">MeleeWeapon.h:46</a></div></div>
+<div class="ttc" id="aclassweapons_1_1_melee_weapon_html"><div class="ttname"><a href="classweapons_1_1_melee_weapon.html">weapons::MeleeWeapon</a></div><div class="ttdoc">A melee weapon, like a spoon.</div><div class="ttdef"><b>Definition:</b> <a href="_melee_weapon_8h_source.html#l00009">MeleeWeapon.h:11</a></div></div>
+<div class="ttc" id="aclassweapons_1_1_weapon_html_a397c372ffe2838f7c9c1ce67c06e55a9"><div class="ttname"><a href="classweapons_1_1_weapon.html#a397c372ffe2838f7c9c1ce67c06e55a9">weapons::Weapon::damage</a></div><div class="ttdeci">bool damage(int damage, Entity &amp;attacker) override</div><div class="ttdoc">something damage this</div><div class="ttdef"><b>Definition:</b> <a href="_weapon_8cpp_source.html#l00045">Weapon.cpp:45</a></div></div>
+<div class="ttc" id="aclassweapons_1_1_melee_weapon_1_1predicate_distance_html_a3d53f314c59a28ad09a209299c6f04dc"><div class="ttname"><a href="classweapons_1_1_melee_weapon_1_1predicate_distance.html#a3d53f314c59a28ad09a209299c6f04dc">weapons::MeleeWeapon::predicateDistance::maxDistance</a></div><div class="ttdeci">float maxDistance</div><div class="ttdef"><b>Definition:</b> <a href="_melee_weapon_8h_source.html#l00047">MeleeWeapon.h:47</a></div></div>
+<div class="ttc" id="a_weapon_8h_html"><div class="ttname"><a href="_weapon_8h.html">Weapon.h</a></div></div>
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/_pistol_8cpp.html b/doxy/html/_pistol_8cpp.html
new file mode 100644
index 0000000000000000000000000000000000000000..9075218ecf9004cac8385d70d4d2f936b18ff515
--- /dev/null
+++ b/doxy/html/_pistol_8cpp.html
@@ -0,0 +1,88 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: C:/Users/kosmx/Documents/GitHub/2d-game/Pistol.cpp File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#namespaces">Namespaces</a>  </div>
+  <div class="headertitle">
+<div class="title">C:/Users/kosmx/Documents/GitHub/2d-game/Pistol.cpp File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &quot;<a class="el" href="_pistol_8h_source.html">Pistol.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="main_game_8h_source.html">mainGame.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="_projectile_entity_8h_source.html">ProjectileEntity.h</a>&quot;</code><br />
+</div>
+<p><a href="_pistol_8cpp_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
+Namespaces</h2></td></tr>
+<tr class="memitem:namespaceweapons"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceweapons.html">weapons</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/_pistol_8cpp_source.html b/doxy/html/_pistol_8cpp_source.html
new file mode 100644
index 0000000000000000000000000000000000000000..00bab1200a343f8564c0ae1abfa492acfba4750b
--- /dev/null
+++ b/doxy/html/_pistol_8cpp_source.html
@@ -0,0 +1,109 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: C:/Users/kosmx/Documents/GitHub/2d-game/Pistol.cpp Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="headertitle">
+<div class="title">C:/Users/kosmx/Documents/GitHub/2d-game/Pistol.cpp</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="_pistol_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_pistol_8h.html">Pistol.h</a>&quot;</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160; </div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="main_game_8h.html">mainGame.h</a>&quot;</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_projectile_entity_8h.html">ProjectileEntity.h</a>&quot;</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160; </div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="keyword">using namespace </span>std;</div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="keyword">using namespace </span><a class="code" href="namespaceolc.html">olc</a>;</div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160; </div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespaceweapons.html">weapons</a> {</div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160; </div>
+<div class="line"><a name="l00011"></a><span class="lineno"><a class="line" href="classweapons_1_1_pistol.html#acc8c02692de7d84e5060da436b96ed86">   11</a></span>&#160;    Pistol::Pistol(<a class="code" href="classrender_1_1_i_texture.html">render::ITexture</a>&amp; texture, <span class="keywordtype">float</span> cooldownTime, <span class="keywordtype">int</span> damage, <span class="keywordtype">float</span> projectileSpeed, <span class="keyword">const</span> std::string&amp; name, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; pos)</div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;        : <a class="code" href="classweapons_1_1_ranged_weapon.html">RangedWeapon</a>(texture, cooldownTime, damage, projectileSpeed, name, pos) {}</div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160; </div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;    </div>
+<div class="line"><a name="l00015"></a><span class="lineno"><a class="line" href="classweapons_1_1_pistol.html#a37f81949e55c373d7cf1f35cb59c1c25">   15</a></span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classweapons_1_1_pistol.html#a37f81949e55c373d7cf1f35cb59c1c25">Pistol::spawnProjectile</a>(std::shared_ptr&lt;Entity&gt;&amp; user, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; pos, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; v0, <span class="keywordtype">int</span> damage)</div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;    {</div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;        shared_ptr&lt;ProjectileEntity&gt; projectile(<span class="keyword">new</span> <a class="code" href="classentities_1_1_projectile_entity.html">ProjectileEntity</a>(user, <a class="code" href="classentities_1_1_entity.html#a04f9c2febe8d435138a07eb2f48ba96b">pos</a>, ProjectileEntity::projectile, <a class="code" href="classweapons_1_1_weapon.html#a397c372ffe2838f7c9c1ce67c06e55a9">damage</a>));</div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;        projectile-&gt;setVelocity(v0);</div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;        <a class="code" href="class_game_client.html#adfcb979db6333b335dee4e6d785aabcf">GameClient::getInstance</a>() += projectile;</div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;    }</div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;}</div>
+</div><!-- fragment --></div><!-- contents -->
+<div class="ttc" id="astructolc_1_1v2d__generic_html"><div class="ttname"><a href="structolc_1_1v2d__generic.html">olc::v2d_generic&lt; float &gt;</a></div></div>
+<div class="ttc" id="aclassentities_1_1_entity_html_a04f9c2febe8d435138a07eb2f48ba96b"><div class="ttname"><a href="classentities_1_1_entity.html#a04f9c2febe8d435138a07eb2f48ba96b">entities::Entity::pos</a></div><div class="ttdeci">olc::vf2d pos</div><div class="ttdoc">it's position</div><div class="ttdef"><b>Definition:</b> <a href="_entity_8h_source.html#l00022">Entity.h:22</a></div></div>
+<div class="ttc" id="aclassweapons_1_1_pistol_html_a37f81949e55c373d7cf1f35cb59c1c25"><div class="ttname"><a href="classweapons_1_1_pistol.html#a37f81949e55c373d7cf1f35cb59c1c25">weapons::Pistol::spawnProjectile</a></div><div class="ttdeci">void spawnProjectile(std::shared_ptr&lt; Entity &gt; &amp;user, const olc::vf2d &amp;pos, const olc::vf2d &amp;v0, int damage) override</div><div class="ttdoc">Spawn a projectile entity.</div><div class="ttdef"><b>Definition:</b> <a href="_pistol_8cpp_source.html#l00015">Pistol.cpp:15</a></div></div>
+<div class="ttc" id="anamespaceolc_html"><div class="ttname"><a href="namespaceolc.html">olc</a></div><div class="ttdef"><b>Definition:</b> <a href="olc_p_g_e_x___transformed_view_8h_source.html#l00077">olcPGEX_TransformedView.h:78</a></div></div>
+<div class="ttc" id="a_pistol_8h_html"><div class="ttname"><a href="_pistol_8h.html">Pistol.h</a></div></div>
+<div class="ttc" id="anamespaceweapons_html"><div class="ttname"><a href="namespaceweapons.html">weapons</a></div><div class="ttdef"><b>Definition:</b> <a href="_character_entity_8h_source.html#l00004">CharacterEntity.h:5</a></div></div>
+<div class="ttc" id="aclassrender_1_1_i_texture_html"><div class="ttname"><a href="classrender_1_1_i_texture.html">render::ITexture</a></div><div class="ttdoc">Every texture, what can render an entity.</div><div class="ttdef"><b>Definition:</b> <a href="_i_texture_8h_source.html#l00015">ITexture.h:16</a></div></div>
+<div class="ttc" id="aclassweapons_1_1_ranged_weapon_html"><div class="ttname"><a href="classweapons_1_1_ranged_weapon.html">weapons::RangedWeapon</a></div><div class="ttdoc">Any weapon, what does shoot. not melee.</div><div class="ttdef"><b>Definition:</b> <a href="_ranged_weapon_8h_source.html#l00012">RangedWeapon.h:14</a></div></div>
+<div class="ttc" id="a_projectile_entity_8h_html"><div class="ttname"><a href="_projectile_entity_8h.html">ProjectileEntity.h</a></div></div>
+<div class="ttc" id="aclassweapons_1_1_weapon_html_a397c372ffe2838f7c9c1ce67c06e55a9"><div class="ttname"><a href="classweapons_1_1_weapon.html#a397c372ffe2838f7c9c1ce67c06e55a9">weapons::Weapon::damage</a></div><div class="ttdeci">bool damage(int damage, Entity &amp;attacker) override</div><div class="ttdoc">something damage this</div><div class="ttdef"><b>Definition:</b> <a href="_weapon_8cpp_source.html#l00045">Weapon.cpp:45</a></div></div>
+<div class="ttc" id="aclass_game_client_html_adfcb979db6333b335dee4e6d785aabcf"><div class="ttname"><a href="class_game_client.html#adfcb979db6333b335dee4e6d785aabcf">GameClient::getInstance</a></div><div class="ttdeci">static GameClient &amp; getInstance()</div><div class="ttdef"><b>Definition:</b> <a href="main_game_8cpp_source.html#l00040">mainGame.cpp:40</a></div></div>
+<div class="ttc" id="amain_game_8h_html"><div class="ttname"><a href="main_game_8h.html">mainGame.h</a></div></div>
+<div class="ttc" id="aclassentities_1_1_projectile_entity_html"><div class="ttname"><a href="classentities_1_1_projectile_entity.html">entities::ProjectileEntity</a></div><div class="ttdoc">A projectile, a bullet.</div><div class="ttdef"><b>Definition:</b> <a href="_projectile_entity_8h_source.html#l00009">ProjectileEntity.h:11</a></div></div>
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/_pistol_8h.html b/doxy/html/_pistol_8h.html
new file mode 100644
index 0000000000000000000000000000000000000000..c3f05a29bfd4cd74ff69e72e455f9508ee304182
--- /dev/null
+++ b/doxy/html/_pistol_8h.html
@@ -0,0 +1,93 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: C:/Users/kosmx/Documents/GitHub/2d-game/Pistol.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#nested-classes">Classes</a> &#124;
+<a href="#namespaces">Namespaces</a>  </div>
+  <div class="headertitle">
+<div class="title">C:/Users/kosmx/Documents/GitHub/2d-game/Pistol.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &quot;<a class="el" href="_ranged_weapon_8h_source.html">RangedWeapon.h</a>&quot;</code><br />
+</div>
+<p><a href="_pistol_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_pistol.html">weapons::Pistol</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Just a pistol, nothing too dangerous.  <a href="classweapons_1_1_pistol.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
+Namespaces</h2></td></tr>
+<tr class="memitem:namespaceweapons"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceweapons.html">weapons</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/_pistol_8h_source.html b/doxy/html/_pistol_8h_source.html
new file mode 100644
index 0000000000000000000000000000000000000000..dde5ab127420466ce17b6334a55b1c794591c0b0
--- /dev/null
+++ b/doxy/html/_pistol_8h_source.html
@@ -0,0 +1,102 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: C:/Users/kosmx/Documents/GitHub/2d-game/Pistol.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="headertitle">
+<div class="title">C:/Users/kosmx/Documents/GitHub/2d-game/Pistol.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="_pistol_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160; </div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_ranged_weapon_8h.html">RangedWeapon.h</a>&quot;</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160; </div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespaceweapons.html">weapons</a></div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;{</div>
+<div class="line"><a name="l00010"></a><span class="lineno"><a class="line" href="classweapons_1_1_pistol.html">   10</a></span>&#160;    <span class="keyword">class </span><a class="code" href="classweapons_1_1_pistol.html">Pistol</a> :</div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;        <span class="keyword">public</span> <a class="code" href="classweapons_1_1_ranged_weapon.html">RangedWeapon</a></div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;    {</div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;    <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;        <span class="keywordtype">void</span> <a class="code" href="classweapons_1_1_pistol.html#a37f81949e55c373d7cf1f35cb59c1c25">spawnProjectile</a>(std::shared_ptr&lt;Entity&gt;&amp; user, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; <a class="code" href="classentities_1_1_entity.html#a04f9c2febe8d435138a07eb2f48ba96b">pos</a>, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; v0, <span class="keywordtype">int</span> <a class="code" href="classweapons_1_1_weapon.html#a397c372ffe2838f7c9c1ce67c06e55a9">damage</a>) <span class="keyword">override</span>;</div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;        <a class="code" href="classweapons_1_1_pistol.html#acc8c02692de7d84e5060da436b96ed86">Pistol</a>(<a class="code" href="classrender_1_1_i_texture.html">render::ITexture</a>&amp; texture, <span class="keywordtype">float</span> <a class="code" href="classweapons_1_1_weapon.html#aa3d78dae766eee8279326026dbb46f1f">cooldownTime</a>, <span class="keywordtype">int</span> <a class="code" href="classweapons_1_1_weapon.html#a397c372ffe2838f7c9c1ce67c06e55a9">damage</a>, <span class="keywordtype">float</span> <a class="code" href="classweapons_1_1_ranged_weapon.html#a299d09c213670d80f7215e2310c92889">projectileSpeed</a> = 10, <span class="keyword">const</span> std::string&amp; <a class="code" href="classweapons_1_1_weapon.html#a3dab7574419aed48f2a0f2d54cfcd825">name</a> = <span class="stringliteral">&quot;RangedWeapon&quot;</span>, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; <a class="code" href="classentities_1_1_entity.html#a04f9c2febe8d435138a07eb2f48ba96b">pos</a> = { 0, 0 });</div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;    };</div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;}</div>
+</div><!-- fragment --></div><!-- contents -->
+<div class="ttc" id="astructolc_1_1v2d__generic_html"><div class="ttname"><a href="structolc_1_1v2d__generic.html">olc::v2d_generic&lt; float &gt;</a></div></div>
+<div class="ttc" id="aclassentities_1_1_entity_html_a04f9c2febe8d435138a07eb2f48ba96b"><div class="ttname"><a href="classentities_1_1_entity.html#a04f9c2febe8d435138a07eb2f48ba96b">entities::Entity::pos</a></div><div class="ttdeci">olc::vf2d pos</div><div class="ttdoc">it's position</div><div class="ttdef"><b>Definition:</b> <a href="_entity_8h_source.html#l00022">Entity.h:22</a></div></div>
+<div class="ttc" id="aclassweapons_1_1_pistol_html_a37f81949e55c373d7cf1f35cb59c1c25"><div class="ttname"><a href="classweapons_1_1_pistol.html#a37f81949e55c373d7cf1f35cb59c1c25">weapons::Pistol::spawnProjectile</a></div><div class="ttdeci">void spawnProjectile(std::shared_ptr&lt; Entity &gt; &amp;user, const olc::vf2d &amp;pos, const olc::vf2d &amp;v0, int damage) override</div><div class="ttdoc">Spawn a projectile entity.</div><div class="ttdef"><b>Definition:</b> <a href="_pistol_8cpp_source.html#l00015">Pistol.cpp:15</a></div></div>
+<div class="ttc" id="a_ranged_weapon_8h_html"><div class="ttname"><a href="_ranged_weapon_8h.html">RangedWeapon.h</a></div></div>
+<div class="ttc" id="aclassweapons_1_1_ranged_weapon_html_a299d09c213670d80f7215e2310c92889"><div class="ttname"><a href="classweapons_1_1_ranged_weapon.html#a299d09c213670d80f7215e2310c92889">weapons::RangedWeapon::projectileSpeed</a></div><div class="ttdeci">float projectileSpeed</div><div class="ttdef"><b>Definition:</b> <a href="_ranged_weapon_8h_source.html#l00020">RangedWeapon.h:20</a></div></div>
+<div class="ttc" id="aclassweapons_1_1_pistol_html"><div class="ttname"><a href="classweapons_1_1_pistol.html">weapons::Pistol</a></div><div class="ttdoc">Just a pistol, nothing too dangerous.</div><div class="ttdef"><b>Definition:</b> <a href="_pistol_8h_source.html#l00010">Pistol.h:12</a></div></div>
+<div class="ttc" id="aclassweapons_1_1_weapon_html_a3dab7574419aed48f2a0f2d54cfcd825"><div class="ttname"><a href="classweapons_1_1_weapon.html#a3dab7574419aed48f2a0f2d54cfcd825">weapons::Weapon::name</a></div><div class="ttdeci">std::string name</div><div class="ttdef"><b>Definition:</b> <a href="_weapon_8h_source.html#l00020">Weapon.h:20</a></div></div>
+<div class="ttc" id="anamespaceweapons_html"><div class="ttname"><a href="namespaceweapons.html">weapons</a></div><div class="ttdef"><b>Definition:</b> <a href="_character_entity_8h_source.html#l00004">CharacterEntity.h:5</a></div></div>
+<div class="ttc" id="aclassweapons_1_1_weapon_html_aa3d78dae766eee8279326026dbb46f1f"><div class="ttname"><a href="classweapons_1_1_weapon.html#aa3d78dae766eee8279326026dbb46f1f">weapons::Weapon::cooldownTime</a></div><div class="ttdeci">float cooldownTime</div><div class="ttdef"><b>Definition:</b> <a href="_weapon_8h_source.html#l00018">Weapon.h:18</a></div></div>
+<div class="ttc" id="aclassweapons_1_1_pistol_html_acc8c02692de7d84e5060da436b96ed86"><div class="ttname"><a href="classweapons_1_1_pistol.html#acc8c02692de7d84e5060da436b96ed86">weapons::Pistol::Pistol</a></div><div class="ttdeci">Pistol(render::ITexture &amp;texture, float cooldownTime, int damage, float projectileSpeed=10, const std::string &amp;name=&quot;RangedWeapon&quot;, const olc::vf2d &amp;pos={ 0, 0 })</div><div class="ttdef"><b>Definition:</b> <a href="_pistol_8cpp_source.html#l00011">Pistol.cpp:11</a></div></div>
+<div class="ttc" id="aclassrender_1_1_i_texture_html"><div class="ttname"><a href="classrender_1_1_i_texture.html">render::ITexture</a></div><div class="ttdoc">Every texture, what can render an entity.</div><div class="ttdef"><b>Definition:</b> <a href="_i_texture_8h_source.html#l00015">ITexture.h:16</a></div></div>
+<div class="ttc" id="aclassweapons_1_1_ranged_weapon_html"><div class="ttname"><a href="classweapons_1_1_ranged_weapon.html">weapons::RangedWeapon</a></div><div class="ttdoc">Any weapon, what does shoot. not melee.</div><div class="ttdef"><b>Definition:</b> <a href="_ranged_weapon_8h_source.html#l00012">RangedWeapon.h:14</a></div></div>
+<div class="ttc" id="aclassweapons_1_1_weapon_html_a397c372ffe2838f7c9c1ce67c06e55a9"><div class="ttname"><a href="classweapons_1_1_weapon.html#a397c372ffe2838f7c9c1ce67c06e55a9">weapons::Weapon::damage</a></div><div class="ttdeci">bool damage(int damage, Entity &amp;attacker) override</div><div class="ttdoc">something damage this</div><div class="ttdef"><b>Definition:</b> <a href="_weapon_8cpp_source.html#l00045">Weapon.cpp:45</a></div></div>
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/_player_entity_8cpp.html b/doxy/html/_player_entity_8cpp.html
new file mode 100644
index 0000000000000000000000000000000000000000..7ccd7b4e4765c14dde7f7f029f77c1187cd12e5d
--- /dev/null
+++ b/doxy/html/_player_entity_8cpp.html
@@ -0,0 +1,111 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: C:/Users/kosmx/Documents/GitHub/2d-game/PlayerEntity.cpp File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#namespaces">Namespaces</a> &#124;
+<a href="#var-members">Variables</a>  </div>
+  <div class="headertitle">
+<div class="title">C:/Users/kosmx/Documents/GitHub/2d-game/PlayerEntity.cpp File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &quot;<a class="el" href="_player_entity_8h_source.html">PlayerEntity.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="main_game_8h_source.html">mainGame.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="_weapon_8h_source.html">Weapon.h</a>&quot;</code><br />
+</div>
+<p><a href="_player_entity_8cpp_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
+Namespaces</h2></td></tr>
+<tr class="memitem:namespaceentities"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceentities.html">entities</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a>
+Variables</h2></td></tr>
+<tr class="memitem:a3c781e763876e55aa6ab889f192e17ca"><td class="memItemLeft" align="right" valign="top">const float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_player_entity_8cpp.html#a3c781e763876e55aa6ab889f192e17ca">maxWeaponPickupRange</a> = 1</td></tr>
+<tr class="separator:a3c781e763876e55aa6ab889f192e17ca"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Variable Documentation</h2>
+<a id="a3c781e763876e55aa6ab889f192e17ca"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a3c781e763876e55aa6ab889f192e17ca">&#9670;&nbsp;</a></span>maxWeaponPickupRange</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">const float maxWeaponPickupRange = 1</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="_player_entity_8cpp_source.html#l00008">8</a> of file <a class="el" href="_player_entity_8cpp_source.html">PlayerEntity.cpp</a>.</p>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/_player_entity_8cpp_source.html b/doxy/html/_player_entity_8cpp_source.html
new file mode 100644
index 0000000000000000000000000000000000000000..05d49d8972c4518ff60230bf0098f5f31afc3d6c
--- /dev/null
+++ b/doxy/html/_player_entity_8cpp_source.html
@@ -0,0 +1,207 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: C:/Users/kosmx/Documents/GitHub/2d-game/PlayerEntity.cpp Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="headertitle">
+<div class="title">C:/Users/kosmx/Documents/GitHub/2d-game/PlayerEntity.cpp</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="_player_entity_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_player_entity_8h.html">PlayerEntity.h</a>&quot;</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160; </div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="main_game_8h.html">mainGame.h</a>&quot;</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_weapon_8h.html">Weapon.h</a>&quot;</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160; </div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="keyword">using namespace </span><a class="code" href="namespaceolc.html">olc</a>;</div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160; </div>
+<div class="line"><a name="l00008"></a><span class="lineno"><a class="line" href="_player_entity_8cpp.html#a3c781e763876e55aa6ab889f192e17ca">    8</a></span>&#160;<span class="keyword">const</span> <span class="keywordtype">float</span> <a class="code" href="_player_entity_8cpp.html#a3c781e763876e55aa6ab889f192e17ca">maxWeaponPickupRange</a> = 1;</div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160; </div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespaceentities.html">entities</a> {</div>
+<div class="line"><a name="l00011"></a><span class="lineno"><a class="line" href="classentities_1_1_player_entity.html#a6b0fdc757c8e1d95012a31dab836f20a">   11</a></span>&#160;    std::shared_ptr&lt;weapons::Weapon&gt; PlayerEntity::getWeapon()</div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;    {</div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;        <span class="keywordflow">return</span> this-&gt;<a class="code" href="namespaceweapons.html">weapons</a>[selectedSlot];</div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;    }</div>
+<div class="line"><a name="l00015"></a><span class="lineno"><a class="line" href="classentities_1_1_player_entity.html#a9f5c7033ca46daf217c73cb5edbb0d68">   15</a></span>&#160;    <span class="keywordtype">void</span> PlayerEntity::tick(<a class="code" href="class_game_client.html">GameClient</a>&amp; client, <span class="keywordtype">float</span> deltaT, std::shared_ptr&lt;Entity&gt;&amp; shared_this)</div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;    {</div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;        <a class="code" href="structolc_1_1v2d__generic.html">vf2d</a> newSpeed = { 0, 0 };</div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;        <span class="keywordflow">if</span> (client.<a class="code" href="classolc_1_1_pixel_game_engine.html#a27cb4cb68d5e1ca7df8014d66221269e">GetKey</a>(<a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a3e1af6612f2964145f438bb63073098d">olc::Key::A</a>).<a class="code" href="structolc_1_1_h_w_button.html#a6d872a5aeb23aba39103b95093c63cb7">bHeld</a>) newSpeed += {-1, 0};</div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;        <span class="keywordflow">if</span> (client.<a class="code" href="classolc_1_1_pixel_game_engine.html#a27cb4cb68d5e1ca7df8014d66221269e">GetKey</a>(<a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a050dfda2928d980787eeebcaaa4e6fa7">olc::Key::S</a>).<a class="code" href="structolc_1_1_h_w_button.html#a6d872a5aeb23aba39103b95093c63cb7">bHeld</a>) newSpeed += {0, 1};</div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;        <span class="keywordflow">if</span> (client.<a class="code" href="classolc_1_1_pixel_game_engine.html#a27cb4cb68d5e1ca7df8014d66221269e">GetKey</a>(<a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a7323455add036f066f8b23546f0c37bb">olc::Key::D</a>).<a class="code" href="structolc_1_1_h_w_button.html#a6d872a5aeb23aba39103b95093c63cb7">bHeld</a>) newSpeed += {1, 0};</div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;        <span class="keywordflow">if</span> (client.<a class="code" href="classolc_1_1_pixel_game_engine.html#a27cb4cb68d5e1ca7df8014d66221269e">GetKey</a>(<a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ac1ae605c94e2d813c718148311c101d1">olc::Key::W</a>).<a class="code" href="structolc_1_1_h_w_button.html#a6d872a5aeb23aba39103b95093c63cb7">bHeld</a>) newSpeed += {0, -1};</div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;        this-&gt;speed = newSpeed == <a class="code" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">vf2d</a>(0, 0) ? newSpeed : newSpeed.<a class="code" href="structolc_1_1v2d__generic.html#a9c62f12d51859a5a487c5a0c2d00b09a">norm</a>() * 6;</div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160; </div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;        <span class="keywordflow">if</span>(client.<a class="code" href="classolc_1_1_pixel_game_engine.html#a27cb4cb68d5e1ca7df8014d66221269e">GetKey</a>(<a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a925d9a708542cd050a0b4f87bd7ba297">SPACE</a>).<a class="code" href="structolc_1_1_h_w_button.html#a6d872a5aeb23aba39103b95093c63cb7">bHeld</a> &amp;&amp; this-&gt;getWeapon()) <span class="comment">// TODO mouse button ?!</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;        {</div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;            <a class="code" href="structolc_1_1v2d__generic.html">vf2d</a> mouse = client.<a class="code" href="class_game_client.html#a01a0c559c6cfe63557fa4b5d7aa9e72c">getScene</a>().<a class="code" href="classolc_1_1_transformed_view.html#a0f18594e00e7865fe4376761f9e20812">ScreenToWorld</a>(client.<a class="code" href="classolc_1_1_pixel_game_engine.html#af11fb390dbc5a3168c26fe911690dcbe">GetMousePos</a>());</div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;            mouse -= this-&gt;getPos();</div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;            mouse = mouse.<a class="code" href="structolc_1_1v2d__generic.html#a9c62f12d51859a5a487c5a0c2d00b09a">norm</a>();</div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;            this-&gt;getWeapon()-&gt;use(shared_this, mouse);</div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;        }</div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160; </div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;        this-&gt;weaponToPickUp = <span class="keyword">nullptr</span>;</div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;        <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; maxWeapons; i++){</div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;            <span class="keywordflow">if</span>(<a class="code" href="namespaceweapons.html">weapons</a>[i]){</div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;                <a class="code" href="namespaceweapons.html">weapons</a>[i]-&gt;update(deltaT);</div>
+<div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;            }</div>
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;        }</div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160; </div>
+<div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;        lastDamage = std::max(lastDamage - deltaT, 0.f);</div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;        <span class="keywordflow">if</span>(lastDamage &lt; 0.1f){</div>
+<div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;            health = std::min(maxHealth, health + 1.f);</div>
+<div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;            lastDamage = 0.1;</div>
+<div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;        }</div>
+<div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;        </div>
+<div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;        <span class="keywordflow">for</span>(<span class="keyword">auto</span>&amp; entity : client.<a class="code" href="class_game_client.html#a6984da0365fd19c81dbc8907b598bf49">getEntities</a>()){</div>
+<div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;            <span class="keywordflow">if</span>(std::dynamic_pointer_cast&lt;weapons::Weapon&gt;(entity) &amp;&amp; (entity-&gt;getPos() - getPos()).mag() &lt; <a class="code" href="_player_entity_8cpp.html#a3c781e763876e55aa6ab889f192e17ca">maxWeaponPickupRange</a>){</div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;                weaponToPickUp = std::dynamic_pointer_cast&lt;weapons::Weapon&gt;(entity);</div>
+<div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;                <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;            }</div>
+<div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;        }</div>
+<div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160; </div>
+<div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;        <span class="keywordflow">if</span>(client.<a class="code" href="classolc_1_1_pixel_game_engine.html#a27cb4cb68d5e1ca7df8014d66221269e">GetKey</a>(<a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7aef93738bc8d89f07932dd1a603b021bd">TAB</a>).<a class="code" href="structolc_1_1_h_w_button.html#a0c379d6a109299fc0a1c872ebbb2f4d9">bPressed</a>){</div>
+<div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;            <span class="keywordflow">if</span> (weaponToPickUp != <span class="keyword">nullptr</span>) {</div>
+<div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;                weaponToPickUp-&gt;setPickUp(<span class="keyword">true</span>);</div>
+<div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;                <span class="keywordflow">if</span> (this-&gt;getWeapon() != <span class="keyword">nullptr</span>) {</div>
+<div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;                    this-&gt;getWeapon()-&gt;setPickUp(<span class="keyword">false</span>);</div>
+<div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;                    std::shared_ptr&lt;Entity&gt; tmp = this-&gt;getWeapon();</div>
+<div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;                    client.<a class="code" href="class_game_client.html#ac1df0a856bd945976c06b3977167d4c7">addEntity</a>(tmp);</div>
+<div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;                }</div>
+<div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;                this-&gt;<a class="code" href="namespaceweapons.html">weapons</a>[selectedSlot] = weaponToPickUp;</div>
+<div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;                weaponToPickUp = <span class="keyword">nullptr</span>;</div>
+<div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;            }</div>
+<div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;        }</div>
+<div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160; </div>
+<div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;        <span class="keywordtype">int</span> mouseWheel = client.<a class="code" href="classolc_1_1_pixel_game_engine.html#a9640286e4a7cd03c6f545b1df7373269">GetMouseWheel</a>();</div>
+<div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;        <span class="keywordflow">if</span>(mouseWheel != 0){</div>
+<div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;            <span class="keywordflow">if</span>(mouseWheel &gt; 0){</div>
+<div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;                this-&gt;selectedSlot = (selectedSlot + 1)%maxWeapons;</div>
+<div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;            }</div>
+<div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;            <span class="keywordflow">else</span>{</div>
+<div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;                <span class="keywordflow">if</span>(--this-&gt;selectedSlot &lt; 0){</div>
+<div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;                    selectedSlot = maxWeapons - 1;</div>
+<div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;                }</div>
+<div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;            }</div>
+<div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;        }</div>
+<div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;        </div>
+<div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;        CharacterEntity::tick(client, deltaT, shared_this); <span class="comment">//super.tick();</span></div>
+<div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;    }</div>
+<div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160; </div>
+<div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="classentities_1_1_player_entity.html#ace0cf1f8c711b21afef3965eb3b380a1">   80</a></span>&#160;    PlayerEntity::PlayerEntity(<a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a> pos, <a class="code" href="classrender_1_1_i_texture.html">render::ITexture</a>&amp; skin, <span class="keyword">const</span> std::string&amp; name)</div>
+<div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;        : <a class="code" href="classentities_1_1_character_entity.html">CharacterEntity</a>(skin, pos), name(name)</div>
+<div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;    {</div>
+<div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;        this-&gt;<a class="code" href="classentities_1_1_living_entity.html#a78282129a711906b7973c4ecb37b8434">health</a> = maxHealth;</div>
+<div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;    }</div>
+<div class="line"><a name="l00085"></a><span class="lineno"><a class="line" href="classentities_1_1_player_entity.html#a1759d4f054b70c3c57f0f66c03fe09bb">   85</a></span>&#160;    <span class="keyword">const</span> std::shared_ptr&lt;weapons::Weapon&gt;&amp; <a class="code" href="classentities_1_1_player_entity.html#a6b0fdc757c8e1d95012a31dab836f20a">PlayerEntity::getWeapon</a>()<span class="keyword"> const</span></div>
+<div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;<span class="keyword">    </span>{</div>
+<div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;        <span class="keywordflow">return</span> this-&gt;<a class="code" href="namespaceweapons.html">weapons</a>[selectedSlot];</div>
+<div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;    }</div>
+<div class="line"><a name="l00089"></a><span class="lineno"><a class="line" href="classentities_1_1_player_entity.html#ab654524e0ad7ba5a9b1b590794d347f2">   89</a></span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="classentities_1_1_player_entity.html#ab654524e0ad7ba5a9b1b590794d347f2">PlayerEntity::damage</a>(<span class="keywordtype">int</span> damage, <a class="code" href="classentities_1_1_entity.html">Entity</a>&amp; attacker)</div>
+<div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;    {</div>
+<div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;        this-&gt;lastDamage = 8;</div>
+<div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="classentities_1_1_living_entity.html#a28d31eff59137171da3e23a8e3ef9c1c">CharacterEntity::damage</a>(<a class="code" href="classentities_1_1_player_entity.html#ab654524e0ad7ba5a9b1b590794d347f2">damage</a>, attacker);</div>
+<div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;    }</div>
+<div class="line"><a name="l00094"></a><span class="lineno"><a class="line" href="classentities_1_1_player_entity.html#ab4a5cd2af67538f73832668a2cd32c9f">   94</a></span>&#160;    <span class="keywordtype">float</span> <a class="code" href="classentities_1_1_player_entity.html#ab4a5cd2af67538f73832668a2cd32c9f">PlayerEntity::getHealthStatus</a>()</div>
+<div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;    {</div>
+<div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="classentities_1_1_living_entity.html#a78282129a711906b7973c4ecb37b8434">health</a>/maxHealth;</div>
+<div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;    }</div>
+<div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;}</div>
+</div><!-- fragment --></div><!-- contents -->
+<div class="ttc" id="astructolc_1_1_h_w_button_html_a6d872a5aeb23aba39103b95093c63cb7"><div class="ttname"><a href="structolc_1_1_h_w_button.html#a6d872a5aeb23aba39103b95093c63cb7">olc::HWButton::bHeld</a></div><div class="ttdeci">bool bHeld</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00571">olcPixelGameEngine.h:571</a></div></div>
+<div class="ttc" id="aclassentities_1_1_living_entity_html_a28d31eff59137171da3e23a8e3ef9c1c"><div class="ttname"><a href="classentities_1_1_living_entity.html#a28d31eff59137171da3e23a8e3ef9c1c">entities::LivingEntity::damage</a></div><div class="ttdeci">bool damage(int damage, Entity &amp;attacker) override</div><div class="ttdoc">something damage this</div><div class="ttdef"><b>Definition:</b> <a href="_living_entity_8cpp_source.html#l00043">LivingEntity.cpp:43</a></div></div>
+<div class="ttc" id="astructolc_1_1v2d__generic_html"><div class="ttname"><a href="structolc_1_1v2d__generic.html">olc::v2d_generic&lt; float &gt;</a></div></div>
+<div class="ttc" id="aclass_game_client_html_ac1df0a856bd945976c06b3977167d4c7"><div class="ttname"><a href="class_game_client.html#ac1df0a856bd945976c06b3977167d4c7">GameClient::addEntity</a></div><div class="ttdeci">void addEntity(std::shared_ptr&lt; entities::Entity &gt; &amp;entity)</div><div class="ttdoc">Add a new entity to the world. you can also use +=.</div><div class="ttdef"><b>Definition:</b> <a href="main_game_8cpp_source.html#l00140">mainGame.cpp:140</a></div></div>
+<div class="ttc" id="anamespaceolc_html_adb87819740ea9625f84c821fffb16429"><div class="ttname"><a href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a></div><div class="ttdeci">v2d_generic&lt; float &gt; vf2d</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00646">olcPixelGameEngine.h:646</a></div></div>
+<div class="ttc" id="aclassolc_1_1_transformed_view_html_a0f18594e00e7865fe4376761f9e20812"><div class="ttname"><a href="classolc_1_1_transformed_view.html#a0f18594e00e7865fe4376761f9e20812">olc::TransformedView::ScreenToWorld</a></div><div class="ttdeci">virtual olc::vf2d ScreenToWorld(const olc::vi2d &amp;vScreenPos) const</div></div>
+<div class="ttc" id="anamespaceolc_html"><div class="ttname"><a href="namespaceolc.html">olc</a></div><div class="ttdef"><b>Definition:</b> <a href="olc_p_g_e_x___transformed_view_8h_source.html#l00077">olcPGEX_TransformedView.h:78</a></div></div>
+<div class="ttc" id="aclass_game_client_html_a01a0c559c6cfe63557fa4b5d7aa9e72c"><div class="ttname"><a href="class_game_client.html#a01a0c559c6cfe63557fa4b5d7aa9e72c">GameClient::getScene</a></div><div class="ttdeci">const olc::TransformedView &amp; getScene()</div><div class="ttdoc">Get the screen details. needed in fire direction calculation.</div><div class="ttdef"><b>Definition:</b> <a href="main_game_8cpp_source.html#l00145">mainGame.cpp:145</a></div></div>
+<div class="ttc" id="aclassentities_1_1_player_entity_html_ab654524e0ad7ba5a9b1b590794d347f2"><div class="ttname"><a href="classentities_1_1_player_entity.html#ab654524e0ad7ba5a9b1b590794d347f2">entities::PlayerEntity::damage</a></div><div class="ttdeci">bool damage(int damage, Entity &amp;attacker) override</div><div class="ttdoc">Ouch.</div><div class="ttdef"><b>Definition:</b> <a href="_player_entity_8cpp_source.html#l00089">PlayerEntity.cpp:89</a></div></div>
+<div class="ttc" id="astructolc_1_1_h_w_button_html_a0c379d6a109299fc0a1c872ebbb2f4d9"><div class="ttname"><a href="structolc_1_1_h_w_button.html#a0c379d6a109299fc0a1c872ebbb2f4d9">olc::HWButton::bPressed</a></div><div class="ttdeci">bool bPressed</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00569">olcPixelGameEngine.h:569</a></div></div>
+<div class="ttc" id="aclassentities_1_1_player_entity_html_ab4a5cd2af67538f73832668a2cd32c9f"><div class="ttname"><a href="classentities_1_1_player_entity.html#ab4a5cd2af67538f73832668a2cd32c9f">entities::PlayerEntity::getHealthStatus</a></div><div class="ttdeci">float getHealthStatus()</div><div class="ttdoc">Sorry for these very meaningless descriptions.</div><div class="ttdef"><b>Definition:</b> <a href="_player_entity_8cpp_source.html#l00094">PlayerEntity.cpp:94</a></div></div>
+<div class="ttc" id="anamespaceolc_html_aa26a067cf0db83f0b1dd587036a64be7aef93738bc8d89f07932dd1a603b021bd"><div class="ttname"><a href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7aef93738bc8d89f07932dd1a603b021bd">olc::TAB</a></div><div class="ttdeci">@ TAB</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00555">olcPixelGameEngine.h:555</a></div></div>
+<div class="ttc" id="anamespaceolc_html_aa26a067cf0db83f0b1dd587036a64be7ac1ae605c94e2d813c718148311c101d1"><div class="ttname"><a href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ac1ae605c94e2d813c718148311c101d1">olc::W</a></div><div class="ttdeci">@ W</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00551">olcPixelGameEngine.h:551</a></div></div>
+<div class="ttc" id="aclass_game_client_html_a6984da0365fd19c81dbc8907b598bf49"><div class="ttname"><a href="class_game_client.html#a6984da0365fd19c81dbc8907b598bf49">GameClient::getEntities</a></div><div class="ttdeci">DynamicArray&lt; std::shared_ptr&lt; entities::Entity &gt; &gt; &amp; getEntities()</div><div class="ttdef"><b>Definition:</b> <a href="main_game_8cpp_source.html#l00029">mainGame.cpp:29</a></div></div>
+<div class="ttc" id="astructolc_1_1v2d__generic_html_a9c62f12d51859a5a487c5a0c2d00b09a"><div class="ttname"><a href="structolc_1_1v2d__generic.html#a9c62f12d51859a5a487c5a0c2d00b09a">olc::v2d_generic::norm</a></div><div class="ttdeci">v2d_generic norm() const</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00592">olcPixelGameEngine.h:592</a></div></div>
+<div class="ttc" id="anamespaceweapons_html"><div class="ttname"><a href="namespaceweapons.html">weapons</a></div><div class="ttdef"><b>Definition:</b> <a href="_character_entity_8h_source.html#l00004">CharacterEntity.h:5</a></div></div>
+<div class="ttc" id="aclass_game_client_html"><div class="ttname"><a href="class_game_client.html">GameClient</a></div><div class="ttdoc">The game main class itself. manages the entities, adjust the screen...</div><div class="ttdef"><b>Definition:</b> <a href="main_game_8h_source.html#l00011">mainGame.h:13</a></div></div>
+<div class="ttc" id="aclassentities_1_1_entity_html"><div class="ttname"><a href="classentities_1_1_entity.html">entities::Entity</a></div><div class="ttdoc">Every object, what can be on the map.</div><div class="ttdef"><b>Definition:</b> <a href="_entity_8h_source.html#l00016">Entity.h:17</a></div></div>
+<div class="ttc" id="aclassentities_1_1_living_entity_html_a78282129a711906b7973c4ecb37b8434"><div class="ttname"><a href="classentities_1_1_living_entity.html#a78282129a711906b7973c4ecb37b8434">entities::LivingEntity::health</a></div><div class="ttdeci">int health</div><div class="ttdoc">It has a health.</div><div class="ttdef"><b>Definition:</b> <a href="_living_entity_8h_source.html#l00037">LivingEntity.h:37</a></div></div>
+<div class="ttc" id="anamespaceolc_html_aa26a067cf0db83f0b1dd587036a64be7a925d9a708542cd050a0b4f87bd7ba297"><div class="ttname"><a href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a925d9a708542cd050a0b4f87bd7ba297">olc::SPACE</a></div><div class="ttdeci">@ SPACE</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00555">olcPixelGameEngine.h:555</a></div></div>
+<div class="ttc" id="aclassolc_1_1_pixel_game_engine_html_af11fb390dbc5a3168c26fe911690dcbe"><div class="ttname"><a href="classolc_1_1_pixel_game_engine.html#af11fb390dbc5a3168c26fe911690dcbe">olc::PixelGameEngine::GetMousePos</a></div><div class="ttdeci">const olc::vi2d &amp; GetMousePos() const</div></div>
+<div class="ttc" id="a_player_entity_8cpp_html_a3c781e763876e55aa6ab889f192e17ca"><div class="ttname"><a href="_player_entity_8cpp.html#a3c781e763876e55aa6ab889f192e17ca">maxWeaponPickupRange</a></div><div class="ttdeci">const float maxWeaponPickupRange</div><div class="ttdef"><b>Definition:</b> <a href="_player_entity_8cpp_source.html#l00008">PlayerEntity.cpp:8</a></div></div>
+<div class="ttc" id="aclassrender_1_1_i_texture_html"><div class="ttname"><a href="classrender_1_1_i_texture.html">render::ITexture</a></div><div class="ttdoc">Every texture, what can render an entity.</div><div class="ttdef"><b>Definition:</b> <a href="_i_texture_8h_source.html#l00015">ITexture.h:16</a></div></div>
+<div class="ttc" id="anamespaceolc_html_aa26a067cf0db83f0b1dd587036a64be7a050dfda2928d980787eeebcaaa4e6fa7"><div class="ttname"><a href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a050dfda2928d980787eeebcaaa4e6fa7">olc::S</a></div><div class="ttdeci">@ S</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00551">olcPixelGameEngine.h:551</a></div></div>
+<div class="ttc" id="anamespaceentities_html"><div class="ttname"><a href="namespaceentities.html">entities</a></div><div class="ttdef"><b>Definition:</b> <a href="_character_entity_8cpp_source.html#l00005">CharacterEntity.cpp:5</a></div></div>
+<div class="ttc" id="aclassolc_1_1_pixel_game_engine_html_a27cb4cb68d5e1ca7df8014d66221269e"><div class="ttname"><a href="classolc_1_1_pixel_game_engine.html#a27cb4cb68d5e1ca7df8014d66221269e">olc::PixelGameEngine::GetKey</a></div><div class="ttdeci">HWButton GetKey(Key k) const</div></div>
+<div class="ttc" id="anamespaceolc_html_aa26a067cf0db83f0b1dd587036a64be7a3e1af6612f2964145f438bb63073098d"><div class="ttname"><a href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a3e1af6612f2964145f438bb63073098d">olc::A</a></div><div class="ttdeci">@ A</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00551">olcPixelGameEngine.h:551</a></div></div>
+<div class="ttc" id="a_player_entity_8h_html"><div class="ttname"><a href="_player_entity_8h.html">PlayerEntity.h</a></div></div>
+<div class="ttc" id="aclassolc_1_1_pixel_game_engine_html_a9640286e4a7cd03c6f545b1df7373269"><div class="ttname"><a href="classolc_1_1_pixel_game_engine.html#a9640286e4a7cd03c6f545b1df7373269">olc::PixelGameEngine::GetMouseWheel</a></div><div class="ttdeci">int32_t GetMouseWheel() const</div></div>
+<div class="ttc" id="aclassentities_1_1_character_entity_html"><div class="ttname"><a href="classentities_1_1_character_entity.html">entities::CharacterEntity</a></div><div class="ttdoc">A player or an enemy.</div><div class="ttdef"><b>Definition:</b> <a href="_character_entity_8h_source.html#l00013">CharacterEntity.h:15</a></div></div>
+<div class="ttc" id="amain_game_8h_html"><div class="ttname"><a href="main_game_8h.html">mainGame.h</a></div></div>
+<div class="ttc" id="a_weapon_8h_html"><div class="ttname"><a href="_weapon_8h.html">Weapon.h</a></div></div>
+<div class="ttc" id="aclassentities_1_1_player_entity_html_a6b0fdc757c8e1d95012a31dab836f20a"><div class="ttname"><a href="classentities_1_1_player_entity.html#a6b0fdc757c8e1d95012a31dab836f20a">entities::PlayerEntity::getWeapon</a></div><div class="ttdeci">std::shared_ptr&lt; weapons::Weapon &gt; getWeapon() override</div><div class="ttdoc">Get selected weapon.</div><div class="ttdef"><b>Definition:</b> <a href="_player_entity_8cpp_source.html#l00011">PlayerEntity.cpp:11</a></div></div>
+<div class="ttc" id="anamespaceolc_html_aa26a067cf0db83f0b1dd587036a64be7a7323455add036f066f8b23546f0c37bb"><div class="ttname"><a href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a7323455add036f066f8b23546f0c37bb">olc::D</a></div><div class="ttdeci">@ D</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00551">olcPixelGameEngine.h:551</a></div></div>
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/_player_entity_8h.html b/doxy/html/_player_entity_8h.html
new file mode 100644
index 0000000000000000000000000000000000000000..437817be1f817d9da1122d1577f1b40311e44237
--- /dev/null
+++ b/doxy/html/_player_entity_8h.html
@@ -0,0 +1,94 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: C:/Users/kosmx/Documents/GitHub/2d-game/PlayerEntity.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#nested-classes">Classes</a> &#124;
+<a href="#namespaces">Namespaces</a>  </div>
+  <div class="headertitle">
+<div class="title">C:/Users/kosmx/Documents/GitHub/2d-game/PlayerEntity.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &quot;<a class="el" href="_character_entity_8h_source.html">CharacterEntity.h</a>&quot;</code><br />
+<code>#include &lt;vector&gt;</code><br />
+</div>
+<p><a href="_player_entity_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_player_entity.html">entities::PlayerEntity</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">You, or the player.  <a href="classentities_1_1_player_entity.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
+Namespaces</h2></td></tr>
+<tr class="memitem:namespaceentities"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceentities.html">entities</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/_player_entity_8h_source.html b/doxy/html/_player_entity_8h_source.html
new file mode 100644
index 0000000000000000000000000000000000000000..0065b9da022552a9afe2a9f470eb7682a37e5b94
--- /dev/null
+++ b/doxy/html/_player_entity_8h_source.html
@@ -0,0 +1,117 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: C:/Users/kosmx/Documents/GitHub/2d-game/PlayerEntity.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="headertitle">
+<div class="title">C:/Users/kosmx/Documents/GitHub/2d-game/PlayerEntity.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="_player_entity_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_character_entity_8h.html">CharacterEntity.h</a>&quot;</span></div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="preprocessor">#include &lt;vector&gt;</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160; </div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespaceentities.html">entities</a> {</div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160; </div>
+<div class="line"><a name="l00010"></a><span class="lineno"><a class="line" href="classentities_1_1_player_entity.html">   10</a></span>&#160;    <span class="keyword">class </span><a class="code" href="classentities_1_1_player_entity.html">PlayerEntity</a> :</div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;        <span class="keyword">public</span> <a class="code" href="classentities_1_1_character_entity.html">CharacterEntity</a></div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;    {</div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;    <span class="keyword">private</span>:</div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;        <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">int</span> maxWeapons = 3;</div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;        std::string name;</div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;        std::shared_ptr&lt;weapons::Weapon&gt; weaponToPickUp;</div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;        std::shared_ptr&lt;weapons::Weapon&gt; <a class="code" href="namespaceweapons.html">weapons</a>[maxWeapons];</div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;        <span class="keywordtype">int</span> selectedSlot = 0;</div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;        <span class="keywordtype">float</span> maxHealth = 200;</div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;        <span class="keywordtype">float</span> lastDamage = 0;</div>
+<div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;    <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;        std::shared_ptr&lt;weapons::Weapon&gt; <a class="code" href="classentities_1_1_player_entity.html#a6b0fdc757c8e1d95012a31dab836f20a">getWeapon</a>() <span class="keyword">override</span>;</div>
+<div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;        <span class="keywordtype">void</span> <a class="code" href="classentities_1_1_player_entity.html#a9f5c7033ca46daf217c73cb5edbb0d68">tick</a>(<a class="code" href="class_game_client.html">GameClient</a>&amp; client, <span class="keywordtype">float</span> deltaT, std::shared_ptr&lt;Entity&gt;&amp; shared_this) <span class="keyword">override</span>;</div>
+<div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;        <a class="code" href="classentities_1_1_player_entity.html#ace0cf1f8c711b21afef3965eb3b380a1">PlayerEntity</a>(<a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a> <a class="code" href="classentities_1_1_entity.html#a04f9c2febe8d435138a07eb2f48ba96b">pos</a>, <a class="code" href="classrender_1_1_i_texture.html">render::ITexture</a>&amp; skin, <span class="keyword">const</span> std::string&amp; name = <span class="stringliteral">&quot;Player&quot;</span>);</div>
+<div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160; </div>
+<div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;        <span class="keyword">const</span> std::shared_ptr&lt;weapons::Weapon&gt;&amp; <a class="code" href="classentities_1_1_player_entity.html#a6b0fdc757c8e1d95012a31dab836f20a">getWeapon</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;        <span class="keywordtype">bool</span> <a class="code" href="classentities_1_1_player_entity.html#ab654524e0ad7ba5a9b1b590794d347f2">damage</a>(<span class="keywordtype">int</span> <a class="code" href="classentities_1_1_player_entity.html#ab654524e0ad7ba5a9b1b590794d347f2">damage</a>, <a class="code" href="classentities_1_1_entity.html">Entity</a>&amp; attacker) <span class="keyword">override</span>;</div>
+<div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;        <span class="keywordtype">float</span> <a class="code" href="classentities_1_1_player_entity.html#ab4a5cd2af67538f73832668a2cd32c9f">getHealthStatus</a>();</div>
+<div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;    };</div>
+<div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;}</div>
+</div><!-- fragment --></div><!-- contents -->
+<div class="ttc" id="astructolc_1_1v2d__generic_html"><div class="ttname"><a href="structolc_1_1v2d__generic.html">olc::v2d_generic&lt; float &gt;</a></div></div>
+<div class="ttc" id="aclassentities_1_1_entity_html_a04f9c2febe8d435138a07eb2f48ba96b"><div class="ttname"><a href="classentities_1_1_entity.html#a04f9c2febe8d435138a07eb2f48ba96b">entities::Entity::pos</a></div><div class="ttdeci">olc::vf2d pos</div><div class="ttdoc">it's position</div><div class="ttdef"><b>Definition:</b> <a href="_entity_8h_source.html#l00022">Entity.h:22</a></div></div>
+<div class="ttc" id="aclassentities_1_1_player_entity_html"><div class="ttname"><a href="classentities_1_1_player_entity.html">entities::PlayerEntity</a></div><div class="ttdoc">You, or the player.</div><div class="ttdef"><b>Definition:</b> <a href="_player_entity_8h_source.html#l00010">PlayerEntity.h:12</a></div></div>
+<div class="ttc" id="aclassentities_1_1_player_entity_html_ace0cf1f8c711b21afef3965eb3b380a1"><div class="ttname"><a href="classentities_1_1_player_entity.html#ace0cf1f8c711b21afef3965eb3b380a1">entities::PlayerEntity::PlayerEntity</a></div><div class="ttdeci">PlayerEntity(olc::vf2d pos, render::ITexture &amp;skin, const std::string &amp;name=&quot;Player&quot;)</div><div class="ttdef"><b>Definition:</b> <a href="_player_entity_8cpp_source.html#l00080">PlayerEntity.cpp:80</a></div></div>
+<div class="ttc" id="aclassentities_1_1_player_entity_html_ab654524e0ad7ba5a9b1b590794d347f2"><div class="ttname"><a href="classentities_1_1_player_entity.html#ab654524e0ad7ba5a9b1b590794d347f2">entities::PlayerEntity::damage</a></div><div class="ttdeci">bool damage(int damage, Entity &amp;attacker) override</div><div class="ttdoc">Ouch.</div><div class="ttdef"><b>Definition:</b> <a href="_player_entity_8cpp_source.html#l00089">PlayerEntity.cpp:89</a></div></div>
+<div class="ttc" id="aclassentities_1_1_player_entity_html_ab4a5cd2af67538f73832668a2cd32c9f"><div class="ttname"><a href="classentities_1_1_player_entity.html#ab4a5cd2af67538f73832668a2cd32c9f">entities::PlayerEntity::getHealthStatus</a></div><div class="ttdeci">float getHealthStatus()</div><div class="ttdoc">Sorry for these very meaningless descriptions.</div><div class="ttdef"><b>Definition:</b> <a href="_player_entity_8cpp_source.html#l00094">PlayerEntity.cpp:94</a></div></div>
+<div class="ttc" id="anamespaceweapons_html"><div class="ttname"><a href="namespaceweapons.html">weapons</a></div><div class="ttdef"><b>Definition:</b> <a href="_character_entity_8h_source.html#l00004">CharacterEntity.h:5</a></div></div>
+<div class="ttc" id="aclass_game_client_html"><div class="ttname"><a href="class_game_client.html">GameClient</a></div><div class="ttdoc">The game main class itself. manages the entities, adjust the screen...</div><div class="ttdef"><b>Definition:</b> <a href="main_game_8h_source.html#l00011">mainGame.h:13</a></div></div>
+<div class="ttc" id="aclassentities_1_1_entity_html"><div class="ttname"><a href="classentities_1_1_entity.html">entities::Entity</a></div><div class="ttdoc">Every object, what can be on the map.</div><div class="ttdef"><b>Definition:</b> <a href="_entity_8h_source.html#l00016">Entity.h:17</a></div></div>
+<div class="ttc" id="aclassrender_1_1_i_texture_html"><div class="ttname"><a href="classrender_1_1_i_texture.html">render::ITexture</a></div><div class="ttdoc">Every texture, what can render an entity.</div><div class="ttdef"><b>Definition:</b> <a href="_i_texture_8h_source.html#l00015">ITexture.h:16</a></div></div>
+<div class="ttc" id="anamespaceentities_html"><div class="ttname"><a href="namespaceentities.html">entities</a></div><div class="ttdef"><b>Definition:</b> <a href="_character_entity_8cpp_source.html#l00005">CharacterEntity.cpp:5</a></div></div>
+<div class="ttc" id="a_character_entity_8h_html"><div class="ttname"><a href="_character_entity_8h.html">CharacterEntity.h</a></div></div>
+<div class="ttc" id="aclassentities_1_1_player_entity_html_a9f5c7033ca46daf217c73cb5edbb0d68"><div class="ttname"><a href="classentities_1_1_player_entity.html#a9f5c7033ca46daf217c73cb5edbb0d68">entities::PlayerEntity::tick</a></div><div class="ttdeci">void tick(GameClient &amp;client, float deltaT, std::shared_ptr&lt; Entity &gt; &amp;shared_this) override</div><div class="ttdoc">Tick the entity, read the control keys, HP regen logic, etc...</div><div class="ttdef"><b>Definition:</b> <a href="_player_entity_8cpp_source.html#l00015">PlayerEntity.cpp:15</a></div></div>
+<div class="ttc" id="aclassentities_1_1_character_entity_html"><div class="ttname"><a href="classentities_1_1_character_entity.html">entities::CharacterEntity</a></div><div class="ttdoc">A player or an enemy.</div><div class="ttdef"><b>Definition:</b> <a href="_character_entity_8h_source.html#l00013">CharacterEntity.h:15</a></div></div>
+<div class="ttc" id="aclassentities_1_1_player_entity_html_a6b0fdc757c8e1d95012a31dab836f20a"><div class="ttname"><a href="classentities_1_1_player_entity.html#a6b0fdc757c8e1d95012a31dab836f20a">entities::PlayerEntity::getWeapon</a></div><div class="ttdeci">std::shared_ptr&lt; weapons::Weapon &gt; getWeapon() override</div><div class="ttdoc">Get selected weapon.</div><div class="ttdef"><b>Definition:</b> <a href="_player_entity_8cpp_source.html#l00011">PlayerEntity.cpp:11</a></div></div>
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/_projectile_entity_8cpp.html b/doxy/html/_projectile_entity_8cpp.html
new file mode 100644
index 0000000000000000000000000000000000000000..dc70f01d6fe5ee83d5661c4cb58c66abe26522b0
--- /dev/null
+++ b/doxy/html/_projectile_entity_8cpp.html
@@ -0,0 +1,111 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: C:/Users/kosmx/Documents/GitHub/2d-game/ProjectileEntity.cpp File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#namespaces">Namespaces</a> &#124;
+<a href="#var-members">Variables</a>  </div>
+  <div class="headertitle">
+<div class="title">C:/Users/kosmx/Documents/GitHub/2d-game/ProjectileEntity.cpp File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &quot;<a class="el" href="_projectile_entity_8h_source.html">ProjectileEntity.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="_living_entity_8h_source.html">LivingEntity.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="main_game_8h_source.html">mainGame.h</a>&quot;</code><br />
+</div>
+<p><a href="_projectile_entity_8cpp_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
+Namespaces</h2></td></tr>
+<tr class="memitem:namespaceentities"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceentities.html">entities</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a>
+Variables</h2></td></tr>
+<tr class="memitem:a3e9bff6f87d6a4caeac7578a37192511"><td class="memItemLeft" align="right" valign="top">const float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_projectile_entity_8cpp.html#a3e9bff6f87d6a4caeac7578a37192511">maxProjectileAge</a> = 16.f</td></tr>
+<tr class="separator:a3e9bff6f87d6a4caeac7578a37192511"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Variable Documentation</h2>
+<a id="a3e9bff6f87d6a4caeac7578a37192511"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a3e9bff6f87d6a4caeac7578a37192511">&#9670;&nbsp;</a></span>maxProjectileAge</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">const float maxProjectileAge = 16.f</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="_projectile_entity_8cpp_source.html#l00006">6</a> of file <a class="el" href="_projectile_entity_8cpp_source.html">ProjectileEntity.cpp</a>.</p>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/_projectile_entity_8cpp_source.html b/doxy/html/_projectile_entity_8cpp_source.html
new file mode 100644
index 0000000000000000000000000000000000000000..26130b0ac34902dd244ff6552308bd072ba827a1
--- /dev/null
+++ b/doxy/html/_projectile_entity_8cpp_source.html
@@ -0,0 +1,177 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: C:/Users/kosmx/Documents/GitHub/2d-game/ProjectileEntity.cpp Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="headertitle">
+<div class="title">C:/Users/kosmx/Documents/GitHub/2d-game/ProjectileEntity.cpp</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="_projectile_entity_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_projectile_entity_8h.html">ProjectileEntity.h</a>&quot;</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160; </div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_living_entity_8h.html">LivingEntity.h</a>&quot;</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="main_game_8h.html">mainGame.h</a>&quot;</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160; </div>
+<div class="line"><a name="l00006"></a><span class="lineno"><a class="line" href="_projectile_entity_8cpp.html#a3e9bff6f87d6a4caeac7578a37192511">    6</a></span>&#160;<span class="keyword">const</span> <span class="keywordtype">float</span> <a class="code" href="_projectile_entity_8cpp.html#a3e9bff6f87d6a4caeac7578a37192511">maxProjectileAge</a> = 16.f;</div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160; </div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespaceentities.html">entities</a> {</div>
+<div class="line"><a name="l00009"></a><span class="lineno"><a class="line" href="classentities_1_1_projectile_entity.html#a7e67fe629e1ef7115fd2a0cae8b1efc0">    9</a></span>&#160;    <a class="code" href="classrender_1_1_i_texture.html">render::ITexture</a>&amp; <a class="code" href="classentities_1_1_projectile_entity.html#a7e67fe629e1ef7115fd2a0cae8b1efc0">ProjectileEntity::getTexture</a>()</div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;    {</div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;        <span class="keywordflow">return</span> texture;</div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;    }</div>
+<div class="line"><a name="l00013"></a><span class="lineno"><a class="line" href="classentities_1_1_projectile_entity.html#a463a54543d8412feddf3be0aa7ab532a">   13</a></span>&#160;    <span class="keywordtype">int</span> <a class="code" href="classentities_1_1_projectile_entity.html#a463a54543d8412feddf3be0aa7ab532a">ProjectileEntity::getDamage</a>()</div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;    {</div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="classentities_1_1_projectile_entity.html#ad4325b9194e4c76e68f27857226eefd8">damageValue</a>;</div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;    }</div>
+<div class="line"><a name="l00017"></a><span class="lineno"><a class="line" href="classentities_1_1_projectile_entity.html#ab3eb63e6fdf0ca5c4b81ebbc02e7f513">   17</a></span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classentities_1_1_projectile_entity.html#ab3eb63e6fdf0ca5c4b81ebbc02e7f513">ProjectileEntity::bounce</a>(<span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; collision)</div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;    {</div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;        this-&gt;<a class="code" href="classentities_1_1_entity.html#a04f9c2febe8d435138a07eb2f48ba96b">pos</a> += collision; <span class="comment">//first resolve the collision</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;        <span class="keywordflow">if</span> (collision.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a>) {</div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;            this-&gt;<a class="code" href="classentities_1_1_projectile_entity.html#a29cb43b58d34f32f18986185bf8691f8">velocity</a>.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a> *= -1;</div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;        }</div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;        <span class="keywordflow">if</span> (collision.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a>) {</div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;            <a class="code" href="classentities_1_1_projectile_entity.html#a29cb43b58d34f32f18986185bf8691f8">velocity</a>.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a> *= -1;</div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;        }</div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;    }</div>
+<div class="line"><a name="l00027"></a><span class="lineno"><a class="line" href="classentities_1_1_projectile_entity.html#a865c1a9527f67a3e5402a4fcf8baac98">   27</a></span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="classentities_1_1_projectile_entity.html#a865c1a9527f67a3e5402a4fcf8baac98">entities::ProjectileEntity::onCollide</a>(<span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; collisionVector, std::shared_ptr&lt;Entity&gt;&amp; who)</div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;    {</div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;        <span class="keywordflow">if</span> (std::dynamic_pointer_cast&lt;ProjectileEntity&gt;(who) == <span class="keyword">nullptr</span> &amp;&amp; who != this-&gt;user &amp;&amp; collisionVector != <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>(0, 0)) {</div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;            who-&gt;damage(this-&gt;getDamage(), *this-&gt;user);</div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;            this-&gt;is_alive = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;            <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;        }</div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;        <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;    }</div>
+<div class="line"><a name="l00036"></a><span class="lineno"><a class="line" href="classentities_1_1_projectile_entity.html#ae38525094695db8ab564c5ae27711bb4">   36</a></span>&#160;    <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a> <a class="code" href="classentities_1_1_projectile_entity.html#ae38525094695db8ab564c5ae27711bb4">ProjectileEntity::getHitBoxSize</a>()<span class="keyword"> const</span></div>
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;<span class="keyword">    </span>{</div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a>(0.2, 0.2);</div>
+<div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;    }</div>
+<div class="line"><a name="l00040"></a><span class="lineno"><a class="line" href="classentities_1_1_projectile_entity.html#ad42e2a1181110d2fa3acbec7eef3424e">   40</a></span>&#160;    <a class="code" href="classentities_1_1_projectile_entity.html#ad42e2a1181110d2fa3acbec7eef3424e">ProjectileEntity::ProjectileEntity</a>(std::shared_ptr&lt;Entity&gt;&amp; user, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; pos0, <a class="code" href="classrender_1_1_i_texture.html">render::ITexture</a>&amp; texture, <span class="keywordtype">int</span> damage)</div>
+<div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;        : <a class="code" href="classentities_1_1_entity.html">Entity</a>(pos0), user(user), texture(texture), damageValue(damage) {}</div>
+<div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;    </div>
+<div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="classentities_1_1_projectile_entity.html#a761f27885de02515edaf252e8a4162b5">   43</a></span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classentities_1_1_projectile_entity.html#a761f27885de02515edaf252e8a4162b5">ProjectileEntity::tick</a>(<a class="code" href="class_game_client.html">GameClient</a>&amp; client, <span class="keywordtype">float</span> deltaT, std::shared_ptr&lt;Entity&gt;&amp; shared_this)</div>
+<div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;    {</div>
+<div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;        this-&gt;<a class="code" href="classentities_1_1_entity.html#a04f9c2febe8d435138a07eb2f48ba96b">pos</a> += this-&gt;<a class="code" href="classentities_1_1_projectile_entity.html#a29cb43b58d34f32f18986185bf8691f8">velocity</a> * deltaT;</div>
+<div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;        <span class="keywordflow">for</span>(<span class="keyword">auto</span>&amp; entity : client.<a class="code" href="class_game_client.html#a6984da0365fd19c81dbc8907b598bf49">getEntities</a>()){</div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;            <span class="keywordflow">if</span>(entity != this-&gt;<a class="code" href="classentities_1_1_projectile_entity.html#ab01d1aa4b66b21481d07f7777bfb2ca3">user</a> &amp;&amp; std::dynamic_pointer_cast&lt;ProjectileEntity&gt;(entity) == <span class="keyword">nullptr</span>){ <span class="comment">//we ignore the user and other projectiles</span></div>
+<div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;                <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a> collision = <a class="code" href="classentities_1_1_entity.html#a94d18db8d502d677b6f4215dc1e1d820">getCollision</a>(*entity);</div>
+<div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;                <span class="keywordflow">if</span>(collision != <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>(0, 0)){</div>
+<div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;                    <span class="keywordflow">if</span>(this-&gt;<a class="code" href="classentities_1_1_projectile_entity.html#a865c1a9527f67a3e5402a4fcf8baac98">onCollide</a>(collision, entity)){</div>
+<div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;                        this-&gt;<a class="code" href="classentities_1_1_entity.html#aedac7bb35b729e4a02c582b9f4369ab8">is_alive</a> = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;                        <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;                    }</div>
+<div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;                }</div>
+<div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;            }</div>
+<div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;        }</div>
+<div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;        age += deltaT;</div>
+<div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;        <span class="keywordflow">if</span>(age &gt; <a class="code" href="_projectile_entity_8cpp.html#a3e9bff6f87d6a4caeac7578a37192511">maxProjectileAge</a>){</div>
+<div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;            this-&gt;<a class="code" href="classentities_1_1_entity.html#aedac7bb35b729e4a02c582b9f4369ab8">is_alive</a> = <span class="keyword">false</span>; <span class="comment">//sign it to remove...</span></div>
+<div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;        }</div>
+<div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;    }</div>
+<div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="classentities_1_1_projectile_entity.html#ad88aa7e53b9a6671dab6132a8d58dbb5">   62</a></span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classentities_1_1_projectile_entity.html#ad88aa7e53b9a6671dab6132a8d58dbb5">ProjectileEntity::setVelocity</a>(<span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; v)</div>
+<div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;    {</div>
+<div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;        this-&gt;<a class="code" href="classentities_1_1_projectile_entity.html#a29cb43b58d34f32f18986185bf8691f8">velocity</a> = v;</div>
+<div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;    }</div>
+<div class="line"><a name="l00066"></a><span class="lineno"><a class="line" href="classentities_1_1_projectile_entity.html#a723e706e6421504ce9c6d70d77561215">   66</a></span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="classentities_1_1_projectile_entity.html#a723e706e6421504ce9c6d70d77561215">ProjectileEntity::damage</a>(<span class="keywordtype">int</span> damage, <a class="code" href="classentities_1_1_entity.html">Entity</a>&amp; attacker)</div>
+<div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;    {</div>
+<div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;        <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;    }</div>
+<div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160; </div>
+<div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;    <a class="code" href="classrender_1_1_simple_sprite.html">render::SimpleSprite</a> <a class="code" href="classentities_1_1_projectile_entity.html#aedd28853ca6fd6f1b8fa45dbe6b90c63">ProjectileEntity::projectile</a>(<span class="stringliteral">&quot;status.png&quot;</span>, { 0, 16 });</div>
+<div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;}</div>
+</div><!-- fragment --></div><!-- contents -->
+<div class="ttc" id="aclassentities_1_1_projectile_entity_html_ab3eb63e6fdf0ca5c4b81ebbc02e7f513"><div class="ttname"><a href="classentities_1_1_projectile_entity.html#ab3eb63e6fdf0ca5c4b81ebbc02e7f513">entities::ProjectileEntity::bounce</a></div><div class="ttdeci">virtual void bounce(const olc::vf2d &amp;collision)</div><div class="ttdoc">not used, do a bounce function</div><div class="ttdef"><b>Definition:</b> <a href="_projectile_entity_8cpp_source.html#l00017">ProjectileEntity.cpp:17</a></div></div>
+<div class="ttc" id="aclassentities_1_1_entity_html_aedac7bb35b729e4a02c582b9f4369ab8"><div class="ttname"><a href="classentities_1_1_entity.html#aedac7bb35b729e4a02c582b9f4369ab8">entities::Entity::is_alive</a></div><div class="ttdeci">bool is_alive</div><div class="ttdoc">true, if it is alive</div><div class="ttdef"><b>Definition:</b> <a href="_entity_8h_source.html#l00046">Entity.h:46</a></div></div>
+<div class="ttc" id="astructolc_1_1v2d__generic_html"><div class="ttname"><a href="structolc_1_1v2d__generic.html">olc::v2d_generic&lt; float &gt;</a></div></div>
+<div class="ttc" id="aclassentities_1_1_entity_html_a04f9c2febe8d435138a07eb2f48ba96b"><div class="ttname"><a href="classentities_1_1_entity.html#a04f9c2febe8d435138a07eb2f48ba96b">entities::Entity::pos</a></div><div class="ttdeci">olc::vf2d pos</div><div class="ttdoc">it's position</div><div class="ttdef"><b>Definition:</b> <a href="_entity_8h_source.html#l00022">Entity.h:22</a></div></div>
+<div class="ttc" id="astructolc_1_1v2d__generic_html_a5a9c94207b2163c69a39190c320fcbdf"><div class="ttname"><a href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">olc::v2d_generic::y</a></div><div class="ttdeci">T y</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00585">olcPixelGameEngine.h:585</a></div></div>
+<div class="ttc" id="aclassentities_1_1_projectile_entity_html_a29cb43b58d34f32f18986185bf8691f8"><div class="ttname"><a href="classentities_1_1_projectile_entity.html#a29cb43b58d34f32f18986185bf8691f8">entities::ProjectileEntity::velocity</a></div><div class="ttdeci">olc::vf2d velocity</div><div class="ttdef"><b>Definition:</b> <a href="_projectile_entity_8h_source.html#l00021">ProjectileEntity.h:21</a></div></div>
+<div class="ttc" id="anamespaceolc_html_adb87819740ea9625f84c821fffb16429"><div class="ttname"><a href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a></div><div class="ttdeci">v2d_generic&lt; float &gt; vf2d</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00646">olcPixelGameEngine.h:646</a></div></div>
+<div class="ttc" id="aclassentities_1_1_projectile_entity_html_ad88aa7e53b9a6671dab6132a8d58dbb5"><div class="ttname"><a href="classentities_1_1_projectile_entity.html#ad88aa7e53b9a6671dab6132a8d58dbb5">entities::ProjectileEntity::setVelocity</a></div><div class="ttdeci">virtual void setVelocity(const olc::vf2d &amp;v)</div><div class="ttdoc">Set its velocity.</div><div class="ttdef"><b>Definition:</b> <a href="_projectile_entity_8cpp_source.html#l00062">ProjectileEntity.cpp:62</a></div></div>
+<div class="ttc" id="astructolc_1_1v2d__generic_html_a2c6ce2738720f5e098c7d0bf17f33807"><div class="ttname"><a href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">olc::v2d_generic::x</a></div><div class="ttdeci">T x</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00584">olcPixelGameEngine.h:584</a></div></div>
+<div class="ttc" id="aclassentities_1_1_projectile_entity_html_ae38525094695db8ab564c5ae27711bb4"><div class="ttname"><a href="classentities_1_1_projectile_entity.html#ae38525094695db8ab564c5ae27711bb4">entities::ProjectileEntity::getHitBoxSize</a></div><div class="ttdeci">olc::vf2d getHitBoxSize() const override</div><div class="ttdoc">half hitbox size</div><div class="ttdef"><b>Definition:</b> <a href="_projectile_entity_8cpp_source.html#l00036">ProjectileEntity.cpp:36</a></div></div>
+<div class="ttc" id="aclassentities_1_1_projectile_entity_html_a723e706e6421504ce9c6d70d77561215"><div class="ttname"><a href="classentities_1_1_projectile_entity.html#a723e706e6421504ce9c6d70d77561215">entities::ProjectileEntity::damage</a></div><div class="ttdeci">bool damage(int damage, Entity &amp;attacker) override</div><div class="ttdoc">something damage this</div><div class="ttdef"><b>Definition:</b> <a href="_projectile_entity_8cpp_source.html#l00066">ProjectileEntity.cpp:66</a></div></div>
+<div class="ttc" id="aclass_game_client_html_a6984da0365fd19c81dbc8907b598bf49"><div class="ttname"><a href="class_game_client.html#a6984da0365fd19c81dbc8907b598bf49">GameClient::getEntities</a></div><div class="ttdeci">DynamicArray&lt; std::shared_ptr&lt; entities::Entity &gt; &gt; &amp; getEntities()</div><div class="ttdef"><b>Definition:</b> <a href="main_game_8cpp_source.html#l00029">mainGame.cpp:29</a></div></div>
+<div class="ttc" id="a_projectile_entity_8cpp_html_a3e9bff6f87d6a4caeac7578a37192511"><div class="ttname"><a href="_projectile_entity_8cpp.html#a3e9bff6f87d6a4caeac7578a37192511">maxProjectileAge</a></div><div class="ttdeci">const float maxProjectileAge</div><div class="ttdef"><b>Definition:</b> <a href="_projectile_entity_8cpp_source.html#l00006">ProjectileEntity.cpp:6</a></div></div>
+<div class="ttc" id="aclass_game_client_html"><div class="ttname"><a href="class_game_client.html">GameClient</a></div><div class="ttdoc">The game main class itself. manages the entities, adjust the screen...</div><div class="ttdef"><b>Definition:</b> <a href="main_game_8h_source.html#l00011">mainGame.h:13</a></div></div>
+<div class="ttc" id="aclassentities_1_1_entity_html"><div class="ttname"><a href="classentities_1_1_entity.html">entities::Entity</a></div><div class="ttdoc">Every object, what can be on the map.</div><div class="ttdef"><b>Definition:</b> <a href="_entity_8h_source.html#l00016">Entity.h:17</a></div></div>
+<div class="ttc" id="a_living_entity_8h_html"><div class="ttname"><a href="_living_entity_8h.html">LivingEntity.h</a></div></div>
+<div class="ttc" id="aclassrender_1_1_i_texture_html"><div class="ttname"><a href="classrender_1_1_i_texture.html">render::ITexture</a></div><div class="ttdoc">Every texture, what can render an entity.</div><div class="ttdef"><b>Definition:</b> <a href="_i_texture_8h_source.html#l00015">ITexture.h:16</a></div></div>
+<div class="ttc" id="aclassentities_1_1_projectile_entity_html_a865c1a9527f67a3e5402a4fcf8baac98"><div class="ttname"><a href="classentities_1_1_projectile_entity.html#a865c1a9527f67a3e5402a4fcf8baac98">entities::ProjectileEntity::onCollide</a></div><div class="ttdeci">virtual bool onCollide(const olc::vf2d &amp;collisionVector, std::shared_ptr&lt; Entity &gt; &amp;who)</div><div class="ttdoc">Determines, what will the projectile do, if it hit something.</div><div class="ttdef"><b>Definition:</b> <a href="_projectile_entity_8cpp_source.html#l00027">ProjectileEntity.cpp:27</a></div></div>
+<div class="ttc" id="anamespaceentities_html"><div class="ttname"><a href="namespaceentities.html">entities</a></div><div class="ttdef"><b>Definition:</b> <a href="_character_entity_8cpp_source.html#l00005">CharacterEntity.cpp:5</a></div></div>
+<div class="ttc" id="a_projectile_entity_8h_html"><div class="ttname"><a href="_projectile_entity_8h.html">ProjectileEntity.h</a></div></div>
+<div class="ttc" id="aclassentities_1_1_projectile_entity_html_ad4325b9194e4c76e68f27857226eefd8"><div class="ttname"><a href="classentities_1_1_projectile_entity.html#ad4325b9194e4c76e68f27857226eefd8">entities::ProjectileEntity::damageValue</a></div><div class="ttdeci">int damageValue</div><div class="ttdef"><b>Definition:</b> <a href="_projectile_entity_8h_source.html#l00028">ProjectileEntity.h:28</a></div></div>
+<div class="ttc" id="aclassentities_1_1_projectile_entity_html_a463a54543d8412feddf3be0aa7ab532a"><div class="ttname"><a href="classentities_1_1_projectile_entity.html#a463a54543d8412feddf3be0aa7ab532a">entities::ProjectileEntity::getDamage</a></div><div class="ttdeci">virtual int getDamage()</div><div class="ttdef"><b>Definition:</b> <a href="_projectile_entity_8cpp_source.html#l00013">ProjectileEntity.cpp:13</a></div></div>
+<div class="ttc" id="aclassrender_1_1_simple_sprite_html"><div class="ttname"><a href="classrender_1_1_simple_sprite.html">render::SimpleSprite</a></div><div class="ttdoc">Simplest useable texture.</div><div class="ttdef"><b>Definition:</b> <a href="_simple_sprite_8h_source.html#l00011">SimpleSprite.h:13</a></div></div>
+<div class="ttc" id="aclassentities_1_1_entity_html_a94d18db8d502d677b6f4215dc1e1d820"><div class="ttname"><a href="classentities_1_1_entity.html#a94d18db8d502d677b6f4215dc1e1d820">entities::Entity::getCollision</a></div><div class="ttdeci">virtual olc::vf2d getCollision(const Entity &amp;other)</div><div class="ttdoc">Calculate collision with another Entity, how much should this entity move, to avoid the collision.</div><div class="ttdef"><b>Definition:</b> <a href="_entity_8cpp_source.html#l00016">Entity.cpp:16</a></div></div>
+<div class="ttc" id="aclassentities_1_1_projectile_entity_html_ad42e2a1181110d2fa3acbec7eef3424e"><div class="ttname"><a href="classentities_1_1_projectile_entity.html#ad42e2a1181110d2fa3acbec7eef3424e">entities::ProjectileEntity::ProjectileEntity</a></div><div class="ttdeci">ProjectileEntity(std::shared_ptr&lt; Entity &gt; &amp;user, const olc::vf2d &amp;pos0, render::ITexture &amp;texture, int damage=20)</div><div class="ttdef"><b>Definition:</b> <a href="_projectile_entity_8cpp_source.html#l00040">ProjectileEntity.cpp:40</a></div></div>
+<div class="ttc" id="amain_game_8h_html"><div class="ttname"><a href="main_game_8h.html">mainGame.h</a></div></div>
+<div class="ttc" id="aclassentities_1_1_projectile_entity_html_a7e67fe629e1ef7115fd2a0cae8b1efc0"><div class="ttname"><a href="classentities_1_1_projectile_entity.html#a7e67fe629e1ef7115fd2a0cae8b1efc0">entities::ProjectileEntity::getTexture</a></div><div class="ttdeci">render::ITexture &amp; getTexture() override</div><div class="ttdoc">the object's texture</div><div class="ttdef"><b>Definition:</b> <a href="_projectile_entity_8cpp_source.html#l00009">ProjectileEntity.cpp:9</a></div></div>
+<div class="ttc" id="aclassentities_1_1_projectile_entity_html_ab01d1aa4b66b21481d07f7777bfb2ca3"><div class="ttname"><a href="classentities_1_1_projectile_entity.html#ab01d1aa4b66b21481d07f7777bfb2ca3">entities::ProjectileEntity::user</a></div><div class="ttdeci">std::shared_ptr&lt; Entity &gt; user</div><div class="ttdoc">Who is the owner of this bullet. needed to not damage the user.</div><div class="ttdef"><b>Definition:</b> <a href="_projectile_entity_8h_source.html#l00025">ProjectileEntity.h:25</a></div></div>
+<div class="ttc" id="aclassentities_1_1_projectile_entity_html_aedd28853ca6fd6f1b8fa45dbe6b90c63"><div class="ttname"><a href="classentities_1_1_projectile_entity.html#aedd28853ca6fd6f1b8fa45dbe6b90c63">entities::ProjectileEntity::projectile</a></div><div class="ttdeci">static render::SimpleSprite projectile</div><div class="ttdef"><b>Definition:</b> <a href="_projectile_entity_8h_source.html#l00013">ProjectileEntity.h:13</a></div></div>
+<div class="ttc" id="aclassentities_1_1_projectile_entity_html_a761f27885de02515edaf252e8a4162b5"><div class="ttname"><a href="classentities_1_1_projectile_entity.html#a761f27885de02515edaf252e8a4162b5">entities::ProjectileEntity::tick</a></div><div class="ttdeci">void tick(GameClient &amp;client, float deltaT, std::shared_ptr&lt; Entity &gt; &amp;shared_this) override</div><div class="ttdoc">Entity tick multiple times per sec.</div><div class="ttdef"><b>Definition:</b> <a href="_projectile_entity_8cpp_source.html#l00043">ProjectileEntity.cpp:43</a></div></div>
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/_projectile_entity_8h.html b/doxy/html/_projectile_entity_8h.html
new file mode 100644
index 0000000000000000000000000000000000000000..733c4f18d86beafaf76e51a920357d31cb0afe2f
--- /dev/null
+++ b/doxy/html/_projectile_entity_8h.html
@@ -0,0 +1,94 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: C:/Users/kosmx/Documents/GitHub/2d-game/ProjectileEntity.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#nested-classes">Classes</a> &#124;
+<a href="#namespaces">Namespaces</a>  </div>
+  <div class="headertitle">
+<div class="title">C:/Users/kosmx/Documents/GitHub/2d-game/ProjectileEntity.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &quot;<a class="el" href="_entity_8h_source.html">Entity.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="_simple_sprite_8h_source.html">SimpleSprite.h</a>&quot;</code><br />
+</div>
+<p><a href="_projectile_entity_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_projectile_entity.html">entities::ProjectileEntity</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A projectile, a bullet.  <a href="classentities_1_1_projectile_entity.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
+Namespaces</h2></td></tr>
+<tr class="memitem:namespaceentities"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceentities.html">entities</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/_projectile_entity_8h_source.html b/doxy/html/_projectile_entity_8h_source.html
new file mode 100644
index 0000000000000000000000000000000000000000..64e16c4ed797df2100d0dababa0d2377f312c9e7
--- /dev/null
+++ b/doxy/html/_projectile_entity_8h_source.html
@@ -0,0 +1,131 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: C:/Users/kosmx/Documents/GitHub/2d-game/ProjectileEntity.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="headertitle">
+<div class="title">C:/Users/kosmx/Documents/GitHub/2d-game/ProjectileEntity.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="_projectile_entity_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_entity_8h.html">Entity.h</a>&quot;</span></div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_simple_sprite_8h.html">SimpleSprite.h</a>&quot;</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160; </div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespaceentities.html">entities</a> {</div>
+<div class="line"><a name="l00009"></a><span class="lineno"><a class="line" href="classentities_1_1_projectile_entity.html">    9</a></span>&#160;    <span class="keyword">class </span><a class="code" href="classentities_1_1_projectile_entity.html">ProjectileEntity</a> :</div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;        <span class="keyword">public</span> <a class="code" href="classentities_1_1_entity.html">Entity</a></div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;    {</div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;    <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00013"></a><span class="lineno"><a class="line" href="classentities_1_1_projectile_entity.html#aedd28853ca6fd6f1b8fa45dbe6b90c63">   13</a></span>&#160;        <span class="keyword">static</span> <a class="code" href="classrender_1_1_simple_sprite.html">render::SimpleSprite</a> <a class="code" href="classentities_1_1_projectile_entity.html#aedd28853ca6fd6f1b8fa45dbe6b90c63">projectile</a>;</div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;    <span class="keyword">private</span>:</div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;        <a class="code" href="classrender_1_1_i_texture.html">render::ITexture</a>&amp; texture;</div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;        <span class="keywordtype">float</span> age = 0;</div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;    <span class="keyword">protected</span>:</div>
+<div class="line"><a name="l00021"></a><span class="lineno"><a class="line" href="classentities_1_1_projectile_entity.html#a29cb43b58d34f32f18986185bf8691f8">   21</a></span>&#160;        <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a> <a class="code" href="classentities_1_1_projectile_entity.html#a29cb43b58d34f32f18986185bf8691f8">velocity</a>;</div>
+<div class="line"><a name="l00025"></a><span class="lineno"><a class="line" href="classentities_1_1_projectile_entity.html#ab01d1aa4b66b21481d07f7777bfb2ca3">   25</a></span>&#160;        std::shared_ptr&lt;Entity&gt; <a class="code" href="classentities_1_1_projectile_entity.html#ab01d1aa4b66b21481d07f7777bfb2ca3">user</a>;</div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;        <a class="code" href="classrender_1_1_i_texture.html">render::ITexture</a>&amp; <a class="code" href="classentities_1_1_projectile_entity.html#a7e67fe629e1ef7115fd2a0cae8b1efc0">getTexture</a>() <span class="keyword">override</span>;</div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160; </div>
+<div class="line"><a name="l00028"></a><span class="lineno"><a class="line" href="classentities_1_1_projectile_entity.html#ad4325b9194e4c76e68f27857226eefd8">   28</a></span>&#160;        <span class="keywordtype">int</span> <a class="code" href="classentities_1_1_projectile_entity.html#ad4325b9194e4c76e68f27857226eefd8">damageValue</a>;</div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;        <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classentities_1_1_projectile_entity.html#a463a54543d8412feddf3be0aa7ab532a">getDamage</a>();</div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;        <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classentities_1_1_projectile_entity.html#ab3eb63e6fdf0ca5c4b81ebbc02e7f513">bounce</a>(<span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; collision);</div>
+<div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;        <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classentities_1_1_projectile_entity.html#a865c1a9527f67a3e5402a4fcf8baac98">onCollide</a>(<span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; collisionVector, std::shared_ptr&lt;Entity&gt;&amp; who);</div>
+<div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160; </div>
+<div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;        <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a> <a class="code" href="classentities_1_1_projectile_entity.html#ae38525094695db8ab564c5ae27711bb4">getHitBoxSize</a>() <span class="keyword">const override</span>;</div>
+<div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;        </div>
+<div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;    <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;        <a class="code" href="classentities_1_1_projectile_entity.html#ad42e2a1181110d2fa3acbec7eef3424e">ProjectileEntity</a>(std::shared_ptr&lt;Entity&gt;&amp; <a class="code" href="classentities_1_1_projectile_entity.html#ab01d1aa4b66b21481d07f7777bfb2ca3">user</a>, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; pos0, <a class="code" href="classrender_1_1_i_texture.html">render::ITexture</a>&amp; texture, <span class="keywordtype">int</span> <a class="code" href="classentities_1_1_projectile_entity.html#a723e706e6421504ce9c6d70d77561215">damage</a> = 20);</div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160; </div>
+<div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;        <span class="keywordtype">void</span> <a class="code" href="classentities_1_1_projectile_entity.html#a761f27885de02515edaf252e8a4162b5">tick</a>(<a class="code" href="class_game_client.html">GameClient</a>&amp; client, <span class="keywordtype">float</span> deltaT, std::shared_ptr&lt;Entity&gt;&amp; shared_this) <span class="keyword">override</span>;</div>
+<div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160; </div>
+<div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;        <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classentities_1_1_projectile_entity.html#ad88aa7e53b9a6671dab6132a8d58dbb5">setVelocity</a>(<span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; v);</div>
+<div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;        <span class="keywordtype">bool</span> <a class="code" href="classentities_1_1_projectile_entity.html#a723e706e6421504ce9c6d70d77561215">damage</a>(<span class="keywordtype">int</span> <a class="code" href="classentities_1_1_projectile_entity.html#a723e706e6421504ce9c6d70d77561215">damage</a>, <a class="code" href="classentities_1_1_entity.html">Entity</a>&amp; attacker) <span class="keyword">override</span>;</div>
+<div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;    };</div>
+<div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;}</div>
+</div><!-- fragment --></div><!-- contents -->
+<div class="ttc" id="aclassentities_1_1_projectile_entity_html_ab3eb63e6fdf0ca5c4b81ebbc02e7f513"><div class="ttname"><a href="classentities_1_1_projectile_entity.html#ab3eb63e6fdf0ca5c4b81ebbc02e7f513">entities::ProjectileEntity::bounce</a></div><div class="ttdeci">virtual void bounce(const olc::vf2d &amp;collision)</div><div class="ttdoc">not used, do a bounce function</div><div class="ttdef"><b>Definition:</b> <a href="_projectile_entity_8cpp_source.html#l00017">ProjectileEntity.cpp:17</a></div></div>
+<div class="ttc" id="a_simple_sprite_8h_html"><div class="ttname"><a href="_simple_sprite_8h.html">SimpleSprite.h</a></div></div>
+<div class="ttc" id="astructolc_1_1v2d__generic_html"><div class="ttname"><a href="structolc_1_1v2d__generic.html">olc::v2d_generic&lt; float &gt;</a></div></div>
+<div class="ttc" id="aclassentities_1_1_projectile_entity_html_a29cb43b58d34f32f18986185bf8691f8"><div class="ttname"><a href="classentities_1_1_projectile_entity.html#a29cb43b58d34f32f18986185bf8691f8">entities::ProjectileEntity::velocity</a></div><div class="ttdeci">olc::vf2d velocity</div><div class="ttdef"><b>Definition:</b> <a href="_projectile_entity_8h_source.html#l00021">ProjectileEntity.h:21</a></div></div>
+<div class="ttc" id="aclassentities_1_1_projectile_entity_html_ad88aa7e53b9a6671dab6132a8d58dbb5"><div class="ttname"><a href="classentities_1_1_projectile_entity.html#ad88aa7e53b9a6671dab6132a8d58dbb5">entities::ProjectileEntity::setVelocity</a></div><div class="ttdeci">virtual void setVelocity(const olc::vf2d &amp;v)</div><div class="ttdoc">Set its velocity.</div><div class="ttdef"><b>Definition:</b> <a href="_projectile_entity_8cpp_source.html#l00062">ProjectileEntity.cpp:62</a></div></div>
+<div class="ttc" id="aclassentities_1_1_projectile_entity_html_ae38525094695db8ab564c5ae27711bb4"><div class="ttname"><a href="classentities_1_1_projectile_entity.html#ae38525094695db8ab564c5ae27711bb4">entities::ProjectileEntity::getHitBoxSize</a></div><div class="ttdeci">olc::vf2d getHitBoxSize() const override</div><div class="ttdoc">half hitbox size</div><div class="ttdef"><b>Definition:</b> <a href="_projectile_entity_8cpp_source.html#l00036">ProjectileEntity.cpp:36</a></div></div>
+<div class="ttc" id="aclassentities_1_1_projectile_entity_html_a723e706e6421504ce9c6d70d77561215"><div class="ttname"><a href="classentities_1_1_projectile_entity.html#a723e706e6421504ce9c6d70d77561215">entities::ProjectileEntity::damage</a></div><div class="ttdeci">bool damage(int damage, Entity &amp;attacker) override</div><div class="ttdoc">something damage this</div><div class="ttdef"><b>Definition:</b> <a href="_projectile_entity_8cpp_source.html#l00066">ProjectileEntity.cpp:66</a></div></div>
+<div class="ttc" id="aclass_game_client_html"><div class="ttname"><a href="class_game_client.html">GameClient</a></div><div class="ttdoc">The game main class itself. manages the entities, adjust the screen...</div><div class="ttdef"><b>Definition:</b> <a href="main_game_8h_source.html#l00011">mainGame.h:13</a></div></div>
+<div class="ttc" id="aclassentities_1_1_entity_html"><div class="ttname"><a href="classentities_1_1_entity.html">entities::Entity</a></div><div class="ttdoc">Every object, what can be on the map.</div><div class="ttdef"><b>Definition:</b> <a href="_entity_8h_source.html#l00016">Entity.h:17</a></div></div>
+<div class="ttc" id="a_entity_8h_html"><div class="ttname"><a href="_entity_8h.html">Entity.h</a></div></div>
+<div class="ttc" id="aclassrender_1_1_i_texture_html"><div class="ttname"><a href="classrender_1_1_i_texture.html">render::ITexture</a></div><div class="ttdoc">Every texture, what can render an entity.</div><div class="ttdef"><b>Definition:</b> <a href="_i_texture_8h_source.html#l00015">ITexture.h:16</a></div></div>
+<div class="ttc" id="aclassentities_1_1_projectile_entity_html_a865c1a9527f67a3e5402a4fcf8baac98"><div class="ttname"><a href="classentities_1_1_projectile_entity.html#a865c1a9527f67a3e5402a4fcf8baac98">entities::ProjectileEntity::onCollide</a></div><div class="ttdeci">virtual bool onCollide(const olc::vf2d &amp;collisionVector, std::shared_ptr&lt; Entity &gt; &amp;who)</div><div class="ttdoc">Determines, what will the projectile do, if it hit something.</div><div class="ttdef"><b>Definition:</b> <a href="_projectile_entity_8cpp_source.html#l00027">ProjectileEntity.cpp:27</a></div></div>
+<div class="ttc" id="anamespaceentities_html"><div class="ttname"><a href="namespaceentities.html">entities</a></div><div class="ttdef"><b>Definition:</b> <a href="_character_entity_8cpp_source.html#l00005">CharacterEntity.cpp:5</a></div></div>
+<div class="ttc" id="aclassentities_1_1_projectile_entity_html_ad4325b9194e4c76e68f27857226eefd8"><div class="ttname"><a href="classentities_1_1_projectile_entity.html#ad4325b9194e4c76e68f27857226eefd8">entities::ProjectileEntity::damageValue</a></div><div class="ttdeci">int damageValue</div><div class="ttdef"><b>Definition:</b> <a href="_projectile_entity_8h_source.html#l00028">ProjectileEntity.h:28</a></div></div>
+<div class="ttc" id="aclassentities_1_1_projectile_entity_html_a463a54543d8412feddf3be0aa7ab532a"><div class="ttname"><a href="classentities_1_1_projectile_entity.html#a463a54543d8412feddf3be0aa7ab532a">entities::ProjectileEntity::getDamage</a></div><div class="ttdeci">virtual int getDamage()</div><div class="ttdef"><b>Definition:</b> <a href="_projectile_entity_8cpp_source.html#l00013">ProjectileEntity.cpp:13</a></div></div>
+<div class="ttc" id="aclassrender_1_1_simple_sprite_html"><div class="ttname"><a href="classrender_1_1_simple_sprite.html">render::SimpleSprite</a></div><div class="ttdoc">Simplest useable texture.</div><div class="ttdef"><b>Definition:</b> <a href="_simple_sprite_8h_source.html#l00011">SimpleSprite.h:13</a></div></div>
+<div class="ttc" id="aclassentities_1_1_projectile_entity_html_ad42e2a1181110d2fa3acbec7eef3424e"><div class="ttname"><a href="classentities_1_1_projectile_entity.html#ad42e2a1181110d2fa3acbec7eef3424e">entities::ProjectileEntity::ProjectileEntity</a></div><div class="ttdeci">ProjectileEntity(std::shared_ptr&lt; Entity &gt; &amp;user, const olc::vf2d &amp;pos0, render::ITexture &amp;texture, int damage=20)</div><div class="ttdef"><b>Definition:</b> <a href="_projectile_entity_8cpp_source.html#l00040">ProjectileEntity.cpp:40</a></div></div>
+<div class="ttc" id="aclassentities_1_1_projectile_entity_html_a7e67fe629e1ef7115fd2a0cae8b1efc0"><div class="ttname"><a href="classentities_1_1_projectile_entity.html#a7e67fe629e1ef7115fd2a0cae8b1efc0">entities::ProjectileEntity::getTexture</a></div><div class="ttdeci">render::ITexture &amp; getTexture() override</div><div class="ttdoc">the object's texture</div><div class="ttdef"><b>Definition:</b> <a href="_projectile_entity_8cpp_source.html#l00009">ProjectileEntity.cpp:9</a></div></div>
+<div class="ttc" id="aclassentities_1_1_projectile_entity_html_ab01d1aa4b66b21481d07f7777bfb2ca3"><div class="ttname"><a href="classentities_1_1_projectile_entity.html#ab01d1aa4b66b21481d07f7777bfb2ca3">entities::ProjectileEntity::user</a></div><div class="ttdeci">std::shared_ptr&lt; Entity &gt; user</div><div class="ttdoc">Who is the owner of this bullet. needed to not damage the user.</div><div class="ttdef"><b>Definition:</b> <a href="_projectile_entity_8h_source.html#l00025">ProjectileEntity.h:25</a></div></div>
+<div class="ttc" id="aclassentities_1_1_projectile_entity_html_aedd28853ca6fd6f1b8fa45dbe6b90c63"><div class="ttname"><a href="classentities_1_1_projectile_entity.html#aedd28853ca6fd6f1b8fa45dbe6b90c63">entities::ProjectileEntity::projectile</a></div><div class="ttdeci">static render::SimpleSprite projectile</div><div class="ttdef"><b>Definition:</b> <a href="_projectile_entity_8h_source.html#l00013">ProjectileEntity.h:13</a></div></div>
+<div class="ttc" id="aclassentities_1_1_projectile_entity_html_a761f27885de02515edaf252e8a4162b5"><div class="ttname"><a href="classentities_1_1_projectile_entity.html#a761f27885de02515edaf252e8a4162b5">entities::ProjectileEntity::tick</a></div><div class="ttdeci">void tick(GameClient &amp;client, float deltaT, std::shared_ptr&lt; Entity &gt; &amp;shared_this) override</div><div class="ttdoc">Entity tick multiple times per sec.</div><div class="ttdef"><b>Definition:</b> <a href="_projectile_entity_8cpp_source.html#l00043">ProjectileEntity.cpp:43</a></div></div>
+<div class="ttc" id="aclassentities_1_1_projectile_entity_html"><div class="ttname"><a href="classentities_1_1_projectile_entity.html">entities::ProjectileEntity</a></div><div class="ttdoc">A projectile, a bullet.</div><div class="ttdef"><b>Definition:</b> <a href="_projectile_entity_8h_source.html#l00009">ProjectileEntity.h:11</a></div></div>
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/_r_e_a_d_m_e_8md.html b/doxy/html/_r_e_a_d_m_e_8md.html
new file mode 100644
index 0000000000000000000000000000000000000000..ea2fc1744bc7894e04138f5b640bad4302a8eb52
--- /dev/null
+++ b/doxy/html/_r_e_a_d_m_e_8md.html
@@ -0,0 +1,75 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: C:/Users/kosmx/Documents/GitHub/2d-game/README.md File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">C:/Users/kosmx/Documents/GitHub/2d-game/README.md File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/_ranged_weapon_8cpp.html b/doxy/html/_ranged_weapon_8cpp.html
new file mode 100644
index 0000000000000000000000000000000000000000..f3925be7a2a03f515fbbd967cc8d524be7190b9f
--- /dev/null
+++ b/doxy/html/_ranged_weapon_8cpp.html
@@ -0,0 +1,89 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: C:/Users/kosmx/Documents/GitHub/2d-game/RangedWeapon.cpp File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#namespaces">Namespaces</a>  </div>
+  <div class="headertitle">
+<div class="title">C:/Users/kosmx/Documents/GitHub/2d-game/RangedWeapon.cpp File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &quot;<a class="el" href="_ranged_weapon_8h_source.html">RangedWeapon.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="_pistol_8h_source.html">Pistol.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="_weapon_textures_8h_source.html">WeaponTextures.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="_e_m_gun_8h_source.html">EMGun.h</a>&quot;</code><br />
+</div>
+<p><a href="_ranged_weapon_8cpp_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
+Namespaces</h2></td></tr>
+<tr class="memitem:namespaceweapons"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceweapons.html">weapons</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/_ranged_weapon_8cpp_source.html b/doxy/html/_ranged_weapon_8cpp_source.html
new file mode 100644
index 0000000000000000000000000000000000000000..bd194fadf05433b1c8b7f52ead3676675496c136
--- /dev/null
+++ b/doxy/html/_ranged_weapon_8cpp_source.html
@@ -0,0 +1,119 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: C:/Users/kosmx/Documents/GitHub/2d-game/RangedWeapon.cpp Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="headertitle">
+<div class="title">C:/Users/kosmx/Documents/GitHub/2d-game/RangedWeapon.cpp</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="_ranged_weapon_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_ranged_weapon_8h.html">RangedWeapon.h</a>&quot;</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_pistol_8h.html">Pistol.h</a>&quot;</span></div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_weapon_textures_8h.html">WeaponTextures.h</a>&quot;</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_e_m_gun_8h.html">EMGun.h</a>&quot;</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160; </div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespaceweapons.html">weapons</a> {</div>
+<div class="line"><a name="l00007"></a><span class="lineno"><a class="line" href="classweapons_1_1_ranged_weapon.html#add8afffc63175911e5f81b3ce43d135f">    7</a></span>&#160;    <a class="code" href="classweapons_1_1_ranged_weapon.html#add8afffc63175911e5f81b3ce43d135f">RangedWeapon::RangedWeapon</a>(<a class="code" href="classrender_1_1_i_texture.html">render::ITexture</a>&amp; texture, <span class="keywordtype">float</span> cooldownTime, <span class="keywordtype">int</span> damage, <span class="keywordtype">float</span> projectileSpeed, <span class="keyword">const</span> std::string&amp; name, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; pos)</div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;        : <a class="code" href="classweapons_1_1_weapon.html">Weapon</a>(texture, cooldownTime, damage, name, pos), projectileSpeed(projectileSpeed) {}</div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;    </div>
+<div class="line"><a name="l00010"></a><span class="lineno"><a class="line" href="classweapons_1_1_ranged_weapon.html#a0e8915ad79021eb8fd79a1a3d7b1c92c">   10</a></span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="classweapons_1_1_ranged_weapon.html#a0e8915ad79021eb8fd79a1a3d7b1c92c">RangedWeapon::use</a>(std::shared_ptr&lt;Entity&gt; user, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; direction)</div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;    {</div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="classweapons_1_1_weapon.html#aa3529d6c0160f61132fc7bb1b9284a02">cooldown</a> != 0) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;        <a class="code" href="classweapons_1_1_weapon.html#aa3529d6c0160f61132fc7bb1b9284a02">cooldown</a> = <a class="code" href="classweapons_1_1_weapon.html#aa3d78dae766eee8279326026dbb46f1f">cooldownTime</a>;</div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160; </div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;        this-&gt;<a class="code" href="classweapons_1_1_ranged_weapon.html#a6b6b8265efc6ecf60e36ab261fe6f360">spawnProjectile</a>(user, this-&gt;<a class="code" href="classentities_1_1_entity.html#a04f9c2febe8d435138a07eb2f48ba96b">pos</a>, direction.<a class="code" href="structolc_1_1v2d__generic.html#a9c62f12d51859a5a487c5a0c2d00b09a">norm</a>() * <a class="code" href="classweapons_1_1_ranged_weapon.html#a299d09c213670d80f7215e2310c92889">projectileSpeed</a>, this-&gt;baseDamage);</div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160; </div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;        <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;    }</div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160; </div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;    <span class="keyword">const</span> <a class="code" href="classweapons_1_1_pistol.html">Pistol</a> <a class="code" href="classweapons_1_1_ranged_weapon.html#a2c916fa61105c656187e1f6f41fa4fab">RangedWeapon::pistol</a>(<a class="code" href="namespaceweapons_1_1textures.html#a8a733a84e93619430cfdaa2306a6a7ec">textures::pistol</a>, .3f, 10, 10, <span class="stringliteral">&quot;Pistol&quot;</span>);</div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;    <span class="keyword">const</span> <a class="code" href="classweapons_1_1_e_m_gun.html">EMGun</a> <a class="code" href="classweapons_1_1_ranged_weapon.html#acf33d7619066026e823986ec5ec51a97">RangedWeapon::emgun</a>(<a class="code" href="namespaceweapons_1_1textures.html#a51f0963cb1171938daa3a1e894e5305b">textures::minigun</a>, .08f, 14, 10, <span class="stringliteral">&quot;Pistol&quot;</span>);</div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;}</div>
+</div><!-- fragment --></div><!-- contents -->
+<div class="ttc" id="anamespaceweapons_1_1textures_html_a8a733a84e93619430cfdaa2306a6a7ec"><div class="ttname"><a href="namespaceweapons_1_1textures.html#a8a733a84e93619430cfdaa2306a6a7ec">weapons::textures::pistol</a></div><div class="ttdeci">render::SimpleSprite pistol(&quot;FromMacskusz111/pistol.png&quot;)</div></div>
+<div class="ttc" id="astructolc_1_1v2d__generic_html"><div class="ttname"><a href="structolc_1_1v2d__generic.html">olc::v2d_generic&lt; float &gt;</a></div></div>
+<div class="ttc" id="aclassentities_1_1_entity_html_a04f9c2febe8d435138a07eb2f48ba96b"><div class="ttname"><a href="classentities_1_1_entity.html#a04f9c2febe8d435138a07eb2f48ba96b">entities::Entity::pos</a></div><div class="ttdeci">olc::vf2d pos</div><div class="ttdoc">it's position</div><div class="ttdef"><b>Definition:</b> <a href="_entity_8h_source.html#l00022">Entity.h:22</a></div></div>
+<div class="ttc" id="a_ranged_weapon_8h_html"><div class="ttname"><a href="_ranged_weapon_8h.html">RangedWeapon.h</a></div></div>
+<div class="ttc" id="aclassweapons_1_1_weapon_html"><div class="ttname"><a href="classweapons_1_1_weapon.html">weapons::Weapon</a></div><div class="ttdoc">You can throw it to the ground, this is why it's an entity. But it will be possible to use it....</div><div class="ttdef"><b>Definition:</b> <a href="_weapon_8h_source.html#l00010">Weapon.h:12</a></div></div>
+<div class="ttc" id="aclassweapons_1_1_ranged_weapon_html_a2c916fa61105c656187e1f6f41fa4fab"><div class="ttname"><a href="classweapons_1_1_ranged_weapon.html#a2c916fa61105c656187e1f6f41fa4fab">weapons::RangedWeapon::pistol</a></div><div class="ttdeci">static const Pistol pistol</div><div class="ttdef"><b>Definition:</b> <a href="_ranged_weapon_8h_source.html#l00016">RangedWeapon.h:16</a></div></div>
+<div class="ttc" id="aclassweapons_1_1_ranged_weapon_html_a299d09c213670d80f7215e2310c92889"><div class="ttname"><a href="classweapons_1_1_ranged_weapon.html#a299d09c213670d80f7215e2310c92889">weapons::RangedWeapon::projectileSpeed</a></div><div class="ttdeci">float projectileSpeed</div><div class="ttdef"><b>Definition:</b> <a href="_ranged_weapon_8h_source.html#l00020">RangedWeapon.h:20</a></div></div>
+<div class="ttc" id="aclassweapons_1_1_ranged_weapon_html_a6b6b8265efc6ecf60e36ab261fe6f360"><div class="ttname"><a href="classweapons_1_1_ranged_weapon.html#a6b6b8265efc6ecf60e36ab261fe6f360">weapons::RangedWeapon::spawnProjectile</a></div><div class="ttdeci">virtual void spawnProjectile(std::shared_ptr&lt; Entity &gt; &amp;user, const olc::vf2d &amp;pos, const olc::vf2d &amp;v0, int damage)=0</div><div class="ttdoc">Spawn a projectile entity.</div></div>
+<div class="ttc" id="aclassweapons_1_1_ranged_weapon_html_add8afffc63175911e5f81b3ce43d135f"><div class="ttname"><a href="classweapons_1_1_ranged_weapon.html#add8afffc63175911e5f81b3ce43d135f">weapons::RangedWeapon::RangedWeapon</a></div><div class="ttdeci">RangedWeapon(render::ITexture &amp;texture, float cooldownTime, int damage, float projectileSpeed=10, const std::string &amp;name=&quot;RangedWeapon&quot;, const olc::vf2d &amp;pos={ 0, 0 })</div><div class="ttdef"><b>Definition:</b> <a href="_ranged_weapon_8cpp_source.html#l00007">RangedWeapon.cpp:7</a></div></div>
+<div class="ttc" id="aclassweapons_1_1_ranged_weapon_html_a0e8915ad79021eb8fd79a1a3d7b1c92c"><div class="ttname"><a href="classweapons_1_1_ranged_weapon.html#a0e8915ad79021eb8fd79a1a3d7b1c92c">weapons::RangedWeapon::use</a></div><div class="ttdeci">bool use(std::shared_ptr&lt; Entity &gt; user, const olc::vf2d &amp;direction) override</div><div class="ttdef"><b>Definition:</b> <a href="_ranged_weapon_8cpp_source.html#l00010">RangedWeapon.cpp:10</a></div></div>
+<div class="ttc" id="a_pistol_8h_html"><div class="ttname"><a href="_pistol_8h.html">Pistol.h</a></div></div>
+<div class="ttc" id="aclassweapons_1_1_pistol_html"><div class="ttname"><a href="classweapons_1_1_pistol.html">weapons::Pistol</a></div><div class="ttdoc">Just a pistol, nothing too dangerous.</div><div class="ttdef"><b>Definition:</b> <a href="_pistol_8h_source.html#l00010">Pistol.h:12</a></div></div>
+<div class="ttc" id="astructolc_1_1v2d__generic_html_a9c62f12d51859a5a487c5a0c2d00b09a"><div class="ttname"><a href="structolc_1_1v2d__generic.html#a9c62f12d51859a5a487c5a0c2d00b09a">olc::v2d_generic::norm</a></div><div class="ttdeci">v2d_generic norm() const</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00592">olcPixelGameEngine.h:592</a></div></div>
+<div class="ttc" id="anamespaceweapons_html"><div class="ttname"><a href="namespaceweapons.html">weapons</a></div><div class="ttdef"><b>Definition:</b> <a href="_character_entity_8h_source.html#l00004">CharacterEntity.h:5</a></div></div>
+<div class="ttc" id="aclassweapons_1_1_weapon_html_aa3529d6c0160f61132fc7bb1b9284a02"><div class="ttname"><a href="classweapons_1_1_weapon.html#aa3529d6c0160f61132fc7bb1b9284a02">weapons::Weapon::cooldown</a></div><div class="ttdeci">float cooldown</div><div class="ttdef"><b>Definition:</b> <a href="_weapon_8h_source.html#l00017">Weapon.h:17</a></div></div>
+<div class="ttc" id="aclassweapons_1_1_ranged_weapon_html_acf33d7619066026e823986ec5ec51a97"><div class="ttname"><a href="classweapons_1_1_ranged_weapon.html#acf33d7619066026e823986ec5ec51a97">weapons::RangedWeapon::emgun</a></div><div class="ttdeci">static const EMGun emgun</div><div class="ttdef"><b>Definition:</b> <a href="_ranged_weapon_8h_source.html#l00017">RangedWeapon.h:17</a></div></div>
+<div class="ttc" id="aclassweapons_1_1_weapon_html_aa3d78dae766eee8279326026dbb46f1f"><div class="ttname"><a href="classweapons_1_1_weapon.html#aa3d78dae766eee8279326026dbb46f1f">weapons::Weapon::cooldownTime</a></div><div class="ttdeci">float cooldownTime</div><div class="ttdef"><b>Definition:</b> <a href="_weapon_8h_source.html#l00018">Weapon.h:18</a></div></div>
+<div class="ttc" id="aclassweapons_1_1_e_m_gun_html"><div class="ttname"><a href="classweapons_1_1_e_m_gun.html">weapons::EMGun</a></div><div class="ttdoc">Weapon with energy level.</div><div class="ttdef"><b>Definition:</b> <a href="_e_m_gun_8h_source.html#l00010">EMGun.h:11</a></div></div>
+<div class="ttc" id="a_e_m_gun_8h_html"><div class="ttname"><a href="_e_m_gun_8h.html">EMGun.h</a></div></div>
+<div class="ttc" id="aclassrender_1_1_i_texture_html"><div class="ttname"><a href="classrender_1_1_i_texture.html">render::ITexture</a></div><div class="ttdoc">Every texture, what can render an entity.</div><div class="ttdef"><b>Definition:</b> <a href="_i_texture_8h_source.html#l00015">ITexture.h:16</a></div></div>
+<div class="ttc" id="a_weapon_textures_8h_html"><div class="ttname"><a href="_weapon_textures_8h.html">WeaponTextures.h</a></div></div>
+<div class="ttc" id="anamespaceweapons_1_1textures_html_a51f0963cb1171938daa3a1e894e5305b"><div class="ttname"><a href="namespaceweapons_1_1textures.html#a51f0963cb1171938daa3a1e894e5305b">weapons::textures::minigun</a></div><div class="ttdeci">render::SimpleSprite minigun(&quot;FromMacskusz111/gun1.png&quot;)</div></div>
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/_ranged_weapon_8h.html b/doxy/html/_ranged_weapon_8h.html
new file mode 100644
index 0000000000000000000000000000000000000000..0ebd25b707aaa45a292e072300317150fa6831c9
--- /dev/null
+++ b/doxy/html/_ranged_weapon_8h.html
@@ -0,0 +1,93 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: C:/Users/kosmx/Documents/GitHub/2d-game/RangedWeapon.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#nested-classes">Classes</a> &#124;
+<a href="#namespaces">Namespaces</a>  </div>
+  <div class="headertitle">
+<div class="title">C:/Users/kosmx/Documents/GitHub/2d-game/RangedWeapon.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &quot;<a class="el" href="_weapon_8h_source.html">Weapon.h</a>&quot;</code><br />
+</div>
+<p><a href="_ranged_weapon_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_ranged_weapon.html">weapons::RangedWeapon</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Any weapon, what does shoot. not melee.  <a href="classweapons_1_1_ranged_weapon.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
+Namespaces</h2></td></tr>
+<tr class="memitem:namespaceweapons"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceweapons.html">weapons</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/_ranged_weapon_8h_source.html b/doxy/html/_ranged_weapon_8h_source.html
new file mode 100644
index 0000000000000000000000000000000000000000..248d36696760a0c51719fbcb252d08fe024b9763
--- /dev/null
+++ b/doxy/html/_ranged_weapon_8h_source.html
@@ -0,0 +1,122 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: C:/Users/kosmx/Documents/GitHub/2d-game/RangedWeapon.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="headertitle">
+<div class="title">C:/Users/kosmx/Documents/GitHub/2d-game/RangedWeapon.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="_ranged_weapon_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_weapon_8h.html">Weapon.h</a>&quot;</span></div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160; </div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespaceweapons.html">weapons</a> {</div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160; </div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;    <span class="keyword">class </span>Pistol;</div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;    <span class="keyword">class </span>EMGun;</div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160; </div>
+<div class="line"><a name="l00012"></a><span class="lineno"><a class="line" href="classweapons_1_1_ranged_weapon.html">   12</a></span>&#160;    <span class="keyword">class </span><a class="code" href="classweapons_1_1_ranged_weapon.html">RangedWeapon</a> :</div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;        <span class="keyword">public</span> <a class="code" href="classweapons_1_1_weapon.html">Weapon</a></div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;    {</div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;    <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00016"></a><span class="lineno"><a class="line" href="classweapons_1_1_ranged_weapon.html#a2c916fa61105c656187e1f6f41fa4fab">   16</a></span>&#160;        <span class="keyword">const</span> <span class="keyword">static</span> <a class="code" href="classweapons_1_1_pistol.html">Pistol</a> <a class="code" href="classweapons_1_1_ranged_weapon.html#a2c916fa61105c656187e1f6f41fa4fab">pistol</a>;</div>
+<div class="line"><a name="l00017"></a><span class="lineno"><a class="line" href="classweapons_1_1_ranged_weapon.html#acf33d7619066026e823986ec5ec51a97">   17</a></span>&#160;        <span class="keyword">const</span> <span class="keyword">static</span> <a class="code" href="classweapons_1_1_e_m_gun.html">EMGun</a> <a class="code" href="classweapons_1_1_ranged_weapon.html#acf33d7619066026e823986ec5ec51a97">emgun</a>;</div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;        </div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;    <span class="keyword">protected</span>:</div>
+<div class="line"><a name="l00020"></a><span class="lineno"><a class="line" href="classweapons_1_1_ranged_weapon.html#a299d09c213670d80f7215e2310c92889">   20</a></span>&#160;        <span class="keywordtype">float</span> <a class="code" href="classweapons_1_1_ranged_weapon.html#a299d09c213670d80f7215e2310c92889">projectileSpeed</a>;</div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160; </div>
+<div class="line"><a name="l00029"></a><span class="lineno"><a class="line" href="classweapons_1_1_ranged_weapon.html#a6b6b8265efc6ecf60e36ab261fe6f360">   29</a></span>&#160;        <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classweapons_1_1_ranged_weapon.html#a6b6b8265efc6ecf60e36ab261fe6f360">spawnProjectile</a>(std::shared_ptr&lt;Entity&gt;&amp; user, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; <a class="code" href="classentities_1_1_entity.html#a04f9c2febe8d435138a07eb2f48ba96b">pos</a>, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; v0, <span class="keywordtype">int</span> <a class="code" href="classweapons_1_1_weapon.html#a397c372ffe2838f7c9c1ce67c06e55a9">damage</a>) = 0;</div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160; </div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;    <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160; </div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;        <a class="code" href="classweapons_1_1_ranged_weapon.html#add8afffc63175911e5f81b3ce43d135f">RangedWeapon</a>(<a class="code" href="classrender_1_1_i_texture.html">render::ITexture</a>&amp; texture, <span class="keywordtype">float</span> <a class="code" href="classweapons_1_1_weapon.html#aa3d78dae766eee8279326026dbb46f1f">cooldownTime</a>, <span class="keywordtype">int</span> <a class="code" href="classweapons_1_1_weapon.html#a397c372ffe2838f7c9c1ce67c06e55a9">damage</a>, <span class="keywordtype">float</span> <a class="code" href="classweapons_1_1_ranged_weapon.html#a299d09c213670d80f7215e2310c92889">projectileSpeed</a> = 10, <span class="keyword">const</span> std::string&amp; <a class="code" href="classweapons_1_1_weapon.html#a3dab7574419aed48f2a0f2d54cfcd825">name</a> = <span class="stringliteral">&quot;RangedWeapon&quot;</span>, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; <a class="code" href="classentities_1_1_entity.html#a04f9c2febe8d435138a07eb2f48ba96b">pos</a> = { 0, 0 });</div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;        </div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;        <span class="keywordtype">bool</span> <a class="code" href="classweapons_1_1_ranged_weapon.html#a0e8915ad79021eb8fd79a1a3d7b1c92c">use</a>(std::shared_ptr&lt;Entity&gt; user, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; direction) <span class="keyword">override</span>;</div>
+<div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160; </div>
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;        </div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;    };</div>
+<div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;}</div>
+</div><!-- fragment --></div><!-- contents -->
+<div class="ttc" id="astructolc_1_1v2d__generic_html"><div class="ttname"><a href="structolc_1_1v2d__generic.html">olc::v2d_generic&lt; float &gt;</a></div></div>
+<div class="ttc" id="aclassentities_1_1_entity_html_a04f9c2febe8d435138a07eb2f48ba96b"><div class="ttname"><a href="classentities_1_1_entity.html#a04f9c2febe8d435138a07eb2f48ba96b">entities::Entity::pos</a></div><div class="ttdeci">olc::vf2d pos</div><div class="ttdoc">it's position</div><div class="ttdef"><b>Definition:</b> <a href="_entity_8h_source.html#l00022">Entity.h:22</a></div></div>
+<div class="ttc" id="aclassweapons_1_1_weapon_html"><div class="ttname"><a href="classweapons_1_1_weapon.html">weapons::Weapon</a></div><div class="ttdoc">You can throw it to the ground, this is why it's an entity. But it will be possible to use it....</div><div class="ttdef"><b>Definition:</b> <a href="_weapon_8h_source.html#l00010">Weapon.h:12</a></div></div>
+<div class="ttc" id="aclassweapons_1_1_ranged_weapon_html_a2c916fa61105c656187e1f6f41fa4fab"><div class="ttname"><a href="classweapons_1_1_ranged_weapon.html#a2c916fa61105c656187e1f6f41fa4fab">weapons::RangedWeapon::pistol</a></div><div class="ttdeci">static const Pistol pistol</div><div class="ttdef"><b>Definition:</b> <a href="_ranged_weapon_8h_source.html#l00016">RangedWeapon.h:16</a></div></div>
+<div class="ttc" id="aclassweapons_1_1_ranged_weapon_html_a299d09c213670d80f7215e2310c92889"><div class="ttname"><a href="classweapons_1_1_ranged_weapon.html#a299d09c213670d80f7215e2310c92889">weapons::RangedWeapon::projectileSpeed</a></div><div class="ttdeci">float projectileSpeed</div><div class="ttdef"><b>Definition:</b> <a href="_ranged_weapon_8h_source.html#l00020">RangedWeapon.h:20</a></div></div>
+<div class="ttc" id="aclassweapons_1_1_ranged_weapon_html_a6b6b8265efc6ecf60e36ab261fe6f360"><div class="ttname"><a href="classweapons_1_1_ranged_weapon.html#a6b6b8265efc6ecf60e36ab261fe6f360">weapons::RangedWeapon::spawnProjectile</a></div><div class="ttdeci">virtual void spawnProjectile(std::shared_ptr&lt; Entity &gt; &amp;user, const olc::vf2d &amp;pos, const olc::vf2d &amp;v0, int damage)=0</div><div class="ttdoc">Spawn a projectile entity.</div></div>
+<div class="ttc" id="aclassweapons_1_1_ranged_weapon_html_add8afffc63175911e5f81b3ce43d135f"><div class="ttname"><a href="classweapons_1_1_ranged_weapon.html#add8afffc63175911e5f81b3ce43d135f">weapons::RangedWeapon::RangedWeapon</a></div><div class="ttdeci">RangedWeapon(render::ITexture &amp;texture, float cooldownTime, int damage, float projectileSpeed=10, const std::string &amp;name=&quot;RangedWeapon&quot;, const olc::vf2d &amp;pos={ 0, 0 })</div><div class="ttdef"><b>Definition:</b> <a href="_ranged_weapon_8cpp_source.html#l00007">RangedWeapon.cpp:7</a></div></div>
+<div class="ttc" id="aclassweapons_1_1_ranged_weapon_html_a0e8915ad79021eb8fd79a1a3d7b1c92c"><div class="ttname"><a href="classweapons_1_1_ranged_weapon.html#a0e8915ad79021eb8fd79a1a3d7b1c92c">weapons::RangedWeapon::use</a></div><div class="ttdeci">bool use(std::shared_ptr&lt; Entity &gt; user, const olc::vf2d &amp;direction) override</div><div class="ttdef"><b>Definition:</b> <a href="_ranged_weapon_8cpp_source.html#l00010">RangedWeapon.cpp:10</a></div></div>
+<div class="ttc" id="aclassweapons_1_1_pistol_html"><div class="ttname"><a href="classweapons_1_1_pistol.html">weapons::Pistol</a></div><div class="ttdoc">Just a pistol, nothing too dangerous.</div><div class="ttdef"><b>Definition:</b> <a href="_pistol_8h_source.html#l00010">Pistol.h:12</a></div></div>
+<div class="ttc" id="aclassweapons_1_1_weapon_html_a3dab7574419aed48f2a0f2d54cfcd825"><div class="ttname"><a href="classweapons_1_1_weapon.html#a3dab7574419aed48f2a0f2d54cfcd825">weapons::Weapon::name</a></div><div class="ttdeci">std::string name</div><div class="ttdef"><b>Definition:</b> <a href="_weapon_8h_source.html#l00020">Weapon.h:20</a></div></div>
+<div class="ttc" id="anamespaceweapons_html"><div class="ttname"><a href="namespaceweapons.html">weapons</a></div><div class="ttdef"><b>Definition:</b> <a href="_character_entity_8h_source.html#l00004">CharacterEntity.h:5</a></div></div>
+<div class="ttc" id="aclassweapons_1_1_ranged_weapon_html_acf33d7619066026e823986ec5ec51a97"><div class="ttname"><a href="classweapons_1_1_ranged_weapon.html#acf33d7619066026e823986ec5ec51a97">weapons::RangedWeapon::emgun</a></div><div class="ttdeci">static const EMGun emgun</div><div class="ttdef"><b>Definition:</b> <a href="_ranged_weapon_8h_source.html#l00017">RangedWeapon.h:17</a></div></div>
+<div class="ttc" id="aclassweapons_1_1_weapon_html_aa3d78dae766eee8279326026dbb46f1f"><div class="ttname"><a href="classweapons_1_1_weapon.html#aa3d78dae766eee8279326026dbb46f1f">weapons::Weapon::cooldownTime</a></div><div class="ttdeci">float cooldownTime</div><div class="ttdef"><b>Definition:</b> <a href="_weapon_8h_source.html#l00018">Weapon.h:18</a></div></div>
+<div class="ttc" id="aclassweapons_1_1_e_m_gun_html"><div class="ttname"><a href="classweapons_1_1_e_m_gun.html">weapons::EMGun</a></div><div class="ttdoc">Weapon with energy level.</div><div class="ttdef"><b>Definition:</b> <a href="_e_m_gun_8h_source.html#l00010">EMGun.h:11</a></div></div>
+<div class="ttc" id="aclassrender_1_1_i_texture_html"><div class="ttname"><a href="classrender_1_1_i_texture.html">render::ITexture</a></div><div class="ttdoc">Every texture, what can render an entity.</div><div class="ttdef"><b>Definition:</b> <a href="_i_texture_8h_source.html#l00015">ITexture.h:16</a></div></div>
+<div class="ttc" id="aclassweapons_1_1_ranged_weapon_html"><div class="ttname"><a href="classweapons_1_1_ranged_weapon.html">weapons::RangedWeapon</a></div><div class="ttdoc">Any weapon, what does shoot. not melee.</div><div class="ttdef"><b>Definition:</b> <a href="_ranged_weapon_8h_source.html#l00012">RangedWeapon.h:14</a></div></div>
+<div class="ttc" id="aclassweapons_1_1_weapon_html_a397c372ffe2838f7c9c1ce67c06e55a9"><div class="ttname"><a href="classweapons_1_1_weapon.html#a397c372ffe2838f7c9c1ce67c06e55a9">weapons::Weapon::damage</a></div><div class="ttdeci">bool damage(int damage, Entity &amp;attacker) override</div><div class="ttdoc">something damage this</div><div class="ttdef"><b>Definition:</b> <a href="_weapon_8cpp_source.html#l00045">Weapon.cpp:45</a></div></div>
+<div class="ttc" id="a_weapon_8h_html"><div class="ttname"><a href="_weapon_8h.html">Weapon.h</a></div></div>
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/_render_exception_8cpp.html b/doxy/html/_render_exception_8cpp.html
new file mode 100644
index 0000000000000000000000000000000000000000..e4e148bb5a7a5d48a725897b99378e87093f2335
--- /dev/null
+++ b/doxy/html/_render_exception_8cpp.html
@@ -0,0 +1,78 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: C:/Users/kosmx/Documents/GitHub/2d-game/RenderException.cpp File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">C:/Users/kosmx/Documents/GitHub/2d-game/RenderException.cpp File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &quot;<a class="el" href="_render_exception_8h_source.html">RenderException.h</a>&quot;</code><br />
+</div>
+<p><a href="_render_exception_8cpp_source.html">Go to the source code of this file.</a></p>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/_render_exception_8cpp_source.html b/doxy/html/_render_exception_8cpp_source.html
new file mode 100644
index 0000000000000000000000000000000000000000..126e703efa9397955030fca029531cc0bb0d5490
--- /dev/null
+++ b/doxy/html/_render_exception_8cpp_source.html
@@ -0,0 +1,77 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: C:/Users/kosmx/Documents/GitHub/2d-game/RenderException.cpp Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="headertitle">
+<div class="title">C:/Users/kosmx/Documents/GitHub/2d-game/RenderException.cpp</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="_render_exception_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_render_exception_8h.html">RenderException.h</a>&quot;</span></div>
+</div><!-- fragment --></div><!-- contents -->
+<div class="ttc" id="a_render_exception_8h_html"><div class="ttname"><a href="_render_exception_8h.html">RenderException.h</a></div></div>
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/_render_exception_8h.html b/doxy/html/_render_exception_8h.html
new file mode 100644
index 0000000000000000000000000000000000000000..3defd2f789f61e980aa2cebc3b215a9ef78d3af3
--- /dev/null
+++ b/doxy/html/_render_exception_8h.html
@@ -0,0 +1,85 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: C:/Users/kosmx/Documents/GitHub/2d-game/RenderException.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#nested-classes">Classes</a>  </div>
+  <div class="headertitle">
+<div class="title">C:/Users/kosmx/Documents/GitHub/2d-game/RenderException.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p><a href="_render_exception_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_render_exception.html">RenderException</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/_render_exception_8h_source.html b/doxy/html/_render_exception_8h_source.html
new file mode 100644
index 0000000000000000000000000000000000000000..c52f692ca992a5930100c9d7ecc2f71d67da7212
--- /dev/null
+++ b/doxy/html/_render_exception_8h_source.html
@@ -0,0 +1,81 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: C:/Users/kosmx/Documents/GitHub/2d-game/RenderException.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="headertitle">
+<div class="title">C:/Users/kosmx/Documents/GitHub/2d-game/RenderException.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="_render_exception_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno"><a class="line" href="class_render_exception.html">    2</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_render_exception.html">RenderException</a></div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;{</div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;};</div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160; </div>
+</div><!-- fragment --></div><!-- contents -->
+<div class="ttc" id="aclass_render_exception_html"><div class="ttname"><a href="class_render_exception.html">RenderException</a></div><div class="ttdef"><b>Definition:</b> <a href="_render_exception_8h_source.html#l00002">RenderException.h:3</a></div></div>
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/_resource_manager_8cpp.html b/doxy/html/_resource_manager_8cpp.html
new file mode 100644
index 0000000000000000000000000000000000000000..61a0ecbc01f17728bb0287c14d29d2903773e972
--- /dev/null
+++ b/doxy/html/_resource_manager_8cpp.html
@@ -0,0 +1,86 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: C:/Users/kosmx/Documents/GitHub/2d-game/ResourceManager.cpp File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#namespaces">Namespaces</a>  </div>
+  <div class="headertitle">
+<div class="title">C:/Users/kosmx/Documents/GitHub/2d-game/ResourceManager.cpp File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &quot;<a class="el" href="_resource_manager_8h_source.html">ResourceManager.h</a>&quot;</code><br />
+</div>
+<p><a href="_resource_manager_8cpp_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
+Namespaces</h2></td></tr>
+<tr class="memitem:namespacerender"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacerender.html">render</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/_resource_manager_8cpp_source.html b/doxy/html/_resource_manager_8cpp_source.html
new file mode 100644
index 0000000000000000000000000000000000000000..0003ea32ad80a5d45f0ac762beeab544669dfb4f
--- /dev/null
+++ b/doxy/html/_resource_manager_8cpp_source.html
@@ -0,0 +1,150 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: C:/Users/kosmx/Documents/GitHub/2d-game/ResourceManager.cpp Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="headertitle">
+<div class="title">C:/Users/kosmx/Documents/GitHub/2d-game/ResourceManager.cpp</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="_resource_manager_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_resource_manager_8h.html">ResourceManager.h</a>&quot;</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160; </div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacerender.html">render</a></div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;{</div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;    ResourceManager::ResourceManager(std::string* parent, <a class="code" href="classolc_1_1_resource_pack.html">olc::ResourcePack</a>* pack) : parentFolder(parent != nullptr ? *parent : <span class="stringliteral">&quot;./DawnLike/&quot;</span>), pack(pack)</div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;    {}</div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160; </div>
+<div class="line"><a name="l00008"></a><span class="lineno"><a class="line" href="classrender_1_1_resource_manager.html#a58cd141c758a19c7a04b33742de422f8">    8</a></span>&#160;    <a class="code" href="classolc_1_1_decal.html">olc::Decal</a>* ResourceManager::getDecal(<span class="keyword">const</span> std::string&amp; <span class="keywordtype">string</span>)</div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;    {</div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;        <span class="keywordflow">if</span>(resourceMap.count(<span class="keywordtype">string</span>) == 0){</div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;            std::string tmp(this-&gt;parentFolder + <span class="keywordtype">string</span>);</div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;            resourceMap[string] = <span class="keyword">new</span> <a class="code" href="classrender_1_1_sprite_manager.html">SpriteManager</a>(tmp, pack);</div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;        }</div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;        <span class="keywordflow">return</span> resourceMap[string]-&gt;getDecal();</div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;    }</div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160; </div>
+<div class="line"><a name="l00017"></a><span class="lineno"><a class="line" href="classrender_1_1_resource_manager.html#a718ece71d629e1fd5b4b3afc967d4381">   17</a></span>&#160;    ResourceManager::~ResourceManager()</div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;    {</div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;        <span class="keywordflow">for</span> (<span class="keyword">auto</span> &amp;element : resourceMap){</div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;            <span class="keyword">delete</span> element.second;<span class="comment">//these are pointers after all;</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;        }</div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;    }</div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;    </div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;    <a class="code" href="classrender_1_1_resource_manager.html">ResourceManager</a>&amp; render::ResourceManager::getInstance()</div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;    {</div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;        <span class="keywordflow">return</span> *instance;</div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;    }</div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160; </div>
+<div class="line"><a name="l00029"></a><span class="lineno"><a class="line" href="classrender_1_1_resource_manager.html#aec5833434ea7432806785ae0ce1e1d91">   29</a></span>&#160;    <a class="code" href="classolc_1_1_decal.html">olc::Decal</a>* <a class="code" href="classrender_1_1_resource_manager.html#aec5833434ea7432806785ae0ce1e1d91">ResourceManager::operator[]</a>(<span class="keyword">const</span> std::string&amp; key)</div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;    {</div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;        <span class="keywordflow">return</span> this-&gt;<a class="code" href="classrender_1_1_resource_manager.html#a58cd141c758a19c7a04b33742de422f8">getDecal</a>(key);</div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;    }</div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160; </div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160; </div>
+<div class="line"><a name="l00038"></a><span class="lineno"><a class="line" href="classrender_1_1_resource_manager.html#abdb364e2b932233c873a98a1b5c03d2a">   38</a></span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classrender_1_1_resource_manager.html#abdb364e2b932233c873a98a1b5c03d2a">ResourceManager::createInstance</a>(std::string* parent)</div>
+<div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;    {</div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;        <span class="keywordflow">if</span>(instance != <span class="keyword">nullptr</span>){</div>
+<div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;            <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;Can&#39;t create a second instance of a singleton resource manager&quot;</span>);</div>
+<div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;        }</div>
+<div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;        instance = <span class="keyword">new</span> <a class="code" href="classrender_1_1_resource_manager.html">ResourceManager</a>(parent);</div>
+<div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;    }</div>
+<div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160; </div>
+<div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="classrender_1_1_resource_manager.html#a4ac8358921fdda1f37bf4564855f6fce">   46</a></span>&#160;    <a class="code" href="classolc_1_1_decal.html">olc::Decal</a>* <a class="code" href="classrender_1_1_resource_manager.html#a4ac8358921fdda1f37bf4564855f6fce">ResourceManager::getSprite</a>(<span class="keyword">const</span> std::string&amp; key)</div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;    {</div>
+<div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;        <span class="keywordflow">return</span> getInstance()[key];</div>
+<div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;    }</div>
+<div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160; </div>
+<div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160; </div>
+<div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160; </div>
+<div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;    <span class="comment">//---------------- sprite manager class ----------------</span></div>
+<div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;    </div>
+<div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="classrender_1_1_sprite_manager.html#ad65313b397c85d87f307fbb931907afb">   55</a></span>&#160;    <a class="code" href="classrender_1_1_sprite_manager.html#ad65313b397c85d87f307fbb931907afb">SpriteManager::SpriteManager</a>(std::string&amp; resourceLocation, <a class="code" href="classolc_1_1_resource_pack.html">olc::ResourcePack</a> *pack) : spriteData(resourceLocation, pack), decalData(&amp;spriteData)</div>
+<div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;    {</div>
+<div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;        <span class="comment">//decalData.Update(); it&#39;s unnecessary, as creating it will automatically push it to the GPU</span></div>
+<div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;    }</div>
+<div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160; </div>
+<div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="classrender_1_1_sprite_manager.html#ad40363b5fa66e08aec13f332c5964d6b">   60</a></span>&#160;    <a class="code" href="classolc_1_1_decal.html">olc::Decal</a>* <a class="code" href="classrender_1_1_sprite_manager.html#ad40363b5fa66e08aec13f332c5964d6b">SpriteManager::getDecal</a>()</div>
+<div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;    {</div>
+<div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;        <span class="keywordflow">return</span> &amp;this-&gt;decalData;</div>
+<div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;    }</div>
+<div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160; </div>
+<div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;    <a class="code" href="classrender_1_1_resource_manager.html">ResourceManager</a>* ResourceManager::instance = <span class="keyword">nullptr</span>;</div>
+<div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;}</div>
+</div><!-- fragment --></div><!-- contents -->
+<div class="ttc" id="aclassrender_1_1_sprite_manager_html_ad40363b5fa66e08aec13f332c5964d6b"><div class="ttname"><a href="classrender_1_1_sprite_manager.html#ad40363b5fa66e08aec13f332c5964d6b">render::SpriteManager::getDecal</a></div><div class="ttdeci">olc::Decal * getDecal()</div><div class="ttdef"><b>Definition:</b> <a href="_resource_manager_8cpp_source.html#l00060">ResourceManager.cpp:60</a></div></div>
+<div class="ttc" id="aclassrender_1_1_resource_manager_html_a4ac8358921fdda1f37bf4564855f6fce"><div class="ttname"><a href="classrender_1_1_resource_manager.html#a4ac8358921fdda1f37bf4564855f6fce">render::ResourceManager::getSprite</a></div><div class="ttdeci">static olc::Decal * getSprite(const std::string &amp;key)</div><div class="ttdoc">get a sprite, it it's already loaded, doesn't load it again</div><div class="ttdef"><b>Definition:</b> <a href="_resource_manager_8cpp_source.html#l00046">ResourceManager.cpp:46</a></div></div>
+<div class="ttc" id="aclassrender_1_1_resource_manager_html_aec5833434ea7432806785ae0ce1e1d91"><div class="ttname"><a href="classrender_1_1_resource_manager.html#aec5833434ea7432806785ae0ce1e1d91">render::ResourceManager::operator[]</a></div><div class="ttdeci">olc::Decal * operator[](const std::string &amp;key)</div><div class="ttdoc">indexing operator :D</div><div class="ttdef"><b>Definition:</b> <a href="_resource_manager_8cpp_source.html#l00029">ResourceManager.cpp:29</a></div></div>
+<div class="ttc" id="a_resource_manager_8h_html"><div class="ttname"><a href="_resource_manager_8h.html">ResourceManager.h</a></div></div>
+<div class="ttc" id="aclassrender_1_1_resource_manager_html_abdb364e2b932233c873a98a1b5c03d2a"><div class="ttname"><a href="classrender_1_1_resource_manager.html#abdb364e2b932233c873a98a1b5c03d2a">render::ResourceManager::createInstance</a></div><div class="ttdeci">static void createInstance(std::string *parent=nullptr)</div><div class="ttdef"><b>Definition:</b> <a href="_resource_manager_8cpp_source.html#l00038">ResourceManager.cpp:38</a></div></div>
+<div class="ttc" id="aclassrender_1_1_sprite_manager_html"><div class="ttname"><a href="classrender_1_1_sprite_manager.html">render::SpriteManager</a></div><div class="ttdef"><b>Definition:</b> <a href="_resource_manager_8h_source.html#l00064">ResourceManager.h:65</a></div></div>
+<div class="ttc" id="anamespacerender_html"><div class="ttname"><a href="namespacerender.html">render</a></div><div class="ttdef"><b>Definition:</b> <a href="_character_texture_8cpp_source.html#l00009">CharacterTexture.cpp:9</a></div></div>
+<div class="ttc" id="aclassolc_1_1_resource_pack_html"><div class="ttname"><a href="classolc_1_1_resource_pack.html">olc::ResourcePack</a></div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00664">olcPixelGameEngine.h:665</a></div></div>
+<div class="ttc" id="aclassrender_1_1_resource_manager_html_a58cd141c758a19c7a04b33742de422f8"><div class="ttname"><a href="classrender_1_1_resource_manager.html#a58cd141c758a19c7a04b33742de422f8">render::ResourceManager::getDecal</a></div><div class="ttdeci">olc::Decal * getDecal(const std::string &amp;string)</div><div class="ttdoc">used by GetSprite</div><div class="ttdef"><b>Definition:</b> <a href="_resource_manager_8cpp_source.html#l00008">ResourceManager.cpp:8</a></div></div>
+<div class="ttc" id="aclassrender_1_1_sprite_manager_html_ad65313b397c85d87f307fbb931907afb"><div class="ttname"><a href="classrender_1_1_sprite_manager.html#ad65313b397c85d87f307fbb931907afb">render::SpriteManager::SpriteManager</a></div><div class="ttdeci">SpriteManager(std::string &amp;resourceLocation, olc::ResourcePack *pack)</div><div class="ttdef"><b>Definition:</b> <a href="_resource_manager_8cpp_source.html#l00055">ResourceManager.cpp:55</a></div></div>
+<div class="ttc" id="aclassrender_1_1_resource_manager_html"><div class="ttname"><a href="classrender_1_1_resource_manager.html">render::ResourceManager</a></div><div class="ttdoc">Load every sprite only once, act as a set for loaded textures.</div><div class="ttdef"><b>Definition:</b> <a href="_resource_manager_8h_source.html#l00014">ResourceManager.h:15</a></div></div>
+<div class="ttc" id="aclassolc_1_1_decal_html"><div class="ttname"><a href="classolc_1_1_decal.html">olc::Decal</a></div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00736">olcPixelGameEngine.h:737</a></div></div>
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/_resource_manager_8h.html b/doxy/html/_resource_manager_8h.html
new file mode 100644
index 0000000000000000000000000000000000000000..b9898f70858d2386bf8442c69a262b92a608b420
--- /dev/null
+++ b/doxy/html/_resource_manager_8h.html
@@ -0,0 +1,96 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: C:/Users/kosmx/Documents/GitHub/2d-game/ResourceManager.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#nested-classes">Classes</a> &#124;
+<a href="#namespaces">Namespaces</a>  </div>
+  <div class="headertitle">
+<div class="title">C:/Users/kosmx/Documents/GitHub/2d-game/ResourceManager.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &lt;string&gt;</code><br />
+<code>#include &quot;<a class="el" href="olc_pixel_game_engine_8h_source.html">olcPixelGameEngine.h</a>&quot;</code><br />
+</div>
+<p><a href="_resource_manager_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classrender_1_1_resource_manager.html">render::ResourceManager</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Load every sprite only once, act as a set for loaded textures.  <a href="classrender_1_1_resource_manager.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classrender_1_1_sprite_manager.html">render::SpriteManager</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
+Namespaces</h2></td></tr>
+<tr class="memitem:namespacerender"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacerender.html">render</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/_resource_manager_8h_source.html b/doxy/html/_resource_manager_8h_source.html
new file mode 100644
index 0000000000000000000000000000000000000000..cdd154aae6c2ff6545f0ff584d2ad8e0b3dc818f
--- /dev/null
+++ b/doxy/html/_resource_manager_8h_source.html
@@ -0,0 +1,140 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: C:/Users/kosmx/Documents/GitHub/2d-game/ResourceManager.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="headertitle">
+<div class="title">C:/Users/kosmx/Documents/GitHub/2d-game/ResourceManager.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="_resource_manager_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160; </div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="preprocessor">#include &lt;string&gt;</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="olc_pixel_game_engine_8h.html">olcPixelGameEngine.h</a>&quot;</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160; </div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacerender.html">render</a></div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;{</div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;    </div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;    <span class="keyword">class </span>SpriteManager;</div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160; </div>
+<div class="line"><a name="l00014"></a><span class="lineno"><a class="line" href="classrender_1_1_resource_manager.html">   14</a></span>&#160;    <span class="keyword">class </span><a class="code" href="classrender_1_1_resource_manager.html">ResourceManager</a></div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;    {</div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;    <span class="keyword">private</span>: <span class="comment">//static</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;        <span class="keyword">static</span> <a class="code" href="classrender_1_1_resource_manager.html">ResourceManager</a>* instance;</div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;        <span class="keyword">static</span> <a class="code" href="classrender_1_1_resource_manager.html">ResourceManager</a>&amp; getInstance(); <span class="comment">//who needs that???</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;    </div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;    <span class="keyword">public</span>: <span class="comment">//static</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;        </div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;        <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classrender_1_1_resource_manager.html#abdb364e2b932233c873a98a1b5c03d2a">createInstance</a>(std::string* parent = <span class="keyword">nullptr</span>);</div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160; </div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;        <span class="keyword">static</span> <a class="code" href="classolc_1_1_decal.html">olc::Decal</a>* <a class="code" href="classrender_1_1_resource_manager.html#a4ac8358921fdda1f37bf4564855f6fce">getSprite</a>(<span class="keyword">const</span> std::string&amp; key);</div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160; </div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;    <span class="keyword">private</span>:</div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160; </div>
+<div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;        <span class="keyword">const</span> std::string parentFolder;</div>
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;        <a class="code" href="classrender_1_1_resource_manager.html">ResourceManager</a>(std::string* parent, <a class="code" href="classolc_1_1_resource_pack.html">olc::ResourcePack</a> *pack = <span class="keyword">nullptr</span>);</div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;        <a class="code" href="classrender_1_1_resource_manager.html">ResourceManager</a>(<span class="keyword">const</span> <a class="code" href="classrender_1_1_resource_manager.html">ResourceManager</a>&amp; other) = <span class="keywordflow">default</span>; <span class="comment">//make it private... I won&#39;t copy it.</span></div>
+<div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;<span class="comment"></span>        std::map&lt;std::string, SpriteManager*&gt; resourceMap;</div>
+<div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;        <a class="code" href="classolc_1_1_resource_pack.html">olc::ResourcePack</a>* pack;</div>
+<div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;    <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;        <a class="code" href="classolc_1_1_decal.html">olc::Decal</a>* <a class="code" href="classrender_1_1_resource_manager.html#a58cd141c758a19c7a04b33742de422f8">getDecal</a>(<span class="keyword">const</span> std::string&amp; <span class="keywordtype">string</span>);</div>
+<div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;        <span class="comment">//olc::Decal* operator[](std::string* key);</span></div>
+<div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;<span class="comment"></span>        <a class="code" href="classolc_1_1_decal.html">olc::Decal</a>* <a class="code" href="classrender_1_1_resource_manager.html#aec5833434ea7432806785ae0ce1e1d91">operator[]</a>(<span class="keyword">const</span> std::string&amp; key);</div>
+<div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;        </div>
+<div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;        <a class="code" href="classrender_1_1_resource_manager.html#a718ece71d629e1fd5b4b3afc967d4381">~ResourceManager</a>();</div>
+<div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;    };</div>
+<div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160; </div>
+<div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160; </div>
+<div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160; </div>
+<div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;    </div>
+<div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;    <span class="comment">//I won&#39;t update sprites or decals (probably)</span></div>
+<div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="classrender_1_1_sprite_manager.html">   64</a></span>&#160;    <span class="keyword">class </span><a class="code" href="classrender_1_1_sprite_manager.html">SpriteManager</a></div>
+<div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;    {</div>
+<div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;    <span class="keyword">private</span>: <span class="comment">//First I have to create the sprite then I can use a decal linking to a sprite --PGE docs</span></div>
+<div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;        <a class="code" href="classolc_1_1_sprite.html">olc::Sprite</a> spriteData;</div>
+<div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;        <a class="code" href="classolc_1_1_decal.html">olc::Decal</a> decalData;</div>
+<div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;    <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;        <a class="code" href="classrender_1_1_sprite_manager.html#ad65313b397c85d87f307fbb931907afb">SpriteManager</a>(std::string&amp; resourceLocation, <a class="code" href="classolc_1_1_resource_pack.html">olc::ResourcePack</a>* pack);</div>
+<div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;        <a class="code" href="classolc_1_1_decal.html">olc::Decal</a>* <a class="code" href="classrender_1_1_sprite_manager.html#ad40363b5fa66e08aec13f332c5964d6b">getDecal</a>();</div>
+<div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;    };</div>
+<div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;}</div>
+</div><!-- fragment --></div><!-- contents -->
+<div class="ttc" id="aolc_pixel_game_engine_8h_html"><div class="ttname"><a href="olc_pixel_game_engine_8h.html">olcPixelGameEngine.h</a></div></div>
+<div class="ttc" id="aclassrender_1_1_sprite_manager_html_ad40363b5fa66e08aec13f332c5964d6b"><div class="ttname"><a href="classrender_1_1_sprite_manager.html#ad40363b5fa66e08aec13f332c5964d6b">render::SpriteManager::getDecal</a></div><div class="ttdeci">olc::Decal * getDecal()</div><div class="ttdef"><b>Definition:</b> <a href="_resource_manager_8cpp_source.html#l00060">ResourceManager.cpp:60</a></div></div>
+<div class="ttc" id="aclassrender_1_1_resource_manager_html_a4ac8358921fdda1f37bf4564855f6fce"><div class="ttname"><a href="classrender_1_1_resource_manager.html#a4ac8358921fdda1f37bf4564855f6fce">render::ResourceManager::getSprite</a></div><div class="ttdeci">static olc::Decal * getSprite(const std::string &amp;key)</div><div class="ttdoc">get a sprite, it it's already loaded, doesn't load it again</div><div class="ttdef"><b>Definition:</b> <a href="_resource_manager_8cpp_source.html#l00046">ResourceManager.cpp:46</a></div></div>
+<div class="ttc" id="aclassrender_1_1_resource_manager_html_aec5833434ea7432806785ae0ce1e1d91"><div class="ttname"><a href="classrender_1_1_resource_manager.html#aec5833434ea7432806785ae0ce1e1d91">render::ResourceManager::operator[]</a></div><div class="ttdeci">olc::Decal * operator[](const std::string &amp;key)</div><div class="ttdoc">indexing operator :D</div><div class="ttdef"><b>Definition:</b> <a href="_resource_manager_8cpp_source.html#l00029">ResourceManager.cpp:29</a></div></div>
+<div class="ttc" id="aclassrender_1_1_resource_manager_html_abdb364e2b932233c873a98a1b5c03d2a"><div class="ttname"><a href="classrender_1_1_resource_manager.html#abdb364e2b932233c873a98a1b5c03d2a">render::ResourceManager::createInstance</a></div><div class="ttdeci">static void createInstance(std::string *parent=nullptr)</div><div class="ttdef"><b>Definition:</b> <a href="_resource_manager_8cpp_source.html#l00038">ResourceManager.cpp:38</a></div></div>
+<div class="ttc" id="aclassrender_1_1_resource_manager_html_a718ece71d629e1fd5b4b3afc967d4381"><div class="ttname"><a href="classrender_1_1_resource_manager.html#a718ece71d629e1fd5b4b3afc967d4381">render::ResourceManager::~ResourceManager</a></div><div class="ttdeci">~ResourceManager()</div><div class="ttdef"><b>Definition:</b> <a href="_resource_manager_8cpp_source.html#l00017">ResourceManager.cpp:17</a></div></div>
+<div class="ttc" id="aclassrender_1_1_sprite_manager_html"><div class="ttname"><a href="classrender_1_1_sprite_manager.html">render::SpriteManager</a></div><div class="ttdef"><b>Definition:</b> <a href="_resource_manager_8h_source.html#l00064">ResourceManager.h:65</a></div></div>
+<div class="ttc" id="anamespacerender_html"><div class="ttname"><a href="namespacerender.html">render</a></div><div class="ttdef"><b>Definition:</b> <a href="_character_texture_8cpp_source.html#l00009">CharacterTexture.cpp:9</a></div></div>
+<div class="ttc" id="aclassolc_1_1_resource_pack_html"><div class="ttname"><a href="classolc_1_1_resource_pack.html">olc::ResourcePack</a></div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00664">olcPixelGameEngine.h:665</a></div></div>
+<div class="ttc" id="aclassrender_1_1_resource_manager_html_a58cd141c758a19c7a04b33742de422f8"><div class="ttname"><a href="classrender_1_1_resource_manager.html#a58cd141c758a19c7a04b33742de422f8">render::ResourceManager::getDecal</a></div><div class="ttdeci">olc::Decal * getDecal(const std::string &amp;string)</div><div class="ttdoc">used by GetSprite</div><div class="ttdef"><b>Definition:</b> <a href="_resource_manager_8cpp_source.html#l00008">ResourceManager.cpp:8</a></div></div>
+<div class="ttc" id="aclassolc_1_1_sprite_html"><div class="ttname"><a href="classolc_1_1_sprite.html">olc::Sprite</a></div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00696">olcPixelGameEngine.h:697</a></div></div>
+<div class="ttc" id="aclassrender_1_1_sprite_manager_html_ad65313b397c85d87f307fbb931907afb"><div class="ttname"><a href="classrender_1_1_sprite_manager.html#ad65313b397c85d87f307fbb931907afb">render::SpriteManager::SpriteManager</a></div><div class="ttdeci">SpriteManager(std::string &amp;resourceLocation, olc::ResourcePack *pack)</div><div class="ttdef"><b>Definition:</b> <a href="_resource_manager_8cpp_source.html#l00055">ResourceManager.cpp:55</a></div></div>
+<div class="ttc" id="aclassrender_1_1_resource_manager_html"><div class="ttname"><a href="classrender_1_1_resource_manager.html">render::ResourceManager</a></div><div class="ttdoc">Load every sprite only once, act as a set for loaded textures.</div><div class="ttdef"><b>Definition:</b> <a href="_resource_manager_8h_source.html#l00014">ResourceManager.h:15</a></div></div>
+<div class="ttc" id="aclassolc_1_1_decal_html"><div class="ttname"><a href="classolc_1_1_decal.html">olc::Decal</a></div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00736">olcPixelGameEngine.h:737</a></div></div>
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/_simple_sprite_8cpp.html b/doxy/html/_simple_sprite_8cpp.html
new file mode 100644
index 0000000000000000000000000000000000000000..defccc353850438951fc2aac7a289ba6a8eeac95
--- /dev/null
+++ b/doxy/html/_simple_sprite_8cpp.html
@@ -0,0 +1,79 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: C:/Users/kosmx/Documents/GitHub/2d-game/SimpleSprite.cpp File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">C:/Users/kosmx/Documents/GitHub/2d-game/SimpleSprite.cpp File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &quot;<a class="el" href="_simple_sprite_8h_source.html">SimpleSprite.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="_entity_8h_source.html">Entity.h</a>&quot;</code><br />
+</div>
+<p><a href="_simple_sprite_8cpp_source.html">Go to the source code of this file.</a></p>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/_simple_sprite_8cpp_source.html b/doxy/html/_simple_sprite_8cpp_source.html
new file mode 100644
index 0000000000000000000000000000000000000000..4141510edaff79187cbc69422d6352ac7a64f066
--- /dev/null
+++ b/doxy/html/_simple_sprite_8cpp_source.html
@@ -0,0 +1,96 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: C:/Users/kosmx/Documents/GitHub/2d-game/SimpleSprite.cpp Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="headertitle">
+<div class="title">C:/Users/kosmx/Documents/GitHub/2d-game/SimpleSprite.cpp</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="_simple_sprite_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_simple_sprite_8h.html">SimpleSprite.h</a>&quot;</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_entity_8h.html">Entity.h</a>&quot;</span></div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160; </div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="keyword">using namespace </span><a class="code" href="namespaceolc.html">olc</a>;</div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160; </div>
+<div class="line"><a name="l00006"></a><span class="lineno"><a class="line" href="classrender_1_1_simple_sprite.html#af16d9ee29214a89a6ebe404a73ea5cad">    6</a></span>&#160;<a class="code" href="classrender_1_1_simple_sprite.html#af16d9ee29214a89a6ebe404a73ea5cad">render::SimpleSprite::SimpleSprite</a>(<span class="keyword">const</span> std::string&amp; name, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">vi2d</a>&amp; pos, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">vf2d</a>&amp; size)</div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;    : sprite(name), uv(pos), size(size) {}</div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160; </div>
+<div class="line"><a name="l00009"></a><span class="lineno"><a class="line" href="classrender_1_1_simple_sprite.html#aaed7cf3094f69387291a2d287d7753a5">    9</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classrender_1_1_simple_sprite.html#aaed7cf3094f69387291a2d287d7753a5">render::SimpleSprite::render</a>(<a class="code" href="classolc_1_1_transformed_view.html">olc::TransformedView</a>&amp; scene, <a class="code" href="classentities_1_1_entity.html">entities::Entity</a>&amp; entity)</div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;{</div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;    this-&gt;sprite.renderCentered(scene, entity.<a class="code" href="classentities_1_1_entity.html#a799a692b988248dd23d207b95e7fe2b7">getPos</a>(), uv, size);</div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;}</div>
+</div><!-- fragment --></div><!-- contents -->
+<div class="ttc" id="a_simple_sprite_8h_html"><div class="ttname"><a href="_simple_sprite_8h.html">SimpleSprite.h</a></div></div>
+<div class="ttc" id="astructolc_1_1v2d__generic_html"><div class="ttname"><a href="structolc_1_1v2d__generic.html">olc::v2d_generic&lt; int32_t &gt;</a></div></div>
+<div class="ttc" id="aclassentities_1_1_entity_html_a799a692b988248dd23d207b95e7fe2b7"><div class="ttname"><a href="classentities_1_1_entity.html#a799a692b988248dd23d207b95e7fe2b7">entities::Entity::getPos</a></div><div class="ttdeci">virtual olc::vf2d getPos() const</div><div class="ttdef"><b>Definition:</b> <a href="_entity_8cpp_source.html#l00042">Entity.cpp:42</a></div></div>
+<div class="ttc" id="aclassrender_1_1_simple_sprite_html_af16d9ee29214a89a6ebe404a73ea5cad"><div class="ttname"><a href="classrender_1_1_simple_sprite.html#af16d9ee29214a89a6ebe404a73ea5cad">render::SimpleSprite::SimpleSprite</a></div><div class="ttdeci">SimpleSprite(const std::string &amp;name, const olc::vi2d &amp;pos={ 0, 0 }, const olc::vf2d &amp;size={ 16, 16 })</div><div class="ttdef"><b>Definition:</b> <a href="_simple_sprite_8cpp_source.html#l00006">SimpleSprite.cpp:6</a></div></div>
+<div class="ttc" id="anamespaceolc_html"><div class="ttname"><a href="namespaceolc.html">olc</a></div><div class="ttdef"><b>Definition:</b> <a href="olc_p_g_e_x___transformed_view_8h_source.html#l00077">olcPGEX_TransformedView.h:78</a></div></div>
+<div class="ttc" id="aclassentities_1_1_entity_html"><div class="ttname"><a href="classentities_1_1_entity.html">entities::Entity</a></div><div class="ttdoc">Every object, what can be on the map.</div><div class="ttdef"><b>Definition:</b> <a href="_entity_8h_source.html#l00016">Entity.h:17</a></div></div>
+<div class="ttc" id="aclassrender_1_1_simple_sprite_html_aaed7cf3094f69387291a2d287d7753a5"><div class="ttname"><a href="classrender_1_1_simple_sprite.html#aaed7cf3094f69387291a2d287d7753a5">render::SimpleSprite::render</a></div><div class="ttdeci">void render(olc::TransformedView &amp;scene, entities::Entity &amp;entity) override</div><div class="ttdoc">Render the sprite, abstract function.</div><div class="ttdef"><b>Definition:</b> <a href="_simple_sprite_8cpp_source.html#l00009">SimpleSprite.cpp:9</a></div></div>
+<div class="ttc" id="a_entity_8h_html"><div class="ttname"><a href="_entity_8h.html">Entity.h</a></div></div>
+<div class="ttc" id="aclassolc_1_1_transformed_view_html"><div class="ttname"><a href="classolc_1_1_transformed_view.html">olc::TransformedView</a></div><div class="ttdef"><b>Definition:</b> <a href="olc_p_g_e_x___transformed_view_8h_source.html#l00079">olcPGEX_TransformedView.h:80</a></div></div>
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/_simple_sprite_8h.html b/doxy/html/_simple_sprite_8h.html
new file mode 100644
index 0000000000000000000000000000000000000000..d08839b3d4fd8572bdb999fc9c6be2a210ede22a
--- /dev/null
+++ b/doxy/html/_simple_sprite_8h.html
@@ -0,0 +1,95 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: C:/Users/kosmx/Documents/GitHub/2d-game/SimpleSprite.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#nested-classes">Classes</a> &#124;
+<a href="#namespaces">Namespaces</a>  </div>
+  <div class="headertitle">
+<div class="title">C:/Users/kosmx/Documents/GitHub/2d-game/SimpleSprite.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &quot;<a class="el" href="_i_texture_8h_source.html">ITexture.h</a>&quot;</code><br />
+<code>#include &lt;string&gt;</code><br />
+<code>#include &quot;<a class="el" href="_lazy_sprite_8h_source.html">LazySprite.h</a>&quot;</code><br />
+</div>
+<p><a href="_simple_sprite_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classrender_1_1_simple_sprite.html">render::SimpleSprite</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Simplest useable texture.  <a href="classrender_1_1_simple_sprite.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
+Namespaces</h2></td></tr>
+<tr class="memitem:namespacerender"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacerender.html">render</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/_simple_sprite_8h_source.html b/doxy/html/_simple_sprite_8h_source.html
new file mode 100644
index 0000000000000000000000000000000000000000..2268b32cc08f5c15e9b92eb096f752a555316325
--- /dev/null
+++ b/doxy/html/_simple_sprite_8h_source.html
@@ -0,0 +1,107 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: C:/Users/kosmx/Documents/GitHub/2d-game/SimpleSprite.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="headertitle">
+<div class="title">C:/Users/kosmx/Documents/GitHub/2d-game/SimpleSprite.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="_simple_sprite_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_i_texture_8h.html">ITexture.h</a>&quot;</span></div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="preprocessor">#include &lt;string&gt;</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_lazy_sprite_8h.html">LazySprite.h</a>&quot;</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160; </div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacerender.html">render</a> {</div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160; </div>
+<div class="line"><a name="l00011"></a><span class="lineno"><a class="line" href="classrender_1_1_simple_sprite.html">   11</a></span>&#160;    <span class="keyword">class </span><a class="code" href="classrender_1_1_simple_sprite.html">SimpleSprite</a> :</div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;        <span class="keyword">public</span> <a class="code" href="classrender_1_1_i_texture.html">ITexture</a></div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;    {</div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;    <span class="keyword">private</span>:</div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;        <a class="code" href="classrender_1_1_lazy_sprite.html">LazySprite</a> sprite;</div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;        <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a> uv, size;</div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;    </div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;    <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;        <a class="code" href="classrender_1_1_simple_sprite.html#af16d9ee29214a89a6ebe404a73ea5cad">SimpleSprite</a>(<span class="keyword">const</span> std::string&amp; name, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vi2d</a>&amp; pos = { 0, 0 }, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; size = { 16, 16 });</div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160; </div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;        <span class="keywordtype">void</span> <a class="code" href="classrender_1_1_simple_sprite.html#aaed7cf3094f69387291a2d287d7753a5">render</a>(<a class="code" href="classolc_1_1_transformed_view.html">olc::TransformedView</a>&amp; scene, <a class="code" href="classentities_1_1_entity.html">entities::Entity</a>&amp; entity) <span class="keyword">override</span>;</div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;    };</div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;}</div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160; </div>
+</div><!-- fragment --></div><!-- contents -->
+<div class="ttc" id="aclassrender_1_1_lazy_sprite_html"><div class="ttname"><a href="classrender_1_1_lazy_sprite.html">render::LazySprite</a></div><div class="ttdoc">Refer to one texture, not animated, not modifiable, just a simple image. Lazy loading means,...</div><div class="ttdef"><b>Definition:</b> <a href="_lazy_sprite_8h_source.html#l00013">LazySprite.h:14</a></div></div>
+<div class="ttc" id="astructolc_1_1v2d__generic_html"><div class="ttname"><a href="structolc_1_1v2d__generic.html">olc::v2d_generic&lt; float &gt;</a></div></div>
+<div class="ttc" id="aclassrender_1_1_simple_sprite_html_af16d9ee29214a89a6ebe404a73ea5cad"><div class="ttname"><a href="classrender_1_1_simple_sprite.html#af16d9ee29214a89a6ebe404a73ea5cad">render::SimpleSprite::SimpleSprite</a></div><div class="ttdeci">SimpleSprite(const std::string &amp;name, const olc::vi2d &amp;pos={ 0, 0 }, const olc::vf2d &amp;size={ 16, 16 })</div><div class="ttdef"><b>Definition:</b> <a href="_simple_sprite_8cpp_source.html#l00006">SimpleSprite.cpp:6</a></div></div>
+<div class="ttc" id="a_i_texture_8h_html"><div class="ttname"><a href="_i_texture_8h.html">ITexture.h</a></div></div>
+<div class="ttc" id="aclassentities_1_1_entity_html"><div class="ttname"><a href="classentities_1_1_entity.html">entities::Entity</a></div><div class="ttdoc">Every object, what can be on the map.</div><div class="ttdef"><b>Definition:</b> <a href="_entity_8h_source.html#l00016">Entity.h:17</a></div></div>
+<div class="ttc" id="aclassrender_1_1_simple_sprite_html_aaed7cf3094f69387291a2d287d7753a5"><div class="ttname"><a href="classrender_1_1_simple_sprite.html#aaed7cf3094f69387291a2d287d7753a5">render::SimpleSprite::render</a></div><div class="ttdeci">void render(olc::TransformedView &amp;scene, entities::Entity &amp;entity) override</div><div class="ttdoc">Render the sprite, abstract function.</div><div class="ttdef"><b>Definition:</b> <a href="_simple_sprite_8cpp_source.html#l00009">SimpleSprite.cpp:9</a></div></div>
+<div class="ttc" id="aclassrender_1_1_i_texture_html"><div class="ttname"><a href="classrender_1_1_i_texture.html">render::ITexture</a></div><div class="ttdoc">Every texture, what can render an entity.</div><div class="ttdef"><b>Definition:</b> <a href="_i_texture_8h_source.html#l00015">ITexture.h:16</a></div></div>
+<div class="ttc" id="anamespacerender_html"><div class="ttname"><a href="namespacerender.html">render</a></div><div class="ttdef"><b>Definition:</b> <a href="_character_texture_8cpp_source.html#l00009">CharacterTexture.cpp:9</a></div></div>
+<div class="ttc" id="aclassolc_1_1_transformed_view_html"><div class="ttname"><a href="classolc_1_1_transformed_view.html">olc::TransformedView</a></div><div class="ttdef"><b>Definition:</b> <a href="olc_p_g_e_x___transformed_view_8h_source.html#l00079">olcPGEX_TransformedView.h:80</a></div></div>
+<div class="ttc" id="aclassrender_1_1_simple_sprite_html"><div class="ttname"><a href="classrender_1_1_simple_sprite.html">render::SimpleSprite</a></div><div class="ttdoc">Simplest useable texture.</div><div class="ttdef"><b>Definition:</b> <a href="_simple_sprite_8h_source.html#l00011">SimpleSprite.h:13</a></div></div>
+<div class="ttc" id="a_lazy_sprite_8h_html"><div class="ttname"><a href="_lazy_sprite_8h.html">LazySprite.h</a></div></div>
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/_square_room_generator_8cpp.html b/doxy/html/_square_room_generator_8cpp.html
new file mode 100644
index 0000000000000000000000000000000000000000..0ea488266b3c64dff4c513f26eb147f57a4a8562
--- /dev/null
+++ b/doxy/html/_square_room_generator_8cpp.html
@@ -0,0 +1,130 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: C:/Users/kosmx/Documents/GitHub/2d-game/SquareRoomGenerator.cpp File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#var-members">Variables</a>  </div>
+  <div class="headertitle">
+<div class="title">C:/Users/kosmx/Documents/GitHub/2d-game/SquareRoomGenerator.cpp File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &quot;<a class="el" href="_square_room_generator_8h_source.html">SquareRoomGenerator.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="olc_8h_source.html">olc.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="_player_entity_8h_source.html">PlayerEntity.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="_glitch_gun_8h_source.html">GlitchGun.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="_typical_melee_weapon_8h_source.html">TypicalMeleeWeapon.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="_wall_entity_8h_source.html">WallEntity.h</a>&quot;</code><br />
+<code>#include &lt;random&gt;</code><br />
+<code>#include &quot;<a class="el" href="_character_texture_8h_source.html">CharacterTexture.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="main_game_8h_source.html">mainGame.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="_entity_with_a_i_8h_source.html">EntityWithAI.h</a>&quot;</code><br />
+</div>
+<p><a href="_square_room_generator_8cpp_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a>
+Variables</h2></td></tr>
+<tr class="memitem:af598d998387dbc59923042b09ff6a63a"><td class="memItemLeft" align="right" valign="top">const int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_square_room_generator_8cpp.html#af598d998387dbc59923042b09ff6a63a">maxSize</a> = 64</td></tr>
+<tr class="separator:af598d998387dbc59923042b09ff6a63a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a03e2392026add58812e6bad00bee5b84"><td class="memItemLeft" align="right" valign="top">const int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_square_room_generator_8cpp.html#a03e2392026add58812e6bad00bee5b84">minSize</a> = 32</td></tr>
+<tr class="separator:a03e2392026add58812e6bad00bee5b84"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Variable Documentation</h2>
+<a id="af598d998387dbc59923042b09ff6a63a"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#af598d998387dbc59923042b09ff6a63a">&#9670;&nbsp;</a></span>maxSize</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">const int maxSize = 64</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="_square_room_generator_8cpp_source.html#l00014">14</a> of file <a class="el" href="_square_room_generator_8cpp_source.html">SquareRoomGenerator.cpp</a>.</p>
+
+</div>
+</div>
+<a id="a03e2392026add58812e6bad00bee5b84"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a03e2392026add58812e6bad00bee5b84">&#9670;&nbsp;</a></span>minSize</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">const int minSize = 32</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="_square_room_generator_8cpp_source.html#l00015">15</a> of file <a class="el" href="_square_room_generator_8cpp_source.html">SquareRoomGenerator.cpp</a>.</p>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/_square_room_generator_8cpp_source.html b/doxy/html/_square_room_generator_8cpp_source.html
new file mode 100644
index 0000000000000000000000000000000000000000..cc941d2dd4b0be78ef4ff26c1ca2ac3ae2242be6
--- /dev/null
+++ b/doxy/html/_square_room_generator_8cpp_source.html
@@ -0,0 +1,193 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: C:/Users/kosmx/Documents/GitHub/2d-game/SquareRoomGenerator.cpp Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="headertitle">
+<div class="title">C:/Users/kosmx/Documents/GitHub/2d-game/SquareRoomGenerator.cpp</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="_square_room_generator_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_square_room_generator_8h.html">SquareRoomGenerator.h</a>&quot;</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="olc_8h.html">olc.h</a>&quot;</span></div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160; </div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_player_entity_8h.html">PlayerEntity.h</a>&quot;</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_glitch_gun_8h.html">GlitchGun.h</a>&quot;</span></div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_typical_melee_weapon_8h.html">TypicalMeleeWeapon.h</a>&quot;</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_wall_entity_8h.html">WallEntity.h</a>&quot;</span></div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="preprocessor">#include &lt;random&gt;</span></div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160; </div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_character_texture_8h.html">CharacterTexture.h</a>&quot;</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="main_game_8h.html">mainGame.h</a>&quot;</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_entity_with_a_i_8h.html">EntityWithAI.h</a>&quot;</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160; </div>
+<div class="line"><a name="l00014"></a><span class="lineno"><a class="line" href="_square_room_generator_8cpp.html#af598d998387dbc59923042b09ff6a63a">   14</a></span>&#160;<span class="keyword">const</span> <span class="keywordtype">int</span> <a class="code" href="_square_room_generator_8cpp.html#af598d998387dbc59923042b09ff6a63a">maxSize</a> = 64;</div>
+<div class="line"><a name="l00015"></a><span class="lineno"><a class="line" href="_square_room_generator_8cpp.html#a03e2392026add58812e6bad00bee5b84">   15</a></span>&#160;<span class="keyword">const</span> <span class="keywordtype">int</span> <a class="code" href="_square_room_generator_8cpp.html#a03e2392026add58812e6bad00bee5b84">minSize</a> = 32;</div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160; </div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="keyword">using namespace </span><a class="code" href="namespaceolc.html">olc</a>;</div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="keyword">using namespace </span><a class="code" href="namespaceweapons.html">weapons</a>;</div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="keyword">using namespace </span><a class="code" href="namespaceentities.html">entities</a>;</div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="keyword">using namespace </span><a class="code" href="namespacerender.html">render</a>;</div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="keyword">using namespace </span>std;</div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160; </div>
+<div class="line"><a name="l00023"></a><span class="lineno"><a class="line" href="class_square_room_generator.html#a5b9952abf9af7a8fc4241f3f9e93a616">   23</a></span>&#160;std::shared_ptr&lt;PlayerEntity&gt; <a class="code" href="class_square_room_generator.html#a5b9952abf9af7a8fc4241f3f9e93a616">SquareRoomGenerator::generate</a>(<a class="code" href="class_game_client.html">GameClient</a>&amp; client)</div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;{</div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;    <span class="keywordtype">int</span> x, y;</div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;    x = rand() % (<a class="code" href="_square_room_generator_8cpp.html#af598d998387dbc59923042b09ff6a63a">maxSize</a> - <a class="code" href="_square_room_generator_8cpp.html#a03e2392026add58812e6bad00bee5b84">minSize</a>) + <a class="code" href="_square_room_generator_8cpp.html#a03e2392026add58812e6bad00bee5b84">minSize</a>;</div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;    y = rand() % (<a class="code" href="_square_room_generator_8cpp.html#af598d998387dbc59923042b09ff6a63a">maxSize</a> - <a class="code" href="_square_room_generator_8cpp.html#a03e2392026add58812e6bad00bee5b84">minSize</a>) + <a class="code" href="_square_room_generator_8cpp.html#a03e2392026add58812e6bad00bee5b84">minSize</a>;</div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;    <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; x; i++){</div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;        <span class="keywordflow">for</span> (<span class="keywordtype">int</span> j = 0; j &lt; y; j++) {</div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;            <span class="keywordflow">if</span>((i == 0 || i == x - 1) || j == 0 || j == y-1){</div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;                client += shared_ptr&lt;WallEntity&gt;(<span class="keyword">new</span> <a class="code" href="classentities_1_1_wall_entity.html">WallEntity</a>(<a class="code" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">vf2d</a>(i, j)));</div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;            }</div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;            <span class="keywordflow">else</span> <span class="keywordflow">if</span>(j != 1 &amp;&amp; i != 1){</div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;                <span class="keywordtype">int</span> r = rand() % 256;</div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;                <span class="keywordflow">if</span>(r == 1){</div>
+<div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;                    <span class="keyword">auto</span> weapon = make_shared&lt;weapons::TypicalMeleeWeapon&gt;(*<span class="keyword">new</span> <a class="code" href="classweapons_1_1_typical_melee_weapon.html">weapons::TypicalMeleeWeapon</a>(<a class="code" href="classweapons_1_1_typical_melee_weapon.html#a1988a389241e423445c7b0f6ff2ed23f">weapons::TypicalMeleeWeapon::spoon</a>));</div>
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;                    weapon-&gt;setPos(<a class="code" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">vf2d</a>(i, j));</div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;                    client += weapon;</div>
+<div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;                }</div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;                <span class="keywordflow">else</span> <span class="keywordflow">if</span>(r == 2){</div>
+<div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;                    <span class="keyword">auto</span> weapon = make_shared&lt;weapons::TypicalMeleeWeapon&gt;(*<span class="keyword">new</span> <a class="code" href="classweapons_1_1_typical_melee_weapon.html">weapons::TypicalMeleeWeapon</a>(<a class="code" href="classweapons_1_1_typical_melee_weapon.html#ae623cc428bd32ef113d48d6ca15cf4c2">weapons::TypicalMeleeWeapon::longSword</a>));</div>
+<div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;                    weapon-&gt;setPos(<a class="code" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">vf2d</a>(i, j));</div>
+<div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;                    client += weapon;</div>
+<div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;                }</div>
+<div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;                <span class="keywordflow">else</span> <span class="keywordflow">if</span>(r == 3){</div>
+<div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;                    <span class="keyword">auto</span> weapon = make_shared&lt;weapons::Pistol&gt;(*<span class="keyword">new</span> <a class="code" href="classweapons_1_1_pistol.html">weapons::Pistol</a>(<a class="code" href="classweapons_1_1_ranged_weapon.html#a2c916fa61105c656187e1f6f41fa4fab">weapons::RangedWeapon::pistol</a>));</div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;                    weapon-&gt;setPos(<a class="code" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">vf2d</a>(i, j));</div>
+<div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;                    client += weapon;</div>
+<div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;                }</div>
+<div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;                <span class="keywordflow">else</span> <span class="keywordflow">if</span>(r == 4){</div>
+<div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;                    <span class="keyword">auto</span> weapon = make_shared&lt;weapons::EMGun&gt;(*<span class="keyword">new</span> <a class="code" href="classweapons_1_1_e_m_gun.html">weapons::EMGun</a>(<a class="code" href="classweapons_1_1_ranged_weapon.html#acf33d7619066026e823986ec5ec51a97">weapons::RangedWeapon::emgun</a>)); <span class="comment">//bee careful with make_shared?!</span></div>
+<div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;                    weapon-&gt;setPos(<a class="code" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">vf2d</a>(i, j));</div>
+<div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;                    client += weapon;</div>
+<div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;                }</div>
+<div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;                <span class="keywordflow">else</span> <span class="keywordflow">if</span>(r == 5){</div>
+<div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;                    shared_ptr&lt;weapons::Weapon&gt; weapon(<span class="keyword">new</span> <a class="code" href="classweapons_1_1_glitch_gun.html">weapons::GlitchGun</a>(0.3f, 40, 10, <span class="stringliteral">&quot;GItc|_|Un&quot;</span>));</div>
+<div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;                    weapon-&gt;setPos(<a class="code" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">vf2d</a>(i, j));</div>
+<div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;                    client += weapon;</div>
+<div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;                }</div>
+<div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;                <span class="keywordflow">else</span> <span class="keywordflow">if</span> (r &lt; 24) {</div>
+<div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;                    client += shared_ptr&lt;WallEntity&gt;(<span class="keyword">new</span> <a class="code" href="classentities_1_1_wall_entity.html">WallEntity</a>(<a class="code" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">vf2d</a>(i, j)));</div>
+<div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;                }</div>
+<div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;                <span class="keywordflow">else</span> <span class="keywordflow">if</span>(r &lt; 40){</div>
+<div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;                    shared_ptr&lt;EntityWithAI&gt; enemy(<span class="keyword">new</span> <a class="code" href="classentities_1_1_entity_with_a_i.html">EntityWithAI</a>(<a class="code" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">vf2d</a>(i, j), rand() % 2 ? CharacterTexture::WarriorTexture : CharacterTexture::PaladinTexture));</div>
+<div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;                    <span class="keywordtype">int</span> r2 = rand() % 3;</div>
+<div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;                    shared_ptr&lt;Weapon&gt; weapon;</div>
+<div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;                    <span class="keywordflow">switch</span> (r2) {</div>
+<div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;                    <span class="keywordflow">case</span> 0:</div>
+<div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;                        weapon = shared_ptr&lt;Weapon&gt;(<span class="keyword">new</span> <a class="code" href="classweapons_1_1_pistol.html">Pistol</a>(<a class="code" href="classweapons_1_1_ranged_weapon.html#a2c916fa61105c656187e1f6f41fa4fab">weapons::RangedWeapon::pistol</a>));</div>
+<div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;                        <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;                    <span class="keywordflow">case</span> 1:</div>
+<div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;                        weapon = shared_ptr&lt;Weapon&gt;(<span class="keyword">new</span> <a class="code" href="classweapons_1_1_typical_melee_weapon.html">TypicalMeleeWeapon</a>(TypicalMeleeWeapon::sword));</div>
+<div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;                        <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;                    <span class="keywordflow">default</span>:</div>
+<div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;                        weapon = <span class="keyword">nullptr</span>;</div>
+<div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;                    }</div>
+<div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;                    enemy-&gt;addWeapon(weapon);</div>
+<div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;                    client += enemy;</div>
+<div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;                }</div>
+<div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;            }</div>
+<div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;        }</div>
+<div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;    }</div>
+<div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;    </div>
+<div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;    std::shared_ptr&lt;PlayerEntity&gt; player(<span class="keyword">new</span> <a class="code" href="classentities_1_1_player_entity.html">PlayerEntity</a>({ 1, 1 }, rand() % 2 ? CharacterTexture::MageTexture : CharacterTexture::EngineerTexture));</div>
+<div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160; </div>
+<div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;    client += player;</div>
+<div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;    <span class="keywordflow">return</span> player;</div>
+<div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;    </div>
+<div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;}</div>
+</div><!-- fragment --></div><!-- contents -->
+<div class="ttc" id="aclassentities_1_1_wall_entity_html"><div class="ttname"><a href="classentities_1_1_wall_entity.html">entities::WallEntity</a></div><div class="ttdoc">Just a stupid wall, it doesn't do much, can't be killed...</div><div class="ttdef"><b>Definition:</b> <a href="_wall_entity_8h_source.html#l00011">WallEntity.h:12</a></div></div>
+<div class="ttc" id="aclassentities_1_1_player_entity_html"><div class="ttname"><a href="classentities_1_1_player_entity.html">entities::PlayerEntity</a></div><div class="ttdoc">You, or the player.</div><div class="ttdef"><b>Definition:</b> <a href="_player_entity_8h_source.html#l00010">PlayerEntity.h:12</a></div></div>
+<div class="ttc" id="aclassweapons_1_1_glitch_gun_html"><div class="ttname"><a href="classweapons_1_1_glitch_gun.html">weapons::GlitchGun</a></div><div class="ttdoc">TODO make the bug weapon more buggy.</div><div class="ttdef"><b>Definition:</b> <a href="_glitch_gun_8h_source.html#l00026">GlitchGun.h:28</a></div></div>
+<div class="ttc" id="aclassweapons_1_1_ranged_weapon_html_a2c916fa61105c656187e1f6f41fa4fab"><div class="ttname"><a href="classweapons_1_1_ranged_weapon.html#a2c916fa61105c656187e1f6f41fa4fab">weapons::RangedWeapon::pistol</a></div><div class="ttdeci">static const Pistol pistol</div><div class="ttdef"><b>Definition:</b> <a href="_ranged_weapon_8h_source.html#l00016">RangedWeapon.h:16</a></div></div>
+<div class="ttc" id="aolc_8h_html"><div class="ttname"><a href="olc_8h.html">olc.h</a></div></div>
+<div class="ttc" id="anamespaceolc_html_adb87819740ea9625f84c821fffb16429"><div class="ttname"><a href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a></div><div class="ttdeci">v2d_generic&lt; float &gt; vf2d</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00646">olcPixelGameEngine.h:646</a></div></div>
+<div class="ttc" id="a_character_texture_8h_html"><div class="ttname"><a href="_character_texture_8h.html">CharacterTexture.h</a></div></div>
+<div class="ttc" id="aclassentities_1_1_entity_with_a_i_html"><div class="ttname"><a href="classentities_1_1_entity_with_a_i.html">entities::EntityWithAI</a></div><div class="ttdoc">The enemies. go after the player, and try to kill it.</div><div class="ttdef"><b>Definition:</b> <a href="_entity_with_a_i_8h_source.html#l00011">EntityWithAI.h:12</a></div></div>
+<div class="ttc" id="a_typical_melee_weapon_8h_html"><div class="ttname"><a href="_typical_melee_weapon_8h.html">TypicalMeleeWeapon.h</a></div></div>
+<div class="ttc" id="aclassweapons_1_1_typical_melee_weapon_html_a1988a389241e423445c7b0f6ff2ed23f"><div class="ttname"><a href="classweapons_1_1_typical_melee_weapon.html#a1988a389241e423445c7b0f6ff2ed23f">weapons::TypicalMeleeWeapon::spoon</a></div><div class="ttdeci">static TypicalMeleeWeapon spoon</div><div class="ttdef"><b>Definition:</b> <a href="_typical_melee_weapon_8h_source.html#l00013">TypicalMeleeWeapon.h:13</a></div></div>
+<div class="ttc" id="anamespaceolc_html"><div class="ttname"><a href="namespaceolc.html">olc</a></div><div class="ttdef"><b>Definition:</b> <a href="olc_p_g_e_x___transformed_view_8h_source.html#l00077">olcPGEX_TransformedView.h:78</a></div></div>
+<div class="ttc" id="aclassweapons_1_1_typical_melee_weapon_html_ae623cc428bd32ef113d48d6ca15cf4c2"><div class="ttname"><a href="classweapons_1_1_typical_melee_weapon.html#ae623cc428bd32ef113d48d6ca15cf4c2">weapons::TypicalMeleeWeapon::longSword</a></div><div class="ttdeci">static TypicalMeleeWeapon longSword</div><div class="ttdef"><b>Definition:</b> <a href="_typical_melee_weapon_8h_source.html#l00012">TypicalMeleeWeapon.h:12</a></div></div>
+<div class="ttc" id="a_square_room_generator_8h_html"><div class="ttname"><a href="_square_room_generator_8h.html">SquareRoomGenerator.h</a></div></div>
+<div class="ttc" id="aclassweapons_1_1_pistol_html"><div class="ttname"><a href="classweapons_1_1_pistol.html">weapons::Pistol</a></div><div class="ttdoc">Just a pistol, nothing too dangerous.</div><div class="ttdef"><b>Definition:</b> <a href="_pistol_8h_source.html#l00010">Pistol.h:12</a></div></div>
+<div class="ttc" id="anamespaceweapons_html"><div class="ttname"><a href="namespaceweapons.html">weapons</a></div><div class="ttdef"><b>Definition:</b> <a href="_character_entity_8h_source.html#l00004">CharacterEntity.h:5</a></div></div>
+<div class="ttc" id="aclassweapons_1_1_ranged_weapon_html_acf33d7619066026e823986ec5ec51a97"><div class="ttname"><a href="classweapons_1_1_ranged_weapon.html#acf33d7619066026e823986ec5ec51a97">weapons::RangedWeapon::emgun</a></div><div class="ttdeci">static const EMGun emgun</div><div class="ttdef"><b>Definition:</b> <a href="_ranged_weapon_8h_source.html#l00017">RangedWeapon.h:17</a></div></div>
+<div class="ttc" id="aclass_game_client_html"><div class="ttname"><a href="class_game_client.html">GameClient</a></div><div class="ttdoc">The game main class itself. manages the entities, adjust the screen...</div><div class="ttdef"><b>Definition:</b> <a href="main_game_8h_source.html#l00011">mainGame.h:13</a></div></div>
+<div class="ttc" id="a_entity_with_a_i_8h_html"><div class="ttname"><a href="_entity_with_a_i_8h.html">EntityWithAI.h</a></div></div>
+<div class="ttc" id="a_wall_entity_8h_html"><div class="ttname"><a href="_wall_entity_8h.html">WallEntity.h</a></div></div>
+<div class="ttc" id="aclassweapons_1_1_e_m_gun_html"><div class="ttname"><a href="classweapons_1_1_e_m_gun.html">weapons::EMGun</a></div><div class="ttdoc">Weapon with energy level.</div><div class="ttdef"><b>Definition:</b> <a href="_e_m_gun_8h_source.html#l00010">EMGun.h:11</a></div></div>
+<div class="ttc" id="a_square_room_generator_8cpp_html_af598d998387dbc59923042b09ff6a63a"><div class="ttname"><a href="_square_room_generator_8cpp.html#af598d998387dbc59923042b09ff6a63a">maxSize</a></div><div class="ttdeci">const int maxSize</div><div class="ttdef"><b>Definition:</b> <a href="_square_room_generator_8cpp_source.html#l00014">SquareRoomGenerator.cpp:14</a></div></div>
+<div class="ttc" id="anamespacerender_html"><div class="ttname"><a href="namespacerender.html">render</a></div><div class="ttdef"><b>Definition:</b> <a href="_character_texture_8cpp_source.html#l00009">CharacterTexture.cpp:9</a></div></div>
+<div class="ttc" id="aclassweapons_1_1_typical_melee_weapon_html"><div class="ttname"><a href="classweapons_1_1_typical_melee_weapon.html">weapons::TypicalMeleeWeapon</a></div><div class="ttdoc">A typical melee weapon. I want to do not typical melee weapons too.</div><div class="ttdef"><b>Definition:</b> <a href="_typical_melee_weapon_8h_source.html#l00007">TypicalMeleeWeapon.h:9</a></div></div>
+<div class="ttc" id="anamespaceentities_html"><div class="ttname"><a href="namespaceentities.html">entities</a></div><div class="ttdef"><b>Definition:</b> <a href="_character_entity_8cpp_source.html#l00005">CharacterEntity.cpp:5</a></div></div>
+<div class="ttc" id="aclass_square_room_generator_html_a5b9952abf9af7a8fc4241f3f9e93a616"><div class="ttname"><a href="class_square_room_generator.html#a5b9952abf9af7a8fc4241f3f9e93a616">SquareRoomGenerator::generate</a></div><div class="ttdeci">std::shared_ptr&lt; entities::PlayerEntity &gt; generate(GameClient &amp;client) override</div><div class="ttdef"><b>Definition:</b> <a href="_square_room_generator_8cpp_source.html#l00023">SquareRoomGenerator.cpp:23</a></div></div>
+<div class="ttc" id="a_glitch_gun_8h_html"><div class="ttname"><a href="_glitch_gun_8h.html">GlitchGun.h</a></div></div>
+<div class="ttc" id="a_player_entity_8h_html"><div class="ttname"><a href="_player_entity_8h.html">PlayerEntity.h</a></div></div>
+<div class="ttc" id="amain_game_8h_html"><div class="ttname"><a href="main_game_8h.html">mainGame.h</a></div></div>
+<div class="ttc" id="a_square_room_generator_8cpp_html_a03e2392026add58812e6bad00bee5b84"><div class="ttname"><a href="_square_room_generator_8cpp.html#a03e2392026add58812e6bad00bee5b84">minSize</a></div><div class="ttdeci">const int minSize</div><div class="ttdef"><b>Definition:</b> <a href="_square_room_generator_8cpp_source.html#l00015">SquareRoomGenerator.cpp:15</a></div></div>
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/_square_room_generator_8h.html b/doxy/html/_square_room_generator_8h.html
new file mode 100644
index 0000000000000000000000000000000000000000..43739e0ba93adc02d58789de686442f7034ca702
--- /dev/null
+++ b/doxy/html/_square_room_generator_8h.html
@@ -0,0 +1,87 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: C:/Users/kosmx/Documents/GitHub/2d-game/SquareRoomGenerator.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#nested-classes">Classes</a>  </div>
+  <div class="headertitle">
+<div class="title">C:/Users/kosmx/Documents/GitHub/2d-game/SquareRoomGenerator.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &quot;<a class="el" href="_dungeon_generator_8h_source.html">DungeonGenerator.h</a>&quot;</code><br />
+</div>
+<p><a href="_square_room_generator_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_square_room_generator.html">SquareRoomGenerator</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Generates a weird square dungeon, filled with stupid enemies and weapons.  <a href="class_square_room_generator.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/_square_room_generator_8h_source.html b/doxy/html/_square_room_generator_8h_source.html
new file mode 100644
index 0000000000000000000000000000000000000000..7afbe070bcf89d6d8f7125378630af382b4c8be9
--- /dev/null
+++ b/doxy/html/_square_room_generator_8h_source.html
@@ -0,0 +1,89 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: C:/Users/kosmx/Documents/GitHub/2d-game/SquareRoomGenerator.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="headertitle">
+<div class="title">C:/Users/kosmx/Documents/GitHub/2d-game/SquareRoomGenerator.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="_square_room_generator_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_dungeon_generator_8h.html">DungeonGenerator.h</a>&quot;</span></div>
+<div class="line"><a name="l00006"></a><span class="lineno"><a class="line" href="class_square_room_generator.html">    6</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_square_room_generator.html">SquareRoomGenerator</a> :</div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;    <span class="keyword">public</span> <a class="code" href="class_dungeon_generator.html">DungeonGenerator</a></div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;{</div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="keyword">public</span>:</div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;    std::shared_ptr&lt;entities::PlayerEntity&gt; <a class="code" href="class_square_room_generator.html#a5b9952abf9af7a8fc4241f3f9e93a616">generate</a>(<a class="code" href="class_game_client.html">GameClient</a>&amp; client) <span class="keyword">override</span>;</div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;};</div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160; </div>
+</div><!-- fragment --></div><!-- contents -->
+<div class="ttc" id="aclass_dungeon_generator_html"><div class="ttname"><a href="class_dungeon_generator.html">DungeonGenerator</a></div><div class="ttdoc">Generate random dungeons...</div><div class="ttdef"><b>Definition:</b> <a href="_dungeon_generator_8h_source.html#l00013">DungeonGenerator.h:14</a></div></div>
+<div class="ttc" id="aclass_square_room_generator_html"><div class="ttname"><a href="class_square_room_generator.html">SquareRoomGenerator</a></div><div class="ttdoc">Generates a weird square dungeon, filled with stupid enemies and weapons.</div><div class="ttdef"><b>Definition:</b> <a href="_square_room_generator_8h_source.html#l00006">SquareRoomGenerator.h:8</a></div></div>
+<div class="ttc" id="a_dungeon_generator_8h_html"><div class="ttname"><a href="_dungeon_generator_8h.html">DungeonGenerator.h</a></div></div>
+<div class="ttc" id="aclass_game_client_html"><div class="ttname"><a href="class_game_client.html">GameClient</a></div><div class="ttdoc">The game main class itself. manages the entities, adjust the screen...</div><div class="ttdef"><b>Definition:</b> <a href="main_game_8h_source.html#l00011">mainGame.h:13</a></div></div>
+<div class="ttc" id="aclass_square_room_generator_html_a5b9952abf9af7a8fc4241f3f9e93a616"><div class="ttname"><a href="class_square_room_generator.html#a5b9952abf9af7a8fc4241f3f9e93a616">SquareRoomGenerator::generate</a></div><div class="ttdeci">std::shared_ptr&lt; entities::PlayerEntity &gt; generate(GameClient &amp;client) override</div><div class="ttdef"><b>Definition:</b> <a href="_square_room_generator_8cpp_source.html#l00023">SquareRoomGenerator.cpp:23</a></div></div>
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/_test_generator_8cpp.html b/doxy/html/_test_generator_8cpp.html
new file mode 100644
index 0000000000000000000000000000000000000000..2e10dc26f9be4950138437caafb09a2b914749dd
--- /dev/null
+++ b/doxy/html/_test_generator_8cpp.html
@@ -0,0 +1,87 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: C:/Users/kosmx/Documents/GitHub/2d-game/TestGenerator.cpp File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">C:/Users/kosmx/Documents/GitHub/2d-game/TestGenerator.cpp File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &quot;<a class="el" href="_test_generator_8h_source.html">TestGenerator.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="_wall_entity_8h_source.html">WallEntity.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="main_game_8h_source.html">mainGame.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="_player_entity_8h_source.html">PlayerEntity.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="_character_texture_8h_source.html">CharacterTexture.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="_dummy_entity_8h_source.html">DummyEntity.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="_typical_melee_weapon_8h_source.html">TypicalMeleeWeapon.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="_e_m_gun_8h_source.html">EMGun.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="_glitch_gun_8h_source.html">GlitchGun.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="_entity_with_a_i_8h_source.html">EntityWithAI.h</a>&quot;</code><br />
+</div>
+<p><a href="_test_generator_8cpp_source.html">Go to the source code of this file.</a></p>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/_test_generator_8cpp_source.html b/doxy/html/_test_generator_8cpp_source.html
new file mode 100644
index 0000000000000000000000000000000000000000..110fd10456afab7c2c87ca471ac01a9103f0d069
--- /dev/null
+++ b/doxy/html/_test_generator_8cpp_source.html
@@ -0,0 +1,161 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: C:/Users/kosmx/Documents/GitHub/2d-game/TestGenerator.cpp Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="headertitle">
+<div class="title">C:/Users/kosmx/Documents/GitHub/2d-game/TestGenerator.cpp</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="_test_generator_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_test_generator_8h.html">TestGenerator.h</a>&quot;</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160; </div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_wall_entity_8h.html">WallEntity.h</a>&quot;</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="main_game_8h.html">mainGame.h</a>&quot;</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_player_entity_8h.html">PlayerEntity.h</a>&quot;</span></div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_character_texture_8h.html">CharacterTexture.h</a>&quot;</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_dummy_entity_8h.html">DummyEntity.h</a>&quot;</span></div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_typical_melee_weapon_8h.html">TypicalMeleeWeapon.h</a>&quot;</span></div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_e_m_gun_8h.html">EMGun.h</a>&quot;</span></div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_glitch_gun_8h.html">GlitchGun.h</a>&quot;</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_entity_with_a_i_8h.html">EntityWithAI.h</a>&quot;</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160; </div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="keyword">using namespace </span><a class="code" href="namespaceentities.html">entities</a>;</div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="keyword">using namespace </span>std;</div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160; </div>
+<div class="line"><a name="l00016"></a><span class="lineno"><a class="line" href="class_test_generator.html#aaacdd82f39d99e1dcbc847b674f245e1">   16</a></span>&#160;shared_ptr&lt;PlayerEntity&gt; <a class="code" href="class_test_generator.html#aaacdd82f39d99e1dcbc847b674f245e1">TestGenerator::generate</a>(<a class="code" href="class_game_client.html">GameClient</a>&amp; client)</div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;{</div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;    <span class="keyword">auto</span>* asd = <span class="keyword">new</span> <a class="code" href="classentities_1_1_wall_entity.html">WallEntity</a>({ -1, 0 });</div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;    <span class="comment">//some random walls, just because why not???</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;    client += make_shared&lt;WallEntity&gt;(*<span class="keyword">new</span> <a class="code" href="classentities_1_1_wall_entity.html">WallEntity</a>(<a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>(0, 0)));</div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;    client += make_shared&lt;WallEntity&gt;(*<span class="keyword">new</span> <a class="code" href="classentities_1_1_wall_entity.html">WallEntity</a>(<a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>(-1, 1)));</div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;    client += make_shared&lt;WallEntity&gt;(*<span class="keyword">new</span> <a class="code" href="classentities_1_1_wall_entity.html">WallEntity</a>(<a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>(-2, 0)));</div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;    client += make_shared&lt;WallEntity&gt;(*<span class="keyword">new</span> <a class="code" href="classentities_1_1_wall_entity.html">WallEntity</a>(<a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>(-2, -1)));</div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;    client += make_shared&lt;WallEntity&gt;(*<span class="keyword">new</span> <a class="code" href="classentities_1_1_wall_entity.html">WallEntity</a>(<a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>(-1, -1)));</div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;    client += make_shared&lt;WallEntity&gt;(*asd);</div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160; </div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;    client += make_shared&lt;DummyEntity&gt;(*<span class="keyword">new</span> <a class="code" href="classentities_1_1_dummy_entity.html">DummyEntity</a>(<a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>(5, 6), <a class="code" href="classrender_1_1_character_texture.html#a29faf07d6f3edb7d05ad4811613a9ded">render::CharacterTexture::MageTexture</a>));</div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160; </div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;    <span class="keyword">auto</span> weapon = make_shared&lt;weapons::TypicalMeleeWeapon&gt;(*<span class="keyword">new</span> <a class="code" href="classweapons_1_1_typical_melee_weapon.html">weapons::TypicalMeleeWeapon</a>(<a class="code" href="classweapons_1_1_typical_melee_weapon.html#a1eed0cf1fc89f495ccad84dd4acac0eb">weapons::TypicalMeleeWeapon::sword</a>));</div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;    <span class="keyword">auto</span> weapon1 = make_shared&lt;weapons::Pistol&gt;(*<span class="keyword">new</span> <a class="code" href="classweapons_1_1_pistol.html">weapons::Pistol</a>(<a class="code" href="classweapons_1_1_ranged_weapon.html#a2c916fa61105c656187e1f6f41fa4fab">weapons::RangedWeapon::pistol</a>));</div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;    <span class="keyword">auto</span> weapon2 = make_shared&lt;weapons::EMGun&gt;(*<span class="keyword">new</span> <a class="code" href="classweapons_1_1_e_m_gun.html">weapons::EMGun</a>(<a class="code" href="classweapons_1_1_ranged_weapon.html#acf33d7619066026e823986ec5ec51a97">weapons::RangedWeapon::emgun</a>)); <span class="comment">//bee careful with make_shared?!</span></div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160; </div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;    shared_ptr&lt;weapons::Weapon&gt; gg(<span class="keyword">new</span> <a class="code" href="classweapons_1_1_glitch_gun.html">weapons::GlitchGun</a>(0.3f, 40, 10, <span class="stringliteral">&quot;GItc|_|Un&quot;</span>));</div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160; </div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;    shared_ptr&lt;EntityWithAI&gt; e1(<span class="keyword">new</span> <a class="code" href="classentities_1_1_entity_with_a_i.html">EntityWithAI</a>({ 10, 10 }, <a class="code" href="classrender_1_1_character_texture.html#a63149d0abd6b6c3fffac01f6bae855eb">render::CharacterTexture::WarriorTexture</a>));</div>
+<div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;    shared_ptr&lt;EntityWithAI&gt; e2(<span class="keyword">new</span> <a class="code" href="classentities_1_1_entity_with_a_i.html">EntityWithAI</a>({ 10, 12 }, <a class="code" href="classrender_1_1_character_texture.html#aa83fc0221f1d435820cd794cdb1b126e">render::CharacterTexture::PaladinTexture</a>));</div>
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;    shared_ptr&lt;weapons::Weapon&gt; w1(<span class="keyword">new</span> <a class="code" href="classweapons_1_1_pistol.html">weapons::Pistol</a>(<a class="code" href="classweapons_1_1_ranged_weapon.html#a2c916fa61105c656187e1f6f41fa4fab">weapons::RangedWeapon::pistol</a>));</div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;    e2-&gt;addWeapon(w1);</div>
+<div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160; </div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;    client += e2;</div>
+<div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;    client += e1;</div>
+<div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160; </div>
+<div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;    weapon-&gt;setPos({ -3, -4 });</div>
+<div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;    weapon1-&gt;setPos({ -4, -4 });</div>
+<div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;    weapon2-&gt;setPos({ -4, -5 });</div>
+<div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;    gg-&gt;setPos({ -5, -5 });</div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;    </div>
+<div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;    client += weapon;</div>
+<div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;    client += weapon2;</div>
+<div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;    client += weapon1;</div>
+<div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;    client += gg;</div>
+<div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;    shared_ptr&lt;PlayerEntity&gt; player(<span class="keyword">new</span> <a class="code" href="classentities_1_1_player_entity.html">PlayerEntity</a>({ 0, -4 }, <a class="code" href="classrender_1_1_character_texture.html#a86b8570b892ad9e076b0dcc98e0190c3">render::CharacterTexture::EngineerTexture</a>));</div>
+<div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160; </div>
+<div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160; </div>
+<div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;    client += player;</div>
+<div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;    <span class="keywordflow">return</span> player;</div>
+<div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;}</div>
+</div><!-- fragment --></div><!-- contents -->
+<div class="ttc" id="aclassentities_1_1_wall_entity_html"><div class="ttname"><a href="classentities_1_1_wall_entity.html">entities::WallEntity</a></div><div class="ttdoc">Just a stupid wall, it doesn't do much, can't be killed...</div><div class="ttdef"><b>Definition:</b> <a href="_wall_entity_8h_source.html#l00011">WallEntity.h:12</a></div></div>
+<div class="ttc" id="astructolc_1_1v2d__generic_html"><div class="ttname"><a href="structolc_1_1v2d__generic.html">olc::v2d_generic&lt; float &gt;</a></div></div>
+<div class="ttc" id="aclass_test_generator_html_aaacdd82f39d99e1dcbc847b674f245e1"><div class="ttname"><a href="class_test_generator.html#aaacdd82f39d99e1dcbc847b674f245e1">TestGenerator::generate</a></div><div class="ttdeci">std::shared_ptr&lt; entities::PlayerEntity &gt; generate(GameClient &amp;client) override</div><div class="ttdef"><b>Definition:</b> <a href="_test_generator_8cpp_source.html#l00016">TestGenerator.cpp:16</a></div></div>
+<div class="ttc" id="aclassentities_1_1_player_entity_html"><div class="ttname"><a href="classentities_1_1_player_entity.html">entities::PlayerEntity</a></div><div class="ttdoc">You, or the player.</div><div class="ttdef"><b>Definition:</b> <a href="_player_entity_8h_source.html#l00010">PlayerEntity.h:12</a></div></div>
+<div class="ttc" id="aclassweapons_1_1_glitch_gun_html"><div class="ttname"><a href="classweapons_1_1_glitch_gun.html">weapons::GlitchGun</a></div><div class="ttdoc">TODO make the bug weapon more buggy.</div><div class="ttdef"><b>Definition:</b> <a href="_glitch_gun_8h_source.html#l00026">GlitchGun.h:28</a></div></div>
+<div class="ttc" id="aclassweapons_1_1_ranged_weapon_html_a2c916fa61105c656187e1f6f41fa4fab"><div class="ttname"><a href="classweapons_1_1_ranged_weapon.html#a2c916fa61105c656187e1f6f41fa4fab">weapons::RangedWeapon::pistol</a></div><div class="ttdeci">static const Pistol pistol</div><div class="ttdef"><b>Definition:</b> <a href="_ranged_weapon_8h_source.html#l00016">RangedWeapon.h:16</a></div></div>
+<div class="ttc" id="a_character_texture_8h_html"><div class="ttname"><a href="_character_texture_8h.html">CharacterTexture.h</a></div></div>
+<div class="ttc" id="aclassentities_1_1_entity_with_a_i_html"><div class="ttname"><a href="classentities_1_1_entity_with_a_i.html">entities::EntityWithAI</a></div><div class="ttdoc">The enemies. go after the player, and try to kill it.</div><div class="ttdef"><b>Definition:</b> <a href="_entity_with_a_i_8h_source.html#l00011">EntityWithAI.h:12</a></div></div>
+<div class="ttc" id="a_typical_melee_weapon_8h_html"><div class="ttname"><a href="_typical_melee_weapon_8h.html">TypicalMeleeWeapon.h</a></div></div>
+<div class="ttc" id="aclassentities_1_1_dummy_entity_html"><div class="ttname"><a href="classentities_1_1_dummy_entity.html">entities::DummyEntity</a></div><div class="ttdoc">A test/dummy entity. it can't do anything... no, it can die.</div><div class="ttdef"><b>Definition:</b> <a href="_dummy_entity_8h_source.html#l00008">DummyEntity.h:10</a></div></div>
+<div class="ttc" id="aclassrender_1_1_character_texture_html_a29faf07d6f3edb7d05ad4811613a9ded"><div class="ttname"><a href="classrender_1_1_character_texture.html#a29faf07d6f3edb7d05ad4811613a9ded">render::CharacterTexture::MageTexture</a></div><div class="ttdeci">static CharacterTexture MageTexture</div><div class="ttdef"><b>Definition:</b> <a href="_character_texture_8h_source.html#l00013">CharacterTexture.h:13</a></div></div>
+<div class="ttc" id="aclassweapons_1_1_pistol_html"><div class="ttname"><a href="classweapons_1_1_pistol.html">weapons::Pistol</a></div><div class="ttdoc">Just a pistol, nothing too dangerous.</div><div class="ttdef"><b>Definition:</b> <a href="_pistol_8h_source.html#l00010">Pistol.h:12</a></div></div>
+<div class="ttc" id="aclassrender_1_1_character_texture_html_a63149d0abd6b6c3fffac01f6bae855eb"><div class="ttname"><a href="classrender_1_1_character_texture.html#a63149d0abd6b6c3fffac01f6bae855eb">render::CharacterTexture::WarriorTexture</a></div><div class="ttdeci">static CharacterTexture WarriorTexture</div><div class="ttdef"><b>Definition:</b> <a href="_character_texture_8h_source.html#l00015">CharacterTexture.h:15</a></div></div>
+<div class="ttc" id="aclassweapons_1_1_ranged_weapon_html_acf33d7619066026e823986ec5ec51a97"><div class="ttname"><a href="classweapons_1_1_ranged_weapon.html#acf33d7619066026e823986ec5ec51a97">weapons::RangedWeapon::emgun</a></div><div class="ttdeci">static const EMGun emgun</div><div class="ttdef"><b>Definition:</b> <a href="_ranged_weapon_8h_source.html#l00017">RangedWeapon.h:17</a></div></div>
+<div class="ttc" id="aclass_game_client_html"><div class="ttname"><a href="class_game_client.html">GameClient</a></div><div class="ttdoc">The game main class itself. manages the entities, adjust the screen...</div><div class="ttdef"><b>Definition:</b> <a href="main_game_8h_source.html#l00011">mainGame.h:13</a></div></div>
+<div class="ttc" id="a_entity_with_a_i_8h_html"><div class="ttname"><a href="_entity_with_a_i_8h.html">EntityWithAI.h</a></div></div>
+<div class="ttc" id="a_wall_entity_8h_html"><div class="ttname"><a href="_wall_entity_8h.html">WallEntity.h</a></div></div>
+<div class="ttc" id="aclassweapons_1_1_e_m_gun_html"><div class="ttname"><a href="classweapons_1_1_e_m_gun.html">weapons::EMGun</a></div><div class="ttdoc">Weapon with energy level.</div><div class="ttdef"><b>Definition:</b> <a href="_e_m_gun_8h_source.html#l00010">EMGun.h:11</a></div></div>
+<div class="ttc" id="aclassrender_1_1_character_texture_html_aa83fc0221f1d435820cd794cdb1b126e"><div class="ttname"><a href="classrender_1_1_character_texture.html#aa83fc0221f1d435820cd794cdb1b126e">render::CharacterTexture::PaladinTexture</a></div><div class="ttdeci">static CharacterTexture PaladinTexture</div><div class="ttdef"><b>Definition:</b> <a href="_character_texture_8h_source.html#l00014">CharacterTexture.h:14</a></div></div>
+<div class="ttc" id="a_e_m_gun_8h_html"><div class="ttname"><a href="_e_m_gun_8h.html">EMGun.h</a></div></div>
+<div class="ttc" id="aclassrender_1_1_character_texture_html_a86b8570b892ad9e076b0dcc98e0190c3"><div class="ttname"><a href="classrender_1_1_character_texture.html#a86b8570b892ad9e076b0dcc98e0190c3">render::CharacterTexture::EngineerTexture</a></div><div class="ttdeci">static CharacterTexture EngineerTexture</div><div class="ttdef"><b>Definition:</b> <a href="_character_texture_8h_source.html#l00012">CharacterTexture.h:12</a></div></div>
+<div class="ttc" id="aclassweapons_1_1_typical_melee_weapon_html"><div class="ttname"><a href="classweapons_1_1_typical_melee_weapon.html">weapons::TypicalMeleeWeapon</a></div><div class="ttdoc">A typical melee weapon. I want to do not typical melee weapons too.</div><div class="ttdef"><b>Definition:</b> <a href="_typical_melee_weapon_8h_source.html#l00007">TypicalMeleeWeapon.h:9</a></div></div>
+<div class="ttc" id="anamespaceentities_html"><div class="ttname"><a href="namespaceentities.html">entities</a></div><div class="ttdef"><b>Definition:</b> <a href="_character_entity_8cpp_source.html#l00005">CharacterEntity.cpp:5</a></div></div>
+<div class="ttc" id="aclassweapons_1_1_typical_melee_weapon_html_a1eed0cf1fc89f495ccad84dd4acac0eb"><div class="ttname"><a href="classweapons_1_1_typical_melee_weapon.html#a1eed0cf1fc89f495ccad84dd4acac0eb">weapons::TypicalMeleeWeapon::sword</a></div><div class="ttdeci">static TypicalMeleeWeapon sword</div><div class="ttdef"><b>Definition:</b> <a href="_typical_melee_weapon_8h_source.html#l00011">TypicalMeleeWeapon.h:11</a></div></div>
+<div class="ttc" id="a_test_generator_8h_html"><div class="ttname"><a href="_test_generator_8h.html">TestGenerator.h</a></div></div>
+<div class="ttc" id="a_glitch_gun_8h_html"><div class="ttname"><a href="_glitch_gun_8h.html">GlitchGun.h</a></div></div>
+<div class="ttc" id="a_player_entity_8h_html"><div class="ttname"><a href="_player_entity_8h.html">PlayerEntity.h</a></div></div>
+<div class="ttc" id="amain_game_8h_html"><div class="ttname"><a href="main_game_8h.html">mainGame.h</a></div></div>
+<div class="ttc" id="a_dummy_entity_8h_html"><div class="ttname"><a href="_dummy_entity_8h.html">DummyEntity.h</a></div></div>
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/_test_generator_8h.html b/doxy/html/_test_generator_8h.html
new file mode 100644
index 0000000000000000000000000000000000000000..c8fa5fb9d4f00436da2327e5eb862643e1f8bd5d
--- /dev/null
+++ b/doxy/html/_test_generator_8h.html
@@ -0,0 +1,87 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: C:/Users/kosmx/Documents/GitHub/2d-game/TestGenerator.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#nested-classes">Classes</a>  </div>
+  <div class="headertitle">
+<div class="title">C:/Users/kosmx/Documents/GitHub/2d-game/TestGenerator.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &quot;<a class="el" href="_dungeon_generator_8h_source.html">DungeonGenerator.h</a>&quot;</code><br />
+</div>
+<p><a href="_test_generator_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_test_generator.html">TestGenerator</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Used for testing, doesn't random.  <a href="class_test_generator.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/_test_generator_8h_source.html b/doxy/html/_test_generator_8h_source.html
new file mode 100644
index 0000000000000000000000000000000000000000..9984bbc93066245bbf3e1e21584ed0a2d2bf1e85
--- /dev/null
+++ b/doxy/html/_test_generator_8h_source.html
@@ -0,0 +1,90 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: C:/Users/kosmx/Documents/GitHub/2d-game/TestGenerator.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="headertitle">
+<div class="title">C:/Users/kosmx/Documents/GitHub/2d-game/TestGenerator.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="_test_generator_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_dungeon_generator_8h.html">DungeonGenerator.h</a>&quot;</span></div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160; </div>
+<div class="line"><a name="l00007"></a><span class="lineno"><a class="line" href="class_test_generator.html">    7</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_test_generator.html">TestGenerator</a> :</div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;    <span class="keyword">public</span> <a class="code" href="class_dungeon_generator.html">DungeonGenerator</a></div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;{</div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="keyword">public</span>:</div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;    std::shared_ptr&lt;entities::PlayerEntity&gt; <a class="code" href="class_test_generator.html#aaacdd82f39d99e1dcbc847b674f245e1">generate</a>(<a class="code" href="class_game_client.html">GameClient</a>&amp; client) <span class="keyword">override</span>;</div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;};</div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160; </div>
+</div><!-- fragment --></div><!-- contents -->
+<div class="ttc" id="aclass_dungeon_generator_html"><div class="ttname"><a href="class_dungeon_generator.html">DungeonGenerator</a></div><div class="ttdoc">Generate random dungeons...</div><div class="ttdef"><b>Definition:</b> <a href="_dungeon_generator_8h_source.html#l00013">DungeonGenerator.h:14</a></div></div>
+<div class="ttc" id="aclass_test_generator_html_aaacdd82f39d99e1dcbc847b674f245e1"><div class="ttname"><a href="class_test_generator.html#aaacdd82f39d99e1dcbc847b674f245e1">TestGenerator::generate</a></div><div class="ttdeci">std::shared_ptr&lt; entities::PlayerEntity &gt; generate(GameClient &amp;client) override</div><div class="ttdef"><b>Definition:</b> <a href="_test_generator_8cpp_source.html#l00016">TestGenerator.cpp:16</a></div></div>
+<div class="ttc" id="a_dungeon_generator_8h_html"><div class="ttname"><a href="_dungeon_generator_8h.html">DungeonGenerator.h</a></div></div>
+<div class="ttc" id="aclass_game_client_html"><div class="ttname"><a href="class_game_client.html">GameClient</a></div><div class="ttdoc">The game main class itself. manages the entities, adjust the screen...</div><div class="ttdef"><b>Definition:</b> <a href="main_game_8h_source.html#l00011">mainGame.h:13</a></div></div>
+<div class="ttc" id="aclass_test_generator_html"><div class="ttname"><a href="class_test_generator.html">TestGenerator</a></div><div class="ttdoc">Used for testing, doesn't random.</div><div class="ttdef"><b>Definition:</b> <a href="_test_generator_8h_source.html#l00007">TestGenerator.h:9</a></div></div>
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/_text_8md.html b/doxy/html/_text_8md.html
new file mode 100644
index 0000000000000000000000000000000000000000..531e9a1f4816b86e0aecb3583161d4b925ee5825
--- /dev/null
+++ b/doxy/html/_text_8md.html
@@ -0,0 +1,75 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: C:/Users/kosmx/Documents/GitHub/2d-game/Text.md File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">C:/Users/kosmx/Documents/GitHub/2d-game/Text.md File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/_typical_melee_weapon_8cpp.html b/doxy/html/_typical_melee_weapon_8cpp.html
new file mode 100644
index 0000000000000000000000000000000000000000..e689263afcda1a57b62248d27917957392a94827
--- /dev/null
+++ b/doxy/html/_typical_melee_weapon_8cpp.html
@@ -0,0 +1,87 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: C:/Users/kosmx/Documents/GitHub/2d-game/TypicalMeleeWeapon.cpp File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#namespaces">Namespaces</a>  </div>
+  <div class="headertitle">
+<div class="title">C:/Users/kosmx/Documents/GitHub/2d-game/TypicalMeleeWeapon.cpp File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &quot;<a class="el" href="_typical_melee_weapon_8h_source.html">TypicalMeleeWeapon.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="_weapon_textures_8h_source.html">WeaponTextures.h</a>&quot;</code><br />
+</div>
+<p><a href="_typical_melee_weapon_8cpp_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
+Namespaces</h2></td></tr>
+<tr class="memitem:namespaceweapons"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceweapons.html">weapons</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/_typical_melee_weapon_8cpp_source.html b/doxy/html/_typical_melee_weapon_8cpp_source.html
new file mode 100644
index 0000000000000000000000000000000000000000..fc267f785deb8cad76e39c3f5cfb81d83a6c69bf
--- /dev/null
+++ b/doxy/html/_typical_melee_weapon_8cpp_source.html
@@ -0,0 +1,133 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: C:/Users/kosmx/Documents/GitHub/2d-game/TypicalMeleeWeapon.cpp Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="headertitle">
+<div class="title">C:/Users/kosmx/Documents/GitHub/2d-game/TypicalMeleeWeapon.cpp</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="_typical_melee_weapon_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_typical_melee_weapon_8h.html">TypicalMeleeWeapon.h</a>&quot;</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160; </div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_weapon_textures_8h.html">WeaponTextures.h</a>&quot;</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160; </div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespaceweapons.html">weapons</a> {</div>
+<div class="line"><a name="l00006"></a><span class="lineno"><a class="line" href="classweapons_1_1_typical_melee_weapon.html#ab60f5d99ae206d9064381b0c70b9a7a2">    6</a></span>&#160;    <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a> <a class="code" href="classweapons_1_1_typical_melee_weapon.html#ab60f5d99ae206d9064381b0c70b9a7a2">TypicalMeleeWeapon::getHitBoxSize</a>()<span class="keyword"> const</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="keyword">    </span>{</div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a>(0, 0);</div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;    }</div>
+<div class="line"><a name="l00010"></a><span class="lineno"><a class="line" href="classweapons_1_1_typical_melee_weapon.html#a00287ced5e67a7f91423596fac46606b">   10</a></span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="classweapons_1_1_typical_melee_weapon.html#a00287ced5e67a7f91423596fac46606b">TypicalMeleeWeapon::damage</a>(<span class="keywordtype">int</span> damage, <a class="code" href="classentities_1_1_entity.html">Entity</a>&amp; attacker)</div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;    {</div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;        <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;    }</div>
+<div class="line"><a name="l00014"></a><span class="lineno"><a class="line" href="classweapons_1_1_typical_melee_weapon.html#ad367f50efc891a92b0f22f2404f39c5e">   14</a></span>&#160;    std::function&lt;bool(std::shared_ptr&lt;Entity&gt;, std::shared_ptr&lt;Entity&gt;)&gt; <a class="code" href="classweapons_1_1_typical_melee_weapon.html#ad367f50efc891a92b0f22f2404f39c5e">TypicalMeleeWeapon::getPredicator</a>(<span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; direction)</div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;    {</div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;        <a class="code" href="classweapons_1_1_melee_weapon_1_1predicate_distance.html">predicateDistance</a> p;</div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;        p.<a class="code" href="classweapons_1_1_melee_weapon_1_1predicate_distance.html#a3d53f314c59a28ad09a209299c6f04dc">maxDistance</a> = this-&gt;<a class="code" href="classweapons_1_1_typical_melee_weapon.html#a7822572a76104d2cd2d0a21cdfa754d7">maxRange</a>;</div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;        <span class="keywordflow">return</span> [p, direction, <span class="keyword">this</span>](std::shared_ptr&lt;Entity&gt; user, std::shared_ptr&lt;Entity&gt; entity)-&gt;<span class="keywordtype">bool</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;        {</div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;            <span class="keywordflow">if</span> (user == entity) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;            <span class="keywordflow">return</span> p(user-&gt;getPos() + direction * this-&gt;getHitOffset(), entity);</div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;        };</div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;    }</div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160; </div>
+<div class="line"><a name="l00025"></a><span class="lineno"><a class="line" href="classweapons_1_1_typical_melee_weapon.html#a74cb37d45c599296e443858b73cd1d97">   25</a></span>&#160;    <span class="keywordtype">float</span> <a class="code" href="classweapons_1_1_typical_melee_weapon.html#a74cb37d45c599296e443858b73cd1d97">TypicalMeleeWeapon::getHitOffset</a>()<span class="keyword"> const</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;<span class="keyword">    </span>{</div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;        <span class="keywordflow">return</span> this-&gt;<a class="code" href="classweapons_1_1_typical_melee_weapon.html#af33a1ff938b8068aaab0bd0ac943ca83">attackOffset</a>;</div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;    }</div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160; </div>
+<div class="line"><a name="l00030"></a><span class="lineno"><a class="line" href="classweapons_1_1_typical_melee_weapon.html#a939cbdc05adab9adf58301cce00e3f8b">   30</a></span>&#160;    <a class="code" href="classweapons_1_1_typical_melee_weapon.html#a939cbdc05adab9adf58301cce00e3f8b">TypicalMeleeWeapon::TypicalMeleeWeapon</a>(<a class="code" href="classrender_1_1_i_texture.html">render::ITexture</a>&amp; text, <span class="keyword">const</span> std::string&amp; name, <span class="keywordtype">float</span> cooldownTime, <span class="keywordtype">int</span> damage, <span class="keywordtype">float</span> range, <span class="keywordtype">float</span> hitOffset, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; pos)</div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;        : <a class="code" href="classweapons_1_1_melee_weapon.html">MeleeWeapon</a>(text, name, cooldownTime, damage, pos), maxRange(range), attackOffset(hitOffset) {}</div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160; </div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;    <a class="code" href="classweapons_1_1_typical_melee_weapon.html">TypicalMeleeWeapon</a> <a class="code" href="classweapons_1_1_typical_melee_weapon.html#a1eed0cf1fc89f495ccad84dd4acac0eb">TypicalMeleeWeapon::sword</a>(<a class="code" href="namespaceweapons_1_1textures.html#a2a490d5d835f3ea3a9b07d2a9efb1c36">textures::sword1</a>, <span class="stringliteral">&quot;Sharp stick&quot;</span>, 1, 16, 1);</div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;    <a class="code" href="classweapons_1_1_typical_melee_weapon.html">TypicalMeleeWeapon</a> <a class="code" href="classweapons_1_1_typical_melee_weapon.html#ae623cc428bd32ef113d48d6ca15cf4c2">TypicalMeleeWeapon::longSword</a>(<a class="code" href="namespaceweapons_1_1textures.html#a2a490d5d835f3ea3a9b07d2a9efb1c36">textures::sword1</a>, <span class="stringliteral">&quot;Long sharp stick&quot;</span>, 3, 16, 3, 1);</div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;    <a class="code" href="classweapons_1_1_typical_melee_weapon.html">TypicalMeleeWeapon</a> <a class="code" href="classweapons_1_1_typical_melee_weapon.html#a1988a389241e423445c7b0f6ff2ed23f">TypicalMeleeWeapon::spoon</a>(<a class="code" href="namespaceweapons_1_1textures.html#a2a490d5d835f3ea3a9b07d2a9efb1c36">textures::sword1</a>, <span class="stringliteral">&quot;Spoon&quot;</span>, 3, 32, 0.7f, 0.4f);</div>
+<div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;}</div>
+</div><!-- fragment --></div><!-- contents -->
+<div class="ttc" id="astructolc_1_1v2d__generic_html"><div class="ttname"><a href="structolc_1_1v2d__generic.html">olc::v2d_generic&lt; float &gt;</a></div></div>
+<div class="ttc" id="aclassweapons_1_1_typical_melee_weapon_html_ab60f5d99ae206d9064381b0c70b9a7a2"><div class="ttname"><a href="classweapons_1_1_typical_melee_weapon.html#ab60f5d99ae206d9064381b0c70b9a7a2">weapons::TypicalMeleeWeapon::getHitBoxSize</a></div><div class="ttdeci">olc::vf2d getHitBoxSize() const override</div><div class="ttdoc">half hitbox size</div><div class="ttdef"><b>Definition:</b> <a href="_typical_melee_weapon_8cpp_source.html#l00006">TypicalMeleeWeapon.cpp:6</a></div></div>
+<div class="ttc" id="anamespaceolc_html_adb87819740ea9625f84c821fffb16429"><div class="ttname"><a href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a></div><div class="ttdeci">v2d_generic&lt; float &gt; vf2d</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00646">olcPixelGameEngine.h:646</a></div></div>
+<div class="ttc" id="a_typical_melee_weapon_8h_html"><div class="ttname"><a href="_typical_melee_weapon_8h.html">TypicalMeleeWeapon.h</a></div></div>
+<div class="ttc" id="aclassweapons_1_1_typical_melee_weapon_html_a00287ced5e67a7f91423596fac46606b"><div class="ttname"><a href="classweapons_1_1_typical_melee_weapon.html#a00287ced5e67a7f91423596fac46606b">weapons::TypicalMeleeWeapon::damage</a></div><div class="ttdeci">bool damage(int damage, Entity &amp;attacker) override</div><div class="ttdoc">something damage this</div><div class="ttdef"><b>Definition:</b> <a href="_typical_melee_weapon_8cpp_source.html#l00010">TypicalMeleeWeapon.cpp:10</a></div></div>
+<div class="ttc" id="aclassweapons_1_1_typical_melee_weapon_html_a1988a389241e423445c7b0f6ff2ed23f"><div class="ttname"><a href="classweapons_1_1_typical_melee_weapon.html#a1988a389241e423445c7b0f6ff2ed23f">weapons::TypicalMeleeWeapon::spoon</a></div><div class="ttdeci">static TypicalMeleeWeapon spoon</div><div class="ttdef"><b>Definition:</b> <a href="_typical_melee_weapon_8h_source.html#l00013">TypicalMeleeWeapon.h:13</a></div></div>
+<div class="ttc" id="aclassweapons_1_1_typical_melee_weapon_html_af33a1ff938b8068aaab0bd0ac943ca83"><div class="ttname"><a href="classweapons_1_1_typical_melee_weapon.html#af33a1ff938b8068aaab0bd0ac943ca83">weapons::TypicalMeleeWeapon::attackOffset</a></div><div class="ttdeci">float attackOffset</div><div class="ttdef"><b>Definition:</b> <a href="_typical_melee_weapon_8h_source.html#l00020">TypicalMeleeWeapon.h:20</a></div></div>
+<div class="ttc" id="aclassweapons_1_1_typical_melee_weapon_html_ae623cc428bd32ef113d48d6ca15cf4c2"><div class="ttname"><a href="classweapons_1_1_typical_melee_weapon.html#ae623cc428bd32ef113d48d6ca15cf4c2">weapons::TypicalMeleeWeapon::longSword</a></div><div class="ttdeci">static TypicalMeleeWeapon longSword</div><div class="ttdef"><b>Definition:</b> <a href="_typical_melee_weapon_8h_source.html#l00012">TypicalMeleeWeapon.h:12</a></div></div>
+<div class="ttc" id="aclassweapons_1_1_melee_weapon_1_1predicate_distance_html"><div class="ttname"><a href="classweapons_1_1_melee_weapon_1_1predicate_distance.html">weapons::MeleeWeapon::predicateDistance</a></div><div class="ttdoc">Functor to predicate entity distance. You can also use lambda, if you want.</div><div class="ttdef"><b>Definition:</b> <a href="_melee_weapon_8h_source.html#l00043">MeleeWeapon.h:44</a></div></div>
+<div class="ttc" id="aclassweapons_1_1_typical_melee_weapon_html_a939cbdc05adab9adf58301cce00e3f8b"><div class="ttname"><a href="classweapons_1_1_typical_melee_weapon.html#a939cbdc05adab9adf58301cce00e3f8b">weapons::TypicalMeleeWeapon::TypicalMeleeWeapon</a></div><div class="ttdeci">TypicalMeleeWeapon(render::ITexture &amp;text, const std::string &amp;name, float cooldownTime, int damage, float range, float hitOffset=.5f, const olc::vf2d &amp;pos={ 0, 0 })</div><div class="ttdef"><b>Definition:</b> <a href="_typical_melee_weapon_8cpp_source.html#l00030">TypicalMeleeWeapon.cpp:30</a></div></div>
+<div class="ttc" id="anamespaceweapons_html"><div class="ttname"><a href="namespaceweapons.html">weapons</a></div><div class="ttdef"><b>Definition:</b> <a href="_character_entity_8h_source.html#l00004">CharacterEntity.h:5</a></div></div>
+<div class="ttc" id="aclassentities_1_1_entity_html"><div class="ttname"><a href="classentities_1_1_entity.html">entities::Entity</a></div><div class="ttdoc">Every object, what can be on the map.</div><div class="ttdef"><b>Definition:</b> <a href="_entity_8h_source.html#l00016">Entity.h:17</a></div></div>
+<div class="ttc" id="aclassrender_1_1_i_texture_html"><div class="ttname"><a href="classrender_1_1_i_texture.html">render::ITexture</a></div><div class="ttdoc">Every texture, what can render an entity.</div><div class="ttdef"><b>Definition:</b> <a href="_i_texture_8h_source.html#l00015">ITexture.h:16</a></div></div>
+<div class="ttc" id="aclassweapons_1_1_typical_melee_weapon_html"><div class="ttname"><a href="classweapons_1_1_typical_melee_weapon.html">weapons::TypicalMeleeWeapon</a></div><div class="ttdoc">A typical melee weapon. I want to do not typical melee weapons too.</div><div class="ttdef"><b>Definition:</b> <a href="_typical_melee_weapon_8h_source.html#l00007">TypicalMeleeWeapon.h:9</a></div></div>
+<div class="ttc" id="aclassweapons_1_1_typical_melee_weapon_html_a7822572a76104d2cd2d0a21cdfa754d7"><div class="ttname"><a href="classweapons_1_1_typical_melee_weapon.html#a7822572a76104d2cd2d0a21cdfa754d7">weapons::TypicalMeleeWeapon::maxRange</a></div><div class="ttdeci">float maxRange</div><div class="ttdef"><b>Definition:</b> <a href="_typical_melee_weapon_8h_source.html#l00019">TypicalMeleeWeapon.h:19</a></div></div>
+<div class="ttc" id="aclassweapons_1_1_melee_weapon_html"><div class="ttname"><a href="classweapons_1_1_melee_weapon.html">weapons::MeleeWeapon</a></div><div class="ttdoc">A melee weapon, like a spoon.</div><div class="ttdef"><b>Definition:</b> <a href="_melee_weapon_8h_source.html#l00009">MeleeWeapon.h:11</a></div></div>
+<div class="ttc" id="aclassweapons_1_1_typical_melee_weapon_html_ad367f50efc891a92b0f22f2404f39c5e"><div class="ttname"><a href="classweapons_1_1_typical_melee_weapon.html#ad367f50efc891a92b0f22f2404f39c5e">weapons::TypicalMeleeWeapon::getPredicator</a></div><div class="ttdeci">std::function&lt; bool(std::shared_ptr&lt; Entity &gt;, std::shared_ptr&lt; Entity &gt;)&gt; getPredicator(const olc::vf2d &amp;direction) override</div><div class="ttdoc">The predicate function getter for the damageIf.</div><div class="ttdef"><b>Definition:</b> <a href="_typical_melee_weapon_8cpp_source.html#l00014">TypicalMeleeWeapon.cpp:14</a></div></div>
+<div class="ttc" id="aclassweapons_1_1_typical_melee_weapon_html_a1eed0cf1fc89f495ccad84dd4acac0eb"><div class="ttname"><a href="classweapons_1_1_typical_melee_weapon.html#a1eed0cf1fc89f495ccad84dd4acac0eb">weapons::TypicalMeleeWeapon::sword</a></div><div class="ttdeci">static TypicalMeleeWeapon sword</div><div class="ttdef"><b>Definition:</b> <a href="_typical_melee_weapon_8h_source.html#l00011">TypicalMeleeWeapon.h:11</a></div></div>
+<div class="ttc" id="aclassweapons_1_1_melee_weapon_1_1predicate_distance_html_a3d53f314c59a28ad09a209299c6f04dc"><div class="ttname"><a href="classweapons_1_1_melee_weapon_1_1predicate_distance.html#a3d53f314c59a28ad09a209299c6f04dc">weapons::MeleeWeapon::predicateDistance::maxDistance</a></div><div class="ttdeci">float maxDistance</div><div class="ttdef"><b>Definition:</b> <a href="_melee_weapon_8h_source.html#l00047">MeleeWeapon.h:47</a></div></div>
+<div class="ttc" id="a_weapon_textures_8h_html"><div class="ttname"><a href="_weapon_textures_8h.html">WeaponTextures.h</a></div></div>
+<div class="ttc" id="aclassweapons_1_1_typical_melee_weapon_html_a74cb37d45c599296e443858b73cd1d97"><div class="ttname"><a href="classweapons_1_1_typical_melee_weapon.html#a74cb37d45c599296e443858b73cd1d97">weapons::TypicalMeleeWeapon::getHitOffset</a></div><div class="ttdeci">float getHitOffset() const override</div><div class="ttdoc">the hit's center distance from the user</div><div class="ttdef"><b>Definition:</b> <a href="_typical_melee_weapon_8cpp_source.html#l00025">TypicalMeleeWeapon.cpp:25</a></div></div>
+<div class="ttc" id="anamespaceweapons_1_1textures_html_a2a490d5d835f3ea3a9b07d2a9efb1c36"><div class="ttname"><a href="namespaceweapons_1_1textures.html#a2a490d5d835f3ea3a9b07d2a9efb1c36">weapons::textures::sword1</a></div><div class="ttdeci">render::SimpleSprite sword1(&quot;Items/LongWep.png&quot;, { 0, 16 })</div></div>
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/_typical_melee_weapon_8h.html b/doxy/html/_typical_melee_weapon_8h.html
new file mode 100644
index 0000000000000000000000000000000000000000..af43b81937158f102eea16b24abecff360c82d1c
--- /dev/null
+++ b/doxy/html/_typical_melee_weapon_8h.html
@@ -0,0 +1,93 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: C:/Users/kosmx/Documents/GitHub/2d-game/TypicalMeleeWeapon.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#nested-classes">Classes</a> &#124;
+<a href="#namespaces">Namespaces</a>  </div>
+  <div class="headertitle">
+<div class="title">C:/Users/kosmx/Documents/GitHub/2d-game/TypicalMeleeWeapon.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &quot;<a class="el" href="_melee_weapon_8h_source.html">MeleeWeapon.h</a>&quot;</code><br />
+</div>
+<p><a href="_typical_melee_weapon_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_typical_melee_weapon.html">weapons::TypicalMeleeWeapon</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A typical melee weapon. I want to do not typical melee weapons too.  <a href="classweapons_1_1_typical_melee_weapon.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
+Namespaces</h2></td></tr>
+<tr class="memitem:namespaceweapons"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceweapons.html">weapons</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/_typical_melee_weapon_8h_source.html b/doxy/html/_typical_melee_weapon_8h_source.html
new file mode 100644
index 0000000000000000000000000000000000000000..155611548bf4ab09ce2d8d9c1ac0d870813b8f25
--- /dev/null
+++ b/doxy/html/_typical_melee_weapon_8h_source.html
@@ -0,0 +1,120 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: C:/Users/kosmx/Documents/GitHub/2d-game/TypicalMeleeWeapon.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="headertitle">
+<div class="title">C:/Users/kosmx/Documents/GitHub/2d-game/TypicalMeleeWeapon.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="_typical_melee_weapon_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_melee_weapon_8h.html">MeleeWeapon.h</a>&quot;</span></div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespaceweapons.html">weapons</a> {</div>
+<div class="line"><a name="l00007"></a><span class="lineno"><a class="line" href="classweapons_1_1_typical_melee_weapon.html">    7</a></span>&#160;    <span class="keyword">class </span><a class="code" href="classweapons_1_1_typical_melee_weapon.html">TypicalMeleeWeapon</a> :</div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;        <span class="keyword">public</span> <a class="code" href="classweapons_1_1_melee_weapon.html">MeleeWeapon</a></div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;    {</div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;    <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00011"></a><span class="lineno"><a class="line" href="classweapons_1_1_typical_melee_weapon.html#a1eed0cf1fc89f495ccad84dd4acac0eb">   11</a></span>&#160;        <span class="keyword">static</span> <a class="code" href="classweapons_1_1_typical_melee_weapon.html">TypicalMeleeWeapon</a> <a class="code" href="classweapons_1_1_typical_melee_weapon.html#a1eed0cf1fc89f495ccad84dd4acac0eb">sword</a>;</div>
+<div class="line"><a name="l00012"></a><span class="lineno"><a class="line" href="classweapons_1_1_typical_melee_weapon.html#ae623cc428bd32ef113d48d6ca15cf4c2">   12</a></span>&#160;        <span class="keyword">static</span> <a class="code" href="classweapons_1_1_typical_melee_weapon.html">TypicalMeleeWeapon</a> <a class="code" href="classweapons_1_1_typical_melee_weapon.html#ae623cc428bd32ef113d48d6ca15cf4c2">longSword</a>;</div>
+<div class="line"><a name="l00013"></a><span class="lineno"><a class="line" href="classweapons_1_1_typical_melee_weapon.html#a1988a389241e423445c7b0f6ff2ed23f">   13</a></span>&#160;        <span class="keyword">static</span> <a class="code" href="classweapons_1_1_typical_melee_weapon.html">TypicalMeleeWeapon</a> <a class="code" href="classweapons_1_1_typical_melee_weapon.html#a1988a389241e423445c7b0f6ff2ed23f">spoon</a>;</div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160; </div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;    <span class="keyword">protected</span>:</div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;        <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a> <a class="code" href="classweapons_1_1_typical_melee_weapon.html#ab60f5d99ae206d9064381b0c70b9a7a2">getHitBoxSize</a>() <span class="keyword">const override</span>;</div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;        <span class="keywordtype">bool</span> <a class="code" href="classweapons_1_1_typical_melee_weapon.html#a00287ced5e67a7f91423596fac46606b">damage</a>(<span class="keywordtype">int</span> <a class="code" href="classweapons_1_1_typical_melee_weapon.html#a00287ced5e67a7f91423596fac46606b">damage</a>, <a class="code" href="classentities_1_1_entity.html">Entity</a>&amp; attacker) <span class="keyword">override</span>;</div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;        </div>
+<div class="line"><a name="l00019"></a><span class="lineno"><a class="line" href="classweapons_1_1_typical_melee_weapon.html#a7822572a76104d2cd2d0a21cdfa754d7">   19</a></span>&#160;        <span class="keywordtype">float</span> <a class="code" href="classweapons_1_1_typical_melee_weapon.html#a7822572a76104d2cd2d0a21cdfa754d7">maxRange</a>;</div>
+<div class="line"><a name="l00020"></a><span class="lineno"><a class="line" href="classweapons_1_1_typical_melee_weapon.html#af33a1ff938b8068aaab0bd0ac943ca83">   20</a></span>&#160;        <span class="keywordtype">float</span> <a class="code" href="classweapons_1_1_typical_melee_weapon.html#af33a1ff938b8068aaab0bd0ac943ca83">attackOffset</a>;</div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;        std::function&lt;bool(std::shared_ptr&lt;Entity&gt;, std::shared_ptr&lt;Entity&gt;)&gt; <a class="code" href="classweapons_1_1_typical_melee_weapon.html#ad367f50efc891a92b0f22f2404f39c5e">getPredicator</a>(<span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; direction) <span class="keyword">override</span>;</div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160; </div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;        <span class="keywordtype">float</span> <a class="code" href="classweapons_1_1_typical_melee_weapon.html#a74cb37d45c599296e443858b73cd1d97">getHitOffset</a>() <span class="keyword">const override</span>;</div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;        </div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;    <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;        <a class="code" href="classweapons_1_1_typical_melee_weapon.html#a939cbdc05adab9adf58301cce00e3f8b">TypicalMeleeWeapon</a>(<a class="code" href="classrender_1_1_i_texture.html">render::ITexture</a>&amp; text, <span class="keyword">const</span> std::string&amp; <a class="code" href="classweapons_1_1_weapon.html#a3dab7574419aed48f2a0f2d54cfcd825">name</a>, <span class="keywordtype">float</span> <a class="code" href="classweapons_1_1_weapon.html#aa3d78dae766eee8279326026dbb46f1f">cooldownTime</a>, <span class="keywordtype">int</span> <a class="code" href="classweapons_1_1_typical_melee_weapon.html#a00287ced5e67a7f91423596fac46606b">damage</a>, <span class="keywordtype">float</span> range, <span class="keywordtype">float</span> hitOffset = .5f, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; <a class="code" href="classentities_1_1_entity.html#a04f9c2febe8d435138a07eb2f48ba96b">pos</a> = { 0, 0 });</div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;    };</div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;}</div>
+</div><!-- fragment --></div><!-- contents -->
+<div class="ttc" id="astructolc_1_1v2d__generic_html"><div class="ttname"><a href="structolc_1_1v2d__generic.html">olc::v2d_generic&lt; float &gt;</a></div></div>
+<div class="ttc" id="aclassentities_1_1_entity_html_a04f9c2febe8d435138a07eb2f48ba96b"><div class="ttname"><a href="classentities_1_1_entity.html#a04f9c2febe8d435138a07eb2f48ba96b">entities::Entity::pos</a></div><div class="ttdeci">olc::vf2d pos</div><div class="ttdoc">it's position</div><div class="ttdef"><b>Definition:</b> <a href="_entity_8h_source.html#l00022">Entity.h:22</a></div></div>
+<div class="ttc" id="aclassweapons_1_1_typical_melee_weapon_html_ab60f5d99ae206d9064381b0c70b9a7a2"><div class="ttname"><a href="classweapons_1_1_typical_melee_weapon.html#ab60f5d99ae206d9064381b0c70b9a7a2">weapons::TypicalMeleeWeapon::getHitBoxSize</a></div><div class="ttdeci">olc::vf2d getHitBoxSize() const override</div><div class="ttdoc">half hitbox size</div><div class="ttdef"><b>Definition:</b> <a href="_typical_melee_weapon_8cpp_source.html#l00006">TypicalMeleeWeapon.cpp:6</a></div></div>
+<div class="ttc" id="aclassweapons_1_1_typical_melee_weapon_html_a00287ced5e67a7f91423596fac46606b"><div class="ttname"><a href="classweapons_1_1_typical_melee_weapon.html#a00287ced5e67a7f91423596fac46606b">weapons::TypicalMeleeWeapon::damage</a></div><div class="ttdeci">bool damage(int damage, Entity &amp;attacker) override</div><div class="ttdoc">something damage this</div><div class="ttdef"><b>Definition:</b> <a href="_typical_melee_weapon_8cpp_source.html#l00010">TypicalMeleeWeapon.cpp:10</a></div></div>
+<div class="ttc" id="aclassweapons_1_1_typical_melee_weapon_html_a1988a389241e423445c7b0f6ff2ed23f"><div class="ttname"><a href="classweapons_1_1_typical_melee_weapon.html#a1988a389241e423445c7b0f6ff2ed23f">weapons::TypicalMeleeWeapon::spoon</a></div><div class="ttdeci">static TypicalMeleeWeapon spoon</div><div class="ttdef"><b>Definition:</b> <a href="_typical_melee_weapon_8h_source.html#l00013">TypicalMeleeWeapon.h:13</a></div></div>
+<div class="ttc" id="aclassweapons_1_1_typical_melee_weapon_html_af33a1ff938b8068aaab0bd0ac943ca83"><div class="ttname"><a href="classweapons_1_1_typical_melee_weapon.html#af33a1ff938b8068aaab0bd0ac943ca83">weapons::TypicalMeleeWeapon::attackOffset</a></div><div class="ttdeci">float attackOffset</div><div class="ttdef"><b>Definition:</b> <a href="_typical_melee_weapon_8h_source.html#l00020">TypicalMeleeWeapon.h:20</a></div></div>
+<div class="ttc" id="aclassweapons_1_1_typical_melee_weapon_html_ae623cc428bd32ef113d48d6ca15cf4c2"><div class="ttname"><a href="classweapons_1_1_typical_melee_weapon.html#ae623cc428bd32ef113d48d6ca15cf4c2">weapons::TypicalMeleeWeapon::longSword</a></div><div class="ttdeci">static TypicalMeleeWeapon longSword</div><div class="ttdef"><b>Definition:</b> <a href="_typical_melee_weapon_8h_source.html#l00012">TypicalMeleeWeapon.h:12</a></div></div>
+<div class="ttc" id="aclassweapons_1_1_weapon_html_a3dab7574419aed48f2a0f2d54cfcd825"><div class="ttname"><a href="classweapons_1_1_weapon.html#a3dab7574419aed48f2a0f2d54cfcd825">weapons::Weapon::name</a></div><div class="ttdeci">std::string name</div><div class="ttdef"><b>Definition:</b> <a href="_weapon_8h_source.html#l00020">Weapon.h:20</a></div></div>
+<div class="ttc" id="aclassweapons_1_1_typical_melee_weapon_html_a939cbdc05adab9adf58301cce00e3f8b"><div class="ttname"><a href="classweapons_1_1_typical_melee_weapon.html#a939cbdc05adab9adf58301cce00e3f8b">weapons::TypicalMeleeWeapon::TypicalMeleeWeapon</a></div><div class="ttdeci">TypicalMeleeWeapon(render::ITexture &amp;text, const std::string &amp;name, float cooldownTime, int damage, float range, float hitOffset=.5f, const olc::vf2d &amp;pos={ 0, 0 })</div><div class="ttdef"><b>Definition:</b> <a href="_typical_melee_weapon_8cpp_source.html#l00030">TypicalMeleeWeapon.cpp:30</a></div></div>
+<div class="ttc" id="anamespaceweapons_html"><div class="ttname"><a href="namespaceweapons.html">weapons</a></div><div class="ttdef"><b>Definition:</b> <a href="_character_entity_8h_source.html#l00004">CharacterEntity.h:5</a></div></div>
+<div class="ttc" id="aclassweapons_1_1_weapon_html_aa3d78dae766eee8279326026dbb46f1f"><div class="ttname"><a href="classweapons_1_1_weapon.html#aa3d78dae766eee8279326026dbb46f1f">weapons::Weapon::cooldownTime</a></div><div class="ttdeci">float cooldownTime</div><div class="ttdef"><b>Definition:</b> <a href="_weapon_8h_source.html#l00018">Weapon.h:18</a></div></div>
+<div class="ttc" id="aclassentities_1_1_entity_html"><div class="ttname"><a href="classentities_1_1_entity.html">entities::Entity</a></div><div class="ttdoc">Every object, what can be on the map.</div><div class="ttdef"><b>Definition:</b> <a href="_entity_8h_source.html#l00016">Entity.h:17</a></div></div>
+<div class="ttc" id="aclassrender_1_1_i_texture_html"><div class="ttname"><a href="classrender_1_1_i_texture.html">render::ITexture</a></div><div class="ttdoc">Every texture, what can render an entity.</div><div class="ttdef"><b>Definition:</b> <a href="_i_texture_8h_source.html#l00015">ITexture.h:16</a></div></div>
+<div class="ttc" id="aclassweapons_1_1_typical_melee_weapon_html"><div class="ttname"><a href="classweapons_1_1_typical_melee_weapon.html">weapons::TypicalMeleeWeapon</a></div><div class="ttdoc">A typical melee weapon. I want to do not typical melee weapons too.</div><div class="ttdef"><b>Definition:</b> <a href="_typical_melee_weapon_8h_source.html#l00007">TypicalMeleeWeapon.h:9</a></div></div>
+<div class="ttc" id="aclassweapons_1_1_typical_melee_weapon_html_a7822572a76104d2cd2d0a21cdfa754d7"><div class="ttname"><a href="classweapons_1_1_typical_melee_weapon.html#a7822572a76104d2cd2d0a21cdfa754d7">weapons::TypicalMeleeWeapon::maxRange</a></div><div class="ttdeci">float maxRange</div><div class="ttdef"><b>Definition:</b> <a href="_typical_melee_weapon_8h_source.html#l00019">TypicalMeleeWeapon.h:19</a></div></div>
+<div class="ttc" id="aclassweapons_1_1_melee_weapon_html"><div class="ttname"><a href="classweapons_1_1_melee_weapon.html">weapons::MeleeWeapon</a></div><div class="ttdoc">A melee weapon, like a spoon.</div><div class="ttdef"><b>Definition:</b> <a href="_melee_weapon_8h_source.html#l00009">MeleeWeapon.h:11</a></div></div>
+<div class="ttc" id="aclassweapons_1_1_typical_melee_weapon_html_ad367f50efc891a92b0f22f2404f39c5e"><div class="ttname"><a href="classweapons_1_1_typical_melee_weapon.html#ad367f50efc891a92b0f22f2404f39c5e">weapons::TypicalMeleeWeapon::getPredicator</a></div><div class="ttdeci">std::function&lt; bool(std::shared_ptr&lt; Entity &gt;, std::shared_ptr&lt; Entity &gt;)&gt; getPredicator(const olc::vf2d &amp;direction) override</div><div class="ttdoc">The predicate function getter for the damageIf.</div><div class="ttdef"><b>Definition:</b> <a href="_typical_melee_weapon_8cpp_source.html#l00014">TypicalMeleeWeapon.cpp:14</a></div></div>
+<div class="ttc" id="aclassweapons_1_1_typical_melee_weapon_html_a1eed0cf1fc89f495ccad84dd4acac0eb"><div class="ttname"><a href="classweapons_1_1_typical_melee_weapon.html#a1eed0cf1fc89f495ccad84dd4acac0eb">weapons::TypicalMeleeWeapon::sword</a></div><div class="ttdeci">static TypicalMeleeWeapon sword</div><div class="ttdef"><b>Definition:</b> <a href="_typical_melee_weapon_8h_source.html#l00011">TypicalMeleeWeapon.h:11</a></div></div>
+<div class="ttc" id="a_melee_weapon_8h_html"><div class="ttname"><a href="_melee_weapon_8h.html">MeleeWeapon.h</a></div></div>
+<div class="ttc" id="aclassweapons_1_1_typical_melee_weapon_html_a74cb37d45c599296e443858b73cd1d97"><div class="ttname"><a href="classweapons_1_1_typical_melee_weapon.html#a74cb37d45c599296e443858b73cd1d97">weapons::TypicalMeleeWeapon::getHitOffset</a></div><div class="ttdeci">float getHitOffset() const override</div><div class="ttdoc">the hit's center distance from the user</div><div class="ttdef"><b>Definition:</b> <a href="_typical_melee_weapon_8cpp_source.html#l00025">TypicalMeleeWeapon.cpp:25</a></div></div>
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/_wall_entity_8cpp.html b/doxy/html/_wall_entity_8cpp.html
new file mode 100644
index 0000000000000000000000000000000000000000..50d3e84fb92163ec7e431e48c13b375df9b9774b
--- /dev/null
+++ b/doxy/html/_wall_entity_8cpp.html
@@ -0,0 +1,87 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: C:/Users/kosmx/Documents/GitHub/2d-game/WallEntity.cpp File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#namespaces">Namespaces</a>  </div>
+  <div class="headertitle">
+<div class="title">C:/Users/kosmx/Documents/GitHub/2d-game/WallEntity.cpp File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &quot;<a class="el" href="_wall_entity_8h_source.html">WallEntity.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="main_game_8h_source.html">mainGame.h</a>&quot;</code><br />
+</div>
+<p><a href="_wall_entity_8cpp_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
+Namespaces</h2></td></tr>
+<tr class="memitem:namespaceentities"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceentities.html">entities</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/_wall_entity_8cpp_source.html b/doxy/html/_wall_entity_8cpp_source.html
new file mode 100644
index 0000000000000000000000000000000000000000..ce450942fc0ed4e76a0d00c9bedf441daf79d86a
--- /dev/null
+++ b/doxy/html/_wall_entity_8cpp_source.html
@@ -0,0 +1,148 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: C:/Users/kosmx/Documents/GitHub/2d-game/WallEntity.cpp Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="headertitle">
+<div class="title">C:/Users/kosmx/Documents/GitHub/2d-game/WallEntity.cpp</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="_wall_entity_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_wall_entity_8h.html">WallEntity.h</a>&quot;</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160; </div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="main_game_8h.html">mainGame.h</a>&quot;</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160; </div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="keyword">using namespace </span><a class="code" href="namespaceolc.html">olc</a>;</div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160; </div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespaceentities.html">entities</a> {</div>
+<div class="line"><a name="l00008"></a><span class="lineno"><a class="line" href="classentities_1_1_wall_entity.html#a8d65d65453803e731cd9aa112d1f0447">    8</a></span>&#160;    <span class="keywordtype">void</span> WallEntity::updateNeighbours(<a class="code" href="class_game_client.html">GameClient</a>&amp; client)</div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;    {</div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;        this-&gt;neighbourID = 0;</div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;        <span class="keywordflow">for</span> (<span class="keyword">auto</span>&amp; entity : client.<a class="code" href="class_game_client.html#a6984da0365fd19c81dbc8907b598bf49">getEntities</a>()) {</div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;            <span class="keywordflow">if</span> (std::dynamic_pointer_cast&lt;WallEntity&gt;(entity) != <span class="keyword">nullptr</span>) {</div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;                <span class="keyword">auto</span>&amp; wallEntity = <span class="keyword">dynamic_cast&lt;</span><a class="code" href="classentities_1_1_wall_entity.html">WallEntity</a>&amp;<span class="keyword">&gt;</span>(*entity);</div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;                <a class="code" href="structolc_1_1v2d__generic.html">vi2d</a> distance = entity-&gt;getPos() - this-&gt;getPos();</div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;                <span class="keywordflow">if</span> (abs(distance.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a>) == 1 &amp;&amp; abs(distance.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a>) == 0) {</div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;                    neighbourID |= distance.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a> != 1 ? 0b0100 : 0b1000;</div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;                }</div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;                <span class="keywordflow">else</span> <span class="keywordflow">if</span> (abs(distance.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a>) == 0 &amp;&amp; abs(distance.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a>) == 1) {</div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;                    neighbourID |= distance.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a> != 1 ? 0b01 : 0b10;</div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;                }</div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;            }</div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;        }</div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;    }</div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160; </div>
+<div class="line"><a name="l00025"></a><span class="lineno"><a class="line" href="classentities_1_1_wall_entity.html#a4b6c55275f06a30dac07c2dc5452e602">   25</a></span>&#160;    <a class="code" href="classrender_1_1_i_texture.html">render::ITexture</a>&amp; WallEntity::getTexture()</div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;    {</div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;        <span class="keywordflow">return</span> this-&gt;usedTexture;</div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;    }</div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160; </div>
+<div class="line"><a name="l00030"></a><span class="lineno"><a class="line" href="classentities_1_1_wall_entity.html#afd4863a311190a59cdf7574798ac3f2d">   30</a></span>&#160;    <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a> WallEntity::getHitBoxSize()<span class="keyword"> const</span></div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;<span class="keyword">    </span>{</div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a>(0.5, 0.5);</div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;    }</div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160; </div>
+<div class="line"><a name="l00035"></a><span class="lineno"><a class="line" href="classentities_1_1_wall_entity.html#ad66ed8002d8082035bd3b7df07ff45b5">   35</a></span>&#160;    <span class="keywordtype">void</span> WallEntity::init(<a class="code" href="class_game_client.html">GameClient</a>&amp; client)</div>
+<div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;    {</div>
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;        this-&gt;updateNeighbours(client);</div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;    }</div>
+<div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160; </div>
+<div class="line"><a name="l00040"></a><span class="lineno"><a class="line" href="classentities_1_1_wall_entity.html#a109600cce4cd0514d320c14b4f8f4813">   40</a></span>&#160;    WallEntity::WallEntity(<span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; pos, <a class="code" href="classrender_1_1_wall_texture.html">render::WallTexture</a>&amp; texture)</div>
+<div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;        : <a class="code" href="classentities_1_1_entity.html">Entity</a>(pos), usedTexture(texture), neighbourID(0) {}</div>
+<div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160; </div>
+<div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="classentities_1_1_wall_entity.html#a0cd908003450361a7c08d2c7c83d21dc">   43</a></span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="classentities_1_1_wall_entity.html#a0cd908003450361a7c08d2c7c83d21dc">WallEntity::damage</a>(<span class="keywordtype">int</span> damage, <a class="code" href="classentities_1_1_entity.html">Entity</a>&amp; attacker)</div>
+<div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;    {</div>
+<div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;        <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;    }</div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160; </div>
+<div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="classentities_1_1_wall_entity.html#af799f9675cdf4acadfcf9d9616d36e1b">   48</a></span>&#160;    <span class="keywordtype">char</span> <a class="code" href="classentities_1_1_wall_entity.html#af799f9675cdf4acadfcf9d9616d36e1b">WallEntity::getNeighbourID</a>()<span class="keyword"> const</span></div>
+<div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;<span class="keyword">    </span>{</div>
+<div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;        <span class="keywordflow">return</span> neighbourID;</div>
+<div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;    }</div>
+<div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160; </div>
+<div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;    <a class="code" href="classrender_1_1_wall_texture.html">render::WallTexture</a> <a class="code" href="classentities_1_1_wall_entity.html#a73c32014a207a92fc1a837f0dda83eb8">WallEntity::simpleWallTexture</a>(<span class="stringliteral">&quot;Objects/Wall.png&quot;</span>, { 0, 3 });</div>
+<div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;    <a class="code" href="classrender_1_1_wall_texture.html">render::WallTexture</a> <a class="code" href="classentities_1_1_wall_entity.html#a3006e4856a24086bdd28b7b353b159ff">WallEntity::simpleGreenWallTexture</a>(<span class="stringliteral">&quot;Objects/Wall.png&quot;</span>, { 14, 30 });</div>
+<div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;}</div>
+</div><!-- fragment --></div><!-- contents -->
+<div class="ttc" id="aclassentities_1_1_wall_entity_html"><div class="ttname"><a href="classentities_1_1_wall_entity.html">entities::WallEntity</a></div><div class="ttdoc">Just a stupid wall, it doesn't do much, can't be killed...</div><div class="ttdef"><b>Definition:</b> <a href="_wall_entity_8h_source.html#l00011">WallEntity.h:12</a></div></div>
+<div class="ttc" id="astructolc_1_1v2d__generic_html"><div class="ttname"><a href="structolc_1_1v2d__generic.html">olc::v2d_generic&lt; int32_t &gt;</a></div></div>
+<div class="ttc" id="astructolc_1_1v2d__generic_html_a5a9c94207b2163c69a39190c320fcbdf"><div class="ttname"><a href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">olc::v2d_generic::y</a></div><div class="ttdeci">T y</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00585">olcPixelGameEngine.h:585</a></div></div>
+<div class="ttc" id="anamespaceolc_html_adb87819740ea9625f84c821fffb16429"><div class="ttname"><a href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a></div><div class="ttdeci">v2d_generic&lt; float &gt; vf2d</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00646">olcPixelGameEngine.h:646</a></div></div>
+<div class="ttc" id="aclassentities_1_1_wall_entity_html_a0cd908003450361a7c08d2c7c83d21dc"><div class="ttname"><a href="classentities_1_1_wall_entity.html#a0cd908003450361a7c08d2c7c83d21dc">entities::WallEntity::damage</a></div><div class="ttdeci">bool damage(int damage, Entity &amp;attacker) override</div><div class="ttdoc">something damage this</div><div class="ttdef"><b>Definition:</b> <a href="_wall_entity_8cpp_source.html#l00043">WallEntity.cpp:43</a></div></div>
+<div class="ttc" id="astructolc_1_1v2d__generic_html_a2c6ce2738720f5e098c7d0bf17f33807"><div class="ttname"><a href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">olc::v2d_generic::x</a></div><div class="ttdeci">T x</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00584">olcPixelGameEngine.h:584</a></div></div>
+<div class="ttc" id="anamespaceolc_html"><div class="ttname"><a href="namespaceolc.html">olc</a></div><div class="ttdef"><b>Definition:</b> <a href="olc_p_g_e_x___transformed_view_8h_source.html#l00077">olcPGEX_TransformedView.h:78</a></div></div>
+<div class="ttc" id="aclass_game_client_html_a6984da0365fd19c81dbc8907b598bf49"><div class="ttname"><a href="class_game_client.html#a6984da0365fd19c81dbc8907b598bf49">GameClient::getEntities</a></div><div class="ttdeci">DynamicArray&lt; std::shared_ptr&lt; entities::Entity &gt; &gt; &amp; getEntities()</div><div class="ttdef"><b>Definition:</b> <a href="main_game_8cpp_source.html#l00029">mainGame.cpp:29</a></div></div>
+<div class="ttc" id="aclass_game_client_html"><div class="ttname"><a href="class_game_client.html">GameClient</a></div><div class="ttdoc">The game main class itself. manages the entities, adjust the screen...</div><div class="ttdef"><b>Definition:</b> <a href="main_game_8h_source.html#l00011">mainGame.h:13</a></div></div>
+<div class="ttc" id="a_wall_entity_8h_html"><div class="ttname"><a href="_wall_entity_8h.html">WallEntity.h</a></div></div>
+<div class="ttc" id="aclassentities_1_1_entity_html"><div class="ttname"><a href="classentities_1_1_entity.html">entities::Entity</a></div><div class="ttdoc">Every object, what can be on the map.</div><div class="ttdef"><b>Definition:</b> <a href="_entity_8h_source.html#l00016">Entity.h:17</a></div></div>
+<div class="ttc" id="aclassentities_1_1_wall_entity_html_a3006e4856a24086bdd28b7b353b159ff"><div class="ttname"><a href="classentities_1_1_wall_entity.html#a3006e4856a24086bdd28b7b353b159ff">entities::WallEntity::simpleGreenWallTexture</a></div><div class="ttdeci">static render::WallTexture simpleGreenWallTexture</div><div class="ttdef"><b>Definition:</b> <a href="_wall_entity_8h_source.html#l00015">WallEntity.h:15</a></div></div>
+<div class="ttc" id="aclassentities_1_1_wall_entity_html_a73c32014a207a92fc1a837f0dda83eb8"><div class="ttname"><a href="classentities_1_1_wall_entity.html#a73c32014a207a92fc1a837f0dda83eb8">entities::WallEntity::simpleWallTexture</a></div><div class="ttdeci">static render::WallTexture simpleWallTexture</div><div class="ttdef"><b>Definition:</b> <a href="_wall_entity_8h_source.html#l00014">WallEntity.h:14</a></div></div>
+<div class="ttc" id="aclassrender_1_1_i_texture_html"><div class="ttname"><a href="classrender_1_1_i_texture.html">render::ITexture</a></div><div class="ttdoc">Every texture, what can render an entity.</div><div class="ttdef"><b>Definition:</b> <a href="_i_texture_8h_source.html#l00015">ITexture.h:16</a></div></div>
+<div class="ttc" id="aclassentities_1_1_wall_entity_html_af799f9675cdf4acadfcf9d9616d36e1b"><div class="ttname"><a href="classentities_1_1_wall_entity.html#af799f9675cdf4acadfcf9d9616d36e1b">entities::WallEntity::getNeighbourID</a></div><div class="ttdeci">virtual char getNeighbourID() const</div><div class="ttdoc">Accessor for neighbourID.</div><div class="ttdef"><b>Definition:</b> <a href="_wall_entity_8cpp_source.html#l00048">WallEntity.cpp:48</a></div></div>
+<div class="ttc" id="anamespaceentities_html"><div class="ttname"><a href="namespaceentities.html">entities</a></div><div class="ttdef"><b>Definition:</b> <a href="_character_entity_8cpp_source.html#l00005">CharacterEntity.cpp:5</a></div></div>
+<div class="ttc" id="amain_game_8h_html"><div class="ttname"><a href="main_game_8h.html">mainGame.h</a></div></div>
+<div class="ttc" id="aclassrender_1_1_wall_texture_html"><div class="ttname"><a href="classrender_1_1_wall_texture.html">render::WallTexture</a></div><div class="ttdoc">Texture to render walls, with 16 possible states.</div><div class="ttdef"><b>Definition:</b> <a href="_wall_texture_8h_source.html#l00011">WallTexture.h:13</a></div></div>
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/_wall_entity_8h.html b/doxy/html/_wall_entity_8h.html
new file mode 100644
index 0000000000000000000000000000000000000000..4835feb67413ddd3d2f40c9f91c6158e917adba7
--- /dev/null
+++ b/doxy/html/_wall_entity_8h.html
@@ -0,0 +1,94 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: C:/Users/kosmx/Documents/GitHub/2d-game/WallEntity.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#nested-classes">Classes</a> &#124;
+<a href="#namespaces">Namespaces</a>  </div>
+  <div class="headertitle">
+<div class="title">C:/Users/kosmx/Documents/GitHub/2d-game/WallEntity.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &quot;<a class="el" href="_entity_8h_source.html">Entity.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="_wall_texture_8h_source.html">WallTexture.h</a>&quot;</code><br />
+</div>
+<p><a href="_wall_entity_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_wall_entity.html">entities::WallEntity</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Just a stupid wall, it doesn't do much, can't be killed...  <a href="classentities_1_1_wall_entity.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
+Namespaces</h2></td></tr>
+<tr class="memitem:namespaceentities"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceentities.html">entities</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/_wall_entity_8h_source.html b/doxy/html/_wall_entity_8h_source.html
new file mode 100644
index 0000000000000000000000000000000000000000..6e4302c6b0aa3205fe2049a236e58581c8514041
--- /dev/null
+++ b/doxy/html/_wall_entity_8h_source.html
@@ -0,0 +1,127 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: C:/Users/kosmx/Documents/GitHub/2d-game/WallEntity.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="headertitle">
+<div class="title">C:/Users/kosmx/Documents/GitHub/2d-game/WallEntity.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="_wall_entity_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160; </div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_entity_8h.html">Entity.h</a>&quot;</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160; </div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_wall_texture_8h.html">WallTexture.h</a>&quot;</span></div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160; </div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespaceentities.html">entities</a> {</div>
+<div class="line"><a name="l00011"></a><span class="lineno"><a class="line" href="classentities_1_1_wall_entity.html">   11</a></span>&#160;    <span class="keyword">class </span><a class="code" href="classentities_1_1_wall_entity.html">WallEntity</a> : <span class="keyword">public</span> <a class="code" href="classentities_1_1_entity.html">Entity</a></div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;    {</div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;    <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00014"></a><span class="lineno"><a class="line" href="classentities_1_1_wall_entity.html#a73c32014a207a92fc1a837f0dda83eb8">   14</a></span>&#160;        <span class="keyword">static</span> <a class="code" href="classrender_1_1_wall_texture.html">render::WallTexture</a> <a class="code" href="classentities_1_1_wall_entity.html#a73c32014a207a92fc1a837f0dda83eb8">simpleWallTexture</a>;</div>
+<div class="line"><a name="l00015"></a><span class="lineno"><a class="line" href="classentities_1_1_wall_entity.html#a3006e4856a24086bdd28b7b353b159ff">   15</a></span>&#160;        <span class="keyword">static</span> <a class="code" href="classrender_1_1_wall_texture.html">render::WallTexture</a> <a class="code" href="classentities_1_1_wall_entity.html#a3006e4856a24086bdd28b7b353b159ff">simpleGreenWallTexture</a>;</div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;        </div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;    <span class="keyword">private</span>:</div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;        <span class="keywordtype">char</span> neighbourID;</div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;        <a class="code" href="classrender_1_1_wall_texture.html">render::WallTexture</a>&amp; usedTexture;</div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160; </div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;    <span class="keyword">protected</span>:</div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;        <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classentities_1_1_wall_entity.html#a8d65d65453803e731cd9aa112d1f0447">updateNeighbours</a>(<a class="code" href="class_game_client.html">GameClient</a>&amp; client);</div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;        <a class="code" href="classrender_1_1_i_texture.html">render::ITexture</a>&amp; <a class="code" href="classentities_1_1_wall_entity.html#a4b6c55275f06a30dac07c2dc5452e602">getTexture</a>() <span class="keyword">override</span>;</div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;        <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a> <a class="code" href="classentities_1_1_wall_entity.html#afd4863a311190a59cdf7574798ac3f2d">getHitBoxSize</a>() <span class="keyword">const override</span>;</div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;    <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160; </div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;        <span class="keyword">explicit</span> <a class="code" href="classentities_1_1_wall_entity.html#a109600cce4cd0514d320c14b4f8f4813">WallEntity</a>(<span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; <a class="code" href="classentities_1_1_entity.html#a04f9c2febe8d435138a07eb2f48ba96b">pos</a>, <a class="code" href="classrender_1_1_wall_texture.html">render::WallTexture</a>&amp; texture = <a class="code" href="classentities_1_1_wall_entity.html#a73c32014a207a92fc1a837f0dda83eb8">simpleWallTexture</a>);</div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;        <span class="keywordtype">void</span> <a class="code" href="classentities_1_1_wall_entity.html#ad66ed8002d8082035bd3b7df07ff45b5">init</a>(<a class="code" href="class_game_client.html">GameClient</a>&amp; client) <span class="keyword">override</span>;</div>
+<div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160; </div>
+<div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;        <span class="keywordtype">bool</span> <a class="code" href="classentities_1_1_wall_entity.html#a0cd908003450361a7c08d2c7c83d21dc">damage</a>(<span class="keywordtype">int</span> <a class="code" href="classentities_1_1_wall_entity.html#a0cd908003450361a7c08d2c7c83d21dc">damage</a>, <a class="code" href="classentities_1_1_entity.html">Entity</a>&amp; attacker) <span class="keyword">override</span>;</div>
+<div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160; </div>
+<div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;        <span class="keyword">virtual</span> <span class="keywordtype">char</span> <a class="code" href="classentities_1_1_wall_entity.html#af799f9675cdf4acadfcf9d9616d36e1b">getNeighbourID</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160; </div>
+<div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;        <span class="comment">//This is a wall entity after all.</span></div>
+<div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;    };</div>
+<div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;}</div>
+</div><!-- fragment --></div><!-- contents -->
+<div class="ttc" id="a_wall_texture_8h_html"><div class="ttname"><a href="_wall_texture_8h.html">WallTexture.h</a></div></div>
+<div class="ttc" id="aclassentities_1_1_wall_entity_html"><div class="ttname"><a href="classentities_1_1_wall_entity.html">entities::WallEntity</a></div><div class="ttdoc">Just a stupid wall, it doesn't do much, can't be killed...</div><div class="ttdef"><b>Definition:</b> <a href="_wall_entity_8h_source.html#l00011">WallEntity.h:12</a></div></div>
+<div class="ttc" id="astructolc_1_1v2d__generic_html"><div class="ttname"><a href="structolc_1_1v2d__generic.html">olc::v2d_generic&lt; float &gt;</a></div></div>
+<div class="ttc" id="aclassentities_1_1_entity_html_a04f9c2febe8d435138a07eb2f48ba96b"><div class="ttname"><a href="classentities_1_1_entity.html#a04f9c2febe8d435138a07eb2f48ba96b">entities::Entity::pos</a></div><div class="ttdeci">olc::vf2d pos</div><div class="ttdoc">it's position</div><div class="ttdef"><b>Definition:</b> <a href="_entity_8h_source.html#l00022">Entity.h:22</a></div></div>
+<div class="ttc" id="aclassentities_1_1_wall_entity_html_ad66ed8002d8082035bd3b7df07ff45b5"><div class="ttname"><a href="classentities_1_1_wall_entity.html#ad66ed8002d8082035bd3b7df07ff45b5">entities::WallEntity::init</a></div><div class="ttdeci">void init(GameClient &amp;client) override</div><div class="ttdoc">Init, before tick, used to calculate neighbours.</div><div class="ttdef"><b>Definition:</b> <a href="_wall_entity_8cpp_source.html#l00035">WallEntity.cpp:35</a></div></div>
+<div class="ttc" id="aclassentities_1_1_wall_entity_html_a0cd908003450361a7c08d2c7c83d21dc"><div class="ttname"><a href="classentities_1_1_wall_entity.html#a0cd908003450361a7c08d2c7c83d21dc">entities::WallEntity::damage</a></div><div class="ttdeci">bool damage(int damage, Entity &amp;attacker) override</div><div class="ttdoc">something damage this</div><div class="ttdef"><b>Definition:</b> <a href="_wall_entity_8cpp_source.html#l00043">WallEntity.cpp:43</a></div></div>
+<div class="ttc" id="aclassentities_1_1_wall_entity_html_a8d65d65453803e731cd9aa112d1f0447"><div class="ttname"><a href="classentities_1_1_wall_entity.html#a8d65d65453803e731cd9aa112d1f0447">entities::WallEntity::updateNeighbours</a></div><div class="ttdeci">virtual void updateNeighbours(GameClient &amp;client)</div><div class="ttdoc">Calculate the neighbour id.</div><div class="ttdef"><b>Definition:</b> <a href="_wall_entity_8cpp_source.html#l00008">WallEntity.cpp:8</a></div></div>
+<div class="ttc" id="aclass_game_client_html"><div class="ttname"><a href="class_game_client.html">GameClient</a></div><div class="ttdoc">The game main class itself. manages the entities, adjust the screen...</div><div class="ttdef"><b>Definition:</b> <a href="main_game_8h_source.html#l00011">mainGame.h:13</a></div></div>
+<div class="ttc" id="aclassentities_1_1_entity_html"><div class="ttname"><a href="classentities_1_1_entity.html">entities::Entity</a></div><div class="ttdoc">Every object, what can be on the map.</div><div class="ttdef"><b>Definition:</b> <a href="_entity_8h_source.html#l00016">Entity.h:17</a></div></div>
+<div class="ttc" id="aclassentities_1_1_wall_entity_html_afd4863a311190a59cdf7574798ac3f2d"><div class="ttname"><a href="classentities_1_1_wall_entity.html#afd4863a311190a59cdf7574798ac3f2d">entities::WallEntity::getHitBoxSize</a></div><div class="ttdeci">olc::vf2d getHitBoxSize() const override</div><div class="ttdoc">half hitbox size</div><div class="ttdef"><b>Definition:</b> <a href="_wall_entity_8cpp_source.html#l00030">WallEntity.cpp:30</a></div></div>
+<div class="ttc" id="aclassentities_1_1_wall_entity_html_a3006e4856a24086bdd28b7b353b159ff"><div class="ttname"><a href="classentities_1_1_wall_entity.html#a3006e4856a24086bdd28b7b353b159ff">entities::WallEntity::simpleGreenWallTexture</a></div><div class="ttdeci">static render::WallTexture simpleGreenWallTexture</div><div class="ttdef"><b>Definition:</b> <a href="_wall_entity_8h_source.html#l00015">WallEntity.h:15</a></div></div>
+<div class="ttc" id="a_entity_8h_html"><div class="ttname"><a href="_entity_8h.html">Entity.h</a></div></div>
+<div class="ttc" id="aclassentities_1_1_wall_entity_html_a73c32014a207a92fc1a837f0dda83eb8"><div class="ttname"><a href="classentities_1_1_wall_entity.html#a73c32014a207a92fc1a837f0dda83eb8">entities::WallEntity::simpleWallTexture</a></div><div class="ttdeci">static render::WallTexture simpleWallTexture</div><div class="ttdef"><b>Definition:</b> <a href="_wall_entity_8h_source.html#l00014">WallEntity.h:14</a></div></div>
+<div class="ttc" id="aclassrender_1_1_i_texture_html"><div class="ttname"><a href="classrender_1_1_i_texture.html">render::ITexture</a></div><div class="ttdoc">Every texture, what can render an entity.</div><div class="ttdef"><b>Definition:</b> <a href="_i_texture_8h_source.html#l00015">ITexture.h:16</a></div></div>
+<div class="ttc" id="aclassentities_1_1_wall_entity_html_af799f9675cdf4acadfcf9d9616d36e1b"><div class="ttname"><a href="classentities_1_1_wall_entity.html#af799f9675cdf4acadfcf9d9616d36e1b">entities::WallEntity::getNeighbourID</a></div><div class="ttdeci">virtual char getNeighbourID() const</div><div class="ttdoc">Accessor for neighbourID.</div><div class="ttdef"><b>Definition:</b> <a href="_wall_entity_8cpp_source.html#l00048">WallEntity.cpp:48</a></div></div>
+<div class="ttc" id="anamespaceentities_html"><div class="ttname"><a href="namespaceentities.html">entities</a></div><div class="ttdef"><b>Definition:</b> <a href="_character_entity_8cpp_source.html#l00005">CharacterEntity.cpp:5</a></div></div>
+<div class="ttc" id="aclassentities_1_1_wall_entity_html_a4b6c55275f06a30dac07c2dc5452e602"><div class="ttname"><a href="classentities_1_1_wall_entity.html#a4b6c55275f06a30dac07c2dc5452e602">entities::WallEntity::getTexture</a></div><div class="ttdeci">render::ITexture &amp; getTexture() override</div><div class="ttdoc">the object's texture</div><div class="ttdef"><b>Definition:</b> <a href="_wall_entity_8cpp_source.html#l00025">WallEntity.cpp:25</a></div></div>
+<div class="ttc" id="aclassentities_1_1_wall_entity_html_a109600cce4cd0514d320c14b4f8f4813"><div class="ttname"><a href="classentities_1_1_wall_entity.html#a109600cce4cd0514d320c14b4f8f4813">entities::WallEntity::WallEntity</a></div><div class="ttdeci">WallEntity(const olc::vf2d &amp;pos, render::WallTexture &amp;texture=simpleWallTexture)</div><div class="ttdef"><b>Definition:</b> <a href="_wall_entity_8cpp_source.html#l00040">WallEntity.cpp:40</a></div></div>
+<div class="ttc" id="aclassrender_1_1_wall_texture_html"><div class="ttname"><a href="classrender_1_1_wall_texture.html">render::WallTexture</a></div><div class="ttdoc">Texture to render walls, with 16 possible states.</div><div class="ttdef"><b>Definition:</b> <a href="_wall_texture_8h_source.html#l00011">WallTexture.h:13</a></div></div>
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/_wall_texture_8cpp.html b/doxy/html/_wall_texture_8cpp.html
new file mode 100644
index 0000000000000000000000000000000000000000..de5fd8c4967eb96499a4bcfe4e52e3fefa2eeb67
--- /dev/null
+++ b/doxy/html/_wall_texture_8cpp.html
@@ -0,0 +1,88 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: C:/Users/kosmx/Documents/GitHub/2d-game/WallTexture.cpp File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#namespaces">Namespaces</a>  </div>
+  <div class="headertitle">
+<div class="title">C:/Users/kosmx/Documents/GitHub/2d-game/WallTexture.cpp File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &quot;<a class="el" href="_wall_texture_8h_source.html">WallTexture.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="_wall_entity_8h_source.html">WallEntity.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="_game_exception_8h_source.html">GameException.h</a>&quot;</code><br />
+</div>
+<p><a href="_wall_texture_8cpp_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
+Namespaces</h2></td></tr>
+<tr class="memitem:namespacerender"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacerender.html">render</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/_wall_texture_8cpp_source.html b/doxy/html/_wall_texture_8cpp_source.html
new file mode 100644
index 0000000000000000000000000000000000000000..b61162b7239b717f6e2cf144f2f1948ef7349924
--- /dev/null
+++ b/doxy/html/_wall_texture_8cpp_source.html
@@ -0,0 +1,128 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: C:/Users/kosmx/Documents/GitHub/2d-game/WallTexture.cpp Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="headertitle">
+<div class="title">C:/Users/kosmx/Documents/GitHub/2d-game/WallTexture.cpp</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="_wall_texture_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_wall_texture_8h.html">WallTexture.h</a>&quot;</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_wall_entity_8h.html">WallEntity.h</a>&quot;</span></div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_game_exception_8h.html">GameException.h</a>&quot;</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160; </div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="keyword">using namespace </span><a class="code" href="namespaceolc.html">olc</a>;</div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="keyword">using namespace </span><a class="code" href="namespaceentities.html">entities</a>;</div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160; </div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacerender.html">render</a></div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;{</div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160; </div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;    </div>
+<div class="line"><a name="l00012"></a><span class="lineno"><a class="line" href="classrender_1_1_wall_texture.html#af0420c11949bbc21421cc21765bd8920">   12</a></span>&#160;    WallTexture::WallTexture(<span class="keyword">const</span> std::string&amp; resName, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">vf2d</a>&amp; baseOffset, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">vf2d</a>&amp; size)</div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;        : sprite(resName), baseOffset(baseOffset * size), size(size) {}</div>
+<div class="line"><a name="l00014"></a><span class="lineno"><a class="line" href="classrender_1_1_wall_texture.html#a03239c7168e114906cb20f3d39815344">   14</a></span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classrender_1_1_wall_texture.html#a03239c7168e114906cb20f3d39815344">WallTexture::render</a>(<a class="code" href="classolc_1_1_transformed_view.html">olc::TransformedView</a>&amp; scene, <a class="code" href="classentities_1_1_entity.html">Entity</a>&amp; entity)</div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;    {</div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;        <span class="keywordflow">if</span>(<span class="keyword">dynamic_cast&lt;</span><a class="code" href="classentities_1_1_wall_entity.html">WallEntity</a>*<span class="keyword">&gt;</span>(&amp;entity) == <span class="keyword">nullptr</span>){</div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;            <span class="keywordflow">throw</span> <a class="code" href="class_game_exception.html">GameException</a>(<span class="stringliteral">&quot;Wall texture needs a wall entity&quot;</span>, entity);</div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;        }</div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;        <span class="keyword">auto</span>&amp; wallEntity = <span class="keyword">dynamic_cast&lt;</span><a class="code" href="classentities_1_1_wall_entity.html">WallEntity</a>&amp;<span class="keyword">&gt;</span>(entity);</div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;        <a class="code" href="structolc_1_1v2d__generic.html">vf2d</a> offset = this-&gt;baseOffset;</div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160; </div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;        <span class="comment">//I can&#39;t use index[] because that is not const function... WHY???</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;        offset += (<a class="code" href="classrender_1_1_wall_texture.html#a8246fdde3751baf778392ce6f4577a8d">offsetMap</a>.find(wallEntity.getNeighbourID())-&gt;second * this-&gt;size);</div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;        this-&gt;sprite.<a class="code" href="classrender_1_1_lazy_sprite.html#a1e0b32f06c67b96eed8da12747aa4f0a">renderCentered</a>(scene, wallEntity.getPos(), offset, size, wallEntity.getSize());</div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;    }</div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160; </div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160; </div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160; </div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160; </div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;    </div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;    <span class="comment">//Wall neighbour texture offset mapping</span></div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;    <span class="keyword">const</span> std::map&lt;byte, vi2d&gt; <a class="code" href="classrender_1_1_wall_texture.html#a8246fdde3751baf778392ce6f4577a8d">WallTexture::offsetMap</a> = {</div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;        {0b0000, <a class="code" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">vi2d</a>(1, 1) }, {0b0001, <a class="code" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">vi2d</a>(1, 1)}, {0b0010, <a class="code" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">vi2d</a>(0, 1)}, {0b0011, <a class="code" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">vi2d</a>(0, 1)},</div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;        {0b0100, <a class="code" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">vi2d</a>(1, 0) }, {0b0101, <a class="code" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">vi2d</a>(2, 2)}, {0b0110, <a class="code" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">vi2d</a>(2, 0)}, {0b0111, <a class="code" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">vi2d</a>(5, 1)},</div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;        {0b1000, <a class="code" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">vi2d</a>(1, 0) }, {0b1001, <a class="code" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">vi2d</a>(0, 2)}, {0b1010, <a class="code" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">vi2d</a>(0, 0)}, {0b1011, <a class="code" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">vi2d</a>(3, 1)},</div>
+<div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;        {0b1100, <a class="code" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">vi2d</a>(1, 0) }, {0b1101, <a class="code" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">vi2d</a>(4, 2)}, {0b1110, <a class="code" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">vi2d</a>(4, 0)}, {0b1111, <a class="code" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">vi2d</a>(4, 1)}</div>
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;    };</div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;}</div>
+</div><!-- fragment --></div><!-- contents -->
+<div class="ttc" id="a_wall_texture_8h_html"><div class="ttname"><a href="_wall_texture_8h.html">WallTexture.h</a></div></div>
+<div class="ttc" id="aclassentities_1_1_wall_entity_html"><div class="ttname"><a href="classentities_1_1_wall_entity.html">entities::WallEntity</a></div><div class="ttdoc">Just a stupid wall, it doesn't do much, can't be killed...</div><div class="ttdef"><b>Definition:</b> <a href="_wall_entity_8h_source.html#l00011">WallEntity.h:12</a></div></div>
+<div class="ttc" id="astructolc_1_1v2d__generic_html"><div class="ttname"><a href="structolc_1_1v2d__generic.html">olc::v2d_generic&lt; float &gt;</a></div></div>
+<div class="ttc" id="anamespaceolc_html"><div class="ttname"><a href="namespaceolc.html">olc</a></div><div class="ttdef"><b>Definition:</b> <a href="olc_p_g_e_x___transformed_view_8h_source.html#l00077">olcPGEX_TransformedView.h:78</a></div></div>
+<div class="ttc" id="aclass_game_exception_html"><div class="ttname"><a href="class_game_exception.html">GameException</a></div><div class="ttdef"><b>Definition:</b> <a href="_game_exception_8h_source.html#l00009">GameException.h:11</a></div></div>
+<div class="ttc" id="aclassrender_1_1_lazy_sprite_html_a1e0b32f06c67b96eed8da12747aa4f0a"><div class="ttname"><a href="classrender_1_1_lazy_sprite.html#a1e0b32f06c67b96eed8da12747aa4f0a">render::LazySprite::renderCentered</a></div><div class="ttdeci">void renderCentered(olc::TransformedView &amp;scene, const olc::vf2d &amp;pos, const olc::vf2d &amp;uv, const olc::vf2d &amp;size, olc::vf2d scale=olc::vf2d(1, 1))</div><div class="ttdoc">Render, but pos in the center.</div><div class="ttdef"><b>Definition:</b> <a href="_lazy_sprite_8cpp_source.html#l00025">LazySprite.cpp:25</a></div></div>
+<div class="ttc" id="a_wall_entity_8h_html"><div class="ttname"><a href="_wall_entity_8h.html">WallEntity.h</a></div></div>
+<div class="ttc" id="aclassentities_1_1_entity_html"><div class="ttname"><a href="classentities_1_1_entity.html">entities::Entity</a></div><div class="ttdoc">Every object, what can be on the map.</div><div class="ttdef"><b>Definition:</b> <a href="_entity_8h_source.html#l00016">Entity.h:17</a></div></div>
+<div class="ttc" id="anamespaceolc_html_a3c42697361e8a28424bcf8415aba3564"><div class="ttname"><a href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">olc::vi2d</a></div><div class="ttdeci">v2d_generic&lt; int32_t &gt; vi2d</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00644">olcPixelGameEngine.h:644</a></div></div>
+<div class="ttc" id="a_game_exception_8h_html"><div class="ttname"><a href="_game_exception_8h.html">GameException.h</a></div></div>
+<div class="ttc" id="anamespacerender_html"><div class="ttname"><a href="namespacerender.html">render</a></div><div class="ttdef"><b>Definition:</b> <a href="_character_texture_8cpp_source.html#l00009">CharacterTexture.cpp:9</a></div></div>
+<div class="ttc" id="anamespaceentities_html"><div class="ttname"><a href="namespaceentities.html">entities</a></div><div class="ttdef"><b>Definition:</b> <a href="_character_entity_8cpp_source.html#l00005">CharacterEntity.cpp:5</a></div></div>
+<div class="ttc" id="aclassolc_1_1_transformed_view_html"><div class="ttname"><a href="classolc_1_1_transformed_view.html">olc::TransformedView</a></div><div class="ttdef"><b>Definition:</b> <a href="olc_p_g_e_x___transformed_view_8h_source.html#l00079">olcPGEX_TransformedView.h:80</a></div></div>
+<div class="ttc" id="aclassrender_1_1_wall_texture_html_a03239c7168e114906cb20f3d39815344"><div class="ttname"><a href="classrender_1_1_wall_texture.html#a03239c7168e114906cb20f3d39815344">render::WallTexture::render</a></div><div class="ttdeci">void render(olc::TransformedView &amp;scene, entities::Entity &amp;entity) override</div><div class="ttdoc">Render the sprite, abstract function.</div><div class="ttdef"><b>Definition:</b> <a href="_wall_texture_8cpp_source.html#l00014">WallTexture.cpp:14</a></div></div>
+<div class="ttc" id="aclassrender_1_1_wall_texture_html_a8246fdde3751baf778392ce6f4577a8d"><div class="ttname"><a href="classrender_1_1_wall_texture.html#a8246fdde3751baf778392ce6f4577a8d">render::WallTexture::offsetMap</a></div><div class="ttdeci">static const std::map&lt; byte, olc::vi2d &gt; offsetMap</div><div class="ttdoc">map, witch state means what coordinates in the sprite</div><div class="ttdef"><b>Definition:</b> <a href="_wall_texture_8h_source.html#l00021">WallTexture.h:21</a></div></div>
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/_wall_texture_8h.html b/doxy/html/_wall_texture_8h.html
new file mode 100644
index 0000000000000000000000000000000000000000..ecaf5191488c542fba851843f2456676e8e605ad
--- /dev/null
+++ b/doxy/html/_wall_texture_8h.html
@@ -0,0 +1,94 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: C:/Users/kosmx/Documents/GitHub/2d-game/WallTexture.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#nested-classes">Classes</a> &#124;
+<a href="#namespaces">Namespaces</a>  </div>
+  <div class="headertitle">
+<div class="title">C:/Users/kosmx/Documents/GitHub/2d-game/WallTexture.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &quot;<a class="el" href="_i_texture_8h_source.html">ITexture.h</a>&quot;</code><br />
+<code>#include &lt;map&gt;</code><br />
+</div>
+<p><a href="_wall_texture_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classrender_1_1_wall_texture.html">render::WallTexture</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Texture to render walls, with 16 possible states.  <a href="classrender_1_1_wall_texture.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
+Namespaces</h2></td></tr>
+<tr class="memitem:namespacerender"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacerender.html">render</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/_wall_texture_8h_source.html b/doxy/html/_wall_texture_8h_source.html
new file mode 100644
index 0000000000000000000000000000000000000000..e32a4e4040fdfc98a61e47ddfab500cc815c2a39
--- /dev/null
+++ b/doxy/html/_wall_texture_8h_source.html
@@ -0,0 +1,106 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: C:/Users/kosmx/Documents/GitHub/2d-game/WallTexture.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="headertitle">
+<div class="title">C:/Users/kosmx/Documents/GitHub/2d-game/WallTexture.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="_wall_texture_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_i_texture_8h.html">ITexture.h</a>&quot;</span></div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="preprocessor">#include &lt;map&gt;</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160; </div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160; </div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacerender.html">render</a></div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;{</div>
+<div class="line"><a name="l00011"></a><span class="lineno"><a class="line" href="classrender_1_1_wall_texture.html">   11</a></span>&#160;    <span class="keyword">class </span><a class="code" href="classrender_1_1_wall_texture.html">WallTexture</a> :</div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;        <span class="keyword">public</span> <a class="code" href="classrender_1_1_i_texture.html">ITexture</a></div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;    {</div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;    <span class="keyword">private</span>:</div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;        <a class="code" href="classrender_1_1_lazy_sprite.html">LazySprite</a> sprite;</div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;        <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a> baseOffset, size;</div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;    <span class="keyword">protected</span>:</div>
+<div class="line"><a name="l00021"></a><span class="lineno"><a class="line" href="classrender_1_1_wall_texture.html#a8246fdde3751baf778392ce6f4577a8d">   21</a></span>&#160;        <span class="keyword">static</span> <span class="keyword">const</span> std::map&lt;byte, olc::vi2d&gt; <a class="code" href="classrender_1_1_wall_texture.html#a8246fdde3751baf778392ce6f4577a8d">offsetMap</a>;</div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;    <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;        <a class="code" href="classrender_1_1_wall_texture.html#af0420c11949bbc21421cc21765bd8920">WallTexture</a>(<span class="keyword">const</span> std::string&amp; resName, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; baseOffset, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; size = <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>(16, 16));</div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;        <span class="keywordtype">void</span> <a class="code" href="classrender_1_1_wall_texture.html#a03239c7168e114906cb20f3d39815344">render</a>(<a class="code" href="classolc_1_1_transformed_view.html">olc::TransformedView</a>&amp; scene, <a class="code" href="classentities_1_1_entity.html">entities::Entity</a>&amp; entity) <span class="keyword">override</span>;</div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;    };</div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;}</div>
+</div><!-- fragment --></div><!-- contents -->
+<div class="ttc" id="aclassrender_1_1_lazy_sprite_html"><div class="ttname"><a href="classrender_1_1_lazy_sprite.html">render::LazySprite</a></div><div class="ttdoc">Refer to one texture, not animated, not modifiable, just a simple image. Lazy loading means,...</div><div class="ttdef"><b>Definition:</b> <a href="_lazy_sprite_8h_source.html#l00013">LazySprite.h:14</a></div></div>
+<div class="ttc" id="astructolc_1_1v2d__generic_html"><div class="ttname"><a href="structolc_1_1v2d__generic.html">olc::v2d_generic&lt; float &gt;</a></div></div>
+<div class="ttc" id="aclassrender_1_1_wall_texture_html_af0420c11949bbc21421cc21765bd8920"><div class="ttname"><a href="classrender_1_1_wall_texture.html#af0420c11949bbc21421cc21765bd8920">render::WallTexture::WallTexture</a></div><div class="ttdeci">WallTexture(const std::string &amp;resName, const olc::vf2d &amp;baseOffset, const olc::vf2d &amp;size=olc::vf2d(16, 16))</div><div class="ttdef"><b>Definition:</b> <a href="_wall_texture_8cpp_source.html#l00012">WallTexture.cpp:12</a></div></div>
+<div class="ttc" id="a_i_texture_8h_html"><div class="ttname"><a href="_i_texture_8h.html">ITexture.h</a></div></div>
+<div class="ttc" id="aclassentities_1_1_entity_html"><div class="ttname"><a href="classentities_1_1_entity.html">entities::Entity</a></div><div class="ttdoc">Every object, what can be on the map.</div><div class="ttdef"><b>Definition:</b> <a href="_entity_8h_source.html#l00016">Entity.h:17</a></div></div>
+<div class="ttc" id="aclassrender_1_1_i_texture_html"><div class="ttname"><a href="classrender_1_1_i_texture.html">render::ITexture</a></div><div class="ttdoc">Every texture, what can render an entity.</div><div class="ttdef"><b>Definition:</b> <a href="_i_texture_8h_source.html#l00015">ITexture.h:16</a></div></div>
+<div class="ttc" id="anamespacerender_html"><div class="ttname"><a href="namespacerender.html">render</a></div><div class="ttdef"><b>Definition:</b> <a href="_character_texture_8cpp_source.html#l00009">CharacterTexture.cpp:9</a></div></div>
+<div class="ttc" id="aclassolc_1_1_transformed_view_html"><div class="ttname"><a href="classolc_1_1_transformed_view.html">olc::TransformedView</a></div><div class="ttdef"><b>Definition:</b> <a href="olc_p_g_e_x___transformed_view_8h_source.html#l00079">olcPGEX_TransformedView.h:80</a></div></div>
+<div class="ttc" id="aclassrender_1_1_wall_texture_html_a03239c7168e114906cb20f3d39815344"><div class="ttname"><a href="classrender_1_1_wall_texture.html#a03239c7168e114906cb20f3d39815344">render::WallTexture::render</a></div><div class="ttdeci">void render(olc::TransformedView &amp;scene, entities::Entity &amp;entity) override</div><div class="ttdoc">Render the sprite, abstract function.</div><div class="ttdef"><b>Definition:</b> <a href="_wall_texture_8cpp_source.html#l00014">WallTexture.cpp:14</a></div></div>
+<div class="ttc" id="aclassrender_1_1_wall_texture_html"><div class="ttname"><a href="classrender_1_1_wall_texture.html">render::WallTexture</a></div><div class="ttdoc">Texture to render walls, with 16 possible states.</div><div class="ttdef"><b>Definition:</b> <a href="_wall_texture_8h_source.html#l00011">WallTexture.h:13</a></div></div>
+<div class="ttc" id="aclassrender_1_1_wall_texture_html_a8246fdde3751baf778392ce6f4577a8d"><div class="ttname"><a href="classrender_1_1_wall_texture.html#a8246fdde3751baf778392ce6f4577a8d">render::WallTexture::offsetMap</a></div><div class="ttdeci">static const std::map&lt; byte, olc::vi2d &gt; offsetMap</div><div class="ttdoc">map, witch state means what coordinates in the sprite</div><div class="ttdef"><b>Definition:</b> <a href="_wall_texture_8h_source.html#l00021">WallTexture.h:21</a></div></div>
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/_weapon_8cpp.html b/doxy/html/_weapon_8cpp.html
new file mode 100644
index 0000000000000000000000000000000000000000..919684f8af2f53986f021a271671cd09c055d3d9
--- /dev/null
+++ b/doxy/html/_weapon_8cpp.html
@@ -0,0 +1,86 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: C:/Users/kosmx/Documents/GitHub/2d-game/Weapon.cpp File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#namespaces">Namespaces</a>  </div>
+  <div class="headertitle">
+<div class="title">C:/Users/kosmx/Documents/GitHub/2d-game/Weapon.cpp File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &quot;<a class="el" href="_weapon_8h_source.html">Weapon.h</a>&quot;</code><br />
+</div>
+<p><a href="_weapon_8cpp_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
+Namespaces</h2></td></tr>
+<tr class="memitem:namespaceweapons"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceweapons.html">weapons</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/_weapon_8cpp_source.html b/doxy/html/_weapon_8cpp_source.html
new file mode 100644
index 0000000000000000000000000000000000000000..849c0dbe996a1a8d13b54406a9b3825c114d134a
--- /dev/null
+++ b/doxy/html/_weapon_8cpp_source.html
@@ -0,0 +1,144 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: C:/Users/kosmx/Documents/GitHub/2d-game/Weapon.cpp Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="headertitle">
+<div class="title">C:/Users/kosmx/Documents/GitHub/2d-game/Weapon.cpp</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="_weapon_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_weapon_8h.html">Weapon.h</a>&quot;</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160; </div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespaceweapons.html">weapons</a></div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;{</div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;    <a class="code" href="classrender_1_1_i_texture.html">render::ITexture</a>&amp; Weapon::getTexture()</div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;    {</div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;        <span class="keywordflow">return</span> this-&gt;texture;</div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;    }</div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160; </div>
+<div class="line"><a name="l00010"></a><span class="lineno"><a class="line" href="classweapons_1_1_weapon.html#a862bd61cf947a91809b423304885cf66">   10</a></span>&#160;    <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a> <a class="code" href="classweapons_1_1_weapon.html#a862bd61cf947a91809b423304885cf66">Weapon::getHitBoxSize</a>()<span class="keyword"> const</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="keyword">    </span>{</div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a>(0, 0);</div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;    }</div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160; </div>
+<div class="line"><a name="l00015"></a><span class="lineno"><a class="line" href="classweapons_1_1_weapon.html#a28f7b716212ae6b4606cff82501e00a2">   15</a></span>&#160;    <a class="code" href="classweapons_1_1_weapon.html#a28f7b716212ae6b4606cff82501e00a2">Weapon::Weapon</a>(<a class="code" href="classrender_1_1_i_texture.html">render::ITexture</a>&amp; texture, <span class="keywordtype">float</span> cooldownTime, <span class="keywordtype">int</span> damage, <span class="keyword">const</span> std::string&amp; name, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; pos)</div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;        : <a class="code" href="classentities_1_1_entity.html">Entity</a>(pos), texture(texture), cooldown(0), cooldownTime(cooldownTime), baseDamage(damage), name(name) {}</div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160; </div>
+<div class="line"><a name="l00018"></a><span class="lineno"><a class="line" href="classweapons_1_1_weapon.html#a1cbf391f196bd151f3e3f1ae1e316088">   18</a></span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="classweapons_1_1_weapon.html#a1cbf391f196bd151f3e3f1ae1e316088">Weapon::update</a>(<span class="keywordtype">float</span> dTick)</div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;    {</div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;        this-&gt;<a class="code" href="classweapons_1_1_weapon.html#aa3529d6c0160f61132fc7bb1b9284a02">cooldown</a> = std::max(this-&gt;<a class="code" href="classweapons_1_1_weapon.html#aa3529d6c0160f61132fc7bb1b9284a02">cooldown</a> - dTick, 0.f);</div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;        </div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;        <span class="keywordflow">return</span> this-&gt;<a class="code" href="classweapons_1_1_weapon.html#aa3529d6c0160f61132fc7bb1b9284a02">cooldown</a> == 0.f;</div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;    }</div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160; </div>
+<div class="line"><a name="l00025"></a><span class="lineno"><a class="line" href="classweapons_1_1_weapon.html#a9626ba57d509b1ee0fbe7f900d5181c6">   25</a></span>&#160;    <span class="keywordtype">float</span> <a class="code" href="classweapons_1_1_weapon.html#a9626ba57d509b1ee0fbe7f900d5181c6">Weapon::getCooldownBar</a>()</div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;    {</div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;        <span class="keywordflow">return</span> 1 - this-&gt;<a class="code" href="classweapons_1_1_weapon.html#aa3529d6c0160f61132fc7bb1b9284a02">cooldown</a> / this-&gt;<a class="code" href="classweapons_1_1_weapon.html#aa3d78dae766eee8279326026dbb46f1f">cooldownTime</a>;</div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;    }</div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160; </div>
+<div class="line"><a name="l00030"></a><span class="lineno"><a class="line" href="classweapons_1_1_weapon.html#aaf97827d27191b7b437ef1be96d6ac2c">   30</a></span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="classweapons_1_1_weapon.html#aaf97827d27191b7b437ef1be96d6ac2c">Weapon::canBeRemoved</a>()<span class="keyword"> const</span></div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;<span class="keyword">    </span>{</div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="classweapons_1_1_weapon.html#aba025076ad5e6fae2f9b9d40f4ef815d">isPickedUp</a>;</div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;    }</div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160; </div>
+<div class="line"><a name="l00035"></a><span class="lineno"><a class="line" href="classweapons_1_1_weapon.html#ace9c44751879af7382585c3338d4bc47">   35</a></span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classweapons_1_1_weapon.html#ace9c44751879af7382585c3338d4bc47">Weapon::setPickUp</a>(<span class="keywordtype">bool</span> bl)</div>
+<div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;    {</div>
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;        <a class="code" href="classweapons_1_1_weapon.html#aba025076ad5e6fae2f9b9d40f4ef815d">isPickedUp</a> = bl;</div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;    }</div>
+<div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160; </div>
+<div class="line"><a name="l00040"></a><span class="lineno"><a class="line" href="classweapons_1_1_weapon.html#a34c39bfa9cdb2d7483bc340300e8a2d9">   40</a></span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classweapons_1_1_weapon.html#a34c39bfa9cdb2d7483bc340300e8a2d9">Weapon::setPos</a>(<span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; newPos)</div>
+<div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;    {</div>
+<div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;        this-&gt;<a class="code" href="classentities_1_1_entity.html#a04f9c2febe8d435138a07eb2f48ba96b">pos</a> = newPos;</div>
+<div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;    }</div>
+<div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160; </div>
+<div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="classweapons_1_1_weapon.html#a397c372ffe2838f7c9c1ce67c06e55a9">   45</a></span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="classweapons_1_1_weapon.html#a397c372ffe2838f7c9c1ce67c06e55a9">Weapon::damage</a>(<span class="keywordtype">int</span> damage, <a class="code" href="classentities_1_1_entity.html">Entity</a>&amp; attacker)</div>
+<div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;    {</div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;        <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;    }</div>
+<div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160; </div>
+<div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;    </div>
+<div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;}</div>
+</div><!-- fragment --></div><!-- contents -->
+<div class="ttc" id="astructolc_1_1v2d__generic_html"><div class="ttname"><a href="structolc_1_1v2d__generic.html">olc::v2d_generic&lt; float &gt;</a></div></div>
+<div class="ttc" id="aclassentities_1_1_entity_html_a04f9c2febe8d435138a07eb2f48ba96b"><div class="ttname"><a href="classentities_1_1_entity.html#a04f9c2febe8d435138a07eb2f48ba96b">entities::Entity::pos</a></div><div class="ttdeci">olc::vf2d pos</div><div class="ttdoc">it's position</div><div class="ttdef"><b>Definition:</b> <a href="_entity_8h_source.html#l00022">Entity.h:22</a></div></div>
+<div class="ttc" id="aclassweapons_1_1_weapon_html_a862bd61cf947a91809b423304885cf66"><div class="ttname"><a href="classweapons_1_1_weapon.html#a862bd61cf947a91809b423304885cf66">weapons::Weapon::getHitBoxSize</a></div><div class="ttdeci">olc::vf2d getHitBoxSize() const override</div><div class="ttdoc">half hitbox size</div><div class="ttdef"><b>Definition:</b> <a href="_weapon_8cpp_source.html#l00010">Weapon.cpp:10</a></div></div>
+<div class="ttc" id="anamespaceolc_html_adb87819740ea9625f84c821fffb16429"><div class="ttname"><a href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a></div><div class="ttdeci">v2d_generic&lt; float &gt; vf2d</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00646">olcPixelGameEngine.h:646</a></div></div>
+<div class="ttc" id="aclassweapons_1_1_weapon_html_a1cbf391f196bd151f3e3f1ae1e316088"><div class="ttname"><a href="classweapons_1_1_weapon.html#a1cbf391f196bd151f3e3f1ae1e316088">weapons::Weapon::update</a></div><div class="ttdeci">virtual bool update(float dTick)</div><div class="ttdoc">Update the weapon in a Character's inventory.</div><div class="ttdef"><b>Definition:</b> <a href="_weapon_8cpp_source.html#l00018">Weapon.cpp:18</a></div></div>
+<div class="ttc" id="aclassweapons_1_1_weapon_html_aaf97827d27191b7b437ef1be96d6ac2c"><div class="ttname"><a href="classweapons_1_1_weapon.html#aaf97827d27191b7b437ef1be96d6ac2c">weapons::Weapon::canBeRemoved</a></div><div class="ttdeci">bool canBeRemoved() const override</div><div class="ttdoc">Can be removed form the ground.</div><div class="ttdef"><b>Definition:</b> <a href="_weapon_8cpp_source.html#l00030">Weapon.cpp:30</a></div></div>
+<div class="ttc" id="aclassweapons_1_1_weapon_html_a9626ba57d509b1ee0fbe7f900d5181c6"><div class="ttname"><a href="classweapons_1_1_weapon.html#a9626ba57d509b1ee0fbe7f900d5181c6">weapons::Weapon::getCooldownBar</a></div><div class="ttdeci">virtual float getCooldownBar()</div><div class="ttdoc">0 - 1 cooldown, 1 is ready to use, more than one makes sense, like 2 charges</div><div class="ttdef"><b>Definition:</b> <a href="_weapon_8cpp_source.html#l00025">Weapon.cpp:25</a></div></div>
+<div class="ttc" id="anamespaceweapons_html"><div class="ttname"><a href="namespaceweapons.html">weapons</a></div><div class="ttdef"><b>Definition:</b> <a href="_character_entity_8h_source.html#l00004">CharacterEntity.h:5</a></div></div>
+<div class="ttc" id="aclassweapons_1_1_weapon_html_aa3529d6c0160f61132fc7bb1b9284a02"><div class="ttname"><a href="classweapons_1_1_weapon.html#aa3529d6c0160f61132fc7bb1b9284a02">weapons::Weapon::cooldown</a></div><div class="ttdeci">float cooldown</div><div class="ttdef"><b>Definition:</b> <a href="_weapon_8h_source.html#l00017">Weapon.h:17</a></div></div>
+<div class="ttc" id="aclassweapons_1_1_weapon_html_aa3d78dae766eee8279326026dbb46f1f"><div class="ttname"><a href="classweapons_1_1_weapon.html#aa3d78dae766eee8279326026dbb46f1f">weapons::Weapon::cooldownTime</a></div><div class="ttdeci">float cooldownTime</div><div class="ttdef"><b>Definition:</b> <a href="_weapon_8h_source.html#l00018">Weapon.h:18</a></div></div>
+<div class="ttc" id="aclassentities_1_1_entity_html"><div class="ttname"><a href="classentities_1_1_entity.html">entities::Entity</a></div><div class="ttdoc">Every object, what can be on the map.</div><div class="ttdef"><b>Definition:</b> <a href="_entity_8h_source.html#l00016">Entity.h:17</a></div></div>
+<div class="ttc" id="aclassweapons_1_1_weapon_html_aba025076ad5e6fae2f9b9d40f4ef815d"><div class="ttname"><a href="classweapons_1_1_weapon.html#aba025076ad5e6fae2f9b9d40f4ef815d">weapons::Weapon::isPickedUp</a></div><div class="ttdeci">bool isPickedUp</div><div class="ttdoc">Is on the ground, or in an entity's inventory.</div><div class="ttdef"><b>Definition:</b> <a href="_weapon_8h_source.html#l00024">Weapon.h:24</a></div></div>
+<div class="ttc" id="aclassweapons_1_1_weapon_html_ace9c44751879af7382585c3338d4bc47"><div class="ttname"><a href="classweapons_1_1_weapon.html#ace9c44751879af7382585c3338d4bc47">weapons::Weapon::setPickUp</a></div><div class="ttdeci">virtual void setPickUp(bool bl)</div><div class="ttdoc">Mutator to isPickedUp.</div><div class="ttdef"><b>Definition:</b> <a href="_weapon_8cpp_source.html#l00035">Weapon.cpp:35</a></div></div>
+<div class="ttc" id="aclassrender_1_1_i_texture_html"><div class="ttname"><a href="classrender_1_1_i_texture.html">render::ITexture</a></div><div class="ttdoc">Every texture, what can render an entity.</div><div class="ttdef"><b>Definition:</b> <a href="_i_texture_8h_source.html#l00015">ITexture.h:16</a></div></div>
+<div class="ttc" id="aclassweapons_1_1_weapon_html_a34c39bfa9cdb2d7483bc340300e8a2d9"><div class="ttname"><a href="classweapons_1_1_weapon.html#a34c39bfa9cdb2d7483bc340300e8a2d9">weapons::Weapon::setPos</a></div><div class="ttdeci">virtual void setPos(const olc::vf2d &amp;newPos)</div><div class="ttdef"><b>Definition:</b> <a href="_weapon_8cpp_source.html#l00040">Weapon.cpp:40</a></div></div>
+<div class="ttc" id="aclassweapons_1_1_weapon_html_a397c372ffe2838f7c9c1ce67c06e55a9"><div class="ttname"><a href="classweapons_1_1_weapon.html#a397c372ffe2838f7c9c1ce67c06e55a9">weapons::Weapon::damage</a></div><div class="ttdeci">bool damage(int damage, Entity &amp;attacker) override</div><div class="ttdoc">something damage this</div><div class="ttdef"><b>Definition:</b> <a href="_weapon_8cpp_source.html#l00045">Weapon.cpp:45</a></div></div>
+<div class="ttc" id="aclassweapons_1_1_weapon_html_a28f7b716212ae6b4606cff82501e00a2"><div class="ttname"><a href="classweapons_1_1_weapon.html#a28f7b716212ae6b4606cff82501e00a2">weapons::Weapon::Weapon</a></div><div class="ttdeci">Weapon(render::ITexture &amp;texture, float cooldownTime, int damage=10, const std::string &amp;name=&quot;Weapon&quot;, const olc::vf2d &amp;pos={ 0, 0 })</div><div class="ttdef"><b>Definition:</b> <a href="_weapon_8cpp_source.html#l00015">Weapon.cpp:15</a></div></div>
+<div class="ttc" id="a_weapon_8h_html"><div class="ttname"><a href="_weapon_8h.html">Weapon.h</a></div></div>
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/_weapon_8h.html b/doxy/html/_weapon_8h.html
new file mode 100644
index 0000000000000000000000000000000000000000..00625dfe2a1ae8e3d825e8bd69399b31b75bdb89
--- /dev/null
+++ b/doxy/html/_weapon_8h.html
@@ -0,0 +1,93 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: C:/Users/kosmx/Documents/GitHub/2d-game/Weapon.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#nested-classes">Classes</a> &#124;
+<a href="#namespaces">Namespaces</a>  </div>
+  <div class="headertitle">
+<div class="title">C:/Users/kosmx/Documents/GitHub/2d-game/Weapon.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &quot;<a class="el" href="_entity_8h_source.html">Entity.h</a>&quot;</code><br />
+</div>
+<p><a href="_weapon_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_weapon.html">weapons::Weapon</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">You can throw it to the ground, this is why it's an entity. But it will be possible to use it. and shoot enemies, or projectiles.  <a href="classweapons_1_1_weapon.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
+Namespaces</h2></td></tr>
+<tr class="memitem:namespaceweapons"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceweapons.html">weapons</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/_weapon_8h_source.html b/doxy/html/_weapon_8h_source.html
new file mode 100644
index 0000000000000000000000000000000000000000..4e581cec2e9e72cbe3688a07a7c4b568d2d8759c
--- /dev/null
+++ b/doxy/html/_weapon_8h_source.html
@@ -0,0 +1,134 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: C:/Users/kosmx/Documents/GitHub/2d-game/Weapon.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="headertitle">
+<div class="title">C:/Users/kosmx/Documents/GitHub/2d-game/Weapon.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="_weapon_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_entity_8h.html">Entity.h</a>&quot;</span></div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160; </div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="keyword">using namespace </span><a class="code" href="namespaceentities.html">entities</a>; <span class="comment">//yes, I know, I&#39;m using `using namespace` in a header</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160; </div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespaceweapons.html">weapons</a> {</div>
+<div class="line"><a name="l00010"></a><span class="lineno"><a class="line" href="classweapons_1_1_weapon.html">   10</a></span>&#160;    <span class="keyword">class </span><a class="code" href="classweapons_1_1_weapon.html">Weapon</a> :</div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;        <span class="keyword">public</span> <a class="code" href="classentities_1_1_entity.html">Entity</a></div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;    {</div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;    <span class="keyword">private</span>:</div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;        <a class="code" href="classrender_1_1_i_texture.html">render::ITexture</a>&amp; texture;</div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;        <a class="code" href="classrender_1_1_i_texture.html">render::ITexture</a>&amp; getTexture() <span class="keyword">override</span>;</div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;    <span class="keyword">protected</span>:</div>
+<div class="line"><a name="l00017"></a><span class="lineno"><a class="line" href="classweapons_1_1_weapon.html#aa3529d6c0160f61132fc7bb1b9284a02">   17</a></span>&#160;        <span class="keywordtype">float</span> <a class="code" href="classweapons_1_1_weapon.html#aa3529d6c0160f61132fc7bb1b9284a02">cooldown</a>;</div>
+<div class="line"><a name="l00018"></a><span class="lineno"><a class="line" href="classweapons_1_1_weapon.html#aa3d78dae766eee8279326026dbb46f1f">   18</a></span>&#160;        <span class="keywordtype">float</span> <a class="code" href="classweapons_1_1_weapon.html#aa3d78dae766eee8279326026dbb46f1f">cooldownTime</a>;</div>
+<div class="line"><a name="l00019"></a><span class="lineno"><a class="line" href="classweapons_1_1_weapon.html#a27456b08c51df0759ae0155b9f79e336">   19</a></span>&#160;        <span class="keywordtype">int</span> <a class="code" href="classweapons_1_1_weapon.html#a27456b08c51df0759ae0155b9f79e336">baseDamage</a>;</div>
+<div class="line"><a name="l00020"></a><span class="lineno"><a class="line" href="classweapons_1_1_weapon.html#a3dab7574419aed48f2a0f2d54cfcd825">   20</a></span>&#160;        std::string <a class="code" href="classweapons_1_1_weapon.html#a3dab7574419aed48f2a0f2d54cfcd825">name</a>;</div>
+<div class="line"><a name="l00024"></a><span class="lineno"><a class="line" href="classweapons_1_1_weapon.html#aba025076ad5e6fae2f9b9d40f4ef815d">   24</a></span>&#160;        <span class="keywordtype">bool</span> isPickedUp = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;        <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a> getHitBoxSize() <span class="keyword">const override</span>;</div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;    <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160; </div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;        <a class="code" href="classweapons_1_1_weapon.html">Weapon</a>(<a class="code" href="classrender_1_1_i_texture.html">render::ITexture</a>&amp; texture, <span class="keywordtype">float</span> cooldownTime, <span class="keywordtype">int</span> damage = 10, <span class="keyword">const</span> std::string&amp; name = <span class="stringliteral">&quot;Weapon&quot;</span>, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; pos = { 0, 0 });</div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160; </div>
+<div class="line"><a name="l00033"></a><span class="lineno"><a class="line" href="classweapons_1_1_weapon.html#a8c6f12ac9ed871ebd0394f6b5c447868">   33</a></span>&#160;        <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classweapons_1_1_weapon.html#a8c6f12ac9ed871ebd0394f6b5c447868">use</a>(std::shared_ptr&lt;Entity&gt; user, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; direction) = 0;</div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160; </div>
+<div class="line"><a name="l00041"></a><span class="lineno"><a class="line" href="classweapons_1_1_weapon.html#a92ae1db47ca866d828f8b09c6de5a3f6">   41</a></span>&#160;        <span class="keywordtype">void</span> <a class="code" href="classweapons_1_1_weapon.html#a92ae1db47ca866d828f8b09c6de5a3f6">tick</a>(<a class="code" href="class_game_client.html">GameClient</a>&amp; client, <span class="keywordtype">float</span> deltaT, std::shared_ptr&lt;Entity&gt;&amp; shared_this)<span class="keyword"> override</span></div>
+<div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;<span class="keyword">        </span>{</div>
+<div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;            update(deltaT); <span class="comment">//weapons on the ground can charge...</span></div>
+<div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;        }</div>
+<div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160; </div>
+<div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;        <span class="keyword">virtual</span> <span class="keywordtype">bool</span> update(<span class="keywordtype">float</span> dTick);</div>
+<div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;        </div>
+<div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;        <span class="keyword">virtual</span> <span class="keywordtype">float</span> getCooldownBar();</div>
+<div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160; </div>
+<div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;        <span class="keywordtype">bool</span> canBeRemoved() <span class="keyword">const override</span>;</div>
+<div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160; </div>
+<div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;        <span class="keyword">virtual</span> <span class="keywordtype">void</span> setPickUp(<span class="keywordtype">bool</span> bl);</div>
+<div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160; </div>
+<div class="line"><a name="l00074"></a><span class="lineno"><a class="line" href="classweapons_1_1_weapon.html#a3f84544c15d6220252c6175fdfe5c61d">   74</a></span>&#160;        <span class="keyword">virtual</span> <span class="keywordtype">float</span> <a class="code" href="classweapons_1_1_weapon.html#a3f84544c15d6220252c6175fdfe5c61d">getSecondaryBar</a>() { <span class="keywordflow">return</span> 0; }</div>
+<div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;        <span class="keyword">virtual</span> <span class="keywordtype">void</span> setPos(<span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; newPos);</div>
+<div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160; </div>
+<div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;        <span class="keywordtype">bool</span> damage(<span class="keywordtype">int</span> damage, <a class="code" href="classentities_1_1_entity.html">Entity</a>&amp; attacker) <span class="keyword">override</span>;</div>
+<div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;    };</div>
+<div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;}</div>
+</div><!-- fragment --></div><!-- contents -->
+<div class="ttc" id="astructolc_1_1v2d__generic_html"><div class="ttname"><a href="structolc_1_1v2d__generic.html">olc::v2d_generic&lt; float &gt;</a></div></div>
+<div class="ttc" id="aclassweapons_1_1_weapon_html"><div class="ttname"><a href="classweapons_1_1_weapon.html">weapons::Weapon</a></div><div class="ttdoc">You can throw it to the ground, this is why it's an entity. But it will be possible to use it....</div><div class="ttdef"><b>Definition:</b> <a href="_weapon_8h_source.html#l00010">Weapon.h:12</a></div></div>
+<div class="ttc" id="aclassweapons_1_1_weapon_html_a3dab7574419aed48f2a0f2d54cfcd825"><div class="ttname"><a href="classweapons_1_1_weapon.html#a3dab7574419aed48f2a0f2d54cfcd825">weapons::Weapon::name</a></div><div class="ttdeci">std::string name</div><div class="ttdef"><b>Definition:</b> <a href="_weapon_8h_source.html#l00020">Weapon.h:20</a></div></div>
+<div class="ttc" id="aclassweapons_1_1_weapon_html_a27456b08c51df0759ae0155b9f79e336"><div class="ttname"><a href="classweapons_1_1_weapon.html#a27456b08c51df0759ae0155b9f79e336">weapons::Weapon::baseDamage</a></div><div class="ttdeci">int baseDamage</div><div class="ttdef"><b>Definition:</b> <a href="_weapon_8h_source.html#l00019">Weapon.h:19</a></div></div>
+<div class="ttc" id="anamespaceweapons_html"><div class="ttname"><a href="namespaceweapons.html">weapons</a></div><div class="ttdef"><b>Definition:</b> <a href="_character_entity_8h_source.html#l00004">CharacterEntity.h:5</a></div></div>
+<div class="ttc" id="aclassweapons_1_1_weapon_html_aa3529d6c0160f61132fc7bb1b9284a02"><div class="ttname"><a href="classweapons_1_1_weapon.html#aa3529d6c0160f61132fc7bb1b9284a02">weapons::Weapon::cooldown</a></div><div class="ttdeci">float cooldown</div><div class="ttdef"><b>Definition:</b> <a href="_weapon_8h_source.html#l00017">Weapon.h:17</a></div></div>
+<div class="ttc" id="aclassweapons_1_1_weapon_html_aa3d78dae766eee8279326026dbb46f1f"><div class="ttname"><a href="classweapons_1_1_weapon.html#aa3d78dae766eee8279326026dbb46f1f">weapons::Weapon::cooldownTime</a></div><div class="ttdeci">float cooldownTime</div><div class="ttdef"><b>Definition:</b> <a href="_weapon_8h_source.html#l00018">Weapon.h:18</a></div></div>
+<div class="ttc" id="aclass_game_client_html"><div class="ttname"><a href="class_game_client.html">GameClient</a></div><div class="ttdoc">The game main class itself. manages the entities, adjust the screen...</div><div class="ttdef"><b>Definition:</b> <a href="main_game_8h_source.html#l00011">mainGame.h:13</a></div></div>
+<div class="ttc" id="aclassentities_1_1_entity_html"><div class="ttname"><a href="classentities_1_1_entity.html">entities::Entity</a></div><div class="ttdoc">Every object, what can be on the map.</div><div class="ttdef"><b>Definition:</b> <a href="_entity_8h_source.html#l00016">Entity.h:17</a></div></div>
+<div class="ttc" id="aclassweapons_1_1_weapon_html_a8c6f12ac9ed871ebd0394f6b5c447868"><div class="ttname"><a href="classweapons_1_1_weapon.html#a8c6f12ac9ed871ebd0394f6b5c447868">weapons::Weapon::use</a></div><div class="ttdeci">virtual bool use(std::shared_ptr&lt; Entity &gt; user, const olc::vf2d &amp;direction)=0</div></div>
+<div class="ttc" id="a_entity_8h_html"><div class="ttname"><a href="_entity_8h.html">Entity.h</a></div></div>
+<div class="ttc" id="aclassrender_1_1_i_texture_html"><div class="ttname"><a href="classrender_1_1_i_texture.html">render::ITexture</a></div><div class="ttdoc">Every texture, what can render an entity.</div><div class="ttdef"><b>Definition:</b> <a href="_i_texture_8h_source.html#l00015">ITexture.h:16</a></div></div>
+<div class="ttc" id="anamespaceentities_html"><div class="ttname"><a href="namespaceentities.html">entities</a></div><div class="ttdef"><b>Definition:</b> <a href="_character_entity_8cpp_source.html#l00005">CharacterEntity.cpp:5</a></div></div>
+<div class="ttc" id="aclassweapons_1_1_weapon_html_a3f84544c15d6220252c6175fdfe5c61d"><div class="ttname"><a href="classweapons_1_1_weapon.html#a3f84544c15d6220252c6175fdfe5c61d">weapons::Weapon::getSecondaryBar</a></div><div class="ttdeci">virtual float getSecondaryBar()</div><div class="ttdoc">Secondary charge bar. for some purpose.</div><div class="ttdef"><b>Definition:</b> <a href="_weapon_8h_source.html#l00074">Weapon.h:74</a></div></div>
+<div class="ttc" id="aclassweapons_1_1_weapon_html_a92ae1db47ca866d828f8b09c6de5a3f6"><div class="ttname"><a href="classweapons_1_1_weapon.html#a92ae1db47ca866d828f8b09c6de5a3f6">weapons::Weapon::tick</a></div><div class="ttdeci">void tick(GameClient &amp;client, float deltaT, std::shared_ptr&lt; Entity &gt; &amp;shared_this) override</div><div class="ttdoc">tick, if on the ground. It does charge energy, or whatever.</div><div class="ttdef"><b>Definition:</b> <a href="_weapon_8h_source.html#l00041">Weapon.h:41</a></div></div>
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/_weapon_textures_8cpp.html b/doxy/html/_weapon_textures_8cpp.html
new file mode 100644
index 0000000000000000000000000000000000000000..f400b6fe5a1b048f5bcd47ee32298fb400024552
--- /dev/null
+++ b/doxy/html/_weapon_textures_8cpp.html
@@ -0,0 +1,78 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: C:/Users/kosmx/Documents/GitHub/2d-game/WeaponTextures.cpp File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">C:/Users/kosmx/Documents/GitHub/2d-game/WeaponTextures.cpp File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &quot;<a class="el" href="_weapon_textures_8h_source.html">WeaponTextures.h</a>&quot;</code><br />
+</div>
+<p><a href="_weapon_textures_8cpp_source.html">Go to the source code of this file.</a></p>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/_weapon_textures_8cpp_source.html b/doxy/html/_weapon_textures_8cpp_source.html
new file mode 100644
index 0000000000000000000000000000000000000000..558cd58bc13f4a49fe550b7761083d708e1c841e
--- /dev/null
+++ b/doxy/html/_weapon_textures_8cpp_source.html
@@ -0,0 +1,77 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: C:/Users/kosmx/Documents/GitHub/2d-game/WeaponTextures.cpp Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="headertitle">
+<div class="title">C:/Users/kosmx/Documents/GitHub/2d-game/WeaponTextures.cpp</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="_weapon_textures_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_weapon_textures_8h.html">WeaponTextures.h</a>&quot;</span></div>
+</div><!-- fragment --></div><!-- contents -->
+<div class="ttc" id="a_weapon_textures_8h_html"><div class="ttname"><a href="_weapon_textures_8h.html">WeaponTextures.h</a></div></div>
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/_weapon_textures_8h.html b/doxy/html/_weapon_textures_8h.html
new file mode 100644
index 0000000000000000000000000000000000000000..57a3b7954fc520879dd0a5d689d34a7157848622
--- /dev/null
+++ b/doxy/html/_weapon_textures_8h.html
@@ -0,0 +1,119 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: C:/Users/kosmx/Documents/GitHub/2d-game/WeaponTextures.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#namespaces">Namespaces</a> &#124;
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">C:/Users/kosmx/Documents/GitHub/2d-game/WeaponTextures.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &quot;<a class="el" href="_simple_sprite_8h_source.html">SimpleSprite.h</a>&quot;</code><br />
+</div>
+<p><a href="_weapon_textures_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
+Namespaces</h2></td></tr>
+<tr class="memitem:namespaceweapons"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceweapons.html">weapons</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:namespaceweapons_1_1textures"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceweapons_1_1textures.html">weapons::textures</a></td></tr>
+<tr class="memdesc:namespaceweapons_1_1textures"><td class="mdescLeft">&#160;</td><td class="mdescRight">Textures for common weapons... <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a2a490d5d835f3ea3a9b07d2a9efb1c36"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classrender_1_1_simple_sprite.html">render::SimpleSprite</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceweapons_1_1textures.html#a2a490d5d835f3ea3a9b07d2a9efb1c36">weapons::textures::sword1</a> (&quot;Items/LongWep.png&quot;, { 0, 16 })</td></tr>
+<tr class="separator:a2a490d5d835f3ea3a9b07d2a9efb1c36"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a05b20bd98c55bfbfcf4c2e7e0b08ebaf"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classrender_1_1_simple_sprite.html">render::SimpleSprite</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceweapons_1_1textures.html#a05b20bd98c55bfbfcf4c2e7e0b08ebaf">weapons::textures::sword2</a> (&quot;Items/LongWep.png&quot;, { 32, 16 })</td></tr>
+<tr class="separator:a05b20bd98c55bfbfcf4c2e7e0b08ebaf"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9734b7f6d13a24af2d62e74e6cd9dfde"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classrender_1_1_simple_sprite.html">render::SimpleSprite</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceweapons_1_1textures.html#a9734b7f6d13a24af2d62e74e6cd9dfde">weapons::textures::spear</a> (&quot;Items/LongWep.png&quot;, { 0, 32 })</td></tr>
+<tr class="separator:a9734b7f6d13a24af2d62e74e6cd9dfde"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac492d02548352205657c28cd311d997b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classrender_1_1_simple_sprite.html">render::SimpleSprite</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceweapons_1_1textures.html#ac492d02548352205657c28cd311d997b">weapons::textures::scythe</a> (&quot;Items/LongWep.png&quot;, { 16 *3, 16 *4 })</td></tr>
+<tr class="separator:ac492d02548352205657c28cd311d997b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:affedf59c6526368e5358afc383f15022"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classrender_1_1_simple_sprite.html">render::SimpleSprite</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceweapons_1_1textures.html#affedf59c6526368e5358afc383f15022">weapons::textures::shovel</a> (&quot;Items/LongWep.png&quot;, { 16 *4, 16 *4 })</td></tr>
+<tr class="separator:affedf59c6526368e5358afc383f15022"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a25cf2019ff68d29442fa3554a5862c1e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classrender_1_1_simple_sprite.html">render::SimpleSprite</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceweapons_1_1textures.html#a25cf2019ff68d29442fa3554a5862c1e">weapons::textures::pickaxe</a> (&quot;Items/ShortWep.png&quot;, { 16 *2, 16 *3 })</td></tr>
+<tr class="separator:a25cf2019ff68d29442fa3554a5862c1e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae84acdfc1384af6d4e1f64c1883a8784"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classrender_1_1_simple_sprite.html">render::SimpleSprite</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceweapons_1_1textures.html#ae84acdfc1384af6d4e1f64c1883a8784">weapons::textures::bow</a> (&quot;Items/Ammo.png&quot;, { 0, 16 })</td></tr>
+<tr class="separator:ae84acdfc1384af6d4e1f64c1883a8784"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2f33f64b881c4028086431f8ba0fe1c5"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classrender_1_1_simple_sprite.html">render::SimpleSprite</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceweapons_1_1textures.html#a2f33f64b881c4028086431f8ba0fe1c5">weapons::textures::crystalBow</a> (&quot;Items/Ammo.png&quot;, { 48, 16 })</td></tr>
+<tr class="separator:a2f33f64b881c4028086431f8ba0fe1c5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7ae588b12d703b44d1de1abb05d9f672"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classrender_1_1_simple_sprite.html">render::SimpleSprite</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceweapons_1_1textures.html#a7ae588b12d703b44d1de1abb05d9f672">weapons::textures::rifle</a> (&quot;Items/Ammo.png&quot;, { 16, 64 })</td></tr>
+<tr class="separator:a7ae588b12d703b44d1de1abb05d9f672"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac65344c207a89b29b15e56e01fc3e16a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classrender_1_1_simple_sprite.html">render::SimpleSprite</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceweapons_1_1textures.html#ac65344c207a89b29b15e56e01fc3e16a">weapons::textures::photoMachine</a> (&quot;Items/Light.png&quot;, { 16 *6, 0 })</td></tr>
+<tr class="separator:ac65344c207a89b29b15e56e01fc3e16a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8a733a84e93619430cfdaa2306a6a7ec"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classrender_1_1_simple_sprite.html">render::SimpleSprite</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceweapons_1_1textures.html#a8a733a84e93619430cfdaa2306a6a7ec">weapons::textures::pistol</a> (&quot;FromMacskusz111/pistol.png&quot;)</td></tr>
+<tr class="separator:a8a733a84e93619430cfdaa2306a6a7ec"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a51f0963cb1171938daa3a1e894e5305b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classrender_1_1_simple_sprite.html">render::SimpleSprite</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceweapons_1_1textures.html#a51f0963cb1171938daa3a1e894e5305b">weapons::textures::minigun</a> (&quot;FromMacskusz111/gun1.png&quot;)</td></tr>
+<tr class="separator:a51f0963cb1171938daa3a1e894e5305b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad763a6f6186015fe93af0a1e5088f026"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classrender_1_1_simple_sprite.html">render::SimpleSprite</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceweapons_1_1textures.html#ad763a6f6186015fe93af0a1e5088f026">weapons::textures::glitchGun</a> (&quot;FromMacskusz111/bug.png&quot;)</td></tr>
+<tr class="separator:ad763a6f6186015fe93af0a1e5088f026"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/_weapon_textures_8h_source.html b/doxy/html/_weapon_textures_8h_source.html
new file mode 100644
index 0000000000000000000000000000000000000000..9d1eeb2be1300b552329a2e3307c0b05db5a50c5
--- /dev/null
+++ b/doxy/html/_weapon_textures_8h_source.html
@@ -0,0 +1,114 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: C:/Users/kosmx/Documents/GitHub/2d-game/WeaponTextures.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="headertitle">
+<div class="title">C:/Users/kosmx/Documents/GitHub/2d-game/WeaponTextures.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="_weapon_textures_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160; </div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_simple_sprite_8h.html">SimpleSprite.h</a>&quot;</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160; </div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespaceweapons.html">weapons</a></div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;{</div>
+<div class="line"><a name="l00010"></a><span class="lineno"><a class="line" href="namespaceweapons_1_1textures.html">   10</a></span>&#160;    <span class="keyword">namespace </span>textures</div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;    {</div>
+<div class="line"><a name="l00012"></a><span class="lineno"><a class="line" href="namespaceweapons_1_1textures.html#a2a490d5d835f3ea3a9b07d2a9efb1c36">   12</a></span>&#160;        <span class="keyword">inline</span> <a class="code" href="classrender_1_1_simple_sprite.html">render::SimpleSprite</a> <a class="code" href="namespaceweapons_1_1textures.html#a2a490d5d835f3ea3a9b07d2a9efb1c36">sword1</a>(<span class="stringliteral">&quot;Items/LongWep.png&quot;</span>, { 0, 16 });</div>
+<div class="line"><a name="l00013"></a><span class="lineno"><a class="line" href="namespaceweapons_1_1textures.html#a05b20bd98c55bfbfcf4c2e7e0b08ebaf">   13</a></span>&#160;        <span class="keyword">inline</span> <a class="code" href="classrender_1_1_simple_sprite.html">render::SimpleSprite</a> <a class="code" href="namespaceweapons_1_1textures.html#a05b20bd98c55bfbfcf4c2e7e0b08ebaf">sword2</a>(<span class="stringliteral">&quot;Items/LongWep.png&quot;</span>, { 32, 16 });</div>
+<div class="line"><a name="l00014"></a><span class="lineno"><a class="line" href="namespaceweapons_1_1textures.html#a9734b7f6d13a24af2d62e74e6cd9dfde">   14</a></span>&#160;        <span class="keyword">inline</span> <a class="code" href="classrender_1_1_simple_sprite.html">render::SimpleSprite</a> <a class="code" href="namespaceweapons_1_1textures.html#a9734b7f6d13a24af2d62e74e6cd9dfde">spear</a>(<span class="stringliteral">&quot;Items/LongWep.png&quot;</span>, { 0, 32 });</div>
+<div class="line"><a name="l00015"></a><span class="lineno"><a class="line" href="namespaceweapons_1_1textures.html#ac492d02548352205657c28cd311d997b">   15</a></span>&#160;        <span class="keyword">inline</span> <a class="code" href="classrender_1_1_simple_sprite.html">render::SimpleSprite</a> <a class="code" href="namespaceweapons_1_1textures.html#ac492d02548352205657c28cd311d997b">scythe</a>(<span class="stringliteral">&quot;Items/LongWep.png&quot;</span>, { 16 * 3, 16 * 4 });</div>
+<div class="line"><a name="l00016"></a><span class="lineno"><a class="line" href="namespaceweapons_1_1textures.html#affedf59c6526368e5358afc383f15022">   16</a></span>&#160;        <span class="keyword">inline</span> <a class="code" href="classrender_1_1_simple_sprite.html">render::SimpleSprite</a> <a class="code" href="namespaceweapons_1_1textures.html#affedf59c6526368e5358afc383f15022">shovel</a>(<span class="stringliteral">&quot;Items/LongWep.png&quot;</span>, { 16 * 4, 16 * 4 }); <span class="comment">//spoon</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"><a class="line" href="namespaceweapons_1_1textures.html#a25cf2019ff68d29442fa3554a5862c1e">   17</a></span>&#160;        <span class="keyword">inline</span> <a class="code" href="classrender_1_1_simple_sprite.html">render::SimpleSprite</a> <a class="code" href="namespaceweapons_1_1textures.html#a25cf2019ff68d29442fa3554a5862c1e">pickaxe</a>(<span class="stringliteral">&quot;Items/ShortWep.png&quot;</span>, { 16 * 2, 16 * 3 });</div>
+<div class="line"><a name="l00018"></a><span class="lineno"><a class="line" href="namespaceweapons_1_1textures.html#ae84acdfc1384af6d4e1f64c1883a8784">   18</a></span>&#160;        <span class="keyword">inline</span> <a class="code" href="classrender_1_1_simple_sprite.html">render::SimpleSprite</a> <a class="code" href="namespaceweapons_1_1textures.html#ae84acdfc1384af6d4e1f64c1883a8784">bow</a>(<span class="stringliteral">&quot;Items/Ammo.png&quot;</span>, { 0, 16 });</div>
+<div class="line"><a name="l00019"></a><span class="lineno"><a class="line" href="namespaceweapons_1_1textures.html#a2f33f64b881c4028086431f8ba0fe1c5">   19</a></span>&#160;        <span class="keyword">inline</span> <a class="code" href="classrender_1_1_simple_sprite.html">render::SimpleSprite</a> <a class="code" href="namespaceweapons_1_1textures.html#a2f33f64b881c4028086431f8ba0fe1c5">crystalBow</a>(<span class="stringliteral">&quot;Items/Ammo.png&quot;</span>, { 48, 16 });</div>
+<div class="line"><a name="l00020"></a><span class="lineno"><a class="line" href="namespaceweapons_1_1textures.html#a7ae588b12d703b44d1de1abb05d9f672">   20</a></span>&#160;        <span class="keyword">inline</span> <a class="code" href="classrender_1_1_simple_sprite.html">render::SimpleSprite</a> <a class="code" href="namespaceweapons_1_1textures.html#a7ae588b12d703b44d1de1abb05d9f672">rifle</a>(<span class="stringliteral">&quot;Items/Ammo.png&quot;</span>, { 16, 64 });</div>
+<div class="line"><a name="l00021"></a><span class="lineno"><a class="line" href="namespaceweapons_1_1textures.html#ac65344c207a89b29b15e56e01fc3e16a">   21</a></span>&#160;        <span class="keyword">inline</span> <a class="code" href="classrender_1_1_simple_sprite.html">render::SimpleSprite</a> <a class="code" href="namespaceweapons_1_1textures.html#ac65344c207a89b29b15e56e01fc3e16a">photoMachine</a>(<span class="stringliteral">&quot;Items/Light.png&quot;</span>, { 16 * 6, 0 });<span class="comment">//flash</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"><a class="line" href="namespaceweapons_1_1textures.html#a8a733a84e93619430cfdaa2306a6a7ec">   22</a></span>&#160;        <span class="keyword">inline</span> <a class="code" href="classrender_1_1_simple_sprite.html">render::SimpleSprite</a> <a class="code" href="namespaceweapons_1_1textures.html#a8a733a84e93619430cfdaa2306a6a7ec">pistol</a>(<span class="stringliteral">&quot;FromMacskusz111/pistol.png&quot;</span>);</div>
+<div class="line"><a name="l00023"></a><span class="lineno"><a class="line" href="namespaceweapons_1_1textures.html#a51f0963cb1171938daa3a1e894e5305b">   23</a></span>&#160;        <span class="keyword">inline</span> <a class="code" href="classrender_1_1_simple_sprite.html">render::SimpleSprite</a> <a class="code" href="namespaceweapons_1_1textures.html#a51f0963cb1171938daa3a1e894e5305b">minigun</a>(<span class="stringliteral">&quot;FromMacskusz111/gun1.png&quot;</span>);</div>
+<div class="line"><a name="l00024"></a><span class="lineno"><a class="line" href="namespaceweapons_1_1textures.html#ad763a6f6186015fe93af0a1e5088f026">   24</a></span>&#160;        <span class="keyword">inline</span> <a class="code" href="classrender_1_1_simple_sprite.html">render::SimpleSprite</a> <a class="code" href="namespaceweapons_1_1textures.html#ad763a6f6186015fe93af0a1e5088f026">glitchGun</a>(<span class="stringliteral">&quot;FromMacskusz111/bug.png&quot;</span>);</div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;    }</div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;}</div>
+</div><!-- fragment --></div><!-- contents -->
+<div class="ttc" id="anamespaceweapons_1_1textures_html_a9734b7f6d13a24af2d62e74e6cd9dfde"><div class="ttname"><a href="namespaceweapons_1_1textures.html#a9734b7f6d13a24af2d62e74e6cd9dfde">weapons::textures::spear</a></div><div class="ttdeci">render::SimpleSprite spear(&quot;Items/LongWep.png&quot;, { 0, 32 })</div></div>
+<div class="ttc" id="anamespaceweapons_1_1textures_html_a8a733a84e93619430cfdaa2306a6a7ec"><div class="ttname"><a href="namespaceweapons_1_1textures.html#a8a733a84e93619430cfdaa2306a6a7ec">weapons::textures::pistol</a></div><div class="ttdeci">render::SimpleSprite pistol(&quot;FromMacskusz111/pistol.png&quot;)</div></div>
+<div class="ttc" id="anamespaceweapons_1_1textures_html_ad763a6f6186015fe93af0a1e5088f026"><div class="ttname"><a href="namespaceweapons_1_1textures.html#ad763a6f6186015fe93af0a1e5088f026">weapons::textures::glitchGun</a></div><div class="ttdeci">render::SimpleSprite glitchGun(&quot;FromMacskusz111/bug.png&quot;)</div></div>
+<div class="ttc" id="a_simple_sprite_8h_html"><div class="ttname"><a href="_simple_sprite_8h.html">SimpleSprite.h</a></div></div>
+<div class="ttc" id="anamespaceweapons_1_1textures_html_a05b20bd98c55bfbfcf4c2e7e0b08ebaf"><div class="ttname"><a href="namespaceweapons_1_1textures.html#a05b20bd98c55bfbfcf4c2e7e0b08ebaf">weapons::textures::sword2</a></div><div class="ttdeci">render::SimpleSprite sword2(&quot;Items/LongWep.png&quot;, { 32, 16 })</div></div>
+<div class="ttc" id="anamespaceweapons_1_1textures_html_a2f33f64b881c4028086431f8ba0fe1c5"><div class="ttname"><a href="namespaceweapons_1_1textures.html#a2f33f64b881c4028086431f8ba0fe1c5">weapons::textures::crystalBow</a></div><div class="ttdeci">render::SimpleSprite crystalBow(&quot;Items/Ammo.png&quot;, { 48, 16 })</div></div>
+<div class="ttc" id="anamespaceweapons_html"><div class="ttname"><a href="namespaceweapons.html">weapons</a></div><div class="ttdef"><b>Definition:</b> <a href="_character_entity_8h_source.html#l00004">CharacterEntity.h:5</a></div></div>
+<div class="ttc" id="anamespaceweapons_1_1textures_html_ae84acdfc1384af6d4e1f64c1883a8784"><div class="ttname"><a href="namespaceweapons_1_1textures.html#ae84acdfc1384af6d4e1f64c1883a8784">weapons::textures::bow</a></div><div class="ttdeci">render::SimpleSprite bow(&quot;Items/Ammo.png&quot;, { 0, 16 })</div></div>
+<div class="ttc" id="anamespaceweapons_1_1textures_html_ac65344c207a89b29b15e56e01fc3e16a"><div class="ttname"><a href="namespaceweapons_1_1textures.html#ac65344c207a89b29b15e56e01fc3e16a">weapons::textures::photoMachine</a></div><div class="ttdeci">render::SimpleSprite photoMachine(&quot;Items/Light.png&quot;, { 16 *6, 0 })</div></div>
+<div class="ttc" id="anamespaceweapons_1_1textures_html_a7ae588b12d703b44d1de1abb05d9f672"><div class="ttname"><a href="namespaceweapons_1_1textures.html#a7ae588b12d703b44d1de1abb05d9f672">weapons::textures::rifle</a></div><div class="ttdeci">render::SimpleSprite rifle(&quot;Items/Ammo.png&quot;, { 16, 64 })</div></div>
+<div class="ttc" id="anamespaceweapons_1_1textures_html_affedf59c6526368e5358afc383f15022"><div class="ttname"><a href="namespaceweapons_1_1textures.html#affedf59c6526368e5358afc383f15022">weapons::textures::shovel</a></div><div class="ttdeci">render::SimpleSprite shovel(&quot;Items/LongWep.png&quot;, { 16 *4, 16 *4 })</div></div>
+<div class="ttc" id="anamespaceweapons_1_1textures_html_ac492d02548352205657c28cd311d997b"><div class="ttname"><a href="namespaceweapons_1_1textures.html#ac492d02548352205657c28cd311d997b">weapons::textures::scythe</a></div><div class="ttdeci">render::SimpleSprite scythe(&quot;Items/LongWep.png&quot;, { 16 *3, 16 *4 })</div></div>
+<div class="ttc" id="aclassrender_1_1_simple_sprite_html"><div class="ttname"><a href="classrender_1_1_simple_sprite.html">render::SimpleSprite</a></div><div class="ttdoc">Simplest useable texture.</div><div class="ttdef"><b>Definition:</b> <a href="_simple_sprite_8h_source.html#l00011">SimpleSprite.h:13</a></div></div>
+<div class="ttc" id="anamespaceweapons_1_1textures_html_a25cf2019ff68d29442fa3554a5862c1e"><div class="ttname"><a href="namespaceweapons_1_1textures.html#a25cf2019ff68d29442fa3554a5862c1e">weapons::textures::pickaxe</a></div><div class="ttdeci">render::SimpleSprite pickaxe(&quot;Items/ShortWep.png&quot;, { 16 *2, 16 *3 })</div></div>
+<div class="ttc" id="anamespaceweapons_1_1textures_html_a51f0963cb1171938daa3a1e894e5305b"><div class="ttname"><a href="namespaceweapons_1_1textures.html#a51f0963cb1171938daa3a1e894e5305b">weapons::textures::minigun</a></div><div class="ttdeci">render::SimpleSprite minigun(&quot;FromMacskusz111/gun1.png&quot;)</div></div>
+<div class="ttc" id="anamespaceweapons_1_1textures_html_a2a490d5d835f3ea3a9b07d2a9efb1c36"><div class="ttname"><a href="namespaceweapons_1_1textures.html#a2a490d5d835f3ea3a9b07d2a9efb1c36">weapons::textures::sword1</a></div><div class="ttdeci">render::SimpleSprite sword1(&quot;Items/LongWep.png&quot;, { 0, 16 })</div></div>
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/annotated.html b/doxy/html/annotated.html
new file mode 100644
index 0000000000000000000000000000000000000000..2ecbe267e5867139d82dc460dedc955c28be73c3
--- /dev/null
+++ b/doxy/html/annotated.html
@@ -0,0 +1,132 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: Class List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="headertitle">
+<div class="title">Class List</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock">Here are the classes, structs, unions and interfaces with brief descriptions:</div><div class="directory">
+<div class="levels">[detail level <span onclick="javascript:toggleLevel(1);">1</span><span onclick="javascript:toggleLevel(2);">2</span><span onclick="javascript:toggleLevel(3);">3</span>]</div><table class="directory">
+<tr id="row_0_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_0_" class="arrow" onclick="toggleFolder('0_')">&#9660;</span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespaceentities.html" target="_self">entities</a></td><td class="desc"></td></tr>
+<tr id="row_0_0_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classentities_1_1_character_entity.html" target="_self">CharacterEntity</a></td><td class="desc">A player or an enemy </td></tr>
+<tr id="row_0_1_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classentities_1_1_dummy_entity.html" target="_self">DummyEntity</a></td><td class="desc">A test/dummy entity. it can't do anything... no, it can die </td></tr>
+<tr id="row_0_2_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classentities_1_1_entity.html" target="_self">Entity</a></td><td class="desc">Every object, what can be on the map </td></tr>
+<tr id="row_0_3_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classentities_1_1_entity_with_a_i.html" target="_self">EntityWithAI</a></td><td class="desc">The enemies. go after the player, and try to kill it </td></tr>
+<tr id="row_0_4_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classentities_1_1_explosive_projectile.html" target="_self">ExplosiveProjectile</a></td><td class="desc">A projectile, that explodes </td></tr>
+<tr id="row_0_5_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classentities_1_1_living_entity.html" target="_self">LivingEntity</a></td><td class="desc">Any moving animal or player </td></tr>
+<tr id="row_0_6_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classentities_1_1_player_entity.html" target="_self">PlayerEntity</a></td><td class="desc">You, or the player </td></tr>
+<tr id="row_0_7_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classentities_1_1_projectile_entity.html" target="_self">ProjectileEntity</a></td><td class="desc">A projectile, a bullet </td></tr>
+<tr id="row_0_8_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classentities_1_1_wall_entity.html" target="_self">WallEntity</a></td><td class="desc">Just a stupid wall, it doesn't do much, can't be killed.. </td></tr>
+<tr id="row_1_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_1_" class="arrow" onclick="toggleFolder('1_')">&#9660;</span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespaceolc.html" target="_self">olc</a></td><td class="desc"></td></tr>
+<tr id="row_1_0_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classolc_1_1_decal.html" target="_self">Decal</a></td><td class="desc"></td></tr>
+<tr id="row_1_1_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structolc_1_1_decal_instance.html" target="_self">DecalInstance</a></td><td class="desc"></td></tr>
+<tr id="row_1_2_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structolc_1_1_h_w_button.html" target="_self">HWButton</a></td><td class="desc"></td></tr>
+<tr id="row_1_3_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classolc_1_1_image_loader.html" target="_self">ImageLoader</a></td><td class="desc"></td></tr>
+<tr id="row_1_4_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structolc_1_1_layer_desc.html" target="_self">LayerDesc</a></td><td class="desc"></td></tr>
+<tr id="row_1_5_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classolc_1_1_p_g_e_x.html" target="_self">PGEX</a></td><td class="desc"></td></tr>
+<tr id="row_1_6_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structolc_1_1_pixel.html" target="_self">Pixel</a></td><td class="desc"></td></tr>
+<tr id="row_1_7_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classolc_1_1_pixel_game_engine.html" target="_self">PixelGameEngine</a></td><td class="desc"></td></tr>
+<tr id="row_1_8_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classolc_1_1_platform.html" target="_self">Platform</a></td><td class="desc"></td></tr>
+<tr id="row_1_9_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classolc_1_1_renderable.html" target="_self">Renderable</a></td><td class="desc"></td></tr>
+<tr id="row_1_10_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classolc_1_1_renderer.html" target="_self">Renderer</a></td><td class="desc"></td></tr>
+<tr id="row_1_11_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structolc_1_1_resource_buffer.html" target="_self">ResourceBuffer</a></td><td class="desc"></td></tr>
+<tr id="row_1_12_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classolc_1_1_resource_pack.html" target="_self">ResourcePack</a></td><td class="desc"></td></tr>
+<tr id="row_1_13_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classolc_1_1_sprite.html" target="_self">Sprite</a></td><td class="desc"></td></tr>
+<tr id="row_1_14_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classolc_1_1_tile_transformed_view.html" target="_self">TileTransformedView</a></td><td class="desc"></td></tr>
+<tr id="row_1_15_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classolc_1_1_transformed_view.html" target="_self">TransformedView</a></td><td class="desc"></td></tr>
+<tr id="row_1_16_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structolc_1_1v2d__generic.html" target="_self">v2d_generic</a></td><td class="desc"></td></tr>
+<tr id="row_2_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_2_" class="arrow" onclick="toggleFolder('2_')">&#9660;</span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespacerender.html" target="_self">render</a></td><td class="desc"></td></tr>
+<tr id="row_2_0_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classrender_1_1_character_texture.html" target="_self">CharacterTexture</a></td><td class="desc">Texture for CharacterEntities </td></tr>
+<tr id="row_2_1_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classrender_1_1_i_texture.html" target="_self">ITexture</a></td><td class="desc">Every texture, what can render an entity </td></tr>
+<tr id="row_2_2_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classrender_1_1_lazy_sprite.html" target="_self">LazySprite</a></td><td class="desc">Refer to one texture, not animated, not modifiable, just a simple image. Lazy loading means, it will load it only, when you're trying to use it </td></tr>
+<tr id="row_2_3_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classrender_1_1_resource_manager.html" target="_self">ResourceManager</a></td><td class="desc">Load every sprite only once, act as a set for loaded textures </td></tr>
+<tr id="row_2_4_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classrender_1_1_simple_sprite.html" target="_self">SimpleSprite</a></td><td class="desc">Simplest useable texture </td></tr>
+<tr id="row_2_5_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classrender_1_1_sprite_manager.html" target="_self">SpriteManager</a></td><td class="desc"></td></tr>
+<tr id="row_2_6_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classrender_1_1_wall_texture.html" target="_self">WallTexture</a></td><td class="desc">Texture to render walls, with 16 possible states </td></tr>
+<tr id="row_3_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_3_" class="arrow" onclick="toggleFolder('3_')">&#9660;</span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespaceweapons.html" target="_self">weapons</a></td><td class="desc"></td></tr>
+<tr id="row_3_0_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classweapons_1_1_e_m_gun.html" target="_self">EMGun</a></td><td class="desc"><a class="el" href="classweapons_1_1_weapon.html" title="You can throw it to the ground, this is why it&#39;s an entity. But it will be possible to use it....">Weapon</a> with energy level </td></tr>
+<tr id="row_3_1_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classweapons_1_1_glitch_gun.html" target="_self">GlitchGun</a></td><td class="desc">TODO make the bug weapon more buggy </td></tr>
+<tr id="row_3_2_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classweapons_1_1_glitch_texture.html" target="_self">GlitchTexture</a></td><td class="desc">Texture for the bug weapon </td></tr>
+<tr id="row_3_3_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_3_3_" class="arrow" onclick="toggleFolder('3_3_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classweapons_1_1_melee_weapon.html" target="_self">MeleeWeapon</a></td><td class="desc">A melee weapon, like a spoon </td></tr>
+<tr id="row_3_3_0_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classweapons_1_1_melee_weapon_1_1predicate_distance.html" target="_self">predicateDistance</a></td><td class="desc">Functor to predicate entity distance. You can also use lambda, if you want </td></tr>
+<tr id="row_3_4_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classweapons_1_1_pistol.html" target="_self">Pistol</a></td><td class="desc">Just a pistol, nothing too dangerous </td></tr>
+<tr id="row_3_5_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classweapons_1_1_ranged_weapon.html" target="_self">RangedWeapon</a></td><td class="desc">Any weapon, what does shoot. not melee </td></tr>
+<tr id="row_3_6_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classweapons_1_1_typical_melee_weapon.html" target="_self">TypicalMeleeWeapon</a></td><td class="desc">A typical melee weapon. I want to do not typical melee weapons too </td></tr>
+<tr id="row_3_7_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classweapons_1_1_weapon.html" target="_self">Weapon</a></td><td class="desc">You can throw it to the ground, this is why it's an entity. But it will be possible to use it. and shoot enemies, or projectiles </td></tr>
+<tr id="row_4_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_dungeon_generator.html" target="_self">DungeonGenerator</a></td><td class="desc">Generate random dungeons.. </td></tr>
+<tr id="row_5_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_dynamic_array.html" target="_self">DynamicArray</a></td><td class="desc">Dynamic array, to store entities, have a buffer, to don't tick newly added entities too early </td></tr>
+<tr id="row_6_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_game_client.html" target="_self">GameClient</a></td><td class="desc">The game main class itself. manages the entities, adjust the screen.. </td></tr>
+<tr id="row_7_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_game_exception.html" target="_self">GameException</a></td><td class="desc"></td></tr>
+<tr id="row_8_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_render_exception.html" target="_self">RenderException</a></td><td class="desc"></td></tr>
+<tr id="row_9_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_square_room_generator.html" target="_self">SquareRoomGenerator</a></td><td class="desc">Generates a weird square dungeon, filled with stupid enemies and weapons </td></tr>
+<tr id="row_10_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_test_generator.html" target="_self">TestGenerator</a></td><td class="desc">Used for testing, doesn't random </td></tr>
+</table>
+</div><!-- directory -->
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/bc_s.png b/doxy/html/bc_s.png
new file mode 100644
index 0000000000000000000000000000000000000000..224b29aa9847d5a4b3902efd602b7ddf7d33e6c2
Binary files /dev/null and b/doxy/html/bc_s.png differ
diff --git a/doxy/html/bdwn.png b/doxy/html/bdwn.png
new file mode 100644
index 0000000000000000000000000000000000000000..940a0b950443a0bb1b216ac03c45b8a16c955452
Binary files /dev/null and b/doxy/html/bdwn.png differ
diff --git a/doxy/html/class_dungeon_generator-members.html b/doxy/html/class_dungeon_generator-members.html
new file mode 100644
index 0000000000000000000000000000000000000000..c4a63e7f9817b6187575f12f33d809b977e6bfed
--- /dev/null
+++ b/doxy/html/class_dungeon_generator-members.html
@@ -0,0 +1,79 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">DungeonGenerator Member List</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="class_dungeon_generator.html">DungeonGenerator</a>, including all inherited members.</p>
+<table class="directory">
+  <tr class="even"><td class="entry"><a class="el" href="class_dungeon_generator.html#add8fcec4f013307d734616106110a1ea">generate</a>(GameClient &amp;client)=0</td><td class="entry"><a class="el" href="class_dungeon_generator.html">DungeonGenerator</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+</table></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/class_dungeon_generator.html b/doxy/html/class_dungeon_generator.html
new file mode 100644
index 0000000000000000000000000000000000000000..164c3fbbb15497618bff0c7b2c80c2448d9b7189
--- /dev/null
+++ b/doxy/html/class_dungeon_generator.html
@@ -0,0 +1,135 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: DungeonGenerator Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="class_dungeon_generator-members.html">List of all members</a>  </div>
+  <div class="headertitle">
+<div class="title">DungeonGenerator Class Reference<span class="mlabels"><span class="mlabel">abstract</span></span></div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Generate random dungeons...  
+ <a href="class_dungeon_generator.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="_dungeon_generator_8h_source.html">DungeonGenerator.h</a>&gt;</code></p>
+<div class="dynheader">
+Inheritance diagram for DungeonGenerator:</div>
+<div class="dyncontent">
+ <div class="center">
+  <img src="class_dungeon_generator.png" usemap="#DungeonGenerator_map" alt=""/>
+  <map id="DungeonGenerator_map" name="DungeonGenerator_map">
+<area href="class_square_room_generator.html" title="Generates a weird square dungeon, filled with stupid enemies and weapons." alt="SquareRoomGenerator" shape="rect" coords="0,56,140,80"/>
+<area href="class_test_generator.html" title="Used for testing, doesn&#39;t random." alt="TestGenerator" shape="rect" coords="150,56,290,80"/>
+  </map>
+</div></div>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr class="memitem:add8fcec4f013307d734616106110a1ea"><td class="memItemLeft" align="right" valign="top">virtual std::shared_ptr&lt; <a class="el" href="classentities_1_1_player_entity.html">entities::PlayerEntity</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_dungeon_generator.html#add8fcec4f013307d734616106110a1ea">generate</a> (<a class="el" href="class_game_client.html">GameClient</a> &amp;client)=0</td></tr>
+<tr class="separator:add8fcec4f013307d734616106110a1ea"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Generate random dungeons... </p>
+
+<p class="definition">Definition at line <a class="el" href="_dungeon_generator_8h_source.html#l00013">13</a> of file <a class="el" href="_dungeon_generator_8h_source.html">DungeonGenerator.h</a>.</p>
+</div><h2 class="groupheader">Member Function Documentation</h2>
+<a id="add8fcec4f013307d734616106110a1ea"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#add8fcec4f013307d734616106110a1ea">&#9670;&nbsp;</a></span>generate()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">virtual std::shared_ptr&lt;<a class="el" href="classentities_1_1_player_entity.html">entities::PlayerEntity</a>&gt; DungeonGenerator::generate </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="class_game_client.html">GameClient</a> &amp;&#160;</td>
+          <td class="paramname"><em>client</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Implemented in <a class="el" href="class_test_generator.html#aaacdd82f39d99e1dcbc847b674f245e1">TestGenerator</a>, and <a class="el" href="class_square_room_generator.html#a5b9952abf9af7a8fc4241f3f9e93a616">SquareRoomGenerator</a>.</p>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li>C:/Users/kosmx/Documents/GitHub/2d-game/<a class="el" href="_dungeon_generator_8h_source.html">DungeonGenerator.h</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/class_dungeon_generator.png b/doxy/html/class_dungeon_generator.png
new file mode 100644
index 0000000000000000000000000000000000000000..46b1a904a4875ca660ab63448ca00f0fbf304f3b
Binary files /dev/null and b/doxy/html/class_dungeon_generator.png differ
diff --git a/doxy/html/class_dynamic_array-members.html b/doxy/html/class_dynamic_array-members.html
new file mode 100644
index 0000000000000000000000000000000000000000..c16a0185ac4124ee80f3f735ba17bc202cd12e19
--- /dev/null
+++ b/doxy/html/class_dynamic_array-members.html
@@ -0,0 +1,85 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">DynamicArray&lt; T &gt; Member List</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="class_dynamic_array.html">DynamicArray&lt; T &gt;</a>, including all inherited members.</p>
+<table class="directory">
+  <tr class="even"><td class="entry"><a class="el" href="class_dynamic_array.html#a3b4f5925657f9e8dfd71bcc5973399ee">begin</a>()</td><td class="entry"><a class="el" href="class_dynamic_array.html">DynamicArray&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr><td class="entry"><a class="el" href="class_dynamic_array.html#a7d42e6eaa66bab7c43f193e78d2d56a9">DynamicArray</a>()</td><td class="entry"><a class="el" href="class_dynamic_array.html">DynamicArray&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="class_dynamic_array.html#ac316f2e7a1938687031cb5cc34df34cc">end</a>()</td><td class="entry"><a class="el" href="class_dynamic_array.html">DynamicArray&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr><td class="entry"><a class="el" href="class_dynamic_array.html#a180959557f211bf3fcdf5e26b7cb67ab">finalizeAdd</a>()</td><td class="entry"><a class="el" href="class_dynamic_array.html">DynamicArray&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="class_dynamic_array.html#acbec0bb643ebec934cf5e9dfc1ecf01e">getSize</a>() const</td><td class="entry"><a class="el" href="class_dynamic_array.html">DynamicArray&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr><td class="entry"><a class="el" href="class_dynamic_array.html#a9f3bb8f56ad0cb35f890ebae426c7a61">operator+=</a>(T &amp;entry)</td><td class="entry"><a class="el" href="class_dynamic_array.html">DynamicArray&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="class_dynamic_array.html#a9db6489676b4560684be1ba03233fca0">removeIf</a>(bool(*l)(const T &amp;))</td><td class="entry"><a class="el" href="class_dynamic_array.html">DynamicArray&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+</table></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/class_dynamic_array.html b/doxy/html/class_dynamic_array.html
new file mode 100644
index 0000000000000000000000000000000000000000..46b5ca24f6b7064f7e026570364bb48c1f9c4724
--- /dev/null
+++ b/doxy/html/class_dynamic_array.html
@@ -0,0 +1,319 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: DynamicArray&lt; T &gt; Class Template Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="class_dynamic_array-members.html">List of all members</a>  </div>
+  <div class="headertitle">
+<div class="title">DynamicArray&lt; T &gt; Class Template Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Dynamic array, to store entities, have a buffer, to don't tick newly added entities too early.  
+ <a href="class_dynamic_array.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="_dynamic_array_8hpp_source.html">DynamicArray.hpp</a>&gt;</code></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr class="memitem:a7d42e6eaa66bab7c43f193e78d2d56a9"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_dynamic_array.html#a7d42e6eaa66bab7c43f193e78d2d56a9">DynamicArray</a> ()</td></tr>
+<tr class="separator:a7d42e6eaa66bab7c43f193e78d2d56a9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9f3bb8f56ad0cb35f890ebae426c7a61"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_dynamic_array.html">DynamicArray</a>&lt; T &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_dynamic_array.html#a9f3bb8f56ad0cb35f890ebae426c7a61">operator+=</a> (T &amp;entry)</td></tr>
+<tr class="separator:a9f3bb8f56ad0cb35f890ebae426c7a61"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a180959557f211bf3fcdf5e26b7cb67ab"><td class="memItemLeft" align="right" valign="top">auto&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_dynamic_array.html#a180959557f211bf3fcdf5e26b7cb67ab">finalizeAdd</a> ()</td></tr>
+<tr class="separator:a180959557f211bf3fcdf5e26b7cb67ab"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9db6489676b4560684be1ba03233fca0"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_dynamic_array.html#a9db6489676b4560684be1ba03233fca0">removeIf</a> (bool(*l)(const T &amp;))</td></tr>
+<tr class="separator:a9db6489676b4560684be1ba03233fca0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3b4f5925657f9e8dfd71bcc5973399ee"><td class="memItemLeft" align="right" valign="top">auto&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_dynamic_array.html#a3b4f5925657f9e8dfd71bcc5973399ee">begin</a> ()</td></tr>
+<tr class="separator:a3b4f5925657f9e8dfd71bcc5973399ee"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac316f2e7a1938687031cb5cc34df34cc"><td class="memItemLeft" align="right" valign="top">auto&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_dynamic_array.html#ac316f2e7a1938687031cb5cc34df34cc">end</a> ()</td></tr>
+<tr class="separator:ac316f2e7a1938687031cb5cc34df34cc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:acbec0bb643ebec934cf5e9dfc1ecf01e"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_dynamic_array.html#acbec0bb643ebec934cf5e9dfc1ecf01e">getSize</a> () const</td></tr>
+<tr class="separator:acbec0bb643ebec934cf5e9dfc1ecf01e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><h3>template&lt;typename T&gt;<br />
+class DynamicArray&lt; T &gt;</h3>
+
+<p>Dynamic array, to store entities, have a buffer, to don't tick newly added entities too early. </p>
+
+<p class="definition">Definition at line <a class="el" href="_dynamic_array_8hpp_source.html#l00014">14</a> of file <a class="el" href="_dynamic_array_8hpp_source.html">DynamicArray.hpp</a>.</p>
+</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
+<a id="a7d42e6eaa66bab7c43f193e78d2d56a9"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a7d42e6eaa66bab7c43f193e78d2d56a9">&#9670;&nbsp;</a></span>DynamicArray()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename T &gt; </div>
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="class_dynamic_array.html">DynamicArray</a>&lt; T &gt;::<a class="el" href="class_dynamic_array.html">DynamicArray</a> </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="_dynamic_array_8hpp_source.html#l00022">22</a> of file <a class="el" href="_dynamic_array_8hpp_source.html">DynamicArray.hpp</a>.</p>
+
+</div>
+</div>
+<h2 class="groupheader">Member Function Documentation</h2>
+<a id="a3b4f5925657f9e8dfd71bcc5973399ee"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a3b4f5925657f9e8dfd71bcc5973399ee">&#9670;&nbsp;</a></span>begin()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename T &gt; </div>
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">auto <a class="el" href="class_dynamic_array.html">DynamicArray</a>&lt; T &gt;::begin </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="_dynamic_array_8hpp_source.html#l00049">49</a> of file <a class="el" href="_dynamic_array_8hpp_source.html">DynamicArray.hpp</a>.</p>
+
+</div>
+</div>
+<a id="ac316f2e7a1938687031cb5cc34df34cc"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ac316f2e7a1938687031cb5cc34df34cc">&#9670;&nbsp;</a></span>end()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename T &gt; </div>
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">auto <a class="el" href="class_dynamic_array.html">DynamicArray</a>&lt; T &gt;::end </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="_dynamic_array_8hpp_source.html#l00053">53</a> of file <a class="el" href="_dynamic_array_8hpp_source.html">DynamicArray.hpp</a>.</p>
+
+</div>
+</div>
+<a id="a180959557f211bf3fcdf5e26b7cb67ab"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a180959557f211bf3fcdf5e26b7cb67ab">&#9670;&nbsp;</a></span>finalizeAdd()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename T &gt; </div>
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">auto <a class="el" href="class_dynamic_array.html">DynamicArray</a>&lt; T &gt;::finalizeAdd </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+<dl class="section return"><dt>Returns</dt><dd>an iterator pointing to the first, newly added element. </dd></dl>
+
+<p class="definition">Definition at line <a class="el" href="_dynamic_array_8hpp_source.html#l00033">33</a> of file <a class="el" href="_dynamic_array_8hpp_source.html">DynamicArray.hpp</a>.</p>
+
+</div>
+</div>
+<a id="acbec0bb643ebec934cf5e9dfc1ecf01e"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#acbec0bb643ebec934cf5e9dfc1ecf01e">&#9670;&nbsp;</a></span>getSize()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename T &gt; </div>
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">int <a class="el" href="class_dynamic_array.html">DynamicArray</a>&lt; T &gt;::getSize </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td> const</td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="_dynamic_array_8hpp_source.html#l00057">57</a> of file <a class="el" href="_dynamic_array_8hpp_source.html">DynamicArray.hpp</a>.</p>
+
+</div>
+</div>
+<a id="a9f3bb8f56ad0cb35f890ebae426c7a61"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a9f3bb8f56ad0cb35f890ebae426c7a61">&#9670;&nbsp;</a></span>operator+=()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename T &gt; </div>
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="class_dynamic_array.html">DynamicArray</a>&lt;T&gt;&amp; <a class="el" href="class_dynamic_array.html">DynamicArray</a>&lt; T &gt;::operator+= </td>
+          <td>(</td>
+          <td class="paramtype">T &amp;&#160;</td>
+          <td class="paramname"><em>entry</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="_dynamic_array_8hpp_source.html#l00024">24</a> of file <a class="el" href="_dynamic_array_8hpp_source.html">DynamicArray.hpp</a>.</p>
+
+</div>
+</div>
+<a id="a9db6489676b4560684be1ba03233fca0"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a9db6489676b4560684be1ba03233fca0">&#9670;&nbsp;</a></span>removeIf()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;typename T &gt; </div>
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">void <a class="el" href="class_dynamic_array.html">DynamicArray</a>&lt; T &gt;::removeIf </td>
+          <td>(</td>
+          <td class="paramtype">bool(*)(const T &amp;)&#160;</td>
+          <td class="paramname"><em>l</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="_dynamic_array_8hpp_source.html#l00043">43</a> of file <a class="el" href="_dynamic_array_8hpp_source.html">DynamicArray.hpp</a>.</p>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li>C:/Users/kosmx/Documents/GitHub/2d-game/<a class="el" href="_dynamic_array_8hpp_source.html">DynamicArray.hpp</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/class_game_client-members.html b/doxy/html/class_game_client-members.html
new file mode 100644
index 0000000000000000000000000000000000000000..4a6fb5d0478e272273d4f21883283d3ca6d77356
--- /dev/null
+++ b/doxy/html/class_game_client-members.html
@@ -0,0 +1,192 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">GameClient Member List</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="class_game_client.html">GameClient</a>, including all inherited members.</p>
+<table class="directory">
+  <tr class="even"><td class="entry"><a class="el" href="class_game_client.html#ac1df0a856bd945976c06b3977167d4c7">addEntity</a>(std::shared_ptr&lt; entities::Entity &gt; &amp;entity)</td><td class="entry"><a class="el" href="class_game_client.html">GameClient</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#aeb70b40809815fab4e1017e25c7ab161">Clear</a>(Pixel p)</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#aed9a3f6bd349e091728a329ee42932bf">ClearBuffer</a>(Pixel p, bool bDepth=true)</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#af1a9cf3b38dda2071b7ec18868ee1ccd">Construct</a>(int32_t screen_w, int32_t screen_h, int32_t pixel_w, int32_t pixel_h, bool full_screen=false, bool vsync=false, bool cohesion=false)</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#ae15ffa0503e2893aad7001aa2f5769b7">CreateLayer</a>()</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#a95ab046b4b0843565bddd0e009a25569">Draw</a>(int32_t x, int32_t y, Pixel p=olc::WHITE)</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#ad7bd70d2c3d0bc5bbb0991fa4695a4e9">Draw</a>(const olc::vi2d &amp;pos, Pixel p=olc::WHITE)</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#a2ce3e34fd633acdc22b8dc2c8d25f86c">DrawCircle</a>(int32_t x, int32_t y, int32_t radius, Pixel p=olc::WHITE, uint8_t mask=0xFF)</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#a0016377c9188719462724f523b3a6334">DrawCircle</a>(const olc::vi2d &amp;pos, int32_t radius, Pixel p=olc::WHITE, uint8_t mask=0xFF)</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#a5b676590555cab61db67804417c6f25f">DrawDecal</a>(const olc::vf2d &amp;pos, olc::Decal *decal, const olc::vf2d &amp;scale={ 1.0f, 1.0f }, const olc::Pixel &amp;tint=olc::WHITE)</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#a26d7073d87bb19f15d5ade6bb58e8e2d">DrawExplicitDecal</a>(olc::Decal *decal, const olc::vf2d *pos, const olc::vf2d *uv, const olc::Pixel *col, uint32_t elements=4)</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#a131877968123c843374f079814503d22">DrawLine</a>(int32_t x1, int32_t y1, int32_t x2, int32_t y2, Pixel p=olc::WHITE, uint32_t pattern=0xFFFFFFFF)</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#ac24457d32db7d8acf0661c6de57be7a8">DrawLine</a>(const olc::vi2d &amp;pos1, const olc::vi2d &amp;pos2, Pixel p=olc::WHITE, uint32_t pattern=0xFFFFFFFF)</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#a8bae37cf84b215e9e0416f058241aeba">DrawPartialDecal</a>(const olc::vf2d &amp;pos, olc::Decal *decal, const olc::vf2d &amp;source_pos, const olc::vf2d &amp;source_size, const olc::vf2d &amp;scale={ 1.0f, 1.0f }, const olc::Pixel &amp;tint=olc::WHITE)</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#a1b757070353b8f9238c229e42d33bbb5">DrawPartialDecal</a>(const olc::vf2d &amp;pos, const olc::vf2d &amp;size, olc::Decal *decal, const olc::vf2d &amp;source_pos, const olc::vf2d &amp;source_size, const olc::Pixel &amp;tint=olc::WHITE)</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#aad3107bbad34e5792a9a35629e1fdbd0">DrawPartialRotatedDecal</a>(const olc::vf2d &amp;pos, olc::Decal *decal, const float fAngle, const olc::vf2d &amp;center, const olc::vf2d &amp;source_pos, const olc::vf2d &amp;source_size, const olc::vf2d &amp;scale={ 1.0f, 1.0f }, const olc::Pixel &amp;tint=olc::WHITE)</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#ab777dd885946b2dba5e8bef894c6868c">DrawPartialSprite</a>(int32_t x, int32_t y, Sprite *sprite, int32_t ox, int32_t oy, int32_t w, int32_t h, uint32_t scale=1, uint8_t flip=olc::Sprite::NONE)</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#aecfcfec384cf4eb56ab89f92df4ff288">DrawPartialSprite</a>(const olc::vi2d &amp;pos, Sprite *sprite, const olc::vi2d &amp;sourcepos, const olc::vi2d &amp;size, uint32_t scale=1, uint8_t flip=olc::Sprite::NONE)</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#a78be0709345710435fdaef7bc14f5fb3">DrawPartialWarpedDecal</a>(olc::Decal *decal, const olc::vf2d(&amp;pos)[4], const olc::vf2d &amp;source_pos, const olc::vf2d &amp;source_size, const olc::Pixel &amp;tint=olc::WHITE)</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#a5993da382c8e661655386a41ae874270">DrawPartialWarpedDecal</a>(olc::Decal *decal, const olc::vf2d *pos, const olc::vf2d &amp;source_pos, const olc::vf2d &amp;source_size, const olc::Pixel &amp;tint=olc::WHITE)</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#aaccd68c61d88b13ffe1e93493f2a5b35">DrawPartialWarpedDecal</a>(olc::Decal *decal, const std::array&lt; olc::vf2d, 4 &gt; &amp;pos, const olc::vf2d &amp;source_pos, const olc::vf2d &amp;source_size, const olc::Pixel &amp;tint=olc::WHITE)</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#a40a7754338ea7b388ffa2383958d1f0b">DrawPolygonDecal</a>(olc::Decal *decal, const std::vector&lt; olc::vf2d &gt; &amp;pos, const std::vector&lt; olc::vf2d &gt; &amp;uv, const olc::Pixel tint=olc::WHITE)</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#a220f523e520e317f5656c4d3df777163">DrawRect</a>(int32_t x, int32_t y, int32_t w, int32_t h, Pixel p=olc::WHITE)</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#ac8536bf173a396cf78f952ab66fe6156">DrawRect</a>(const olc::vi2d &amp;pos, const olc::vi2d &amp;size, Pixel p=olc::WHITE)</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#ab9af9b6726271e83dd7e4b24583b4236">DrawRotatedDecal</a>(const olc::vf2d &amp;pos, olc::Decal *decal, const float fAngle, const olc::vf2d &amp;center={ 0.0f, 0.0f }, const olc::vf2d &amp;scale={ 1.0f, 1.0f }, const olc::Pixel &amp;tint=olc::WHITE)</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#a5bae460b03f2837e39fdee3a0bbb6f99">DrawSprite</a>(int32_t x, int32_t y, Sprite *sprite, uint32_t scale=1, uint8_t flip=olc::Sprite::NONE)</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#adcf00714f6f13ed5ad256e2102084177">DrawSprite</a>(const olc::vi2d &amp;pos, Sprite *sprite, uint32_t scale=1, uint8_t flip=olc::Sprite::NONE)</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#ac29d79dedde0b2187f9f9ccbbc33fd0b">DrawString</a>(int32_t x, int32_t y, const std::string &amp;sText, Pixel col=olc::WHITE, uint32_t scale=1)</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#ae099b13b38e5b02ffd31ad34a703cee5">DrawString</a>(const olc::vi2d &amp;pos, const std::string &amp;sText, Pixel col=olc::WHITE, uint32_t scale=1)</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#a689d1828a93292702070b97fb14f5644">DrawStringDecal</a>(const olc::vf2d &amp;pos, const std::string &amp;sText, const Pixel col=olc::WHITE, const olc::vf2d &amp;scale={ 1.0f, 1.0f })</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#a1ddca999be34411764bb12d2a15cc021">DrawStringProp</a>(int32_t x, int32_t y, const std::string &amp;sText, Pixel col=olc::WHITE, uint32_t scale=1)</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#a161ef8177257c371741d12cbc4818cf6">DrawStringProp</a>(const olc::vi2d &amp;pos, const std::string &amp;sText, Pixel col=olc::WHITE, uint32_t scale=1)</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#a7392273f15fc09b3659b112564aa0dfa">DrawStringPropDecal</a>(const olc::vf2d &amp;pos, const std::string &amp;sText, const Pixel col=olc::WHITE, const olc::vf2d &amp;scale={ 1.0f, 1.0f })</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#a2bddba9e808a8702f6af354007302c16">DrawTriangle</a>(int32_t x1, int32_t y1, int32_t x2, int32_t y2, int32_t x3, int32_t y3, Pixel p=olc::WHITE)</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#aafe21db2127f56670b5f5f089adced71">DrawTriangle</a>(const olc::vi2d &amp;pos1, const olc::vi2d &amp;pos2, const olc::vi2d &amp;pos3, Pixel p=olc::WHITE)</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#a65098b403a403c45041599893429b550">DrawWarpedDecal</a>(olc::Decal *decal, const olc::vf2d(&amp;pos)[4], const olc::Pixel &amp;tint=olc::WHITE)</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#ae6cc4bd274522bf9ac36054eda6c95ac">DrawWarpedDecal</a>(olc::Decal *decal, const olc::vf2d *pos, const olc::Pixel &amp;tint=olc::WHITE)</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#a5174456bbdaace7cde233889f7ad6d72">DrawWarpedDecal</a>(olc::Decal *decal, const std::array&lt; olc::vf2d, 4 &gt; &amp;pos, const olc::Pixel &amp;tint=olc::WHITE)</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#a1e3453e2a118596fa04a961f66c6fd46">EnableLayer</a>(uint8_t layer, bool b)</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#a483f56606fbbf3ab4850554491a853bd">FillCircle</a>(int32_t x, int32_t y, int32_t radius, Pixel p=olc::WHITE)</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#a169b1c8ca3116ac2338785b8ffe87954">FillCircle</a>(const olc::vi2d &amp;pos, int32_t radius, Pixel p=olc::WHITE)</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#a6b5e218bb4360f27a470f9e821721331">FillRect</a>(int32_t x, int32_t y, int32_t w, int32_t h, Pixel p=olc::WHITE)</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#ae225f7027e20fe0f45a8190a992981cc">FillRect</a>(const olc::vi2d &amp;pos, const olc::vi2d &amp;size, Pixel p=olc::WHITE)</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#a02a26bca44e04f075f517bdae6ac0e9d">FillRectDecal</a>(const olc::vf2d &amp;pos, const olc::vf2d &amp;size, const olc::Pixel col=olc::WHITE)</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#ad31abffe6c4d0b864b8f7762c33b7a7d">FillTriangle</a>(int32_t x1, int32_t y1, int32_t x2, int32_t y2, int32_t x3, int32_t y3, Pixel p=olc::WHITE)</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#a091224d5937210726d25c8cdeb4a951e">FillTriangle</a>(const olc::vi2d &amp;pos1, const olc::vi2d &amp;pos2, const olc::vi2d &amp;pos3, Pixel p=olc::WHITE)</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="class_game_client.html#a1324a20c121e201e69391dfe7a08e546">GameClient</a>(bool debug=false)</td><td class="entry"><a class="el" href="class_game_client.html">GameClient</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#a5fd95bd9571bc3ed3fd5d7d110e48cff">GetDrawTarget</a>() const</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#a4ee3dbff01900d71e62bfe499b1c83c3">GetDrawTargetHeight</a>() const</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#a45d918f65f5fee13e654878d8271326b">GetDrawTargetWidth</a>() const</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#af881473291c52d849dbef155e359b27c">GetElapsedTime</a>() const</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="class_game_client.html#a6984da0365fd19c81dbc8907b598bf49">getEntities</a>()</td><td class="entry"><a class="el" href="class_game_client.html">GameClient</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#abab955edc6d1ec6023a7806509582f52">GetFontSprite</a>()</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#a89d27938d71d49b42a20307444147697">GetFPS</a>() const</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="class_game_client.html#adfcb979db6333b335dee4e6d785aabcf">getInstance</a>()</td><td class="entry"><a class="el" href="class_game_client.html">GameClient</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#a27cb4cb68d5e1ca7df8014d66221269e">GetKey</a>(Key k) const</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#aac31baad6daf55b926f6add9c44a5591">GetLayers</a>()</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#abdf9f5d70c9e24ab9358a8dd07474105">GetMouse</a>(uint32_t b) const</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#af11fb390dbc5a3168c26fe911690dcbe">GetMousePos</a>() const</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#a9640286e4a7cd03c6f545b1df7373269">GetMouseWheel</a>() const</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#a2ec1d2a1f3777338fb4388c620344a34">GetMouseX</a>() const</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#a8dde80c07547240f5e72b4f2fcd89668">GetMouseY</a>() const</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#ad4f95a449dc09a2650ec771e6fa83049">GetPixelMode</a>()</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#a721fb4cfac75f76c6d5832415fccbe61">GetPixelSize</a>() const</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="class_game_client.html#acc1e0f1d4836be4a8556289cfdfd4049">getPlayerEntity</a>()</td><td class="entry"><a class="el" href="class_game_client.html">GameClient</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="class_game_client.html#a01a0c559c6cfe63557fa4b5d7aa9e72c">getScene</a>()</td><td class="entry"><a class="el" href="class_game_client.html">GameClient</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#a5602d50220bd7edbd77fc67eaa981ce5">GetScreenPixelSize</a>() const</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#aa70121ffb85733f8ea2e7e5d0b4b311b">GetTextSize</a>(const std::string &amp;s)</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#ab282eddb9b8fe14d01311c8613f79e84">GetTextSizeProp</a>(const std::string &amp;s)</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#a54b5141da371af51541874dd68e4e6a2">GetWindowMouse</a>() const</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#aee10e917aeb1ce4625561d71126e0a7d">GetWindowSize</a>() const</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#a11d9ed8762b81e0bd6bbe4349255b1e8">GradientFillRectDecal</a>(const olc::vf2d &amp;pos, const olc::vf2d &amp;size, const olc::Pixel colTL, const olc::Pixel colBL, const olc::Pixel colBR, const olc::Pixel colTR)</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#a92192402b5d499ab8b230dfb9393f3b7">IsFocused</a>() const</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="class_game_client.html#a81ce304348a420752ee080480d2b3095">main</a>(int, char *[])</td><td class="entry"><a class="el" href="class_game_client.html">GameClient</a></td><td class="entry"><span class="mlabel">friend</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#a7afa0b57c65bd5d9a54c602afd4fe756">olc_ConfigureSystem</a>()</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#a117eedbe1e9366fe2bf402334beb9692">olc_ConstructFontSheet</a>()</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#a0018131435f88bb5de406fd11ee54058">olc_CoreUpdate</a>()</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#a7b0f41bc4b4258a5c4fa1742b41d15e3">olc_IsRunning</a>()</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#aa19aafa028a7e2eaaf7b2235a9bd2256">olc_PrepareEngine</a>()</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#a417b6cd564ccad1d878ae51cfdd3be8e">olc_Reanimate</a>()</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#a2da1f2ebbc1a5fbdbf52890e6ac707b1">olc_Terminate</a>()</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#a7343712504f23f86c8490646ffc50e7f">olc_UpdateKeyFocus</a>(bool state)</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#a61fde81846a9ef7f8fcf63080e6d350b">olc_UpdateKeyState</a>(int32_t key, bool state)</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#a6e10d8fae75e26dea03b0b447667a308">olc_UpdateMouse</a>(int32_t x, int32_t y)</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#ab3150ba487188e64940c294998fa38d3">olc_UpdateMouseFocus</a>(bool state)</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#a59645c08376a7d4e58673919f3bd0dfb">olc_UpdateMouseState</a>(int32_t button, bool state)</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#aa33ea5e40d4577e3c44fcf4a26cecadd">olc_UpdateMouseWheel</a>(int32_t delta)</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#af1cd38cf0df2e7c3ab53bee66ec63771">olc_UpdateViewport</a>()</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#a4f0dae00f21f8d71d4544d50593234c3">olc_UpdateWindowSize</a>(int32_t x, int32_t y)</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="class_game_client.html#a698bb8a4ba91211dc4fcaa4079d8d070">OnUserCreate</a>() override</td><td class="entry"><a class="el" href="class_game_client.html">GameClient</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#ad4fbf979865fb1f08250ea379f2de669">OnUserDestroy</a>()</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="class_game_client.html#ab6e2efe37e67de64062bca35d8a11e2e">OnUserUpdate</a>(float fElapsedTime) override</td><td class="entry"><a class="el" href="class_game_client.html">GameClient</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="class_game_client.html#abf4100b1ee69f4f300346424139f8d93">operator+=</a>(std::shared_ptr&lt; entities::Entity &gt; entity)</td><td class="entry"><a class="el" href="class_game_client.html">GameClient</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#a49a2ead57239e1595cc555effd3e3a2b">pgex_Register</a>(olc::PGEX *pgex)</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#afe9d685732305246c3fcb361ae3c4bc6">PixelGameEngine</a>()</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#a02d0f9c50770aa38aea1448f62d3604f">sAppName</a></td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#abbbee4578ffa6b844c04c1af363052af">ScreenHeight</a>() const</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#aa3b458d05eab503d9918cfd2d383a45c">ScreenWidth</a>() const</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="class_game_client.html#a9af9a685c31d428921b0cf5976a63c14">setDebugMode</a>(bool bl=true)</td><td class="entry"><a class="el" href="class_game_client.html">GameClient</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#a27ee96acff2c74d47f0cb78493aac756">SetDecalMode</a>(const olc::DecalMode &amp;mode)</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#a70b6a145d7ab0c8857000a72ce4d4a70">SetDrawTarget</a>(Sprite *target)</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#a5842c1087a70c95a7ff96d53f28b7bab">SetDrawTarget</a>(uint8_t layer)</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#a40a88ddb3800e59121f05b06fd64dbfd">SetLayerCustomRenderFunction</a>(uint8_t layer, std::function&lt; void()&gt; f)</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#a0e1ddc993ef65dfe00f2bbcf59e535ad">SetLayerOffset</a>(uint8_t layer, const olc::vf2d &amp;offset)</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#a9fed21eddcebeb743472d8b9eb1e3ece">SetLayerOffset</a>(uint8_t layer, float x, float y)</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#af8fbe005b4069ed1de8e0347b72ebc30">SetLayerScale</a>(uint8_t layer, const olc::vf2d &amp;scale)</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#a409825b0147e25c0d4c05fb0aa1f6273">SetLayerScale</a>(uint8_t layer, float x, float y)</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#a7d7c04245161782d5f5c48d3d62ff7a7">SetLayerTint</a>(uint8_t layer, const olc::Pixel &amp;tint)</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#ab0726b7758bc1bf7f7de30369076b8e7">SetPixelBlend</a>(float fBlend)</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#ae4a3d1aaa40761986389966ab927ef32">SetPixelMode</a>(Pixel::Mode m)</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#a9aa31ae4e1735efa72f3ea17fb51b2ef">SetPixelMode</a>(std::function&lt; olc::Pixel(const int x, const int y, const olc::Pixel &amp;pSource, const olc::Pixel &amp;pDest)&gt; pixelMode)</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#abd403468f57f7665d56e202da8de8e76">SetScreenSize</a>(int w, int h)</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#a8e8848aa1c743a1ec2cdaa14c87e5cde">Start</a>()</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#a423d90134c297f7b9f1834a136071b19">~PixelGameEngine</a>()</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+</table></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/class_game_client.html b/doxy/html/class_game_client.html
new file mode 100644
index 0000000000000000000000000000000000000000..9853910ddf6cf0b215f945a4be8ed2a7402cf95b
--- /dev/null
+++ b/doxy/html/class_game_client.html
@@ -0,0 +1,659 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: GameClient Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="#pub-static-methods">Static Public Member Functions</a> &#124;
+<a href="#friends">Friends</a> &#124;
+<a href="class_game_client-members.html">List of all members</a>  </div>
+  <div class="headertitle">
+<div class="title">GameClient Class Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>The game main class itself. manages the entities, adjust the screen...  
+ <a href="class_game_client.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="main_game_8h_source.html">mainGame.h</a>&gt;</code></p>
+<div class="dynheader">
+Inheritance diagram for GameClient:</div>
+<div class="dyncontent">
+ <div class="center">
+  <img src="class_game_client.png" usemap="#GameClient_map" alt=""/>
+  <map id="GameClient_map" name="GameClient_map">
+<area href="classolc_1_1_pixel_game_engine.html" alt="olc::PixelGameEngine" shape="rect" coords="0,0,133,24"/>
+  </map>
+</div></div>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr class="memitem:a1324a20c121e201e69391dfe7a08e546"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_game_client.html#a1324a20c121e201e69391dfe7a08e546">GameClient</a> (bool debug=false)</td></tr>
+<tr class="separator:a1324a20c121e201e69391dfe7a08e546"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6984da0365fd19c81dbc8907b598bf49"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_dynamic_array.html">DynamicArray</a>&lt; std::shared_ptr&lt; <a class="el" href="classentities_1_1_entity.html">entities::Entity</a> &gt; &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_game_client.html#a6984da0365fd19c81dbc8907b598bf49">getEntities</a> ()</td></tr>
+<tr class="separator:a6984da0365fd19c81dbc8907b598bf49"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a698bb8a4ba91211dc4fcaa4079d8d070"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_game_client.html#a698bb8a4ba91211dc4fcaa4079d8d070">OnUserCreate</a> () override</td></tr>
+<tr class="memdesc:a698bb8a4ba91211dc4fcaa4079d8d070"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a new game instance.  <a href="class_game_client.html#a698bb8a4ba91211dc4fcaa4079d8d070">More...</a><br /></td></tr>
+<tr class="separator:a698bb8a4ba91211dc4fcaa4079d8d070"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab6e2efe37e67de64062bca35d8a11e2e"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_game_client.html#ab6e2efe37e67de64062bca35d8a11e2e">OnUserUpdate</a> (float fElapsedTime) override</td></tr>
+<tr class="memdesc:ab6e2efe37e67de64062bca35d8a11e2e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Update the game.  <a href="class_game_client.html#ab6e2efe37e67de64062bca35d8a11e2e">More...</a><br /></td></tr>
+<tr class="separator:ab6e2efe37e67de64062bca35d8a11e2e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9af9a685c31d428921b0cf5976a63c14"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_game_client.html#a9af9a685c31d428921b0cf5976a63c14">setDebugMode</a> (bool bl=true)</td></tr>
+<tr class="memdesc:a9af9a685c31d428921b0cf5976a63c14"><td class="mdescLeft">&#160;</td><td class="mdescRight">turn on debug, caused by an exception  <a href="class_game_client.html#a9af9a685c31d428921b0cf5976a63c14">More...</a><br /></td></tr>
+<tr class="separator:a9af9a685c31d428921b0cf5976a63c14"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac1df0a856bd945976c06b3977167d4c7"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_game_client.html#ac1df0a856bd945976c06b3977167d4c7">addEntity</a> (std::shared_ptr&lt; <a class="el" href="classentities_1_1_entity.html">entities::Entity</a> &gt; &amp;entity)</td></tr>
+<tr class="memdesc:ac1df0a856bd945976c06b3977167d4c7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add a new entity to the world. you can also use +=.  <a href="class_game_client.html#ac1df0a856bd945976c06b3977167d4c7">More...</a><br /></td></tr>
+<tr class="separator:ac1df0a856bd945976c06b3977167d4c7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a01a0c559c6cfe63557fa4b5d7aa9e72c"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_game_client.html#a01a0c559c6cfe63557fa4b5d7aa9e72c">getScene</a> ()</td></tr>
+<tr class="memdesc:a01a0c559c6cfe63557fa4b5d7aa9e72c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the screen details. needed in fire direction calculation.  <a href="class_game_client.html#a01a0c559c6cfe63557fa4b5d7aa9e72c">More...</a><br /></td></tr>
+<tr class="separator:a01a0c559c6cfe63557fa4b5d7aa9e72c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abf4100b1ee69f4f300346424139f8d93"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_game_client.html">GameClient</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_game_client.html#abf4100b1ee69f4f300346424139f8d93">operator+=</a> (std::shared_ptr&lt; <a class="el" href="classentities_1_1_entity.html">entities::Entity</a> &gt; entity)</td></tr>
+<tr class="memdesc:abf4100b1ee69f4f300346424139f8d93"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add an entity to the world.  <a href="class_game_client.html#abf4100b1ee69f4f300346424139f8d93">More...</a><br /></td></tr>
+<tr class="separator:abf4100b1ee69f4f300346424139f8d93"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:acc1e0f1d4836be4a8556289cfdfd4049"><td class="memItemLeft" align="right" valign="top">std::shared_ptr&lt; <a class="el" href="classentities_1_1_player_entity.html">entities::PlayerEntity</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_game_client.html#acc1e0f1d4836be4a8556289cfdfd4049">getPlayerEntity</a> ()</td></tr>
+<tr class="memdesc:acc1e0f1d4836be4a8556289cfdfd4049"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the main player.  <a href="class_game_client.html#acc1e0f1d4836be4a8556289cfdfd4049">More...</a><br /></td></tr>
+<tr class="separator:acc1e0f1d4836be4a8556289cfdfd4049"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pub_methods_classolc_1_1_pixel_game_engine"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classolc_1_1_pixel_game_engine')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td></tr>
+<tr class="memitem:afe9d685732305246c3fcb361ae3c4bc6 inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#afe9d685732305246c3fcb361ae3c4bc6">PixelGameEngine</a> ()</td></tr>
+<tr class="separator:afe9d685732305246c3fcb361ae3c4bc6 inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a423d90134c297f7b9f1834a136071b19 inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#a423d90134c297f7b9f1834a136071b19">~PixelGameEngine</a> ()</td></tr>
+<tr class="separator:a423d90134c297f7b9f1834a136071b19 inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af1a9cf3b38dda2071b7ec18868ee1ccd inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87b">olc::rcode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#af1a9cf3b38dda2071b7ec18868ee1ccd">Construct</a> (int32_t screen_w, int32_t screen_h, int32_t pixel_w, int32_t pixel_h, bool full_screen=false, bool vsync=false, bool cohesion=false)</td></tr>
+<tr class="separator:af1a9cf3b38dda2071b7ec18868ee1ccd inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8e8848aa1c743a1ec2cdaa14c87e5cde inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87b">olc::rcode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#a8e8848aa1c743a1ec2cdaa14c87e5cde">Start</a> ()</td></tr>
+<tr class="separator:a8e8848aa1c743a1ec2cdaa14c87e5cde inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad4fbf979865fb1f08250ea379f2de669 inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#ad4fbf979865fb1f08250ea379f2de669">OnUserDestroy</a> ()</td></tr>
+<tr class="separator:ad4fbf979865fb1f08250ea379f2de669 inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a92192402b5d499ab8b230dfb9393f3b7 inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#a92192402b5d499ab8b230dfb9393f3b7">IsFocused</a> () const</td></tr>
+<tr class="separator:a92192402b5d499ab8b230dfb9393f3b7 inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a27cb4cb68d5e1ca7df8014d66221269e inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structolc_1_1_h_w_button.html">HWButton</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#a27cb4cb68d5e1ca7df8014d66221269e">GetKey</a> (<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7">Key</a> k) const</td></tr>
+<tr class="separator:a27cb4cb68d5e1ca7df8014d66221269e inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abdf9f5d70c9e24ab9358a8dd07474105 inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structolc_1_1_h_w_button.html">HWButton</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#abdf9f5d70c9e24ab9358a8dd07474105">GetMouse</a> (uint32_t b) const</td></tr>
+<tr class="separator:abdf9f5d70c9e24ab9358a8dd07474105 inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2ec1d2a1f3777338fb4388c620344a34 inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#a2ec1d2a1f3777338fb4388c620344a34">GetMouseX</a> () const</td></tr>
+<tr class="separator:a2ec1d2a1f3777338fb4388c620344a34 inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8dde80c07547240f5e72b4f2fcd89668 inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#a8dde80c07547240f5e72b4f2fcd89668">GetMouseY</a> () const</td></tr>
+<tr class="separator:a8dde80c07547240f5e72b4f2fcd89668 inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9640286e4a7cd03c6f545b1df7373269 inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#a9640286e4a7cd03c6f545b1df7373269">GetMouseWheel</a> () const</td></tr>
+<tr class="separator:a9640286e4a7cd03c6f545b1df7373269 inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a54b5141da371af51541874dd68e4e6a2 inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">olc::vi2d</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#a54b5141da371af51541874dd68e4e6a2">GetWindowMouse</a> () const</td></tr>
+<tr class="separator:a54b5141da371af51541874dd68e4e6a2 inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af11fb390dbc5a3168c26fe911690dcbe inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">olc::vi2d</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#af11fb390dbc5a3168c26fe911690dcbe">GetMousePos</a> () const</td></tr>
+<tr class="separator:af11fb390dbc5a3168c26fe911690dcbe inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa3b458d05eab503d9918cfd2d383a45c inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#aa3b458d05eab503d9918cfd2d383a45c">ScreenWidth</a> () const</td></tr>
+<tr class="separator:aa3b458d05eab503d9918cfd2d383a45c inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abbbee4578ffa6b844c04c1af363052af inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#abbbee4578ffa6b844c04c1af363052af">ScreenHeight</a> () const</td></tr>
+<tr class="separator:abbbee4578ffa6b844c04c1af363052af inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a45d918f65f5fee13e654878d8271326b inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#a45d918f65f5fee13e654878d8271326b">GetDrawTargetWidth</a> () const</td></tr>
+<tr class="separator:a45d918f65f5fee13e654878d8271326b inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4ee3dbff01900d71e62bfe499b1c83c3 inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#a4ee3dbff01900d71e62bfe499b1c83c3">GetDrawTargetHeight</a> () const</td></tr>
+<tr class="separator:a4ee3dbff01900d71e62bfe499b1c83c3 inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5fd95bd9571bc3ed3fd5d7d110e48cff inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classolc_1_1_sprite.html">olc::Sprite</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#a5fd95bd9571bc3ed3fd5d7d110e48cff">GetDrawTarget</a> () const</td></tr>
+<tr class="separator:a5fd95bd9571bc3ed3fd5d7d110e48cff inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abd403468f57f7665d56e202da8de8e76 inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#abd403468f57f7665d56e202da8de8e76">SetScreenSize</a> (int w, int h)</td></tr>
+<tr class="separator:abd403468f57f7665d56e202da8de8e76 inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a70b6a145d7ab0c8857000a72ce4d4a70 inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#a70b6a145d7ab0c8857000a72ce4d4a70">SetDrawTarget</a> (<a class="el" href="classolc_1_1_sprite.html">Sprite</a> *target)</td></tr>
+<tr class="separator:a70b6a145d7ab0c8857000a72ce4d4a70 inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a89d27938d71d49b42a20307444147697 inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#a89d27938d71d49b42a20307444147697">GetFPS</a> () const</td></tr>
+<tr class="separator:a89d27938d71d49b42a20307444147697 inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af881473291c52d849dbef155e359b27c inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#af881473291c52d849dbef155e359b27c">GetElapsedTime</a> () const</td></tr>
+<tr class="separator:af881473291c52d849dbef155e359b27c inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aee10e917aeb1ce4625561d71126e0a7d inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">olc::vi2d</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#aee10e917aeb1ce4625561d71126e0a7d">GetWindowSize</a> () const</td></tr>
+<tr class="separator:aee10e917aeb1ce4625561d71126e0a7d inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a721fb4cfac75f76c6d5832415fccbe61 inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">olc::vi2d</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#a721fb4cfac75f76c6d5832415fccbe61">GetPixelSize</a> () const</td></tr>
+<tr class="separator:a721fb4cfac75f76c6d5832415fccbe61 inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5602d50220bd7edbd77fc67eaa981ce5 inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">olc::vi2d</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#a5602d50220bd7edbd77fc67eaa981ce5">GetScreenPixelSize</a> () const</td></tr>
+<tr class="separator:a5602d50220bd7edbd77fc67eaa981ce5 inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5842c1087a70c95a7ff96d53f28b7bab inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#a5842c1087a70c95a7ff96d53f28b7bab">SetDrawTarget</a> (uint8_t layer)</td></tr>
+<tr class="separator:a5842c1087a70c95a7ff96d53f28b7bab inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1e3453e2a118596fa04a961f66c6fd46 inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#a1e3453e2a118596fa04a961f66c6fd46">EnableLayer</a> (uint8_t layer, bool b)</td></tr>
+<tr class="separator:a1e3453e2a118596fa04a961f66c6fd46 inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0e1ddc993ef65dfe00f2bbcf59e535ad inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#a0e1ddc993ef65dfe00f2bbcf59e535ad">SetLayerOffset</a> (uint8_t layer, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;offset)</td></tr>
+<tr class="separator:a0e1ddc993ef65dfe00f2bbcf59e535ad inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9fed21eddcebeb743472d8b9eb1e3ece inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#a9fed21eddcebeb743472d8b9eb1e3ece">SetLayerOffset</a> (uint8_t layer, float x, float y)</td></tr>
+<tr class="separator:a9fed21eddcebeb743472d8b9eb1e3ece inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af8fbe005b4069ed1de8e0347b72ebc30 inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#af8fbe005b4069ed1de8e0347b72ebc30">SetLayerScale</a> (uint8_t layer, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;scale)</td></tr>
+<tr class="separator:af8fbe005b4069ed1de8e0347b72ebc30 inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a409825b0147e25c0d4c05fb0aa1f6273 inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#a409825b0147e25c0d4c05fb0aa1f6273">SetLayerScale</a> (uint8_t layer, float x, float y)</td></tr>
+<tr class="separator:a409825b0147e25c0d4c05fb0aa1f6273 inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7d7c04245161782d5f5c48d3d62ff7a7 inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#a7d7c04245161782d5f5c48d3d62ff7a7">SetLayerTint</a> (uint8_t layer, const <a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a> &amp;tint)</td></tr>
+<tr class="separator:a7d7c04245161782d5f5c48d3d62ff7a7 inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a40a88ddb3800e59121f05b06fd64dbfd inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#a40a88ddb3800e59121f05b06fd64dbfd">SetLayerCustomRenderFunction</a> (uint8_t layer, std::function&lt; void()&gt; f)</td></tr>
+<tr class="separator:a40a88ddb3800e59121f05b06fd64dbfd inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aac31baad6daf55b926f6add9c44a5591 inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memItemLeft" align="right" valign="top">std::vector&lt; <a class="el" href="structolc_1_1_layer_desc.html">LayerDesc</a> &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#aac31baad6daf55b926f6add9c44a5591">GetLayers</a> ()</td></tr>
+<tr class="separator:aac31baad6daf55b926f6add9c44a5591 inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae15ffa0503e2893aad7001aa2f5769b7 inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#ae15ffa0503e2893aad7001aa2f5769b7">CreateLayer</a> ()</td></tr>
+<tr class="separator:ae15ffa0503e2893aad7001aa2f5769b7 inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae4a3d1aaa40761986389966ab927ef32 inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#ae4a3d1aaa40761986389966ab927ef32">SetPixelMode</a> (<a class="el" href="structolc_1_1_pixel.html#ae9012164940526ddb09b217dbbddfd65">Pixel::Mode</a> m)</td></tr>
+<tr class="separator:ae4a3d1aaa40761986389966ab927ef32 inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad4f95a449dc09a2650ec771e6fa83049 inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structolc_1_1_pixel.html#ae9012164940526ddb09b217dbbddfd65">Pixel::Mode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#ad4f95a449dc09a2650ec771e6fa83049">GetPixelMode</a> ()</td></tr>
+<tr class="separator:ad4f95a449dc09a2650ec771e6fa83049 inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9aa31ae4e1735efa72f3ea17fb51b2ef inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#a9aa31ae4e1735efa72f3ea17fb51b2ef">SetPixelMode</a> (std::function&lt; <a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a>(const int x, const int y, const <a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a> &amp;pSource, const <a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a> &amp;pDest)&gt; pixelMode)</td></tr>
+<tr class="separator:a9aa31ae4e1735efa72f3ea17fb51b2ef inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab0726b7758bc1bf7f7de30369076b8e7 inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#ab0726b7758bc1bf7f7de30369076b8e7">SetPixelBlend</a> (float fBlend)</td></tr>
+<tr class="separator:ab0726b7758bc1bf7f7de30369076b8e7 inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a95ab046b4b0843565bddd0e009a25569 inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#a95ab046b4b0843565bddd0e009a25569">Draw</a> (int32_t x, int32_t y, <a class="el" href="structolc_1_1_pixel.html">Pixel</a> p=<a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>)</td></tr>
+<tr class="separator:a95ab046b4b0843565bddd0e009a25569 inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad7bd70d2c3d0bc5bbb0991fa4695a4e9 inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#ad7bd70d2c3d0bc5bbb0991fa4695a4e9">Draw</a> (const <a class="el" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">olc::vi2d</a> &amp;pos, <a class="el" href="structolc_1_1_pixel.html">Pixel</a> p=<a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>)</td></tr>
+<tr class="separator:ad7bd70d2c3d0bc5bbb0991fa4695a4e9 inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a131877968123c843374f079814503d22 inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#a131877968123c843374f079814503d22">DrawLine</a> (int32_t x1, int32_t y1, int32_t x2, int32_t y2, <a class="el" href="structolc_1_1_pixel.html">Pixel</a> p=<a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>, uint32_t pattern=0xFFFFFFFF)</td></tr>
+<tr class="separator:a131877968123c843374f079814503d22 inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac24457d32db7d8acf0661c6de57be7a8 inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#ac24457d32db7d8acf0661c6de57be7a8">DrawLine</a> (const <a class="el" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">olc::vi2d</a> &amp;pos1, const <a class="el" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">olc::vi2d</a> &amp;pos2, <a class="el" href="structolc_1_1_pixel.html">Pixel</a> p=<a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>, uint32_t pattern=0xFFFFFFFF)</td></tr>
+<tr class="separator:ac24457d32db7d8acf0661c6de57be7a8 inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2ce3e34fd633acdc22b8dc2c8d25f86c inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#a2ce3e34fd633acdc22b8dc2c8d25f86c">DrawCircle</a> (int32_t x, int32_t y, int32_t radius, <a class="el" href="structolc_1_1_pixel.html">Pixel</a> p=<a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>, uint8_t mask=0xFF)</td></tr>
+<tr class="separator:a2ce3e34fd633acdc22b8dc2c8d25f86c inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0016377c9188719462724f523b3a6334 inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#a0016377c9188719462724f523b3a6334">DrawCircle</a> (const <a class="el" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">olc::vi2d</a> &amp;pos, int32_t radius, <a class="el" href="structolc_1_1_pixel.html">Pixel</a> p=<a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>, uint8_t mask=0xFF)</td></tr>
+<tr class="separator:a0016377c9188719462724f523b3a6334 inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a483f56606fbbf3ab4850554491a853bd inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#a483f56606fbbf3ab4850554491a853bd">FillCircle</a> (int32_t x, int32_t y, int32_t radius, <a class="el" href="structolc_1_1_pixel.html">Pixel</a> p=<a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>)</td></tr>
+<tr class="separator:a483f56606fbbf3ab4850554491a853bd inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a169b1c8ca3116ac2338785b8ffe87954 inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#a169b1c8ca3116ac2338785b8ffe87954">FillCircle</a> (const <a class="el" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">olc::vi2d</a> &amp;pos, int32_t radius, <a class="el" href="structolc_1_1_pixel.html">Pixel</a> p=<a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>)</td></tr>
+<tr class="separator:a169b1c8ca3116ac2338785b8ffe87954 inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a220f523e520e317f5656c4d3df777163 inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#a220f523e520e317f5656c4d3df777163">DrawRect</a> (int32_t x, int32_t y, int32_t w, int32_t h, <a class="el" href="structolc_1_1_pixel.html">Pixel</a> p=<a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>)</td></tr>
+<tr class="separator:a220f523e520e317f5656c4d3df777163 inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac8536bf173a396cf78f952ab66fe6156 inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#ac8536bf173a396cf78f952ab66fe6156">DrawRect</a> (const <a class="el" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">olc::vi2d</a> &amp;pos, const <a class="el" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">olc::vi2d</a> &amp;size, <a class="el" href="structolc_1_1_pixel.html">Pixel</a> p=<a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>)</td></tr>
+<tr class="separator:ac8536bf173a396cf78f952ab66fe6156 inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6b5e218bb4360f27a470f9e821721331 inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#a6b5e218bb4360f27a470f9e821721331">FillRect</a> (int32_t x, int32_t y, int32_t w, int32_t h, <a class="el" href="structolc_1_1_pixel.html">Pixel</a> p=<a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>)</td></tr>
+<tr class="separator:a6b5e218bb4360f27a470f9e821721331 inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae225f7027e20fe0f45a8190a992981cc inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#ae225f7027e20fe0f45a8190a992981cc">FillRect</a> (const <a class="el" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">olc::vi2d</a> &amp;pos, const <a class="el" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">olc::vi2d</a> &amp;size, <a class="el" href="structolc_1_1_pixel.html">Pixel</a> p=<a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>)</td></tr>
+<tr class="separator:ae225f7027e20fe0f45a8190a992981cc inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2bddba9e808a8702f6af354007302c16 inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#a2bddba9e808a8702f6af354007302c16">DrawTriangle</a> (int32_t x1, int32_t y1, int32_t x2, int32_t y2, int32_t x3, int32_t y3, <a class="el" href="structolc_1_1_pixel.html">Pixel</a> p=<a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>)</td></tr>
+<tr class="separator:a2bddba9e808a8702f6af354007302c16 inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aafe21db2127f56670b5f5f089adced71 inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#aafe21db2127f56670b5f5f089adced71">DrawTriangle</a> (const <a class="el" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">olc::vi2d</a> &amp;pos1, const <a class="el" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">olc::vi2d</a> &amp;pos2, const <a class="el" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">olc::vi2d</a> &amp;pos3, <a class="el" href="structolc_1_1_pixel.html">Pixel</a> p=<a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>)</td></tr>
+<tr class="separator:aafe21db2127f56670b5f5f089adced71 inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad31abffe6c4d0b864b8f7762c33b7a7d inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#ad31abffe6c4d0b864b8f7762c33b7a7d">FillTriangle</a> (int32_t x1, int32_t y1, int32_t x2, int32_t y2, int32_t x3, int32_t y3, <a class="el" href="structolc_1_1_pixel.html">Pixel</a> p=<a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>)</td></tr>
+<tr class="separator:ad31abffe6c4d0b864b8f7762c33b7a7d inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a091224d5937210726d25c8cdeb4a951e inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#a091224d5937210726d25c8cdeb4a951e">FillTriangle</a> (const <a class="el" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">olc::vi2d</a> &amp;pos1, const <a class="el" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">olc::vi2d</a> &amp;pos2, const <a class="el" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">olc::vi2d</a> &amp;pos3, <a class="el" href="structolc_1_1_pixel.html">Pixel</a> p=<a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>)</td></tr>
+<tr class="separator:a091224d5937210726d25c8cdeb4a951e inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5bae460b03f2837e39fdee3a0bbb6f99 inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#a5bae460b03f2837e39fdee3a0bbb6f99">DrawSprite</a> (int32_t x, int32_t y, <a class="el" href="classolc_1_1_sprite.html">Sprite</a> *sprite, uint32_t scale=1, uint8_t flip=<a class="el" href="classolc_1_1_sprite.html#ad0d1976d2060997f5cd99eb284a5dc24a6ad338b4e63faacfbed68b020c3a0c0c">olc::Sprite::NONE</a>)</td></tr>
+<tr class="separator:a5bae460b03f2837e39fdee3a0bbb6f99 inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:adcf00714f6f13ed5ad256e2102084177 inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#adcf00714f6f13ed5ad256e2102084177">DrawSprite</a> (const <a class="el" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">olc::vi2d</a> &amp;pos, <a class="el" href="classolc_1_1_sprite.html">Sprite</a> *sprite, uint32_t scale=1, uint8_t flip=<a class="el" href="classolc_1_1_sprite.html#ad0d1976d2060997f5cd99eb284a5dc24a6ad338b4e63faacfbed68b020c3a0c0c">olc::Sprite::NONE</a>)</td></tr>
+<tr class="separator:adcf00714f6f13ed5ad256e2102084177 inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab777dd885946b2dba5e8bef894c6868c inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#ab777dd885946b2dba5e8bef894c6868c">DrawPartialSprite</a> (int32_t x, int32_t y, <a class="el" href="classolc_1_1_sprite.html">Sprite</a> *sprite, int32_t ox, int32_t oy, int32_t w, int32_t h, uint32_t scale=1, uint8_t flip=<a class="el" href="classolc_1_1_sprite.html#ad0d1976d2060997f5cd99eb284a5dc24a6ad338b4e63faacfbed68b020c3a0c0c">olc::Sprite::NONE</a>)</td></tr>
+<tr class="separator:ab777dd885946b2dba5e8bef894c6868c inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aecfcfec384cf4eb56ab89f92df4ff288 inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#aecfcfec384cf4eb56ab89f92df4ff288">DrawPartialSprite</a> (const <a class="el" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">olc::vi2d</a> &amp;pos, <a class="el" href="classolc_1_1_sprite.html">Sprite</a> *sprite, const <a class="el" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">olc::vi2d</a> &amp;sourcepos, const <a class="el" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">olc::vi2d</a> &amp;size, uint32_t scale=1, uint8_t flip=<a class="el" href="classolc_1_1_sprite.html#ad0d1976d2060997f5cd99eb284a5dc24a6ad338b4e63faacfbed68b020c3a0c0c">olc::Sprite::NONE</a>)</td></tr>
+<tr class="separator:aecfcfec384cf4eb56ab89f92df4ff288 inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac29d79dedde0b2187f9f9ccbbc33fd0b inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#ac29d79dedde0b2187f9f9ccbbc33fd0b">DrawString</a> (int32_t x, int32_t y, const std::string &amp;sText, <a class="el" href="structolc_1_1_pixel.html">Pixel</a> col=<a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>, uint32_t scale=1)</td></tr>
+<tr class="separator:ac29d79dedde0b2187f9f9ccbbc33fd0b inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae099b13b38e5b02ffd31ad34a703cee5 inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#ae099b13b38e5b02ffd31ad34a703cee5">DrawString</a> (const <a class="el" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">olc::vi2d</a> &amp;pos, const std::string &amp;sText, <a class="el" href="structolc_1_1_pixel.html">Pixel</a> col=<a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>, uint32_t scale=1)</td></tr>
+<tr class="separator:ae099b13b38e5b02ffd31ad34a703cee5 inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa70121ffb85733f8ea2e7e5d0b4b311b inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">olc::vi2d</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#aa70121ffb85733f8ea2e7e5d0b4b311b">GetTextSize</a> (const std::string &amp;s)</td></tr>
+<tr class="separator:aa70121ffb85733f8ea2e7e5d0b4b311b inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1ddca999be34411764bb12d2a15cc021 inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#a1ddca999be34411764bb12d2a15cc021">DrawStringProp</a> (int32_t x, int32_t y, const std::string &amp;sText, <a class="el" href="structolc_1_1_pixel.html">Pixel</a> col=<a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>, uint32_t scale=1)</td></tr>
+<tr class="separator:a1ddca999be34411764bb12d2a15cc021 inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a161ef8177257c371741d12cbc4818cf6 inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#a161ef8177257c371741d12cbc4818cf6">DrawStringProp</a> (const <a class="el" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">olc::vi2d</a> &amp;pos, const std::string &amp;sText, <a class="el" href="structolc_1_1_pixel.html">Pixel</a> col=<a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>, uint32_t scale=1)</td></tr>
+<tr class="separator:a161ef8177257c371741d12cbc4818cf6 inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab282eddb9b8fe14d01311c8613f79e84 inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">olc::vi2d</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#ab282eddb9b8fe14d01311c8613f79e84">GetTextSizeProp</a> (const std::string &amp;s)</td></tr>
+<tr class="separator:ab282eddb9b8fe14d01311c8613f79e84 inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a27ee96acff2c74d47f0cb78493aac756 inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#a27ee96acff2c74d47f0cb78493aac756">SetDecalMode</a> (const <a class="el" href="namespaceolc.html#aeda642f63378f868193c28e8613138ca">olc::DecalMode</a> &amp;mode)</td></tr>
+<tr class="separator:a27ee96acff2c74d47f0cb78493aac756 inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5b676590555cab61db67804417c6f25f inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#a5b676590555cab61db67804417c6f25f">DrawDecal</a> (const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;pos, <a class="el" href="classolc_1_1_decal.html">olc::Decal</a> *decal, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;scale={ 1.0f, 1.0f }, const <a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a> &amp;tint=<a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>)</td></tr>
+<tr class="separator:a5b676590555cab61db67804417c6f25f inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8bae37cf84b215e9e0416f058241aeba inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#a8bae37cf84b215e9e0416f058241aeba">DrawPartialDecal</a> (const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;pos, <a class="el" href="classolc_1_1_decal.html">olc::Decal</a> *decal, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;source_pos, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;source_size, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;scale={ 1.0f, 1.0f }, const <a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a> &amp;tint=<a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>)</td></tr>
+<tr class="separator:a8bae37cf84b215e9e0416f058241aeba inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1b757070353b8f9238c229e42d33bbb5 inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#a1b757070353b8f9238c229e42d33bbb5">DrawPartialDecal</a> (const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;pos, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;size, <a class="el" href="classolc_1_1_decal.html">olc::Decal</a> *decal, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;source_pos, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;source_size, const <a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a> &amp;tint=<a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>)</td></tr>
+<tr class="separator:a1b757070353b8f9238c229e42d33bbb5 inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a26d7073d87bb19f15d5ade6bb58e8e2d inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#a26d7073d87bb19f15d5ade6bb58e8e2d">DrawExplicitDecal</a> (<a class="el" href="classolc_1_1_decal.html">olc::Decal</a> *decal, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> *pos, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> *uv, const <a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a> *col, uint32_t elements=4)</td></tr>
+<tr class="separator:a26d7073d87bb19f15d5ade6bb58e8e2d inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a65098b403a403c45041599893429b550 inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#a65098b403a403c45041599893429b550">DrawWarpedDecal</a> (<a class="el" href="classolc_1_1_decal.html">olc::Decal</a> *decal, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a>(&amp;pos)[4], const <a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a> &amp;tint=<a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>)</td></tr>
+<tr class="separator:a65098b403a403c45041599893429b550 inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae6cc4bd274522bf9ac36054eda6c95ac inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#ae6cc4bd274522bf9ac36054eda6c95ac">DrawWarpedDecal</a> (<a class="el" href="classolc_1_1_decal.html">olc::Decal</a> *decal, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> *pos, const <a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a> &amp;tint=<a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>)</td></tr>
+<tr class="separator:ae6cc4bd274522bf9ac36054eda6c95ac inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5174456bbdaace7cde233889f7ad6d72 inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#a5174456bbdaace7cde233889f7ad6d72">DrawWarpedDecal</a> (<a class="el" href="classolc_1_1_decal.html">olc::Decal</a> *decal, const std::array&lt; <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a>, 4 &gt; &amp;pos, const <a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a> &amp;tint=<a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>)</td></tr>
+<tr class="separator:a5174456bbdaace7cde233889f7ad6d72 inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a78be0709345710435fdaef7bc14f5fb3 inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#a78be0709345710435fdaef7bc14f5fb3">DrawPartialWarpedDecal</a> (<a class="el" href="classolc_1_1_decal.html">olc::Decal</a> *decal, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a>(&amp;pos)[4], const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;source_pos, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;source_size, const <a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a> &amp;tint=<a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>)</td></tr>
+<tr class="separator:a78be0709345710435fdaef7bc14f5fb3 inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5993da382c8e661655386a41ae874270 inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#a5993da382c8e661655386a41ae874270">DrawPartialWarpedDecal</a> (<a class="el" href="classolc_1_1_decal.html">olc::Decal</a> *decal, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> *pos, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;source_pos, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;source_size, const <a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a> &amp;tint=<a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>)</td></tr>
+<tr class="separator:a5993da382c8e661655386a41ae874270 inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aaccd68c61d88b13ffe1e93493f2a5b35 inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#aaccd68c61d88b13ffe1e93493f2a5b35">DrawPartialWarpedDecal</a> (<a class="el" href="classolc_1_1_decal.html">olc::Decal</a> *decal, const std::array&lt; <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a>, 4 &gt; &amp;pos, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;source_pos, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;source_size, const <a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a> &amp;tint=<a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>)</td></tr>
+<tr class="separator:aaccd68c61d88b13ffe1e93493f2a5b35 inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab9af9b6726271e83dd7e4b24583b4236 inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#ab9af9b6726271e83dd7e4b24583b4236">DrawRotatedDecal</a> (const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;pos, <a class="el" href="classolc_1_1_decal.html">olc::Decal</a> *decal, const float fAngle, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;center={ 0.0f, 0.0f }, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;scale={ 1.0f, 1.0f }, const <a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a> &amp;tint=<a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>)</td></tr>
+<tr class="separator:ab9af9b6726271e83dd7e4b24583b4236 inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aad3107bbad34e5792a9a35629e1fdbd0 inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#aad3107bbad34e5792a9a35629e1fdbd0">DrawPartialRotatedDecal</a> (const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;pos, <a class="el" href="classolc_1_1_decal.html">olc::Decal</a> *decal, const float fAngle, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;center, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;source_pos, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;source_size, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;scale={ 1.0f, 1.0f }, const <a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a> &amp;tint=<a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>)</td></tr>
+<tr class="separator:aad3107bbad34e5792a9a35629e1fdbd0 inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a689d1828a93292702070b97fb14f5644 inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#a689d1828a93292702070b97fb14f5644">DrawStringDecal</a> (const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;pos, const std::string &amp;sText, const <a class="el" href="structolc_1_1_pixel.html">Pixel</a> col=<a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;scale={ 1.0f, 1.0f })</td></tr>
+<tr class="separator:a689d1828a93292702070b97fb14f5644 inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7392273f15fc09b3659b112564aa0dfa inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#a7392273f15fc09b3659b112564aa0dfa">DrawStringPropDecal</a> (const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;pos, const std::string &amp;sText, const <a class="el" href="structolc_1_1_pixel.html">Pixel</a> col=<a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;scale={ 1.0f, 1.0f })</td></tr>
+<tr class="separator:a7392273f15fc09b3659b112564aa0dfa inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a02a26bca44e04f075f517bdae6ac0e9d inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#a02a26bca44e04f075f517bdae6ac0e9d">FillRectDecal</a> (const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;pos, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;size, const <a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a> col=<a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>)</td></tr>
+<tr class="separator:a02a26bca44e04f075f517bdae6ac0e9d inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a11d9ed8762b81e0bd6bbe4349255b1e8 inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#a11d9ed8762b81e0bd6bbe4349255b1e8">GradientFillRectDecal</a> (const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;pos, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;size, const <a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a> colTL, const <a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a> colBL, const <a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a> colBR, const <a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a> colTR)</td></tr>
+<tr class="separator:a11d9ed8762b81e0bd6bbe4349255b1e8 inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a40a7754338ea7b388ffa2383958d1f0b inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#a40a7754338ea7b388ffa2383958d1f0b">DrawPolygonDecal</a> (<a class="el" href="classolc_1_1_decal.html">olc::Decal</a> *decal, const std::vector&lt; <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &gt; &amp;pos, const std::vector&lt; <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &gt; &amp;uv, const <a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a> tint=<a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>)</td></tr>
+<tr class="separator:a40a7754338ea7b388ffa2383958d1f0b inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aeb70b40809815fab4e1017e25c7ab161 inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#aeb70b40809815fab4e1017e25c7ab161">Clear</a> (<a class="el" href="structolc_1_1_pixel.html">Pixel</a> p)</td></tr>
+<tr class="separator:aeb70b40809815fab4e1017e25c7ab161 inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aed9a3f6bd349e091728a329ee42932bf inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#aed9a3f6bd349e091728a329ee42932bf">ClearBuffer</a> (<a class="el" href="structolc_1_1_pixel.html">Pixel</a> p, bool bDepth=true)</td></tr>
+<tr class="separator:aed9a3f6bd349e091728a329ee42932bf inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abab955edc6d1ec6023a7806509582f52 inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classolc_1_1_sprite.html">olc::Sprite</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#abab955edc6d1ec6023a7806509582f52">GetFontSprite</a> ()</td></tr>
+<tr class="separator:abab955edc6d1ec6023a7806509582f52 inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6e10d8fae75e26dea03b0b447667a308 inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#a6e10d8fae75e26dea03b0b447667a308">olc_UpdateMouse</a> (int32_t x, int32_t y)</td></tr>
+<tr class="separator:a6e10d8fae75e26dea03b0b447667a308 inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa33ea5e40d4577e3c44fcf4a26cecadd inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#aa33ea5e40d4577e3c44fcf4a26cecadd">olc_UpdateMouseWheel</a> (int32_t delta)</td></tr>
+<tr class="separator:aa33ea5e40d4577e3c44fcf4a26cecadd inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4f0dae00f21f8d71d4544d50593234c3 inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#a4f0dae00f21f8d71d4544d50593234c3">olc_UpdateWindowSize</a> (int32_t x, int32_t y)</td></tr>
+<tr class="separator:a4f0dae00f21f8d71d4544d50593234c3 inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af1cd38cf0df2e7c3ab53bee66ec63771 inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#af1cd38cf0df2e7c3ab53bee66ec63771">olc_UpdateViewport</a> ()</td></tr>
+<tr class="separator:af1cd38cf0df2e7c3ab53bee66ec63771 inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a117eedbe1e9366fe2bf402334beb9692 inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#a117eedbe1e9366fe2bf402334beb9692">olc_ConstructFontSheet</a> ()</td></tr>
+<tr class="separator:a117eedbe1e9366fe2bf402334beb9692 inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0018131435f88bb5de406fd11ee54058 inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#a0018131435f88bb5de406fd11ee54058">olc_CoreUpdate</a> ()</td></tr>
+<tr class="separator:a0018131435f88bb5de406fd11ee54058 inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa19aafa028a7e2eaaf7b2235a9bd2256 inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#aa19aafa028a7e2eaaf7b2235a9bd2256">olc_PrepareEngine</a> ()</td></tr>
+<tr class="separator:aa19aafa028a7e2eaaf7b2235a9bd2256 inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a59645c08376a7d4e58673919f3bd0dfb inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#a59645c08376a7d4e58673919f3bd0dfb">olc_UpdateMouseState</a> (int32_t button, bool state)</td></tr>
+<tr class="separator:a59645c08376a7d4e58673919f3bd0dfb inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a61fde81846a9ef7f8fcf63080e6d350b inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#a61fde81846a9ef7f8fcf63080e6d350b">olc_UpdateKeyState</a> (int32_t key, bool state)</td></tr>
+<tr class="separator:a61fde81846a9ef7f8fcf63080e6d350b inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab3150ba487188e64940c294998fa38d3 inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#ab3150ba487188e64940c294998fa38d3">olc_UpdateMouseFocus</a> (bool state)</td></tr>
+<tr class="separator:ab3150ba487188e64940c294998fa38d3 inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7343712504f23f86c8490646ffc50e7f inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#a7343712504f23f86c8490646ffc50e7f">olc_UpdateKeyFocus</a> (bool state)</td></tr>
+<tr class="separator:a7343712504f23f86c8490646ffc50e7f inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2da1f2ebbc1a5fbdbf52890e6ac707b1 inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#a2da1f2ebbc1a5fbdbf52890e6ac707b1">olc_Terminate</a> ()</td></tr>
+<tr class="separator:a2da1f2ebbc1a5fbdbf52890e6ac707b1 inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a417b6cd564ccad1d878ae51cfdd3be8e inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#a417b6cd564ccad1d878ae51cfdd3be8e">olc_Reanimate</a> ()</td></tr>
+<tr class="separator:a417b6cd564ccad1d878ae51cfdd3be8e inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7b0f41bc4b4258a5c4fa1742b41d15e3 inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#a7b0f41bc4b4258a5c4fa1742b41d15e3">olc_IsRunning</a> ()</td></tr>
+<tr class="separator:a7b0f41bc4b4258a5c4fa1742b41d15e3 inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7afa0b57c65bd5d9a54c602afd4fe756 inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#a7afa0b57c65bd5d9a54c602afd4fe756">olc_ConfigureSystem</a> ()</td></tr>
+<tr class="separator:a7afa0b57c65bd5d9a54c602afd4fe756 inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a49a2ead57239e1595cc555effd3e3a2b inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#a49a2ead57239e1595cc555effd3e3a2b">pgex_Register</a> (<a class="el" href="classolc_1_1_p_g_e_x.html">olc::PGEX</a> *pgex)</td></tr>
+<tr class="separator:a49a2ead57239e1595cc555effd3e3a2b inherit pub_methods_classolc_1_1_pixel_game_engine"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a>
+Static Public Member Functions</h2></td></tr>
+<tr class="memitem:adfcb979db6333b335dee4e6d785aabcf"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="class_game_client.html">GameClient</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_game_client.html#adfcb979db6333b335dee4e6d785aabcf">getInstance</a> ()</td></tr>
+<tr class="separator:adfcb979db6333b335dee4e6d785aabcf"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="friends"></a>
+Friends</h2></td></tr>
+<tr class="memitem:a81ce304348a420752ee080480d2b3095"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_game_client.html#a81ce304348a420752ee080480d2b3095">main</a> (int, char *[])</td></tr>
+<tr class="separator:a81ce304348a420752ee080480d2b3095"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
+Additional Inherited Members</h2></td></tr>
+<tr class="inherit_header pub_attribs_classolc_1_1_pixel_game_engine"><td colspan="2" onclick="javascript:toggleInherit('pub_attribs_classolc_1_1_pixel_game_engine')"><img src="closed.png" alt="-"/>&#160;Public Attributes inherited from <a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td></tr>
+<tr class="memitem:a02d0f9c50770aa38aea1448f62d3604f inherit pub_attribs_classolc_1_1_pixel_game_engine"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#a02d0f9c50770aa38aea1448f62d3604f">sAppName</a></td></tr>
+<tr class="separator:a02d0f9c50770aa38aea1448f62d3604f inherit pub_attribs_classolc_1_1_pixel_game_engine"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>The game main class itself. manages the entities, adjust the screen... </p>
+
+<p class="definition">Definition at line <a class="el" href="main_game_8h_source.html#l00011">11</a> of file <a class="el" href="main_game_8h_source.html">mainGame.h</a>.</p>
+</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
+<a id="a1324a20c121e201e69391dfe7a08e546"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a1324a20c121e201e69391dfe7a08e546">&#9670;&nbsp;</a></span>GameClient()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">GameClient::GameClient </td>
+          <td>(</td>
+          <td class="paramtype">bool&#160;</td>
+          <td class="paramname"><em>debug</em> = <code>false</code></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="main_game_8cpp_source.html#l00023">23</a> of file <a class="el" href="main_game_8cpp_source.html">mainGame.cpp</a>.</p>
+
+</div>
+</div>
+<h2 class="groupheader">Member Function Documentation</h2>
+<a id="ac1df0a856bd945976c06b3977167d4c7"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ac1df0a856bd945976c06b3977167d4c7">&#9670;&nbsp;</a></span>addEntity()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void GameClient::addEntity </td>
+          <td>(</td>
+          <td class="paramtype">std::shared_ptr&lt; <a class="el" href="classentities_1_1_entity.html">entities::Entity</a> &gt; &amp;&#160;</td>
+          <td class="paramname"><em>entity</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Add a new entity to the world. you can also use +=. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">entity</td><td>entity </td></tr>
+  </table>
+  </dd>
+</dl>
+
+<p class="definition">Definition at line <a class="el" href="main_game_8cpp_source.html#l00140">140</a> of file <a class="el" href="main_game_8cpp_source.html">mainGame.cpp</a>.</p>
+
+</div>
+</div>
+<a id="a6984da0365fd19c81dbc8907b598bf49"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a6984da0365fd19c81dbc8907b598bf49">&#9670;&nbsp;</a></span>getEntities()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="class_dynamic_array.html">DynamicArray</a>&lt; std::shared_ptr&lt; <a class="el" href="classentities_1_1_entity.html">Entity</a> &gt; &gt; &amp; GameClient::getEntities </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="main_game_8cpp_source.html#l00029">29</a> of file <a class="el" href="main_game_8cpp_source.html">mainGame.cpp</a>.</p>
+
+</div>
+</div>
+<a id="adfcb979db6333b335dee4e6d785aabcf"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#adfcb979db6333b335dee4e6d785aabcf">&#9670;&nbsp;</a></span>getInstance()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="class_game_client.html">GameClient</a> &amp; GameClient::getInstance </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="main_game_8cpp_source.html#l00040">40</a> of file <a class="el" href="main_game_8cpp_source.html">mainGame.cpp</a>.</p>
+
+</div>
+</div>
+<a id="acc1e0f1d4836be4a8556289cfdfd4049"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#acc1e0f1d4836be4a8556289cfdfd4049">&#9670;&nbsp;</a></span>getPlayerEntity()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">std::shared_ptr&lt; <a class="el" href="classentities_1_1_player_entity.html">entities::PlayerEntity</a> &gt; GameClient::getPlayerEntity </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Get the main player. </p>
+<dl class="section return"><dt>Returns</dt><dd>the PlayerEntity </dd></dl>
+
+<p class="definition">Definition at line <a class="el" href="main_game_8cpp_source.html#l00156">156</a> of file <a class="el" href="main_game_8cpp_source.html">mainGame.cpp</a>.</p>
+
+</div>
+</div>
+<a id="a01a0c559c6cfe63557fa4b5d7aa9e72c"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a01a0c559c6cfe63557fa4b5d7aa9e72c">&#9670;&nbsp;</a></span>getScene()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">const <a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a> &amp; GameClient::getScene </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Get the screen details. needed in fire direction calculation. </p>
+<dl class="section return"><dt>Returns</dt><dd>the scene </dd></dl>
+
+<p class="definition">Definition at line <a class="el" href="main_game_8cpp_source.html#l00145">145</a> of file <a class="el" href="main_game_8cpp_source.html">mainGame.cpp</a>.</p>
+
+</div>
+</div>
+<a id="a698bb8a4ba91211dc4fcaa4079d8d070"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a698bb8a4ba91211dc4fcaa4079d8d070">&#9670;&nbsp;</a></span>OnUserCreate()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">bool GameClient::OnUserCreate </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Create a new game instance. </p>
+<dl class="section return"><dt>Returns</dt><dd></dd></dl>
+
+<p>Reimplemented from <a class="el" href="classolc_1_1_pixel_game_engine.html#a6a33b6ff7cd23dfd05b34416865fb5c3">olc::PixelGameEngine</a>.</p>
+
+<p class="definition">Definition at line <a class="el" href="main_game_8cpp_source.html#l00045">45</a> of file <a class="el" href="main_game_8cpp_source.html">mainGame.cpp</a>.</p>
+
+</div>
+</div>
+<a id="ab6e2efe37e67de64062bca35d8a11e2e"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ab6e2efe37e67de64062bca35d8a11e2e">&#9670;&nbsp;</a></span>OnUserUpdate()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">bool GameClient::OnUserUpdate </td>
+          <td>(</td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>fElapsedTime</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Update the game. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">fElapsedTime</td><td>the length of the last tick </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>false, if the game can quit </dd></dl>
+
+<p>Reimplemented from <a class="el" href="classolc_1_1_pixel_game_engine.html#af9379a3db341b0acb410ea543e30fdd1">olc::PixelGameEngine</a>.</p>
+
+<p class="definition">Definition at line <a class="el" href="main_game_8cpp_source.html#l00089">89</a> of file <a class="el" href="main_game_8cpp_source.html">mainGame.cpp</a>.</p>
+
+</div>
+</div>
+<a id="abf4100b1ee69f4f300346424139f8d93"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#abf4100b1ee69f4f300346424139f8d93">&#9670;&nbsp;</a></span>operator+=()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="class_game_client.html">GameClient</a> &amp; GameClient::operator+= </td>
+          <td>(</td>
+          <td class="paramtype">std::shared_ptr&lt; <a class="el" href="classentities_1_1_entity.html">entities::Entity</a> &gt;&#160;</td>
+          <td class="paramname"><em>entity</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Add an entity to the world. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">entity</td><td>the entity </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd><a class="el" href="class_game_client.html" title="The game main class itself. manages the entities, adjust the screen...">GameClient</a> </dd></dl>
+
+<p class="definition">Definition at line <a class="el" href="main_game_8cpp_source.html#l00150">150</a> of file <a class="el" href="main_game_8cpp_source.html">mainGame.cpp</a>.</p>
+
+</div>
+</div>
+<a id="a9af9a685c31d428921b0cf5976a63c14"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a9af9a685c31d428921b0cf5976a63c14">&#9670;&nbsp;</a></span>setDebugMode()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void GameClient::setDebugMode </td>
+          <td>(</td>
+          <td class="paramtype">bool&#160;</td>
+          <td class="paramname"><em>bl</em> = <code>true</code></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>turn on debug, caused by an exception </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">bl</td><td>true </td></tr>
+  </table>
+  </dd>
+</dl>
+
+<p class="definition">Definition at line <a class="el" href="main_game_8cpp_source.html#l00135">135</a> of file <a class="el" href="main_game_8cpp_source.html">mainGame.cpp</a>.</p>
+
+</div>
+</div>
+<h2 class="groupheader">Friends And Related Function Documentation</h2>
+<a id="a81ce304348a420752ee080480d2b3095"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a81ce304348a420752ee080480d2b3095">&#9670;&nbsp;</a></span>main</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">int main </td>
+          <td>(</td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>argc</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">char *&#160;</td>
+          <td class="paramname"><em>argv</em>[]&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">friend</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="game_8cpp_source.html#l00013">13</a> of file <a class="el" href="game_8cpp_source.html">game.cpp</a>.</p>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following files:<ul>
+<li>C:/Users/kosmx/Documents/GitHub/2d-game/<a class="el" href="main_game_8h_source.html">mainGame.h</a></li>
+<li>C:/Users/kosmx/Documents/GitHub/2d-game/<a class="el" href="main_game_8cpp_source.html">mainGame.cpp</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/class_game_client.png b/doxy/html/class_game_client.png
new file mode 100644
index 0000000000000000000000000000000000000000..6e88f5749b5dc603e51714f16a777cef4a577775
Binary files /dev/null and b/doxy/html/class_game_client.png differ
diff --git a/doxy/html/class_game_exception-members.html b/doxy/html/class_game_exception-members.html
new file mode 100644
index 0000000000000000000000000000000000000000..28b73f526f0941cac4e7563bbe53332e1cc96a33
--- /dev/null
+++ b/doxy/html/class_game_exception-members.html
@@ -0,0 +1,79 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">GameException Member List</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="class_game_exception.html">GameException</a>, including all inherited members.</p>
+<table class="directory">
+  <tr class="even"><td class="entry"><a class="el" href="class_game_exception.html#a076a7dd5228356c8d54dd0922d1c3048">GameException</a>(const std::string &amp;description, entities::Entity &amp;entity)</td><td class="entry"><a class="el" href="class_game_exception.html">GameException</a></td><td class="entry"></td></tr>
+</table></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/class_game_exception.html b/doxy/html/class_game_exception.html
new file mode 100644
index 0000000000000000000000000000000000000000..ff68a14b152fb65bf15bd4c493412be6cc3b12e9
--- /dev/null
+++ b/doxy/html/class_game_exception.html
@@ -0,0 +1,130 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: GameException Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="class_game_exception-members.html">List of all members</a>  </div>
+  <div class="headertitle">
+<div class="title">GameException Class Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p><code>#include &lt;<a class="el" href="_game_exception_8h_source.html">GameException.h</a>&gt;</code></p>
+<div class="dynheader">
+Inheritance diagram for GameException:</div>
+<div class="dyncontent">
+ <div class="center">
+  <img src="class_game_exception.png" alt=""/>
+ </div></div>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr class="memitem:a076a7dd5228356c8d54dd0922d1c3048"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_game_exception.html#a076a7dd5228356c8d54dd0922d1c3048">GameException</a> (const std::string &amp;description, <a class="el" href="classentities_1_1_entity.html">entities::Entity</a> &amp;entity)</td></tr>
+<tr class="separator:a076a7dd5228356c8d54dd0922d1c3048"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock">
+<p class="definition">Definition at line <a class="el" href="_game_exception_8h_source.html#l00009">9</a> of file <a class="el" href="_game_exception_8h_source.html">GameException.h</a>.</p>
+</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
+<a id="a076a7dd5228356c8d54dd0922d1c3048"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a076a7dd5228356c8d54dd0922d1c3048">&#9670;&nbsp;</a></span>GameException()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">GameException::GameException </td>
+          <td>(</td>
+          <td class="paramtype">const std::string &amp;&#160;</td>
+          <td class="paramname"><em>description</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a> &amp;&#160;</td>
+          <td class="paramname"><em>entity</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="_game_exception_8cpp_source.html#l00006">6</a> of file <a class="el" href="_game_exception_8cpp_source.html">GameException.cpp</a>.</p>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following files:<ul>
+<li>C:/Users/kosmx/Documents/GitHub/2d-game/<a class="el" href="_game_exception_8h_source.html">GameException.h</a></li>
+<li>C:/Users/kosmx/Documents/GitHub/2d-game/<a class="el" href="_game_exception_8cpp_source.html">GameException.cpp</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/class_game_exception.png b/doxy/html/class_game_exception.png
new file mode 100644
index 0000000000000000000000000000000000000000..6349555afe47b6301de213364248976e1d57d152
Binary files /dev/null and b/doxy/html/class_game_exception.png differ
diff --git a/doxy/html/class_render_exception.html b/doxy/html/class_render_exception.html
new file mode 100644
index 0000000000000000000000000000000000000000..adea78d12aec8b62b379d535b9c0cb6c16a3f8ed
--- /dev/null
+++ b/doxy/html/class_render_exception.html
@@ -0,0 +1,83 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: RenderException Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">RenderException Class Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p><code>#include &lt;<a class="el" href="_render_exception_8h_source.html">RenderException.h</a>&gt;</code></p>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock">
+<p class="definition">Definition at line <a class="el" href="_render_exception_8h_source.html#l00002">2</a> of file <a class="el" href="_render_exception_8h_source.html">RenderException.h</a>.</p>
+</div><hr/>The documentation for this class was generated from the following file:<ul>
+<li>C:/Users/kosmx/Documents/GitHub/2d-game/<a class="el" href="_render_exception_8h_source.html">RenderException.h</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/class_square_room_generator-members.html b/doxy/html/class_square_room_generator-members.html
new file mode 100644
index 0000000000000000000000000000000000000000..55fe60b22b1d26915cc14f9405e8fbb660137cba
--- /dev/null
+++ b/doxy/html/class_square_room_generator-members.html
@@ -0,0 +1,79 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">SquareRoomGenerator Member List</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="class_square_room_generator.html">SquareRoomGenerator</a>, including all inherited members.</p>
+<table class="directory">
+  <tr class="even"><td class="entry"><a class="el" href="class_square_room_generator.html#a5b9952abf9af7a8fc4241f3f9e93a616">generate</a>(GameClient &amp;client) override</td><td class="entry"><a class="el" href="class_square_room_generator.html">SquareRoomGenerator</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+</table></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/class_square_room_generator.html b/doxy/html/class_square_room_generator.html
new file mode 100644
index 0000000000000000000000000000000000000000..ddad82f868386d34f74eeb2c28452d4e10662a68
--- /dev/null
+++ b/doxy/html/class_square_room_generator.html
@@ -0,0 +1,137 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: SquareRoomGenerator Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="class_square_room_generator-members.html">List of all members</a>  </div>
+  <div class="headertitle">
+<div class="title">SquareRoomGenerator Class Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Generates a weird square dungeon, filled with stupid enemies and weapons.  
+ <a href="class_square_room_generator.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="_square_room_generator_8h_source.html">SquareRoomGenerator.h</a>&gt;</code></p>
+<div class="dynheader">
+Inheritance diagram for SquareRoomGenerator:</div>
+<div class="dyncontent">
+ <div class="center">
+  <img src="class_square_room_generator.png" usemap="#SquareRoomGenerator_map" alt=""/>
+  <map id="SquareRoomGenerator_map" name="SquareRoomGenerator_map">
+<area href="class_dungeon_generator.html" title="Generate random dungeons..." alt="DungeonGenerator" shape="rect" coords="0,0,140,24"/>
+  </map>
+</div></div>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr class="memitem:a5b9952abf9af7a8fc4241f3f9e93a616"><td class="memItemLeft" align="right" valign="top">std::shared_ptr&lt; <a class="el" href="classentities_1_1_player_entity.html">entities::PlayerEntity</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_square_room_generator.html#a5b9952abf9af7a8fc4241f3f9e93a616">generate</a> (<a class="el" href="class_game_client.html">GameClient</a> &amp;client) override</td></tr>
+<tr class="separator:a5b9952abf9af7a8fc4241f3f9e93a616"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Generates a weird square dungeon, filled with stupid enemies and weapons. </p>
+
+<p class="definition">Definition at line <a class="el" href="_square_room_generator_8h_source.html#l00006">6</a> of file <a class="el" href="_square_room_generator_8h_source.html">SquareRoomGenerator.h</a>.</p>
+</div><h2 class="groupheader">Member Function Documentation</h2>
+<a id="a5b9952abf9af7a8fc4241f3f9e93a616"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a5b9952abf9af7a8fc4241f3f9e93a616">&#9670;&nbsp;</a></span>generate()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">std::shared_ptr&lt; <a class="el" href="classentities_1_1_player_entity.html">PlayerEntity</a> &gt; SquareRoomGenerator::generate </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="class_game_client.html">GameClient</a> &amp;&#160;</td>
+          <td class="paramname"><em>client</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Implements <a class="el" href="class_dungeon_generator.html#add8fcec4f013307d734616106110a1ea">DungeonGenerator</a>.</p>
+
+<p class="definition">Definition at line <a class="el" href="_square_room_generator_8cpp_source.html#l00023">23</a> of file <a class="el" href="_square_room_generator_8cpp_source.html">SquareRoomGenerator.cpp</a>.</p>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following files:<ul>
+<li>C:/Users/kosmx/Documents/GitHub/2d-game/<a class="el" href="_square_room_generator_8h_source.html">SquareRoomGenerator.h</a></li>
+<li>C:/Users/kosmx/Documents/GitHub/2d-game/<a class="el" href="_square_room_generator_8cpp_source.html">SquareRoomGenerator.cpp</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/class_square_room_generator.png b/doxy/html/class_square_room_generator.png
new file mode 100644
index 0000000000000000000000000000000000000000..ecd6632e8154553528a13b65af07545c06e90396
Binary files /dev/null and b/doxy/html/class_square_room_generator.png differ
diff --git a/doxy/html/class_test_generator-members.html b/doxy/html/class_test_generator-members.html
new file mode 100644
index 0000000000000000000000000000000000000000..82b3e3c3eceed0a2449599a0f38679b08ce5f112
--- /dev/null
+++ b/doxy/html/class_test_generator-members.html
@@ -0,0 +1,79 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">TestGenerator Member List</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="class_test_generator.html">TestGenerator</a>, including all inherited members.</p>
+<table class="directory">
+  <tr class="even"><td class="entry"><a class="el" href="class_test_generator.html#aaacdd82f39d99e1dcbc847b674f245e1">generate</a>(GameClient &amp;client) override</td><td class="entry"><a class="el" href="class_test_generator.html">TestGenerator</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+</table></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/class_test_generator.html b/doxy/html/class_test_generator.html
new file mode 100644
index 0000000000000000000000000000000000000000..a61ca891df46fb89f8a34ccf1f78d9f2f609e1c9
--- /dev/null
+++ b/doxy/html/class_test_generator.html
@@ -0,0 +1,137 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: TestGenerator Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="class_test_generator-members.html">List of all members</a>  </div>
+  <div class="headertitle">
+<div class="title">TestGenerator Class Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Used for testing, doesn't random.  
+ <a href="class_test_generator.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="_test_generator_8h_source.html">TestGenerator.h</a>&gt;</code></p>
+<div class="dynheader">
+Inheritance diagram for TestGenerator:</div>
+<div class="dyncontent">
+ <div class="center">
+  <img src="class_test_generator.png" usemap="#TestGenerator_map" alt=""/>
+  <map id="TestGenerator_map" name="TestGenerator_map">
+<area href="class_dungeon_generator.html" title="Generate random dungeons..." alt="DungeonGenerator" shape="rect" coords="0,0,120,24"/>
+  </map>
+</div></div>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr class="memitem:aaacdd82f39d99e1dcbc847b674f245e1"><td class="memItemLeft" align="right" valign="top">std::shared_ptr&lt; <a class="el" href="classentities_1_1_player_entity.html">entities::PlayerEntity</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_test_generator.html#aaacdd82f39d99e1dcbc847b674f245e1">generate</a> (<a class="el" href="class_game_client.html">GameClient</a> &amp;client) override</td></tr>
+<tr class="separator:aaacdd82f39d99e1dcbc847b674f245e1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Used for testing, doesn't random. </p>
+
+<p class="definition">Definition at line <a class="el" href="_test_generator_8h_source.html#l00007">7</a> of file <a class="el" href="_test_generator_8h_source.html">TestGenerator.h</a>.</p>
+</div><h2 class="groupheader">Member Function Documentation</h2>
+<a id="aaacdd82f39d99e1dcbc847b674f245e1"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aaacdd82f39d99e1dcbc847b674f245e1">&#9670;&nbsp;</a></span>generate()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">shared_ptr&lt; <a class="el" href="classentities_1_1_player_entity.html">PlayerEntity</a> &gt; TestGenerator::generate </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="class_game_client.html">GameClient</a> &amp;&#160;</td>
+          <td class="paramname"><em>client</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Implements <a class="el" href="class_dungeon_generator.html#add8fcec4f013307d734616106110a1ea">DungeonGenerator</a>.</p>
+
+<p class="definition">Definition at line <a class="el" href="_test_generator_8cpp_source.html#l00016">16</a> of file <a class="el" href="_test_generator_8cpp_source.html">TestGenerator.cpp</a>.</p>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following files:<ul>
+<li>C:/Users/kosmx/Documents/GitHub/2d-game/<a class="el" href="_test_generator_8h_source.html">TestGenerator.h</a></li>
+<li>C:/Users/kosmx/Documents/GitHub/2d-game/<a class="el" href="_test_generator_8cpp_source.html">TestGenerator.cpp</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/class_test_generator.png b/doxy/html/class_test_generator.png
new file mode 100644
index 0000000000000000000000000000000000000000..30a07f4a4b2ef3850f8536a2dd11ed007b19777f
Binary files /dev/null and b/doxy/html/class_test_generator.png differ
diff --git a/doxy/html/classentities_1_1_character_entity-members.html b/doxy/html/classentities_1_1_character_entity-members.html
new file mode 100644
index 0000000000000000000000000000000000000000..fecf124be7323bae9d347b2c1333a6db3ead7970
--- /dev/null
+++ b/doxy/html/classentities_1_1_character_entity-members.html
@@ -0,0 +1,110 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="namespaceentities.html">entities</a></li><li class="navelem"><a class="el" href="classentities_1_1_character_entity.html">CharacterEntity</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">entities::CharacterEntity Member List</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="classentities_1_1_character_entity.html">entities::CharacterEntity</a>, including all inherited members.</p>
+<table class="directory">
+  <tr class="even"><td class="entry"><a class="el" href="classentities_1_1_entity.html#a59426fe1b7dcefe96a0a748250724ff6">canBeRemoved</a>() const</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classentities_1_1_character_entity.html#aa7c43269834b07ef51355a874be373e8">CharacterEntity</a>(render::ITexture &amp;skin, const olc::vf2d &amp;pos)</td><td class="entry"><a class="el" href="classentities_1_1_character_entity.html">entities::CharacterEntity</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classentities_1_1_living_entity.html#a07a7d7f7e43f2140e3e6337322f78224">collisionOffset</a>(GameClient &amp;client)</td><td class="entry"><a class="el" href="classentities_1_1_living_entity.html">entities::LivingEntity</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classentities_1_1_living_entity.html#a28d31eff59137171da3e23a8e3ef9c1c">damage</a>(int damage, Entity &amp;attacker) override</td><td class="entry"><a class="el" href="classentities_1_1_living_entity.html">entities::LivingEntity</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classentities_1_1_entity.html#a539ddef34b718b6068df421f316f4a6d">Entity</a>(const olc::vf2d &amp;pos)</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">explicit</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classentities_1_1_living_entity.html#a657626746aaed854f45ac3bb6d6c2a2f">getAnimPhase</a>() const</td><td class="entry"><a class="el" href="classentities_1_1_living_entity.html">entities::LivingEntity</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classentities_1_1_entity.html#a94d18db8d502d677b6f4215dc1e1d820">getCollision</a>(const Entity &amp;other)</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classentities_1_1_living_entity.html#a27f39311f1139c96967b28cbaf752bd2">getDirection</a>()</td><td class="entry"><a class="el" href="classentities_1_1_living_entity.html">entities::LivingEntity</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classentities_1_1_living_entity.html#aa965d3922663b974dd14cc5f8004ed65">getHitBoxSize</a>() const override</td><td class="entry"><a class="el" href="classentities_1_1_living_entity.html">entities::LivingEntity</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classentities_1_1_entity.html#a8c4b0c1eb69a673619e4c8943ef34f86">getName</a>() const</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classentities_1_1_entity.html#a799a692b988248dd23d207b95e7fe2b7">getPos</a>() const</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classentities_1_1_entity.html#ac60e9beb5a45fc65120e9779e680c04b">getSize</a>() const</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classentities_1_1_character_entity.html#afdae03f49fd5d47d0837ed660e37038f">getTexture</a>() override</td><td class="entry"><a class="el" href="classentities_1_1_character_entity.html">entities::CharacterEntity</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classentities_1_1_character_entity.html#a7926bfbac4481203c1bd8920fcb2c432">getWeapon</a>()</td><td class="entry"><a class="el" href="classentities_1_1_character_entity.html">entities::CharacterEntity</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classentities_1_1_living_entity.html#a78282129a711906b7973c4ecb37b8434">health</a></td><td class="entry"><a class="el" href="classentities_1_1_living_entity.html">entities::LivingEntity</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classentities_1_1_entity.html#afd80ddceccb36b87d0d80dcc7f88fc3b">init</a>(GameClient &amp;client)</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classentities_1_1_entity.html#aedac7bb35b729e4a02c582b9f4369ab8">is_alive</a></td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classentities_1_1_entity.html#a1453bca3376a185aa54135dd4958b244">is_initialized</a></td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classentities_1_1_entity.html#ab0ee90a84f2163b600e603f24cff046f">isAlive</a>() const</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classentities_1_1_entity.html#ab010066d52a02c63908f70ff6ef7d873">isInitialized</a>()</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classentities_1_1_living_entity.html#a08837d43e7338c4ceff9acfbbbffd94b">LivingEntity</a>(olc::vf2d pos, int health=100)</td><td class="entry"><a class="el" href="classentities_1_1_living_entity.html">entities::LivingEntity</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classentities_1_1_entity.html#ad0a172ff99a7e73aaaee3658d5e3ae08">operator WallEntity *</a>()</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classentities_1_1_entity.html#a04f9c2febe8d435138a07eb2f48ba96b">pos</a></td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classentities_1_1_character_entity.html#aeb6069f0f07d0914faf0f94c0cc33def">render</a>(olc::TransformedView &amp;scene) override</td><td class="entry"><a class="el" href="classentities_1_1_character_entity.html">entities::CharacterEntity</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classentities_1_1_living_entity.html#ad8b574e93d1fa34cdd119be6f0391acb">speed</a></td><td class="entry"><a class="el" href="classentities_1_1_living_entity.html">entities::LivingEntity</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classentities_1_1_character_entity.html#a295a77ffb22dd1a7b30164ab04ecf400">texture</a></td><td class="entry"><a class="el" href="classentities_1_1_character_entity.html">entities::CharacterEntity</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classentities_1_1_character_entity.html#ae7cdddc6dca655e7bf8c2f48424c5208">tick</a>(GameClient &amp;client, float deltaT, std::shared_ptr&lt; Entity &gt; &amp;shared_this) override</td><td class="entry"><a class="el" href="classentities_1_1_character_entity.html">entities::CharacterEntity</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classentities_1_1_entity.html#a64d968c160dee2fdfca68aff2e49946b">~Entity</a>()=default</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+</table></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/classentities_1_1_character_entity.html b/doxy/html/classentities_1_1_character_entity.html
new file mode 100644
index 0000000000000000000000000000000000000000..982ef61fb86df3fedefb1f2b5115cf066446ee8b
--- /dev/null
+++ b/doxy/html/classentities_1_1_character_entity.html
@@ -0,0 +1,408 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: entities::CharacterEntity Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="namespaceentities.html">entities</a></li><li class="navelem"><a class="el" href="classentities_1_1_character_entity.html">CharacterEntity</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="#pro-methods">Protected Member Functions</a> &#124;
+<a href="#pro-attribs">Protected Attributes</a> &#124;
+<a href="classentities_1_1_character_entity-members.html">List of all members</a>  </div>
+  <div class="headertitle">
+<div class="title">entities::CharacterEntity Class Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>A player or an enemy.  
+ <a href="classentities_1_1_character_entity.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="_character_entity_8h_source.html">CharacterEntity.h</a>&gt;</code></p>
+<div class="dynheader">
+Inheritance diagram for entities::CharacterEntity:</div>
+<div class="dyncontent">
+ <div class="center">
+  <img src="classentities_1_1_character_entity.png" usemap="#entities::CharacterEntity_map" alt=""/>
+  <map id="entities::CharacterEntity_map" name="entities::CharacterEntity_map">
+<area href="classentities_1_1_living_entity.html" title="Any moving animal or player." alt="entities::LivingEntity" shape="rect" coords="155,56,300,80"/>
+<area href="classentities_1_1_entity.html" title="Every object, what can be on the map." alt="entities::Entity" shape="rect" coords="155,0,300,24"/>
+<area href="classentities_1_1_dummy_entity.html" title="A test/dummy entity. it can&#39;t do anything... no, it can die." alt="entities::DummyEntity" shape="rect" coords="0,168,145,192"/>
+<area href="classentities_1_1_entity_with_a_i.html" title="The enemies. go after the player, and try to kill it." alt="entities::EntityWithAI" shape="rect" coords="155,168,300,192"/>
+<area href="classentities_1_1_player_entity.html" title="You, or the player." alt="entities::PlayerEntity" shape="rect" coords="310,168,455,192"/>
+  </map>
+</div></div>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr class="memitem:aa7c43269834b07ef51355a874be373e8"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_character_entity.html#aa7c43269834b07ef51355a874be373e8">CharacterEntity</a> (<a class="el" href="classrender_1_1_i_texture.html">render::ITexture</a> &amp;skin, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;<a class="el" href="classentities_1_1_entity.html#a04f9c2febe8d435138a07eb2f48ba96b">pos</a>)</td></tr>
+<tr class="separator:aa7c43269834b07ef51355a874be373e8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae7cdddc6dca655e7bf8c2f48424c5208"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_character_entity.html#ae7cdddc6dca655e7bf8c2f48424c5208">tick</a> (<a class="el" href="class_game_client.html">GameClient</a> &amp;client, float deltaT, std::shared_ptr&lt; <a class="el" href="classentities_1_1_entity.html">Entity</a> &gt; &amp;shared_this) override</td></tr>
+<tr class="memdesc:ae7cdddc6dca655e7bf8c2f48424c5208"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classentities_1_1_entity.html" title="Every object, what can be on the map.">Entity</a> tick multiple times per sec.  <a href="classentities_1_1_character_entity.html#ae7cdddc6dca655e7bf8c2f48424c5208">More...</a><br /></td></tr>
+<tr class="separator:ae7cdddc6dca655e7bf8c2f48424c5208"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aeb6069f0f07d0914faf0f94c0cc33def"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_character_entity.html#aeb6069f0f07d0914faf0f94c0cc33def">render</a> (<a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a> &amp;scene) override</td></tr>
+<tr class="memdesc:aeb6069f0f07d0914faf0f94c0cc33def"><td class="mdescLeft">&#160;</td><td class="mdescRight">render  <a href="classentities_1_1_character_entity.html#aeb6069f0f07d0914faf0f94c0cc33def">More...</a><br /></td></tr>
+<tr class="separator:aeb6069f0f07d0914faf0f94c0cc33def"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pub_methods_classentities_1_1_living_entity"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classentities_1_1_living_entity')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classentities_1_1_living_entity.html">entities::LivingEntity</a></td></tr>
+<tr class="memitem:a08837d43e7338c4ceff9acfbbbffd94b inherit pub_methods_classentities_1_1_living_entity"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_living_entity.html#a08837d43e7338c4ceff9acfbbbffd94b">LivingEntity</a> (<a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> <a class="el" href="classentities_1_1_entity.html#a04f9c2febe8d435138a07eb2f48ba96b">pos</a>, int <a class="el" href="classentities_1_1_living_entity.html#a78282129a711906b7973c4ecb37b8434">health</a>=100)</td></tr>
+<tr class="separator:a08837d43e7338c4ceff9acfbbbffd94b inherit pub_methods_classentities_1_1_living_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a28d31eff59137171da3e23a8e3ef9c1c inherit pub_methods_classentities_1_1_living_entity"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_living_entity.html#a28d31eff59137171da3e23a8e3ef9c1c">damage</a> (int damage, <a class="el" href="classentities_1_1_entity.html">Entity</a> &amp;attacker) override</td></tr>
+<tr class="memdesc:a28d31eff59137171da3e23a8e3ef9c1c inherit pub_methods_classentities_1_1_living_entity"><td class="mdescLeft">&#160;</td><td class="mdescRight">something damage this  <a href="classentities_1_1_living_entity.html#a28d31eff59137171da3e23a8e3ef9c1c">More...</a><br /></td></tr>
+<tr class="separator:a28d31eff59137171da3e23a8e3ef9c1c inherit pub_methods_classentities_1_1_living_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a27f39311f1139c96967b28cbaf752bd2 inherit pub_methods_classentities_1_1_living_entity"><td class="memItemLeft" align="right" valign="top">char&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_living_entity.html#a27f39311f1139c96967b28cbaf752bd2">getDirection</a> ()</td></tr>
+<tr class="memdesc:a27f39311f1139c96967b28cbaf752bd2 inherit pub_methods_classentities_1_1_living_entity"><td class="mdescLeft">&#160;</td><td class="mdescRight">Animation related getter.  <a href="classentities_1_1_living_entity.html#a27f39311f1139c96967b28cbaf752bd2">More...</a><br /></td></tr>
+<tr class="separator:a27f39311f1139c96967b28cbaf752bd2 inherit pub_methods_classentities_1_1_living_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a657626746aaed854f45ac3bb6d6c2a2f inherit pub_methods_classentities_1_1_living_entity"><td class="memItemLeft" align="right" valign="top">char&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_living_entity.html#a657626746aaed854f45ac3bb6d6c2a2f">getAnimPhase</a> () const</td></tr>
+<tr class="memdesc:a657626746aaed854f45ac3bb6d6c2a2f inherit pub_methods_classentities_1_1_living_entity"><td class="mdescLeft">&#160;</td><td class="mdescRight">Animation phase.  <a href="classentities_1_1_living_entity.html#a657626746aaed854f45ac3bb6d6c2a2f">More...</a><br /></td></tr>
+<tr class="separator:a657626746aaed854f45ac3bb6d6c2a2f inherit pub_methods_classentities_1_1_living_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af13cb8c3fabd2960746e21cd7dabe4d6 inherit pub_methods_classentities_1_1_living_entity"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_living_entity.html#af13cb8c3fabd2960746e21cd7dabe4d6">tick</a> (<a class="el" href="class_game_client.html">GameClient</a> &amp;client, float deltaT, std::shared_ptr&lt; <a class="el" href="classentities_1_1_entity.html">Entity</a> &gt; &amp;shared_this) override</td></tr>
+<tr class="memdesc:af13cb8c3fabd2960746e21cd7dabe4d6 inherit pub_methods_classentities_1_1_living_entity"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classentities_1_1_entity.html" title="Every object, what can be on the map.">Entity</a> tick multiple times per sec.  <a href="classentities_1_1_living_entity.html#af13cb8c3fabd2960746e21cd7dabe4d6">More...</a><br /></td></tr>
+<tr class="separator:af13cb8c3fabd2960746e21cd7dabe4d6 inherit pub_methods_classentities_1_1_living_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pub_methods_classentities_1_1_entity"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classentities_1_1_entity')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td></tr>
+<tr class="memitem:a539ddef34b718b6068df421f316f4a6d inherit pub_methods_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#a539ddef34b718b6068df421f316f4a6d">Entity</a> (const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;<a class="el" href="classentities_1_1_entity.html#a04f9c2febe8d435138a07eb2f48ba96b">pos</a>)</td></tr>
+<tr class="separator:a539ddef34b718b6068df421f316f4a6d inherit pub_methods_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afd80ddceccb36b87d0d80dcc7f88fc3b inherit pub_methods_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#afd80ddceccb36b87d0d80dcc7f88fc3b">init</a> (<a class="el" href="class_game_client.html">GameClient</a> &amp;client)</td></tr>
+<tr class="separator:afd80ddceccb36b87d0d80dcc7f88fc3b inherit pub_methods_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab010066d52a02c63908f70ff6ef7d873 inherit pub_methods_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#ab010066d52a02c63908f70ff6ef7d873">isInitialized</a> ()</td></tr>
+<tr class="separator:ab010066d52a02c63908f70ff6ef7d873 inherit pub_methods_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a799a692b988248dd23d207b95e7fe2b7 inherit pub_methods_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#a799a692b988248dd23d207b95e7fe2b7">getPos</a> () const</td></tr>
+<tr class="separator:a799a692b988248dd23d207b95e7fe2b7 inherit pub_methods_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac60e9beb5a45fc65120e9779e680c04b inherit pub_methods_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#ac60e9beb5a45fc65120e9779e680c04b">getSize</a> () const</td></tr>
+<tr class="memdesc:ac60e9beb5a45fc65120e9779e680c04b inherit pub_methods_classentities_1_1_entity"><td class="mdescLeft">&#160;</td><td class="mdescRight">get it's size to render  <a href="classentities_1_1_entity.html#ac60e9beb5a45fc65120e9779e680c04b">More...</a><br /></td></tr>
+<tr class="separator:ac60e9beb5a45fc65120e9779e680c04b inherit pub_methods_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab0ee90a84f2163b600e603f24cff046f inherit pub_methods_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#ab0ee90a84f2163b600e603f24cff046f">isAlive</a> () const</td></tr>
+<tr class="separator:ab0ee90a84f2163b600e603f24cff046f inherit pub_methods_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a59426fe1b7dcefe96a0a748250724ff6 inherit pub_methods_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#a59426fe1b7dcefe96a0a748250724ff6">canBeRemoved</a> () const</td></tr>
+<tr class="separator:a59426fe1b7dcefe96a0a748250724ff6 inherit pub_methods_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8c4b0c1eb69a673619e4c8943ef34f86 inherit pub_methods_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">virtual std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#a8c4b0c1eb69a673619e4c8943ef34f86">getName</a> () const</td></tr>
+<tr class="separator:a8c4b0c1eb69a673619e4c8943ef34f86 inherit pub_methods_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a64d968c160dee2fdfca68aff2e49946b inherit pub_methods_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#a64d968c160dee2fdfca68aff2e49946b">~Entity</a> ()=default</td></tr>
+<tr class="separator:a64d968c160dee2fdfca68aff2e49946b inherit pub_methods_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad0a172ff99a7e73aaaee3658d5e3ae08 inherit pub_methods_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#ad0a172ff99a7e73aaaee3658d5e3ae08">operator WallEntity *</a> ()</td></tr>
+<tr class="separator:ad0a172ff99a7e73aaaee3658d5e3ae08 inherit pub_methods_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
+Protected Member Functions</h2></td></tr>
+<tr class="memitem:a7926bfbac4481203c1bd8920fcb2c432"><td class="memItemLeft" align="right" valign="top">virtual std::shared_ptr&lt; <a class="el" href="classweapons_1_1_weapon.html">weapons::Weapon</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_character_entity.html#a7926bfbac4481203c1bd8920fcb2c432">getWeapon</a> ()</td></tr>
+<tr class="separator:a7926bfbac4481203c1bd8920fcb2c432"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afdae03f49fd5d47d0837ed660e37038f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classrender_1_1_i_texture.html">render::ITexture</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_character_entity.html#afdae03f49fd5d47d0837ed660e37038f">getTexture</a> () override</td></tr>
+<tr class="memdesc:afdae03f49fd5d47d0837ed660e37038f"><td class="mdescLeft">&#160;</td><td class="mdescRight">the object's texture  <a href="classentities_1_1_character_entity.html#afdae03f49fd5d47d0837ed660e37038f">More...</a><br /></td></tr>
+<tr class="separator:afdae03f49fd5d47d0837ed660e37038f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_methods_classentities_1_1_living_entity"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classentities_1_1_living_entity')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="classentities_1_1_living_entity.html">entities::LivingEntity</a></td></tr>
+<tr class="memitem:aa965d3922663b974dd14cc5f8004ed65 inherit pro_methods_classentities_1_1_living_entity"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_living_entity.html#aa965d3922663b974dd14cc5f8004ed65">getHitBoxSize</a> () const override</td></tr>
+<tr class="memdesc:aa965d3922663b974dd14cc5f8004ed65 inherit pro_methods_classentities_1_1_living_entity"><td class="mdescLeft">&#160;</td><td class="mdescRight">half hitbox size  <a href="classentities_1_1_living_entity.html#aa965d3922663b974dd14cc5f8004ed65">More...</a><br /></td></tr>
+<tr class="separator:aa965d3922663b974dd14cc5f8004ed65 inherit pro_methods_classentities_1_1_living_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a07a7d7f7e43f2140e3e6337322f78224 inherit pro_methods_classentities_1_1_living_entity"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_living_entity.html#a07a7d7f7e43f2140e3e6337322f78224">collisionOffset</a> (<a class="el" href="class_game_client.html">GameClient</a> &amp;client)</td></tr>
+<tr class="separator:a07a7d7f7e43f2140e3e6337322f78224 inherit pro_methods_classentities_1_1_living_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_methods_classentities_1_1_entity"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classentities_1_1_entity')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td></tr>
+<tr class="memitem:a94d18db8d502d677b6f4215dc1e1d820 inherit pro_methods_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#a94d18db8d502d677b6f4215dc1e1d820">getCollision</a> (const <a class="el" href="classentities_1_1_entity.html">Entity</a> &amp;other)</td></tr>
+<tr class="memdesc:a94d18db8d502d677b6f4215dc1e1d820 inherit pro_methods_classentities_1_1_entity"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate collision with another <a class="el" href="classentities_1_1_entity.html" title="Every object, what can be on the map.">Entity</a>, how much should this entity move, to avoid the collision.  <a href="classentities_1_1_entity.html#a94d18db8d502d677b6f4215dc1e1d820">More...</a><br /></td></tr>
+<tr class="separator:a94d18db8d502d677b6f4215dc1e1d820 inherit pro_methods_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-attribs"></a>
+Protected Attributes</h2></td></tr>
+<tr class="memitem:a295a77ffb22dd1a7b30164ab04ecf400"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classrender_1_1_i_texture.html">render::ITexture</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_character_entity.html#a295a77ffb22dd1a7b30164ab04ecf400">texture</a></td></tr>
+<tr class="separator:a295a77ffb22dd1a7b30164ab04ecf400"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_attribs_classentities_1_1_living_entity"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_classentities_1_1_living_entity')"><img src="closed.png" alt="-"/>&#160;Protected Attributes inherited from <a class="el" href="classentities_1_1_living_entity.html">entities::LivingEntity</a></td></tr>
+<tr class="memitem:ad8b574e93d1fa34cdd119be6f0391acb inherit pro_attribs_classentities_1_1_living_entity"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_living_entity.html#ad8b574e93d1fa34cdd119be6f0391acb">speed</a></td></tr>
+<tr class="memdesc:ad8b574e93d1fa34cdd119be6f0391acb inherit pro_attribs_classentities_1_1_living_entity"><td class="mdescLeft">&#160;</td><td class="mdescRight">Its speed and moving direction.  <a href="classentities_1_1_living_entity.html#ad8b574e93d1fa34cdd119be6f0391acb">More...</a><br /></td></tr>
+<tr class="separator:ad8b574e93d1fa34cdd119be6f0391acb inherit pro_attribs_classentities_1_1_living_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a78282129a711906b7973c4ecb37b8434 inherit pro_attribs_classentities_1_1_living_entity"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_living_entity.html#a78282129a711906b7973c4ecb37b8434">health</a></td></tr>
+<tr class="memdesc:a78282129a711906b7973c4ecb37b8434 inherit pro_attribs_classentities_1_1_living_entity"><td class="mdescLeft">&#160;</td><td class="mdescRight">It has a health.  <a href="classentities_1_1_living_entity.html#a78282129a711906b7973c4ecb37b8434">More...</a><br /></td></tr>
+<tr class="separator:a78282129a711906b7973c4ecb37b8434 inherit pro_attribs_classentities_1_1_living_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_attribs_classentities_1_1_entity"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_classentities_1_1_entity')"><img src="closed.png" alt="-"/>&#160;Protected Attributes inherited from <a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td></tr>
+<tr class="memitem:a04f9c2febe8d435138a07eb2f48ba96b inherit pro_attribs_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#a04f9c2febe8d435138a07eb2f48ba96b">pos</a></td></tr>
+<tr class="memdesc:a04f9c2febe8d435138a07eb2f48ba96b inherit pro_attribs_classentities_1_1_entity"><td class="mdescLeft">&#160;</td><td class="mdescRight">it's position  <a href="classentities_1_1_entity.html#a04f9c2febe8d435138a07eb2f48ba96b">More...</a><br /></td></tr>
+<tr class="separator:a04f9c2febe8d435138a07eb2f48ba96b inherit pro_attribs_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1453bca3376a185aa54135dd4958b244 inherit pro_attribs_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#a1453bca3376a185aa54135dd4958b244">is_initialized</a></td></tr>
+<tr class="memdesc:a1453bca3376a185aa54135dd4958b244 inherit pro_attribs_classentities_1_1_entity"><td class="mdescLeft">&#160;</td><td class="mdescRight">well, is initialized  <a href="classentities_1_1_entity.html#a1453bca3376a185aa54135dd4958b244">More...</a><br /></td></tr>
+<tr class="separator:a1453bca3376a185aa54135dd4958b244 inherit pro_attribs_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aedac7bb35b729e4a02c582b9f4369ab8 inherit pro_attribs_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#aedac7bb35b729e4a02c582b9f4369ab8">is_alive</a></td></tr>
+<tr class="memdesc:aedac7bb35b729e4a02c582b9f4369ab8 inherit pro_attribs_classentities_1_1_entity"><td class="mdescLeft">&#160;</td><td class="mdescRight">true, if it is alive  <a href="classentities_1_1_entity.html#aedac7bb35b729e4a02c582b9f4369ab8">More...</a><br /></td></tr>
+<tr class="separator:aedac7bb35b729e4a02c582b9f4369ab8 inherit pro_attribs_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>A player or an enemy. </p>
+
+<p class="definition">Definition at line <a class="el" href="_character_entity_8h_source.html#l00013">13</a> of file <a class="el" href="_character_entity_8h_source.html">CharacterEntity.h</a>.</p>
+</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
+<a id="aa7c43269834b07ef51355a874be373e8"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aa7c43269834b07ef51355a874be373e8">&#9670;&nbsp;</a></span>CharacterEntity()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">entities::CharacterEntity::CharacterEntity </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="classrender_1_1_i_texture.html">render::ITexture</a> &amp;&#160;</td>
+          <td class="paramname"><em>skin</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>pos</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="_character_entity_8cpp_source.html#l00014">14</a> of file <a class="el" href="_character_entity_8cpp_source.html">CharacterEntity.cpp</a>.</p>
+
+</div>
+</div>
+<h2 class="groupheader">Member Function Documentation</h2>
+<a id="afdae03f49fd5d47d0837ed660e37038f"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#afdae03f49fd5d47d0837ed660e37038f">&#9670;&nbsp;</a></span>getTexture()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classrender_1_1_i_texture.html">render::ITexture</a> &amp; entities::CharacterEntity::getTexture </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>the object's texture </p>
+<dl class="section return"><dt>Returns</dt><dd>the texture </dd></dl>
+
+<p>Implements <a class="el" href="classentities_1_1_entity.html#af01b796fb472ef3139aea41aeed36c76">entities::Entity</a>.</p>
+
+<p class="definition">Definition at line <a class="el" href="_character_entity_8cpp_source.html#l00010">10</a> of file <a class="el" href="_character_entity_8cpp_source.html">CharacterEntity.cpp</a>.</p>
+
+</div>
+</div>
+<a id="a7926bfbac4481203c1bd8920fcb2c432"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a7926bfbac4481203c1bd8920fcb2c432">&#9670;&nbsp;</a></span>getWeapon()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">std::shared_ptr&lt; <a class="el" href="classweapons_1_1_weapon.html">weapons::Weapon</a> &gt; entities::CharacterEntity::getWeapon </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">virtual</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+<p>Return null if not available </p>
+
+<p>Reimplemented in <a class="el" href="classentities_1_1_player_entity.html#a6b0fdc757c8e1d95012a31dab836f20a">entities::PlayerEntity</a>, and <a class="el" href="classentities_1_1_entity_with_a_i.html#a66937315f0a16d70c29359e89415d222">entities::EntityWithAI</a>.</p>
+
+<p class="definition">Definition at line <a class="el" href="_character_entity_8cpp_source.html#l00006">6</a> of file <a class="el" href="_character_entity_8cpp_source.html">CharacterEntity.cpp</a>.</p>
+
+</div>
+</div>
+<a id="aeb6069f0f07d0914faf0f94c0cc33def"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aeb6069f0f07d0914faf0f94c0cc33def">&#9670;&nbsp;</a></span>render()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">void entities::CharacterEntity::render </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a> &amp;&#160;</td>
+          <td class="paramname"><em>scene</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>render </p>
+
+<p>Reimplemented from <a class="el" href="classentities_1_1_entity.html#abcc4364b5b7250f0364f3550a618b3ab">entities::Entity</a>.</p>
+
+<p class="definition">Definition at line <a class="el" href="_character_entity_8cpp_source.html#l00024">24</a> of file <a class="el" href="_character_entity_8cpp_source.html">CharacterEntity.cpp</a>.</p>
+
+</div>
+</div>
+<a id="ae7cdddc6dca655e7bf8c2f48424c5208"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ae7cdddc6dca655e7bf8c2f48424c5208">&#9670;&nbsp;</a></span>tick()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">void entities::CharacterEntity::tick </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="class_game_client.html">GameClient</a> &amp;&#160;</td>
+          <td class="paramname"><em>client</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>deltaT</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">std::shared_ptr&lt; <a class="el" href="classentities_1_1_entity.html">Entity</a> &gt; &amp;&#160;</td>
+          <td class="paramname"><em>shared_this</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p><a class="el" href="classentities_1_1_entity.html" title="Every object, what can be on the map.">Entity</a> tick multiple times per sec. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">client</td><td>the game client object </td></tr>
+    <tr><td class="paramname">deltaT</td><td>how long take a tick </td></tr>
+    <tr><td class="paramname">shared_this</td><td>this as a shared_ptr </td></tr>
+  </table>
+  </dd>
+</dl>
+
+<p>Reimplemented from <a class="el" href="classentities_1_1_entity.html#a0440674bf90ae83d9a26aa4b0ac8309e">entities::Entity</a>.</p>
+
+<p>Reimplemented in <a class="el" href="classentities_1_1_player_entity.html#a9f5c7033ca46daf217c73cb5edbb0d68">entities::PlayerEntity</a>, and <a class="el" href="classentities_1_1_entity_with_a_i.html#a92708b14b042c03fa9a8673192867e72">entities::EntityWithAI</a>.</p>
+
+<p class="definition">Definition at line <a class="el" href="_character_entity_8cpp_source.html#l00016">16</a> of file <a class="el" href="_character_entity_8cpp_source.html">CharacterEntity.cpp</a>.</p>
+
+</div>
+</div>
+<h2 class="groupheader">Member Data Documentation</h2>
+<a id="a295a77ffb22dd1a7b30164ab04ecf400"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a295a77ffb22dd1a7b30164ab04ecf400">&#9670;&nbsp;</a></span>texture</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classrender_1_1_i_texture.html">render::ITexture</a>&amp; entities::CharacterEntity::texture</td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="_character_entity_8h_source.html#l00022">22</a> of file <a class="el" href="_character_entity_8h_source.html">CharacterEntity.h</a>.</p>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following files:<ul>
+<li>C:/Users/kosmx/Documents/GitHub/2d-game/<a class="el" href="_character_entity_8h_source.html">CharacterEntity.h</a></li>
+<li>C:/Users/kosmx/Documents/GitHub/2d-game/<a class="el" href="_character_entity_8cpp_source.html">CharacterEntity.cpp</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/classentities_1_1_character_entity.png b/doxy/html/classentities_1_1_character_entity.png
new file mode 100644
index 0000000000000000000000000000000000000000..ab32bd112a72f6d0aed08b5294280ad4cdd2c650
Binary files /dev/null and b/doxy/html/classentities_1_1_character_entity.png differ
diff --git a/doxy/html/classentities_1_1_dummy_entity-members.html b/doxy/html/classentities_1_1_dummy_entity-members.html
new file mode 100644
index 0000000000000000000000000000000000000000..9cdfa92dfe926a1ff07ce658fb39008b97694cb7
--- /dev/null
+++ b/doxy/html/classentities_1_1_dummy_entity-members.html
@@ -0,0 +1,111 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="namespaceentities.html">entities</a></li><li class="navelem"><a class="el" href="classentities_1_1_dummy_entity.html">DummyEntity</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">entities::DummyEntity Member List</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="classentities_1_1_dummy_entity.html">entities::DummyEntity</a>, including all inherited members.</p>
+<table class="directory">
+  <tr class="even"><td class="entry"><a class="el" href="classentities_1_1_entity.html#a59426fe1b7dcefe96a0a748250724ff6">canBeRemoved</a>() const</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classentities_1_1_character_entity.html#aa7c43269834b07ef51355a874be373e8">CharacterEntity</a>(render::ITexture &amp;skin, const olc::vf2d &amp;pos)</td><td class="entry"><a class="el" href="classentities_1_1_character_entity.html">entities::CharacterEntity</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classentities_1_1_living_entity.html#a07a7d7f7e43f2140e3e6337322f78224">collisionOffset</a>(GameClient &amp;client)</td><td class="entry"><a class="el" href="classentities_1_1_living_entity.html">entities::LivingEntity</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classentities_1_1_living_entity.html#a28d31eff59137171da3e23a8e3ef9c1c">damage</a>(int damage, Entity &amp;attacker) override</td><td class="entry"><a class="el" href="classentities_1_1_living_entity.html">entities::LivingEntity</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classentities_1_1_dummy_entity.html#aa68ec40dca291f94607c943d7d50c34b">DummyEntity</a>(olc::vf2d pos, render::ITexture &amp;skin, const std::string &amp;name=&quot;DummyEntity&quot;)</td><td class="entry"><a class="el" href="classentities_1_1_dummy_entity.html">entities::DummyEntity</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classentities_1_1_entity.html#a539ddef34b718b6068df421f316f4a6d">Entity</a>(const olc::vf2d &amp;pos)</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">explicit</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classentities_1_1_living_entity.html#a657626746aaed854f45ac3bb6d6c2a2f">getAnimPhase</a>() const</td><td class="entry"><a class="el" href="classentities_1_1_living_entity.html">entities::LivingEntity</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classentities_1_1_entity.html#a94d18db8d502d677b6f4215dc1e1d820">getCollision</a>(const Entity &amp;other)</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classentities_1_1_living_entity.html#a27f39311f1139c96967b28cbaf752bd2">getDirection</a>()</td><td class="entry"><a class="el" href="classentities_1_1_living_entity.html">entities::LivingEntity</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classentities_1_1_living_entity.html#aa965d3922663b974dd14cc5f8004ed65">getHitBoxSize</a>() const override</td><td class="entry"><a class="el" href="classentities_1_1_living_entity.html">entities::LivingEntity</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classentities_1_1_entity.html#a8c4b0c1eb69a673619e4c8943ef34f86">getName</a>() const</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classentities_1_1_entity.html#a799a692b988248dd23d207b95e7fe2b7">getPos</a>() const</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classentities_1_1_entity.html#ac60e9beb5a45fc65120e9779e680c04b">getSize</a>() const</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classentities_1_1_character_entity.html#afdae03f49fd5d47d0837ed660e37038f">getTexture</a>() override</td><td class="entry"><a class="el" href="classentities_1_1_character_entity.html">entities::CharacterEntity</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classentities_1_1_character_entity.html#a7926bfbac4481203c1bd8920fcb2c432">getWeapon</a>()</td><td class="entry"><a class="el" href="classentities_1_1_character_entity.html">entities::CharacterEntity</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classentities_1_1_living_entity.html#a78282129a711906b7973c4ecb37b8434">health</a></td><td class="entry"><a class="el" href="classentities_1_1_living_entity.html">entities::LivingEntity</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classentities_1_1_entity.html#afd80ddceccb36b87d0d80dcc7f88fc3b">init</a>(GameClient &amp;client)</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classentities_1_1_entity.html#aedac7bb35b729e4a02c582b9f4369ab8">is_alive</a></td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classentities_1_1_entity.html#a1453bca3376a185aa54135dd4958b244">is_initialized</a></td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classentities_1_1_entity.html#ab0ee90a84f2163b600e603f24cff046f">isAlive</a>() const</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classentities_1_1_entity.html#ab010066d52a02c63908f70ff6ef7d873">isInitialized</a>()</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classentities_1_1_living_entity.html#a08837d43e7338c4ceff9acfbbbffd94b">LivingEntity</a>(olc::vf2d pos, int health=100)</td><td class="entry"><a class="el" href="classentities_1_1_living_entity.html">entities::LivingEntity</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classentities_1_1_entity.html#ad0a172ff99a7e73aaaee3658d5e3ae08">operator WallEntity *</a>()</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classentities_1_1_entity.html#a04f9c2febe8d435138a07eb2f48ba96b">pos</a></td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classentities_1_1_character_entity.html#aeb6069f0f07d0914faf0f94c0cc33def">render</a>(olc::TransformedView &amp;scene) override</td><td class="entry"><a class="el" href="classentities_1_1_character_entity.html">entities::CharacterEntity</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classentities_1_1_living_entity.html#ad8b574e93d1fa34cdd119be6f0391acb">speed</a></td><td class="entry"><a class="el" href="classentities_1_1_living_entity.html">entities::LivingEntity</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classentities_1_1_character_entity.html#a295a77ffb22dd1a7b30164ab04ecf400">texture</a></td><td class="entry"><a class="el" href="classentities_1_1_character_entity.html">entities::CharacterEntity</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classentities_1_1_character_entity.html#ae7cdddc6dca655e7bf8c2f48424c5208">tick</a>(GameClient &amp;client, float deltaT, std::shared_ptr&lt; Entity &gt; &amp;shared_this) override</td><td class="entry"><a class="el" href="classentities_1_1_character_entity.html">entities::CharacterEntity</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classentities_1_1_entity.html#a64d968c160dee2fdfca68aff2e49946b">~Entity</a>()=default</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+</table></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/classentities_1_1_dummy_entity.html b/doxy/html/classentities_1_1_dummy_entity.html
new file mode 100644
index 0000000000000000000000000000000000000000..73fec090cd2269f461c6c41ff09dcc81c1f5b5ad
--- /dev/null
+++ b/doxy/html/classentities_1_1_dummy_entity.html
@@ -0,0 +1,234 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: entities::DummyEntity Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="namespaceentities.html">entities</a></li><li class="navelem"><a class="el" href="classentities_1_1_dummy_entity.html">DummyEntity</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="classentities_1_1_dummy_entity-members.html">List of all members</a>  </div>
+  <div class="headertitle">
+<div class="title">entities::DummyEntity Class Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>A test/dummy entity. it can't do anything... no, it can die.  
+ <a href="classentities_1_1_dummy_entity.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="_dummy_entity_8h_source.html">DummyEntity.h</a>&gt;</code></p>
+<div class="dynheader">
+Inheritance diagram for entities::DummyEntity:</div>
+<div class="dyncontent">
+ <div class="center">
+  <img src="classentities_1_1_dummy_entity.png" usemap="#entities::DummyEntity_map" alt=""/>
+  <map id="entities::DummyEntity_map" name="entities::DummyEntity_map">
+<area href="classentities_1_1_character_entity.html" title="A player or an enemy." alt="entities::CharacterEntity" shape="rect" coords="0,112,145,136"/>
+<area href="classentities_1_1_living_entity.html" title="Any moving animal or player." alt="entities::LivingEntity" shape="rect" coords="0,56,145,80"/>
+<area href="classentities_1_1_entity.html" title="Every object, what can be on the map." alt="entities::Entity" shape="rect" coords="0,0,145,24"/>
+  </map>
+</div></div>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr class="memitem:aa68ec40dca291f94607c943d7d50c34b"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_dummy_entity.html#aa68ec40dca291f94607c943d7d50c34b">DummyEntity</a> (<a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> <a class="el" href="classentities_1_1_entity.html#a04f9c2febe8d435138a07eb2f48ba96b">pos</a>, <a class="el" href="classrender_1_1_i_texture.html">render::ITexture</a> &amp;skin, const std::string &amp;name=&quot;DummyEntity&quot;)</td></tr>
+<tr class="separator:aa68ec40dca291f94607c943d7d50c34b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pub_methods_classentities_1_1_character_entity"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classentities_1_1_character_entity')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classentities_1_1_character_entity.html">entities::CharacterEntity</a></td></tr>
+<tr class="memitem:aa7c43269834b07ef51355a874be373e8 inherit pub_methods_classentities_1_1_character_entity"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_character_entity.html#aa7c43269834b07ef51355a874be373e8">CharacterEntity</a> (<a class="el" href="classrender_1_1_i_texture.html">render::ITexture</a> &amp;skin, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;<a class="el" href="classentities_1_1_entity.html#a04f9c2febe8d435138a07eb2f48ba96b">pos</a>)</td></tr>
+<tr class="separator:aa7c43269834b07ef51355a874be373e8 inherit pub_methods_classentities_1_1_character_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae7cdddc6dca655e7bf8c2f48424c5208 inherit pub_methods_classentities_1_1_character_entity"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_character_entity.html#ae7cdddc6dca655e7bf8c2f48424c5208">tick</a> (<a class="el" href="class_game_client.html">GameClient</a> &amp;client, float deltaT, std::shared_ptr&lt; <a class="el" href="classentities_1_1_entity.html">Entity</a> &gt; &amp;shared_this) override</td></tr>
+<tr class="memdesc:ae7cdddc6dca655e7bf8c2f48424c5208 inherit pub_methods_classentities_1_1_character_entity"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classentities_1_1_entity.html" title="Every object, what can be on the map.">Entity</a> tick multiple times per sec.  <a href="classentities_1_1_character_entity.html#ae7cdddc6dca655e7bf8c2f48424c5208">More...</a><br /></td></tr>
+<tr class="separator:ae7cdddc6dca655e7bf8c2f48424c5208 inherit pub_methods_classentities_1_1_character_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aeb6069f0f07d0914faf0f94c0cc33def inherit pub_methods_classentities_1_1_character_entity"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_character_entity.html#aeb6069f0f07d0914faf0f94c0cc33def">render</a> (<a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a> &amp;scene) override</td></tr>
+<tr class="memdesc:aeb6069f0f07d0914faf0f94c0cc33def inherit pub_methods_classentities_1_1_character_entity"><td class="mdescLeft">&#160;</td><td class="mdescRight">render  <a href="classentities_1_1_character_entity.html#aeb6069f0f07d0914faf0f94c0cc33def">More...</a><br /></td></tr>
+<tr class="separator:aeb6069f0f07d0914faf0f94c0cc33def inherit pub_methods_classentities_1_1_character_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pub_methods_classentities_1_1_living_entity"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classentities_1_1_living_entity')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classentities_1_1_living_entity.html">entities::LivingEntity</a></td></tr>
+<tr class="memitem:a08837d43e7338c4ceff9acfbbbffd94b inherit pub_methods_classentities_1_1_living_entity"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_living_entity.html#a08837d43e7338c4ceff9acfbbbffd94b">LivingEntity</a> (<a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> <a class="el" href="classentities_1_1_entity.html#a04f9c2febe8d435138a07eb2f48ba96b">pos</a>, int <a class="el" href="classentities_1_1_living_entity.html#a78282129a711906b7973c4ecb37b8434">health</a>=100)</td></tr>
+<tr class="separator:a08837d43e7338c4ceff9acfbbbffd94b inherit pub_methods_classentities_1_1_living_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a28d31eff59137171da3e23a8e3ef9c1c inherit pub_methods_classentities_1_1_living_entity"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_living_entity.html#a28d31eff59137171da3e23a8e3ef9c1c">damage</a> (int damage, <a class="el" href="classentities_1_1_entity.html">Entity</a> &amp;attacker) override</td></tr>
+<tr class="memdesc:a28d31eff59137171da3e23a8e3ef9c1c inherit pub_methods_classentities_1_1_living_entity"><td class="mdescLeft">&#160;</td><td class="mdescRight">something damage this  <a href="classentities_1_1_living_entity.html#a28d31eff59137171da3e23a8e3ef9c1c">More...</a><br /></td></tr>
+<tr class="separator:a28d31eff59137171da3e23a8e3ef9c1c inherit pub_methods_classentities_1_1_living_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a27f39311f1139c96967b28cbaf752bd2 inherit pub_methods_classentities_1_1_living_entity"><td class="memItemLeft" align="right" valign="top">char&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_living_entity.html#a27f39311f1139c96967b28cbaf752bd2">getDirection</a> ()</td></tr>
+<tr class="memdesc:a27f39311f1139c96967b28cbaf752bd2 inherit pub_methods_classentities_1_1_living_entity"><td class="mdescLeft">&#160;</td><td class="mdescRight">Animation related getter.  <a href="classentities_1_1_living_entity.html#a27f39311f1139c96967b28cbaf752bd2">More...</a><br /></td></tr>
+<tr class="separator:a27f39311f1139c96967b28cbaf752bd2 inherit pub_methods_classentities_1_1_living_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a657626746aaed854f45ac3bb6d6c2a2f inherit pub_methods_classentities_1_1_living_entity"><td class="memItemLeft" align="right" valign="top">char&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_living_entity.html#a657626746aaed854f45ac3bb6d6c2a2f">getAnimPhase</a> () const</td></tr>
+<tr class="memdesc:a657626746aaed854f45ac3bb6d6c2a2f inherit pub_methods_classentities_1_1_living_entity"><td class="mdescLeft">&#160;</td><td class="mdescRight">Animation phase.  <a href="classentities_1_1_living_entity.html#a657626746aaed854f45ac3bb6d6c2a2f">More...</a><br /></td></tr>
+<tr class="separator:a657626746aaed854f45ac3bb6d6c2a2f inherit pub_methods_classentities_1_1_living_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af13cb8c3fabd2960746e21cd7dabe4d6 inherit pub_methods_classentities_1_1_living_entity"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_living_entity.html#af13cb8c3fabd2960746e21cd7dabe4d6">tick</a> (<a class="el" href="class_game_client.html">GameClient</a> &amp;client, float deltaT, std::shared_ptr&lt; <a class="el" href="classentities_1_1_entity.html">Entity</a> &gt; &amp;shared_this) override</td></tr>
+<tr class="memdesc:af13cb8c3fabd2960746e21cd7dabe4d6 inherit pub_methods_classentities_1_1_living_entity"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classentities_1_1_entity.html" title="Every object, what can be on the map.">Entity</a> tick multiple times per sec.  <a href="classentities_1_1_living_entity.html#af13cb8c3fabd2960746e21cd7dabe4d6">More...</a><br /></td></tr>
+<tr class="separator:af13cb8c3fabd2960746e21cd7dabe4d6 inherit pub_methods_classentities_1_1_living_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pub_methods_classentities_1_1_entity"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classentities_1_1_entity')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td></tr>
+<tr class="memitem:a539ddef34b718b6068df421f316f4a6d inherit pub_methods_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#a539ddef34b718b6068df421f316f4a6d">Entity</a> (const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;<a class="el" href="classentities_1_1_entity.html#a04f9c2febe8d435138a07eb2f48ba96b">pos</a>)</td></tr>
+<tr class="separator:a539ddef34b718b6068df421f316f4a6d inherit pub_methods_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afd80ddceccb36b87d0d80dcc7f88fc3b inherit pub_methods_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#afd80ddceccb36b87d0d80dcc7f88fc3b">init</a> (<a class="el" href="class_game_client.html">GameClient</a> &amp;client)</td></tr>
+<tr class="separator:afd80ddceccb36b87d0d80dcc7f88fc3b inherit pub_methods_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab010066d52a02c63908f70ff6ef7d873 inherit pub_methods_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#ab010066d52a02c63908f70ff6ef7d873">isInitialized</a> ()</td></tr>
+<tr class="separator:ab010066d52a02c63908f70ff6ef7d873 inherit pub_methods_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a799a692b988248dd23d207b95e7fe2b7 inherit pub_methods_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#a799a692b988248dd23d207b95e7fe2b7">getPos</a> () const</td></tr>
+<tr class="separator:a799a692b988248dd23d207b95e7fe2b7 inherit pub_methods_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac60e9beb5a45fc65120e9779e680c04b inherit pub_methods_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#ac60e9beb5a45fc65120e9779e680c04b">getSize</a> () const</td></tr>
+<tr class="memdesc:ac60e9beb5a45fc65120e9779e680c04b inherit pub_methods_classentities_1_1_entity"><td class="mdescLeft">&#160;</td><td class="mdescRight">get it's size to render  <a href="classentities_1_1_entity.html#ac60e9beb5a45fc65120e9779e680c04b">More...</a><br /></td></tr>
+<tr class="separator:ac60e9beb5a45fc65120e9779e680c04b inherit pub_methods_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab0ee90a84f2163b600e603f24cff046f inherit pub_methods_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#ab0ee90a84f2163b600e603f24cff046f">isAlive</a> () const</td></tr>
+<tr class="separator:ab0ee90a84f2163b600e603f24cff046f inherit pub_methods_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a59426fe1b7dcefe96a0a748250724ff6 inherit pub_methods_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#a59426fe1b7dcefe96a0a748250724ff6">canBeRemoved</a> () const</td></tr>
+<tr class="separator:a59426fe1b7dcefe96a0a748250724ff6 inherit pub_methods_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8c4b0c1eb69a673619e4c8943ef34f86 inherit pub_methods_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">virtual std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#a8c4b0c1eb69a673619e4c8943ef34f86">getName</a> () const</td></tr>
+<tr class="separator:a8c4b0c1eb69a673619e4c8943ef34f86 inherit pub_methods_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a64d968c160dee2fdfca68aff2e49946b inherit pub_methods_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#a64d968c160dee2fdfca68aff2e49946b">~Entity</a> ()=default</td></tr>
+<tr class="separator:a64d968c160dee2fdfca68aff2e49946b inherit pub_methods_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad0a172ff99a7e73aaaee3658d5e3ae08 inherit pub_methods_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#ad0a172ff99a7e73aaaee3658d5e3ae08">operator WallEntity *</a> ()</td></tr>
+<tr class="separator:ad0a172ff99a7e73aaaee3658d5e3ae08 inherit pub_methods_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
+Additional Inherited Members</h2></td></tr>
+<tr class="inherit_header pro_methods_classentities_1_1_character_entity"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classentities_1_1_character_entity')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="classentities_1_1_character_entity.html">entities::CharacterEntity</a></td></tr>
+<tr class="memitem:a7926bfbac4481203c1bd8920fcb2c432 inherit pro_methods_classentities_1_1_character_entity"><td class="memItemLeft" align="right" valign="top">virtual std::shared_ptr&lt; <a class="el" href="classweapons_1_1_weapon.html">weapons::Weapon</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_character_entity.html#a7926bfbac4481203c1bd8920fcb2c432">getWeapon</a> ()</td></tr>
+<tr class="separator:a7926bfbac4481203c1bd8920fcb2c432 inherit pro_methods_classentities_1_1_character_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afdae03f49fd5d47d0837ed660e37038f inherit pro_methods_classentities_1_1_character_entity"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classrender_1_1_i_texture.html">render::ITexture</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_character_entity.html#afdae03f49fd5d47d0837ed660e37038f">getTexture</a> () override</td></tr>
+<tr class="memdesc:afdae03f49fd5d47d0837ed660e37038f inherit pro_methods_classentities_1_1_character_entity"><td class="mdescLeft">&#160;</td><td class="mdescRight">the object's texture  <a href="classentities_1_1_character_entity.html#afdae03f49fd5d47d0837ed660e37038f">More...</a><br /></td></tr>
+<tr class="separator:afdae03f49fd5d47d0837ed660e37038f inherit pro_methods_classentities_1_1_character_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_methods_classentities_1_1_living_entity"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classentities_1_1_living_entity')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="classentities_1_1_living_entity.html">entities::LivingEntity</a></td></tr>
+<tr class="memitem:aa965d3922663b974dd14cc5f8004ed65 inherit pro_methods_classentities_1_1_living_entity"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_living_entity.html#aa965d3922663b974dd14cc5f8004ed65">getHitBoxSize</a> () const override</td></tr>
+<tr class="memdesc:aa965d3922663b974dd14cc5f8004ed65 inherit pro_methods_classentities_1_1_living_entity"><td class="mdescLeft">&#160;</td><td class="mdescRight">half hitbox size  <a href="classentities_1_1_living_entity.html#aa965d3922663b974dd14cc5f8004ed65">More...</a><br /></td></tr>
+<tr class="separator:aa965d3922663b974dd14cc5f8004ed65 inherit pro_methods_classentities_1_1_living_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a07a7d7f7e43f2140e3e6337322f78224 inherit pro_methods_classentities_1_1_living_entity"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_living_entity.html#a07a7d7f7e43f2140e3e6337322f78224">collisionOffset</a> (<a class="el" href="class_game_client.html">GameClient</a> &amp;client)</td></tr>
+<tr class="separator:a07a7d7f7e43f2140e3e6337322f78224 inherit pro_methods_classentities_1_1_living_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_methods_classentities_1_1_entity"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classentities_1_1_entity')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td></tr>
+<tr class="memitem:a94d18db8d502d677b6f4215dc1e1d820 inherit pro_methods_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#a94d18db8d502d677b6f4215dc1e1d820">getCollision</a> (const <a class="el" href="classentities_1_1_entity.html">Entity</a> &amp;other)</td></tr>
+<tr class="memdesc:a94d18db8d502d677b6f4215dc1e1d820 inherit pro_methods_classentities_1_1_entity"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate collision with another <a class="el" href="classentities_1_1_entity.html" title="Every object, what can be on the map.">Entity</a>, how much should this entity move, to avoid the collision.  <a href="classentities_1_1_entity.html#a94d18db8d502d677b6f4215dc1e1d820">More...</a><br /></td></tr>
+<tr class="separator:a94d18db8d502d677b6f4215dc1e1d820 inherit pro_methods_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_attribs_classentities_1_1_character_entity"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_classentities_1_1_character_entity')"><img src="closed.png" alt="-"/>&#160;Protected Attributes inherited from <a class="el" href="classentities_1_1_character_entity.html">entities::CharacterEntity</a></td></tr>
+<tr class="memitem:a295a77ffb22dd1a7b30164ab04ecf400 inherit pro_attribs_classentities_1_1_character_entity"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classrender_1_1_i_texture.html">render::ITexture</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_character_entity.html#a295a77ffb22dd1a7b30164ab04ecf400">texture</a></td></tr>
+<tr class="separator:a295a77ffb22dd1a7b30164ab04ecf400 inherit pro_attribs_classentities_1_1_character_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_attribs_classentities_1_1_living_entity"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_classentities_1_1_living_entity')"><img src="closed.png" alt="-"/>&#160;Protected Attributes inherited from <a class="el" href="classentities_1_1_living_entity.html">entities::LivingEntity</a></td></tr>
+<tr class="memitem:ad8b574e93d1fa34cdd119be6f0391acb inherit pro_attribs_classentities_1_1_living_entity"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_living_entity.html#ad8b574e93d1fa34cdd119be6f0391acb">speed</a></td></tr>
+<tr class="memdesc:ad8b574e93d1fa34cdd119be6f0391acb inherit pro_attribs_classentities_1_1_living_entity"><td class="mdescLeft">&#160;</td><td class="mdescRight">Its speed and moving direction.  <a href="classentities_1_1_living_entity.html#ad8b574e93d1fa34cdd119be6f0391acb">More...</a><br /></td></tr>
+<tr class="separator:ad8b574e93d1fa34cdd119be6f0391acb inherit pro_attribs_classentities_1_1_living_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a78282129a711906b7973c4ecb37b8434 inherit pro_attribs_classentities_1_1_living_entity"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_living_entity.html#a78282129a711906b7973c4ecb37b8434">health</a></td></tr>
+<tr class="memdesc:a78282129a711906b7973c4ecb37b8434 inherit pro_attribs_classentities_1_1_living_entity"><td class="mdescLeft">&#160;</td><td class="mdescRight">It has a health.  <a href="classentities_1_1_living_entity.html#a78282129a711906b7973c4ecb37b8434">More...</a><br /></td></tr>
+<tr class="separator:a78282129a711906b7973c4ecb37b8434 inherit pro_attribs_classentities_1_1_living_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_attribs_classentities_1_1_entity"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_classentities_1_1_entity')"><img src="closed.png" alt="-"/>&#160;Protected Attributes inherited from <a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td></tr>
+<tr class="memitem:a04f9c2febe8d435138a07eb2f48ba96b inherit pro_attribs_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#a04f9c2febe8d435138a07eb2f48ba96b">pos</a></td></tr>
+<tr class="memdesc:a04f9c2febe8d435138a07eb2f48ba96b inherit pro_attribs_classentities_1_1_entity"><td class="mdescLeft">&#160;</td><td class="mdescRight">it's position  <a href="classentities_1_1_entity.html#a04f9c2febe8d435138a07eb2f48ba96b">More...</a><br /></td></tr>
+<tr class="separator:a04f9c2febe8d435138a07eb2f48ba96b inherit pro_attribs_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1453bca3376a185aa54135dd4958b244 inherit pro_attribs_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#a1453bca3376a185aa54135dd4958b244">is_initialized</a></td></tr>
+<tr class="memdesc:a1453bca3376a185aa54135dd4958b244 inherit pro_attribs_classentities_1_1_entity"><td class="mdescLeft">&#160;</td><td class="mdescRight">well, is initialized  <a href="classentities_1_1_entity.html#a1453bca3376a185aa54135dd4958b244">More...</a><br /></td></tr>
+<tr class="separator:a1453bca3376a185aa54135dd4958b244 inherit pro_attribs_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aedac7bb35b729e4a02c582b9f4369ab8 inherit pro_attribs_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#aedac7bb35b729e4a02c582b9f4369ab8">is_alive</a></td></tr>
+<tr class="memdesc:aedac7bb35b729e4a02c582b9f4369ab8 inherit pro_attribs_classentities_1_1_entity"><td class="mdescLeft">&#160;</td><td class="mdescRight">true, if it is alive  <a href="classentities_1_1_entity.html#aedac7bb35b729e4a02c582b9f4369ab8">More...</a><br /></td></tr>
+<tr class="separator:aedac7bb35b729e4a02c582b9f4369ab8 inherit pro_attribs_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>A test/dummy entity. it can't do anything... no, it can die. </p>
+
+<p class="definition">Definition at line <a class="el" href="_dummy_entity_8h_source.html#l00008">8</a> of file <a class="el" href="_dummy_entity_8h_source.html">DummyEntity.h</a>.</p>
+</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
+<a id="aa68ec40dca291f94607c943d7d50c34b"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aa68ec40dca291f94607c943d7d50c34b">&#9670;&nbsp;</a></span>DummyEntity()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">entities::DummyEntity::DummyEntity </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a>&#160;</td>
+          <td class="paramname"><em>pos</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="classrender_1_1_i_texture.html">render::ITexture</a> &amp;&#160;</td>
+          <td class="paramname"><em>skin</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const std::string &amp;&#160;</td>
+          <td class="paramname"><em>name</em> = <code>&quot;DummyEntity&quot;</code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="_dummy_entity_8cpp_source.html#l00005">5</a> of file <a class="el" href="_dummy_entity_8cpp_source.html">DummyEntity.cpp</a>.</p>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following files:<ul>
+<li>C:/Users/kosmx/Documents/GitHub/2d-game/<a class="el" href="_dummy_entity_8h_source.html">DummyEntity.h</a></li>
+<li>C:/Users/kosmx/Documents/GitHub/2d-game/<a class="el" href="_dummy_entity_8cpp_source.html">DummyEntity.cpp</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/classentities_1_1_dummy_entity.png b/doxy/html/classentities_1_1_dummy_entity.png
new file mode 100644
index 0000000000000000000000000000000000000000..5bc5e1d08c1b9438c229e24969da0a9993fd20bb
Binary files /dev/null and b/doxy/html/classentities_1_1_dummy_entity.png differ
diff --git a/doxy/html/classentities_1_1_entity-members.html b/doxy/html/classentities_1_1_entity-members.html
new file mode 100644
index 0000000000000000000000000000000000000000..85168bd3c0dde1ea5c022bf5fa7c59aa379685e8
--- /dev/null
+++ b/doxy/html/classentities_1_1_entity-members.html
@@ -0,0 +1,101 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="namespaceentities.html">entities</a></li><li class="navelem"><a class="el" href="classentities_1_1_entity.html">Entity</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">entities::Entity Member List</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="classentities_1_1_entity.html">entities::Entity</a>, including all inherited members.</p>
+<table class="directory">
+  <tr class="even"><td class="entry"><a class="el" href="classentities_1_1_entity.html#a59426fe1b7dcefe96a0a748250724ff6">canBeRemoved</a>() const</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classentities_1_1_entity.html#af7fc9949fc50b1b31abb36a3d51b0597">damage</a>(int damage, Entity &amp;attacker)=0</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classentities_1_1_entity.html#a539ddef34b718b6068df421f316f4a6d">Entity</a>(const olc::vf2d &amp;pos)</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">explicit</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classentities_1_1_entity.html#a94d18db8d502d677b6f4215dc1e1d820">getCollision</a>(const Entity &amp;other)</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classentities_1_1_entity.html#a9cd7ba81ddbd978b8f43e9f10e97492f">getHitBoxSize</a>() const =0</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">pure virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classentities_1_1_entity.html#a8c4b0c1eb69a673619e4c8943ef34f86">getName</a>() const</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classentities_1_1_entity.html#a799a692b988248dd23d207b95e7fe2b7">getPos</a>() const</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classentities_1_1_entity.html#ac60e9beb5a45fc65120e9779e680c04b">getSize</a>() const</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classentities_1_1_entity.html#af01b796fb472ef3139aea41aeed36c76">getTexture</a>()=0</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">pure virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classentities_1_1_entity.html#afd80ddceccb36b87d0d80dcc7f88fc3b">init</a>(GameClient &amp;client)</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classentities_1_1_entity.html#aedac7bb35b729e4a02c582b9f4369ab8">is_alive</a></td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classentities_1_1_entity.html#a1453bca3376a185aa54135dd4958b244">is_initialized</a></td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classentities_1_1_entity.html#ab0ee90a84f2163b600e603f24cff046f">isAlive</a>() const</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classentities_1_1_entity.html#ab010066d52a02c63908f70ff6ef7d873">isInitialized</a>()</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classentities_1_1_entity.html#ad0a172ff99a7e73aaaee3658d5e3ae08">operator WallEntity *</a>()</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classentities_1_1_entity.html#a04f9c2febe8d435138a07eb2f48ba96b">pos</a></td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classentities_1_1_entity.html#abcc4364b5b7250f0364f3550a618b3ab">render</a>(olc::TransformedView &amp;scene)</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classentities_1_1_entity.html#a0440674bf90ae83d9a26aa4b0ac8309e">tick</a>(GameClient &amp;client, float deltaT, std::shared_ptr&lt; Entity &gt; &amp;shared_this)</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classentities_1_1_entity.html#a64d968c160dee2fdfca68aff2e49946b">~Entity</a>()=default</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+</table></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/classentities_1_1_entity.html b/doxy/html/classentities_1_1_entity.html
new file mode 100644
index 0000000000000000000000000000000000000000..f4841fa2d8084b89ca803b9b9276cdbc23708a4e
--- /dev/null
+++ b/doxy/html/classentities_1_1_entity.html
@@ -0,0 +1,769 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: entities::Entity Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="namespaceentities.html">entities</a></li><li class="navelem"><a class="el" href="classentities_1_1_entity.html">Entity</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="#pro-methods">Protected Member Functions</a> &#124;
+<a href="#pro-attribs">Protected Attributes</a> &#124;
+<a href="classentities_1_1_entity-members.html">List of all members</a>  </div>
+  <div class="headertitle">
+<div class="title">entities::Entity Class Reference<span class="mlabels"><span class="mlabel">abstract</span></span></div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Every object, what can be on the map.  
+ <a href="classentities_1_1_entity.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="_entity_8h_source.html">Entity.h</a>&gt;</code></p>
+<div class="dynheader">
+Inheritance diagram for entities::Entity:</div>
+<div class="dyncontent">
+ <div class="center">
+  <img src="classentities_1_1_entity.png" usemap="#entities::Entity_map" alt=""/>
+  <map id="entities::Entity_map" name="entities::Entity_map">
+<area href="classentities_1_1_living_entity.html" title="Any moving animal or player." alt="entities::LivingEntity" shape="rect" coords="200,56,390,80"/>
+<area href="classentities_1_1_projectile_entity.html" title="A projectile, a bullet." alt="entities::ProjectileEntity" shape="rect" coords="400,56,590,80"/>
+<area href="classentities_1_1_wall_entity.html" title="Just a stupid wall, it doesn&#39;t do much, can&#39;t be killed..." alt="entities::WallEntity" shape="rect" coords="600,56,790,80"/>
+<area href="classweapons_1_1_weapon.html" title="You can throw it to the ground, this is why it&#39;s an entity. But it will be possible to use it...." alt="weapons::Weapon" shape="rect" coords="800,56,990,80"/>
+<area href="classentities_1_1_character_entity.html" title="A player or an enemy." alt="entities::CharacterEntity" shape="rect" coords="200,112,390,136"/>
+<area href="classentities_1_1_explosive_projectile.html" title="A projectile, that explodes." alt="entities::ExplosiveProjectile" shape="rect" coords="400,112,590,136"/>
+<area href="classweapons_1_1_melee_weapon.html" title="A melee weapon, like a spoon." alt="weapons::MeleeWeapon" shape="rect" coords="700,112,890,136"/>
+<area href="classweapons_1_1_ranged_weapon.html" title="Any weapon, what does shoot. not melee." alt="weapons::RangedWeapon" shape="rect" coords="900,112,1090,136"/>
+<area href="classentities_1_1_dummy_entity.html" title="A test/dummy entity. it can&#39;t do anything... no, it can die." alt="entities::DummyEntity" shape="rect" coords="0,168,190,192"/>
+<area href="classentities_1_1_entity_with_a_i.html" title="The enemies. go after the player, and try to kill it." alt="entities::EntityWithAI" shape="rect" coords="200,168,390,192"/>
+<area href="classentities_1_1_player_entity.html" title="You, or the player." alt="entities::PlayerEntity" shape="rect" coords="400,168,590,192"/>
+<area href="classweapons_1_1_typical_melee_weapon.html" title="A typical melee weapon. I want to do not typical melee weapons too." alt="weapons::TypicalMeleeWeapon" shape="rect" coords="700,168,890,192"/>
+<area href="classweapons_1_1_pistol.html" title="Just a pistol, nothing too dangerous." alt="weapons::Pistol" shape="rect" coords="900,168,1090,192"/>
+<area href="classweapons_1_1_e_m_gun.html" title="Weapon with energy level." alt="weapons::EMGun" shape="rect" coords="900,224,1090,248"/>
+<area href="classweapons_1_1_glitch_gun.html" title="TODO make the bug weapon more buggy." alt="weapons::GlitchGun" shape="rect" coords="900,280,1090,304"/>
+  </map>
+</div></div>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr class="memitem:a539ddef34b718b6068df421f316f4a6d"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#a539ddef34b718b6068df421f316f4a6d">Entity</a> (const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;<a class="el" href="classentities_1_1_entity.html#a04f9c2febe8d435138a07eb2f48ba96b">pos</a>)</td></tr>
+<tr class="separator:a539ddef34b718b6068df421f316f4a6d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afd80ddceccb36b87d0d80dcc7f88fc3b"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#afd80ddceccb36b87d0d80dcc7f88fc3b">init</a> (<a class="el" href="class_game_client.html">GameClient</a> &amp;client)</td></tr>
+<tr class="separator:afd80ddceccb36b87d0d80dcc7f88fc3b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab010066d52a02c63908f70ff6ef7d873"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#ab010066d52a02c63908f70ff6ef7d873">isInitialized</a> ()</td></tr>
+<tr class="separator:ab010066d52a02c63908f70ff6ef7d873"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a799a692b988248dd23d207b95e7fe2b7"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#a799a692b988248dd23d207b95e7fe2b7">getPos</a> () const</td></tr>
+<tr class="separator:a799a692b988248dd23d207b95e7fe2b7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac60e9beb5a45fc65120e9779e680c04b"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#ac60e9beb5a45fc65120e9779e680c04b">getSize</a> () const</td></tr>
+<tr class="memdesc:ac60e9beb5a45fc65120e9779e680c04b"><td class="mdescLeft">&#160;</td><td class="mdescRight">get it's size to render  <a href="classentities_1_1_entity.html#ac60e9beb5a45fc65120e9779e680c04b">More...</a><br /></td></tr>
+<tr class="separator:ac60e9beb5a45fc65120e9779e680c04b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab0ee90a84f2163b600e603f24cff046f"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#ab0ee90a84f2163b600e603f24cff046f">isAlive</a> () const</td></tr>
+<tr class="separator:ab0ee90a84f2163b600e603f24cff046f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a59426fe1b7dcefe96a0a748250724ff6"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#a59426fe1b7dcefe96a0a748250724ff6">canBeRemoved</a> () const</td></tr>
+<tr class="separator:a59426fe1b7dcefe96a0a748250724ff6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0440674bf90ae83d9a26aa4b0ac8309e"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#a0440674bf90ae83d9a26aa4b0ac8309e">tick</a> (<a class="el" href="class_game_client.html">GameClient</a> &amp;client, float deltaT, std::shared_ptr&lt; <a class="el" href="classentities_1_1_entity.html">Entity</a> &gt; &amp;shared_this)</td></tr>
+<tr class="memdesc:a0440674bf90ae83d9a26aa4b0ac8309e"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classentities_1_1_entity.html" title="Every object, what can be on the map.">Entity</a> tick multiple times per sec.  <a href="classentities_1_1_entity.html#a0440674bf90ae83d9a26aa4b0ac8309e">More...</a><br /></td></tr>
+<tr class="separator:a0440674bf90ae83d9a26aa4b0ac8309e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af7fc9949fc50b1b31abb36a3d51b0597"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#af7fc9949fc50b1b31abb36a3d51b0597">damage</a> (int damage, <a class="el" href="classentities_1_1_entity.html">Entity</a> &amp;attacker)=0</td></tr>
+<tr class="memdesc:af7fc9949fc50b1b31abb36a3d51b0597"><td class="mdescLeft">&#160;</td><td class="mdescRight">something damage this  <a href="classentities_1_1_entity.html#af7fc9949fc50b1b31abb36a3d51b0597">More...</a><br /></td></tr>
+<tr class="separator:af7fc9949fc50b1b31abb36a3d51b0597"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abcc4364b5b7250f0364f3550a618b3ab"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#abcc4364b5b7250f0364f3550a618b3ab">render</a> (<a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a> &amp;scene)</td></tr>
+<tr class="memdesc:abcc4364b5b7250f0364f3550a618b3ab"><td class="mdescLeft">&#160;</td><td class="mdescRight">render  <a href="classentities_1_1_entity.html#abcc4364b5b7250f0364f3550a618b3ab">More...</a><br /></td></tr>
+<tr class="separator:abcc4364b5b7250f0364f3550a618b3ab"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8c4b0c1eb69a673619e4c8943ef34f86"><td class="memItemLeft" align="right" valign="top">virtual std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#a8c4b0c1eb69a673619e4c8943ef34f86">getName</a> () const</td></tr>
+<tr class="separator:a8c4b0c1eb69a673619e4c8943ef34f86"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a64d968c160dee2fdfca68aff2e49946b"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#a64d968c160dee2fdfca68aff2e49946b">~Entity</a> ()=default</td></tr>
+<tr class="separator:a64d968c160dee2fdfca68aff2e49946b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad0a172ff99a7e73aaaee3658d5e3ae08"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#ad0a172ff99a7e73aaaee3658d5e3ae08">operator WallEntity *</a> ()</td></tr>
+<tr class="separator:ad0a172ff99a7e73aaaee3658d5e3ae08"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
+Protected Member Functions</h2></td></tr>
+<tr class="memitem:af01b796fb472ef3139aea41aeed36c76"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classrender_1_1_i_texture.html">render::ITexture</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#af01b796fb472ef3139aea41aeed36c76">getTexture</a> ()=0</td></tr>
+<tr class="memdesc:af01b796fb472ef3139aea41aeed36c76"><td class="mdescLeft">&#160;</td><td class="mdescRight">the object's texture  <a href="classentities_1_1_entity.html#af01b796fb472ef3139aea41aeed36c76">More...</a><br /></td></tr>
+<tr class="separator:af01b796fb472ef3139aea41aeed36c76"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9cd7ba81ddbd978b8f43e9f10e97492f"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#a9cd7ba81ddbd978b8f43e9f10e97492f">getHitBoxSize</a> () const =0</td></tr>
+<tr class="memdesc:a9cd7ba81ddbd978b8f43e9f10e97492f"><td class="mdescLeft">&#160;</td><td class="mdescRight">half hitbox size  <a href="classentities_1_1_entity.html#a9cd7ba81ddbd978b8f43e9f10e97492f">More...</a><br /></td></tr>
+<tr class="separator:a9cd7ba81ddbd978b8f43e9f10e97492f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a94d18db8d502d677b6f4215dc1e1d820"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#a94d18db8d502d677b6f4215dc1e1d820">getCollision</a> (const <a class="el" href="classentities_1_1_entity.html">Entity</a> &amp;other)</td></tr>
+<tr class="memdesc:a94d18db8d502d677b6f4215dc1e1d820"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate collision with another <a class="el" href="classentities_1_1_entity.html" title="Every object, what can be on the map.">Entity</a>, how much should this entity move, to avoid the collision.  <a href="classentities_1_1_entity.html#a94d18db8d502d677b6f4215dc1e1d820">More...</a><br /></td></tr>
+<tr class="separator:a94d18db8d502d677b6f4215dc1e1d820"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-attribs"></a>
+Protected Attributes</h2></td></tr>
+<tr class="memitem:a04f9c2febe8d435138a07eb2f48ba96b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#a04f9c2febe8d435138a07eb2f48ba96b">pos</a></td></tr>
+<tr class="memdesc:a04f9c2febe8d435138a07eb2f48ba96b"><td class="mdescLeft">&#160;</td><td class="mdescRight">it's position  <a href="classentities_1_1_entity.html#a04f9c2febe8d435138a07eb2f48ba96b">More...</a><br /></td></tr>
+<tr class="separator:a04f9c2febe8d435138a07eb2f48ba96b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1453bca3376a185aa54135dd4958b244"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#a1453bca3376a185aa54135dd4958b244">is_initialized</a></td></tr>
+<tr class="memdesc:a1453bca3376a185aa54135dd4958b244"><td class="mdescLeft">&#160;</td><td class="mdescRight">well, is initialized  <a href="classentities_1_1_entity.html#a1453bca3376a185aa54135dd4958b244">More...</a><br /></td></tr>
+<tr class="separator:a1453bca3376a185aa54135dd4958b244"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aedac7bb35b729e4a02c582b9f4369ab8"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#aedac7bb35b729e4a02c582b9f4369ab8">is_alive</a></td></tr>
+<tr class="memdesc:aedac7bb35b729e4a02c582b9f4369ab8"><td class="mdescLeft">&#160;</td><td class="mdescRight">true, if it is alive  <a href="classentities_1_1_entity.html#aedac7bb35b729e4a02c582b9f4369ab8">More...</a><br /></td></tr>
+<tr class="separator:aedac7bb35b729e4a02c582b9f4369ab8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Every object, what can be on the map. </p>
+
+<p class="definition">Definition at line <a class="el" href="_entity_8h_source.html#l00016">16</a> of file <a class="el" href="_entity_8h_source.html">Entity.h</a>.</p>
+</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
+<a id="a539ddef34b718b6068df421f316f4a6d"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a539ddef34b718b6068df421f316f4a6d">&#9670;&nbsp;</a></span>Entity()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">entities::Entity::Entity </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>pos</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">explicit</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="_entity_8cpp_source.html#l00039">39</a> of file <a class="el" href="_entity_8cpp_source.html">Entity.cpp</a>.</p>
+
+</div>
+</div>
+<a id="a64d968c160dee2fdfca68aff2e49946b"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a64d968c160dee2fdfca68aff2e49946b">&#9670;&nbsp;</a></span>~Entity()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">virtual entities::Entity::~Entity </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">virtual</span><span class="mlabel">default</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<h2 class="groupheader">Member Function Documentation</h2>
+<a id="a59426fe1b7dcefe96a0a748250724ff6"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a59426fe1b7dcefe96a0a748250724ff6">&#9670;&nbsp;</a></span>canBeRemoved()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">bool entities::Entity::canBeRemoved </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td> const</td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+<dl class="section return"><dt>Returns</dt><dd>can be deleted from the entity list. mostly is dead </dd></dl>
+
+<p>Reimplemented in <a class="el" href="classweapons_1_1_weapon.html#aaf97827d27191b7b437ef1be96d6ac2c">weapons::Weapon</a>, and <a class="el" href="classentities_1_1_explosive_projectile.html#a8b075196a23aed5116e885709b64d583">entities::ExplosiveProjectile</a>.</p>
+
+<p class="definition">Definition at line <a class="el" href="_entity_8cpp_source.html#l00075">75</a> of file <a class="el" href="_entity_8cpp_source.html">Entity.cpp</a>.</p>
+
+</div>
+</div>
+<a id="af7fc9949fc50b1b31abb36a3d51b0597"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#af7fc9949fc50b1b31abb36a3d51b0597">&#9670;&nbsp;</a></span>damage()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">virtual bool entities::Entity::damage </td>
+          <td>(</td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>damage</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="classentities_1_1_entity.html">Entity</a> &amp;&#160;</td>
+          <td class="paramname"><em>attacker</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>something damage this </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">damage</td><td>how much damage should it take </td></tr>
+    <tr><td class="paramname">attacker</td><td>who deal the damage. not the projectile, the entity </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>did the entity take the damage or no (like a wall) </dd></dl>
+
+<p>Implemented in <a class="el" href="classweapons_1_1_weapon.html#a397c372ffe2838f7c9c1ce67c06e55a9">weapons::Weapon</a>, <a class="el" href="classentities_1_1_wall_entity.html#a0cd908003450361a7c08d2c7c83d21dc">entities::WallEntity</a>, <a class="el" href="classweapons_1_1_typical_melee_weapon.html#a00287ced5e67a7f91423596fac46606b">weapons::TypicalMeleeWeapon</a>, <a class="el" href="classentities_1_1_projectile_entity.html#a723e706e6421504ce9c6d70d77561215">entities::ProjectileEntity</a>, <a class="el" href="classentities_1_1_player_entity.html#ab654524e0ad7ba5a9b1b590794d347f2">entities::PlayerEntity</a>, <a class="el" href="classentities_1_1_living_entity.html#a28d31eff59137171da3e23a8e3ef9c1c">entities::LivingEntity</a>, and <a class="el" href="classentities_1_1_entity_with_a_i.html#a49a1c8a8ec1a318f65007d54173c3d37">entities::EntityWithAI</a>.</p>
+
+</div>
+</div>
+<a id="a94d18db8d502d677b6f4215dc1e1d820"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a94d18db8d502d677b6f4215dc1e1d820">&#9670;&nbsp;</a></span>getCollision()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">vf2d</a> entities::Entity::getCollision </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="classentities_1_1_entity.html">Entity</a> &amp;&#160;</td>
+          <td class="paramname"><em>other</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">virtual</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Calculate collision with another <a class="el" href="classentities_1_1_entity.html" title="Every object, what can be on the map.">Entity</a>, how much should this entity move, to avoid the collision. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">other</td><td>the other entity </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>collision vector, 0 if there is no collision </dd></dl>
+
+<p class="definition">Definition at line <a class="el" href="_entity_8cpp_source.html#l00016">16</a> of file <a class="el" href="_entity_8cpp_source.html">Entity.cpp</a>.</p>
+
+</div>
+</div>
+<a id="a9cd7ba81ddbd978b8f43e9f10e97492f"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a9cd7ba81ddbd978b8f43e9f10e97492f">&#9670;&nbsp;</a></span>getHitBoxSize()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">virtual <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> entities::Entity::getHitBoxSize </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td> const</td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">pure virtual</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>half hitbox size </p>
+<dl class="section return"><dt>Returns</dt><dd>hitbox size as a vector </dd></dl>
+
+<p>Implemented in <a class="el" href="classweapons_1_1_weapon.html#a862bd61cf947a91809b423304885cf66">weapons::Weapon</a>, <a class="el" href="classentities_1_1_wall_entity.html#afd4863a311190a59cdf7574798ac3f2d">entities::WallEntity</a>, <a class="el" href="classweapons_1_1_typical_melee_weapon.html#ab60f5d99ae206d9064381b0c70b9a7a2">weapons::TypicalMeleeWeapon</a>, <a class="el" href="classentities_1_1_projectile_entity.html#ae38525094695db8ab564c5ae27711bb4">entities::ProjectileEntity</a>, and <a class="el" href="classentities_1_1_living_entity.html#aa965d3922663b974dd14cc5f8004ed65">entities::LivingEntity</a>.</p>
+
+</div>
+</div>
+<a id="a8c4b0c1eb69a673619e4c8943ef34f86"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a8c4b0c1eb69a673619e4c8943ef34f86">&#9670;&nbsp;</a></span>getName()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">std::string entities::Entity::getName </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td> const</td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="_entity_8cpp_source.html#l00057">57</a> of file <a class="el" href="_entity_8cpp_source.html">Entity.cpp</a>.</p>
+
+</div>
+</div>
+<a id="a799a692b988248dd23d207b95e7fe2b7"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a799a692b988248dd23d207b95e7fe2b7">&#9670;&nbsp;</a></span>getPos()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">vf2d</a> entities::Entity::getPos </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td> const</td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="_entity_8cpp_source.html#l00042">42</a> of file <a class="el" href="_entity_8cpp_source.html">Entity.cpp</a>.</p>
+
+</div>
+</div>
+<a id="ac60e9beb5a45fc65120e9779e680c04b"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ac60e9beb5a45fc65120e9779e680c04b">&#9670;&nbsp;</a></span>getSize()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">vf2d</a> entities::Entity::getSize </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td> const</td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>get it's size to render </p>
+
+<p class="definition">Definition at line <a class="el" href="_entity_8cpp_source.html#l00047">47</a> of file <a class="el" href="_entity_8cpp_source.html">Entity.cpp</a>.</p>
+
+</div>
+</div>
+<a id="af01b796fb472ef3139aea41aeed36c76"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#af01b796fb472ef3139aea41aeed36c76">&#9670;&nbsp;</a></span>getTexture()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">virtual <a class="el" href="classrender_1_1_i_texture.html">render::ITexture</a>&amp; entities::Entity::getTexture </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">pure virtual</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>the object's texture </p>
+<dl class="section return"><dt>Returns</dt><dd>the texture </dd></dl>
+
+<p>Implemented in <a class="el" href="classentities_1_1_wall_entity.html#a4b6c55275f06a30dac07c2dc5452e602">entities::WallEntity</a>, <a class="el" href="classentities_1_1_projectile_entity.html#a7e67fe629e1ef7115fd2a0cae8b1efc0">entities::ProjectileEntity</a>, and <a class="el" href="classentities_1_1_character_entity.html#afdae03f49fd5d47d0837ed660e37038f">entities::CharacterEntity</a>.</p>
+
+</div>
+</div>
+<a id="afd80ddceccb36b87d0d80dcc7f88fc3b"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#afd80ddceccb36b87d0d80dcc7f88fc3b">&#9670;&nbsp;</a></span>init()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">virtual void entities::Entity::init </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="class_game_client.html">GameClient</a> &amp;&#160;</td>
+          <td class="paramname"><em>client</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Reimplemented in <a class="el" href="classentities_1_1_wall_entity.html#ad66ed8002d8082035bd3b7df07ff45b5">entities::WallEntity</a>.</p>
+
+<p class="definition">Definition at line <a class="el" href="_entity_8h_source.html#l00051">51</a> of file <a class="el" href="_entity_8h_source.html">Entity.h</a>.</p>
+
+</div>
+</div>
+<a id="ab0ee90a84f2163b600e603f24cff046f"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ab0ee90a84f2163b600e603f24cff046f">&#9670;&nbsp;</a></span>isAlive()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">bool entities::Entity::isAlive </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td> const</td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="_entity_8cpp_source.html#l00070">70</a> of file <a class="el" href="_entity_8cpp_source.html">Entity.cpp</a>.</p>
+
+</div>
+</div>
+<a id="ab010066d52a02c63908f70ff6ef7d873"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ab010066d52a02c63908f70ff6ef7d873">&#9670;&nbsp;</a></span>isInitialized()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">bool entities::Entity::isInitialized </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="_entity_8cpp_source.html#l00065">65</a> of file <a class="el" href="_entity_8cpp_source.html">Entity.cpp</a>.</p>
+
+</div>
+</div>
+<a id="ad0a172ff99a7e73aaaee3658d5e3ae08"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ad0a172ff99a7e73aaaee3658d5e3ae08">&#9670;&nbsp;</a></span>operator WallEntity *()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">virtual entities::Entity::operator <a class="el" href="classentities_1_1_wall_entity.html">WallEntity</a> * </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="_entity_8h_source.html#l00094">94</a> of file <a class="el" href="_entity_8h_source.html">Entity.h</a>.</p>
+
+</div>
+</div>
+<a id="abcc4364b5b7250f0364f3550a618b3ab"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#abcc4364b5b7250f0364f3550a618b3ab">&#9670;&nbsp;</a></span>render()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">void entities::Entity::render </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a> &amp;&#160;</td>
+          <td class="paramname"><em>scene</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>render </p>
+
+<p>Reimplemented in <a class="el" href="classentities_1_1_explosive_projectile.html#a86148b27403d275c1513f22bb3f47892">entities::ExplosiveProjectile</a>, and <a class="el" href="classentities_1_1_character_entity.html#aeb6069f0f07d0914faf0f94c0cc33def">entities::CharacterEntity</a>.</p>
+
+<p class="definition">Definition at line <a class="el" href="_entity_8cpp_source.html#l00052">52</a> of file <a class="el" href="_entity_8cpp_source.html">Entity.cpp</a>.</p>
+
+</div>
+</div>
+<a id="a0440674bf90ae83d9a26aa4b0ac8309e"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a0440674bf90ae83d9a26aa4b0ac8309e">&#9670;&nbsp;</a></span>tick()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">virtual void entities::Entity::tick </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="class_game_client.html">GameClient</a> &amp;&#160;</td>
+          <td class="paramname"><em>client</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>deltaT</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">std::shared_ptr&lt; <a class="el" href="classentities_1_1_entity.html">Entity</a> &gt; &amp;&#160;</td>
+          <td class="paramname"><em>shared_this</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p><a class="el" href="classentities_1_1_entity.html" title="Every object, what can be on the map.">Entity</a> tick multiple times per sec. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">client</td><td>the game client object </td></tr>
+    <tr><td class="paramname">deltaT</td><td>how long take a tick </td></tr>
+    <tr><td class="paramname">shared_this</td><td>this as a shared_ptr </td></tr>
+  </table>
+  </dd>
+</dl>
+
+<p>Reimplemented in <a class="el" href="classweapons_1_1_weapon.html#a92ae1db47ca866d828f8b09c6de5a3f6">weapons::Weapon</a>, <a class="el" href="classentities_1_1_projectile_entity.html#a761f27885de02515edaf252e8a4162b5">entities::ProjectileEntity</a>, <a class="el" href="classentities_1_1_player_entity.html#a9f5c7033ca46daf217c73cb5edbb0d68">entities::PlayerEntity</a>, <a class="el" href="classentities_1_1_living_entity.html#af13cb8c3fabd2960746e21cd7dabe4d6">entities::LivingEntity</a>, <a class="el" href="classentities_1_1_explosive_projectile.html#a3aa22ab3467caa20a8c7b3cc818b157d">entities::ExplosiveProjectile</a>, <a class="el" href="classentities_1_1_entity_with_a_i.html#a92708b14b042c03fa9a8673192867e72">entities::EntityWithAI</a>, and <a class="el" href="classentities_1_1_character_entity.html#ae7cdddc6dca655e7bf8c2f48424c5208">entities::CharacterEntity</a>.</p>
+
+<p class="definition">Definition at line <a class="el" href="_entity_8h_source.html#l00072">72</a> of file <a class="el" href="_entity_8h_source.html">Entity.h</a>.</p>
+
+</div>
+</div>
+<h2 class="groupheader">Member Data Documentation</h2>
+<a id="aedac7bb35b729e4a02c582b9f4369ab8"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aedac7bb35b729e4a02c582b9f4369ab8">&#9670;&nbsp;</a></span>is_alive</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">bool entities::Entity::is_alive</td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>true, if it is alive </p>
+
+<p class="definition">Definition at line <a class="el" href="_entity_8h_source.html#l00046">46</a> of file <a class="el" href="_entity_8h_source.html">Entity.h</a>.</p>
+
+</div>
+</div>
+<a id="a1453bca3376a185aa54135dd4958b244"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a1453bca3376a185aa54135dd4958b244">&#9670;&nbsp;</a></span>is_initialized</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">bool entities::Entity::is_initialized</td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>well, is initialized </p>
+
+<p class="definition">Definition at line <a class="el" href="_entity_8h_source.html#l00042">42</a> of file <a class="el" href="_entity_8h_source.html">Entity.h</a>.</p>
+
+</div>
+</div>
+<a id="a04f9c2febe8d435138a07eb2f48ba96b"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a04f9c2febe8d435138a07eb2f48ba96b">&#9670;&nbsp;</a></span>pos</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> entities::Entity::pos</td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>it's position </p>
+
+<p class="definition">Definition at line <a class="el" href="_entity_8h_source.html#l00022">22</a> of file <a class="el" href="_entity_8h_source.html">Entity.h</a>.</p>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following files:<ul>
+<li>C:/Users/kosmx/Documents/GitHub/2d-game/<a class="el" href="_entity_8h_source.html">Entity.h</a></li>
+<li>C:/Users/kosmx/Documents/GitHub/2d-game/<a class="el" href="_entity_8cpp_source.html">Entity.cpp</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/classentities_1_1_entity.png b/doxy/html/classentities_1_1_entity.png
new file mode 100644
index 0000000000000000000000000000000000000000..f01962173a61ce8fee9442fd8a835b3a126cd0c8
Binary files /dev/null and b/doxy/html/classentities_1_1_entity.png differ
diff --git a/doxy/html/classentities_1_1_entity_with_a_i-members.html b/doxy/html/classentities_1_1_entity_with_a_i-members.html
new file mode 100644
index 0000000000000000000000000000000000000000..72f0aafe82c3b54e0bc5cb28a935d4fb47af62c2
--- /dev/null
+++ b/doxy/html/classentities_1_1_entity_with_a_i-members.html
@@ -0,0 +1,112 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="namespaceentities.html">entities</a></li><li class="navelem"><a class="el" href="classentities_1_1_entity_with_a_i.html">EntityWithAI</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">entities::EntityWithAI Member List</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="classentities_1_1_entity_with_a_i.html">entities::EntityWithAI</a>, including all inherited members.</p>
+<table class="directory">
+  <tr class="even"><td class="entry"><a class="el" href="classentities_1_1_entity_with_a_i.html#af1e954b2ecf51732759a28e00dc2614c">addWeapon</a>(std::shared_ptr&lt; weapons::Weapon &gt; &amp;weapon)</td><td class="entry"><a class="el" href="classentities_1_1_entity_with_a_i.html">entities::EntityWithAI</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classentities_1_1_entity.html#a59426fe1b7dcefe96a0a748250724ff6">canBeRemoved</a>() const</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classentities_1_1_character_entity.html#aa7c43269834b07ef51355a874be373e8">CharacterEntity</a>(render::ITexture &amp;skin, const olc::vf2d &amp;pos)</td><td class="entry"><a class="el" href="classentities_1_1_character_entity.html">entities::CharacterEntity</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classentities_1_1_living_entity.html#a07a7d7f7e43f2140e3e6337322f78224">collisionOffset</a>(GameClient &amp;client)</td><td class="entry"><a class="el" href="classentities_1_1_living_entity.html">entities::LivingEntity</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classentities_1_1_entity_with_a_i.html#a49a1c8a8ec1a318f65007d54173c3d37">damage</a>(int damage, Entity &amp;attacker) override</td><td class="entry"><a class="el" href="classentities_1_1_entity_with_a_i.html">entities::EntityWithAI</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classentities_1_1_entity.html#a539ddef34b718b6068df421f316f4a6d">Entity</a>(const olc::vf2d &amp;pos)</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">explicit</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classentities_1_1_entity_with_a_i.html#aa8bfaebef1ce596fbd8d70b36362135b">EntityWithAI</a>(const olc::vf2d &amp;pos, render::ITexture &amp;skin, int damage=20, const std::string &amp;name=&quot;Enemy&quot;)</td><td class="entry"><a class="el" href="classentities_1_1_entity_with_a_i.html">entities::EntityWithAI</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classentities_1_1_living_entity.html#a657626746aaed854f45ac3bb6d6c2a2f">getAnimPhase</a>() const</td><td class="entry"><a class="el" href="classentities_1_1_living_entity.html">entities::LivingEntity</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classentities_1_1_entity.html#a94d18db8d502d677b6f4215dc1e1d820">getCollision</a>(const Entity &amp;other)</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classentities_1_1_living_entity.html#a27f39311f1139c96967b28cbaf752bd2">getDirection</a>()</td><td class="entry"><a class="el" href="classentities_1_1_living_entity.html">entities::LivingEntity</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classentities_1_1_living_entity.html#aa965d3922663b974dd14cc5f8004ed65">getHitBoxSize</a>() const override</td><td class="entry"><a class="el" href="classentities_1_1_living_entity.html">entities::LivingEntity</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classentities_1_1_entity.html#a8c4b0c1eb69a673619e4c8943ef34f86">getName</a>() const</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classentities_1_1_entity.html#a799a692b988248dd23d207b95e7fe2b7">getPos</a>() const</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classentities_1_1_entity.html#ac60e9beb5a45fc65120e9779e680c04b">getSize</a>() const</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classentities_1_1_character_entity.html#afdae03f49fd5d47d0837ed660e37038f">getTexture</a>() override</td><td class="entry"><a class="el" href="classentities_1_1_character_entity.html">entities::CharacterEntity</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classentities_1_1_entity_with_a_i.html#a66937315f0a16d70c29359e89415d222">getWeapon</a>() override</td><td class="entry"><a class="el" href="classentities_1_1_entity_with_a_i.html">entities::EntityWithAI</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classentities_1_1_living_entity.html#a78282129a711906b7973c4ecb37b8434">health</a></td><td class="entry"><a class="el" href="classentities_1_1_living_entity.html">entities::LivingEntity</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classentities_1_1_entity.html#afd80ddceccb36b87d0d80dcc7f88fc3b">init</a>(GameClient &amp;client)</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classentities_1_1_entity.html#aedac7bb35b729e4a02c582b9f4369ab8">is_alive</a></td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classentities_1_1_entity.html#a1453bca3376a185aa54135dd4958b244">is_initialized</a></td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classentities_1_1_entity.html#ab0ee90a84f2163b600e603f24cff046f">isAlive</a>() const</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classentities_1_1_entity.html#ab010066d52a02c63908f70ff6ef7d873">isInitialized</a>()</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classentities_1_1_living_entity.html#a08837d43e7338c4ceff9acfbbbffd94b">LivingEntity</a>(olc::vf2d pos, int health=100)</td><td class="entry"><a class="el" href="classentities_1_1_living_entity.html">entities::LivingEntity</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classentities_1_1_entity.html#ad0a172ff99a7e73aaaee3658d5e3ae08">operator WallEntity *</a>()</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classentities_1_1_entity.html#a04f9c2febe8d435138a07eb2f48ba96b">pos</a></td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classentities_1_1_character_entity.html#aeb6069f0f07d0914faf0f94c0cc33def">render</a>(olc::TransformedView &amp;scene) override</td><td class="entry"><a class="el" href="classentities_1_1_character_entity.html">entities::CharacterEntity</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classentities_1_1_living_entity.html#ad8b574e93d1fa34cdd119be6f0391acb">speed</a></td><td class="entry"><a class="el" href="classentities_1_1_living_entity.html">entities::LivingEntity</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classentities_1_1_character_entity.html#a295a77ffb22dd1a7b30164ab04ecf400">texture</a></td><td class="entry"><a class="el" href="classentities_1_1_character_entity.html">entities::CharacterEntity</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classentities_1_1_entity_with_a_i.html#a92708b14b042c03fa9a8673192867e72">tick</a>(GameClient &amp;client, float deltaT, std::shared_ptr&lt; Entity &gt; &amp;shared_this) override</td><td class="entry"><a class="el" href="classentities_1_1_entity_with_a_i.html">entities::EntityWithAI</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classentities_1_1_entity.html#a64d968c160dee2fdfca68aff2e49946b">~Entity</a>()=default</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+</table></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/classentities_1_1_entity_with_a_i.html b/doxy/html/classentities_1_1_entity_with_a_i.html
new file mode 100644
index 0000000000000000000000000000000000000000..cbb1473a2a59690c8324f32a75346bcbc28da54c
--- /dev/null
+++ b/doxy/html/classentities_1_1_entity_with_a_i.html
@@ -0,0 +1,411 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: entities::EntityWithAI Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="namespaceentities.html">entities</a></li><li class="navelem"><a class="el" href="classentities_1_1_entity_with_a_i.html">EntityWithAI</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="classentities_1_1_entity_with_a_i-members.html">List of all members</a>  </div>
+  <div class="headertitle">
+<div class="title">entities::EntityWithAI Class Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>The enemies. go after the player, and try to kill it.  
+ <a href="classentities_1_1_entity_with_a_i.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="_entity_with_a_i_8h_source.html">EntityWithAI.h</a>&gt;</code></p>
+<div class="dynheader">
+Inheritance diagram for entities::EntityWithAI:</div>
+<div class="dyncontent">
+ <div class="center">
+  <img src="classentities_1_1_entity_with_a_i.png" usemap="#entities::EntityWithAI_map" alt=""/>
+  <map id="entities::EntityWithAI_map" name="entities::EntityWithAI_map">
+<area href="classentities_1_1_character_entity.html" title="A player or an enemy." alt="entities::CharacterEntity" shape="rect" coords="0,112,145,136"/>
+<area href="classentities_1_1_living_entity.html" title="Any moving animal or player." alt="entities::LivingEntity" shape="rect" coords="0,56,145,80"/>
+<area href="classentities_1_1_entity.html" title="Every object, what can be on the map." alt="entities::Entity" shape="rect" coords="0,0,145,24"/>
+  </map>
+</div></div>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr class="memitem:a92708b14b042c03fa9a8673192867e72"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity_with_a_i.html#a92708b14b042c03fa9a8673192867e72">tick</a> (<a class="el" href="class_game_client.html">GameClient</a> &amp;client, float deltaT, std::shared_ptr&lt; <a class="el" href="classentities_1_1_entity.html">Entity</a> &gt; &amp;shared_this) override</td></tr>
+<tr class="memdesc:a92708b14b042c03fa9a8673192867e72"><td class="mdescLeft">&#160;</td><td class="mdescRight">Tick, from <a class="el" href="classentities_1_1_entity.html" title="Every object, what can be on the map.">Entity</a>.  <a href="classentities_1_1_entity_with_a_i.html#a92708b14b042c03fa9a8673192867e72">More...</a><br /></td></tr>
+<tr class="separator:a92708b14b042c03fa9a8673192867e72"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af1e954b2ecf51732759a28e00dc2614c"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity_with_a_i.html#af1e954b2ecf51732759a28e00dc2614c">addWeapon</a> (std::shared_ptr&lt; <a class="el" href="classweapons_1_1_weapon.html">weapons::Weapon</a> &gt; &amp;weapon)</td></tr>
+<tr class="memdesc:af1e954b2ecf51732759a28e00dc2614c"><td class="mdescLeft">&#160;</td><td class="mdescRight">override it's weapon  <a href="classentities_1_1_entity_with_a_i.html#af1e954b2ecf51732759a28e00dc2614c">More...</a><br /></td></tr>
+<tr class="separator:af1e954b2ecf51732759a28e00dc2614c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa8bfaebef1ce596fbd8d70b36362135b"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity_with_a_i.html#aa8bfaebef1ce596fbd8d70b36362135b">EntityWithAI</a> (const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;<a class="el" href="classentities_1_1_entity.html#a04f9c2febe8d435138a07eb2f48ba96b">pos</a>, <a class="el" href="classrender_1_1_i_texture.html">render::ITexture</a> &amp;skin, int <a class="el" href="classentities_1_1_entity_with_a_i.html#a49a1c8a8ec1a318f65007d54173c3d37">damage</a>=20, const std::string &amp;name=&quot;Enemy&quot;)</td></tr>
+<tr class="separator:aa8bfaebef1ce596fbd8d70b36362135b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a49a1c8a8ec1a318f65007d54173c3d37"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity_with_a_i.html#a49a1c8a8ec1a318f65007d54173c3d37">damage</a> (int damage, <a class="el" href="classentities_1_1_entity.html">Entity</a> &amp;attacker) override</td></tr>
+<tr class="memdesc:a49a1c8a8ec1a318f65007d54173c3d37"><td class="mdescLeft">&#160;</td><td class="mdescRight">something damage this  <a href="classentities_1_1_entity_with_a_i.html#a49a1c8a8ec1a318f65007d54173c3d37">More...</a><br /></td></tr>
+<tr class="separator:a49a1c8a8ec1a318f65007d54173c3d37"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a66937315f0a16d70c29359e89415d222"><td class="memItemLeft" align="right" valign="top">std::shared_ptr&lt; <a class="el" href="classweapons_1_1_weapon.html">weapons::Weapon</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity_with_a_i.html#a66937315f0a16d70c29359e89415d222">getWeapon</a> () override</td></tr>
+<tr class="separator:a66937315f0a16d70c29359e89415d222"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pub_methods_classentities_1_1_character_entity"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classentities_1_1_character_entity')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classentities_1_1_character_entity.html">entities::CharacterEntity</a></td></tr>
+<tr class="memitem:aa7c43269834b07ef51355a874be373e8 inherit pub_methods_classentities_1_1_character_entity"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_character_entity.html#aa7c43269834b07ef51355a874be373e8">CharacterEntity</a> (<a class="el" href="classrender_1_1_i_texture.html">render::ITexture</a> &amp;skin, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;<a class="el" href="classentities_1_1_entity.html#a04f9c2febe8d435138a07eb2f48ba96b">pos</a>)</td></tr>
+<tr class="separator:aa7c43269834b07ef51355a874be373e8 inherit pub_methods_classentities_1_1_character_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aeb6069f0f07d0914faf0f94c0cc33def inherit pub_methods_classentities_1_1_character_entity"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_character_entity.html#aeb6069f0f07d0914faf0f94c0cc33def">render</a> (<a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a> &amp;scene) override</td></tr>
+<tr class="memdesc:aeb6069f0f07d0914faf0f94c0cc33def inherit pub_methods_classentities_1_1_character_entity"><td class="mdescLeft">&#160;</td><td class="mdescRight">render  <a href="classentities_1_1_character_entity.html#aeb6069f0f07d0914faf0f94c0cc33def">More...</a><br /></td></tr>
+<tr class="separator:aeb6069f0f07d0914faf0f94c0cc33def inherit pub_methods_classentities_1_1_character_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pub_methods_classentities_1_1_living_entity"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classentities_1_1_living_entity')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classentities_1_1_living_entity.html">entities::LivingEntity</a></td></tr>
+<tr class="memitem:a08837d43e7338c4ceff9acfbbbffd94b inherit pub_methods_classentities_1_1_living_entity"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_living_entity.html#a08837d43e7338c4ceff9acfbbbffd94b">LivingEntity</a> (<a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> <a class="el" href="classentities_1_1_entity.html#a04f9c2febe8d435138a07eb2f48ba96b">pos</a>, int <a class="el" href="classentities_1_1_living_entity.html#a78282129a711906b7973c4ecb37b8434">health</a>=100)</td></tr>
+<tr class="separator:a08837d43e7338c4ceff9acfbbbffd94b inherit pub_methods_classentities_1_1_living_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a28d31eff59137171da3e23a8e3ef9c1c inherit pub_methods_classentities_1_1_living_entity"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_living_entity.html#a28d31eff59137171da3e23a8e3ef9c1c">damage</a> (int damage, <a class="el" href="classentities_1_1_entity.html">Entity</a> &amp;attacker) override</td></tr>
+<tr class="memdesc:a28d31eff59137171da3e23a8e3ef9c1c inherit pub_methods_classentities_1_1_living_entity"><td class="mdescLeft">&#160;</td><td class="mdescRight">something damage this  <a href="classentities_1_1_living_entity.html#a28d31eff59137171da3e23a8e3ef9c1c">More...</a><br /></td></tr>
+<tr class="separator:a28d31eff59137171da3e23a8e3ef9c1c inherit pub_methods_classentities_1_1_living_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a27f39311f1139c96967b28cbaf752bd2 inherit pub_methods_classentities_1_1_living_entity"><td class="memItemLeft" align="right" valign="top">char&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_living_entity.html#a27f39311f1139c96967b28cbaf752bd2">getDirection</a> ()</td></tr>
+<tr class="memdesc:a27f39311f1139c96967b28cbaf752bd2 inherit pub_methods_classentities_1_1_living_entity"><td class="mdescLeft">&#160;</td><td class="mdescRight">Animation related getter.  <a href="classentities_1_1_living_entity.html#a27f39311f1139c96967b28cbaf752bd2">More...</a><br /></td></tr>
+<tr class="separator:a27f39311f1139c96967b28cbaf752bd2 inherit pub_methods_classentities_1_1_living_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a657626746aaed854f45ac3bb6d6c2a2f inherit pub_methods_classentities_1_1_living_entity"><td class="memItemLeft" align="right" valign="top">char&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_living_entity.html#a657626746aaed854f45ac3bb6d6c2a2f">getAnimPhase</a> () const</td></tr>
+<tr class="memdesc:a657626746aaed854f45ac3bb6d6c2a2f inherit pub_methods_classentities_1_1_living_entity"><td class="mdescLeft">&#160;</td><td class="mdescRight">Animation phase.  <a href="classentities_1_1_living_entity.html#a657626746aaed854f45ac3bb6d6c2a2f">More...</a><br /></td></tr>
+<tr class="separator:a657626746aaed854f45ac3bb6d6c2a2f inherit pub_methods_classentities_1_1_living_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af13cb8c3fabd2960746e21cd7dabe4d6 inherit pub_methods_classentities_1_1_living_entity"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_living_entity.html#af13cb8c3fabd2960746e21cd7dabe4d6">tick</a> (<a class="el" href="class_game_client.html">GameClient</a> &amp;client, float deltaT, std::shared_ptr&lt; <a class="el" href="classentities_1_1_entity.html">Entity</a> &gt; &amp;shared_this) override</td></tr>
+<tr class="memdesc:af13cb8c3fabd2960746e21cd7dabe4d6 inherit pub_methods_classentities_1_1_living_entity"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classentities_1_1_entity.html" title="Every object, what can be on the map.">Entity</a> tick multiple times per sec.  <a href="classentities_1_1_living_entity.html#af13cb8c3fabd2960746e21cd7dabe4d6">More...</a><br /></td></tr>
+<tr class="separator:af13cb8c3fabd2960746e21cd7dabe4d6 inherit pub_methods_classentities_1_1_living_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pub_methods_classentities_1_1_entity"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classentities_1_1_entity')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td></tr>
+<tr class="memitem:a539ddef34b718b6068df421f316f4a6d inherit pub_methods_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#a539ddef34b718b6068df421f316f4a6d">Entity</a> (const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;<a class="el" href="classentities_1_1_entity.html#a04f9c2febe8d435138a07eb2f48ba96b">pos</a>)</td></tr>
+<tr class="separator:a539ddef34b718b6068df421f316f4a6d inherit pub_methods_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afd80ddceccb36b87d0d80dcc7f88fc3b inherit pub_methods_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#afd80ddceccb36b87d0d80dcc7f88fc3b">init</a> (<a class="el" href="class_game_client.html">GameClient</a> &amp;client)</td></tr>
+<tr class="separator:afd80ddceccb36b87d0d80dcc7f88fc3b inherit pub_methods_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab010066d52a02c63908f70ff6ef7d873 inherit pub_methods_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#ab010066d52a02c63908f70ff6ef7d873">isInitialized</a> ()</td></tr>
+<tr class="separator:ab010066d52a02c63908f70ff6ef7d873 inherit pub_methods_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a799a692b988248dd23d207b95e7fe2b7 inherit pub_methods_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#a799a692b988248dd23d207b95e7fe2b7">getPos</a> () const</td></tr>
+<tr class="separator:a799a692b988248dd23d207b95e7fe2b7 inherit pub_methods_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac60e9beb5a45fc65120e9779e680c04b inherit pub_methods_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#ac60e9beb5a45fc65120e9779e680c04b">getSize</a> () const</td></tr>
+<tr class="memdesc:ac60e9beb5a45fc65120e9779e680c04b inherit pub_methods_classentities_1_1_entity"><td class="mdescLeft">&#160;</td><td class="mdescRight">get it's size to render  <a href="classentities_1_1_entity.html#ac60e9beb5a45fc65120e9779e680c04b">More...</a><br /></td></tr>
+<tr class="separator:ac60e9beb5a45fc65120e9779e680c04b inherit pub_methods_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab0ee90a84f2163b600e603f24cff046f inherit pub_methods_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#ab0ee90a84f2163b600e603f24cff046f">isAlive</a> () const</td></tr>
+<tr class="separator:ab0ee90a84f2163b600e603f24cff046f inherit pub_methods_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a59426fe1b7dcefe96a0a748250724ff6 inherit pub_methods_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#a59426fe1b7dcefe96a0a748250724ff6">canBeRemoved</a> () const</td></tr>
+<tr class="separator:a59426fe1b7dcefe96a0a748250724ff6 inherit pub_methods_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8c4b0c1eb69a673619e4c8943ef34f86 inherit pub_methods_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">virtual std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#a8c4b0c1eb69a673619e4c8943ef34f86">getName</a> () const</td></tr>
+<tr class="separator:a8c4b0c1eb69a673619e4c8943ef34f86 inherit pub_methods_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a64d968c160dee2fdfca68aff2e49946b inherit pub_methods_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#a64d968c160dee2fdfca68aff2e49946b">~Entity</a> ()=default</td></tr>
+<tr class="separator:a64d968c160dee2fdfca68aff2e49946b inherit pub_methods_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad0a172ff99a7e73aaaee3658d5e3ae08 inherit pub_methods_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#ad0a172ff99a7e73aaaee3658d5e3ae08">operator WallEntity *</a> ()</td></tr>
+<tr class="separator:ad0a172ff99a7e73aaaee3658d5e3ae08 inherit pub_methods_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
+Additional Inherited Members</h2></td></tr>
+<tr class="inherit_header pro_methods_classentities_1_1_character_entity"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classentities_1_1_character_entity')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="classentities_1_1_character_entity.html">entities::CharacterEntity</a></td></tr>
+<tr class="memitem:afdae03f49fd5d47d0837ed660e37038f inherit pro_methods_classentities_1_1_character_entity"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classrender_1_1_i_texture.html">render::ITexture</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_character_entity.html#afdae03f49fd5d47d0837ed660e37038f">getTexture</a> () override</td></tr>
+<tr class="memdesc:afdae03f49fd5d47d0837ed660e37038f inherit pro_methods_classentities_1_1_character_entity"><td class="mdescLeft">&#160;</td><td class="mdescRight">the object's texture  <a href="classentities_1_1_character_entity.html#afdae03f49fd5d47d0837ed660e37038f">More...</a><br /></td></tr>
+<tr class="separator:afdae03f49fd5d47d0837ed660e37038f inherit pro_methods_classentities_1_1_character_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_methods_classentities_1_1_living_entity"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classentities_1_1_living_entity')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="classentities_1_1_living_entity.html">entities::LivingEntity</a></td></tr>
+<tr class="memitem:aa965d3922663b974dd14cc5f8004ed65 inherit pro_methods_classentities_1_1_living_entity"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_living_entity.html#aa965d3922663b974dd14cc5f8004ed65">getHitBoxSize</a> () const override</td></tr>
+<tr class="memdesc:aa965d3922663b974dd14cc5f8004ed65 inherit pro_methods_classentities_1_1_living_entity"><td class="mdescLeft">&#160;</td><td class="mdescRight">half hitbox size  <a href="classentities_1_1_living_entity.html#aa965d3922663b974dd14cc5f8004ed65">More...</a><br /></td></tr>
+<tr class="separator:aa965d3922663b974dd14cc5f8004ed65 inherit pro_methods_classentities_1_1_living_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a07a7d7f7e43f2140e3e6337322f78224 inherit pro_methods_classentities_1_1_living_entity"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_living_entity.html#a07a7d7f7e43f2140e3e6337322f78224">collisionOffset</a> (<a class="el" href="class_game_client.html">GameClient</a> &amp;client)</td></tr>
+<tr class="separator:a07a7d7f7e43f2140e3e6337322f78224 inherit pro_methods_classentities_1_1_living_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_methods_classentities_1_1_entity"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classentities_1_1_entity')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td></tr>
+<tr class="memitem:a94d18db8d502d677b6f4215dc1e1d820 inherit pro_methods_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#a94d18db8d502d677b6f4215dc1e1d820">getCollision</a> (const <a class="el" href="classentities_1_1_entity.html">Entity</a> &amp;other)</td></tr>
+<tr class="memdesc:a94d18db8d502d677b6f4215dc1e1d820 inherit pro_methods_classentities_1_1_entity"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate collision with another <a class="el" href="classentities_1_1_entity.html" title="Every object, what can be on the map.">Entity</a>, how much should this entity move, to avoid the collision.  <a href="classentities_1_1_entity.html#a94d18db8d502d677b6f4215dc1e1d820">More...</a><br /></td></tr>
+<tr class="separator:a94d18db8d502d677b6f4215dc1e1d820 inherit pro_methods_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_attribs_classentities_1_1_character_entity"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_classentities_1_1_character_entity')"><img src="closed.png" alt="-"/>&#160;Protected Attributes inherited from <a class="el" href="classentities_1_1_character_entity.html">entities::CharacterEntity</a></td></tr>
+<tr class="memitem:a295a77ffb22dd1a7b30164ab04ecf400 inherit pro_attribs_classentities_1_1_character_entity"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classrender_1_1_i_texture.html">render::ITexture</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_character_entity.html#a295a77ffb22dd1a7b30164ab04ecf400">texture</a></td></tr>
+<tr class="separator:a295a77ffb22dd1a7b30164ab04ecf400 inherit pro_attribs_classentities_1_1_character_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_attribs_classentities_1_1_living_entity"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_classentities_1_1_living_entity')"><img src="closed.png" alt="-"/>&#160;Protected Attributes inherited from <a class="el" href="classentities_1_1_living_entity.html">entities::LivingEntity</a></td></tr>
+<tr class="memitem:ad8b574e93d1fa34cdd119be6f0391acb inherit pro_attribs_classentities_1_1_living_entity"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_living_entity.html#ad8b574e93d1fa34cdd119be6f0391acb">speed</a></td></tr>
+<tr class="memdesc:ad8b574e93d1fa34cdd119be6f0391acb inherit pro_attribs_classentities_1_1_living_entity"><td class="mdescLeft">&#160;</td><td class="mdescRight">Its speed and moving direction.  <a href="classentities_1_1_living_entity.html#ad8b574e93d1fa34cdd119be6f0391acb">More...</a><br /></td></tr>
+<tr class="separator:ad8b574e93d1fa34cdd119be6f0391acb inherit pro_attribs_classentities_1_1_living_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a78282129a711906b7973c4ecb37b8434 inherit pro_attribs_classentities_1_1_living_entity"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_living_entity.html#a78282129a711906b7973c4ecb37b8434">health</a></td></tr>
+<tr class="memdesc:a78282129a711906b7973c4ecb37b8434 inherit pro_attribs_classentities_1_1_living_entity"><td class="mdescLeft">&#160;</td><td class="mdescRight">It has a health.  <a href="classentities_1_1_living_entity.html#a78282129a711906b7973c4ecb37b8434">More...</a><br /></td></tr>
+<tr class="separator:a78282129a711906b7973c4ecb37b8434 inherit pro_attribs_classentities_1_1_living_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_attribs_classentities_1_1_entity"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_classentities_1_1_entity')"><img src="closed.png" alt="-"/>&#160;Protected Attributes inherited from <a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td></tr>
+<tr class="memitem:a04f9c2febe8d435138a07eb2f48ba96b inherit pro_attribs_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#a04f9c2febe8d435138a07eb2f48ba96b">pos</a></td></tr>
+<tr class="memdesc:a04f9c2febe8d435138a07eb2f48ba96b inherit pro_attribs_classentities_1_1_entity"><td class="mdescLeft">&#160;</td><td class="mdescRight">it's position  <a href="classentities_1_1_entity.html#a04f9c2febe8d435138a07eb2f48ba96b">More...</a><br /></td></tr>
+<tr class="separator:a04f9c2febe8d435138a07eb2f48ba96b inherit pro_attribs_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1453bca3376a185aa54135dd4958b244 inherit pro_attribs_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#a1453bca3376a185aa54135dd4958b244">is_initialized</a></td></tr>
+<tr class="memdesc:a1453bca3376a185aa54135dd4958b244 inherit pro_attribs_classentities_1_1_entity"><td class="mdescLeft">&#160;</td><td class="mdescRight">well, is initialized  <a href="classentities_1_1_entity.html#a1453bca3376a185aa54135dd4958b244">More...</a><br /></td></tr>
+<tr class="separator:a1453bca3376a185aa54135dd4958b244 inherit pro_attribs_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aedac7bb35b729e4a02c582b9f4369ab8 inherit pro_attribs_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#aedac7bb35b729e4a02c582b9f4369ab8">is_alive</a></td></tr>
+<tr class="memdesc:aedac7bb35b729e4a02c582b9f4369ab8 inherit pro_attribs_classentities_1_1_entity"><td class="mdescLeft">&#160;</td><td class="mdescRight">true, if it is alive  <a href="classentities_1_1_entity.html#aedac7bb35b729e4a02c582b9f4369ab8">More...</a><br /></td></tr>
+<tr class="separator:aedac7bb35b729e4a02c582b9f4369ab8 inherit pro_attribs_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>The enemies. go after the player, and try to kill it. </p>
+
+<p class="definition">Definition at line <a class="el" href="_entity_with_a_i_8h_source.html#l00011">11</a> of file <a class="el" href="_entity_with_a_i_8h_source.html">EntityWithAI.h</a>.</p>
+</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
+<a id="aa8bfaebef1ce596fbd8d70b36362135b"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aa8bfaebef1ce596fbd8d70b36362135b">&#9670;&nbsp;</a></span>EntityWithAI()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">entities::EntityWithAI::EntityWithAI </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>pos</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="classrender_1_1_i_texture.html">render::ITexture</a> &amp;&#160;</td>
+          <td class="paramname"><em>skin</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>damage</em> = <code>20</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const std::string &amp;&#160;</td>
+          <td class="paramname"><em>name</em> = <code>&quot;Enemy&quot;</code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="_entity_with_a_i_8cpp_source.html#l00049">49</a> of file <a class="el" href="_entity_with_a_i_8cpp_source.html">EntityWithAI.cpp</a>.</p>
+
+</div>
+</div>
+<h2 class="groupheader">Member Function Documentation</h2>
+<a id="af1e954b2ecf51732759a28e00dc2614c"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#af1e954b2ecf51732759a28e00dc2614c">&#9670;&nbsp;</a></span>addWeapon()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void entities::EntityWithAI::addWeapon </td>
+          <td>(</td>
+          <td class="paramtype">std::shared_ptr&lt; <a class="el" href="classweapons_1_1_weapon.html">weapons::Weapon</a> &gt; &amp;&#160;</td>
+          <td class="paramname"><em>weapon</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>override it's weapon </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">weapon</td><td>the new weapon, can be nullptr </td></tr>
+  </table>
+  </dd>
+</dl>
+
+<p class="definition">Definition at line <a class="el" href="_entity_with_a_i_8cpp_source.html#l00044">44</a> of file <a class="el" href="_entity_with_a_i_8cpp_source.html">EntityWithAI.cpp</a>.</p>
+
+</div>
+</div>
+<a id="a49a1c8a8ec1a318f65007d54173c3d37"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a49a1c8a8ec1a318f65007d54173c3d37">&#9670;&nbsp;</a></span>damage()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">bool entities::EntityWithAI::damage </td>
+          <td>(</td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>damage</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="classentities_1_1_entity.html">Entity</a> &amp;&#160;</td>
+          <td class="paramname"><em>attacker</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>something damage this </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">damage</td><td>how much damage should it take </td></tr>
+    <tr><td class="paramname">attacker</td><td>who deal the damage. not the projectile, the entity </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>did the entity take the damage or no (like a wall) </dd></dl>
+
+<p>Implements <a class="el" href="classentities_1_1_entity.html#af7fc9949fc50b1b31abb36a3d51b0597">entities::Entity</a>.</p>
+
+<p class="definition">Definition at line <a class="el" href="_entity_with_a_i_8cpp_source.html#l00052">52</a> of file <a class="el" href="_entity_with_a_i_8cpp_source.html">EntityWithAI.cpp</a>.</p>
+
+</div>
+</div>
+<a id="a66937315f0a16d70c29359e89415d222"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a66937315f0a16d70c29359e89415d222">&#9670;&nbsp;</a></span>getWeapon()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">std::shared_ptr&lt; <a class="el" href="classweapons_1_1_weapon.html">weapons::Weapon</a> &gt; entities::EntityWithAI::getWeapon </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+<p>Return null if not available </p>
+
+<p>Reimplemented from <a class="el" href="classentities_1_1_character_entity.html#a7926bfbac4481203c1bd8920fcb2c432">entities::CharacterEntity</a>.</p>
+
+<p class="definition">Definition at line <a class="el" href="_entity_with_a_i_8cpp_source.html#l00061">61</a> of file <a class="el" href="_entity_with_a_i_8cpp_source.html">EntityWithAI.cpp</a>.</p>
+
+</div>
+</div>
+<a id="a92708b14b042c03fa9a8673192867e72"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a92708b14b042c03fa9a8673192867e72">&#9670;&nbsp;</a></span>tick()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">void entities::EntityWithAI::tick </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="class_game_client.html">GameClient</a> &amp;&#160;</td>
+          <td class="paramname"><em>client</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>deltaT</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">std::shared_ptr&lt; <a class="el" href="classentities_1_1_entity.html">Entity</a> &gt; &amp;&#160;</td>
+          <td class="paramname"><em>shared_this</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Tick, from <a class="el" href="classentities_1_1_entity.html" title="Every object, what can be on the map.">Entity</a>. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">client</td><td>client </td></tr>
+    <tr><td class="paramname">deltaT</td><td>fElapsedTime </td></tr>
+    <tr><td class="paramname">shared_this</td><td>it as a shared_ptr </td></tr>
+  </table>
+  </dd>
+</dl>
+
+<p>Reimplemented from <a class="el" href="classentities_1_1_character_entity.html#ae7cdddc6dca655e7bf8c2f48424c5208">entities::CharacterEntity</a>.</p>
+
+<p class="definition">Definition at line <a class="el" href="_entity_with_a_i_8cpp_source.html#l00014">14</a> of file <a class="el" href="_entity_with_a_i_8cpp_source.html">EntityWithAI.cpp</a>.</p>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following files:<ul>
+<li>C:/Users/kosmx/Documents/GitHub/2d-game/<a class="el" href="_entity_with_a_i_8h_source.html">EntityWithAI.h</a></li>
+<li>C:/Users/kosmx/Documents/GitHub/2d-game/<a class="el" href="_entity_with_a_i_8cpp_source.html">EntityWithAI.cpp</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/classentities_1_1_entity_with_a_i.png b/doxy/html/classentities_1_1_entity_with_a_i.png
new file mode 100644
index 0000000000000000000000000000000000000000..cd81d5037c0ad955d29d5e9f8bb99803a864fbb8
Binary files /dev/null and b/doxy/html/classentities_1_1_entity_with_a_i.png differ
diff --git a/doxy/html/classentities_1_1_explosive_projectile-members.html b/doxy/html/classentities_1_1_explosive_projectile-members.html
new file mode 100644
index 0000000000000000000000000000000000000000..a57e4e26ce3806b2299d2f1756df6a91bf2913c5
--- /dev/null
+++ b/doxy/html/classentities_1_1_explosive_projectile-members.html
@@ -0,0 +1,111 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="namespaceentities.html">entities</a></li><li class="navelem"><a class="el" href="classentities_1_1_explosive_projectile.html">ExplosiveProjectile</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">entities::ExplosiveProjectile Member List</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="classentities_1_1_explosive_projectile.html">entities::ExplosiveProjectile</a>, including all inherited members.</p>
+<table class="directory">
+  <tr class="even"><td class="entry"><a class="el" href="classentities_1_1_projectile_entity.html#ab3eb63e6fdf0ca5c4b81ebbc02e7f513">bounce</a>(const olc::vf2d &amp;collision)</td><td class="entry"><a class="el" href="classentities_1_1_projectile_entity.html">entities::ProjectileEntity</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classentities_1_1_explosive_projectile.html#a8b075196a23aed5116e885709b64d583">canBeRemoved</a>() const override</td><td class="entry"><a class="el" href="classentities_1_1_explosive_projectile.html">entities::ExplosiveProjectile</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classentities_1_1_projectile_entity.html#a723e706e6421504ce9c6d70d77561215">damage</a>(int damage, Entity &amp;attacker) override</td><td class="entry"><a class="el" href="classentities_1_1_projectile_entity.html">entities::ProjectileEntity</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classentities_1_1_projectile_entity.html#ad4325b9194e4c76e68f27857226eefd8">damageValue</a></td><td class="entry"><a class="el" href="classentities_1_1_projectile_entity.html">entities::ProjectileEntity</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classentities_1_1_entity.html#a539ddef34b718b6068df421f316f4a6d">Entity</a>(const olc::vf2d &amp;pos)</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">explicit</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classentities_1_1_explosive_projectile.html#ae80625e2530015d21b963ec219be758e">ExplosiveProjectile</a>(std::shared_ptr&lt; Entity &gt; &amp;user, const olc::vf2d &amp;pos0, render::ITexture &amp;texture, int damage=40)</td><td class="entry"><a class="el" href="classentities_1_1_explosive_projectile.html">entities::ExplosiveProjectile</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classentities_1_1_entity.html#a94d18db8d502d677b6f4215dc1e1d820">getCollision</a>(const Entity &amp;other)</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classentities_1_1_projectile_entity.html#a463a54543d8412feddf3be0aa7ab532a">getDamage</a>()</td><td class="entry"><a class="el" href="classentities_1_1_projectile_entity.html">entities::ProjectileEntity</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classentities_1_1_projectile_entity.html#ae38525094695db8ab564c5ae27711bb4">getHitBoxSize</a>() const override</td><td class="entry"><a class="el" href="classentities_1_1_projectile_entity.html">entities::ProjectileEntity</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classentities_1_1_entity.html#a8c4b0c1eb69a673619e4c8943ef34f86">getName</a>() const</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classentities_1_1_entity.html#a799a692b988248dd23d207b95e7fe2b7">getPos</a>() const</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classentities_1_1_entity.html#ac60e9beb5a45fc65120e9779e680c04b">getSize</a>() const</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classentities_1_1_projectile_entity.html#a7e67fe629e1ef7115fd2a0cae8b1efc0">getTexture</a>() override</td><td class="entry"><a class="el" href="classentities_1_1_projectile_entity.html">entities::ProjectileEntity</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classentities_1_1_entity.html#afd80ddceccb36b87d0d80dcc7f88fc3b">init</a>(GameClient &amp;client)</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classentities_1_1_entity.html#aedac7bb35b729e4a02c582b9f4369ab8">is_alive</a></td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classentities_1_1_entity.html#a1453bca3376a185aa54135dd4958b244">is_initialized</a></td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classentities_1_1_entity.html#ab0ee90a84f2163b600e603f24cff046f">isAlive</a>() const</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classentities_1_1_entity.html#ab010066d52a02c63908f70ff6ef7d873">isInitialized</a>()</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classentities_1_1_explosive_projectile.html#a7e0d880f0dfeb6570dc724a0739b1331">onCollide</a>(const olc::vf2d &amp;collisionVector, std::shared_ptr&lt; Entity &gt; &amp;who) override</td><td class="entry"><a class="el" href="classentities_1_1_explosive_projectile.html">entities::ExplosiveProjectile</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classentities_1_1_entity.html#ad0a172ff99a7e73aaaee3658d5e3ae08">operator WallEntity *</a>()</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classentities_1_1_entity.html#a04f9c2febe8d435138a07eb2f48ba96b">pos</a></td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classentities_1_1_projectile_entity.html#aedd28853ca6fd6f1b8fa45dbe6b90c63">projectile</a></td><td class="entry"><a class="el" href="classentities_1_1_projectile_entity.html">entities::ProjectileEntity</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classentities_1_1_projectile_entity.html#ad42e2a1181110d2fa3acbec7eef3424e">ProjectileEntity</a>(std::shared_ptr&lt; Entity &gt; &amp;user, const olc::vf2d &amp;pos0, render::ITexture &amp;texture, int damage=20)</td><td class="entry"><a class="el" href="classentities_1_1_projectile_entity.html">entities::ProjectileEntity</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classentities_1_1_explosive_projectile.html#a86148b27403d275c1513f22bb3f47892">render</a>(olc::TransformedView &amp;scene) override</td><td class="entry"><a class="el" href="classentities_1_1_explosive_projectile.html">entities::ExplosiveProjectile</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classentities_1_1_projectile_entity.html#ad88aa7e53b9a6671dab6132a8d58dbb5">setVelocity</a>(const olc::vf2d &amp;v)</td><td class="entry"><a class="el" href="classentities_1_1_projectile_entity.html">entities::ProjectileEntity</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classentities_1_1_explosive_projectile.html#a3aa22ab3467caa20a8c7b3cc818b157d">tick</a>(GameClient &amp;client, float deltaT, std::shared_ptr&lt; Entity &gt; &amp;shared_this) override</td><td class="entry"><a class="el" href="classentities_1_1_explosive_projectile.html">entities::ExplosiveProjectile</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classentities_1_1_projectile_entity.html#ab01d1aa4b66b21481d07f7777bfb2ca3">user</a></td><td class="entry"><a class="el" href="classentities_1_1_projectile_entity.html">entities::ProjectileEntity</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classentities_1_1_projectile_entity.html#a29cb43b58d34f32f18986185bf8691f8">velocity</a></td><td class="entry"><a class="el" href="classentities_1_1_projectile_entity.html">entities::ProjectileEntity</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classentities_1_1_entity.html#a64d968c160dee2fdfca68aff2e49946b">~Entity</a>()=default</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+</table></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/classentities_1_1_explosive_projectile.html b/doxy/html/classentities_1_1_explosive_projectile.html
new file mode 100644
index 0000000000000000000000000000000000000000..a3653e53b4aaab6c8878a8142b5af2347826207e
--- /dev/null
+++ b/doxy/html/classentities_1_1_explosive_projectile.html
@@ -0,0 +1,410 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: entities::ExplosiveProjectile Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="namespaceentities.html">entities</a></li><li class="navelem"><a class="el" href="classentities_1_1_explosive_projectile.html">ExplosiveProjectile</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="#pro-methods">Protected Member Functions</a> &#124;
+<a href="classentities_1_1_explosive_projectile-members.html">List of all members</a>  </div>
+  <div class="headertitle">
+<div class="title">entities::ExplosiveProjectile Class Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>A projectile, that explodes.  
+ <a href="classentities_1_1_explosive_projectile.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="_explosive_projectile_8h_source.html">ExplosiveProjectile.h</a>&gt;</code></p>
+<div class="dynheader">
+Inheritance diagram for entities::ExplosiveProjectile:</div>
+<div class="dyncontent">
+ <div class="center">
+  <img src="classentities_1_1_explosive_projectile.png" usemap="#entities::ExplosiveProjectile_map" alt=""/>
+  <map id="entities::ExplosiveProjectile_map" name="entities::ExplosiveProjectile_map">
+<area href="classentities_1_1_projectile_entity.html" title="A projectile, a bullet." alt="entities::ProjectileEntity" shape="rect" coords="0,56,164,80"/>
+<area href="classentities_1_1_entity.html" title="Every object, what can be on the map." alt="entities::Entity" shape="rect" coords="0,0,164,24"/>
+  </map>
+</div></div>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr class="memitem:ae80625e2530015d21b963ec219be758e"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_explosive_projectile.html#ae80625e2530015d21b963ec219be758e">ExplosiveProjectile</a> (std::shared_ptr&lt; <a class="el" href="classentities_1_1_entity.html">Entity</a> &gt; &amp;<a class="el" href="classentities_1_1_projectile_entity.html#ab01d1aa4b66b21481d07f7777bfb2ca3">user</a>, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;pos0, <a class="el" href="classrender_1_1_i_texture.html">render::ITexture</a> &amp;texture, int <a class="el" href="classentities_1_1_projectile_entity.html#a723e706e6421504ce9c6d70d77561215">damage</a>=40)</td></tr>
+<tr class="separator:ae80625e2530015d21b963ec219be758e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3aa22ab3467caa20a8c7b3cc818b157d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_explosive_projectile.html#a3aa22ab3467caa20a8c7b3cc818b157d">tick</a> (<a class="el" href="class_game_client.html">GameClient</a> &amp;client, float deltaT, std::shared_ptr&lt; <a class="el" href="classentities_1_1_entity.html">Entity</a> &gt; &amp;shared_this) override</td></tr>
+<tr class="memdesc:a3aa22ab3467caa20a8c7b3cc818b157d"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classentities_1_1_entity.html" title="Every object, what can be on the map.">Entity</a> tick multiple times per sec.  <a href="classentities_1_1_explosive_projectile.html#a3aa22ab3467caa20a8c7b3cc818b157d">More...</a><br /></td></tr>
+<tr class="separator:a3aa22ab3467caa20a8c7b3cc818b157d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8b075196a23aed5116e885709b64d583"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_explosive_projectile.html#a8b075196a23aed5116e885709b64d583">canBeRemoved</a> () const override</td></tr>
+<tr class="separator:a8b075196a23aed5116e885709b64d583"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a86148b27403d275c1513f22bb3f47892"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_explosive_projectile.html#a86148b27403d275c1513f22bb3f47892">render</a> (<a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a> &amp;scene) override</td></tr>
+<tr class="memdesc:a86148b27403d275c1513f22bb3f47892"><td class="mdescLeft">&#160;</td><td class="mdescRight">render  <a href="classentities_1_1_explosive_projectile.html#a86148b27403d275c1513f22bb3f47892">More...</a><br /></td></tr>
+<tr class="separator:a86148b27403d275c1513f22bb3f47892"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pub_methods_classentities_1_1_projectile_entity"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classentities_1_1_projectile_entity')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classentities_1_1_projectile_entity.html">entities::ProjectileEntity</a></td></tr>
+<tr class="memitem:ad42e2a1181110d2fa3acbec7eef3424e inherit pub_methods_classentities_1_1_projectile_entity"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_projectile_entity.html#ad42e2a1181110d2fa3acbec7eef3424e">ProjectileEntity</a> (std::shared_ptr&lt; <a class="el" href="classentities_1_1_entity.html">Entity</a> &gt; &amp;<a class="el" href="classentities_1_1_projectile_entity.html#ab01d1aa4b66b21481d07f7777bfb2ca3">user</a>, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;pos0, <a class="el" href="classrender_1_1_i_texture.html">render::ITexture</a> &amp;texture, int <a class="el" href="classentities_1_1_projectile_entity.html#a723e706e6421504ce9c6d70d77561215">damage</a>=20)</td></tr>
+<tr class="separator:ad42e2a1181110d2fa3acbec7eef3424e inherit pub_methods_classentities_1_1_projectile_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a761f27885de02515edaf252e8a4162b5 inherit pub_methods_classentities_1_1_projectile_entity"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_projectile_entity.html#a761f27885de02515edaf252e8a4162b5">tick</a> (<a class="el" href="class_game_client.html">GameClient</a> &amp;client, float deltaT, std::shared_ptr&lt; <a class="el" href="classentities_1_1_entity.html">Entity</a> &gt; &amp;shared_this) override</td></tr>
+<tr class="memdesc:a761f27885de02515edaf252e8a4162b5 inherit pub_methods_classentities_1_1_projectile_entity"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classentities_1_1_entity.html" title="Every object, what can be on the map.">Entity</a> tick multiple times per sec.  <a href="classentities_1_1_projectile_entity.html#a761f27885de02515edaf252e8a4162b5">More...</a><br /></td></tr>
+<tr class="separator:a761f27885de02515edaf252e8a4162b5 inherit pub_methods_classentities_1_1_projectile_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad88aa7e53b9a6671dab6132a8d58dbb5 inherit pub_methods_classentities_1_1_projectile_entity"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_projectile_entity.html#ad88aa7e53b9a6671dab6132a8d58dbb5">setVelocity</a> (const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;v)</td></tr>
+<tr class="memdesc:ad88aa7e53b9a6671dab6132a8d58dbb5 inherit pub_methods_classentities_1_1_projectile_entity"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set its velocity.  <a href="classentities_1_1_projectile_entity.html#ad88aa7e53b9a6671dab6132a8d58dbb5">More...</a><br /></td></tr>
+<tr class="separator:ad88aa7e53b9a6671dab6132a8d58dbb5 inherit pub_methods_classentities_1_1_projectile_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a723e706e6421504ce9c6d70d77561215 inherit pub_methods_classentities_1_1_projectile_entity"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_projectile_entity.html#a723e706e6421504ce9c6d70d77561215">damage</a> (int damage, <a class="el" href="classentities_1_1_entity.html">Entity</a> &amp;attacker) override</td></tr>
+<tr class="memdesc:a723e706e6421504ce9c6d70d77561215 inherit pub_methods_classentities_1_1_projectile_entity"><td class="mdescLeft">&#160;</td><td class="mdescRight">something damage this  <a href="classentities_1_1_projectile_entity.html#a723e706e6421504ce9c6d70d77561215">More...</a><br /></td></tr>
+<tr class="separator:a723e706e6421504ce9c6d70d77561215 inherit pub_methods_classentities_1_1_projectile_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pub_methods_classentities_1_1_entity"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classentities_1_1_entity')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td></tr>
+<tr class="memitem:a539ddef34b718b6068df421f316f4a6d inherit pub_methods_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#a539ddef34b718b6068df421f316f4a6d">Entity</a> (const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;<a class="el" href="classentities_1_1_entity.html#a04f9c2febe8d435138a07eb2f48ba96b">pos</a>)</td></tr>
+<tr class="separator:a539ddef34b718b6068df421f316f4a6d inherit pub_methods_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afd80ddceccb36b87d0d80dcc7f88fc3b inherit pub_methods_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#afd80ddceccb36b87d0d80dcc7f88fc3b">init</a> (<a class="el" href="class_game_client.html">GameClient</a> &amp;client)</td></tr>
+<tr class="separator:afd80ddceccb36b87d0d80dcc7f88fc3b inherit pub_methods_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab010066d52a02c63908f70ff6ef7d873 inherit pub_methods_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#ab010066d52a02c63908f70ff6ef7d873">isInitialized</a> ()</td></tr>
+<tr class="separator:ab010066d52a02c63908f70ff6ef7d873 inherit pub_methods_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a799a692b988248dd23d207b95e7fe2b7 inherit pub_methods_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#a799a692b988248dd23d207b95e7fe2b7">getPos</a> () const</td></tr>
+<tr class="separator:a799a692b988248dd23d207b95e7fe2b7 inherit pub_methods_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac60e9beb5a45fc65120e9779e680c04b inherit pub_methods_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#ac60e9beb5a45fc65120e9779e680c04b">getSize</a> () const</td></tr>
+<tr class="memdesc:ac60e9beb5a45fc65120e9779e680c04b inherit pub_methods_classentities_1_1_entity"><td class="mdescLeft">&#160;</td><td class="mdescRight">get it's size to render  <a href="classentities_1_1_entity.html#ac60e9beb5a45fc65120e9779e680c04b">More...</a><br /></td></tr>
+<tr class="separator:ac60e9beb5a45fc65120e9779e680c04b inherit pub_methods_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab0ee90a84f2163b600e603f24cff046f inherit pub_methods_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#ab0ee90a84f2163b600e603f24cff046f">isAlive</a> () const</td></tr>
+<tr class="separator:ab0ee90a84f2163b600e603f24cff046f inherit pub_methods_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8c4b0c1eb69a673619e4c8943ef34f86 inherit pub_methods_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">virtual std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#a8c4b0c1eb69a673619e4c8943ef34f86">getName</a> () const</td></tr>
+<tr class="separator:a8c4b0c1eb69a673619e4c8943ef34f86 inherit pub_methods_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a64d968c160dee2fdfca68aff2e49946b inherit pub_methods_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#a64d968c160dee2fdfca68aff2e49946b">~Entity</a> ()=default</td></tr>
+<tr class="separator:a64d968c160dee2fdfca68aff2e49946b inherit pub_methods_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad0a172ff99a7e73aaaee3658d5e3ae08 inherit pub_methods_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#ad0a172ff99a7e73aaaee3658d5e3ae08">operator WallEntity *</a> ()</td></tr>
+<tr class="separator:ad0a172ff99a7e73aaaee3658d5e3ae08 inherit pub_methods_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
+Protected Member Functions</h2></td></tr>
+<tr class="memitem:a7e0d880f0dfeb6570dc724a0739b1331"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_explosive_projectile.html#a7e0d880f0dfeb6570dc724a0739b1331">onCollide</a> (const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;collisionVector, std::shared_ptr&lt; <a class="el" href="classentities_1_1_entity.html">Entity</a> &gt; &amp;who) override</td></tr>
+<tr class="memdesc:a7e0d880f0dfeb6570dc724a0739b1331"><td class="mdescLeft">&#160;</td><td class="mdescRight">Determines, what will the projectile do, if it hit something.  <a href="classentities_1_1_explosive_projectile.html#a7e0d880f0dfeb6570dc724a0739b1331">More...</a><br /></td></tr>
+<tr class="separator:a7e0d880f0dfeb6570dc724a0739b1331"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_methods_classentities_1_1_projectile_entity"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classentities_1_1_projectile_entity')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="classentities_1_1_projectile_entity.html">entities::ProjectileEntity</a></td></tr>
+<tr class="memitem:a7e67fe629e1ef7115fd2a0cae8b1efc0 inherit pro_methods_classentities_1_1_projectile_entity"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classrender_1_1_i_texture.html">render::ITexture</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_projectile_entity.html#a7e67fe629e1ef7115fd2a0cae8b1efc0">getTexture</a> () override</td></tr>
+<tr class="memdesc:a7e67fe629e1ef7115fd2a0cae8b1efc0 inherit pro_methods_classentities_1_1_projectile_entity"><td class="mdescLeft">&#160;</td><td class="mdescRight">the object's texture  <a href="classentities_1_1_projectile_entity.html#a7e67fe629e1ef7115fd2a0cae8b1efc0">More...</a><br /></td></tr>
+<tr class="separator:a7e67fe629e1ef7115fd2a0cae8b1efc0 inherit pro_methods_classentities_1_1_projectile_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a463a54543d8412feddf3be0aa7ab532a inherit pro_methods_classentities_1_1_projectile_entity"><td class="memItemLeft" align="right" valign="top">virtual int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_projectile_entity.html#a463a54543d8412feddf3be0aa7ab532a">getDamage</a> ()</td></tr>
+<tr class="separator:a463a54543d8412feddf3be0aa7ab532a inherit pro_methods_classentities_1_1_projectile_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab3eb63e6fdf0ca5c4b81ebbc02e7f513 inherit pro_methods_classentities_1_1_projectile_entity"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_projectile_entity.html#ab3eb63e6fdf0ca5c4b81ebbc02e7f513">bounce</a> (const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;collision)</td></tr>
+<tr class="memdesc:ab3eb63e6fdf0ca5c4b81ebbc02e7f513 inherit pro_methods_classentities_1_1_projectile_entity"><td class="mdescLeft">&#160;</td><td class="mdescRight">not used, do a bounce function  <a href="classentities_1_1_projectile_entity.html#ab3eb63e6fdf0ca5c4b81ebbc02e7f513">More...</a><br /></td></tr>
+<tr class="separator:ab3eb63e6fdf0ca5c4b81ebbc02e7f513 inherit pro_methods_classentities_1_1_projectile_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae38525094695db8ab564c5ae27711bb4 inherit pro_methods_classentities_1_1_projectile_entity"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_projectile_entity.html#ae38525094695db8ab564c5ae27711bb4">getHitBoxSize</a> () const override</td></tr>
+<tr class="memdesc:ae38525094695db8ab564c5ae27711bb4 inherit pro_methods_classentities_1_1_projectile_entity"><td class="mdescLeft">&#160;</td><td class="mdescRight">half hitbox size  <a href="classentities_1_1_projectile_entity.html#ae38525094695db8ab564c5ae27711bb4">More...</a><br /></td></tr>
+<tr class="separator:ae38525094695db8ab564c5ae27711bb4 inherit pro_methods_classentities_1_1_projectile_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_methods_classentities_1_1_entity"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classentities_1_1_entity')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td></tr>
+<tr class="memitem:a94d18db8d502d677b6f4215dc1e1d820 inherit pro_methods_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#a94d18db8d502d677b6f4215dc1e1d820">getCollision</a> (const <a class="el" href="classentities_1_1_entity.html">Entity</a> &amp;other)</td></tr>
+<tr class="memdesc:a94d18db8d502d677b6f4215dc1e1d820 inherit pro_methods_classentities_1_1_entity"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate collision with another <a class="el" href="classentities_1_1_entity.html" title="Every object, what can be on the map.">Entity</a>, how much should this entity move, to avoid the collision.  <a href="classentities_1_1_entity.html#a94d18db8d502d677b6f4215dc1e1d820">More...</a><br /></td></tr>
+<tr class="separator:a94d18db8d502d677b6f4215dc1e1d820 inherit pro_methods_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
+Additional Inherited Members</h2></td></tr>
+<tr class="inherit_header pub_static_attribs_classentities_1_1_projectile_entity"><td colspan="2" onclick="javascript:toggleInherit('pub_static_attribs_classentities_1_1_projectile_entity')"><img src="closed.png" alt="-"/>&#160;Static Public Attributes inherited from <a class="el" href="classentities_1_1_projectile_entity.html">entities::ProjectileEntity</a></td></tr>
+<tr class="memitem:aedd28853ca6fd6f1b8fa45dbe6b90c63 inherit pub_static_attribs_classentities_1_1_projectile_entity"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classrender_1_1_simple_sprite.html">render::SimpleSprite</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_projectile_entity.html#aedd28853ca6fd6f1b8fa45dbe6b90c63">projectile</a></td></tr>
+<tr class="separator:aedd28853ca6fd6f1b8fa45dbe6b90c63 inherit pub_static_attribs_classentities_1_1_projectile_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_attribs_classentities_1_1_projectile_entity"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_classentities_1_1_projectile_entity')"><img src="closed.png" alt="-"/>&#160;Protected Attributes inherited from <a class="el" href="classentities_1_1_projectile_entity.html">entities::ProjectileEntity</a></td></tr>
+<tr class="memitem:a29cb43b58d34f32f18986185bf8691f8 inherit pro_attribs_classentities_1_1_projectile_entity"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_projectile_entity.html#a29cb43b58d34f32f18986185bf8691f8">velocity</a></td></tr>
+<tr class="separator:a29cb43b58d34f32f18986185bf8691f8 inherit pro_attribs_classentities_1_1_projectile_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab01d1aa4b66b21481d07f7777bfb2ca3 inherit pro_attribs_classentities_1_1_projectile_entity"><td class="memItemLeft" align="right" valign="top">std::shared_ptr&lt; <a class="el" href="classentities_1_1_entity.html">Entity</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_projectile_entity.html#ab01d1aa4b66b21481d07f7777bfb2ca3">user</a></td></tr>
+<tr class="memdesc:ab01d1aa4b66b21481d07f7777bfb2ca3 inherit pro_attribs_classentities_1_1_projectile_entity"><td class="mdescLeft">&#160;</td><td class="mdescRight">Who is the owner of this bullet. needed to not damage the user.  <a href="classentities_1_1_projectile_entity.html#ab01d1aa4b66b21481d07f7777bfb2ca3">More...</a><br /></td></tr>
+<tr class="separator:ab01d1aa4b66b21481d07f7777bfb2ca3 inherit pro_attribs_classentities_1_1_projectile_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad4325b9194e4c76e68f27857226eefd8 inherit pro_attribs_classentities_1_1_projectile_entity"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_projectile_entity.html#ad4325b9194e4c76e68f27857226eefd8">damageValue</a></td></tr>
+<tr class="separator:ad4325b9194e4c76e68f27857226eefd8 inherit pro_attribs_classentities_1_1_projectile_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_attribs_classentities_1_1_entity"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_classentities_1_1_entity')"><img src="closed.png" alt="-"/>&#160;Protected Attributes inherited from <a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td></tr>
+<tr class="memitem:a04f9c2febe8d435138a07eb2f48ba96b inherit pro_attribs_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#a04f9c2febe8d435138a07eb2f48ba96b">pos</a></td></tr>
+<tr class="memdesc:a04f9c2febe8d435138a07eb2f48ba96b inherit pro_attribs_classentities_1_1_entity"><td class="mdescLeft">&#160;</td><td class="mdescRight">it's position  <a href="classentities_1_1_entity.html#a04f9c2febe8d435138a07eb2f48ba96b">More...</a><br /></td></tr>
+<tr class="separator:a04f9c2febe8d435138a07eb2f48ba96b inherit pro_attribs_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1453bca3376a185aa54135dd4958b244 inherit pro_attribs_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#a1453bca3376a185aa54135dd4958b244">is_initialized</a></td></tr>
+<tr class="memdesc:a1453bca3376a185aa54135dd4958b244 inherit pro_attribs_classentities_1_1_entity"><td class="mdescLeft">&#160;</td><td class="mdescRight">well, is initialized  <a href="classentities_1_1_entity.html#a1453bca3376a185aa54135dd4958b244">More...</a><br /></td></tr>
+<tr class="separator:a1453bca3376a185aa54135dd4958b244 inherit pro_attribs_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aedac7bb35b729e4a02c582b9f4369ab8 inherit pro_attribs_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#aedac7bb35b729e4a02c582b9f4369ab8">is_alive</a></td></tr>
+<tr class="memdesc:aedac7bb35b729e4a02c582b9f4369ab8 inherit pro_attribs_classentities_1_1_entity"><td class="mdescLeft">&#160;</td><td class="mdescRight">true, if it is alive  <a href="classentities_1_1_entity.html#aedac7bb35b729e4a02c582b9f4369ab8">More...</a><br /></td></tr>
+<tr class="separator:aedac7bb35b729e4a02c582b9f4369ab8 inherit pro_attribs_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>A projectile, that explodes. </p>
+
+<p class="definition">Definition at line <a class="el" href="_explosive_projectile_8h_source.html#l00008">8</a> of file <a class="el" href="_explosive_projectile_8h_source.html">ExplosiveProjectile.h</a>.</p>
+</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
+<a id="ae80625e2530015d21b963ec219be758e"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ae80625e2530015d21b963ec219be758e">&#9670;&nbsp;</a></span>ExplosiveProjectile()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">entities::ExplosiveProjectile::ExplosiveProjectile </td>
+          <td>(</td>
+          <td class="paramtype">std::shared_ptr&lt; <a class="el" href="classentities_1_1_entity.html">Entity</a> &gt; &amp;&#160;</td>
+          <td class="paramname"><em>user</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>pos0</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="classrender_1_1_i_texture.html">render::ITexture</a> &amp;&#160;</td>
+          <td class="paramname"><em>texture</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>damage</em> = <code>40</code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="_explosive_projectile_8cpp_source.html#l00019">19</a> of file <a class="el" href="_explosive_projectile_8cpp_source.html">ExplosiveProjectile.cpp</a>.</p>
+
+</div>
+</div>
+<h2 class="groupheader">Member Function Documentation</h2>
+<a id="a8b075196a23aed5116e885709b64d583"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a8b075196a23aed5116e885709b64d583">&#9670;&nbsp;</a></span>canBeRemoved()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">bool entities::ExplosiveProjectile::canBeRemoved </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td> const</td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+<dl class="section return"><dt>Returns</dt><dd>can be deleted from the entity list. mostly is dead </dd></dl>
+
+<p>Reimplemented from <a class="el" href="classentities_1_1_entity.html#a59426fe1b7dcefe96a0a748250724ff6">entities::Entity</a>.</p>
+
+<p class="definition">Definition at line <a class="el" href="_explosive_projectile_8cpp_source.html#l00032">32</a> of file <a class="el" href="_explosive_projectile_8cpp_source.html">ExplosiveProjectile.cpp</a>.</p>
+
+</div>
+</div>
+<a id="a7e0d880f0dfeb6570dc724a0739b1331"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a7e0d880f0dfeb6570dc724a0739b1331">&#9670;&nbsp;</a></span>onCollide()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">bool entities::ExplosiveProjectile::onCollide </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>collisionVector</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">std::shared_ptr&lt; <a class="el" href="classentities_1_1_entity.html">Entity</a> &gt; &amp;&#160;</td>
+          <td class="paramname"><em>who</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Determines, what will the projectile do, if it hit something. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">collisionVector</td><td>the collision vector </td></tr>
+    <tr><td class="paramname">who</td><td>who is the affected entity </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>is the projectile destroyed. </dd></dl>
+
+<p>Reimplemented from <a class="el" href="classentities_1_1_projectile_entity.html#a865c1a9527f67a3e5402a4fcf8baac98">entities::ProjectileEntity</a>.</p>
+
+<p class="definition">Definition at line <a class="el" href="_explosive_projectile_8cpp_source.html#l00010">10</a> of file <a class="el" href="_explosive_projectile_8cpp_source.html">ExplosiveProjectile.cpp</a>.</p>
+
+</div>
+</div>
+<a id="a86148b27403d275c1513f22bb3f47892"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a86148b27403d275c1513f22bb3f47892">&#9670;&nbsp;</a></span>render()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">void entities::ExplosiveProjectile::render </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a> &amp;&#160;</td>
+          <td class="paramname"><em>scene</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>render </p>
+
+<p>Reimplemented from <a class="el" href="classentities_1_1_entity.html#abcc4364b5b7250f0364f3550a618b3ab">entities::Entity</a>.</p>
+
+<p class="definition">Definition at line <a class="el" href="_explosive_projectile_8cpp_source.html#l00036">36</a> of file <a class="el" href="_explosive_projectile_8cpp_source.html">ExplosiveProjectile.cpp</a>.</p>
+
+</div>
+</div>
+<a id="a3aa22ab3467caa20a8c7b3cc818b157d"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a3aa22ab3467caa20a8c7b3cc818b157d">&#9670;&nbsp;</a></span>tick()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">void entities::ExplosiveProjectile::tick </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="class_game_client.html">GameClient</a> &amp;&#160;</td>
+          <td class="paramname"><em>client</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>deltaT</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">std::shared_ptr&lt; <a class="el" href="classentities_1_1_entity.html">Entity</a> &gt; &amp;&#160;</td>
+          <td class="paramname"><em>shared_this</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p><a class="el" href="classentities_1_1_entity.html" title="Every object, what can be on the map.">Entity</a> tick multiple times per sec. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">client</td><td>the game client object </td></tr>
+    <tr><td class="paramname">deltaT</td><td>how long take a tick </td></tr>
+    <tr><td class="paramname">shared_this</td><td>this as a shared_ptr </td></tr>
+  </table>
+  </dd>
+</dl>
+
+<p>Reimplemented from <a class="el" href="classentities_1_1_entity.html#a0440674bf90ae83d9a26aa4b0ac8309e">entities::Entity</a>.</p>
+
+<p class="definition">Definition at line <a class="el" href="_explosive_projectile_8cpp_source.html#l00022">22</a> of file <a class="el" href="_explosive_projectile_8cpp_source.html">ExplosiveProjectile.cpp</a>.</p>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following files:<ul>
+<li>C:/Users/kosmx/Documents/GitHub/2d-game/<a class="el" href="_explosive_projectile_8h_source.html">ExplosiveProjectile.h</a></li>
+<li>C:/Users/kosmx/Documents/GitHub/2d-game/<a class="el" href="_explosive_projectile_8cpp_source.html">ExplosiveProjectile.cpp</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/classentities_1_1_explosive_projectile.png b/doxy/html/classentities_1_1_explosive_projectile.png
new file mode 100644
index 0000000000000000000000000000000000000000..712bdd8d22b71ab689ece8378033f3ce92509f22
Binary files /dev/null and b/doxy/html/classentities_1_1_explosive_projectile.png differ
diff --git a/doxy/html/classentities_1_1_living_entity-members.html b/doxy/html/classentities_1_1_living_entity-members.html
new file mode 100644
index 0000000000000000000000000000000000000000..a58c948a963c9ee9c76304d9071094b50a9c71fb
--- /dev/null
+++ b/doxy/html/classentities_1_1_living_entity-members.html
@@ -0,0 +1,107 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="namespaceentities.html">entities</a></li><li class="navelem"><a class="el" href="classentities_1_1_living_entity.html">LivingEntity</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">entities::LivingEntity Member List</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="classentities_1_1_living_entity.html">entities::LivingEntity</a>, including all inherited members.</p>
+<table class="directory">
+  <tr class="even"><td class="entry"><a class="el" href="classentities_1_1_entity.html#a59426fe1b7dcefe96a0a748250724ff6">canBeRemoved</a>() const</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classentities_1_1_living_entity.html#a07a7d7f7e43f2140e3e6337322f78224">collisionOffset</a>(GameClient &amp;client)</td><td class="entry"><a class="el" href="classentities_1_1_living_entity.html">entities::LivingEntity</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classentities_1_1_living_entity.html#a28d31eff59137171da3e23a8e3ef9c1c">damage</a>(int damage, Entity &amp;attacker) override</td><td class="entry"><a class="el" href="classentities_1_1_living_entity.html">entities::LivingEntity</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classentities_1_1_entity.html#a539ddef34b718b6068df421f316f4a6d">Entity</a>(const olc::vf2d &amp;pos)</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">explicit</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classentities_1_1_living_entity.html#a657626746aaed854f45ac3bb6d6c2a2f">getAnimPhase</a>() const</td><td class="entry"><a class="el" href="classentities_1_1_living_entity.html">entities::LivingEntity</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classentities_1_1_entity.html#a94d18db8d502d677b6f4215dc1e1d820">getCollision</a>(const Entity &amp;other)</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classentities_1_1_living_entity.html#a27f39311f1139c96967b28cbaf752bd2">getDirection</a>()</td><td class="entry"><a class="el" href="classentities_1_1_living_entity.html">entities::LivingEntity</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classentities_1_1_living_entity.html#aa965d3922663b974dd14cc5f8004ed65">getHitBoxSize</a>() const override</td><td class="entry"><a class="el" href="classentities_1_1_living_entity.html">entities::LivingEntity</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classentities_1_1_entity.html#a8c4b0c1eb69a673619e4c8943ef34f86">getName</a>() const</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classentities_1_1_entity.html#a799a692b988248dd23d207b95e7fe2b7">getPos</a>() const</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classentities_1_1_entity.html#ac60e9beb5a45fc65120e9779e680c04b">getSize</a>() const</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classentities_1_1_entity.html#af01b796fb472ef3139aea41aeed36c76">getTexture</a>()=0</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">pure virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classentities_1_1_living_entity.html#a78282129a711906b7973c4ecb37b8434">health</a></td><td class="entry"><a class="el" href="classentities_1_1_living_entity.html">entities::LivingEntity</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classentities_1_1_entity.html#afd80ddceccb36b87d0d80dcc7f88fc3b">init</a>(GameClient &amp;client)</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classentities_1_1_entity.html#aedac7bb35b729e4a02c582b9f4369ab8">is_alive</a></td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classentities_1_1_entity.html#a1453bca3376a185aa54135dd4958b244">is_initialized</a></td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classentities_1_1_entity.html#ab0ee90a84f2163b600e603f24cff046f">isAlive</a>() const</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classentities_1_1_entity.html#ab010066d52a02c63908f70ff6ef7d873">isInitialized</a>()</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classentities_1_1_living_entity.html#a08837d43e7338c4ceff9acfbbbffd94b">LivingEntity</a>(olc::vf2d pos, int health=100)</td><td class="entry"><a class="el" href="classentities_1_1_living_entity.html">entities::LivingEntity</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classentities_1_1_entity.html#ad0a172ff99a7e73aaaee3658d5e3ae08">operator WallEntity *</a>()</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classentities_1_1_entity.html#a04f9c2febe8d435138a07eb2f48ba96b">pos</a></td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classentities_1_1_entity.html#abcc4364b5b7250f0364f3550a618b3ab">render</a>(olc::TransformedView &amp;scene)</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classentities_1_1_living_entity.html#ad8b574e93d1fa34cdd119be6f0391acb">speed</a></td><td class="entry"><a class="el" href="classentities_1_1_living_entity.html">entities::LivingEntity</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classentities_1_1_living_entity.html#af13cb8c3fabd2960746e21cd7dabe4d6">tick</a>(GameClient &amp;client, float deltaT, std::shared_ptr&lt; Entity &gt; &amp;shared_this) override</td><td class="entry"><a class="el" href="classentities_1_1_living_entity.html">entities::LivingEntity</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classentities_1_1_entity.html#a64d968c160dee2fdfca68aff2e49946b">~Entity</a>()=default</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+</table></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/classentities_1_1_living_entity.html b/doxy/html/classentities_1_1_living_entity.html
new file mode 100644
index 0000000000000000000000000000000000000000..cdba3d8cdc118fddb20b55ba3a9a334c1153de64
--- /dev/null
+++ b/doxy/html/classentities_1_1_living_entity.html
@@ -0,0 +1,486 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: entities::LivingEntity Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="namespaceentities.html">entities</a></li><li class="navelem"><a class="el" href="classentities_1_1_living_entity.html">LivingEntity</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="#pro-methods">Protected Member Functions</a> &#124;
+<a href="#pro-attribs">Protected Attributes</a> &#124;
+<a href="classentities_1_1_living_entity-members.html">List of all members</a>  </div>
+  <div class="headertitle">
+<div class="title">entities::LivingEntity Class Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Any moving animal or player.  
+ <a href="classentities_1_1_living_entity.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="_living_entity_8h_source.html">LivingEntity.h</a>&gt;</code></p>
+<div class="dynheader">
+Inheritance diagram for entities::LivingEntity:</div>
+<div class="dyncontent">
+ <div class="center">
+  <img src="classentities_1_1_living_entity.png" usemap="#entities::LivingEntity_map" alt=""/>
+  <map id="entities::LivingEntity_map" name="entities::LivingEntity_map">
+<area href="classentities_1_1_entity.html" title="Every object, what can be on the map." alt="entities::Entity" shape="rect" coords="155,0,300,24"/>
+<area href="classentities_1_1_character_entity.html" title="A player or an enemy." alt="entities::CharacterEntity" shape="rect" coords="155,112,300,136"/>
+<area href="classentities_1_1_dummy_entity.html" title="A test/dummy entity. it can&#39;t do anything... no, it can die." alt="entities::DummyEntity" shape="rect" coords="0,168,145,192"/>
+<area href="classentities_1_1_entity_with_a_i.html" title="The enemies. go after the player, and try to kill it." alt="entities::EntityWithAI" shape="rect" coords="155,168,300,192"/>
+<area href="classentities_1_1_player_entity.html" title="You, or the player." alt="entities::PlayerEntity" shape="rect" coords="310,168,455,192"/>
+  </map>
+</div></div>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr class="memitem:a08837d43e7338c4ceff9acfbbbffd94b"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_living_entity.html#a08837d43e7338c4ceff9acfbbbffd94b">LivingEntity</a> (<a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> <a class="el" href="classentities_1_1_entity.html#a04f9c2febe8d435138a07eb2f48ba96b">pos</a>, int <a class="el" href="classentities_1_1_living_entity.html#a78282129a711906b7973c4ecb37b8434">health</a>=100)</td></tr>
+<tr class="separator:a08837d43e7338c4ceff9acfbbbffd94b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a28d31eff59137171da3e23a8e3ef9c1c"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_living_entity.html#a28d31eff59137171da3e23a8e3ef9c1c">damage</a> (int damage, <a class="el" href="classentities_1_1_entity.html">Entity</a> &amp;attacker) override</td></tr>
+<tr class="memdesc:a28d31eff59137171da3e23a8e3ef9c1c"><td class="mdescLeft">&#160;</td><td class="mdescRight">something damage this  <a href="classentities_1_1_living_entity.html#a28d31eff59137171da3e23a8e3ef9c1c">More...</a><br /></td></tr>
+<tr class="separator:a28d31eff59137171da3e23a8e3ef9c1c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a27f39311f1139c96967b28cbaf752bd2"><td class="memItemLeft" align="right" valign="top">char&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_living_entity.html#a27f39311f1139c96967b28cbaf752bd2">getDirection</a> ()</td></tr>
+<tr class="memdesc:a27f39311f1139c96967b28cbaf752bd2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Animation related getter.  <a href="classentities_1_1_living_entity.html#a27f39311f1139c96967b28cbaf752bd2">More...</a><br /></td></tr>
+<tr class="separator:a27f39311f1139c96967b28cbaf752bd2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a657626746aaed854f45ac3bb6d6c2a2f"><td class="memItemLeft" align="right" valign="top">char&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_living_entity.html#a657626746aaed854f45ac3bb6d6c2a2f">getAnimPhase</a> () const</td></tr>
+<tr class="memdesc:a657626746aaed854f45ac3bb6d6c2a2f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Animation phase.  <a href="classentities_1_1_living_entity.html#a657626746aaed854f45ac3bb6d6c2a2f">More...</a><br /></td></tr>
+<tr class="separator:a657626746aaed854f45ac3bb6d6c2a2f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af13cb8c3fabd2960746e21cd7dabe4d6"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_living_entity.html#af13cb8c3fabd2960746e21cd7dabe4d6">tick</a> (<a class="el" href="class_game_client.html">GameClient</a> &amp;client, float deltaT, std::shared_ptr&lt; <a class="el" href="classentities_1_1_entity.html">Entity</a> &gt; &amp;shared_this) override</td></tr>
+<tr class="memdesc:af13cb8c3fabd2960746e21cd7dabe4d6"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classentities_1_1_entity.html" title="Every object, what can be on the map.">Entity</a> tick multiple times per sec.  <a href="classentities_1_1_living_entity.html#af13cb8c3fabd2960746e21cd7dabe4d6">More...</a><br /></td></tr>
+<tr class="separator:af13cb8c3fabd2960746e21cd7dabe4d6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pub_methods_classentities_1_1_entity"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classentities_1_1_entity')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td></tr>
+<tr class="memitem:a539ddef34b718b6068df421f316f4a6d inherit pub_methods_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#a539ddef34b718b6068df421f316f4a6d">Entity</a> (const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;<a class="el" href="classentities_1_1_entity.html#a04f9c2febe8d435138a07eb2f48ba96b">pos</a>)</td></tr>
+<tr class="separator:a539ddef34b718b6068df421f316f4a6d inherit pub_methods_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afd80ddceccb36b87d0d80dcc7f88fc3b inherit pub_methods_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#afd80ddceccb36b87d0d80dcc7f88fc3b">init</a> (<a class="el" href="class_game_client.html">GameClient</a> &amp;client)</td></tr>
+<tr class="separator:afd80ddceccb36b87d0d80dcc7f88fc3b inherit pub_methods_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab010066d52a02c63908f70ff6ef7d873 inherit pub_methods_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#ab010066d52a02c63908f70ff6ef7d873">isInitialized</a> ()</td></tr>
+<tr class="separator:ab010066d52a02c63908f70ff6ef7d873 inherit pub_methods_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a799a692b988248dd23d207b95e7fe2b7 inherit pub_methods_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#a799a692b988248dd23d207b95e7fe2b7">getPos</a> () const</td></tr>
+<tr class="separator:a799a692b988248dd23d207b95e7fe2b7 inherit pub_methods_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac60e9beb5a45fc65120e9779e680c04b inherit pub_methods_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#ac60e9beb5a45fc65120e9779e680c04b">getSize</a> () const</td></tr>
+<tr class="memdesc:ac60e9beb5a45fc65120e9779e680c04b inherit pub_methods_classentities_1_1_entity"><td class="mdescLeft">&#160;</td><td class="mdescRight">get it's size to render  <a href="classentities_1_1_entity.html#ac60e9beb5a45fc65120e9779e680c04b">More...</a><br /></td></tr>
+<tr class="separator:ac60e9beb5a45fc65120e9779e680c04b inherit pub_methods_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab0ee90a84f2163b600e603f24cff046f inherit pub_methods_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#ab0ee90a84f2163b600e603f24cff046f">isAlive</a> () const</td></tr>
+<tr class="separator:ab0ee90a84f2163b600e603f24cff046f inherit pub_methods_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a59426fe1b7dcefe96a0a748250724ff6 inherit pub_methods_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#a59426fe1b7dcefe96a0a748250724ff6">canBeRemoved</a> () const</td></tr>
+<tr class="separator:a59426fe1b7dcefe96a0a748250724ff6 inherit pub_methods_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abcc4364b5b7250f0364f3550a618b3ab inherit pub_methods_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#abcc4364b5b7250f0364f3550a618b3ab">render</a> (<a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a> &amp;scene)</td></tr>
+<tr class="memdesc:abcc4364b5b7250f0364f3550a618b3ab inherit pub_methods_classentities_1_1_entity"><td class="mdescLeft">&#160;</td><td class="mdescRight">render  <a href="classentities_1_1_entity.html#abcc4364b5b7250f0364f3550a618b3ab">More...</a><br /></td></tr>
+<tr class="separator:abcc4364b5b7250f0364f3550a618b3ab inherit pub_methods_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8c4b0c1eb69a673619e4c8943ef34f86 inherit pub_methods_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">virtual std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#a8c4b0c1eb69a673619e4c8943ef34f86">getName</a> () const</td></tr>
+<tr class="separator:a8c4b0c1eb69a673619e4c8943ef34f86 inherit pub_methods_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a64d968c160dee2fdfca68aff2e49946b inherit pub_methods_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#a64d968c160dee2fdfca68aff2e49946b">~Entity</a> ()=default</td></tr>
+<tr class="separator:a64d968c160dee2fdfca68aff2e49946b inherit pub_methods_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad0a172ff99a7e73aaaee3658d5e3ae08 inherit pub_methods_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#ad0a172ff99a7e73aaaee3658d5e3ae08">operator WallEntity *</a> ()</td></tr>
+<tr class="separator:ad0a172ff99a7e73aaaee3658d5e3ae08 inherit pub_methods_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
+Protected Member Functions</h2></td></tr>
+<tr class="memitem:aa965d3922663b974dd14cc5f8004ed65"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_living_entity.html#aa965d3922663b974dd14cc5f8004ed65">getHitBoxSize</a> () const override</td></tr>
+<tr class="memdesc:aa965d3922663b974dd14cc5f8004ed65"><td class="mdescLeft">&#160;</td><td class="mdescRight">half hitbox size  <a href="classentities_1_1_living_entity.html#aa965d3922663b974dd14cc5f8004ed65">More...</a><br /></td></tr>
+<tr class="separator:aa965d3922663b974dd14cc5f8004ed65"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a07a7d7f7e43f2140e3e6337322f78224"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_living_entity.html#a07a7d7f7e43f2140e3e6337322f78224">collisionOffset</a> (<a class="el" href="class_game_client.html">GameClient</a> &amp;client)</td></tr>
+<tr class="separator:a07a7d7f7e43f2140e3e6337322f78224"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_methods_classentities_1_1_entity"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classentities_1_1_entity')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td></tr>
+<tr class="memitem:af01b796fb472ef3139aea41aeed36c76 inherit pro_methods_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classrender_1_1_i_texture.html">render::ITexture</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#af01b796fb472ef3139aea41aeed36c76">getTexture</a> ()=0</td></tr>
+<tr class="memdesc:af01b796fb472ef3139aea41aeed36c76 inherit pro_methods_classentities_1_1_entity"><td class="mdescLeft">&#160;</td><td class="mdescRight">the object's texture  <a href="classentities_1_1_entity.html#af01b796fb472ef3139aea41aeed36c76">More...</a><br /></td></tr>
+<tr class="separator:af01b796fb472ef3139aea41aeed36c76 inherit pro_methods_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a94d18db8d502d677b6f4215dc1e1d820 inherit pro_methods_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#a94d18db8d502d677b6f4215dc1e1d820">getCollision</a> (const <a class="el" href="classentities_1_1_entity.html">Entity</a> &amp;other)</td></tr>
+<tr class="memdesc:a94d18db8d502d677b6f4215dc1e1d820 inherit pro_methods_classentities_1_1_entity"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate collision with another <a class="el" href="classentities_1_1_entity.html" title="Every object, what can be on the map.">Entity</a>, how much should this entity move, to avoid the collision.  <a href="classentities_1_1_entity.html#a94d18db8d502d677b6f4215dc1e1d820">More...</a><br /></td></tr>
+<tr class="separator:a94d18db8d502d677b6f4215dc1e1d820 inherit pro_methods_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-attribs"></a>
+Protected Attributes</h2></td></tr>
+<tr class="memitem:ad8b574e93d1fa34cdd119be6f0391acb"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_living_entity.html#ad8b574e93d1fa34cdd119be6f0391acb">speed</a></td></tr>
+<tr class="memdesc:ad8b574e93d1fa34cdd119be6f0391acb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Its speed and moving direction.  <a href="classentities_1_1_living_entity.html#ad8b574e93d1fa34cdd119be6f0391acb">More...</a><br /></td></tr>
+<tr class="separator:ad8b574e93d1fa34cdd119be6f0391acb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a78282129a711906b7973c4ecb37b8434"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_living_entity.html#a78282129a711906b7973c4ecb37b8434">health</a></td></tr>
+<tr class="memdesc:a78282129a711906b7973c4ecb37b8434"><td class="mdescLeft">&#160;</td><td class="mdescRight">It has a health.  <a href="classentities_1_1_living_entity.html#a78282129a711906b7973c4ecb37b8434">More...</a><br /></td></tr>
+<tr class="separator:a78282129a711906b7973c4ecb37b8434"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_attribs_classentities_1_1_entity"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_classentities_1_1_entity')"><img src="closed.png" alt="-"/>&#160;Protected Attributes inherited from <a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td></tr>
+<tr class="memitem:a04f9c2febe8d435138a07eb2f48ba96b inherit pro_attribs_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#a04f9c2febe8d435138a07eb2f48ba96b">pos</a></td></tr>
+<tr class="memdesc:a04f9c2febe8d435138a07eb2f48ba96b inherit pro_attribs_classentities_1_1_entity"><td class="mdescLeft">&#160;</td><td class="mdescRight">it's position  <a href="classentities_1_1_entity.html#a04f9c2febe8d435138a07eb2f48ba96b">More...</a><br /></td></tr>
+<tr class="separator:a04f9c2febe8d435138a07eb2f48ba96b inherit pro_attribs_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1453bca3376a185aa54135dd4958b244 inherit pro_attribs_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#a1453bca3376a185aa54135dd4958b244">is_initialized</a></td></tr>
+<tr class="memdesc:a1453bca3376a185aa54135dd4958b244 inherit pro_attribs_classentities_1_1_entity"><td class="mdescLeft">&#160;</td><td class="mdescRight">well, is initialized  <a href="classentities_1_1_entity.html#a1453bca3376a185aa54135dd4958b244">More...</a><br /></td></tr>
+<tr class="separator:a1453bca3376a185aa54135dd4958b244 inherit pro_attribs_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aedac7bb35b729e4a02c582b9f4369ab8 inherit pro_attribs_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#aedac7bb35b729e4a02c582b9f4369ab8">is_alive</a></td></tr>
+<tr class="memdesc:aedac7bb35b729e4a02c582b9f4369ab8 inherit pro_attribs_classentities_1_1_entity"><td class="mdescLeft">&#160;</td><td class="mdescRight">true, if it is alive  <a href="classentities_1_1_entity.html#aedac7bb35b729e4a02c582b9f4369ab8">More...</a><br /></td></tr>
+<tr class="separator:aedac7bb35b729e4a02c582b9f4369ab8 inherit pro_attribs_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Any moving animal or player. </p>
+
+<p class="definition">Definition at line <a class="el" href="_living_entity_8h_source.html#l00007">7</a> of file <a class="el" href="_living_entity_8h_source.html">LivingEntity.h</a>.</p>
+</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
+<a id="a08837d43e7338c4ceff9acfbbbffd94b"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a08837d43e7338c4ceff9acfbbbffd94b">&#9670;&nbsp;</a></span>LivingEntity()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">entities::LivingEntity::LivingEntity </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a>&#160;</td>
+          <td class="paramname"><em>pos</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>health</em> = <code>100</code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="_living_entity_8cpp_source.html#l00040">40</a> of file <a class="el" href="_living_entity_8cpp_source.html">LivingEntity.cpp</a>.</p>
+
+</div>
+</div>
+<h2 class="groupheader">Member Function Documentation</h2>
+<a id="a07a7d7f7e43f2140e3e6337322f78224"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a07a7d7f7e43f2140e3e6337322f78224">&#9670;&nbsp;</a></span>collisionOffset()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">vf2d</a> entities::LivingEntity::collisionOffset </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="class_game_client.html">GameClient</a> &amp;&#160;</td>
+          <td class="paramname"><em>client</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">virtual</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="_living_entity_8cpp_source.html#l00015">15</a> of file <a class="el" href="_living_entity_8cpp_source.html">LivingEntity.cpp</a>.</p>
+
+</div>
+</div>
+<a id="a28d31eff59137171da3e23a8e3ef9c1c"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a28d31eff59137171da3e23a8e3ef9c1c">&#9670;&nbsp;</a></span>damage()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">bool entities::LivingEntity::damage </td>
+          <td>(</td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>damage</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="classentities_1_1_entity.html">Entity</a> &amp;&#160;</td>
+          <td class="paramname"><em>attacker</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>something damage this </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">damage</td><td>how much damage should it take </td></tr>
+    <tr><td class="paramname">attacker</td><td>who deal the damage. not the projectile, the entity </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>did the entity take the damage or no (like a wall) </dd></dl>
+
+<p>Implements <a class="el" href="classentities_1_1_entity.html#af7fc9949fc50b1b31abb36a3d51b0597">entities::Entity</a>.</p>
+
+<p>Reimplemented in <a class="el" href="classentities_1_1_player_entity.html#ab654524e0ad7ba5a9b1b590794d347f2">entities::PlayerEntity</a>.</p>
+
+<p class="definition">Definition at line <a class="el" href="_living_entity_8cpp_source.html#l00043">43</a> of file <a class="el" href="_living_entity_8cpp_source.html">LivingEntity.cpp</a>.</p>
+
+</div>
+</div>
+<a id="a657626746aaed854f45ac3bb6d6c2a2f"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a657626746aaed854f45ac3bb6d6c2a2f">&#9670;&nbsp;</a></span>getAnimPhase()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">char entities::LivingEntity::getAnimPhase </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td> const</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Animation phase. </p>
+<dl class="section return"><dt>Returns</dt><dd>phase </dd></dl>
+
+<p class="definition">Definition at line <a class="el" href="_living_entity_8cpp_source.html#l00077">77</a> of file <a class="el" href="_living_entity_8cpp_source.html">LivingEntity.cpp</a>.</p>
+
+</div>
+</div>
+<a id="a27f39311f1139c96967b28cbaf752bd2"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a27f39311f1139c96967b28cbaf752bd2">&#9670;&nbsp;</a></span>getDirection()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">char entities::LivingEntity::getDirection </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Animation related getter. </p>
+<dl class="section return"><dt>Returns</dt><dd>its direction </dd></dl>
+
+<p class="definition">Definition at line <a class="el" href="_living_entity_8cpp_source.html#l00057">57</a> of file <a class="el" href="_living_entity_8cpp_source.html">LivingEntity.cpp</a>.</p>
+
+</div>
+</div>
+<a id="aa965d3922663b974dd14cc5f8004ed65"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aa965d3922663b974dd14cc5f8004ed65">&#9670;&nbsp;</a></span>getHitBoxSize()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">vf2d</a> entities::LivingEntity::getHitBoxSize </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td> const</td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>half hitbox size </p>
+<dl class="section return"><dt>Returns</dt><dd>hitbox size as a vector </dd></dl>
+
+<p>Implements <a class="el" href="classentities_1_1_entity.html#a9cd7ba81ddbd978b8f43e9f10e97492f">entities::Entity</a>.</p>
+
+<p class="definition">Definition at line <a class="el" href="_living_entity_8cpp_source.html#l00010">10</a> of file <a class="el" href="_living_entity_8cpp_source.html">LivingEntity.cpp</a>.</p>
+
+</div>
+</div>
+<a id="af13cb8c3fabd2960746e21cd7dabe4d6"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#af13cb8c3fabd2960746e21cd7dabe4d6">&#9670;&nbsp;</a></span>tick()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">void entities::LivingEntity::tick </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="class_game_client.html">GameClient</a> &amp;&#160;</td>
+          <td class="paramname"><em>client</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>deltaT</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">std::shared_ptr&lt; <a class="el" href="classentities_1_1_entity.html">Entity</a> &gt; &amp;&#160;</td>
+          <td class="paramname"><em>shared_this</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p><a class="el" href="classentities_1_1_entity.html" title="Every object, what can be on the map.">Entity</a> tick multiple times per sec. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">client</td><td>the game client object </td></tr>
+    <tr><td class="paramname">deltaT</td><td>how long take a tick </td></tr>
+    <tr><td class="paramname">shared_this</td><td>this as a shared_ptr </td></tr>
+  </table>
+  </dd>
+</dl>
+
+<p>Reimplemented from <a class="el" href="classentities_1_1_entity.html#a0440674bf90ae83d9a26aa4b0ac8309e">entities::Entity</a>.</p>
+
+<p>Reimplemented in <a class="el" href="classentities_1_1_player_entity.html#a9f5c7033ca46daf217c73cb5edbb0d68">entities::PlayerEntity</a>.</p>
+
+<p class="definition">Definition at line <a class="el" href="_living_entity_8cpp_source.html#l00082">82</a> of file <a class="el" href="_living_entity_8cpp_source.html">LivingEntity.cpp</a>.</p>
+
+</div>
+</div>
+<h2 class="groupheader">Member Data Documentation</h2>
+<a id="a78282129a711906b7973c4ecb37b8434"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a78282129a711906b7973c4ecb37b8434">&#9670;&nbsp;</a></span>health</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">int entities::LivingEntity::health</td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>It has a health. </p>
+
+<p class="definition">Definition at line <a class="el" href="_living_entity_8h_source.html#l00037">37</a> of file <a class="el" href="_living_entity_8h_source.html">LivingEntity.h</a>.</p>
+
+</div>
+</div>
+<a id="ad8b574e93d1fa34cdd119be6f0391acb"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ad8b574e93d1fa34cdd119be6f0391acb">&#9670;&nbsp;</a></span>speed</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> entities::LivingEntity::speed</td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Its speed and moving direction. </p>
+
+<p class="definition">Definition at line <a class="el" href="_living_entity_8h_source.html#l00032">32</a> of file <a class="el" href="_living_entity_8h_source.html">LivingEntity.h</a>.</p>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following files:<ul>
+<li>C:/Users/kosmx/Documents/GitHub/2d-game/<a class="el" href="_living_entity_8h_source.html">LivingEntity.h</a></li>
+<li>C:/Users/kosmx/Documents/GitHub/2d-game/<a class="el" href="_living_entity_8cpp_source.html">LivingEntity.cpp</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/classentities_1_1_living_entity.png b/doxy/html/classentities_1_1_living_entity.png
new file mode 100644
index 0000000000000000000000000000000000000000..6949b9b644d2239371dd19d5267dfebf661194f5
Binary files /dev/null and b/doxy/html/classentities_1_1_living_entity.png differ
diff --git a/doxy/html/classentities_1_1_player_entity-members.html b/doxy/html/classentities_1_1_player_entity-members.html
new file mode 100644
index 0000000000000000000000000000000000000000..da0046fbad467bb84bcbb7d8b540bdd443d7e745
--- /dev/null
+++ b/doxy/html/classentities_1_1_player_entity-members.html
@@ -0,0 +1,113 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="namespaceentities.html">entities</a></li><li class="navelem"><a class="el" href="classentities_1_1_player_entity.html">PlayerEntity</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">entities::PlayerEntity Member List</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="classentities_1_1_player_entity.html">entities::PlayerEntity</a>, including all inherited members.</p>
+<table class="directory">
+  <tr class="even"><td class="entry"><a class="el" href="classentities_1_1_entity.html#a59426fe1b7dcefe96a0a748250724ff6">canBeRemoved</a>() const</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classentities_1_1_character_entity.html#aa7c43269834b07ef51355a874be373e8">CharacterEntity</a>(render::ITexture &amp;skin, const olc::vf2d &amp;pos)</td><td class="entry"><a class="el" href="classentities_1_1_character_entity.html">entities::CharacterEntity</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classentities_1_1_living_entity.html#a07a7d7f7e43f2140e3e6337322f78224">collisionOffset</a>(GameClient &amp;client)</td><td class="entry"><a class="el" href="classentities_1_1_living_entity.html">entities::LivingEntity</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classentities_1_1_player_entity.html#ab654524e0ad7ba5a9b1b590794d347f2">damage</a>(int damage, Entity &amp;attacker) override</td><td class="entry"><a class="el" href="classentities_1_1_player_entity.html">entities::PlayerEntity</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classentities_1_1_entity.html#a539ddef34b718b6068df421f316f4a6d">Entity</a>(const olc::vf2d &amp;pos)</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">explicit</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classentities_1_1_living_entity.html#a657626746aaed854f45ac3bb6d6c2a2f">getAnimPhase</a>() const</td><td class="entry"><a class="el" href="classentities_1_1_living_entity.html">entities::LivingEntity</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classentities_1_1_entity.html#a94d18db8d502d677b6f4215dc1e1d820">getCollision</a>(const Entity &amp;other)</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classentities_1_1_living_entity.html#a27f39311f1139c96967b28cbaf752bd2">getDirection</a>()</td><td class="entry"><a class="el" href="classentities_1_1_living_entity.html">entities::LivingEntity</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classentities_1_1_player_entity.html#ab4a5cd2af67538f73832668a2cd32c9f">getHealthStatus</a>()</td><td class="entry"><a class="el" href="classentities_1_1_player_entity.html">entities::PlayerEntity</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classentities_1_1_living_entity.html#aa965d3922663b974dd14cc5f8004ed65">getHitBoxSize</a>() const override</td><td class="entry"><a class="el" href="classentities_1_1_living_entity.html">entities::LivingEntity</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classentities_1_1_entity.html#a8c4b0c1eb69a673619e4c8943ef34f86">getName</a>() const</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classentities_1_1_entity.html#a799a692b988248dd23d207b95e7fe2b7">getPos</a>() const</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classentities_1_1_entity.html#ac60e9beb5a45fc65120e9779e680c04b">getSize</a>() const</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classentities_1_1_character_entity.html#afdae03f49fd5d47d0837ed660e37038f">getTexture</a>() override</td><td class="entry"><a class="el" href="classentities_1_1_character_entity.html">entities::CharacterEntity</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classentities_1_1_player_entity.html#a6b0fdc757c8e1d95012a31dab836f20a">getWeapon</a>() override</td><td class="entry"><a class="el" href="classentities_1_1_player_entity.html">entities::PlayerEntity</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classentities_1_1_player_entity.html#a1759d4f054b70c3c57f0f66c03fe09bb">getWeapon</a>() const</td><td class="entry"><a class="el" href="classentities_1_1_player_entity.html">entities::PlayerEntity</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classentities_1_1_living_entity.html#a78282129a711906b7973c4ecb37b8434">health</a></td><td class="entry"><a class="el" href="classentities_1_1_living_entity.html">entities::LivingEntity</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classentities_1_1_entity.html#afd80ddceccb36b87d0d80dcc7f88fc3b">init</a>(GameClient &amp;client)</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classentities_1_1_entity.html#aedac7bb35b729e4a02c582b9f4369ab8">is_alive</a></td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classentities_1_1_entity.html#a1453bca3376a185aa54135dd4958b244">is_initialized</a></td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classentities_1_1_entity.html#ab0ee90a84f2163b600e603f24cff046f">isAlive</a>() const</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classentities_1_1_entity.html#ab010066d52a02c63908f70ff6ef7d873">isInitialized</a>()</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classentities_1_1_living_entity.html#a08837d43e7338c4ceff9acfbbbffd94b">LivingEntity</a>(olc::vf2d pos, int health=100)</td><td class="entry"><a class="el" href="classentities_1_1_living_entity.html">entities::LivingEntity</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classentities_1_1_entity.html#ad0a172ff99a7e73aaaee3658d5e3ae08">operator WallEntity *</a>()</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classentities_1_1_player_entity.html#ace0cf1f8c711b21afef3965eb3b380a1">PlayerEntity</a>(olc::vf2d pos, render::ITexture &amp;skin, const std::string &amp;name=&quot;Player&quot;)</td><td class="entry"><a class="el" href="classentities_1_1_player_entity.html">entities::PlayerEntity</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classentities_1_1_entity.html#a04f9c2febe8d435138a07eb2f48ba96b">pos</a></td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classentities_1_1_character_entity.html#aeb6069f0f07d0914faf0f94c0cc33def">render</a>(olc::TransformedView &amp;scene) override</td><td class="entry"><a class="el" href="classentities_1_1_character_entity.html">entities::CharacterEntity</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classentities_1_1_living_entity.html#ad8b574e93d1fa34cdd119be6f0391acb">speed</a></td><td class="entry"><a class="el" href="classentities_1_1_living_entity.html">entities::LivingEntity</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classentities_1_1_character_entity.html#a295a77ffb22dd1a7b30164ab04ecf400">texture</a></td><td class="entry"><a class="el" href="classentities_1_1_character_entity.html">entities::CharacterEntity</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classentities_1_1_player_entity.html#a9f5c7033ca46daf217c73cb5edbb0d68">tick</a>(GameClient &amp;client, float deltaT, std::shared_ptr&lt; Entity &gt; &amp;shared_this) override</td><td class="entry"><a class="el" href="classentities_1_1_player_entity.html">entities::PlayerEntity</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classentities_1_1_entity.html#a64d968c160dee2fdfca68aff2e49946b">~Entity</a>()=default</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+</table></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/classentities_1_1_player_entity.html b/doxy/html/classentities_1_1_player_entity.html
new file mode 100644
index 0000000000000000000000000000000000000000..b65e85196b14b3d7fdabf5a0491a4140d294975a
--- /dev/null
+++ b/doxy/html/classentities_1_1_player_entity.html
@@ -0,0 +1,421 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: entities::PlayerEntity Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="namespaceentities.html">entities</a></li><li class="navelem"><a class="el" href="classentities_1_1_player_entity.html">PlayerEntity</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="classentities_1_1_player_entity-members.html">List of all members</a>  </div>
+  <div class="headertitle">
+<div class="title">entities::PlayerEntity Class Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>You, or the player.  
+ <a href="classentities_1_1_player_entity.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="_player_entity_8h_source.html">PlayerEntity.h</a>&gt;</code></p>
+<div class="dynheader">
+Inheritance diagram for entities::PlayerEntity:</div>
+<div class="dyncontent">
+ <div class="center">
+  <img src="classentities_1_1_player_entity.png" usemap="#entities::PlayerEntity_map" alt=""/>
+  <map id="entities::PlayerEntity_map" name="entities::PlayerEntity_map">
+<area href="classentities_1_1_character_entity.html" title="A player or an enemy." alt="entities::CharacterEntity" shape="rect" coords="0,112,145,136"/>
+<area href="classentities_1_1_living_entity.html" title="Any moving animal or player." alt="entities::LivingEntity" shape="rect" coords="0,56,145,80"/>
+<area href="classentities_1_1_entity.html" title="Every object, what can be on the map." alt="entities::Entity" shape="rect" coords="0,0,145,24"/>
+  </map>
+</div></div>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr class="memitem:a6b0fdc757c8e1d95012a31dab836f20a"><td class="memItemLeft" align="right" valign="top">std::shared_ptr&lt; <a class="el" href="classweapons_1_1_weapon.html">weapons::Weapon</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_player_entity.html#a6b0fdc757c8e1d95012a31dab836f20a">getWeapon</a> () override</td></tr>
+<tr class="memdesc:a6b0fdc757c8e1d95012a31dab836f20a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get selected weapon.  <a href="classentities_1_1_player_entity.html#a6b0fdc757c8e1d95012a31dab836f20a">More...</a><br /></td></tr>
+<tr class="separator:a6b0fdc757c8e1d95012a31dab836f20a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9f5c7033ca46daf217c73cb5edbb0d68"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_player_entity.html#a9f5c7033ca46daf217c73cb5edbb0d68">tick</a> (<a class="el" href="class_game_client.html">GameClient</a> &amp;client, float deltaT, std::shared_ptr&lt; <a class="el" href="classentities_1_1_entity.html">Entity</a> &gt; &amp;shared_this) override</td></tr>
+<tr class="memdesc:a9f5c7033ca46daf217c73cb5edbb0d68"><td class="mdescLeft">&#160;</td><td class="mdescRight">Tick the entity, read the control keys, HP regen logic, etc...  <a href="classentities_1_1_player_entity.html#a9f5c7033ca46daf217c73cb5edbb0d68">More...</a><br /></td></tr>
+<tr class="separator:a9f5c7033ca46daf217c73cb5edbb0d68"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ace0cf1f8c711b21afef3965eb3b380a1"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_player_entity.html#ace0cf1f8c711b21afef3965eb3b380a1">PlayerEntity</a> (<a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> <a class="el" href="classentities_1_1_entity.html#a04f9c2febe8d435138a07eb2f48ba96b">pos</a>, <a class="el" href="classrender_1_1_i_texture.html">render::ITexture</a> &amp;skin, const std::string &amp;name=&quot;Player&quot;)</td></tr>
+<tr class="separator:ace0cf1f8c711b21afef3965eb3b380a1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1759d4f054b70c3c57f0f66c03fe09bb"><td class="memItemLeft" align="right" valign="top">const std::shared_ptr&lt; <a class="el" href="classweapons_1_1_weapon.html">weapons::Weapon</a> &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_player_entity.html#a1759d4f054b70c3c57f0f66c03fe09bb">getWeapon</a> () const</td></tr>
+<tr class="memdesc:a1759d4f054b70c3c57f0f66c03fe09bb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constant weapon getter.  <a href="classentities_1_1_player_entity.html#a1759d4f054b70c3c57f0f66c03fe09bb">More...</a><br /></td></tr>
+<tr class="separator:a1759d4f054b70c3c57f0f66c03fe09bb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab654524e0ad7ba5a9b1b590794d347f2"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_player_entity.html#ab654524e0ad7ba5a9b1b590794d347f2">damage</a> (int damage, <a class="el" href="classentities_1_1_entity.html">Entity</a> &amp;attacker) override</td></tr>
+<tr class="memdesc:ab654524e0ad7ba5a9b1b590794d347f2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Ouch.  <a href="classentities_1_1_player_entity.html#ab654524e0ad7ba5a9b1b590794d347f2">More...</a><br /></td></tr>
+<tr class="separator:ab654524e0ad7ba5a9b1b590794d347f2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab4a5cd2af67538f73832668a2cd32c9f"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_player_entity.html#ab4a5cd2af67538f73832668a2cd32c9f">getHealthStatus</a> ()</td></tr>
+<tr class="memdesc:ab4a5cd2af67538f73832668a2cd32c9f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sorry for these very meaningless descriptions.  <a href="classentities_1_1_player_entity.html#ab4a5cd2af67538f73832668a2cd32c9f">More...</a><br /></td></tr>
+<tr class="separator:ab4a5cd2af67538f73832668a2cd32c9f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pub_methods_classentities_1_1_character_entity"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classentities_1_1_character_entity')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classentities_1_1_character_entity.html">entities::CharacterEntity</a></td></tr>
+<tr class="memitem:aa7c43269834b07ef51355a874be373e8 inherit pub_methods_classentities_1_1_character_entity"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_character_entity.html#aa7c43269834b07ef51355a874be373e8">CharacterEntity</a> (<a class="el" href="classrender_1_1_i_texture.html">render::ITexture</a> &amp;skin, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;<a class="el" href="classentities_1_1_entity.html#a04f9c2febe8d435138a07eb2f48ba96b">pos</a>)</td></tr>
+<tr class="separator:aa7c43269834b07ef51355a874be373e8 inherit pub_methods_classentities_1_1_character_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aeb6069f0f07d0914faf0f94c0cc33def inherit pub_methods_classentities_1_1_character_entity"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_character_entity.html#aeb6069f0f07d0914faf0f94c0cc33def">render</a> (<a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a> &amp;scene) override</td></tr>
+<tr class="memdesc:aeb6069f0f07d0914faf0f94c0cc33def inherit pub_methods_classentities_1_1_character_entity"><td class="mdescLeft">&#160;</td><td class="mdescRight">render  <a href="classentities_1_1_character_entity.html#aeb6069f0f07d0914faf0f94c0cc33def">More...</a><br /></td></tr>
+<tr class="separator:aeb6069f0f07d0914faf0f94c0cc33def inherit pub_methods_classentities_1_1_character_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pub_methods_classentities_1_1_living_entity"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classentities_1_1_living_entity')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classentities_1_1_living_entity.html">entities::LivingEntity</a></td></tr>
+<tr class="memitem:a08837d43e7338c4ceff9acfbbbffd94b inherit pub_methods_classentities_1_1_living_entity"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_living_entity.html#a08837d43e7338c4ceff9acfbbbffd94b">LivingEntity</a> (<a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> <a class="el" href="classentities_1_1_entity.html#a04f9c2febe8d435138a07eb2f48ba96b">pos</a>, int <a class="el" href="classentities_1_1_living_entity.html#a78282129a711906b7973c4ecb37b8434">health</a>=100)</td></tr>
+<tr class="separator:a08837d43e7338c4ceff9acfbbbffd94b inherit pub_methods_classentities_1_1_living_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a27f39311f1139c96967b28cbaf752bd2 inherit pub_methods_classentities_1_1_living_entity"><td class="memItemLeft" align="right" valign="top">char&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_living_entity.html#a27f39311f1139c96967b28cbaf752bd2">getDirection</a> ()</td></tr>
+<tr class="memdesc:a27f39311f1139c96967b28cbaf752bd2 inherit pub_methods_classentities_1_1_living_entity"><td class="mdescLeft">&#160;</td><td class="mdescRight">Animation related getter.  <a href="classentities_1_1_living_entity.html#a27f39311f1139c96967b28cbaf752bd2">More...</a><br /></td></tr>
+<tr class="separator:a27f39311f1139c96967b28cbaf752bd2 inherit pub_methods_classentities_1_1_living_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a657626746aaed854f45ac3bb6d6c2a2f inherit pub_methods_classentities_1_1_living_entity"><td class="memItemLeft" align="right" valign="top">char&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_living_entity.html#a657626746aaed854f45ac3bb6d6c2a2f">getAnimPhase</a> () const</td></tr>
+<tr class="memdesc:a657626746aaed854f45ac3bb6d6c2a2f inherit pub_methods_classentities_1_1_living_entity"><td class="mdescLeft">&#160;</td><td class="mdescRight">Animation phase.  <a href="classentities_1_1_living_entity.html#a657626746aaed854f45ac3bb6d6c2a2f">More...</a><br /></td></tr>
+<tr class="separator:a657626746aaed854f45ac3bb6d6c2a2f inherit pub_methods_classentities_1_1_living_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pub_methods_classentities_1_1_entity"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classentities_1_1_entity')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td></tr>
+<tr class="memitem:a539ddef34b718b6068df421f316f4a6d inherit pub_methods_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#a539ddef34b718b6068df421f316f4a6d">Entity</a> (const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;<a class="el" href="classentities_1_1_entity.html#a04f9c2febe8d435138a07eb2f48ba96b">pos</a>)</td></tr>
+<tr class="separator:a539ddef34b718b6068df421f316f4a6d inherit pub_methods_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afd80ddceccb36b87d0d80dcc7f88fc3b inherit pub_methods_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#afd80ddceccb36b87d0d80dcc7f88fc3b">init</a> (<a class="el" href="class_game_client.html">GameClient</a> &amp;client)</td></tr>
+<tr class="separator:afd80ddceccb36b87d0d80dcc7f88fc3b inherit pub_methods_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab010066d52a02c63908f70ff6ef7d873 inherit pub_methods_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#ab010066d52a02c63908f70ff6ef7d873">isInitialized</a> ()</td></tr>
+<tr class="separator:ab010066d52a02c63908f70ff6ef7d873 inherit pub_methods_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a799a692b988248dd23d207b95e7fe2b7 inherit pub_methods_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#a799a692b988248dd23d207b95e7fe2b7">getPos</a> () const</td></tr>
+<tr class="separator:a799a692b988248dd23d207b95e7fe2b7 inherit pub_methods_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac60e9beb5a45fc65120e9779e680c04b inherit pub_methods_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#ac60e9beb5a45fc65120e9779e680c04b">getSize</a> () const</td></tr>
+<tr class="memdesc:ac60e9beb5a45fc65120e9779e680c04b inherit pub_methods_classentities_1_1_entity"><td class="mdescLeft">&#160;</td><td class="mdescRight">get it's size to render  <a href="classentities_1_1_entity.html#ac60e9beb5a45fc65120e9779e680c04b">More...</a><br /></td></tr>
+<tr class="separator:ac60e9beb5a45fc65120e9779e680c04b inherit pub_methods_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab0ee90a84f2163b600e603f24cff046f inherit pub_methods_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#ab0ee90a84f2163b600e603f24cff046f">isAlive</a> () const</td></tr>
+<tr class="separator:ab0ee90a84f2163b600e603f24cff046f inherit pub_methods_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a59426fe1b7dcefe96a0a748250724ff6 inherit pub_methods_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#a59426fe1b7dcefe96a0a748250724ff6">canBeRemoved</a> () const</td></tr>
+<tr class="separator:a59426fe1b7dcefe96a0a748250724ff6 inherit pub_methods_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8c4b0c1eb69a673619e4c8943ef34f86 inherit pub_methods_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">virtual std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#a8c4b0c1eb69a673619e4c8943ef34f86">getName</a> () const</td></tr>
+<tr class="separator:a8c4b0c1eb69a673619e4c8943ef34f86 inherit pub_methods_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a64d968c160dee2fdfca68aff2e49946b inherit pub_methods_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#a64d968c160dee2fdfca68aff2e49946b">~Entity</a> ()=default</td></tr>
+<tr class="separator:a64d968c160dee2fdfca68aff2e49946b inherit pub_methods_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad0a172ff99a7e73aaaee3658d5e3ae08 inherit pub_methods_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#ad0a172ff99a7e73aaaee3658d5e3ae08">operator WallEntity *</a> ()</td></tr>
+<tr class="separator:ad0a172ff99a7e73aaaee3658d5e3ae08 inherit pub_methods_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
+Additional Inherited Members</h2></td></tr>
+<tr class="inherit_header pro_methods_classentities_1_1_character_entity"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classentities_1_1_character_entity')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="classentities_1_1_character_entity.html">entities::CharacterEntity</a></td></tr>
+<tr class="memitem:afdae03f49fd5d47d0837ed660e37038f inherit pro_methods_classentities_1_1_character_entity"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classrender_1_1_i_texture.html">render::ITexture</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_character_entity.html#afdae03f49fd5d47d0837ed660e37038f">getTexture</a> () override</td></tr>
+<tr class="memdesc:afdae03f49fd5d47d0837ed660e37038f inherit pro_methods_classentities_1_1_character_entity"><td class="mdescLeft">&#160;</td><td class="mdescRight">the object's texture  <a href="classentities_1_1_character_entity.html#afdae03f49fd5d47d0837ed660e37038f">More...</a><br /></td></tr>
+<tr class="separator:afdae03f49fd5d47d0837ed660e37038f inherit pro_methods_classentities_1_1_character_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_methods_classentities_1_1_living_entity"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classentities_1_1_living_entity')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="classentities_1_1_living_entity.html">entities::LivingEntity</a></td></tr>
+<tr class="memitem:aa965d3922663b974dd14cc5f8004ed65 inherit pro_methods_classentities_1_1_living_entity"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_living_entity.html#aa965d3922663b974dd14cc5f8004ed65">getHitBoxSize</a> () const override</td></tr>
+<tr class="memdesc:aa965d3922663b974dd14cc5f8004ed65 inherit pro_methods_classentities_1_1_living_entity"><td class="mdescLeft">&#160;</td><td class="mdescRight">half hitbox size  <a href="classentities_1_1_living_entity.html#aa965d3922663b974dd14cc5f8004ed65">More...</a><br /></td></tr>
+<tr class="separator:aa965d3922663b974dd14cc5f8004ed65 inherit pro_methods_classentities_1_1_living_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a07a7d7f7e43f2140e3e6337322f78224 inherit pro_methods_classentities_1_1_living_entity"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_living_entity.html#a07a7d7f7e43f2140e3e6337322f78224">collisionOffset</a> (<a class="el" href="class_game_client.html">GameClient</a> &amp;client)</td></tr>
+<tr class="separator:a07a7d7f7e43f2140e3e6337322f78224 inherit pro_methods_classentities_1_1_living_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_methods_classentities_1_1_entity"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classentities_1_1_entity')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td></tr>
+<tr class="memitem:a94d18db8d502d677b6f4215dc1e1d820 inherit pro_methods_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#a94d18db8d502d677b6f4215dc1e1d820">getCollision</a> (const <a class="el" href="classentities_1_1_entity.html">Entity</a> &amp;other)</td></tr>
+<tr class="memdesc:a94d18db8d502d677b6f4215dc1e1d820 inherit pro_methods_classentities_1_1_entity"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate collision with another <a class="el" href="classentities_1_1_entity.html" title="Every object, what can be on the map.">Entity</a>, how much should this entity move, to avoid the collision.  <a href="classentities_1_1_entity.html#a94d18db8d502d677b6f4215dc1e1d820">More...</a><br /></td></tr>
+<tr class="separator:a94d18db8d502d677b6f4215dc1e1d820 inherit pro_methods_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_attribs_classentities_1_1_character_entity"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_classentities_1_1_character_entity')"><img src="closed.png" alt="-"/>&#160;Protected Attributes inherited from <a class="el" href="classentities_1_1_character_entity.html">entities::CharacterEntity</a></td></tr>
+<tr class="memitem:a295a77ffb22dd1a7b30164ab04ecf400 inherit pro_attribs_classentities_1_1_character_entity"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classrender_1_1_i_texture.html">render::ITexture</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_character_entity.html#a295a77ffb22dd1a7b30164ab04ecf400">texture</a></td></tr>
+<tr class="separator:a295a77ffb22dd1a7b30164ab04ecf400 inherit pro_attribs_classentities_1_1_character_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_attribs_classentities_1_1_living_entity"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_classentities_1_1_living_entity')"><img src="closed.png" alt="-"/>&#160;Protected Attributes inherited from <a class="el" href="classentities_1_1_living_entity.html">entities::LivingEntity</a></td></tr>
+<tr class="memitem:ad8b574e93d1fa34cdd119be6f0391acb inherit pro_attribs_classentities_1_1_living_entity"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_living_entity.html#ad8b574e93d1fa34cdd119be6f0391acb">speed</a></td></tr>
+<tr class="memdesc:ad8b574e93d1fa34cdd119be6f0391acb inherit pro_attribs_classentities_1_1_living_entity"><td class="mdescLeft">&#160;</td><td class="mdescRight">Its speed and moving direction.  <a href="classentities_1_1_living_entity.html#ad8b574e93d1fa34cdd119be6f0391acb">More...</a><br /></td></tr>
+<tr class="separator:ad8b574e93d1fa34cdd119be6f0391acb inherit pro_attribs_classentities_1_1_living_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a78282129a711906b7973c4ecb37b8434 inherit pro_attribs_classentities_1_1_living_entity"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_living_entity.html#a78282129a711906b7973c4ecb37b8434">health</a></td></tr>
+<tr class="memdesc:a78282129a711906b7973c4ecb37b8434 inherit pro_attribs_classentities_1_1_living_entity"><td class="mdescLeft">&#160;</td><td class="mdescRight">It has a health.  <a href="classentities_1_1_living_entity.html#a78282129a711906b7973c4ecb37b8434">More...</a><br /></td></tr>
+<tr class="separator:a78282129a711906b7973c4ecb37b8434 inherit pro_attribs_classentities_1_1_living_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_attribs_classentities_1_1_entity"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_classentities_1_1_entity')"><img src="closed.png" alt="-"/>&#160;Protected Attributes inherited from <a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td></tr>
+<tr class="memitem:a04f9c2febe8d435138a07eb2f48ba96b inherit pro_attribs_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#a04f9c2febe8d435138a07eb2f48ba96b">pos</a></td></tr>
+<tr class="memdesc:a04f9c2febe8d435138a07eb2f48ba96b inherit pro_attribs_classentities_1_1_entity"><td class="mdescLeft">&#160;</td><td class="mdescRight">it's position  <a href="classentities_1_1_entity.html#a04f9c2febe8d435138a07eb2f48ba96b">More...</a><br /></td></tr>
+<tr class="separator:a04f9c2febe8d435138a07eb2f48ba96b inherit pro_attribs_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1453bca3376a185aa54135dd4958b244 inherit pro_attribs_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#a1453bca3376a185aa54135dd4958b244">is_initialized</a></td></tr>
+<tr class="memdesc:a1453bca3376a185aa54135dd4958b244 inherit pro_attribs_classentities_1_1_entity"><td class="mdescLeft">&#160;</td><td class="mdescRight">well, is initialized  <a href="classentities_1_1_entity.html#a1453bca3376a185aa54135dd4958b244">More...</a><br /></td></tr>
+<tr class="separator:a1453bca3376a185aa54135dd4958b244 inherit pro_attribs_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aedac7bb35b729e4a02c582b9f4369ab8 inherit pro_attribs_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#aedac7bb35b729e4a02c582b9f4369ab8">is_alive</a></td></tr>
+<tr class="memdesc:aedac7bb35b729e4a02c582b9f4369ab8 inherit pro_attribs_classentities_1_1_entity"><td class="mdescLeft">&#160;</td><td class="mdescRight">true, if it is alive  <a href="classentities_1_1_entity.html#aedac7bb35b729e4a02c582b9f4369ab8">More...</a><br /></td></tr>
+<tr class="separator:aedac7bb35b729e4a02c582b9f4369ab8 inherit pro_attribs_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>You, or the player. </p>
+
+<p class="definition">Definition at line <a class="el" href="_player_entity_8h_source.html#l00010">10</a> of file <a class="el" href="_player_entity_8h_source.html">PlayerEntity.h</a>.</p>
+</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
+<a id="ace0cf1f8c711b21afef3965eb3b380a1"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ace0cf1f8c711b21afef3965eb3b380a1">&#9670;&nbsp;</a></span>PlayerEntity()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">entities::PlayerEntity::PlayerEntity </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a>&#160;</td>
+          <td class="paramname"><em>pos</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="classrender_1_1_i_texture.html">render::ITexture</a> &amp;&#160;</td>
+          <td class="paramname"><em>skin</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const std::string &amp;&#160;</td>
+          <td class="paramname"><em>name</em> = <code>&quot;Player&quot;</code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="_player_entity_8cpp_source.html#l00080">80</a> of file <a class="el" href="_player_entity_8cpp_source.html">PlayerEntity.cpp</a>.</p>
+
+</div>
+</div>
+<h2 class="groupheader">Member Function Documentation</h2>
+<a id="ab654524e0ad7ba5a9b1b590794d347f2"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ab654524e0ad7ba5a9b1b590794d347f2">&#9670;&nbsp;</a></span>damage()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">bool entities::PlayerEntity::damage </td>
+          <td>(</td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>damage</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="classentities_1_1_entity.html">Entity</a> &amp;&#160;</td>
+          <td class="paramname"><em>attacker</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Ouch. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">damage</td><td>that hurt </td></tr>
+    <tr><td class="paramname">attacker</td><td>the bad guy </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>:D </dd></dl>
+
+<p>Reimplemented from <a class="el" href="classentities_1_1_living_entity.html#a28d31eff59137171da3e23a8e3ef9c1c">entities::LivingEntity</a>.</p>
+
+<p class="definition">Definition at line <a class="el" href="_player_entity_8cpp_source.html#l00089">89</a> of file <a class="el" href="_player_entity_8cpp_source.html">PlayerEntity.cpp</a>.</p>
+
+</div>
+</div>
+<a id="ab4a5cd2af67538f73832668a2cd32c9f"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ab4a5cd2af67538f73832668a2cd32c9f">&#9670;&nbsp;</a></span>getHealthStatus()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float entities::PlayerEntity::getHealthStatus </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Sorry for these very meaningless descriptions. </p>
+<dl class="section return"><dt>Returns</dt><dd>0-1 float, hp in percents. </dd></dl>
+
+<p class="definition">Definition at line <a class="el" href="_player_entity_8cpp_source.html#l00094">94</a> of file <a class="el" href="_player_entity_8cpp_source.html">PlayerEntity.cpp</a>.</p>
+
+</div>
+</div>
+<a id="a1759d4f054b70c3c57f0f66c03fe09bb"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a1759d4f054b70c3c57f0f66c03fe09bb">&#9670;&nbsp;</a></span>getWeapon() <span class="overload">[1/2]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">const std::shared_ptr&lt; <a class="el" href="classweapons_1_1_weapon.html">weapons::Weapon</a> &gt; &amp; entities::PlayerEntity::getWeapon </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td> const</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Constant weapon getter. </p>
+<dl class="section return"><dt>Returns</dt><dd>idk </dd></dl>
+
+<p class="definition">Definition at line <a class="el" href="_player_entity_8cpp_source.html#l00085">85</a> of file <a class="el" href="_player_entity_8cpp_source.html">PlayerEntity.cpp</a>.</p>
+
+</div>
+</div>
+<a id="a6b0fdc757c8e1d95012a31dab836f20a"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a6b0fdc757c8e1d95012a31dab836f20a">&#9670;&nbsp;</a></span>getWeapon() <span class="overload">[2/2]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">std::shared_ptr&lt; <a class="el" href="classweapons_1_1_weapon.html">weapons::Weapon</a> &gt; entities::PlayerEntity::getWeapon </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Get selected weapon. </p>
+<dl class="section return"><dt>Returns</dt><dd>nullptr if has no selected weapon </dd></dl>
+
+<p>Reimplemented from <a class="el" href="classentities_1_1_character_entity.html#a7926bfbac4481203c1bd8920fcb2c432">entities::CharacterEntity</a>.</p>
+
+<p class="definition">Definition at line <a class="el" href="_player_entity_8cpp_source.html#l00011">11</a> of file <a class="el" href="_player_entity_8cpp_source.html">PlayerEntity.cpp</a>.</p>
+
+</div>
+</div>
+<a id="a9f5c7033ca46daf217c73cb5edbb0d68"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a9f5c7033ca46daf217c73cb5edbb0d68">&#9670;&nbsp;</a></span>tick()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">void entities::PlayerEntity::tick </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="class_game_client.html">GameClient</a> &amp;&#160;</td>
+          <td class="paramname"><em>client</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>deltaT</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">std::shared_ptr&lt; <a class="el" href="classentities_1_1_entity.html">Entity</a> &gt; &amp;&#160;</td>
+          <td class="paramname"><em>shared_this</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Tick the entity, read the control keys, HP regen logic, etc... </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">client</td><td>client </td></tr>
+    <tr><td class="paramname">deltaT</td><td>fElapsedTime </td></tr>
+    <tr><td class="paramname">shared_this</td><td>this </td></tr>
+  </table>
+  </dd>
+</dl>
+
+<p>Reimplemented from <a class="el" href="classentities_1_1_character_entity.html#ae7cdddc6dca655e7bf8c2f48424c5208">entities::CharacterEntity</a>.</p>
+
+<p class="definition">Definition at line <a class="el" href="_player_entity_8cpp_source.html#l00015">15</a> of file <a class="el" href="_player_entity_8cpp_source.html">PlayerEntity.cpp</a>.</p>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following files:<ul>
+<li>C:/Users/kosmx/Documents/GitHub/2d-game/<a class="el" href="_player_entity_8h_source.html">PlayerEntity.h</a></li>
+<li>C:/Users/kosmx/Documents/GitHub/2d-game/<a class="el" href="_player_entity_8cpp_source.html">PlayerEntity.cpp</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/classentities_1_1_player_entity.png b/doxy/html/classentities_1_1_player_entity.png
new file mode 100644
index 0000000000000000000000000000000000000000..fdbca4bb15fe9a0f37063bd381aa9953e44ffd02
Binary files /dev/null and b/doxy/html/classentities_1_1_player_entity.png differ
diff --git a/doxy/html/classentities_1_1_projectile_entity-members.html b/doxy/html/classentities_1_1_projectile_entity-members.html
new file mode 100644
index 0000000000000000000000000000000000000000..ccb275a172b238743176b011d81c29eef3ce1678
--- /dev/null
+++ b/doxy/html/classentities_1_1_projectile_entity-members.html
@@ -0,0 +1,110 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="namespaceentities.html">entities</a></li><li class="navelem"><a class="el" href="classentities_1_1_projectile_entity.html">ProjectileEntity</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">entities::ProjectileEntity Member List</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="classentities_1_1_projectile_entity.html">entities::ProjectileEntity</a>, including all inherited members.</p>
+<table class="directory">
+  <tr class="even"><td class="entry"><a class="el" href="classentities_1_1_projectile_entity.html#ab3eb63e6fdf0ca5c4b81ebbc02e7f513">bounce</a>(const olc::vf2d &amp;collision)</td><td class="entry"><a class="el" href="classentities_1_1_projectile_entity.html">entities::ProjectileEntity</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classentities_1_1_entity.html#a59426fe1b7dcefe96a0a748250724ff6">canBeRemoved</a>() const</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classentities_1_1_projectile_entity.html#a723e706e6421504ce9c6d70d77561215">damage</a>(int damage, Entity &amp;attacker) override</td><td class="entry"><a class="el" href="classentities_1_1_projectile_entity.html">entities::ProjectileEntity</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classentities_1_1_projectile_entity.html#ad4325b9194e4c76e68f27857226eefd8">damageValue</a></td><td class="entry"><a class="el" href="classentities_1_1_projectile_entity.html">entities::ProjectileEntity</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classentities_1_1_entity.html#a539ddef34b718b6068df421f316f4a6d">Entity</a>(const olc::vf2d &amp;pos)</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">explicit</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classentities_1_1_entity.html#a94d18db8d502d677b6f4215dc1e1d820">getCollision</a>(const Entity &amp;other)</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classentities_1_1_projectile_entity.html#a463a54543d8412feddf3be0aa7ab532a">getDamage</a>()</td><td class="entry"><a class="el" href="classentities_1_1_projectile_entity.html">entities::ProjectileEntity</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classentities_1_1_projectile_entity.html#ae38525094695db8ab564c5ae27711bb4">getHitBoxSize</a>() const override</td><td class="entry"><a class="el" href="classentities_1_1_projectile_entity.html">entities::ProjectileEntity</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classentities_1_1_entity.html#a8c4b0c1eb69a673619e4c8943ef34f86">getName</a>() const</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classentities_1_1_entity.html#a799a692b988248dd23d207b95e7fe2b7">getPos</a>() const</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classentities_1_1_entity.html#ac60e9beb5a45fc65120e9779e680c04b">getSize</a>() const</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classentities_1_1_projectile_entity.html#a7e67fe629e1ef7115fd2a0cae8b1efc0">getTexture</a>() override</td><td class="entry"><a class="el" href="classentities_1_1_projectile_entity.html">entities::ProjectileEntity</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classentities_1_1_entity.html#afd80ddceccb36b87d0d80dcc7f88fc3b">init</a>(GameClient &amp;client)</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classentities_1_1_entity.html#aedac7bb35b729e4a02c582b9f4369ab8">is_alive</a></td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classentities_1_1_entity.html#a1453bca3376a185aa54135dd4958b244">is_initialized</a></td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classentities_1_1_entity.html#ab0ee90a84f2163b600e603f24cff046f">isAlive</a>() const</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classentities_1_1_entity.html#ab010066d52a02c63908f70ff6ef7d873">isInitialized</a>()</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classentities_1_1_projectile_entity.html#a865c1a9527f67a3e5402a4fcf8baac98">onCollide</a>(const olc::vf2d &amp;collisionVector, std::shared_ptr&lt; Entity &gt; &amp;who)</td><td class="entry"><a class="el" href="classentities_1_1_projectile_entity.html">entities::ProjectileEntity</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classentities_1_1_entity.html#ad0a172ff99a7e73aaaee3658d5e3ae08">operator WallEntity *</a>()</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classentities_1_1_entity.html#a04f9c2febe8d435138a07eb2f48ba96b">pos</a></td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classentities_1_1_projectile_entity.html#aedd28853ca6fd6f1b8fa45dbe6b90c63">projectile</a></td><td class="entry"><a class="el" href="classentities_1_1_projectile_entity.html">entities::ProjectileEntity</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classentities_1_1_projectile_entity.html#ad42e2a1181110d2fa3acbec7eef3424e">ProjectileEntity</a>(std::shared_ptr&lt; Entity &gt; &amp;user, const olc::vf2d &amp;pos0, render::ITexture &amp;texture, int damage=20)</td><td class="entry"><a class="el" href="classentities_1_1_projectile_entity.html">entities::ProjectileEntity</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classentities_1_1_entity.html#abcc4364b5b7250f0364f3550a618b3ab">render</a>(olc::TransformedView &amp;scene)</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classentities_1_1_projectile_entity.html#ad88aa7e53b9a6671dab6132a8d58dbb5">setVelocity</a>(const olc::vf2d &amp;v)</td><td class="entry"><a class="el" href="classentities_1_1_projectile_entity.html">entities::ProjectileEntity</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classentities_1_1_projectile_entity.html#a761f27885de02515edaf252e8a4162b5">tick</a>(GameClient &amp;client, float deltaT, std::shared_ptr&lt; Entity &gt; &amp;shared_this) override</td><td class="entry"><a class="el" href="classentities_1_1_projectile_entity.html">entities::ProjectileEntity</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classentities_1_1_projectile_entity.html#ab01d1aa4b66b21481d07f7777bfb2ca3">user</a></td><td class="entry"><a class="el" href="classentities_1_1_projectile_entity.html">entities::ProjectileEntity</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classentities_1_1_projectile_entity.html#a29cb43b58d34f32f18986185bf8691f8">velocity</a></td><td class="entry"><a class="el" href="classentities_1_1_projectile_entity.html">entities::ProjectileEntity</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classentities_1_1_entity.html#a64d968c160dee2fdfca68aff2e49946b">~Entity</a>()=default</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+</table></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/classentities_1_1_projectile_entity.html b/doxy/html/classentities_1_1_projectile_entity.html
new file mode 100644
index 0000000000000000000000000000000000000000..0fb2356e24e6fba23cdad38b72b3518f139ddb33
--- /dev/null
+++ b/doxy/html/classentities_1_1_projectile_entity.html
@@ -0,0 +1,656 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: entities::ProjectileEntity Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="namespaceentities.html">entities</a></li><li class="navelem"><a class="el" href="classentities_1_1_projectile_entity.html">ProjectileEntity</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="#pub-static-attribs">Static Public Attributes</a> &#124;
+<a href="#pro-methods">Protected Member Functions</a> &#124;
+<a href="#pro-attribs">Protected Attributes</a> &#124;
+<a href="classentities_1_1_projectile_entity-members.html">List of all members</a>  </div>
+  <div class="headertitle">
+<div class="title">entities::ProjectileEntity Class Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>A projectile, a bullet.  
+ <a href="classentities_1_1_projectile_entity.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="_projectile_entity_8h_source.html">ProjectileEntity.h</a>&gt;</code></p>
+<div class="dynheader">
+Inheritance diagram for entities::ProjectileEntity:</div>
+<div class="dyncontent">
+ <div class="center">
+  <img src="classentities_1_1_projectile_entity.png" usemap="#entities::ProjectileEntity_map" alt=""/>
+  <map id="entities::ProjectileEntity_map" name="entities::ProjectileEntity_map">
+<area href="classentities_1_1_entity.html" title="Every object, what can be on the map." alt="entities::Entity" shape="rect" coords="0,0,164,24"/>
+<area href="classentities_1_1_explosive_projectile.html" title="A projectile, that explodes." alt="entities::ExplosiveProjectile" shape="rect" coords="0,112,164,136"/>
+  </map>
+</div></div>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr class="memitem:ad42e2a1181110d2fa3acbec7eef3424e"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_projectile_entity.html#ad42e2a1181110d2fa3acbec7eef3424e">ProjectileEntity</a> (std::shared_ptr&lt; <a class="el" href="classentities_1_1_entity.html">Entity</a> &gt; &amp;<a class="el" href="classentities_1_1_projectile_entity.html#ab01d1aa4b66b21481d07f7777bfb2ca3">user</a>, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;pos0, <a class="el" href="classrender_1_1_i_texture.html">render::ITexture</a> &amp;texture, int <a class="el" href="classentities_1_1_projectile_entity.html#a723e706e6421504ce9c6d70d77561215">damage</a>=20)</td></tr>
+<tr class="separator:ad42e2a1181110d2fa3acbec7eef3424e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a761f27885de02515edaf252e8a4162b5"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_projectile_entity.html#a761f27885de02515edaf252e8a4162b5">tick</a> (<a class="el" href="class_game_client.html">GameClient</a> &amp;client, float deltaT, std::shared_ptr&lt; <a class="el" href="classentities_1_1_entity.html">Entity</a> &gt; &amp;shared_this) override</td></tr>
+<tr class="memdesc:a761f27885de02515edaf252e8a4162b5"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classentities_1_1_entity.html" title="Every object, what can be on the map.">Entity</a> tick multiple times per sec.  <a href="classentities_1_1_projectile_entity.html#a761f27885de02515edaf252e8a4162b5">More...</a><br /></td></tr>
+<tr class="separator:a761f27885de02515edaf252e8a4162b5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad88aa7e53b9a6671dab6132a8d58dbb5"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_projectile_entity.html#ad88aa7e53b9a6671dab6132a8d58dbb5">setVelocity</a> (const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;v)</td></tr>
+<tr class="memdesc:ad88aa7e53b9a6671dab6132a8d58dbb5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set its velocity.  <a href="classentities_1_1_projectile_entity.html#ad88aa7e53b9a6671dab6132a8d58dbb5">More...</a><br /></td></tr>
+<tr class="separator:ad88aa7e53b9a6671dab6132a8d58dbb5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a723e706e6421504ce9c6d70d77561215"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_projectile_entity.html#a723e706e6421504ce9c6d70d77561215">damage</a> (int damage, <a class="el" href="classentities_1_1_entity.html">Entity</a> &amp;attacker) override</td></tr>
+<tr class="memdesc:a723e706e6421504ce9c6d70d77561215"><td class="mdescLeft">&#160;</td><td class="mdescRight">something damage this  <a href="classentities_1_1_projectile_entity.html#a723e706e6421504ce9c6d70d77561215">More...</a><br /></td></tr>
+<tr class="separator:a723e706e6421504ce9c6d70d77561215"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pub_methods_classentities_1_1_entity"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classentities_1_1_entity')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td></tr>
+<tr class="memitem:a539ddef34b718b6068df421f316f4a6d inherit pub_methods_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#a539ddef34b718b6068df421f316f4a6d">Entity</a> (const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;<a class="el" href="classentities_1_1_entity.html#a04f9c2febe8d435138a07eb2f48ba96b">pos</a>)</td></tr>
+<tr class="separator:a539ddef34b718b6068df421f316f4a6d inherit pub_methods_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afd80ddceccb36b87d0d80dcc7f88fc3b inherit pub_methods_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#afd80ddceccb36b87d0d80dcc7f88fc3b">init</a> (<a class="el" href="class_game_client.html">GameClient</a> &amp;client)</td></tr>
+<tr class="separator:afd80ddceccb36b87d0d80dcc7f88fc3b inherit pub_methods_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab010066d52a02c63908f70ff6ef7d873 inherit pub_methods_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#ab010066d52a02c63908f70ff6ef7d873">isInitialized</a> ()</td></tr>
+<tr class="separator:ab010066d52a02c63908f70ff6ef7d873 inherit pub_methods_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a799a692b988248dd23d207b95e7fe2b7 inherit pub_methods_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#a799a692b988248dd23d207b95e7fe2b7">getPos</a> () const</td></tr>
+<tr class="separator:a799a692b988248dd23d207b95e7fe2b7 inherit pub_methods_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac60e9beb5a45fc65120e9779e680c04b inherit pub_methods_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#ac60e9beb5a45fc65120e9779e680c04b">getSize</a> () const</td></tr>
+<tr class="memdesc:ac60e9beb5a45fc65120e9779e680c04b inherit pub_methods_classentities_1_1_entity"><td class="mdescLeft">&#160;</td><td class="mdescRight">get it's size to render  <a href="classentities_1_1_entity.html#ac60e9beb5a45fc65120e9779e680c04b">More...</a><br /></td></tr>
+<tr class="separator:ac60e9beb5a45fc65120e9779e680c04b inherit pub_methods_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab0ee90a84f2163b600e603f24cff046f inherit pub_methods_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#ab0ee90a84f2163b600e603f24cff046f">isAlive</a> () const</td></tr>
+<tr class="separator:ab0ee90a84f2163b600e603f24cff046f inherit pub_methods_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a59426fe1b7dcefe96a0a748250724ff6 inherit pub_methods_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#a59426fe1b7dcefe96a0a748250724ff6">canBeRemoved</a> () const</td></tr>
+<tr class="separator:a59426fe1b7dcefe96a0a748250724ff6 inherit pub_methods_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abcc4364b5b7250f0364f3550a618b3ab inherit pub_methods_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#abcc4364b5b7250f0364f3550a618b3ab">render</a> (<a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a> &amp;scene)</td></tr>
+<tr class="memdesc:abcc4364b5b7250f0364f3550a618b3ab inherit pub_methods_classentities_1_1_entity"><td class="mdescLeft">&#160;</td><td class="mdescRight">render  <a href="classentities_1_1_entity.html#abcc4364b5b7250f0364f3550a618b3ab">More...</a><br /></td></tr>
+<tr class="separator:abcc4364b5b7250f0364f3550a618b3ab inherit pub_methods_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8c4b0c1eb69a673619e4c8943ef34f86 inherit pub_methods_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">virtual std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#a8c4b0c1eb69a673619e4c8943ef34f86">getName</a> () const</td></tr>
+<tr class="separator:a8c4b0c1eb69a673619e4c8943ef34f86 inherit pub_methods_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a64d968c160dee2fdfca68aff2e49946b inherit pub_methods_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#a64d968c160dee2fdfca68aff2e49946b">~Entity</a> ()=default</td></tr>
+<tr class="separator:a64d968c160dee2fdfca68aff2e49946b inherit pub_methods_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad0a172ff99a7e73aaaee3658d5e3ae08 inherit pub_methods_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#ad0a172ff99a7e73aaaee3658d5e3ae08">operator WallEntity *</a> ()</td></tr>
+<tr class="separator:ad0a172ff99a7e73aaaee3658d5e3ae08 inherit pub_methods_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-attribs"></a>
+Static Public Attributes</h2></td></tr>
+<tr class="memitem:aedd28853ca6fd6f1b8fa45dbe6b90c63"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classrender_1_1_simple_sprite.html">render::SimpleSprite</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_projectile_entity.html#aedd28853ca6fd6f1b8fa45dbe6b90c63">projectile</a></td></tr>
+<tr class="separator:aedd28853ca6fd6f1b8fa45dbe6b90c63"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
+Protected Member Functions</h2></td></tr>
+<tr class="memitem:a7e67fe629e1ef7115fd2a0cae8b1efc0"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classrender_1_1_i_texture.html">render::ITexture</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_projectile_entity.html#a7e67fe629e1ef7115fd2a0cae8b1efc0">getTexture</a> () override</td></tr>
+<tr class="memdesc:a7e67fe629e1ef7115fd2a0cae8b1efc0"><td class="mdescLeft">&#160;</td><td class="mdescRight">the object's texture  <a href="classentities_1_1_projectile_entity.html#a7e67fe629e1ef7115fd2a0cae8b1efc0">More...</a><br /></td></tr>
+<tr class="separator:a7e67fe629e1ef7115fd2a0cae8b1efc0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a463a54543d8412feddf3be0aa7ab532a"><td class="memItemLeft" align="right" valign="top">virtual int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_projectile_entity.html#a463a54543d8412feddf3be0aa7ab532a">getDamage</a> ()</td></tr>
+<tr class="separator:a463a54543d8412feddf3be0aa7ab532a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab3eb63e6fdf0ca5c4b81ebbc02e7f513"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_projectile_entity.html#ab3eb63e6fdf0ca5c4b81ebbc02e7f513">bounce</a> (const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;collision)</td></tr>
+<tr class="memdesc:ab3eb63e6fdf0ca5c4b81ebbc02e7f513"><td class="mdescLeft">&#160;</td><td class="mdescRight">not used, do a bounce function  <a href="classentities_1_1_projectile_entity.html#ab3eb63e6fdf0ca5c4b81ebbc02e7f513">More...</a><br /></td></tr>
+<tr class="separator:ab3eb63e6fdf0ca5c4b81ebbc02e7f513"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a865c1a9527f67a3e5402a4fcf8baac98"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_projectile_entity.html#a865c1a9527f67a3e5402a4fcf8baac98">onCollide</a> (const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;collisionVector, std::shared_ptr&lt; <a class="el" href="classentities_1_1_entity.html">Entity</a> &gt; &amp;who)</td></tr>
+<tr class="memdesc:a865c1a9527f67a3e5402a4fcf8baac98"><td class="mdescLeft">&#160;</td><td class="mdescRight">Determines, what will the projectile do, if it hit something.  <a href="classentities_1_1_projectile_entity.html#a865c1a9527f67a3e5402a4fcf8baac98">More...</a><br /></td></tr>
+<tr class="separator:a865c1a9527f67a3e5402a4fcf8baac98"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae38525094695db8ab564c5ae27711bb4"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_projectile_entity.html#ae38525094695db8ab564c5ae27711bb4">getHitBoxSize</a> () const override</td></tr>
+<tr class="memdesc:ae38525094695db8ab564c5ae27711bb4"><td class="mdescLeft">&#160;</td><td class="mdescRight">half hitbox size  <a href="classentities_1_1_projectile_entity.html#ae38525094695db8ab564c5ae27711bb4">More...</a><br /></td></tr>
+<tr class="separator:ae38525094695db8ab564c5ae27711bb4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_methods_classentities_1_1_entity"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classentities_1_1_entity')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td></tr>
+<tr class="memitem:a94d18db8d502d677b6f4215dc1e1d820 inherit pro_methods_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#a94d18db8d502d677b6f4215dc1e1d820">getCollision</a> (const <a class="el" href="classentities_1_1_entity.html">Entity</a> &amp;other)</td></tr>
+<tr class="memdesc:a94d18db8d502d677b6f4215dc1e1d820 inherit pro_methods_classentities_1_1_entity"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate collision with another <a class="el" href="classentities_1_1_entity.html" title="Every object, what can be on the map.">Entity</a>, how much should this entity move, to avoid the collision.  <a href="classentities_1_1_entity.html#a94d18db8d502d677b6f4215dc1e1d820">More...</a><br /></td></tr>
+<tr class="separator:a94d18db8d502d677b6f4215dc1e1d820 inherit pro_methods_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-attribs"></a>
+Protected Attributes</h2></td></tr>
+<tr class="memitem:a29cb43b58d34f32f18986185bf8691f8"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_projectile_entity.html#a29cb43b58d34f32f18986185bf8691f8">velocity</a></td></tr>
+<tr class="separator:a29cb43b58d34f32f18986185bf8691f8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab01d1aa4b66b21481d07f7777bfb2ca3"><td class="memItemLeft" align="right" valign="top">std::shared_ptr&lt; <a class="el" href="classentities_1_1_entity.html">Entity</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_projectile_entity.html#ab01d1aa4b66b21481d07f7777bfb2ca3">user</a></td></tr>
+<tr class="memdesc:ab01d1aa4b66b21481d07f7777bfb2ca3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Who is the owner of this bullet. needed to not damage the user.  <a href="classentities_1_1_projectile_entity.html#ab01d1aa4b66b21481d07f7777bfb2ca3">More...</a><br /></td></tr>
+<tr class="separator:ab01d1aa4b66b21481d07f7777bfb2ca3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad4325b9194e4c76e68f27857226eefd8"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_projectile_entity.html#ad4325b9194e4c76e68f27857226eefd8">damageValue</a></td></tr>
+<tr class="separator:ad4325b9194e4c76e68f27857226eefd8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_attribs_classentities_1_1_entity"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_classentities_1_1_entity')"><img src="closed.png" alt="-"/>&#160;Protected Attributes inherited from <a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td></tr>
+<tr class="memitem:a04f9c2febe8d435138a07eb2f48ba96b inherit pro_attribs_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#a04f9c2febe8d435138a07eb2f48ba96b">pos</a></td></tr>
+<tr class="memdesc:a04f9c2febe8d435138a07eb2f48ba96b inherit pro_attribs_classentities_1_1_entity"><td class="mdescLeft">&#160;</td><td class="mdescRight">it's position  <a href="classentities_1_1_entity.html#a04f9c2febe8d435138a07eb2f48ba96b">More...</a><br /></td></tr>
+<tr class="separator:a04f9c2febe8d435138a07eb2f48ba96b inherit pro_attribs_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1453bca3376a185aa54135dd4958b244 inherit pro_attribs_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#a1453bca3376a185aa54135dd4958b244">is_initialized</a></td></tr>
+<tr class="memdesc:a1453bca3376a185aa54135dd4958b244 inherit pro_attribs_classentities_1_1_entity"><td class="mdescLeft">&#160;</td><td class="mdescRight">well, is initialized  <a href="classentities_1_1_entity.html#a1453bca3376a185aa54135dd4958b244">More...</a><br /></td></tr>
+<tr class="separator:a1453bca3376a185aa54135dd4958b244 inherit pro_attribs_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aedac7bb35b729e4a02c582b9f4369ab8 inherit pro_attribs_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#aedac7bb35b729e4a02c582b9f4369ab8">is_alive</a></td></tr>
+<tr class="memdesc:aedac7bb35b729e4a02c582b9f4369ab8 inherit pro_attribs_classentities_1_1_entity"><td class="mdescLeft">&#160;</td><td class="mdescRight">true, if it is alive  <a href="classentities_1_1_entity.html#aedac7bb35b729e4a02c582b9f4369ab8">More...</a><br /></td></tr>
+<tr class="separator:aedac7bb35b729e4a02c582b9f4369ab8 inherit pro_attribs_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>A projectile, a bullet. </p>
+
+<p class="definition">Definition at line <a class="el" href="_projectile_entity_8h_source.html#l00009">9</a> of file <a class="el" href="_projectile_entity_8h_source.html">ProjectileEntity.h</a>.</p>
+</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
+<a id="ad42e2a1181110d2fa3acbec7eef3424e"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ad42e2a1181110d2fa3acbec7eef3424e">&#9670;&nbsp;</a></span>ProjectileEntity()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">entities::ProjectileEntity::ProjectileEntity </td>
+          <td>(</td>
+          <td class="paramtype">std::shared_ptr&lt; <a class="el" href="classentities_1_1_entity.html">Entity</a> &gt; &amp;&#160;</td>
+          <td class="paramname"><em>user</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>pos0</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="classrender_1_1_i_texture.html">render::ITexture</a> &amp;&#160;</td>
+          <td class="paramname"><em>texture</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>damage</em> = <code>20</code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="_projectile_entity_8cpp_source.html#l00040">40</a> of file <a class="el" href="_projectile_entity_8cpp_source.html">ProjectileEntity.cpp</a>.</p>
+
+</div>
+</div>
+<h2 class="groupheader">Member Function Documentation</h2>
+<a id="ab3eb63e6fdf0ca5c4b81ebbc02e7f513"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ab3eb63e6fdf0ca5c4b81ebbc02e7f513">&#9670;&nbsp;</a></span>bounce()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">void entities::ProjectileEntity::bounce </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>collision</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">virtual</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>not used, do a bounce function </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">collision</td><td>collision vector </td></tr>
+  </table>
+  </dd>
+</dl>
+
+<p class="definition">Definition at line <a class="el" href="_projectile_entity_8cpp_source.html#l00017">17</a> of file <a class="el" href="_projectile_entity_8cpp_source.html">ProjectileEntity.cpp</a>.</p>
+
+</div>
+</div>
+<a id="a723e706e6421504ce9c6d70d77561215"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a723e706e6421504ce9c6d70d77561215">&#9670;&nbsp;</a></span>damage()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">bool entities::ProjectileEntity::damage </td>
+          <td>(</td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>damage</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="classentities_1_1_entity.html">Entity</a> &amp;&#160;</td>
+          <td class="paramname"><em>attacker</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>something damage this </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">damage</td><td>how much damage should it take </td></tr>
+    <tr><td class="paramname">attacker</td><td>who deal the damage. not the projectile, the entity </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>did the entity take the damage or no (like a wall) </dd></dl>
+
+<p>Implements <a class="el" href="classentities_1_1_entity.html#af7fc9949fc50b1b31abb36a3d51b0597">entities::Entity</a>.</p>
+
+<p class="definition">Definition at line <a class="el" href="_projectile_entity_8cpp_source.html#l00066">66</a> of file <a class="el" href="_projectile_entity_8cpp_source.html">ProjectileEntity.cpp</a>.</p>
+
+</div>
+</div>
+<a id="a463a54543d8412feddf3be0aa7ab532a"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a463a54543d8412feddf3be0aa7ab532a">&#9670;&nbsp;</a></span>getDamage()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">int entities::ProjectileEntity::getDamage </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">virtual</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="_projectile_entity_8cpp_source.html#l00013">13</a> of file <a class="el" href="_projectile_entity_8cpp_source.html">ProjectileEntity.cpp</a>.</p>
+
+</div>
+</div>
+<a id="ae38525094695db8ab564c5ae27711bb4"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ae38525094695db8ab564c5ae27711bb4">&#9670;&nbsp;</a></span>getHitBoxSize()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> entities::ProjectileEntity::getHitBoxSize </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td> const</td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>half hitbox size </p>
+<dl class="section return"><dt>Returns</dt><dd>hitbox size as a vector </dd></dl>
+
+<p>Implements <a class="el" href="classentities_1_1_entity.html#a9cd7ba81ddbd978b8f43e9f10e97492f">entities::Entity</a>.</p>
+
+<p class="definition">Definition at line <a class="el" href="_projectile_entity_8cpp_source.html#l00036">36</a> of file <a class="el" href="_projectile_entity_8cpp_source.html">ProjectileEntity.cpp</a>.</p>
+
+</div>
+</div>
+<a id="a7e67fe629e1ef7115fd2a0cae8b1efc0"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a7e67fe629e1ef7115fd2a0cae8b1efc0">&#9670;&nbsp;</a></span>getTexture()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classrender_1_1_i_texture.html">render::ITexture</a> &amp; entities::ProjectileEntity::getTexture </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>the object's texture </p>
+<dl class="section return"><dt>Returns</dt><dd>the texture </dd></dl>
+
+<p>Implements <a class="el" href="classentities_1_1_entity.html#af01b796fb472ef3139aea41aeed36c76">entities::Entity</a>.</p>
+
+<p class="definition">Definition at line <a class="el" href="_projectile_entity_8cpp_source.html#l00009">9</a> of file <a class="el" href="_projectile_entity_8cpp_source.html">ProjectileEntity.cpp</a>.</p>
+
+</div>
+</div>
+<a id="a865c1a9527f67a3e5402a4fcf8baac98"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a865c1a9527f67a3e5402a4fcf8baac98">&#9670;&nbsp;</a></span>onCollide()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">bool entities::ProjectileEntity::onCollide </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>collisionVector</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">std::shared_ptr&lt; <a class="el" href="classentities_1_1_entity.html">Entity</a> &gt; &amp;&#160;</td>
+          <td class="paramname"><em>who</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">virtual</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Determines, what will the projectile do, if it hit something. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">collisionVector</td><td>the collision vector </td></tr>
+    <tr><td class="paramname">who</td><td>who is the affected entity </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>is the projectile destroyed. </dd></dl>
+
+<p>Reimplemented in <a class="el" href="classentities_1_1_explosive_projectile.html#a7e0d880f0dfeb6570dc724a0739b1331">entities::ExplosiveProjectile</a>.</p>
+
+<p class="definition">Definition at line <a class="el" href="_projectile_entity_8cpp_source.html#l00027">27</a> of file <a class="el" href="_projectile_entity_8cpp_source.html">ProjectileEntity.cpp</a>.</p>
+
+</div>
+</div>
+<a id="ad88aa7e53b9a6671dab6132a8d58dbb5"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ad88aa7e53b9a6671dab6132a8d58dbb5">&#9670;&nbsp;</a></span>setVelocity()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">void entities::ProjectileEntity::setVelocity </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>v</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Set its velocity. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">v</td><td>velocity vector </td></tr>
+  </table>
+  </dd>
+</dl>
+
+<p class="definition">Definition at line <a class="el" href="_projectile_entity_8cpp_source.html#l00062">62</a> of file <a class="el" href="_projectile_entity_8cpp_source.html">ProjectileEntity.cpp</a>.</p>
+
+</div>
+</div>
+<a id="a761f27885de02515edaf252e8a4162b5"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a761f27885de02515edaf252e8a4162b5">&#9670;&nbsp;</a></span>tick()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">void entities::ProjectileEntity::tick </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="class_game_client.html">GameClient</a> &amp;&#160;</td>
+          <td class="paramname"><em>client</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>deltaT</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">std::shared_ptr&lt; <a class="el" href="classentities_1_1_entity.html">Entity</a> &gt; &amp;&#160;</td>
+          <td class="paramname"><em>shared_this</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p><a class="el" href="classentities_1_1_entity.html" title="Every object, what can be on the map.">Entity</a> tick multiple times per sec. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">client</td><td>the game client object </td></tr>
+    <tr><td class="paramname">deltaT</td><td>how long take a tick </td></tr>
+    <tr><td class="paramname">shared_this</td><td>this as a shared_ptr </td></tr>
+  </table>
+  </dd>
+</dl>
+
+<p>Reimplemented from <a class="el" href="classentities_1_1_entity.html#a0440674bf90ae83d9a26aa4b0ac8309e">entities::Entity</a>.</p>
+
+<p class="definition">Definition at line <a class="el" href="_projectile_entity_8cpp_source.html#l00043">43</a> of file <a class="el" href="_projectile_entity_8cpp_source.html">ProjectileEntity.cpp</a>.</p>
+
+</div>
+</div>
+<h2 class="groupheader">Member Data Documentation</h2>
+<a id="ad4325b9194e4c76e68f27857226eefd8"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ad4325b9194e4c76e68f27857226eefd8">&#9670;&nbsp;</a></span>damageValue</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">int entities::ProjectileEntity::damageValue</td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="_projectile_entity_8h_source.html#l00028">28</a> of file <a class="el" href="_projectile_entity_8h_source.html">ProjectileEntity.h</a>.</p>
+
+</div>
+</div>
+<a id="aedd28853ca6fd6f1b8fa45dbe6b90c63"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aedd28853ca6fd6f1b8fa45dbe6b90c63">&#9670;&nbsp;</a></span>projectile</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classrender_1_1_simple_sprite.html">render::SimpleSprite</a> entities::ProjectileEntity::projectile</td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="_projectile_entity_8h_source.html#l00013">13</a> of file <a class="el" href="_projectile_entity_8h_source.html">ProjectileEntity.h</a>.</p>
+
+</div>
+</div>
+<a id="ab01d1aa4b66b21481d07f7777bfb2ca3"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ab01d1aa4b66b21481d07f7777bfb2ca3">&#9670;&nbsp;</a></span>user</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">std::shared_ptr&lt;<a class="el" href="classentities_1_1_entity.html">Entity</a>&gt; entities::ProjectileEntity::user</td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Who is the owner of this bullet. needed to not damage the user. </p>
+
+<p class="definition">Definition at line <a class="el" href="_projectile_entity_8h_source.html#l00025">25</a> of file <a class="el" href="_projectile_entity_8h_source.html">ProjectileEntity.h</a>.</p>
+
+</div>
+</div>
+<a id="a29cb43b58d34f32f18986185bf8691f8"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a29cb43b58d34f32f18986185bf8691f8">&#9670;&nbsp;</a></span>velocity</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> entities::ProjectileEntity::velocity</td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="_projectile_entity_8h_source.html#l00021">21</a> of file <a class="el" href="_projectile_entity_8h_source.html">ProjectileEntity.h</a>.</p>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following files:<ul>
+<li>C:/Users/kosmx/Documents/GitHub/2d-game/<a class="el" href="_projectile_entity_8h_source.html">ProjectileEntity.h</a></li>
+<li>C:/Users/kosmx/Documents/GitHub/2d-game/<a class="el" href="_projectile_entity_8cpp_source.html">ProjectileEntity.cpp</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/classentities_1_1_projectile_entity.png b/doxy/html/classentities_1_1_projectile_entity.png
new file mode 100644
index 0000000000000000000000000000000000000000..eea0b3e4e94afcd69ab9948f8694e6527c47d253
Binary files /dev/null and b/doxy/html/classentities_1_1_projectile_entity.png differ
diff --git a/doxy/html/classentities_1_1_wall_entity-members.html b/doxy/html/classentities_1_1_wall_entity-members.html
new file mode 100644
index 0000000000000000000000000000000000000000..1c1670cb989b8dadb9ef0cb258590875a1da8daa
--- /dev/null
+++ b/doxy/html/classentities_1_1_wall_entity-members.html
@@ -0,0 +1,106 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="namespaceentities.html">entities</a></li><li class="navelem"><a class="el" href="classentities_1_1_wall_entity.html">WallEntity</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">entities::WallEntity Member List</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="classentities_1_1_wall_entity.html">entities::WallEntity</a>, including all inherited members.</p>
+<table class="directory">
+  <tr class="even"><td class="entry"><a class="el" href="classentities_1_1_entity.html#a59426fe1b7dcefe96a0a748250724ff6">canBeRemoved</a>() const</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classentities_1_1_wall_entity.html#a0cd908003450361a7c08d2c7c83d21dc">damage</a>(int damage, Entity &amp;attacker) override</td><td class="entry"><a class="el" href="classentities_1_1_wall_entity.html">entities::WallEntity</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classentities_1_1_entity.html#a539ddef34b718b6068df421f316f4a6d">Entity</a>(const olc::vf2d &amp;pos)</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">explicit</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classentities_1_1_entity.html#a94d18db8d502d677b6f4215dc1e1d820">getCollision</a>(const Entity &amp;other)</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classentities_1_1_wall_entity.html#afd4863a311190a59cdf7574798ac3f2d">getHitBoxSize</a>() const override</td><td class="entry"><a class="el" href="classentities_1_1_wall_entity.html">entities::WallEntity</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classentities_1_1_entity.html#a8c4b0c1eb69a673619e4c8943ef34f86">getName</a>() const</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classentities_1_1_wall_entity.html#af799f9675cdf4acadfcf9d9616d36e1b">getNeighbourID</a>() const</td><td class="entry"><a class="el" href="classentities_1_1_wall_entity.html">entities::WallEntity</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classentities_1_1_entity.html#a799a692b988248dd23d207b95e7fe2b7">getPos</a>() const</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classentities_1_1_entity.html#ac60e9beb5a45fc65120e9779e680c04b">getSize</a>() const</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classentities_1_1_wall_entity.html#a4b6c55275f06a30dac07c2dc5452e602">getTexture</a>() override</td><td class="entry"><a class="el" href="classentities_1_1_wall_entity.html">entities::WallEntity</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classentities_1_1_wall_entity.html#ad66ed8002d8082035bd3b7df07ff45b5">init</a>(GameClient &amp;client) override</td><td class="entry"><a class="el" href="classentities_1_1_wall_entity.html">entities::WallEntity</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classentities_1_1_entity.html#aedac7bb35b729e4a02c582b9f4369ab8">is_alive</a></td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classentities_1_1_entity.html#a1453bca3376a185aa54135dd4958b244">is_initialized</a></td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classentities_1_1_entity.html#ab0ee90a84f2163b600e603f24cff046f">isAlive</a>() const</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classentities_1_1_entity.html#ab010066d52a02c63908f70ff6ef7d873">isInitialized</a>()</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classentities_1_1_entity.html#ad0a172ff99a7e73aaaee3658d5e3ae08">operator WallEntity *</a>()</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classentities_1_1_entity.html#a04f9c2febe8d435138a07eb2f48ba96b">pos</a></td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classentities_1_1_entity.html#abcc4364b5b7250f0364f3550a618b3ab">render</a>(olc::TransformedView &amp;scene)</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classentities_1_1_wall_entity.html#a3006e4856a24086bdd28b7b353b159ff">simpleGreenWallTexture</a></td><td class="entry"><a class="el" href="classentities_1_1_wall_entity.html">entities::WallEntity</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classentities_1_1_wall_entity.html#a73c32014a207a92fc1a837f0dda83eb8">simpleWallTexture</a></td><td class="entry"><a class="el" href="classentities_1_1_wall_entity.html">entities::WallEntity</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classentities_1_1_entity.html#a0440674bf90ae83d9a26aa4b0ac8309e">tick</a>(GameClient &amp;client, float deltaT, std::shared_ptr&lt; Entity &gt; &amp;shared_this)</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classentities_1_1_wall_entity.html#a8d65d65453803e731cd9aa112d1f0447">updateNeighbours</a>(GameClient &amp;client)</td><td class="entry"><a class="el" href="classentities_1_1_wall_entity.html">entities::WallEntity</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classentities_1_1_wall_entity.html#a109600cce4cd0514d320c14b4f8f4813">WallEntity</a>(const olc::vf2d &amp;pos, render::WallTexture &amp;texture=simpleWallTexture)</td><td class="entry"><a class="el" href="classentities_1_1_wall_entity.html">entities::WallEntity</a></td><td class="entry"><span class="mlabel">explicit</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classentities_1_1_entity.html#a64d968c160dee2fdfca68aff2e49946b">~Entity</a>()=default</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+</table></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/classentities_1_1_wall_entity.html b/doxy/html/classentities_1_1_wall_entity.html
new file mode 100644
index 0000000000000000000000000000000000000000..772bcd258ea43f6d0f080866228db2c3b192951d
--- /dev/null
+++ b/doxy/html/classentities_1_1_wall_entity.html
@@ -0,0 +1,490 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: entities::WallEntity Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="namespaceentities.html">entities</a></li><li class="navelem"><a class="el" href="classentities_1_1_wall_entity.html">WallEntity</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="#pub-static-attribs">Static Public Attributes</a> &#124;
+<a href="#pro-methods">Protected Member Functions</a> &#124;
+<a href="classentities_1_1_wall_entity-members.html">List of all members</a>  </div>
+  <div class="headertitle">
+<div class="title">entities::WallEntity Class Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Just a stupid wall, it doesn't do much, can't be killed...  
+ <a href="classentities_1_1_wall_entity.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="_wall_entity_8h_source.html">WallEntity.h</a>&gt;</code></p>
+<div class="dynheader">
+Inheritance diagram for entities::WallEntity:</div>
+<div class="dyncontent">
+ <div class="center">
+  <img src="classentities_1_1_wall_entity.png" usemap="#entities::WallEntity_map" alt=""/>
+  <map id="entities::WallEntity_map" name="entities::WallEntity_map">
+<area href="classentities_1_1_entity.html" title="Every object, what can be on the map." alt="entities::Entity" shape="rect" coords="0,0,112,24"/>
+  </map>
+</div></div>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr class="memitem:a109600cce4cd0514d320c14b4f8f4813"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_wall_entity.html#a109600cce4cd0514d320c14b4f8f4813">WallEntity</a> (const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;<a class="el" href="classentities_1_1_entity.html#a04f9c2febe8d435138a07eb2f48ba96b">pos</a>, <a class="el" href="classrender_1_1_wall_texture.html">render::WallTexture</a> &amp;texture=<a class="el" href="classentities_1_1_wall_entity.html#a73c32014a207a92fc1a837f0dda83eb8">simpleWallTexture</a>)</td></tr>
+<tr class="separator:a109600cce4cd0514d320c14b4f8f4813"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad66ed8002d8082035bd3b7df07ff45b5"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_wall_entity.html#ad66ed8002d8082035bd3b7df07ff45b5">init</a> (<a class="el" href="class_game_client.html">GameClient</a> &amp;client) override</td></tr>
+<tr class="memdesc:ad66ed8002d8082035bd3b7df07ff45b5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Init, before tick, used to calculate neighbours.  <a href="classentities_1_1_wall_entity.html#ad66ed8002d8082035bd3b7df07ff45b5">More...</a><br /></td></tr>
+<tr class="separator:ad66ed8002d8082035bd3b7df07ff45b5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0cd908003450361a7c08d2c7c83d21dc"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_wall_entity.html#a0cd908003450361a7c08d2c7c83d21dc">damage</a> (int damage, <a class="el" href="classentities_1_1_entity.html">Entity</a> &amp;attacker) override</td></tr>
+<tr class="memdesc:a0cd908003450361a7c08d2c7c83d21dc"><td class="mdescLeft">&#160;</td><td class="mdescRight">something damage this  <a href="classentities_1_1_wall_entity.html#a0cd908003450361a7c08d2c7c83d21dc">More...</a><br /></td></tr>
+<tr class="separator:a0cd908003450361a7c08d2c7c83d21dc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af799f9675cdf4acadfcf9d9616d36e1b"><td class="memItemLeft" align="right" valign="top">virtual char&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_wall_entity.html#af799f9675cdf4acadfcf9d9616d36e1b">getNeighbourID</a> () const</td></tr>
+<tr class="memdesc:af799f9675cdf4acadfcf9d9616d36e1b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Accessor for neighbourID.  <a href="classentities_1_1_wall_entity.html#af799f9675cdf4acadfcf9d9616d36e1b">More...</a><br /></td></tr>
+<tr class="separator:af799f9675cdf4acadfcf9d9616d36e1b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pub_methods_classentities_1_1_entity"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classentities_1_1_entity')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td></tr>
+<tr class="memitem:a539ddef34b718b6068df421f316f4a6d inherit pub_methods_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#a539ddef34b718b6068df421f316f4a6d">Entity</a> (const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;<a class="el" href="classentities_1_1_entity.html#a04f9c2febe8d435138a07eb2f48ba96b">pos</a>)</td></tr>
+<tr class="separator:a539ddef34b718b6068df421f316f4a6d inherit pub_methods_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab010066d52a02c63908f70ff6ef7d873 inherit pub_methods_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#ab010066d52a02c63908f70ff6ef7d873">isInitialized</a> ()</td></tr>
+<tr class="separator:ab010066d52a02c63908f70ff6ef7d873 inherit pub_methods_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a799a692b988248dd23d207b95e7fe2b7 inherit pub_methods_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#a799a692b988248dd23d207b95e7fe2b7">getPos</a> () const</td></tr>
+<tr class="separator:a799a692b988248dd23d207b95e7fe2b7 inherit pub_methods_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac60e9beb5a45fc65120e9779e680c04b inherit pub_methods_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#ac60e9beb5a45fc65120e9779e680c04b">getSize</a> () const</td></tr>
+<tr class="memdesc:ac60e9beb5a45fc65120e9779e680c04b inherit pub_methods_classentities_1_1_entity"><td class="mdescLeft">&#160;</td><td class="mdescRight">get it's size to render  <a href="classentities_1_1_entity.html#ac60e9beb5a45fc65120e9779e680c04b">More...</a><br /></td></tr>
+<tr class="separator:ac60e9beb5a45fc65120e9779e680c04b inherit pub_methods_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab0ee90a84f2163b600e603f24cff046f inherit pub_methods_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#ab0ee90a84f2163b600e603f24cff046f">isAlive</a> () const</td></tr>
+<tr class="separator:ab0ee90a84f2163b600e603f24cff046f inherit pub_methods_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a59426fe1b7dcefe96a0a748250724ff6 inherit pub_methods_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#a59426fe1b7dcefe96a0a748250724ff6">canBeRemoved</a> () const</td></tr>
+<tr class="separator:a59426fe1b7dcefe96a0a748250724ff6 inherit pub_methods_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0440674bf90ae83d9a26aa4b0ac8309e inherit pub_methods_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#a0440674bf90ae83d9a26aa4b0ac8309e">tick</a> (<a class="el" href="class_game_client.html">GameClient</a> &amp;client, float deltaT, std::shared_ptr&lt; <a class="el" href="classentities_1_1_entity.html">Entity</a> &gt; &amp;shared_this)</td></tr>
+<tr class="memdesc:a0440674bf90ae83d9a26aa4b0ac8309e inherit pub_methods_classentities_1_1_entity"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classentities_1_1_entity.html" title="Every object, what can be on the map.">Entity</a> tick multiple times per sec.  <a href="classentities_1_1_entity.html#a0440674bf90ae83d9a26aa4b0ac8309e">More...</a><br /></td></tr>
+<tr class="separator:a0440674bf90ae83d9a26aa4b0ac8309e inherit pub_methods_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abcc4364b5b7250f0364f3550a618b3ab inherit pub_methods_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#abcc4364b5b7250f0364f3550a618b3ab">render</a> (<a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a> &amp;scene)</td></tr>
+<tr class="memdesc:abcc4364b5b7250f0364f3550a618b3ab inherit pub_methods_classentities_1_1_entity"><td class="mdescLeft">&#160;</td><td class="mdescRight">render  <a href="classentities_1_1_entity.html#abcc4364b5b7250f0364f3550a618b3ab">More...</a><br /></td></tr>
+<tr class="separator:abcc4364b5b7250f0364f3550a618b3ab inherit pub_methods_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8c4b0c1eb69a673619e4c8943ef34f86 inherit pub_methods_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">virtual std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#a8c4b0c1eb69a673619e4c8943ef34f86">getName</a> () const</td></tr>
+<tr class="separator:a8c4b0c1eb69a673619e4c8943ef34f86 inherit pub_methods_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a64d968c160dee2fdfca68aff2e49946b inherit pub_methods_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#a64d968c160dee2fdfca68aff2e49946b">~Entity</a> ()=default</td></tr>
+<tr class="separator:a64d968c160dee2fdfca68aff2e49946b inherit pub_methods_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad0a172ff99a7e73aaaee3658d5e3ae08 inherit pub_methods_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#ad0a172ff99a7e73aaaee3658d5e3ae08">operator WallEntity *</a> ()</td></tr>
+<tr class="separator:ad0a172ff99a7e73aaaee3658d5e3ae08 inherit pub_methods_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-attribs"></a>
+Static Public Attributes</h2></td></tr>
+<tr class="memitem:a73c32014a207a92fc1a837f0dda83eb8"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classrender_1_1_wall_texture.html">render::WallTexture</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_wall_entity.html#a73c32014a207a92fc1a837f0dda83eb8">simpleWallTexture</a></td></tr>
+<tr class="separator:a73c32014a207a92fc1a837f0dda83eb8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3006e4856a24086bdd28b7b353b159ff"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classrender_1_1_wall_texture.html">render::WallTexture</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_wall_entity.html#a3006e4856a24086bdd28b7b353b159ff">simpleGreenWallTexture</a></td></tr>
+<tr class="separator:a3006e4856a24086bdd28b7b353b159ff"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
+Protected Member Functions</h2></td></tr>
+<tr class="memitem:a8d65d65453803e731cd9aa112d1f0447"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_wall_entity.html#a8d65d65453803e731cd9aa112d1f0447">updateNeighbours</a> (<a class="el" href="class_game_client.html">GameClient</a> &amp;client)</td></tr>
+<tr class="memdesc:a8d65d65453803e731cd9aa112d1f0447"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate the neighbour id.  <a href="classentities_1_1_wall_entity.html#a8d65d65453803e731cd9aa112d1f0447">More...</a><br /></td></tr>
+<tr class="separator:a8d65d65453803e731cd9aa112d1f0447"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4b6c55275f06a30dac07c2dc5452e602"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classrender_1_1_i_texture.html">render::ITexture</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_wall_entity.html#a4b6c55275f06a30dac07c2dc5452e602">getTexture</a> () override</td></tr>
+<tr class="memdesc:a4b6c55275f06a30dac07c2dc5452e602"><td class="mdescLeft">&#160;</td><td class="mdescRight">the object's texture  <a href="classentities_1_1_wall_entity.html#a4b6c55275f06a30dac07c2dc5452e602">More...</a><br /></td></tr>
+<tr class="separator:a4b6c55275f06a30dac07c2dc5452e602"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afd4863a311190a59cdf7574798ac3f2d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_wall_entity.html#afd4863a311190a59cdf7574798ac3f2d">getHitBoxSize</a> () const override</td></tr>
+<tr class="memdesc:afd4863a311190a59cdf7574798ac3f2d"><td class="mdescLeft">&#160;</td><td class="mdescRight">half hitbox size  <a href="classentities_1_1_wall_entity.html#afd4863a311190a59cdf7574798ac3f2d">More...</a><br /></td></tr>
+<tr class="separator:afd4863a311190a59cdf7574798ac3f2d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_methods_classentities_1_1_entity"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classentities_1_1_entity')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td></tr>
+<tr class="memitem:a94d18db8d502d677b6f4215dc1e1d820 inherit pro_methods_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#a94d18db8d502d677b6f4215dc1e1d820">getCollision</a> (const <a class="el" href="classentities_1_1_entity.html">Entity</a> &amp;other)</td></tr>
+<tr class="memdesc:a94d18db8d502d677b6f4215dc1e1d820 inherit pro_methods_classentities_1_1_entity"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate collision with another <a class="el" href="classentities_1_1_entity.html" title="Every object, what can be on the map.">Entity</a>, how much should this entity move, to avoid the collision.  <a href="classentities_1_1_entity.html#a94d18db8d502d677b6f4215dc1e1d820">More...</a><br /></td></tr>
+<tr class="separator:a94d18db8d502d677b6f4215dc1e1d820 inherit pro_methods_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
+Additional Inherited Members</h2></td></tr>
+<tr class="inherit_header pro_attribs_classentities_1_1_entity"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_classentities_1_1_entity')"><img src="closed.png" alt="-"/>&#160;Protected Attributes inherited from <a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td></tr>
+<tr class="memitem:a04f9c2febe8d435138a07eb2f48ba96b inherit pro_attribs_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#a04f9c2febe8d435138a07eb2f48ba96b">pos</a></td></tr>
+<tr class="memdesc:a04f9c2febe8d435138a07eb2f48ba96b inherit pro_attribs_classentities_1_1_entity"><td class="mdescLeft">&#160;</td><td class="mdescRight">it's position  <a href="classentities_1_1_entity.html#a04f9c2febe8d435138a07eb2f48ba96b">More...</a><br /></td></tr>
+<tr class="separator:a04f9c2febe8d435138a07eb2f48ba96b inherit pro_attribs_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1453bca3376a185aa54135dd4958b244 inherit pro_attribs_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#a1453bca3376a185aa54135dd4958b244">is_initialized</a></td></tr>
+<tr class="memdesc:a1453bca3376a185aa54135dd4958b244 inherit pro_attribs_classentities_1_1_entity"><td class="mdescLeft">&#160;</td><td class="mdescRight">well, is initialized  <a href="classentities_1_1_entity.html#a1453bca3376a185aa54135dd4958b244">More...</a><br /></td></tr>
+<tr class="separator:a1453bca3376a185aa54135dd4958b244 inherit pro_attribs_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aedac7bb35b729e4a02c582b9f4369ab8 inherit pro_attribs_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#aedac7bb35b729e4a02c582b9f4369ab8">is_alive</a></td></tr>
+<tr class="memdesc:aedac7bb35b729e4a02c582b9f4369ab8 inherit pro_attribs_classentities_1_1_entity"><td class="mdescLeft">&#160;</td><td class="mdescRight">true, if it is alive  <a href="classentities_1_1_entity.html#aedac7bb35b729e4a02c582b9f4369ab8">More...</a><br /></td></tr>
+<tr class="separator:aedac7bb35b729e4a02c582b9f4369ab8 inherit pro_attribs_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Just a stupid wall, it doesn't do much, can't be killed... </p>
+
+<p class="definition">Definition at line <a class="el" href="_wall_entity_8h_source.html#l00011">11</a> of file <a class="el" href="_wall_entity_8h_source.html">WallEntity.h</a>.</p>
+</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
+<a id="a109600cce4cd0514d320c14b4f8f4813"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a109600cce4cd0514d320c14b4f8f4813">&#9670;&nbsp;</a></span>WallEntity()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">entities::WallEntity::WallEntity </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>pos</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="classrender_1_1_wall_texture.html">render::WallTexture</a> &amp;&#160;</td>
+          <td class="paramname"><em>texture</em> = <code><a class="el" href="classentities_1_1_wall_entity.html#a73c32014a207a92fc1a837f0dda83eb8">simpleWallTexture</a></code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">explicit</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="_wall_entity_8cpp_source.html#l00040">40</a> of file <a class="el" href="_wall_entity_8cpp_source.html">WallEntity.cpp</a>.</p>
+
+</div>
+</div>
+<h2 class="groupheader">Member Function Documentation</h2>
+<a id="a0cd908003450361a7c08d2c7c83d21dc"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a0cd908003450361a7c08d2c7c83d21dc">&#9670;&nbsp;</a></span>damage()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">bool entities::WallEntity::damage </td>
+          <td>(</td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>damage</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="classentities_1_1_entity.html">Entity</a> &amp;&#160;</td>
+          <td class="paramname"><em>attacker</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>something damage this </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">damage</td><td>how much damage should it take </td></tr>
+    <tr><td class="paramname">attacker</td><td>who deal the damage. not the projectile, the entity </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>did the entity take the damage or no (like a wall) </dd></dl>
+
+<p>Implements <a class="el" href="classentities_1_1_entity.html#af7fc9949fc50b1b31abb36a3d51b0597">entities::Entity</a>.</p>
+
+<p class="definition">Definition at line <a class="el" href="_wall_entity_8cpp_source.html#l00043">43</a> of file <a class="el" href="_wall_entity_8cpp_source.html">WallEntity.cpp</a>.</p>
+
+</div>
+</div>
+<a id="afd4863a311190a59cdf7574798ac3f2d"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#afd4863a311190a59cdf7574798ac3f2d">&#9670;&nbsp;</a></span>getHitBoxSize()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> entities::WallEntity::getHitBoxSize </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td> const</td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>half hitbox size </p>
+<dl class="section return"><dt>Returns</dt><dd>hitbox size as a vector </dd></dl>
+
+<p>Implements <a class="el" href="classentities_1_1_entity.html#a9cd7ba81ddbd978b8f43e9f10e97492f">entities::Entity</a>.</p>
+
+<p class="definition">Definition at line <a class="el" href="_wall_entity_8cpp_source.html#l00030">30</a> of file <a class="el" href="_wall_entity_8cpp_source.html">WallEntity.cpp</a>.</p>
+
+</div>
+</div>
+<a id="af799f9675cdf4acadfcf9d9616d36e1b"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#af799f9675cdf4acadfcf9d9616d36e1b">&#9670;&nbsp;</a></span>getNeighbourID()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">char entities::WallEntity::getNeighbourID </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td> const</td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Accessor for neighbourID. </p>
+<dl class="section return"><dt>Returns</dt><dd>42 </dd></dl>
+
+<p class="definition">Definition at line <a class="el" href="_wall_entity_8cpp_source.html#l00048">48</a> of file <a class="el" href="_wall_entity_8cpp_source.html">WallEntity.cpp</a>.</p>
+
+</div>
+</div>
+<a id="a4b6c55275f06a30dac07c2dc5452e602"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a4b6c55275f06a30dac07c2dc5452e602">&#9670;&nbsp;</a></span>getTexture()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classrender_1_1_i_texture.html">render::ITexture</a> &amp; entities::WallEntity::getTexture </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>the object's texture </p>
+<dl class="section return"><dt>Returns</dt><dd>the texture </dd></dl>
+
+<p>Implements <a class="el" href="classentities_1_1_entity.html#af01b796fb472ef3139aea41aeed36c76">entities::Entity</a>.</p>
+
+<p class="definition">Definition at line <a class="el" href="_wall_entity_8cpp_source.html#l00025">25</a> of file <a class="el" href="_wall_entity_8cpp_source.html">WallEntity.cpp</a>.</p>
+
+</div>
+</div>
+<a id="ad66ed8002d8082035bd3b7df07ff45b5"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ad66ed8002d8082035bd3b7df07ff45b5">&#9670;&nbsp;</a></span>init()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">void entities::WallEntity::init </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="class_game_client.html">GameClient</a> &amp;&#160;</td>
+          <td class="paramname"><em>client</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Init, before tick, used to calculate neighbours. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">client</td><td></td></tr>
+  </table>
+  </dd>
+</dl>
+
+<p>Reimplemented from <a class="el" href="classentities_1_1_entity.html#afd80ddceccb36b87d0d80dcc7f88fc3b">entities::Entity</a>.</p>
+
+<p class="definition">Definition at line <a class="el" href="_wall_entity_8cpp_source.html#l00035">35</a> of file <a class="el" href="_wall_entity_8cpp_source.html">WallEntity.cpp</a>.</p>
+
+</div>
+</div>
+<a id="a8d65d65453803e731cd9aa112d1f0447"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a8d65d65453803e731cd9aa112d1f0447">&#9670;&nbsp;</a></span>updateNeighbours()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">void entities::WallEntity::updateNeighbours </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="class_game_client.html">GameClient</a> &amp;&#160;</td>
+          <td class="paramname"><em>client</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">virtual</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Calculate the neighbour id. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">client</td><td>the cliet </td></tr>
+  </table>
+  </dd>
+</dl>
+
+<p class="definition">Definition at line <a class="el" href="_wall_entity_8cpp_source.html#l00008">8</a> of file <a class="el" href="_wall_entity_8cpp_source.html">WallEntity.cpp</a>.</p>
+
+</div>
+</div>
+<h2 class="groupheader">Member Data Documentation</h2>
+<a id="a3006e4856a24086bdd28b7b353b159ff"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a3006e4856a24086bdd28b7b353b159ff">&#9670;&nbsp;</a></span>simpleGreenWallTexture</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classrender_1_1_wall_texture.html">render::WallTexture</a> entities::WallEntity::simpleGreenWallTexture</td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="_wall_entity_8h_source.html#l00015">15</a> of file <a class="el" href="_wall_entity_8h_source.html">WallEntity.h</a>.</p>
+
+</div>
+</div>
+<a id="a73c32014a207a92fc1a837f0dda83eb8"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a73c32014a207a92fc1a837f0dda83eb8">&#9670;&nbsp;</a></span>simpleWallTexture</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classrender_1_1_wall_texture.html">render::WallTexture</a> entities::WallEntity::simpleWallTexture</td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="_wall_entity_8h_source.html#l00014">14</a> of file <a class="el" href="_wall_entity_8h_source.html">WallEntity.h</a>.</p>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following files:<ul>
+<li>C:/Users/kosmx/Documents/GitHub/2d-game/<a class="el" href="_wall_entity_8h_source.html">WallEntity.h</a></li>
+<li>C:/Users/kosmx/Documents/GitHub/2d-game/<a class="el" href="_wall_entity_8cpp_source.html">WallEntity.cpp</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/classentities_1_1_wall_entity.png b/doxy/html/classentities_1_1_wall_entity.png
new file mode 100644
index 0000000000000000000000000000000000000000..e7b1755dc5df6f32f1aa5458536717347d753d68
Binary files /dev/null and b/doxy/html/classentities_1_1_wall_entity.png differ
diff --git a/doxy/html/classes.html b/doxy/html/classes.html
new file mode 100644
index 0000000000000000000000000000000000000000..01cc1863c321efc12ddf3e5fec08b6fe33c2ce39
--- /dev/null
+++ b/doxy/html/classes.html
@@ -0,0 +1,175 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: Class Index</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="headertitle">
+<div class="title">Class Index</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="qindex"><a class="qindex" href="#letter_c">c</a>&#160;|&#160;<a class="qindex" href="#letter_d">d</a>&#160;|&#160;<a class="qindex" href="#letter_e">e</a>&#160;|&#160;<a class="qindex" href="#letter_g">g</a>&#160;|&#160;<a class="qindex" href="#letter_h">h</a>&#160;|&#160;<a class="qindex" href="#letter_i">i</a>&#160;|&#160;<a class="qindex" href="#letter_l">l</a>&#160;|&#160;<a class="qindex" href="#letter_m">m</a>&#160;|&#160;<a class="qindex" href="#letter_p">p</a>&#160;|&#160;<a class="qindex" href="#letter_r">r</a>&#160;|&#160;<a class="qindex" href="#letter_s">s</a>&#160;|&#160;<a class="qindex" href="#letter_t">t</a>&#160;|&#160;<a class="qindex" href="#letter_v">v</a>&#160;|&#160;<a class="qindex" href="#letter_w">w</a></div>
+<table class="classindex">
+<tr><td rowspan="2" valign="bottom"><a name="letter_c"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;c&#160;&#160;</div></td></tr></table>
+</td>
+<td valign="top"><a class="el" href="classentities_1_1_explosive_projectile.html">ExplosiveProjectile</a> (<a class="el" href="namespaceentities.html">entities</a>)&#160;&#160;&#160;</td>
+<td valign="top"><a class="el" href="classrender_1_1_lazy_sprite.html">LazySprite</a> (<a class="el" href="namespacerender.html">render</a>)&#160;&#160;&#160;</td>
+<td valign="top"><a class="el" href="classolc_1_1_renderable.html">Renderable</a> (<a class="el" href="namespaceolc.html">olc</a>)&#160;&#160;&#160;</td>
+<td valign="top"><a class="el" href="classolc_1_1_transformed_view.html">TransformedView</a> (<a class="el" href="namespaceolc.html">olc</a>)&#160;&#160;&#160;</td>
+</tr>
+<tr><td rowspan="2" valign="bottom"><a name="letter_g"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;g&#160;&#160;</div></td></tr></table>
+</td>
+<td valign="top"><a class="el" href="classentities_1_1_living_entity.html">LivingEntity</a> (<a class="el" href="namespaceentities.html">entities</a>)&#160;&#160;&#160;</td>
+<td valign="top"><a class="el" href="classolc_1_1_renderer.html">Renderer</a> (<a class="el" href="namespaceolc.html">olc</a>)&#160;&#160;&#160;</td>
+<td valign="top"><a class="el" href="classweapons_1_1_typical_melee_weapon.html">TypicalMeleeWeapon</a> (<a class="el" href="namespaceweapons.html">weapons</a>)&#160;&#160;&#160;</td>
+</tr>
+<tr><td valign="top"><a class="el" href="classentities_1_1_character_entity.html">CharacterEntity</a> (<a class="el" href="namespaceentities.html">entities</a>)&#160;&#160;&#160;</td>
+<td rowspan="2" valign="bottom"><a name="letter_m"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;m&#160;&#160;</div></td></tr></table>
+</td>
+<td valign="top"><a class="el" href="class_render_exception.html">RenderException</a>&#160;&#160;&#160;</td>
+<td rowspan="2" valign="bottom"><a name="letter_v"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;v&#160;&#160;</div></td></tr></table>
+</td>
+</tr>
+<tr><td valign="top"><a class="el" href="classrender_1_1_character_texture.html">CharacterTexture</a> (<a class="el" href="namespacerender.html">render</a>)&#160;&#160;&#160;</td>
+<td valign="top"><a class="el" href="class_game_client.html">GameClient</a>&#160;&#160;&#160;</td>
+<td valign="top"><a class="el" href="structolc_1_1_resource_buffer.html">ResourceBuffer</a> (<a class="el" href="namespaceolc.html">olc</a>)&#160;&#160;&#160;</td>
+</tr>
+<tr><td rowspan="2" valign="bottom"><a name="letter_d"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;d&#160;&#160;</div></td></tr></table>
+</td>
+<td valign="top"><a class="el" href="class_game_exception.html">GameException</a>&#160;&#160;&#160;</td>
+<td valign="top"><a class="el" href="classweapons_1_1_melee_weapon.html">MeleeWeapon</a> (<a class="el" href="namespaceweapons.html">weapons</a>)&#160;&#160;&#160;</td>
+<td valign="top"><a class="el" href="classrender_1_1_resource_manager.html">ResourceManager</a> (<a class="el" href="namespacerender.html">render</a>)&#160;&#160;&#160;</td>
+<td valign="top"><a class="el" href="structolc_1_1v2d__generic.html">v2d_generic</a> (<a class="el" href="namespaceolc.html">olc</a>)&#160;&#160;&#160;</td>
+</tr>
+<tr><td valign="top"><a class="el" href="classweapons_1_1_glitch_gun.html">GlitchGun</a> (<a class="el" href="namespaceweapons.html">weapons</a>)&#160;&#160;&#160;</td>
+<td rowspan="2" valign="bottom"><a name="letter_p"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;p&#160;&#160;</div></td></tr></table>
+</td>
+<td valign="top"><a class="el" href="classolc_1_1_resource_pack.html">ResourcePack</a> (<a class="el" href="namespaceolc.html">olc</a>)&#160;&#160;&#160;</td>
+<td rowspan="2" valign="bottom"><a name="letter_w"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;w&#160;&#160;</div></td></tr></table>
+</td>
+</tr>
+<tr><td valign="top"><a class="el" href="classolc_1_1_decal.html">Decal</a> (<a class="el" href="namespaceolc.html">olc</a>)&#160;&#160;&#160;</td>
+<td valign="top"><a class="el" href="classweapons_1_1_glitch_texture.html">GlitchTexture</a> (<a class="el" href="namespaceweapons.html">weapons</a>)&#160;&#160;&#160;</td>
+<td rowspan="2" valign="bottom"><a name="letter_s"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;s&#160;&#160;</div></td></tr></table>
+</td>
+</tr>
+<tr><td valign="top"><a class="el" href="structolc_1_1_decal_instance.html">DecalInstance</a> (<a class="el" href="namespaceolc.html">olc</a>)&#160;&#160;&#160;</td>
+<td rowspan="2" valign="bottom"><a name="letter_h"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;h&#160;&#160;</div></td></tr></table>
+</td>
+<td valign="top"><a class="el" href="classolc_1_1_p_g_e_x.html">PGEX</a> (<a class="el" href="namespaceolc.html">olc</a>)&#160;&#160;&#160;</td>
+<td valign="top"><a class="el" href="classentities_1_1_wall_entity.html">WallEntity</a> (<a class="el" href="namespaceentities.html">entities</a>)&#160;&#160;&#160;</td>
+</tr>
+<tr><td valign="top"><a class="el" href="classentities_1_1_dummy_entity.html">DummyEntity</a> (<a class="el" href="namespaceentities.html">entities</a>)&#160;&#160;&#160;</td>
+<td valign="top"><a class="el" href="classweapons_1_1_pistol.html">Pistol</a> (<a class="el" href="namespaceweapons.html">weapons</a>)&#160;&#160;&#160;</td>
+<td valign="top"><a class="el" href="classrender_1_1_simple_sprite.html">SimpleSprite</a> (<a class="el" href="namespacerender.html">render</a>)&#160;&#160;&#160;</td>
+<td valign="top"><a class="el" href="classrender_1_1_wall_texture.html">WallTexture</a> (<a class="el" href="namespacerender.html">render</a>)&#160;&#160;&#160;</td>
+</tr>
+<tr><td valign="top"><a class="el" href="class_dungeon_generator.html">DungeonGenerator</a>&#160;&#160;&#160;</td>
+<td valign="top"><a class="el" href="structolc_1_1_h_w_button.html">HWButton</a> (<a class="el" href="namespaceolc.html">olc</a>)&#160;&#160;&#160;</td>
+<td valign="top"><a class="el" href="structolc_1_1_pixel.html">Pixel</a> (<a class="el" href="namespaceolc.html">olc</a>)&#160;&#160;&#160;</td>
+<td valign="top"><a class="el" href="classolc_1_1_sprite.html">Sprite</a> (<a class="el" href="namespaceolc.html">olc</a>)&#160;&#160;&#160;</td>
+<td valign="top"><a class="el" href="classweapons_1_1_weapon.html">Weapon</a> (<a class="el" href="namespaceweapons.html">weapons</a>)&#160;&#160;&#160;</td>
+</tr>
+<tr><td valign="top"><a class="el" href="class_dynamic_array.html">DynamicArray</a>&#160;&#160;&#160;</td>
+<td rowspan="2" valign="bottom"><a name="letter_i"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;i&#160;&#160;</div></td></tr></table>
+</td>
+<td valign="top"><a class="el" href="classolc_1_1_pixel_game_engine.html">PixelGameEngine</a> (<a class="el" href="namespaceolc.html">olc</a>)&#160;&#160;&#160;</td>
+<td valign="top"><a class="el" href="classrender_1_1_sprite_manager.html">SpriteManager</a> (<a class="el" href="namespacerender.html">render</a>)&#160;&#160;&#160;</td>
+<td></td></tr>
+<tr><td rowspan="2" valign="bottom"><a name="letter_e"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;e&#160;&#160;</div></td></tr></table>
+</td>
+<td valign="top"><a class="el" href="classolc_1_1_platform.html">Platform</a> (<a class="el" href="namespaceolc.html">olc</a>)&#160;&#160;&#160;</td>
+<td valign="top"><a class="el" href="class_square_room_generator.html">SquareRoomGenerator</a>&#160;&#160;&#160;</td>
+<td></td></tr>
+<tr><td valign="top"><a class="el" href="classolc_1_1_image_loader.html">ImageLoader</a> (<a class="el" href="namespaceolc.html">olc</a>)&#160;&#160;&#160;</td>
+<td valign="top"><a class="el" href="classentities_1_1_player_entity.html">PlayerEntity</a> (<a class="el" href="namespaceentities.html">entities</a>)&#160;&#160;&#160;</td>
+<td rowspan="2" valign="bottom"><a name="letter_t"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;t&#160;&#160;</div></td></tr></table>
+</td>
+<td></td></tr>
+<tr><td valign="top"><a class="el" href="classweapons_1_1_e_m_gun.html">EMGun</a> (<a class="el" href="namespaceweapons.html">weapons</a>)&#160;&#160;&#160;</td>
+<td valign="top"><a class="el" href="classrender_1_1_i_texture.html">ITexture</a> (<a class="el" href="namespacerender.html">render</a>)&#160;&#160;&#160;</td>
+<td valign="top"><a class="el" href="classweapons_1_1_melee_weapon_1_1predicate_distance.html">MeleeWeapon::predicateDistance</a> (<a class="el" href="namespaceweapons.html">weapons</a>)&#160;&#160;&#160;</td>
+<td></td></tr>
+<tr><td valign="top"><a class="el" href="classentities_1_1_entity.html">Entity</a> (<a class="el" href="namespaceentities.html">entities</a>)&#160;&#160;&#160;</td>
+<td rowspan="2" valign="bottom"><a name="letter_l"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;l&#160;&#160;</div></td></tr></table>
+</td>
+<td valign="top"><a class="el" href="classentities_1_1_projectile_entity.html">ProjectileEntity</a> (<a class="el" href="namespaceentities.html">entities</a>)&#160;&#160;&#160;</td>
+<td valign="top"><a class="el" href="class_test_generator.html">TestGenerator</a>&#160;&#160;&#160;</td>
+<td></td></tr>
+<tr><td valign="top"><a class="el" href="classentities_1_1_entity_with_a_i.html">EntityWithAI</a> (<a class="el" href="namespaceentities.html">entities</a>)&#160;&#160;&#160;</td>
+<td rowspan="2" valign="bottom"><a name="letter_r"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;r&#160;&#160;</div></td></tr></table>
+</td>
+<td valign="top"><a class="el" href="classolc_1_1_tile_transformed_view.html">TileTransformedView</a> (<a class="el" href="namespaceolc.html">olc</a>)&#160;&#160;&#160;</td>
+<td></td></tr>
+<tr><td></td><td valign="top"><a class="el" href="structolc_1_1_layer_desc.html">LayerDesc</a> (<a class="el" href="namespaceolc.html">olc</a>)&#160;&#160;&#160;</td>
+<td></td><td></td></tr>
+<tr><td></td><td></td><td valign="top"><a class="el" href="classweapons_1_1_ranged_weapon.html">RangedWeapon</a> (<a class="el" href="namespaceweapons.html">weapons</a>)&#160;&#160;&#160;</td>
+<td></td><td></td></tr>
+<tr><td></td><td></td><td></td><td></td><td></td></tr>
+</table>
+<div class="qindex"><a class="qindex" href="#letter_c">c</a>&#160;|&#160;<a class="qindex" href="#letter_d">d</a>&#160;|&#160;<a class="qindex" href="#letter_e">e</a>&#160;|&#160;<a class="qindex" href="#letter_g">g</a>&#160;|&#160;<a class="qindex" href="#letter_h">h</a>&#160;|&#160;<a class="qindex" href="#letter_i">i</a>&#160;|&#160;<a class="qindex" href="#letter_l">l</a>&#160;|&#160;<a class="qindex" href="#letter_m">m</a>&#160;|&#160;<a class="qindex" href="#letter_p">p</a>&#160;|&#160;<a class="qindex" href="#letter_r">r</a>&#160;|&#160;<a class="qindex" href="#letter_s">s</a>&#160;|&#160;<a class="qindex" href="#letter_t">t</a>&#160;|&#160;<a class="qindex" href="#letter_v">v</a>&#160;|&#160;<a class="qindex" href="#letter_w">w</a></div>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/classolc_1_1_decal-members.html b/doxy/html/classolc_1_1_decal-members.html
new file mode 100644
index 0000000000000000000000000000000000000000..fe74278a5a25dc9000411f93b7730d586be5ebb3
--- /dev/null
+++ b/doxy/html/classolc_1_1_decal-members.html
@@ -0,0 +1,90 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="namespaceolc.html">olc</a></li><li class="navelem"><a class="el" href="classolc_1_1_decal.html">Decal</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">olc::Decal Member List</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="classolc_1_1_decal.html">olc::Decal</a>, including all inherited members.</p>
+<table class="directory">
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_decal.html#a5479fee995f05355026dafd8cadcac88">Decal</a>(olc::Sprite *spr, bool filter=false, bool clamp=true)</td><td class="entry"><a class="el" href="classolc_1_1_decal.html">olc::Decal</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_decal.html#ade1e337e839cd254603e4d061c219cc5">Decal</a>(const uint32_t nExistingTextureResource, olc::Sprite *spr)</td><td class="entry"><a class="el" href="classolc_1_1_decal.html">olc::Decal</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_decal.html#a7cc798e0327ea4118c648b10e2d57986">id</a></td><td class="entry"><a class="el" href="classolc_1_1_decal.html">olc::Decal</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_decal.html#a93a1e2ae28aa587978e2a66b6328d66a">sprite</a></td><td class="entry"><a class="el" href="classolc_1_1_decal.html">olc::Decal</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_decal.html#aac5ad6844f98fb3a8bce2f36adf02429">Update</a>()</td><td class="entry"><a class="el" href="classolc_1_1_decal.html">olc::Decal</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_decal.html#a4a3b893edbce4d416453f57c11754092">UpdateSprite</a>()</td><td class="entry"><a class="el" href="classolc_1_1_decal.html">olc::Decal</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_decal.html#aff06190e3ca17446d373d5a93a3636c7">vUVScale</a></td><td class="entry"><a class="el" href="classolc_1_1_decal.html">olc::Decal</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_decal.html#a5c993dab5be43270dce30b44f1d3e50b">~Decal</a>()</td><td class="entry"><a class="el" href="classolc_1_1_decal.html">olc::Decal</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+</table></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/classolc_1_1_decal.html b/doxy/html/classolc_1_1_decal.html
new file mode 100644
index 0000000000000000000000000000000000000000..7de124982fe5554d4182a3b7fa5584476bb55b04
--- /dev/null
+++ b/doxy/html/classolc_1_1_decal.html
@@ -0,0 +1,286 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: olc::Decal Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="namespaceolc.html">olc</a></li><li class="navelem"><a class="el" href="classolc_1_1_decal.html">Decal</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="#pub-attribs">Public Attributes</a> &#124;
+<a href="classolc_1_1_decal-members.html">List of all members</a>  </div>
+  <div class="headertitle">
+<div class="title">olc::Decal Class Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p><code>#include &lt;<a class="el" href="olc_pixel_game_engine_8h_source.html">olcPixelGameEngine.h</a>&gt;</code></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr class="memitem:a5479fee995f05355026dafd8cadcac88"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_decal.html#a5479fee995f05355026dafd8cadcac88">Decal</a> (<a class="el" href="classolc_1_1_sprite.html">olc::Sprite</a> *spr, bool filter=false, bool clamp=true)</td></tr>
+<tr class="separator:a5479fee995f05355026dafd8cadcac88"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ade1e337e839cd254603e4d061c219cc5"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_decal.html#ade1e337e839cd254603e4d061c219cc5">Decal</a> (const uint32_t nExistingTextureResource, <a class="el" href="classolc_1_1_sprite.html">olc::Sprite</a> *spr)</td></tr>
+<tr class="separator:ade1e337e839cd254603e4d061c219cc5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5c993dab5be43270dce30b44f1d3e50b"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_decal.html#a5c993dab5be43270dce30b44f1d3e50b">~Decal</a> ()</td></tr>
+<tr class="separator:a5c993dab5be43270dce30b44f1d3e50b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aac5ad6844f98fb3a8bce2f36adf02429"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_decal.html#aac5ad6844f98fb3a8bce2f36adf02429">Update</a> ()</td></tr>
+<tr class="separator:aac5ad6844f98fb3a8bce2f36adf02429"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4a3b893edbce4d416453f57c11754092"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_decal.html#a4a3b893edbce4d416453f57c11754092">UpdateSprite</a> ()</td></tr>
+<tr class="separator:a4a3b893edbce4d416453f57c11754092"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+Public Attributes</h2></td></tr>
+<tr class="memitem:a7cc798e0327ea4118c648b10e2d57986"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_decal.html#a7cc798e0327ea4118c648b10e2d57986">id</a> = -1</td></tr>
+<tr class="separator:a7cc798e0327ea4118c648b10e2d57986"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a93a1e2ae28aa587978e2a66b6328d66a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classolc_1_1_sprite.html">olc::Sprite</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_decal.html#a93a1e2ae28aa587978e2a66b6328d66a">sprite</a> = nullptr</td></tr>
+<tr class="separator:a93a1e2ae28aa587978e2a66b6328d66a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aff06190e3ca17446d373d5a93a3636c7"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_decal.html#aff06190e3ca17446d373d5a93a3636c7">vUVScale</a> = { 1.0f, 1.0f }</td></tr>
+<tr class="separator:aff06190e3ca17446d373d5a93a3636c7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock">
+<p class="definition">Definition at line <a class="el" href="olc_pixel_game_engine_8h_source.html#l00736">736</a> of file <a class="el" href="olc_pixel_game_engine_8h_source.html">olcPixelGameEngine.h</a>.</p>
+</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
+<a id="a5479fee995f05355026dafd8cadcac88"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a5479fee995f05355026dafd8cadcac88">&#9670;&nbsp;</a></span>Decal() <span class="overload">[1/2]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">olc::Decal::Decal </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="classolc_1_1_sprite.html">olc::Sprite</a> *&#160;</td>
+          <td class="paramname"><em>spr</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">bool&#160;</td>
+          <td class="paramname"><em>filter</em> = <code>false</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">bool&#160;</td>
+          <td class="paramname"><em>clamp</em> = <code>true</code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="ade1e337e839cd254603e4d061c219cc5"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ade1e337e839cd254603e4d061c219cc5">&#9670;&nbsp;</a></span>Decal() <span class="overload">[2/2]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">olc::Decal::Decal </td>
+          <td>(</td>
+          <td class="paramtype">const uint32_t&#160;</td>
+          <td class="paramname"><em>nExistingTextureResource</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="classolc_1_1_sprite.html">olc::Sprite</a> *&#160;</td>
+          <td class="paramname"><em>spr</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a5c993dab5be43270dce30b44f1d3e50b"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a5c993dab5be43270dce30b44f1d3e50b">&#9670;&nbsp;</a></span>~Decal()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">virtual olc::Decal::~Decal </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<h2 class="groupheader">Member Function Documentation</h2>
+<a id="aac5ad6844f98fb3a8bce2f36adf02429"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aac5ad6844f98fb3a8bce2f36adf02429">&#9670;&nbsp;</a></span>Update()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void olc::Decal::Update </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a4a3b893edbce4d416453f57c11754092"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a4a3b893edbce4d416453f57c11754092">&#9670;&nbsp;</a></span>UpdateSprite()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void olc::Decal::UpdateSprite </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<h2 class="groupheader">Member Data Documentation</h2>
+<a id="a7cc798e0327ea4118c648b10e2d57986"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a7cc798e0327ea4118c648b10e2d57986">&#9670;&nbsp;</a></span>id</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int32_t olc::Decal::id = -1</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="olc_pixel_game_engine_8h_source.html#l00746">746</a> of file <a class="el" href="olc_pixel_game_engine_8h_source.html">olcPixelGameEngine.h</a>.</p>
+
+</div>
+</div>
+<a id="a93a1e2ae28aa587978e2a66b6328d66a"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a93a1e2ae28aa587978e2a66b6328d66a">&#9670;&nbsp;</a></span>sprite</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classolc_1_1_sprite.html">olc::Sprite</a>* olc::Decal::sprite = nullptr</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="olc_pixel_game_engine_8h_source.html#l00747">747</a> of file <a class="el" href="olc_pixel_game_engine_8h_source.html">olcPixelGameEngine.h</a>.</p>
+
+</div>
+</div>
+<a id="aff06190e3ca17446d373d5a93a3636c7"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aff06190e3ca17446d373d5a93a3636c7">&#9670;&nbsp;</a></span>vUVScale</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> olc::Decal::vUVScale = { 1.0f, 1.0f }</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="olc_pixel_game_engine_8h_source.html#l00748">748</a> of file <a class="el" href="olc_pixel_game_engine_8h_source.html">olcPixelGameEngine.h</a>.</p>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li>C:/Users/kosmx/Documents/GitHub/2d-game/<a class="el" href="olc_pixel_game_engine_8h_source.html">olcPixelGameEngine.h</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/classolc_1_1_image_loader-members.html b/doxy/html/classolc_1_1_image_loader-members.html
new file mode 100644
index 0000000000000000000000000000000000000000..895c89b6fa4eff9f05e2aa14ec5246f5b6317dec
--- /dev/null
+++ b/doxy/html/classolc_1_1_image_loader-members.html
@@ -0,0 +1,86 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="namespaceolc.html">olc</a></li><li class="navelem"><a class="el" href="classolc_1_1_image_loader.html">ImageLoader</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">olc::ImageLoader Member List</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="classolc_1_1_image_loader.html">olc::ImageLoader</a>, including all inherited members.</p>
+<table class="directory">
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_image_loader.html#a7aa358a572ec995b530ca5b54829f044">ImageLoader</a>()=default</td><td class="entry"><a class="el" href="classolc_1_1_image_loader.html">olc::ImageLoader</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_image_loader.html#ac08c7387037c748a38598b6442974d81">LoadImageResource</a>(olc::Sprite *spr, const std::string &amp;sImageFile, olc::ResourcePack *pack)=0</td><td class="entry"><a class="el" href="classolc_1_1_image_loader.html">olc::ImageLoader</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_image_loader.html#addedde73c3a76c668a2954db36695f08">SaveImageResource</a>(olc::Sprite *spr, const std::string &amp;sImageFile)=0</td><td class="entry"><a class="el" href="classolc_1_1_image_loader.html">olc::ImageLoader</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_image_loader.html#a680c0395200ceab209fb96c21cd8b883">~ImageLoader</a>()=default</td><td class="entry"><a class="el" href="classolc_1_1_image_loader.html">olc::ImageLoader</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+</table></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/classolc_1_1_image_loader.html b/doxy/html/classolc_1_1_image_loader.html
new file mode 100644
index 0000000000000000000000000000000000000000..b48cab4500dbad2e4dd884efca97bda6a9ac5cf2
--- /dev/null
+++ b/doxy/html/classolc_1_1_image_loader.html
@@ -0,0 +1,232 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: olc::ImageLoader Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="namespaceolc.html">olc</a></li><li class="navelem"><a class="el" href="classolc_1_1_image_loader.html">ImageLoader</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="classolc_1_1_image_loader-members.html">List of all members</a>  </div>
+  <div class="headertitle">
+<div class="title">olc::ImageLoader Class Reference<span class="mlabels"><span class="mlabel">abstract</span></span></div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p><code>#include &lt;<a class="el" href="olc_pixel_game_engine_8h_source.html">olcPixelGameEngine.h</a>&gt;</code></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr class="memitem:a7aa358a572ec995b530ca5b54829f044"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_image_loader.html#a7aa358a572ec995b530ca5b54829f044">ImageLoader</a> ()=default</td></tr>
+<tr class="separator:a7aa358a572ec995b530ca5b54829f044"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a680c0395200ceab209fb96c21cd8b883"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_image_loader.html#a680c0395200ceab209fb96c21cd8b883">~ImageLoader</a> ()=default</td></tr>
+<tr class="separator:a680c0395200ceab209fb96c21cd8b883"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac08c7387037c748a38598b6442974d81"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87b">olc::rcode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_image_loader.html#ac08c7387037c748a38598b6442974d81">LoadImageResource</a> (<a class="el" href="classolc_1_1_sprite.html">olc::Sprite</a> *spr, const std::string &amp;sImageFile, <a class="el" href="classolc_1_1_resource_pack.html">olc::ResourcePack</a> *pack)=0</td></tr>
+<tr class="separator:ac08c7387037c748a38598b6442974d81"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:addedde73c3a76c668a2954db36695f08"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87b">olc::rcode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_image_loader.html#addedde73c3a76c668a2954db36695f08">SaveImageResource</a> (<a class="el" href="classolc_1_1_sprite.html">olc::Sprite</a> *spr, const std::string &amp;sImageFile)=0</td></tr>
+<tr class="separator:addedde73c3a76c668a2954db36695f08"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock">
+<p class="definition">Definition at line <a class="el" href="olc_pixel_game_engine_8h_source.html#l00683">683</a> of file <a class="el" href="olc_pixel_game_engine_8h_source.html">olcPixelGameEngine.h</a>.</p>
+</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
+<a id="a7aa358a572ec995b530ca5b54829f044"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a7aa358a572ec995b530ca5b54829f044">&#9670;&nbsp;</a></span>ImageLoader()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">olc::ImageLoader::ImageLoader </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">default</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a680c0395200ceab209fb96c21cd8b883"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a680c0395200ceab209fb96c21cd8b883">&#9670;&nbsp;</a></span>~ImageLoader()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">virtual olc::ImageLoader::~ImageLoader </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">virtual</span><span class="mlabel">default</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<h2 class="groupheader">Member Function Documentation</h2>
+<a id="ac08c7387037c748a38598b6442974d81"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ac08c7387037c748a38598b6442974d81">&#9670;&nbsp;</a></span>LoadImageResource()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">virtual <a class="el" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87b">olc::rcode</a> olc::ImageLoader::LoadImageResource </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="classolc_1_1_sprite.html">olc::Sprite</a> *&#160;</td>
+          <td class="paramname"><em>spr</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const std::string &amp;&#160;</td>
+          <td class="paramname"><em>sImageFile</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="classolc_1_1_resource_pack.html">olc::ResourcePack</a> *&#160;</td>
+          <td class="paramname"><em>pack</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="addedde73c3a76c668a2954db36695f08"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#addedde73c3a76c668a2954db36695f08">&#9670;&nbsp;</a></span>SaveImageResource()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">virtual <a class="el" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87b">olc::rcode</a> olc::ImageLoader::SaveImageResource </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="classolc_1_1_sprite.html">olc::Sprite</a> *&#160;</td>
+          <td class="paramname"><em>spr</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const std::string &amp;&#160;</td>
+          <td class="paramname"><em>sImageFile</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li>C:/Users/kosmx/Documents/GitHub/2d-game/<a class="el" href="olc_pixel_game_engine_8h_source.html">olcPixelGameEngine.h</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/classolc_1_1_p_g_e_x-members.html b/doxy/html/classolc_1_1_p_g_e_x-members.html
new file mode 100644
index 0000000000000000000000000000000000000000..a251d2c5cc44d3d10a5ee7fa1f73984d553765aa
--- /dev/null
+++ b/doxy/html/classolc_1_1_p_g_e_x-members.html
@@ -0,0 +1,89 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="namespaceolc.html">olc</a></li><li class="navelem"><a class="el" href="classolc_1_1_p_g_e_x.html">PGEX</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">olc::PGEX Member List</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="classolc_1_1_p_g_e_x.html">olc::PGEX</a>, including all inherited members.</p>
+<table class="directory">
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_p_g_e_x.html#a3770265094ef2f9700ae97b8ee0fe282">olc::PixelGameEngine</a> class</td><td class="entry"><a class="el" href="classolc_1_1_p_g_e_x.html">olc::PGEX</a></td><td class="entry"><span class="mlabel">friend</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_p_g_e_x.html#a2a57a711518202708d2b0e586058348f">OnAfterUserCreate</a>()</td><td class="entry"><a class="el" href="classolc_1_1_p_g_e_x.html">olc::PGEX</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_p_g_e_x.html#a4d2dd7d685fb1c7d00d97aa15e3376b4">OnAfterUserUpdate</a>(float fElapsedTime)</td><td class="entry"><a class="el" href="classolc_1_1_p_g_e_x.html">olc::PGEX</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_p_g_e_x.html#a69c65b5d3a56f9a247e1bf15fd2e4035">OnBeforeUserCreate</a>()</td><td class="entry"><a class="el" href="classolc_1_1_p_g_e_x.html">olc::PGEX</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_p_g_e_x.html#a2573df22f1637314b976811714dea3fb">OnBeforeUserUpdate</a>(float &amp;fElapsedTime)</td><td class="entry"><a class="el" href="classolc_1_1_p_g_e_x.html">olc::PGEX</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_p_g_e_x.html#a032efdb84150a7cdd3cc9248860df316">pge</a></td><td class="entry"><a class="el" href="classolc_1_1_p_g_e_x.html">olc::PGEX</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">static</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_p_g_e_x.html#aae9dbde2ad7341482b9f911f23678d75">PGEX</a>(bool bHook=false)</td><td class="entry"><a class="el" href="classolc_1_1_p_g_e_x.html">olc::PGEX</a></td><td class="entry"></td></tr>
+</table></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/classolc_1_1_p_g_e_x.html b/doxy/html/classolc_1_1_p_g_e_x.html
new file mode 100644
index 0000000000000000000000000000000000000000..edd20915c94fdbe070c27443d12249f221c0789b
--- /dev/null
+++ b/doxy/html/classolc_1_1_p_g_e_x.html
@@ -0,0 +1,302 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: olc::PGEX Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="namespaceolc.html">olc</a></li><li class="navelem"><a class="el" href="classolc_1_1_p_g_e_x.html">PGEX</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="#pro-methods">Protected Member Functions</a> &#124;
+<a href="#pro-static-attribs">Static Protected Attributes</a> &#124;
+<a href="#friends">Friends</a> &#124;
+<a href="classolc_1_1_p_g_e_x-members.html">List of all members</a>  </div>
+  <div class="headertitle">
+<div class="title">olc::PGEX Class Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p><code>#include &lt;<a class="el" href="olc_pixel_game_engine_8h_source.html">olcPixelGameEngine.h</a>&gt;</code></p>
+<div class="dynheader">
+Inheritance diagram for olc::PGEX:</div>
+<div class="dyncontent">
+ <div class="center">
+  <img src="classolc_1_1_p_g_e_x.png" usemap="#olc::PGEX_map" alt=""/>
+  <map id="olc::PGEX_map" name="olc::PGEX_map">
+<area href="classolc_1_1_transformed_view.html" alt="olc::TransformedView" shape="rect" coords="0,56,154,80"/>
+<area href="classolc_1_1_tile_transformed_view.html" alt="olc::TileTransformedView" shape="rect" coords="0,112,154,136"/>
+  </map>
+</div></div>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr class="memitem:aae9dbde2ad7341482b9f911f23678d75"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_p_g_e_x.html#aae9dbde2ad7341482b9f911f23678d75">PGEX</a> (bool bHook=false)</td></tr>
+<tr class="separator:aae9dbde2ad7341482b9f911f23678d75"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
+Protected Member Functions</h2></td></tr>
+<tr class="memitem:a69c65b5d3a56f9a247e1bf15fd2e4035"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_p_g_e_x.html#a69c65b5d3a56f9a247e1bf15fd2e4035">OnBeforeUserCreate</a> ()</td></tr>
+<tr class="separator:a69c65b5d3a56f9a247e1bf15fd2e4035"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2a57a711518202708d2b0e586058348f"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_p_g_e_x.html#a2a57a711518202708d2b0e586058348f">OnAfterUserCreate</a> ()</td></tr>
+<tr class="separator:a2a57a711518202708d2b0e586058348f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2573df22f1637314b976811714dea3fb"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_p_g_e_x.html#a2573df22f1637314b976811714dea3fb">OnBeforeUserUpdate</a> (float &amp;fElapsedTime)</td></tr>
+<tr class="separator:a2573df22f1637314b976811714dea3fb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4d2dd7d685fb1c7d00d97aa15e3376b4"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_p_g_e_x.html#a4d2dd7d685fb1c7d00d97aa15e3376b4">OnAfterUserUpdate</a> (float fElapsedTime)</td></tr>
+<tr class="separator:a4d2dd7d685fb1c7d00d97aa15e3376b4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-static-attribs"></a>
+Static Protected Attributes</h2></td></tr>
+<tr class="memitem:a032efdb84150a7cdd3cc9248860df316"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classolc_1_1_pixel_game_engine.html">PixelGameEngine</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_p_g_e_x.html#a032efdb84150a7cdd3cc9248860df316">pge</a></td></tr>
+<tr class="separator:a032efdb84150a7cdd3cc9248860df316"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="friends"></a>
+Friends</h2></td></tr>
+<tr class="memitem:a3770265094ef2f9700ae97b8ee0fe282"><td class="memItemLeft" align="right" valign="top">class&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_p_g_e_x.html#a3770265094ef2f9700ae97b8ee0fe282">olc::PixelGameEngine</a></td></tr>
+<tr class="separator:a3770265094ef2f9700ae97b8ee0fe282"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock">
+<p class="definition">Definition at line <a class="el" href="olc_pixel_game_engine_8h_source.html#l01118">1118</a> of file <a class="el" href="olc_pixel_game_engine_8h_source.html">olcPixelGameEngine.h</a>.</p>
+</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
+<a id="aae9dbde2ad7341482b9f911f23678d75"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aae9dbde2ad7341482b9f911f23678d75">&#9670;&nbsp;</a></span>PGEX()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">olc::PGEX::PGEX </td>
+          <td>(</td>
+          <td class="paramtype">bool&#160;</td>
+          <td class="paramname"><em>bHook</em> = <code>false</code></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<h2 class="groupheader">Member Function Documentation</h2>
+<a id="a2a57a711518202708d2b0e586058348f"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a2a57a711518202708d2b0e586058348f">&#9670;&nbsp;</a></span>OnAfterUserCreate()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">virtual void olc::PGEX::OnAfterUserCreate </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">virtual</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a4d2dd7d685fb1c7d00d97aa15e3376b4"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a4d2dd7d685fb1c7d00d97aa15e3376b4">&#9670;&nbsp;</a></span>OnAfterUserUpdate()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">virtual void olc::PGEX::OnAfterUserUpdate </td>
+          <td>(</td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>fElapsedTime</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">virtual</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a69c65b5d3a56f9a247e1bf15fd2e4035"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a69c65b5d3a56f9a247e1bf15fd2e4035">&#9670;&nbsp;</a></span>OnBeforeUserCreate()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">virtual void olc::PGEX::OnBeforeUserCreate </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">virtual</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a2573df22f1637314b976811714dea3fb"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a2573df22f1637314b976811714dea3fb">&#9670;&nbsp;</a></span>OnBeforeUserUpdate()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">virtual void olc::PGEX::OnBeforeUserUpdate </td>
+          <td>(</td>
+          <td class="paramtype">float &amp;&#160;</td>
+          <td class="paramname"><em>fElapsedTime</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">virtual</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<h2 class="groupheader">Friends And Related Function Documentation</h2>
+<a id="a3770265094ef2f9700ae97b8ee0fe282"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a3770265094ef2f9700ae97b8ee0fe282">&#9670;&nbsp;</a></span>olc::PixelGameEngine</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">friend class <a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">friend</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="olc_pixel_game_engine_8h_source.html#l01120">1120</a> of file <a class="el" href="olc_pixel_game_engine_8h_source.html">olcPixelGameEngine.h</a>.</p>
+
+</div>
+</div>
+<h2 class="groupheader">Member Data Documentation</h2>
+<a id="a032efdb84150a7cdd3cc9248860df316"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a032efdb84150a7cdd3cc9248860df316">&#9670;&nbsp;</a></span>pge</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classolc_1_1_pixel_game_engine.html">PixelGameEngine</a>* olc::PGEX::pge</td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span><span class="mlabel">protected</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="olc_pixel_game_engine_8h_source.html#l01131">1131</a> of file <a class="el" href="olc_pixel_game_engine_8h_source.html">olcPixelGameEngine.h</a>.</p>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li>C:/Users/kosmx/Documents/GitHub/2d-game/<a class="el" href="olc_pixel_game_engine_8h_source.html">olcPixelGameEngine.h</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/classolc_1_1_p_g_e_x.png b/doxy/html/classolc_1_1_p_g_e_x.png
new file mode 100644
index 0000000000000000000000000000000000000000..f850fe2aee57314d487b1005ae57e9443a8f053b
Binary files /dev/null and b/doxy/html/classolc_1_1_p_g_e_x.png differ
diff --git a/doxy/html/classolc_1_1_pixel_game_engine-members.html b/doxy/html/classolc_1_1_pixel_game_engine-members.html
new file mode 100644
index 0000000000000000000000000000000000000000..94bc3d64d90bb23cbc0146143e31d4e955ce927e
--- /dev/null
+++ b/doxy/html/classolc_1_1_pixel_game_engine-members.html
@@ -0,0 +1,188 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="namespaceolc.html">olc</a></li><li class="navelem"><a class="el" href="classolc_1_1_pixel_game_engine.html">PixelGameEngine</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">olc::PixelGameEngine Member List</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a>, including all inherited members.</p>
+<table class="directory">
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#aeb70b40809815fab4e1017e25c7ab161">Clear</a>(Pixel p)</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#aed9a3f6bd349e091728a329ee42932bf">ClearBuffer</a>(Pixel p, bool bDepth=true)</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#af1a9cf3b38dda2071b7ec18868ee1ccd">Construct</a>(int32_t screen_w, int32_t screen_h, int32_t pixel_w, int32_t pixel_h, bool full_screen=false, bool vsync=false, bool cohesion=false)</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#ae15ffa0503e2893aad7001aa2f5769b7">CreateLayer</a>()</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#a95ab046b4b0843565bddd0e009a25569">Draw</a>(int32_t x, int32_t y, Pixel p=olc::WHITE)</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#ad7bd70d2c3d0bc5bbb0991fa4695a4e9">Draw</a>(const olc::vi2d &amp;pos, Pixel p=olc::WHITE)</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#a2ce3e34fd633acdc22b8dc2c8d25f86c">DrawCircle</a>(int32_t x, int32_t y, int32_t radius, Pixel p=olc::WHITE, uint8_t mask=0xFF)</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#a0016377c9188719462724f523b3a6334">DrawCircle</a>(const olc::vi2d &amp;pos, int32_t radius, Pixel p=olc::WHITE, uint8_t mask=0xFF)</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#a5b676590555cab61db67804417c6f25f">DrawDecal</a>(const olc::vf2d &amp;pos, olc::Decal *decal, const olc::vf2d &amp;scale={ 1.0f, 1.0f }, const olc::Pixel &amp;tint=olc::WHITE)</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#a26d7073d87bb19f15d5ade6bb58e8e2d">DrawExplicitDecal</a>(olc::Decal *decal, const olc::vf2d *pos, const olc::vf2d *uv, const olc::Pixel *col, uint32_t elements=4)</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#a131877968123c843374f079814503d22">DrawLine</a>(int32_t x1, int32_t y1, int32_t x2, int32_t y2, Pixel p=olc::WHITE, uint32_t pattern=0xFFFFFFFF)</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#ac24457d32db7d8acf0661c6de57be7a8">DrawLine</a>(const olc::vi2d &amp;pos1, const olc::vi2d &amp;pos2, Pixel p=olc::WHITE, uint32_t pattern=0xFFFFFFFF)</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#a8bae37cf84b215e9e0416f058241aeba">DrawPartialDecal</a>(const olc::vf2d &amp;pos, olc::Decal *decal, const olc::vf2d &amp;source_pos, const olc::vf2d &amp;source_size, const olc::vf2d &amp;scale={ 1.0f, 1.0f }, const olc::Pixel &amp;tint=olc::WHITE)</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#a1b757070353b8f9238c229e42d33bbb5">DrawPartialDecal</a>(const olc::vf2d &amp;pos, const olc::vf2d &amp;size, olc::Decal *decal, const olc::vf2d &amp;source_pos, const olc::vf2d &amp;source_size, const olc::Pixel &amp;tint=olc::WHITE)</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#aad3107bbad34e5792a9a35629e1fdbd0">DrawPartialRotatedDecal</a>(const olc::vf2d &amp;pos, olc::Decal *decal, const float fAngle, const olc::vf2d &amp;center, const olc::vf2d &amp;source_pos, const olc::vf2d &amp;source_size, const olc::vf2d &amp;scale={ 1.0f, 1.0f }, const olc::Pixel &amp;tint=olc::WHITE)</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#ab777dd885946b2dba5e8bef894c6868c">DrawPartialSprite</a>(int32_t x, int32_t y, Sprite *sprite, int32_t ox, int32_t oy, int32_t w, int32_t h, uint32_t scale=1, uint8_t flip=olc::Sprite::NONE)</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#aecfcfec384cf4eb56ab89f92df4ff288">DrawPartialSprite</a>(const olc::vi2d &amp;pos, Sprite *sprite, const olc::vi2d &amp;sourcepos, const olc::vi2d &amp;size, uint32_t scale=1, uint8_t flip=olc::Sprite::NONE)</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#a78be0709345710435fdaef7bc14f5fb3">DrawPartialWarpedDecal</a>(olc::Decal *decal, const olc::vf2d(&amp;pos)[4], const olc::vf2d &amp;source_pos, const olc::vf2d &amp;source_size, const olc::Pixel &amp;tint=olc::WHITE)</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#a5993da382c8e661655386a41ae874270">DrawPartialWarpedDecal</a>(olc::Decal *decal, const olc::vf2d *pos, const olc::vf2d &amp;source_pos, const olc::vf2d &amp;source_size, const olc::Pixel &amp;tint=olc::WHITE)</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#aaccd68c61d88b13ffe1e93493f2a5b35">DrawPartialWarpedDecal</a>(olc::Decal *decal, const std::array&lt; olc::vf2d, 4 &gt; &amp;pos, const olc::vf2d &amp;source_pos, const olc::vf2d &amp;source_size, const olc::Pixel &amp;tint=olc::WHITE)</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#a40a7754338ea7b388ffa2383958d1f0b">DrawPolygonDecal</a>(olc::Decal *decal, const std::vector&lt; olc::vf2d &gt; &amp;pos, const std::vector&lt; olc::vf2d &gt; &amp;uv, const olc::Pixel tint=olc::WHITE)</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#a220f523e520e317f5656c4d3df777163">DrawRect</a>(int32_t x, int32_t y, int32_t w, int32_t h, Pixel p=olc::WHITE)</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#ac8536bf173a396cf78f952ab66fe6156">DrawRect</a>(const olc::vi2d &amp;pos, const olc::vi2d &amp;size, Pixel p=olc::WHITE)</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#ab9af9b6726271e83dd7e4b24583b4236">DrawRotatedDecal</a>(const olc::vf2d &amp;pos, olc::Decal *decal, const float fAngle, const olc::vf2d &amp;center={ 0.0f, 0.0f }, const olc::vf2d &amp;scale={ 1.0f, 1.0f }, const olc::Pixel &amp;tint=olc::WHITE)</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#a5bae460b03f2837e39fdee3a0bbb6f99">DrawSprite</a>(int32_t x, int32_t y, Sprite *sprite, uint32_t scale=1, uint8_t flip=olc::Sprite::NONE)</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#adcf00714f6f13ed5ad256e2102084177">DrawSprite</a>(const olc::vi2d &amp;pos, Sprite *sprite, uint32_t scale=1, uint8_t flip=olc::Sprite::NONE)</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#ac29d79dedde0b2187f9f9ccbbc33fd0b">DrawString</a>(int32_t x, int32_t y, const std::string &amp;sText, Pixel col=olc::WHITE, uint32_t scale=1)</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#ae099b13b38e5b02ffd31ad34a703cee5">DrawString</a>(const olc::vi2d &amp;pos, const std::string &amp;sText, Pixel col=olc::WHITE, uint32_t scale=1)</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#a689d1828a93292702070b97fb14f5644">DrawStringDecal</a>(const olc::vf2d &amp;pos, const std::string &amp;sText, const Pixel col=olc::WHITE, const olc::vf2d &amp;scale={ 1.0f, 1.0f })</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#a1ddca999be34411764bb12d2a15cc021">DrawStringProp</a>(int32_t x, int32_t y, const std::string &amp;sText, Pixel col=olc::WHITE, uint32_t scale=1)</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#a161ef8177257c371741d12cbc4818cf6">DrawStringProp</a>(const olc::vi2d &amp;pos, const std::string &amp;sText, Pixel col=olc::WHITE, uint32_t scale=1)</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#a7392273f15fc09b3659b112564aa0dfa">DrawStringPropDecal</a>(const olc::vf2d &amp;pos, const std::string &amp;sText, const Pixel col=olc::WHITE, const olc::vf2d &amp;scale={ 1.0f, 1.0f })</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#a2bddba9e808a8702f6af354007302c16">DrawTriangle</a>(int32_t x1, int32_t y1, int32_t x2, int32_t y2, int32_t x3, int32_t y3, Pixel p=olc::WHITE)</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#aafe21db2127f56670b5f5f089adced71">DrawTriangle</a>(const olc::vi2d &amp;pos1, const olc::vi2d &amp;pos2, const olc::vi2d &amp;pos3, Pixel p=olc::WHITE)</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#a65098b403a403c45041599893429b550">DrawWarpedDecal</a>(olc::Decal *decal, const olc::vf2d(&amp;pos)[4], const olc::Pixel &amp;tint=olc::WHITE)</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#ae6cc4bd274522bf9ac36054eda6c95ac">DrawWarpedDecal</a>(olc::Decal *decal, const olc::vf2d *pos, const olc::Pixel &amp;tint=olc::WHITE)</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#a5174456bbdaace7cde233889f7ad6d72">DrawWarpedDecal</a>(olc::Decal *decal, const std::array&lt; olc::vf2d, 4 &gt; &amp;pos, const olc::Pixel &amp;tint=olc::WHITE)</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#a1e3453e2a118596fa04a961f66c6fd46">EnableLayer</a>(uint8_t layer, bool b)</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#a483f56606fbbf3ab4850554491a853bd">FillCircle</a>(int32_t x, int32_t y, int32_t radius, Pixel p=olc::WHITE)</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#a169b1c8ca3116ac2338785b8ffe87954">FillCircle</a>(const olc::vi2d &amp;pos, int32_t radius, Pixel p=olc::WHITE)</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#a6b5e218bb4360f27a470f9e821721331">FillRect</a>(int32_t x, int32_t y, int32_t w, int32_t h, Pixel p=olc::WHITE)</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#ae225f7027e20fe0f45a8190a992981cc">FillRect</a>(const olc::vi2d &amp;pos, const olc::vi2d &amp;size, Pixel p=olc::WHITE)</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#a02a26bca44e04f075f517bdae6ac0e9d">FillRectDecal</a>(const olc::vf2d &amp;pos, const olc::vf2d &amp;size, const olc::Pixel col=olc::WHITE)</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#ad31abffe6c4d0b864b8f7762c33b7a7d">FillTriangle</a>(int32_t x1, int32_t y1, int32_t x2, int32_t y2, int32_t x3, int32_t y3, Pixel p=olc::WHITE)</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#a091224d5937210726d25c8cdeb4a951e">FillTriangle</a>(const olc::vi2d &amp;pos1, const olc::vi2d &amp;pos2, const olc::vi2d &amp;pos3, Pixel p=olc::WHITE)</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#a5fd95bd9571bc3ed3fd5d7d110e48cff">GetDrawTarget</a>() const</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#a4ee3dbff01900d71e62bfe499b1c83c3">GetDrawTargetHeight</a>() const</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#a45d918f65f5fee13e654878d8271326b">GetDrawTargetWidth</a>() const</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#af881473291c52d849dbef155e359b27c">GetElapsedTime</a>() const</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#abab955edc6d1ec6023a7806509582f52">GetFontSprite</a>()</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#a89d27938d71d49b42a20307444147697">GetFPS</a>() const</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#a27cb4cb68d5e1ca7df8014d66221269e">GetKey</a>(Key k) const</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#aac31baad6daf55b926f6add9c44a5591">GetLayers</a>()</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#abdf9f5d70c9e24ab9358a8dd07474105">GetMouse</a>(uint32_t b) const</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#af11fb390dbc5a3168c26fe911690dcbe">GetMousePos</a>() const</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#a9640286e4a7cd03c6f545b1df7373269">GetMouseWheel</a>() const</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#a2ec1d2a1f3777338fb4388c620344a34">GetMouseX</a>() const</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#a8dde80c07547240f5e72b4f2fcd89668">GetMouseY</a>() const</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#ad4f95a449dc09a2650ec771e6fa83049">GetPixelMode</a>()</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#a721fb4cfac75f76c6d5832415fccbe61">GetPixelSize</a>() const</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#a5602d50220bd7edbd77fc67eaa981ce5">GetScreenPixelSize</a>() const</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#aa70121ffb85733f8ea2e7e5d0b4b311b">GetTextSize</a>(const std::string &amp;s)</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#ab282eddb9b8fe14d01311c8613f79e84">GetTextSizeProp</a>(const std::string &amp;s)</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#a54b5141da371af51541874dd68e4e6a2">GetWindowMouse</a>() const</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#aee10e917aeb1ce4625561d71126e0a7d">GetWindowSize</a>() const</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#a11d9ed8762b81e0bd6bbe4349255b1e8">GradientFillRectDecal</a>(const olc::vf2d &amp;pos, const olc::vf2d &amp;size, const olc::Pixel colTL, const olc::Pixel colBL, const olc::Pixel colBR, const olc::Pixel colTR)</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#a92192402b5d499ab8b230dfb9393f3b7">IsFocused</a>() const</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#a7afa0b57c65bd5d9a54c602afd4fe756">olc_ConfigureSystem</a>()</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#a117eedbe1e9366fe2bf402334beb9692">olc_ConstructFontSheet</a>()</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#a0018131435f88bb5de406fd11ee54058">olc_CoreUpdate</a>()</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#a7b0f41bc4b4258a5c4fa1742b41d15e3">olc_IsRunning</a>()</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#aa19aafa028a7e2eaaf7b2235a9bd2256">olc_PrepareEngine</a>()</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#a417b6cd564ccad1d878ae51cfdd3be8e">olc_Reanimate</a>()</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#a2da1f2ebbc1a5fbdbf52890e6ac707b1">olc_Terminate</a>()</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#a7343712504f23f86c8490646ffc50e7f">olc_UpdateKeyFocus</a>(bool state)</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#a61fde81846a9ef7f8fcf63080e6d350b">olc_UpdateKeyState</a>(int32_t key, bool state)</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#a6e10d8fae75e26dea03b0b447667a308">olc_UpdateMouse</a>(int32_t x, int32_t y)</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#ab3150ba487188e64940c294998fa38d3">olc_UpdateMouseFocus</a>(bool state)</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#a59645c08376a7d4e58673919f3bd0dfb">olc_UpdateMouseState</a>(int32_t button, bool state)</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#aa33ea5e40d4577e3c44fcf4a26cecadd">olc_UpdateMouseWheel</a>(int32_t delta)</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#af1cd38cf0df2e7c3ab53bee66ec63771">olc_UpdateViewport</a>()</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#a4f0dae00f21f8d71d4544d50593234c3">olc_UpdateWindowSize</a>(int32_t x, int32_t y)</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#a6a33b6ff7cd23dfd05b34416865fb5c3">OnUserCreate</a>()</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#ad4fbf979865fb1f08250ea379f2de669">OnUserDestroy</a>()</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#af9379a3db341b0acb410ea543e30fdd1">OnUserUpdate</a>(float fElapsedTime)</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#a98fcee28f1a645fe0a29f6b6e6a5d7bb">PGEX</a> class</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"><span class="mlabel">friend</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#a49a2ead57239e1595cc555effd3e3a2b">pgex_Register</a>(olc::PGEX *pgex)</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#afe9d685732305246c3fcb361ae3c4bc6">PixelGameEngine</a>()</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#a02d0f9c50770aa38aea1448f62d3604f">sAppName</a></td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#abbbee4578ffa6b844c04c1af363052af">ScreenHeight</a>() const</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#aa3b458d05eab503d9918cfd2d383a45c">ScreenWidth</a>() const</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#a27ee96acff2c74d47f0cb78493aac756">SetDecalMode</a>(const olc::DecalMode &amp;mode)</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#a70b6a145d7ab0c8857000a72ce4d4a70">SetDrawTarget</a>(Sprite *target)</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#a5842c1087a70c95a7ff96d53f28b7bab">SetDrawTarget</a>(uint8_t layer)</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#a40a88ddb3800e59121f05b06fd64dbfd">SetLayerCustomRenderFunction</a>(uint8_t layer, std::function&lt; void()&gt; f)</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#a0e1ddc993ef65dfe00f2bbcf59e535ad">SetLayerOffset</a>(uint8_t layer, const olc::vf2d &amp;offset)</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#a9fed21eddcebeb743472d8b9eb1e3ece">SetLayerOffset</a>(uint8_t layer, float x, float y)</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#af8fbe005b4069ed1de8e0347b72ebc30">SetLayerScale</a>(uint8_t layer, const olc::vf2d &amp;scale)</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#a409825b0147e25c0d4c05fb0aa1f6273">SetLayerScale</a>(uint8_t layer, float x, float y)</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#a7d7c04245161782d5f5c48d3d62ff7a7">SetLayerTint</a>(uint8_t layer, const olc::Pixel &amp;tint)</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#ab0726b7758bc1bf7f7de30369076b8e7">SetPixelBlend</a>(float fBlend)</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#ae4a3d1aaa40761986389966ab927ef32">SetPixelMode</a>(Pixel::Mode m)</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#a9aa31ae4e1735efa72f3ea17fb51b2ef">SetPixelMode</a>(std::function&lt; olc::Pixel(const int x, const int y, const olc::Pixel &amp;pSource, const olc::Pixel &amp;pDest)&gt; pixelMode)</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#abd403468f57f7665d56e202da8de8e76">SetScreenSize</a>(int w, int h)</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#a8e8848aa1c743a1ec2cdaa14c87e5cde">Start</a>()</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html#a423d90134c297f7b9f1834a136071b19">~PixelGameEngine</a>()</td><td class="entry"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+</table></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/classolc_1_1_pixel_game_engine.html b/doxy/html/classolc_1_1_pixel_game_engine.html
new file mode 100644
index 0000000000000000000000000000000000000000..fd21fa5b37e2b39bb4581d090dcab341252af95c
--- /dev/null
+++ b/doxy/html/classolc_1_1_pixel_game_engine.html
@@ -0,0 +1,3504 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: olc::PixelGameEngine Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="namespaceolc.html">olc</a></li><li class="navelem"><a class="el" href="classolc_1_1_pixel_game_engine.html">PixelGameEngine</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="#pub-attribs">Public Attributes</a> &#124;
+<a href="#friends">Friends</a> &#124;
+<a href="classolc_1_1_pixel_game_engine-members.html">List of all members</a>  </div>
+  <div class="headertitle">
+<div class="title">olc::PixelGameEngine Class Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p><code>#include &lt;<a class="el" href="olc_pixel_game_engine_8h_source.html">olcPixelGameEngine.h</a>&gt;</code></p>
+<div class="dynheader">
+Inheritance diagram for olc::PixelGameEngine:</div>
+<div class="dyncontent">
+ <div class="center">
+  <img src="classolc_1_1_pixel_game_engine.png" usemap="#olc::PixelGameEngine_map" alt=""/>
+  <map id="olc::PixelGameEngine_map" name="olc::PixelGameEngine_map">
+<area href="class_game_client.html" title="The game main class itself. manages the entities, adjust the screen..." alt="GameClient" shape="rect" coords="0,56,133,80"/>
+  </map>
+</div></div>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr class="memitem:afe9d685732305246c3fcb361ae3c4bc6"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#afe9d685732305246c3fcb361ae3c4bc6">PixelGameEngine</a> ()</td></tr>
+<tr class="separator:afe9d685732305246c3fcb361ae3c4bc6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a423d90134c297f7b9f1834a136071b19"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#a423d90134c297f7b9f1834a136071b19">~PixelGameEngine</a> ()</td></tr>
+<tr class="separator:a423d90134c297f7b9f1834a136071b19"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af1a9cf3b38dda2071b7ec18868ee1ccd"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87b">olc::rcode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#af1a9cf3b38dda2071b7ec18868ee1ccd">Construct</a> (int32_t screen_w, int32_t screen_h, int32_t pixel_w, int32_t pixel_h, bool full_screen=false, bool vsync=false, bool cohesion=false)</td></tr>
+<tr class="separator:af1a9cf3b38dda2071b7ec18868ee1ccd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8e8848aa1c743a1ec2cdaa14c87e5cde"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87b">olc::rcode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#a8e8848aa1c743a1ec2cdaa14c87e5cde">Start</a> ()</td></tr>
+<tr class="separator:a8e8848aa1c743a1ec2cdaa14c87e5cde"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6a33b6ff7cd23dfd05b34416865fb5c3"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#a6a33b6ff7cd23dfd05b34416865fb5c3">OnUserCreate</a> ()</td></tr>
+<tr class="separator:a6a33b6ff7cd23dfd05b34416865fb5c3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af9379a3db341b0acb410ea543e30fdd1"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#af9379a3db341b0acb410ea543e30fdd1">OnUserUpdate</a> (float fElapsedTime)</td></tr>
+<tr class="separator:af9379a3db341b0acb410ea543e30fdd1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad4fbf979865fb1f08250ea379f2de669"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#ad4fbf979865fb1f08250ea379f2de669">OnUserDestroy</a> ()</td></tr>
+<tr class="separator:ad4fbf979865fb1f08250ea379f2de669"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a92192402b5d499ab8b230dfb9393f3b7"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#a92192402b5d499ab8b230dfb9393f3b7">IsFocused</a> () const</td></tr>
+<tr class="separator:a92192402b5d499ab8b230dfb9393f3b7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a27cb4cb68d5e1ca7df8014d66221269e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structolc_1_1_h_w_button.html">HWButton</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#a27cb4cb68d5e1ca7df8014d66221269e">GetKey</a> (<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7">Key</a> k) const</td></tr>
+<tr class="separator:a27cb4cb68d5e1ca7df8014d66221269e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abdf9f5d70c9e24ab9358a8dd07474105"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structolc_1_1_h_w_button.html">HWButton</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#abdf9f5d70c9e24ab9358a8dd07474105">GetMouse</a> (uint32_t b) const</td></tr>
+<tr class="separator:abdf9f5d70c9e24ab9358a8dd07474105"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2ec1d2a1f3777338fb4388c620344a34"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#a2ec1d2a1f3777338fb4388c620344a34">GetMouseX</a> () const</td></tr>
+<tr class="separator:a2ec1d2a1f3777338fb4388c620344a34"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8dde80c07547240f5e72b4f2fcd89668"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#a8dde80c07547240f5e72b4f2fcd89668">GetMouseY</a> () const</td></tr>
+<tr class="separator:a8dde80c07547240f5e72b4f2fcd89668"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9640286e4a7cd03c6f545b1df7373269"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#a9640286e4a7cd03c6f545b1df7373269">GetMouseWheel</a> () const</td></tr>
+<tr class="separator:a9640286e4a7cd03c6f545b1df7373269"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a54b5141da371af51541874dd68e4e6a2"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">olc::vi2d</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#a54b5141da371af51541874dd68e4e6a2">GetWindowMouse</a> () const</td></tr>
+<tr class="separator:a54b5141da371af51541874dd68e4e6a2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af11fb390dbc5a3168c26fe911690dcbe"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">olc::vi2d</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#af11fb390dbc5a3168c26fe911690dcbe">GetMousePos</a> () const</td></tr>
+<tr class="separator:af11fb390dbc5a3168c26fe911690dcbe"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa3b458d05eab503d9918cfd2d383a45c"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#aa3b458d05eab503d9918cfd2d383a45c">ScreenWidth</a> () const</td></tr>
+<tr class="separator:aa3b458d05eab503d9918cfd2d383a45c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abbbee4578ffa6b844c04c1af363052af"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#abbbee4578ffa6b844c04c1af363052af">ScreenHeight</a> () const</td></tr>
+<tr class="separator:abbbee4578ffa6b844c04c1af363052af"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a45d918f65f5fee13e654878d8271326b"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#a45d918f65f5fee13e654878d8271326b">GetDrawTargetWidth</a> () const</td></tr>
+<tr class="separator:a45d918f65f5fee13e654878d8271326b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4ee3dbff01900d71e62bfe499b1c83c3"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#a4ee3dbff01900d71e62bfe499b1c83c3">GetDrawTargetHeight</a> () const</td></tr>
+<tr class="separator:a4ee3dbff01900d71e62bfe499b1c83c3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5fd95bd9571bc3ed3fd5d7d110e48cff"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classolc_1_1_sprite.html">olc::Sprite</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#a5fd95bd9571bc3ed3fd5d7d110e48cff">GetDrawTarget</a> () const</td></tr>
+<tr class="separator:a5fd95bd9571bc3ed3fd5d7d110e48cff"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abd403468f57f7665d56e202da8de8e76"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#abd403468f57f7665d56e202da8de8e76">SetScreenSize</a> (int w, int h)</td></tr>
+<tr class="separator:abd403468f57f7665d56e202da8de8e76"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a70b6a145d7ab0c8857000a72ce4d4a70"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#a70b6a145d7ab0c8857000a72ce4d4a70">SetDrawTarget</a> (<a class="el" href="classolc_1_1_sprite.html">Sprite</a> *target)</td></tr>
+<tr class="separator:a70b6a145d7ab0c8857000a72ce4d4a70"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a89d27938d71d49b42a20307444147697"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#a89d27938d71d49b42a20307444147697">GetFPS</a> () const</td></tr>
+<tr class="separator:a89d27938d71d49b42a20307444147697"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af881473291c52d849dbef155e359b27c"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#af881473291c52d849dbef155e359b27c">GetElapsedTime</a> () const</td></tr>
+<tr class="separator:af881473291c52d849dbef155e359b27c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aee10e917aeb1ce4625561d71126e0a7d"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">olc::vi2d</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#aee10e917aeb1ce4625561d71126e0a7d">GetWindowSize</a> () const</td></tr>
+<tr class="separator:aee10e917aeb1ce4625561d71126e0a7d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a721fb4cfac75f76c6d5832415fccbe61"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">olc::vi2d</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#a721fb4cfac75f76c6d5832415fccbe61">GetPixelSize</a> () const</td></tr>
+<tr class="separator:a721fb4cfac75f76c6d5832415fccbe61"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5602d50220bd7edbd77fc67eaa981ce5"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">olc::vi2d</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#a5602d50220bd7edbd77fc67eaa981ce5">GetScreenPixelSize</a> () const</td></tr>
+<tr class="separator:a5602d50220bd7edbd77fc67eaa981ce5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5842c1087a70c95a7ff96d53f28b7bab"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#a5842c1087a70c95a7ff96d53f28b7bab">SetDrawTarget</a> (uint8_t layer)</td></tr>
+<tr class="separator:a5842c1087a70c95a7ff96d53f28b7bab"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1e3453e2a118596fa04a961f66c6fd46"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#a1e3453e2a118596fa04a961f66c6fd46">EnableLayer</a> (uint8_t layer, bool b)</td></tr>
+<tr class="separator:a1e3453e2a118596fa04a961f66c6fd46"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0e1ddc993ef65dfe00f2bbcf59e535ad"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#a0e1ddc993ef65dfe00f2bbcf59e535ad">SetLayerOffset</a> (uint8_t layer, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;offset)</td></tr>
+<tr class="separator:a0e1ddc993ef65dfe00f2bbcf59e535ad"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9fed21eddcebeb743472d8b9eb1e3ece"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#a9fed21eddcebeb743472d8b9eb1e3ece">SetLayerOffset</a> (uint8_t layer, float x, float y)</td></tr>
+<tr class="separator:a9fed21eddcebeb743472d8b9eb1e3ece"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af8fbe005b4069ed1de8e0347b72ebc30"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#af8fbe005b4069ed1de8e0347b72ebc30">SetLayerScale</a> (uint8_t layer, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;scale)</td></tr>
+<tr class="separator:af8fbe005b4069ed1de8e0347b72ebc30"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a409825b0147e25c0d4c05fb0aa1f6273"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#a409825b0147e25c0d4c05fb0aa1f6273">SetLayerScale</a> (uint8_t layer, float x, float y)</td></tr>
+<tr class="separator:a409825b0147e25c0d4c05fb0aa1f6273"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7d7c04245161782d5f5c48d3d62ff7a7"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#a7d7c04245161782d5f5c48d3d62ff7a7">SetLayerTint</a> (uint8_t layer, const <a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a> &amp;tint)</td></tr>
+<tr class="separator:a7d7c04245161782d5f5c48d3d62ff7a7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a40a88ddb3800e59121f05b06fd64dbfd"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#a40a88ddb3800e59121f05b06fd64dbfd">SetLayerCustomRenderFunction</a> (uint8_t layer, std::function&lt; void()&gt; f)</td></tr>
+<tr class="separator:a40a88ddb3800e59121f05b06fd64dbfd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aac31baad6daf55b926f6add9c44a5591"><td class="memItemLeft" align="right" valign="top">std::vector&lt; <a class="el" href="structolc_1_1_layer_desc.html">LayerDesc</a> &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#aac31baad6daf55b926f6add9c44a5591">GetLayers</a> ()</td></tr>
+<tr class="separator:aac31baad6daf55b926f6add9c44a5591"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae15ffa0503e2893aad7001aa2f5769b7"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#ae15ffa0503e2893aad7001aa2f5769b7">CreateLayer</a> ()</td></tr>
+<tr class="separator:ae15ffa0503e2893aad7001aa2f5769b7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae4a3d1aaa40761986389966ab927ef32"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#ae4a3d1aaa40761986389966ab927ef32">SetPixelMode</a> (<a class="el" href="structolc_1_1_pixel.html#ae9012164940526ddb09b217dbbddfd65">Pixel::Mode</a> m)</td></tr>
+<tr class="separator:ae4a3d1aaa40761986389966ab927ef32"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad4f95a449dc09a2650ec771e6fa83049"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structolc_1_1_pixel.html#ae9012164940526ddb09b217dbbddfd65">Pixel::Mode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#ad4f95a449dc09a2650ec771e6fa83049">GetPixelMode</a> ()</td></tr>
+<tr class="separator:ad4f95a449dc09a2650ec771e6fa83049"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9aa31ae4e1735efa72f3ea17fb51b2ef"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#a9aa31ae4e1735efa72f3ea17fb51b2ef">SetPixelMode</a> (std::function&lt; <a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a>(const int x, const int y, const <a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a> &amp;pSource, const <a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a> &amp;pDest)&gt; pixelMode)</td></tr>
+<tr class="separator:a9aa31ae4e1735efa72f3ea17fb51b2ef"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab0726b7758bc1bf7f7de30369076b8e7"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#ab0726b7758bc1bf7f7de30369076b8e7">SetPixelBlend</a> (float fBlend)</td></tr>
+<tr class="separator:ab0726b7758bc1bf7f7de30369076b8e7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a95ab046b4b0843565bddd0e009a25569"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#a95ab046b4b0843565bddd0e009a25569">Draw</a> (int32_t x, int32_t y, <a class="el" href="structolc_1_1_pixel.html">Pixel</a> p=<a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>)</td></tr>
+<tr class="separator:a95ab046b4b0843565bddd0e009a25569"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad7bd70d2c3d0bc5bbb0991fa4695a4e9"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#ad7bd70d2c3d0bc5bbb0991fa4695a4e9">Draw</a> (const <a class="el" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">olc::vi2d</a> &amp;pos, <a class="el" href="structolc_1_1_pixel.html">Pixel</a> p=<a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>)</td></tr>
+<tr class="separator:ad7bd70d2c3d0bc5bbb0991fa4695a4e9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a131877968123c843374f079814503d22"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#a131877968123c843374f079814503d22">DrawLine</a> (int32_t x1, int32_t y1, int32_t x2, int32_t y2, <a class="el" href="structolc_1_1_pixel.html">Pixel</a> p=<a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>, uint32_t pattern=0xFFFFFFFF)</td></tr>
+<tr class="separator:a131877968123c843374f079814503d22"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac24457d32db7d8acf0661c6de57be7a8"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#ac24457d32db7d8acf0661c6de57be7a8">DrawLine</a> (const <a class="el" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">olc::vi2d</a> &amp;pos1, const <a class="el" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">olc::vi2d</a> &amp;pos2, <a class="el" href="structolc_1_1_pixel.html">Pixel</a> p=<a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>, uint32_t pattern=0xFFFFFFFF)</td></tr>
+<tr class="separator:ac24457d32db7d8acf0661c6de57be7a8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2ce3e34fd633acdc22b8dc2c8d25f86c"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#a2ce3e34fd633acdc22b8dc2c8d25f86c">DrawCircle</a> (int32_t x, int32_t y, int32_t radius, <a class="el" href="structolc_1_1_pixel.html">Pixel</a> p=<a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>, uint8_t mask=0xFF)</td></tr>
+<tr class="separator:a2ce3e34fd633acdc22b8dc2c8d25f86c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0016377c9188719462724f523b3a6334"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#a0016377c9188719462724f523b3a6334">DrawCircle</a> (const <a class="el" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">olc::vi2d</a> &amp;pos, int32_t radius, <a class="el" href="structolc_1_1_pixel.html">Pixel</a> p=<a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>, uint8_t mask=0xFF)</td></tr>
+<tr class="separator:a0016377c9188719462724f523b3a6334"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a483f56606fbbf3ab4850554491a853bd"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#a483f56606fbbf3ab4850554491a853bd">FillCircle</a> (int32_t x, int32_t y, int32_t radius, <a class="el" href="structolc_1_1_pixel.html">Pixel</a> p=<a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>)</td></tr>
+<tr class="separator:a483f56606fbbf3ab4850554491a853bd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a169b1c8ca3116ac2338785b8ffe87954"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#a169b1c8ca3116ac2338785b8ffe87954">FillCircle</a> (const <a class="el" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">olc::vi2d</a> &amp;pos, int32_t radius, <a class="el" href="structolc_1_1_pixel.html">Pixel</a> p=<a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>)</td></tr>
+<tr class="separator:a169b1c8ca3116ac2338785b8ffe87954"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a220f523e520e317f5656c4d3df777163"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#a220f523e520e317f5656c4d3df777163">DrawRect</a> (int32_t x, int32_t y, int32_t w, int32_t h, <a class="el" href="structolc_1_1_pixel.html">Pixel</a> p=<a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>)</td></tr>
+<tr class="separator:a220f523e520e317f5656c4d3df777163"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac8536bf173a396cf78f952ab66fe6156"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#ac8536bf173a396cf78f952ab66fe6156">DrawRect</a> (const <a class="el" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">olc::vi2d</a> &amp;pos, const <a class="el" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">olc::vi2d</a> &amp;size, <a class="el" href="structolc_1_1_pixel.html">Pixel</a> p=<a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>)</td></tr>
+<tr class="separator:ac8536bf173a396cf78f952ab66fe6156"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6b5e218bb4360f27a470f9e821721331"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#a6b5e218bb4360f27a470f9e821721331">FillRect</a> (int32_t x, int32_t y, int32_t w, int32_t h, <a class="el" href="structolc_1_1_pixel.html">Pixel</a> p=<a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>)</td></tr>
+<tr class="separator:a6b5e218bb4360f27a470f9e821721331"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae225f7027e20fe0f45a8190a992981cc"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#ae225f7027e20fe0f45a8190a992981cc">FillRect</a> (const <a class="el" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">olc::vi2d</a> &amp;pos, const <a class="el" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">olc::vi2d</a> &amp;size, <a class="el" href="structolc_1_1_pixel.html">Pixel</a> p=<a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>)</td></tr>
+<tr class="separator:ae225f7027e20fe0f45a8190a992981cc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2bddba9e808a8702f6af354007302c16"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#a2bddba9e808a8702f6af354007302c16">DrawTriangle</a> (int32_t x1, int32_t y1, int32_t x2, int32_t y2, int32_t x3, int32_t y3, <a class="el" href="structolc_1_1_pixel.html">Pixel</a> p=<a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>)</td></tr>
+<tr class="separator:a2bddba9e808a8702f6af354007302c16"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aafe21db2127f56670b5f5f089adced71"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#aafe21db2127f56670b5f5f089adced71">DrawTriangle</a> (const <a class="el" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">olc::vi2d</a> &amp;pos1, const <a class="el" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">olc::vi2d</a> &amp;pos2, const <a class="el" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">olc::vi2d</a> &amp;pos3, <a class="el" href="structolc_1_1_pixel.html">Pixel</a> p=<a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>)</td></tr>
+<tr class="separator:aafe21db2127f56670b5f5f089adced71"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad31abffe6c4d0b864b8f7762c33b7a7d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#ad31abffe6c4d0b864b8f7762c33b7a7d">FillTriangle</a> (int32_t x1, int32_t y1, int32_t x2, int32_t y2, int32_t x3, int32_t y3, <a class="el" href="structolc_1_1_pixel.html">Pixel</a> p=<a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>)</td></tr>
+<tr class="separator:ad31abffe6c4d0b864b8f7762c33b7a7d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a091224d5937210726d25c8cdeb4a951e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#a091224d5937210726d25c8cdeb4a951e">FillTriangle</a> (const <a class="el" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">olc::vi2d</a> &amp;pos1, const <a class="el" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">olc::vi2d</a> &amp;pos2, const <a class="el" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">olc::vi2d</a> &amp;pos3, <a class="el" href="structolc_1_1_pixel.html">Pixel</a> p=<a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>)</td></tr>
+<tr class="separator:a091224d5937210726d25c8cdeb4a951e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5bae460b03f2837e39fdee3a0bbb6f99"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#a5bae460b03f2837e39fdee3a0bbb6f99">DrawSprite</a> (int32_t x, int32_t y, <a class="el" href="classolc_1_1_sprite.html">Sprite</a> *sprite, uint32_t scale=1, uint8_t flip=<a class="el" href="classolc_1_1_sprite.html#ad0d1976d2060997f5cd99eb284a5dc24a6ad338b4e63faacfbed68b020c3a0c0c">olc::Sprite::NONE</a>)</td></tr>
+<tr class="separator:a5bae460b03f2837e39fdee3a0bbb6f99"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:adcf00714f6f13ed5ad256e2102084177"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#adcf00714f6f13ed5ad256e2102084177">DrawSprite</a> (const <a class="el" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">olc::vi2d</a> &amp;pos, <a class="el" href="classolc_1_1_sprite.html">Sprite</a> *sprite, uint32_t scale=1, uint8_t flip=<a class="el" href="classolc_1_1_sprite.html#ad0d1976d2060997f5cd99eb284a5dc24a6ad338b4e63faacfbed68b020c3a0c0c">olc::Sprite::NONE</a>)</td></tr>
+<tr class="separator:adcf00714f6f13ed5ad256e2102084177"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab777dd885946b2dba5e8bef894c6868c"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#ab777dd885946b2dba5e8bef894c6868c">DrawPartialSprite</a> (int32_t x, int32_t y, <a class="el" href="classolc_1_1_sprite.html">Sprite</a> *sprite, int32_t ox, int32_t oy, int32_t w, int32_t h, uint32_t scale=1, uint8_t flip=<a class="el" href="classolc_1_1_sprite.html#ad0d1976d2060997f5cd99eb284a5dc24a6ad338b4e63faacfbed68b020c3a0c0c">olc::Sprite::NONE</a>)</td></tr>
+<tr class="separator:ab777dd885946b2dba5e8bef894c6868c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aecfcfec384cf4eb56ab89f92df4ff288"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#aecfcfec384cf4eb56ab89f92df4ff288">DrawPartialSprite</a> (const <a class="el" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">olc::vi2d</a> &amp;pos, <a class="el" href="classolc_1_1_sprite.html">Sprite</a> *sprite, const <a class="el" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">olc::vi2d</a> &amp;sourcepos, const <a class="el" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">olc::vi2d</a> &amp;size, uint32_t scale=1, uint8_t flip=<a class="el" href="classolc_1_1_sprite.html#ad0d1976d2060997f5cd99eb284a5dc24a6ad338b4e63faacfbed68b020c3a0c0c">olc::Sprite::NONE</a>)</td></tr>
+<tr class="separator:aecfcfec384cf4eb56ab89f92df4ff288"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac29d79dedde0b2187f9f9ccbbc33fd0b"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#ac29d79dedde0b2187f9f9ccbbc33fd0b">DrawString</a> (int32_t x, int32_t y, const std::string &amp;sText, <a class="el" href="structolc_1_1_pixel.html">Pixel</a> col=<a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>, uint32_t scale=1)</td></tr>
+<tr class="separator:ac29d79dedde0b2187f9f9ccbbc33fd0b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae099b13b38e5b02ffd31ad34a703cee5"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#ae099b13b38e5b02ffd31ad34a703cee5">DrawString</a> (const <a class="el" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">olc::vi2d</a> &amp;pos, const std::string &amp;sText, <a class="el" href="structolc_1_1_pixel.html">Pixel</a> col=<a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>, uint32_t scale=1)</td></tr>
+<tr class="separator:ae099b13b38e5b02ffd31ad34a703cee5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa70121ffb85733f8ea2e7e5d0b4b311b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">olc::vi2d</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#aa70121ffb85733f8ea2e7e5d0b4b311b">GetTextSize</a> (const std::string &amp;s)</td></tr>
+<tr class="separator:aa70121ffb85733f8ea2e7e5d0b4b311b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1ddca999be34411764bb12d2a15cc021"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#a1ddca999be34411764bb12d2a15cc021">DrawStringProp</a> (int32_t x, int32_t y, const std::string &amp;sText, <a class="el" href="structolc_1_1_pixel.html">Pixel</a> col=<a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>, uint32_t scale=1)</td></tr>
+<tr class="separator:a1ddca999be34411764bb12d2a15cc021"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a161ef8177257c371741d12cbc4818cf6"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#a161ef8177257c371741d12cbc4818cf6">DrawStringProp</a> (const <a class="el" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">olc::vi2d</a> &amp;pos, const std::string &amp;sText, <a class="el" href="structolc_1_1_pixel.html">Pixel</a> col=<a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>, uint32_t scale=1)</td></tr>
+<tr class="separator:a161ef8177257c371741d12cbc4818cf6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab282eddb9b8fe14d01311c8613f79e84"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">olc::vi2d</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#ab282eddb9b8fe14d01311c8613f79e84">GetTextSizeProp</a> (const std::string &amp;s)</td></tr>
+<tr class="separator:ab282eddb9b8fe14d01311c8613f79e84"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a27ee96acff2c74d47f0cb78493aac756"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#a27ee96acff2c74d47f0cb78493aac756">SetDecalMode</a> (const <a class="el" href="namespaceolc.html#aeda642f63378f868193c28e8613138ca">olc::DecalMode</a> &amp;mode)</td></tr>
+<tr class="separator:a27ee96acff2c74d47f0cb78493aac756"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5b676590555cab61db67804417c6f25f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#a5b676590555cab61db67804417c6f25f">DrawDecal</a> (const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;pos, <a class="el" href="classolc_1_1_decal.html">olc::Decal</a> *decal, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;scale={ 1.0f, 1.0f }, const <a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a> &amp;tint=<a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>)</td></tr>
+<tr class="separator:a5b676590555cab61db67804417c6f25f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8bae37cf84b215e9e0416f058241aeba"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#a8bae37cf84b215e9e0416f058241aeba">DrawPartialDecal</a> (const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;pos, <a class="el" href="classolc_1_1_decal.html">olc::Decal</a> *decal, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;source_pos, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;source_size, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;scale={ 1.0f, 1.0f }, const <a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a> &amp;tint=<a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>)</td></tr>
+<tr class="separator:a8bae37cf84b215e9e0416f058241aeba"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1b757070353b8f9238c229e42d33bbb5"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#a1b757070353b8f9238c229e42d33bbb5">DrawPartialDecal</a> (const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;pos, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;size, <a class="el" href="classolc_1_1_decal.html">olc::Decal</a> *decal, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;source_pos, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;source_size, const <a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a> &amp;tint=<a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>)</td></tr>
+<tr class="separator:a1b757070353b8f9238c229e42d33bbb5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a26d7073d87bb19f15d5ade6bb58e8e2d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#a26d7073d87bb19f15d5ade6bb58e8e2d">DrawExplicitDecal</a> (<a class="el" href="classolc_1_1_decal.html">olc::Decal</a> *decal, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> *pos, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> *uv, const <a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a> *col, uint32_t elements=4)</td></tr>
+<tr class="separator:a26d7073d87bb19f15d5ade6bb58e8e2d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a65098b403a403c45041599893429b550"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#a65098b403a403c45041599893429b550">DrawWarpedDecal</a> (<a class="el" href="classolc_1_1_decal.html">olc::Decal</a> *decal, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a>(&amp;pos)[4], const <a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a> &amp;tint=<a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>)</td></tr>
+<tr class="separator:a65098b403a403c45041599893429b550"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae6cc4bd274522bf9ac36054eda6c95ac"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#ae6cc4bd274522bf9ac36054eda6c95ac">DrawWarpedDecal</a> (<a class="el" href="classolc_1_1_decal.html">olc::Decal</a> *decal, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> *pos, const <a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a> &amp;tint=<a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>)</td></tr>
+<tr class="separator:ae6cc4bd274522bf9ac36054eda6c95ac"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5174456bbdaace7cde233889f7ad6d72"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#a5174456bbdaace7cde233889f7ad6d72">DrawWarpedDecal</a> (<a class="el" href="classolc_1_1_decal.html">olc::Decal</a> *decal, const std::array&lt; <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a>, 4 &gt; &amp;pos, const <a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a> &amp;tint=<a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>)</td></tr>
+<tr class="separator:a5174456bbdaace7cde233889f7ad6d72"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a78be0709345710435fdaef7bc14f5fb3"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#a78be0709345710435fdaef7bc14f5fb3">DrawPartialWarpedDecal</a> (<a class="el" href="classolc_1_1_decal.html">olc::Decal</a> *decal, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a>(&amp;pos)[4], const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;source_pos, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;source_size, const <a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a> &amp;tint=<a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>)</td></tr>
+<tr class="separator:a78be0709345710435fdaef7bc14f5fb3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5993da382c8e661655386a41ae874270"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#a5993da382c8e661655386a41ae874270">DrawPartialWarpedDecal</a> (<a class="el" href="classolc_1_1_decal.html">olc::Decal</a> *decal, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> *pos, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;source_pos, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;source_size, const <a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a> &amp;tint=<a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>)</td></tr>
+<tr class="separator:a5993da382c8e661655386a41ae874270"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aaccd68c61d88b13ffe1e93493f2a5b35"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#aaccd68c61d88b13ffe1e93493f2a5b35">DrawPartialWarpedDecal</a> (<a class="el" href="classolc_1_1_decal.html">olc::Decal</a> *decal, const std::array&lt; <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a>, 4 &gt; &amp;pos, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;source_pos, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;source_size, const <a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a> &amp;tint=<a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>)</td></tr>
+<tr class="separator:aaccd68c61d88b13ffe1e93493f2a5b35"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab9af9b6726271e83dd7e4b24583b4236"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#ab9af9b6726271e83dd7e4b24583b4236">DrawRotatedDecal</a> (const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;pos, <a class="el" href="classolc_1_1_decal.html">olc::Decal</a> *decal, const float fAngle, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;center={ 0.0f, 0.0f }, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;scale={ 1.0f, 1.0f }, const <a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a> &amp;tint=<a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>)</td></tr>
+<tr class="separator:ab9af9b6726271e83dd7e4b24583b4236"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aad3107bbad34e5792a9a35629e1fdbd0"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#aad3107bbad34e5792a9a35629e1fdbd0">DrawPartialRotatedDecal</a> (const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;pos, <a class="el" href="classolc_1_1_decal.html">olc::Decal</a> *decal, const float fAngle, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;center, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;source_pos, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;source_size, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;scale={ 1.0f, 1.0f }, const <a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a> &amp;tint=<a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>)</td></tr>
+<tr class="separator:aad3107bbad34e5792a9a35629e1fdbd0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a689d1828a93292702070b97fb14f5644"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#a689d1828a93292702070b97fb14f5644">DrawStringDecal</a> (const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;pos, const std::string &amp;sText, const <a class="el" href="structolc_1_1_pixel.html">Pixel</a> col=<a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;scale={ 1.0f, 1.0f })</td></tr>
+<tr class="separator:a689d1828a93292702070b97fb14f5644"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7392273f15fc09b3659b112564aa0dfa"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#a7392273f15fc09b3659b112564aa0dfa">DrawStringPropDecal</a> (const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;pos, const std::string &amp;sText, const <a class="el" href="structolc_1_1_pixel.html">Pixel</a> col=<a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;scale={ 1.0f, 1.0f })</td></tr>
+<tr class="separator:a7392273f15fc09b3659b112564aa0dfa"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a02a26bca44e04f075f517bdae6ac0e9d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#a02a26bca44e04f075f517bdae6ac0e9d">FillRectDecal</a> (const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;pos, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;size, const <a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a> col=<a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>)</td></tr>
+<tr class="separator:a02a26bca44e04f075f517bdae6ac0e9d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a11d9ed8762b81e0bd6bbe4349255b1e8"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#a11d9ed8762b81e0bd6bbe4349255b1e8">GradientFillRectDecal</a> (const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;pos, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;size, const <a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a> colTL, const <a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a> colBL, const <a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a> colBR, const <a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a> colTR)</td></tr>
+<tr class="separator:a11d9ed8762b81e0bd6bbe4349255b1e8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a40a7754338ea7b388ffa2383958d1f0b"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#a40a7754338ea7b388ffa2383958d1f0b">DrawPolygonDecal</a> (<a class="el" href="classolc_1_1_decal.html">olc::Decal</a> *decal, const std::vector&lt; <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &gt; &amp;pos, const std::vector&lt; <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &gt; &amp;uv, const <a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a> tint=<a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>)</td></tr>
+<tr class="separator:a40a7754338ea7b388ffa2383958d1f0b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aeb70b40809815fab4e1017e25c7ab161"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#aeb70b40809815fab4e1017e25c7ab161">Clear</a> (<a class="el" href="structolc_1_1_pixel.html">Pixel</a> p)</td></tr>
+<tr class="separator:aeb70b40809815fab4e1017e25c7ab161"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aed9a3f6bd349e091728a329ee42932bf"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#aed9a3f6bd349e091728a329ee42932bf">ClearBuffer</a> (<a class="el" href="structolc_1_1_pixel.html">Pixel</a> p, bool bDepth=true)</td></tr>
+<tr class="separator:aed9a3f6bd349e091728a329ee42932bf"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abab955edc6d1ec6023a7806509582f52"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classolc_1_1_sprite.html">olc::Sprite</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#abab955edc6d1ec6023a7806509582f52">GetFontSprite</a> ()</td></tr>
+<tr class="separator:abab955edc6d1ec6023a7806509582f52"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6e10d8fae75e26dea03b0b447667a308"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#a6e10d8fae75e26dea03b0b447667a308">olc_UpdateMouse</a> (int32_t x, int32_t y)</td></tr>
+<tr class="separator:a6e10d8fae75e26dea03b0b447667a308"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa33ea5e40d4577e3c44fcf4a26cecadd"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#aa33ea5e40d4577e3c44fcf4a26cecadd">olc_UpdateMouseWheel</a> (int32_t delta)</td></tr>
+<tr class="separator:aa33ea5e40d4577e3c44fcf4a26cecadd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4f0dae00f21f8d71d4544d50593234c3"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#a4f0dae00f21f8d71d4544d50593234c3">olc_UpdateWindowSize</a> (int32_t x, int32_t y)</td></tr>
+<tr class="separator:a4f0dae00f21f8d71d4544d50593234c3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af1cd38cf0df2e7c3ab53bee66ec63771"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#af1cd38cf0df2e7c3ab53bee66ec63771">olc_UpdateViewport</a> ()</td></tr>
+<tr class="separator:af1cd38cf0df2e7c3ab53bee66ec63771"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a117eedbe1e9366fe2bf402334beb9692"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#a117eedbe1e9366fe2bf402334beb9692">olc_ConstructFontSheet</a> ()</td></tr>
+<tr class="separator:a117eedbe1e9366fe2bf402334beb9692"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0018131435f88bb5de406fd11ee54058"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#a0018131435f88bb5de406fd11ee54058">olc_CoreUpdate</a> ()</td></tr>
+<tr class="separator:a0018131435f88bb5de406fd11ee54058"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa19aafa028a7e2eaaf7b2235a9bd2256"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#aa19aafa028a7e2eaaf7b2235a9bd2256">olc_PrepareEngine</a> ()</td></tr>
+<tr class="separator:aa19aafa028a7e2eaaf7b2235a9bd2256"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a59645c08376a7d4e58673919f3bd0dfb"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#a59645c08376a7d4e58673919f3bd0dfb">olc_UpdateMouseState</a> (int32_t button, bool state)</td></tr>
+<tr class="separator:a59645c08376a7d4e58673919f3bd0dfb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a61fde81846a9ef7f8fcf63080e6d350b"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#a61fde81846a9ef7f8fcf63080e6d350b">olc_UpdateKeyState</a> (int32_t key, bool state)</td></tr>
+<tr class="separator:a61fde81846a9ef7f8fcf63080e6d350b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab3150ba487188e64940c294998fa38d3"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#ab3150ba487188e64940c294998fa38d3">olc_UpdateMouseFocus</a> (bool state)</td></tr>
+<tr class="separator:ab3150ba487188e64940c294998fa38d3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7343712504f23f86c8490646ffc50e7f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#a7343712504f23f86c8490646ffc50e7f">olc_UpdateKeyFocus</a> (bool state)</td></tr>
+<tr class="separator:a7343712504f23f86c8490646ffc50e7f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2da1f2ebbc1a5fbdbf52890e6ac707b1"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#a2da1f2ebbc1a5fbdbf52890e6ac707b1">olc_Terminate</a> ()</td></tr>
+<tr class="separator:a2da1f2ebbc1a5fbdbf52890e6ac707b1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a417b6cd564ccad1d878ae51cfdd3be8e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#a417b6cd564ccad1d878ae51cfdd3be8e">olc_Reanimate</a> ()</td></tr>
+<tr class="separator:a417b6cd564ccad1d878ae51cfdd3be8e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7b0f41bc4b4258a5c4fa1742b41d15e3"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#a7b0f41bc4b4258a5c4fa1742b41d15e3">olc_IsRunning</a> ()</td></tr>
+<tr class="separator:a7b0f41bc4b4258a5c4fa1742b41d15e3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7afa0b57c65bd5d9a54c602afd4fe756"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#a7afa0b57c65bd5d9a54c602afd4fe756">olc_ConfigureSystem</a> ()</td></tr>
+<tr class="separator:a7afa0b57c65bd5d9a54c602afd4fe756"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a49a2ead57239e1595cc555effd3e3a2b"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#a49a2ead57239e1595cc555effd3e3a2b">pgex_Register</a> (<a class="el" href="classolc_1_1_p_g_e_x.html">olc::PGEX</a> *pgex)</td></tr>
+<tr class="separator:a49a2ead57239e1595cc555effd3e3a2b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+Public Attributes</h2></td></tr>
+<tr class="memitem:a02d0f9c50770aa38aea1448f62d3604f"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#a02d0f9c50770aa38aea1448f62d3604f">sAppName</a></td></tr>
+<tr class="separator:a02d0f9c50770aa38aea1448f62d3604f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="friends"></a>
+Friends</h2></td></tr>
+<tr class="memitem:a98fcee28f1a645fe0a29f6b6e6a5d7bb"><td class="memItemLeft" align="right" valign="top">class&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html#a98fcee28f1a645fe0a29f6b6e6a5d7bb">PGEX</a></td></tr>
+<tr class="separator:a98fcee28f1a645fe0a29f6b6e6a5d7bb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock">
+<p class="definition">Definition at line <a class="el" href="olc_pixel_game_engine_8h_source.html#l00855">855</a> of file <a class="el" href="olc_pixel_game_engine_8h_source.html">olcPixelGameEngine.h</a>.</p>
+</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
+<a id="afe9d685732305246c3fcb361ae3c4bc6"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#afe9d685732305246c3fcb361ae3c4bc6">&#9670;&nbsp;</a></span>PixelGameEngine()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">olc::PixelGameEngine::PixelGameEngine </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a423d90134c297f7b9f1834a136071b19"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a423d90134c297f7b9f1834a136071b19">&#9670;&nbsp;</a></span>~PixelGameEngine()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">virtual olc::PixelGameEngine::~PixelGameEngine </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<h2 class="groupheader">Member Function Documentation</h2>
+<a id="aeb70b40809815fab4e1017e25c7ab161"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aeb70b40809815fab4e1017e25c7ab161">&#9670;&nbsp;</a></span>Clear()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void olc::PixelGameEngine::Clear </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structolc_1_1_pixel.html">Pixel</a>&#160;</td>
+          <td class="paramname"><em>p</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="aed9a3f6bd349e091728a329ee42932bf"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aed9a3f6bd349e091728a329ee42932bf">&#9670;&nbsp;</a></span>ClearBuffer()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void olc::PixelGameEngine::ClearBuffer </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structolc_1_1_pixel.html">Pixel</a>&#160;</td>
+          <td class="paramname"><em>p</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">bool&#160;</td>
+          <td class="paramname"><em>bDepth</em> = <code>true</code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="af1a9cf3b38dda2071b7ec18868ee1ccd"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#af1a9cf3b38dda2071b7ec18868ee1ccd">&#9670;&nbsp;</a></span>Construct()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87b">olc::rcode</a> olc::PixelGameEngine::Construct </td>
+          <td>(</td>
+          <td class="paramtype">int32_t&#160;</td>
+          <td class="paramname"><em>screen_w</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int32_t&#160;</td>
+          <td class="paramname"><em>screen_h</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int32_t&#160;</td>
+          <td class="paramname"><em>pixel_w</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int32_t&#160;</td>
+          <td class="paramname"><em>pixel_h</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">bool&#160;</td>
+          <td class="paramname"><em>full_screen</em> = <code>false</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">bool&#160;</td>
+          <td class="paramname"><em>vsync</em> = <code>false</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">bool&#160;</td>
+          <td class="paramname"><em>cohesion</em> = <code>false</code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="ae15ffa0503e2893aad7001aa2f5769b7"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ae15ffa0503e2893aad7001aa2f5769b7">&#9670;&nbsp;</a></span>CreateLayer()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">uint32_t olc::PixelGameEngine::CreateLayer </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="ad7bd70d2c3d0bc5bbb0991fa4695a4e9"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ad7bd70d2c3d0bc5bbb0991fa4695a4e9">&#9670;&nbsp;</a></span>Draw() <span class="overload">[1/2]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">bool olc::PixelGameEngine::Draw </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">olc::vi2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>pos</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structolc_1_1_pixel.html">Pixel</a>&#160;</td>
+          <td class="paramname"><em>p</em> = <code><a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a></code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a95ab046b4b0843565bddd0e009a25569"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a95ab046b4b0843565bddd0e009a25569">&#9670;&nbsp;</a></span>Draw() <span class="overload">[2/2]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">virtual bool olc::PixelGameEngine::Draw </td>
+          <td>(</td>
+          <td class="paramtype">int32_t&#160;</td>
+          <td class="paramname"><em>x</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int32_t&#160;</td>
+          <td class="paramname"><em>y</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structolc_1_1_pixel.html">Pixel</a>&#160;</td>
+          <td class="paramname"><em>p</em> = <code><a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a></code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a0016377c9188719462724f523b3a6334"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a0016377c9188719462724f523b3a6334">&#9670;&nbsp;</a></span>DrawCircle() <span class="overload">[1/2]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void olc::PixelGameEngine::DrawCircle </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">olc::vi2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>pos</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int32_t&#160;</td>
+          <td class="paramname"><em>radius</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structolc_1_1_pixel.html">Pixel</a>&#160;</td>
+          <td class="paramname"><em>p</em> = <code><a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a></code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">uint8_t&#160;</td>
+          <td class="paramname"><em>mask</em> = <code>0xFF</code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a2ce3e34fd633acdc22b8dc2c8d25f86c"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a2ce3e34fd633acdc22b8dc2c8d25f86c">&#9670;&nbsp;</a></span>DrawCircle() <span class="overload">[2/2]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void olc::PixelGameEngine::DrawCircle </td>
+          <td>(</td>
+          <td class="paramtype">int32_t&#160;</td>
+          <td class="paramname"><em>x</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int32_t&#160;</td>
+          <td class="paramname"><em>y</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int32_t&#160;</td>
+          <td class="paramname"><em>radius</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structolc_1_1_pixel.html">Pixel</a>&#160;</td>
+          <td class="paramname"><em>p</em> = <code><a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a></code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">uint8_t&#160;</td>
+          <td class="paramname"><em>mask</em> = <code>0xFF</code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a5b676590555cab61db67804417c6f25f"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a5b676590555cab61db67804417c6f25f">&#9670;&nbsp;</a></span>DrawDecal()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void olc::PixelGameEngine::DrawDecal </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>pos</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="classolc_1_1_decal.html">olc::Decal</a> *&#160;</td>
+          <td class="paramname"><em>decal</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>scale</em> = <code>{&#160;1.0f,&#160;1.0f&#160;}</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a> &amp;&#160;</td>
+          <td class="paramname"><em>tint</em> = <code><a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a></code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a26d7073d87bb19f15d5ade6bb58e8e2d"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a26d7073d87bb19f15d5ade6bb58e8e2d">&#9670;&nbsp;</a></span>DrawExplicitDecal()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void olc::PixelGameEngine::DrawExplicitDecal </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="classolc_1_1_decal.html">olc::Decal</a> *&#160;</td>
+          <td class="paramname"><em>decal</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> *&#160;</td>
+          <td class="paramname"><em>pos</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> *&#160;</td>
+          <td class="paramname"><em>uv</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a> *&#160;</td>
+          <td class="paramname"><em>col</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">uint32_t&#160;</td>
+          <td class="paramname"><em>elements</em> = <code>4</code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="ac24457d32db7d8acf0661c6de57be7a8"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ac24457d32db7d8acf0661c6de57be7a8">&#9670;&nbsp;</a></span>DrawLine() <span class="overload">[1/2]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void olc::PixelGameEngine::DrawLine </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">olc::vi2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>pos1</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">olc::vi2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>pos2</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structolc_1_1_pixel.html">Pixel</a>&#160;</td>
+          <td class="paramname"><em>p</em> = <code><a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a></code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">uint32_t&#160;</td>
+          <td class="paramname"><em>pattern</em> = <code>0xFFFFFFFF</code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a131877968123c843374f079814503d22"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a131877968123c843374f079814503d22">&#9670;&nbsp;</a></span>DrawLine() <span class="overload">[2/2]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void olc::PixelGameEngine::DrawLine </td>
+          <td>(</td>
+          <td class="paramtype">int32_t&#160;</td>
+          <td class="paramname"><em>x1</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int32_t&#160;</td>
+          <td class="paramname"><em>y1</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int32_t&#160;</td>
+          <td class="paramname"><em>x2</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int32_t&#160;</td>
+          <td class="paramname"><em>y2</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structolc_1_1_pixel.html">Pixel</a>&#160;</td>
+          <td class="paramname"><em>p</em> = <code><a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a></code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">uint32_t&#160;</td>
+          <td class="paramname"><em>pattern</em> = <code>0xFFFFFFFF</code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a1b757070353b8f9238c229e42d33bbb5"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a1b757070353b8f9238c229e42d33bbb5">&#9670;&nbsp;</a></span>DrawPartialDecal() <span class="overload">[1/2]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void olc::PixelGameEngine::DrawPartialDecal </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>pos</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>size</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="classolc_1_1_decal.html">olc::Decal</a> *&#160;</td>
+          <td class="paramname"><em>decal</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>source_pos</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>source_size</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a> &amp;&#160;</td>
+          <td class="paramname"><em>tint</em> = <code><a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a></code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a8bae37cf84b215e9e0416f058241aeba"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a8bae37cf84b215e9e0416f058241aeba">&#9670;&nbsp;</a></span>DrawPartialDecal() <span class="overload">[2/2]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void olc::PixelGameEngine::DrawPartialDecal </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>pos</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="classolc_1_1_decal.html">olc::Decal</a> *&#160;</td>
+          <td class="paramname"><em>decal</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>source_pos</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>source_size</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>scale</em> = <code>{&#160;1.0f,&#160;1.0f&#160;}</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a> &amp;&#160;</td>
+          <td class="paramname"><em>tint</em> = <code><a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a></code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="aad3107bbad34e5792a9a35629e1fdbd0"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aad3107bbad34e5792a9a35629e1fdbd0">&#9670;&nbsp;</a></span>DrawPartialRotatedDecal()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void olc::PixelGameEngine::DrawPartialRotatedDecal </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>pos</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="classolc_1_1_decal.html">olc::Decal</a> *&#160;</td>
+          <td class="paramname"><em>decal</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const float&#160;</td>
+          <td class="paramname"><em>fAngle</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>center</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>source_pos</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>source_size</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>scale</em> = <code>{&#160;1.0f,&#160;1.0f&#160;}</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a> &amp;&#160;</td>
+          <td class="paramname"><em>tint</em> = <code><a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a></code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="aecfcfec384cf4eb56ab89f92df4ff288"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aecfcfec384cf4eb56ab89f92df4ff288">&#9670;&nbsp;</a></span>DrawPartialSprite() <span class="overload">[1/2]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void olc::PixelGameEngine::DrawPartialSprite </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">olc::vi2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>pos</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="classolc_1_1_sprite.html">Sprite</a> *&#160;</td>
+          <td class="paramname"><em>sprite</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">olc::vi2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>sourcepos</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">olc::vi2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>size</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">uint32_t&#160;</td>
+          <td class="paramname"><em>scale</em> = <code>1</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">uint8_t&#160;</td>
+          <td class="paramname"><em>flip</em> = <code><a class="el" href="classolc_1_1_sprite.html#ad0d1976d2060997f5cd99eb284a5dc24a6ad338b4e63faacfbed68b020c3a0c0c">olc::Sprite::NONE</a></code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="ab777dd885946b2dba5e8bef894c6868c"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ab777dd885946b2dba5e8bef894c6868c">&#9670;&nbsp;</a></span>DrawPartialSprite() <span class="overload">[2/2]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void olc::PixelGameEngine::DrawPartialSprite </td>
+          <td>(</td>
+          <td class="paramtype">int32_t&#160;</td>
+          <td class="paramname"><em>x</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int32_t&#160;</td>
+          <td class="paramname"><em>y</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="classolc_1_1_sprite.html">Sprite</a> *&#160;</td>
+          <td class="paramname"><em>sprite</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int32_t&#160;</td>
+          <td class="paramname"><em>ox</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int32_t&#160;</td>
+          <td class="paramname"><em>oy</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int32_t&#160;</td>
+          <td class="paramname"><em>w</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int32_t&#160;</td>
+          <td class="paramname"><em>h</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">uint32_t&#160;</td>
+          <td class="paramname"><em>scale</em> = <code>1</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">uint8_t&#160;</td>
+          <td class="paramname"><em>flip</em> = <code><a class="el" href="classolc_1_1_sprite.html#ad0d1976d2060997f5cd99eb284a5dc24a6ad338b4e63faacfbed68b020c3a0c0c">olc::Sprite::NONE</a></code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a5993da382c8e661655386a41ae874270"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a5993da382c8e661655386a41ae874270">&#9670;&nbsp;</a></span>DrawPartialWarpedDecal() <span class="overload">[1/3]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void olc::PixelGameEngine::DrawPartialWarpedDecal </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="classolc_1_1_decal.html">olc::Decal</a> *&#160;</td>
+          <td class="paramname"><em>decal</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> *&#160;</td>
+          <td class="paramname"><em>pos</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>source_pos</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>source_size</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a> &amp;&#160;</td>
+          <td class="paramname"><em>tint</em> = <code><a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a></code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a78be0709345710435fdaef7bc14f5fb3"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a78be0709345710435fdaef7bc14f5fb3">&#9670;&nbsp;</a></span>DrawPartialWarpedDecal() <span class="overload">[2/3]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void olc::PixelGameEngine::DrawPartialWarpedDecal </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="classolc_1_1_decal.html">olc::Decal</a> *&#160;</td>
+          <td class="paramname"><em>decal</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a>(&amp;)&#160;</td>
+          <td class="paramname"><em>pos</em>[4], </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>source_pos</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>source_size</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a> &amp;&#160;</td>
+          <td class="paramname"><em>tint</em> = <code><a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a></code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="aaccd68c61d88b13ffe1e93493f2a5b35"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aaccd68c61d88b13ffe1e93493f2a5b35">&#9670;&nbsp;</a></span>DrawPartialWarpedDecal() <span class="overload">[3/3]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void olc::PixelGameEngine::DrawPartialWarpedDecal </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="classolc_1_1_decal.html">olc::Decal</a> *&#160;</td>
+          <td class="paramname"><em>decal</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const std::array&lt; <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a>, 4 &gt; &amp;&#160;</td>
+          <td class="paramname"><em>pos</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>source_pos</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>source_size</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a> &amp;&#160;</td>
+          <td class="paramname"><em>tint</em> = <code><a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a></code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a40a7754338ea7b388ffa2383958d1f0b"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a40a7754338ea7b388ffa2383958d1f0b">&#9670;&nbsp;</a></span>DrawPolygonDecal()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void olc::PixelGameEngine::DrawPolygonDecal </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="classolc_1_1_decal.html">olc::Decal</a> *&#160;</td>
+          <td class="paramname"><em>decal</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const std::vector&lt; <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &gt; &amp;&#160;</td>
+          <td class="paramname"><em>pos</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const std::vector&lt; <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &gt; &amp;&#160;</td>
+          <td class="paramname"><em>uv</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a>&#160;</td>
+          <td class="paramname"><em>tint</em> = <code><a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a></code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="ac8536bf173a396cf78f952ab66fe6156"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ac8536bf173a396cf78f952ab66fe6156">&#9670;&nbsp;</a></span>DrawRect() <span class="overload">[1/2]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void olc::PixelGameEngine::DrawRect </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">olc::vi2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>pos</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">olc::vi2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>size</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structolc_1_1_pixel.html">Pixel</a>&#160;</td>
+          <td class="paramname"><em>p</em> = <code><a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a></code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a220f523e520e317f5656c4d3df777163"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a220f523e520e317f5656c4d3df777163">&#9670;&nbsp;</a></span>DrawRect() <span class="overload">[2/2]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void olc::PixelGameEngine::DrawRect </td>
+          <td>(</td>
+          <td class="paramtype">int32_t&#160;</td>
+          <td class="paramname"><em>x</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int32_t&#160;</td>
+          <td class="paramname"><em>y</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int32_t&#160;</td>
+          <td class="paramname"><em>w</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int32_t&#160;</td>
+          <td class="paramname"><em>h</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structolc_1_1_pixel.html">Pixel</a>&#160;</td>
+          <td class="paramname"><em>p</em> = <code><a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a></code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="ab9af9b6726271e83dd7e4b24583b4236"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ab9af9b6726271e83dd7e4b24583b4236">&#9670;&nbsp;</a></span>DrawRotatedDecal()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void olc::PixelGameEngine::DrawRotatedDecal </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>pos</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="classolc_1_1_decal.html">olc::Decal</a> *&#160;</td>
+          <td class="paramname"><em>decal</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const float&#160;</td>
+          <td class="paramname"><em>fAngle</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>center</em> = <code>{&#160;0.0f,&#160;0.0f&#160;}</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>scale</em> = <code>{&#160;1.0f,&#160;1.0f&#160;}</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a> &amp;&#160;</td>
+          <td class="paramname"><em>tint</em> = <code><a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a></code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="adcf00714f6f13ed5ad256e2102084177"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#adcf00714f6f13ed5ad256e2102084177">&#9670;&nbsp;</a></span>DrawSprite() <span class="overload">[1/2]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void olc::PixelGameEngine::DrawSprite </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">olc::vi2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>pos</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="classolc_1_1_sprite.html">Sprite</a> *&#160;</td>
+          <td class="paramname"><em>sprite</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">uint32_t&#160;</td>
+          <td class="paramname"><em>scale</em> = <code>1</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">uint8_t&#160;</td>
+          <td class="paramname"><em>flip</em> = <code><a class="el" href="classolc_1_1_sprite.html#ad0d1976d2060997f5cd99eb284a5dc24a6ad338b4e63faacfbed68b020c3a0c0c">olc::Sprite::NONE</a></code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a5bae460b03f2837e39fdee3a0bbb6f99"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a5bae460b03f2837e39fdee3a0bbb6f99">&#9670;&nbsp;</a></span>DrawSprite() <span class="overload">[2/2]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void olc::PixelGameEngine::DrawSprite </td>
+          <td>(</td>
+          <td class="paramtype">int32_t&#160;</td>
+          <td class="paramname"><em>x</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int32_t&#160;</td>
+          <td class="paramname"><em>y</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="classolc_1_1_sprite.html">Sprite</a> *&#160;</td>
+          <td class="paramname"><em>sprite</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">uint32_t&#160;</td>
+          <td class="paramname"><em>scale</em> = <code>1</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">uint8_t&#160;</td>
+          <td class="paramname"><em>flip</em> = <code><a class="el" href="classolc_1_1_sprite.html#ad0d1976d2060997f5cd99eb284a5dc24a6ad338b4e63faacfbed68b020c3a0c0c">olc::Sprite::NONE</a></code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="ae099b13b38e5b02ffd31ad34a703cee5"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ae099b13b38e5b02ffd31ad34a703cee5">&#9670;&nbsp;</a></span>DrawString() <span class="overload">[1/2]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void olc::PixelGameEngine::DrawString </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">olc::vi2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>pos</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const std::string &amp;&#160;</td>
+          <td class="paramname"><em>sText</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structolc_1_1_pixel.html">Pixel</a>&#160;</td>
+          <td class="paramname"><em>col</em> = <code><a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a></code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">uint32_t&#160;</td>
+          <td class="paramname"><em>scale</em> = <code>1</code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="ac29d79dedde0b2187f9f9ccbbc33fd0b"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ac29d79dedde0b2187f9f9ccbbc33fd0b">&#9670;&nbsp;</a></span>DrawString() <span class="overload">[2/2]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void olc::PixelGameEngine::DrawString </td>
+          <td>(</td>
+          <td class="paramtype">int32_t&#160;</td>
+          <td class="paramname"><em>x</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int32_t&#160;</td>
+          <td class="paramname"><em>y</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const std::string &amp;&#160;</td>
+          <td class="paramname"><em>sText</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structolc_1_1_pixel.html">Pixel</a>&#160;</td>
+          <td class="paramname"><em>col</em> = <code><a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a></code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">uint32_t&#160;</td>
+          <td class="paramname"><em>scale</em> = <code>1</code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a689d1828a93292702070b97fb14f5644"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a689d1828a93292702070b97fb14f5644">&#9670;&nbsp;</a></span>DrawStringDecal()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void olc::PixelGameEngine::DrawStringDecal </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>pos</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const std::string &amp;&#160;</td>
+          <td class="paramname"><em>sText</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structolc_1_1_pixel.html">Pixel</a>&#160;</td>
+          <td class="paramname"><em>col</em> = <code><a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a></code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>scale</em> = <code>{&#160;1.0f,&#160;1.0f&#160;}</code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a161ef8177257c371741d12cbc4818cf6"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a161ef8177257c371741d12cbc4818cf6">&#9670;&nbsp;</a></span>DrawStringProp() <span class="overload">[1/2]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void olc::PixelGameEngine::DrawStringProp </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">olc::vi2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>pos</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const std::string &amp;&#160;</td>
+          <td class="paramname"><em>sText</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structolc_1_1_pixel.html">Pixel</a>&#160;</td>
+          <td class="paramname"><em>col</em> = <code><a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a></code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">uint32_t&#160;</td>
+          <td class="paramname"><em>scale</em> = <code>1</code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a1ddca999be34411764bb12d2a15cc021"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a1ddca999be34411764bb12d2a15cc021">&#9670;&nbsp;</a></span>DrawStringProp() <span class="overload">[2/2]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void olc::PixelGameEngine::DrawStringProp </td>
+          <td>(</td>
+          <td class="paramtype">int32_t&#160;</td>
+          <td class="paramname"><em>x</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int32_t&#160;</td>
+          <td class="paramname"><em>y</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const std::string &amp;&#160;</td>
+          <td class="paramname"><em>sText</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structolc_1_1_pixel.html">Pixel</a>&#160;</td>
+          <td class="paramname"><em>col</em> = <code><a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a></code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">uint32_t&#160;</td>
+          <td class="paramname"><em>scale</em> = <code>1</code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a7392273f15fc09b3659b112564aa0dfa"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a7392273f15fc09b3659b112564aa0dfa">&#9670;&nbsp;</a></span>DrawStringPropDecal()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void olc::PixelGameEngine::DrawStringPropDecal </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>pos</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const std::string &amp;&#160;</td>
+          <td class="paramname"><em>sText</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structolc_1_1_pixel.html">Pixel</a>&#160;</td>
+          <td class="paramname"><em>col</em> = <code><a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a></code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>scale</em> = <code>{&#160;1.0f,&#160;1.0f&#160;}</code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="aafe21db2127f56670b5f5f089adced71"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aafe21db2127f56670b5f5f089adced71">&#9670;&nbsp;</a></span>DrawTriangle() <span class="overload">[1/2]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void olc::PixelGameEngine::DrawTriangle </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">olc::vi2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>pos1</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">olc::vi2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>pos2</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">olc::vi2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>pos3</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structolc_1_1_pixel.html">Pixel</a>&#160;</td>
+          <td class="paramname"><em>p</em> = <code><a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a></code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a2bddba9e808a8702f6af354007302c16"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a2bddba9e808a8702f6af354007302c16">&#9670;&nbsp;</a></span>DrawTriangle() <span class="overload">[2/2]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void olc::PixelGameEngine::DrawTriangle </td>
+          <td>(</td>
+          <td class="paramtype">int32_t&#160;</td>
+          <td class="paramname"><em>x1</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int32_t&#160;</td>
+          <td class="paramname"><em>y1</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int32_t&#160;</td>
+          <td class="paramname"><em>x2</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int32_t&#160;</td>
+          <td class="paramname"><em>y2</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int32_t&#160;</td>
+          <td class="paramname"><em>x3</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int32_t&#160;</td>
+          <td class="paramname"><em>y3</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structolc_1_1_pixel.html">Pixel</a>&#160;</td>
+          <td class="paramname"><em>p</em> = <code><a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a></code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="ae6cc4bd274522bf9ac36054eda6c95ac"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ae6cc4bd274522bf9ac36054eda6c95ac">&#9670;&nbsp;</a></span>DrawWarpedDecal() <span class="overload">[1/3]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void olc::PixelGameEngine::DrawWarpedDecal </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="classolc_1_1_decal.html">olc::Decal</a> *&#160;</td>
+          <td class="paramname"><em>decal</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> *&#160;</td>
+          <td class="paramname"><em>pos</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a> &amp;&#160;</td>
+          <td class="paramname"><em>tint</em> = <code><a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a></code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a65098b403a403c45041599893429b550"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a65098b403a403c45041599893429b550">&#9670;&nbsp;</a></span>DrawWarpedDecal() <span class="overload">[2/3]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void olc::PixelGameEngine::DrawWarpedDecal </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="classolc_1_1_decal.html">olc::Decal</a> *&#160;</td>
+          <td class="paramname"><em>decal</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a>(&amp;)&#160;</td>
+          <td class="paramname"><em>pos</em>[4], </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a> &amp;&#160;</td>
+          <td class="paramname"><em>tint</em> = <code><a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a></code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a5174456bbdaace7cde233889f7ad6d72"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a5174456bbdaace7cde233889f7ad6d72">&#9670;&nbsp;</a></span>DrawWarpedDecal() <span class="overload">[3/3]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void olc::PixelGameEngine::DrawWarpedDecal </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="classolc_1_1_decal.html">olc::Decal</a> *&#160;</td>
+          <td class="paramname"><em>decal</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const std::array&lt; <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a>, 4 &gt; &amp;&#160;</td>
+          <td class="paramname"><em>pos</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a> &amp;&#160;</td>
+          <td class="paramname"><em>tint</em> = <code><a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a></code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a1e3453e2a118596fa04a961f66c6fd46"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a1e3453e2a118596fa04a961f66c6fd46">&#9670;&nbsp;</a></span>EnableLayer()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void olc::PixelGameEngine::EnableLayer </td>
+          <td>(</td>
+          <td class="paramtype">uint8_t&#160;</td>
+          <td class="paramname"><em>layer</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">bool&#160;</td>
+          <td class="paramname"><em>b</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a169b1c8ca3116ac2338785b8ffe87954"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a169b1c8ca3116ac2338785b8ffe87954">&#9670;&nbsp;</a></span>FillCircle() <span class="overload">[1/2]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void olc::PixelGameEngine::FillCircle </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">olc::vi2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>pos</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int32_t&#160;</td>
+          <td class="paramname"><em>radius</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structolc_1_1_pixel.html">Pixel</a>&#160;</td>
+          <td class="paramname"><em>p</em> = <code><a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a></code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a483f56606fbbf3ab4850554491a853bd"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a483f56606fbbf3ab4850554491a853bd">&#9670;&nbsp;</a></span>FillCircle() <span class="overload">[2/2]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void olc::PixelGameEngine::FillCircle </td>
+          <td>(</td>
+          <td class="paramtype">int32_t&#160;</td>
+          <td class="paramname"><em>x</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int32_t&#160;</td>
+          <td class="paramname"><em>y</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int32_t&#160;</td>
+          <td class="paramname"><em>radius</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structolc_1_1_pixel.html">Pixel</a>&#160;</td>
+          <td class="paramname"><em>p</em> = <code><a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a></code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="ae225f7027e20fe0f45a8190a992981cc"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ae225f7027e20fe0f45a8190a992981cc">&#9670;&nbsp;</a></span>FillRect() <span class="overload">[1/2]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void olc::PixelGameEngine::FillRect </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">olc::vi2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>pos</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">olc::vi2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>size</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structolc_1_1_pixel.html">Pixel</a>&#160;</td>
+          <td class="paramname"><em>p</em> = <code><a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a></code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a6b5e218bb4360f27a470f9e821721331"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a6b5e218bb4360f27a470f9e821721331">&#9670;&nbsp;</a></span>FillRect() <span class="overload">[2/2]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void olc::PixelGameEngine::FillRect </td>
+          <td>(</td>
+          <td class="paramtype">int32_t&#160;</td>
+          <td class="paramname"><em>x</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int32_t&#160;</td>
+          <td class="paramname"><em>y</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int32_t&#160;</td>
+          <td class="paramname"><em>w</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int32_t&#160;</td>
+          <td class="paramname"><em>h</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structolc_1_1_pixel.html">Pixel</a>&#160;</td>
+          <td class="paramname"><em>p</em> = <code><a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a></code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a02a26bca44e04f075f517bdae6ac0e9d"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a02a26bca44e04f075f517bdae6ac0e9d">&#9670;&nbsp;</a></span>FillRectDecal()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void olc::PixelGameEngine::FillRectDecal </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>pos</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>size</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a>&#160;</td>
+          <td class="paramname"><em>col</em> = <code><a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a></code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a091224d5937210726d25c8cdeb4a951e"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a091224d5937210726d25c8cdeb4a951e">&#9670;&nbsp;</a></span>FillTriangle() <span class="overload">[1/2]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void olc::PixelGameEngine::FillTriangle </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">olc::vi2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>pos1</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">olc::vi2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>pos2</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">olc::vi2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>pos3</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structolc_1_1_pixel.html">Pixel</a>&#160;</td>
+          <td class="paramname"><em>p</em> = <code><a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a></code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="ad31abffe6c4d0b864b8f7762c33b7a7d"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ad31abffe6c4d0b864b8f7762c33b7a7d">&#9670;&nbsp;</a></span>FillTriangle() <span class="overload">[2/2]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void olc::PixelGameEngine::FillTriangle </td>
+          <td>(</td>
+          <td class="paramtype">int32_t&#160;</td>
+          <td class="paramname"><em>x1</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int32_t&#160;</td>
+          <td class="paramname"><em>y1</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int32_t&#160;</td>
+          <td class="paramname"><em>x2</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int32_t&#160;</td>
+          <td class="paramname"><em>y2</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int32_t&#160;</td>
+          <td class="paramname"><em>x3</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int32_t&#160;</td>
+          <td class="paramname"><em>y3</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structolc_1_1_pixel.html">Pixel</a>&#160;</td>
+          <td class="paramname"><em>p</em> = <code><a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a></code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a5fd95bd9571bc3ed3fd5d7d110e48cff"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a5fd95bd9571bc3ed3fd5d7d110e48cff">&#9670;&nbsp;</a></span>GetDrawTarget()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classolc_1_1_sprite.html">olc::Sprite</a>* olc::PixelGameEngine::GetDrawTarget </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td> const</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a4ee3dbff01900d71e62bfe499b1c83c3"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a4ee3dbff01900d71e62bfe499b1c83c3">&#9670;&nbsp;</a></span>GetDrawTargetHeight()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int32_t olc::PixelGameEngine::GetDrawTargetHeight </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td> const</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a45d918f65f5fee13e654878d8271326b"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a45d918f65f5fee13e654878d8271326b">&#9670;&nbsp;</a></span>GetDrawTargetWidth()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int32_t olc::PixelGameEngine::GetDrawTargetWidth </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td> const</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="af881473291c52d849dbef155e359b27c"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#af881473291c52d849dbef155e359b27c">&#9670;&nbsp;</a></span>GetElapsedTime()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float olc::PixelGameEngine::GetElapsedTime </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td> const</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="abab955edc6d1ec6023a7806509582f52"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#abab955edc6d1ec6023a7806509582f52">&#9670;&nbsp;</a></span>GetFontSprite()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classolc_1_1_sprite.html">olc::Sprite</a>* olc::PixelGameEngine::GetFontSprite </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a89d27938d71d49b42a20307444147697"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a89d27938d71d49b42a20307444147697">&#9670;&nbsp;</a></span>GetFPS()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">uint32_t olc::PixelGameEngine::GetFPS </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td> const</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a27cb4cb68d5e1ca7df8014d66221269e"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a27cb4cb68d5e1ca7df8014d66221269e">&#9670;&nbsp;</a></span>GetKey()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structolc_1_1_h_w_button.html">HWButton</a> olc::PixelGameEngine::GetKey </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7">Key</a>&#160;</td>
+          <td class="paramname"><em>k</em></td><td>)</td>
+          <td> const</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="aac31baad6daf55b926f6add9c44a5591"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aac31baad6daf55b926f6add9c44a5591">&#9670;&nbsp;</a></span>GetLayers()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">std::vector&lt;<a class="el" href="structolc_1_1_layer_desc.html">LayerDesc</a>&gt;&amp; olc::PixelGameEngine::GetLayers </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="abdf9f5d70c9e24ab9358a8dd07474105"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#abdf9f5d70c9e24ab9358a8dd07474105">&#9670;&nbsp;</a></span>GetMouse()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structolc_1_1_h_w_button.html">HWButton</a> olc::PixelGameEngine::GetMouse </td>
+          <td>(</td>
+          <td class="paramtype">uint32_t&#160;</td>
+          <td class="paramname"><em>b</em></td><td>)</td>
+          <td> const</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="af11fb390dbc5a3168c26fe911690dcbe"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#af11fb390dbc5a3168c26fe911690dcbe">&#9670;&nbsp;</a></span>GetMousePos()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">const <a class="el" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">olc::vi2d</a>&amp; olc::PixelGameEngine::GetMousePos </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td> const</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a9640286e4a7cd03c6f545b1df7373269"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a9640286e4a7cd03c6f545b1df7373269">&#9670;&nbsp;</a></span>GetMouseWheel()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int32_t olc::PixelGameEngine::GetMouseWheel </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td> const</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a2ec1d2a1f3777338fb4388c620344a34"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a2ec1d2a1f3777338fb4388c620344a34">&#9670;&nbsp;</a></span>GetMouseX()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int32_t olc::PixelGameEngine::GetMouseX </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td> const</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a8dde80c07547240f5e72b4f2fcd89668"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a8dde80c07547240f5e72b4f2fcd89668">&#9670;&nbsp;</a></span>GetMouseY()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int32_t olc::PixelGameEngine::GetMouseY </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td> const</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="ad4f95a449dc09a2650ec771e6fa83049"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ad4f95a449dc09a2650ec771e6fa83049">&#9670;&nbsp;</a></span>GetPixelMode()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structolc_1_1_pixel.html#ae9012164940526ddb09b217dbbddfd65">Pixel::Mode</a> olc::PixelGameEngine::GetPixelMode </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a721fb4cfac75f76c6d5832415fccbe61"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a721fb4cfac75f76c6d5832415fccbe61">&#9670;&nbsp;</a></span>GetPixelSize()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">const <a class="el" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">olc::vi2d</a>&amp; olc::PixelGameEngine::GetPixelSize </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td> const</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a5602d50220bd7edbd77fc67eaa981ce5"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a5602d50220bd7edbd77fc67eaa981ce5">&#9670;&nbsp;</a></span>GetScreenPixelSize()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">const <a class="el" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">olc::vi2d</a>&amp; olc::PixelGameEngine::GetScreenPixelSize </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td> const</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="aa70121ffb85733f8ea2e7e5d0b4b311b"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aa70121ffb85733f8ea2e7e5d0b4b311b">&#9670;&nbsp;</a></span>GetTextSize()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">olc::vi2d</a> olc::PixelGameEngine::GetTextSize </td>
+          <td>(</td>
+          <td class="paramtype">const std::string &amp;&#160;</td>
+          <td class="paramname"><em>s</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="ab282eddb9b8fe14d01311c8613f79e84"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ab282eddb9b8fe14d01311c8613f79e84">&#9670;&nbsp;</a></span>GetTextSizeProp()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">olc::vi2d</a> olc::PixelGameEngine::GetTextSizeProp </td>
+          <td>(</td>
+          <td class="paramtype">const std::string &amp;&#160;</td>
+          <td class="paramname"><em>s</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a54b5141da371af51541874dd68e4e6a2"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a54b5141da371af51541874dd68e4e6a2">&#9670;&nbsp;</a></span>GetWindowMouse()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">const <a class="el" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">olc::vi2d</a>&amp; olc::PixelGameEngine::GetWindowMouse </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td> const</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="aee10e917aeb1ce4625561d71126e0a7d"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aee10e917aeb1ce4625561d71126e0a7d">&#9670;&nbsp;</a></span>GetWindowSize()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">const <a class="el" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">olc::vi2d</a>&amp; olc::PixelGameEngine::GetWindowSize </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td> const</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a11d9ed8762b81e0bd6bbe4349255b1e8"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a11d9ed8762b81e0bd6bbe4349255b1e8">&#9670;&nbsp;</a></span>GradientFillRectDecal()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void olc::PixelGameEngine::GradientFillRectDecal </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>pos</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>size</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a>&#160;</td>
+          <td class="paramname"><em>colTL</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a>&#160;</td>
+          <td class="paramname"><em>colBL</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a>&#160;</td>
+          <td class="paramname"><em>colBR</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a>&#160;</td>
+          <td class="paramname"><em>colTR</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a92192402b5d499ab8b230dfb9393f3b7"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a92192402b5d499ab8b230dfb9393f3b7">&#9670;&nbsp;</a></span>IsFocused()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">bool olc::PixelGameEngine::IsFocused </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td> const</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a7afa0b57c65bd5d9a54c602afd4fe756"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a7afa0b57c65bd5d9a54c602afd4fe756">&#9670;&nbsp;</a></span>olc_ConfigureSystem()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">virtual void olc::PixelGameEngine::olc_ConfigureSystem </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a117eedbe1e9366fe2bf402334beb9692"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a117eedbe1e9366fe2bf402334beb9692">&#9670;&nbsp;</a></span>olc_ConstructFontSheet()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void olc::PixelGameEngine::olc_ConstructFontSheet </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a0018131435f88bb5de406fd11ee54058"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a0018131435f88bb5de406fd11ee54058">&#9670;&nbsp;</a></span>olc_CoreUpdate()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void olc::PixelGameEngine::olc_CoreUpdate </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a7b0f41bc4b4258a5c4fa1742b41d15e3"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a7b0f41bc4b4258a5c4fa1742b41d15e3">&#9670;&nbsp;</a></span>olc_IsRunning()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">bool olc::PixelGameEngine::olc_IsRunning </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="aa19aafa028a7e2eaaf7b2235a9bd2256"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aa19aafa028a7e2eaaf7b2235a9bd2256">&#9670;&nbsp;</a></span>olc_PrepareEngine()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void olc::PixelGameEngine::olc_PrepareEngine </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a417b6cd564ccad1d878ae51cfdd3be8e"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a417b6cd564ccad1d878ae51cfdd3be8e">&#9670;&nbsp;</a></span>olc_Reanimate()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void olc::PixelGameEngine::olc_Reanimate </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a2da1f2ebbc1a5fbdbf52890e6ac707b1"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a2da1f2ebbc1a5fbdbf52890e6ac707b1">&#9670;&nbsp;</a></span>olc_Terminate()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void olc::PixelGameEngine::olc_Terminate </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a7343712504f23f86c8490646ffc50e7f"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a7343712504f23f86c8490646ffc50e7f">&#9670;&nbsp;</a></span>olc_UpdateKeyFocus()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void olc::PixelGameEngine::olc_UpdateKeyFocus </td>
+          <td>(</td>
+          <td class="paramtype">bool&#160;</td>
+          <td class="paramname"><em>state</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a61fde81846a9ef7f8fcf63080e6d350b"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a61fde81846a9ef7f8fcf63080e6d350b">&#9670;&nbsp;</a></span>olc_UpdateKeyState()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void olc::PixelGameEngine::olc_UpdateKeyState </td>
+          <td>(</td>
+          <td class="paramtype">int32_t&#160;</td>
+          <td class="paramname"><em>key</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">bool&#160;</td>
+          <td class="paramname"><em>state</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a6e10d8fae75e26dea03b0b447667a308"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a6e10d8fae75e26dea03b0b447667a308">&#9670;&nbsp;</a></span>olc_UpdateMouse()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void olc::PixelGameEngine::olc_UpdateMouse </td>
+          <td>(</td>
+          <td class="paramtype">int32_t&#160;</td>
+          <td class="paramname"><em>x</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int32_t&#160;</td>
+          <td class="paramname"><em>y</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="ab3150ba487188e64940c294998fa38d3"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ab3150ba487188e64940c294998fa38d3">&#9670;&nbsp;</a></span>olc_UpdateMouseFocus()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void olc::PixelGameEngine::olc_UpdateMouseFocus </td>
+          <td>(</td>
+          <td class="paramtype">bool&#160;</td>
+          <td class="paramname"><em>state</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a59645c08376a7d4e58673919f3bd0dfb"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a59645c08376a7d4e58673919f3bd0dfb">&#9670;&nbsp;</a></span>olc_UpdateMouseState()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void olc::PixelGameEngine::olc_UpdateMouseState </td>
+          <td>(</td>
+          <td class="paramtype">int32_t&#160;</td>
+          <td class="paramname"><em>button</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">bool&#160;</td>
+          <td class="paramname"><em>state</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="aa33ea5e40d4577e3c44fcf4a26cecadd"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aa33ea5e40d4577e3c44fcf4a26cecadd">&#9670;&nbsp;</a></span>olc_UpdateMouseWheel()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void olc::PixelGameEngine::olc_UpdateMouseWheel </td>
+          <td>(</td>
+          <td class="paramtype">int32_t&#160;</td>
+          <td class="paramname"><em>delta</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="af1cd38cf0df2e7c3ab53bee66ec63771"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#af1cd38cf0df2e7c3ab53bee66ec63771">&#9670;&nbsp;</a></span>olc_UpdateViewport()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void olc::PixelGameEngine::olc_UpdateViewport </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a4f0dae00f21f8d71d4544d50593234c3"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a4f0dae00f21f8d71d4544d50593234c3">&#9670;&nbsp;</a></span>olc_UpdateWindowSize()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void olc::PixelGameEngine::olc_UpdateWindowSize </td>
+          <td>(</td>
+          <td class="paramtype">int32_t&#160;</td>
+          <td class="paramname"><em>x</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int32_t&#160;</td>
+          <td class="paramname"><em>y</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a6a33b6ff7cd23dfd05b34416865fb5c3"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a6a33b6ff7cd23dfd05b34416865fb5c3">&#9670;&nbsp;</a></span>OnUserCreate()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">virtual bool olc::PixelGameEngine::OnUserCreate </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Reimplemented in <a class="el" href="class_game_client.html#a698bb8a4ba91211dc4fcaa4079d8d070">GameClient</a>.</p>
+
+</div>
+</div>
+<a id="ad4fbf979865fb1f08250ea379f2de669"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ad4fbf979865fb1f08250ea379f2de669">&#9670;&nbsp;</a></span>OnUserDestroy()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">virtual bool olc::PixelGameEngine::OnUserDestroy </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="af9379a3db341b0acb410ea543e30fdd1"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#af9379a3db341b0acb410ea543e30fdd1">&#9670;&nbsp;</a></span>OnUserUpdate()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">virtual bool olc::PixelGameEngine::OnUserUpdate </td>
+          <td>(</td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>fElapsedTime</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Reimplemented in <a class="el" href="class_game_client.html#ab6e2efe37e67de64062bca35d8a11e2e">GameClient</a>.</p>
+
+</div>
+</div>
+<a id="a49a2ead57239e1595cc555effd3e3a2b"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a49a2ead57239e1595cc555effd3e3a2b">&#9670;&nbsp;</a></span>pgex_Register()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void olc::PixelGameEngine::pgex_Register </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="classolc_1_1_p_g_e_x.html">olc::PGEX</a> *&#160;</td>
+          <td class="paramname"><em>pgex</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="abbbee4578ffa6b844c04c1af363052af"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#abbbee4578ffa6b844c04c1af363052af">&#9670;&nbsp;</a></span>ScreenHeight()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int32_t olc::PixelGameEngine::ScreenHeight </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td> const</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="aa3b458d05eab503d9918cfd2d383a45c"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aa3b458d05eab503d9918cfd2d383a45c">&#9670;&nbsp;</a></span>ScreenWidth()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int32_t olc::PixelGameEngine::ScreenWidth </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td> const</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a27ee96acff2c74d47f0cb78493aac756"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a27ee96acff2c74d47f0cb78493aac756">&#9670;&nbsp;</a></span>SetDecalMode()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void olc::PixelGameEngine::SetDecalMode </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#aeda642f63378f868193c28e8613138ca">olc::DecalMode</a> &amp;&#160;</td>
+          <td class="paramname"><em>mode</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a70b6a145d7ab0c8857000a72ce4d4a70"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a70b6a145d7ab0c8857000a72ce4d4a70">&#9670;&nbsp;</a></span>SetDrawTarget() <span class="overload">[1/2]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void olc::PixelGameEngine::SetDrawTarget </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="classolc_1_1_sprite.html">Sprite</a> *&#160;</td>
+          <td class="paramname"><em>target</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a5842c1087a70c95a7ff96d53f28b7bab"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a5842c1087a70c95a7ff96d53f28b7bab">&#9670;&nbsp;</a></span>SetDrawTarget() <span class="overload">[2/2]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void olc::PixelGameEngine::SetDrawTarget </td>
+          <td>(</td>
+          <td class="paramtype">uint8_t&#160;</td>
+          <td class="paramname"><em>layer</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a40a88ddb3800e59121f05b06fd64dbfd"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a40a88ddb3800e59121f05b06fd64dbfd">&#9670;&nbsp;</a></span>SetLayerCustomRenderFunction()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void olc::PixelGameEngine::SetLayerCustomRenderFunction </td>
+          <td>(</td>
+          <td class="paramtype">uint8_t&#160;</td>
+          <td class="paramname"><em>layer</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">std::function&lt; void()&gt;&#160;</td>
+          <td class="paramname"><em>f</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a0e1ddc993ef65dfe00f2bbcf59e535ad"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a0e1ddc993ef65dfe00f2bbcf59e535ad">&#9670;&nbsp;</a></span>SetLayerOffset() <span class="overload">[1/2]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void olc::PixelGameEngine::SetLayerOffset </td>
+          <td>(</td>
+          <td class="paramtype">uint8_t&#160;</td>
+          <td class="paramname"><em>layer</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>offset</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a9fed21eddcebeb743472d8b9eb1e3ece"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a9fed21eddcebeb743472d8b9eb1e3ece">&#9670;&nbsp;</a></span>SetLayerOffset() <span class="overload">[2/2]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void olc::PixelGameEngine::SetLayerOffset </td>
+          <td>(</td>
+          <td class="paramtype">uint8_t&#160;</td>
+          <td class="paramname"><em>layer</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>x</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>y</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="af8fbe005b4069ed1de8e0347b72ebc30"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#af8fbe005b4069ed1de8e0347b72ebc30">&#9670;&nbsp;</a></span>SetLayerScale() <span class="overload">[1/2]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void olc::PixelGameEngine::SetLayerScale </td>
+          <td>(</td>
+          <td class="paramtype">uint8_t&#160;</td>
+          <td class="paramname"><em>layer</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>scale</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a409825b0147e25c0d4c05fb0aa1f6273"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a409825b0147e25c0d4c05fb0aa1f6273">&#9670;&nbsp;</a></span>SetLayerScale() <span class="overload">[2/2]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void olc::PixelGameEngine::SetLayerScale </td>
+          <td>(</td>
+          <td class="paramtype">uint8_t&#160;</td>
+          <td class="paramname"><em>layer</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>x</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>y</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a7d7c04245161782d5f5c48d3d62ff7a7"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a7d7c04245161782d5f5c48d3d62ff7a7">&#9670;&nbsp;</a></span>SetLayerTint()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void olc::PixelGameEngine::SetLayerTint </td>
+          <td>(</td>
+          <td class="paramtype">uint8_t&#160;</td>
+          <td class="paramname"><em>layer</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a> &amp;&#160;</td>
+          <td class="paramname"><em>tint</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="ab0726b7758bc1bf7f7de30369076b8e7"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ab0726b7758bc1bf7f7de30369076b8e7">&#9670;&nbsp;</a></span>SetPixelBlend()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void olc::PixelGameEngine::SetPixelBlend </td>
+          <td>(</td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>fBlend</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="ae4a3d1aaa40761986389966ab927ef32"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ae4a3d1aaa40761986389966ab927ef32">&#9670;&nbsp;</a></span>SetPixelMode() <span class="overload">[1/2]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void olc::PixelGameEngine::SetPixelMode </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structolc_1_1_pixel.html#ae9012164940526ddb09b217dbbddfd65">Pixel::Mode</a>&#160;</td>
+          <td class="paramname"><em>m</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a9aa31ae4e1735efa72f3ea17fb51b2ef"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a9aa31ae4e1735efa72f3ea17fb51b2ef">&#9670;&nbsp;</a></span>SetPixelMode() <span class="overload">[2/2]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void olc::PixelGameEngine::SetPixelMode </td>
+          <td>(</td>
+          <td class="paramtype">std::function&lt; <a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a>(const int x, const int y, const <a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a> &amp;pSource, const <a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a> &amp;pDest)&gt;&#160;</td>
+          <td class="paramname"><em>pixelMode</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="abd403468f57f7665d56e202da8de8e76"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#abd403468f57f7665d56e202da8de8e76">&#9670;&nbsp;</a></span>SetScreenSize()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void olc::PixelGameEngine::SetScreenSize </td>
+          <td>(</td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>w</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>h</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a8e8848aa1c743a1ec2cdaa14c87e5cde"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a8e8848aa1c743a1ec2cdaa14c87e5cde">&#9670;&nbsp;</a></span>Start()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87b">olc::rcode</a> olc::PixelGameEngine::Start </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<h2 class="groupheader">Friends And Related Function Documentation</h2>
+<a id="a98fcee28f1a645fe0a29f6b6e6a5d7bb"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a98fcee28f1a645fe0a29f6b6e6a5d7bb">&#9670;&nbsp;</a></span>PGEX</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">friend class <a class="el" href="classolc_1_1_p_g_e_x.html">PGEX</a></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">friend</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="olc_pixel_game_engine_8h_source.html#l01106">1106</a> of file <a class="el" href="olc_pixel_game_engine_8h_source.html">olcPixelGameEngine.h</a>.</p>
+
+</div>
+</div>
+<h2 class="groupheader">Member Data Documentation</h2>
+<a id="a02d0f9c50770aa38aea1448f62d3604f"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a02d0f9c50770aa38aea1448f62d3604f">&#9670;&nbsp;</a></span>sAppName</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">std::string olc::PixelGameEngine::sAppName</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="olc_pixel_game_engine_8h_source.html#l01024">1024</a> of file <a class="el" href="olc_pixel_game_engine_8h_source.html">olcPixelGameEngine.h</a>.</p>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li>C:/Users/kosmx/Documents/GitHub/2d-game/<a class="el" href="olc_pixel_game_engine_8h_source.html">olcPixelGameEngine.h</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/classolc_1_1_pixel_game_engine.png b/doxy/html/classolc_1_1_pixel_game_engine.png
new file mode 100644
index 0000000000000000000000000000000000000000..462d03a47c55e066781d0a4ef14295a47dead653
Binary files /dev/null and b/doxy/html/classolc_1_1_pixel_game_engine.png differ
diff --git a/doxy/html/classolc_1_1_platform-members.html b/doxy/html/classolc_1_1_platform-members.html
new file mode 100644
index 0000000000000000000000000000000000000000..108eaff1ea95912d1792ff5db8e121b5ababd57f
--- /dev/null
+++ b/doxy/html/classolc_1_1_platform-members.html
@@ -0,0 +1,93 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="namespaceolc.html">olc</a></li><li class="navelem"><a class="el" href="classolc_1_1_platform.html">Platform</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">olc::Platform Member List</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="classolc_1_1_platform.html">olc::Platform</a>, including all inherited members.</p>
+<table class="directory">
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_platform.html#aec7a14ba9007d3c421481baa49e55669">ApplicationCleanUp</a>()=0</td><td class="entry"><a class="el" href="classolc_1_1_platform.html">olc::Platform</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_platform.html#a65e6f9763726056f6a9d37395b8ed023">ApplicationStartUp</a>()=0</td><td class="entry"><a class="el" href="classolc_1_1_platform.html">olc::Platform</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_platform.html#a2e951cdc0d8fd9bb68f05b33f1fd0450">CreateGraphics</a>(bool bFullScreen, bool bEnableVSYNC, const olc::vi2d &amp;vViewPos, const olc::vi2d &amp;vViewSize)=0</td><td class="entry"><a class="el" href="classolc_1_1_platform.html">olc::Platform</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_platform.html#a4966327ca7d5ff2b855b3a4eaf0f88f2">CreateWindowPane</a>(const olc::vi2d &amp;vWindowPos, olc::vi2d &amp;vWindowSize, bool bFullScreen)=0</td><td class="entry"><a class="el" href="classolc_1_1_platform.html">olc::Platform</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_platform.html#abbc05f4b3aea3513919b05fdb15bfbbc">HandleSystemEvent</a>()=0</td><td class="entry"><a class="el" href="classolc_1_1_platform.html">olc::Platform</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_platform.html#a43a4a5eaaf20384b9cef6aec6e75dbbd">ptrPGE</a></td><td class="entry"><a class="el" href="classolc_1_1_platform.html">olc::Platform</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_platform.html#ab9ea28ecd660730810463dd6c68b73fd">SetWindowTitle</a>(const std::string &amp;s)=0</td><td class="entry"><a class="el" href="classolc_1_1_platform.html">olc::Platform</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_platform.html#af58e24a992339020fa1ebf58a224b209">StartSystemEventLoop</a>()=0</td><td class="entry"><a class="el" href="classolc_1_1_platform.html">olc::Platform</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_platform.html#a0e4e37ccc06ae7f3251b7a53ce839c13">ThreadCleanUp</a>()=0</td><td class="entry"><a class="el" href="classolc_1_1_platform.html">olc::Platform</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_platform.html#ace0ea54aaa50143628b5fd41851b578f">ThreadStartUp</a>()=0</td><td class="entry"><a class="el" href="classolc_1_1_platform.html">olc::Platform</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_platform.html#a352f636fdc2e30bddac2db85238b166b">~Platform</a>()=default</td><td class="entry"><a class="el" href="classolc_1_1_platform.html">olc::Platform</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+</table></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/classolc_1_1_platform.html b/doxy/html/classolc_1_1_platform.html
new file mode 100644
index 0000000000000000000000000000000000000000..23f9d7a3d88ee0a75a58d8af7eeb7280e069a8ff
--- /dev/null
+++ b/doxy/html/classolc_1_1_platform.html
@@ -0,0 +1,438 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: olc::Platform Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="namespaceolc.html">olc</a></li><li class="navelem"><a class="el" href="classolc_1_1_platform.html">Platform</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="#pub-static-attribs">Static Public Attributes</a> &#124;
+<a href="classolc_1_1_platform-members.html">List of all members</a>  </div>
+  <div class="headertitle">
+<div class="title">olc::Platform Class Reference<span class="mlabels"><span class="mlabel">abstract</span></span></div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p><code>#include &lt;<a class="el" href="olc_pixel_game_engine_8h_source.html">olcPixelGameEngine.h</a>&gt;</code></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr class="memitem:a352f636fdc2e30bddac2db85238b166b"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_platform.html#a352f636fdc2e30bddac2db85238b166b">~Platform</a> ()=default</td></tr>
+<tr class="separator:a352f636fdc2e30bddac2db85238b166b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a65e6f9763726056f6a9d37395b8ed023"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87b">olc::rcode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_platform.html#a65e6f9763726056f6a9d37395b8ed023">ApplicationStartUp</a> ()=0</td></tr>
+<tr class="separator:a65e6f9763726056f6a9d37395b8ed023"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aec7a14ba9007d3c421481baa49e55669"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87b">olc::rcode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_platform.html#aec7a14ba9007d3c421481baa49e55669">ApplicationCleanUp</a> ()=0</td></tr>
+<tr class="separator:aec7a14ba9007d3c421481baa49e55669"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ace0ea54aaa50143628b5fd41851b578f"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87b">olc::rcode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_platform.html#ace0ea54aaa50143628b5fd41851b578f">ThreadStartUp</a> ()=0</td></tr>
+<tr class="separator:ace0ea54aaa50143628b5fd41851b578f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0e4e37ccc06ae7f3251b7a53ce839c13"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87b">olc::rcode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_platform.html#a0e4e37ccc06ae7f3251b7a53ce839c13">ThreadCleanUp</a> ()=0</td></tr>
+<tr class="separator:a0e4e37ccc06ae7f3251b7a53ce839c13"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2e951cdc0d8fd9bb68f05b33f1fd0450"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87b">olc::rcode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_platform.html#a2e951cdc0d8fd9bb68f05b33f1fd0450">CreateGraphics</a> (bool bFullScreen, bool bEnableVSYNC, const <a class="el" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">olc::vi2d</a> &amp;vViewPos, const <a class="el" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">olc::vi2d</a> &amp;vViewSize)=0</td></tr>
+<tr class="separator:a2e951cdc0d8fd9bb68f05b33f1fd0450"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4966327ca7d5ff2b855b3a4eaf0f88f2"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87b">olc::rcode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_platform.html#a4966327ca7d5ff2b855b3a4eaf0f88f2">CreateWindowPane</a> (const <a class="el" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">olc::vi2d</a> &amp;vWindowPos, <a class="el" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">olc::vi2d</a> &amp;vWindowSize, bool bFullScreen)=0</td></tr>
+<tr class="separator:a4966327ca7d5ff2b855b3a4eaf0f88f2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab9ea28ecd660730810463dd6c68b73fd"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87b">olc::rcode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_platform.html#ab9ea28ecd660730810463dd6c68b73fd">SetWindowTitle</a> (const std::string &amp;s)=0</td></tr>
+<tr class="separator:ab9ea28ecd660730810463dd6c68b73fd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af58e24a992339020fa1ebf58a224b209"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87b">olc::rcode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_platform.html#af58e24a992339020fa1ebf58a224b209">StartSystemEventLoop</a> ()=0</td></tr>
+<tr class="separator:af58e24a992339020fa1ebf58a224b209"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abbc05f4b3aea3513919b05fdb15bfbbc"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87b">olc::rcode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_platform.html#abbc05f4b3aea3513919b05fdb15bfbbc">HandleSystemEvent</a> ()=0</td></tr>
+<tr class="separator:abbc05f4b3aea3513919b05fdb15bfbbc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-attribs"></a>
+Static Public Attributes</h2></td></tr>
+<tr class="memitem:a43a4a5eaaf20384b9cef6aec6e75dbbd"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_platform.html#a43a4a5eaaf20384b9cef6aec6e75dbbd">ptrPGE</a></td></tr>
+<tr class="separator:a43a4a5eaaf20384b9cef6aec6e75dbbd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock">
+<p class="definition">Definition at line <a class="el" href="olc_pixel_game_engine_8h_source.html#l00829">829</a> of file <a class="el" href="olc_pixel_game_engine_8h_source.html">olcPixelGameEngine.h</a>.</p>
+</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
+<a id="a352f636fdc2e30bddac2db85238b166b"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a352f636fdc2e30bddac2db85238b166b">&#9670;&nbsp;</a></span>~Platform()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">virtual olc::Platform::~Platform </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">virtual</span><span class="mlabel">default</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<h2 class="groupheader">Member Function Documentation</h2>
+<a id="aec7a14ba9007d3c421481baa49e55669"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aec7a14ba9007d3c421481baa49e55669">&#9670;&nbsp;</a></span>ApplicationCleanUp()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">virtual <a class="el" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87b">olc::rcode</a> olc::Platform::ApplicationCleanUp </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a65e6f9763726056f6a9d37395b8ed023"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a65e6f9763726056f6a9d37395b8ed023">&#9670;&nbsp;</a></span>ApplicationStartUp()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">virtual <a class="el" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87b">olc::rcode</a> olc::Platform::ApplicationStartUp </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a2e951cdc0d8fd9bb68f05b33f1fd0450"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a2e951cdc0d8fd9bb68f05b33f1fd0450">&#9670;&nbsp;</a></span>CreateGraphics()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">virtual <a class="el" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87b">olc::rcode</a> olc::Platform::CreateGraphics </td>
+          <td>(</td>
+          <td class="paramtype">bool&#160;</td>
+          <td class="paramname"><em>bFullScreen</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">bool&#160;</td>
+          <td class="paramname"><em>bEnableVSYNC</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">olc::vi2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>vViewPos</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">olc::vi2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>vViewSize</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a4966327ca7d5ff2b855b3a4eaf0f88f2"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a4966327ca7d5ff2b855b3a4eaf0f88f2">&#9670;&nbsp;</a></span>CreateWindowPane()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">virtual <a class="el" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87b">olc::rcode</a> olc::Platform::CreateWindowPane </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">olc::vi2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>vWindowPos</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">olc::vi2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>vWindowSize</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">bool&#160;</td>
+          <td class="paramname"><em>bFullScreen</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="abbc05f4b3aea3513919b05fdb15bfbbc"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#abbc05f4b3aea3513919b05fdb15bfbbc">&#9670;&nbsp;</a></span>HandleSystemEvent()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">virtual <a class="el" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87b">olc::rcode</a> olc::Platform::HandleSystemEvent </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="ab9ea28ecd660730810463dd6c68b73fd"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ab9ea28ecd660730810463dd6c68b73fd">&#9670;&nbsp;</a></span>SetWindowTitle()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">virtual <a class="el" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87b">olc::rcode</a> olc::Platform::SetWindowTitle </td>
+          <td>(</td>
+          <td class="paramtype">const std::string &amp;&#160;</td>
+          <td class="paramname"><em>s</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="af58e24a992339020fa1ebf58a224b209"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#af58e24a992339020fa1ebf58a224b209">&#9670;&nbsp;</a></span>StartSystemEventLoop()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">virtual <a class="el" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87b">olc::rcode</a> olc::Platform::StartSystemEventLoop </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a0e4e37ccc06ae7f3251b7a53ce839c13"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a0e4e37ccc06ae7f3251b7a53ce839c13">&#9670;&nbsp;</a></span>ThreadCleanUp()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">virtual <a class="el" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87b">olc::rcode</a> olc::Platform::ThreadCleanUp </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="ace0ea54aaa50143628b5fd41851b578f"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ace0ea54aaa50143628b5fd41851b578f">&#9670;&nbsp;</a></span>ThreadStartUp()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">virtual <a class="el" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87b">olc::rcode</a> olc::Platform::ThreadStartUp </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<h2 class="groupheader">Member Data Documentation</h2>
+<a id="a43a4a5eaaf20384b9cef6aec6e75dbbd"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a43a4a5eaaf20384b9cef6aec6e75dbbd">&#9670;&nbsp;</a></span>ptrPGE</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a>* olc::Platform::ptrPGE</td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="olc_pixel_game_engine_8h_source.html#l00842">842</a> of file <a class="el" href="olc_pixel_game_engine_8h_source.html">olcPixelGameEngine.h</a>.</p>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li>C:/Users/kosmx/Documents/GitHub/2d-game/<a class="el" href="olc_pixel_game_engine_8h_source.html">olcPixelGameEngine.h</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/classolc_1_1_renderable-members.html b/doxy/html/classolc_1_1_renderable-members.html
new file mode 100644
index 0000000000000000000000000000000000000000..57af65e0257165e7bf1699aff69e20f743ac4d46
--- /dev/null
+++ b/doxy/html/classolc_1_1_renderable-members.html
@@ -0,0 +1,87 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="namespaceolc.html">olc</a></li><li class="navelem"><a class="el" href="classolc_1_1_renderable.html">Renderable</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">olc::Renderable Member List</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="classolc_1_1_renderable.html">olc::Renderable</a>, including all inherited members.</p>
+<table class="directory">
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_renderable.html#ab15a4441be7b48519d55296e416976fd">Create</a>(uint32_t width, uint32_t height, bool filter=false, bool clamp=true)</td><td class="entry"><a class="el" href="classolc_1_1_renderable.html">olc::Renderable</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_renderable.html#af6e5a2d5a46fe4f475c67ca5ab1b1f5d">Decal</a>() const</td><td class="entry"><a class="el" href="classolc_1_1_renderable.html">olc::Renderable</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_renderable.html#ace5d212d903d86bc9789f1af0f92096c">Load</a>(const std::string &amp;sFile, ResourcePack *pack=nullptr, bool filter=false, bool clamp=true)</td><td class="entry"><a class="el" href="classolc_1_1_renderable.html">olc::Renderable</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_renderable.html#affef9fb6b4810e59a7d14410f351ba37">Renderable</a>()=default</td><td class="entry"><a class="el" href="classolc_1_1_renderable.html">olc::Renderable</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_renderable.html#a8128a49bae0a3b40a5681d92cc01f52a">Sprite</a>() const</td><td class="entry"><a class="el" href="classolc_1_1_renderable.html">olc::Renderable</a></td><td class="entry"></td></tr>
+</table></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/classolc_1_1_renderable.html b/doxy/html/classolc_1_1_renderable.html
new file mode 100644
index 0000000000000000000000000000000000000000..bd114a50c9b5a7c8605833326a995a98a6b43a26
--- /dev/null
+++ b/doxy/html/classolc_1_1_renderable.html
@@ -0,0 +1,245 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: olc::Renderable Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="namespaceolc.html">olc</a></li><li class="navelem"><a class="el" href="classolc_1_1_renderable.html">Renderable</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="classolc_1_1_renderable-members.html">List of all members</a>  </div>
+  <div class="headertitle">
+<div class="title">olc::Renderable Class Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p><code>#include &lt;<a class="el" href="olc_pixel_game_engine_8h_source.html">olcPixelGameEngine.h</a>&gt;</code></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr class="memitem:affef9fb6b4810e59a7d14410f351ba37"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_renderable.html#affef9fb6b4810e59a7d14410f351ba37">Renderable</a> ()=default</td></tr>
+<tr class="separator:affef9fb6b4810e59a7d14410f351ba37"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ace5d212d903d86bc9789f1af0f92096c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87b">olc::rcode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_renderable.html#ace5d212d903d86bc9789f1af0f92096c">Load</a> (const std::string &amp;sFile, <a class="el" href="classolc_1_1_resource_pack.html">ResourcePack</a> *pack=nullptr, bool filter=false, bool clamp=true)</td></tr>
+<tr class="separator:ace5d212d903d86bc9789f1af0f92096c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab15a4441be7b48519d55296e416976fd"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_renderable.html#ab15a4441be7b48519d55296e416976fd">Create</a> (uint32_t width, uint32_t height, bool filter=false, bool clamp=true)</td></tr>
+<tr class="separator:ab15a4441be7b48519d55296e416976fd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af6e5a2d5a46fe4f475c67ca5ab1b1f5d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classolc_1_1_decal.html">olc::Decal</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_renderable.html#af6e5a2d5a46fe4f475c67ca5ab1b1f5d">Decal</a> () const</td></tr>
+<tr class="separator:af6e5a2d5a46fe4f475c67ca5ab1b1f5d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8128a49bae0a3b40a5681d92cc01f52a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classolc_1_1_sprite.html">olc::Sprite</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_renderable.html#a8128a49bae0a3b40a5681d92cc01f52a">Sprite</a> () const</td></tr>
+<tr class="separator:a8128a49bae0a3b40a5681d92cc01f52a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock">
+<p class="definition">Definition at line <a class="el" href="olc_pixel_game_engine_8h_source.html#l00764">764</a> of file <a class="el" href="olc_pixel_game_engine_8h_source.html">olcPixelGameEngine.h</a>.</p>
+</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
+<a id="affef9fb6b4810e59a7d14410f351ba37"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#affef9fb6b4810e59a7d14410f351ba37">&#9670;&nbsp;</a></span>Renderable()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">olc::Renderable::Renderable </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">default</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<h2 class="groupheader">Member Function Documentation</h2>
+<a id="ab15a4441be7b48519d55296e416976fd"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ab15a4441be7b48519d55296e416976fd">&#9670;&nbsp;</a></span>Create()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void olc::Renderable::Create </td>
+          <td>(</td>
+          <td class="paramtype">uint32_t&#160;</td>
+          <td class="paramname"><em>width</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">uint32_t&#160;</td>
+          <td class="paramname"><em>height</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">bool&#160;</td>
+          <td class="paramname"><em>filter</em> = <code>false</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">bool&#160;</td>
+          <td class="paramname"><em>clamp</em> = <code>true</code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="af6e5a2d5a46fe4f475c67ca5ab1b1f5d"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#af6e5a2d5a46fe4f475c67ca5ab1b1f5d">&#9670;&nbsp;</a></span>Decal()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classolc_1_1_decal.html">olc::Decal</a>* olc::Renderable::Decal </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td> const</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="ace5d212d903d86bc9789f1af0f92096c"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ace5d212d903d86bc9789f1af0f92096c">&#9670;&nbsp;</a></span>Load()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87b">olc::rcode</a> olc::Renderable::Load </td>
+          <td>(</td>
+          <td class="paramtype">const std::string &amp;&#160;</td>
+          <td class="paramname"><em>sFile</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="classolc_1_1_resource_pack.html">ResourcePack</a> *&#160;</td>
+          <td class="paramname"><em>pack</em> = <code>nullptr</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">bool&#160;</td>
+          <td class="paramname"><em>filter</em> = <code>false</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">bool&#160;</td>
+          <td class="paramname"><em>clamp</em> = <code>true</code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a8128a49bae0a3b40a5681d92cc01f52a"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a8128a49bae0a3b40a5681d92cc01f52a">&#9670;&nbsp;</a></span>Sprite()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classolc_1_1_sprite.html">olc::Sprite</a>* olc::Renderable::Sprite </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td> const</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li>C:/Users/kosmx/Documents/GitHub/2d-game/<a class="el" href="olc_pixel_game_engine_8h_source.html">olcPixelGameEngine.h</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/classolc_1_1_renderer-members.html b/doxy/html/classolc_1_1_renderer-members.html
new file mode 100644
index 0000000000000000000000000000000000000000..6d9831e0599e29a98ed0523454b6f83c4083205c
--- /dev/null
+++ b/doxy/html/classolc_1_1_renderer-members.html
@@ -0,0 +1,99 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="namespaceolc.html">olc</a></li><li class="navelem"><a class="el" href="classolc_1_1_renderer.html">Renderer</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">olc::Renderer Member List</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="classolc_1_1_renderer.html">olc::Renderer</a>, including all inherited members.</p>
+<table class="directory">
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_renderer.html#a0a87094df3c911860a0eec9a8bb3b060">ApplyTexture</a>(uint32_t id)=0</td><td class="entry"><a class="el" href="classolc_1_1_renderer.html">olc::Renderer</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_renderer.html#a921406bc341efd881ca510c64cebdc26">ClearBuffer</a>(olc::Pixel p, bool bDepth)=0</td><td class="entry"><a class="el" href="classolc_1_1_renderer.html">olc::Renderer</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_renderer.html#a28c87db87f8fd9b0f356db5d01499992">CreateDevice</a>(std::vector&lt; void * &gt; params, bool bFullScreen, bool bVSYNC)=0</td><td class="entry"><a class="el" href="classolc_1_1_renderer.html">olc::Renderer</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_renderer.html#aeac898aaf282d09a9cd848303de57bea">CreateTexture</a>(const uint32_t width, const uint32_t height, const bool filtered=false, const bool clamp=true)=0</td><td class="entry"><a class="el" href="classolc_1_1_renderer.html">olc::Renderer</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_renderer.html#aec8e86eb7a104fb0bc8f9fe51318f1a0">DeleteTexture</a>(const uint32_t id)=0</td><td class="entry"><a class="el" href="classolc_1_1_renderer.html">olc::Renderer</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_renderer.html#a3a59a195cc380f89e5f9cc98b6fda2c7">DestroyDevice</a>()=0</td><td class="entry"><a class="el" href="classolc_1_1_renderer.html">olc::Renderer</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_renderer.html#a660f3ca709b2a2fcec1d1cba1a4cfd18">DisplayFrame</a>()=0</td><td class="entry"><a class="el" href="classolc_1_1_renderer.html">olc::Renderer</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_renderer.html#ac567df937350bffb2eae3e647ccc10d5">DrawDecal</a>(const olc::DecalInstance &amp;decal)=0</td><td class="entry"><a class="el" href="classolc_1_1_renderer.html">olc::Renderer</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_renderer.html#a3eccca504615e72d1f40acd03ffce89f">DrawLayerQuad</a>(const olc::vf2d &amp;offset, const olc::vf2d &amp;scale, const olc::Pixel tint)=0</td><td class="entry"><a class="el" href="classolc_1_1_renderer.html">olc::Renderer</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_renderer.html#a7d97cab172e59d23a2587f636c9b12b7">PrepareDevice</a>()=0</td><td class="entry"><a class="el" href="classolc_1_1_renderer.html">olc::Renderer</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_renderer.html#a04c56d76c76ab50f5f06b9b537e9d98d">PrepareDrawing</a>()=0</td><td class="entry"><a class="el" href="classolc_1_1_renderer.html">olc::Renderer</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_renderer.html#a89f800c14ab1b070408c17e2589e02a1">ptrPGE</a></td><td class="entry"><a class="el" href="classolc_1_1_renderer.html">olc::Renderer</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_renderer.html#aa0e93a7d9ff6f25e9b154b2c8c86d44d">ReadTexture</a>(uint32_t id, olc::Sprite *spr)=0</td><td class="entry"><a class="el" href="classolc_1_1_renderer.html">olc::Renderer</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_renderer.html#aebfc5a561c54b88f16a0b3d855eedaa1">SetDecalMode</a>(const olc::DecalMode &amp;mode)=0</td><td class="entry"><a class="el" href="classolc_1_1_renderer.html">olc::Renderer</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_renderer.html#a1512e2939b94f6fdb58bbf152ac0e4e5">UpdateTexture</a>(uint32_t id, olc::Sprite *spr)=0</td><td class="entry"><a class="el" href="classolc_1_1_renderer.html">olc::Renderer</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_renderer.html#abc873336dd8f9079dc26f92ce0f95748">UpdateViewport</a>(const olc::vi2d &amp;pos, const olc::vi2d &amp;size)=0</td><td class="entry"><a class="el" href="classolc_1_1_renderer.html">olc::Renderer</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_renderer.html#a877048a1bcf3decfe544804f0e4e1ad9">~Renderer</a>()=default</td><td class="entry"><a class="el" href="classolc_1_1_renderer.html">olc::Renderer</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+</table></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/classolc_1_1_renderer.html b/doxy/html/classolc_1_1_renderer.html
new file mode 100644
index 0000000000000000000000000000000000000000..4f908e4f898c61de320dbeb8d700806e5db2c5c6
--- /dev/null
+++ b/doxy/html/classolc_1_1_renderer.html
@@ -0,0 +1,664 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: olc::Renderer Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="namespaceolc.html">olc</a></li><li class="navelem"><a class="el" href="classolc_1_1_renderer.html">Renderer</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="#pub-static-attribs">Static Public Attributes</a> &#124;
+<a href="classolc_1_1_renderer-members.html">List of all members</a>  </div>
+  <div class="headertitle">
+<div class="title">olc::Renderer Class Reference<span class="mlabels"><span class="mlabel">abstract</span></span></div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p><code>#include &lt;<a class="el" href="olc_pixel_game_engine_8h_source.html">olcPixelGameEngine.h</a>&gt;</code></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr class="memitem:a877048a1bcf3decfe544804f0e4e1ad9"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_renderer.html#a877048a1bcf3decfe544804f0e4e1ad9">~Renderer</a> ()=default</td></tr>
+<tr class="separator:a877048a1bcf3decfe544804f0e4e1ad9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7d97cab172e59d23a2587f636c9b12b7"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_renderer.html#a7d97cab172e59d23a2587f636c9b12b7">PrepareDevice</a> ()=0</td></tr>
+<tr class="separator:a7d97cab172e59d23a2587f636c9b12b7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a28c87db87f8fd9b0f356db5d01499992"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87b">olc::rcode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_renderer.html#a28c87db87f8fd9b0f356db5d01499992">CreateDevice</a> (std::vector&lt; void * &gt; params, bool bFullScreen, bool bVSYNC)=0</td></tr>
+<tr class="separator:a28c87db87f8fd9b0f356db5d01499992"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3a59a195cc380f89e5f9cc98b6fda2c7"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87b">olc::rcode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_renderer.html#a3a59a195cc380f89e5f9cc98b6fda2c7">DestroyDevice</a> ()=0</td></tr>
+<tr class="separator:a3a59a195cc380f89e5f9cc98b6fda2c7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a660f3ca709b2a2fcec1d1cba1a4cfd18"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_renderer.html#a660f3ca709b2a2fcec1d1cba1a4cfd18">DisplayFrame</a> ()=0</td></tr>
+<tr class="separator:a660f3ca709b2a2fcec1d1cba1a4cfd18"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a04c56d76c76ab50f5f06b9b537e9d98d"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_renderer.html#a04c56d76c76ab50f5f06b9b537e9d98d">PrepareDrawing</a> ()=0</td></tr>
+<tr class="separator:a04c56d76c76ab50f5f06b9b537e9d98d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aebfc5a561c54b88f16a0b3d855eedaa1"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_renderer.html#aebfc5a561c54b88f16a0b3d855eedaa1">SetDecalMode</a> (const <a class="el" href="namespaceolc.html#aeda642f63378f868193c28e8613138ca">olc::DecalMode</a> &amp;mode)=0</td></tr>
+<tr class="separator:aebfc5a561c54b88f16a0b3d855eedaa1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3eccca504615e72d1f40acd03ffce89f"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_renderer.html#a3eccca504615e72d1f40acd03ffce89f">DrawLayerQuad</a> (const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;offset, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;scale, const <a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a> tint)=0</td></tr>
+<tr class="separator:a3eccca504615e72d1f40acd03ffce89f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac567df937350bffb2eae3e647ccc10d5"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_renderer.html#ac567df937350bffb2eae3e647ccc10d5">DrawDecal</a> (const <a class="el" href="structolc_1_1_decal_instance.html">olc::DecalInstance</a> &amp;decal)=0</td></tr>
+<tr class="separator:ac567df937350bffb2eae3e647ccc10d5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aeac898aaf282d09a9cd848303de57bea"><td class="memItemLeft" align="right" valign="top">virtual uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_renderer.html#aeac898aaf282d09a9cd848303de57bea">CreateTexture</a> (const uint32_t width, const uint32_t height, const bool filtered=false, const bool clamp=true)=0</td></tr>
+<tr class="separator:aeac898aaf282d09a9cd848303de57bea"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1512e2939b94f6fdb58bbf152ac0e4e5"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_renderer.html#a1512e2939b94f6fdb58bbf152ac0e4e5">UpdateTexture</a> (uint32_t id, <a class="el" href="classolc_1_1_sprite.html">olc::Sprite</a> *spr)=0</td></tr>
+<tr class="separator:a1512e2939b94f6fdb58bbf152ac0e4e5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa0e93a7d9ff6f25e9b154b2c8c86d44d"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_renderer.html#aa0e93a7d9ff6f25e9b154b2c8c86d44d">ReadTexture</a> (uint32_t id, <a class="el" href="classolc_1_1_sprite.html">olc::Sprite</a> *spr)=0</td></tr>
+<tr class="separator:aa0e93a7d9ff6f25e9b154b2c8c86d44d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aec8e86eb7a104fb0bc8f9fe51318f1a0"><td class="memItemLeft" align="right" valign="top">virtual uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_renderer.html#aec8e86eb7a104fb0bc8f9fe51318f1a0">DeleteTexture</a> (const uint32_t id)=0</td></tr>
+<tr class="separator:aec8e86eb7a104fb0bc8f9fe51318f1a0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0a87094df3c911860a0eec9a8bb3b060"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_renderer.html#a0a87094df3c911860a0eec9a8bb3b060">ApplyTexture</a> (uint32_t id)=0</td></tr>
+<tr class="separator:a0a87094df3c911860a0eec9a8bb3b060"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abc873336dd8f9079dc26f92ce0f95748"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_renderer.html#abc873336dd8f9079dc26f92ce0f95748">UpdateViewport</a> (const <a class="el" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">olc::vi2d</a> &amp;pos, const <a class="el" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">olc::vi2d</a> &amp;size)=0</td></tr>
+<tr class="separator:abc873336dd8f9079dc26f92ce0f95748"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a921406bc341efd881ca510c64cebdc26"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_renderer.html#a921406bc341efd881ca510c64cebdc26">ClearBuffer</a> (<a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a> p, bool bDepth)=0</td></tr>
+<tr class="separator:a921406bc341efd881ca510c64cebdc26"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-attribs"></a>
+Static Public Attributes</h2></td></tr>
+<tr class="memitem:a89f800c14ab1b070408c17e2589e02a1"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_renderer.html#a89f800c14ab1b070408c17e2589e02a1">ptrPGE</a></td></tr>
+<tr class="separator:a89f800c14ab1b070408c17e2589e02a1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock">
+<p class="definition">Definition at line <a class="el" href="olc_pixel_game_engine_8h_source.html#l00807">807</a> of file <a class="el" href="olc_pixel_game_engine_8h_source.html">olcPixelGameEngine.h</a>.</p>
+</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
+<a id="a877048a1bcf3decfe544804f0e4e1ad9"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a877048a1bcf3decfe544804f0e4e1ad9">&#9670;&nbsp;</a></span>~Renderer()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">virtual olc::Renderer::~Renderer </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">virtual</span><span class="mlabel">default</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<h2 class="groupheader">Member Function Documentation</h2>
+<a id="a0a87094df3c911860a0eec9a8bb3b060"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a0a87094df3c911860a0eec9a8bb3b060">&#9670;&nbsp;</a></span>ApplyTexture()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">virtual void olc::Renderer::ApplyTexture </td>
+          <td>(</td>
+          <td class="paramtype">uint32_t&#160;</td>
+          <td class="paramname"><em>id</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a921406bc341efd881ca510c64cebdc26"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a921406bc341efd881ca510c64cebdc26">&#9670;&nbsp;</a></span>ClearBuffer()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">virtual void olc::Renderer::ClearBuffer </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a>&#160;</td>
+          <td class="paramname"><em>p</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">bool&#160;</td>
+          <td class="paramname"><em>bDepth</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a28c87db87f8fd9b0f356db5d01499992"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a28c87db87f8fd9b0f356db5d01499992">&#9670;&nbsp;</a></span>CreateDevice()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">virtual <a class="el" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87b">olc::rcode</a> olc::Renderer::CreateDevice </td>
+          <td>(</td>
+          <td class="paramtype">std::vector&lt; void * &gt;&#160;</td>
+          <td class="paramname"><em>params</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">bool&#160;</td>
+          <td class="paramname"><em>bFullScreen</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">bool&#160;</td>
+          <td class="paramname"><em>bVSYNC</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="aeac898aaf282d09a9cd848303de57bea"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aeac898aaf282d09a9cd848303de57bea">&#9670;&nbsp;</a></span>CreateTexture()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">virtual uint32_t olc::Renderer::CreateTexture </td>
+          <td>(</td>
+          <td class="paramtype">const uint32_t&#160;</td>
+          <td class="paramname"><em>width</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const uint32_t&#160;</td>
+          <td class="paramname"><em>height</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const bool&#160;</td>
+          <td class="paramname"><em>filtered</em> = <code>false</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const bool&#160;</td>
+          <td class="paramname"><em>clamp</em> = <code>true</code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="aec8e86eb7a104fb0bc8f9fe51318f1a0"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aec8e86eb7a104fb0bc8f9fe51318f1a0">&#9670;&nbsp;</a></span>DeleteTexture()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">virtual uint32_t olc::Renderer::DeleteTexture </td>
+          <td>(</td>
+          <td class="paramtype">const uint32_t&#160;</td>
+          <td class="paramname"><em>id</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a3a59a195cc380f89e5f9cc98b6fda2c7"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a3a59a195cc380f89e5f9cc98b6fda2c7">&#9670;&nbsp;</a></span>DestroyDevice()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">virtual <a class="el" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87b">olc::rcode</a> olc::Renderer::DestroyDevice </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a660f3ca709b2a2fcec1d1cba1a4cfd18"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a660f3ca709b2a2fcec1d1cba1a4cfd18">&#9670;&nbsp;</a></span>DisplayFrame()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">virtual void olc::Renderer::DisplayFrame </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="ac567df937350bffb2eae3e647ccc10d5"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ac567df937350bffb2eae3e647ccc10d5">&#9670;&nbsp;</a></span>DrawDecal()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">virtual void olc::Renderer::DrawDecal </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="structolc_1_1_decal_instance.html">olc::DecalInstance</a> &amp;&#160;</td>
+          <td class="paramname"><em>decal</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a3eccca504615e72d1f40acd03ffce89f"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a3eccca504615e72d1f40acd03ffce89f">&#9670;&nbsp;</a></span>DrawLayerQuad()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">virtual void olc::Renderer::DrawLayerQuad </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>offset</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>scale</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a>&#160;</td>
+          <td class="paramname"><em>tint</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a7d97cab172e59d23a2587f636c9b12b7"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a7d97cab172e59d23a2587f636c9b12b7">&#9670;&nbsp;</a></span>PrepareDevice()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">virtual void olc::Renderer::PrepareDevice </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a04c56d76c76ab50f5f06b9b537e9d98d"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a04c56d76c76ab50f5f06b9b537e9d98d">&#9670;&nbsp;</a></span>PrepareDrawing()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">virtual void olc::Renderer::PrepareDrawing </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="aa0e93a7d9ff6f25e9b154b2c8c86d44d"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aa0e93a7d9ff6f25e9b154b2c8c86d44d">&#9670;&nbsp;</a></span>ReadTexture()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">virtual void olc::Renderer::ReadTexture </td>
+          <td>(</td>
+          <td class="paramtype">uint32_t&#160;</td>
+          <td class="paramname"><em>id</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="classolc_1_1_sprite.html">olc::Sprite</a> *&#160;</td>
+          <td class="paramname"><em>spr</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="aebfc5a561c54b88f16a0b3d855eedaa1"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aebfc5a561c54b88f16a0b3d855eedaa1">&#9670;&nbsp;</a></span>SetDecalMode()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">virtual void olc::Renderer::SetDecalMode </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#aeda642f63378f868193c28e8613138ca">olc::DecalMode</a> &amp;&#160;</td>
+          <td class="paramname"><em>mode</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a1512e2939b94f6fdb58bbf152ac0e4e5"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a1512e2939b94f6fdb58bbf152ac0e4e5">&#9670;&nbsp;</a></span>UpdateTexture()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">virtual void olc::Renderer::UpdateTexture </td>
+          <td>(</td>
+          <td class="paramtype">uint32_t&#160;</td>
+          <td class="paramname"><em>id</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="classolc_1_1_sprite.html">olc::Sprite</a> *&#160;</td>
+          <td class="paramname"><em>spr</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="abc873336dd8f9079dc26f92ce0f95748"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#abc873336dd8f9079dc26f92ce0f95748">&#9670;&nbsp;</a></span>UpdateViewport()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">virtual void olc::Renderer::UpdateViewport </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">olc::vi2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>pos</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">olc::vi2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>size</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<h2 class="groupheader">Member Data Documentation</h2>
+<a id="a89f800c14ab1b070408c17e2589e02a1"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a89f800c14ab1b070408c17e2589e02a1">&#9670;&nbsp;</a></span>ptrPGE</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a>* olc::Renderer::ptrPGE</td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="olc_pixel_game_engine_8h_source.html#l00826">826</a> of file <a class="el" href="olc_pixel_game_engine_8h_source.html">olcPixelGameEngine.h</a>.</p>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li>C:/Users/kosmx/Documents/GitHub/2d-game/<a class="el" href="olc_pixel_game_engine_8h_source.html">olcPixelGameEngine.h</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/classolc_1_1_resource_pack-members.html b/doxy/html/classolc_1_1_resource_pack-members.html
new file mode 100644
index 0000000000000000000000000000000000000000..d38c6d04d696e027c4ee2c2378b0cac897ccb706
--- /dev/null
+++ b/doxy/html/classolc_1_1_resource_pack-members.html
@@ -0,0 +1,89 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="namespaceolc.html">olc</a></li><li class="navelem"><a class="el" href="classolc_1_1_resource_pack.html">ResourcePack</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">olc::ResourcePack Member List</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="classolc_1_1_resource_pack.html">olc::ResourcePack</a>, including all inherited members.</p>
+<table class="directory">
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_resource_pack.html#a56eebc321c66215d15df1390b1080c66">AddFile</a>(const std::string &amp;sFile)</td><td class="entry"><a class="el" href="classolc_1_1_resource_pack.html">olc::ResourcePack</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_resource_pack.html#accb89668e145dc59e0740925b1b91987">GetFileBuffer</a>(const std::string &amp;sFile)</td><td class="entry"><a class="el" href="classolc_1_1_resource_pack.html">olc::ResourcePack</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_resource_pack.html#a4421c33c022ad042d29ef81f29f5b355">Loaded</a>()</td><td class="entry"><a class="el" href="classolc_1_1_resource_pack.html">olc::ResourcePack</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_resource_pack.html#a3168eef974448f8119e93af97272df27">LoadPack</a>(const std::string &amp;sFile, const std::string &amp;sKey)</td><td class="entry"><a class="el" href="classolc_1_1_resource_pack.html">olc::ResourcePack</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_resource_pack.html#af5b7f93e4fb4e8b899da50985b689083">ResourcePack</a>()</td><td class="entry"><a class="el" href="classolc_1_1_resource_pack.html">olc::ResourcePack</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_resource_pack.html#af6b1fec791c3c85b51b565db63a1aa9a">SavePack</a>(const std::string &amp;sFile, const std::string &amp;sKey)</td><td class="entry"><a class="el" href="classolc_1_1_resource_pack.html">olc::ResourcePack</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_resource_pack.html#a7e48d44ecdac3d4a2eec7bb5a5eb1ec5">~ResourcePack</a>()</td><td class="entry"><a class="el" href="classolc_1_1_resource_pack.html">olc::ResourcePack</a></td><td class="entry"></td></tr>
+</table></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/classolc_1_1_resource_pack.html b/doxy/html/classolc_1_1_resource_pack.html
new file mode 100644
index 0000000000000000000000000000000000000000..e87f1505bd7bea213cefb1df0fe3315d789890bb
--- /dev/null
+++ b/doxy/html/classolc_1_1_resource_pack.html
@@ -0,0 +1,260 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: olc::ResourcePack Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="namespaceolc.html">olc</a></li><li class="navelem"><a class="el" href="classolc_1_1_resource_pack.html">ResourcePack</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#nested-classes">Classes</a> &#124;
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="classolc_1_1_resource_pack-members.html">List of all members</a>  </div>
+  <div class="headertitle">
+<div class="title">olc::ResourcePack Class Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p><code>#include &lt;<a class="el" href="olc_pixel_game_engine_8h_source.html">olcPixelGameEngine.h</a>&gt;</code></p>
+<div class="dynheader">
+Inheritance diagram for olc::ResourcePack:</div>
+<div class="dyncontent">
+ <div class="center">
+  <img src="classolc_1_1_resource_pack.png" alt=""/>
+ </div></div>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr class="memitem:af5b7f93e4fb4e8b899da50985b689083"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_resource_pack.html#af5b7f93e4fb4e8b899da50985b689083">ResourcePack</a> ()</td></tr>
+<tr class="separator:af5b7f93e4fb4e8b899da50985b689083"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7e48d44ecdac3d4a2eec7bb5a5eb1ec5"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_resource_pack.html#a7e48d44ecdac3d4a2eec7bb5a5eb1ec5">~ResourcePack</a> ()</td></tr>
+<tr class="separator:a7e48d44ecdac3d4a2eec7bb5a5eb1ec5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a56eebc321c66215d15df1390b1080c66"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_resource_pack.html#a56eebc321c66215d15df1390b1080c66">AddFile</a> (const std::string &amp;sFile)</td></tr>
+<tr class="separator:a56eebc321c66215d15df1390b1080c66"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3168eef974448f8119e93af97272df27"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_resource_pack.html#a3168eef974448f8119e93af97272df27">LoadPack</a> (const std::string &amp;sFile, const std::string &amp;sKey)</td></tr>
+<tr class="separator:a3168eef974448f8119e93af97272df27"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af6b1fec791c3c85b51b565db63a1aa9a"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_resource_pack.html#af6b1fec791c3c85b51b565db63a1aa9a">SavePack</a> (const std::string &amp;sFile, const std::string &amp;sKey)</td></tr>
+<tr class="separator:af6b1fec791c3c85b51b565db63a1aa9a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:accb89668e145dc59e0740925b1b91987"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structolc_1_1_resource_buffer.html">ResourceBuffer</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_resource_pack.html#accb89668e145dc59e0740925b1b91987">GetFileBuffer</a> (const std::string &amp;sFile)</td></tr>
+<tr class="separator:accb89668e145dc59e0740925b1b91987"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4421c33c022ad042d29ef81f29f5b355"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_resource_pack.html#a4421c33c022ad042d29ef81f29f5b355">Loaded</a> ()</td></tr>
+<tr class="separator:a4421c33c022ad042d29ef81f29f5b355"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock">
+<p class="definition">Definition at line <a class="el" href="olc_pixel_game_engine_8h_source.html#l00664">664</a> of file <a class="el" href="olc_pixel_game_engine_8h_source.html">olcPixelGameEngine.h</a>.</p>
+</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
+<a id="af5b7f93e4fb4e8b899da50985b689083"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#af5b7f93e4fb4e8b899da50985b689083">&#9670;&nbsp;</a></span>ResourcePack()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">olc::ResourcePack::ResourcePack </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a7e48d44ecdac3d4a2eec7bb5a5eb1ec5"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a7e48d44ecdac3d4a2eec7bb5a5eb1ec5">&#9670;&nbsp;</a></span>~ResourcePack()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">olc::ResourcePack::~ResourcePack </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<h2 class="groupheader">Member Function Documentation</h2>
+<a id="a56eebc321c66215d15df1390b1080c66"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a56eebc321c66215d15df1390b1080c66">&#9670;&nbsp;</a></span>AddFile()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">bool olc::ResourcePack::AddFile </td>
+          <td>(</td>
+          <td class="paramtype">const std::string &amp;&#160;</td>
+          <td class="paramname"><em>sFile</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="accb89668e145dc59e0740925b1b91987"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#accb89668e145dc59e0740925b1b91987">&#9670;&nbsp;</a></span>GetFileBuffer()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structolc_1_1_resource_buffer.html">ResourceBuffer</a> olc::ResourcePack::GetFileBuffer </td>
+          <td>(</td>
+          <td class="paramtype">const std::string &amp;&#160;</td>
+          <td class="paramname"><em>sFile</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a4421c33c022ad042d29ef81f29f5b355"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a4421c33c022ad042d29ef81f29f5b355">&#9670;&nbsp;</a></span>Loaded()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">bool olc::ResourcePack::Loaded </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a3168eef974448f8119e93af97272df27"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a3168eef974448f8119e93af97272df27">&#9670;&nbsp;</a></span>LoadPack()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">bool olc::ResourcePack::LoadPack </td>
+          <td>(</td>
+          <td class="paramtype">const std::string &amp;&#160;</td>
+          <td class="paramname"><em>sFile</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const std::string &amp;&#160;</td>
+          <td class="paramname"><em>sKey</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="af6b1fec791c3c85b51b565db63a1aa9a"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#af6b1fec791c3c85b51b565db63a1aa9a">&#9670;&nbsp;</a></span>SavePack()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">bool olc::ResourcePack::SavePack </td>
+          <td>(</td>
+          <td class="paramtype">const std::string &amp;&#160;</td>
+          <td class="paramname"><em>sFile</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const std::string &amp;&#160;</td>
+          <td class="paramname"><em>sKey</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li>C:/Users/kosmx/Documents/GitHub/2d-game/<a class="el" href="olc_pixel_game_engine_8h_source.html">olcPixelGameEngine.h</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/classolc_1_1_resource_pack.png b/doxy/html/classolc_1_1_resource_pack.png
new file mode 100644
index 0000000000000000000000000000000000000000..3d69b4df8c985493f8e23fa96066dff0886f7a57
Binary files /dev/null and b/doxy/html/classolc_1_1_resource_pack.png differ
diff --git a/doxy/html/classolc_1_1_sprite-members.html b/doxy/html/classolc_1_1_sprite-members.html
new file mode 100644
index 0000000000000000000000000000000000000000..aa8f50adf9b0cf001ed0625c0d3bf2ee0cb54c90
--- /dev/null
+++ b/doxy/html/classolc_1_1_sprite-members.html
@@ -0,0 +1,112 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="namespaceolc.html">olc</a></li><li class="navelem"><a class="el" href="classolc_1_1_sprite.html">Sprite</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">olc::Sprite Member List</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="classolc_1_1_sprite.html">olc::Sprite</a>, including all inherited members.</p>
+<table class="directory">
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_sprite.html#a0b9399ba5d6df0b481ab16d8c4a28ded">Duplicate</a>()</td><td class="entry"><a class="el" href="classolc_1_1_sprite.html">olc::Sprite</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_sprite.html#ac4307f400438dad18b0720cc034bec0b">Duplicate</a>(const olc::vi2d &amp;vPos, const olc::vi2d &amp;vSize)</td><td class="entry"><a class="el" href="classolc_1_1_sprite.html">olc::Sprite</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_sprite.html#ad0d1976d2060997f5cd99eb284a5dc24">Flip</a> enum name</td><td class="entry"><a class="el" href="classolc_1_1_sprite.html">olc::Sprite</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_sprite.html#ad8fcc6bbf8a785aa0bb9d00bf3cfdff2">GetData</a>()</td><td class="entry"><a class="el" href="classolc_1_1_sprite.html">olc::Sprite</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_sprite.html#a7e1f8169c9822f1ed94f0212d3f8d6f6">GetPixel</a>(int32_t x, int32_t y) const</td><td class="entry"><a class="el" href="classolc_1_1_sprite.html">olc::Sprite</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_sprite.html#a1a05e4ffd8d8b24b99ab511279b342cf">GetPixel</a>(const olc::vi2d &amp;a) const</td><td class="entry"><a class="el" href="classolc_1_1_sprite.html">olc::Sprite</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_sprite.html#ab05010cb1a5ff6c36267d0050d568d96">height</a></td><td class="entry"><a class="el" href="classolc_1_1_sprite.html">olc::Sprite</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_sprite.html#ad0d1976d2060997f5cd99eb284a5dc24a2ff5b18e468156f629a10c5b515d78cd">HORIZ</a> enum value</td><td class="entry"><a class="el" href="classolc_1_1_sprite.html">olc::Sprite</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_sprite.html#a023da26661031ebf7a276cafd9a43902">loader</a></td><td class="entry"><a class="el" href="classolc_1_1_sprite.html">olc::Sprite</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_sprite.html#adc277c0342733a4aa8dcdc9152326fec">LoadFromFile</a>(const std::string &amp;sImageFile, olc::ResourcePack *pack=nullptr)</td><td class="entry"><a class="el" href="classolc_1_1_sprite.html">olc::Sprite</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_sprite.html#a6959a2d94d6c02b7918aec5ce9b1a371">LoadFromPGESprFile</a>(const std::string &amp;sImageFile, olc::ResourcePack *pack=nullptr)</td><td class="entry"><a class="el" href="classolc_1_1_sprite.html">olc::Sprite</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_sprite.html#a78b7f14903f9f0bb536b66c37f3139cf">Mode</a> enum name</td><td class="entry"><a class="el" href="classolc_1_1_sprite.html">olc::Sprite</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_sprite.html#ab9182b86e829467f454c7ef630ebc9fb">modeSample</a></td><td class="entry"><a class="el" href="classolc_1_1_sprite.html">olc::Sprite</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_sprite.html#ad0d1976d2060997f5cd99eb284a5dc24a6ad338b4e63faacfbed68b020c3a0c0c">NONE</a> enum value</td><td class="entry"><a class="el" href="classolc_1_1_sprite.html">olc::Sprite</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_sprite.html#a78b7f14903f9f0bb536b66c37f3139cfa1128b229a2ab5d7b344aeefd329252a1">NORMAL</a> enum value</td><td class="entry"><a class="el" href="classolc_1_1_sprite.html">olc::Sprite</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_sprite.html#adb41a2041dfe14de9605dabcd905db60">pColData</a></td><td class="entry"><a class="el" href="classolc_1_1_sprite.html">olc::Sprite</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_sprite.html#a78b7f14903f9f0bb536b66c37f3139cfa3185e8dea4ea5a89d7ea66716c67a175">PERIODIC</a> enum value</td><td class="entry"><a class="el" href="classolc_1_1_sprite.html">olc::Sprite</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_sprite.html#a902192f81ab42420921992a7288aab48">Sample</a>(float x, float y) const</td><td class="entry"><a class="el" href="classolc_1_1_sprite.html">olc::Sprite</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_sprite.html#a5e28024237453fb56c32f37d6996443d">SampleBL</a>(float u, float v) const</td><td class="entry"><a class="el" href="classolc_1_1_sprite.html">olc::Sprite</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_sprite.html#a1f1b2a3f1fd932a6a14faa622a2918bf">SaveToPGESprFile</a>(const std::string &amp;sImageFile)</td><td class="entry"><a class="el" href="classolc_1_1_sprite.html">olc::Sprite</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_sprite.html#a294389e93a95c8307f1260d7cacaf9ba">SetPixel</a>(int32_t x, int32_t y, Pixel p)</td><td class="entry"><a class="el" href="classolc_1_1_sprite.html">olc::Sprite</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_sprite.html#ae7b8af09a29793ab16b7b813c8b0d26d">SetPixel</a>(const olc::vi2d &amp;a, Pixel p)</td><td class="entry"><a class="el" href="classolc_1_1_sprite.html">olc::Sprite</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_sprite.html#a78f4fcf41780cfc547f21e5a0dea03a2">SetSampleMode</a>(olc::Sprite::Mode mode=olc::Sprite::Mode::NORMAL)</td><td class="entry"><a class="el" href="classolc_1_1_sprite.html">olc::Sprite</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_sprite.html#aaf231565550d294ef20bf31364562ec3">Sprite</a>()</td><td class="entry"><a class="el" href="classolc_1_1_sprite.html">olc::Sprite</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_sprite.html#ad8ce71f2399a2721aff9234390a18b8e">Sprite</a>(const std::string &amp;sImageFile, olc::ResourcePack *pack=nullptr)</td><td class="entry"><a class="el" href="classolc_1_1_sprite.html">olc::Sprite</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_sprite.html#a3e452a040fc2680228b1e6a7b6b9890e">Sprite</a>(int32_t w, int32_t h)</td><td class="entry"><a class="el" href="classolc_1_1_sprite.html">olc::Sprite</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_sprite.html#a5b0190890ed98560125b2ae4db9a7d9f">Sprite</a>(const olc::Sprite &amp;)=delete</td><td class="entry"><a class="el" href="classolc_1_1_sprite.html">olc::Sprite</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_sprite.html#ad0d1976d2060997f5cd99eb284a5dc24a7d2b99d18b574e41332e569d141914c5">VERT</a> enum value</td><td class="entry"><a class="el" href="classolc_1_1_sprite.html">olc::Sprite</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_sprite.html#af055800e63204ae372ca0812e6926230">width</a></td><td class="entry"><a class="el" href="classolc_1_1_sprite.html">olc::Sprite</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_sprite.html#a594abc52842c29e4a5417adf57fb877e">~Sprite</a>()</td><td class="entry"><a class="el" href="classolc_1_1_sprite.html">olc::Sprite</a></td><td class="entry"></td></tr>
+</table></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/classolc_1_1_sprite.html b/doxy/html/classolc_1_1_sprite.html
new file mode 100644
index 0000000000000000000000000000000000000000..a54c6ee547ec117f4fb08aa84e955c06b69955eb
--- /dev/null
+++ b/doxy/html/classolc_1_1_sprite.html
@@ -0,0 +1,728 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: olc::Sprite Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="namespaceolc.html">olc</a></li><li class="navelem"><a class="el" href="classolc_1_1_sprite.html">Sprite</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#pub-types">Public Types</a> &#124;
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="#pub-attribs">Public Attributes</a> &#124;
+<a href="#pub-static-attribs">Static Public Attributes</a> &#124;
+<a href="classolc_1_1_sprite-members.html">List of all members</a>  </div>
+  <div class="headertitle">
+<div class="title">olc::Sprite Class Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p><code>#include &lt;<a class="el" href="olc_pixel_game_engine_8h_source.html">olcPixelGameEngine.h</a>&gt;</code></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
+Public Types</h2></td></tr>
+<tr class="memitem:a78b7f14903f9f0bb536b66c37f3139cf"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_sprite.html#a78b7f14903f9f0bb536b66c37f3139cf">Mode</a> { <a class="el" href="classolc_1_1_sprite.html#a78b7f14903f9f0bb536b66c37f3139cfa1128b229a2ab5d7b344aeefd329252a1">NORMAL</a>, 
+<a class="el" href="classolc_1_1_sprite.html#a78b7f14903f9f0bb536b66c37f3139cfa3185e8dea4ea5a89d7ea66716c67a175">PERIODIC</a>
+ }</td></tr>
+<tr class="separator:a78b7f14903f9f0bb536b66c37f3139cf"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad0d1976d2060997f5cd99eb284a5dc24"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_sprite.html#ad0d1976d2060997f5cd99eb284a5dc24">Flip</a> { <a class="el" href="classolc_1_1_sprite.html#ad0d1976d2060997f5cd99eb284a5dc24a6ad338b4e63faacfbed68b020c3a0c0c">NONE</a> = 0, 
+<a class="el" href="classolc_1_1_sprite.html#ad0d1976d2060997f5cd99eb284a5dc24a2ff5b18e468156f629a10c5b515d78cd">HORIZ</a> = 1, 
+<a class="el" href="classolc_1_1_sprite.html#ad0d1976d2060997f5cd99eb284a5dc24a7d2b99d18b574e41332e569d141914c5">VERT</a> = 2
+ }</td></tr>
+<tr class="separator:ad0d1976d2060997f5cd99eb284a5dc24"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr class="memitem:aaf231565550d294ef20bf31364562ec3"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_sprite.html#aaf231565550d294ef20bf31364562ec3">Sprite</a> ()</td></tr>
+<tr class="separator:aaf231565550d294ef20bf31364562ec3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad8ce71f2399a2721aff9234390a18b8e"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_sprite.html#ad8ce71f2399a2721aff9234390a18b8e">Sprite</a> (const std::string &amp;sImageFile, <a class="el" href="classolc_1_1_resource_pack.html">olc::ResourcePack</a> *pack=nullptr)</td></tr>
+<tr class="separator:ad8ce71f2399a2721aff9234390a18b8e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3e452a040fc2680228b1e6a7b6b9890e"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_sprite.html#a3e452a040fc2680228b1e6a7b6b9890e">Sprite</a> (int32_t w, int32_t h)</td></tr>
+<tr class="separator:a3e452a040fc2680228b1e6a7b6b9890e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5b0190890ed98560125b2ae4db9a7d9f"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_sprite.html#a5b0190890ed98560125b2ae4db9a7d9f">Sprite</a> (const <a class="el" href="classolc_1_1_sprite.html">olc::Sprite</a> &amp;)=delete</td></tr>
+<tr class="separator:a5b0190890ed98560125b2ae4db9a7d9f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a594abc52842c29e4a5417adf57fb877e"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_sprite.html#a594abc52842c29e4a5417adf57fb877e">~Sprite</a> ()</td></tr>
+<tr class="separator:a594abc52842c29e4a5417adf57fb877e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:adc277c0342733a4aa8dcdc9152326fec"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87b">olc::rcode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_sprite.html#adc277c0342733a4aa8dcdc9152326fec">LoadFromFile</a> (const std::string &amp;sImageFile, <a class="el" href="classolc_1_1_resource_pack.html">olc::ResourcePack</a> *pack=nullptr)</td></tr>
+<tr class="separator:adc277c0342733a4aa8dcdc9152326fec"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6959a2d94d6c02b7918aec5ce9b1a371"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87b">olc::rcode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_sprite.html#a6959a2d94d6c02b7918aec5ce9b1a371">LoadFromPGESprFile</a> (const std::string &amp;sImageFile, <a class="el" href="classolc_1_1_resource_pack.html">olc::ResourcePack</a> *pack=nullptr)</td></tr>
+<tr class="separator:a6959a2d94d6c02b7918aec5ce9b1a371"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1f1b2a3f1fd932a6a14faa622a2918bf"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87b">olc::rcode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_sprite.html#a1f1b2a3f1fd932a6a14faa622a2918bf">SaveToPGESprFile</a> (const std::string &amp;sImageFile)</td></tr>
+<tr class="separator:a1f1b2a3f1fd932a6a14faa622a2918bf"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a78f4fcf41780cfc547f21e5a0dea03a2"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_sprite.html#a78f4fcf41780cfc547f21e5a0dea03a2">SetSampleMode</a> (<a class="el" href="classolc_1_1_sprite.html#a78b7f14903f9f0bb536b66c37f3139cf">olc::Sprite::Mode</a> mode=olc::Sprite::Mode::NORMAL)</td></tr>
+<tr class="separator:a78f4fcf41780cfc547f21e5a0dea03a2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7e1f8169c9822f1ed94f0212d3f8d6f6"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structolc_1_1_pixel.html">Pixel</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_sprite.html#a7e1f8169c9822f1ed94f0212d3f8d6f6">GetPixel</a> (int32_t x, int32_t y) const</td></tr>
+<tr class="separator:a7e1f8169c9822f1ed94f0212d3f8d6f6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a294389e93a95c8307f1260d7cacaf9ba"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_sprite.html#a294389e93a95c8307f1260d7cacaf9ba">SetPixel</a> (int32_t x, int32_t y, <a class="el" href="structolc_1_1_pixel.html">Pixel</a> p)</td></tr>
+<tr class="separator:a294389e93a95c8307f1260d7cacaf9ba"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1a05e4ffd8d8b24b99ab511279b342cf"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structolc_1_1_pixel.html">Pixel</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_sprite.html#a1a05e4ffd8d8b24b99ab511279b342cf">GetPixel</a> (const <a class="el" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">olc::vi2d</a> &amp;a) const</td></tr>
+<tr class="separator:a1a05e4ffd8d8b24b99ab511279b342cf"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae7b8af09a29793ab16b7b813c8b0d26d"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_sprite.html#ae7b8af09a29793ab16b7b813c8b0d26d">SetPixel</a> (const <a class="el" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">olc::vi2d</a> &amp;a, <a class="el" href="structolc_1_1_pixel.html">Pixel</a> p)</td></tr>
+<tr class="separator:ae7b8af09a29793ab16b7b813c8b0d26d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a902192f81ab42420921992a7288aab48"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structolc_1_1_pixel.html">Pixel</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_sprite.html#a902192f81ab42420921992a7288aab48">Sample</a> (float x, float y) const</td></tr>
+<tr class="separator:a902192f81ab42420921992a7288aab48"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5e28024237453fb56c32f37d6996443d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structolc_1_1_pixel.html">Pixel</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_sprite.html#a5e28024237453fb56c32f37d6996443d">SampleBL</a> (float u, float v) const</td></tr>
+<tr class="separator:a5e28024237453fb56c32f37d6996443d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad8fcc6bbf8a785aa0bb9d00bf3cfdff2"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structolc_1_1_pixel.html">Pixel</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_sprite.html#ad8fcc6bbf8a785aa0bb9d00bf3cfdff2">GetData</a> ()</td></tr>
+<tr class="separator:ad8fcc6bbf8a785aa0bb9d00bf3cfdff2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0b9399ba5d6df0b481ab16d8c4a28ded"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classolc_1_1_sprite.html">olc::Sprite</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_sprite.html#a0b9399ba5d6df0b481ab16d8c4a28ded">Duplicate</a> ()</td></tr>
+<tr class="separator:a0b9399ba5d6df0b481ab16d8c4a28ded"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac4307f400438dad18b0720cc034bec0b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classolc_1_1_sprite.html">olc::Sprite</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_sprite.html#ac4307f400438dad18b0720cc034bec0b">Duplicate</a> (const <a class="el" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">olc::vi2d</a> &amp;vPos, const <a class="el" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">olc::vi2d</a> &amp;vSize)</td></tr>
+<tr class="separator:ac4307f400438dad18b0720cc034bec0b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+Public Attributes</h2></td></tr>
+<tr class="memitem:af055800e63204ae372ca0812e6926230"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_sprite.html#af055800e63204ae372ca0812e6926230">width</a> = 0</td></tr>
+<tr class="separator:af055800e63204ae372ca0812e6926230"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab05010cb1a5ff6c36267d0050d568d96"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_sprite.html#ab05010cb1a5ff6c36267d0050d568d96">height</a> = 0</td></tr>
+<tr class="separator:ab05010cb1a5ff6c36267d0050d568d96"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:adb41a2041dfe14de9605dabcd905db60"><td class="memItemLeft" align="right" valign="top">std::vector&lt; <a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_sprite.html#adb41a2041dfe14de9605dabcd905db60">pColData</a></td></tr>
+<tr class="separator:adb41a2041dfe14de9605dabcd905db60"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab9182b86e829467f454c7ef630ebc9fb"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classolc_1_1_sprite.html#a78b7f14903f9f0bb536b66c37f3139cf">Mode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_sprite.html#ab9182b86e829467f454c7ef630ebc9fb">modeSample</a> = Mode::NORMAL</td></tr>
+<tr class="separator:ab9182b86e829467f454c7ef630ebc9fb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-attribs"></a>
+Static Public Attributes</h2></td></tr>
+<tr class="memitem:a023da26661031ebf7a276cafd9a43902"><td class="memItemLeft" align="right" valign="top">static std::unique_ptr&lt; <a class="el" href="classolc_1_1_image_loader.html">olc::ImageLoader</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_sprite.html#a023da26661031ebf7a276cafd9a43902">loader</a></td></tr>
+<tr class="separator:a023da26661031ebf7a276cafd9a43902"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock">
+<p class="definition">Definition at line <a class="el" href="olc_pixel_game_engine_8h_source.html#l00696">696</a> of file <a class="el" href="olc_pixel_game_engine_8h_source.html">olcPixelGameEngine.h</a>.</p>
+</div><h2 class="groupheader">Member Enumeration Documentation</h2>
+<a id="ad0d1976d2060997f5cd99eb284a5dc24"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ad0d1976d2060997f5cd99eb284a5dc24">&#9670;&nbsp;</a></span>Flip</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">enum <a class="el" href="classolc_1_1_sprite.html#ad0d1976d2060997f5cd99eb284a5dc24">olc::Sprite::Flip</a></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<table class="fieldtable">
+<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="ad0d1976d2060997f5cd99eb284a5dc24a6ad338b4e63faacfbed68b020c3a0c0c"></a>NONE&#160;</td><td class="fielddoc"></td></tr>
+<tr><td class="fieldname"><a id="ad0d1976d2060997f5cd99eb284a5dc24a2ff5b18e468156f629a10c5b515d78cd"></a>HORIZ&#160;</td><td class="fielddoc"></td></tr>
+<tr><td class="fieldname"><a id="ad0d1976d2060997f5cd99eb284a5dc24a7d2b99d18b574e41332e569d141914c5"></a>VERT&#160;</td><td class="fielddoc"></td></tr>
+</table>
+
+<p class="definition">Definition at line <a class="el" href="olc_pixel_game_engine_8h_source.html#l00714">714</a> of file <a class="el" href="olc_pixel_game_engine_8h_source.html">olcPixelGameEngine.h</a>.</p>
+
+</div>
+</div>
+<a id="a78b7f14903f9f0bb536b66c37f3139cf"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a78b7f14903f9f0bb536b66c37f3139cf">&#9670;&nbsp;</a></span>Mode</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">enum <a class="el" href="classolc_1_1_sprite.html#a78b7f14903f9f0bb536b66c37f3139cf">olc::Sprite::Mode</a></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<table class="fieldtable">
+<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="a78b7f14903f9f0bb536b66c37f3139cfa1128b229a2ab5d7b344aeefd329252a1"></a>NORMAL&#160;</td><td class="fielddoc"></td></tr>
+<tr><td class="fieldname"><a id="a78b7f14903f9f0bb536b66c37f3139cfa3185e8dea4ea5a89d7ea66716c67a175"></a>PERIODIC&#160;</td><td class="fielddoc"></td></tr>
+</table>
+
+<p class="definition">Definition at line <a class="el" href="olc_pixel_game_engine_8h_source.html#l00713">713</a> of file <a class="el" href="olc_pixel_game_engine_8h_source.html">olcPixelGameEngine.h</a>.</p>
+
+</div>
+</div>
+<h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
+<a id="aaf231565550d294ef20bf31364562ec3"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aaf231565550d294ef20bf31364562ec3">&#9670;&nbsp;</a></span>Sprite() <span class="overload">[1/4]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">olc::Sprite::Sprite </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="ad8ce71f2399a2721aff9234390a18b8e"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ad8ce71f2399a2721aff9234390a18b8e">&#9670;&nbsp;</a></span>Sprite() <span class="overload">[2/4]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">olc::Sprite::Sprite </td>
+          <td>(</td>
+          <td class="paramtype">const std::string &amp;&#160;</td>
+          <td class="paramname"><em>sImageFile</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="classolc_1_1_resource_pack.html">olc::ResourcePack</a> *&#160;</td>
+          <td class="paramname"><em>pack</em> = <code>nullptr</code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a3e452a040fc2680228b1e6a7b6b9890e"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a3e452a040fc2680228b1e6a7b6b9890e">&#9670;&nbsp;</a></span>Sprite() <span class="overload">[3/4]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">olc::Sprite::Sprite </td>
+          <td>(</td>
+          <td class="paramtype">int32_t&#160;</td>
+          <td class="paramname"><em>w</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int32_t&#160;</td>
+          <td class="paramname"><em>h</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a5b0190890ed98560125b2ae4db9a7d9f"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a5b0190890ed98560125b2ae4db9a7d9f">&#9670;&nbsp;</a></span>Sprite() <span class="overload">[4/4]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">olc::Sprite::Sprite </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="classolc_1_1_sprite.html">olc::Sprite</a> &amp;&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">delete</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a594abc52842c29e4a5417adf57fb877e"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a594abc52842c29e4a5417adf57fb877e">&#9670;&nbsp;</a></span>~Sprite()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">olc::Sprite::~Sprite </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<h2 class="groupheader">Member Function Documentation</h2>
+<a id="a0b9399ba5d6df0b481ab16d8c4a28ded"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a0b9399ba5d6df0b481ab16d8c4a28ded">&#9670;&nbsp;</a></span>Duplicate() <span class="overload">[1/2]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classolc_1_1_sprite.html">olc::Sprite</a>* olc::Sprite::Duplicate </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="ac4307f400438dad18b0720cc034bec0b"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ac4307f400438dad18b0720cc034bec0b">&#9670;&nbsp;</a></span>Duplicate() <span class="overload">[2/2]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classolc_1_1_sprite.html">olc::Sprite</a>* olc::Sprite::Duplicate </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">olc::vi2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>vPos</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">olc::vi2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>vSize</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="ad8fcc6bbf8a785aa0bb9d00bf3cfdff2"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ad8fcc6bbf8a785aa0bb9d00bf3cfdff2">&#9670;&nbsp;</a></span>GetData()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structolc_1_1_pixel.html">Pixel</a>* olc::Sprite::GetData </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a1a05e4ffd8d8b24b99ab511279b342cf"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a1a05e4ffd8d8b24b99ab511279b342cf">&#9670;&nbsp;</a></span>GetPixel() <span class="overload">[1/2]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structolc_1_1_pixel.html">Pixel</a> olc::Sprite::GetPixel </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">olc::vi2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>a</em></td><td>)</td>
+          <td> const</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a7e1f8169c9822f1ed94f0212d3f8d6f6"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a7e1f8169c9822f1ed94f0212d3f8d6f6">&#9670;&nbsp;</a></span>GetPixel() <span class="overload">[2/2]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structolc_1_1_pixel.html">Pixel</a> olc::Sprite::GetPixel </td>
+          <td>(</td>
+          <td class="paramtype">int32_t&#160;</td>
+          <td class="paramname"><em>x</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int32_t&#160;</td>
+          <td class="paramname"><em>y</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td> const</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="adc277c0342733a4aa8dcdc9152326fec"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#adc277c0342733a4aa8dcdc9152326fec">&#9670;&nbsp;</a></span>LoadFromFile()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87b">olc::rcode</a> olc::Sprite::LoadFromFile </td>
+          <td>(</td>
+          <td class="paramtype">const std::string &amp;&#160;</td>
+          <td class="paramname"><em>sImageFile</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="classolc_1_1_resource_pack.html">olc::ResourcePack</a> *&#160;</td>
+          <td class="paramname"><em>pack</em> = <code>nullptr</code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a6959a2d94d6c02b7918aec5ce9b1a371"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a6959a2d94d6c02b7918aec5ce9b1a371">&#9670;&nbsp;</a></span>LoadFromPGESprFile()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87b">olc::rcode</a> olc::Sprite::LoadFromPGESprFile </td>
+          <td>(</td>
+          <td class="paramtype">const std::string &amp;&#160;</td>
+          <td class="paramname"><em>sImageFile</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="classolc_1_1_resource_pack.html">olc::ResourcePack</a> *&#160;</td>
+          <td class="paramname"><em>pack</em> = <code>nullptr</code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a902192f81ab42420921992a7288aab48"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a902192f81ab42420921992a7288aab48">&#9670;&nbsp;</a></span>Sample()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structolc_1_1_pixel.html">Pixel</a> olc::Sprite::Sample </td>
+          <td>(</td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>x</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>y</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td> const</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a5e28024237453fb56c32f37d6996443d"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a5e28024237453fb56c32f37d6996443d">&#9670;&nbsp;</a></span>SampleBL()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structolc_1_1_pixel.html">Pixel</a> olc::Sprite::SampleBL </td>
+          <td>(</td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>u</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>v</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td> const</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a1f1b2a3f1fd932a6a14faa622a2918bf"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a1f1b2a3f1fd932a6a14faa622a2918bf">&#9670;&nbsp;</a></span>SaveToPGESprFile()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87b">olc::rcode</a> olc::Sprite::SaveToPGESprFile </td>
+          <td>(</td>
+          <td class="paramtype">const std::string &amp;&#160;</td>
+          <td class="paramname"><em>sImageFile</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="ae7b8af09a29793ab16b7b813c8b0d26d"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ae7b8af09a29793ab16b7b813c8b0d26d">&#9670;&nbsp;</a></span>SetPixel() <span class="overload">[1/2]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">bool olc::Sprite::SetPixel </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">olc::vi2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>a</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structolc_1_1_pixel.html">Pixel</a>&#160;</td>
+          <td class="paramname"><em>p</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a294389e93a95c8307f1260d7cacaf9ba"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a294389e93a95c8307f1260d7cacaf9ba">&#9670;&nbsp;</a></span>SetPixel() <span class="overload">[2/2]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">bool olc::Sprite::SetPixel </td>
+          <td>(</td>
+          <td class="paramtype">int32_t&#160;</td>
+          <td class="paramname"><em>x</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int32_t&#160;</td>
+          <td class="paramname"><em>y</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structolc_1_1_pixel.html">Pixel</a>&#160;</td>
+          <td class="paramname"><em>p</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a78f4fcf41780cfc547f21e5a0dea03a2"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a78f4fcf41780cfc547f21e5a0dea03a2">&#9670;&nbsp;</a></span>SetSampleMode()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void olc::Sprite::SetSampleMode </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="classolc_1_1_sprite.html#a78b7f14903f9f0bb536b66c37f3139cf">olc::Sprite::Mode</a>&#160;</td>
+          <td class="paramname"><em>mode</em> = <code>olc::Sprite::Mode::NORMAL</code></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<h2 class="groupheader">Member Data Documentation</h2>
+<a id="ab05010cb1a5ff6c36267d0050d568d96"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ab05010cb1a5ff6c36267d0050d568d96">&#9670;&nbsp;</a></span>height</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int32_t olc::Sprite::height = 0</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="olc_pixel_game_engine_8h_source.html#l00712">712</a> of file <a class="el" href="olc_pixel_game_engine_8h_source.html">olcPixelGameEngine.h</a>.</p>
+
+</div>
+</div>
+<a id="a023da26661031ebf7a276cafd9a43902"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a023da26661031ebf7a276cafd9a43902">&#9670;&nbsp;</a></span>loader</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">std::unique_ptr&lt;<a class="el" href="classolc_1_1_image_loader.html">olc::ImageLoader</a>&gt; olc::Sprite::loader</td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="olc_pixel_game_engine_8h_source.html#l00730">730</a> of file <a class="el" href="olc_pixel_game_engine_8h_source.html">olcPixelGameEngine.h</a>.</p>
+
+</div>
+</div>
+<a id="ab9182b86e829467f454c7ef630ebc9fb"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ab9182b86e829467f454c7ef630ebc9fb">&#9670;&nbsp;</a></span>modeSample</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classolc_1_1_sprite.html#a78b7f14903f9f0bb536b66c37f3139cf">Mode</a> olc::Sprite::modeSample = Mode::NORMAL</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="olc_pixel_game_engine_8h_source.html#l00728">728</a> of file <a class="el" href="olc_pixel_game_engine_8h_source.html">olcPixelGameEngine.h</a>.</p>
+
+</div>
+</div>
+<a id="adb41a2041dfe14de9605dabcd905db60"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#adb41a2041dfe14de9605dabcd905db60">&#9670;&nbsp;</a></span>pColData</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">std::vector&lt;<a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a>&gt; olc::Sprite::pColData</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="olc_pixel_game_engine_8h_source.html#l00727">727</a> of file <a class="el" href="olc_pixel_game_engine_8h_source.html">olcPixelGameEngine.h</a>.</p>
+
+</div>
+</div>
+<a id="af055800e63204ae372ca0812e6926230"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#af055800e63204ae372ca0812e6926230">&#9670;&nbsp;</a></span>width</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int32_t olc::Sprite::width = 0</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="olc_pixel_game_engine_8h_source.html#l00711">711</a> of file <a class="el" href="olc_pixel_game_engine_8h_source.html">olcPixelGameEngine.h</a>.</p>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li>C:/Users/kosmx/Documents/GitHub/2d-game/<a class="el" href="olc_pixel_game_engine_8h_source.html">olcPixelGameEngine.h</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/classolc_1_1_tile_transformed_view-members.html b/doxy/html/classolc_1_1_tile_transformed_view-members.html
new file mode 100644
index 0000000000000000000000000000000000000000..9c3a02b9890a203064c601328fe6d24fbd1b5fd7
--- /dev/null
+++ b/doxy/html/classolc_1_1_tile_transformed_view-members.html
@@ -0,0 +1,165 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="namespaceolc.html">olc</a></li><li class="navelem"><a class="el" href="classolc_1_1_tile_transformed_view.html">TileTransformedView</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">olc::TileTransformedView Member List</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="classolc_1_1_tile_transformed_view.html">olc::TileTransformedView</a>, including all inherited members.</p>
+<table class="directory">
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html#a09a214f47f9e4f5e85a8d3bd224ab9b1">Draw</a>(float x, float y, olc::Pixel p=olc::WHITE)</td><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html#a2509ea7aa54013b9b0caa7a265818511">Draw</a>(const olc::vf2d &amp;pos, olc::Pixel p=olc::WHITE)</td><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html#abbf0590764bbacdd35a4d0adc6e69b84">DrawCircle</a>(float x, float y, float radius, olc::Pixel p=olc::WHITE, uint8_t mask=0xFF)</td><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html#aa7edb61f256624bad3e5d5847f0eef88">DrawCircle</a>(const olc::vf2d &amp;pos, float radius, olc::Pixel p=olc::WHITE, uint8_t mask=0xFF)</td><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html#a8bad23f424184f2e15f32deb7f179160">DrawDecal</a>(const olc::vf2d &amp;pos, olc::Decal *decal, const olc::vf2d &amp;scale={ 1.0f, 1.0f }, const olc::Pixel &amp;tint=olc::WHITE)</td><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html#ac133c5f498e18dc4bcf6a087c7f8b356">DrawExplicitDecal</a>(olc::Decal *decal, const olc::vf2d *pos, const olc::vf2d *uv, const olc::Pixel *col, uint32_t elements=4)</td><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html#a2564b30474cab1de208a9b220ddbc181">DrawLine</a>(float x1, float y1, float x2, float y2, olc::Pixel p=olc::WHITE, uint32_t pattern=0xFFFFFFFF)</td><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html#a60a961188fe9a5cb60258c1b4d8cf498">DrawLine</a>(const olc::vf2d &amp;pos1, const olc::vf2d &amp;pos2, olc::Pixel p=olc::WHITE, uint32_t pattern=0xFFFFFFFF)</td><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html#a1daefdb27499350eb3927c79ec60bca5">DrawPartialDecal</a>(const olc::vf2d &amp;pos, olc::Decal *decal, const olc::vf2d &amp;source_pos, const olc::vf2d &amp;source_size, const olc::vf2d &amp;scale={ 1.0f, 1.0f }, const olc::Pixel &amp;tint=olc::WHITE)</td><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html#a03ef78202a55d896cd86eb16f39b8847">DrawPartialDecal</a>(const olc::vf2d &amp;pos, const olc::vf2d &amp;size, olc::Decal *decal, const olc::vf2d &amp;source_pos, const olc::vf2d &amp;source_size, const olc::Pixel &amp;tint=olc::WHITE)</td><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html#a3f2574c761a0045641fd2f5f9b194184">DrawPartialRotatedDecal</a>(const olc::vf2d &amp;pos, olc::Decal *decal, const float fAngle, const olc::vf2d &amp;center, const olc::vf2d &amp;source_pos, const olc::vf2d &amp;source_size, const olc::vf2d &amp;scale={ 1.0f, 1.0f }, const olc::Pixel &amp;tint=olc::WHITE)</td><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html#a829557257985bb738baad577ed0ed7a0">DrawPartialSprite</a>(float x, float y, Sprite *sprite, int32_t ox, int32_t oy, int32_t w, int32_t h, float scalex=1, float scaley=1, uint8_t flip=olc::Sprite::NONE)</td><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html#a0c6e1fb72399ec97e0dc093a2da80d50">DrawPartialSprite</a>(const olc::vf2d &amp;pos, Sprite *sprite, const olc::vi2d &amp;sourcepos, const olc::vi2d &amp;size, const olc::vf2d &amp;scale={ 1.0f, 1.0f }, uint8_t flip=olc::Sprite::NONE)</td><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html#a17bf0d6a35728abe95993ef5475aa767">DrawPartialWarpedDecal</a>(olc::Decal *decal, const olc::vf2d(&amp;pos)[4], const olc::vf2d &amp;source_pos, const olc::vf2d &amp;source_size, const olc::Pixel &amp;tint=olc::WHITE)</td><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html#a88045b492c61288a7e5ca1eb164ad2fb">DrawPartialWarpedDecal</a>(olc::Decal *decal, const olc::vf2d *pos, const olc::vf2d &amp;source_pos, const olc::vf2d &amp;source_size, const olc::Pixel &amp;tint=olc::WHITE)</td><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html#a624730b2582152c4cc49d457bc140859">DrawPartialWarpedDecal</a>(olc::Decal *decal, const std::array&lt; olc::vf2d, 4 &gt; &amp;pos, const olc::vf2d &amp;source_pos, const olc::vf2d &amp;source_size, const olc::Pixel &amp;tint=olc::WHITE)</td><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html#a0555577738d2edacb8b8e701d90804d7">DrawPolygonDecal</a>(olc::Decal *decal, const std::vector&lt; olc::vf2d &gt; &amp;pos, const std::vector&lt; olc::vf2d &gt; &amp;uv, const olc::Pixel tint=olc::WHITE)</td><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html#ab1578748552d35bff05e63dcfc79cfb9">DrawRect</a>(float x, float y, float w, float h, olc::Pixel p=olc::WHITE)</td><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html#a2ce6891b49d600eacb32eef88f07b2e0">DrawRect</a>(const olc::vf2d &amp;pos, const olc::vf2d &amp;size, olc::Pixel p=olc::WHITE)</td><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html#a0d11f6c9ddf0cda25a7b6a79c39c61d6">DrawRotatedDecal</a>(const olc::vf2d &amp;pos, olc::Decal *decal, const float fAngle, const olc::vf2d &amp;center={ 0.0f, 0.0f }, const olc::vf2d &amp;scale={ 1.0f, 1.0f }, const olc::Pixel &amp;tint=olc::WHITE)</td><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html#a0814eafdbf34c4570c08722998b3c936">DrawSprite</a>(float x, float y, olc::Sprite *sprite, float scalex=1, float scaley=1, uint8_t flip=olc::Sprite::NONE)</td><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html#a44f1c98c6c6720338d7b6dcc9117cb03">DrawSprite</a>(const olc::vf2d &amp;pos, olc::Sprite *sprite, const olc::vf2d &amp;scale={ 1.0f, 1.0f }, uint8_t flip=olc::Sprite::NONE)</td><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html#acf22577cab34db667d05eae0e38000e0">DrawString</a>(float x, float y, const std::string &amp;sText, Pixel col, const olc::vf2d &amp;scale)</td><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html#ab8e4acce21674331d91910c7056c59a3">DrawString</a>(const olc::vf2d &amp;pos, const std::string &amp;sText, const Pixel col, const olc::vf2d &amp;scale)</td><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html#a903ad811f1e3f99d8c6e35f1a1aaf9bf">DrawStringDecal</a>(const olc::vf2d &amp;pos, const std::string &amp;sText, const olc::Pixel col=olc::WHITE, const olc::vf2d &amp;scale={ 1.0f, 1.0f })</td><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html#afde48a1dc4946bfb3718c19bdf62b328">DrawStringPropDecal</a>(const olc::vf2d &amp;pos, const std::string &amp;sText, const olc::Pixel col=olc::WHITE, const olc::vf2d &amp;scale={ 1.0f, 1.0f })</td><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html#a6c818747c7fa97445fbb40c9f222e865">DrawTriangle</a>(float x1, float y1, float x2, float y2, float x3, float y3, olc::Pixel p=olc::WHITE)</td><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html#a45a659d55d124e87e956e842963637fa">DrawTriangle</a>(const olc::vf2d &amp;pos1, const olc::vf2d &amp;pos2, const olc::vf2d &amp;pos3, olc::Pixel p=olc::WHITE)</td><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html#a2c0e827b1182696275583059a1a72412">DrawWarpedDecal</a>(olc::Decal *decal, const olc::vf2d(&amp;pos)[4], const olc::Pixel &amp;tint=olc::WHITE)</td><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html#a250badf6257c666f0e0a07ed3d86ad9e">DrawWarpedDecal</a>(olc::Decal *decal, const olc::vf2d *pos, const olc::Pixel &amp;tint=olc::WHITE)</td><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html#a615fda4662913d6a1fc2764025c28efc">DrawWarpedDecal</a>(olc::Decal *decal, const std::array&lt; olc::vf2d, 4 &gt; &amp;pos, const olc::Pixel &amp;tint=olc::WHITE)</td><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html#a3edd680172e1ae5b710290ab58d617e0">EndPan</a>(const olc::vi2d &amp;vPos)</td><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html#afd3f4dffe3a2fffaed2fd6c84e40ce23">FillCircle</a>(float x, float y, float radius, olc::Pixel p=olc::WHITE)</td><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html#a8d8559f74de40982e41f9cab0577b3b9">FillCircle</a>(const olc::vf2d &amp;pos, float radius, olc::Pixel p=olc::WHITE)</td><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html#a2f12ada82c7262a2e29572cfded60f02">FillRect</a>(float x, float y, float w, float h, olc::Pixel p=olc::WHITE)</td><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html#abc3071fe6fa5f9ca4c5fe227a335df54">FillRect</a>(const olc::vf2d &amp;pos, const olc::vf2d &amp;size, olc::Pixel p=olc::WHITE)</td><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html#a82f6eeb19d315324c160aa78fd2ead70">FillRectDecal</a>(const olc::vf2d &amp;pos, const olc::vf2d &amp;size, const olc::Pixel col=olc::WHITE)</td><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html#a5cba545151923f38fd5d87b2c130a894">FillTriangle</a>(float x1, float y1, float x2, float y2, float x3, float y3, olc::Pixel p=olc::WHITE)</td><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html#a023149966b61d7f233898c2b4372d018">FillTriangle</a>(const olc::vf2d &amp;pos1, const olc::vf2d &amp;pos2, const olc::vf2d &amp;pos3, olc::Pixel p=olc::WHITE)</td><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_tile_transformed_view.html#af681fe11952b2a791a388c79054adc1f">GetBottomRightTile</a>() const</td><td class="entry"><a class="el" href="classolc_1_1_tile_transformed_view.html">olc::TileTransformedView</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_tile_transformed_view.html#afd338a68b965309beeefa3f239a0680b">GetTileOffset</a>() const</td><td class="entry"><a class="el" href="classolc_1_1_tile_transformed_view.html">olc::TileTransformedView</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_tile_transformed_view.html#a1a963a55248ff021b76ecc8e92a555e6">GetTileUnderScreenPos</a>(const olc::vi2d &amp;vPos) const</td><td class="entry"><a class="el" href="classolc_1_1_tile_transformed_view.html">olc::TileTransformedView</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_tile_transformed_view.html#a9230a04b74c812551768b324a07bf2a3">GetTopLeftTile</a>() const</td><td class="entry"><a class="el" href="classolc_1_1_tile_transformed_view.html">olc::TileTransformedView</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_tile_transformed_view.html#abc2e3898f7bb8209d84095cc5c16843b">GetVisibleTiles</a>() const</td><td class="entry"><a class="el" href="classolc_1_1_tile_transformed_view.html">olc::TileTransformedView</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html#a5240bf2a7285559be13c80f3ce2a97a3">GetWorldBR</a>() const</td><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html#a88152a5f5b9fbb3df0f6d965ef4c4fe4">GetWorldOffset</a>() const</td><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html#a4f6ba5d2c58b720677f4287743713f65">GetWorldScale</a>() const</td><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html#ac75bd045f9fbc5d8cd901ecdd216fcb5">GetWorldTL</a>() const</td><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html#a7f7815582a087a163199bb29f1c4c0ae">GetWorldVisibleArea</a>() const</td><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html#a220b8b9184eb25a6bb2c3271d5417025">GradientFillRectDecal</a>(const olc::vf2d &amp;pos, const olc::vf2d &amp;size, const olc::Pixel colTL, const olc::Pixel colBL, const olc::Pixel colBR, const olc::Pixel colTR)</td><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html#a799473b80691228b87a818f80847ca76">Initialise</a>(const olc::vi2d &amp;vViewArea, const olc::vf2d &amp;vPixelScale={ 1.0f, 1.0f })</td><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html#a664ea0cbd54bbff17ea419ebfac1e359">IsPointVisible</a>(const olc::vf2d &amp;vPos) const</td><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html#aecadbbdf84343ec0a2f0e2e8c9017f0e">IsRectVisible</a>(const olc::vf2d &amp;vPos, const olc::vf2d &amp;vSize) const</td><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html#a2c19ec65e54f43500cce003f878c8ed5">m_bPanning</a></td><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html#a94a7fd3ad136ec70040bbff1c7133418">m_vPixelScale</a></td><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html#ae1b7b82332f0979caa99e003827624cb">m_vRecipPixel</a></td><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html#a4f7569cc3d27120b485077789b86aa44">m_vStartPan</a></td><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html#a0a2936aac23f1621ff1d618c7155de1c">m_vViewArea</a></td><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html#a2e77497521f72e59ae7ecb56dc5d3f37">m_vWorldOffset</a></td><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html#a652909b48a4d8960c36d1ce4262cc95a">m_vWorldScale</a></td><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html#a154b34bc81f6e0c67579d2d2ee40b2d1">MoveWorldOffset</a>(const olc::vf2d &amp;vDeltaOffset)</td><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_p_g_e_x.html#a2a57a711518202708d2b0e586058348f">OnAfterUserCreate</a>()</td><td class="entry"><a class="el" href="classolc_1_1_p_g_e_x.html">olc::PGEX</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_p_g_e_x.html#a4d2dd7d685fb1c7d00d97aa15e3376b4">OnAfterUserUpdate</a>(float fElapsedTime)</td><td class="entry"><a class="el" href="classolc_1_1_p_g_e_x.html">olc::PGEX</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_p_g_e_x.html#a69c65b5d3a56f9a247e1bf15fd2e4035">OnBeforeUserCreate</a>()</td><td class="entry"><a class="el" href="classolc_1_1_p_g_e_x.html">olc::PGEX</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_p_g_e_x.html#a2573df22f1637314b976811714dea3fb">OnBeforeUserUpdate</a>(float &amp;fElapsedTime)</td><td class="entry"><a class="el" href="classolc_1_1_p_g_e_x.html">olc::PGEX</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_p_g_e_x.html#a032efdb84150a7cdd3cc9248860df316">pge</a></td><td class="entry"><a class="el" href="classolc_1_1_p_g_e_x.html">olc::PGEX</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">static</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_p_g_e_x.html#aae9dbde2ad7341482b9f911f23678d75">PGEX</a>(bool bHook=false)</td><td class="entry"><a class="el" href="classolc_1_1_p_g_e_x.html">olc::PGEX</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html#a8be86d8036bf635287debfcf2509e4c5">ScaleToScreen</a>(const olc::vf2d &amp;vWorldSize) const</td><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html#a09492f689459319994da4c9d0e0c2dc4">ScaleToWorld</a>(const olc::vi2d &amp;vScreenSize) const</td><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html#a0f18594e00e7865fe4376761f9e20812">ScreenToWorld</a>(const olc::vi2d &amp;vScreenPos) const</td><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_tile_transformed_view.html#ace1a6e5c3df96cd43582e02ca4b94dac">SetRangeX</a>(const bool bRanged, const int32_t nMin=0, const int32_t nMax=0)</td><td class="entry"><a class="el" href="classolc_1_1_tile_transformed_view.html">olc::TileTransformedView</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_tile_transformed_view.html#a660fcd24db414be714ae53ba131296a7">SetRangeY</a>(const bool bRanged, const int32_t nMin=0, const int32_t nMax=0)</td><td class="entry"><a class="el" href="classolc_1_1_tile_transformed_view.html">olc::TileTransformedView</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html#ac7295e90921832fef16779172cc9e4ff">SetViewArea</a>(const olc::vi2d &amp;vViewArea)</td><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html#aee86c84a719f8b5c3143e2a0b89e8024">SetWorldOffset</a>(const olc::vf2d &amp;vOffset)</td><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html#a971e25ee6978c271127f766aba69b285">SetWorldScale</a>(const olc::vf2d &amp;vScale)</td><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html#a89fd4d642cf37d1e6f1674b870b142d8">SetZoom</a>(const float fZoom, const olc::vi2d &amp;vPos)</td><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html#a4dc2bd0de3686978fdf8630d23a727c3">StartPan</a>(const olc::vi2d &amp;vPos)</td><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_tile_transformed_view.html#a4ecc47c57596ad966120894db8d6ad59">TileTransformedView</a>()=default</td><td class="entry"><a class="el" href="classolc_1_1_tile_transformed_view.html">olc::TileTransformedView</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_tile_transformed_view.html#ac38d47324d7370b5259894d814b879f8">TileTransformedView</a>(const olc::vi2d &amp;vViewArea, const olc::vi2d &amp;vTileSize)</td><td class="entry"><a class="el" href="classolc_1_1_tile_transformed_view.html">olc::TileTransformedView</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html#a1f4ed7eb880b0f0edc0b86be4b33b04e">TransformedView</a>()=default</td><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html#a4baf2b53892749ff380833991161b9c4">UpdatePan</a>(const olc::vi2d &amp;vPos)</td><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html#a18b18c9718c642ca912d44a133ffde1d">WorldToScreen</a>(const olc::vf2d &amp;vWorldPos) const</td><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html#a84a8b9030ac97afa9b6099dea5865b9c">ZoomAtScreenPos</a>(const float fDeltaZoom, const olc::vi2d &amp;vPos)</td><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a></td><td class="entry"></td></tr>
+</table></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/classolc_1_1_tile_transformed_view.html b/doxy/html/classolc_1_1_tile_transformed_view.html
new file mode 100644
index 0000000000000000000000000000000000000000..ee790bb920bd87d8f8226e9bad31c65f2ddff40a
--- /dev/null
+++ b/doxy/html/classolc_1_1_tile_transformed_view.html
@@ -0,0 +1,487 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: olc::TileTransformedView Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="namespaceolc.html">olc</a></li><li class="navelem"><a class="el" href="classolc_1_1_tile_transformed_view.html">TileTransformedView</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="classolc_1_1_tile_transformed_view-members.html">List of all members</a>  </div>
+  <div class="headertitle">
+<div class="title">olc::TileTransformedView Class Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p><code>#include &lt;<a class="el" href="olc_p_g_e_x___transformed_view_8h_source.html">olcPGEX_TransformedView.h</a>&gt;</code></p>
+<div class="dynheader">
+Inheritance diagram for olc::TileTransformedView:</div>
+<div class="dyncontent">
+ <div class="center">
+  <img src="classolc_1_1_tile_transformed_view.png" usemap="#olc::TileTransformedView_map" alt=""/>
+  <map id="olc::TileTransformedView_map" name="olc::TileTransformedView_map">
+<area href="classolc_1_1_transformed_view.html" alt="olc::TransformedView" shape="rect" coords="0,56,154,80"/>
+<area href="classolc_1_1_p_g_e_x.html" alt="olc::PGEX" shape="rect" coords="0,0,154,24"/>
+  </map>
+</div></div>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr class="memitem:a4ecc47c57596ad966120894db8d6ad59"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_tile_transformed_view.html#a4ecc47c57596ad966120894db8d6ad59">TileTransformedView</a> ()=default</td></tr>
+<tr class="separator:a4ecc47c57596ad966120894db8d6ad59"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac38d47324d7370b5259894d814b879f8"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_tile_transformed_view.html#ac38d47324d7370b5259894d814b879f8">TileTransformedView</a> (const <a class="el" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">olc::vi2d</a> &amp;vViewArea, const <a class="el" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">olc::vi2d</a> &amp;vTileSize)</td></tr>
+<tr class="separator:ac38d47324d7370b5259894d814b879f8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ace1a6e5c3df96cd43582e02ca4b94dac"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_tile_transformed_view.html#ace1a6e5c3df96cd43582e02ca4b94dac">SetRangeX</a> (const bool bRanged, const int32_t nMin=0, const int32_t nMax=0)</td></tr>
+<tr class="separator:ace1a6e5c3df96cd43582e02ca4b94dac"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a660fcd24db414be714ae53ba131296a7"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_tile_transformed_view.html#a660fcd24db414be714ae53ba131296a7">SetRangeY</a> (const bool bRanged, const int32_t nMin=0, const int32_t nMax=0)</td></tr>
+<tr class="separator:a660fcd24db414be714ae53ba131296a7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9230a04b74c812551768b324a07bf2a3"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">olc::vi2d</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_tile_transformed_view.html#a9230a04b74c812551768b324a07bf2a3">GetTopLeftTile</a> () const</td></tr>
+<tr class="separator:a9230a04b74c812551768b324a07bf2a3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af681fe11952b2a791a388c79054adc1f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">olc::vi2d</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_tile_transformed_view.html#af681fe11952b2a791a388c79054adc1f">GetBottomRightTile</a> () const</td></tr>
+<tr class="separator:af681fe11952b2a791a388c79054adc1f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abc2e3898f7bb8209d84095cc5c16843b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">olc::vi2d</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_tile_transformed_view.html#abc2e3898f7bb8209d84095cc5c16843b">GetVisibleTiles</a> () const</td></tr>
+<tr class="separator:abc2e3898f7bb8209d84095cc5c16843b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1a963a55248ff021b76ecc8e92a555e6"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">olc::vi2d</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_tile_transformed_view.html#a1a963a55248ff021b76ecc8e92a555e6">GetTileUnderScreenPos</a> (const <a class="el" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">olc::vi2d</a> &amp;vPos) const</td></tr>
+<tr class="separator:a1a963a55248ff021b76ecc8e92a555e6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afd338a68b965309beeefa3f239a0680b"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">olc::vi2d</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_tile_transformed_view.html#afd338a68b965309beeefa3f239a0680b">GetTileOffset</a> () const</td></tr>
+<tr class="separator:afd338a68b965309beeefa3f239a0680b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pub_methods_classolc_1_1_transformed_view"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classolc_1_1_transformed_view')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a></td></tr>
+<tr class="memitem:a1f4ed7eb880b0f0edc0b86be4b33b04e inherit pub_methods_classolc_1_1_transformed_view"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_transformed_view.html#a1f4ed7eb880b0f0edc0b86be4b33b04e">TransformedView</a> ()=default</td></tr>
+<tr class="separator:a1f4ed7eb880b0f0edc0b86be4b33b04e inherit pub_methods_classolc_1_1_transformed_view"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a799473b80691228b87a818f80847ca76 inherit pub_methods_classolc_1_1_transformed_view"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_transformed_view.html#a799473b80691228b87a818f80847ca76">Initialise</a> (const <a class="el" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">olc::vi2d</a> &amp;vViewArea, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;vPixelScale={ 1.0f, 1.0f })</td></tr>
+<tr class="separator:a799473b80691228b87a818f80847ca76 inherit pub_methods_classolc_1_1_transformed_view"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aee86c84a719f8b5c3143e2a0b89e8024 inherit pub_methods_classolc_1_1_transformed_view"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_transformed_view.html#aee86c84a719f8b5c3143e2a0b89e8024">SetWorldOffset</a> (const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;vOffset)</td></tr>
+<tr class="separator:aee86c84a719f8b5c3143e2a0b89e8024 inherit pub_methods_classolc_1_1_transformed_view"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a154b34bc81f6e0c67579d2d2ee40b2d1 inherit pub_methods_classolc_1_1_transformed_view"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_transformed_view.html#a154b34bc81f6e0c67579d2d2ee40b2d1">MoveWorldOffset</a> (const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;vDeltaOffset)</td></tr>
+<tr class="separator:a154b34bc81f6e0c67579d2d2ee40b2d1 inherit pub_methods_classolc_1_1_transformed_view"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a971e25ee6978c271127f766aba69b285 inherit pub_methods_classolc_1_1_transformed_view"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_transformed_view.html#a971e25ee6978c271127f766aba69b285">SetWorldScale</a> (const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;vScale)</td></tr>
+<tr class="separator:a971e25ee6978c271127f766aba69b285 inherit pub_methods_classolc_1_1_transformed_view"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac7295e90921832fef16779172cc9e4ff inherit pub_methods_classolc_1_1_transformed_view"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_transformed_view.html#ac7295e90921832fef16779172cc9e4ff">SetViewArea</a> (const <a class="el" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">olc::vi2d</a> &amp;vViewArea)</td></tr>
+<tr class="separator:ac7295e90921832fef16779172cc9e4ff inherit pub_methods_classolc_1_1_transformed_view"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac75bd045f9fbc5d8cd901ecdd216fcb5 inherit pub_methods_classolc_1_1_transformed_view"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_transformed_view.html#ac75bd045f9fbc5d8cd901ecdd216fcb5">GetWorldTL</a> () const</td></tr>
+<tr class="separator:ac75bd045f9fbc5d8cd901ecdd216fcb5 inherit pub_methods_classolc_1_1_transformed_view"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5240bf2a7285559be13c80f3ce2a97a3 inherit pub_methods_classolc_1_1_transformed_view"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_transformed_view.html#a5240bf2a7285559be13c80f3ce2a97a3">GetWorldBR</a> () const</td></tr>
+<tr class="separator:a5240bf2a7285559be13c80f3ce2a97a3 inherit pub_methods_classolc_1_1_transformed_view"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7f7815582a087a163199bb29f1c4c0ae inherit pub_methods_classolc_1_1_transformed_view"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_transformed_view.html#a7f7815582a087a163199bb29f1c4c0ae">GetWorldVisibleArea</a> () const</td></tr>
+<tr class="separator:a7f7815582a087a163199bb29f1c4c0ae inherit pub_methods_classolc_1_1_transformed_view"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a84a8b9030ac97afa9b6099dea5865b9c inherit pub_methods_classolc_1_1_transformed_view"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_transformed_view.html#a84a8b9030ac97afa9b6099dea5865b9c">ZoomAtScreenPos</a> (const float fDeltaZoom, const <a class="el" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">olc::vi2d</a> &amp;vPos)</td></tr>
+<tr class="separator:a84a8b9030ac97afa9b6099dea5865b9c inherit pub_methods_classolc_1_1_transformed_view"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a89fd4d642cf37d1e6f1674b870b142d8 inherit pub_methods_classolc_1_1_transformed_view"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_transformed_view.html#a89fd4d642cf37d1e6f1674b870b142d8">SetZoom</a> (const float fZoom, const <a class="el" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">olc::vi2d</a> &amp;vPos)</td></tr>
+<tr class="separator:a89fd4d642cf37d1e6f1674b870b142d8 inherit pub_methods_classolc_1_1_transformed_view"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4dc2bd0de3686978fdf8630d23a727c3 inherit pub_methods_classolc_1_1_transformed_view"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_transformed_view.html#a4dc2bd0de3686978fdf8630d23a727c3">StartPan</a> (const <a class="el" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">olc::vi2d</a> &amp;vPos)</td></tr>
+<tr class="separator:a4dc2bd0de3686978fdf8630d23a727c3 inherit pub_methods_classolc_1_1_transformed_view"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4baf2b53892749ff380833991161b9c4 inherit pub_methods_classolc_1_1_transformed_view"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_transformed_view.html#a4baf2b53892749ff380833991161b9c4">UpdatePan</a> (const <a class="el" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">olc::vi2d</a> &amp;vPos)</td></tr>
+<tr class="separator:a4baf2b53892749ff380833991161b9c4 inherit pub_methods_classolc_1_1_transformed_view"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3edd680172e1ae5b710290ab58d617e0 inherit pub_methods_classolc_1_1_transformed_view"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_transformed_view.html#a3edd680172e1ae5b710290ab58d617e0">EndPan</a> (const <a class="el" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">olc::vi2d</a> &amp;vPos)</td></tr>
+<tr class="separator:a3edd680172e1ae5b710290ab58d617e0 inherit pub_methods_classolc_1_1_transformed_view"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a88152a5f5b9fbb3df0f6d965ef4c4fe4 inherit pub_methods_classolc_1_1_transformed_view"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_transformed_view.html#a88152a5f5b9fbb3df0f6d965ef4c4fe4">GetWorldOffset</a> () const</td></tr>
+<tr class="separator:a88152a5f5b9fbb3df0f6d965ef4c4fe4 inherit pub_methods_classolc_1_1_transformed_view"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4f6ba5d2c58b720677f4287743713f65 inherit pub_methods_classolc_1_1_transformed_view"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_transformed_view.html#a4f6ba5d2c58b720677f4287743713f65">GetWorldScale</a> () const</td></tr>
+<tr class="separator:a4f6ba5d2c58b720677f4287743713f65 inherit pub_methods_classolc_1_1_transformed_view"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a18b18c9718c642ca912d44a133ffde1d inherit pub_methods_classolc_1_1_transformed_view"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">olc::vi2d</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_transformed_view.html#a18b18c9718c642ca912d44a133ffde1d">WorldToScreen</a> (const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;vWorldPos) const</td></tr>
+<tr class="separator:a18b18c9718c642ca912d44a133ffde1d inherit pub_methods_classolc_1_1_transformed_view"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0f18594e00e7865fe4376761f9e20812 inherit pub_methods_classolc_1_1_transformed_view"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_transformed_view.html#a0f18594e00e7865fe4376761f9e20812">ScreenToWorld</a> (const <a class="el" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">olc::vi2d</a> &amp;vScreenPos) const</td></tr>
+<tr class="separator:a0f18594e00e7865fe4376761f9e20812 inherit pub_methods_classolc_1_1_transformed_view"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a09492f689459319994da4c9d0e0c2dc4 inherit pub_methods_classolc_1_1_transformed_view"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_transformed_view.html#a09492f689459319994da4c9d0e0c2dc4">ScaleToWorld</a> (const <a class="el" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">olc::vi2d</a> &amp;vScreenSize) const</td></tr>
+<tr class="separator:a09492f689459319994da4c9d0e0c2dc4 inherit pub_methods_classolc_1_1_transformed_view"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8be86d8036bf635287debfcf2509e4c5 inherit pub_methods_classolc_1_1_transformed_view"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">olc::vi2d</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_transformed_view.html#a8be86d8036bf635287debfcf2509e4c5">ScaleToScreen</a> (const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;vWorldSize) const</td></tr>
+<tr class="separator:a8be86d8036bf635287debfcf2509e4c5 inherit pub_methods_classolc_1_1_transformed_view"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a664ea0cbd54bbff17ea419ebfac1e359 inherit pub_methods_classolc_1_1_transformed_view"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_transformed_view.html#a664ea0cbd54bbff17ea419ebfac1e359">IsPointVisible</a> (const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;vPos) const</td></tr>
+<tr class="separator:a664ea0cbd54bbff17ea419ebfac1e359 inherit pub_methods_classolc_1_1_transformed_view"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aecadbbdf84343ec0a2f0e2e8c9017f0e inherit pub_methods_classolc_1_1_transformed_view"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_transformed_view.html#aecadbbdf84343ec0a2f0e2e8c9017f0e">IsRectVisible</a> (const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;vPos, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;vSize) const</td></tr>
+<tr class="separator:aecadbbdf84343ec0a2f0e2e8c9017f0e inherit pub_methods_classolc_1_1_transformed_view"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a09a214f47f9e4f5e85a8d3bd224ab9b1 inherit pub_methods_classolc_1_1_transformed_view"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_transformed_view.html#a09a214f47f9e4f5e85a8d3bd224ab9b1">Draw</a> (float x, float y, <a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a> p=<a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>)</td></tr>
+<tr class="separator:a09a214f47f9e4f5e85a8d3bd224ab9b1 inherit pub_methods_classolc_1_1_transformed_view"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2509ea7aa54013b9b0caa7a265818511 inherit pub_methods_classolc_1_1_transformed_view"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_transformed_view.html#a2509ea7aa54013b9b0caa7a265818511">Draw</a> (const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;pos, <a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a> p=<a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>)</td></tr>
+<tr class="separator:a2509ea7aa54013b9b0caa7a265818511 inherit pub_methods_classolc_1_1_transformed_view"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2564b30474cab1de208a9b220ddbc181 inherit pub_methods_classolc_1_1_transformed_view"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_transformed_view.html#a2564b30474cab1de208a9b220ddbc181">DrawLine</a> (float x1, float y1, float x2, float y2, <a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a> p=<a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>, uint32_t pattern=0xFFFFFFFF)</td></tr>
+<tr class="separator:a2564b30474cab1de208a9b220ddbc181 inherit pub_methods_classolc_1_1_transformed_view"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a60a961188fe9a5cb60258c1b4d8cf498 inherit pub_methods_classolc_1_1_transformed_view"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_transformed_view.html#a60a961188fe9a5cb60258c1b4d8cf498">DrawLine</a> (const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;pos1, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;pos2, <a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a> p=<a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>, uint32_t pattern=0xFFFFFFFF)</td></tr>
+<tr class="separator:a60a961188fe9a5cb60258c1b4d8cf498 inherit pub_methods_classolc_1_1_transformed_view"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abbf0590764bbacdd35a4d0adc6e69b84 inherit pub_methods_classolc_1_1_transformed_view"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_transformed_view.html#abbf0590764bbacdd35a4d0adc6e69b84">DrawCircle</a> (float x, float y, float radius, <a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a> p=<a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>, uint8_t mask=0xFF)</td></tr>
+<tr class="separator:abbf0590764bbacdd35a4d0adc6e69b84 inherit pub_methods_classolc_1_1_transformed_view"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa7edb61f256624bad3e5d5847f0eef88 inherit pub_methods_classolc_1_1_transformed_view"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_transformed_view.html#aa7edb61f256624bad3e5d5847f0eef88">DrawCircle</a> (const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;pos, float radius, <a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a> p=<a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>, uint8_t mask=0xFF)</td></tr>
+<tr class="separator:aa7edb61f256624bad3e5d5847f0eef88 inherit pub_methods_classolc_1_1_transformed_view"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afd3f4dffe3a2fffaed2fd6c84e40ce23 inherit pub_methods_classolc_1_1_transformed_view"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_transformed_view.html#afd3f4dffe3a2fffaed2fd6c84e40ce23">FillCircle</a> (float x, float y, float radius, <a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a> p=<a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>)</td></tr>
+<tr class="separator:afd3f4dffe3a2fffaed2fd6c84e40ce23 inherit pub_methods_classolc_1_1_transformed_view"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8d8559f74de40982e41f9cab0577b3b9 inherit pub_methods_classolc_1_1_transformed_view"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_transformed_view.html#a8d8559f74de40982e41f9cab0577b3b9">FillCircle</a> (const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;pos, float radius, <a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a> p=<a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>)</td></tr>
+<tr class="separator:a8d8559f74de40982e41f9cab0577b3b9 inherit pub_methods_classolc_1_1_transformed_view"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab1578748552d35bff05e63dcfc79cfb9 inherit pub_methods_classolc_1_1_transformed_view"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_transformed_view.html#ab1578748552d35bff05e63dcfc79cfb9">DrawRect</a> (float x, float y, float w, float h, <a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a> p=<a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>)</td></tr>
+<tr class="separator:ab1578748552d35bff05e63dcfc79cfb9 inherit pub_methods_classolc_1_1_transformed_view"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2ce6891b49d600eacb32eef88f07b2e0 inherit pub_methods_classolc_1_1_transformed_view"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_transformed_view.html#a2ce6891b49d600eacb32eef88f07b2e0">DrawRect</a> (const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;pos, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;size, <a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a> p=<a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>)</td></tr>
+<tr class="separator:a2ce6891b49d600eacb32eef88f07b2e0 inherit pub_methods_classolc_1_1_transformed_view"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2f12ada82c7262a2e29572cfded60f02 inherit pub_methods_classolc_1_1_transformed_view"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_transformed_view.html#a2f12ada82c7262a2e29572cfded60f02">FillRect</a> (float x, float y, float w, float h, <a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a> p=<a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>)</td></tr>
+<tr class="separator:a2f12ada82c7262a2e29572cfded60f02 inherit pub_methods_classolc_1_1_transformed_view"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abc3071fe6fa5f9ca4c5fe227a335df54 inherit pub_methods_classolc_1_1_transformed_view"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_transformed_view.html#abc3071fe6fa5f9ca4c5fe227a335df54">FillRect</a> (const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;pos, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;size, <a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a> p=<a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>)</td></tr>
+<tr class="separator:abc3071fe6fa5f9ca4c5fe227a335df54 inherit pub_methods_classolc_1_1_transformed_view"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6c818747c7fa97445fbb40c9f222e865 inherit pub_methods_classolc_1_1_transformed_view"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_transformed_view.html#a6c818747c7fa97445fbb40c9f222e865">DrawTriangle</a> (float x1, float y1, float x2, float y2, float x3, float y3, <a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a> p=<a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>)</td></tr>
+<tr class="separator:a6c818747c7fa97445fbb40c9f222e865 inherit pub_methods_classolc_1_1_transformed_view"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a45a659d55d124e87e956e842963637fa inherit pub_methods_classolc_1_1_transformed_view"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_transformed_view.html#a45a659d55d124e87e956e842963637fa">DrawTriangle</a> (const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;pos1, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;pos2, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;pos3, <a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a> p=<a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>)</td></tr>
+<tr class="separator:a45a659d55d124e87e956e842963637fa inherit pub_methods_classolc_1_1_transformed_view"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5cba545151923f38fd5d87b2c130a894 inherit pub_methods_classolc_1_1_transformed_view"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_transformed_view.html#a5cba545151923f38fd5d87b2c130a894">FillTriangle</a> (float x1, float y1, float x2, float y2, float x3, float y3, <a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a> p=<a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>)</td></tr>
+<tr class="separator:a5cba545151923f38fd5d87b2c130a894 inherit pub_methods_classolc_1_1_transformed_view"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a023149966b61d7f233898c2b4372d018 inherit pub_methods_classolc_1_1_transformed_view"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_transformed_view.html#a023149966b61d7f233898c2b4372d018">FillTriangle</a> (const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;pos1, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;pos2, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;pos3, <a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a> p=<a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>)</td></tr>
+<tr class="separator:a023149966b61d7f233898c2b4372d018 inherit pub_methods_classolc_1_1_transformed_view"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0814eafdbf34c4570c08722998b3c936 inherit pub_methods_classolc_1_1_transformed_view"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_transformed_view.html#a0814eafdbf34c4570c08722998b3c936">DrawSprite</a> (float x, float y, <a class="el" href="classolc_1_1_sprite.html">olc::Sprite</a> *sprite, float scalex=1, float scaley=1, uint8_t flip=<a class="el" href="classolc_1_1_sprite.html#ad0d1976d2060997f5cd99eb284a5dc24a6ad338b4e63faacfbed68b020c3a0c0c">olc::Sprite::NONE</a>)</td></tr>
+<tr class="separator:a0814eafdbf34c4570c08722998b3c936 inherit pub_methods_classolc_1_1_transformed_view"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a44f1c98c6c6720338d7b6dcc9117cb03 inherit pub_methods_classolc_1_1_transformed_view"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_transformed_view.html#a44f1c98c6c6720338d7b6dcc9117cb03">DrawSprite</a> (const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;pos, <a class="el" href="classolc_1_1_sprite.html">olc::Sprite</a> *sprite, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;scale={ 1.0f, 1.0f }, uint8_t flip=<a class="el" href="classolc_1_1_sprite.html#ad0d1976d2060997f5cd99eb284a5dc24a6ad338b4e63faacfbed68b020c3a0c0c">olc::Sprite::NONE</a>)</td></tr>
+<tr class="separator:a44f1c98c6c6720338d7b6dcc9117cb03 inherit pub_methods_classolc_1_1_transformed_view"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a829557257985bb738baad577ed0ed7a0 inherit pub_methods_classolc_1_1_transformed_view"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_transformed_view.html#a829557257985bb738baad577ed0ed7a0">DrawPartialSprite</a> (float x, float y, <a class="el" href="classolc_1_1_sprite.html">Sprite</a> *sprite, int32_t ox, int32_t oy, int32_t w, int32_t h, float scalex=1, float scaley=1, uint8_t flip=<a class="el" href="classolc_1_1_sprite.html#ad0d1976d2060997f5cd99eb284a5dc24a6ad338b4e63faacfbed68b020c3a0c0c">olc::Sprite::NONE</a>)</td></tr>
+<tr class="separator:a829557257985bb738baad577ed0ed7a0 inherit pub_methods_classolc_1_1_transformed_view"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0c6e1fb72399ec97e0dc093a2da80d50 inherit pub_methods_classolc_1_1_transformed_view"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_transformed_view.html#a0c6e1fb72399ec97e0dc093a2da80d50">DrawPartialSprite</a> (const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;pos, <a class="el" href="classolc_1_1_sprite.html">Sprite</a> *sprite, const <a class="el" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">olc::vi2d</a> &amp;sourcepos, const <a class="el" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">olc::vi2d</a> &amp;size, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;scale={ 1.0f, 1.0f }, uint8_t flip=<a class="el" href="classolc_1_1_sprite.html#ad0d1976d2060997f5cd99eb284a5dc24a6ad338b4e63faacfbed68b020c3a0c0c">olc::Sprite::NONE</a>)</td></tr>
+<tr class="separator:a0c6e1fb72399ec97e0dc093a2da80d50 inherit pub_methods_classolc_1_1_transformed_view"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:acf22577cab34db667d05eae0e38000e0 inherit pub_methods_classolc_1_1_transformed_view"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_transformed_view.html#acf22577cab34db667d05eae0e38000e0">DrawString</a> (float x, float y, const std::string &amp;sText, <a class="el" href="structolc_1_1_pixel.html">Pixel</a> col, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;scale)</td></tr>
+<tr class="separator:acf22577cab34db667d05eae0e38000e0 inherit pub_methods_classolc_1_1_transformed_view"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab8e4acce21674331d91910c7056c59a3 inherit pub_methods_classolc_1_1_transformed_view"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_transformed_view.html#ab8e4acce21674331d91910c7056c59a3">DrawString</a> (const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;pos, const std::string &amp;sText, const <a class="el" href="structolc_1_1_pixel.html">Pixel</a> col, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;scale)</td></tr>
+<tr class="separator:ab8e4acce21674331d91910c7056c59a3 inherit pub_methods_classolc_1_1_transformed_view"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8bad23f424184f2e15f32deb7f179160 inherit pub_methods_classolc_1_1_transformed_view"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_transformed_view.html#a8bad23f424184f2e15f32deb7f179160">DrawDecal</a> (const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;pos, <a class="el" href="classolc_1_1_decal.html">olc::Decal</a> *decal, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;scale={ 1.0f, 1.0f }, const <a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a> &amp;tint=<a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>)</td></tr>
+<tr class="separator:a8bad23f424184f2e15f32deb7f179160 inherit pub_methods_classolc_1_1_transformed_view"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1daefdb27499350eb3927c79ec60bca5 inherit pub_methods_classolc_1_1_transformed_view"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_transformed_view.html#a1daefdb27499350eb3927c79ec60bca5">DrawPartialDecal</a> (const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;pos, <a class="el" href="classolc_1_1_decal.html">olc::Decal</a> *decal, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;source_pos, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;source_size, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;scale={ 1.0f, 1.0f }, const <a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a> &amp;tint=<a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>)</td></tr>
+<tr class="separator:a1daefdb27499350eb3927c79ec60bca5 inherit pub_methods_classolc_1_1_transformed_view"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a03ef78202a55d896cd86eb16f39b8847 inherit pub_methods_classolc_1_1_transformed_view"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_transformed_view.html#a03ef78202a55d896cd86eb16f39b8847">DrawPartialDecal</a> (const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;pos, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;size, <a class="el" href="classolc_1_1_decal.html">olc::Decal</a> *decal, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;source_pos, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;source_size, const <a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a> &amp;tint=<a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>)</td></tr>
+<tr class="separator:a03ef78202a55d896cd86eb16f39b8847 inherit pub_methods_classolc_1_1_transformed_view"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac133c5f498e18dc4bcf6a087c7f8b356 inherit pub_methods_classolc_1_1_transformed_view"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_transformed_view.html#ac133c5f498e18dc4bcf6a087c7f8b356">DrawExplicitDecal</a> (<a class="el" href="classolc_1_1_decal.html">olc::Decal</a> *decal, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> *pos, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> *uv, const <a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a> *col, uint32_t elements=4)</td></tr>
+<tr class="separator:ac133c5f498e18dc4bcf6a087c7f8b356 inherit pub_methods_classolc_1_1_transformed_view"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2c0e827b1182696275583059a1a72412 inherit pub_methods_classolc_1_1_transformed_view"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_transformed_view.html#a2c0e827b1182696275583059a1a72412">DrawWarpedDecal</a> (<a class="el" href="classolc_1_1_decal.html">olc::Decal</a> *decal, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a>(&amp;pos)[4], const <a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a> &amp;tint=<a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>)</td></tr>
+<tr class="separator:a2c0e827b1182696275583059a1a72412 inherit pub_methods_classolc_1_1_transformed_view"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a250badf6257c666f0e0a07ed3d86ad9e inherit pub_methods_classolc_1_1_transformed_view"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_transformed_view.html#a250badf6257c666f0e0a07ed3d86ad9e">DrawWarpedDecal</a> (<a class="el" href="classolc_1_1_decal.html">olc::Decal</a> *decal, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> *pos, const <a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a> &amp;tint=<a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>)</td></tr>
+<tr class="separator:a250badf6257c666f0e0a07ed3d86ad9e inherit pub_methods_classolc_1_1_transformed_view"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a615fda4662913d6a1fc2764025c28efc inherit pub_methods_classolc_1_1_transformed_view"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_transformed_view.html#a615fda4662913d6a1fc2764025c28efc">DrawWarpedDecal</a> (<a class="el" href="classolc_1_1_decal.html">olc::Decal</a> *decal, const std::array&lt; <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a>, 4 &gt; &amp;pos, const <a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a> &amp;tint=<a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>)</td></tr>
+<tr class="separator:a615fda4662913d6a1fc2764025c28efc inherit pub_methods_classolc_1_1_transformed_view"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a17bf0d6a35728abe95993ef5475aa767 inherit pub_methods_classolc_1_1_transformed_view"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_transformed_view.html#a17bf0d6a35728abe95993ef5475aa767">DrawPartialWarpedDecal</a> (<a class="el" href="classolc_1_1_decal.html">olc::Decal</a> *decal, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a>(&amp;pos)[4], const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;source_pos, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;source_size, const <a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a> &amp;tint=<a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>)</td></tr>
+<tr class="separator:a17bf0d6a35728abe95993ef5475aa767 inherit pub_methods_classolc_1_1_transformed_view"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a88045b492c61288a7e5ca1eb164ad2fb inherit pub_methods_classolc_1_1_transformed_view"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_transformed_view.html#a88045b492c61288a7e5ca1eb164ad2fb">DrawPartialWarpedDecal</a> (<a class="el" href="classolc_1_1_decal.html">olc::Decal</a> *decal, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> *pos, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;source_pos, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;source_size, const <a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a> &amp;tint=<a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>)</td></tr>
+<tr class="separator:a88045b492c61288a7e5ca1eb164ad2fb inherit pub_methods_classolc_1_1_transformed_view"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a624730b2582152c4cc49d457bc140859 inherit pub_methods_classolc_1_1_transformed_view"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_transformed_view.html#a624730b2582152c4cc49d457bc140859">DrawPartialWarpedDecal</a> (<a class="el" href="classolc_1_1_decal.html">olc::Decal</a> *decal, const std::array&lt; <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a>, 4 &gt; &amp;pos, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;source_pos, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;source_size, const <a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a> &amp;tint=<a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>)</td></tr>
+<tr class="separator:a624730b2582152c4cc49d457bc140859 inherit pub_methods_classolc_1_1_transformed_view"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0d11f6c9ddf0cda25a7b6a79c39c61d6 inherit pub_methods_classolc_1_1_transformed_view"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_transformed_view.html#a0d11f6c9ddf0cda25a7b6a79c39c61d6">DrawRotatedDecal</a> (const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;pos, <a class="el" href="classolc_1_1_decal.html">olc::Decal</a> *decal, const float fAngle, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;center={ 0.0f, 0.0f }, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;scale={ 1.0f, 1.0f }, const <a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a> &amp;tint=<a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>)</td></tr>
+<tr class="separator:a0d11f6c9ddf0cda25a7b6a79c39c61d6 inherit pub_methods_classolc_1_1_transformed_view"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3f2574c761a0045641fd2f5f9b194184 inherit pub_methods_classolc_1_1_transformed_view"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_transformed_view.html#a3f2574c761a0045641fd2f5f9b194184">DrawPartialRotatedDecal</a> (const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;pos, <a class="el" href="classolc_1_1_decal.html">olc::Decal</a> *decal, const float fAngle, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;center, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;source_pos, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;source_size, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;scale={ 1.0f, 1.0f }, const <a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a> &amp;tint=<a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>)</td></tr>
+<tr class="separator:a3f2574c761a0045641fd2f5f9b194184 inherit pub_methods_classolc_1_1_transformed_view"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a903ad811f1e3f99d8c6e35f1a1aaf9bf inherit pub_methods_classolc_1_1_transformed_view"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_transformed_view.html#a903ad811f1e3f99d8c6e35f1a1aaf9bf">DrawStringDecal</a> (const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;pos, const std::string &amp;sText, const <a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a> col=<a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;scale={ 1.0f, 1.0f })</td></tr>
+<tr class="separator:a903ad811f1e3f99d8c6e35f1a1aaf9bf inherit pub_methods_classolc_1_1_transformed_view"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afde48a1dc4946bfb3718c19bdf62b328 inherit pub_methods_classolc_1_1_transformed_view"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_transformed_view.html#afde48a1dc4946bfb3718c19bdf62b328">DrawStringPropDecal</a> (const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;pos, const std::string &amp;sText, const <a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a> col=<a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;scale={ 1.0f, 1.0f })</td></tr>
+<tr class="separator:afde48a1dc4946bfb3718c19bdf62b328 inherit pub_methods_classolc_1_1_transformed_view"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a82f6eeb19d315324c160aa78fd2ead70 inherit pub_methods_classolc_1_1_transformed_view"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_transformed_view.html#a82f6eeb19d315324c160aa78fd2ead70">FillRectDecal</a> (const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;pos, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;size, const <a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a> col=<a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>)</td></tr>
+<tr class="separator:a82f6eeb19d315324c160aa78fd2ead70 inherit pub_methods_classolc_1_1_transformed_view"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a220b8b9184eb25a6bb2c3271d5417025 inherit pub_methods_classolc_1_1_transformed_view"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_transformed_view.html#a220b8b9184eb25a6bb2c3271d5417025">GradientFillRectDecal</a> (const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;pos, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;size, const <a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a> colTL, const <a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a> colBL, const <a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a> colBR, const <a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a> colTR)</td></tr>
+<tr class="separator:a220b8b9184eb25a6bb2c3271d5417025 inherit pub_methods_classolc_1_1_transformed_view"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0555577738d2edacb8b8e701d90804d7 inherit pub_methods_classolc_1_1_transformed_view"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_transformed_view.html#a0555577738d2edacb8b8e701d90804d7">DrawPolygonDecal</a> (<a class="el" href="classolc_1_1_decal.html">olc::Decal</a> *decal, const std::vector&lt; <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &gt; &amp;pos, const std::vector&lt; <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &gt; &amp;uv, const <a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a> tint=<a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>)</td></tr>
+<tr class="separator:a0555577738d2edacb8b8e701d90804d7 inherit pub_methods_classolc_1_1_transformed_view"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pub_methods_classolc_1_1_p_g_e_x"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classolc_1_1_p_g_e_x')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classolc_1_1_p_g_e_x.html">olc::PGEX</a></td></tr>
+<tr class="memitem:aae9dbde2ad7341482b9f911f23678d75 inherit pub_methods_classolc_1_1_p_g_e_x"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_p_g_e_x.html#aae9dbde2ad7341482b9f911f23678d75">PGEX</a> (bool bHook=false)</td></tr>
+<tr class="separator:aae9dbde2ad7341482b9f911f23678d75 inherit pub_methods_classolc_1_1_p_g_e_x"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
+Additional Inherited Members</h2></td></tr>
+<tr class="inherit_header pro_methods_classolc_1_1_p_g_e_x"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classolc_1_1_p_g_e_x')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="classolc_1_1_p_g_e_x.html">olc::PGEX</a></td></tr>
+<tr class="memitem:a69c65b5d3a56f9a247e1bf15fd2e4035 inherit pro_methods_classolc_1_1_p_g_e_x"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_p_g_e_x.html#a69c65b5d3a56f9a247e1bf15fd2e4035">OnBeforeUserCreate</a> ()</td></tr>
+<tr class="separator:a69c65b5d3a56f9a247e1bf15fd2e4035 inherit pro_methods_classolc_1_1_p_g_e_x"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2a57a711518202708d2b0e586058348f inherit pro_methods_classolc_1_1_p_g_e_x"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_p_g_e_x.html#a2a57a711518202708d2b0e586058348f">OnAfterUserCreate</a> ()</td></tr>
+<tr class="separator:a2a57a711518202708d2b0e586058348f inherit pro_methods_classolc_1_1_p_g_e_x"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2573df22f1637314b976811714dea3fb inherit pro_methods_classolc_1_1_p_g_e_x"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_p_g_e_x.html#a2573df22f1637314b976811714dea3fb">OnBeforeUserUpdate</a> (float &amp;fElapsedTime)</td></tr>
+<tr class="separator:a2573df22f1637314b976811714dea3fb inherit pro_methods_classolc_1_1_p_g_e_x"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4d2dd7d685fb1c7d00d97aa15e3376b4 inherit pro_methods_classolc_1_1_p_g_e_x"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_p_g_e_x.html#a4d2dd7d685fb1c7d00d97aa15e3376b4">OnAfterUserUpdate</a> (float fElapsedTime)</td></tr>
+<tr class="separator:a4d2dd7d685fb1c7d00d97aa15e3376b4 inherit pro_methods_classolc_1_1_p_g_e_x"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_attribs_classolc_1_1_transformed_view"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_classolc_1_1_transformed_view')"><img src="closed.png" alt="-"/>&#160;Protected Attributes inherited from <a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a></td></tr>
+<tr class="memitem:a2e77497521f72e59ae7ecb56dc5d3f37 inherit pro_attribs_classolc_1_1_transformed_view"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_transformed_view.html#a2e77497521f72e59ae7ecb56dc5d3f37">m_vWorldOffset</a> = { 0.0f, 0.0f }</td></tr>
+<tr class="separator:a2e77497521f72e59ae7ecb56dc5d3f37 inherit pro_attribs_classolc_1_1_transformed_view"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a652909b48a4d8960c36d1ce4262cc95a inherit pro_attribs_classolc_1_1_transformed_view"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_transformed_view.html#a652909b48a4d8960c36d1ce4262cc95a">m_vWorldScale</a> = { 1.0f, 1.0f }</td></tr>
+<tr class="separator:a652909b48a4d8960c36d1ce4262cc95a inherit pro_attribs_classolc_1_1_transformed_view"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae1b7b82332f0979caa99e003827624cb inherit pro_attribs_classolc_1_1_transformed_view"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_transformed_view.html#ae1b7b82332f0979caa99e003827624cb">m_vRecipPixel</a> = { 1.0f, 1.0f }</td></tr>
+<tr class="separator:ae1b7b82332f0979caa99e003827624cb inherit pro_attribs_classolc_1_1_transformed_view"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a94a7fd3ad136ec70040bbff1c7133418 inherit pro_attribs_classolc_1_1_transformed_view"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_transformed_view.html#a94a7fd3ad136ec70040bbff1c7133418">m_vPixelScale</a> = { 1.0f, 1.0f }</td></tr>
+<tr class="separator:a94a7fd3ad136ec70040bbff1c7133418 inherit pro_attribs_classolc_1_1_transformed_view"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2c19ec65e54f43500cce003f878c8ed5 inherit pro_attribs_classolc_1_1_transformed_view"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_transformed_view.html#a2c19ec65e54f43500cce003f878c8ed5">m_bPanning</a> = false</td></tr>
+<tr class="separator:a2c19ec65e54f43500cce003f878c8ed5 inherit pro_attribs_classolc_1_1_transformed_view"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4f7569cc3d27120b485077789b86aa44 inherit pro_attribs_classolc_1_1_transformed_view"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_transformed_view.html#a4f7569cc3d27120b485077789b86aa44">m_vStartPan</a> = { 0.0f, 0.0f }</td></tr>
+<tr class="separator:a4f7569cc3d27120b485077789b86aa44 inherit pro_attribs_classolc_1_1_transformed_view"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0a2936aac23f1621ff1d618c7155de1c inherit pro_attribs_classolc_1_1_transformed_view"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">olc::vi2d</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_transformed_view.html#a0a2936aac23f1621ff1d618c7155de1c">m_vViewArea</a></td></tr>
+<tr class="separator:a0a2936aac23f1621ff1d618c7155de1c inherit pro_attribs_classolc_1_1_transformed_view"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_static_attribs_classolc_1_1_p_g_e_x"><td colspan="2" onclick="javascript:toggleInherit('pro_static_attribs_classolc_1_1_p_g_e_x')"><img src="closed.png" alt="-"/>&#160;Static Protected Attributes inherited from <a class="el" href="classolc_1_1_p_g_e_x.html">olc::PGEX</a></td></tr>
+<tr class="memitem:a032efdb84150a7cdd3cc9248860df316 inherit pro_static_attribs_classolc_1_1_p_g_e_x"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classolc_1_1_pixel_game_engine.html">PixelGameEngine</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_p_g_e_x.html#a032efdb84150a7cdd3cc9248860df316">pge</a></td></tr>
+<tr class="separator:a032efdb84150a7cdd3cc9248860df316 inherit pro_static_attribs_classolc_1_1_p_g_e_x"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock">
+<p class="definition">Definition at line <a class="el" href="olc_p_g_e_x___transformed_view_8h_source.html#l00182">182</a> of file <a class="el" href="olc_p_g_e_x___transformed_view_8h_source.html">olcPGEX_TransformedView.h</a>.</p>
+</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
+<a id="a4ecc47c57596ad966120894db8d6ad59"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a4ecc47c57596ad966120894db8d6ad59">&#9670;&nbsp;</a></span>TileTransformedView() <span class="overload">[1/2]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">olc::TileTransformedView::TileTransformedView </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">default</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="ac38d47324d7370b5259894d814b879f8"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ac38d47324d7370b5259894d814b879f8">&#9670;&nbsp;</a></span>TileTransformedView() <span class="overload">[2/2]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">olc::TileTransformedView::TileTransformedView </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">olc::vi2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>vViewArea</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">olc::vi2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>vTileSize</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<h2 class="groupheader">Member Function Documentation</h2>
+<a id="af681fe11952b2a791a388c79054adc1f"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#af681fe11952b2a791a388c79054adc1f">&#9670;&nbsp;</a></span>GetBottomRightTile()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">olc::vi2d</a> olc::TileTransformedView::GetBottomRightTile </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td> const</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="afd338a68b965309beeefa3f239a0680b"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#afd338a68b965309beeefa3f239a0680b">&#9670;&nbsp;</a></span>GetTileOffset()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">const <a class="el" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">olc::vi2d</a> olc::TileTransformedView::GetTileOffset </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td> const</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a1a963a55248ff021b76ecc8e92a555e6"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a1a963a55248ff021b76ecc8e92a555e6">&#9670;&nbsp;</a></span>GetTileUnderScreenPos()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">olc::vi2d</a> olc::TileTransformedView::GetTileUnderScreenPos </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">olc::vi2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>vPos</em></td><td>)</td>
+          <td> const</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a9230a04b74c812551768b324a07bf2a3"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a9230a04b74c812551768b324a07bf2a3">&#9670;&nbsp;</a></span>GetTopLeftTile()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">olc::vi2d</a> olc::TileTransformedView::GetTopLeftTile </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td> const</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="abc2e3898f7bb8209d84095cc5c16843b"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#abc2e3898f7bb8209d84095cc5c16843b">&#9670;&nbsp;</a></span>GetVisibleTiles()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">olc::vi2d</a> olc::TileTransformedView::GetVisibleTiles </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td> const</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="ace1a6e5c3df96cd43582e02ca4b94dac"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ace1a6e5c3df96cd43582e02ca4b94dac">&#9670;&nbsp;</a></span>SetRangeX()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void olc::TileTransformedView::SetRangeX </td>
+          <td>(</td>
+          <td class="paramtype">const bool&#160;</td>
+          <td class="paramname"><em>bRanged</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const int32_t&#160;</td>
+          <td class="paramname"><em>nMin</em> = <code>0</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const int32_t&#160;</td>
+          <td class="paramname"><em>nMax</em> = <code>0</code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a660fcd24db414be714ae53ba131296a7"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a660fcd24db414be714ae53ba131296a7">&#9670;&nbsp;</a></span>SetRangeY()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void olc::TileTransformedView::SetRangeY </td>
+          <td>(</td>
+          <td class="paramtype">const bool&#160;</td>
+          <td class="paramname"><em>bRanged</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const int32_t&#160;</td>
+          <td class="paramname"><em>nMin</em> = <code>0</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const int32_t&#160;</td>
+          <td class="paramname"><em>nMax</em> = <code>0</code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li>C:/Users/kosmx/Documents/GitHub/2d-game/<a class="el" href="olc_p_g_e_x___transformed_view_8h_source.html">olcPGEX_TransformedView.h</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/classolc_1_1_tile_transformed_view.png b/doxy/html/classolc_1_1_tile_transformed_view.png
new file mode 100644
index 0000000000000000000000000000000000000000..2f5e80ec67ad455cd2777aecfc91a05c8f5399d4
Binary files /dev/null and b/doxy/html/classolc_1_1_tile_transformed_view.png differ
diff --git a/doxy/html/classolc_1_1_transformed_view-members.html b/doxy/html/classolc_1_1_transformed_view-members.html
new file mode 100644
index 0000000000000000000000000000000000000000..79039bccd4c9caf56102f3d683b5e5d6214a1873
--- /dev/null
+++ b/doxy/html/classolc_1_1_transformed_view-members.html
@@ -0,0 +1,156 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="namespaceolc.html">olc</a></li><li class="navelem"><a class="el" href="classolc_1_1_transformed_view.html">TransformedView</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">olc::TransformedView Member List</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a>, including all inherited members.</p>
+<table class="directory">
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html#a09a214f47f9e4f5e85a8d3bd224ab9b1">Draw</a>(float x, float y, olc::Pixel p=olc::WHITE)</td><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html#a2509ea7aa54013b9b0caa7a265818511">Draw</a>(const olc::vf2d &amp;pos, olc::Pixel p=olc::WHITE)</td><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html#abbf0590764bbacdd35a4d0adc6e69b84">DrawCircle</a>(float x, float y, float radius, olc::Pixel p=olc::WHITE, uint8_t mask=0xFF)</td><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html#aa7edb61f256624bad3e5d5847f0eef88">DrawCircle</a>(const olc::vf2d &amp;pos, float radius, olc::Pixel p=olc::WHITE, uint8_t mask=0xFF)</td><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html#a8bad23f424184f2e15f32deb7f179160">DrawDecal</a>(const olc::vf2d &amp;pos, olc::Decal *decal, const olc::vf2d &amp;scale={ 1.0f, 1.0f }, const olc::Pixel &amp;tint=olc::WHITE)</td><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html#ac133c5f498e18dc4bcf6a087c7f8b356">DrawExplicitDecal</a>(olc::Decal *decal, const olc::vf2d *pos, const olc::vf2d *uv, const olc::Pixel *col, uint32_t elements=4)</td><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html#a2564b30474cab1de208a9b220ddbc181">DrawLine</a>(float x1, float y1, float x2, float y2, olc::Pixel p=olc::WHITE, uint32_t pattern=0xFFFFFFFF)</td><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html#a60a961188fe9a5cb60258c1b4d8cf498">DrawLine</a>(const olc::vf2d &amp;pos1, const olc::vf2d &amp;pos2, olc::Pixel p=olc::WHITE, uint32_t pattern=0xFFFFFFFF)</td><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html#a1daefdb27499350eb3927c79ec60bca5">DrawPartialDecal</a>(const olc::vf2d &amp;pos, olc::Decal *decal, const olc::vf2d &amp;source_pos, const olc::vf2d &amp;source_size, const olc::vf2d &amp;scale={ 1.0f, 1.0f }, const olc::Pixel &amp;tint=olc::WHITE)</td><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html#a03ef78202a55d896cd86eb16f39b8847">DrawPartialDecal</a>(const olc::vf2d &amp;pos, const olc::vf2d &amp;size, olc::Decal *decal, const olc::vf2d &amp;source_pos, const olc::vf2d &amp;source_size, const olc::Pixel &amp;tint=olc::WHITE)</td><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html#a3f2574c761a0045641fd2f5f9b194184">DrawPartialRotatedDecal</a>(const olc::vf2d &amp;pos, olc::Decal *decal, const float fAngle, const olc::vf2d &amp;center, const olc::vf2d &amp;source_pos, const olc::vf2d &amp;source_size, const olc::vf2d &amp;scale={ 1.0f, 1.0f }, const olc::Pixel &amp;tint=olc::WHITE)</td><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html#a829557257985bb738baad577ed0ed7a0">DrawPartialSprite</a>(float x, float y, Sprite *sprite, int32_t ox, int32_t oy, int32_t w, int32_t h, float scalex=1, float scaley=1, uint8_t flip=olc::Sprite::NONE)</td><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html#a0c6e1fb72399ec97e0dc093a2da80d50">DrawPartialSprite</a>(const olc::vf2d &amp;pos, Sprite *sprite, const olc::vi2d &amp;sourcepos, const olc::vi2d &amp;size, const olc::vf2d &amp;scale={ 1.0f, 1.0f }, uint8_t flip=olc::Sprite::NONE)</td><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html#a17bf0d6a35728abe95993ef5475aa767">DrawPartialWarpedDecal</a>(olc::Decal *decal, const olc::vf2d(&amp;pos)[4], const olc::vf2d &amp;source_pos, const olc::vf2d &amp;source_size, const olc::Pixel &amp;tint=olc::WHITE)</td><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html#a88045b492c61288a7e5ca1eb164ad2fb">DrawPartialWarpedDecal</a>(olc::Decal *decal, const olc::vf2d *pos, const olc::vf2d &amp;source_pos, const olc::vf2d &amp;source_size, const olc::Pixel &amp;tint=olc::WHITE)</td><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html#a624730b2582152c4cc49d457bc140859">DrawPartialWarpedDecal</a>(olc::Decal *decal, const std::array&lt; olc::vf2d, 4 &gt; &amp;pos, const olc::vf2d &amp;source_pos, const olc::vf2d &amp;source_size, const olc::Pixel &amp;tint=olc::WHITE)</td><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html#a0555577738d2edacb8b8e701d90804d7">DrawPolygonDecal</a>(olc::Decal *decal, const std::vector&lt; olc::vf2d &gt; &amp;pos, const std::vector&lt; olc::vf2d &gt; &amp;uv, const olc::Pixel tint=olc::WHITE)</td><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html#ab1578748552d35bff05e63dcfc79cfb9">DrawRect</a>(float x, float y, float w, float h, olc::Pixel p=olc::WHITE)</td><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html#a2ce6891b49d600eacb32eef88f07b2e0">DrawRect</a>(const olc::vf2d &amp;pos, const olc::vf2d &amp;size, olc::Pixel p=olc::WHITE)</td><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html#a0d11f6c9ddf0cda25a7b6a79c39c61d6">DrawRotatedDecal</a>(const olc::vf2d &amp;pos, olc::Decal *decal, const float fAngle, const olc::vf2d &amp;center={ 0.0f, 0.0f }, const olc::vf2d &amp;scale={ 1.0f, 1.0f }, const olc::Pixel &amp;tint=olc::WHITE)</td><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html#a0814eafdbf34c4570c08722998b3c936">DrawSprite</a>(float x, float y, olc::Sprite *sprite, float scalex=1, float scaley=1, uint8_t flip=olc::Sprite::NONE)</td><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html#a44f1c98c6c6720338d7b6dcc9117cb03">DrawSprite</a>(const olc::vf2d &amp;pos, olc::Sprite *sprite, const olc::vf2d &amp;scale={ 1.0f, 1.0f }, uint8_t flip=olc::Sprite::NONE)</td><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html#acf22577cab34db667d05eae0e38000e0">DrawString</a>(float x, float y, const std::string &amp;sText, Pixel col, const olc::vf2d &amp;scale)</td><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html#ab8e4acce21674331d91910c7056c59a3">DrawString</a>(const olc::vf2d &amp;pos, const std::string &amp;sText, const Pixel col, const olc::vf2d &amp;scale)</td><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html#a903ad811f1e3f99d8c6e35f1a1aaf9bf">DrawStringDecal</a>(const olc::vf2d &amp;pos, const std::string &amp;sText, const olc::Pixel col=olc::WHITE, const olc::vf2d &amp;scale={ 1.0f, 1.0f })</td><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html#afde48a1dc4946bfb3718c19bdf62b328">DrawStringPropDecal</a>(const olc::vf2d &amp;pos, const std::string &amp;sText, const olc::Pixel col=olc::WHITE, const olc::vf2d &amp;scale={ 1.0f, 1.0f })</td><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html#a6c818747c7fa97445fbb40c9f222e865">DrawTriangle</a>(float x1, float y1, float x2, float y2, float x3, float y3, olc::Pixel p=olc::WHITE)</td><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html#a45a659d55d124e87e956e842963637fa">DrawTriangle</a>(const olc::vf2d &amp;pos1, const olc::vf2d &amp;pos2, const olc::vf2d &amp;pos3, olc::Pixel p=olc::WHITE)</td><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html#a2c0e827b1182696275583059a1a72412">DrawWarpedDecal</a>(olc::Decal *decal, const olc::vf2d(&amp;pos)[4], const olc::Pixel &amp;tint=olc::WHITE)</td><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html#a250badf6257c666f0e0a07ed3d86ad9e">DrawWarpedDecal</a>(olc::Decal *decal, const olc::vf2d *pos, const olc::Pixel &amp;tint=olc::WHITE)</td><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html#a615fda4662913d6a1fc2764025c28efc">DrawWarpedDecal</a>(olc::Decal *decal, const std::array&lt; olc::vf2d, 4 &gt; &amp;pos, const olc::Pixel &amp;tint=olc::WHITE)</td><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html#a3edd680172e1ae5b710290ab58d617e0">EndPan</a>(const olc::vi2d &amp;vPos)</td><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html#afd3f4dffe3a2fffaed2fd6c84e40ce23">FillCircle</a>(float x, float y, float radius, olc::Pixel p=olc::WHITE)</td><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html#a8d8559f74de40982e41f9cab0577b3b9">FillCircle</a>(const olc::vf2d &amp;pos, float radius, olc::Pixel p=olc::WHITE)</td><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html#a2f12ada82c7262a2e29572cfded60f02">FillRect</a>(float x, float y, float w, float h, olc::Pixel p=olc::WHITE)</td><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html#abc3071fe6fa5f9ca4c5fe227a335df54">FillRect</a>(const olc::vf2d &amp;pos, const olc::vf2d &amp;size, olc::Pixel p=olc::WHITE)</td><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html#a82f6eeb19d315324c160aa78fd2ead70">FillRectDecal</a>(const olc::vf2d &amp;pos, const olc::vf2d &amp;size, const olc::Pixel col=olc::WHITE)</td><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html#a5cba545151923f38fd5d87b2c130a894">FillTriangle</a>(float x1, float y1, float x2, float y2, float x3, float y3, olc::Pixel p=olc::WHITE)</td><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html#a023149966b61d7f233898c2b4372d018">FillTriangle</a>(const olc::vf2d &amp;pos1, const olc::vf2d &amp;pos2, const olc::vf2d &amp;pos3, olc::Pixel p=olc::WHITE)</td><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html#a5240bf2a7285559be13c80f3ce2a97a3">GetWorldBR</a>() const</td><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html#a88152a5f5b9fbb3df0f6d965ef4c4fe4">GetWorldOffset</a>() const</td><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html#a4f6ba5d2c58b720677f4287743713f65">GetWorldScale</a>() const</td><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html#ac75bd045f9fbc5d8cd901ecdd216fcb5">GetWorldTL</a>() const</td><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html#a7f7815582a087a163199bb29f1c4c0ae">GetWorldVisibleArea</a>() const</td><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html#a220b8b9184eb25a6bb2c3271d5417025">GradientFillRectDecal</a>(const olc::vf2d &amp;pos, const olc::vf2d &amp;size, const olc::Pixel colTL, const olc::Pixel colBL, const olc::Pixel colBR, const olc::Pixel colTR)</td><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html#a799473b80691228b87a818f80847ca76">Initialise</a>(const olc::vi2d &amp;vViewArea, const olc::vf2d &amp;vPixelScale={ 1.0f, 1.0f })</td><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html#a664ea0cbd54bbff17ea419ebfac1e359">IsPointVisible</a>(const olc::vf2d &amp;vPos) const</td><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html#aecadbbdf84343ec0a2f0e2e8c9017f0e">IsRectVisible</a>(const olc::vf2d &amp;vPos, const olc::vf2d &amp;vSize) const</td><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html#a2c19ec65e54f43500cce003f878c8ed5">m_bPanning</a></td><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html#a94a7fd3ad136ec70040bbff1c7133418">m_vPixelScale</a></td><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html#ae1b7b82332f0979caa99e003827624cb">m_vRecipPixel</a></td><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html#a4f7569cc3d27120b485077789b86aa44">m_vStartPan</a></td><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html#a0a2936aac23f1621ff1d618c7155de1c">m_vViewArea</a></td><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html#a2e77497521f72e59ae7ecb56dc5d3f37">m_vWorldOffset</a></td><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html#a652909b48a4d8960c36d1ce4262cc95a">m_vWorldScale</a></td><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html#a154b34bc81f6e0c67579d2d2ee40b2d1">MoveWorldOffset</a>(const olc::vf2d &amp;vDeltaOffset)</td><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_p_g_e_x.html#a2a57a711518202708d2b0e586058348f">OnAfterUserCreate</a>()</td><td class="entry"><a class="el" href="classolc_1_1_p_g_e_x.html">olc::PGEX</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_p_g_e_x.html#a4d2dd7d685fb1c7d00d97aa15e3376b4">OnAfterUserUpdate</a>(float fElapsedTime)</td><td class="entry"><a class="el" href="classolc_1_1_p_g_e_x.html">olc::PGEX</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_p_g_e_x.html#a69c65b5d3a56f9a247e1bf15fd2e4035">OnBeforeUserCreate</a>()</td><td class="entry"><a class="el" href="classolc_1_1_p_g_e_x.html">olc::PGEX</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_p_g_e_x.html#a2573df22f1637314b976811714dea3fb">OnBeforeUserUpdate</a>(float &amp;fElapsedTime)</td><td class="entry"><a class="el" href="classolc_1_1_p_g_e_x.html">olc::PGEX</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_p_g_e_x.html#a032efdb84150a7cdd3cc9248860df316">pge</a></td><td class="entry"><a class="el" href="classolc_1_1_p_g_e_x.html">olc::PGEX</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">static</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_p_g_e_x.html#aae9dbde2ad7341482b9f911f23678d75">PGEX</a>(bool bHook=false)</td><td class="entry"><a class="el" href="classolc_1_1_p_g_e_x.html">olc::PGEX</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html#a8be86d8036bf635287debfcf2509e4c5">ScaleToScreen</a>(const olc::vf2d &amp;vWorldSize) const</td><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html#a09492f689459319994da4c9d0e0c2dc4">ScaleToWorld</a>(const olc::vi2d &amp;vScreenSize) const</td><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html#a0f18594e00e7865fe4376761f9e20812">ScreenToWorld</a>(const olc::vi2d &amp;vScreenPos) const</td><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html#ac7295e90921832fef16779172cc9e4ff">SetViewArea</a>(const olc::vi2d &amp;vViewArea)</td><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html#aee86c84a719f8b5c3143e2a0b89e8024">SetWorldOffset</a>(const olc::vf2d &amp;vOffset)</td><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html#a971e25ee6978c271127f766aba69b285">SetWorldScale</a>(const olc::vf2d &amp;vScale)</td><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html#a89fd4d642cf37d1e6f1674b870b142d8">SetZoom</a>(const float fZoom, const olc::vi2d &amp;vPos)</td><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html#a4dc2bd0de3686978fdf8630d23a727c3">StartPan</a>(const olc::vi2d &amp;vPos)</td><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html#a1f4ed7eb880b0f0edc0b86be4b33b04e">TransformedView</a>()=default</td><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html#a4baf2b53892749ff380833991161b9c4">UpdatePan</a>(const olc::vi2d &amp;vPos)</td><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html#a18b18c9718c642ca912d44a133ffde1d">WorldToScreen</a>(const olc::vf2d &amp;vWorldPos) const</td><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html#a84a8b9030ac97afa9b6099dea5865b9c">ZoomAtScreenPos</a>(const float fDeltaZoom, const olc::vi2d &amp;vPos)</td><td class="entry"><a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a></td><td class="entry"></td></tr>
+</table></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/classolc_1_1_transformed_view.html b/doxy/html/classolc_1_1_transformed_view.html
new file mode 100644
index 0000000000000000000000000000000000000000..327fcccfeddbbdbf114dfbb9c5c1fbf347ae9a5c
--- /dev/null
+++ b/doxy/html/classolc_1_1_transformed_view.html
@@ -0,0 +1,2663 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: olc::TransformedView Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="namespaceolc.html">olc</a></li><li class="navelem"><a class="el" href="classolc_1_1_transformed_view.html">TransformedView</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="#pro-attribs">Protected Attributes</a> &#124;
+<a href="classolc_1_1_transformed_view-members.html">List of all members</a>  </div>
+  <div class="headertitle">
+<div class="title">olc::TransformedView Class Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p><code>#include &lt;<a class="el" href="olc_p_g_e_x___transformed_view_8h_source.html">olcPGEX_TransformedView.h</a>&gt;</code></p>
+<div class="dynheader">
+Inheritance diagram for olc::TransformedView:</div>
+<div class="dyncontent">
+ <div class="center">
+  <img src="classolc_1_1_transformed_view.png" usemap="#olc::TransformedView_map" alt=""/>
+  <map id="olc::TransformedView_map" name="olc::TransformedView_map">
+<area href="classolc_1_1_p_g_e_x.html" alt="olc::PGEX" shape="rect" coords="0,0,154,24"/>
+<area href="classolc_1_1_tile_transformed_view.html" alt="olc::TileTransformedView" shape="rect" coords="0,112,154,136"/>
+  </map>
+</div></div>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr class="memitem:a1f4ed7eb880b0f0edc0b86be4b33b04e"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_transformed_view.html#a1f4ed7eb880b0f0edc0b86be4b33b04e">TransformedView</a> ()=default</td></tr>
+<tr class="separator:a1f4ed7eb880b0f0edc0b86be4b33b04e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a799473b80691228b87a818f80847ca76"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_transformed_view.html#a799473b80691228b87a818f80847ca76">Initialise</a> (const <a class="el" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">olc::vi2d</a> &amp;vViewArea, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;vPixelScale={ 1.0f, 1.0f })</td></tr>
+<tr class="separator:a799473b80691228b87a818f80847ca76"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aee86c84a719f8b5c3143e2a0b89e8024"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_transformed_view.html#aee86c84a719f8b5c3143e2a0b89e8024">SetWorldOffset</a> (const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;vOffset)</td></tr>
+<tr class="separator:aee86c84a719f8b5c3143e2a0b89e8024"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a154b34bc81f6e0c67579d2d2ee40b2d1"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_transformed_view.html#a154b34bc81f6e0c67579d2d2ee40b2d1">MoveWorldOffset</a> (const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;vDeltaOffset)</td></tr>
+<tr class="separator:a154b34bc81f6e0c67579d2d2ee40b2d1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a971e25ee6978c271127f766aba69b285"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_transformed_view.html#a971e25ee6978c271127f766aba69b285">SetWorldScale</a> (const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;vScale)</td></tr>
+<tr class="separator:a971e25ee6978c271127f766aba69b285"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac7295e90921832fef16779172cc9e4ff"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_transformed_view.html#ac7295e90921832fef16779172cc9e4ff">SetViewArea</a> (const <a class="el" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">olc::vi2d</a> &amp;vViewArea)</td></tr>
+<tr class="separator:ac7295e90921832fef16779172cc9e4ff"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac75bd045f9fbc5d8cd901ecdd216fcb5"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_transformed_view.html#ac75bd045f9fbc5d8cd901ecdd216fcb5">GetWorldTL</a> () const</td></tr>
+<tr class="separator:ac75bd045f9fbc5d8cd901ecdd216fcb5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5240bf2a7285559be13c80f3ce2a97a3"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_transformed_view.html#a5240bf2a7285559be13c80f3ce2a97a3">GetWorldBR</a> () const</td></tr>
+<tr class="separator:a5240bf2a7285559be13c80f3ce2a97a3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7f7815582a087a163199bb29f1c4c0ae"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_transformed_view.html#a7f7815582a087a163199bb29f1c4c0ae">GetWorldVisibleArea</a> () const</td></tr>
+<tr class="separator:a7f7815582a087a163199bb29f1c4c0ae"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a84a8b9030ac97afa9b6099dea5865b9c"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_transformed_view.html#a84a8b9030ac97afa9b6099dea5865b9c">ZoomAtScreenPos</a> (const float fDeltaZoom, const <a class="el" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">olc::vi2d</a> &amp;vPos)</td></tr>
+<tr class="separator:a84a8b9030ac97afa9b6099dea5865b9c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a89fd4d642cf37d1e6f1674b870b142d8"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_transformed_view.html#a89fd4d642cf37d1e6f1674b870b142d8">SetZoom</a> (const float fZoom, const <a class="el" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">olc::vi2d</a> &amp;vPos)</td></tr>
+<tr class="separator:a89fd4d642cf37d1e6f1674b870b142d8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4dc2bd0de3686978fdf8630d23a727c3"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_transformed_view.html#a4dc2bd0de3686978fdf8630d23a727c3">StartPan</a> (const <a class="el" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">olc::vi2d</a> &amp;vPos)</td></tr>
+<tr class="separator:a4dc2bd0de3686978fdf8630d23a727c3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4baf2b53892749ff380833991161b9c4"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_transformed_view.html#a4baf2b53892749ff380833991161b9c4">UpdatePan</a> (const <a class="el" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">olc::vi2d</a> &amp;vPos)</td></tr>
+<tr class="separator:a4baf2b53892749ff380833991161b9c4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3edd680172e1ae5b710290ab58d617e0"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_transformed_view.html#a3edd680172e1ae5b710290ab58d617e0">EndPan</a> (const <a class="el" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">olc::vi2d</a> &amp;vPos)</td></tr>
+<tr class="separator:a3edd680172e1ae5b710290ab58d617e0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a88152a5f5b9fbb3df0f6d965ef4c4fe4"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_transformed_view.html#a88152a5f5b9fbb3df0f6d965ef4c4fe4">GetWorldOffset</a> () const</td></tr>
+<tr class="separator:a88152a5f5b9fbb3df0f6d965ef4c4fe4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4f6ba5d2c58b720677f4287743713f65"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_transformed_view.html#a4f6ba5d2c58b720677f4287743713f65">GetWorldScale</a> () const</td></tr>
+<tr class="separator:a4f6ba5d2c58b720677f4287743713f65"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a18b18c9718c642ca912d44a133ffde1d"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">olc::vi2d</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_transformed_view.html#a18b18c9718c642ca912d44a133ffde1d">WorldToScreen</a> (const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;vWorldPos) const</td></tr>
+<tr class="separator:a18b18c9718c642ca912d44a133ffde1d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0f18594e00e7865fe4376761f9e20812"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_transformed_view.html#a0f18594e00e7865fe4376761f9e20812">ScreenToWorld</a> (const <a class="el" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">olc::vi2d</a> &amp;vScreenPos) const</td></tr>
+<tr class="separator:a0f18594e00e7865fe4376761f9e20812"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a09492f689459319994da4c9d0e0c2dc4"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_transformed_view.html#a09492f689459319994da4c9d0e0c2dc4">ScaleToWorld</a> (const <a class="el" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">olc::vi2d</a> &amp;vScreenSize) const</td></tr>
+<tr class="separator:a09492f689459319994da4c9d0e0c2dc4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8be86d8036bf635287debfcf2509e4c5"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">olc::vi2d</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_transformed_view.html#a8be86d8036bf635287debfcf2509e4c5">ScaleToScreen</a> (const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;vWorldSize) const</td></tr>
+<tr class="separator:a8be86d8036bf635287debfcf2509e4c5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a664ea0cbd54bbff17ea419ebfac1e359"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_transformed_view.html#a664ea0cbd54bbff17ea419ebfac1e359">IsPointVisible</a> (const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;vPos) const</td></tr>
+<tr class="separator:a664ea0cbd54bbff17ea419ebfac1e359"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aecadbbdf84343ec0a2f0e2e8c9017f0e"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_transformed_view.html#aecadbbdf84343ec0a2f0e2e8c9017f0e">IsRectVisible</a> (const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;vPos, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;vSize) const</td></tr>
+<tr class="separator:aecadbbdf84343ec0a2f0e2e8c9017f0e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a09a214f47f9e4f5e85a8d3bd224ab9b1"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_transformed_view.html#a09a214f47f9e4f5e85a8d3bd224ab9b1">Draw</a> (float x, float y, <a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a> p=<a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>)</td></tr>
+<tr class="separator:a09a214f47f9e4f5e85a8d3bd224ab9b1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2509ea7aa54013b9b0caa7a265818511"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_transformed_view.html#a2509ea7aa54013b9b0caa7a265818511">Draw</a> (const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;pos, <a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a> p=<a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>)</td></tr>
+<tr class="separator:a2509ea7aa54013b9b0caa7a265818511"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2564b30474cab1de208a9b220ddbc181"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_transformed_view.html#a2564b30474cab1de208a9b220ddbc181">DrawLine</a> (float x1, float y1, float x2, float y2, <a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a> p=<a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>, uint32_t pattern=0xFFFFFFFF)</td></tr>
+<tr class="separator:a2564b30474cab1de208a9b220ddbc181"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a60a961188fe9a5cb60258c1b4d8cf498"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_transformed_view.html#a60a961188fe9a5cb60258c1b4d8cf498">DrawLine</a> (const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;pos1, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;pos2, <a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a> p=<a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>, uint32_t pattern=0xFFFFFFFF)</td></tr>
+<tr class="separator:a60a961188fe9a5cb60258c1b4d8cf498"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abbf0590764bbacdd35a4d0adc6e69b84"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_transformed_view.html#abbf0590764bbacdd35a4d0adc6e69b84">DrawCircle</a> (float x, float y, float radius, <a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a> p=<a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>, uint8_t mask=0xFF)</td></tr>
+<tr class="separator:abbf0590764bbacdd35a4d0adc6e69b84"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa7edb61f256624bad3e5d5847f0eef88"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_transformed_view.html#aa7edb61f256624bad3e5d5847f0eef88">DrawCircle</a> (const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;pos, float radius, <a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a> p=<a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>, uint8_t mask=0xFF)</td></tr>
+<tr class="separator:aa7edb61f256624bad3e5d5847f0eef88"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afd3f4dffe3a2fffaed2fd6c84e40ce23"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_transformed_view.html#afd3f4dffe3a2fffaed2fd6c84e40ce23">FillCircle</a> (float x, float y, float radius, <a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a> p=<a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>)</td></tr>
+<tr class="separator:afd3f4dffe3a2fffaed2fd6c84e40ce23"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8d8559f74de40982e41f9cab0577b3b9"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_transformed_view.html#a8d8559f74de40982e41f9cab0577b3b9">FillCircle</a> (const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;pos, float radius, <a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a> p=<a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>)</td></tr>
+<tr class="separator:a8d8559f74de40982e41f9cab0577b3b9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab1578748552d35bff05e63dcfc79cfb9"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_transformed_view.html#ab1578748552d35bff05e63dcfc79cfb9">DrawRect</a> (float x, float y, float w, float h, <a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a> p=<a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>)</td></tr>
+<tr class="separator:ab1578748552d35bff05e63dcfc79cfb9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2ce6891b49d600eacb32eef88f07b2e0"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_transformed_view.html#a2ce6891b49d600eacb32eef88f07b2e0">DrawRect</a> (const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;pos, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;size, <a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a> p=<a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>)</td></tr>
+<tr class="separator:a2ce6891b49d600eacb32eef88f07b2e0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2f12ada82c7262a2e29572cfded60f02"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_transformed_view.html#a2f12ada82c7262a2e29572cfded60f02">FillRect</a> (float x, float y, float w, float h, <a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a> p=<a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>)</td></tr>
+<tr class="separator:a2f12ada82c7262a2e29572cfded60f02"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abc3071fe6fa5f9ca4c5fe227a335df54"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_transformed_view.html#abc3071fe6fa5f9ca4c5fe227a335df54">FillRect</a> (const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;pos, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;size, <a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a> p=<a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>)</td></tr>
+<tr class="separator:abc3071fe6fa5f9ca4c5fe227a335df54"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6c818747c7fa97445fbb40c9f222e865"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_transformed_view.html#a6c818747c7fa97445fbb40c9f222e865">DrawTriangle</a> (float x1, float y1, float x2, float y2, float x3, float y3, <a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a> p=<a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>)</td></tr>
+<tr class="separator:a6c818747c7fa97445fbb40c9f222e865"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a45a659d55d124e87e956e842963637fa"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_transformed_view.html#a45a659d55d124e87e956e842963637fa">DrawTriangle</a> (const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;pos1, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;pos2, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;pos3, <a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a> p=<a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>)</td></tr>
+<tr class="separator:a45a659d55d124e87e956e842963637fa"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5cba545151923f38fd5d87b2c130a894"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_transformed_view.html#a5cba545151923f38fd5d87b2c130a894">FillTriangle</a> (float x1, float y1, float x2, float y2, float x3, float y3, <a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a> p=<a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>)</td></tr>
+<tr class="separator:a5cba545151923f38fd5d87b2c130a894"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a023149966b61d7f233898c2b4372d018"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_transformed_view.html#a023149966b61d7f233898c2b4372d018">FillTriangle</a> (const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;pos1, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;pos2, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;pos3, <a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a> p=<a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>)</td></tr>
+<tr class="separator:a023149966b61d7f233898c2b4372d018"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0814eafdbf34c4570c08722998b3c936"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_transformed_view.html#a0814eafdbf34c4570c08722998b3c936">DrawSprite</a> (float x, float y, <a class="el" href="classolc_1_1_sprite.html">olc::Sprite</a> *sprite, float scalex=1, float scaley=1, uint8_t flip=<a class="el" href="classolc_1_1_sprite.html#ad0d1976d2060997f5cd99eb284a5dc24a6ad338b4e63faacfbed68b020c3a0c0c">olc::Sprite::NONE</a>)</td></tr>
+<tr class="separator:a0814eafdbf34c4570c08722998b3c936"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a44f1c98c6c6720338d7b6dcc9117cb03"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_transformed_view.html#a44f1c98c6c6720338d7b6dcc9117cb03">DrawSprite</a> (const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;pos, <a class="el" href="classolc_1_1_sprite.html">olc::Sprite</a> *sprite, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;scale={ 1.0f, 1.0f }, uint8_t flip=<a class="el" href="classolc_1_1_sprite.html#ad0d1976d2060997f5cd99eb284a5dc24a6ad338b4e63faacfbed68b020c3a0c0c">olc::Sprite::NONE</a>)</td></tr>
+<tr class="separator:a44f1c98c6c6720338d7b6dcc9117cb03"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a829557257985bb738baad577ed0ed7a0"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_transformed_view.html#a829557257985bb738baad577ed0ed7a0">DrawPartialSprite</a> (float x, float y, <a class="el" href="classolc_1_1_sprite.html">Sprite</a> *sprite, int32_t ox, int32_t oy, int32_t w, int32_t h, float scalex=1, float scaley=1, uint8_t flip=<a class="el" href="classolc_1_1_sprite.html#ad0d1976d2060997f5cd99eb284a5dc24a6ad338b4e63faacfbed68b020c3a0c0c">olc::Sprite::NONE</a>)</td></tr>
+<tr class="separator:a829557257985bb738baad577ed0ed7a0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0c6e1fb72399ec97e0dc093a2da80d50"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_transformed_view.html#a0c6e1fb72399ec97e0dc093a2da80d50">DrawPartialSprite</a> (const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;pos, <a class="el" href="classolc_1_1_sprite.html">Sprite</a> *sprite, const <a class="el" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">olc::vi2d</a> &amp;sourcepos, const <a class="el" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">olc::vi2d</a> &amp;size, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;scale={ 1.0f, 1.0f }, uint8_t flip=<a class="el" href="classolc_1_1_sprite.html#ad0d1976d2060997f5cd99eb284a5dc24a6ad338b4e63faacfbed68b020c3a0c0c">olc::Sprite::NONE</a>)</td></tr>
+<tr class="separator:a0c6e1fb72399ec97e0dc093a2da80d50"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:acf22577cab34db667d05eae0e38000e0"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_transformed_view.html#acf22577cab34db667d05eae0e38000e0">DrawString</a> (float x, float y, const std::string &amp;sText, <a class="el" href="structolc_1_1_pixel.html">Pixel</a> col, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;scale)</td></tr>
+<tr class="separator:acf22577cab34db667d05eae0e38000e0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab8e4acce21674331d91910c7056c59a3"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_transformed_view.html#ab8e4acce21674331d91910c7056c59a3">DrawString</a> (const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;pos, const std::string &amp;sText, const <a class="el" href="structolc_1_1_pixel.html">Pixel</a> col, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;scale)</td></tr>
+<tr class="separator:ab8e4acce21674331d91910c7056c59a3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8bad23f424184f2e15f32deb7f179160"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_transformed_view.html#a8bad23f424184f2e15f32deb7f179160">DrawDecal</a> (const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;pos, <a class="el" href="classolc_1_1_decal.html">olc::Decal</a> *decal, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;scale={ 1.0f, 1.0f }, const <a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a> &amp;tint=<a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>)</td></tr>
+<tr class="separator:a8bad23f424184f2e15f32deb7f179160"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1daefdb27499350eb3927c79ec60bca5"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_transformed_view.html#a1daefdb27499350eb3927c79ec60bca5">DrawPartialDecal</a> (const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;pos, <a class="el" href="classolc_1_1_decal.html">olc::Decal</a> *decal, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;source_pos, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;source_size, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;scale={ 1.0f, 1.0f }, const <a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a> &amp;tint=<a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>)</td></tr>
+<tr class="separator:a1daefdb27499350eb3927c79ec60bca5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a03ef78202a55d896cd86eb16f39b8847"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_transformed_view.html#a03ef78202a55d896cd86eb16f39b8847">DrawPartialDecal</a> (const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;pos, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;size, <a class="el" href="classolc_1_1_decal.html">olc::Decal</a> *decal, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;source_pos, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;source_size, const <a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a> &amp;tint=<a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>)</td></tr>
+<tr class="separator:a03ef78202a55d896cd86eb16f39b8847"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac133c5f498e18dc4bcf6a087c7f8b356"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_transformed_view.html#ac133c5f498e18dc4bcf6a087c7f8b356">DrawExplicitDecal</a> (<a class="el" href="classolc_1_1_decal.html">olc::Decal</a> *decal, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> *pos, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> *uv, const <a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a> *col, uint32_t elements=4)</td></tr>
+<tr class="separator:ac133c5f498e18dc4bcf6a087c7f8b356"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2c0e827b1182696275583059a1a72412"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_transformed_view.html#a2c0e827b1182696275583059a1a72412">DrawWarpedDecal</a> (<a class="el" href="classolc_1_1_decal.html">olc::Decal</a> *decal, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a>(&amp;pos)[4], const <a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a> &amp;tint=<a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>)</td></tr>
+<tr class="separator:a2c0e827b1182696275583059a1a72412"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a250badf6257c666f0e0a07ed3d86ad9e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_transformed_view.html#a250badf6257c666f0e0a07ed3d86ad9e">DrawWarpedDecal</a> (<a class="el" href="classolc_1_1_decal.html">olc::Decal</a> *decal, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> *pos, const <a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a> &amp;tint=<a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>)</td></tr>
+<tr class="separator:a250badf6257c666f0e0a07ed3d86ad9e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a615fda4662913d6a1fc2764025c28efc"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_transformed_view.html#a615fda4662913d6a1fc2764025c28efc">DrawWarpedDecal</a> (<a class="el" href="classolc_1_1_decal.html">olc::Decal</a> *decal, const std::array&lt; <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a>, 4 &gt; &amp;pos, const <a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a> &amp;tint=<a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>)</td></tr>
+<tr class="separator:a615fda4662913d6a1fc2764025c28efc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a17bf0d6a35728abe95993ef5475aa767"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_transformed_view.html#a17bf0d6a35728abe95993ef5475aa767">DrawPartialWarpedDecal</a> (<a class="el" href="classolc_1_1_decal.html">olc::Decal</a> *decal, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a>(&amp;pos)[4], const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;source_pos, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;source_size, const <a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a> &amp;tint=<a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>)</td></tr>
+<tr class="separator:a17bf0d6a35728abe95993ef5475aa767"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a88045b492c61288a7e5ca1eb164ad2fb"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_transformed_view.html#a88045b492c61288a7e5ca1eb164ad2fb">DrawPartialWarpedDecal</a> (<a class="el" href="classolc_1_1_decal.html">olc::Decal</a> *decal, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> *pos, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;source_pos, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;source_size, const <a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a> &amp;tint=<a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>)</td></tr>
+<tr class="separator:a88045b492c61288a7e5ca1eb164ad2fb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a624730b2582152c4cc49d457bc140859"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_transformed_view.html#a624730b2582152c4cc49d457bc140859">DrawPartialWarpedDecal</a> (<a class="el" href="classolc_1_1_decal.html">olc::Decal</a> *decal, const std::array&lt; <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a>, 4 &gt; &amp;pos, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;source_pos, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;source_size, const <a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a> &amp;tint=<a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>)</td></tr>
+<tr class="separator:a624730b2582152c4cc49d457bc140859"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0d11f6c9ddf0cda25a7b6a79c39c61d6"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_transformed_view.html#a0d11f6c9ddf0cda25a7b6a79c39c61d6">DrawRotatedDecal</a> (const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;pos, <a class="el" href="classolc_1_1_decal.html">olc::Decal</a> *decal, const float fAngle, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;center={ 0.0f, 0.0f }, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;scale={ 1.0f, 1.0f }, const <a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a> &amp;tint=<a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>)</td></tr>
+<tr class="separator:a0d11f6c9ddf0cda25a7b6a79c39c61d6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3f2574c761a0045641fd2f5f9b194184"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_transformed_view.html#a3f2574c761a0045641fd2f5f9b194184">DrawPartialRotatedDecal</a> (const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;pos, <a class="el" href="classolc_1_1_decal.html">olc::Decal</a> *decal, const float fAngle, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;center, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;source_pos, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;source_size, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;scale={ 1.0f, 1.0f }, const <a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a> &amp;tint=<a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>)</td></tr>
+<tr class="separator:a3f2574c761a0045641fd2f5f9b194184"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a903ad811f1e3f99d8c6e35f1a1aaf9bf"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_transformed_view.html#a903ad811f1e3f99d8c6e35f1a1aaf9bf">DrawStringDecal</a> (const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;pos, const std::string &amp;sText, const <a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a> col=<a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;scale={ 1.0f, 1.0f })</td></tr>
+<tr class="separator:a903ad811f1e3f99d8c6e35f1a1aaf9bf"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afde48a1dc4946bfb3718c19bdf62b328"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_transformed_view.html#afde48a1dc4946bfb3718c19bdf62b328">DrawStringPropDecal</a> (const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;pos, const std::string &amp;sText, const <a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a> col=<a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;scale={ 1.0f, 1.0f })</td></tr>
+<tr class="separator:afde48a1dc4946bfb3718c19bdf62b328"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a82f6eeb19d315324c160aa78fd2ead70"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_transformed_view.html#a82f6eeb19d315324c160aa78fd2ead70">FillRectDecal</a> (const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;pos, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;size, const <a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a> col=<a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>)</td></tr>
+<tr class="separator:a82f6eeb19d315324c160aa78fd2ead70"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a220b8b9184eb25a6bb2c3271d5417025"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_transformed_view.html#a220b8b9184eb25a6bb2c3271d5417025">GradientFillRectDecal</a> (const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;pos, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;size, const <a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a> colTL, const <a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a> colBL, const <a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a> colBR, const <a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a> colTR)</td></tr>
+<tr class="separator:a220b8b9184eb25a6bb2c3271d5417025"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0555577738d2edacb8b8e701d90804d7"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_transformed_view.html#a0555577738d2edacb8b8e701d90804d7">DrawPolygonDecal</a> (<a class="el" href="classolc_1_1_decal.html">olc::Decal</a> *decal, const std::vector&lt; <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &gt; &amp;pos, const std::vector&lt; <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &gt; &amp;uv, const <a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a> tint=<a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>)</td></tr>
+<tr class="separator:a0555577738d2edacb8b8e701d90804d7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pub_methods_classolc_1_1_p_g_e_x"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classolc_1_1_p_g_e_x')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classolc_1_1_p_g_e_x.html">olc::PGEX</a></td></tr>
+<tr class="memitem:aae9dbde2ad7341482b9f911f23678d75 inherit pub_methods_classolc_1_1_p_g_e_x"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_p_g_e_x.html#aae9dbde2ad7341482b9f911f23678d75">PGEX</a> (bool bHook=false)</td></tr>
+<tr class="separator:aae9dbde2ad7341482b9f911f23678d75 inherit pub_methods_classolc_1_1_p_g_e_x"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-attribs"></a>
+Protected Attributes</h2></td></tr>
+<tr class="memitem:a2e77497521f72e59ae7ecb56dc5d3f37"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_transformed_view.html#a2e77497521f72e59ae7ecb56dc5d3f37">m_vWorldOffset</a> = { 0.0f, 0.0f }</td></tr>
+<tr class="separator:a2e77497521f72e59ae7ecb56dc5d3f37"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a652909b48a4d8960c36d1ce4262cc95a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_transformed_view.html#a652909b48a4d8960c36d1ce4262cc95a">m_vWorldScale</a> = { 1.0f, 1.0f }</td></tr>
+<tr class="separator:a652909b48a4d8960c36d1ce4262cc95a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae1b7b82332f0979caa99e003827624cb"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_transformed_view.html#ae1b7b82332f0979caa99e003827624cb">m_vRecipPixel</a> = { 1.0f, 1.0f }</td></tr>
+<tr class="separator:ae1b7b82332f0979caa99e003827624cb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a94a7fd3ad136ec70040bbff1c7133418"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_transformed_view.html#a94a7fd3ad136ec70040bbff1c7133418">m_vPixelScale</a> = { 1.0f, 1.0f }</td></tr>
+<tr class="separator:a94a7fd3ad136ec70040bbff1c7133418"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2c19ec65e54f43500cce003f878c8ed5"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_transformed_view.html#a2c19ec65e54f43500cce003f878c8ed5">m_bPanning</a> = false</td></tr>
+<tr class="separator:a2c19ec65e54f43500cce003f878c8ed5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4f7569cc3d27120b485077789b86aa44"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_transformed_view.html#a4f7569cc3d27120b485077789b86aa44">m_vStartPan</a> = { 0.0f, 0.0f }</td></tr>
+<tr class="separator:a4f7569cc3d27120b485077789b86aa44"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0a2936aac23f1621ff1d618c7155de1c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">olc::vi2d</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_transformed_view.html#a0a2936aac23f1621ff1d618c7155de1c">m_vViewArea</a></td></tr>
+<tr class="separator:a0a2936aac23f1621ff1d618c7155de1c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
+Additional Inherited Members</h2></td></tr>
+<tr class="inherit_header pro_methods_classolc_1_1_p_g_e_x"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classolc_1_1_p_g_e_x')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="classolc_1_1_p_g_e_x.html">olc::PGEX</a></td></tr>
+<tr class="memitem:a69c65b5d3a56f9a247e1bf15fd2e4035 inherit pro_methods_classolc_1_1_p_g_e_x"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_p_g_e_x.html#a69c65b5d3a56f9a247e1bf15fd2e4035">OnBeforeUserCreate</a> ()</td></tr>
+<tr class="separator:a69c65b5d3a56f9a247e1bf15fd2e4035 inherit pro_methods_classolc_1_1_p_g_e_x"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2a57a711518202708d2b0e586058348f inherit pro_methods_classolc_1_1_p_g_e_x"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_p_g_e_x.html#a2a57a711518202708d2b0e586058348f">OnAfterUserCreate</a> ()</td></tr>
+<tr class="separator:a2a57a711518202708d2b0e586058348f inherit pro_methods_classolc_1_1_p_g_e_x"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2573df22f1637314b976811714dea3fb inherit pro_methods_classolc_1_1_p_g_e_x"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_p_g_e_x.html#a2573df22f1637314b976811714dea3fb">OnBeforeUserUpdate</a> (float &amp;fElapsedTime)</td></tr>
+<tr class="separator:a2573df22f1637314b976811714dea3fb inherit pro_methods_classolc_1_1_p_g_e_x"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4d2dd7d685fb1c7d00d97aa15e3376b4 inherit pro_methods_classolc_1_1_p_g_e_x"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_p_g_e_x.html#a4d2dd7d685fb1c7d00d97aa15e3376b4">OnAfterUserUpdate</a> (float fElapsedTime)</td></tr>
+<tr class="separator:a4d2dd7d685fb1c7d00d97aa15e3376b4 inherit pro_methods_classolc_1_1_p_g_e_x"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_static_attribs_classolc_1_1_p_g_e_x"><td colspan="2" onclick="javascript:toggleInherit('pro_static_attribs_classolc_1_1_p_g_e_x')"><img src="closed.png" alt="-"/>&#160;Static Protected Attributes inherited from <a class="el" href="classolc_1_1_p_g_e_x.html">olc::PGEX</a></td></tr>
+<tr class="memitem:a032efdb84150a7cdd3cc9248860df316 inherit pro_static_attribs_classolc_1_1_p_g_e_x"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classolc_1_1_pixel_game_engine.html">PixelGameEngine</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_p_g_e_x.html#a032efdb84150a7cdd3cc9248860df316">pge</a></td></tr>
+<tr class="separator:a032efdb84150a7cdd3cc9248860df316 inherit pro_static_attribs_classolc_1_1_p_g_e_x"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock">
+<p class="definition">Definition at line <a class="el" href="olc_p_g_e_x___transformed_view_8h_source.html#l00079">79</a> of file <a class="el" href="olc_p_g_e_x___transformed_view_8h_source.html">olcPGEX_TransformedView.h</a>.</p>
+</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
+<a id="a1f4ed7eb880b0f0edc0b86be4b33b04e"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a1f4ed7eb880b0f0edc0b86be4b33b04e">&#9670;&nbsp;</a></span>TransformedView()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">olc::TransformedView::TransformedView </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">default</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<h2 class="groupheader">Member Function Documentation</h2>
+<a id="a2509ea7aa54013b9b0caa7a265818511"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a2509ea7aa54013b9b0caa7a265818511">&#9670;&nbsp;</a></span>Draw() <span class="overload">[1/2]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">bool olc::TransformedView::Draw </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>pos</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a>&#160;</td>
+          <td class="paramname"><em>p</em> = <code><a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a></code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a09a214f47f9e4f5e85a8d3bd224ab9b1"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a09a214f47f9e4f5e85a8d3bd224ab9b1">&#9670;&nbsp;</a></span>Draw() <span class="overload">[2/2]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">virtual bool olc::TransformedView::Draw </td>
+          <td>(</td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>x</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>y</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a>&#160;</td>
+          <td class="paramname"><em>p</em> = <code><a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a></code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="aa7edb61f256624bad3e5d5847f0eef88"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aa7edb61f256624bad3e5d5847f0eef88">&#9670;&nbsp;</a></span>DrawCircle() <span class="overload">[1/2]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void olc::TransformedView::DrawCircle </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>pos</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>radius</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a>&#160;</td>
+          <td class="paramname"><em>p</em> = <code><a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a></code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">uint8_t&#160;</td>
+          <td class="paramname"><em>mask</em> = <code>0xFF</code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="abbf0590764bbacdd35a4d0adc6e69b84"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#abbf0590764bbacdd35a4d0adc6e69b84">&#9670;&nbsp;</a></span>DrawCircle() <span class="overload">[2/2]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void olc::TransformedView::DrawCircle </td>
+          <td>(</td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>x</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>y</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>radius</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a>&#160;</td>
+          <td class="paramname"><em>p</em> = <code><a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a></code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">uint8_t&#160;</td>
+          <td class="paramname"><em>mask</em> = <code>0xFF</code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a8bad23f424184f2e15f32deb7f179160"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a8bad23f424184f2e15f32deb7f179160">&#9670;&nbsp;</a></span>DrawDecal()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void olc::TransformedView::DrawDecal </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>pos</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="classolc_1_1_decal.html">olc::Decal</a> *&#160;</td>
+          <td class="paramname"><em>decal</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>scale</em> = <code>{&#160;1.0f,&#160;1.0f&#160;}</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a> &amp;&#160;</td>
+          <td class="paramname"><em>tint</em> = <code><a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a></code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="ac133c5f498e18dc4bcf6a087c7f8b356"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ac133c5f498e18dc4bcf6a087c7f8b356">&#9670;&nbsp;</a></span>DrawExplicitDecal()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void olc::TransformedView::DrawExplicitDecal </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="classolc_1_1_decal.html">olc::Decal</a> *&#160;</td>
+          <td class="paramname"><em>decal</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> *&#160;</td>
+          <td class="paramname"><em>pos</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> *&#160;</td>
+          <td class="paramname"><em>uv</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a> *&#160;</td>
+          <td class="paramname"><em>col</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">uint32_t&#160;</td>
+          <td class="paramname"><em>elements</em> = <code>4</code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a60a961188fe9a5cb60258c1b4d8cf498"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a60a961188fe9a5cb60258c1b4d8cf498">&#9670;&nbsp;</a></span>DrawLine() <span class="overload">[1/2]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void olc::TransformedView::DrawLine </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>pos1</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>pos2</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a>&#160;</td>
+          <td class="paramname"><em>p</em> = <code><a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a></code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">uint32_t&#160;</td>
+          <td class="paramname"><em>pattern</em> = <code>0xFFFFFFFF</code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a2564b30474cab1de208a9b220ddbc181"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a2564b30474cab1de208a9b220ddbc181">&#9670;&nbsp;</a></span>DrawLine() <span class="overload">[2/2]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void olc::TransformedView::DrawLine </td>
+          <td>(</td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>x1</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>y1</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>x2</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>y2</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a>&#160;</td>
+          <td class="paramname"><em>p</em> = <code><a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a></code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">uint32_t&#160;</td>
+          <td class="paramname"><em>pattern</em> = <code>0xFFFFFFFF</code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a03ef78202a55d896cd86eb16f39b8847"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a03ef78202a55d896cd86eb16f39b8847">&#9670;&nbsp;</a></span>DrawPartialDecal() <span class="overload">[1/2]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void olc::TransformedView::DrawPartialDecal </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>pos</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>size</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="classolc_1_1_decal.html">olc::Decal</a> *&#160;</td>
+          <td class="paramname"><em>decal</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>source_pos</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>source_size</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a> &amp;&#160;</td>
+          <td class="paramname"><em>tint</em> = <code><a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a></code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a1daefdb27499350eb3927c79ec60bca5"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a1daefdb27499350eb3927c79ec60bca5">&#9670;&nbsp;</a></span>DrawPartialDecal() <span class="overload">[2/2]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void olc::TransformedView::DrawPartialDecal </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>pos</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="classolc_1_1_decal.html">olc::Decal</a> *&#160;</td>
+          <td class="paramname"><em>decal</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>source_pos</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>source_size</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>scale</em> = <code>{&#160;1.0f,&#160;1.0f&#160;}</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a> &amp;&#160;</td>
+          <td class="paramname"><em>tint</em> = <code><a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a></code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a3f2574c761a0045641fd2f5f9b194184"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a3f2574c761a0045641fd2f5f9b194184">&#9670;&nbsp;</a></span>DrawPartialRotatedDecal()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void olc::TransformedView::DrawPartialRotatedDecal </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>pos</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="classolc_1_1_decal.html">olc::Decal</a> *&#160;</td>
+          <td class="paramname"><em>decal</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const float&#160;</td>
+          <td class="paramname"><em>fAngle</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>center</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>source_pos</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>source_size</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>scale</em> = <code>{&#160;1.0f,&#160;1.0f&#160;}</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a> &amp;&#160;</td>
+          <td class="paramname"><em>tint</em> = <code><a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a></code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a0c6e1fb72399ec97e0dc093a2da80d50"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a0c6e1fb72399ec97e0dc093a2da80d50">&#9670;&nbsp;</a></span>DrawPartialSprite() <span class="overload">[1/2]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void olc::TransformedView::DrawPartialSprite </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>pos</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="classolc_1_1_sprite.html">Sprite</a> *&#160;</td>
+          <td class="paramname"><em>sprite</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">olc::vi2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>sourcepos</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">olc::vi2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>size</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>scale</em> = <code>{&#160;1.0f,&#160;1.0f&#160;}</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">uint8_t&#160;</td>
+          <td class="paramname"><em>flip</em> = <code><a class="el" href="classolc_1_1_sprite.html#ad0d1976d2060997f5cd99eb284a5dc24a6ad338b4e63faacfbed68b020c3a0c0c">olc::Sprite::NONE</a></code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a829557257985bb738baad577ed0ed7a0"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a829557257985bb738baad577ed0ed7a0">&#9670;&nbsp;</a></span>DrawPartialSprite() <span class="overload">[2/2]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void olc::TransformedView::DrawPartialSprite </td>
+          <td>(</td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>x</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>y</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="classolc_1_1_sprite.html">Sprite</a> *&#160;</td>
+          <td class="paramname"><em>sprite</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int32_t&#160;</td>
+          <td class="paramname"><em>ox</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int32_t&#160;</td>
+          <td class="paramname"><em>oy</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int32_t&#160;</td>
+          <td class="paramname"><em>w</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int32_t&#160;</td>
+          <td class="paramname"><em>h</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>scalex</em> = <code>1</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>scaley</em> = <code>1</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">uint8_t&#160;</td>
+          <td class="paramname"><em>flip</em> = <code><a class="el" href="classolc_1_1_sprite.html#ad0d1976d2060997f5cd99eb284a5dc24a6ad338b4e63faacfbed68b020c3a0c0c">olc::Sprite::NONE</a></code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a88045b492c61288a7e5ca1eb164ad2fb"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a88045b492c61288a7e5ca1eb164ad2fb">&#9670;&nbsp;</a></span>DrawPartialWarpedDecal() <span class="overload">[1/3]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void olc::TransformedView::DrawPartialWarpedDecal </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="classolc_1_1_decal.html">olc::Decal</a> *&#160;</td>
+          <td class="paramname"><em>decal</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> *&#160;</td>
+          <td class="paramname"><em>pos</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>source_pos</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>source_size</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a> &amp;&#160;</td>
+          <td class="paramname"><em>tint</em> = <code><a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a></code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a17bf0d6a35728abe95993ef5475aa767"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a17bf0d6a35728abe95993ef5475aa767">&#9670;&nbsp;</a></span>DrawPartialWarpedDecal() <span class="overload">[2/3]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void olc::TransformedView::DrawPartialWarpedDecal </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="classolc_1_1_decal.html">olc::Decal</a> *&#160;</td>
+          <td class="paramname"><em>decal</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a>(&amp;)&#160;</td>
+          <td class="paramname"><em>pos</em>[4], </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>source_pos</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>source_size</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a> &amp;&#160;</td>
+          <td class="paramname"><em>tint</em> = <code><a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a></code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a624730b2582152c4cc49d457bc140859"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a624730b2582152c4cc49d457bc140859">&#9670;&nbsp;</a></span>DrawPartialWarpedDecal() <span class="overload">[3/3]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void olc::TransformedView::DrawPartialWarpedDecal </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="classolc_1_1_decal.html">olc::Decal</a> *&#160;</td>
+          <td class="paramname"><em>decal</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const std::array&lt; <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a>, 4 &gt; &amp;&#160;</td>
+          <td class="paramname"><em>pos</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>source_pos</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>source_size</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a> &amp;&#160;</td>
+          <td class="paramname"><em>tint</em> = <code><a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a></code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a0555577738d2edacb8b8e701d90804d7"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a0555577738d2edacb8b8e701d90804d7">&#9670;&nbsp;</a></span>DrawPolygonDecal()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void olc::TransformedView::DrawPolygonDecal </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="classolc_1_1_decal.html">olc::Decal</a> *&#160;</td>
+          <td class="paramname"><em>decal</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const std::vector&lt; <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &gt; &amp;&#160;</td>
+          <td class="paramname"><em>pos</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const std::vector&lt; <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &gt; &amp;&#160;</td>
+          <td class="paramname"><em>uv</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a>&#160;</td>
+          <td class="paramname"><em>tint</em> = <code><a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a></code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a2ce6891b49d600eacb32eef88f07b2e0"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a2ce6891b49d600eacb32eef88f07b2e0">&#9670;&nbsp;</a></span>DrawRect() <span class="overload">[1/2]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void olc::TransformedView::DrawRect </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>pos</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>size</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a>&#160;</td>
+          <td class="paramname"><em>p</em> = <code><a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a></code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="ab1578748552d35bff05e63dcfc79cfb9"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ab1578748552d35bff05e63dcfc79cfb9">&#9670;&nbsp;</a></span>DrawRect() <span class="overload">[2/2]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void olc::TransformedView::DrawRect </td>
+          <td>(</td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>x</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>y</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>w</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>h</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a>&#160;</td>
+          <td class="paramname"><em>p</em> = <code><a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a></code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a0d11f6c9ddf0cda25a7b6a79c39c61d6"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a0d11f6c9ddf0cda25a7b6a79c39c61d6">&#9670;&nbsp;</a></span>DrawRotatedDecal()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void olc::TransformedView::DrawRotatedDecal </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>pos</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="classolc_1_1_decal.html">olc::Decal</a> *&#160;</td>
+          <td class="paramname"><em>decal</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const float&#160;</td>
+          <td class="paramname"><em>fAngle</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>center</em> = <code>{&#160;0.0f,&#160;0.0f&#160;}</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>scale</em> = <code>{&#160;1.0f,&#160;1.0f&#160;}</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a> &amp;&#160;</td>
+          <td class="paramname"><em>tint</em> = <code><a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a></code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a44f1c98c6c6720338d7b6dcc9117cb03"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a44f1c98c6c6720338d7b6dcc9117cb03">&#9670;&nbsp;</a></span>DrawSprite() <span class="overload">[1/2]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void olc::TransformedView::DrawSprite </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>pos</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="classolc_1_1_sprite.html">olc::Sprite</a> *&#160;</td>
+          <td class="paramname"><em>sprite</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>scale</em> = <code>{&#160;1.0f,&#160;1.0f&#160;}</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">uint8_t&#160;</td>
+          <td class="paramname"><em>flip</em> = <code><a class="el" href="classolc_1_1_sprite.html#ad0d1976d2060997f5cd99eb284a5dc24a6ad338b4e63faacfbed68b020c3a0c0c">olc::Sprite::NONE</a></code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a0814eafdbf34c4570c08722998b3c936"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a0814eafdbf34c4570c08722998b3c936">&#9670;&nbsp;</a></span>DrawSprite() <span class="overload">[2/2]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void olc::TransformedView::DrawSprite </td>
+          <td>(</td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>x</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>y</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="classolc_1_1_sprite.html">olc::Sprite</a> *&#160;</td>
+          <td class="paramname"><em>sprite</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>scalex</em> = <code>1</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>scaley</em> = <code>1</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">uint8_t&#160;</td>
+          <td class="paramname"><em>flip</em> = <code><a class="el" href="classolc_1_1_sprite.html#ad0d1976d2060997f5cd99eb284a5dc24a6ad338b4e63faacfbed68b020c3a0c0c">olc::Sprite::NONE</a></code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="ab8e4acce21674331d91910c7056c59a3"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ab8e4acce21674331d91910c7056c59a3">&#9670;&nbsp;</a></span>DrawString() <span class="overload">[1/2]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void olc::TransformedView::DrawString </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>pos</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const std::string &amp;&#160;</td>
+          <td class="paramname"><em>sText</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structolc_1_1_pixel.html">Pixel</a>&#160;</td>
+          <td class="paramname"><em>col</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>scale</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="acf22577cab34db667d05eae0e38000e0"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#acf22577cab34db667d05eae0e38000e0">&#9670;&nbsp;</a></span>DrawString() <span class="overload">[2/2]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void olc::TransformedView::DrawString </td>
+          <td>(</td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>x</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>y</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const std::string &amp;&#160;</td>
+          <td class="paramname"><em>sText</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structolc_1_1_pixel.html">Pixel</a>&#160;</td>
+          <td class="paramname"><em>col</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>scale</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a903ad811f1e3f99d8c6e35f1a1aaf9bf"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a903ad811f1e3f99d8c6e35f1a1aaf9bf">&#9670;&nbsp;</a></span>DrawStringDecal()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void olc::TransformedView::DrawStringDecal </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>pos</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const std::string &amp;&#160;</td>
+          <td class="paramname"><em>sText</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a>&#160;</td>
+          <td class="paramname"><em>col</em> = <code><a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a></code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>scale</em> = <code>{&#160;1.0f,&#160;1.0f&#160;}</code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="afde48a1dc4946bfb3718c19bdf62b328"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#afde48a1dc4946bfb3718c19bdf62b328">&#9670;&nbsp;</a></span>DrawStringPropDecal()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void olc::TransformedView::DrawStringPropDecal </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>pos</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const std::string &amp;&#160;</td>
+          <td class="paramname"><em>sText</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a>&#160;</td>
+          <td class="paramname"><em>col</em> = <code><a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a></code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>scale</em> = <code>{&#160;1.0f,&#160;1.0f&#160;}</code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a45a659d55d124e87e956e842963637fa"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a45a659d55d124e87e956e842963637fa">&#9670;&nbsp;</a></span>DrawTriangle() <span class="overload">[1/2]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void olc::TransformedView::DrawTriangle </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>pos1</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>pos2</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>pos3</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a>&#160;</td>
+          <td class="paramname"><em>p</em> = <code><a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a></code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a6c818747c7fa97445fbb40c9f222e865"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a6c818747c7fa97445fbb40c9f222e865">&#9670;&nbsp;</a></span>DrawTriangle() <span class="overload">[2/2]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void olc::TransformedView::DrawTriangle </td>
+          <td>(</td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>x1</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>y1</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>x2</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>y2</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>x3</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>y3</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a>&#160;</td>
+          <td class="paramname"><em>p</em> = <code><a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a></code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a250badf6257c666f0e0a07ed3d86ad9e"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a250badf6257c666f0e0a07ed3d86ad9e">&#9670;&nbsp;</a></span>DrawWarpedDecal() <span class="overload">[1/3]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void olc::TransformedView::DrawWarpedDecal </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="classolc_1_1_decal.html">olc::Decal</a> *&#160;</td>
+          <td class="paramname"><em>decal</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> *&#160;</td>
+          <td class="paramname"><em>pos</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a> &amp;&#160;</td>
+          <td class="paramname"><em>tint</em> = <code><a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a></code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a2c0e827b1182696275583059a1a72412"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a2c0e827b1182696275583059a1a72412">&#9670;&nbsp;</a></span>DrawWarpedDecal() <span class="overload">[2/3]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void olc::TransformedView::DrawWarpedDecal </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="classolc_1_1_decal.html">olc::Decal</a> *&#160;</td>
+          <td class="paramname"><em>decal</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a>(&amp;)&#160;</td>
+          <td class="paramname"><em>pos</em>[4], </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a> &amp;&#160;</td>
+          <td class="paramname"><em>tint</em> = <code><a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a></code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a615fda4662913d6a1fc2764025c28efc"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a615fda4662913d6a1fc2764025c28efc">&#9670;&nbsp;</a></span>DrawWarpedDecal() <span class="overload">[3/3]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void olc::TransformedView::DrawWarpedDecal </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="classolc_1_1_decal.html">olc::Decal</a> *&#160;</td>
+          <td class="paramname"><em>decal</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const std::array&lt; <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a>, 4 &gt; &amp;&#160;</td>
+          <td class="paramname"><em>pos</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a> &amp;&#160;</td>
+          <td class="paramname"><em>tint</em> = <code><a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a></code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a3edd680172e1ae5b710290ab58d617e0"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a3edd680172e1ae5b710290ab58d617e0">&#9670;&nbsp;</a></span>EndPan()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void olc::TransformedView::EndPan </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">olc::vi2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>vPos</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a8d8559f74de40982e41f9cab0577b3b9"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a8d8559f74de40982e41f9cab0577b3b9">&#9670;&nbsp;</a></span>FillCircle() <span class="overload">[1/2]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void olc::TransformedView::FillCircle </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>pos</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>radius</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a>&#160;</td>
+          <td class="paramname"><em>p</em> = <code><a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a></code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="afd3f4dffe3a2fffaed2fd6c84e40ce23"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#afd3f4dffe3a2fffaed2fd6c84e40ce23">&#9670;&nbsp;</a></span>FillCircle() <span class="overload">[2/2]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void olc::TransformedView::FillCircle </td>
+          <td>(</td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>x</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>y</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>radius</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a>&#160;</td>
+          <td class="paramname"><em>p</em> = <code><a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a></code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="abc3071fe6fa5f9ca4c5fe227a335df54"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#abc3071fe6fa5f9ca4c5fe227a335df54">&#9670;&nbsp;</a></span>FillRect() <span class="overload">[1/2]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void olc::TransformedView::FillRect </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>pos</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>size</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a>&#160;</td>
+          <td class="paramname"><em>p</em> = <code><a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a></code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a2f12ada82c7262a2e29572cfded60f02"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a2f12ada82c7262a2e29572cfded60f02">&#9670;&nbsp;</a></span>FillRect() <span class="overload">[2/2]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void olc::TransformedView::FillRect </td>
+          <td>(</td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>x</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>y</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>w</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>h</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a>&#160;</td>
+          <td class="paramname"><em>p</em> = <code><a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a></code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a82f6eeb19d315324c160aa78fd2ead70"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a82f6eeb19d315324c160aa78fd2ead70">&#9670;&nbsp;</a></span>FillRectDecal()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void olc::TransformedView::FillRectDecal </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>pos</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>size</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a>&#160;</td>
+          <td class="paramname"><em>col</em> = <code><a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a></code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a023149966b61d7f233898c2b4372d018"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a023149966b61d7f233898c2b4372d018">&#9670;&nbsp;</a></span>FillTriangle() <span class="overload">[1/2]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void olc::TransformedView::FillTriangle </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>pos1</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>pos2</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>pos3</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a>&#160;</td>
+          <td class="paramname"><em>p</em> = <code><a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a></code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a5cba545151923f38fd5d87b2c130a894"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a5cba545151923f38fd5d87b2c130a894">&#9670;&nbsp;</a></span>FillTriangle() <span class="overload">[2/2]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void olc::TransformedView::FillTriangle </td>
+          <td>(</td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>x1</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>y1</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>x2</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>y2</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>x3</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>y3</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a>&#160;</td>
+          <td class="paramname"><em>p</em> = <code><a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a></code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a5240bf2a7285559be13c80f3ce2a97a3"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a5240bf2a7285559be13c80f3ce2a97a3">&#9670;&nbsp;</a></span>GetWorldBR()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> olc::TransformedView::GetWorldBR </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td> const</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a88152a5f5b9fbb3df0f6d965ef4c4fe4"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a88152a5f5b9fbb3df0f6d965ef4c4fe4">&#9670;&nbsp;</a></span>GetWorldOffset()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a>&amp; olc::TransformedView::GetWorldOffset </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td> const</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a4f6ba5d2c58b720677f4287743713f65"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a4f6ba5d2c58b720677f4287743713f65">&#9670;&nbsp;</a></span>GetWorldScale()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a>&amp; olc::TransformedView::GetWorldScale </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td> const</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="ac75bd045f9fbc5d8cd901ecdd216fcb5"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ac75bd045f9fbc5d8cd901ecdd216fcb5">&#9670;&nbsp;</a></span>GetWorldTL()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> olc::TransformedView::GetWorldTL </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td> const</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a7f7815582a087a163199bb29f1c4c0ae"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a7f7815582a087a163199bb29f1c4c0ae">&#9670;&nbsp;</a></span>GetWorldVisibleArea()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> olc::TransformedView::GetWorldVisibleArea </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td> const</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a220b8b9184eb25a6bb2c3271d5417025"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a220b8b9184eb25a6bb2c3271d5417025">&#9670;&nbsp;</a></span>GradientFillRectDecal()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void olc::TransformedView::GradientFillRectDecal </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>pos</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>size</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a>&#160;</td>
+          <td class="paramname"><em>colTL</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a>&#160;</td>
+          <td class="paramname"><em>colBL</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a>&#160;</td>
+          <td class="paramname"><em>colBR</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a>&#160;</td>
+          <td class="paramname"><em>colTR</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a799473b80691228b87a818f80847ca76"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a799473b80691228b87a818f80847ca76">&#9670;&nbsp;</a></span>Initialise()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">virtual void olc::TransformedView::Initialise </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">olc::vi2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>vViewArea</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>vPixelScale</em> = <code>{&#160;1.0f,&#160;1.0f&#160;}</code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a664ea0cbd54bbff17ea419ebfac1e359"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a664ea0cbd54bbff17ea419ebfac1e359">&#9670;&nbsp;</a></span>IsPointVisible()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">virtual bool olc::TransformedView::IsPointVisible </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>vPos</em></td><td>)</td>
+          <td> const</td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="aecadbbdf84343ec0a2f0e2e8c9017f0e"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aecadbbdf84343ec0a2f0e2e8c9017f0e">&#9670;&nbsp;</a></span>IsRectVisible()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">virtual bool olc::TransformedView::IsRectVisible </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>vPos</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>vSize</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td> const</td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a154b34bc81f6e0c67579d2d2ee40b2d1"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a154b34bc81f6e0c67579d2d2ee40b2d1">&#9670;&nbsp;</a></span>MoveWorldOffset()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void olc::TransformedView::MoveWorldOffset </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>vDeltaOffset</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a8be86d8036bf635287debfcf2509e4c5"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a8be86d8036bf635287debfcf2509e4c5">&#9670;&nbsp;</a></span>ScaleToScreen()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">virtual <a class="el" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">olc::vi2d</a> olc::TransformedView::ScaleToScreen </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>vWorldSize</em></td><td>)</td>
+          <td> const</td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a09492f689459319994da4c9d0e0c2dc4"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a09492f689459319994da4c9d0e0c2dc4">&#9670;&nbsp;</a></span>ScaleToWorld()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">virtual <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> olc::TransformedView::ScaleToWorld </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">olc::vi2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>vScreenSize</em></td><td>)</td>
+          <td> const</td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a0f18594e00e7865fe4376761f9e20812"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a0f18594e00e7865fe4376761f9e20812">&#9670;&nbsp;</a></span>ScreenToWorld()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">virtual <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> olc::TransformedView::ScreenToWorld </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">olc::vi2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>vScreenPos</em></td><td>)</td>
+          <td> const</td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="ac7295e90921832fef16779172cc9e4ff"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ac7295e90921832fef16779172cc9e4ff">&#9670;&nbsp;</a></span>SetViewArea()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void olc::TransformedView::SetViewArea </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">olc::vi2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>vViewArea</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="aee86c84a719f8b5c3143e2a0b89e8024"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aee86c84a719f8b5c3143e2a0b89e8024">&#9670;&nbsp;</a></span>SetWorldOffset()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void olc::TransformedView::SetWorldOffset </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>vOffset</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a971e25ee6978c271127f766aba69b285"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a971e25ee6978c271127f766aba69b285">&#9670;&nbsp;</a></span>SetWorldScale()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void olc::TransformedView::SetWorldScale </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>vScale</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a89fd4d642cf37d1e6f1674b870b142d8"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a89fd4d642cf37d1e6f1674b870b142d8">&#9670;&nbsp;</a></span>SetZoom()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void olc::TransformedView::SetZoom </td>
+          <td>(</td>
+          <td class="paramtype">const float&#160;</td>
+          <td class="paramname"><em>fZoom</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">olc::vi2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>vPos</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a4dc2bd0de3686978fdf8630d23a727c3"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a4dc2bd0de3686978fdf8630d23a727c3">&#9670;&nbsp;</a></span>StartPan()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void olc::TransformedView::StartPan </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">olc::vi2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>vPos</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a4baf2b53892749ff380833991161b9c4"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a4baf2b53892749ff380833991161b9c4">&#9670;&nbsp;</a></span>UpdatePan()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void olc::TransformedView::UpdatePan </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">olc::vi2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>vPos</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a18b18c9718c642ca912d44a133ffde1d"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a18b18c9718c642ca912d44a133ffde1d">&#9670;&nbsp;</a></span>WorldToScreen()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">virtual <a class="el" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">olc::vi2d</a> olc::TransformedView::WorldToScreen </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>vWorldPos</em></td><td>)</td>
+          <td> const</td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a84a8b9030ac97afa9b6099dea5865b9c"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a84a8b9030ac97afa9b6099dea5865b9c">&#9670;&nbsp;</a></span>ZoomAtScreenPos()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void olc::TransformedView::ZoomAtScreenPos </td>
+          <td>(</td>
+          <td class="paramtype">const float&#160;</td>
+          <td class="paramname"><em>fDeltaZoom</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">olc::vi2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>vPos</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<h2 class="groupheader">Member Data Documentation</h2>
+<a id="a2c19ec65e54f43500cce003f878c8ed5"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a2c19ec65e54f43500cce003f878c8ed5">&#9670;&nbsp;</a></span>m_bPanning</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">bool olc::TransformedView::m_bPanning = false</td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="olc_p_g_e_x___transformed_view_8h_source.html#l00112">112</a> of file <a class="el" href="olc_p_g_e_x___transformed_view_8h_source.html">olcPGEX_TransformedView.h</a>.</p>
+
+</div>
+</div>
+<a id="a94a7fd3ad136ec70040bbff1c7133418"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a94a7fd3ad136ec70040bbff1c7133418">&#9670;&nbsp;</a></span>m_vPixelScale</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> olc::TransformedView::m_vPixelScale = { 1.0f, 1.0f }</td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="olc_p_g_e_x___transformed_view_8h_source.html#l00111">111</a> of file <a class="el" href="olc_p_g_e_x___transformed_view_8h_source.html">olcPGEX_TransformedView.h</a>.</p>
+
+</div>
+</div>
+<a id="ae1b7b82332f0979caa99e003827624cb"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ae1b7b82332f0979caa99e003827624cb">&#9670;&nbsp;</a></span>m_vRecipPixel</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> olc::TransformedView::m_vRecipPixel = { 1.0f, 1.0f }</td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="olc_p_g_e_x___transformed_view_8h_source.html#l00110">110</a> of file <a class="el" href="olc_p_g_e_x___transformed_view_8h_source.html">olcPGEX_TransformedView.h</a>.</p>
+
+</div>
+</div>
+<a id="a4f7569cc3d27120b485077789b86aa44"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a4f7569cc3d27120b485077789b86aa44">&#9670;&nbsp;</a></span>m_vStartPan</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> olc::TransformedView::m_vStartPan = { 0.0f, 0.0f }</td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="olc_p_g_e_x___transformed_view_8h_source.html#l00113">113</a> of file <a class="el" href="olc_p_g_e_x___transformed_view_8h_source.html">olcPGEX_TransformedView.h</a>.</p>
+
+</div>
+</div>
+<a id="a0a2936aac23f1621ff1d618c7155de1c"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a0a2936aac23f1621ff1d618c7155de1c">&#9670;&nbsp;</a></span>m_vViewArea</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">olc::vi2d</a> olc::TransformedView::m_vViewArea</td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="olc_p_g_e_x___transformed_view_8h_source.html#l00114">114</a> of file <a class="el" href="olc_p_g_e_x___transformed_view_8h_source.html">olcPGEX_TransformedView.h</a>.</p>
+
+</div>
+</div>
+<a id="a2e77497521f72e59ae7ecb56dc5d3f37"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a2e77497521f72e59ae7ecb56dc5d3f37">&#9670;&nbsp;</a></span>m_vWorldOffset</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> olc::TransformedView::m_vWorldOffset = { 0.0f, 0.0f }</td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="olc_p_g_e_x___transformed_view_8h_source.html#l00108">108</a> of file <a class="el" href="olc_p_g_e_x___transformed_view_8h_source.html">olcPGEX_TransformedView.h</a>.</p>
+
+</div>
+</div>
+<a id="a652909b48a4d8960c36d1ce4262cc95a"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a652909b48a4d8960c36d1ce4262cc95a">&#9670;&nbsp;</a></span>m_vWorldScale</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> olc::TransformedView::m_vWorldScale = { 1.0f, 1.0f }</td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="olc_p_g_e_x___transformed_view_8h_source.html#l00109">109</a> of file <a class="el" href="olc_p_g_e_x___transformed_view_8h_source.html">olcPGEX_TransformedView.h</a>.</p>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li>C:/Users/kosmx/Documents/GitHub/2d-game/<a class="el" href="olc_p_g_e_x___transformed_view_8h_source.html">olcPGEX_TransformedView.h</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/classolc_1_1_transformed_view.png b/doxy/html/classolc_1_1_transformed_view.png
new file mode 100644
index 0000000000000000000000000000000000000000..27b2a52c1af235ff7b728030a8aa24c86c3f5930
Binary files /dev/null and b/doxy/html/classolc_1_1_transformed_view.png differ
diff --git a/doxy/html/classrender_1_1_character_texture-members.html b/doxy/html/classrender_1_1_character_texture-members.html
new file mode 100644
index 0000000000000000000000000000000000000000..415a70fdff5a05cea22861371c7cf72634d6ebbb
--- /dev/null
+++ b/doxy/html/classrender_1_1_character_texture-members.html
@@ -0,0 +1,90 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="namespacerender.html">render</a></li><li class="navelem"><a class="el" href="classrender_1_1_character_texture.html">CharacterTexture</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">render::CharacterTexture Member List</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="classrender_1_1_character_texture.html">render::CharacterTexture</a>, including all inherited members.</p>
+<table class="directory">
+  <tr class="even"><td class="entry"><a class="el" href="classrender_1_1_character_texture.html#a0e5cb130b98e46c9de43e274ca206d1b">CharacterTexture</a>(const std::string &amp;name, olc::vf2d size={16, 16})</td><td class="entry"><a class="el" href="classrender_1_1_character_texture.html">render::CharacterTexture</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classrender_1_1_character_texture.html#a86b8570b892ad9e076b0dcc98e0190c3">EngineerTexture</a></td><td class="entry"><a class="el" href="classrender_1_1_character_texture.html">render::CharacterTexture</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classrender_1_1_character_texture.html#a29faf07d6f3edb7d05ad4811613a9ded">MageTexture</a></td><td class="entry"><a class="el" href="classrender_1_1_character_texture.html">render::CharacterTexture</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classrender_1_1_character_texture.html#aa83fc0221f1d435820cd794cdb1b126e">PaladinTexture</a></td><td class="entry"><a class="el" href="classrender_1_1_character_texture.html">render::CharacterTexture</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classrender_1_1_character_texture.html#a16ced1889ccaf7ca4c913ec1475c2f9a">render</a>(olc::TransformedView &amp;scene, entities::Entity &amp;entity) override</td><td class="entry"><a class="el" href="classrender_1_1_character_texture.html">render::CharacterTexture</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classrender_1_1_character_texture.html#a48e57b7a2864c6adb791b91a24b5daea">RougeTexture</a></td><td class="entry"><a class="el" href="classrender_1_1_character_texture.html">render::CharacterTexture</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classrender_1_1_character_texture.html#a63149d0abd6b6c3fffac01f6bae855eb">WarriorTexture</a></td><td class="entry"><a class="el" href="classrender_1_1_character_texture.html">render::CharacterTexture</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classrender_1_1_i_texture.html#a2dcbcad96404d6a0ff64e8053ccde162">~ITexture</a>()=default</td><td class="entry"><a class="el" href="classrender_1_1_i_texture.html">render::ITexture</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+</table></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/classrender_1_1_character_texture.html b/doxy/html/classrender_1_1_character_texture.html
new file mode 100644
index 0000000000000000000000000000000000000000..4cd2b357a54e2e667b733921c5d70ab416ba06ac
--- /dev/null
+++ b/doxy/html/classrender_1_1_character_texture.html
@@ -0,0 +1,333 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: render::CharacterTexture Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="namespacerender.html">render</a></li><li class="navelem"><a class="el" href="classrender_1_1_character_texture.html">CharacterTexture</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="#pub-static-attribs">Static Public Attributes</a> &#124;
+<a href="classrender_1_1_character_texture-members.html">List of all members</a>  </div>
+  <div class="headertitle">
+<div class="title">render::CharacterTexture Class Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Texture for CharacterEntities.  
+ <a href="classrender_1_1_character_texture.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="_character_texture_8h_source.html">CharacterTexture.h</a>&gt;</code></p>
+<div class="dynheader">
+Inheritance diagram for render::CharacterTexture:</div>
+<div class="dyncontent">
+ <div class="center">
+  <img src="classrender_1_1_character_texture.png" usemap="#render::CharacterTexture_map" alt=""/>
+  <map id="render::CharacterTexture_map" name="render::CharacterTexture_map">
+<area href="classrender_1_1_i_texture.html" title="Every texture, what can render an entity." alt="render::ITexture" shape="rect" coords="0,0,155,24"/>
+  </map>
+</div></div>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr class="memitem:a0e5cb130b98e46c9de43e274ca206d1b"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classrender_1_1_character_texture.html#a0e5cb130b98e46c9de43e274ca206d1b">CharacterTexture</a> (const std::string &amp;name, <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> size={16, 16})</td></tr>
+<tr class="separator:a0e5cb130b98e46c9de43e274ca206d1b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a16ced1889ccaf7ca4c913ec1475c2f9a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classrender_1_1_character_texture.html#a16ced1889ccaf7ca4c913ec1475c2f9a">render</a> (<a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a> &amp;scene, <a class="el" href="classentities_1_1_entity.html">entities::Entity</a> &amp;entity) override</td></tr>
+<tr class="memdesc:a16ced1889ccaf7ca4c913ec1475c2f9a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Throws a <a class="el" href="class_game_exception.html">GameException</a>, if we try to render a non-character entity with it.  <a href="classrender_1_1_character_texture.html#a16ced1889ccaf7ca4c913ec1475c2f9a">More...</a><br /></td></tr>
+<tr class="separator:a16ced1889ccaf7ca4c913ec1475c2f9a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pub_methods_classrender_1_1_i_texture"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classrender_1_1_i_texture')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classrender_1_1_i_texture.html">render::ITexture</a></td></tr>
+<tr class="memitem:a2dcbcad96404d6a0ff64e8053ccde162 inherit pub_methods_classrender_1_1_i_texture"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classrender_1_1_i_texture.html#a2dcbcad96404d6a0ff64e8053ccde162">~ITexture</a> ()=default</td></tr>
+<tr class="memdesc:a2dcbcad96404d6a0ff64e8053ccde162 inherit pub_methods_classrender_1_1_i_texture"><td class="mdescLeft">&#160;</td><td class="mdescRight">mostly not needed, but I can never know it  <a href="classrender_1_1_i_texture.html#a2dcbcad96404d6a0ff64e8053ccde162">More...</a><br /></td></tr>
+<tr class="separator:a2dcbcad96404d6a0ff64e8053ccde162 inherit pub_methods_classrender_1_1_i_texture"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-attribs"></a>
+Static Public Attributes</h2></td></tr>
+<tr class="memitem:a86b8570b892ad9e076b0dcc98e0190c3"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classrender_1_1_character_texture.html">CharacterTexture</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classrender_1_1_character_texture.html#a86b8570b892ad9e076b0dcc98e0190c3">EngineerTexture</a></td></tr>
+<tr class="separator:a86b8570b892ad9e076b0dcc98e0190c3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a29faf07d6f3edb7d05ad4811613a9ded"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classrender_1_1_character_texture.html">CharacterTexture</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classrender_1_1_character_texture.html#a29faf07d6f3edb7d05ad4811613a9ded">MageTexture</a></td></tr>
+<tr class="separator:a29faf07d6f3edb7d05ad4811613a9ded"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa83fc0221f1d435820cd794cdb1b126e"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classrender_1_1_character_texture.html">CharacterTexture</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classrender_1_1_character_texture.html#aa83fc0221f1d435820cd794cdb1b126e">PaladinTexture</a></td></tr>
+<tr class="separator:aa83fc0221f1d435820cd794cdb1b126e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a63149d0abd6b6c3fffac01f6bae855eb"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classrender_1_1_character_texture.html">CharacterTexture</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classrender_1_1_character_texture.html#a63149d0abd6b6c3fffac01f6bae855eb">WarriorTexture</a></td></tr>
+<tr class="separator:a63149d0abd6b6c3fffac01f6bae855eb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a48e57b7a2864c6adb791b91a24b5daea"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classrender_1_1_character_texture.html">CharacterTexture</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classrender_1_1_character_texture.html#a48e57b7a2864c6adb791b91a24b5daea">RougeTexture</a></td></tr>
+<tr class="separator:a48e57b7a2864c6adb791b91a24b5daea"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Texture for CharacterEntities. </p>
+
+<p class="definition">Definition at line <a class="el" href="_character_texture_8h_source.html#l00008">8</a> of file <a class="el" href="_character_texture_8h_source.html">CharacterTexture.h</a>.</p>
+</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
+<a id="a0e5cb130b98e46c9de43e274ca206d1b"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a0e5cb130b98e46c9de43e274ca206d1b">&#9670;&nbsp;</a></span>CharacterTexture()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">render::CharacterTexture::CharacterTexture </td>
+          <td>(</td>
+          <td class="paramtype">const std::string &amp;&#160;</td>
+          <td class="paramname"><em>name</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a>&#160;</td>
+          <td class="paramname"><em>size</em> = <code>{16,&#160;16}</code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="_character_texture_8cpp_source.html#l00011">11</a> of file <a class="el" href="_character_texture_8cpp_source.html">CharacterTexture.cpp</a>.</p>
+
+</div>
+</div>
+<h2 class="groupheader">Member Function Documentation</h2>
+<a id="a16ced1889ccaf7ca4c913ec1475c2f9a"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a16ced1889ccaf7ca4c913ec1475c2f9a">&#9670;&nbsp;</a></span>render()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">void render::CharacterTexture::render </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a> &amp;&#160;</td>
+          <td class="paramname"><em>scene</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a> &amp;&#160;</td>
+          <td class="paramname"><em>entity</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Throws a <a class="el" href="class_game_exception.html">GameException</a>, if we try to render a non-character entity with it. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">scene</td><td>scene </td></tr>
+    <tr><td class="paramname">entity</td><td>a CharacterEntity </td></tr>
+  </table>
+  </dd>
+</dl>
+
+<p>Implements <a class="el" href="classrender_1_1_i_texture.html#aedf64dab92f17e22a807635493196913">render::ITexture</a>.</p>
+
+<p class="definition">Definition at line <a class="el" href="_character_texture_8cpp_source.html#l00014">14</a> of file <a class="el" href="_character_texture_8cpp_source.html">CharacterTexture.cpp</a>.</p>
+
+</div>
+</div>
+<h2 class="groupheader">Member Data Documentation</h2>
+<a id="a86b8570b892ad9e076b0dcc98e0190c3"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a86b8570b892ad9e076b0dcc98e0190c3">&#9670;&nbsp;</a></span>EngineerTexture</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classrender_1_1_character_texture.html">CharacterTexture</a> render::CharacterTexture::EngineerTexture</td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="_character_texture_8h_source.html#l00012">12</a> of file <a class="el" href="_character_texture_8h_source.html">CharacterTexture.h</a>.</p>
+
+</div>
+</div>
+<a id="a29faf07d6f3edb7d05ad4811613a9ded"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a29faf07d6f3edb7d05ad4811613a9ded">&#9670;&nbsp;</a></span>MageTexture</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classrender_1_1_character_texture.html">CharacterTexture</a> render::CharacterTexture::MageTexture</td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="_character_texture_8h_source.html#l00013">13</a> of file <a class="el" href="_character_texture_8h_source.html">CharacterTexture.h</a>.</p>
+
+</div>
+</div>
+<a id="aa83fc0221f1d435820cd794cdb1b126e"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aa83fc0221f1d435820cd794cdb1b126e">&#9670;&nbsp;</a></span>PaladinTexture</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classrender_1_1_character_texture.html">CharacterTexture</a> render::CharacterTexture::PaladinTexture</td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="_character_texture_8h_source.html#l00014">14</a> of file <a class="el" href="_character_texture_8h_source.html">CharacterTexture.h</a>.</p>
+
+</div>
+</div>
+<a id="a48e57b7a2864c6adb791b91a24b5daea"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a48e57b7a2864c6adb791b91a24b5daea">&#9670;&nbsp;</a></span>RougeTexture</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classrender_1_1_character_texture.html">CharacterTexture</a> render::CharacterTexture::RougeTexture</td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="_character_texture_8h_source.html#l00016">16</a> of file <a class="el" href="_character_texture_8h_source.html">CharacterTexture.h</a>.</p>
+
+</div>
+</div>
+<a id="a63149d0abd6b6c3fffac01f6bae855eb"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a63149d0abd6b6c3fffac01f6bae855eb">&#9670;&nbsp;</a></span>WarriorTexture</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classrender_1_1_character_texture.html">CharacterTexture</a> render::CharacterTexture::WarriorTexture</td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="_character_texture_8h_source.html#l00015">15</a> of file <a class="el" href="_character_texture_8h_source.html">CharacterTexture.h</a>.</p>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following files:<ul>
+<li>C:/Users/kosmx/Documents/GitHub/2d-game/<a class="el" href="_character_texture_8h_source.html">CharacterTexture.h</a></li>
+<li>C:/Users/kosmx/Documents/GitHub/2d-game/<a class="el" href="_character_texture_8cpp_source.html">CharacterTexture.cpp</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/classrender_1_1_character_texture.png b/doxy/html/classrender_1_1_character_texture.png
new file mode 100644
index 0000000000000000000000000000000000000000..578bc9de12e990b3545cfba76506452ff2bc805c
Binary files /dev/null and b/doxy/html/classrender_1_1_character_texture.png differ
diff --git a/doxy/html/classrender_1_1_i_texture-members.html b/doxy/html/classrender_1_1_i_texture-members.html
new file mode 100644
index 0000000000000000000000000000000000000000..72ef8046bf4b898a7639bf0bb726a6e6984f3a2e
--- /dev/null
+++ b/doxy/html/classrender_1_1_i_texture-members.html
@@ -0,0 +1,84 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="namespacerender.html">render</a></li><li class="navelem"><a class="el" href="classrender_1_1_i_texture.html">ITexture</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">render::ITexture Member List</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="classrender_1_1_i_texture.html">render::ITexture</a>, including all inherited members.</p>
+<table class="directory">
+  <tr class="even"><td class="entry"><a class="el" href="classrender_1_1_i_texture.html#aedf64dab92f17e22a807635493196913">render</a>(olc::TransformedView &amp;scene, entities::Entity &amp;entity)=0</td><td class="entry"><a class="el" href="classrender_1_1_i_texture.html">render::ITexture</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classrender_1_1_i_texture.html#a2dcbcad96404d6a0ff64e8053ccde162">~ITexture</a>()=default</td><td class="entry"><a class="el" href="classrender_1_1_i_texture.html">render::ITexture</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+</table></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/classrender_1_1_i_texture.html b/doxy/html/classrender_1_1_i_texture.html
new file mode 100644
index 0000000000000000000000000000000000000000..39c048ce0533d3d201a059fbcce3b3add58dccc8
--- /dev/null
+++ b/doxy/html/classrender_1_1_i_texture.html
@@ -0,0 +1,192 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: render::ITexture Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="namespacerender.html">render</a></li><li class="navelem"><a class="el" href="classrender_1_1_i_texture.html">ITexture</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="classrender_1_1_i_texture-members.html">List of all members</a>  </div>
+  <div class="headertitle">
+<div class="title">render::ITexture Class Reference<span class="mlabels"><span class="mlabel">abstract</span></span></div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Every texture, what can render an entity.  
+ <a href="classrender_1_1_i_texture.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="_i_texture_8h_source.html">ITexture.h</a>&gt;</code></p>
+<div class="dynheader">
+Inheritance diagram for render::ITexture:</div>
+<div class="dyncontent">
+ <div class="center">
+  <img src="classrender_1_1_i_texture.png" usemap="#render::ITexture_map" alt=""/>
+  <map id="render::ITexture_map" name="render::ITexture_map">
+<area href="classrender_1_1_character_texture.html" title="Texture for CharacterEntities." alt="render::CharacterTexture" shape="rect" coords="0,56,155,80"/>
+<area href="classrender_1_1_simple_sprite.html" title="Simplest useable texture." alt="render::SimpleSprite" shape="rect" coords="165,56,320,80"/>
+<area href="classrender_1_1_wall_texture.html" title="Texture to render walls, with 16 possible states." alt="render::WallTexture" shape="rect" coords="330,56,485,80"/>
+<area href="classweapons_1_1_glitch_texture.html" title="Texture for the bug weapon." alt="weapons::GlitchTexture" shape="rect" coords="495,56,650,80"/>
+  </map>
+</div></div>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr class="memitem:aedf64dab92f17e22a807635493196913"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classrender_1_1_i_texture.html#aedf64dab92f17e22a807635493196913">render</a> (<a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a> &amp;scene, <a class="el" href="classentities_1_1_entity.html">entities::Entity</a> &amp;entity)=0</td></tr>
+<tr class="memdesc:aedf64dab92f17e22a807635493196913"><td class="mdescLeft">&#160;</td><td class="mdescRight">Render the sprite, abstract function.  <a href="classrender_1_1_i_texture.html#aedf64dab92f17e22a807635493196913">More...</a><br /></td></tr>
+<tr class="separator:aedf64dab92f17e22a807635493196913"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2dcbcad96404d6a0ff64e8053ccde162"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classrender_1_1_i_texture.html#a2dcbcad96404d6a0ff64e8053ccde162">~ITexture</a> ()=default</td></tr>
+<tr class="memdesc:a2dcbcad96404d6a0ff64e8053ccde162"><td class="mdescLeft">&#160;</td><td class="mdescRight">mostly not needed, but I can never know it  <a href="classrender_1_1_i_texture.html#a2dcbcad96404d6a0ff64e8053ccde162">More...</a><br /></td></tr>
+<tr class="separator:a2dcbcad96404d6a0ff64e8053ccde162"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Every texture, what can render an entity. </p>
+
+<p class="definition">Definition at line <a class="el" href="_i_texture_8h_source.html#l00015">15</a> of file <a class="el" href="_i_texture_8h_source.html">ITexture.h</a>.</p>
+</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
+<a id="a2dcbcad96404d6a0ff64e8053ccde162"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a2dcbcad96404d6a0ff64e8053ccde162">&#9670;&nbsp;</a></span>~ITexture()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">virtual render::ITexture::~ITexture </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">virtual</span><span class="mlabel">default</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>mostly not needed, but I can never know it </p>
+
+</div>
+</div>
+<h2 class="groupheader">Member Function Documentation</h2>
+<a id="aedf64dab92f17e22a807635493196913"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aedf64dab92f17e22a807635493196913">&#9670;&nbsp;</a></span>render()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">virtual void render::ITexture::render </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a> &amp;&#160;</td>
+          <td class="paramname"><em>scene</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a> &amp;&#160;</td>
+          <td class="paramname"><em>entity</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Render the sprite, abstract function. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">scene</td><td>view description </td></tr>
+    <tr><td class="paramname">entity</td><td>entity to render with this texture </td></tr>
+  </table>
+  </dd>
+</dl>
+
+<p>Implemented in <a class="el" href="classweapons_1_1_glitch_texture.html#a5484c864f917e54fb6041b7d0d33ef42">weapons::GlitchTexture</a>, <a class="el" href="classrender_1_1_wall_texture.html#a03239c7168e114906cb20f3d39815344">render::WallTexture</a>, <a class="el" href="classrender_1_1_simple_sprite.html#aaed7cf3094f69387291a2d287d7753a5">render::SimpleSprite</a>, and <a class="el" href="classrender_1_1_character_texture.html#a16ced1889ccaf7ca4c913ec1475c2f9a">render::CharacterTexture</a>.</p>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li>C:/Users/kosmx/Documents/GitHub/2d-game/<a class="el" href="_i_texture_8h_source.html">ITexture.h</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/classrender_1_1_i_texture.png b/doxy/html/classrender_1_1_i_texture.png
new file mode 100644
index 0000000000000000000000000000000000000000..0e5776b28cc6c302d890b5c1860ff3fe8b63d289
Binary files /dev/null and b/doxy/html/classrender_1_1_i_texture.png differ
diff --git a/doxy/html/classrender_1_1_lazy_sprite-members.html b/doxy/html/classrender_1_1_lazy_sprite-members.html
new file mode 100644
index 0000000000000000000000000000000000000000..8f807a6c4f131321b1557b7efa30f3ec1318c3de
--- /dev/null
+++ b/doxy/html/classrender_1_1_lazy_sprite-members.html
@@ -0,0 +1,87 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="namespacerender.html">render</a></li><li class="navelem"><a class="el" href="classrender_1_1_lazy_sprite.html">LazySprite</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">render::LazySprite Member List</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="classrender_1_1_lazy_sprite.html">render::LazySprite</a>, including all inherited members.</p>
+<table class="directory">
+  <tr class="even"><td class="entry"><a class="el" href="classrender_1_1_lazy_sprite.html#aea6cdfcf5295c8a2c4b3f4a51ee0bc28">getDecal</a>()</td><td class="entry"><a class="el" href="classrender_1_1_lazy_sprite.html">render::LazySprite</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classrender_1_1_lazy_sprite.html#a28a8d429dc27035aa9a09151aa150b0a">LazySprite</a>(const std::string &amp;resName)</td><td class="entry"><a class="el" href="classrender_1_1_lazy_sprite.html">render::LazySprite</a></td><td class="entry"><span class="mlabel">explicit</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classrender_1_1_lazy_sprite.html#a3e2884ba94b5f6bbe9061c5a44ca6a23">render</a>(olc::TransformedView &amp;scene, const olc::vf2d &amp;pos, const olc::vf2d &amp;uv, const olc::vf2d &amp;size, olc::vf2d scale=olc::vf2d(1, 1))</td><td class="entry"><a class="el" href="classrender_1_1_lazy_sprite.html">render::LazySprite</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classrender_1_1_lazy_sprite.html#a1e0b32f06c67b96eed8da12747aa4f0a">renderCentered</a>(olc::TransformedView &amp;scene, const olc::vf2d &amp;pos, const olc::vf2d &amp;uv, const olc::vf2d &amp;size, olc::vf2d scale=olc::vf2d(1, 1))</td><td class="entry"><a class="el" href="classrender_1_1_lazy_sprite.html">render::LazySprite</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classrender_1_1_lazy_sprite.html#a67a794671efc86ea29921c0e5934377e">resourceName</a></td><td class="entry"><a class="el" href="classrender_1_1_lazy_sprite.html">render::LazySprite</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+</table></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/classrender_1_1_lazy_sprite.html b/doxy/html/classrender_1_1_lazy_sprite.html
new file mode 100644
index 0000000000000000000000000000000000000000..53a880749cb53609e40421985f51b5b4e5f5c780
--- /dev/null
+++ b/doxy/html/classrender_1_1_lazy_sprite.html
@@ -0,0 +1,325 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: render::LazySprite Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="namespacerender.html">render</a></li><li class="navelem"><a class="el" href="classrender_1_1_lazy_sprite.html">LazySprite</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="#pro-methods">Protected Member Functions</a> &#124;
+<a href="#pro-attribs">Protected Attributes</a> &#124;
+<a href="classrender_1_1_lazy_sprite-members.html">List of all members</a>  </div>
+  <div class="headertitle">
+<div class="title">render::LazySprite Class Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Refer to one texture, not animated, not modifiable, just a simple image. Lazy loading means, it will load it only, when you're trying to use it.  
+ <a href="classrender_1_1_lazy_sprite.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="_lazy_sprite_8h_source.html">LazySprite.h</a>&gt;</code></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr class="memitem:a28a8d429dc27035aa9a09151aa150b0a"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classrender_1_1_lazy_sprite.html#a28a8d429dc27035aa9a09151aa150b0a">LazySprite</a> (const std::string &amp;resName)</td></tr>
+<tr class="separator:a28a8d429dc27035aa9a09151aa150b0a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3e2884ba94b5f6bbe9061c5a44ca6a23"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classrender_1_1_lazy_sprite.html#a3e2884ba94b5f6bbe9061c5a44ca6a23">render</a> (<a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a> &amp;scene, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;pos, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;uv, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;size, <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> scale=<a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a>(1, 1))</td></tr>
+<tr class="memdesc:a3e2884ba94b5f6bbe9061c5a44ca6a23"><td class="mdescLeft">&#160;</td><td class="mdescRight">Renders the sprite into the world.  <a href="classrender_1_1_lazy_sprite.html#a3e2884ba94b5f6bbe9061c5a44ca6a23">More...</a><br /></td></tr>
+<tr class="separator:a3e2884ba94b5f6bbe9061c5a44ca6a23"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1e0b32f06c67b96eed8da12747aa4f0a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classrender_1_1_lazy_sprite.html#a1e0b32f06c67b96eed8da12747aa4f0a">renderCentered</a> (<a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a> &amp;scene, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;pos, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;uv, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;size, <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> scale=<a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a>(1, 1))</td></tr>
+<tr class="memdesc:a1e0b32f06c67b96eed8da12747aa4f0a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Render, but pos in the center.  <a href="classrender_1_1_lazy_sprite.html#a1e0b32f06c67b96eed8da12747aa4f0a">More...</a><br /></td></tr>
+<tr class="separator:a1e0b32f06c67b96eed8da12747aa4f0a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
+Protected Member Functions</h2></td></tr>
+<tr class="memitem:aea6cdfcf5295c8a2c4b3f4a51ee0bc28"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classolc_1_1_decal.html">olc::Decal</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classrender_1_1_lazy_sprite.html#aea6cdfcf5295c8a2c4b3f4a51ee0bc28">getDecal</a> ()</td></tr>
+<tr class="memdesc:aea6cdfcf5295c8a2c4b3f4a51ee0bc28"><td class="mdescLeft">&#160;</td><td class="mdescRight">get an old::Decal  <a href="classrender_1_1_lazy_sprite.html#aea6cdfcf5295c8a2c4b3f4a51ee0bc28">More...</a><br /></td></tr>
+<tr class="separator:aea6cdfcf5295c8a2c4b3f4a51ee0bc28"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-attribs"></a>
+Protected Attributes</h2></td></tr>
+<tr class="memitem:a67a794671efc86ea29921c0e5934377e"><td class="memItemLeft" align="right" valign="top">const std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classrender_1_1_lazy_sprite.html#a67a794671efc86ea29921c0e5934377e">resourceName</a></td></tr>
+<tr class="separator:a67a794671efc86ea29921c0e5934377e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Refer to one texture, not animated, not modifiable, just a simple image. Lazy loading means, it will load it only, when you're trying to use it. </p>
+
+<p class="definition">Definition at line <a class="el" href="_lazy_sprite_8h_source.html#l00013">13</a> of file <a class="el" href="_lazy_sprite_8h_source.html">LazySprite.h</a>.</p>
+</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
+<a id="a28a8d429dc27035aa9a09151aa150b0a"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a28a8d429dc27035aa9a09151aa150b0a">&#9670;&nbsp;</a></span>LazySprite()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">render::LazySprite::LazySprite </td>
+          <td>(</td>
+          <td class="paramtype">const std::string &amp;&#160;</td>
+          <td class="paramname"><em>resName</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">explicit</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+<p>u, v the texture coordinates on the image, sizeU, V are the size of that sprite </p>
+
+<p class="definition">Definition at line <a class="el" href="_lazy_sprite_8cpp_source.html#l00015">15</a> of file <a class="el" href="_lazy_sprite_8cpp_source.html">LazySprite.cpp</a>.</p>
+
+</div>
+</div>
+<h2 class="groupheader">Member Function Documentation</h2>
+<a id="aea6cdfcf5295c8a2c4b3f4a51ee0bc28"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aea6cdfcf5295c8a2c4b3f4a51ee0bc28">&#9670;&nbsp;</a></span>getDecal()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classolc_1_1_decal.html">olc::Decal</a> * render::LazySprite::getDecal </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>get an old::Decal </p>
+
+<p class="definition">Definition at line <a class="el" href="_lazy_sprite_8cpp_source.html#l00006">6</a> of file <a class="el" href="_lazy_sprite_8cpp_source.html">LazySprite.cpp</a>.</p>
+
+</div>
+</div>
+<a id="a3e2884ba94b5f6bbe9061c5a44ca6a23"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a3e2884ba94b5f6bbe9061c5a44ca6a23">&#9670;&nbsp;</a></span>render()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void render::LazySprite::render </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a> &amp;&#160;</td>
+          <td class="paramname"><em>scene</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>pos</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>uv</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>size</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a>&#160;</td>
+          <td class="paramname"><em>scale</em> = <code><a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a>(1,&#160;1)</code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Renders the sprite into the world. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">scene</td><td><a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a> scene </td></tr>
+    <tr><td class="paramname">pos</td><td>the in-world pos </td></tr>
+    <tr><td class="paramname">uv</td><td>texture uv pos </td></tr>
+    <tr><td class="paramname">size</td><td>texture size </td></tr>
+    <tr><td class="paramname">scale</td><td>scale, 1 by default </td></tr>
+  </table>
+  </dd>
+</dl>
+
+<p class="definition">Definition at line <a class="el" href="_lazy_sprite_8cpp_source.html#l00019">19</a> of file <a class="el" href="_lazy_sprite_8cpp_source.html">LazySprite.cpp</a>.</p>
+
+</div>
+</div>
+<a id="a1e0b32f06c67b96eed8da12747aa4f0a"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a1e0b32f06c67b96eed8da12747aa4f0a">&#9670;&nbsp;</a></span>renderCentered()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void render::LazySprite::renderCentered </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a> &amp;&#160;</td>
+          <td class="paramname"><em>scene</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>pos</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>uv</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>size</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a>&#160;</td>
+          <td class="paramname"><em>scale</em> = <code><a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a>(1,&#160;1)</code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Render, but pos in the center. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">scene</td><td><a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a> scene </td></tr>
+    <tr><td class="paramname">pos</td><td>the in-world pos </td></tr>
+    <tr><td class="paramname">uv</td><td>texture uv pos </td></tr>
+    <tr><td class="paramname">size</td><td>texture size </td></tr>
+    <tr><td class="paramname">scale</td><td>scale, 1 by default </td></tr>
+  </table>
+  </dd>
+</dl>
+
+<p class="definition">Definition at line <a class="el" href="_lazy_sprite_8cpp_source.html#l00025">25</a> of file <a class="el" href="_lazy_sprite_8cpp_source.html">LazySprite.cpp</a>.</p>
+
+</div>
+</div>
+<h2 class="groupheader">Member Data Documentation</h2>
+<a id="a67a794671efc86ea29921c0e5934377e"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a67a794671efc86ea29921c0e5934377e">&#9670;&nbsp;</a></span>resourceName</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">const std::string render::LazySprite::resourceName</td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="_lazy_sprite_8h_source.html#l00019">19</a> of file <a class="el" href="_lazy_sprite_8h_source.html">LazySprite.h</a>.</p>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following files:<ul>
+<li>C:/Users/kosmx/Documents/GitHub/2d-game/<a class="el" href="_lazy_sprite_8h_source.html">LazySprite.h</a></li>
+<li>C:/Users/kosmx/Documents/GitHub/2d-game/<a class="el" href="_lazy_sprite_8cpp_source.html">LazySprite.cpp</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/classrender_1_1_resource_manager-members.html b/doxy/html/classrender_1_1_resource_manager-members.html
new file mode 100644
index 0000000000000000000000000000000000000000..34d581bad4ddf7ea61b9394cee311c8aac80a0b0
--- /dev/null
+++ b/doxy/html/classrender_1_1_resource_manager-members.html
@@ -0,0 +1,87 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="namespacerender.html">render</a></li><li class="navelem"><a class="el" href="classrender_1_1_resource_manager.html">ResourceManager</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">render::ResourceManager Member List</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="classrender_1_1_resource_manager.html">render::ResourceManager</a>, including all inherited members.</p>
+<table class="directory">
+  <tr class="even"><td class="entry"><a class="el" href="classrender_1_1_resource_manager.html#abdb364e2b932233c873a98a1b5c03d2a">createInstance</a>(std::string *parent=nullptr)</td><td class="entry"><a class="el" href="classrender_1_1_resource_manager.html">render::ResourceManager</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classrender_1_1_resource_manager.html#a58cd141c758a19c7a04b33742de422f8">getDecal</a>(const std::string &amp;string)</td><td class="entry"><a class="el" href="classrender_1_1_resource_manager.html">render::ResourceManager</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classrender_1_1_resource_manager.html#a4ac8358921fdda1f37bf4564855f6fce">getSprite</a>(const std::string &amp;key)</td><td class="entry"><a class="el" href="classrender_1_1_resource_manager.html">render::ResourceManager</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classrender_1_1_resource_manager.html#aec5833434ea7432806785ae0ce1e1d91">operator[]</a>(const std::string &amp;key)</td><td class="entry"><a class="el" href="classrender_1_1_resource_manager.html">render::ResourceManager</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classrender_1_1_resource_manager.html#a718ece71d629e1fd5b4b3afc967d4381">~ResourceManager</a>()</td><td class="entry"><a class="el" href="classrender_1_1_resource_manager.html">render::ResourceManager</a></td><td class="entry"></td></tr>
+</table></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/classrender_1_1_resource_manager.html b/doxy/html/classrender_1_1_resource_manager.html
new file mode 100644
index 0000000000000000000000000000000000000000..9ec1a64c4eff27c3d547cefaccab9c23c5bc53b6
--- /dev/null
+++ b/doxy/html/classrender_1_1_resource_manager.html
@@ -0,0 +1,254 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: render::ResourceManager Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="namespacerender.html">render</a></li><li class="navelem"><a class="el" href="classrender_1_1_resource_manager.html">ResourceManager</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="#pub-static-methods">Static Public Member Functions</a> &#124;
+<a href="classrender_1_1_resource_manager-members.html">List of all members</a>  </div>
+  <div class="headertitle">
+<div class="title">render::ResourceManager Class Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Load every sprite only once, act as a set for loaded textures.  
+ <a href="classrender_1_1_resource_manager.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="_resource_manager_8h_source.html">ResourceManager.h</a>&gt;</code></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr class="memitem:a58cd141c758a19c7a04b33742de422f8"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classolc_1_1_decal.html">olc::Decal</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classrender_1_1_resource_manager.html#a58cd141c758a19c7a04b33742de422f8">getDecal</a> (const std::string &amp;string)</td></tr>
+<tr class="memdesc:a58cd141c758a19c7a04b33742de422f8"><td class="mdescLeft">&#160;</td><td class="mdescRight">used by GetSprite  <a href="classrender_1_1_resource_manager.html#a58cd141c758a19c7a04b33742de422f8">More...</a><br /></td></tr>
+<tr class="separator:a58cd141c758a19c7a04b33742de422f8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aec5833434ea7432806785ae0ce1e1d91"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classolc_1_1_decal.html">olc::Decal</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classrender_1_1_resource_manager.html#aec5833434ea7432806785ae0ce1e1d91">operator[]</a> (const std::string &amp;key)</td></tr>
+<tr class="memdesc:aec5833434ea7432806785ae0ce1e1d91"><td class="mdescLeft">&#160;</td><td class="mdescRight">indexing operator :D  <a href="classrender_1_1_resource_manager.html#aec5833434ea7432806785ae0ce1e1d91">More...</a><br /></td></tr>
+<tr class="separator:aec5833434ea7432806785ae0ce1e1d91"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a718ece71d629e1fd5b4b3afc967d4381"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classrender_1_1_resource_manager.html#a718ece71d629e1fd5b4b3afc967d4381">~ResourceManager</a> ()</td></tr>
+<tr class="separator:a718ece71d629e1fd5b4b3afc967d4381"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a>
+Static Public Member Functions</h2></td></tr>
+<tr class="memitem:abdb364e2b932233c873a98a1b5c03d2a"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classrender_1_1_resource_manager.html#abdb364e2b932233c873a98a1b5c03d2a">createInstance</a> (std::string *parent=nullptr)</td></tr>
+<tr class="separator:abdb364e2b932233c873a98a1b5c03d2a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4ac8358921fdda1f37bf4564855f6fce"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classolc_1_1_decal.html">olc::Decal</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classrender_1_1_resource_manager.html#a4ac8358921fdda1f37bf4564855f6fce">getSprite</a> (const std::string &amp;key)</td></tr>
+<tr class="memdesc:a4ac8358921fdda1f37bf4564855f6fce"><td class="mdescLeft">&#160;</td><td class="mdescRight">get a sprite, it it's already loaded, doesn't load it again  <a href="classrender_1_1_resource_manager.html#a4ac8358921fdda1f37bf4564855f6fce">More...</a><br /></td></tr>
+<tr class="separator:a4ac8358921fdda1f37bf4564855f6fce"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Load every sprite only once, act as a set for loaded textures. </p>
+
+<p class="definition">Definition at line <a class="el" href="_resource_manager_8h_source.html#l00014">14</a> of file <a class="el" href="_resource_manager_8h_source.html">ResourceManager.h</a>.</p>
+</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
+<a id="a718ece71d629e1fd5b4b3afc967d4381"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a718ece71d629e1fd5b4b3afc967d4381">&#9670;&nbsp;</a></span>~ResourceManager()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">render::ResourceManager::~ResourceManager </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="_resource_manager_8cpp_source.html#l00017">17</a> of file <a class="el" href="_resource_manager_8cpp_source.html">ResourceManager.cpp</a>.</p>
+
+</div>
+</div>
+<h2 class="groupheader">Member Function Documentation</h2>
+<a id="abdb364e2b932233c873a98a1b5c03d2a"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#abdb364e2b932233c873a98a1b5c03d2a">&#9670;&nbsp;</a></span>createInstance()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">void render::ResourceManager::createInstance </td>
+          <td>(</td>
+          <td class="paramtype">std::string *&#160;</td>
+          <td class="paramname"><em>parent</em> = <code>nullptr</code></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+<p>Todo add parameters </p>
+
+<p class="definition">Definition at line <a class="el" href="_resource_manager_8cpp_source.html#l00038">38</a> of file <a class="el" href="_resource_manager_8cpp_source.html">ResourceManager.cpp</a>.</p>
+
+</div>
+</div>
+<a id="a58cd141c758a19c7a04b33742de422f8"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a58cd141c758a19c7a04b33742de422f8">&#9670;&nbsp;</a></span>getDecal()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classolc_1_1_decal.html">olc::Decal</a> * render::ResourceManager::getDecal </td>
+          <td>(</td>
+          <td class="paramtype">const std::string &amp;&#160;</td>
+          <td class="paramname"><em>string</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>used by GetSprite </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">string</td><td>asd </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>the sprite </dd></dl>
+
+<p class="definition">Definition at line <a class="el" href="_resource_manager_8cpp_source.html#l00008">8</a> of file <a class="el" href="_resource_manager_8cpp_source.html">ResourceManager.cpp</a>.</p>
+
+</div>
+</div>
+<a id="a4ac8358921fdda1f37bf4564855f6fce"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a4ac8358921fdda1f37bf4564855f6fce">&#9670;&nbsp;</a></span>getSprite()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classolc_1_1_decal.html">olc::Decal</a> * render::ResourceManager::getSprite </td>
+          <td>(</td>
+          <td class="paramtype">const std::string &amp;&#160;</td>
+          <td class="paramname"><em>key</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>get a sprite, it it's already loaded, doesn't load it again </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">key</td><td>string sprite key </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>the sprite </dd></dl>
+
+<p class="definition">Definition at line <a class="el" href="_resource_manager_8cpp_source.html#l00046">46</a> of file <a class="el" href="_resource_manager_8cpp_source.html">ResourceManager.cpp</a>.</p>
+
+</div>
+</div>
+<a id="aec5833434ea7432806785ae0ce1e1d91"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aec5833434ea7432806785ae0ce1e1d91">&#9670;&nbsp;</a></span>operator[]()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classolc_1_1_decal.html">olc::Decal</a> * render::ResourceManager::operator[] </td>
+          <td>(</td>
+          <td class="paramtype">const std::string &amp;&#160;</td>
+          <td class="paramname"><em>key</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>indexing operator :D </p>
+
+<p class="definition">Definition at line <a class="el" href="_resource_manager_8cpp_source.html#l00029">29</a> of file <a class="el" href="_resource_manager_8cpp_source.html">ResourceManager.cpp</a>.</p>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following files:<ul>
+<li>C:/Users/kosmx/Documents/GitHub/2d-game/<a class="el" href="_resource_manager_8h_source.html">ResourceManager.h</a></li>
+<li>C:/Users/kosmx/Documents/GitHub/2d-game/<a class="el" href="_resource_manager_8cpp_source.html">ResourceManager.cpp</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/classrender_1_1_simple_sprite-members.html b/doxy/html/classrender_1_1_simple_sprite-members.html
new file mode 100644
index 0000000000000000000000000000000000000000..b454967d9c660a94625f3af9d883550b41bdc8e8
--- /dev/null
+++ b/doxy/html/classrender_1_1_simple_sprite-members.html
@@ -0,0 +1,85 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="namespacerender.html">render</a></li><li class="navelem"><a class="el" href="classrender_1_1_simple_sprite.html">SimpleSprite</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">render::SimpleSprite Member List</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="classrender_1_1_simple_sprite.html">render::SimpleSprite</a>, including all inherited members.</p>
+<table class="directory">
+  <tr class="even"><td class="entry"><a class="el" href="classrender_1_1_simple_sprite.html#aaed7cf3094f69387291a2d287d7753a5">render</a>(olc::TransformedView &amp;scene, entities::Entity &amp;entity) override</td><td class="entry"><a class="el" href="classrender_1_1_simple_sprite.html">render::SimpleSprite</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classrender_1_1_simple_sprite.html#af16d9ee29214a89a6ebe404a73ea5cad">SimpleSprite</a>(const std::string &amp;name, const olc::vi2d &amp;pos={ 0, 0 }, const olc::vf2d &amp;size={ 16, 16 })</td><td class="entry"><a class="el" href="classrender_1_1_simple_sprite.html">render::SimpleSprite</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classrender_1_1_i_texture.html#a2dcbcad96404d6a0ff64e8053ccde162">~ITexture</a>()=default</td><td class="entry"><a class="el" href="classrender_1_1_i_texture.html">render::ITexture</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+</table></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/classrender_1_1_simple_sprite.html b/doxy/html/classrender_1_1_simple_sprite.html
new file mode 100644
index 0000000000000000000000000000000000000000..78e0f598901c59f13fe05d868f5d4f2360028ee5
--- /dev/null
+++ b/doxy/html/classrender_1_1_simple_sprite.html
@@ -0,0 +1,204 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: render::SimpleSprite Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="namespacerender.html">render</a></li><li class="navelem"><a class="el" href="classrender_1_1_simple_sprite.html">SimpleSprite</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="classrender_1_1_simple_sprite-members.html">List of all members</a>  </div>
+  <div class="headertitle">
+<div class="title">render::SimpleSprite Class Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Simplest useable texture.  
+ <a href="classrender_1_1_simple_sprite.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="_simple_sprite_8h_source.html">SimpleSprite.h</a>&gt;</code></p>
+<div class="dynheader">
+Inheritance diagram for render::SimpleSprite:</div>
+<div class="dyncontent">
+ <div class="center">
+  <img src="classrender_1_1_simple_sprite.png" usemap="#render::SimpleSprite_map" alt=""/>
+  <map id="render::SimpleSprite_map" name="render::SimpleSprite_map">
+<area href="classrender_1_1_i_texture.html" title="Every texture, what can render an entity." alt="render::ITexture" shape="rect" coords="0,0,126,24"/>
+  </map>
+</div></div>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr class="memitem:af16d9ee29214a89a6ebe404a73ea5cad"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classrender_1_1_simple_sprite.html#af16d9ee29214a89a6ebe404a73ea5cad">SimpleSprite</a> (const std::string &amp;name, const <a class="el" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">olc::vi2d</a> &amp;pos={ 0, 0 }, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;size={ 16, 16 })</td></tr>
+<tr class="separator:af16d9ee29214a89a6ebe404a73ea5cad"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aaed7cf3094f69387291a2d287d7753a5"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classrender_1_1_simple_sprite.html#aaed7cf3094f69387291a2d287d7753a5">render</a> (<a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a> &amp;scene, <a class="el" href="classentities_1_1_entity.html">entities::Entity</a> &amp;entity) override</td></tr>
+<tr class="memdesc:aaed7cf3094f69387291a2d287d7753a5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Render the sprite, abstract function.  <a href="classrender_1_1_simple_sprite.html#aaed7cf3094f69387291a2d287d7753a5">More...</a><br /></td></tr>
+<tr class="separator:aaed7cf3094f69387291a2d287d7753a5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pub_methods_classrender_1_1_i_texture"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classrender_1_1_i_texture')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classrender_1_1_i_texture.html">render::ITexture</a></td></tr>
+<tr class="memitem:a2dcbcad96404d6a0ff64e8053ccde162 inherit pub_methods_classrender_1_1_i_texture"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classrender_1_1_i_texture.html#a2dcbcad96404d6a0ff64e8053ccde162">~ITexture</a> ()=default</td></tr>
+<tr class="memdesc:a2dcbcad96404d6a0ff64e8053ccde162 inherit pub_methods_classrender_1_1_i_texture"><td class="mdescLeft">&#160;</td><td class="mdescRight">mostly not needed, but I can never know it  <a href="classrender_1_1_i_texture.html#a2dcbcad96404d6a0ff64e8053ccde162">More...</a><br /></td></tr>
+<tr class="separator:a2dcbcad96404d6a0ff64e8053ccde162 inherit pub_methods_classrender_1_1_i_texture"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Simplest useable texture. </p>
+
+<p class="definition">Definition at line <a class="el" href="_simple_sprite_8h_source.html#l00011">11</a> of file <a class="el" href="_simple_sprite_8h_source.html">SimpleSprite.h</a>.</p>
+</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
+<a id="af16d9ee29214a89a6ebe404a73ea5cad"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#af16d9ee29214a89a6ebe404a73ea5cad">&#9670;&nbsp;</a></span>SimpleSprite()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">render::SimpleSprite::SimpleSprite </td>
+          <td>(</td>
+          <td class="paramtype">const std::string &amp;&#160;</td>
+          <td class="paramname"><em>name</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">olc::vi2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>pos</em> = <code>{&#160;0,&#160;0&#160;}</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>size</em> = <code>{&#160;16,&#160;16&#160;}</code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="_simple_sprite_8cpp_source.html#l00006">6</a> of file <a class="el" href="_simple_sprite_8cpp_source.html">SimpleSprite.cpp</a>.</p>
+
+</div>
+</div>
+<h2 class="groupheader">Member Function Documentation</h2>
+<a id="aaed7cf3094f69387291a2d287d7753a5"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aaed7cf3094f69387291a2d287d7753a5">&#9670;&nbsp;</a></span>render()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">void render::SimpleSprite::render </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a> &amp;&#160;</td>
+          <td class="paramname"><em>scene</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a> &amp;&#160;</td>
+          <td class="paramname"><em>entity</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Render the sprite, abstract function. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">scene</td><td>view description </td></tr>
+    <tr><td class="paramname">entity</td><td>entity to render with this texture </td></tr>
+  </table>
+  </dd>
+</dl>
+
+<p>Implements <a class="el" href="classrender_1_1_i_texture.html#aedf64dab92f17e22a807635493196913">render::ITexture</a>.</p>
+
+<p class="definition">Definition at line <a class="el" href="_simple_sprite_8cpp_source.html#l00009">9</a> of file <a class="el" href="_simple_sprite_8cpp_source.html">SimpleSprite.cpp</a>.</p>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following files:<ul>
+<li>C:/Users/kosmx/Documents/GitHub/2d-game/<a class="el" href="_simple_sprite_8h_source.html">SimpleSprite.h</a></li>
+<li>C:/Users/kosmx/Documents/GitHub/2d-game/<a class="el" href="_simple_sprite_8cpp_source.html">SimpleSprite.cpp</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/classrender_1_1_simple_sprite.png b/doxy/html/classrender_1_1_simple_sprite.png
new file mode 100644
index 0000000000000000000000000000000000000000..49603c24f8b344f43de383ec1aebba5fc26e6d0a
Binary files /dev/null and b/doxy/html/classrender_1_1_simple_sprite.png differ
diff --git a/doxy/html/classrender_1_1_sprite_manager-members.html b/doxy/html/classrender_1_1_sprite_manager-members.html
new file mode 100644
index 0000000000000000000000000000000000000000..3b09f9f859d5b5b36c368b28011b812e21b33945
--- /dev/null
+++ b/doxy/html/classrender_1_1_sprite_manager-members.html
@@ -0,0 +1,84 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="namespacerender.html">render</a></li><li class="navelem"><a class="el" href="classrender_1_1_sprite_manager.html">SpriteManager</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">render::SpriteManager Member List</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="classrender_1_1_sprite_manager.html">render::SpriteManager</a>, including all inherited members.</p>
+<table class="directory">
+  <tr class="even"><td class="entry"><a class="el" href="classrender_1_1_sprite_manager.html#ad40363b5fa66e08aec13f332c5964d6b">getDecal</a>()</td><td class="entry"><a class="el" href="classrender_1_1_sprite_manager.html">render::SpriteManager</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classrender_1_1_sprite_manager.html#ad65313b397c85d87f307fbb931907afb">SpriteManager</a>(std::string &amp;resourceLocation, olc::ResourcePack *pack)</td><td class="entry"><a class="el" href="classrender_1_1_sprite_manager.html">render::SpriteManager</a></td><td class="entry"></td></tr>
+</table></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/classrender_1_1_sprite_manager.html b/doxy/html/classrender_1_1_sprite_manager.html
new file mode 100644
index 0000000000000000000000000000000000000000..fe6b5cf164307a171de4b6f67eaae5e3db5bd1ae
--- /dev/null
+++ b/doxy/html/classrender_1_1_sprite_manager.html
@@ -0,0 +1,150 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: render::SpriteManager Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="namespacerender.html">render</a></li><li class="navelem"><a class="el" href="classrender_1_1_sprite_manager.html">SpriteManager</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="classrender_1_1_sprite_manager-members.html">List of all members</a>  </div>
+  <div class="headertitle">
+<div class="title">render::SpriteManager Class Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p><code>#include &lt;<a class="el" href="_resource_manager_8h_source.html">ResourceManager.h</a>&gt;</code></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr class="memitem:ad65313b397c85d87f307fbb931907afb"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classrender_1_1_sprite_manager.html#ad65313b397c85d87f307fbb931907afb">SpriteManager</a> (std::string &amp;resourceLocation, <a class="el" href="classolc_1_1_resource_pack.html">olc::ResourcePack</a> *pack)</td></tr>
+<tr class="separator:ad65313b397c85d87f307fbb931907afb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad40363b5fa66e08aec13f332c5964d6b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classolc_1_1_decal.html">olc::Decal</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classrender_1_1_sprite_manager.html#ad40363b5fa66e08aec13f332c5964d6b">getDecal</a> ()</td></tr>
+<tr class="separator:ad40363b5fa66e08aec13f332c5964d6b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock">
+<p class="definition">Definition at line <a class="el" href="_resource_manager_8h_source.html#l00064">64</a> of file <a class="el" href="_resource_manager_8h_source.html">ResourceManager.h</a>.</p>
+</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
+<a id="ad65313b397c85d87f307fbb931907afb"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ad65313b397c85d87f307fbb931907afb">&#9670;&nbsp;</a></span>SpriteManager()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">render::SpriteManager::SpriteManager </td>
+          <td>(</td>
+          <td class="paramtype">std::string &amp;&#160;</td>
+          <td class="paramname"><em>resourceLocation</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="classolc_1_1_resource_pack.html">olc::ResourcePack</a> *&#160;</td>
+          <td class="paramname"><em>pack</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="_resource_manager_8cpp_source.html#l00055">55</a> of file <a class="el" href="_resource_manager_8cpp_source.html">ResourceManager.cpp</a>.</p>
+
+</div>
+</div>
+<h2 class="groupheader">Member Function Documentation</h2>
+<a id="ad40363b5fa66e08aec13f332c5964d6b"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ad40363b5fa66e08aec13f332c5964d6b">&#9670;&nbsp;</a></span>getDecal()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classolc_1_1_decal.html">olc::Decal</a> * render::SpriteManager::getDecal </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="_resource_manager_8cpp_source.html#l00060">60</a> of file <a class="el" href="_resource_manager_8cpp_source.html">ResourceManager.cpp</a>.</p>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following files:<ul>
+<li>C:/Users/kosmx/Documents/GitHub/2d-game/<a class="el" href="_resource_manager_8h_source.html">ResourceManager.h</a></li>
+<li>C:/Users/kosmx/Documents/GitHub/2d-game/<a class="el" href="_resource_manager_8cpp_source.html">ResourceManager.cpp</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/classrender_1_1_wall_texture-members.html b/doxy/html/classrender_1_1_wall_texture-members.html
new file mode 100644
index 0000000000000000000000000000000000000000..f4b79488601c38bd12aa948954c12921f87509b6
--- /dev/null
+++ b/doxy/html/classrender_1_1_wall_texture-members.html
@@ -0,0 +1,86 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="namespacerender.html">render</a></li><li class="navelem"><a class="el" href="classrender_1_1_wall_texture.html">WallTexture</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">render::WallTexture Member List</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="classrender_1_1_wall_texture.html">render::WallTexture</a>, including all inherited members.</p>
+<table class="directory">
+  <tr class="even"><td class="entry"><a class="el" href="classrender_1_1_wall_texture.html#a8246fdde3751baf778392ce6f4577a8d">offsetMap</a></td><td class="entry"><a class="el" href="classrender_1_1_wall_texture.html">render::WallTexture</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">static</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classrender_1_1_wall_texture.html#a03239c7168e114906cb20f3d39815344">render</a>(olc::TransformedView &amp;scene, entities::Entity &amp;entity) override</td><td class="entry"><a class="el" href="classrender_1_1_wall_texture.html">render::WallTexture</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classrender_1_1_wall_texture.html#af0420c11949bbc21421cc21765bd8920">WallTexture</a>(const std::string &amp;resName, const olc::vf2d &amp;baseOffset, const olc::vf2d &amp;size=olc::vf2d(16, 16))</td><td class="entry"><a class="el" href="classrender_1_1_wall_texture.html">render::WallTexture</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classrender_1_1_i_texture.html#a2dcbcad96404d6a0ff64e8053ccde162">~ITexture</a>()=default</td><td class="entry"><a class="el" href="classrender_1_1_i_texture.html">render::ITexture</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+</table></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/classrender_1_1_wall_texture.html b/doxy/html/classrender_1_1_wall_texture.html
new file mode 100644
index 0000000000000000000000000000000000000000..cf4b216b43bc01b674b81e3b785a6ca4a7f92ee8
--- /dev/null
+++ b/doxy/html/classrender_1_1_wall_texture.html
@@ -0,0 +1,245 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: render::WallTexture Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="namespacerender.html">render</a></li><li class="navelem"><a class="el" href="classrender_1_1_wall_texture.html">WallTexture</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="#pro-static-attribs">Static Protected Attributes</a> &#124;
+<a href="classrender_1_1_wall_texture-members.html">List of all members</a>  </div>
+  <div class="headertitle">
+<div class="title">render::WallTexture Class Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Texture to render walls, with 16 possible states.  
+ <a href="classrender_1_1_wall_texture.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="_wall_texture_8h_source.html">WallTexture.h</a>&gt;</code></p>
+<div class="dynheader">
+Inheritance diagram for render::WallTexture:</div>
+<div class="dyncontent">
+ <div class="center">
+  <img src="classrender_1_1_wall_texture.png" usemap="#render::WallTexture_map" alt=""/>
+  <map id="render::WallTexture_map" name="render::WallTexture_map">
+<area href="classrender_1_1_i_texture.html" title="Every texture, what can render an entity." alt="render::ITexture" shape="rect" coords="0,0,122,24"/>
+  </map>
+</div></div>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr class="memitem:af0420c11949bbc21421cc21765bd8920"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classrender_1_1_wall_texture.html#af0420c11949bbc21421cc21765bd8920">WallTexture</a> (const std::string &amp;resName, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;baseOffset, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;size=<a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a>(16, 16))</td></tr>
+<tr class="separator:af0420c11949bbc21421cc21765bd8920"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a03239c7168e114906cb20f3d39815344"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classrender_1_1_wall_texture.html#a03239c7168e114906cb20f3d39815344">render</a> (<a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a> &amp;scene, <a class="el" href="classentities_1_1_entity.html">entities::Entity</a> &amp;entity) override</td></tr>
+<tr class="memdesc:a03239c7168e114906cb20f3d39815344"><td class="mdescLeft">&#160;</td><td class="mdescRight">Render the sprite, abstract function.  <a href="classrender_1_1_wall_texture.html#a03239c7168e114906cb20f3d39815344">More...</a><br /></td></tr>
+<tr class="separator:a03239c7168e114906cb20f3d39815344"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pub_methods_classrender_1_1_i_texture"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classrender_1_1_i_texture')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classrender_1_1_i_texture.html">render::ITexture</a></td></tr>
+<tr class="memitem:a2dcbcad96404d6a0ff64e8053ccde162 inherit pub_methods_classrender_1_1_i_texture"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classrender_1_1_i_texture.html#a2dcbcad96404d6a0ff64e8053ccde162">~ITexture</a> ()=default</td></tr>
+<tr class="memdesc:a2dcbcad96404d6a0ff64e8053ccde162 inherit pub_methods_classrender_1_1_i_texture"><td class="mdescLeft">&#160;</td><td class="mdescRight">mostly not needed, but I can never know it  <a href="classrender_1_1_i_texture.html#a2dcbcad96404d6a0ff64e8053ccde162">More...</a><br /></td></tr>
+<tr class="separator:a2dcbcad96404d6a0ff64e8053ccde162 inherit pub_methods_classrender_1_1_i_texture"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-static-attribs"></a>
+Static Protected Attributes</h2></td></tr>
+<tr class="memitem:a8246fdde3751baf778392ce6f4577a8d"><td class="memItemLeft" align="right" valign="top">static const std::map&lt; byte, <a class="el" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">olc::vi2d</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classrender_1_1_wall_texture.html#a8246fdde3751baf778392ce6f4577a8d">offsetMap</a></td></tr>
+<tr class="memdesc:a8246fdde3751baf778392ce6f4577a8d"><td class="mdescLeft">&#160;</td><td class="mdescRight">map, witch state means what coordinates in the sprite  <a href="classrender_1_1_wall_texture.html#a8246fdde3751baf778392ce6f4577a8d">More...</a><br /></td></tr>
+<tr class="separator:a8246fdde3751baf778392ce6f4577a8d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Texture to render walls, with 16 possible states. </p>
+
+<p class="definition">Definition at line <a class="el" href="_wall_texture_8h_source.html#l00011">11</a> of file <a class="el" href="_wall_texture_8h_source.html">WallTexture.h</a>.</p>
+</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
+<a id="af0420c11949bbc21421cc21765bd8920"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#af0420c11949bbc21421cc21765bd8920">&#9670;&nbsp;</a></span>WallTexture()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">render::WallTexture::WallTexture </td>
+          <td>(</td>
+          <td class="paramtype">const std::string &amp;&#160;</td>
+          <td class="paramname"><em>resName</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>baseOffset</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>size</em> = <code><a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a>(16,&#160;16)</code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="_wall_texture_8cpp_source.html#l00012">12</a> of file <a class="el" href="_wall_texture_8cpp_source.html">WallTexture.cpp</a>.</p>
+
+</div>
+</div>
+<h2 class="groupheader">Member Function Documentation</h2>
+<a id="a03239c7168e114906cb20f3d39815344"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a03239c7168e114906cb20f3d39815344">&#9670;&nbsp;</a></span>render()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">void render::WallTexture::render </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a> &amp;&#160;</td>
+          <td class="paramname"><em>scene</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a> &amp;&#160;</td>
+          <td class="paramname"><em>entity</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Render the sprite, abstract function. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">scene</td><td>view description </td></tr>
+    <tr><td class="paramname">entity</td><td>entity to render with this texture </td></tr>
+  </table>
+  </dd>
+</dl>
+
+<p>Implements <a class="el" href="classrender_1_1_i_texture.html#aedf64dab92f17e22a807635493196913">render::ITexture</a>.</p>
+
+<p class="definition">Definition at line <a class="el" href="_wall_texture_8cpp_source.html#l00014">14</a> of file <a class="el" href="_wall_texture_8cpp_source.html">WallTexture.cpp</a>.</p>
+
+</div>
+</div>
+<h2 class="groupheader">Member Data Documentation</h2>
+<a id="a8246fdde3751baf778392ce6f4577a8d"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a8246fdde3751baf778392ce6f4577a8d">&#9670;&nbsp;</a></span>offsetMap</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">const std::map&lt; byte, vi2d &gt; render::WallTexture::offsetMap</td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span><span class="mlabel">protected</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+<b>Initial value:</b><div class="fragment"><div class="line">= {</div>
+<div class="line">        {0b0000, <a class="code" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">vi2d</a>(1, 1) }, {0b0001, <a class="code" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">vi2d</a>(1, 1)}, {0b0010, <a class="code" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">vi2d</a>(0, 1)}, {0b0011, <a class="code" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">vi2d</a>(0, 1)},</div>
+<div class="line">        {0b0100, <a class="code" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">vi2d</a>(1, 0) }, {0b0101, <a class="code" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">vi2d</a>(2, 2)}, {0b0110, <a class="code" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">vi2d</a>(2, 0)}, {0b0111, <a class="code" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">vi2d</a>(5, 1)},</div>
+<div class="line">        {0b1000, <a class="code" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">vi2d</a>(1, 0) }, {0b1001, <a class="code" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">vi2d</a>(0, 2)}, {0b1010, <a class="code" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">vi2d</a>(0, 0)}, {0b1011, <a class="code" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">vi2d</a>(3, 1)},</div>
+<div class="line">        {0b1100, <a class="code" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">vi2d</a>(1, 0) }, {0b1101, <a class="code" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">vi2d</a>(4, 2)}, {0b1110, <a class="code" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">vi2d</a>(4, 0)}, {0b1111, <a class="code" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">vi2d</a>(4, 1)}</div>
+<div class="line">    }</div>
+</div><!-- fragment -->
+<p>map, witch state means what coordinates in the sprite </p>
+
+<p class="definition">Definition at line <a class="el" href="_wall_texture_8h_source.html#l00021">21</a> of file <a class="el" href="_wall_texture_8h_source.html">WallTexture.h</a>.</p>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following files:<ul>
+<li>C:/Users/kosmx/Documents/GitHub/2d-game/<a class="el" href="_wall_texture_8h_source.html">WallTexture.h</a></li>
+<li>C:/Users/kosmx/Documents/GitHub/2d-game/<a class="el" href="_wall_texture_8cpp_source.html">WallTexture.cpp</a></li>
+</ul>
+</div><!-- contents -->
+<div class="ttc" id="anamespaceolc_html_a3c42697361e8a28424bcf8415aba3564"><div class="ttname"><a href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">olc::vi2d</a></div><div class="ttdeci">v2d_generic&lt; int32_t &gt; vi2d</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00644">olcPixelGameEngine.h:644</a></div></div>
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/classrender_1_1_wall_texture.png b/doxy/html/classrender_1_1_wall_texture.png
new file mode 100644
index 0000000000000000000000000000000000000000..d9b14e06fb54c1e4374603bbae42f50447716030
Binary files /dev/null and b/doxy/html/classrender_1_1_wall_texture.png differ
diff --git a/doxy/html/classweapons_1_1_e_m_gun-members.html b/doxy/html/classweapons_1_1_e_m_gun-members.html
new file mode 100644
index 0000000000000000000000000000000000000000..7ee5a9da44798b146d431bd81b9a0d2bd0395206
--- /dev/null
+++ b/doxy/html/classweapons_1_1_e_m_gun-members.html
@@ -0,0 +1,119 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="namespaceweapons.html">weapons</a></li><li class="navelem"><a class="el" href="classweapons_1_1_e_m_gun.html">EMGun</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">weapons::EMGun Member List</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="classweapons_1_1_e_m_gun.html">weapons::EMGun</a>, including all inherited members.</p>
+<table class="directory">
+  <tr class="even"><td class="entry"><a class="el" href="classweapons_1_1_weapon.html#a27456b08c51df0759ae0155b9f79e336">baseDamage</a></td><td class="entry"><a class="el" href="classweapons_1_1_weapon.html">weapons::Weapon</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classweapons_1_1_weapon.html#aaf97827d27191b7b437ef1be96d6ac2c">canBeRemoved</a>() const override</td><td class="entry"><a class="el" href="classweapons_1_1_weapon.html">weapons::Weapon</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classweapons_1_1_weapon.html#aa3529d6c0160f61132fc7bb1b9284a02">cooldown</a></td><td class="entry"><a class="el" href="classweapons_1_1_weapon.html">weapons::Weapon</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classweapons_1_1_weapon.html#aa3d78dae766eee8279326026dbb46f1f">cooldownTime</a></td><td class="entry"><a class="el" href="classweapons_1_1_weapon.html">weapons::Weapon</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classweapons_1_1_weapon.html#a397c372ffe2838f7c9c1ce67c06e55a9">damage</a>(int damage, Entity &amp;attacker) override</td><td class="entry"><a class="el" href="classweapons_1_1_weapon.html">weapons::Weapon</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classweapons_1_1_e_m_gun.html#a39114a620affbf0d80d616cf4baf7e17">EMGun</a>(render::ITexture &amp;texture, float cooldownTime, int damage, float projectileSpeed=10, const std::string &amp;name=&quot;RangedWeapon&quot;, const olc::vf2d &amp;pos={ 0, 0 }, float energyRegen=12)</td><td class="entry"><a class="el" href="classweapons_1_1_e_m_gun.html">weapons::EMGun</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classweapons_1_1_ranged_weapon.html#acf33d7619066026e823986ec5ec51a97">emgun</a></td><td class="entry"><a class="el" href="classweapons_1_1_ranged_weapon.html">weapons::RangedWeapon</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classentities_1_1_entity.html#a539ddef34b718b6068df421f316f4a6d">Entity</a>(const olc::vf2d &amp;pos)</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">explicit</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classentities_1_1_entity.html#a94d18db8d502d677b6f4215dc1e1d820">getCollision</a>(const Entity &amp;other)</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classweapons_1_1_weapon.html#a9626ba57d509b1ee0fbe7f900d5181c6">getCooldownBar</a>()</td><td class="entry"><a class="el" href="classweapons_1_1_weapon.html">weapons::Weapon</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classweapons_1_1_weapon.html#a862bd61cf947a91809b423304885cf66">getHitBoxSize</a>() const override</td><td class="entry"><a class="el" href="classweapons_1_1_weapon.html">weapons::Weapon</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classentities_1_1_entity.html#a8c4b0c1eb69a673619e4c8943ef34f86">getName</a>() const</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classentities_1_1_entity.html#a799a692b988248dd23d207b95e7fe2b7">getPos</a>() const</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classweapons_1_1_e_m_gun.html#a1d2c920f4fddd40d39dba5d4dddf496f">getSecondaryBar</a>() override</td><td class="entry"><a class="el" href="classweapons_1_1_e_m_gun.html">weapons::EMGun</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classentities_1_1_entity.html#ac60e9beb5a45fc65120e9779e680c04b">getSize</a>() const</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classentities_1_1_entity.html#afd80ddceccb36b87d0d80dcc7f88fc3b">init</a>(GameClient &amp;client)</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classentities_1_1_entity.html#aedac7bb35b729e4a02c582b9f4369ab8">is_alive</a></td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classentities_1_1_entity.html#a1453bca3376a185aa54135dd4958b244">is_initialized</a></td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classentities_1_1_entity.html#ab0ee90a84f2163b600e603f24cff046f">isAlive</a>() const</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classentities_1_1_entity.html#ab010066d52a02c63908f70ff6ef7d873">isInitialized</a>()</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classweapons_1_1_weapon.html#aba025076ad5e6fae2f9b9d40f4ef815d">isPickedUp</a></td><td class="entry"><a class="el" href="classweapons_1_1_weapon.html">weapons::Weapon</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classweapons_1_1_weapon.html#a3dab7574419aed48f2a0f2d54cfcd825">name</a></td><td class="entry"><a class="el" href="classweapons_1_1_weapon.html">weapons::Weapon</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classentities_1_1_entity.html#ad0a172ff99a7e73aaaee3658d5e3ae08">operator WallEntity *</a>()</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classweapons_1_1_ranged_weapon.html#a2c916fa61105c656187e1f6f41fa4fab">pistol</a></td><td class="entry"><a class="el" href="classweapons_1_1_ranged_weapon.html">weapons::RangedWeapon</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classweapons_1_1_pistol.html#acc8c02692de7d84e5060da436b96ed86">Pistol</a>(render::ITexture &amp;texture, float cooldownTime, int damage, float projectileSpeed=10, const std::string &amp;name=&quot;RangedWeapon&quot;, const olc::vf2d &amp;pos={ 0, 0 })</td><td class="entry"><a class="el" href="classweapons_1_1_pistol.html">weapons::Pistol</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classentities_1_1_entity.html#a04f9c2febe8d435138a07eb2f48ba96b">pos</a></td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classweapons_1_1_ranged_weapon.html#a299d09c213670d80f7215e2310c92889">projectileSpeed</a></td><td class="entry"><a class="el" href="classweapons_1_1_ranged_weapon.html">weapons::RangedWeapon</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classweapons_1_1_ranged_weapon.html#add8afffc63175911e5f81b3ce43d135f">RangedWeapon</a>(render::ITexture &amp;texture, float cooldownTime, int damage, float projectileSpeed=10, const std::string &amp;name=&quot;RangedWeapon&quot;, const olc::vf2d &amp;pos={ 0, 0 })</td><td class="entry"><a class="el" href="classweapons_1_1_ranged_weapon.html">weapons::RangedWeapon</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classentities_1_1_entity.html#abcc4364b5b7250f0364f3550a618b3ab">render</a>(olc::TransformedView &amp;scene)</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classweapons_1_1_weapon.html#ace9c44751879af7382585c3338d4bc47">setPickUp</a>(bool bl)</td><td class="entry"><a class="el" href="classweapons_1_1_weapon.html">weapons::Weapon</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classweapons_1_1_weapon.html#a34c39bfa9cdb2d7483bc340300e8a2d9">setPos</a>(const olc::vf2d &amp;newPos)</td><td class="entry"><a class="el" href="classweapons_1_1_weapon.html">weapons::Weapon</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classweapons_1_1_pistol.html#a37f81949e55c373d7cf1f35cb59c1c25">spawnProjectile</a>(std::shared_ptr&lt; Entity &gt; &amp;user, const olc::vf2d &amp;pos, const olc::vf2d &amp;v0, int damage) override</td><td class="entry"><a class="el" href="classweapons_1_1_pistol.html">weapons::Pistol</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classweapons_1_1_weapon.html#a92ae1db47ca866d828f8b09c6de5a3f6">tick</a>(GameClient &amp;client, float deltaT, std::shared_ptr&lt; Entity &gt; &amp;shared_this) override</td><td class="entry"><a class="el" href="classweapons_1_1_weapon.html">weapons::Weapon</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classweapons_1_1_e_m_gun.html#a0bb30401aa36e2205c011ea0fcf40303">update</a>(float dTick) override</td><td class="entry"><a class="el" href="classweapons_1_1_e_m_gun.html">weapons::EMGun</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classweapons_1_1_e_m_gun.html#a8034852a4a5957c3d3bc00ca5f7df6e4">use</a>(std::shared_ptr&lt; Entity &gt; user, const olc::vf2d &amp;direction) override</td><td class="entry"><a class="el" href="classweapons_1_1_e_m_gun.html">weapons::EMGun</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classweapons_1_1_weapon.html#a28f7b716212ae6b4606cff82501e00a2">Weapon</a>(render::ITexture &amp;texture, float cooldownTime, int damage=10, const std::string &amp;name=&quot;Weapon&quot;, const olc::vf2d &amp;pos={ 0, 0 })</td><td class="entry"><a class="el" href="classweapons_1_1_weapon.html">weapons::Weapon</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classentities_1_1_entity.html#a64d968c160dee2fdfca68aff2e49946b">~Entity</a>()=default</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+</table></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/classweapons_1_1_e_m_gun.html b/doxy/html/classweapons_1_1_e_m_gun.html
new file mode 100644
index 0000000000000000000000000000000000000000..ea12699a22c49225e47aac6e612e1c369f502ab8
--- /dev/null
+++ b/doxy/html/classweapons_1_1_e_m_gun.html
@@ -0,0 +1,393 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: weapons::EMGun Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="namespaceweapons.html">weapons</a></li><li class="navelem"><a class="el" href="classweapons_1_1_e_m_gun.html">EMGun</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="classweapons_1_1_e_m_gun-members.html">List of all members</a>  </div>
+  <div class="headertitle">
+<div class="title">weapons::EMGun Class Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p><a class="el" href="classweapons_1_1_weapon.html" title="You can throw it to the ground, this is why it&#39;s an entity. But it will be possible to use it....">Weapon</a> with energy level.  
+ <a href="classweapons_1_1_e_m_gun.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="_e_m_gun_8h_source.html">EMGun.h</a>&gt;</code></p>
+<div class="dynheader">
+Inheritance diagram for weapons::EMGun:</div>
+<div class="dyncontent">
+ <div class="center">
+  <img src="classweapons_1_1_e_m_gun.png" usemap="#weapons::EMGun_map" alt=""/>
+  <map id="weapons::EMGun_map" name="weapons::EMGun_map">
+<area href="classweapons_1_1_pistol.html" title="Just a pistol, nothing too dangerous." alt="weapons::Pistol" shape="rect" coords="0,168,157,192"/>
+<area href="classweapons_1_1_ranged_weapon.html" title="Any weapon, what does shoot. not melee." alt="weapons::RangedWeapon" shape="rect" coords="0,112,157,136"/>
+<area href="classweapons_1_1_weapon.html" title="You can throw it to the ground, this is why it&#39;s an entity. But it will be possible to use it...." alt="weapons::Weapon" shape="rect" coords="0,56,157,80"/>
+<area href="classentities_1_1_entity.html" title="Every object, what can be on the map." alt="entities::Entity" shape="rect" coords="0,0,157,24"/>
+<area href="classweapons_1_1_glitch_gun.html" title="TODO make the bug weapon more buggy." alt="weapons::GlitchGun" shape="rect" coords="0,280,157,304"/>
+  </map>
+</div></div>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr class="memitem:a39114a620affbf0d80d616cf4baf7e17"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_e_m_gun.html#a39114a620affbf0d80d616cf4baf7e17">EMGun</a> (<a class="el" href="classrender_1_1_i_texture.html">render::ITexture</a> &amp;texture, float <a class="el" href="classweapons_1_1_weapon.html#aa3d78dae766eee8279326026dbb46f1f">cooldownTime</a>, int <a class="el" href="classweapons_1_1_weapon.html#a397c372ffe2838f7c9c1ce67c06e55a9">damage</a>, float <a class="el" href="classweapons_1_1_ranged_weapon.html#a299d09c213670d80f7215e2310c92889">projectileSpeed</a>=10, const std::string &amp;<a class="el" href="classweapons_1_1_weapon.html#a3dab7574419aed48f2a0f2d54cfcd825">name</a>=&quot;RangedWeapon&quot;, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;<a class="el" href="classentities_1_1_entity.html#a04f9c2febe8d435138a07eb2f48ba96b">pos</a>={ 0, 0 }, float energyRegen=12)</td></tr>
+<tr class="separator:a39114a620affbf0d80d616cf4baf7e17"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8034852a4a5957c3d3bc00ca5f7df6e4"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_e_m_gun.html#a8034852a4a5957c3d3bc00ca5f7df6e4">use</a> (std::shared_ptr&lt; <a class="el" href="classentities_1_1_entity.html">Entity</a> &gt; user, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;direction) override</td></tr>
+<tr class="separator:a8034852a4a5957c3d3bc00ca5f7df6e4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1d2c920f4fddd40d39dba5d4dddf496f"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_e_m_gun.html#a1d2c920f4fddd40d39dba5d4dddf496f">getSecondaryBar</a> () override</td></tr>
+<tr class="memdesc:a1d2c920f4fddd40d39dba5d4dddf496f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Shows the energy level in the secondary status-bar.  <a href="classweapons_1_1_e_m_gun.html#a1d2c920f4fddd40d39dba5d4dddf496f">More...</a><br /></td></tr>
+<tr class="separator:a1d2c920f4fddd40d39dba5d4dddf496f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0bb30401aa36e2205c011ea0fcf40303"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_e_m_gun.html#a0bb30401aa36e2205c011ea0fcf40303">update</a> (float dTick) override</td></tr>
+<tr class="memdesc:a0bb30401aa36e2205c011ea0fcf40303"><td class="mdescLeft">&#160;</td><td class="mdescRight">Update the weapon in a Character's inventory.  <a href="classweapons_1_1_e_m_gun.html#a0bb30401aa36e2205c011ea0fcf40303">More...</a><br /></td></tr>
+<tr class="separator:a0bb30401aa36e2205c011ea0fcf40303"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pub_methods_classweapons_1_1_pistol"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classweapons_1_1_pistol')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classweapons_1_1_pistol.html">weapons::Pistol</a></td></tr>
+<tr class="memitem:a37f81949e55c373d7cf1f35cb59c1c25 inherit pub_methods_classweapons_1_1_pistol"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_pistol.html#a37f81949e55c373d7cf1f35cb59c1c25">spawnProjectile</a> (std::shared_ptr&lt; <a class="el" href="classentities_1_1_entity.html">Entity</a> &gt; &amp;user, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;<a class="el" href="classentities_1_1_entity.html#a04f9c2febe8d435138a07eb2f48ba96b">pos</a>, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;v0, int <a class="el" href="classweapons_1_1_weapon.html#a397c372ffe2838f7c9c1ce67c06e55a9">damage</a>) override</td></tr>
+<tr class="memdesc:a37f81949e55c373d7cf1f35cb59c1c25 inherit pub_methods_classweapons_1_1_pistol"><td class="mdescLeft">&#160;</td><td class="mdescRight">Spawn a projectile entity.  <a href="classweapons_1_1_pistol.html#a37f81949e55c373d7cf1f35cb59c1c25">More...</a><br /></td></tr>
+<tr class="separator:a37f81949e55c373d7cf1f35cb59c1c25 inherit pub_methods_classweapons_1_1_pistol"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:acc8c02692de7d84e5060da436b96ed86 inherit pub_methods_classweapons_1_1_pistol"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_pistol.html#acc8c02692de7d84e5060da436b96ed86">Pistol</a> (<a class="el" href="classrender_1_1_i_texture.html">render::ITexture</a> &amp;texture, float <a class="el" href="classweapons_1_1_weapon.html#aa3d78dae766eee8279326026dbb46f1f">cooldownTime</a>, int <a class="el" href="classweapons_1_1_weapon.html#a397c372ffe2838f7c9c1ce67c06e55a9">damage</a>, float <a class="el" href="classweapons_1_1_ranged_weapon.html#a299d09c213670d80f7215e2310c92889">projectileSpeed</a>=10, const std::string &amp;<a class="el" href="classweapons_1_1_weapon.html#a3dab7574419aed48f2a0f2d54cfcd825">name</a>=&quot;RangedWeapon&quot;, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;<a class="el" href="classentities_1_1_entity.html#a04f9c2febe8d435138a07eb2f48ba96b">pos</a>={ 0, 0 })</td></tr>
+<tr class="separator:acc8c02692de7d84e5060da436b96ed86 inherit pub_methods_classweapons_1_1_pistol"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pub_methods_classweapons_1_1_ranged_weapon"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classweapons_1_1_ranged_weapon')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classweapons_1_1_ranged_weapon.html">weapons::RangedWeapon</a></td></tr>
+<tr class="memitem:add8afffc63175911e5f81b3ce43d135f inherit pub_methods_classweapons_1_1_ranged_weapon"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_ranged_weapon.html#add8afffc63175911e5f81b3ce43d135f">RangedWeapon</a> (<a class="el" href="classrender_1_1_i_texture.html">render::ITexture</a> &amp;texture, float <a class="el" href="classweapons_1_1_weapon.html#aa3d78dae766eee8279326026dbb46f1f">cooldownTime</a>, int <a class="el" href="classweapons_1_1_weapon.html#a397c372ffe2838f7c9c1ce67c06e55a9">damage</a>, float <a class="el" href="classweapons_1_1_ranged_weapon.html#a299d09c213670d80f7215e2310c92889">projectileSpeed</a>=10, const std::string &amp;<a class="el" href="classweapons_1_1_weapon.html#a3dab7574419aed48f2a0f2d54cfcd825">name</a>=&quot;RangedWeapon&quot;, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;<a class="el" href="classentities_1_1_entity.html#a04f9c2febe8d435138a07eb2f48ba96b">pos</a>={ 0, 0 })</td></tr>
+<tr class="separator:add8afffc63175911e5f81b3ce43d135f inherit pub_methods_classweapons_1_1_ranged_weapon"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0e8915ad79021eb8fd79a1a3d7b1c92c inherit pub_methods_classweapons_1_1_ranged_weapon"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_ranged_weapon.html#a0e8915ad79021eb8fd79a1a3d7b1c92c">use</a> (std::shared_ptr&lt; <a class="el" href="classentities_1_1_entity.html">Entity</a> &gt; user, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;direction) override</td></tr>
+<tr class="separator:a0e8915ad79021eb8fd79a1a3d7b1c92c inherit pub_methods_classweapons_1_1_ranged_weapon"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pub_methods_classweapons_1_1_weapon"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classweapons_1_1_weapon')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classweapons_1_1_weapon.html">weapons::Weapon</a></td></tr>
+<tr class="memitem:a28f7b716212ae6b4606cff82501e00a2 inherit pub_methods_classweapons_1_1_weapon"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_weapon.html#a28f7b716212ae6b4606cff82501e00a2">Weapon</a> (<a class="el" href="classrender_1_1_i_texture.html">render::ITexture</a> &amp;texture, float <a class="el" href="classweapons_1_1_weapon.html#aa3d78dae766eee8279326026dbb46f1f">cooldownTime</a>, int <a class="el" href="classweapons_1_1_weapon.html#a397c372ffe2838f7c9c1ce67c06e55a9">damage</a>=10, const std::string &amp;<a class="el" href="classweapons_1_1_weapon.html#a3dab7574419aed48f2a0f2d54cfcd825">name</a>=&quot;Weapon&quot;, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;<a class="el" href="classentities_1_1_entity.html#a04f9c2febe8d435138a07eb2f48ba96b">pos</a>={ 0, 0 })</td></tr>
+<tr class="separator:a28f7b716212ae6b4606cff82501e00a2 inherit pub_methods_classweapons_1_1_weapon"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a92ae1db47ca866d828f8b09c6de5a3f6 inherit pub_methods_classweapons_1_1_weapon"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_weapon.html#a92ae1db47ca866d828f8b09c6de5a3f6">tick</a> (<a class="el" href="class_game_client.html">GameClient</a> &amp;client, float deltaT, std::shared_ptr&lt; <a class="el" href="classentities_1_1_entity.html">Entity</a> &gt; &amp;shared_this) override</td></tr>
+<tr class="memdesc:a92ae1db47ca866d828f8b09c6de5a3f6 inherit pub_methods_classweapons_1_1_weapon"><td class="mdescLeft">&#160;</td><td class="mdescRight">tick, if on the ground. It does charge energy, or whatever.  <a href="classweapons_1_1_weapon.html#a92ae1db47ca866d828f8b09c6de5a3f6">More...</a><br /></td></tr>
+<tr class="separator:a92ae1db47ca866d828f8b09c6de5a3f6 inherit pub_methods_classweapons_1_1_weapon"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9626ba57d509b1ee0fbe7f900d5181c6 inherit pub_methods_classweapons_1_1_weapon"><td class="memItemLeft" align="right" valign="top">virtual float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_weapon.html#a9626ba57d509b1ee0fbe7f900d5181c6">getCooldownBar</a> ()</td></tr>
+<tr class="memdesc:a9626ba57d509b1ee0fbe7f900d5181c6 inherit pub_methods_classweapons_1_1_weapon"><td class="mdescLeft">&#160;</td><td class="mdescRight">0 - 1 cooldown, 1 is ready to use, more than one makes sense, like 2 charges  <a href="classweapons_1_1_weapon.html#a9626ba57d509b1ee0fbe7f900d5181c6">More...</a><br /></td></tr>
+<tr class="separator:a9626ba57d509b1ee0fbe7f900d5181c6 inherit pub_methods_classweapons_1_1_weapon"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aaf97827d27191b7b437ef1be96d6ac2c inherit pub_methods_classweapons_1_1_weapon"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_weapon.html#aaf97827d27191b7b437ef1be96d6ac2c">canBeRemoved</a> () const override</td></tr>
+<tr class="memdesc:aaf97827d27191b7b437ef1be96d6ac2c inherit pub_methods_classweapons_1_1_weapon"><td class="mdescLeft">&#160;</td><td class="mdescRight">Can be removed form the ground.  <a href="classweapons_1_1_weapon.html#aaf97827d27191b7b437ef1be96d6ac2c">More...</a><br /></td></tr>
+<tr class="separator:aaf97827d27191b7b437ef1be96d6ac2c inherit pub_methods_classweapons_1_1_weapon"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ace9c44751879af7382585c3338d4bc47 inherit pub_methods_classweapons_1_1_weapon"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_weapon.html#ace9c44751879af7382585c3338d4bc47">setPickUp</a> (bool bl)</td></tr>
+<tr class="memdesc:ace9c44751879af7382585c3338d4bc47 inherit pub_methods_classweapons_1_1_weapon"><td class="mdescLeft">&#160;</td><td class="mdescRight">Mutator to isPickedUp.  <a href="classweapons_1_1_weapon.html#ace9c44751879af7382585c3338d4bc47">More...</a><br /></td></tr>
+<tr class="separator:ace9c44751879af7382585c3338d4bc47 inherit pub_methods_classweapons_1_1_weapon"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a34c39bfa9cdb2d7483bc340300e8a2d9 inherit pub_methods_classweapons_1_1_weapon"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_weapon.html#a34c39bfa9cdb2d7483bc340300e8a2d9">setPos</a> (const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;newPos)</td></tr>
+<tr class="separator:a34c39bfa9cdb2d7483bc340300e8a2d9 inherit pub_methods_classweapons_1_1_weapon"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a397c372ffe2838f7c9c1ce67c06e55a9 inherit pub_methods_classweapons_1_1_weapon"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_weapon.html#a397c372ffe2838f7c9c1ce67c06e55a9">damage</a> (int damage, <a class="el" href="classentities_1_1_entity.html">Entity</a> &amp;attacker) override</td></tr>
+<tr class="memdesc:a397c372ffe2838f7c9c1ce67c06e55a9 inherit pub_methods_classweapons_1_1_weapon"><td class="mdescLeft">&#160;</td><td class="mdescRight">something damage this  <a href="classweapons_1_1_weapon.html#a397c372ffe2838f7c9c1ce67c06e55a9">More...</a><br /></td></tr>
+<tr class="separator:a397c372ffe2838f7c9c1ce67c06e55a9 inherit pub_methods_classweapons_1_1_weapon"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pub_methods_classentities_1_1_entity"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classentities_1_1_entity')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td></tr>
+<tr class="memitem:a539ddef34b718b6068df421f316f4a6d inherit pub_methods_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#a539ddef34b718b6068df421f316f4a6d">Entity</a> (const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;<a class="el" href="classentities_1_1_entity.html#a04f9c2febe8d435138a07eb2f48ba96b">pos</a>)</td></tr>
+<tr class="separator:a539ddef34b718b6068df421f316f4a6d inherit pub_methods_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afd80ddceccb36b87d0d80dcc7f88fc3b inherit pub_methods_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#afd80ddceccb36b87d0d80dcc7f88fc3b">init</a> (<a class="el" href="class_game_client.html">GameClient</a> &amp;client)</td></tr>
+<tr class="separator:afd80ddceccb36b87d0d80dcc7f88fc3b inherit pub_methods_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab010066d52a02c63908f70ff6ef7d873 inherit pub_methods_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#ab010066d52a02c63908f70ff6ef7d873">isInitialized</a> ()</td></tr>
+<tr class="separator:ab010066d52a02c63908f70ff6ef7d873 inherit pub_methods_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a799a692b988248dd23d207b95e7fe2b7 inherit pub_methods_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#a799a692b988248dd23d207b95e7fe2b7">getPos</a> () const</td></tr>
+<tr class="separator:a799a692b988248dd23d207b95e7fe2b7 inherit pub_methods_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac60e9beb5a45fc65120e9779e680c04b inherit pub_methods_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#ac60e9beb5a45fc65120e9779e680c04b">getSize</a> () const</td></tr>
+<tr class="memdesc:ac60e9beb5a45fc65120e9779e680c04b inherit pub_methods_classentities_1_1_entity"><td class="mdescLeft">&#160;</td><td class="mdescRight">get it's size to render  <a href="classentities_1_1_entity.html#ac60e9beb5a45fc65120e9779e680c04b">More...</a><br /></td></tr>
+<tr class="separator:ac60e9beb5a45fc65120e9779e680c04b inherit pub_methods_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab0ee90a84f2163b600e603f24cff046f inherit pub_methods_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#ab0ee90a84f2163b600e603f24cff046f">isAlive</a> () const</td></tr>
+<tr class="separator:ab0ee90a84f2163b600e603f24cff046f inherit pub_methods_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abcc4364b5b7250f0364f3550a618b3ab inherit pub_methods_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#abcc4364b5b7250f0364f3550a618b3ab">render</a> (<a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a> &amp;scene)</td></tr>
+<tr class="memdesc:abcc4364b5b7250f0364f3550a618b3ab inherit pub_methods_classentities_1_1_entity"><td class="mdescLeft">&#160;</td><td class="mdescRight">render  <a href="classentities_1_1_entity.html#abcc4364b5b7250f0364f3550a618b3ab">More...</a><br /></td></tr>
+<tr class="separator:abcc4364b5b7250f0364f3550a618b3ab inherit pub_methods_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8c4b0c1eb69a673619e4c8943ef34f86 inherit pub_methods_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">virtual std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#a8c4b0c1eb69a673619e4c8943ef34f86">getName</a> () const</td></tr>
+<tr class="separator:a8c4b0c1eb69a673619e4c8943ef34f86 inherit pub_methods_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a64d968c160dee2fdfca68aff2e49946b inherit pub_methods_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#a64d968c160dee2fdfca68aff2e49946b">~Entity</a> ()=default</td></tr>
+<tr class="separator:a64d968c160dee2fdfca68aff2e49946b inherit pub_methods_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad0a172ff99a7e73aaaee3658d5e3ae08 inherit pub_methods_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#ad0a172ff99a7e73aaaee3658d5e3ae08">operator WallEntity *</a> ()</td></tr>
+<tr class="separator:ad0a172ff99a7e73aaaee3658d5e3ae08 inherit pub_methods_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
+Additional Inherited Members</h2></td></tr>
+<tr class="inherit_header pub_static_attribs_classweapons_1_1_ranged_weapon"><td colspan="2" onclick="javascript:toggleInherit('pub_static_attribs_classweapons_1_1_ranged_weapon')"><img src="closed.png" alt="-"/>&#160;Static Public Attributes inherited from <a class="el" href="classweapons_1_1_ranged_weapon.html">weapons::RangedWeapon</a></td></tr>
+<tr class="memitem:a2c916fa61105c656187e1f6f41fa4fab inherit pub_static_attribs_classweapons_1_1_ranged_weapon"><td class="memItemLeft" align="right" valign="top">static const <a class="el" href="classweapons_1_1_pistol.html">Pistol</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_ranged_weapon.html#a2c916fa61105c656187e1f6f41fa4fab">pistol</a></td></tr>
+<tr class="separator:a2c916fa61105c656187e1f6f41fa4fab inherit pub_static_attribs_classweapons_1_1_ranged_weapon"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:acf33d7619066026e823986ec5ec51a97 inherit pub_static_attribs_classweapons_1_1_ranged_weapon"><td class="memItemLeft" align="right" valign="top">static const <a class="el" href="classweapons_1_1_e_m_gun.html">EMGun</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_ranged_weapon.html#acf33d7619066026e823986ec5ec51a97">emgun</a></td></tr>
+<tr class="separator:acf33d7619066026e823986ec5ec51a97 inherit pub_static_attribs_classweapons_1_1_ranged_weapon"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_methods_classweapons_1_1_weapon"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classweapons_1_1_weapon')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="classweapons_1_1_weapon.html">weapons::Weapon</a></td></tr>
+<tr class="memitem:a862bd61cf947a91809b423304885cf66 inherit pro_methods_classweapons_1_1_weapon"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_weapon.html#a862bd61cf947a91809b423304885cf66">getHitBoxSize</a> () const override</td></tr>
+<tr class="memdesc:a862bd61cf947a91809b423304885cf66 inherit pro_methods_classweapons_1_1_weapon"><td class="mdescLeft">&#160;</td><td class="mdescRight">half hitbox size  <a href="classweapons_1_1_weapon.html#a862bd61cf947a91809b423304885cf66">More...</a><br /></td></tr>
+<tr class="separator:a862bd61cf947a91809b423304885cf66 inherit pro_methods_classweapons_1_1_weapon"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_methods_classentities_1_1_entity"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classentities_1_1_entity')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td></tr>
+<tr class="memitem:a94d18db8d502d677b6f4215dc1e1d820 inherit pro_methods_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#a94d18db8d502d677b6f4215dc1e1d820">getCollision</a> (const <a class="el" href="classentities_1_1_entity.html">Entity</a> &amp;other)</td></tr>
+<tr class="memdesc:a94d18db8d502d677b6f4215dc1e1d820 inherit pro_methods_classentities_1_1_entity"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate collision with another <a class="el" href="classentities_1_1_entity.html" title="Every object, what can be on the map.">Entity</a>, how much should this entity move, to avoid the collision.  <a href="classentities_1_1_entity.html#a94d18db8d502d677b6f4215dc1e1d820">More...</a><br /></td></tr>
+<tr class="separator:a94d18db8d502d677b6f4215dc1e1d820 inherit pro_methods_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_attribs_classweapons_1_1_ranged_weapon"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_classweapons_1_1_ranged_weapon')"><img src="closed.png" alt="-"/>&#160;Protected Attributes inherited from <a class="el" href="classweapons_1_1_ranged_weapon.html">weapons::RangedWeapon</a></td></tr>
+<tr class="memitem:a299d09c213670d80f7215e2310c92889 inherit pro_attribs_classweapons_1_1_ranged_weapon"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_ranged_weapon.html#a299d09c213670d80f7215e2310c92889">projectileSpeed</a></td></tr>
+<tr class="separator:a299d09c213670d80f7215e2310c92889 inherit pro_attribs_classweapons_1_1_ranged_weapon"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_attribs_classweapons_1_1_weapon"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_classweapons_1_1_weapon')"><img src="closed.png" alt="-"/>&#160;Protected Attributes inherited from <a class="el" href="classweapons_1_1_weapon.html">weapons::Weapon</a></td></tr>
+<tr class="memitem:aa3529d6c0160f61132fc7bb1b9284a02 inherit pro_attribs_classweapons_1_1_weapon"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_weapon.html#aa3529d6c0160f61132fc7bb1b9284a02">cooldown</a></td></tr>
+<tr class="separator:aa3529d6c0160f61132fc7bb1b9284a02 inherit pro_attribs_classweapons_1_1_weapon"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa3d78dae766eee8279326026dbb46f1f inherit pro_attribs_classweapons_1_1_weapon"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_weapon.html#aa3d78dae766eee8279326026dbb46f1f">cooldownTime</a></td></tr>
+<tr class="separator:aa3d78dae766eee8279326026dbb46f1f inherit pro_attribs_classweapons_1_1_weapon"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a27456b08c51df0759ae0155b9f79e336 inherit pro_attribs_classweapons_1_1_weapon"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_weapon.html#a27456b08c51df0759ae0155b9f79e336">baseDamage</a></td></tr>
+<tr class="separator:a27456b08c51df0759ae0155b9f79e336 inherit pro_attribs_classweapons_1_1_weapon"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3dab7574419aed48f2a0f2d54cfcd825 inherit pro_attribs_classweapons_1_1_weapon"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_weapon.html#a3dab7574419aed48f2a0f2d54cfcd825">name</a></td></tr>
+<tr class="separator:a3dab7574419aed48f2a0f2d54cfcd825 inherit pro_attribs_classweapons_1_1_weapon"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aba025076ad5e6fae2f9b9d40f4ef815d inherit pro_attribs_classweapons_1_1_weapon"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_weapon.html#aba025076ad5e6fae2f9b9d40f4ef815d">isPickedUp</a> = false</td></tr>
+<tr class="memdesc:aba025076ad5e6fae2f9b9d40f4ef815d inherit pro_attribs_classweapons_1_1_weapon"><td class="mdescLeft">&#160;</td><td class="mdescRight">Is on the ground, or in an entity's inventory.  <a href="classweapons_1_1_weapon.html#aba025076ad5e6fae2f9b9d40f4ef815d">More...</a><br /></td></tr>
+<tr class="separator:aba025076ad5e6fae2f9b9d40f4ef815d inherit pro_attribs_classweapons_1_1_weapon"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_attribs_classentities_1_1_entity"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_classentities_1_1_entity')"><img src="closed.png" alt="-"/>&#160;Protected Attributes inherited from <a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td></tr>
+<tr class="memitem:a04f9c2febe8d435138a07eb2f48ba96b inherit pro_attribs_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#a04f9c2febe8d435138a07eb2f48ba96b">pos</a></td></tr>
+<tr class="memdesc:a04f9c2febe8d435138a07eb2f48ba96b inherit pro_attribs_classentities_1_1_entity"><td class="mdescLeft">&#160;</td><td class="mdescRight">it's position  <a href="classentities_1_1_entity.html#a04f9c2febe8d435138a07eb2f48ba96b">More...</a><br /></td></tr>
+<tr class="separator:a04f9c2febe8d435138a07eb2f48ba96b inherit pro_attribs_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1453bca3376a185aa54135dd4958b244 inherit pro_attribs_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#a1453bca3376a185aa54135dd4958b244">is_initialized</a></td></tr>
+<tr class="memdesc:a1453bca3376a185aa54135dd4958b244 inherit pro_attribs_classentities_1_1_entity"><td class="mdescLeft">&#160;</td><td class="mdescRight">well, is initialized  <a href="classentities_1_1_entity.html#a1453bca3376a185aa54135dd4958b244">More...</a><br /></td></tr>
+<tr class="separator:a1453bca3376a185aa54135dd4958b244 inherit pro_attribs_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aedac7bb35b729e4a02c582b9f4369ab8 inherit pro_attribs_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#aedac7bb35b729e4a02c582b9f4369ab8">is_alive</a></td></tr>
+<tr class="memdesc:aedac7bb35b729e4a02c582b9f4369ab8 inherit pro_attribs_classentities_1_1_entity"><td class="mdescLeft">&#160;</td><td class="mdescRight">true, if it is alive  <a href="classentities_1_1_entity.html#aedac7bb35b729e4a02c582b9f4369ab8">More...</a><br /></td></tr>
+<tr class="separator:aedac7bb35b729e4a02c582b9f4369ab8 inherit pro_attribs_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p><a class="el" href="classweapons_1_1_weapon.html" title="You can throw it to the ground, this is why it&#39;s an entity. But it will be possible to use it....">Weapon</a> with energy level. </p>
+
+<p class="definition">Definition at line <a class="el" href="_e_m_gun_8h_source.html#l00010">10</a> of file <a class="el" href="_e_m_gun_8h_source.html">EMGun.h</a>.</p>
+</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
+<a id="a39114a620affbf0d80d616cf4baf7e17"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a39114a620affbf0d80d616cf4baf7e17">&#9670;&nbsp;</a></span>EMGun()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">weapons::EMGun::EMGun </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="classrender_1_1_i_texture.html">render::ITexture</a> &amp;&#160;</td>
+          <td class="paramname"><em>texture</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>cooldownTime</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>damage</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>projectileSpeed</em> = <code>10</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const std::string &amp;&#160;</td>
+          <td class="paramname"><em>name</em> = <code>&quot;RangedWeapon&quot;</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>pos</em> = <code>{&#160;0,&#160;0&#160;}</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>energyRegen</em> = <code>12</code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="_e_m_gun_8cpp_source.html#l00005">5</a> of file <a class="el" href="_e_m_gun_8cpp_source.html">EMGun.cpp</a>.</p>
+
+</div>
+</div>
+<h2 class="groupheader">Member Function Documentation</h2>
+<a id="a1d2c920f4fddd40d39dba5d4dddf496f"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a1d2c920f4fddd40d39dba5d4dddf496f">&#9670;&nbsp;</a></span>getSecondaryBar()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">float weapons::EMGun::getSecondaryBar </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Shows the energy level in the secondary status-bar. </p>
+<dl class="section return"><dt>Returns</dt><dd>0-1 float </dd></dl>
+
+<p>Reimplemented from <a class="el" href="classweapons_1_1_weapon.html#a3f84544c15d6220252c6175fdfe5c61d">weapons::Weapon</a>.</p>
+
+<p class="definition">Definition at line <a class="el" href="_e_m_gun_8cpp_source.html#l00022">22</a> of file <a class="el" href="_e_m_gun_8cpp_source.html">EMGun.cpp</a>.</p>
+
+</div>
+</div>
+<a id="a0bb30401aa36e2205c011ea0fcf40303"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a0bb30401aa36e2205c011ea0fcf40303">&#9670;&nbsp;</a></span>update()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">bool weapons::EMGun::update </td>
+          <td>(</td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>dTick</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Update the weapon in a Character's inventory. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">dTick</td><td>a.k.a. deltaT, or fElapsedTime </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>is the user can use it </dd></dl>
+
+<p>Reimplemented from <a class="el" href="classweapons_1_1_weapon.html#a1cbf391f196bd151f3e3f1ae1e316088">weapons::Weapon</a>.</p>
+
+<p>Reimplemented in <a class="el" href="classweapons_1_1_glitch_gun.html#a6687147e8005e96f12806862f73a6cd8">weapons::GlitchGun</a>.</p>
+
+<p class="definition">Definition at line <a class="el" href="_e_m_gun_8cpp_source.html#l00026">26</a> of file <a class="el" href="_e_m_gun_8cpp_source.html">EMGun.cpp</a>.</p>
+
+</div>
+</div>
+<a id="a8034852a4a5957c3d3bc00ca5f7df6e4"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a8034852a4a5957c3d3bc00ca5f7df6e4">&#9670;&nbsp;</a></span>use()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">bool weapons::EMGun::use </td>
+          <td>(</td>
+          <td class="paramtype">std::shared_ptr&lt; <a class="el" href="classentities_1_1_entity.html">Entity</a> &gt;&#160;</td>
+          <td class="paramname"><em>user</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>direction</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+<dl class="section return"><dt>Returns</dt><dd>true, if you did something with it. false otherwise </dd></dl>
+
+<p>Implements <a class="el" href="classweapons_1_1_weapon.html#a8c6f12ac9ed871ebd0394f6b5c447868">weapons::Weapon</a>.</p>
+
+<p class="definition">Definition at line <a class="el" href="_e_m_gun_8cpp_source.html#l00008">8</a> of file <a class="el" href="_e_m_gun_8cpp_source.html">EMGun.cpp</a>.</p>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following files:<ul>
+<li>C:/Users/kosmx/Documents/GitHub/2d-game/<a class="el" href="_e_m_gun_8h_source.html">EMGun.h</a></li>
+<li>C:/Users/kosmx/Documents/GitHub/2d-game/<a class="el" href="_e_m_gun_8cpp_source.html">EMGun.cpp</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/classweapons_1_1_e_m_gun.png b/doxy/html/classweapons_1_1_e_m_gun.png
new file mode 100644
index 0000000000000000000000000000000000000000..534761f66ebe82fe1cede1239adff2ba7b2f810b
Binary files /dev/null and b/doxy/html/classweapons_1_1_e_m_gun.png differ
diff --git a/doxy/html/classweapons_1_1_glitch_gun-members.html b/doxy/html/classweapons_1_1_glitch_gun-members.html
new file mode 100644
index 0000000000000000000000000000000000000000..833f7f6436828507d13c098338dd639a1e809a20
--- /dev/null
+++ b/doxy/html/classweapons_1_1_glitch_gun-members.html
@@ -0,0 +1,120 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="namespaceweapons.html">weapons</a></li><li class="navelem"><a class="el" href="classweapons_1_1_glitch_gun.html">GlitchGun</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">weapons::GlitchGun Member List</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="classweapons_1_1_glitch_gun.html">weapons::GlitchGun</a>, including all inherited members.</p>
+<table class="directory">
+  <tr class="even"><td class="entry"><a class="el" href="classweapons_1_1_weapon.html#a27456b08c51df0759ae0155b9f79e336">baseDamage</a></td><td class="entry"><a class="el" href="classweapons_1_1_weapon.html">weapons::Weapon</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classweapons_1_1_weapon.html#aaf97827d27191b7b437ef1be96d6ac2c">canBeRemoved</a>() const override</td><td class="entry"><a class="el" href="classweapons_1_1_weapon.html">weapons::Weapon</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classweapons_1_1_weapon.html#aa3529d6c0160f61132fc7bb1b9284a02">cooldown</a></td><td class="entry"><a class="el" href="classweapons_1_1_weapon.html">weapons::Weapon</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classweapons_1_1_weapon.html#aa3d78dae766eee8279326026dbb46f1f">cooldownTime</a></td><td class="entry"><a class="el" href="classweapons_1_1_weapon.html">weapons::Weapon</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classweapons_1_1_weapon.html#a397c372ffe2838f7c9c1ce67c06e55a9">damage</a>(int damage, Entity &amp;attacker) override</td><td class="entry"><a class="el" href="classweapons_1_1_weapon.html">weapons::Weapon</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classweapons_1_1_e_m_gun.html#a39114a620affbf0d80d616cf4baf7e17">EMGun</a>(render::ITexture &amp;texture, float cooldownTime, int damage, float projectileSpeed=10, const std::string &amp;name=&quot;RangedWeapon&quot;, const olc::vf2d &amp;pos={ 0, 0 }, float energyRegen=12)</td><td class="entry"><a class="el" href="classweapons_1_1_e_m_gun.html">weapons::EMGun</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classweapons_1_1_ranged_weapon.html#acf33d7619066026e823986ec5ec51a97">emgun</a></td><td class="entry"><a class="el" href="classweapons_1_1_ranged_weapon.html">weapons::RangedWeapon</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classentities_1_1_entity.html#a539ddef34b718b6068df421f316f4a6d">Entity</a>(const olc::vf2d &amp;pos)</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">explicit</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classentities_1_1_entity.html#a94d18db8d502d677b6f4215dc1e1d820">getCollision</a>(const Entity &amp;other)</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classweapons_1_1_weapon.html#a9626ba57d509b1ee0fbe7f900d5181c6">getCooldownBar</a>()</td><td class="entry"><a class="el" href="classweapons_1_1_weapon.html">weapons::Weapon</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classweapons_1_1_weapon.html#a862bd61cf947a91809b423304885cf66">getHitBoxSize</a>() const override</td><td class="entry"><a class="el" href="classweapons_1_1_weapon.html">weapons::Weapon</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classentities_1_1_entity.html#a8c4b0c1eb69a673619e4c8943ef34f86">getName</a>() const</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classentities_1_1_entity.html#a799a692b988248dd23d207b95e7fe2b7">getPos</a>() const</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classweapons_1_1_e_m_gun.html#a1d2c920f4fddd40d39dba5d4dddf496f">getSecondaryBar</a>() override</td><td class="entry"><a class="el" href="classweapons_1_1_e_m_gun.html">weapons::EMGun</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classentities_1_1_entity.html#ac60e9beb5a45fc65120e9779e680c04b">getSize</a>() const</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classweapons_1_1_glitch_gun.html#ac8935765613bfe258bc6985441159702">GlitchGun</a>(float cooldownTime, int damage, float projectileSpeed=10, const std::string &amp;name=&quot;RangedWeapon&quot;, const olc::vf2d &amp;pos={ 0, 0 }, float energyRegen=10)</td><td class="entry"><a class="el" href="classweapons_1_1_glitch_gun.html">weapons::GlitchGun</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classentities_1_1_entity.html#afd80ddceccb36b87d0d80dcc7f88fc3b">init</a>(GameClient &amp;client)</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classentities_1_1_entity.html#aedac7bb35b729e4a02c582b9f4369ab8">is_alive</a></td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classentities_1_1_entity.html#a1453bca3376a185aa54135dd4958b244">is_initialized</a></td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classentities_1_1_entity.html#ab0ee90a84f2163b600e603f24cff046f">isAlive</a>() const</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classentities_1_1_entity.html#ab010066d52a02c63908f70ff6ef7d873">isInitialized</a>()</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classweapons_1_1_weapon.html#aba025076ad5e6fae2f9b9d40f4ef815d">isPickedUp</a></td><td class="entry"><a class="el" href="classweapons_1_1_weapon.html">weapons::Weapon</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classweapons_1_1_weapon.html#a3dab7574419aed48f2a0f2d54cfcd825">name</a></td><td class="entry"><a class="el" href="classweapons_1_1_weapon.html">weapons::Weapon</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classentities_1_1_entity.html#ad0a172ff99a7e73aaaee3658d5e3ae08">operator WallEntity *</a>()</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classweapons_1_1_pistol.html#acc8c02692de7d84e5060da436b96ed86">Pistol</a>(render::ITexture &amp;texture, float cooldownTime, int damage, float projectileSpeed=10, const std::string &amp;name=&quot;RangedWeapon&quot;, const olc::vf2d &amp;pos={ 0, 0 })</td><td class="entry"><a class="el" href="classweapons_1_1_pistol.html">weapons::Pistol</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classweapons_1_1_ranged_weapon.html#a2c916fa61105c656187e1f6f41fa4fab">pistol</a></td><td class="entry"><a class="el" href="classweapons_1_1_ranged_weapon.html">weapons::RangedWeapon</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classentities_1_1_entity.html#a04f9c2febe8d435138a07eb2f48ba96b">pos</a></td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classweapons_1_1_ranged_weapon.html#a299d09c213670d80f7215e2310c92889">projectileSpeed</a></td><td class="entry"><a class="el" href="classweapons_1_1_ranged_weapon.html">weapons::RangedWeapon</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classweapons_1_1_ranged_weapon.html#add8afffc63175911e5f81b3ce43d135f">RangedWeapon</a>(render::ITexture &amp;texture, float cooldownTime, int damage, float projectileSpeed=10, const std::string &amp;name=&quot;RangedWeapon&quot;, const olc::vf2d &amp;pos={ 0, 0 })</td><td class="entry"><a class="el" href="classweapons_1_1_ranged_weapon.html">weapons::RangedWeapon</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classentities_1_1_entity.html#abcc4364b5b7250f0364f3550a618b3ab">render</a>(olc::TransformedView &amp;scene)</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classweapons_1_1_weapon.html#ace9c44751879af7382585c3338d4bc47">setPickUp</a>(bool bl)</td><td class="entry"><a class="el" href="classweapons_1_1_weapon.html">weapons::Weapon</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classweapons_1_1_weapon.html#a34c39bfa9cdb2d7483bc340300e8a2d9">setPos</a>(const olc::vf2d &amp;newPos)</td><td class="entry"><a class="el" href="classweapons_1_1_weapon.html">weapons::Weapon</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classweapons_1_1_glitch_gun.html#a9268757aeb63315254d6a13df8ed0ba4">spawnProjectile</a>(std::shared_ptr&lt; Entity &gt; &amp;user, const olc::vf2d &amp;pos, const olc::vf2d &amp;v0, int damage) override</td><td class="entry"><a class="el" href="classweapons_1_1_glitch_gun.html">weapons::GlitchGun</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classweapons_1_1_weapon.html#a92ae1db47ca866d828f8b09c6de5a3f6">tick</a>(GameClient &amp;client, float deltaT, std::shared_ptr&lt; Entity &gt; &amp;shared_this) override</td><td class="entry"><a class="el" href="classweapons_1_1_weapon.html">weapons::Weapon</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classweapons_1_1_glitch_gun.html#a6687147e8005e96f12806862f73a6cd8">update</a>(float dTick) override</td><td class="entry"><a class="el" href="classweapons_1_1_glitch_gun.html">weapons::GlitchGun</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classweapons_1_1_e_m_gun.html#a8034852a4a5957c3d3bc00ca5f7df6e4">use</a>(std::shared_ptr&lt; Entity &gt; user, const olc::vf2d &amp;direction) override</td><td class="entry"><a class="el" href="classweapons_1_1_e_m_gun.html">weapons::EMGun</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classweapons_1_1_weapon.html#a28f7b716212ae6b4606cff82501e00a2">Weapon</a>(render::ITexture &amp;texture, float cooldownTime, int damage=10, const std::string &amp;name=&quot;Weapon&quot;, const olc::vf2d &amp;pos={ 0, 0 })</td><td class="entry"><a class="el" href="classweapons_1_1_weapon.html">weapons::Weapon</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classentities_1_1_entity.html#a64d968c160dee2fdfca68aff2e49946b">~Entity</a>()=default</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+</table></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/classweapons_1_1_glitch_gun.html b/doxy/html/classweapons_1_1_glitch_gun.html
new file mode 100644
index 0000000000000000000000000000000000000000..ed97a044fcb06876977d8b1fdb57c207ba082283
--- /dev/null
+++ b/doxy/html/classweapons_1_1_glitch_gun.html
@@ -0,0 +1,381 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: weapons::GlitchGun Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="namespaceweapons.html">weapons</a></li><li class="navelem"><a class="el" href="classweapons_1_1_glitch_gun.html">GlitchGun</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="classweapons_1_1_glitch_gun-members.html">List of all members</a>  </div>
+  <div class="headertitle">
+<div class="title">weapons::GlitchGun Class Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>TODO make the bug weapon more buggy.  
+ <a href="classweapons_1_1_glitch_gun.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="_glitch_gun_8h_source.html">GlitchGun.h</a>&gt;</code></p>
+<div class="dynheader">
+Inheritance diagram for weapons::GlitchGun:</div>
+<div class="dyncontent">
+ <div class="center">
+  <img src="classweapons_1_1_glitch_gun.png" usemap="#weapons::GlitchGun_map" alt=""/>
+  <map id="weapons::GlitchGun_map" name="weapons::GlitchGun_map">
+<area href="classweapons_1_1_e_m_gun.html" title="Weapon with energy level." alt="weapons::EMGun" shape="rect" coords="0,224,157,248"/>
+<area href="classweapons_1_1_pistol.html" title="Just a pistol, nothing too dangerous." alt="weapons::Pistol" shape="rect" coords="0,168,157,192"/>
+<area href="classweapons_1_1_ranged_weapon.html" title="Any weapon, what does shoot. not melee." alt="weapons::RangedWeapon" shape="rect" coords="0,112,157,136"/>
+<area href="classweapons_1_1_weapon.html" title="You can throw it to the ground, this is why it&#39;s an entity. But it will be possible to use it...." alt="weapons::Weapon" shape="rect" coords="0,56,157,80"/>
+<area href="classentities_1_1_entity.html" title="Every object, what can be on the map." alt="entities::Entity" shape="rect" coords="0,0,157,24"/>
+  </map>
+</div></div>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr class="memitem:ac8935765613bfe258bc6985441159702"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_glitch_gun.html#ac8935765613bfe258bc6985441159702">GlitchGun</a> (float <a class="el" href="classweapons_1_1_weapon.html#aa3d78dae766eee8279326026dbb46f1f">cooldownTime</a>, int <a class="el" href="classweapons_1_1_weapon.html#a397c372ffe2838f7c9c1ce67c06e55a9">damage</a>, float <a class="el" href="classweapons_1_1_ranged_weapon.html#a299d09c213670d80f7215e2310c92889">projectileSpeed</a>=10, const std::string &amp;<a class="el" href="classweapons_1_1_weapon.html#a3dab7574419aed48f2a0f2d54cfcd825">name</a>=&quot;RangedWeapon&quot;, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;<a class="el" href="classentities_1_1_entity.html#a04f9c2febe8d435138a07eb2f48ba96b">pos</a>={ 0, 0 }, float energyRegen=10)</td></tr>
+<tr class="separator:ac8935765613bfe258bc6985441159702"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9268757aeb63315254d6a13df8ed0ba4"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_glitch_gun.html#a9268757aeb63315254d6a13df8ed0ba4">spawnProjectile</a> (std::shared_ptr&lt; <a class="el" href="classentities_1_1_entity.html">Entity</a> &gt; &amp;user, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;<a class="el" href="classentities_1_1_entity.html#a04f9c2febe8d435138a07eb2f48ba96b">pos</a>, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;v0, int <a class="el" href="classweapons_1_1_weapon.html#a397c372ffe2838f7c9c1ce67c06e55a9">damage</a>) override</td></tr>
+<tr class="memdesc:a9268757aeb63315254d6a13df8ed0ba4"><td class="mdescLeft">&#160;</td><td class="mdescRight">It does randomly shoot normal and explosive projectiles.  <a href="classweapons_1_1_glitch_gun.html#a9268757aeb63315254d6a13df8ed0ba4">More...</a><br /></td></tr>
+<tr class="separator:a9268757aeb63315254d6a13df8ed0ba4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6687147e8005e96f12806862f73a6cd8"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_glitch_gun.html#a6687147e8005e96f12806862f73a6cd8">update</a> (float dTick) override</td></tr>
+<tr class="memdesc:a6687147e8005e96f12806862f73a6cd8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Update the weapon in a Character's inventory.  <a href="classweapons_1_1_glitch_gun.html#a6687147e8005e96f12806862f73a6cd8">More...</a><br /></td></tr>
+<tr class="separator:a6687147e8005e96f12806862f73a6cd8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pub_methods_classweapons_1_1_e_m_gun"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classweapons_1_1_e_m_gun')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classweapons_1_1_e_m_gun.html">weapons::EMGun</a></td></tr>
+<tr class="memitem:a39114a620affbf0d80d616cf4baf7e17 inherit pub_methods_classweapons_1_1_e_m_gun"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_e_m_gun.html#a39114a620affbf0d80d616cf4baf7e17">EMGun</a> (<a class="el" href="classrender_1_1_i_texture.html">render::ITexture</a> &amp;texture, float <a class="el" href="classweapons_1_1_weapon.html#aa3d78dae766eee8279326026dbb46f1f">cooldownTime</a>, int <a class="el" href="classweapons_1_1_weapon.html#a397c372ffe2838f7c9c1ce67c06e55a9">damage</a>, float <a class="el" href="classweapons_1_1_ranged_weapon.html#a299d09c213670d80f7215e2310c92889">projectileSpeed</a>=10, const std::string &amp;<a class="el" href="classweapons_1_1_weapon.html#a3dab7574419aed48f2a0f2d54cfcd825">name</a>=&quot;RangedWeapon&quot;, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;<a class="el" href="classentities_1_1_entity.html#a04f9c2febe8d435138a07eb2f48ba96b">pos</a>={ 0, 0 }, float energyRegen=12)</td></tr>
+<tr class="separator:a39114a620affbf0d80d616cf4baf7e17 inherit pub_methods_classweapons_1_1_e_m_gun"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8034852a4a5957c3d3bc00ca5f7df6e4 inherit pub_methods_classweapons_1_1_e_m_gun"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_e_m_gun.html#a8034852a4a5957c3d3bc00ca5f7df6e4">use</a> (std::shared_ptr&lt; <a class="el" href="classentities_1_1_entity.html">Entity</a> &gt; user, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;direction) override</td></tr>
+<tr class="separator:a8034852a4a5957c3d3bc00ca5f7df6e4 inherit pub_methods_classweapons_1_1_e_m_gun"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1d2c920f4fddd40d39dba5d4dddf496f inherit pub_methods_classweapons_1_1_e_m_gun"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_e_m_gun.html#a1d2c920f4fddd40d39dba5d4dddf496f">getSecondaryBar</a> () override</td></tr>
+<tr class="memdesc:a1d2c920f4fddd40d39dba5d4dddf496f inherit pub_methods_classweapons_1_1_e_m_gun"><td class="mdescLeft">&#160;</td><td class="mdescRight">Shows the energy level in the secondary status-bar.  <a href="classweapons_1_1_e_m_gun.html#a1d2c920f4fddd40d39dba5d4dddf496f">More...</a><br /></td></tr>
+<tr class="separator:a1d2c920f4fddd40d39dba5d4dddf496f inherit pub_methods_classweapons_1_1_e_m_gun"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pub_methods_classweapons_1_1_pistol"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classweapons_1_1_pistol')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classweapons_1_1_pistol.html">weapons::Pistol</a></td></tr>
+<tr class="memitem:a37f81949e55c373d7cf1f35cb59c1c25 inherit pub_methods_classweapons_1_1_pistol"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_pistol.html#a37f81949e55c373d7cf1f35cb59c1c25">spawnProjectile</a> (std::shared_ptr&lt; <a class="el" href="classentities_1_1_entity.html">Entity</a> &gt; &amp;user, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;<a class="el" href="classentities_1_1_entity.html#a04f9c2febe8d435138a07eb2f48ba96b">pos</a>, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;v0, int <a class="el" href="classweapons_1_1_weapon.html#a397c372ffe2838f7c9c1ce67c06e55a9">damage</a>) override</td></tr>
+<tr class="memdesc:a37f81949e55c373d7cf1f35cb59c1c25 inherit pub_methods_classweapons_1_1_pistol"><td class="mdescLeft">&#160;</td><td class="mdescRight">Spawn a projectile entity.  <a href="classweapons_1_1_pistol.html#a37f81949e55c373d7cf1f35cb59c1c25">More...</a><br /></td></tr>
+<tr class="separator:a37f81949e55c373d7cf1f35cb59c1c25 inherit pub_methods_classweapons_1_1_pistol"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:acc8c02692de7d84e5060da436b96ed86 inherit pub_methods_classweapons_1_1_pistol"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_pistol.html#acc8c02692de7d84e5060da436b96ed86">Pistol</a> (<a class="el" href="classrender_1_1_i_texture.html">render::ITexture</a> &amp;texture, float <a class="el" href="classweapons_1_1_weapon.html#aa3d78dae766eee8279326026dbb46f1f">cooldownTime</a>, int <a class="el" href="classweapons_1_1_weapon.html#a397c372ffe2838f7c9c1ce67c06e55a9">damage</a>, float <a class="el" href="classweapons_1_1_ranged_weapon.html#a299d09c213670d80f7215e2310c92889">projectileSpeed</a>=10, const std::string &amp;<a class="el" href="classweapons_1_1_weapon.html#a3dab7574419aed48f2a0f2d54cfcd825">name</a>=&quot;RangedWeapon&quot;, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;<a class="el" href="classentities_1_1_entity.html#a04f9c2febe8d435138a07eb2f48ba96b">pos</a>={ 0, 0 })</td></tr>
+<tr class="separator:acc8c02692de7d84e5060da436b96ed86 inherit pub_methods_classweapons_1_1_pistol"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pub_methods_classweapons_1_1_ranged_weapon"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classweapons_1_1_ranged_weapon')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classweapons_1_1_ranged_weapon.html">weapons::RangedWeapon</a></td></tr>
+<tr class="memitem:add8afffc63175911e5f81b3ce43d135f inherit pub_methods_classweapons_1_1_ranged_weapon"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_ranged_weapon.html#add8afffc63175911e5f81b3ce43d135f">RangedWeapon</a> (<a class="el" href="classrender_1_1_i_texture.html">render::ITexture</a> &amp;texture, float <a class="el" href="classweapons_1_1_weapon.html#aa3d78dae766eee8279326026dbb46f1f">cooldownTime</a>, int <a class="el" href="classweapons_1_1_weapon.html#a397c372ffe2838f7c9c1ce67c06e55a9">damage</a>, float <a class="el" href="classweapons_1_1_ranged_weapon.html#a299d09c213670d80f7215e2310c92889">projectileSpeed</a>=10, const std::string &amp;<a class="el" href="classweapons_1_1_weapon.html#a3dab7574419aed48f2a0f2d54cfcd825">name</a>=&quot;RangedWeapon&quot;, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;<a class="el" href="classentities_1_1_entity.html#a04f9c2febe8d435138a07eb2f48ba96b">pos</a>={ 0, 0 })</td></tr>
+<tr class="separator:add8afffc63175911e5f81b3ce43d135f inherit pub_methods_classweapons_1_1_ranged_weapon"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0e8915ad79021eb8fd79a1a3d7b1c92c inherit pub_methods_classweapons_1_1_ranged_weapon"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_ranged_weapon.html#a0e8915ad79021eb8fd79a1a3d7b1c92c">use</a> (std::shared_ptr&lt; <a class="el" href="classentities_1_1_entity.html">Entity</a> &gt; user, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;direction) override</td></tr>
+<tr class="separator:a0e8915ad79021eb8fd79a1a3d7b1c92c inherit pub_methods_classweapons_1_1_ranged_weapon"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pub_methods_classweapons_1_1_weapon"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classweapons_1_1_weapon')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classweapons_1_1_weapon.html">weapons::Weapon</a></td></tr>
+<tr class="memitem:a28f7b716212ae6b4606cff82501e00a2 inherit pub_methods_classweapons_1_1_weapon"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_weapon.html#a28f7b716212ae6b4606cff82501e00a2">Weapon</a> (<a class="el" href="classrender_1_1_i_texture.html">render::ITexture</a> &amp;texture, float <a class="el" href="classweapons_1_1_weapon.html#aa3d78dae766eee8279326026dbb46f1f">cooldownTime</a>, int <a class="el" href="classweapons_1_1_weapon.html#a397c372ffe2838f7c9c1ce67c06e55a9">damage</a>=10, const std::string &amp;<a class="el" href="classweapons_1_1_weapon.html#a3dab7574419aed48f2a0f2d54cfcd825">name</a>=&quot;Weapon&quot;, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;<a class="el" href="classentities_1_1_entity.html#a04f9c2febe8d435138a07eb2f48ba96b">pos</a>={ 0, 0 })</td></tr>
+<tr class="separator:a28f7b716212ae6b4606cff82501e00a2 inherit pub_methods_classweapons_1_1_weapon"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a92ae1db47ca866d828f8b09c6de5a3f6 inherit pub_methods_classweapons_1_1_weapon"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_weapon.html#a92ae1db47ca866d828f8b09c6de5a3f6">tick</a> (<a class="el" href="class_game_client.html">GameClient</a> &amp;client, float deltaT, std::shared_ptr&lt; <a class="el" href="classentities_1_1_entity.html">Entity</a> &gt; &amp;shared_this) override</td></tr>
+<tr class="memdesc:a92ae1db47ca866d828f8b09c6de5a3f6 inherit pub_methods_classweapons_1_1_weapon"><td class="mdescLeft">&#160;</td><td class="mdescRight">tick, if on the ground. It does charge energy, or whatever.  <a href="classweapons_1_1_weapon.html#a92ae1db47ca866d828f8b09c6de5a3f6">More...</a><br /></td></tr>
+<tr class="separator:a92ae1db47ca866d828f8b09c6de5a3f6 inherit pub_methods_classweapons_1_1_weapon"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9626ba57d509b1ee0fbe7f900d5181c6 inherit pub_methods_classweapons_1_1_weapon"><td class="memItemLeft" align="right" valign="top">virtual float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_weapon.html#a9626ba57d509b1ee0fbe7f900d5181c6">getCooldownBar</a> ()</td></tr>
+<tr class="memdesc:a9626ba57d509b1ee0fbe7f900d5181c6 inherit pub_methods_classweapons_1_1_weapon"><td class="mdescLeft">&#160;</td><td class="mdescRight">0 - 1 cooldown, 1 is ready to use, more than one makes sense, like 2 charges  <a href="classweapons_1_1_weapon.html#a9626ba57d509b1ee0fbe7f900d5181c6">More...</a><br /></td></tr>
+<tr class="separator:a9626ba57d509b1ee0fbe7f900d5181c6 inherit pub_methods_classweapons_1_1_weapon"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aaf97827d27191b7b437ef1be96d6ac2c inherit pub_methods_classweapons_1_1_weapon"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_weapon.html#aaf97827d27191b7b437ef1be96d6ac2c">canBeRemoved</a> () const override</td></tr>
+<tr class="memdesc:aaf97827d27191b7b437ef1be96d6ac2c inherit pub_methods_classweapons_1_1_weapon"><td class="mdescLeft">&#160;</td><td class="mdescRight">Can be removed form the ground.  <a href="classweapons_1_1_weapon.html#aaf97827d27191b7b437ef1be96d6ac2c">More...</a><br /></td></tr>
+<tr class="separator:aaf97827d27191b7b437ef1be96d6ac2c inherit pub_methods_classweapons_1_1_weapon"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ace9c44751879af7382585c3338d4bc47 inherit pub_methods_classweapons_1_1_weapon"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_weapon.html#ace9c44751879af7382585c3338d4bc47">setPickUp</a> (bool bl)</td></tr>
+<tr class="memdesc:ace9c44751879af7382585c3338d4bc47 inherit pub_methods_classweapons_1_1_weapon"><td class="mdescLeft">&#160;</td><td class="mdescRight">Mutator to isPickedUp.  <a href="classweapons_1_1_weapon.html#ace9c44751879af7382585c3338d4bc47">More...</a><br /></td></tr>
+<tr class="separator:ace9c44751879af7382585c3338d4bc47 inherit pub_methods_classweapons_1_1_weapon"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a34c39bfa9cdb2d7483bc340300e8a2d9 inherit pub_methods_classweapons_1_1_weapon"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_weapon.html#a34c39bfa9cdb2d7483bc340300e8a2d9">setPos</a> (const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;newPos)</td></tr>
+<tr class="separator:a34c39bfa9cdb2d7483bc340300e8a2d9 inherit pub_methods_classweapons_1_1_weapon"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a397c372ffe2838f7c9c1ce67c06e55a9 inherit pub_methods_classweapons_1_1_weapon"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_weapon.html#a397c372ffe2838f7c9c1ce67c06e55a9">damage</a> (int damage, <a class="el" href="classentities_1_1_entity.html">Entity</a> &amp;attacker) override</td></tr>
+<tr class="memdesc:a397c372ffe2838f7c9c1ce67c06e55a9 inherit pub_methods_classweapons_1_1_weapon"><td class="mdescLeft">&#160;</td><td class="mdescRight">something damage this  <a href="classweapons_1_1_weapon.html#a397c372ffe2838f7c9c1ce67c06e55a9">More...</a><br /></td></tr>
+<tr class="separator:a397c372ffe2838f7c9c1ce67c06e55a9 inherit pub_methods_classweapons_1_1_weapon"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pub_methods_classentities_1_1_entity"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classentities_1_1_entity')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td></tr>
+<tr class="memitem:a539ddef34b718b6068df421f316f4a6d inherit pub_methods_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#a539ddef34b718b6068df421f316f4a6d">Entity</a> (const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;<a class="el" href="classentities_1_1_entity.html#a04f9c2febe8d435138a07eb2f48ba96b">pos</a>)</td></tr>
+<tr class="separator:a539ddef34b718b6068df421f316f4a6d inherit pub_methods_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afd80ddceccb36b87d0d80dcc7f88fc3b inherit pub_methods_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#afd80ddceccb36b87d0d80dcc7f88fc3b">init</a> (<a class="el" href="class_game_client.html">GameClient</a> &amp;client)</td></tr>
+<tr class="separator:afd80ddceccb36b87d0d80dcc7f88fc3b inherit pub_methods_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab010066d52a02c63908f70ff6ef7d873 inherit pub_methods_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#ab010066d52a02c63908f70ff6ef7d873">isInitialized</a> ()</td></tr>
+<tr class="separator:ab010066d52a02c63908f70ff6ef7d873 inherit pub_methods_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a799a692b988248dd23d207b95e7fe2b7 inherit pub_methods_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#a799a692b988248dd23d207b95e7fe2b7">getPos</a> () const</td></tr>
+<tr class="separator:a799a692b988248dd23d207b95e7fe2b7 inherit pub_methods_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac60e9beb5a45fc65120e9779e680c04b inherit pub_methods_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#ac60e9beb5a45fc65120e9779e680c04b">getSize</a> () const</td></tr>
+<tr class="memdesc:ac60e9beb5a45fc65120e9779e680c04b inherit pub_methods_classentities_1_1_entity"><td class="mdescLeft">&#160;</td><td class="mdescRight">get it's size to render  <a href="classentities_1_1_entity.html#ac60e9beb5a45fc65120e9779e680c04b">More...</a><br /></td></tr>
+<tr class="separator:ac60e9beb5a45fc65120e9779e680c04b inherit pub_methods_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab0ee90a84f2163b600e603f24cff046f inherit pub_methods_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#ab0ee90a84f2163b600e603f24cff046f">isAlive</a> () const</td></tr>
+<tr class="separator:ab0ee90a84f2163b600e603f24cff046f inherit pub_methods_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abcc4364b5b7250f0364f3550a618b3ab inherit pub_methods_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#abcc4364b5b7250f0364f3550a618b3ab">render</a> (<a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a> &amp;scene)</td></tr>
+<tr class="memdesc:abcc4364b5b7250f0364f3550a618b3ab inherit pub_methods_classentities_1_1_entity"><td class="mdescLeft">&#160;</td><td class="mdescRight">render  <a href="classentities_1_1_entity.html#abcc4364b5b7250f0364f3550a618b3ab">More...</a><br /></td></tr>
+<tr class="separator:abcc4364b5b7250f0364f3550a618b3ab inherit pub_methods_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8c4b0c1eb69a673619e4c8943ef34f86 inherit pub_methods_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">virtual std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#a8c4b0c1eb69a673619e4c8943ef34f86">getName</a> () const</td></tr>
+<tr class="separator:a8c4b0c1eb69a673619e4c8943ef34f86 inherit pub_methods_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a64d968c160dee2fdfca68aff2e49946b inherit pub_methods_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#a64d968c160dee2fdfca68aff2e49946b">~Entity</a> ()=default</td></tr>
+<tr class="separator:a64d968c160dee2fdfca68aff2e49946b inherit pub_methods_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad0a172ff99a7e73aaaee3658d5e3ae08 inherit pub_methods_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#ad0a172ff99a7e73aaaee3658d5e3ae08">operator WallEntity *</a> ()</td></tr>
+<tr class="separator:ad0a172ff99a7e73aaaee3658d5e3ae08 inherit pub_methods_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
+Additional Inherited Members</h2></td></tr>
+<tr class="inherit_header pub_static_attribs_classweapons_1_1_ranged_weapon"><td colspan="2" onclick="javascript:toggleInherit('pub_static_attribs_classweapons_1_1_ranged_weapon')"><img src="closed.png" alt="-"/>&#160;Static Public Attributes inherited from <a class="el" href="classweapons_1_1_ranged_weapon.html">weapons::RangedWeapon</a></td></tr>
+<tr class="memitem:a2c916fa61105c656187e1f6f41fa4fab inherit pub_static_attribs_classweapons_1_1_ranged_weapon"><td class="memItemLeft" align="right" valign="top">static const <a class="el" href="classweapons_1_1_pistol.html">Pistol</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_ranged_weapon.html#a2c916fa61105c656187e1f6f41fa4fab">pistol</a></td></tr>
+<tr class="separator:a2c916fa61105c656187e1f6f41fa4fab inherit pub_static_attribs_classweapons_1_1_ranged_weapon"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:acf33d7619066026e823986ec5ec51a97 inherit pub_static_attribs_classweapons_1_1_ranged_weapon"><td class="memItemLeft" align="right" valign="top">static const <a class="el" href="classweapons_1_1_e_m_gun.html">EMGun</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_ranged_weapon.html#acf33d7619066026e823986ec5ec51a97">emgun</a></td></tr>
+<tr class="separator:acf33d7619066026e823986ec5ec51a97 inherit pub_static_attribs_classweapons_1_1_ranged_weapon"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_methods_classweapons_1_1_weapon"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classweapons_1_1_weapon')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="classweapons_1_1_weapon.html">weapons::Weapon</a></td></tr>
+<tr class="memitem:a862bd61cf947a91809b423304885cf66 inherit pro_methods_classweapons_1_1_weapon"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_weapon.html#a862bd61cf947a91809b423304885cf66">getHitBoxSize</a> () const override</td></tr>
+<tr class="memdesc:a862bd61cf947a91809b423304885cf66 inherit pro_methods_classweapons_1_1_weapon"><td class="mdescLeft">&#160;</td><td class="mdescRight">half hitbox size  <a href="classweapons_1_1_weapon.html#a862bd61cf947a91809b423304885cf66">More...</a><br /></td></tr>
+<tr class="separator:a862bd61cf947a91809b423304885cf66 inherit pro_methods_classweapons_1_1_weapon"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_methods_classentities_1_1_entity"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classentities_1_1_entity')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td></tr>
+<tr class="memitem:a94d18db8d502d677b6f4215dc1e1d820 inherit pro_methods_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#a94d18db8d502d677b6f4215dc1e1d820">getCollision</a> (const <a class="el" href="classentities_1_1_entity.html">Entity</a> &amp;other)</td></tr>
+<tr class="memdesc:a94d18db8d502d677b6f4215dc1e1d820 inherit pro_methods_classentities_1_1_entity"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate collision with another <a class="el" href="classentities_1_1_entity.html" title="Every object, what can be on the map.">Entity</a>, how much should this entity move, to avoid the collision.  <a href="classentities_1_1_entity.html#a94d18db8d502d677b6f4215dc1e1d820">More...</a><br /></td></tr>
+<tr class="separator:a94d18db8d502d677b6f4215dc1e1d820 inherit pro_methods_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_attribs_classweapons_1_1_ranged_weapon"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_classweapons_1_1_ranged_weapon')"><img src="closed.png" alt="-"/>&#160;Protected Attributes inherited from <a class="el" href="classweapons_1_1_ranged_weapon.html">weapons::RangedWeapon</a></td></tr>
+<tr class="memitem:a299d09c213670d80f7215e2310c92889 inherit pro_attribs_classweapons_1_1_ranged_weapon"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_ranged_weapon.html#a299d09c213670d80f7215e2310c92889">projectileSpeed</a></td></tr>
+<tr class="separator:a299d09c213670d80f7215e2310c92889 inherit pro_attribs_classweapons_1_1_ranged_weapon"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_attribs_classweapons_1_1_weapon"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_classweapons_1_1_weapon')"><img src="closed.png" alt="-"/>&#160;Protected Attributes inherited from <a class="el" href="classweapons_1_1_weapon.html">weapons::Weapon</a></td></tr>
+<tr class="memitem:aa3529d6c0160f61132fc7bb1b9284a02 inherit pro_attribs_classweapons_1_1_weapon"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_weapon.html#aa3529d6c0160f61132fc7bb1b9284a02">cooldown</a></td></tr>
+<tr class="separator:aa3529d6c0160f61132fc7bb1b9284a02 inherit pro_attribs_classweapons_1_1_weapon"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa3d78dae766eee8279326026dbb46f1f inherit pro_attribs_classweapons_1_1_weapon"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_weapon.html#aa3d78dae766eee8279326026dbb46f1f">cooldownTime</a></td></tr>
+<tr class="separator:aa3d78dae766eee8279326026dbb46f1f inherit pro_attribs_classweapons_1_1_weapon"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a27456b08c51df0759ae0155b9f79e336 inherit pro_attribs_classweapons_1_1_weapon"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_weapon.html#a27456b08c51df0759ae0155b9f79e336">baseDamage</a></td></tr>
+<tr class="separator:a27456b08c51df0759ae0155b9f79e336 inherit pro_attribs_classweapons_1_1_weapon"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3dab7574419aed48f2a0f2d54cfcd825 inherit pro_attribs_classweapons_1_1_weapon"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_weapon.html#a3dab7574419aed48f2a0f2d54cfcd825">name</a></td></tr>
+<tr class="separator:a3dab7574419aed48f2a0f2d54cfcd825 inherit pro_attribs_classweapons_1_1_weapon"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aba025076ad5e6fae2f9b9d40f4ef815d inherit pro_attribs_classweapons_1_1_weapon"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_weapon.html#aba025076ad5e6fae2f9b9d40f4ef815d">isPickedUp</a> = false</td></tr>
+<tr class="memdesc:aba025076ad5e6fae2f9b9d40f4ef815d inherit pro_attribs_classweapons_1_1_weapon"><td class="mdescLeft">&#160;</td><td class="mdescRight">Is on the ground, or in an entity's inventory.  <a href="classweapons_1_1_weapon.html#aba025076ad5e6fae2f9b9d40f4ef815d">More...</a><br /></td></tr>
+<tr class="separator:aba025076ad5e6fae2f9b9d40f4ef815d inherit pro_attribs_classweapons_1_1_weapon"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_attribs_classentities_1_1_entity"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_classentities_1_1_entity')"><img src="closed.png" alt="-"/>&#160;Protected Attributes inherited from <a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td></tr>
+<tr class="memitem:a04f9c2febe8d435138a07eb2f48ba96b inherit pro_attribs_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#a04f9c2febe8d435138a07eb2f48ba96b">pos</a></td></tr>
+<tr class="memdesc:a04f9c2febe8d435138a07eb2f48ba96b inherit pro_attribs_classentities_1_1_entity"><td class="mdescLeft">&#160;</td><td class="mdescRight">it's position  <a href="classentities_1_1_entity.html#a04f9c2febe8d435138a07eb2f48ba96b">More...</a><br /></td></tr>
+<tr class="separator:a04f9c2febe8d435138a07eb2f48ba96b inherit pro_attribs_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1453bca3376a185aa54135dd4958b244 inherit pro_attribs_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#a1453bca3376a185aa54135dd4958b244">is_initialized</a></td></tr>
+<tr class="memdesc:a1453bca3376a185aa54135dd4958b244 inherit pro_attribs_classentities_1_1_entity"><td class="mdescLeft">&#160;</td><td class="mdescRight">well, is initialized  <a href="classentities_1_1_entity.html#a1453bca3376a185aa54135dd4958b244">More...</a><br /></td></tr>
+<tr class="separator:a1453bca3376a185aa54135dd4958b244 inherit pro_attribs_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aedac7bb35b729e4a02c582b9f4369ab8 inherit pro_attribs_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#aedac7bb35b729e4a02c582b9f4369ab8">is_alive</a></td></tr>
+<tr class="memdesc:aedac7bb35b729e4a02c582b9f4369ab8 inherit pro_attribs_classentities_1_1_entity"><td class="mdescLeft">&#160;</td><td class="mdescRight">true, if it is alive  <a href="classentities_1_1_entity.html#aedac7bb35b729e4a02c582b9f4369ab8">More...</a><br /></td></tr>
+<tr class="separator:aedac7bb35b729e4a02c582b9f4369ab8 inherit pro_attribs_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>TODO make the bug weapon more buggy. </p>
+
+<p class="definition">Definition at line <a class="el" href="_glitch_gun_8h_source.html#l00026">26</a> of file <a class="el" href="_glitch_gun_8h_source.html">GlitchGun.h</a>.</p>
+</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
+<a id="ac8935765613bfe258bc6985441159702"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ac8935765613bfe258bc6985441159702">&#9670;&nbsp;</a></span>GlitchGun()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">weapons::GlitchGun::GlitchGun </td>
+          <td>(</td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>cooldownTime</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>damage</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>projectileSpeed</em> = <code>10</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const std::string &amp;&#160;</td>
+          <td class="paramname"><em>name</em> = <code>&quot;RangedWeapon&quot;</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>pos</em> = <code>{&#160;0,&#160;0&#160;}</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>energyRegen</em> = <code>10</code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="_glitch_gun_8cpp_source.html#l00012">12</a> of file <a class="el" href="_glitch_gun_8cpp_source.html">GlitchGun.cpp</a>.</p>
+
+</div>
+</div>
+<h2 class="groupheader">Member Function Documentation</h2>
+<a id="a9268757aeb63315254d6a13df8ed0ba4"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a9268757aeb63315254d6a13df8ed0ba4">&#9670;&nbsp;</a></span>spawnProjectile()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">void weapons::GlitchGun::spawnProjectile </td>
+          <td>(</td>
+          <td class="paramtype">std::shared_ptr&lt; <a class="el" href="classentities_1_1_entity.html">Entity</a> &gt; &amp;&#160;</td>
+          <td class="paramname"><em>user</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>pos</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>v0</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>damage</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>It does randomly shoot normal and explosive projectiles. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">user</td><td>the user </td></tr>
+    <tr><td class="paramname">pos</td><td>where is the user </td></tr>
+    <tr><td class="paramname">v0</td><td>the base speed of the projectile </td></tr>
+    <tr><td class="paramname">damage</td><td>how much damage does it have </td></tr>
+  </table>
+  </dd>
+</dl>
+
+<p>Implements <a class="el" href="classweapons_1_1_ranged_weapon.html#a6b6b8265efc6ecf60e36ab261fe6f360">weapons::RangedWeapon</a>.</p>
+
+<p class="definition">Definition at line <a class="el" href="_glitch_gun_8cpp_source.html#l00015">15</a> of file <a class="el" href="_glitch_gun_8cpp_source.html">GlitchGun.cpp</a>.</p>
+
+</div>
+</div>
+<a id="a6687147e8005e96f12806862f73a6cd8"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a6687147e8005e96f12806862f73a6cd8">&#9670;&nbsp;</a></span>update()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">bool weapons::GlitchGun::update </td>
+          <td>(</td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>dTick</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Update the weapon in a Character's inventory. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">dTick</td><td>a.k.a. deltaT, or fElapsedTime </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>is the user can use it </dd></dl>
+
+<p>Reimplemented from <a class="el" href="classweapons_1_1_e_m_gun.html#a0bb30401aa36e2205c011ea0fcf40303">weapons::EMGun</a>.</p>
+
+<p class="definition">Definition at line <a class="el" href="_glitch_gun_8cpp_source.html#l00027">27</a> of file <a class="el" href="_glitch_gun_8cpp_source.html">GlitchGun.cpp</a>.</p>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following files:<ul>
+<li>C:/Users/kosmx/Documents/GitHub/2d-game/<a class="el" href="_glitch_gun_8h_source.html">GlitchGun.h</a></li>
+<li>C:/Users/kosmx/Documents/GitHub/2d-game/<a class="el" href="_glitch_gun_8cpp_source.html">GlitchGun.cpp</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/classweapons_1_1_glitch_gun.png b/doxy/html/classweapons_1_1_glitch_gun.png
new file mode 100644
index 0000000000000000000000000000000000000000..abbb047cbc999eec9067479a3309439e16c05540
Binary files /dev/null and b/doxy/html/classweapons_1_1_glitch_gun.png differ
diff --git a/doxy/html/classweapons_1_1_glitch_texture-members.html b/doxy/html/classweapons_1_1_glitch_texture-members.html
new file mode 100644
index 0000000000000000000000000000000000000000..3b9cf0afad2d82336e213576024f454aea048d79
--- /dev/null
+++ b/doxy/html/classweapons_1_1_glitch_texture-members.html
@@ -0,0 +1,85 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="namespaceweapons.html">weapons</a></li><li class="navelem"><a class="el" href="classweapons_1_1_glitch_texture.html">GlitchTexture</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">weapons::GlitchTexture Member List</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="classweapons_1_1_glitch_texture.html">weapons::GlitchTexture</a>, including all inherited members.</p>
+<table class="directory">
+  <tr class="even"><td class="entry"><a class="el" href="classweapons_1_1_glitch_texture.html#a613747d0865e988631cb0f0213c54640">GlitchTexture</a>(const std::string &amp;name=&quot;FromMacskusz111/bug.png&quot;)</td><td class="entry"><a class="el" href="classweapons_1_1_glitch_texture.html">weapons::GlitchTexture</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classweapons_1_1_glitch_texture.html#a5484c864f917e54fb6041b7d0d33ef42">render</a>(olc::TransformedView &amp;scene, Entity &amp;entity) override</td><td class="entry"><a class="el" href="classweapons_1_1_glitch_texture.html">weapons::GlitchTexture</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classrender_1_1_i_texture.html#a2dcbcad96404d6a0ff64e8053ccde162">~ITexture</a>()=default</td><td class="entry"><a class="el" href="classrender_1_1_i_texture.html">render::ITexture</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+</table></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/classweapons_1_1_glitch_texture.html b/doxy/html/classweapons_1_1_glitch_texture.html
new file mode 100644
index 0000000000000000000000000000000000000000..30430ed1f712581f3a38b617656dce3e37ef1919
--- /dev/null
+++ b/doxy/html/classweapons_1_1_glitch_texture.html
@@ -0,0 +1,197 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: weapons::GlitchTexture Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="namespaceweapons.html">weapons</a></li><li class="navelem"><a class="el" href="classweapons_1_1_glitch_texture.html">GlitchTexture</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="classweapons_1_1_glitch_texture-members.html">List of all members</a>  </div>
+  <div class="headertitle">
+<div class="title">weapons::GlitchTexture Class Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Texture for the bug weapon.  
+ <a href="classweapons_1_1_glitch_texture.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="_glitch_gun_8h_source.html">GlitchGun.h</a>&gt;</code></p>
+<div class="dynheader">
+Inheritance diagram for weapons::GlitchTexture:</div>
+<div class="dyncontent">
+ <div class="center">
+  <img src="classweapons_1_1_glitch_texture.png" usemap="#weapons::GlitchTexture_map" alt=""/>
+  <map id="weapons::GlitchTexture_map" name="weapons::GlitchTexture_map">
+<area href="classrender_1_1_i_texture.html" title="Every texture, what can render an entity." alt="render::ITexture" shape="rect" coords="0,0,142,24"/>
+  </map>
+</div></div>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr class="memitem:a613747d0865e988631cb0f0213c54640"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_glitch_texture.html#a613747d0865e988631cb0f0213c54640">GlitchTexture</a> (const std::string &amp;name=&quot;FromMacskusz111/bug.png&quot;)</td></tr>
+<tr class="memdesc:a613747d0865e988631cb0f0213c54640"><td class="mdescLeft">&#160;</td><td class="mdescRight">Texture from my friend, Macskusz111.  <a href="classweapons_1_1_glitch_texture.html#a613747d0865e988631cb0f0213c54640">More...</a><br /></td></tr>
+<tr class="separator:a613747d0865e988631cb0f0213c54640"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5484c864f917e54fb6041b7d0d33ef42"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_glitch_texture.html#a5484c864f917e54fb6041b7d0d33ef42">render</a> (<a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a> &amp;scene, <a class="el" href="classentities_1_1_entity.html">Entity</a> &amp;entity) override</td></tr>
+<tr class="memdesc:a5484c864f917e54fb6041b7d0d33ef42"><td class="mdescLeft">&#160;</td><td class="mdescRight">Render the sprite, abstract function.  <a href="classweapons_1_1_glitch_texture.html#a5484c864f917e54fb6041b7d0d33ef42">More...</a><br /></td></tr>
+<tr class="separator:a5484c864f917e54fb6041b7d0d33ef42"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pub_methods_classrender_1_1_i_texture"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classrender_1_1_i_texture')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classrender_1_1_i_texture.html">render::ITexture</a></td></tr>
+<tr class="memitem:a2dcbcad96404d6a0ff64e8053ccde162 inherit pub_methods_classrender_1_1_i_texture"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classrender_1_1_i_texture.html#a2dcbcad96404d6a0ff64e8053ccde162">~ITexture</a> ()=default</td></tr>
+<tr class="memdesc:a2dcbcad96404d6a0ff64e8053ccde162 inherit pub_methods_classrender_1_1_i_texture"><td class="mdescLeft">&#160;</td><td class="mdescRight">mostly not needed, but I can never know it  <a href="classrender_1_1_i_texture.html#a2dcbcad96404d6a0ff64e8053ccde162">More...</a><br /></td></tr>
+<tr class="separator:a2dcbcad96404d6a0ff64e8053ccde162 inherit pub_methods_classrender_1_1_i_texture"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Texture for the bug weapon. </p>
+
+<p class="definition">Definition at line <a class="el" href="_glitch_gun_8h_source.html#l00009">9</a> of file <a class="el" href="_glitch_gun_8h_source.html">GlitchGun.h</a>.</p>
+</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
+<a id="a613747d0865e988631cb0f0213c54640"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a613747d0865e988631cb0f0213c54640">&#9670;&nbsp;</a></span>GlitchTexture()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">weapons::GlitchTexture::GlitchTexture </td>
+          <td>(</td>
+          <td class="paramtype">const std::string &amp;&#160;</td>
+          <td class="paramname"><em>name</em> = <code>&quot;FromMacskusz111/bug.png&quot;</code></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Texture from my friend, Macskusz111. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">name</td><td>the file path and name </td></tr>
+  </table>
+  </dd>
+</dl>
+
+<p class="definition">Definition at line <a class="el" href="_glitch_gun_8cpp_source.html#l00036">36</a> of file <a class="el" href="_glitch_gun_8cpp_source.html">GlitchGun.cpp</a>.</p>
+
+</div>
+</div>
+<h2 class="groupheader">Member Function Documentation</h2>
+<a id="a5484c864f917e54fb6041b7d0d33ef42"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a5484c864f917e54fb6041b7d0d33ef42">&#9670;&nbsp;</a></span>render()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">void weapons::GlitchTexture::render </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a> &amp;&#160;</td>
+          <td class="paramname"><em>scene</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="classentities_1_1_entity.html">Entity</a> &amp;&#160;</td>
+          <td class="paramname"><em>entity</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Render the sprite, abstract function. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">scene</td><td>view description </td></tr>
+    <tr><td class="paramname">entity</td><td>entity to render with this texture </td></tr>
+  </table>
+  </dd>
+</dl>
+
+<p>Implements <a class="el" href="classrender_1_1_i_texture.html#aedf64dab92f17e22a807635493196913">render::ITexture</a>.</p>
+
+<p class="definition">Definition at line <a class="el" href="_glitch_gun_8cpp_source.html#l00039">39</a> of file <a class="el" href="_glitch_gun_8cpp_source.html">GlitchGun.cpp</a>.</p>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following files:<ul>
+<li>C:/Users/kosmx/Documents/GitHub/2d-game/<a class="el" href="_glitch_gun_8h_source.html">GlitchGun.h</a></li>
+<li>C:/Users/kosmx/Documents/GitHub/2d-game/<a class="el" href="_glitch_gun_8cpp_source.html">GlitchGun.cpp</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/classweapons_1_1_glitch_texture.png b/doxy/html/classweapons_1_1_glitch_texture.png
new file mode 100644
index 0000000000000000000000000000000000000000..7825875c46f98595b0a40594fe9b1d9b637a4c53
Binary files /dev/null and b/doxy/html/classweapons_1_1_glitch_texture.png differ
diff --git a/doxy/html/classweapons_1_1_melee_weapon-members.html b/doxy/html/classweapons_1_1_melee_weapon-members.html
new file mode 100644
index 0000000000000000000000000000000000000000..b1a0a218e367d4910bcd147a45c9ecd112c78dad
--- /dev/null
+++ b/doxy/html/classweapons_1_1_melee_weapon-members.html
@@ -0,0 +1,118 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="namespaceweapons.html">weapons</a></li><li class="navelem"><a class="el" href="classweapons_1_1_melee_weapon.html">MeleeWeapon</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">weapons::MeleeWeapon Member List</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="classweapons_1_1_melee_weapon.html">weapons::MeleeWeapon</a>, including all inherited members.</p>
+<table class="directory">
+  <tr class="even"><td class="entry"><a class="el" href="classweapons_1_1_weapon.html#a27456b08c51df0759ae0155b9f79e336">baseDamage</a></td><td class="entry"><a class="el" href="classweapons_1_1_weapon.html">weapons::Weapon</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classweapons_1_1_weapon.html#aaf97827d27191b7b437ef1be96d6ac2c">canBeRemoved</a>() const override</td><td class="entry"><a class="el" href="classweapons_1_1_weapon.html">weapons::Weapon</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classweapons_1_1_weapon.html#aa3529d6c0160f61132fc7bb1b9284a02">cooldown</a></td><td class="entry"><a class="el" href="classweapons_1_1_weapon.html">weapons::Weapon</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classweapons_1_1_weapon.html#aa3d78dae766eee8279326026dbb46f1f">cooldownTime</a></td><td class="entry"><a class="el" href="classweapons_1_1_weapon.html">weapons::Weapon</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classweapons_1_1_weapon.html#a397c372ffe2838f7c9c1ce67c06e55a9">damage</a>(int damage, Entity &amp;attacker) override</td><td class="entry"><a class="el" href="classweapons_1_1_weapon.html">weapons::Weapon</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classweapons_1_1_melee_weapon.html#a6938e2705c6353b4b2782e8a4186de17">damageEntity</a>(std::shared_ptr&lt; Entity &gt; user, std::shared_ptr&lt; Entity &gt; &amp;victim)</td><td class="entry"><a class="el" href="classweapons_1_1_melee_weapon.html">weapons::MeleeWeapon</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classweapons_1_1_melee_weapon.html#a59a5b959539d2c71605c1b6fbec3111b">damageIf</a>(std::shared_ptr&lt; Entity &gt; &amp;user, std::function&lt; bool(std::shared_ptr&lt; Entity &gt; self, std::shared_ptr&lt; Entity &gt; other)&gt; predicate)</td><td class="entry"><a class="el" href="classweapons_1_1_melee_weapon.html">weapons::MeleeWeapon</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classentities_1_1_entity.html#a539ddef34b718b6068df421f316f4a6d">Entity</a>(const olc::vf2d &amp;pos)</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">explicit</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classentities_1_1_entity.html#a94d18db8d502d677b6f4215dc1e1d820">getCollision</a>(const Entity &amp;other)</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classweapons_1_1_weapon.html#a9626ba57d509b1ee0fbe7f900d5181c6">getCooldownBar</a>()</td><td class="entry"><a class="el" href="classweapons_1_1_weapon.html">weapons::Weapon</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classweapons_1_1_melee_weapon.html#a2636c0b628f8fa52d269bb2dab0b21bd">getDamage</a>() const</td><td class="entry"><a class="el" href="classweapons_1_1_melee_weapon.html">weapons::MeleeWeapon</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classweapons_1_1_weapon.html#a862bd61cf947a91809b423304885cf66">getHitBoxSize</a>() const override</td><td class="entry"><a class="el" href="classweapons_1_1_weapon.html">weapons::Weapon</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classweapons_1_1_melee_weapon.html#ac6a6b662df60c1927531fddf9a93ebaa">getHitOffset</a>() const</td><td class="entry"><a class="el" href="classweapons_1_1_melee_weapon.html">weapons::MeleeWeapon</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classentities_1_1_entity.html#a8c4b0c1eb69a673619e4c8943ef34f86">getName</a>() const</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classentities_1_1_entity.html#a799a692b988248dd23d207b95e7fe2b7">getPos</a>() const</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classweapons_1_1_melee_weapon.html#af14b624f27592421fc117c4fa81aba1b">getPredicator</a>(const olc::vf2d &amp;direction)=0</td><td class="entry"><a class="el" href="classweapons_1_1_melee_weapon.html">weapons::MeleeWeapon</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">pure virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classweapons_1_1_weapon.html#a3f84544c15d6220252c6175fdfe5c61d">getSecondaryBar</a>()</td><td class="entry"><a class="el" href="classweapons_1_1_weapon.html">weapons::Weapon</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classentities_1_1_entity.html#ac60e9beb5a45fc65120e9779e680c04b">getSize</a>() const</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classentities_1_1_entity.html#afd80ddceccb36b87d0d80dcc7f88fc3b">init</a>(GameClient &amp;client)</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classentities_1_1_entity.html#aedac7bb35b729e4a02c582b9f4369ab8">is_alive</a></td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classentities_1_1_entity.html#a1453bca3376a185aa54135dd4958b244">is_initialized</a></td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classentities_1_1_entity.html#ab0ee90a84f2163b600e603f24cff046f">isAlive</a>() const</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classentities_1_1_entity.html#ab010066d52a02c63908f70ff6ef7d873">isInitialized</a>()</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classweapons_1_1_weapon.html#aba025076ad5e6fae2f9b9d40f4ef815d">isPickedUp</a></td><td class="entry"><a class="el" href="classweapons_1_1_weapon.html">weapons::Weapon</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classweapons_1_1_melee_weapon.html#a719614055440a5e7cfaf943dab856bb1">MeleeWeapon</a>(render::ITexture &amp;texture, const std::string &amp;name, float cooldownTime, int damage=10, const olc::vf2d &amp;pos={ 0, 0 })</td><td class="entry"><a class="el" href="classweapons_1_1_melee_weapon.html">weapons::MeleeWeapon</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classweapons_1_1_weapon.html#a3dab7574419aed48f2a0f2d54cfcd825">name</a></td><td class="entry"><a class="el" href="classweapons_1_1_weapon.html">weapons::Weapon</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classentities_1_1_entity.html#ad0a172ff99a7e73aaaee3658d5e3ae08">operator WallEntity *</a>()</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classentities_1_1_entity.html#a04f9c2febe8d435138a07eb2f48ba96b">pos</a></td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classentities_1_1_entity.html#abcc4364b5b7250f0364f3550a618b3ab">render</a>(olc::TransformedView &amp;scene)</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classweapons_1_1_weapon.html#ace9c44751879af7382585c3338d4bc47">setPickUp</a>(bool bl)</td><td class="entry"><a class="el" href="classweapons_1_1_weapon.html">weapons::Weapon</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classweapons_1_1_weapon.html#a34c39bfa9cdb2d7483bc340300e8a2d9">setPos</a>(const olc::vf2d &amp;newPos)</td><td class="entry"><a class="el" href="classweapons_1_1_weapon.html">weapons::Weapon</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classweapons_1_1_weapon.html#a92ae1db47ca866d828f8b09c6de5a3f6">tick</a>(GameClient &amp;client, float deltaT, std::shared_ptr&lt; Entity &gt; &amp;shared_this) override</td><td class="entry"><a class="el" href="classweapons_1_1_weapon.html">weapons::Weapon</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classweapons_1_1_weapon.html#a1cbf391f196bd151f3e3f1ae1e316088">update</a>(float dTick)</td><td class="entry"><a class="el" href="classweapons_1_1_weapon.html">weapons::Weapon</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classweapons_1_1_melee_weapon.html#ac1b9a6718cbf78cea0b9e5e0b8dcc64e">use</a>(std::shared_ptr&lt; Entity &gt; user, const olc::vf2d &amp;direction) override</td><td class="entry"><a class="el" href="classweapons_1_1_melee_weapon.html">weapons::MeleeWeapon</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classweapons_1_1_weapon.html#a28f7b716212ae6b4606cff82501e00a2">Weapon</a>(render::ITexture &amp;texture, float cooldownTime, int damage=10, const std::string &amp;name=&quot;Weapon&quot;, const olc::vf2d &amp;pos={ 0, 0 })</td><td class="entry"><a class="el" href="classweapons_1_1_weapon.html">weapons::Weapon</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classentities_1_1_entity.html#a64d968c160dee2fdfca68aff2e49946b">~Entity</a>()=default</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+</table></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/classweapons_1_1_melee_weapon.html b/doxy/html/classweapons_1_1_melee_weapon.html
new file mode 100644
index 0000000000000000000000000000000000000000..baa05f05ba75dc1d91bf60c19790770e0681e677
--- /dev/null
+++ b/doxy/html/classweapons_1_1_melee_weapon.html
@@ -0,0 +1,504 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: weapons::MeleeWeapon Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="namespaceweapons.html">weapons</a></li><li class="navelem"><a class="el" href="classweapons_1_1_melee_weapon.html">MeleeWeapon</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#nested-classes">Classes</a> &#124;
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="#pro-methods">Protected Member Functions</a> &#124;
+<a href="classweapons_1_1_melee_weapon-members.html">List of all members</a>  </div>
+  <div class="headertitle">
+<div class="title">weapons::MeleeWeapon Class Reference<span class="mlabels"><span class="mlabel">abstract</span></span></div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>A melee weapon, like a spoon.  
+ <a href="classweapons_1_1_melee_weapon.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="_melee_weapon_8h_source.html">MeleeWeapon.h</a>&gt;</code></p>
+<div class="dynheader">
+Inheritance diagram for weapons::MeleeWeapon:</div>
+<div class="dyncontent">
+ <div class="center">
+  <img src="classweapons_1_1_melee_weapon.png" usemap="#weapons::MeleeWeapon_map" alt=""/>
+  <map id="weapons::MeleeWeapon_map" name="weapons::MeleeWeapon_map">
+<area href="classweapons_1_1_weapon.html" title="You can throw it to the ground, this is why it&#39;s an entity. But it will be possible to use it...." alt="weapons::Weapon" shape="rect" coords="0,56,190,80"/>
+<area href="classentities_1_1_entity.html" title="Every object, what can be on the map." alt="entities::Entity" shape="rect" coords="0,0,190,24"/>
+<area href="classweapons_1_1_typical_melee_weapon.html" title="A typical melee weapon. I want to do not typical melee weapons too." alt="weapons::TypicalMeleeWeapon" shape="rect" coords="0,168,190,192"/>
+  </map>
+</div></div>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_melee_weapon_1_1predicate_distance.html">predicateDistance</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Functor to predicate entity distance. You can also use lambda, if you want.  <a href="classweapons_1_1_melee_weapon_1_1predicate_distance.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr class="memitem:a719614055440a5e7cfaf943dab856bb1"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_melee_weapon.html#a719614055440a5e7cfaf943dab856bb1">MeleeWeapon</a> (<a class="el" href="classrender_1_1_i_texture.html">render::ITexture</a> &amp;texture, const std::string &amp;<a class="el" href="classweapons_1_1_weapon.html#a3dab7574419aed48f2a0f2d54cfcd825">name</a>, float <a class="el" href="classweapons_1_1_weapon.html#aa3d78dae766eee8279326026dbb46f1f">cooldownTime</a>, int <a class="el" href="classweapons_1_1_weapon.html#a397c372ffe2838f7c9c1ce67c06e55a9">damage</a>=10, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;<a class="el" href="classentities_1_1_entity.html#a04f9c2febe8d435138a07eb2f48ba96b">pos</a>={ 0, 0 })</td></tr>
+<tr class="separator:a719614055440a5e7cfaf943dab856bb1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac1b9a6718cbf78cea0b9e5e0b8dcc64e"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_melee_weapon.html#ac1b9a6718cbf78cea0b9e5e0b8dcc64e">use</a> (std::shared_ptr&lt; <a class="el" href="classentities_1_1_entity.html">Entity</a> &gt; user, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;direction) override</td></tr>
+<tr class="separator:ac1b9a6718cbf78cea0b9e5e0b8dcc64e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pub_methods_classweapons_1_1_weapon"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classweapons_1_1_weapon')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classweapons_1_1_weapon.html">weapons::Weapon</a></td></tr>
+<tr class="memitem:a28f7b716212ae6b4606cff82501e00a2 inherit pub_methods_classweapons_1_1_weapon"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_weapon.html#a28f7b716212ae6b4606cff82501e00a2">Weapon</a> (<a class="el" href="classrender_1_1_i_texture.html">render::ITexture</a> &amp;texture, float <a class="el" href="classweapons_1_1_weapon.html#aa3d78dae766eee8279326026dbb46f1f">cooldownTime</a>, int <a class="el" href="classweapons_1_1_weapon.html#a397c372ffe2838f7c9c1ce67c06e55a9">damage</a>=10, const std::string &amp;<a class="el" href="classweapons_1_1_weapon.html#a3dab7574419aed48f2a0f2d54cfcd825">name</a>=&quot;Weapon&quot;, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;<a class="el" href="classentities_1_1_entity.html#a04f9c2febe8d435138a07eb2f48ba96b">pos</a>={ 0, 0 })</td></tr>
+<tr class="separator:a28f7b716212ae6b4606cff82501e00a2 inherit pub_methods_classweapons_1_1_weapon"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a92ae1db47ca866d828f8b09c6de5a3f6 inherit pub_methods_classweapons_1_1_weapon"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_weapon.html#a92ae1db47ca866d828f8b09c6de5a3f6">tick</a> (<a class="el" href="class_game_client.html">GameClient</a> &amp;client, float deltaT, std::shared_ptr&lt; <a class="el" href="classentities_1_1_entity.html">Entity</a> &gt; &amp;shared_this) override</td></tr>
+<tr class="memdesc:a92ae1db47ca866d828f8b09c6de5a3f6 inherit pub_methods_classweapons_1_1_weapon"><td class="mdescLeft">&#160;</td><td class="mdescRight">tick, if on the ground. It does charge energy, or whatever.  <a href="classweapons_1_1_weapon.html#a92ae1db47ca866d828f8b09c6de5a3f6">More...</a><br /></td></tr>
+<tr class="separator:a92ae1db47ca866d828f8b09c6de5a3f6 inherit pub_methods_classweapons_1_1_weapon"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1cbf391f196bd151f3e3f1ae1e316088 inherit pub_methods_classweapons_1_1_weapon"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_weapon.html#a1cbf391f196bd151f3e3f1ae1e316088">update</a> (float dTick)</td></tr>
+<tr class="memdesc:a1cbf391f196bd151f3e3f1ae1e316088 inherit pub_methods_classweapons_1_1_weapon"><td class="mdescLeft">&#160;</td><td class="mdescRight">Update the weapon in a Character's inventory.  <a href="classweapons_1_1_weapon.html#a1cbf391f196bd151f3e3f1ae1e316088">More...</a><br /></td></tr>
+<tr class="separator:a1cbf391f196bd151f3e3f1ae1e316088 inherit pub_methods_classweapons_1_1_weapon"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9626ba57d509b1ee0fbe7f900d5181c6 inherit pub_methods_classweapons_1_1_weapon"><td class="memItemLeft" align="right" valign="top">virtual float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_weapon.html#a9626ba57d509b1ee0fbe7f900d5181c6">getCooldownBar</a> ()</td></tr>
+<tr class="memdesc:a9626ba57d509b1ee0fbe7f900d5181c6 inherit pub_methods_classweapons_1_1_weapon"><td class="mdescLeft">&#160;</td><td class="mdescRight">0 - 1 cooldown, 1 is ready to use, more than one makes sense, like 2 charges  <a href="classweapons_1_1_weapon.html#a9626ba57d509b1ee0fbe7f900d5181c6">More...</a><br /></td></tr>
+<tr class="separator:a9626ba57d509b1ee0fbe7f900d5181c6 inherit pub_methods_classweapons_1_1_weapon"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aaf97827d27191b7b437ef1be96d6ac2c inherit pub_methods_classweapons_1_1_weapon"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_weapon.html#aaf97827d27191b7b437ef1be96d6ac2c">canBeRemoved</a> () const override</td></tr>
+<tr class="memdesc:aaf97827d27191b7b437ef1be96d6ac2c inherit pub_methods_classweapons_1_1_weapon"><td class="mdescLeft">&#160;</td><td class="mdescRight">Can be removed form the ground.  <a href="classweapons_1_1_weapon.html#aaf97827d27191b7b437ef1be96d6ac2c">More...</a><br /></td></tr>
+<tr class="separator:aaf97827d27191b7b437ef1be96d6ac2c inherit pub_methods_classweapons_1_1_weapon"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ace9c44751879af7382585c3338d4bc47 inherit pub_methods_classweapons_1_1_weapon"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_weapon.html#ace9c44751879af7382585c3338d4bc47">setPickUp</a> (bool bl)</td></tr>
+<tr class="memdesc:ace9c44751879af7382585c3338d4bc47 inherit pub_methods_classweapons_1_1_weapon"><td class="mdescLeft">&#160;</td><td class="mdescRight">Mutator to isPickedUp.  <a href="classweapons_1_1_weapon.html#ace9c44751879af7382585c3338d4bc47">More...</a><br /></td></tr>
+<tr class="separator:ace9c44751879af7382585c3338d4bc47 inherit pub_methods_classweapons_1_1_weapon"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3f84544c15d6220252c6175fdfe5c61d inherit pub_methods_classweapons_1_1_weapon"><td class="memItemLeft" align="right" valign="top">virtual float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_weapon.html#a3f84544c15d6220252c6175fdfe5c61d">getSecondaryBar</a> ()</td></tr>
+<tr class="memdesc:a3f84544c15d6220252c6175fdfe5c61d inherit pub_methods_classweapons_1_1_weapon"><td class="mdescLeft">&#160;</td><td class="mdescRight">Secondary charge bar. for some purpose.  <a href="classweapons_1_1_weapon.html#a3f84544c15d6220252c6175fdfe5c61d">More...</a><br /></td></tr>
+<tr class="separator:a3f84544c15d6220252c6175fdfe5c61d inherit pub_methods_classweapons_1_1_weapon"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a34c39bfa9cdb2d7483bc340300e8a2d9 inherit pub_methods_classweapons_1_1_weapon"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_weapon.html#a34c39bfa9cdb2d7483bc340300e8a2d9">setPos</a> (const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;newPos)</td></tr>
+<tr class="separator:a34c39bfa9cdb2d7483bc340300e8a2d9 inherit pub_methods_classweapons_1_1_weapon"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a397c372ffe2838f7c9c1ce67c06e55a9 inherit pub_methods_classweapons_1_1_weapon"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_weapon.html#a397c372ffe2838f7c9c1ce67c06e55a9">damage</a> (int damage, <a class="el" href="classentities_1_1_entity.html">Entity</a> &amp;attacker) override</td></tr>
+<tr class="memdesc:a397c372ffe2838f7c9c1ce67c06e55a9 inherit pub_methods_classweapons_1_1_weapon"><td class="mdescLeft">&#160;</td><td class="mdescRight">something damage this  <a href="classweapons_1_1_weapon.html#a397c372ffe2838f7c9c1ce67c06e55a9">More...</a><br /></td></tr>
+<tr class="separator:a397c372ffe2838f7c9c1ce67c06e55a9 inherit pub_methods_classweapons_1_1_weapon"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pub_methods_classentities_1_1_entity"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classentities_1_1_entity')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td></tr>
+<tr class="memitem:a539ddef34b718b6068df421f316f4a6d inherit pub_methods_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#a539ddef34b718b6068df421f316f4a6d">Entity</a> (const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;<a class="el" href="classentities_1_1_entity.html#a04f9c2febe8d435138a07eb2f48ba96b">pos</a>)</td></tr>
+<tr class="separator:a539ddef34b718b6068df421f316f4a6d inherit pub_methods_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afd80ddceccb36b87d0d80dcc7f88fc3b inherit pub_methods_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#afd80ddceccb36b87d0d80dcc7f88fc3b">init</a> (<a class="el" href="class_game_client.html">GameClient</a> &amp;client)</td></tr>
+<tr class="separator:afd80ddceccb36b87d0d80dcc7f88fc3b inherit pub_methods_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab010066d52a02c63908f70ff6ef7d873 inherit pub_methods_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#ab010066d52a02c63908f70ff6ef7d873">isInitialized</a> ()</td></tr>
+<tr class="separator:ab010066d52a02c63908f70ff6ef7d873 inherit pub_methods_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a799a692b988248dd23d207b95e7fe2b7 inherit pub_methods_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#a799a692b988248dd23d207b95e7fe2b7">getPos</a> () const</td></tr>
+<tr class="separator:a799a692b988248dd23d207b95e7fe2b7 inherit pub_methods_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac60e9beb5a45fc65120e9779e680c04b inherit pub_methods_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#ac60e9beb5a45fc65120e9779e680c04b">getSize</a> () const</td></tr>
+<tr class="memdesc:ac60e9beb5a45fc65120e9779e680c04b inherit pub_methods_classentities_1_1_entity"><td class="mdescLeft">&#160;</td><td class="mdescRight">get it's size to render  <a href="classentities_1_1_entity.html#ac60e9beb5a45fc65120e9779e680c04b">More...</a><br /></td></tr>
+<tr class="separator:ac60e9beb5a45fc65120e9779e680c04b inherit pub_methods_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab0ee90a84f2163b600e603f24cff046f inherit pub_methods_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#ab0ee90a84f2163b600e603f24cff046f">isAlive</a> () const</td></tr>
+<tr class="separator:ab0ee90a84f2163b600e603f24cff046f inherit pub_methods_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abcc4364b5b7250f0364f3550a618b3ab inherit pub_methods_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#abcc4364b5b7250f0364f3550a618b3ab">render</a> (<a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a> &amp;scene)</td></tr>
+<tr class="memdesc:abcc4364b5b7250f0364f3550a618b3ab inherit pub_methods_classentities_1_1_entity"><td class="mdescLeft">&#160;</td><td class="mdescRight">render  <a href="classentities_1_1_entity.html#abcc4364b5b7250f0364f3550a618b3ab">More...</a><br /></td></tr>
+<tr class="separator:abcc4364b5b7250f0364f3550a618b3ab inherit pub_methods_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8c4b0c1eb69a673619e4c8943ef34f86 inherit pub_methods_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">virtual std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#a8c4b0c1eb69a673619e4c8943ef34f86">getName</a> () const</td></tr>
+<tr class="separator:a8c4b0c1eb69a673619e4c8943ef34f86 inherit pub_methods_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a64d968c160dee2fdfca68aff2e49946b inherit pub_methods_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#a64d968c160dee2fdfca68aff2e49946b">~Entity</a> ()=default</td></tr>
+<tr class="separator:a64d968c160dee2fdfca68aff2e49946b inherit pub_methods_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad0a172ff99a7e73aaaee3658d5e3ae08 inherit pub_methods_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#ad0a172ff99a7e73aaaee3658d5e3ae08">operator WallEntity *</a> ()</td></tr>
+<tr class="separator:ad0a172ff99a7e73aaaee3658d5e3ae08 inherit pub_methods_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
+Protected Member Functions</h2></td></tr>
+<tr class="memitem:a2636c0b628f8fa52d269bb2dab0b21bd"><td class="memItemLeft" align="right" valign="top">virtual int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_melee_weapon.html#a2636c0b628f8fa52d269bb2dab0b21bd">getDamage</a> () const</td></tr>
+<tr class="separator:a2636c0b628f8fa52d269bb2dab0b21bd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6938e2705c6353b4b2782e8a4186de17"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_melee_weapon.html#a6938e2705c6353b4b2782e8a4186de17">damageEntity</a> (std::shared_ptr&lt; <a class="el" href="classentities_1_1_entity.html">Entity</a> &gt; user, std::shared_ptr&lt; <a class="el" href="classentities_1_1_entity.html">Entity</a> &gt; &amp;victim)</td></tr>
+<tr class="memdesc:a6938e2705c6353b4b2782e8a4186de17"><td class="mdescLeft">&#160;</td><td class="mdescRight">Damage the victim.  <a href="classweapons_1_1_melee_weapon.html#a6938e2705c6353b4b2782e8a4186de17">More...</a><br /></td></tr>
+<tr class="separator:a6938e2705c6353b4b2782e8a4186de17"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a59a5b959539d2c71605c1b6fbec3111b"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_melee_weapon.html#a59a5b959539d2c71605c1b6fbec3111b">damageIf</a> (std::shared_ptr&lt; <a class="el" href="classentities_1_1_entity.html">Entity</a> &gt; &amp;user, std::function&lt; bool(std::shared_ptr&lt; <a class="el" href="classentities_1_1_entity.html">Entity</a> &gt; self, std::shared_ptr&lt; <a class="el" href="classentities_1_1_entity.html">Entity</a> &gt; other)&gt; predicate)</td></tr>
+<tr class="memdesc:a59a5b959539d2c71605c1b6fbec3111b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Tries to damage every entity in a range.  <a href="classweapons_1_1_melee_weapon.html#a59a5b959539d2c71605c1b6fbec3111b">More...</a><br /></td></tr>
+<tr class="separator:a59a5b959539d2c71605c1b6fbec3111b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af14b624f27592421fc117c4fa81aba1b"><td class="memItemLeft" align="right" valign="top">virtual std::function&lt; bool(std::shared_ptr&lt; <a class="el" href="classentities_1_1_entity.html">Entity</a> &gt;, std::shared_ptr&lt; <a class="el" href="classentities_1_1_entity.html">Entity</a> &gt;)&gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_melee_weapon.html#af14b624f27592421fc117c4fa81aba1b">getPredicator</a> (const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;direction)=0</td></tr>
+<tr class="memdesc:af14b624f27592421fc117c4fa81aba1b"><td class="mdescLeft">&#160;</td><td class="mdescRight">The predicate function getter for the damageIf.  <a href="classweapons_1_1_melee_weapon.html#af14b624f27592421fc117c4fa81aba1b">More...</a><br /></td></tr>
+<tr class="separator:af14b624f27592421fc117c4fa81aba1b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac6a6b662df60c1927531fddf9a93ebaa"><td class="memItemLeft" align="right" valign="top">virtual float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_melee_weapon.html#ac6a6b662df60c1927531fddf9a93ebaa">getHitOffset</a> () const</td></tr>
+<tr class="memdesc:ac6a6b662df60c1927531fddf9a93ebaa"><td class="mdescLeft">&#160;</td><td class="mdescRight">the hit's center distance from the user  <a href="classweapons_1_1_melee_weapon.html#ac6a6b662df60c1927531fddf9a93ebaa">More...</a><br /></td></tr>
+<tr class="separator:ac6a6b662df60c1927531fddf9a93ebaa"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_methods_classweapons_1_1_weapon"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classweapons_1_1_weapon')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="classweapons_1_1_weapon.html">weapons::Weapon</a></td></tr>
+<tr class="memitem:a862bd61cf947a91809b423304885cf66 inherit pro_methods_classweapons_1_1_weapon"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_weapon.html#a862bd61cf947a91809b423304885cf66">getHitBoxSize</a> () const override</td></tr>
+<tr class="memdesc:a862bd61cf947a91809b423304885cf66 inherit pro_methods_classweapons_1_1_weapon"><td class="mdescLeft">&#160;</td><td class="mdescRight">half hitbox size  <a href="classweapons_1_1_weapon.html#a862bd61cf947a91809b423304885cf66">More...</a><br /></td></tr>
+<tr class="separator:a862bd61cf947a91809b423304885cf66 inherit pro_methods_classweapons_1_1_weapon"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_methods_classentities_1_1_entity"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classentities_1_1_entity')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td></tr>
+<tr class="memitem:a94d18db8d502d677b6f4215dc1e1d820 inherit pro_methods_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#a94d18db8d502d677b6f4215dc1e1d820">getCollision</a> (const <a class="el" href="classentities_1_1_entity.html">Entity</a> &amp;other)</td></tr>
+<tr class="memdesc:a94d18db8d502d677b6f4215dc1e1d820 inherit pro_methods_classentities_1_1_entity"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate collision with another <a class="el" href="classentities_1_1_entity.html" title="Every object, what can be on the map.">Entity</a>, how much should this entity move, to avoid the collision.  <a href="classentities_1_1_entity.html#a94d18db8d502d677b6f4215dc1e1d820">More...</a><br /></td></tr>
+<tr class="separator:a94d18db8d502d677b6f4215dc1e1d820 inherit pro_methods_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
+Additional Inherited Members</h2></td></tr>
+<tr class="inherit_header pro_attribs_classweapons_1_1_weapon"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_classweapons_1_1_weapon')"><img src="closed.png" alt="-"/>&#160;Protected Attributes inherited from <a class="el" href="classweapons_1_1_weapon.html">weapons::Weapon</a></td></tr>
+<tr class="memitem:aa3529d6c0160f61132fc7bb1b9284a02 inherit pro_attribs_classweapons_1_1_weapon"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_weapon.html#aa3529d6c0160f61132fc7bb1b9284a02">cooldown</a></td></tr>
+<tr class="separator:aa3529d6c0160f61132fc7bb1b9284a02 inherit pro_attribs_classweapons_1_1_weapon"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa3d78dae766eee8279326026dbb46f1f inherit pro_attribs_classweapons_1_1_weapon"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_weapon.html#aa3d78dae766eee8279326026dbb46f1f">cooldownTime</a></td></tr>
+<tr class="separator:aa3d78dae766eee8279326026dbb46f1f inherit pro_attribs_classweapons_1_1_weapon"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a27456b08c51df0759ae0155b9f79e336 inherit pro_attribs_classweapons_1_1_weapon"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_weapon.html#a27456b08c51df0759ae0155b9f79e336">baseDamage</a></td></tr>
+<tr class="separator:a27456b08c51df0759ae0155b9f79e336 inherit pro_attribs_classweapons_1_1_weapon"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3dab7574419aed48f2a0f2d54cfcd825 inherit pro_attribs_classweapons_1_1_weapon"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_weapon.html#a3dab7574419aed48f2a0f2d54cfcd825">name</a></td></tr>
+<tr class="separator:a3dab7574419aed48f2a0f2d54cfcd825 inherit pro_attribs_classweapons_1_1_weapon"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aba025076ad5e6fae2f9b9d40f4ef815d inherit pro_attribs_classweapons_1_1_weapon"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_weapon.html#aba025076ad5e6fae2f9b9d40f4ef815d">isPickedUp</a> = false</td></tr>
+<tr class="memdesc:aba025076ad5e6fae2f9b9d40f4ef815d inherit pro_attribs_classweapons_1_1_weapon"><td class="mdescLeft">&#160;</td><td class="mdescRight">Is on the ground, or in an entity's inventory.  <a href="classweapons_1_1_weapon.html#aba025076ad5e6fae2f9b9d40f4ef815d">More...</a><br /></td></tr>
+<tr class="separator:aba025076ad5e6fae2f9b9d40f4ef815d inherit pro_attribs_classweapons_1_1_weapon"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_attribs_classentities_1_1_entity"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_classentities_1_1_entity')"><img src="closed.png" alt="-"/>&#160;Protected Attributes inherited from <a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td></tr>
+<tr class="memitem:a04f9c2febe8d435138a07eb2f48ba96b inherit pro_attribs_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#a04f9c2febe8d435138a07eb2f48ba96b">pos</a></td></tr>
+<tr class="memdesc:a04f9c2febe8d435138a07eb2f48ba96b inherit pro_attribs_classentities_1_1_entity"><td class="mdescLeft">&#160;</td><td class="mdescRight">it's position  <a href="classentities_1_1_entity.html#a04f9c2febe8d435138a07eb2f48ba96b">More...</a><br /></td></tr>
+<tr class="separator:a04f9c2febe8d435138a07eb2f48ba96b inherit pro_attribs_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1453bca3376a185aa54135dd4958b244 inherit pro_attribs_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#a1453bca3376a185aa54135dd4958b244">is_initialized</a></td></tr>
+<tr class="memdesc:a1453bca3376a185aa54135dd4958b244 inherit pro_attribs_classentities_1_1_entity"><td class="mdescLeft">&#160;</td><td class="mdescRight">well, is initialized  <a href="classentities_1_1_entity.html#a1453bca3376a185aa54135dd4958b244">More...</a><br /></td></tr>
+<tr class="separator:a1453bca3376a185aa54135dd4958b244 inherit pro_attribs_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aedac7bb35b729e4a02c582b9f4369ab8 inherit pro_attribs_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#aedac7bb35b729e4a02c582b9f4369ab8">is_alive</a></td></tr>
+<tr class="memdesc:aedac7bb35b729e4a02c582b9f4369ab8 inherit pro_attribs_classentities_1_1_entity"><td class="mdescLeft">&#160;</td><td class="mdescRight">true, if it is alive  <a href="classentities_1_1_entity.html#aedac7bb35b729e4a02c582b9f4369ab8">More...</a><br /></td></tr>
+<tr class="separator:aedac7bb35b729e4a02c582b9f4369ab8 inherit pro_attribs_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>A melee weapon, like a spoon. </p>
+
+<p class="definition">Definition at line <a class="el" href="_melee_weapon_8h_source.html#l00009">9</a> of file <a class="el" href="_melee_weapon_8h_source.html">MeleeWeapon.h</a>.</p>
+</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
+<a id="a719614055440a5e7cfaf943dab856bb1"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a719614055440a5e7cfaf943dab856bb1">&#9670;&nbsp;</a></span>MeleeWeapon()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">weapons::MeleeWeapon::MeleeWeapon </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="classrender_1_1_i_texture.html">render::ITexture</a> &amp;&#160;</td>
+          <td class="paramname"><em>texture</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const std::string &amp;&#160;</td>
+          <td class="paramname"><em>name</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>cooldownTime</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>damage</em> = <code>10</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>pos</em> = <code>{&#160;0,&#160;0&#160;}</code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="_melee_weapon_8cpp_source.html#l00027">27</a> of file <a class="el" href="_melee_weapon_8cpp_source.html">MeleeWeapon.cpp</a>.</p>
+
+</div>
+</div>
+<h2 class="groupheader">Member Function Documentation</h2>
+<a id="a6938e2705c6353b4b2782e8a4186de17"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a6938e2705c6353b4b2782e8a4186de17">&#9670;&nbsp;</a></span>damageEntity()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">bool weapons::MeleeWeapon::damageEntity </td>
+          <td>(</td>
+          <td class="paramtype">std::shared_ptr&lt; <a class="el" href="classentities_1_1_entity.html">Entity</a> &gt;&#160;</td>
+          <td class="paramname"><em>user</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">std::shared_ptr&lt; <a class="el" href="classentities_1_1_entity.html">Entity</a> &gt; &amp;&#160;</td>
+          <td class="paramname"><em>victim</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">virtual</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Damage the victim. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">user</td><td>user </td></tr>
+    <tr><td class="paramname">victim</td><td>victim </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>true, if it could damage. false for a wall... </dd></dl>
+
+<p class="definition">Definition at line <a class="el" href="_melee_weapon_8cpp_source.html#l00012">12</a> of file <a class="el" href="_melee_weapon_8cpp_source.html">MeleeWeapon.cpp</a>.</p>
+
+</div>
+</div>
+<a id="a59a5b959539d2c71605c1b6fbec3111b"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a59a5b959539d2c71605c1b6fbec3111b">&#9670;&nbsp;</a></span>damageIf()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">bool weapons::MeleeWeapon::damageIf </td>
+          <td>(</td>
+          <td class="paramtype">std::shared_ptr&lt; <a class="el" href="classentities_1_1_entity.html">Entity</a> &gt; &amp;&#160;</td>
+          <td class="paramname"><em>user</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">std::function&lt; bool(std::shared_ptr&lt; <a class="el" href="classentities_1_1_entity.html">Entity</a> &gt; self, std::shared_ptr&lt; <a class="el" href="classentities_1_1_entity.html">Entity</a> &gt; other)&gt;&#160;</td>
+          <td class="paramname"><em>predicate</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">virtual</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Tries to damage every entity in a range. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">user</td><td>user </td></tr>
+    <tr><td class="paramname">predicate</td><td>range selector predicate </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>true, if it could damage at least one entity </dd></dl>
+
+<p class="definition">Definition at line <a class="el" href="_melee_weapon_8cpp_source.html#l00016">16</a> of file <a class="el" href="_melee_weapon_8cpp_source.html">MeleeWeapon.cpp</a>.</p>
+
+</div>
+</div>
+<a id="a2636c0b628f8fa52d269bb2dab0b21bd"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a2636c0b628f8fa52d269bb2dab0b21bd">&#9670;&nbsp;</a></span>getDamage()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">int weapons::MeleeWeapon::getDamage </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td> const</td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">virtual</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="_melee_weapon_8cpp_source.html#l00008">8</a> of file <a class="el" href="_melee_weapon_8cpp_source.html">MeleeWeapon.cpp</a>.</p>
+
+</div>
+</div>
+<a id="ac6a6b662df60c1927531fddf9a93ebaa"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ac6a6b662df60c1927531fddf9a93ebaa">&#9670;&nbsp;</a></span>getHitOffset()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">float weapons::MeleeWeapon::getHitOffset </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td> const</td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">virtual</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>the hit's center distance from the user </p>
+<dl class="section return"><dt>Returns</dt><dd>float </dd></dl>
+
+<p>Reimplemented in <a class="el" href="classweapons_1_1_typical_melee_weapon.html#a74cb37d45c599296e443858b73cd1d97">weapons::TypicalMeleeWeapon</a>.</p>
+
+<p class="definition">Definition at line <a class="el" href="_melee_weapon_8cpp_source.html#l00040">40</a> of file <a class="el" href="_melee_weapon_8cpp_source.html">MeleeWeapon.cpp</a>.</p>
+
+</div>
+</div>
+<a id="af14b624f27592421fc117c4fa81aba1b"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#af14b624f27592421fc117c4fa81aba1b">&#9670;&nbsp;</a></span>getPredicator()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">virtual std::function&lt;bool(std::shared_ptr&lt;<a class="el" href="classentities_1_1_entity.html">Entity</a>&gt;, std::shared_ptr&lt;<a class="el" href="classentities_1_1_entity.html">Entity</a>&gt;)&gt; weapons::MeleeWeapon::getPredicator </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>direction</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">pure virtual</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>The predicate function getter for the damageIf. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">direction</td><td>users direction </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>the predicate </dd></dl>
+
+<p>Implemented in <a class="el" href="classweapons_1_1_typical_melee_weapon.html#ad367f50efc891a92b0f22f2404f39c5e">weapons::TypicalMeleeWeapon</a>.</p>
+
+</div>
+</div>
+<a id="ac1b9a6718cbf78cea0b9e5e0b8dcc64e"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ac1b9a6718cbf78cea0b9e5e0b8dcc64e">&#9670;&nbsp;</a></span>use()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">bool weapons::MeleeWeapon::use </td>
+          <td>(</td>
+          <td class="paramtype">std::shared_ptr&lt; <a class="el" href="classentities_1_1_entity.html">Entity</a> &gt;&#160;</td>
+          <td class="paramname"><em>user</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>direction</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+<dl class="section return"><dt>Returns</dt><dd>true, if you did something with it. false otherwise </dd></dl>
+
+<p>Implements <a class="el" href="classweapons_1_1_weapon.html#a8c6f12ac9ed871ebd0394f6b5c447868">weapons::Weapon</a>.</p>
+
+<p class="definition">Definition at line <a class="el" href="_melee_weapon_8cpp_source.html#l00030">30</a> of file <a class="el" href="_melee_weapon_8cpp_source.html">MeleeWeapon.cpp</a>.</p>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following files:<ul>
+<li>C:/Users/kosmx/Documents/GitHub/2d-game/<a class="el" href="_melee_weapon_8h_source.html">MeleeWeapon.h</a></li>
+<li>C:/Users/kosmx/Documents/GitHub/2d-game/<a class="el" href="_melee_weapon_8cpp_source.html">MeleeWeapon.cpp</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/classweapons_1_1_melee_weapon.png b/doxy/html/classweapons_1_1_melee_weapon.png
new file mode 100644
index 0000000000000000000000000000000000000000..c14ffa9332b30281cbd85fb6d09417311985dd87
Binary files /dev/null and b/doxy/html/classweapons_1_1_melee_weapon.png differ
diff --git a/doxy/html/classweapons_1_1_melee_weapon_1_1predicate_distance-members.html b/doxy/html/classweapons_1_1_melee_weapon_1_1predicate_distance-members.html
new file mode 100644
index 0000000000000000000000000000000000000000..b4aa4e3f57d3a93a2002ee818fa6a57098a02d41
--- /dev/null
+++ b/doxy/html/classweapons_1_1_melee_weapon_1_1predicate_distance-members.html
@@ -0,0 +1,85 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="namespaceweapons.html">weapons</a></li><li class="navelem"><a class="el" href="classweapons_1_1_melee_weapon.html">MeleeWeapon</a></li><li class="navelem"><a class="el" href="classweapons_1_1_melee_weapon_1_1predicate_distance.html">predicateDistance</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">weapons::MeleeWeapon::predicateDistance Member List</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="classweapons_1_1_melee_weapon_1_1predicate_distance.html">weapons::MeleeWeapon::predicateDistance</a>, including all inherited members.</p>
+<table class="directory">
+  <tr class="even"><td class="entry"><a class="el" href="classweapons_1_1_melee_weapon_1_1predicate_distance.html#a3d53f314c59a28ad09a209299c6f04dc">maxDistance</a></td><td class="entry"><a class="el" href="classweapons_1_1_melee_weapon_1_1predicate_distance.html">weapons::MeleeWeapon::predicateDistance</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classweapons_1_1_melee_weapon_1_1predicate_distance.html#ad75b973371de19453068e729b275af89">minDistance</a></td><td class="entry"><a class="el" href="classweapons_1_1_melee_weapon_1_1predicate_distance.html">weapons::MeleeWeapon::predicateDistance</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classweapons_1_1_melee_weapon_1_1predicate_distance.html#abfe04e14018aab1af891302df42255eb">operator()</a>(const olc::vf2d &amp;usePos, std::shared_ptr&lt; Entity &gt; other) const</td><td class="entry"><a class="el" href="classweapons_1_1_melee_weapon_1_1predicate_distance.html">weapons::MeleeWeapon::predicateDistance</a></td><td class="entry"></td></tr>
+</table></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/classweapons_1_1_melee_weapon_1_1predicate_distance.html b/doxy/html/classweapons_1_1_melee_weapon_1_1predicate_distance.html
new file mode 100644
index 0000000000000000000000000000000000000000..f89754d8faf3ce0119db8e2a502a75f26b268738
--- /dev/null
+++ b/doxy/html/classweapons_1_1_melee_weapon_1_1predicate_distance.html
@@ -0,0 +1,184 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: weapons::MeleeWeapon::predicateDistance Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="namespaceweapons.html">weapons</a></li><li class="navelem"><a class="el" href="classweapons_1_1_melee_weapon.html">MeleeWeapon</a></li><li class="navelem"><a class="el" href="classweapons_1_1_melee_weapon_1_1predicate_distance.html">predicateDistance</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="#pub-attribs">Public Attributes</a> &#124;
+<a href="classweapons_1_1_melee_weapon_1_1predicate_distance-members.html">List of all members</a>  </div>
+  <div class="headertitle">
+<div class="title">weapons::MeleeWeapon::predicateDistance Class Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Functor to predicate entity distance. You can also use lambda, if you want.  
+ <a href="classweapons_1_1_melee_weapon_1_1predicate_distance.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="_melee_weapon_8h_source.html">MeleeWeapon.h</a>&gt;</code></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr class="memitem:abfe04e14018aab1af891302df42255eb"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_melee_weapon_1_1predicate_distance.html#abfe04e14018aab1af891302df42255eb">operator()</a> (const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;usePos, std::shared_ptr&lt; <a class="el" href="classentities_1_1_entity.html">Entity</a> &gt; other) const</td></tr>
+<tr class="memdesc:abfe04e14018aab1af891302df42255eb"><td class="mdescLeft">&#160;</td><td class="mdescRight">A functor.  <a href="classweapons_1_1_melee_weapon_1_1predicate_distance.html#abfe04e14018aab1af891302df42255eb">More...</a><br /></td></tr>
+<tr class="separator:abfe04e14018aab1af891302df42255eb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+Public Attributes</h2></td></tr>
+<tr class="memitem:ad75b973371de19453068e729b275af89"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_melee_weapon_1_1predicate_distance.html#ad75b973371de19453068e729b275af89">minDistance</a> = 0</td></tr>
+<tr class="separator:ad75b973371de19453068e729b275af89"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3d53f314c59a28ad09a209299c6f04dc"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_melee_weapon_1_1predicate_distance.html#a3d53f314c59a28ad09a209299c6f04dc">maxDistance</a> = 5</td></tr>
+<tr class="separator:a3d53f314c59a28ad09a209299c6f04dc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Functor to predicate entity distance. You can also use lambda, if you want. </p>
+
+<p class="definition">Definition at line <a class="el" href="_melee_weapon_8h_source.html#l00043">43</a> of file <a class="el" href="_melee_weapon_8h_source.html">MeleeWeapon.h</a>.</p>
+</div><h2 class="groupheader">Member Function Documentation</h2>
+<a id="abfe04e14018aab1af891302df42255eb"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#abfe04e14018aab1af891302df42255eb">&#9670;&nbsp;</a></span>operator()()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">bool weapons::MeleeWeapon::predicateDistance::operator() </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>usePos</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">std::shared_ptr&lt; <a class="el" href="classentities_1_1_entity.html">Entity</a> &gt;&#160;</td>
+          <td class="paramname"><em>other</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td> const</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>A functor. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">usePos</td><td>:D </td></tr>
+    <tr><td class="paramname">other</td><td>:) </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>is the potential victim in the range </dd></dl>
+
+<p class="definition">Definition at line <a class="el" href="_melee_weapon_8cpp_source.html#l00045">45</a> of file <a class="el" href="_melee_weapon_8cpp_source.html">MeleeWeapon.cpp</a>.</p>
+
+</div>
+</div>
+<h2 class="groupheader">Member Data Documentation</h2>
+<a id="a3d53f314c59a28ad09a209299c6f04dc"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a3d53f314c59a28ad09a209299c6f04dc">&#9670;&nbsp;</a></span>maxDistance</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float weapons::MeleeWeapon::predicateDistance::maxDistance = 5</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="_melee_weapon_8h_source.html#l00047">47</a> of file <a class="el" href="_melee_weapon_8h_source.html">MeleeWeapon.h</a>.</p>
+
+</div>
+</div>
+<a id="ad75b973371de19453068e729b275af89"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ad75b973371de19453068e729b275af89">&#9670;&nbsp;</a></span>minDistance</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float weapons::MeleeWeapon::predicateDistance::minDistance = 0</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="_melee_weapon_8h_source.html#l00046">46</a> of file <a class="el" href="_melee_weapon_8h_source.html">MeleeWeapon.h</a>.</p>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following files:<ul>
+<li>C:/Users/kosmx/Documents/GitHub/2d-game/<a class="el" href="_melee_weapon_8h_source.html">MeleeWeapon.h</a></li>
+<li>C:/Users/kosmx/Documents/GitHub/2d-game/<a class="el" href="_melee_weapon_8cpp_source.html">MeleeWeapon.cpp</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/classweapons_1_1_pistol-members.html b/doxy/html/classweapons_1_1_pistol-members.html
new file mode 100644
index 0000000000000000000000000000000000000000..145646ae21d72dbd3fdd87445227f43b690d18b2
--- /dev/null
+++ b/doxy/html/classweapons_1_1_pistol-members.html
@@ -0,0 +1,118 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="namespaceweapons.html">weapons</a></li><li class="navelem"><a class="el" href="classweapons_1_1_pistol.html">Pistol</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">weapons::Pistol Member List</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="classweapons_1_1_pistol.html">weapons::Pistol</a>, including all inherited members.</p>
+<table class="directory">
+  <tr class="even"><td class="entry"><a class="el" href="classweapons_1_1_weapon.html#a27456b08c51df0759ae0155b9f79e336">baseDamage</a></td><td class="entry"><a class="el" href="classweapons_1_1_weapon.html">weapons::Weapon</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classweapons_1_1_weapon.html#aaf97827d27191b7b437ef1be96d6ac2c">canBeRemoved</a>() const override</td><td class="entry"><a class="el" href="classweapons_1_1_weapon.html">weapons::Weapon</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classweapons_1_1_weapon.html#aa3529d6c0160f61132fc7bb1b9284a02">cooldown</a></td><td class="entry"><a class="el" href="classweapons_1_1_weapon.html">weapons::Weapon</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classweapons_1_1_weapon.html#aa3d78dae766eee8279326026dbb46f1f">cooldownTime</a></td><td class="entry"><a class="el" href="classweapons_1_1_weapon.html">weapons::Weapon</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classweapons_1_1_weapon.html#a397c372ffe2838f7c9c1ce67c06e55a9">damage</a>(int damage, Entity &amp;attacker) override</td><td class="entry"><a class="el" href="classweapons_1_1_weapon.html">weapons::Weapon</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classweapons_1_1_ranged_weapon.html#acf33d7619066026e823986ec5ec51a97">emgun</a></td><td class="entry"><a class="el" href="classweapons_1_1_ranged_weapon.html">weapons::RangedWeapon</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classentities_1_1_entity.html#a539ddef34b718b6068df421f316f4a6d">Entity</a>(const olc::vf2d &amp;pos)</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">explicit</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classentities_1_1_entity.html#a94d18db8d502d677b6f4215dc1e1d820">getCollision</a>(const Entity &amp;other)</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classweapons_1_1_weapon.html#a9626ba57d509b1ee0fbe7f900d5181c6">getCooldownBar</a>()</td><td class="entry"><a class="el" href="classweapons_1_1_weapon.html">weapons::Weapon</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classweapons_1_1_weapon.html#a862bd61cf947a91809b423304885cf66">getHitBoxSize</a>() const override</td><td class="entry"><a class="el" href="classweapons_1_1_weapon.html">weapons::Weapon</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classentities_1_1_entity.html#a8c4b0c1eb69a673619e4c8943ef34f86">getName</a>() const</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classentities_1_1_entity.html#a799a692b988248dd23d207b95e7fe2b7">getPos</a>() const</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classweapons_1_1_weapon.html#a3f84544c15d6220252c6175fdfe5c61d">getSecondaryBar</a>()</td><td class="entry"><a class="el" href="classweapons_1_1_weapon.html">weapons::Weapon</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classentities_1_1_entity.html#ac60e9beb5a45fc65120e9779e680c04b">getSize</a>() const</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classentities_1_1_entity.html#afd80ddceccb36b87d0d80dcc7f88fc3b">init</a>(GameClient &amp;client)</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classentities_1_1_entity.html#aedac7bb35b729e4a02c582b9f4369ab8">is_alive</a></td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classentities_1_1_entity.html#a1453bca3376a185aa54135dd4958b244">is_initialized</a></td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classentities_1_1_entity.html#ab0ee90a84f2163b600e603f24cff046f">isAlive</a>() const</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classentities_1_1_entity.html#ab010066d52a02c63908f70ff6ef7d873">isInitialized</a>()</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classweapons_1_1_weapon.html#aba025076ad5e6fae2f9b9d40f4ef815d">isPickedUp</a></td><td class="entry"><a class="el" href="classweapons_1_1_weapon.html">weapons::Weapon</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classweapons_1_1_weapon.html#a3dab7574419aed48f2a0f2d54cfcd825">name</a></td><td class="entry"><a class="el" href="classweapons_1_1_weapon.html">weapons::Weapon</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classentities_1_1_entity.html#ad0a172ff99a7e73aaaee3658d5e3ae08">operator WallEntity *</a>()</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classweapons_1_1_ranged_weapon.html#a2c916fa61105c656187e1f6f41fa4fab">pistol</a></td><td class="entry"><a class="el" href="classweapons_1_1_ranged_weapon.html">weapons::RangedWeapon</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classweapons_1_1_pistol.html#acc8c02692de7d84e5060da436b96ed86">Pistol</a>(render::ITexture &amp;texture, float cooldownTime, int damage, float projectileSpeed=10, const std::string &amp;name=&quot;RangedWeapon&quot;, const olc::vf2d &amp;pos={ 0, 0 })</td><td class="entry"><a class="el" href="classweapons_1_1_pistol.html">weapons::Pistol</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classentities_1_1_entity.html#a04f9c2febe8d435138a07eb2f48ba96b">pos</a></td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classweapons_1_1_ranged_weapon.html#a299d09c213670d80f7215e2310c92889">projectileSpeed</a></td><td class="entry"><a class="el" href="classweapons_1_1_ranged_weapon.html">weapons::RangedWeapon</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classweapons_1_1_ranged_weapon.html#add8afffc63175911e5f81b3ce43d135f">RangedWeapon</a>(render::ITexture &amp;texture, float cooldownTime, int damage, float projectileSpeed=10, const std::string &amp;name=&quot;RangedWeapon&quot;, const olc::vf2d &amp;pos={ 0, 0 })</td><td class="entry"><a class="el" href="classweapons_1_1_ranged_weapon.html">weapons::RangedWeapon</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classentities_1_1_entity.html#abcc4364b5b7250f0364f3550a618b3ab">render</a>(olc::TransformedView &amp;scene)</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classweapons_1_1_weapon.html#ace9c44751879af7382585c3338d4bc47">setPickUp</a>(bool bl)</td><td class="entry"><a class="el" href="classweapons_1_1_weapon.html">weapons::Weapon</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classweapons_1_1_weapon.html#a34c39bfa9cdb2d7483bc340300e8a2d9">setPos</a>(const olc::vf2d &amp;newPos)</td><td class="entry"><a class="el" href="classweapons_1_1_weapon.html">weapons::Weapon</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classweapons_1_1_pistol.html#a37f81949e55c373d7cf1f35cb59c1c25">spawnProjectile</a>(std::shared_ptr&lt; Entity &gt; &amp;user, const olc::vf2d &amp;pos, const olc::vf2d &amp;v0, int damage) override</td><td class="entry"><a class="el" href="classweapons_1_1_pistol.html">weapons::Pistol</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classweapons_1_1_weapon.html#a92ae1db47ca866d828f8b09c6de5a3f6">tick</a>(GameClient &amp;client, float deltaT, std::shared_ptr&lt; Entity &gt; &amp;shared_this) override</td><td class="entry"><a class="el" href="classweapons_1_1_weapon.html">weapons::Weapon</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classweapons_1_1_weapon.html#a1cbf391f196bd151f3e3f1ae1e316088">update</a>(float dTick)</td><td class="entry"><a class="el" href="classweapons_1_1_weapon.html">weapons::Weapon</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classweapons_1_1_ranged_weapon.html#a0e8915ad79021eb8fd79a1a3d7b1c92c">use</a>(std::shared_ptr&lt; Entity &gt; user, const olc::vf2d &amp;direction) override</td><td class="entry"><a class="el" href="classweapons_1_1_ranged_weapon.html">weapons::RangedWeapon</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classweapons_1_1_weapon.html#a28f7b716212ae6b4606cff82501e00a2">Weapon</a>(render::ITexture &amp;texture, float cooldownTime, int damage=10, const std::string &amp;name=&quot;Weapon&quot;, const olc::vf2d &amp;pos={ 0, 0 })</td><td class="entry"><a class="el" href="classweapons_1_1_weapon.html">weapons::Weapon</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classentities_1_1_entity.html#a64d968c160dee2fdfca68aff2e49946b">~Entity</a>()=default</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+</table></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/classweapons_1_1_pistol.html b/doxy/html/classweapons_1_1_pistol.html
new file mode 100644
index 0000000000000000000000000000000000000000..66071ecfb3a25c15fac1197e09edde5e49834de3
--- /dev/null
+++ b/doxy/html/classweapons_1_1_pistol.html
@@ -0,0 +1,331 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: weapons::Pistol Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="namespaceweapons.html">weapons</a></li><li class="navelem"><a class="el" href="classweapons_1_1_pistol.html">Pistol</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="classweapons_1_1_pistol-members.html">List of all members</a>  </div>
+  <div class="headertitle">
+<div class="title">weapons::Pistol Class Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Just a pistol, nothing too dangerous.  
+ <a href="classweapons_1_1_pistol.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="_pistol_8h_source.html">Pistol.h</a>&gt;</code></p>
+<div class="dynheader">
+Inheritance diagram for weapons::Pistol:</div>
+<div class="dyncontent">
+ <div class="center">
+  <img src="classweapons_1_1_pistol.png" usemap="#weapons::Pistol_map" alt=""/>
+  <map id="weapons::Pistol_map" name="weapons::Pistol_map">
+<area href="classweapons_1_1_ranged_weapon.html" title="Any weapon, what does shoot. not melee." alt="weapons::RangedWeapon" shape="rect" coords="0,112,157,136"/>
+<area href="classweapons_1_1_weapon.html" title="You can throw it to the ground, this is why it&#39;s an entity. But it will be possible to use it...." alt="weapons::Weapon" shape="rect" coords="0,56,157,80"/>
+<area href="classentities_1_1_entity.html" title="Every object, what can be on the map." alt="entities::Entity" shape="rect" coords="0,0,157,24"/>
+<area href="classweapons_1_1_e_m_gun.html" title="Weapon with energy level." alt="weapons::EMGun" shape="rect" coords="0,224,157,248"/>
+<area href="classweapons_1_1_glitch_gun.html" title="TODO make the bug weapon more buggy." alt="weapons::GlitchGun" shape="rect" coords="0,280,157,304"/>
+  </map>
+</div></div>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr class="memitem:a37f81949e55c373d7cf1f35cb59c1c25"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_pistol.html#a37f81949e55c373d7cf1f35cb59c1c25">spawnProjectile</a> (std::shared_ptr&lt; <a class="el" href="classentities_1_1_entity.html">Entity</a> &gt; &amp;user, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;<a class="el" href="classentities_1_1_entity.html#a04f9c2febe8d435138a07eb2f48ba96b">pos</a>, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;v0, int <a class="el" href="classweapons_1_1_weapon.html#a397c372ffe2838f7c9c1ce67c06e55a9">damage</a>) override</td></tr>
+<tr class="memdesc:a37f81949e55c373d7cf1f35cb59c1c25"><td class="mdescLeft">&#160;</td><td class="mdescRight">Spawn a projectile entity.  <a href="classweapons_1_1_pistol.html#a37f81949e55c373d7cf1f35cb59c1c25">More...</a><br /></td></tr>
+<tr class="separator:a37f81949e55c373d7cf1f35cb59c1c25"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:acc8c02692de7d84e5060da436b96ed86"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_pistol.html#acc8c02692de7d84e5060da436b96ed86">Pistol</a> (<a class="el" href="classrender_1_1_i_texture.html">render::ITexture</a> &amp;texture, float <a class="el" href="classweapons_1_1_weapon.html#aa3d78dae766eee8279326026dbb46f1f">cooldownTime</a>, int <a class="el" href="classweapons_1_1_weapon.html#a397c372ffe2838f7c9c1ce67c06e55a9">damage</a>, float <a class="el" href="classweapons_1_1_ranged_weapon.html#a299d09c213670d80f7215e2310c92889">projectileSpeed</a>=10, const std::string &amp;<a class="el" href="classweapons_1_1_weapon.html#a3dab7574419aed48f2a0f2d54cfcd825">name</a>=&quot;RangedWeapon&quot;, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;<a class="el" href="classentities_1_1_entity.html#a04f9c2febe8d435138a07eb2f48ba96b">pos</a>={ 0, 0 })</td></tr>
+<tr class="separator:acc8c02692de7d84e5060da436b96ed86"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pub_methods_classweapons_1_1_ranged_weapon"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classweapons_1_1_ranged_weapon')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classweapons_1_1_ranged_weapon.html">weapons::RangedWeapon</a></td></tr>
+<tr class="memitem:add8afffc63175911e5f81b3ce43d135f inherit pub_methods_classweapons_1_1_ranged_weapon"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_ranged_weapon.html#add8afffc63175911e5f81b3ce43d135f">RangedWeapon</a> (<a class="el" href="classrender_1_1_i_texture.html">render::ITexture</a> &amp;texture, float <a class="el" href="classweapons_1_1_weapon.html#aa3d78dae766eee8279326026dbb46f1f">cooldownTime</a>, int <a class="el" href="classweapons_1_1_weapon.html#a397c372ffe2838f7c9c1ce67c06e55a9">damage</a>, float <a class="el" href="classweapons_1_1_ranged_weapon.html#a299d09c213670d80f7215e2310c92889">projectileSpeed</a>=10, const std::string &amp;<a class="el" href="classweapons_1_1_weapon.html#a3dab7574419aed48f2a0f2d54cfcd825">name</a>=&quot;RangedWeapon&quot;, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;<a class="el" href="classentities_1_1_entity.html#a04f9c2febe8d435138a07eb2f48ba96b">pos</a>={ 0, 0 })</td></tr>
+<tr class="separator:add8afffc63175911e5f81b3ce43d135f inherit pub_methods_classweapons_1_1_ranged_weapon"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0e8915ad79021eb8fd79a1a3d7b1c92c inherit pub_methods_classweapons_1_1_ranged_weapon"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_ranged_weapon.html#a0e8915ad79021eb8fd79a1a3d7b1c92c">use</a> (std::shared_ptr&lt; <a class="el" href="classentities_1_1_entity.html">Entity</a> &gt; user, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;direction) override</td></tr>
+<tr class="separator:a0e8915ad79021eb8fd79a1a3d7b1c92c inherit pub_methods_classweapons_1_1_ranged_weapon"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pub_methods_classweapons_1_1_weapon"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classweapons_1_1_weapon')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classweapons_1_1_weapon.html">weapons::Weapon</a></td></tr>
+<tr class="memitem:a28f7b716212ae6b4606cff82501e00a2 inherit pub_methods_classweapons_1_1_weapon"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_weapon.html#a28f7b716212ae6b4606cff82501e00a2">Weapon</a> (<a class="el" href="classrender_1_1_i_texture.html">render::ITexture</a> &amp;texture, float <a class="el" href="classweapons_1_1_weapon.html#aa3d78dae766eee8279326026dbb46f1f">cooldownTime</a>, int <a class="el" href="classweapons_1_1_weapon.html#a397c372ffe2838f7c9c1ce67c06e55a9">damage</a>=10, const std::string &amp;<a class="el" href="classweapons_1_1_weapon.html#a3dab7574419aed48f2a0f2d54cfcd825">name</a>=&quot;Weapon&quot;, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;<a class="el" href="classentities_1_1_entity.html#a04f9c2febe8d435138a07eb2f48ba96b">pos</a>={ 0, 0 })</td></tr>
+<tr class="separator:a28f7b716212ae6b4606cff82501e00a2 inherit pub_methods_classweapons_1_1_weapon"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a92ae1db47ca866d828f8b09c6de5a3f6 inherit pub_methods_classweapons_1_1_weapon"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_weapon.html#a92ae1db47ca866d828f8b09c6de5a3f6">tick</a> (<a class="el" href="class_game_client.html">GameClient</a> &amp;client, float deltaT, std::shared_ptr&lt; <a class="el" href="classentities_1_1_entity.html">Entity</a> &gt; &amp;shared_this) override</td></tr>
+<tr class="memdesc:a92ae1db47ca866d828f8b09c6de5a3f6 inherit pub_methods_classweapons_1_1_weapon"><td class="mdescLeft">&#160;</td><td class="mdescRight">tick, if on the ground. It does charge energy, or whatever.  <a href="classweapons_1_1_weapon.html#a92ae1db47ca866d828f8b09c6de5a3f6">More...</a><br /></td></tr>
+<tr class="separator:a92ae1db47ca866d828f8b09c6de5a3f6 inherit pub_methods_classweapons_1_1_weapon"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1cbf391f196bd151f3e3f1ae1e316088 inherit pub_methods_classweapons_1_1_weapon"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_weapon.html#a1cbf391f196bd151f3e3f1ae1e316088">update</a> (float dTick)</td></tr>
+<tr class="memdesc:a1cbf391f196bd151f3e3f1ae1e316088 inherit pub_methods_classweapons_1_1_weapon"><td class="mdescLeft">&#160;</td><td class="mdescRight">Update the weapon in a Character's inventory.  <a href="classweapons_1_1_weapon.html#a1cbf391f196bd151f3e3f1ae1e316088">More...</a><br /></td></tr>
+<tr class="separator:a1cbf391f196bd151f3e3f1ae1e316088 inherit pub_methods_classweapons_1_1_weapon"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9626ba57d509b1ee0fbe7f900d5181c6 inherit pub_methods_classweapons_1_1_weapon"><td class="memItemLeft" align="right" valign="top">virtual float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_weapon.html#a9626ba57d509b1ee0fbe7f900d5181c6">getCooldownBar</a> ()</td></tr>
+<tr class="memdesc:a9626ba57d509b1ee0fbe7f900d5181c6 inherit pub_methods_classweapons_1_1_weapon"><td class="mdescLeft">&#160;</td><td class="mdescRight">0 - 1 cooldown, 1 is ready to use, more than one makes sense, like 2 charges  <a href="classweapons_1_1_weapon.html#a9626ba57d509b1ee0fbe7f900d5181c6">More...</a><br /></td></tr>
+<tr class="separator:a9626ba57d509b1ee0fbe7f900d5181c6 inherit pub_methods_classweapons_1_1_weapon"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aaf97827d27191b7b437ef1be96d6ac2c inherit pub_methods_classweapons_1_1_weapon"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_weapon.html#aaf97827d27191b7b437ef1be96d6ac2c">canBeRemoved</a> () const override</td></tr>
+<tr class="memdesc:aaf97827d27191b7b437ef1be96d6ac2c inherit pub_methods_classweapons_1_1_weapon"><td class="mdescLeft">&#160;</td><td class="mdescRight">Can be removed form the ground.  <a href="classweapons_1_1_weapon.html#aaf97827d27191b7b437ef1be96d6ac2c">More...</a><br /></td></tr>
+<tr class="separator:aaf97827d27191b7b437ef1be96d6ac2c inherit pub_methods_classweapons_1_1_weapon"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ace9c44751879af7382585c3338d4bc47 inherit pub_methods_classweapons_1_1_weapon"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_weapon.html#ace9c44751879af7382585c3338d4bc47">setPickUp</a> (bool bl)</td></tr>
+<tr class="memdesc:ace9c44751879af7382585c3338d4bc47 inherit pub_methods_classweapons_1_1_weapon"><td class="mdescLeft">&#160;</td><td class="mdescRight">Mutator to isPickedUp.  <a href="classweapons_1_1_weapon.html#ace9c44751879af7382585c3338d4bc47">More...</a><br /></td></tr>
+<tr class="separator:ace9c44751879af7382585c3338d4bc47 inherit pub_methods_classweapons_1_1_weapon"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3f84544c15d6220252c6175fdfe5c61d inherit pub_methods_classweapons_1_1_weapon"><td class="memItemLeft" align="right" valign="top">virtual float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_weapon.html#a3f84544c15d6220252c6175fdfe5c61d">getSecondaryBar</a> ()</td></tr>
+<tr class="memdesc:a3f84544c15d6220252c6175fdfe5c61d inherit pub_methods_classweapons_1_1_weapon"><td class="mdescLeft">&#160;</td><td class="mdescRight">Secondary charge bar. for some purpose.  <a href="classweapons_1_1_weapon.html#a3f84544c15d6220252c6175fdfe5c61d">More...</a><br /></td></tr>
+<tr class="separator:a3f84544c15d6220252c6175fdfe5c61d inherit pub_methods_classweapons_1_1_weapon"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a34c39bfa9cdb2d7483bc340300e8a2d9 inherit pub_methods_classweapons_1_1_weapon"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_weapon.html#a34c39bfa9cdb2d7483bc340300e8a2d9">setPos</a> (const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;newPos)</td></tr>
+<tr class="separator:a34c39bfa9cdb2d7483bc340300e8a2d9 inherit pub_methods_classweapons_1_1_weapon"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a397c372ffe2838f7c9c1ce67c06e55a9 inherit pub_methods_classweapons_1_1_weapon"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_weapon.html#a397c372ffe2838f7c9c1ce67c06e55a9">damage</a> (int damage, <a class="el" href="classentities_1_1_entity.html">Entity</a> &amp;attacker) override</td></tr>
+<tr class="memdesc:a397c372ffe2838f7c9c1ce67c06e55a9 inherit pub_methods_classweapons_1_1_weapon"><td class="mdescLeft">&#160;</td><td class="mdescRight">something damage this  <a href="classweapons_1_1_weapon.html#a397c372ffe2838f7c9c1ce67c06e55a9">More...</a><br /></td></tr>
+<tr class="separator:a397c372ffe2838f7c9c1ce67c06e55a9 inherit pub_methods_classweapons_1_1_weapon"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pub_methods_classentities_1_1_entity"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classentities_1_1_entity')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td></tr>
+<tr class="memitem:a539ddef34b718b6068df421f316f4a6d inherit pub_methods_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#a539ddef34b718b6068df421f316f4a6d">Entity</a> (const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;<a class="el" href="classentities_1_1_entity.html#a04f9c2febe8d435138a07eb2f48ba96b">pos</a>)</td></tr>
+<tr class="separator:a539ddef34b718b6068df421f316f4a6d inherit pub_methods_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afd80ddceccb36b87d0d80dcc7f88fc3b inherit pub_methods_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#afd80ddceccb36b87d0d80dcc7f88fc3b">init</a> (<a class="el" href="class_game_client.html">GameClient</a> &amp;client)</td></tr>
+<tr class="separator:afd80ddceccb36b87d0d80dcc7f88fc3b inherit pub_methods_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab010066d52a02c63908f70ff6ef7d873 inherit pub_methods_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#ab010066d52a02c63908f70ff6ef7d873">isInitialized</a> ()</td></tr>
+<tr class="separator:ab010066d52a02c63908f70ff6ef7d873 inherit pub_methods_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a799a692b988248dd23d207b95e7fe2b7 inherit pub_methods_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#a799a692b988248dd23d207b95e7fe2b7">getPos</a> () const</td></tr>
+<tr class="separator:a799a692b988248dd23d207b95e7fe2b7 inherit pub_methods_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac60e9beb5a45fc65120e9779e680c04b inherit pub_methods_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#ac60e9beb5a45fc65120e9779e680c04b">getSize</a> () const</td></tr>
+<tr class="memdesc:ac60e9beb5a45fc65120e9779e680c04b inherit pub_methods_classentities_1_1_entity"><td class="mdescLeft">&#160;</td><td class="mdescRight">get it's size to render  <a href="classentities_1_1_entity.html#ac60e9beb5a45fc65120e9779e680c04b">More...</a><br /></td></tr>
+<tr class="separator:ac60e9beb5a45fc65120e9779e680c04b inherit pub_methods_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab0ee90a84f2163b600e603f24cff046f inherit pub_methods_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#ab0ee90a84f2163b600e603f24cff046f">isAlive</a> () const</td></tr>
+<tr class="separator:ab0ee90a84f2163b600e603f24cff046f inherit pub_methods_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abcc4364b5b7250f0364f3550a618b3ab inherit pub_methods_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#abcc4364b5b7250f0364f3550a618b3ab">render</a> (<a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a> &amp;scene)</td></tr>
+<tr class="memdesc:abcc4364b5b7250f0364f3550a618b3ab inherit pub_methods_classentities_1_1_entity"><td class="mdescLeft">&#160;</td><td class="mdescRight">render  <a href="classentities_1_1_entity.html#abcc4364b5b7250f0364f3550a618b3ab">More...</a><br /></td></tr>
+<tr class="separator:abcc4364b5b7250f0364f3550a618b3ab inherit pub_methods_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8c4b0c1eb69a673619e4c8943ef34f86 inherit pub_methods_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">virtual std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#a8c4b0c1eb69a673619e4c8943ef34f86">getName</a> () const</td></tr>
+<tr class="separator:a8c4b0c1eb69a673619e4c8943ef34f86 inherit pub_methods_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a64d968c160dee2fdfca68aff2e49946b inherit pub_methods_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#a64d968c160dee2fdfca68aff2e49946b">~Entity</a> ()=default</td></tr>
+<tr class="separator:a64d968c160dee2fdfca68aff2e49946b inherit pub_methods_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad0a172ff99a7e73aaaee3658d5e3ae08 inherit pub_methods_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#ad0a172ff99a7e73aaaee3658d5e3ae08">operator WallEntity *</a> ()</td></tr>
+<tr class="separator:ad0a172ff99a7e73aaaee3658d5e3ae08 inherit pub_methods_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
+Additional Inherited Members</h2></td></tr>
+<tr class="inherit_header pub_static_attribs_classweapons_1_1_ranged_weapon"><td colspan="2" onclick="javascript:toggleInherit('pub_static_attribs_classweapons_1_1_ranged_weapon')"><img src="closed.png" alt="-"/>&#160;Static Public Attributes inherited from <a class="el" href="classweapons_1_1_ranged_weapon.html">weapons::RangedWeapon</a></td></tr>
+<tr class="memitem:a2c916fa61105c656187e1f6f41fa4fab inherit pub_static_attribs_classweapons_1_1_ranged_weapon"><td class="memItemLeft" align="right" valign="top">static const <a class="el" href="classweapons_1_1_pistol.html">Pistol</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_ranged_weapon.html#a2c916fa61105c656187e1f6f41fa4fab">pistol</a></td></tr>
+<tr class="separator:a2c916fa61105c656187e1f6f41fa4fab inherit pub_static_attribs_classweapons_1_1_ranged_weapon"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:acf33d7619066026e823986ec5ec51a97 inherit pub_static_attribs_classweapons_1_1_ranged_weapon"><td class="memItemLeft" align="right" valign="top">static const <a class="el" href="classweapons_1_1_e_m_gun.html">EMGun</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_ranged_weapon.html#acf33d7619066026e823986ec5ec51a97">emgun</a></td></tr>
+<tr class="separator:acf33d7619066026e823986ec5ec51a97 inherit pub_static_attribs_classweapons_1_1_ranged_weapon"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_methods_classweapons_1_1_weapon"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classweapons_1_1_weapon')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="classweapons_1_1_weapon.html">weapons::Weapon</a></td></tr>
+<tr class="memitem:a862bd61cf947a91809b423304885cf66 inherit pro_methods_classweapons_1_1_weapon"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_weapon.html#a862bd61cf947a91809b423304885cf66">getHitBoxSize</a> () const override</td></tr>
+<tr class="memdesc:a862bd61cf947a91809b423304885cf66 inherit pro_methods_classweapons_1_1_weapon"><td class="mdescLeft">&#160;</td><td class="mdescRight">half hitbox size  <a href="classweapons_1_1_weapon.html#a862bd61cf947a91809b423304885cf66">More...</a><br /></td></tr>
+<tr class="separator:a862bd61cf947a91809b423304885cf66 inherit pro_methods_classweapons_1_1_weapon"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_methods_classentities_1_1_entity"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classentities_1_1_entity')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td></tr>
+<tr class="memitem:a94d18db8d502d677b6f4215dc1e1d820 inherit pro_methods_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#a94d18db8d502d677b6f4215dc1e1d820">getCollision</a> (const <a class="el" href="classentities_1_1_entity.html">Entity</a> &amp;other)</td></tr>
+<tr class="memdesc:a94d18db8d502d677b6f4215dc1e1d820 inherit pro_methods_classentities_1_1_entity"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate collision with another <a class="el" href="classentities_1_1_entity.html" title="Every object, what can be on the map.">Entity</a>, how much should this entity move, to avoid the collision.  <a href="classentities_1_1_entity.html#a94d18db8d502d677b6f4215dc1e1d820">More...</a><br /></td></tr>
+<tr class="separator:a94d18db8d502d677b6f4215dc1e1d820 inherit pro_methods_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_attribs_classweapons_1_1_ranged_weapon"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_classweapons_1_1_ranged_weapon')"><img src="closed.png" alt="-"/>&#160;Protected Attributes inherited from <a class="el" href="classweapons_1_1_ranged_weapon.html">weapons::RangedWeapon</a></td></tr>
+<tr class="memitem:a299d09c213670d80f7215e2310c92889 inherit pro_attribs_classweapons_1_1_ranged_weapon"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_ranged_weapon.html#a299d09c213670d80f7215e2310c92889">projectileSpeed</a></td></tr>
+<tr class="separator:a299d09c213670d80f7215e2310c92889 inherit pro_attribs_classweapons_1_1_ranged_weapon"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_attribs_classweapons_1_1_weapon"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_classweapons_1_1_weapon')"><img src="closed.png" alt="-"/>&#160;Protected Attributes inherited from <a class="el" href="classweapons_1_1_weapon.html">weapons::Weapon</a></td></tr>
+<tr class="memitem:aa3529d6c0160f61132fc7bb1b9284a02 inherit pro_attribs_classweapons_1_1_weapon"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_weapon.html#aa3529d6c0160f61132fc7bb1b9284a02">cooldown</a></td></tr>
+<tr class="separator:aa3529d6c0160f61132fc7bb1b9284a02 inherit pro_attribs_classweapons_1_1_weapon"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa3d78dae766eee8279326026dbb46f1f inherit pro_attribs_classweapons_1_1_weapon"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_weapon.html#aa3d78dae766eee8279326026dbb46f1f">cooldownTime</a></td></tr>
+<tr class="separator:aa3d78dae766eee8279326026dbb46f1f inherit pro_attribs_classweapons_1_1_weapon"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a27456b08c51df0759ae0155b9f79e336 inherit pro_attribs_classweapons_1_1_weapon"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_weapon.html#a27456b08c51df0759ae0155b9f79e336">baseDamage</a></td></tr>
+<tr class="separator:a27456b08c51df0759ae0155b9f79e336 inherit pro_attribs_classweapons_1_1_weapon"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3dab7574419aed48f2a0f2d54cfcd825 inherit pro_attribs_classweapons_1_1_weapon"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_weapon.html#a3dab7574419aed48f2a0f2d54cfcd825">name</a></td></tr>
+<tr class="separator:a3dab7574419aed48f2a0f2d54cfcd825 inherit pro_attribs_classweapons_1_1_weapon"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aba025076ad5e6fae2f9b9d40f4ef815d inherit pro_attribs_classweapons_1_1_weapon"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_weapon.html#aba025076ad5e6fae2f9b9d40f4ef815d">isPickedUp</a> = false</td></tr>
+<tr class="memdesc:aba025076ad5e6fae2f9b9d40f4ef815d inherit pro_attribs_classweapons_1_1_weapon"><td class="mdescLeft">&#160;</td><td class="mdescRight">Is on the ground, or in an entity's inventory.  <a href="classweapons_1_1_weapon.html#aba025076ad5e6fae2f9b9d40f4ef815d">More...</a><br /></td></tr>
+<tr class="separator:aba025076ad5e6fae2f9b9d40f4ef815d inherit pro_attribs_classweapons_1_1_weapon"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_attribs_classentities_1_1_entity"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_classentities_1_1_entity')"><img src="closed.png" alt="-"/>&#160;Protected Attributes inherited from <a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td></tr>
+<tr class="memitem:a04f9c2febe8d435138a07eb2f48ba96b inherit pro_attribs_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#a04f9c2febe8d435138a07eb2f48ba96b">pos</a></td></tr>
+<tr class="memdesc:a04f9c2febe8d435138a07eb2f48ba96b inherit pro_attribs_classentities_1_1_entity"><td class="mdescLeft">&#160;</td><td class="mdescRight">it's position  <a href="classentities_1_1_entity.html#a04f9c2febe8d435138a07eb2f48ba96b">More...</a><br /></td></tr>
+<tr class="separator:a04f9c2febe8d435138a07eb2f48ba96b inherit pro_attribs_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1453bca3376a185aa54135dd4958b244 inherit pro_attribs_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#a1453bca3376a185aa54135dd4958b244">is_initialized</a></td></tr>
+<tr class="memdesc:a1453bca3376a185aa54135dd4958b244 inherit pro_attribs_classentities_1_1_entity"><td class="mdescLeft">&#160;</td><td class="mdescRight">well, is initialized  <a href="classentities_1_1_entity.html#a1453bca3376a185aa54135dd4958b244">More...</a><br /></td></tr>
+<tr class="separator:a1453bca3376a185aa54135dd4958b244 inherit pro_attribs_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aedac7bb35b729e4a02c582b9f4369ab8 inherit pro_attribs_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#aedac7bb35b729e4a02c582b9f4369ab8">is_alive</a></td></tr>
+<tr class="memdesc:aedac7bb35b729e4a02c582b9f4369ab8 inherit pro_attribs_classentities_1_1_entity"><td class="mdescLeft">&#160;</td><td class="mdescRight">true, if it is alive  <a href="classentities_1_1_entity.html#aedac7bb35b729e4a02c582b9f4369ab8">More...</a><br /></td></tr>
+<tr class="separator:aedac7bb35b729e4a02c582b9f4369ab8 inherit pro_attribs_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Just a pistol, nothing too dangerous. </p>
+
+<p class="definition">Definition at line <a class="el" href="_pistol_8h_source.html#l00010">10</a> of file <a class="el" href="_pistol_8h_source.html">Pistol.h</a>.</p>
+</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
+<a id="acc8c02692de7d84e5060da436b96ed86"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#acc8c02692de7d84e5060da436b96ed86">&#9670;&nbsp;</a></span>Pistol()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">weapons::Pistol::Pistol </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="classrender_1_1_i_texture.html">render::ITexture</a> &amp;&#160;</td>
+          <td class="paramname"><em>texture</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>cooldownTime</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>damage</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>projectileSpeed</em> = <code>10</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const std::string &amp;&#160;</td>
+          <td class="paramname"><em>name</em> = <code>&quot;RangedWeapon&quot;</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>pos</em> = <code>{&#160;0,&#160;0&#160;}</code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="_pistol_8cpp_source.html#l00011">11</a> of file <a class="el" href="_pistol_8cpp_source.html">Pistol.cpp</a>.</p>
+
+</div>
+</div>
+<h2 class="groupheader">Member Function Documentation</h2>
+<a id="a37f81949e55c373d7cf1f35cb59c1c25"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a37f81949e55c373d7cf1f35cb59c1c25">&#9670;&nbsp;</a></span>spawnProjectile()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">void weapons::Pistol::spawnProjectile </td>
+          <td>(</td>
+          <td class="paramtype">std::shared_ptr&lt; <a class="el" href="classentities_1_1_entity.html">Entity</a> &gt; &amp;&#160;</td>
+          <td class="paramname"><em>user</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>pos</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>v0</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>damage</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Spawn a projectile entity. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">user</td><td>the user of the weapon </td></tr>
+    <tr><td class="paramname">pos</td><td>where to </td></tr>
+    <tr><td class="paramname">v0</td><td>what speed </td></tr>
+    <tr><td class="paramname">damage</td><td>what damage </td></tr>
+  </table>
+  </dd>
+</dl>
+
+<p>Implements <a class="el" href="classweapons_1_1_ranged_weapon.html#a6b6b8265efc6ecf60e36ab261fe6f360">weapons::RangedWeapon</a>.</p>
+
+<p class="definition">Definition at line <a class="el" href="_pistol_8cpp_source.html#l00015">15</a> of file <a class="el" href="_pistol_8cpp_source.html">Pistol.cpp</a>.</p>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following files:<ul>
+<li>C:/Users/kosmx/Documents/GitHub/2d-game/<a class="el" href="_pistol_8h_source.html">Pistol.h</a></li>
+<li>C:/Users/kosmx/Documents/GitHub/2d-game/<a class="el" href="_pistol_8cpp_source.html">Pistol.cpp</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/classweapons_1_1_pistol.png b/doxy/html/classweapons_1_1_pistol.png
new file mode 100644
index 0000000000000000000000000000000000000000..e3f532461eece2e06b217a5990a77a575242fd12
Binary files /dev/null and b/doxy/html/classweapons_1_1_pistol.png differ
diff --git a/doxy/html/classweapons_1_1_ranged_weapon-members.html b/doxy/html/classweapons_1_1_ranged_weapon-members.html
new file mode 100644
index 0000000000000000000000000000000000000000..26efec85a52f9e55dfa865e31b842f7ec56fe102
--- /dev/null
+++ b/doxy/html/classweapons_1_1_ranged_weapon-members.html
@@ -0,0 +1,117 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="namespaceweapons.html">weapons</a></li><li class="navelem"><a class="el" href="classweapons_1_1_ranged_weapon.html">RangedWeapon</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">weapons::RangedWeapon Member List</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="classweapons_1_1_ranged_weapon.html">weapons::RangedWeapon</a>, including all inherited members.</p>
+<table class="directory">
+  <tr class="even"><td class="entry"><a class="el" href="classweapons_1_1_weapon.html#a27456b08c51df0759ae0155b9f79e336">baseDamage</a></td><td class="entry"><a class="el" href="classweapons_1_1_weapon.html">weapons::Weapon</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classweapons_1_1_weapon.html#aaf97827d27191b7b437ef1be96d6ac2c">canBeRemoved</a>() const override</td><td class="entry"><a class="el" href="classweapons_1_1_weapon.html">weapons::Weapon</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classweapons_1_1_weapon.html#aa3529d6c0160f61132fc7bb1b9284a02">cooldown</a></td><td class="entry"><a class="el" href="classweapons_1_1_weapon.html">weapons::Weapon</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classweapons_1_1_weapon.html#aa3d78dae766eee8279326026dbb46f1f">cooldownTime</a></td><td class="entry"><a class="el" href="classweapons_1_1_weapon.html">weapons::Weapon</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classweapons_1_1_weapon.html#a397c372ffe2838f7c9c1ce67c06e55a9">damage</a>(int damage, Entity &amp;attacker) override</td><td class="entry"><a class="el" href="classweapons_1_1_weapon.html">weapons::Weapon</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classweapons_1_1_ranged_weapon.html#acf33d7619066026e823986ec5ec51a97">emgun</a></td><td class="entry"><a class="el" href="classweapons_1_1_ranged_weapon.html">weapons::RangedWeapon</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classentities_1_1_entity.html#a539ddef34b718b6068df421f316f4a6d">Entity</a>(const olc::vf2d &amp;pos)</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">explicit</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classentities_1_1_entity.html#a94d18db8d502d677b6f4215dc1e1d820">getCollision</a>(const Entity &amp;other)</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classweapons_1_1_weapon.html#a9626ba57d509b1ee0fbe7f900d5181c6">getCooldownBar</a>()</td><td class="entry"><a class="el" href="classweapons_1_1_weapon.html">weapons::Weapon</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classweapons_1_1_weapon.html#a862bd61cf947a91809b423304885cf66">getHitBoxSize</a>() const override</td><td class="entry"><a class="el" href="classweapons_1_1_weapon.html">weapons::Weapon</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classentities_1_1_entity.html#a8c4b0c1eb69a673619e4c8943ef34f86">getName</a>() const</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classentities_1_1_entity.html#a799a692b988248dd23d207b95e7fe2b7">getPos</a>() const</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classweapons_1_1_weapon.html#a3f84544c15d6220252c6175fdfe5c61d">getSecondaryBar</a>()</td><td class="entry"><a class="el" href="classweapons_1_1_weapon.html">weapons::Weapon</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classentities_1_1_entity.html#ac60e9beb5a45fc65120e9779e680c04b">getSize</a>() const</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classentities_1_1_entity.html#afd80ddceccb36b87d0d80dcc7f88fc3b">init</a>(GameClient &amp;client)</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classentities_1_1_entity.html#aedac7bb35b729e4a02c582b9f4369ab8">is_alive</a></td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classentities_1_1_entity.html#a1453bca3376a185aa54135dd4958b244">is_initialized</a></td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classentities_1_1_entity.html#ab0ee90a84f2163b600e603f24cff046f">isAlive</a>() const</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classentities_1_1_entity.html#ab010066d52a02c63908f70ff6ef7d873">isInitialized</a>()</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classweapons_1_1_weapon.html#aba025076ad5e6fae2f9b9d40f4ef815d">isPickedUp</a></td><td class="entry"><a class="el" href="classweapons_1_1_weapon.html">weapons::Weapon</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classweapons_1_1_weapon.html#a3dab7574419aed48f2a0f2d54cfcd825">name</a></td><td class="entry"><a class="el" href="classweapons_1_1_weapon.html">weapons::Weapon</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classentities_1_1_entity.html#ad0a172ff99a7e73aaaee3658d5e3ae08">operator WallEntity *</a>()</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classweapons_1_1_ranged_weapon.html#a2c916fa61105c656187e1f6f41fa4fab">pistol</a></td><td class="entry"><a class="el" href="classweapons_1_1_ranged_weapon.html">weapons::RangedWeapon</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classentities_1_1_entity.html#a04f9c2febe8d435138a07eb2f48ba96b">pos</a></td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classweapons_1_1_ranged_weapon.html#a299d09c213670d80f7215e2310c92889">projectileSpeed</a></td><td class="entry"><a class="el" href="classweapons_1_1_ranged_weapon.html">weapons::RangedWeapon</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classweapons_1_1_ranged_weapon.html#add8afffc63175911e5f81b3ce43d135f">RangedWeapon</a>(render::ITexture &amp;texture, float cooldownTime, int damage, float projectileSpeed=10, const std::string &amp;name=&quot;RangedWeapon&quot;, const olc::vf2d &amp;pos={ 0, 0 })</td><td class="entry"><a class="el" href="classweapons_1_1_ranged_weapon.html">weapons::RangedWeapon</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classentities_1_1_entity.html#abcc4364b5b7250f0364f3550a618b3ab">render</a>(olc::TransformedView &amp;scene)</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classweapons_1_1_weapon.html#ace9c44751879af7382585c3338d4bc47">setPickUp</a>(bool bl)</td><td class="entry"><a class="el" href="classweapons_1_1_weapon.html">weapons::Weapon</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classweapons_1_1_weapon.html#a34c39bfa9cdb2d7483bc340300e8a2d9">setPos</a>(const olc::vf2d &amp;newPos)</td><td class="entry"><a class="el" href="classweapons_1_1_weapon.html">weapons::Weapon</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classweapons_1_1_ranged_weapon.html#a6b6b8265efc6ecf60e36ab261fe6f360">spawnProjectile</a>(std::shared_ptr&lt; Entity &gt; &amp;user, const olc::vf2d &amp;pos, const olc::vf2d &amp;v0, int damage)=0</td><td class="entry"><a class="el" href="classweapons_1_1_ranged_weapon.html">weapons::RangedWeapon</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">pure virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classweapons_1_1_weapon.html#a92ae1db47ca866d828f8b09c6de5a3f6">tick</a>(GameClient &amp;client, float deltaT, std::shared_ptr&lt; Entity &gt; &amp;shared_this) override</td><td class="entry"><a class="el" href="classweapons_1_1_weapon.html">weapons::Weapon</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classweapons_1_1_weapon.html#a1cbf391f196bd151f3e3f1ae1e316088">update</a>(float dTick)</td><td class="entry"><a class="el" href="classweapons_1_1_weapon.html">weapons::Weapon</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classweapons_1_1_ranged_weapon.html#a0e8915ad79021eb8fd79a1a3d7b1c92c">use</a>(std::shared_ptr&lt; Entity &gt; user, const olc::vf2d &amp;direction) override</td><td class="entry"><a class="el" href="classweapons_1_1_ranged_weapon.html">weapons::RangedWeapon</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classweapons_1_1_weapon.html#a28f7b716212ae6b4606cff82501e00a2">Weapon</a>(render::ITexture &amp;texture, float cooldownTime, int damage=10, const std::string &amp;name=&quot;Weapon&quot;, const olc::vf2d &amp;pos={ 0, 0 })</td><td class="entry"><a class="el" href="classweapons_1_1_weapon.html">weapons::Weapon</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classentities_1_1_entity.html#a64d968c160dee2fdfca68aff2e49946b">~Entity</a>()=default</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+</table></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/classweapons_1_1_ranged_weapon.html b/doxy/html/classweapons_1_1_ranged_weapon.html
new file mode 100644
index 0000000000000000000000000000000000000000..75f96a070a531917d726266934580e1833df92bc
--- /dev/null
+++ b/doxy/html/classweapons_1_1_ranged_weapon.html
@@ -0,0 +1,447 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: weapons::RangedWeapon Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="namespaceweapons.html">weapons</a></li><li class="navelem"><a class="el" href="classweapons_1_1_ranged_weapon.html">RangedWeapon</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="#pub-static-attribs">Static Public Attributes</a> &#124;
+<a href="#pro-methods">Protected Member Functions</a> &#124;
+<a href="#pro-attribs">Protected Attributes</a> &#124;
+<a href="classweapons_1_1_ranged_weapon-members.html">List of all members</a>  </div>
+  <div class="headertitle">
+<div class="title">weapons::RangedWeapon Class Reference<span class="mlabels"><span class="mlabel">abstract</span></span></div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Any weapon, what does shoot. not melee.  
+ <a href="classweapons_1_1_ranged_weapon.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="_ranged_weapon_8h_source.html">RangedWeapon.h</a>&gt;</code></p>
+<div class="dynheader">
+Inheritance diagram for weapons::RangedWeapon:</div>
+<div class="dyncontent">
+ <div class="center">
+  <img src="classweapons_1_1_ranged_weapon.png" usemap="#weapons::RangedWeapon_map" alt=""/>
+  <map id="weapons::RangedWeapon_map" name="weapons::RangedWeapon_map">
+<area href="classweapons_1_1_weapon.html" title="You can throw it to the ground, this is why it&#39;s an entity. But it will be possible to use it...." alt="weapons::Weapon" shape="rect" coords="0,56,157,80"/>
+<area href="classentities_1_1_entity.html" title="Every object, what can be on the map." alt="entities::Entity" shape="rect" coords="0,0,157,24"/>
+<area href="classweapons_1_1_pistol.html" title="Just a pistol, nothing too dangerous." alt="weapons::Pistol" shape="rect" coords="0,168,157,192"/>
+<area href="classweapons_1_1_e_m_gun.html" title="Weapon with energy level." alt="weapons::EMGun" shape="rect" coords="0,224,157,248"/>
+<area href="classweapons_1_1_glitch_gun.html" title="TODO make the bug weapon more buggy." alt="weapons::GlitchGun" shape="rect" coords="0,280,157,304"/>
+  </map>
+</div></div>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr class="memitem:add8afffc63175911e5f81b3ce43d135f"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_ranged_weapon.html#add8afffc63175911e5f81b3ce43d135f">RangedWeapon</a> (<a class="el" href="classrender_1_1_i_texture.html">render::ITexture</a> &amp;texture, float <a class="el" href="classweapons_1_1_weapon.html#aa3d78dae766eee8279326026dbb46f1f">cooldownTime</a>, int <a class="el" href="classweapons_1_1_weapon.html#a397c372ffe2838f7c9c1ce67c06e55a9">damage</a>, float <a class="el" href="classweapons_1_1_ranged_weapon.html#a299d09c213670d80f7215e2310c92889">projectileSpeed</a>=10, const std::string &amp;<a class="el" href="classweapons_1_1_weapon.html#a3dab7574419aed48f2a0f2d54cfcd825">name</a>=&quot;RangedWeapon&quot;, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;<a class="el" href="classentities_1_1_entity.html#a04f9c2febe8d435138a07eb2f48ba96b">pos</a>={ 0, 0 })</td></tr>
+<tr class="separator:add8afffc63175911e5f81b3ce43d135f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0e8915ad79021eb8fd79a1a3d7b1c92c"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_ranged_weapon.html#a0e8915ad79021eb8fd79a1a3d7b1c92c">use</a> (std::shared_ptr&lt; <a class="el" href="classentities_1_1_entity.html">Entity</a> &gt; user, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;direction) override</td></tr>
+<tr class="separator:a0e8915ad79021eb8fd79a1a3d7b1c92c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pub_methods_classweapons_1_1_weapon"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classweapons_1_1_weapon')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classweapons_1_1_weapon.html">weapons::Weapon</a></td></tr>
+<tr class="memitem:a28f7b716212ae6b4606cff82501e00a2 inherit pub_methods_classweapons_1_1_weapon"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_weapon.html#a28f7b716212ae6b4606cff82501e00a2">Weapon</a> (<a class="el" href="classrender_1_1_i_texture.html">render::ITexture</a> &amp;texture, float <a class="el" href="classweapons_1_1_weapon.html#aa3d78dae766eee8279326026dbb46f1f">cooldownTime</a>, int <a class="el" href="classweapons_1_1_weapon.html#a397c372ffe2838f7c9c1ce67c06e55a9">damage</a>=10, const std::string &amp;<a class="el" href="classweapons_1_1_weapon.html#a3dab7574419aed48f2a0f2d54cfcd825">name</a>=&quot;Weapon&quot;, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;<a class="el" href="classentities_1_1_entity.html#a04f9c2febe8d435138a07eb2f48ba96b">pos</a>={ 0, 0 })</td></tr>
+<tr class="separator:a28f7b716212ae6b4606cff82501e00a2 inherit pub_methods_classweapons_1_1_weapon"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a92ae1db47ca866d828f8b09c6de5a3f6 inherit pub_methods_classweapons_1_1_weapon"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_weapon.html#a92ae1db47ca866d828f8b09c6de5a3f6">tick</a> (<a class="el" href="class_game_client.html">GameClient</a> &amp;client, float deltaT, std::shared_ptr&lt; <a class="el" href="classentities_1_1_entity.html">Entity</a> &gt; &amp;shared_this) override</td></tr>
+<tr class="memdesc:a92ae1db47ca866d828f8b09c6de5a3f6 inherit pub_methods_classweapons_1_1_weapon"><td class="mdescLeft">&#160;</td><td class="mdescRight">tick, if on the ground. It does charge energy, or whatever.  <a href="classweapons_1_1_weapon.html#a92ae1db47ca866d828f8b09c6de5a3f6">More...</a><br /></td></tr>
+<tr class="separator:a92ae1db47ca866d828f8b09c6de5a3f6 inherit pub_methods_classweapons_1_1_weapon"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1cbf391f196bd151f3e3f1ae1e316088 inherit pub_methods_classweapons_1_1_weapon"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_weapon.html#a1cbf391f196bd151f3e3f1ae1e316088">update</a> (float dTick)</td></tr>
+<tr class="memdesc:a1cbf391f196bd151f3e3f1ae1e316088 inherit pub_methods_classweapons_1_1_weapon"><td class="mdescLeft">&#160;</td><td class="mdescRight">Update the weapon in a Character's inventory.  <a href="classweapons_1_1_weapon.html#a1cbf391f196bd151f3e3f1ae1e316088">More...</a><br /></td></tr>
+<tr class="separator:a1cbf391f196bd151f3e3f1ae1e316088 inherit pub_methods_classweapons_1_1_weapon"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9626ba57d509b1ee0fbe7f900d5181c6 inherit pub_methods_classweapons_1_1_weapon"><td class="memItemLeft" align="right" valign="top">virtual float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_weapon.html#a9626ba57d509b1ee0fbe7f900d5181c6">getCooldownBar</a> ()</td></tr>
+<tr class="memdesc:a9626ba57d509b1ee0fbe7f900d5181c6 inherit pub_methods_classweapons_1_1_weapon"><td class="mdescLeft">&#160;</td><td class="mdescRight">0 - 1 cooldown, 1 is ready to use, more than one makes sense, like 2 charges  <a href="classweapons_1_1_weapon.html#a9626ba57d509b1ee0fbe7f900d5181c6">More...</a><br /></td></tr>
+<tr class="separator:a9626ba57d509b1ee0fbe7f900d5181c6 inherit pub_methods_classweapons_1_1_weapon"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aaf97827d27191b7b437ef1be96d6ac2c inherit pub_methods_classweapons_1_1_weapon"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_weapon.html#aaf97827d27191b7b437ef1be96d6ac2c">canBeRemoved</a> () const override</td></tr>
+<tr class="memdesc:aaf97827d27191b7b437ef1be96d6ac2c inherit pub_methods_classweapons_1_1_weapon"><td class="mdescLeft">&#160;</td><td class="mdescRight">Can be removed form the ground.  <a href="classweapons_1_1_weapon.html#aaf97827d27191b7b437ef1be96d6ac2c">More...</a><br /></td></tr>
+<tr class="separator:aaf97827d27191b7b437ef1be96d6ac2c inherit pub_methods_classweapons_1_1_weapon"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ace9c44751879af7382585c3338d4bc47 inherit pub_methods_classweapons_1_1_weapon"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_weapon.html#ace9c44751879af7382585c3338d4bc47">setPickUp</a> (bool bl)</td></tr>
+<tr class="memdesc:ace9c44751879af7382585c3338d4bc47 inherit pub_methods_classweapons_1_1_weapon"><td class="mdescLeft">&#160;</td><td class="mdescRight">Mutator to isPickedUp.  <a href="classweapons_1_1_weapon.html#ace9c44751879af7382585c3338d4bc47">More...</a><br /></td></tr>
+<tr class="separator:ace9c44751879af7382585c3338d4bc47 inherit pub_methods_classweapons_1_1_weapon"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3f84544c15d6220252c6175fdfe5c61d inherit pub_methods_classweapons_1_1_weapon"><td class="memItemLeft" align="right" valign="top">virtual float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_weapon.html#a3f84544c15d6220252c6175fdfe5c61d">getSecondaryBar</a> ()</td></tr>
+<tr class="memdesc:a3f84544c15d6220252c6175fdfe5c61d inherit pub_methods_classweapons_1_1_weapon"><td class="mdescLeft">&#160;</td><td class="mdescRight">Secondary charge bar. for some purpose.  <a href="classweapons_1_1_weapon.html#a3f84544c15d6220252c6175fdfe5c61d">More...</a><br /></td></tr>
+<tr class="separator:a3f84544c15d6220252c6175fdfe5c61d inherit pub_methods_classweapons_1_1_weapon"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a34c39bfa9cdb2d7483bc340300e8a2d9 inherit pub_methods_classweapons_1_1_weapon"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_weapon.html#a34c39bfa9cdb2d7483bc340300e8a2d9">setPos</a> (const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;newPos)</td></tr>
+<tr class="separator:a34c39bfa9cdb2d7483bc340300e8a2d9 inherit pub_methods_classweapons_1_1_weapon"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a397c372ffe2838f7c9c1ce67c06e55a9 inherit pub_methods_classweapons_1_1_weapon"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_weapon.html#a397c372ffe2838f7c9c1ce67c06e55a9">damage</a> (int damage, <a class="el" href="classentities_1_1_entity.html">Entity</a> &amp;attacker) override</td></tr>
+<tr class="memdesc:a397c372ffe2838f7c9c1ce67c06e55a9 inherit pub_methods_classweapons_1_1_weapon"><td class="mdescLeft">&#160;</td><td class="mdescRight">something damage this  <a href="classweapons_1_1_weapon.html#a397c372ffe2838f7c9c1ce67c06e55a9">More...</a><br /></td></tr>
+<tr class="separator:a397c372ffe2838f7c9c1ce67c06e55a9 inherit pub_methods_classweapons_1_1_weapon"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pub_methods_classentities_1_1_entity"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classentities_1_1_entity')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td></tr>
+<tr class="memitem:a539ddef34b718b6068df421f316f4a6d inherit pub_methods_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#a539ddef34b718b6068df421f316f4a6d">Entity</a> (const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;<a class="el" href="classentities_1_1_entity.html#a04f9c2febe8d435138a07eb2f48ba96b">pos</a>)</td></tr>
+<tr class="separator:a539ddef34b718b6068df421f316f4a6d inherit pub_methods_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afd80ddceccb36b87d0d80dcc7f88fc3b inherit pub_methods_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#afd80ddceccb36b87d0d80dcc7f88fc3b">init</a> (<a class="el" href="class_game_client.html">GameClient</a> &amp;client)</td></tr>
+<tr class="separator:afd80ddceccb36b87d0d80dcc7f88fc3b inherit pub_methods_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab010066d52a02c63908f70ff6ef7d873 inherit pub_methods_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#ab010066d52a02c63908f70ff6ef7d873">isInitialized</a> ()</td></tr>
+<tr class="separator:ab010066d52a02c63908f70ff6ef7d873 inherit pub_methods_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a799a692b988248dd23d207b95e7fe2b7 inherit pub_methods_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#a799a692b988248dd23d207b95e7fe2b7">getPos</a> () const</td></tr>
+<tr class="separator:a799a692b988248dd23d207b95e7fe2b7 inherit pub_methods_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac60e9beb5a45fc65120e9779e680c04b inherit pub_methods_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#ac60e9beb5a45fc65120e9779e680c04b">getSize</a> () const</td></tr>
+<tr class="memdesc:ac60e9beb5a45fc65120e9779e680c04b inherit pub_methods_classentities_1_1_entity"><td class="mdescLeft">&#160;</td><td class="mdescRight">get it's size to render  <a href="classentities_1_1_entity.html#ac60e9beb5a45fc65120e9779e680c04b">More...</a><br /></td></tr>
+<tr class="separator:ac60e9beb5a45fc65120e9779e680c04b inherit pub_methods_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab0ee90a84f2163b600e603f24cff046f inherit pub_methods_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#ab0ee90a84f2163b600e603f24cff046f">isAlive</a> () const</td></tr>
+<tr class="separator:ab0ee90a84f2163b600e603f24cff046f inherit pub_methods_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abcc4364b5b7250f0364f3550a618b3ab inherit pub_methods_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#abcc4364b5b7250f0364f3550a618b3ab">render</a> (<a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a> &amp;scene)</td></tr>
+<tr class="memdesc:abcc4364b5b7250f0364f3550a618b3ab inherit pub_methods_classentities_1_1_entity"><td class="mdescLeft">&#160;</td><td class="mdescRight">render  <a href="classentities_1_1_entity.html#abcc4364b5b7250f0364f3550a618b3ab">More...</a><br /></td></tr>
+<tr class="separator:abcc4364b5b7250f0364f3550a618b3ab inherit pub_methods_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8c4b0c1eb69a673619e4c8943ef34f86 inherit pub_methods_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">virtual std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#a8c4b0c1eb69a673619e4c8943ef34f86">getName</a> () const</td></tr>
+<tr class="separator:a8c4b0c1eb69a673619e4c8943ef34f86 inherit pub_methods_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a64d968c160dee2fdfca68aff2e49946b inherit pub_methods_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#a64d968c160dee2fdfca68aff2e49946b">~Entity</a> ()=default</td></tr>
+<tr class="separator:a64d968c160dee2fdfca68aff2e49946b inherit pub_methods_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad0a172ff99a7e73aaaee3658d5e3ae08 inherit pub_methods_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#ad0a172ff99a7e73aaaee3658d5e3ae08">operator WallEntity *</a> ()</td></tr>
+<tr class="separator:ad0a172ff99a7e73aaaee3658d5e3ae08 inherit pub_methods_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-attribs"></a>
+Static Public Attributes</h2></td></tr>
+<tr class="memitem:a2c916fa61105c656187e1f6f41fa4fab"><td class="memItemLeft" align="right" valign="top">static const <a class="el" href="classweapons_1_1_pistol.html">Pistol</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_ranged_weapon.html#a2c916fa61105c656187e1f6f41fa4fab">pistol</a></td></tr>
+<tr class="separator:a2c916fa61105c656187e1f6f41fa4fab"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:acf33d7619066026e823986ec5ec51a97"><td class="memItemLeft" align="right" valign="top">static const <a class="el" href="classweapons_1_1_e_m_gun.html">EMGun</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_ranged_weapon.html#acf33d7619066026e823986ec5ec51a97">emgun</a></td></tr>
+<tr class="separator:acf33d7619066026e823986ec5ec51a97"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
+Protected Member Functions</h2></td></tr>
+<tr class="memitem:a6b6b8265efc6ecf60e36ab261fe6f360"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_ranged_weapon.html#a6b6b8265efc6ecf60e36ab261fe6f360">spawnProjectile</a> (std::shared_ptr&lt; <a class="el" href="classentities_1_1_entity.html">Entity</a> &gt; &amp;user, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;<a class="el" href="classentities_1_1_entity.html#a04f9c2febe8d435138a07eb2f48ba96b">pos</a>, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;v0, int <a class="el" href="classweapons_1_1_weapon.html#a397c372ffe2838f7c9c1ce67c06e55a9">damage</a>)=0</td></tr>
+<tr class="memdesc:a6b6b8265efc6ecf60e36ab261fe6f360"><td class="mdescLeft">&#160;</td><td class="mdescRight">Spawn a projectile entity.  <a href="classweapons_1_1_ranged_weapon.html#a6b6b8265efc6ecf60e36ab261fe6f360">More...</a><br /></td></tr>
+<tr class="separator:a6b6b8265efc6ecf60e36ab261fe6f360"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_methods_classweapons_1_1_weapon"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classweapons_1_1_weapon')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="classweapons_1_1_weapon.html">weapons::Weapon</a></td></tr>
+<tr class="memitem:a862bd61cf947a91809b423304885cf66 inherit pro_methods_classweapons_1_1_weapon"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_weapon.html#a862bd61cf947a91809b423304885cf66">getHitBoxSize</a> () const override</td></tr>
+<tr class="memdesc:a862bd61cf947a91809b423304885cf66 inherit pro_methods_classweapons_1_1_weapon"><td class="mdescLeft">&#160;</td><td class="mdescRight">half hitbox size  <a href="classweapons_1_1_weapon.html#a862bd61cf947a91809b423304885cf66">More...</a><br /></td></tr>
+<tr class="separator:a862bd61cf947a91809b423304885cf66 inherit pro_methods_classweapons_1_1_weapon"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_methods_classentities_1_1_entity"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classentities_1_1_entity')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td></tr>
+<tr class="memitem:a94d18db8d502d677b6f4215dc1e1d820 inherit pro_methods_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#a94d18db8d502d677b6f4215dc1e1d820">getCollision</a> (const <a class="el" href="classentities_1_1_entity.html">Entity</a> &amp;other)</td></tr>
+<tr class="memdesc:a94d18db8d502d677b6f4215dc1e1d820 inherit pro_methods_classentities_1_1_entity"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate collision with another <a class="el" href="classentities_1_1_entity.html" title="Every object, what can be on the map.">Entity</a>, how much should this entity move, to avoid the collision.  <a href="classentities_1_1_entity.html#a94d18db8d502d677b6f4215dc1e1d820">More...</a><br /></td></tr>
+<tr class="separator:a94d18db8d502d677b6f4215dc1e1d820 inherit pro_methods_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-attribs"></a>
+Protected Attributes</h2></td></tr>
+<tr class="memitem:a299d09c213670d80f7215e2310c92889"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_ranged_weapon.html#a299d09c213670d80f7215e2310c92889">projectileSpeed</a></td></tr>
+<tr class="separator:a299d09c213670d80f7215e2310c92889"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_attribs_classweapons_1_1_weapon"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_classweapons_1_1_weapon')"><img src="closed.png" alt="-"/>&#160;Protected Attributes inherited from <a class="el" href="classweapons_1_1_weapon.html">weapons::Weapon</a></td></tr>
+<tr class="memitem:aa3529d6c0160f61132fc7bb1b9284a02 inherit pro_attribs_classweapons_1_1_weapon"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_weapon.html#aa3529d6c0160f61132fc7bb1b9284a02">cooldown</a></td></tr>
+<tr class="separator:aa3529d6c0160f61132fc7bb1b9284a02 inherit pro_attribs_classweapons_1_1_weapon"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa3d78dae766eee8279326026dbb46f1f inherit pro_attribs_classweapons_1_1_weapon"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_weapon.html#aa3d78dae766eee8279326026dbb46f1f">cooldownTime</a></td></tr>
+<tr class="separator:aa3d78dae766eee8279326026dbb46f1f inherit pro_attribs_classweapons_1_1_weapon"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a27456b08c51df0759ae0155b9f79e336 inherit pro_attribs_classweapons_1_1_weapon"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_weapon.html#a27456b08c51df0759ae0155b9f79e336">baseDamage</a></td></tr>
+<tr class="separator:a27456b08c51df0759ae0155b9f79e336 inherit pro_attribs_classweapons_1_1_weapon"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3dab7574419aed48f2a0f2d54cfcd825 inherit pro_attribs_classweapons_1_1_weapon"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_weapon.html#a3dab7574419aed48f2a0f2d54cfcd825">name</a></td></tr>
+<tr class="separator:a3dab7574419aed48f2a0f2d54cfcd825 inherit pro_attribs_classweapons_1_1_weapon"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aba025076ad5e6fae2f9b9d40f4ef815d inherit pro_attribs_classweapons_1_1_weapon"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_weapon.html#aba025076ad5e6fae2f9b9d40f4ef815d">isPickedUp</a> = false</td></tr>
+<tr class="memdesc:aba025076ad5e6fae2f9b9d40f4ef815d inherit pro_attribs_classweapons_1_1_weapon"><td class="mdescLeft">&#160;</td><td class="mdescRight">Is on the ground, or in an entity's inventory.  <a href="classweapons_1_1_weapon.html#aba025076ad5e6fae2f9b9d40f4ef815d">More...</a><br /></td></tr>
+<tr class="separator:aba025076ad5e6fae2f9b9d40f4ef815d inherit pro_attribs_classweapons_1_1_weapon"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_attribs_classentities_1_1_entity"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_classentities_1_1_entity')"><img src="closed.png" alt="-"/>&#160;Protected Attributes inherited from <a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td></tr>
+<tr class="memitem:a04f9c2febe8d435138a07eb2f48ba96b inherit pro_attribs_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#a04f9c2febe8d435138a07eb2f48ba96b">pos</a></td></tr>
+<tr class="memdesc:a04f9c2febe8d435138a07eb2f48ba96b inherit pro_attribs_classentities_1_1_entity"><td class="mdescLeft">&#160;</td><td class="mdescRight">it's position  <a href="classentities_1_1_entity.html#a04f9c2febe8d435138a07eb2f48ba96b">More...</a><br /></td></tr>
+<tr class="separator:a04f9c2febe8d435138a07eb2f48ba96b inherit pro_attribs_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1453bca3376a185aa54135dd4958b244 inherit pro_attribs_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#a1453bca3376a185aa54135dd4958b244">is_initialized</a></td></tr>
+<tr class="memdesc:a1453bca3376a185aa54135dd4958b244 inherit pro_attribs_classentities_1_1_entity"><td class="mdescLeft">&#160;</td><td class="mdescRight">well, is initialized  <a href="classentities_1_1_entity.html#a1453bca3376a185aa54135dd4958b244">More...</a><br /></td></tr>
+<tr class="separator:a1453bca3376a185aa54135dd4958b244 inherit pro_attribs_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aedac7bb35b729e4a02c582b9f4369ab8 inherit pro_attribs_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#aedac7bb35b729e4a02c582b9f4369ab8">is_alive</a></td></tr>
+<tr class="memdesc:aedac7bb35b729e4a02c582b9f4369ab8 inherit pro_attribs_classentities_1_1_entity"><td class="mdescLeft">&#160;</td><td class="mdescRight">true, if it is alive  <a href="classentities_1_1_entity.html#aedac7bb35b729e4a02c582b9f4369ab8">More...</a><br /></td></tr>
+<tr class="separator:aedac7bb35b729e4a02c582b9f4369ab8 inherit pro_attribs_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Any weapon, what does shoot. not melee. </p>
+
+<p class="definition">Definition at line <a class="el" href="_ranged_weapon_8h_source.html#l00012">12</a> of file <a class="el" href="_ranged_weapon_8h_source.html">RangedWeapon.h</a>.</p>
+</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
+<a id="add8afffc63175911e5f81b3ce43d135f"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#add8afffc63175911e5f81b3ce43d135f">&#9670;&nbsp;</a></span>RangedWeapon()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">weapons::RangedWeapon::RangedWeapon </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="classrender_1_1_i_texture.html">render::ITexture</a> &amp;&#160;</td>
+          <td class="paramname"><em>texture</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>cooldownTime</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>damage</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>projectileSpeed</em> = <code>10</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const std::string &amp;&#160;</td>
+          <td class="paramname"><em>name</em> = <code>&quot;RangedWeapon&quot;</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>pos</em> = <code>{&#160;0,&#160;0&#160;}</code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="_ranged_weapon_8cpp_source.html#l00007">7</a> of file <a class="el" href="_ranged_weapon_8cpp_source.html">RangedWeapon.cpp</a>.</p>
+
+</div>
+</div>
+<h2 class="groupheader">Member Function Documentation</h2>
+<a id="a6b6b8265efc6ecf60e36ab261fe6f360"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a6b6b8265efc6ecf60e36ab261fe6f360">&#9670;&nbsp;</a></span>spawnProjectile()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">virtual void weapons::RangedWeapon::spawnProjectile </td>
+          <td>(</td>
+          <td class="paramtype">std::shared_ptr&lt; <a class="el" href="classentities_1_1_entity.html">Entity</a> &gt; &amp;&#160;</td>
+          <td class="paramname"><em>user</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>pos</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>v0</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>damage</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">pure virtual</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Spawn a projectile entity. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">user</td><td>the user of the weapon </td></tr>
+    <tr><td class="paramname">pos</td><td>where to </td></tr>
+    <tr><td class="paramname">v0</td><td>what speed </td></tr>
+    <tr><td class="paramname">damage</td><td>what damage </td></tr>
+  </table>
+  </dd>
+</dl>
+
+<p>Implemented in <a class="el" href="classweapons_1_1_pistol.html#a37f81949e55c373d7cf1f35cb59c1c25">weapons::Pistol</a>, and <a class="el" href="classweapons_1_1_glitch_gun.html#a9268757aeb63315254d6a13df8ed0ba4">weapons::GlitchGun</a>.</p>
+
+</div>
+</div>
+<a id="a0e8915ad79021eb8fd79a1a3d7b1c92c"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a0e8915ad79021eb8fd79a1a3d7b1c92c">&#9670;&nbsp;</a></span>use()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">bool weapons::RangedWeapon::use </td>
+          <td>(</td>
+          <td class="paramtype">std::shared_ptr&lt; <a class="el" href="classentities_1_1_entity.html">Entity</a> &gt;&#160;</td>
+          <td class="paramname"><em>user</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>direction</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+<dl class="section return"><dt>Returns</dt><dd>true, if you did something with it. false otherwise </dd></dl>
+
+<p>Implements <a class="el" href="classweapons_1_1_weapon.html#a8c6f12ac9ed871ebd0394f6b5c447868">weapons::Weapon</a>.</p>
+
+<p class="definition">Definition at line <a class="el" href="_ranged_weapon_8cpp_source.html#l00010">10</a> of file <a class="el" href="_ranged_weapon_8cpp_source.html">RangedWeapon.cpp</a>.</p>
+
+</div>
+</div>
+<h2 class="groupheader">Member Data Documentation</h2>
+<a id="acf33d7619066026e823986ec5ec51a97"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#acf33d7619066026e823986ec5ec51a97">&#9670;&nbsp;</a></span>emgun</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">const <a class="el" href="classweapons_1_1_e_m_gun.html">EMGun</a> weapons::RangedWeapon::emgun</td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="_ranged_weapon_8h_source.html#l00017">17</a> of file <a class="el" href="_ranged_weapon_8h_source.html">RangedWeapon.h</a>.</p>
+
+</div>
+</div>
+<a id="a2c916fa61105c656187e1f6f41fa4fab"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a2c916fa61105c656187e1f6f41fa4fab">&#9670;&nbsp;</a></span>pistol</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">const <a class="el" href="classweapons_1_1_pistol.html">Pistol</a> weapons::RangedWeapon::pistol</td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="_ranged_weapon_8h_source.html#l00016">16</a> of file <a class="el" href="_ranged_weapon_8h_source.html">RangedWeapon.h</a>.</p>
+
+</div>
+</div>
+<a id="a299d09c213670d80f7215e2310c92889"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a299d09c213670d80f7215e2310c92889">&#9670;&nbsp;</a></span>projectileSpeed</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">float weapons::RangedWeapon::projectileSpeed</td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="_ranged_weapon_8h_source.html#l00020">20</a> of file <a class="el" href="_ranged_weapon_8h_source.html">RangedWeapon.h</a>.</p>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following files:<ul>
+<li>C:/Users/kosmx/Documents/GitHub/2d-game/<a class="el" href="_ranged_weapon_8h_source.html">RangedWeapon.h</a></li>
+<li>C:/Users/kosmx/Documents/GitHub/2d-game/<a class="el" href="_ranged_weapon_8cpp_source.html">RangedWeapon.cpp</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/classweapons_1_1_ranged_weapon.png b/doxy/html/classweapons_1_1_ranged_weapon.png
new file mode 100644
index 0000000000000000000000000000000000000000..ac1c3312c2d81c0cabd0d9f91ed168c05fae3a2e
Binary files /dev/null and b/doxy/html/classweapons_1_1_ranged_weapon.png differ
diff --git a/doxy/html/classweapons_1_1_typical_melee_weapon-members.html b/doxy/html/classweapons_1_1_typical_melee_weapon-members.html
new file mode 100644
index 0000000000000000000000000000000000000000..32be8a4bf568f718c5ee93d79db41d03000a59ad
--- /dev/null
+++ b/doxy/html/classweapons_1_1_typical_melee_weapon-members.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="namespaceweapons.html">weapons</a></li><li class="navelem"><a class="el" href="classweapons_1_1_typical_melee_weapon.html">TypicalMeleeWeapon</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">weapons::TypicalMeleeWeapon Member List</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="classweapons_1_1_typical_melee_weapon.html">weapons::TypicalMeleeWeapon</a>, including all inherited members.</p>
+<table class="directory">
+  <tr class="even"><td class="entry"><a class="el" href="classweapons_1_1_typical_melee_weapon.html#af33a1ff938b8068aaab0bd0ac943ca83">attackOffset</a></td><td class="entry"><a class="el" href="classweapons_1_1_typical_melee_weapon.html">weapons::TypicalMeleeWeapon</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classweapons_1_1_weapon.html#a27456b08c51df0759ae0155b9f79e336">baseDamage</a></td><td class="entry"><a class="el" href="classweapons_1_1_weapon.html">weapons::Weapon</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classweapons_1_1_weapon.html#aaf97827d27191b7b437ef1be96d6ac2c">canBeRemoved</a>() const override</td><td class="entry"><a class="el" href="classweapons_1_1_weapon.html">weapons::Weapon</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classweapons_1_1_weapon.html#aa3529d6c0160f61132fc7bb1b9284a02">cooldown</a></td><td class="entry"><a class="el" href="classweapons_1_1_weapon.html">weapons::Weapon</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classweapons_1_1_weapon.html#aa3d78dae766eee8279326026dbb46f1f">cooldownTime</a></td><td class="entry"><a class="el" href="classweapons_1_1_weapon.html">weapons::Weapon</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classweapons_1_1_typical_melee_weapon.html#a00287ced5e67a7f91423596fac46606b">damage</a>(int damage, Entity &amp;attacker) override</td><td class="entry"><a class="el" href="classweapons_1_1_typical_melee_weapon.html">weapons::TypicalMeleeWeapon</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classweapons_1_1_melee_weapon.html#a6938e2705c6353b4b2782e8a4186de17">damageEntity</a>(std::shared_ptr&lt; Entity &gt; user, std::shared_ptr&lt; Entity &gt; &amp;victim)</td><td class="entry"><a class="el" href="classweapons_1_1_melee_weapon.html">weapons::MeleeWeapon</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classweapons_1_1_melee_weapon.html#a59a5b959539d2c71605c1b6fbec3111b">damageIf</a>(std::shared_ptr&lt; Entity &gt; &amp;user, std::function&lt; bool(std::shared_ptr&lt; Entity &gt; self, std::shared_ptr&lt; Entity &gt; other)&gt; predicate)</td><td class="entry"><a class="el" href="classweapons_1_1_melee_weapon.html">weapons::MeleeWeapon</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classentities_1_1_entity.html#a539ddef34b718b6068df421f316f4a6d">Entity</a>(const olc::vf2d &amp;pos)</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">explicit</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classentities_1_1_entity.html#a94d18db8d502d677b6f4215dc1e1d820">getCollision</a>(const Entity &amp;other)</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classweapons_1_1_weapon.html#a9626ba57d509b1ee0fbe7f900d5181c6">getCooldownBar</a>()</td><td class="entry"><a class="el" href="classweapons_1_1_weapon.html">weapons::Weapon</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classweapons_1_1_melee_weapon.html#a2636c0b628f8fa52d269bb2dab0b21bd">getDamage</a>() const</td><td class="entry"><a class="el" href="classweapons_1_1_melee_weapon.html">weapons::MeleeWeapon</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classweapons_1_1_typical_melee_weapon.html#ab60f5d99ae206d9064381b0c70b9a7a2">getHitBoxSize</a>() const override</td><td class="entry"><a class="el" href="classweapons_1_1_typical_melee_weapon.html">weapons::TypicalMeleeWeapon</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classweapons_1_1_typical_melee_weapon.html#a74cb37d45c599296e443858b73cd1d97">getHitOffset</a>() const override</td><td class="entry"><a class="el" href="classweapons_1_1_typical_melee_weapon.html">weapons::TypicalMeleeWeapon</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classentities_1_1_entity.html#a8c4b0c1eb69a673619e4c8943ef34f86">getName</a>() const</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classentities_1_1_entity.html#a799a692b988248dd23d207b95e7fe2b7">getPos</a>() const</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classweapons_1_1_typical_melee_weapon.html#ad367f50efc891a92b0f22f2404f39c5e">getPredicator</a>(const olc::vf2d &amp;direction) override</td><td class="entry"><a class="el" href="classweapons_1_1_typical_melee_weapon.html">weapons::TypicalMeleeWeapon</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classweapons_1_1_weapon.html#a3f84544c15d6220252c6175fdfe5c61d">getSecondaryBar</a>()</td><td class="entry"><a class="el" href="classweapons_1_1_weapon.html">weapons::Weapon</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classentities_1_1_entity.html#ac60e9beb5a45fc65120e9779e680c04b">getSize</a>() const</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classentities_1_1_entity.html#afd80ddceccb36b87d0d80dcc7f88fc3b">init</a>(GameClient &amp;client)</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classentities_1_1_entity.html#aedac7bb35b729e4a02c582b9f4369ab8">is_alive</a></td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classentities_1_1_entity.html#a1453bca3376a185aa54135dd4958b244">is_initialized</a></td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classentities_1_1_entity.html#ab0ee90a84f2163b600e603f24cff046f">isAlive</a>() const</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classentities_1_1_entity.html#ab010066d52a02c63908f70ff6ef7d873">isInitialized</a>()</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classweapons_1_1_weapon.html#aba025076ad5e6fae2f9b9d40f4ef815d">isPickedUp</a></td><td class="entry"><a class="el" href="classweapons_1_1_weapon.html">weapons::Weapon</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classweapons_1_1_typical_melee_weapon.html#ae623cc428bd32ef113d48d6ca15cf4c2">longSword</a></td><td class="entry"><a class="el" href="classweapons_1_1_typical_melee_weapon.html">weapons::TypicalMeleeWeapon</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classweapons_1_1_typical_melee_weapon.html#a7822572a76104d2cd2d0a21cdfa754d7">maxRange</a></td><td class="entry"><a class="el" href="classweapons_1_1_typical_melee_weapon.html">weapons::TypicalMeleeWeapon</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classweapons_1_1_melee_weapon.html#a719614055440a5e7cfaf943dab856bb1">MeleeWeapon</a>(render::ITexture &amp;texture, const std::string &amp;name, float cooldownTime, int damage=10, const olc::vf2d &amp;pos={ 0, 0 })</td><td class="entry"><a class="el" href="classweapons_1_1_melee_weapon.html">weapons::MeleeWeapon</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classweapons_1_1_weapon.html#a3dab7574419aed48f2a0f2d54cfcd825">name</a></td><td class="entry"><a class="el" href="classweapons_1_1_weapon.html">weapons::Weapon</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classentities_1_1_entity.html#ad0a172ff99a7e73aaaee3658d5e3ae08">operator WallEntity *</a>()</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classentities_1_1_entity.html#a04f9c2febe8d435138a07eb2f48ba96b">pos</a></td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classentities_1_1_entity.html#abcc4364b5b7250f0364f3550a618b3ab">render</a>(olc::TransformedView &amp;scene)</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classweapons_1_1_weapon.html#ace9c44751879af7382585c3338d4bc47">setPickUp</a>(bool bl)</td><td class="entry"><a class="el" href="classweapons_1_1_weapon.html">weapons::Weapon</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classweapons_1_1_weapon.html#a34c39bfa9cdb2d7483bc340300e8a2d9">setPos</a>(const olc::vf2d &amp;newPos)</td><td class="entry"><a class="el" href="classweapons_1_1_weapon.html">weapons::Weapon</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classweapons_1_1_typical_melee_weapon.html#a1988a389241e423445c7b0f6ff2ed23f">spoon</a></td><td class="entry"><a class="el" href="classweapons_1_1_typical_melee_weapon.html">weapons::TypicalMeleeWeapon</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classweapons_1_1_typical_melee_weapon.html#a1eed0cf1fc89f495ccad84dd4acac0eb">sword</a></td><td class="entry"><a class="el" href="classweapons_1_1_typical_melee_weapon.html">weapons::TypicalMeleeWeapon</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classweapons_1_1_weapon.html#a92ae1db47ca866d828f8b09c6de5a3f6">tick</a>(GameClient &amp;client, float deltaT, std::shared_ptr&lt; Entity &gt; &amp;shared_this) override</td><td class="entry"><a class="el" href="classweapons_1_1_weapon.html">weapons::Weapon</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classweapons_1_1_typical_melee_weapon.html#a939cbdc05adab9adf58301cce00e3f8b">TypicalMeleeWeapon</a>(render::ITexture &amp;text, const std::string &amp;name, float cooldownTime, int damage, float range, float hitOffset=.5f, const olc::vf2d &amp;pos={ 0, 0 })</td><td class="entry"><a class="el" href="classweapons_1_1_typical_melee_weapon.html">weapons::TypicalMeleeWeapon</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classweapons_1_1_weapon.html#a1cbf391f196bd151f3e3f1ae1e316088">update</a>(float dTick)</td><td class="entry"><a class="el" href="classweapons_1_1_weapon.html">weapons::Weapon</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classweapons_1_1_melee_weapon.html#ac1b9a6718cbf78cea0b9e5e0b8dcc64e">use</a>(std::shared_ptr&lt; Entity &gt; user, const olc::vf2d &amp;direction) override</td><td class="entry"><a class="el" href="classweapons_1_1_melee_weapon.html">weapons::MeleeWeapon</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classweapons_1_1_weapon.html#a28f7b716212ae6b4606cff82501e00a2">Weapon</a>(render::ITexture &amp;texture, float cooldownTime, int damage=10, const std::string &amp;name=&quot;Weapon&quot;, const olc::vf2d &amp;pos={ 0, 0 })</td><td class="entry"><a class="el" href="classweapons_1_1_weapon.html">weapons::Weapon</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classentities_1_1_entity.html#a64d968c160dee2fdfca68aff2e49946b">~Entity</a>()=default</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+</table></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/classweapons_1_1_typical_melee_weapon.html b/doxy/html/classweapons_1_1_typical_melee_weapon.html
new file mode 100644
index 0000000000000000000000000000000000000000..758f09817de5cde46828f1344df14f4a22fd59d4
--- /dev/null
+++ b/doxy/html/classweapons_1_1_typical_melee_weapon.html
@@ -0,0 +1,575 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: weapons::TypicalMeleeWeapon Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="namespaceweapons.html">weapons</a></li><li class="navelem"><a class="el" href="classweapons_1_1_typical_melee_weapon.html">TypicalMeleeWeapon</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="#pub-static-attribs">Static Public Attributes</a> &#124;
+<a href="#pro-methods">Protected Member Functions</a> &#124;
+<a href="#pro-attribs">Protected Attributes</a> &#124;
+<a href="classweapons_1_1_typical_melee_weapon-members.html">List of all members</a>  </div>
+  <div class="headertitle">
+<div class="title">weapons::TypicalMeleeWeapon Class Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>A typical melee weapon. I want to do not typical melee weapons too.  
+ <a href="classweapons_1_1_typical_melee_weapon.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="_typical_melee_weapon_8h_source.html">TypicalMeleeWeapon.h</a>&gt;</code></p>
+<div class="dynheader">
+Inheritance diagram for weapons::TypicalMeleeWeapon:</div>
+<div class="dyncontent">
+ <div class="center">
+  <img src="classweapons_1_1_typical_melee_weapon.png" usemap="#weapons::TypicalMeleeWeapon_map" alt=""/>
+  <map id="weapons::TypicalMeleeWeapon_map" name="weapons::TypicalMeleeWeapon_map">
+<area href="classweapons_1_1_melee_weapon.html" title="A melee weapon, like a spoon." alt="weapons::MeleeWeapon" shape="rect" coords="0,112,190,136"/>
+<area href="classweapons_1_1_weapon.html" title="You can throw it to the ground, this is why it&#39;s an entity. But it will be possible to use it...." alt="weapons::Weapon" shape="rect" coords="0,56,190,80"/>
+<area href="classentities_1_1_entity.html" title="Every object, what can be on the map." alt="entities::Entity" shape="rect" coords="0,0,190,24"/>
+  </map>
+</div></div>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr class="memitem:a939cbdc05adab9adf58301cce00e3f8b"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_typical_melee_weapon.html#a939cbdc05adab9adf58301cce00e3f8b">TypicalMeleeWeapon</a> (<a class="el" href="classrender_1_1_i_texture.html">render::ITexture</a> &amp;text, const std::string &amp;<a class="el" href="classweapons_1_1_weapon.html#a3dab7574419aed48f2a0f2d54cfcd825">name</a>, float <a class="el" href="classweapons_1_1_weapon.html#aa3d78dae766eee8279326026dbb46f1f">cooldownTime</a>, int <a class="el" href="classweapons_1_1_typical_melee_weapon.html#a00287ced5e67a7f91423596fac46606b">damage</a>, float range, float hitOffset=.5f, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;<a class="el" href="classentities_1_1_entity.html#a04f9c2febe8d435138a07eb2f48ba96b">pos</a>={ 0, 0 })</td></tr>
+<tr class="separator:a939cbdc05adab9adf58301cce00e3f8b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pub_methods_classweapons_1_1_melee_weapon"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classweapons_1_1_melee_weapon')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classweapons_1_1_melee_weapon.html">weapons::MeleeWeapon</a></td></tr>
+<tr class="memitem:a719614055440a5e7cfaf943dab856bb1 inherit pub_methods_classweapons_1_1_melee_weapon"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_melee_weapon.html#a719614055440a5e7cfaf943dab856bb1">MeleeWeapon</a> (<a class="el" href="classrender_1_1_i_texture.html">render::ITexture</a> &amp;texture, const std::string &amp;<a class="el" href="classweapons_1_1_weapon.html#a3dab7574419aed48f2a0f2d54cfcd825">name</a>, float <a class="el" href="classweapons_1_1_weapon.html#aa3d78dae766eee8279326026dbb46f1f">cooldownTime</a>, int <a class="el" href="classweapons_1_1_weapon.html#a397c372ffe2838f7c9c1ce67c06e55a9">damage</a>=10, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;<a class="el" href="classentities_1_1_entity.html#a04f9c2febe8d435138a07eb2f48ba96b">pos</a>={ 0, 0 })</td></tr>
+<tr class="separator:a719614055440a5e7cfaf943dab856bb1 inherit pub_methods_classweapons_1_1_melee_weapon"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac1b9a6718cbf78cea0b9e5e0b8dcc64e inherit pub_methods_classweapons_1_1_melee_weapon"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_melee_weapon.html#ac1b9a6718cbf78cea0b9e5e0b8dcc64e">use</a> (std::shared_ptr&lt; <a class="el" href="classentities_1_1_entity.html">Entity</a> &gt; user, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;direction) override</td></tr>
+<tr class="separator:ac1b9a6718cbf78cea0b9e5e0b8dcc64e inherit pub_methods_classweapons_1_1_melee_weapon"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pub_methods_classweapons_1_1_weapon"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classweapons_1_1_weapon')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classweapons_1_1_weapon.html">weapons::Weapon</a></td></tr>
+<tr class="memitem:a28f7b716212ae6b4606cff82501e00a2 inherit pub_methods_classweapons_1_1_weapon"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_weapon.html#a28f7b716212ae6b4606cff82501e00a2">Weapon</a> (<a class="el" href="classrender_1_1_i_texture.html">render::ITexture</a> &amp;texture, float <a class="el" href="classweapons_1_1_weapon.html#aa3d78dae766eee8279326026dbb46f1f">cooldownTime</a>, int <a class="el" href="classweapons_1_1_weapon.html#a397c372ffe2838f7c9c1ce67c06e55a9">damage</a>=10, const std::string &amp;<a class="el" href="classweapons_1_1_weapon.html#a3dab7574419aed48f2a0f2d54cfcd825">name</a>=&quot;Weapon&quot;, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;<a class="el" href="classentities_1_1_entity.html#a04f9c2febe8d435138a07eb2f48ba96b">pos</a>={ 0, 0 })</td></tr>
+<tr class="separator:a28f7b716212ae6b4606cff82501e00a2 inherit pub_methods_classweapons_1_1_weapon"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a92ae1db47ca866d828f8b09c6de5a3f6 inherit pub_methods_classweapons_1_1_weapon"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_weapon.html#a92ae1db47ca866d828f8b09c6de5a3f6">tick</a> (<a class="el" href="class_game_client.html">GameClient</a> &amp;client, float deltaT, std::shared_ptr&lt; <a class="el" href="classentities_1_1_entity.html">Entity</a> &gt; &amp;shared_this) override</td></tr>
+<tr class="memdesc:a92ae1db47ca866d828f8b09c6de5a3f6 inherit pub_methods_classweapons_1_1_weapon"><td class="mdescLeft">&#160;</td><td class="mdescRight">tick, if on the ground. It does charge energy, or whatever.  <a href="classweapons_1_1_weapon.html#a92ae1db47ca866d828f8b09c6de5a3f6">More...</a><br /></td></tr>
+<tr class="separator:a92ae1db47ca866d828f8b09c6de5a3f6 inherit pub_methods_classweapons_1_1_weapon"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1cbf391f196bd151f3e3f1ae1e316088 inherit pub_methods_classweapons_1_1_weapon"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_weapon.html#a1cbf391f196bd151f3e3f1ae1e316088">update</a> (float dTick)</td></tr>
+<tr class="memdesc:a1cbf391f196bd151f3e3f1ae1e316088 inherit pub_methods_classweapons_1_1_weapon"><td class="mdescLeft">&#160;</td><td class="mdescRight">Update the weapon in a Character's inventory.  <a href="classweapons_1_1_weapon.html#a1cbf391f196bd151f3e3f1ae1e316088">More...</a><br /></td></tr>
+<tr class="separator:a1cbf391f196bd151f3e3f1ae1e316088 inherit pub_methods_classweapons_1_1_weapon"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9626ba57d509b1ee0fbe7f900d5181c6 inherit pub_methods_classweapons_1_1_weapon"><td class="memItemLeft" align="right" valign="top">virtual float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_weapon.html#a9626ba57d509b1ee0fbe7f900d5181c6">getCooldownBar</a> ()</td></tr>
+<tr class="memdesc:a9626ba57d509b1ee0fbe7f900d5181c6 inherit pub_methods_classweapons_1_1_weapon"><td class="mdescLeft">&#160;</td><td class="mdescRight">0 - 1 cooldown, 1 is ready to use, more than one makes sense, like 2 charges  <a href="classweapons_1_1_weapon.html#a9626ba57d509b1ee0fbe7f900d5181c6">More...</a><br /></td></tr>
+<tr class="separator:a9626ba57d509b1ee0fbe7f900d5181c6 inherit pub_methods_classweapons_1_1_weapon"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aaf97827d27191b7b437ef1be96d6ac2c inherit pub_methods_classweapons_1_1_weapon"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_weapon.html#aaf97827d27191b7b437ef1be96d6ac2c">canBeRemoved</a> () const override</td></tr>
+<tr class="memdesc:aaf97827d27191b7b437ef1be96d6ac2c inherit pub_methods_classweapons_1_1_weapon"><td class="mdescLeft">&#160;</td><td class="mdescRight">Can be removed form the ground.  <a href="classweapons_1_1_weapon.html#aaf97827d27191b7b437ef1be96d6ac2c">More...</a><br /></td></tr>
+<tr class="separator:aaf97827d27191b7b437ef1be96d6ac2c inherit pub_methods_classweapons_1_1_weapon"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ace9c44751879af7382585c3338d4bc47 inherit pub_methods_classweapons_1_1_weapon"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_weapon.html#ace9c44751879af7382585c3338d4bc47">setPickUp</a> (bool bl)</td></tr>
+<tr class="memdesc:ace9c44751879af7382585c3338d4bc47 inherit pub_methods_classweapons_1_1_weapon"><td class="mdescLeft">&#160;</td><td class="mdescRight">Mutator to isPickedUp.  <a href="classweapons_1_1_weapon.html#ace9c44751879af7382585c3338d4bc47">More...</a><br /></td></tr>
+<tr class="separator:ace9c44751879af7382585c3338d4bc47 inherit pub_methods_classweapons_1_1_weapon"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3f84544c15d6220252c6175fdfe5c61d inherit pub_methods_classweapons_1_1_weapon"><td class="memItemLeft" align="right" valign="top">virtual float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_weapon.html#a3f84544c15d6220252c6175fdfe5c61d">getSecondaryBar</a> ()</td></tr>
+<tr class="memdesc:a3f84544c15d6220252c6175fdfe5c61d inherit pub_methods_classweapons_1_1_weapon"><td class="mdescLeft">&#160;</td><td class="mdescRight">Secondary charge bar. for some purpose.  <a href="classweapons_1_1_weapon.html#a3f84544c15d6220252c6175fdfe5c61d">More...</a><br /></td></tr>
+<tr class="separator:a3f84544c15d6220252c6175fdfe5c61d inherit pub_methods_classweapons_1_1_weapon"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a34c39bfa9cdb2d7483bc340300e8a2d9 inherit pub_methods_classweapons_1_1_weapon"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_weapon.html#a34c39bfa9cdb2d7483bc340300e8a2d9">setPos</a> (const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;newPos)</td></tr>
+<tr class="separator:a34c39bfa9cdb2d7483bc340300e8a2d9 inherit pub_methods_classweapons_1_1_weapon"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a397c372ffe2838f7c9c1ce67c06e55a9 inherit pub_methods_classweapons_1_1_weapon"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_weapon.html#a397c372ffe2838f7c9c1ce67c06e55a9">damage</a> (int damage, <a class="el" href="classentities_1_1_entity.html">Entity</a> &amp;attacker) override</td></tr>
+<tr class="memdesc:a397c372ffe2838f7c9c1ce67c06e55a9 inherit pub_methods_classweapons_1_1_weapon"><td class="mdescLeft">&#160;</td><td class="mdescRight">something damage this  <a href="classweapons_1_1_weapon.html#a397c372ffe2838f7c9c1ce67c06e55a9">More...</a><br /></td></tr>
+<tr class="separator:a397c372ffe2838f7c9c1ce67c06e55a9 inherit pub_methods_classweapons_1_1_weapon"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pub_methods_classentities_1_1_entity"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classentities_1_1_entity')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td></tr>
+<tr class="memitem:a539ddef34b718b6068df421f316f4a6d inherit pub_methods_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#a539ddef34b718b6068df421f316f4a6d">Entity</a> (const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;<a class="el" href="classentities_1_1_entity.html#a04f9c2febe8d435138a07eb2f48ba96b">pos</a>)</td></tr>
+<tr class="separator:a539ddef34b718b6068df421f316f4a6d inherit pub_methods_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afd80ddceccb36b87d0d80dcc7f88fc3b inherit pub_methods_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#afd80ddceccb36b87d0d80dcc7f88fc3b">init</a> (<a class="el" href="class_game_client.html">GameClient</a> &amp;client)</td></tr>
+<tr class="separator:afd80ddceccb36b87d0d80dcc7f88fc3b inherit pub_methods_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab010066d52a02c63908f70ff6ef7d873 inherit pub_methods_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#ab010066d52a02c63908f70ff6ef7d873">isInitialized</a> ()</td></tr>
+<tr class="separator:ab010066d52a02c63908f70ff6ef7d873 inherit pub_methods_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a799a692b988248dd23d207b95e7fe2b7 inherit pub_methods_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#a799a692b988248dd23d207b95e7fe2b7">getPos</a> () const</td></tr>
+<tr class="separator:a799a692b988248dd23d207b95e7fe2b7 inherit pub_methods_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac60e9beb5a45fc65120e9779e680c04b inherit pub_methods_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#ac60e9beb5a45fc65120e9779e680c04b">getSize</a> () const</td></tr>
+<tr class="memdesc:ac60e9beb5a45fc65120e9779e680c04b inherit pub_methods_classentities_1_1_entity"><td class="mdescLeft">&#160;</td><td class="mdescRight">get it's size to render  <a href="classentities_1_1_entity.html#ac60e9beb5a45fc65120e9779e680c04b">More...</a><br /></td></tr>
+<tr class="separator:ac60e9beb5a45fc65120e9779e680c04b inherit pub_methods_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab0ee90a84f2163b600e603f24cff046f inherit pub_methods_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#ab0ee90a84f2163b600e603f24cff046f">isAlive</a> () const</td></tr>
+<tr class="separator:ab0ee90a84f2163b600e603f24cff046f inherit pub_methods_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abcc4364b5b7250f0364f3550a618b3ab inherit pub_methods_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#abcc4364b5b7250f0364f3550a618b3ab">render</a> (<a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a> &amp;scene)</td></tr>
+<tr class="memdesc:abcc4364b5b7250f0364f3550a618b3ab inherit pub_methods_classentities_1_1_entity"><td class="mdescLeft">&#160;</td><td class="mdescRight">render  <a href="classentities_1_1_entity.html#abcc4364b5b7250f0364f3550a618b3ab">More...</a><br /></td></tr>
+<tr class="separator:abcc4364b5b7250f0364f3550a618b3ab inherit pub_methods_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8c4b0c1eb69a673619e4c8943ef34f86 inherit pub_methods_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">virtual std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#a8c4b0c1eb69a673619e4c8943ef34f86">getName</a> () const</td></tr>
+<tr class="separator:a8c4b0c1eb69a673619e4c8943ef34f86 inherit pub_methods_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a64d968c160dee2fdfca68aff2e49946b inherit pub_methods_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#a64d968c160dee2fdfca68aff2e49946b">~Entity</a> ()=default</td></tr>
+<tr class="separator:a64d968c160dee2fdfca68aff2e49946b inherit pub_methods_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad0a172ff99a7e73aaaee3658d5e3ae08 inherit pub_methods_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#ad0a172ff99a7e73aaaee3658d5e3ae08">operator WallEntity *</a> ()</td></tr>
+<tr class="separator:ad0a172ff99a7e73aaaee3658d5e3ae08 inherit pub_methods_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-attribs"></a>
+Static Public Attributes</h2></td></tr>
+<tr class="memitem:a1eed0cf1fc89f495ccad84dd4acac0eb"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classweapons_1_1_typical_melee_weapon.html">TypicalMeleeWeapon</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_typical_melee_weapon.html#a1eed0cf1fc89f495ccad84dd4acac0eb">sword</a></td></tr>
+<tr class="separator:a1eed0cf1fc89f495ccad84dd4acac0eb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae623cc428bd32ef113d48d6ca15cf4c2"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classweapons_1_1_typical_melee_weapon.html">TypicalMeleeWeapon</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_typical_melee_weapon.html#ae623cc428bd32ef113d48d6ca15cf4c2">longSword</a></td></tr>
+<tr class="separator:ae623cc428bd32ef113d48d6ca15cf4c2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1988a389241e423445c7b0f6ff2ed23f"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classweapons_1_1_typical_melee_weapon.html">TypicalMeleeWeapon</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_typical_melee_weapon.html#a1988a389241e423445c7b0f6ff2ed23f">spoon</a></td></tr>
+<tr class="separator:a1988a389241e423445c7b0f6ff2ed23f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
+Protected Member Functions</h2></td></tr>
+<tr class="memitem:ab60f5d99ae206d9064381b0c70b9a7a2"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_typical_melee_weapon.html#ab60f5d99ae206d9064381b0c70b9a7a2">getHitBoxSize</a> () const override</td></tr>
+<tr class="memdesc:ab60f5d99ae206d9064381b0c70b9a7a2"><td class="mdescLeft">&#160;</td><td class="mdescRight">half hitbox size  <a href="classweapons_1_1_typical_melee_weapon.html#ab60f5d99ae206d9064381b0c70b9a7a2">More...</a><br /></td></tr>
+<tr class="separator:ab60f5d99ae206d9064381b0c70b9a7a2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00287ced5e67a7f91423596fac46606b"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_typical_melee_weapon.html#a00287ced5e67a7f91423596fac46606b">damage</a> (int damage, <a class="el" href="classentities_1_1_entity.html">Entity</a> &amp;attacker) override</td></tr>
+<tr class="memdesc:a00287ced5e67a7f91423596fac46606b"><td class="mdescLeft">&#160;</td><td class="mdescRight">something damage this  <a href="classweapons_1_1_typical_melee_weapon.html#a00287ced5e67a7f91423596fac46606b">More...</a><br /></td></tr>
+<tr class="separator:a00287ced5e67a7f91423596fac46606b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad367f50efc891a92b0f22f2404f39c5e"><td class="memItemLeft" align="right" valign="top">std::function&lt; bool(std::shared_ptr&lt; <a class="el" href="classentities_1_1_entity.html">Entity</a> &gt;, std::shared_ptr&lt; <a class="el" href="classentities_1_1_entity.html">Entity</a> &gt;)&gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_typical_melee_weapon.html#ad367f50efc891a92b0f22f2404f39c5e">getPredicator</a> (const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;direction) override</td></tr>
+<tr class="memdesc:ad367f50efc891a92b0f22f2404f39c5e"><td class="mdescLeft">&#160;</td><td class="mdescRight">The predicate function getter for the damageIf.  <a href="classweapons_1_1_typical_melee_weapon.html#ad367f50efc891a92b0f22f2404f39c5e">More...</a><br /></td></tr>
+<tr class="separator:ad367f50efc891a92b0f22f2404f39c5e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a74cb37d45c599296e443858b73cd1d97"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_typical_melee_weapon.html#a74cb37d45c599296e443858b73cd1d97">getHitOffset</a> () const override</td></tr>
+<tr class="memdesc:a74cb37d45c599296e443858b73cd1d97"><td class="mdescLeft">&#160;</td><td class="mdescRight">the hit's center distance from the user  <a href="classweapons_1_1_typical_melee_weapon.html#a74cb37d45c599296e443858b73cd1d97">More...</a><br /></td></tr>
+<tr class="separator:a74cb37d45c599296e443858b73cd1d97"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_methods_classweapons_1_1_melee_weapon"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classweapons_1_1_melee_weapon')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="classweapons_1_1_melee_weapon.html">weapons::MeleeWeapon</a></td></tr>
+<tr class="memitem:a2636c0b628f8fa52d269bb2dab0b21bd inherit pro_methods_classweapons_1_1_melee_weapon"><td class="memItemLeft" align="right" valign="top">virtual int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_melee_weapon.html#a2636c0b628f8fa52d269bb2dab0b21bd">getDamage</a> () const</td></tr>
+<tr class="separator:a2636c0b628f8fa52d269bb2dab0b21bd inherit pro_methods_classweapons_1_1_melee_weapon"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6938e2705c6353b4b2782e8a4186de17 inherit pro_methods_classweapons_1_1_melee_weapon"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_melee_weapon.html#a6938e2705c6353b4b2782e8a4186de17">damageEntity</a> (std::shared_ptr&lt; <a class="el" href="classentities_1_1_entity.html">Entity</a> &gt; user, std::shared_ptr&lt; <a class="el" href="classentities_1_1_entity.html">Entity</a> &gt; &amp;victim)</td></tr>
+<tr class="memdesc:a6938e2705c6353b4b2782e8a4186de17 inherit pro_methods_classweapons_1_1_melee_weapon"><td class="mdescLeft">&#160;</td><td class="mdescRight">Damage the victim.  <a href="classweapons_1_1_melee_weapon.html#a6938e2705c6353b4b2782e8a4186de17">More...</a><br /></td></tr>
+<tr class="separator:a6938e2705c6353b4b2782e8a4186de17 inherit pro_methods_classweapons_1_1_melee_weapon"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a59a5b959539d2c71605c1b6fbec3111b inherit pro_methods_classweapons_1_1_melee_weapon"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_melee_weapon.html#a59a5b959539d2c71605c1b6fbec3111b">damageIf</a> (std::shared_ptr&lt; <a class="el" href="classentities_1_1_entity.html">Entity</a> &gt; &amp;user, std::function&lt; bool(std::shared_ptr&lt; <a class="el" href="classentities_1_1_entity.html">Entity</a> &gt; self, std::shared_ptr&lt; <a class="el" href="classentities_1_1_entity.html">Entity</a> &gt; other)&gt; predicate)</td></tr>
+<tr class="memdesc:a59a5b959539d2c71605c1b6fbec3111b inherit pro_methods_classweapons_1_1_melee_weapon"><td class="mdescLeft">&#160;</td><td class="mdescRight">Tries to damage every entity in a range.  <a href="classweapons_1_1_melee_weapon.html#a59a5b959539d2c71605c1b6fbec3111b">More...</a><br /></td></tr>
+<tr class="separator:a59a5b959539d2c71605c1b6fbec3111b inherit pro_methods_classweapons_1_1_melee_weapon"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_methods_classweapons_1_1_weapon"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classweapons_1_1_weapon')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="classweapons_1_1_weapon.html">weapons::Weapon</a></td></tr>
+<tr class="memitem:a862bd61cf947a91809b423304885cf66 inherit pro_methods_classweapons_1_1_weapon"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_weapon.html#a862bd61cf947a91809b423304885cf66">getHitBoxSize</a> () const override</td></tr>
+<tr class="memdesc:a862bd61cf947a91809b423304885cf66 inherit pro_methods_classweapons_1_1_weapon"><td class="mdescLeft">&#160;</td><td class="mdescRight">half hitbox size  <a href="classweapons_1_1_weapon.html#a862bd61cf947a91809b423304885cf66">More...</a><br /></td></tr>
+<tr class="separator:a862bd61cf947a91809b423304885cf66 inherit pro_methods_classweapons_1_1_weapon"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_methods_classentities_1_1_entity"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classentities_1_1_entity')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td></tr>
+<tr class="memitem:a94d18db8d502d677b6f4215dc1e1d820 inherit pro_methods_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#a94d18db8d502d677b6f4215dc1e1d820">getCollision</a> (const <a class="el" href="classentities_1_1_entity.html">Entity</a> &amp;other)</td></tr>
+<tr class="memdesc:a94d18db8d502d677b6f4215dc1e1d820 inherit pro_methods_classentities_1_1_entity"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate collision with another <a class="el" href="classentities_1_1_entity.html" title="Every object, what can be on the map.">Entity</a>, how much should this entity move, to avoid the collision.  <a href="classentities_1_1_entity.html#a94d18db8d502d677b6f4215dc1e1d820">More...</a><br /></td></tr>
+<tr class="separator:a94d18db8d502d677b6f4215dc1e1d820 inherit pro_methods_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-attribs"></a>
+Protected Attributes</h2></td></tr>
+<tr class="memitem:a7822572a76104d2cd2d0a21cdfa754d7"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_typical_melee_weapon.html#a7822572a76104d2cd2d0a21cdfa754d7">maxRange</a></td></tr>
+<tr class="separator:a7822572a76104d2cd2d0a21cdfa754d7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af33a1ff938b8068aaab0bd0ac943ca83"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_typical_melee_weapon.html#af33a1ff938b8068aaab0bd0ac943ca83">attackOffset</a></td></tr>
+<tr class="separator:af33a1ff938b8068aaab0bd0ac943ca83"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_attribs_classweapons_1_1_weapon"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_classweapons_1_1_weapon')"><img src="closed.png" alt="-"/>&#160;Protected Attributes inherited from <a class="el" href="classweapons_1_1_weapon.html">weapons::Weapon</a></td></tr>
+<tr class="memitem:aa3529d6c0160f61132fc7bb1b9284a02 inherit pro_attribs_classweapons_1_1_weapon"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_weapon.html#aa3529d6c0160f61132fc7bb1b9284a02">cooldown</a></td></tr>
+<tr class="separator:aa3529d6c0160f61132fc7bb1b9284a02 inherit pro_attribs_classweapons_1_1_weapon"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa3d78dae766eee8279326026dbb46f1f inherit pro_attribs_classweapons_1_1_weapon"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_weapon.html#aa3d78dae766eee8279326026dbb46f1f">cooldownTime</a></td></tr>
+<tr class="separator:aa3d78dae766eee8279326026dbb46f1f inherit pro_attribs_classweapons_1_1_weapon"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a27456b08c51df0759ae0155b9f79e336 inherit pro_attribs_classweapons_1_1_weapon"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_weapon.html#a27456b08c51df0759ae0155b9f79e336">baseDamage</a></td></tr>
+<tr class="separator:a27456b08c51df0759ae0155b9f79e336 inherit pro_attribs_classweapons_1_1_weapon"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3dab7574419aed48f2a0f2d54cfcd825 inherit pro_attribs_classweapons_1_1_weapon"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_weapon.html#a3dab7574419aed48f2a0f2d54cfcd825">name</a></td></tr>
+<tr class="separator:a3dab7574419aed48f2a0f2d54cfcd825 inherit pro_attribs_classweapons_1_1_weapon"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aba025076ad5e6fae2f9b9d40f4ef815d inherit pro_attribs_classweapons_1_1_weapon"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_weapon.html#aba025076ad5e6fae2f9b9d40f4ef815d">isPickedUp</a> = false</td></tr>
+<tr class="memdesc:aba025076ad5e6fae2f9b9d40f4ef815d inherit pro_attribs_classweapons_1_1_weapon"><td class="mdescLeft">&#160;</td><td class="mdescRight">Is on the ground, or in an entity's inventory.  <a href="classweapons_1_1_weapon.html#aba025076ad5e6fae2f9b9d40f4ef815d">More...</a><br /></td></tr>
+<tr class="separator:aba025076ad5e6fae2f9b9d40f4ef815d inherit pro_attribs_classweapons_1_1_weapon"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_attribs_classentities_1_1_entity"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_classentities_1_1_entity')"><img src="closed.png" alt="-"/>&#160;Protected Attributes inherited from <a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td></tr>
+<tr class="memitem:a04f9c2febe8d435138a07eb2f48ba96b inherit pro_attribs_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#a04f9c2febe8d435138a07eb2f48ba96b">pos</a></td></tr>
+<tr class="memdesc:a04f9c2febe8d435138a07eb2f48ba96b inherit pro_attribs_classentities_1_1_entity"><td class="mdescLeft">&#160;</td><td class="mdescRight">it's position  <a href="classentities_1_1_entity.html#a04f9c2febe8d435138a07eb2f48ba96b">More...</a><br /></td></tr>
+<tr class="separator:a04f9c2febe8d435138a07eb2f48ba96b inherit pro_attribs_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1453bca3376a185aa54135dd4958b244 inherit pro_attribs_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#a1453bca3376a185aa54135dd4958b244">is_initialized</a></td></tr>
+<tr class="memdesc:a1453bca3376a185aa54135dd4958b244 inherit pro_attribs_classentities_1_1_entity"><td class="mdescLeft">&#160;</td><td class="mdescRight">well, is initialized  <a href="classentities_1_1_entity.html#a1453bca3376a185aa54135dd4958b244">More...</a><br /></td></tr>
+<tr class="separator:a1453bca3376a185aa54135dd4958b244 inherit pro_attribs_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aedac7bb35b729e4a02c582b9f4369ab8 inherit pro_attribs_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#aedac7bb35b729e4a02c582b9f4369ab8">is_alive</a></td></tr>
+<tr class="memdesc:aedac7bb35b729e4a02c582b9f4369ab8 inherit pro_attribs_classentities_1_1_entity"><td class="mdescLeft">&#160;</td><td class="mdescRight">true, if it is alive  <a href="classentities_1_1_entity.html#aedac7bb35b729e4a02c582b9f4369ab8">More...</a><br /></td></tr>
+<tr class="separator:aedac7bb35b729e4a02c582b9f4369ab8 inherit pro_attribs_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>A typical melee weapon. I want to do not typical melee weapons too. </p>
+
+<p class="definition">Definition at line <a class="el" href="_typical_melee_weapon_8h_source.html#l00007">7</a> of file <a class="el" href="_typical_melee_weapon_8h_source.html">TypicalMeleeWeapon.h</a>.</p>
+</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
+<a id="a939cbdc05adab9adf58301cce00e3f8b"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a939cbdc05adab9adf58301cce00e3f8b">&#9670;&nbsp;</a></span>TypicalMeleeWeapon()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">weapons::TypicalMeleeWeapon::TypicalMeleeWeapon </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="classrender_1_1_i_texture.html">render::ITexture</a> &amp;&#160;</td>
+          <td class="paramname"><em>text</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const std::string &amp;&#160;</td>
+          <td class="paramname"><em>name</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>cooldownTime</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>damage</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>range</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>hitOffset</em> = <code>.5f</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>pos</em> = <code>{&#160;0,&#160;0&#160;}</code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="_typical_melee_weapon_8cpp_source.html#l00030">30</a> of file <a class="el" href="_typical_melee_weapon_8cpp_source.html">TypicalMeleeWeapon.cpp</a>.</p>
+
+</div>
+</div>
+<h2 class="groupheader">Member Function Documentation</h2>
+<a id="a00287ced5e67a7f91423596fac46606b"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a00287ced5e67a7f91423596fac46606b">&#9670;&nbsp;</a></span>damage()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">bool weapons::TypicalMeleeWeapon::damage </td>
+          <td>(</td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>damage</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="classentities_1_1_entity.html">Entity</a> &amp;&#160;</td>
+          <td class="paramname"><em>attacker</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>something damage this </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">damage</td><td>how much damage should it take </td></tr>
+    <tr><td class="paramname">attacker</td><td>who deal the damage. not the projectile, the entity </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>did the entity take the damage or no (like a wall) </dd></dl>
+
+<p>Implements <a class="el" href="classentities_1_1_entity.html#af7fc9949fc50b1b31abb36a3d51b0597">entities::Entity</a>.</p>
+
+<p class="definition">Definition at line <a class="el" href="_typical_melee_weapon_8cpp_source.html#l00010">10</a> of file <a class="el" href="_typical_melee_weapon_8cpp_source.html">TypicalMeleeWeapon.cpp</a>.</p>
+
+</div>
+</div>
+<a id="ab60f5d99ae206d9064381b0c70b9a7a2"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ab60f5d99ae206d9064381b0c70b9a7a2">&#9670;&nbsp;</a></span>getHitBoxSize()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> weapons::TypicalMeleeWeapon::getHitBoxSize </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td> const</td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>half hitbox size </p>
+<dl class="section return"><dt>Returns</dt><dd>hitbox size as a vector </dd></dl>
+
+<p>Implements <a class="el" href="classentities_1_1_entity.html#a9cd7ba81ddbd978b8f43e9f10e97492f">entities::Entity</a>.</p>
+
+<p class="definition">Definition at line <a class="el" href="_typical_melee_weapon_8cpp_source.html#l00006">6</a> of file <a class="el" href="_typical_melee_weapon_8cpp_source.html">TypicalMeleeWeapon.cpp</a>.</p>
+
+</div>
+</div>
+<a id="a74cb37d45c599296e443858b73cd1d97"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a74cb37d45c599296e443858b73cd1d97">&#9670;&nbsp;</a></span>getHitOffset()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">float weapons::TypicalMeleeWeapon::getHitOffset </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td> const</td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>the hit's center distance from the user </p>
+<dl class="section return"><dt>Returns</dt><dd>float </dd></dl>
+
+<p>Reimplemented from <a class="el" href="classweapons_1_1_melee_weapon.html#ac6a6b662df60c1927531fddf9a93ebaa">weapons::MeleeWeapon</a>.</p>
+
+<p class="definition">Definition at line <a class="el" href="_typical_melee_weapon_8cpp_source.html#l00025">25</a> of file <a class="el" href="_typical_melee_weapon_8cpp_source.html">TypicalMeleeWeapon.cpp</a>.</p>
+
+</div>
+</div>
+<a id="ad367f50efc891a92b0f22f2404f39c5e"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ad367f50efc891a92b0f22f2404f39c5e">&#9670;&nbsp;</a></span>getPredicator()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">std::function&lt; bool(std::shared_ptr&lt; <a class="el" href="classentities_1_1_entity.html">Entity</a> &gt;, std::shared_ptr&lt; <a class="el" href="classentities_1_1_entity.html">Entity</a> &gt;)&gt; weapons::TypicalMeleeWeapon::getPredicator </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>direction</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>The predicate function getter for the damageIf. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">direction</td><td>users direction </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>the predicate </dd></dl>
+
+<p>Implements <a class="el" href="classweapons_1_1_melee_weapon.html#af14b624f27592421fc117c4fa81aba1b">weapons::MeleeWeapon</a>.</p>
+
+<p class="definition">Definition at line <a class="el" href="_typical_melee_weapon_8cpp_source.html#l00014">14</a> of file <a class="el" href="_typical_melee_weapon_8cpp_source.html">TypicalMeleeWeapon.cpp</a>.</p>
+
+</div>
+</div>
+<h2 class="groupheader">Member Data Documentation</h2>
+<a id="af33a1ff938b8068aaab0bd0ac943ca83"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#af33a1ff938b8068aaab0bd0ac943ca83">&#9670;&nbsp;</a></span>attackOffset</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">float weapons::TypicalMeleeWeapon::attackOffset</td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="_typical_melee_weapon_8h_source.html#l00020">20</a> of file <a class="el" href="_typical_melee_weapon_8h_source.html">TypicalMeleeWeapon.h</a>.</p>
+
+</div>
+</div>
+<a id="ae623cc428bd32ef113d48d6ca15cf4c2"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ae623cc428bd32ef113d48d6ca15cf4c2">&#9670;&nbsp;</a></span>longSword</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classweapons_1_1_typical_melee_weapon.html">TypicalMeleeWeapon</a> weapons::TypicalMeleeWeapon::longSword</td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="_typical_melee_weapon_8h_source.html#l00012">12</a> of file <a class="el" href="_typical_melee_weapon_8h_source.html">TypicalMeleeWeapon.h</a>.</p>
+
+</div>
+</div>
+<a id="a7822572a76104d2cd2d0a21cdfa754d7"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a7822572a76104d2cd2d0a21cdfa754d7">&#9670;&nbsp;</a></span>maxRange</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">float weapons::TypicalMeleeWeapon::maxRange</td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="_typical_melee_weapon_8h_source.html#l00019">19</a> of file <a class="el" href="_typical_melee_weapon_8h_source.html">TypicalMeleeWeapon.h</a>.</p>
+
+</div>
+</div>
+<a id="a1988a389241e423445c7b0f6ff2ed23f"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a1988a389241e423445c7b0f6ff2ed23f">&#9670;&nbsp;</a></span>spoon</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classweapons_1_1_typical_melee_weapon.html">TypicalMeleeWeapon</a> weapons::TypicalMeleeWeapon::spoon</td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="_typical_melee_weapon_8h_source.html#l00013">13</a> of file <a class="el" href="_typical_melee_weapon_8h_source.html">TypicalMeleeWeapon.h</a>.</p>
+
+</div>
+</div>
+<a id="a1eed0cf1fc89f495ccad84dd4acac0eb"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a1eed0cf1fc89f495ccad84dd4acac0eb">&#9670;&nbsp;</a></span>sword</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classweapons_1_1_typical_melee_weapon.html">TypicalMeleeWeapon</a> weapons::TypicalMeleeWeapon::sword</td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="_typical_melee_weapon_8h_source.html#l00011">11</a> of file <a class="el" href="_typical_melee_weapon_8h_source.html">TypicalMeleeWeapon.h</a>.</p>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following files:<ul>
+<li>C:/Users/kosmx/Documents/GitHub/2d-game/<a class="el" href="_typical_melee_weapon_8h_source.html">TypicalMeleeWeapon.h</a></li>
+<li>C:/Users/kosmx/Documents/GitHub/2d-game/<a class="el" href="_typical_melee_weapon_8cpp_source.html">TypicalMeleeWeapon.cpp</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/classweapons_1_1_typical_melee_weapon.png b/doxy/html/classweapons_1_1_typical_melee_weapon.png
new file mode 100644
index 0000000000000000000000000000000000000000..c4763759f313228afa1a941886876e3c8ad85078
Binary files /dev/null and b/doxy/html/classweapons_1_1_typical_melee_weapon.png differ
diff --git a/doxy/html/classweapons_1_1_weapon-members.html b/doxy/html/classweapons_1_1_weapon-members.html
new file mode 100644
index 0000000000000000000000000000000000000000..dae4614b9a9d7b989582a2ceba2222e5d45a671f
--- /dev/null
+++ b/doxy/html/classweapons_1_1_weapon-members.html
@@ -0,0 +1,112 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="namespaceweapons.html">weapons</a></li><li class="navelem"><a class="el" href="classweapons_1_1_weapon.html">Weapon</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">weapons::Weapon Member List</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="classweapons_1_1_weapon.html">weapons::Weapon</a>, including all inherited members.</p>
+<table class="directory">
+  <tr class="even"><td class="entry"><a class="el" href="classweapons_1_1_weapon.html#a27456b08c51df0759ae0155b9f79e336">baseDamage</a></td><td class="entry"><a class="el" href="classweapons_1_1_weapon.html">weapons::Weapon</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classweapons_1_1_weapon.html#aaf97827d27191b7b437ef1be96d6ac2c">canBeRemoved</a>() const override</td><td class="entry"><a class="el" href="classweapons_1_1_weapon.html">weapons::Weapon</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classweapons_1_1_weapon.html#aa3529d6c0160f61132fc7bb1b9284a02">cooldown</a></td><td class="entry"><a class="el" href="classweapons_1_1_weapon.html">weapons::Weapon</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classweapons_1_1_weapon.html#aa3d78dae766eee8279326026dbb46f1f">cooldownTime</a></td><td class="entry"><a class="el" href="classweapons_1_1_weapon.html">weapons::Weapon</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classweapons_1_1_weapon.html#a397c372ffe2838f7c9c1ce67c06e55a9">damage</a>(int damage, Entity &amp;attacker) override</td><td class="entry"><a class="el" href="classweapons_1_1_weapon.html">weapons::Weapon</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classentities_1_1_entity.html#a539ddef34b718b6068df421f316f4a6d">Entity</a>(const olc::vf2d &amp;pos)</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">explicit</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classentities_1_1_entity.html#a94d18db8d502d677b6f4215dc1e1d820">getCollision</a>(const Entity &amp;other)</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classweapons_1_1_weapon.html#a9626ba57d509b1ee0fbe7f900d5181c6">getCooldownBar</a>()</td><td class="entry"><a class="el" href="classweapons_1_1_weapon.html">weapons::Weapon</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classweapons_1_1_weapon.html#a862bd61cf947a91809b423304885cf66">getHitBoxSize</a>() const override</td><td class="entry"><a class="el" href="classweapons_1_1_weapon.html">weapons::Weapon</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classentities_1_1_entity.html#a8c4b0c1eb69a673619e4c8943ef34f86">getName</a>() const</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classentities_1_1_entity.html#a799a692b988248dd23d207b95e7fe2b7">getPos</a>() const</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classweapons_1_1_weapon.html#a3f84544c15d6220252c6175fdfe5c61d">getSecondaryBar</a>()</td><td class="entry"><a class="el" href="classweapons_1_1_weapon.html">weapons::Weapon</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classentities_1_1_entity.html#ac60e9beb5a45fc65120e9779e680c04b">getSize</a>() const</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classentities_1_1_entity.html#afd80ddceccb36b87d0d80dcc7f88fc3b">init</a>(GameClient &amp;client)</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classentities_1_1_entity.html#aedac7bb35b729e4a02c582b9f4369ab8">is_alive</a></td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classentities_1_1_entity.html#a1453bca3376a185aa54135dd4958b244">is_initialized</a></td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classentities_1_1_entity.html#ab0ee90a84f2163b600e603f24cff046f">isAlive</a>() const</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classentities_1_1_entity.html#ab010066d52a02c63908f70ff6ef7d873">isInitialized</a>()</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classweapons_1_1_weapon.html#aba025076ad5e6fae2f9b9d40f4ef815d">isPickedUp</a></td><td class="entry"><a class="el" href="classweapons_1_1_weapon.html">weapons::Weapon</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classweapons_1_1_weapon.html#a3dab7574419aed48f2a0f2d54cfcd825">name</a></td><td class="entry"><a class="el" href="classweapons_1_1_weapon.html">weapons::Weapon</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classentities_1_1_entity.html#ad0a172ff99a7e73aaaee3658d5e3ae08">operator WallEntity *</a>()</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classentities_1_1_entity.html#a04f9c2febe8d435138a07eb2f48ba96b">pos</a></td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classentities_1_1_entity.html#abcc4364b5b7250f0364f3550a618b3ab">render</a>(olc::TransformedView &amp;scene)</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classweapons_1_1_weapon.html#ace9c44751879af7382585c3338d4bc47">setPickUp</a>(bool bl)</td><td class="entry"><a class="el" href="classweapons_1_1_weapon.html">weapons::Weapon</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classweapons_1_1_weapon.html#a34c39bfa9cdb2d7483bc340300e8a2d9">setPos</a>(const olc::vf2d &amp;newPos)</td><td class="entry"><a class="el" href="classweapons_1_1_weapon.html">weapons::Weapon</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classweapons_1_1_weapon.html#a92ae1db47ca866d828f8b09c6de5a3f6">tick</a>(GameClient &amp;client, float deltaT, std::shared_ptr&lt; Entity &gt; &amp;shared_this) override</td><td class="entry"><a class="el" href="classweapons_1_1_weapon.html">weapons::Weapon</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classweapons_1_1_weapon.html#a1cbf391f196bd151f3e3f1ae1e316088">update</a>(float dTick)</td><td class="entry"><a class="el" href="classweapons_1_1_weapon.html">weapons::Weapon</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classweapons_1_1_weapon.html#a8c6f12ac9ed871ebd0394f6b5c447868">use</a>(std::shared_ptr&lt; Entity &gt; user, const olc::vf2d &amp;direction)=0</td><td class="entry"><a class="el" href="classweapons_1_1_weapon.html">weapons::Weapon</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classweapons_1_1_weapon.html#a28f7b716212ae6b4606cff82501e00a2">Weapon</a>(render::ITexture &amp;texture, float cooldownTime, int damage=10, const std::string &amp;name=&quot;Weapon&quot;, const olc::vf2d &amp;pos={ 0, 0 })</td><td class="entry"><a class="el" href="classweapons_1_1_weapon.html">weapons::Weapon</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classentities_1_1_entity.html#a64d968c160dee2fdfca68aff2e49946b">~Entity</a>()=default</td><td class="entry"><a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+</table></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/classweapons_1_1_weapon.html b/doxy/html/classweapons_1_1_weapon.html
new file mode 100644
index 0000000000000000000000000000000000000000..604f832296ab2b33e2a400256c043594006c7e4f
--- /dev/null
+++ b/doxy/html/classweapons_1_1_weapon.html
@@ -0,0 +1,746 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: weapons::Weapon Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="namespaceweapons.html">weapons</a></li><li class="navelem"><a class="el" href="classweapons_1_1_weapon.html">Weapon</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="#pro-methods">Protected Member Functions</a> &#124;
+<a href="#pro-attribs">Protected Attributes</a> &#124;
+<a href="classweapons_1_1_weapon-members.html">List of all members</a>  </div>
+  <div class="headertitle">
+<div class="title">weapons::Weapon Class Reference<span class="mlabels"><span class="mlabel">abstract</span></span></div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>You can throw it to the ground, this is why it's an entity. But it will be possible to use it. and shoot enemies, or projectiles.  
+ <a href="classweapons_1_1_weapon.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="_weapon_8h_source.html">Weapon.h</a>&gt;</code></p>
+<div class="dynheader">
+Inheritance diagram for weapons::Weapon:</div>
+<div class="dyncontent">
+ <div class="center">
+  <img src="classweapons_1_1_weapon.png" usemap="#weapons::Weapon_map" alt=""/>
+  <map id="weapons::Weapon_map" name="weapons::Weapon_map">
+<area href="classentities_1_1_entity.html" title="Every object, what can be on the map." alt="entities::Entity" shape="rect" coords="100,0,290,24"/>
+<area href="classweapons_1_1_melee_weapon.html" title="A melee weapon, like a spoon." alt="weapons::MeleeWeapon" shape="rect" coords="0,112,190,136"/>
+<area href="classweapons_1_1_ranged_weapon.html" title="Any weapon, what does shoot. not melee." alt="weapons::RangedWeapon" shape="rect" coords="200,112,390,136"/>
+<area href="classweapons_1_1_typical_melee_weapon.html" title="A typical melee weapon. I want to do not typical melee weapons too." alt="weapons::TypicalMeleeWeapon" shape="rect" coords="0,168,190,192"/>
+<area href="classweapons_1_1_pistol.html" title="Just a pistol, nothing too dangerous." alt="weapons::Pistol" shape="rect" coords="200,168,390,192"/>
+<area href="classweapons_1_1_e_m_gun.html" title="Weapon with energy level." alt="weapons::EMGun" shape="rect" coords="200,224,390,248"/>
+<area href="classweapons_1_1_glitch_gun.html" title="TODO make the bug weapon more buggy." alt="weapons::GlitchGun" shape="rect" coords="200,280,390,304"/>
+  </map>
+</div></div>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr class="memitem:a28f7b716212ae6b4606cff82501e00a2"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_weapon.html#a28f7b716212ae6b4606cff82501e00a2">Weapon</a> (<a class="el" href="classrender_1_1_i_texture.html">render::ITexture</a> &amp;texture, float <a class="el" href="classweapons_1_1_weapon.html#aa3d78dae766eee8279326026dbb46f1f">cooldownTime</a>, int <a class="el" href="classweapons_1_1_weapon.html#a397c372ffe2838f7c9c1ce67c06e55a9">damage</a>=10, const std::string &amp;<a class="el" href="classweapons_1_1_weapon.html#a3dab7574419aed48f2a0f2d54cfcd825">name</a>=&quot;Weapon&quot;, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;<a class="el" href="classentities_1_1_entity.html#a04f9c2febe8d435138a07eb2f48ba96b">pos</a>={ 0, 0 })</td></tr>
+<tr class="separator:a28f7b716212ae6b4606cff82501e00a2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8c6f12ac9ed871ebd0394f6b5c447868"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_weapon.html#a8c6f12ac9ed871ebd0394f6b5c447868">use</a> (std::shared_ptr&lt; <a class="el" href="classentities_1_1_entity.html">Entity</a> &gt; user, const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;direction)=0</td></tr>
+<tr class="separator:a8c6f12ac9ed871ebd0394f6b5c447868"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a92ae1db47ca866d828f8b09c6de5a3f6"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_weapon.html#a92ae1db47ca866d828f8b09c6de5a3f6">tick</a> (<a class="el" href="class_game_client.html">GameClient</a> &amp;client, float deltaT, std::shared_ptr&lt; <a class="el" href="classentities_1_1_entity.html">Entity</a> &gt; &amp;shared_this) override</td></tr>
+<tr class="memdesc:a92ae1db47ca866d828f8b09c6de5a3f6"><td class="mdescLeft">&#160;</td><td class="mdescRight">tick, if on the ground. It does charge energy, or whatever.  <a href="classweapons_1_1_weapon.html#a92ae1db47ca866d828f8b09c6de5a3f6">More...</a><br /></td></tr>
+<tr class="separator:a92ae1db47ca866d828f8b09c6de5a3f6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1cbf391f196bd151f3e3f1ae1e316088"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_weapon.html#a1cbf391f196bd151f3e3f1ae1e316088">update</a> (float dTick)</td></tr>
+<tr class="memdesc:a1cbf391f196bd151f3e3f1ae1e316088"><td class="mdescLeft">&#160;</td><td class="mdescRight">Update the weapon in a Character's inventory.  <a href="classweapons_1_1_weapon.html#a1cbf391f196bd151f3e3f1ae1e316088">More...</a><br /></td></tr>
+<tr class="separator:a1cbf391f196bd151f3e3f1ae1e316088"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9626ba57d509b1ee0fbe7f900d5181c6"><td class="memItemLeft" align="right" valign="top">virtual float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_weapon.html#a9626ba57d509b1ee0fbe7f900d5181c6">getCooldownBar</a> ()</td></tr>
+<tr class="memdesc:a9626ba57d509b1ee0fbe7f900d5181c6"><td class="mdescLeft">&#160;</td><td class="mdescRight">0 - 1 cooldown, 1 is ready to use, more than one makes sense, like 2 charges  <a href="classweapons_1_1_weapon.html#a9626ba57d509b1ee0fbe7f900d5181c6">More...</a><br /></td></tr>
+<tr class="separator:a9626ba57d509b1ee0fbe7f900d5181c6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aaf97827d27191b7b437ef1be96d6ac2c"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_weapon.html#aaf97827d27191b7b437ef1be96d6ac2c">canBeRemoved</a> () const override</td></tr>
+<tr class="memdesc:aaf97827d27191b7b437ef1be96d6ac2c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Can be removed form the ground.  <a href="classweapons_1_1_weapon.html#aaf97827d27191b7b437ef1be96d6ac2c">More...</a><br /></td></tr>
+<tr class="separator:aaf97827d27191b7b437ef1be96d6ac2c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ace9c44751879af7382585c3338d4bc47"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_weapon.html#ace9c44751879af7382585c3338d4bc47">setPickUp</a> (bool bl)</td></tr>
+<tr class="memdesc:ace9c44751879af7382585c3338d4bc47"><td class="mdescLeft">&#160;</td><td class="mdescRight">Mutator to isPickedUp.  <a href="classweapons_1_1_weapon.html#ace9c44751879af7382585c3338d4bc47">More...</a><br /></td></tr>
+<tr class="separator:ace9c44751879af7382585c3338d4bc47"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3f84544c15d6220252c6175fdfe5c61d"><td class="memItemLeft" align="right" valign="top">virtual float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_weapon.html#a3f84544c15d6220252c6175fdfe5c61d">getSecondaryBar</a> ()</td></tr>
+<tr class="memdesc:a3f84544c15d6220252c6175fdfe5c61d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Secondary charge bar. for some purpose.  <a href="classweapons_1_1_weapon.html#a3f84544c15d6220252c6175fdfe5c61d">More...</a><br /></td></tr>
+<tr class="separator:a3f84544c15d6220252c6175fdfe5c61d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a34c39bfa9cdb2d7483bc340300e8a2d9"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_weapon.html#a34c39bfa9cdb2d7483bc340300e8a2d9">setPos</a> (const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;newPos)</td></tr>
+<tr class="separator:a34c39bfa9cdb2d7483bc340300e8a2d9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a397c372ffe2838f7c9c1ce67c06e55a9"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_weapon.html#a397c372ffe2838f7c9c1ce67c06e55a9">damage</a> (int damage, <a class="el" href="classentities_1_1_entity.html">Entity</a> &amp;attacker) override</td></tr>
+<tr class="memdesc:a397c372ffe2838f7c9c1ce67c06e55a9"><td class="mdescLeft">&#160;</td><td class="mdescRight">something damage this  <a href="classweapons_1_1_weapon.html#a397c372ffe2838f7c9c1ce67c06e55a9">More...</a><br /></td></tr>
+<tr class="separator:a397c372ffe2838f7c9c1ce67c06e55a9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pub_methods_classentities_1_1_entity"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classentities_1_1_entity')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td></tr>
+<tr class="memitem:a539ddef34b718b6068df421f316f4a6d inherit pub_methods_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#a539ddef34b718b6068df421f316f4a6d">Entity</a> (const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;<a class="el" href="classentities_1_1_entity.html#a04f9c2febe8d435138a07eb2f48ba96b">pos</a>)</td></tr>
+<tr class="separator:a539ddef34b718b6068df421f316f4a6d inherit pub_methods_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afd80ddceccb36b87d0d80dcc7f88fc3b inherit pub_methods_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#afd80ddceccb36b87d0d80dcc7f88fc3b">init</a> (<a class="el" href="class_game_client.html">GameClient</a> &amp;client)</td></tr>
+<tr class="separator:afd80ddceccb36b87d0d80dcc7f88fc3b inherit pub_methods_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab010066d52a02c63908f70ff6ef7d873 inherit pub_methods_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#ab010066d52a02c63908f70ff6ef7d873">isInitialized</a> ()</td></tr>
+<tr class="separator:ab010066d52a02c63908f70ff6ef7d873 inherit pub_methods_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a799a692b988248dd23d207b95e7fe2b7 inherit pub_methods_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#a799a692b988248dd23d207b95e7fe2b7">getPos</a> () const</td></tr>
+<tr class="separator:a799a692b988248dd23d207b95e7fe2b7 inherit pub_methods_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac60e9beb5a45fc65120e9779e680c04b inherit pub_methods_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#ac60e9beb5a45fc65120e9779e680c04b">getSize</a> () const</td></tr>
+<tr class="memdesc:ac60e9beb5a45fc65120e9779e680c04b inherit pub_methods_classentities_1_1_entity"><td class="mdescLeft">&#160;</td><td class="mdescRight">get it's size to render  <a href="classentities_1_1_entity.html#ac60e9beb5a45fc65120e9779e680c04b">More...</a><br /></td></tr>
+<tr class="separator:ac60e9beb5a45fc65120e9779e680c04b inherit pub_methods_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab0ee90a84f2163b600e603f24cff046f inherit pub_methods_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#ab0ee90a84f2163b600e603f24cff046f">isAlive</a> () const</td></tr>
+<tr class="separator:ab0ee90a84f2163b600e603f24cff046f inherit pub_methods_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abcc4364b5b7250f0364f3550a618b3ab inherit pub_methods_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#abcc4364b5b7250f0364f3550a618b3ab">render</a> (<a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a> &amp;scene)</td></tr>
+<tr class="memdesc:abcc4364b5b7250f0364f3550a618b3ab inherit pub_methods_classentities_1_1_entity"><td class="mdescLeft">&#160;</td><td class="mdescRight">render  <a href="classentities_1_1_entity.html#abcc4364b5b7250f0364f3550a618b3ab">More...</a><br /></td></tr>
+<tr class="separator:abcc4364b5b7250f0364f3550a618b3ab inherit pub_methods_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8c4b0c1eb69a673619e4c8943ef34f86 inherit pub_methods_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">virtual std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#a8c4b0c1eb69a673619e4c8943ef34f86">getName</a> () const</td></tr>
+<tr class="separator:a8c4b0c1eb69a673619e4c8943ef34f86 inherit pub_methods_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a64d968c160dee2fdfca68aff2e49946b inherit pub_methods_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#a64d968c160dee2fdfca68aff2e49946b">~Entity</a> ()=default</td></tr>
+<tr class="separator:a64d968c160dee2fdfca68aff2e49946b inherit pub_methods_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad0a172ff99a7e73aaaee3658d5e3ae08 inherit pub_methods_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#ad0a172ff99a7e73aaaee3658d5e3ae08">operator WallEntity *</a> ()</td></tr>
+<tr class="separator:ad0a172ff99a7e73aaaee3658d5e3ae08 inherit pub_methods_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
+Protected Member Functions</h2></td></tr>
+<tr class="memitem:a862bd61cf947a91809b423304885cf66"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_weapon.html#a862bd61cf947a91809b423304885cf66">getHitBoxSize</a> () const override</td></tr>
+<tr class="memdesc:a862bd61cf947a91809b423304885cf66"><td class="mdescLeft">&#160;</td><td class="mdescRight">half hitbox size  <a href="classweapons_1_1_weapon.html#a862bd61cf947a91809b423304885cf66">More...</a><br /></td></tr>
+<tr class="separator:a862bd61cf947a91809b423304885cf66"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_methods_classentities_1_1_entity"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classentities_1_1_entity')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td></tr>
+<tr class="memitem:a94d18db8d502d677b6f4215dc1e1d820 inherit pro_methods_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#a94d18db8d502d677b6f4215dc1e1d820">getCollision</a> (const <a class="el" href="classentities_1_1_entity.html">Entity</a> &amp;other)</td></tr>
+<tr class="memdesc:a94d18db8d502d677b6f4215dc1e1d820 inherit pro_methods_classentities_1_1_entity"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate collision with another <a class="el" href="classentities_1_1_entity.html" title="Every object, what can be on the map.">Entity</a>, how much should this entity move, to avoid the collision.  <a href="classentities_1_1_entity.html#a94d18db8d502d677b6f4215dc1e1d820">More...</a><br /></td></tr>
+<tr class="separator:a94d18db8d502d677b6f4215dc1e1d820 inherit pro_methods_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-attribs"></a>
+Protected Attributes</h2></td></tr>
+<tr class="memitem:aa3529d6c0160f61132fc7bb1b9284a02"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_weapon.html#aa3529d6c0160f61132fc7bb1b9284a02">cooldown</a></td></tr>
+<tr class="separator:aa3529d6c0160f61132fc7bb1b9284a02"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa3d78dae766eee8279326026dbb46f1f"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_weapon.html#aa3d78dae766eee8279326026dbb46f1f">cooldownTime</a></td></tr>
+<tr class="separator:aa3d78dae766eee8279326026dbb46f1f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a27456b08c51df0759ae0155b9f79e336"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_weapon.html#a27456b08c51df0759ae0155b9f79e336">baseDamage</a></td></tr>
+<tr class="separator:a27456b08c51df0759ae0155b9f79e336"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3dab7574419aed48f2a0f2d54cfcd825"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_weapon.html#a3dab7574419aed48f2a0f2d54cfcd825">name</a></td></tr>
+<tr class="separator:a3dab7574419aed48f2a0f2d54cfcd825"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aba025076ad5e6fae2f9b9d40f4ef815d"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_weapon.html#aba025076ad5e6fae2f9b9d40f4ef815d">isPickedUp</a> = false</td></tr>
+<tr class="memdesc:aba025076ad5e6fae2f9b9d40f4ef815d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Is on the ground, or in an entity's inventory.  <a href="classweapons_1_1_weapon.html#aba025076ad5e6fae2f9b9d40f4ef815d">More...</a><br /></td></tr>
+<tr class="separator:aba025076ad5e6fae2f9b9d40f4ef815d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_attribs_classentities_1_1_entity"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_classentities_1_1_entity')"><img src="closed.png" alt="-"/>&#160;Protected Attributes inherited from <a class="el" href="classentities_1_1_entity.html">entities::Entity</a></td></tr>
+<tr class="memitem:a04f9c2febe8d435138a07eb2f48ba96b inherit pro_attribs_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#a04f9c2febe8d435138a07eb2f48ba96b">pos</a></td></tr>
+<tr class="memdesc:a04f9c2febe8d435138a07eb2f48ba96b inherit pro_attribs_classentities_1_1_entity"><td class="mdescLeft">&#160;</td><td class="mdescRight">it's position  <a href="classentities_1_1_entity.html#a04f9c2febe8d435138a07eb2f48ba96b">More...</a><br /></td></tr>
+<tr class="separator:a04f9c2febe8d435138a07eb2f48ba96b inherit pro_attribs_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1453bca3376a185aa54135dd4958b244 inherit pro_attribs_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#a1453bca3376a185aa54135dd4958b244">is_initialized</a></td></tr>
+<tr class="memdesc:a1453bca3376a185aa54135dd4958b244 inherit pro_attribs_classentities_1_1_entity"><td class="mdescLeft">&#160;</td><td class="mdescRight">well, is initialized  <a href="classentities_1_1_entity.html#a1453bca3376a185aa54135dd4958b244">More...</a><br /></td></tr>
+<tr class="separator:a1453bca3376a185aa54135dd4958b244 inherit pro_attribs_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aedac7bb35b729e4a02c582b9f4369ab8 inherit pro_attribs_classentities_1_1_entity"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html#aedac7bb35b729e4a02c582b9f4369ab8">is_alive</a></td></tr>
+<tr class="memdesc:aedac7bb35b729e4a02c582b9f4369ab8 inherit pro_attribs_classentities_1_1_entity"><td class="mdescLeft">&#160;</td><td class="mdescRight">true, if it is alive  <a href="classentities_1_1_entity.html#aedac7bb35b729e4a02c582b9f4369ab8">More...</a><br /></td></tr>
+<tr class="separator:aedac7bb35b729e4a02c582b9f4369ab8 inherit pro_attribs_classentities_1_1_entity"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>You can throw it to the ground, this is why it's an entity. But it will be possible to use it. and shoot enemies, or projectiles. </p>
+
+<p class="definition">Definition at line <a class="el" href="_weapon_8h_source.html#l00010">10</a> of file <a class="el" href="_weapon_8h_source.html">Weapon.h</a>.</p>
+</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
+<a id="a28f7b716212ae6b4606cff82501e00a2"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a28f7b716212ae6b4606cff82501e00a2">&#9670;&nbsp;</a></span>Weapon()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">weapons::Weapon::Weapon </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="classrender_1_1_i_texture.html">render::ITexture</a> &amp;&#160;</td>
+          <td class="paramname"><em>texture</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>cooldownTime</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>damage</em> = <code>10</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const std::string &amp;&#160;</td>
+          <td class="paramname"><em>name</em> = <code>&quot;Weapon&quot;</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>pos</em> = <code>{&#160;0,&#160;0&#160;}</code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="_weapon_8cpp_source.html#l00015">15</a> of file <a class="el" href="_weapon_8cpp_source.html">Weapon.cpp</a>.</p>
+
+</div>
+</div>
+<h2 class="groupheader">Member Function Documentation</h2>
+<a id="aaf97827d27191b7b437ef1be96d6ac2c"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aaf97827d27191b7b437ef1be96d6ac2c">&#9670;&nbsp;</a></span>canBeRemoved()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">bool weapons::Weapon::canBeRemoved </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td> const</td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Can be removed form the ground. </p>
+<dl class="section return"><dt>Returns</dt><dd>true if someone picked it up </dd></dl>
+
+<p>Reimplemented from <a class="el" href="classentities_1_1_entity.html#a59426fe1b7dcefe96a0a748250724ff6">entities::Entity</a>.</p>
+
+<p class="definition">Definition at line <a class="el" href="_weapon_8cpp_source.html#l00030">30</a> of file <a class="el" href="_weapon_8cpp_source.html">Weapon.cpp</a>.</p>
+
+</div>
+</div>
+<a id="a397c372ffe2838f7c9c1ce67c06e55a9"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a397c372ffe2838f7c9c1ce67c06e55a9">&#9670;&nbsp;</a></span>damage()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">bool weapons::Weapon::damage </td>
+          <td>(</td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>damage</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="classentities_1_1_entity.html">Entity</a> &amp;&#160;</td>
+          <td class="paramname"><em>attacker</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>something damage this </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">damage</td><td>how much damage should it take </td></tr>
+    <tr><td class="paramname">attacker</td><td>who deal the damage. not the projectile, the entity </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>did the entity take the damage or no (like a wall) </dd></dl>
+
+<p>Implements <a class="el" href="classentities_1_1_entity.html#af7fc9949fc50b1b31abb36a3d51b0597">entities::Entity</a>.</p>
+
+<p class="definition">Definition at line <a class="el" href="_weapon_8cpp_source.html#l00045">45</a> of file <a class="el" href="_weapon_8cpp_source.html">Weapon.cpp</a>.</p>
+
+</div>
+</div>
+<a id="a9626ba57d509b1ee0fbe7f900d5181c6"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a9626ba57d509b1ee0fbe7f900d5181c6">&#9670;&nbsp;</a></span>getCooldownBar()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">float weapons::Weapon::getCooldownBar </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>0 - 1 cooldown, 1 is ready to use, more than one makes sense, like 2 charges </p>
+<dl class="section return"><dt>Returns</dt><dd>cooldown time </dd></dl>
+
+<p class="definition">Definition at line <a class="el" href="_weapon_8cpp_source.html#l00025">25</a> of file <a class="el" href="_weapon_8cpp_source.html">Weapon.cpp</a>.</p>
+
+</div>
+</div>
+<a id="a862bd61cf947a91809b423304885cf66"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a862bd61cf947a91809b423304885cf66">&#9670;&nbsp;</a></span>getHitBoxSize()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> weapons::Weapon::getHitBoxSize </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td> const</td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>half hitbox size </p>
+<dl class="section return"><dt>Returns</dt><dd>hitbox size as a vector </dd></dl>
+
+<p>Implements <a class="el" href="classentities_1_1_entity.html#a9cd7ba81ddbd978b8f43e9f10e97492f">entities::Entity</a>.</p>
+
+<p class="definition">Definition at line <a class="el" href="_weapon_8cpp_source.html#l00010">10</a> of file <a class="el" href="_weapon_8cpp_source.html">Weapon.cpp</a>.</p>
+
+</div>
+</div>
+<a id="a3f84544c15d6220252c6175fdfe5c61d"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a3f84544c15d6220252c6175fdfe5c61d">&#9670;&nbsp;</a></span>getSecondaryBar()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">virtual float weapons::Weapon::getSecondaryBar </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Secondary charge bar. for some purpose. </p>
+
+<p>Reimplemented in <a class="el" href="classweapons_1_1_e_m_gun.html#a1d2c920f4fddd40d39dba5d4dddf496f">weapons::EMGun</a>.</p>
+
+<p class="definition">Definition at line <a class="el" href="_weapon_8h_source.html#l00074">74</a> of file <a class="el" href="_weapon_8h_source.html">Weapon.h</a>.</p>
+
+</div>
+</div>
+<a id="ace9c44751879af7382585c3338d4bc47"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ace9c44751879af7382585c3338d4bc47">&#9670;&nbsp;</a></span>setPickUp()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">void weapons::Weapon::setPickUp </td>
+          <td>(</td>
+          <td class="paramtype">bool&#160;</td>
+          <td class="paramname"><em>bl</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Mutator to isPickedUp. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">bl</td><td>bool </td></tr>
+  </table>
+  </dd>
+</dl>
+
+<p class="definition">Definition at line <a class="el" href="_weapon_8cpp_source.html#l00035">35</a> of file <a class="el" href="_weapon_8cpp_source.html">Weapon.cpp</a>.</p>
+
+</div>
+</div>
+<a id="a34c39bfa9cdb2d7483bc340300e8a2d9"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a34c39bfa9cdb2d7483bc340300e8a2d9">&#9670;&nbsp;</a></span>setPos()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">void weapons::Weapon::setPos </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>newPos</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="_weapon_8cpp_source.html#l00040">40</a> of file <a class="el" href="_weapon_8cpp_source.html">Weapon.cpp</a>.</p>
+
+</div>
+</div>
+<a id="a92ae1db47ca866d828f8b09c6de5a3f6"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a92ae1db47ca866d828f8b09c6de5a3f6">&#9670;&nbsp;</a></span>tick()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">void weapons::Weapon::tick </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="class_game_client.html">GameClient</a> &amp;&#160;</td>
+          <td class="paramname"><em>client</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>deltaT</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">std::shared_ptr&lt; <a class="el" href="classentities_1_1_entity.html">Entity</a> &gt; &amp;&#160;</td>
+          <td class="paramname"><em>shared_this</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">override</span><span class="mlabel">virtual</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>tick, if on the ground. It does charge energy, or whatever. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">client</td><td>see </td></tr>
+    <tr><td class="paramname">deltaT</td><td>the </td></tr>
+    <tr><td class="paramname">shared_this</td><td>Entity class </td></tr>
+  </table>
+  </dd>
+</dl>
+
+<p>Reimplemented from <a class="el" href="classentities_1_1_entity.html#a0440674bf90ae83d9a26aa4b0ac8309e">entities::Entity</a>.</p>
+
+<p class="definition">Definition at line <a class="el" href="_weapon_8h_source.html#l00041">41</a> of file <a class="el" href="_weapon_8h_source.html">Weapon.h</a>.</p>
+
+</div>
+</div>
+<a id="a1cbf391f196bd151f3e3f1ae1e316088"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a1cbf391f196bd151f3e3f1ae1e316088">&#9670;&nbsp;</a></span>update()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">bool weapons::Weapon::update </td>
+          <td>(</td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>dTick</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Update the weapon in a Character's inventory. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">dTick</td><td>a.k.a. deltaT, or fElapsedTime </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>is the user can use it </dd></dl>
+
+<p>Reimplemented in <a class="el" href="classweapons_1_1_glitch_gun.html#a6687147e8005e96f12806862f73a6cd8">weapons::GlitchGun</a>, and <a class="el" href="classweapons_1_1_e_m_gun.html#a0bb30401aa36e2205c011ea0fcf40303">weapons::EMGun</a>.</p>
+
+<p class="definition">Definition at line <a class="el" href="_weapon_8cpp_source.html#l00018">18</a> of file <a class="el" href="_weapon_8cpp_source.html">Weapon.cpp</a>.</p>
+
+</div>
+</div>
+<a id="a8c6f12ac9ed871ebd0394f6b5c447868"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a8c6f12ac9ed871ebd0394f6b5c447868">&#9670;&nbsp;</a></span>use()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">virtual bool weapons::Weapon::use </td>
+          <td>(</td>
+          <td class="paramtype">std::shared_ptr&lt; <a class="el" href="classentities_1_1_entity.html">Entity</a> &gt;&#160;</td>
+          <td class="paramname"><em>user</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &amp;&#160;</td>
+          <td class="paramname"><em>direction</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+<dl class="section return"><dt>Returns</dt><dd>true, if you did something with it. false otherwise </dd></dl>
+
+<p>Implemented in <a class="el" href="classweapons_1_1_ranged_weapon.html#a0e8915ad79021eb8fd79a1a3d7b1c92c">weapons::RangedWeapon</a>, <a class="el" href="classweapons_1_1_melee_weapon.html#ac1b9a6718cbf78cea0b9e5e0b8dcc64e">weapons::MeleeWeapon</a>, and <a class="el" href="classweapons_1_1_e_m_gun.html#a8034852a4a5957c3d3bc00ca5f7df6e4">weapons::EMGun</a>.</p>
+
+</div>
+</div>
+<h2 class="groupheader">Member Data Documentation</h2>
+<a id="a27456b08c51df0759ae0155b9f79e336"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a27456b08c51df0759ae0155b9f79e336">&#9670;&nbsp;</a></span>baseDamage</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">int weapons::Weapon::baseDamage</td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="_weapon_8h_source.html#l00019">19</a> of file <a class="el" href="_weapon_8h_source.html">Weapon.h</a>.</p>
+
+</div>
+</div>
+<a id="aa3529d6c0160f61132fc7bb1b9284a02"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aa3529d6c0160f61132fc7bb1b9284a02">&#9670;&nbsp;</a></span>cooldown</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">float weapons::Weapon::cooldown</td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="_weapon_8h_source.html#l00017">17</a> of file <a class="el" href="_weapon_8h_source.html">Weapon.h</a>.</p>
+
+</div>
+</div>
+<a id="aa3d78dae766eee8279326026dbb46f1f"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aa3d78dae766eee8279326026dbb46f1f">&#9670;&nbsp;</a></span>cooldownTime</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">float weapons::Weapon::cooldownTime</td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="_weapon_8h_source.html#l00018">18</a> of file <a class="el" href="_weapon_8h_source.html">Weapon.h</a>.</p>
+
+</div>
+</div>
+<a id="aba025076ad5e6fae2f9b9d40f4ef815d"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aba025076ad5e6fae2f9b9d40f4ef815d">&#9670;&nbsp;</a></span>isPickedUp</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">bool weapons::Weapon::isPickedUp = false</td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Is on the ground, or in an entity's inventory. </p>
+
+<p class="definition">Definition at line <a class="el" href="_weapon_8h_source.html#l00024">24</a> of file <a class="el" href="_weapon_8h_source.html">Weapon.h</a>.</p>
+
+</div>
+</div>
+<a id="a3dab7574419aed48f2a0f2d54cfcd825"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a3dab7574419aed48f2a0f2d54cfcd825">&#9670;&nbsp;</a></span>name</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">std::string weapons::Weapon::name</td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="_weapon_8h_source.html#l00020">20</a> of file <a class="el" href="_weapon_8h_source.html">Weapon.h</a>.</p>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following files:<ul>
+<li>C:/Users/kosmx/Documents/GitHub/2d-game/<a class="el" href="_weapon_8h_source.html">Weapon.h</a></li>
+<li>C:/Users/kosmx/Documents/GitHub/2d-game/<a class="el" href="_weapon_8cpp_source.html">Weapon.cpp</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/classweapons_1_1_weapon.png b/doxy/html/classweapons_1_1_weapon.png
new file mode 100644
index 0000000000000000000000000000000000000000..39e6fd4acc9e1e4af2204df56349f1aed6348057
Binary files /dev/null and b/doxy/html/classweapons_1_1_weapon.png differ
diff --git a/doxy/html/closed.png b/doxy/html/closed.png
new file mode 100644
index 0000000000000000000000000000000000000000..98cc2c909da37a6df914fbf67780eebd99c597f5
Binary files /dev/null and b/doxy/html/closed.png differ
diff --git a/doxy/html/doc.png b/doxy/html/doc.png
new file mode 100644
index 0000000000000000000000000000000000000000..17edabff95f7b8da13c9516a04efe05493c29501
Binary files /dev/null and b/doxy/html/doc.png differ
diff --git a/doxy/html/doxygen.css b/doxy/html/doxygen.css
new file mode 100644
index 0000000000000000000000000000000000000000..f640966e203cc52d3a860454212a6a16c47aac7b
--- /dev/null
+++ b/doxy/html/doxygen.css
@@ -0,0 +1,1732 @@
+/* The standard CSS for doxygen 1.8.20 */
+
+body, table, div, p, dl {
+	font: 400 14px/22px Roboto,sans-serif;
+}
+
+p.reference, p.definition {
+	font: 400 14px/22px Roboto,sans-serif;
+}
+
+/* @group Heading Levels */
+
+h1.groupheader {
+	font-size: 150%;
+}
+
+.title {
+	font: 400 14px/28px Roboto,sans-serif;
+	font-size: 150%;
+	font-weight: bold;
+	margin: 10px 2px;
+}
+
+h2.groupheader {
+	border-bottom: 1px solid #879ECB;
+	color: #354C7B;
+	font-size: 150%;
+	font-weight: normal;
+	margin-top: 1.75em;
+	padding-top: 8px;
+	padding-bottom: 4px;
+	width: 100%;
+}
+
+h3.groupheader {
+	font-size: 100%;
+}
+
+h1, h2, h3, h4, h5, h6 {
+	-webkit-transition: text-shadow 0.5s linear;
+	-moz-transition: text-shadow 0.5s linear;
+	-ms-transition: text-shadow 0.5s linear;
+	-o-transition: text-shadow 0.5s linear;
+	transition: text-shadow 0.5s linear;
+	margin-right: 15px;
+}
+
+h1.glow, h2.glow, h3.glow, h4.glow, h5.glow, h6.glow {
+	text-shadow: 0 0 15px cyan;
+}
+
+dt {
+	font-weight: bold;
+}
+
+ul.multicol {
+	-moz-column-gap: 1em;
+	-webkit-column-gap: 1em;
+	column-gap: 1em;
+	-moz-column-count: 3;
+	-webkit-column-count: 3;
+	column-count: 3;
+}
+
+p.startli, p.startdd {
+	margin-top: 2px;
+}
+
+th p.starttd, th p.intertd, th p.endtd {
+        font-size: 100%;
+        font-weight: 700;
+}
+
+p.starttd {
+	margin-top: 0px;
+}
+
+p.endli {
+	margin-bottom: 0px;
+}
+
+p.enddd {
+	margin-bottom: 4px;
+}
+
+p.endtd {
+	margin-bottom: 2px;
+}
+
+p.interli {
+}
+
+p.interdd {
+}
+
+p.intertd {
+}
+
+/* @end */
+
+caption {
+	font-weight: bold;
+}
+
+span.legend {
+        font-size: 70%;
+        text-align: center;
+}
+
+h3.version {
+        font-size: 90%;
+        text-align: center;
+}
+
+div.qindex, div.navtab{
+	background-color: #EBEFF6;
+	border: 1px solid #A3B4D7;
+	text-align: center;
+}
+
+div.qindex, div.navpath {
+	width: 100%;
+	line-height: 140%;
+}
+
+div.navtab {
+	margin-right: 15px;
+}
+
+/* @group Link Styling */
+
+a {
+	color: #3D578C;
+	font-weight: normal;
+	text-decoration: none;
+}
+
+.contents a:visited {
+	color: #4665A2;
+}
+
+a:hover {
+	text-decoration: underline;
+}
+
+a.qindex {
+	font-weight: bold;
+}
+
+a.qindexHL {
+	font-weight: bold;
+	background-color: #9CAFD4;
+	color: #FFFFFF;
+	border: 1px double #869DCA;
+}
+
+.contents a.qindexHL:visited {
+        color: #FFFFFF;
+}
+
+a.el {
+	font-weight: bold;
+}
+
+a.elRef {
+}
+
+a.code, a.code:visited, a.line, a.line:visited {
+	color: #4665A2; 
+}
+
+a.codeRef, a.codeRef:visited, a.lineRef, a.lineRef:visited {
+	color: #4665A2; 
+}
+
+/* @end */
+
+dl.el {
+	margin-left: -1cm;
+}
+
+ul {
+  overflow: hidden; /*Fixed: list item bullets overlap floating elements*/
+}
+
+#side-nav ul {
+  overflow: visible; /* reset ul rule for scroll bar in GENERATE_TREEVIEW window */
+}
+
+#main-nav ul {
+  overflow: visible; /* reset ul rule for the navigation bar drop down lists */
+}
+
+.fragment {
+  text-align: left;
+  direction: ltr;
+  overflow-x: auto; /*Fixed: fragment lines overlap floating elements*/
+  overflow-y: hidden;
+}
+
+pre.fragment {
+        border: 1px solid #C4CFE5;
+        background-color: #FBFCFD;
+        padding: 4px 6px;
+        margin: 4px 8px 4px 2px;
+        overflow: auto;
+        word-wrap: break-word;
+        font-size:  9pt;
+        line-height: 125%;
+        font-family: monospace, fixed;
+        font-size: 105%;
+}
+
+div.fragment {
+  padding: 0 0 1px 0; /*Fixed: last line underline overlap border*/
+  margin: 4px 8px 4px 2px;
+	background-color: #FBFCFD;
+	border: 1px solid #C4CFE5;
+}
+
+div.line {
+	font-family: monospace, fixed;
+        font-size: 13px;
+	min-height: 13px;
+	line-height: 1.0;
+	text-wrap: unrestricted;
+	white-space: -moz-pre-wrap; /* Moz */
+	white-space: -pre-wrap;     /* Opera 4-6 */
+	white-space: -o-pre-wrap;   /* Opera 7 */
+	white-space: pre-wrap;      /* CSS3  */
+	word-wrap: break-word;      /* IE 5.5+ */
+	text-indent: -53px;
+	padding-left: 53px;
+	padding-bottom: 0px;
+	margin: 0px;
+	-webkit-transition-property: background-color, box-shadow;
+	-webkit-transition-duration: 0.5s;
+	-moz-transition-property: background-color, box-shadow;
+	-moz-transition-duration: 0.5s;
+	-ms-transition-property: background-color, box-shadow;
+	-ms-transition-duration: 0.5s;
+	-o-transition-property: background-color, box-shadow;
+	-o-transition-duration: 0.5s;
+	transition-property: background-color, box-shadow;
+	transition-duration: 0.5s;
+}
+
+div.line:after {
+    content:"\000A";
+    white-space: pre;
+}
+
+div.line.glow {
+	background-color: cyan;
+	box-shadow: 0 0 10px cyan;
+}
+
+
+span.lineno {
+	padding-right: 4px;
+	text-align: right;
+	border-right: 2px solid #0F0;
+	background-color: #E8E8E8;
+        white-space: pre;
+}
+span.lineno a {
+	background-color: #D8D8D8;
+}
+
+span.lineno a:hover {
+	background-color: #C8C8C8;
+}
+
+.lineno {
+	-webkit-touch-callout: none;
+	-webkit-user-select: none;
+	-khtml-user-select: none;
+	-moz-user-select: none;
+	-ms-user-select: none;
+	user-select: none;
+}
+
+div.ah, span.ah {
+	background-color: black;
+	font-weight: bold;
+	color: #FFFFFF;
+	margin-bottom: 3px;
+	margin-top: 3px;
+	padding: 0.2em;
+	border: solid thin #333;
+	border-radius: 0.5em;
+	-webkit-border-radius: .5em;
+	-moz-border-radius: .5em;
+	box-shadow: 2px 2px 3px #999;
+	-webkit-box-shadow: 2px 2px 3px #999;
+	-moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px;
+	background-image: -webkit-gradient(linear, left top, left bottom, from(#eee), to(#000),color-stop(0.3, #444));
+	background-image: -moz-linear-gradient(center top, #eee 0%, #444 40%, #000 110%);
+}
+
+div.classindex ul {
+        list-style: none;
+        padding-left: 0;
+}
+
+div.classindex span.ai {
+        display: inline-block;
+}
+
+div.groupHeader {
+	margin-left: 16px;
+	margin-top: 12px;
+	font-weight: bold;
+}
+
+div.groupText {
+	margin-left: 16px;
+	font-style: italic;
+}
+
+body {
+	background-color: white;
+	color: black;
+        margin: 0;
+}
+
+div.contents {
+	margin-top: 10px;
+	margin-left: 12px;
+	margin-right: 8px;
+}
+
+td.indexkey {
+	background-color: #EBEFF6;
+	font-weight: bold;
+	border: 1px solid #C4CFE5;
+	margin: 2px 0px 2px 0;
+	padding: 2px 10px;
+        white-space: nowrap;
+        vertical-align: top;
+}
+
+td.indexvalue {
+	background-color: #EBEFF6;
+	border: 1px solid #C4CFE5;
+	padding: 2px 10px;
+	margin: 2px 0px;
+}
+
+tr.memlist {
+	background-color: #EEF1F7;
+}
+
+p.formulaDsp {
+	text-align: center;
+}
+
+img.formulaDsp {
+	
+}
+
+img.formulaInl, img.inline {
+	vertical-align: middle;
+}
+
+div.center {
+	text-align: center;
+        margin-top: 0px;
+        margin-bottom: 0px;
+        padding: 0px;
+}
+
+div.center img {
+	border: 0px;
+}
+
+address.footer {
+	text-align: right;
+	padding-right: 12px;
+}
+
+img.footer {
+	border: 0px;
+	vertical-align: middle;
+}
+
+/* @group Code Colorization */
+
+span.keyword {
+	color: #008000
+}
+
+span.keywordtype {
+	color: #604020
+}
+
+span.keywordflow {
+	color: #e08000
+}
+
+span.comment {
+	color: #800000
+}
+
+span.preprocessor {
+	color: #806020
+}
+
+span.stringliteral {
+	color: #002080
+}
+
+span.charliteral {
+	color: #008080
+}
+
+span.vhdldigit { 
+	color: #ff00ff 
+}
+
+span.vhdlchar { 
+	color: #000000 
+}
+
+span.vhdlkeyword { 
+	color: #700070 
+}
+
+span.vhdllogic { 
+	color: #ff0000 
+}
+
+blockquote {
+        background-color: #F7F8FB;
+        border-left: 2px solid #9CAFD4;
+        margin: 0 24px 0 4px;
+        padding: 0 12px 0 16px;
+}
+
+blockquote.DocNodeRTL {
+   border-left: 0;
+   border-right: 2px solid #9CAFD4;
+   margin: 0 4px 0 24px;
+   padding: 0 16px 0 12px;
+}
+
+/* @end */
+
+/*
+.search {
+	color: #003399;
+	font-weight: bold;
+}
+
+form.search {
+	margin-bottom: 0px;
+	margin-top: 0px;
+}
+
+input.search {
+	font-size: 75%;
+	color: #000080;
+	font-weight: normal;
+	background-color: #e8eef2;
+}
+*/
+
+td.tiny {
+	font-size: 75%;
+}
+
+.dirtab {
+	padding: 4px;
+	border-collapse: collapse;
+	border: 1px solid #A3B4D7;
+}
+
+th.dirtab {
+	background: #EBEFF6;
+	font-weight: bold;
+}
+
+hr {
+	height: 0px;
+	border: none;
+	border-top: 1px solid #4A6AAA;
+}
+
+hr.footer {
+	height: 1px;
+}
+
+/* @group Member Descriptions */
+
+table.memberdecls {
+	border-spacing: 0px;
+	padding: 0px;
+}
+
+.memberdecls td, .fieldtable tr {
+	-webkit-transition-property: background-color, box-shadow;
+	-webkit-transition-duration: 0.5s;
+	-moz-transition-property: background-color, box-shadow;
+	-moz-transition-duration: 0.5s;
+	-ms-transition-property: background-color, box-shadow;
+	-ms-transition-duration: 0.5s;
+	-o-transition-property: background-color, box-shadow;
+	-o-transition-duration: 0.5s;
+	transition-property: background-color, box-shadow;
+	transition-duration: 0.5s;
+}
+
+.memberdecls td.glow, .fieldtable tr.glow {
+	background-color: cyan;
+	box-shadow: 0 0 15px cyan;
+}
+
+.mdescLeft, .mdescRight,
+.memItemLeft, .memItemRight,
+.memTemplItemLeft, .memTemplItemRight, .memTemplParams {
+	background-color: #F9FAFC;
+	border: none;
+	margin: 4px;
+	padding: 1px 0 0 8px;
+}
+
+.mdescLeft, .mdescRight {
+	padding: 0px 8px 4px 8px;
+	color: #555;
+}
+
+.memSeparator {
+        border-bottom: 1px solid #DEE4F0;
+        line-height: 1px;
+        margin: 0px;
+        padding: 0px;
+}
+
+.memItemLeft, .memTemplItemLeft {
+        white-space: nowrap;
+}
+
+.memItemRight, .memTemplItemRight {
+	width: 100%;
+}
+
+.memTemplParams {
+	color: #4665A2;
+        white-space: nowrap;
+	font-size: 80%;
+}
+
+/* @end */
+
+/* @group Member Details */
+
+/* Styles for detailed member documentation */
+
+.memtitle {
+	padding: 8px;
+	border-top: 1px solid #A8B8D9;
+	border-left: 1px solid #A8B8D9;
+	border-right: 1px solid #A8B8D9;
+	border-top-right-radius: 4px;
+	border-top-left-radius: 4px;
+	margin-bottom: -1px;
+	background-image: url('nav_f.png');
+	background-repeat: repeat-x;
+	background-color: #E2E8F2;
+	line-height: 1.25;
+	font-weight: 300;
+	float:left;
+}
+
+.permalink
+{
+        font-size: 65%;
+        display: inline-block;
+        vertical-align: middle;
+}
+
+.memtemplate {
+	font-size: 80%;
+	color: #4665A2;
+	font-weight: normal;
+	margin-left: 9px;
+}
+
+.memnav {
+	background-color: #EBEFF6;
+	border: 1px solid #A3B4D7;
+	text-align: center;
+	margin: 2px;
+	margin-right: 15px;
+	padding: 2px;
+}
+
+.mempage {
+	width: 100%;
+}
+
+.memitem {
+	padding: 0;
+	margin-bottom: 10px;
+	margin-right: 5px;
+        -webkit-transition: box-shadow 0.5s linear;
+        -moz-transition: box-shadow 0.5s linear;
+        -ms-transition: box-shadow 0.5s linear;
+        -o-transition: box-shadow 0.5s linear;
+        transition: box-shadow 0.5s linear;
+        display: table !important;
+        width: 100%;
+}
+
+.memitem.glow {
+         box-shadow: 0 0 15px cyan;
+}
+
+.memname {
+        font-weight: 400;
+        margin-left: 6px;
+}
+
+.memname td {
+	vertical-align: bottom;
+}
+
+.memproto, dl.reflist dt {
+        border-top: 1px solid #A8B8D9;
+        border-left: 1px solid #A8B8D9;
+        border-right: 1px solid #A8B8D9;
+        padding: 6px 0px 6px 0px;
+        color: #253555;
+        font-weight: bold;
+        text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9);
+        background-color: #DFE5F1;
+        /* opera specific markup */
+        box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
+        border-top-right-radius: 4px;
+        /* firefox specific markup */
+        -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px;
+        -moz-border-radius-topright: 4px;
+        /* webkit specific markup */
+        -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
+        -webkit-border-top-right-radius: 4px;
+
+}
+
+.overload {
+        font-family: "courier new",courier,monospace;
+	font-size: 65%;
+}
+
+.memdoc, dl.reflist dd {
+        border-bottom: 1px solid #A8B8D9;      
+        border-left: 1px solid #A8B8D9;      
+        border-right: 1px solid #A8B8D9; 
+        padding: 6px 10px 2px 10px;
+        background-color: #FBFCFD;
+        border-top-width: 0;
+        background-image:url('nav_g.png');
+        background-repeat:repeat-x;
+        background-color: #FFFFFF;
+        /* opera specific markup */
+        border-bottom-left-radius: 4px;
+        border-bottom-right-radius: 4px;
+        box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
+        /* firefox specific markup */
+        -moz-border-radius-bottomleft: 4px;
+        -moz-border-radius-bottomright: 4px;
+        -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px;
+        /* webkit specific markup */
+        -webkit-border-bottom-left-radius: 4px;
+        -webkit-border-bottom-right-radius: 4px;
+        -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
+}
+
+dl.reflist dt {
+        padding: 5px;
+}
+
+dl.reflist dd {
+        margin: 0px 0px 10px 0px;
+        padding: 5px;
+}
+
+.paramkey {
+	text-align: right;
+}
+
+.paramtype {
+	white-space: nowrap;
+}
+
+.paramname {
+	color: #602020;
+	white-space: nowrap;
+}
+.paramname em {
+	font-style: normal;
+}
+.paramname code {
+        line-height: 14px;
+}
+
+.params, .retval, .exception, .tparams {
+        margin-left: 0px;
+        padding-left: 0px;
+}       
+
+.params .paramname, .retval .paramname, .tparams .paramname, .exception .paramname {
+        font-weight: bold;
+        vertical-align: top;
+}
+        
+.params .paramtype, .tparams .paramtype {
+        font-style: italic;
+        vertical-align: top;
+}       
+        
+.params .paramdir, .tparams .paramdir {
+        font-family: "courier new",courier,monospace;
+        vertical-align: top;
+}
+
+table.mlabels {
+	border-spacing: 0px;
+}
+
+td.mlabels-left {
+	width: 100%;
+	padding: 0px;
+}
+
+td.mlabels-right {
+	vertical-align: bottom;
+	padding: 0px;
+	white-space: nowrap;
+}
+
+span.mlabels {
+        margin-left: 8px;
+}
+
+span.mlabel {
+        background-color: #728DC1;
+        border-top:1px solid #5373B4;
+        border-left:1px solid #5373B4;
+        border-right:1px solid #C4CFE5;
+        border-bottom:1px solid #C4CFE5;
+	text-shadow: none;
+	color: white;
+	margin-right: 4px;
+	padding: 2px 3px;
+	border-radius: 3px;
+	font-size: 7pt;
+	white-space: nowrap;
+	vertical-align: middle;
+}
+
+
+
+/* @end */
+
+/* these are for tree view inside a (index) page */
+
+div.directory {
+        margin: 10px 0px;
+        border-top: 1px solid #9CAFD4;
+        border-bottom: 1px solid #9CAFD4;
+        width: 100%;
+}
+
+.directory table {
+        border-collapse:collapse;
+}
+
+.directory td {
+        margin: 0px;
+        padding: 0px;
+	vertical-align: top;
+}
+
+.directory td.entry {
+        white-space: nowrap;
+        padding-right: 6px;
+	padding-top: 3px;
+}
+
+.directory td.entry a {
+        outline:none;
+}
+
+.directory td.entry a img {
+        border: none;
+}
+
+.directory td.desc {
+        width: 100%;
+        padding-left: 6px;
+	padding-right: 6px;
+	padding-top: 3px;
+	border-left: 1px solid rgba(0,0,0,0.05);
+}
+
+.directory tr.even {
+	padding-left: 6px;
+	background-color: #F7F8FB;
+}
+
+.directory img {
+	vertical-align: -30%;
+}
+
+.directory .levels {
+        white-space: nowrap;
+        width: 100%;
+        text-align: right;
+        font-size: 9pt;
+}
+
+.directory .levels span {
+        cursor: pointer;
+        padding-left: 2px;
+        padding-right: 2px;
+	color: #3D578C;
+}
+
+.arrow {
+    color: #9CAFD4;
+    -webkit-user-select: none;
+    -khtml-user-select: none;
+    -moz-user-select: none;
+    -ms-user-select: none;
+    user-select: none;
+    cursor: pointer;
+    font-size: 80%;
+    display: inline-block;
+    width: 16px;
+    height: 22px;
+}
+
+.icon {
+    font-family: Arial, Helvetica;
+    font-weight: bold;
+    font-size: 12px;
+    height: 14px;
+    width: 16px;
+    display: inline-block;
+    background-color: #728DC1;
+    color: white;
+    text-align: center;
+    border-radius: 4px;
+    margin-left: 2px;
+    margin-right: 2px;
+}
+
+.icona {
+    width: 24px;
+    height: 22px;
+    display: inline-block;
+}
+
+.iconfopen {
+    width: 24px;
+    height: 18px;
+    margin-bottom: 4px;
+    background-image:url('folderopen.png');
+    background-position: 0px -4px;
+    background-repeat: repeat-y;
+    vertical-align:top;
+    display: inline-block;
+}
+
+.iconfclosed {
+    width: 24px;
+    height: 18px;
+    margin-bottom: 4px;
+    background-image:url('folderclosed.png');
+    background-position: 0px -4px;
+    background-repeat: repeat-y;
+    vertical-align:top;
+    display: inline-block;
+}
+
+.icondoc {
+    width: 24px;
+    height: 18px;
+    margin-bottom: 4px;
+    background-image:url('doc.png');
+    background-position: 0px -4px;
+    background-repeat: repeat-y;
+    vertical-align:top;
+    display: inline-block;
+}
+
+table.directory {
+    font: 400 14px Roboto,sans-serif;
+}
+
+/* @end */
+
+div.dynheader {
+        margin-top: 8px;
+	-webkit-touch-callout: none;
+	-webkit-user-select: none;
+	-khtml-user-select: none;
+	-moz-user-select: none;
+	-ms-user-select: none;
+	user-select: none;
+}
+
+address {
+	font-style: normal;
+	color: #2A3D61;
+}
+
+table.doxtable caption {
+	caption-side: top;
+}
+
+table.doxtable {
+	border-collapse:collapse;
+        margin-top: 4px;
+        margin-bottom: 4px;
+}
+
+table.doxtable td, table.doxtable th {
+	border: 1px solid #2D4068;
+	padding: 3px 7px 2px;
+}
+
+table.doxtable th {
+	background-color: #374F7F;
+	color: #FFFFFF;
+	font-size: 110%;
+	padding-bottom: 4px;
+	padding-top: 5px;
+}
+
+table.fieldtable {
+        /*width: 100%;*/
+        margin-bottom: 10px;
+        border: 1px solid #A8B8D9;
+        border-spacing: 0px;
+        -moz-border-radius: 4px;
+        -webkit-border-radius: 4px;
+        border-radius: 4px;
+        -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px;
+        -webkit-box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15);
+        box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15);
+}
+
+.fieldtable td, .fieldtable th {
+        padding: 3px 7px 2px;
+}
+
+.fieldtable td.fieldtype, .fieldtable td.fieldname {
+        white-space: nowrap;
+        border-right: 1px solid #A8B8D9;
+        border-bottom: 1px solid #A8B8D9;
+        vertical-align: top;
+}
+
+.fieldtable td.fieldname {
+        padding-top: 3px;
+}
+
+.fieldtable td.fielddoc {
+        border-bottom: 1px solid #A8B8D9;
+        /*width: 100%;*/
+}
+
+.fieldtable td.fielddoc p:first-child {
+        margin-top: 0px;
+}       
+        
+.fieldtable td.fielddoc p:last-child {
+        margin-bottom: 2px;
+}
+
+.fieldtable tr:last-child td {
+        border-bottom: none;
+}
+
+.fieldtable th {
+        background-image:url('nav_f.png');
+        background-repeat:repeat-x;
+        background-color: #E2E8F2;
+        font-size: 90%;
+        color: #253555;
+        padding-bottom: 4px;
+        padding-top: 5px;
+        text-align:left;
+        font-weight: 400;
+        -moz-border-radius-topleft: 4px;
+        -moz-border-radius-topright: 4px;
+        -webkit-border-top-left-radius: 4px;
+        -webkit-border-top-right-radius: 4px;
+        border-top-left-radius: 4px;
+        border-top-right-radius: 4px;
+        border-bottom: 1px solid #A8B8D9;
+}
+
+
+.tabsearch {
+	top: 0px;
+	left: 10px;
+	height: 36px;
+	background-image: url('tab_b.png');
+	z-index: 101;
+	overflow: hidden;
+	font-size: 13px;
+}
+
+.navpath ul
+{
+	font-size: 11px;
+	background-image:url('tab_b.png');
+	background-repeat:repeat-x;
+	background-position: 0 -5px;
+	height:30px;
+	line-height:30px;
+	color:#8AA0CC;
+	border:solid 1px #C2CDE4;
+	overflow:hidden;
+	margin:0px;
+	padding:0px;
+}
+
+.navpath li
+{
+	list-style-type:none;
+	float:left;
+	padding-left:10px;
+	padding-right:15px;
+	background-image:url('bc_s.png');
+	background-repeat:no-repeat;
+	background-position:right;
+	color:#364D7C;
+}
+
+.navpath li.navelem a
+{
+	height:32px;
+	display:block;
+	text-decoration: none;
+	outline: none;
+	color: #283A5D;
+	font-family: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif;
+	text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9);
+	text-decoration: none;        
+}
+
+.navpath li.navelem a:hover
+{
+	color:#6884BD;
+}
+
+.navpath li.footer
+{
+        list-style-type:none;
+        float:right;
+        padding-left:10px;
+        padding-right:15px;
+        background-image:none;
+        background-repeat:no-repeat;
+        background-position:right;
+        color:#364D7C;
+        font-size: 8pt;
+}
+
+
+div.summary
+{
+	float: right;
+	font-size: 8pt;
+	padding-right: 5px;
+	width: 50%;
+	text-align: right;
+}       
+
+div.summary a
+{
+	white-space: nowrap;
+}
+
+table.classindex
+{
+        margin: 10px;
+        white-space: nowrap;
+        margin-left: 3%;
+        margin-right: 3%;
+        width: 94%;
+        border: 0;
+        border-spacing: 0; 
+        padding: 0;
+}
+
+div.ingroups
+{
+	font-size: 8pt;
+	width: 50%;
+	text-align: left;
+}
+
+div.ingroups a
+{
+	white-space: nowrap;
+}
+
+div.header
+{
+        background-image:url('nav_h.png');
+        background-repeat:repeat-x;
+	background-color: #F9FAFC;
+	margin:  0px;
+	border-bottom: 1px solid #C4CFE5;
+}
+
+div.headertitle
+{
+	padding: 5px 5px 5px 10px;
+}
+
+.PageDocRTL-title div.headertitle {
+  text-align: right;
+  direction: rtl;
+}
+
+dl {
+        padding: 0 0 0 0;
+}
+
+/* dl.note, dl.warning, dl.attention, dl.pre, dl.post, dl.invariant, dl.deprecated, dl.todo, dl.test, dl.bug, dl.examples */
+dl.section {
+	margin-left: 0px;
+	padding-left: 0px;
+}
+
+dl.section.DocNodeRTL {
+  margin-right: 0px;
+  padding-right: 0px;
+}
+
+dl.note {
+  margin-left: -7px;
+  padding-left: 3px;
+  border-left: 4px solid;
+  border-color: #D0C000;
+}
+
+dl.note.DocNodeRTL {
+  margin-left: 0;
+  padding-left: 0;
+  border-left: 0;
+  margin-right: -7px;
+  padding-right: 3px;
+  border-right: 4px solid;
+  border-color: #D0C000;
+}
+
+dl.warning, dl.attention {
+  margin-left: -7px;
+  padding-left: 3px;
+  border-left: 4px solid;
+  border-color: #FF0000;
+}
+
+dl.warning.DocNodeRTL, dl.attention.DocNodeRTL {
+  margin-left: 0;
+  padding-left: 0;
+  border-left: 0;
+  margin-right: -7px;
+  padding-right: 3px;
+  border-right: 4px solid;
+  border-color: #FF0000;
+}
+
+dl.pre, dl.post, dl.invariant {
+  margin-left: -7px;
+  padding-left: 3px;
+  border-left: 4px solid;
+  border-color: #00D000;
+}
+
+dl.pre.DocNodeRTL, dl.post.DocNodeRTL, dl.invariant.DocNodeRTL {
+  margin-left: 0;
+  padding-left: 0;
+  border-left: 0;
+  margin-right: -7px;
+  padding-right: 3px;
+  border-right: 4px solid;
+  border-color: #00D000;
+}
+
+dl.deprecated {
+  margin-left: -7px;
+  padding-left: 3px;
+  border-left: 4px solid;
+  border-color: #505050;
+}
+
+dl.deprecated.DocNodeRTL {
+  margin-left: 0;
+  padding-left: 0;
+  border-left: 0;
+  margin-right: -7px;
+  padding-right: 3px;
+  border-right: 4px solid;
+  border-color: #505050;
+}
+
+dl.todo {
+  margin-left: -7px;
+  padding-left: 3px;
+  border-left: 4px solid;
+  border-color: #00C0E0;
+}
+
+dl.todo.DocNodeRTL {
+  margin-left: 0;
+  padding-left: 0;
+  border-left: 0;
+  margin-right: -7px;
+  padding-right: 3px;
+  border-right: 4px solid;
+  border-color: #00C0E0;
+}
+
+dl.test {
+  margin-left: -7px;
+  padding-left: 3px;
+  border-left: 4px solid;
+  border-color: #3030E0;
+}
+
+dl.test.DocNodeRTL {
+  margin-left: 0;
+  padding-left: 0;
+  border-left: 0;
+  margin-right: -7px;
+  padding-right: 3px;
+  border-right: 4px solid;
+  border-color: #3030E0;
+}
+
+dl.bug {
+  margin-left: -7px;
+  padding-left: 3px;
+  border-left: 4px solid;
+  border-color: #C08050;
+}
+
+dl.bug.DocNodeRTL {
+  margin-left: 0;
+  padding-left: 0;
+  border-left: 0;
+  margin-right: -7px;
+  padding-right: 3px;
+  border-right: 4px solid;
+  border-color: #C08050;
+}
+
+dl.section dd {
+	margin-bottom: 6px;
+}
+
+
+#projectlogo
+{
+	text-align: center;
+	vertical-align: bottom;
+	border-collapse: separate;
+}
+ 
+#projectlogo img
+{ 
+	border: 0px none;
+}
+ 
+#projectalign
+{
+        vertical-align: middle;
+}
+
+#projectname
+{
+	font: 300% Tahoma, Arial,sans-serif;
+	margin: 0px;
+	padding: 2px 0px;
+}
+    
+#projectbrief
+{
+	font: 120% Tahoma, Arial,sans-serif;
+	margin: 0px;
+	padding: 0px;
+}
+
+#projectnumber
+{
+	font: 50% Tahoma, Arial,sans-serif;
+	margin: 0px;
+	padding: 0px;
+}
+
+#titlearea
+{
+	padding: 0px;
+	margin: 0px;
+	width: 100%;
+	border-bottom: 1px solid #5373B4;
+}
+
+.image
+{
+        text-align: center;
+}
+
+.dotgraph
+{
+        text-align: center;
+}
+
+.mscgraph
+{
+        text-align: center;
+}
+
+.plantumlgraph
+{
+        text-align: center;
+}
+
+.diagraph
+{
+        text-align: center;
+}
+
+.caption
+{
+	font-weight: bold;
+}
+
+div.zoom
+{
+	border: 1px solid #90A5CE;
+}
+
+dl.citelist {
+        margin-bottom:50px;
+}
+
+dl.citelist dt {
+        color:#334975;
+        float:left;
+        font-weight:bold;
+        margin-right:10px;
+        padding:5px;
+        text-align:right;
+        width:52px;
+}
+
+dl.citelist dd {
+        margin:2px 0 2px 72px;
+        padding:5px 0;
+}
+
+div.toc {
+        padding: 14px 25px;
+        background-color: #F4F6FA;
+        border: 1px solid #D8DFEE;
+        border-radius: 7px 7px 7px 7px;
+        float: right;
+        height: auto;
+        margin: 0 8px 10px 10px;
+        width: 200px;
+}
+
+.PageDocRTL-title div.toc {
+  float: left !important;
+  text-align: right;
+}
+
+div.toc li {
+        background: url("bdwn.png") no-repeat scroll 0 5px transparent;
+        font: 10px/1.2 Verdana,DejaVu Sans,Geneva,sans-serif;
+        margin-top: 5px;
+        padding-left: 10px;
+        padding-top: 2px;
+}
+
+.PageDocRTL-title div.toc li {
+  background-position-x: right !important;
+  padding-left: 0 !important;
+  padding-right: 10px;
+}
+
+div.toc h3 {
+        font: bold 12px/1.2 Arial,FreeSans,sans-serif;
+	color: #4665A2;
+        border-bottom: 0 none;
+        margin: 0;
+}
+
+div.toc ul {
+        list-style: none outside none;
+        border: medium none;
+        padding: 0px;
+}       
+
+div.toc li.level1 {
+        margin-left: 0px;
+}
+
+div.toc li.level2 {
+        margin-left: 15px;
+}
+
+div.toc li.level3 {
+        margin-left: 30px;
+}
+
+div.toc li.level4 {
+        margin-left: 45px;
+}
+
+.PageDocRTL-title div.toc li.level1 {
+  margin-left: 0 !important;
+  margin-right: 0;
+}
+
+.PageDocRTL-title div.toc li.level2 {
+  margin-left: 0 !important;
+  margin-right: 15px;
+}
+
+.PageDocRTL-title div.toc li.level3 {
+  margin-left: 0 !important;
+  margin-right: 30px;
+}
+
+.PageDocRTL-title div.toc li.level4 {
+  margin-left: 0 !important;
+  margin-right: 45px;
+}
+
+.inherit_header {
+        font-weight: bold;
+        color: gray;
+        cursor: pointer;
+	-webkit-touch-callout: none;
+	-webkit-user-select: none;
+	-khtml-user-select: none;
+	-moz-user-select: none;
+	-ms-user-select: none;
+	user-select: none;
+}
+
+.inherit_header td {
+        padding: 6px 0px 2px 5px;
+}
+
+.inherit {
+        display: none;
+}
+
+tr.heading h2 {
+        margin-top: 12px;
+        margin-bottom: 4px;
+}
+
+/* tooltip related style info */
+
+.ttc {
+        position: absolute;
+        display: none;
+}
+
+#powerTip {
+	cursor: default;
+	white-space: nowrap;
+	background-color: white;
+	border: 1px solid gray;
+	border-radius: 4px 4px 4px 4px;
+	box-shadow: 1px 1px 7px gray;
+	display: none;
+	font-size: smaller;
+	max-width: 80%;
+	opacity: 0.9;
+	padding: 1ex 1em 1em;
+	position: absolute;
+	z-index: 2147483647;
+}
+
+#powerTip div.ttdoc {
+        color: grey;
+	font-style: italic;
+}
+
+#powerTip div.ttname a {
+        font-weight: bold;
+}
+
+#powerTip div.ttname {
+        font-weight: bold;
+}
+
+#powerTip div.ttdeci {
+        color: #006318;
+}
+
+#powerTip div {
+        margin: 0px;
+        padding: 0px;
+        font: 12px/16px Roboto,sans-serif;
+}
+
+#powerTip:before, #powerTip:after {
+	content: "";
+	position: absolute;
+	margin: 0px;
+}
+
+#powerTip.n:after,  #powerTip.n:before,
+#powerTip.s:after,  #powerTip.s:before,
+#powerTip.w:after,  #powerTip.w:before,
+#powerTip.e:after,  #powerTip.e:before,
+#powerTip.ne:after, #powerTip.ne:before,
+#powerTip.se:after, #powerTip.se:before,
+#powerTip.nw:after, #powerTip.nw:before,
+#powerTip.sw:after, #powerTip.sw:before {
+	border: solid transparent;
+	content: " ";
+	height: 0;
+	width: 0;
+	position: absolute;
+}
+
+#powerTip.n:after,  #powerTip.s:after,
+#powerTip.w:after,  #powerTip.e:after,
+#powerTip.nw:after, #powerTip.ne:after,
+#powerTip.sw:after, #powerTip.se:after {
+	border-color: rgba(255, 255, 255, 0);
+}
+
+#powerTip.n:before,  #powerTip.s:before,
+#powerTip.w:before,  #powerTip.e:before,
+#powerTip.nw:before, #powerTip.ne:before,
+#powerTip.sw:before, #powerTip.se:before {
+	border-color: rgba(128, 128, 128, 0);
+}
+
+#powerTip.n:after,  #powerTip.n:before,
+#powerTip.ne:after, #powerTip.ne:before,
+#powerTip.nw:after, #powerTip.nw:before {
+	top: 100%;
+}
+
+#powerTip.n:after, #powerTip.ne:after, #powerTip.nw:after {
+	border-top-color: #FFFFFF;
+	border-width: 10px;
+	margin: 0px -10px;
+}
+#powerTip.n:before {
+	border-top-color: #808080;
+	border-width: 11px;
+	margin: 0px -11px;
+}
+#powerTip.n:after, #powerTip.n:before {
+	left: 50%;
+}
+
+#powerTip.nw:after, #powerTip.nw:before {
+	right: 14px;
+}
+
+#powerTip.ne:after, #powerTip.ne:before {
+	left: 14px;
+}
+
+#powerTip.s:after,  #powerTip.s:before,
+#powerTip.se:after, #powerTip.se:before,
+#powerTip.sw:after, #powerTip.sw:before {
+	bottom: 100%;
+}
+
+#powerTip.s:after, #powerTip.se:after, #powerTip.sw:after {
+	border-bottom-color: #FFFFFF;
+	border-width: 10px;
+	margin: 0px -10px;
+}
+
+#powerTip.s:before, #powerTip.se:before, #powerTip.sw:before {
+	border-bottom-color: #808080;
+	border-width: 11px;
+	margin: 0px -11px;
+}
+
+#powerTip.s:after, #powerTip.s:before {
+	left: 50%;
+}
+
+#powerTip.sw:after, #powerTip.sw:before {
+	right: 14px;
+}
+
+#powerTip.se:after, #powerTip.se:before {
+	left: 14px;
+}
+
+#powerTip.e:after, #powerTip.e:before {
+	left: 100%;
+}
+#powerTip.e:after {
+	border-left-color: #FFFFFF;
+	border-width: 10px;
+	top: 50%;
+	margin-top: -10px;
+}
+#powerTip.e:before {
+	border-left-color: #808080;
+	border-width: 11px;
+	top: 50%;
+	margin-top: -11px;
+}
+
+#powerTip.w:after, #powerTip.w:before {
+	right: 100%;
+}
+#powerTip.w:after {
+	border-right-color: #FFFFFF;
+	border-width: 10px;
+	top: 50%;
+	margin-top: -10px;
+}
+#powerTip.w:before {
+	border-right-color: #808080;
+	border-width: 11px;
+	top: 50%;
+	margin-top: -11px;
+}
+
+@media print
+{
+  #top { display: none; }
+  #side-nav { display: none; }
+  #nav-path { display: none; }
+  body { overflow:visible; }
+  h1, h2, h3, h4, h5, h6 { page-break-after: avoid; }
+  .summary { display: none; }
+  .memitem { page-break-inside: avoid; }
+  #doc-content
+  {
+    margin-left:0 !important;
+    height:auto !important;
+    width:auto !important;
+    overflow:inherit;
+    display:inline;
+  }
+}
+
+/* @group Markdown */
+
+table.markdownTable {
+	border-collapse:collapse;
+        margin-top: 4px;
+        margin-bottom: 4px;
+}
+
+table.markdownTable td, table.markdownTable th {
+	border: 1px solid #2D4068;
+	padding: 3px 7px 2px;
+}
+
+table.markdownTable tr {
+}
+
+th.markdownTableHeadLeft, th.markdownTableHeadRight, th.markdownTableHeadCenter, th.markdownTableHeadNone {
+	background-color: #374F7F;
+	color: #FFFFFF;
+	font-size: 110%;
+	padding-bottom: 4px;
+	padding-top: 5px;
+}
+
+th.markdownTableHeadLeft, td.markdownTableBodyLeft {
+	text-align: left
+}
+
+th.markdownTableHeadRight, td.markdownTableBodyRight {
+	text-align: right
+}
+
+th.markdownTableHeadCenter, td.markdownTableBodyCenter {
+	text-align: center
+}
+
+.DocNodeRTL {
+  text-align: right;
+  direction: rtl;
+}
+
+.DocNodeLTR {
+  text-align: left;
+  direction: ltr;
+}
+
+table.DocNodeRTL {
+   width: auto;
+   margin-right: 0;
+   margin-left: auto;
+}
+
+table.DocNodeLTR {
+   width: auto;
+   margin-right: auto;
+   margin-left: 0;
+}
+
+tt, code, kbd, samp
+{
+  display: inline-block;
+  direction:ltr; 
+}
+/* @end */
+
+u {
+	text-decoration: underline;
+}
+
diff --git a/doxy/html/doxygen.svg b/doxy/html/doxygen.svg
new file mode 100644
index 0000000000000000000000000000000000000000..d42dad52d5d1d835a65d89dbddd042c44ee40d3b
--- /dev/null
+++ b/doxy/html/doxygen.svg
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.1" viewBox="0 0 104 31" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <defs>
+  <linearGradient id="a">
+   <stop stop-color="#5373B4" offset="0"/>
+   <stop stop-color="#7C95C6" offset="1"/>
+  </linearGradient>
+  <linearGradient id="d" x1="31.474" x2="31.474" y1="24.821" y2="26.773" gradientUnits="userSpaceOnUse" xlink:href="#a"/>
+  <linearGradient id="c" x1="31.474" x2="31.474" y1="24.821" y2="26.773" gradientTransform="matrix(.6816 0 0 1.0248 72.391 -.91809)" gradientUnits="userSpaceOnUse" xlink:href="#a"/>
+  <linearGradient id="b" x1="56.295" x2="56.295" y1="24.622" y2="26.574" gradientUnits="userSpaceOnUse" xlink:href="#a"/>
+  <linearGradient id="e" x1="49.067" x2="48.956" y1="19.719" y2="9.5227" gradientTransform="matrix(.97968 0 0 1.0207 -.25579 -.25579)" gradientUnits="userSpaceOnUse">
+   <stop stop-color="#C0CCE3" offset="0"/>
+   <stop stop-color="#EEF1F7" offset="1"/>
+  </linearGradient>
+  <filter id="f" x="-.010676" y="-.045304" width="1.0214" height="1.0906" color-interpolation-filters="sRGB">
+   <feGaussianBlur stdDeviation="0.45293203"/>
+  </filter>
+ </defs>
+ <g>
+  <path transform="translate(-2.5759 -27.848)" d="m13.609 32.203v6.8633h-0.05078c-0.40533-0.66867-0.96254-1.1715-1.6719-1.5059-0.69244-0.35193-1.4282-0.52734-2.2051-0.52734-0.96267 0-1.807 0.2027-2.5332 0.60742-0.72622 0.38713-1.3344 0.90556-1.8242 1.5566-0.47289 0.65108-0.83456 1.4092-1.0879 2.2715-0.23644 0.84464-0.35547 1.7236-0.35547 2.6387 0 0.95022 0.11902 1.8643 0.35547 2.7441 0.25333 0.87983 0.615 1.6633 1.0879 2.3496 0.48978 0.66867 1.1065 1.2066 1.8496 1.6113 0.74311 0.38713 1.6044 0.58008 2.584 0.58008 0.86133 0 1.6311-0.15787 2.3066-0.47461 0.69244-0.33434 1.2497-0.87227 1.6719-1.6113h0.05078v1.7422h3.4199v-18.846zm12.875 4.8301c-1.0302 0-1.9596 0.17541-2.7871 0.52734-0.82756 0.33434-1.5358 0.81965-2.127 1.4531-0.59111 0.61588-1.0483 1.3721-1.3691 2.2695-0.32089 0.87983-0.48047 1.866-0.48047 2.957s0.15958 2.0752 0.48047 2.9551c0.32089 0.87983 0.77803 1.6361 1.3691 2.2695 0.59111 0.61588 1.2994 1.0914 2.127 1.4258 0.82756 0.33434 1.7569 0.50195 2.7871 0.50195 1.0302 0 1.9596-0.16762 2.7871-0.50195 0.84444-0.33434 1.5612-0.8099 2.1523-1.4258 0.59111-0.63348 1.0483-1.3897 1.3691-2.2695 0.32089-0.87983 0.48047-1.8641 0.48047-2.9551s-0.15958-2.0772-0.48047-2.957c-0.32089-0.89743-0.77803-1.6536-1.3691-2.2695-0.59111-0.63348-1.3079-1.1188-2.1523-1.4531-0.82756-0.35193-1.7569-0.52734-2.7871-0.52734zm41.715 0c-0.912 0-1.7223 0.18516-2.4316 0.55469-0.69244 0.36953-1.2752 0.87043-1.748 1.5039-0.47289 0.61588-0.83651 1.337-1.0898 2.1641-0.23645 0.80944-0.35352 1.6553-0.35352 2.5352 0 0.93262 0.10007 1.8214 0.30273 2.666 0.21956 0.82704 0.55767 1.556 1.0137 2.1895 0.456 0.61588 1.0387 1.109 1.748 1.4785 0.70933 0.35193 1.5536 0.5293 2.5332 0.5293 0.79378 0 1.5446-0.16762 2.2539-0.50195 0.72622-0.35193 1.2834-0.88986 1.6719-1.6113h0.05078v1.7949c0.01689 0.96782-0.21071 1.7689-0.68359 2.4023-0.456 0.63348-1.1898 0.95117-2.2031 0.95117-0.64178 0-1.2075-0.14228-1.6973-0.42383-0.48978-0.26395-0.81939-0.74731-0.98828-1.4512h-3.5723c0.05067 0.77425 0.25276 1.435 0.60742 1.9805 0.37156 0.56309 0.8287 1.0192 1.3691 1.3711 0.55733 0.35193 1.1656 0.60726 1.8242 0.76562 0.67556 0.17597 1.3328 0.26562 1.9746 0.26562 1.5031 0 2.7025-0.21245 3.5977-0.63477 0.89511-0.42232 1.5798-0.94076 2.0527-1.5566 0.47289-0.59829 0.777-1.2493 0.91211-1.9531 0.152-0.70386 0.22656-1.3295 0.22656-1.875v-12.775h-3.4199v1.8223h-0.05078c-0.43911-0.79185-0.98782-1.3551-1.6465-1.6895-0.64178-0.33434-1.3926-0.50195-2.2539-0.50195zm16.523 0c-0.99644 0-1.9088 0.18516-2.7363 0.55469-0.81067 0.36953-1.5124 0.88018-2.1035 1.5312-0.59111 0.63348-1.0463 1.3897-1.3672 2.2695s-0.48047 1.831-0.48047 2.8516c0 1.0558 0.15108 2.0225 0.45508 2.9023 0.32089 0.87983 0.76758 1.6361 1.3418 2.2695 0.57422 0.63348 1.276 1.1266 2.1035 1.4785 0.82756 0.33434 1.7569 0.50195 2.7871 0.50195 1.4862 0 2.7517-0.35277 3.7988-1.0566 1.0471-0.70387 1.8254-1.8733 2.332-3.5098h-3.168c-0.11822 0.42232-0.43934 0.82772-0.96289 1.2148-0.52355 0.36953-1.1468 0.55274-1.873 0.55273-1.0133 0-1.7916-0.27286-2.332-0.81836-0.54044-0.5455-0.83605-1.4245-0.88672-2.6387h9.4492c0.06756-1.0558-0.01551-2.0673-0.25195-3.0352-0.23644-0.96782-0.62557-1.8293-1.166-2.5859-0.52356-0.75666-1.1998-1.355-2.0273-1.7949-0.82756-0.45751-1.7974-0.6875-2.9121-0.6875zm16.189 0c-0.76 0-1.5023 0.18516-2.2285 0.55469-0.72622 0.35193-1.3174 0.92299-1.7734 1.7148h-0.07617v-1.9004h-3.4199v13.646h3.5977v-7.1523c0-1.3901 0.21909-2.3841 0.6582-2.9824 0.43911-0.61588 1.1494-0.92383 2.1289-0.92383 0.86133 0 1.4611 0.28066 1.7988 0.84375 0.33777 0.5455 0.50586 1.3816 0.50586 2.5078v7.707h3.5976v-8.3926c0-0.84464-0.0765-1.6106-0.22851-2.2969-0.13511-0.70387-0.37971-1.2925-0.73438-1.7676-0.35466-0.49271-0.84386-0.87277-1.4688-1.1367-0.608-0.28155-1.3948-0.42188-2.3574-0.42188zm-66.063 0.36914 4.3066 6.4668-4.7129 7.1797h4.0293l2.7363-4.3027 2.7344 4.3027h4.1055l-4.8398-7.2578 4.3066-6.3887h-3.9766l-2.2793 3.5645-2.3066-3.5645zm13.275 0 4.584 12.803c0.10133 0.26395 0.15234 0.54461 0.15234 0.84375 0 0.40472-0.11707 0.77504-0.35352 1.1094-0.21956 0.33434-0.56617 0.52729-1.0391 0.58008-0.35467 0.0176-0.70979 0.0098-1.0645-0.02539-0.35467-0.03519-0.70128-0.07028-1.0391-0.10547v3.0879c0.37156 0.03519 0.73518 0.06051 1.0898 0.07813 0.37156 0.03519 0.74368 0.05273 1.1152 0.05273 1.2329 0 2.1943-0.23778 2.8867-0.71289 0.69244-0.47511 1.2326-1.2664 1.6211-2.375l5.4727-15.336h-3.7246l-2.8613 9.3438h-0.05078l-2.9648-9.3438zm-37.48 2.4551c0.59111 0 1.0823 0.12279 1.4707 0.36914 0.38844 0.24635 0.6991 0.57184 0.93555 0.97656 0.25333 0.38713 0.43187 0.84515 0.5332 1.373 0.10133 0.5103 0.15234 1.0482 0.15234 1.6113 0 0.56309-0.05101 1.1069-0.15234 1.6348-0.10133 0.5279-0.27137 1.0035-0.50781 1.4258-0.23644 0.40472-0.5556 0.73021-0.96094 0.97656-0.38844 0.24635-0.87959 0.36914-1.4707 0.36914-0.55733 0-1.038-0.12279-1.4434-0.36914-0.38844-0.26395-0.71806-0.59723-0.98828-1.002-0.25333-0.42232-0.43842-0.89788-0.55664-1.4258s-0.17773-1.0561-0.17773-1.584c-1e-7 -0.56309 0.05101-1.0991 0.15234-1.6094 0.11822-0.5279 0.29481-0.99567 0.53125-1.4004 0.25333-0.40472 0.58295-0.73021 0.98828-0.97656 0.40533-0.24635 0.90303-0.36914 1.4941-0.36914zm15.84 0c0.608 0 1.1142 0.13253 1.5195 0.39648 0.42222 0.24635 0.75184 0.57184 0.98828 0.97656 0.25333 0.40472 0.42992 0.87054 0.53125 1.3984 0.10133 0.5279 0.15234 1.0658 0.15234 1.6113 0 0.5455-0.05101 1.0815-0.15234 1.6094-0.10134 0.5103-0.27792 0.97612-0.53125 1.3984-0.23644 0.40472-0.56606 0.73021-0.98828 0.97656-0.40533 0.24635-0.91153 0.36914-1.5195 0.36914-0.608 0-1.1142-0.12279-1.5195-0.36914s-0.73495-0.57184-0.98828-0.97656c-0.23644-0.42232-0.40648-0.88814-0.50781-1.3984-0.10133-0.5279-0.15234-1.0639-0.15234-1.6094 0-0.5455 0.05101-1.0834 0.15234-1.6113 0.10133-0.5279 0.27137-0.99371 0.50781-1.3984 0.25333-0.40472 0.58295-0.73021 0.98828-0.97656 0.40533-0.26395 0.91153-0.39648 1.5195-0.39648zm42.602 0c0.59111 0 1.0803 0.11499 1.4688 0.34375 0.38844 0.22876 0.70105 0.5367 0.9375 0.92383 0.23644 0.38713 0.40648 0.8354 0.50781 1.3457 0.10133 0.49271 0.15039 1.0209 0.15039 1.584 0 0.4927-0.06606 0.96827-0.20117 1.4258-0.11822 0.43992-0.30526 0.83557-0.55859 1.1875-0.25333 0.35193-0.57445 0.63259-0.96289 0.84375-0.38844 0.21116-0.83513 0.31836-1.3418 0.31836-0.55733 0-1.021-0.12474-1.3926-0.37109-0.37156-0.24635-0.67566-0.56209-0.91211-0.94922-0.21956-0.38713-0.38109-0.81786-0.48242-1.293-0.08444-0.49271-0.12695-0.98581-0.12695-1.4785 0-0.5103 0.05101-0.99366 0.15234-1.4512 0.11822-0.47511 0.29676-0.89025 0.5332-1.2422 0.25333-0.36953 0.55744-0.65993 0.91211-0.87109 0.37156-0.21116 0.80974-0.31641 1.3164-0.31641zm15.535 0c0.87822 0 1.529 0.24753 1.9512 0.74023 0.43911 0.49271 0.74322 1.2138 0.91211 2.1641h-5.8535c0.01689-0.26395 0.0679-0.5641 0.15234-0.89844 0.10133-0.33434 0.26287-0.65008 0.48242-0.94922 0.23644-0.29914 0.54055-0.54667 0.91211-0.74023 0.38845-0.21116 0.86914-0.31641 1.4434-0.31641z" filter="url(#f)" opacity=".3" stroke="#969696" xlink:href="#path141"/>
+  <path d="m0.97202 24.161 43.605-0.0019 0.0508 3.3061-43.6 0.04174z" fill="url(#d)" stroke="#000" stroke-width=".5"/>
+  <path d="m10.283 3.5547v6.8633h-0.05078c-0.40533-0.66867-0.96254-1.1715-1.6719-1.5059-0.69244-0.35193-1.4282-0.52734-2.2051-0.52734-0.96267 0-1.807 0.2027-2.5332 0.60742-0.72622 0.38713-1.3344 0.90556-1.8242 1.5566-0.47289 0.65108-0.83456 1.4092-1.0879 2.2715-0.23644 0.84464-0.35547 1.7236-0.35547 2.6387 0 0.95022 0.11902 1.8643 0.35547 2.7441 0.25333 0.87983 0.615 1.6633 1.0879 2.3496 0.48978 0.66867 1.1065 1.2066 1.8496 1.6113 0.74311 0.38713 1.6044 0.58008 2.584 0.58008 0.86133 0 1.6311-0.15787 2.3066-0.47461 0.69244-0.33434 1.2497-0.87227 1.6719-1.6113h0.05078v1.7422h3.4199v-18.846zm12.875 4.8301c-1.0302 0-1.9596 0.17541-2.7871 0.52734-0.82756 0.33434-1.5358 0.81965-2.127 1.4531-0.59111 0.61588-1.0483 1.3721-1.3691 2.2695-0.32089 0.87983-0.48047 1.866-0.48047 2.957s0.15958 2.0752 0.48047 2.9551c0.32089 0.87983 0.77803 1.6361 1.3691 2.2695 0.59111 0.61588 1.2994 1.0914 2.127 1.4258 0.82756 0.33434 1.7569 0.50195 2.7871 0.50195 1.0302 0 1.9596-0.16762 2.7871-0.50195 0.84444-0.33434 1.5612-0.8099 2.1523-1.4258 0.59111-0.63348 1.0483-1.3897 1.3691-2.2695 0.32089-0.87983 0.48047-1.8641 0.48047-2.9551s-0.15958-2.0772-0.48047-2.957c-0.32089-0.89743-0.77803-1.6536-1.3691-2.2695-0.59111-0.63348-1.3079-1.1188-2.1523-1.4531-0.82756-0.35193-1.7569-0.52734-2.7871-0.52734zm41.715 0c-0.912 0-1.7223 0.18516-2.4316 0.55469-0.69244 0.36953-1.2752 0.87043-1.748 1.5039-0.47289 0.61588-0.83651 1.337-1.0898 2.1641-0.23644 0.80944-0.35352 1.6553-0.35352 2.5352 0 0.93262 0.10007 1.8214 0.30273 2.666 0.21956 0.82704 0.55767 1.556 1.0137 2.1895 0.456 0.61588 1.0387 1.109 1.748 1.4785 0.70933 0.35193 1.5536 0.5293 2.5332 0.5293 0.79378 0 1.5446-0.16762 2.2539-0.50195 0.72622-0.35193 1.2834-0.88986 1.6719-1.6113h0.05078v1.7949c0.01689 0.96782-0.21071 1.7689-0.68359 2.4023-0.456 0.63348-1.1898 0.95117-2.2031 0.95117-0.64178 0-1.2075-0.14228-1.6973-0.42383-0.48978-0.26395-0.81939-0.74731-0.98828-1.4512h-3.5723c0.05067 0.77425 0.25276 1.435 0.60742 1.9805 0.37156 0.56309 0.8287 1.0192 1.3691 1.3711 0.55733 0.35193 1.1656 0.60726 1.8242 0.76562 0.67556 0.17597 1.3328 0.26562 1.9746 0.26562 1.5031 0 2.7025-0.21245 3.5977-0.63477 0.89511-0.42232 1.5798-0.94076 2.0527-1.5566 0.47289-0.59829 0.777-1.2493 0.91211-1.9531 0.152-0.70386 0.22656-1.3295 0.22656-1.875v-12.775h-3.4199v1.8223h-0.05078c-0.43911-0.79185-0.98782-1.3551-1.6465-1.6895-0.64178-0.33434-1.3926-0.50195-2.2539-0.50195zm16.523 0c-0.99644 0-1.9088 0.18516-2.7363 0.55469-0.81067 0.36953-1.5124 0.88017-2.1035 1.5312-0.59111 0.63348-1.0463 1.3897-1.3672 2.2695s-0.48047 1.831-0.48047 2.8516c0 1.0558 0.15108 2.0225 0.45508 2.9023 0.32089 0.87983 0.76758 1.6361 1.3418 2.2695 0.57422 0.63348 1.276 1.1266 2.1035 1.4785 0.82756 0.33434 1.7569 0.50195 2.7871 0.50195 1.4862 0 2.7517-0.35278 3.7988-1.0566 1.0471-0.70386 1.8254-1.8733 2.332-3.5098h-3.168c-0.11822 0.42232-0.43934 0.82772-0.96289 1.2148-0.52355 0.36953-1.1468 0.55274-1.873 0.55273-1.0133 0-1.7916-0.27286-2.332-0.81836-0.54044-0.5455-0.83605-1.4245-0.88672-2.6387h9.4492c0.06756-1.0558-0.01551-2.0673-0.25195-3.0352-0.23644-0.96782-0.62557-1.8293-1.166-2.5859-0.52356-0.75666-1.1998-1.355-2.0273-1.7949-0.82756-0.45751-1.7974-0.6875-2.9121-0.6875zm16.189 0c-0.76 0-1.5023 0.18516-2.2285 0.55469-0.72622 0.35193-1.3174 0.923-1.7734 1.7148h-0.07617v-1.9004h-3.4199v13.646h3.5977v-7.1523c0-1.3901 0.21909-2.3841 0.6582-2.9824 0.43911-0.61588 1.1494-0.92383 2.1289-0.92383 0.86133 0 1.461 0.28066 1.7988 0.84375 0.33778 0.5455 0.50586 1.3816 0.50586 2.5078v7.707h3.5977v-8.3926c0-0.84464-0.0765-1.6106-0.22852-2.2969-0.13511-0.70387-0.3797-1.2925-0.73437-1.7676-0.35466-0.49271-0.84386-0.87277-1.4688-1.1367-0.608-0.28155-1.3948-0.42188-2.3574-0.42188zm-66.062 0.36914 4.3066 6.4668-4.7129 7.1797h4.0293l2.7363-4.3027 2.7344 4.3027h4.1055l-4.8398-7.2578 4.3066-6.3887h-3.9766l-2.2793 3.5645-2.3066-3.5645zm13.275 0 4.584 12.803c0.10133 0.26395 0.15234 0.54461 0.15234 0.84375 0 0.40472-0.11707 0.77504-0.35352 1.1094-0.21956 0.33434-0.56617 0.52729-1.0391 0.58008-0.35467 0.0176-0.70979 0.0098-1.0645-0.02539-0.35467-0.03519-0.70128-0.07027-1.0391-0.10547v3.0879c0.37156 0.03519 0.73518 0.06052 1.0898 0.07813 0.37156 0.03519 0.74368 0.05273 1.1152 0.05273 1.2329 0 2.1943-0.23778 2.8867-0.71289 0.69244-0.47511 1.2326-1.2664 1.6211-2.375l5.4727-15.336h-3.7246l-2.8613 9.3437h-0.05078l-2.9648-9.3437zm-37.48 2.4551c0.59111 0 1.0823 0.12279 1.4707 0.36914s0.6991 0.57184 0.93555 0.97656c0.25333 0.38713 0.43187 0.84515 0.5332 1.373 0.10133 0.5103 0.15234 1.0482 0.15234 1.6113 0 0.56309-0.05101 1.1069-0.15234 1.6348-0.10133 0.5279-0.27137 1.0035-0.50781 1.4258-0.23644 0.40472-0.5556 0.73021-0.96094 0.97656-0.38844 0.24635-0.87959 0.36914-1.4707 0.36914-0.55733 0-1.038-0.12279-1.4434-0.36914-0.38844-0.26395-0.71806-0.59723-0.98828-1.002-0.25333-0.42232-0.43842-0.89788-0.55664-1.4258s-0.17773-1.0561-0.17773-1.584c-1e-7 -0.56309 0.05101-1.0991 0.15234-1.6094 0.11822-0.5279 0.29481-0.99567 0.53125-1.4004 0.25333-0.40472 0.58295-0.73021 0.98828-0.97656 0.40533-0.24635 0.90303-0.36914 1.4941-0.36914zm15.84 0c0.608 0 1.1142 0.13254 1.5195 0.39648 0.42222 0.24635 0.75184 0.57184 0.98828 0.97656 0.25333 0.40472 0.42992 0.87054 0.53125 1.3984 0.10133 0.5279 0.15234 1.0658 0.15234 1.6113 0 0.5455-0.05101 1.0815-0.15234 1.6094-0.10133 0.5103-0.27792 0.97612-0.53125 1.3984-0.23644 0.40472-0.56606 0.73021-0.98828 0.97656-0.40533 0.24635-0.91153 0.36914-1.5195 0.36914-0.608 0-1.1142-0.12279-1.5195-0.36914s-0.73495-0.57184-0.98828-0.97656c-0.23644-0.42232-0.40648-0.88813-0.50781-1.3984-0.10133-0.5279-0.15234-1.0639-0.15234-1.6094 0-0.5455 0.05101-1.0834 0.15234-1.6113 0.10133-0.5279 0.27137-0.99371 0.50781-1.3984 0.25333-0.40472 0.58295-0.73021 0.98828-0.97656 0.40533-0.26395 0.91153-0.39648 1.5195-0.39648zm42.602 0c0.59111 0 1.0803 0.11499 1.4688 0.34375 0.38844 0.22876 0.70106 0.5367 0.9375 0.92383 0.23644 0.38713 0.40648 0.8354 0.50781 1.3457 0.10133 0.49271 0.15039 1.0209 0.15039 1.584 0 0.49271-0.06606 0.96827-0.20117 1.4258-0.11822 0.43992-0.30526 0.83557-0.55859 1.1875-0.25333 0.35193-0.57445 0.63259-0.96289 0.84375-0.38844 0.21116-0.83513 0.31836-1.3418 0.31836-0.55733 0-1.021-0.12474-1.3926-0.37109-0.37156-0.24635-0.67566-0.56209-0.91211-0.94922-0.21956-0.38713-0.38109-0.81786-0.48242-1.293-0.08444-0.49271-0.12695-0.98581-0.12695-1.4785 0-0.5103 0.05101-0.99366 0.15234-1.4512 0.11822-0.47511 0.29676-0.89026 0.5332-1.2422 0.25333-0.36953 0.55744-0.65993 0.91211-0.87109 0.37156-0.21116 0.80974-0.31641 1.3164-0.31641zm15.535 0c0.87822 0 1.529 0.24753 1.9512 0.74024 0.43911 0.49271 0.74322 1.2138 0.91211 2.1641h-5.8535c0.01689-0.26395 0.0679-0.5641 0.15234-0.89844 0.10133-0.33434 0.26287-0.65008 0.48242-0.94922 0.23644-0.29914 0.54055-0.54667 0.91211-0.74023 0.38845-0.21116 0.86914-0.31641 1.4434-0.31641z" fill="url(#e)" stroke="#4665A2" stroke-width=".7"/>
+  <path d="m52.988 27.291c0.99602-1.0359 1.3944-1.8725 1.7928-3.1076l3.8247-0.03984c0.3113 1.6096 0.82413 2.5137 1.6335 3.1474z" fill="url(#b)" stroke="#000" stroke-width=".5"/>
+  <path d="m73.89 24.04 28.885-0.2011-0.12476 3.3879-31.033 0.16229c1.2621-1.0234 1.9665-2.2859 2.2724-3.3491z" fill="url(#c)" stroke="#000" stroke-width=".41788"/>
+ </g>
+</svg>
diff --git a/doxy/html/dynsections.js b/doxy/html/dynsections.js
new file mode 100644
index 0000000000000000000000000000000000000000..88f2c27e6d91fee817a071a97f6e05799d1331db
--- /dev/null
+++ b/doxy/html/dynsections.js
@@ -0,0 +1,128 @@
+/*
+ @licstart  The following is the entire license notice for the JavaScript code in this file.
+
+ The MIT License (MIT)
+
+ Copyright (C) 1997-2020 by Dimitri van Heesch
+
+ Permission is hereby granted, free of charge, to any person obtaining a copy of this software
+ and associated documentation files (the "Software"), to deal in the Software without restriction,
+ including without limitation the rights to use, copy, modify, merge, publish, distribute,
+ sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
+ furnished to do so, subject to the following conditions:
+
+ The above copyright notice and this permission notice shall be included in all copies or
+ substantial portions of the Software.
+
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
+ BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+ DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+ @licend  The above is the entire license notice for the JavaScript code in this file
+ */
+function toggleVisibility(linkObj)
+{
+ var base = $(linkObj).attr('id');
+ var summary = $('#'+base+'-summary');
+ var content = $('#'+base+'-content');
+ var trigger = $('#'+base+'-trigger');
+ var src=$(trigger).attr('src');
+ if (content.is(':visible')===true) {
+   content.hide();
+   summary.show();
+   $(linkObj).addClass('closed').removeClass('opened');
+   $(trigger).attr('src',src.substring(0,src.length-8)+'closed.png');
+ } else {
+   content.show();
+   summary.hide();
+   $(linkObj).removeClass('closed').addClass('opened');
+   $(trigger).attr('src',src.substring(0,src.length-10)+'open.png');
+ }
+ return false;
+}
+
+function updateStripes()
+{
+  $('table.directory tr').
+       removeClass('even').filter(':visible:even').addClass('even');
+}
+
+function toggleLevel(level)
+{
+  $('table.directory tr').each(function() {
+    var l = this.id.split('_').length-1;
+    var i = $('#img'+this.id.substring(3));
+    var a = $('#arr'+this.id.substring(3));
+    if (l<level+1) {
+      i.removeClass('iconfopen iconfclosed').addClass('iconfopen');
+      a.html('&#9660;');
+      $(this).show();
+    } else if (l==level+1) {
+      i.removeClass('iconfclosed iconfopen').addClass('iconfclosed');
+      a.html('&#9658;');
+      $(this).show();
+    } else {
+      $(this).hide();
+    }
+  });
+  updateStripes();
+}
+
+function toggleFolder(id)
+{
+  // the clicked row
+  var currentRow = $('#row_'+id);
+
+  // all rows after the clicked row
+  var rows = currentRow.nextAll("tr");
+
+  var re = new RegExp('^row_'+id+'\\d+_$', "i"); //only one sub
+
+  // only match elements AFTER this one (can't hide elements before)
+  var childRows = rows.filter(function() { return this.id.match(re); });
+
+  // first row is visible we are HIDING
+  if (childRows.filter(':first').is(':visible')===true) {
+    // replace down arrow by right arrow for current row
+    var currentRowSpans = currentRow.find("span");
+    currentRowSpans.filter(".iconfopen").removeClass("iconfopen").addClass("iconfclosed");
+    currentRowSpans.filter(".arrow").html('&#9658;');
+    rows.filter("[id^=row_"+id+"]").hide(); // hide all children
+  } else { // we are SHOWING
+    // replace right arrow by down arrow for current row
+    var currentRowSpans = currentRow.find("span");
+    currentRowSpans.filter(".iconfclosed").removeClass("iconfclosed").addClass("iconfopen");
+    currentRowSpans.filter(".arrow").html('&#9660;');
+    // replace down arrows by right arrows for child rows
+    var childRowsSpans = childRows.find("span");
+    childRowsSpans.filter(".iconfopen").removeClass("iconfopen").addClass("iconfclosed");
+    childRowsSpans.filter(".arrow").html('&#9658;');
+    childRows.show(); //show all children
+  }
+  updateStripes();
+}
+
+
+function toggleInherit(id)
+{
+  var rows = $('tr.inherit.'+id);
+  var img = $('tr.inherit_header.'+id+' img');
+  var src = $(img).attr('src');
+  if (rows.filter(':first').is(':visible')===true) {
+    rows.css('display','none');
+    $(img).attr('src',src.substring(0,src.length-8)+'closed.png');
+  } else {
+    rows.css('display','table-row'); // using show() causes jump in firefox
+    $(img).attr('src',src.substring(0,src.length-10)+'open.png');
+  }
+}
+/* @license-end */
+
+$(document).ready(function() {
+  $('.code,.codeRef').each(function() {
+    $(this).data('powertip',$('#a'+$(this).attr('href').replace(/.*\//,'').replace(/[^a-z_A-Z0-9]/g,'_')).html());
+    $(this).powerTip({ placement: 's', smartPlacement: true, mouseOnToPopup: true });
+  });
+});
diff --git a/doxy/html/files.html b/doxy/html/files.html
new file mode 100644
index 0000000000000000000000000000000000000000..aa7ad15413c927160fb8b2ea6d06fbe9ce207a87
--- /dev/null
+++ b/doxy/html/files.html
@@ -0,0 +1,145 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: File List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="headertitle">
+<div class="title">File List</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock">Here is a list of all files with brief descriptions:</div><div class="directory">
+<table class="directory">
+<tr id="row_0_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="_abstract_texture_8cpp_source.html"><span class="icondoc"></span></a><a class="el" href="_abstract_texture_8cpp.html" target="_self">AbstractTexture.cpp</a></td><td class="desc"></td></tr>
+<tr id="row_1_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="_character_entity_8cpp_source.html"><span class="icondoc"></span></a><a class="el" href="_character_entity_8cpp.html" target="_self">CharacterEntity.cpp</a></td><td class="desc"></td></tr>
+<tr id="row_2_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="_character_entity_8h_source.html"><span class="icondoc"></span></a><a class="el" href="_character_entity_8h.html" target="_self">CharacterEntity.h</a></td><td class="desc"></td></tr>
+<tr id="row_3_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="_character_texture_8cpp_source.html"><span class="icondoc"></span></a><a class="el" href="_character_texture_8cpp.html" target="_self">CharacterTexture.cpp</a></td><td class="desc"></td></tr>
+<tr id="row_4_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="_character_texture_8h_source.html"><span class="icondoc"></span></a><a class="el" href="_character_texture_8h.html" target="_self">CharacterTexture.h</a></td><td class="desc"></td></tr>
+<tr id="row_5_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="_dummy_entity_8cpp_source.html"><span class="icondoc"></span></a><a class="el" href="_dummy_entity_8cpp.html" target="_self">DummyEntity.cpp</a></td><td class="desc"></td></tr>
+<tr id="row_6_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="_dummy_entity_8h_source.html"><span class="icondoc"></span></a><a class="el" href="_dummy_entity_8h.html" target="_self">DummyEntity.h</a></td><td class="desc"></td></tr>
+<tr id="row_7_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="_dungeon_generator_8cpp_source.html"><span class="icondoc"></span></a><a class="el" href="_dungeon_generator_8cpp.html" target="_self">DungeonGenerator.cpp</a></td><td class="desc"></td></tr>
+<tr id="row_8_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="_dungeon_generator_8h_source.html"><span class="icondoc"></span></a><a class="el" href="_dungeon_generator_8h.html" target="_self">DungeonGenerator.h</a></td><td class="desc"></td></tr>
+<tr id="row_9_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="_dynamic_array_8hpp_source.html"><span class="icondoc"></span></a><a class="el" href="_dynamic_array_8hpp.html" target="_self">DynamicArray.hpp</a></td><td class="desc"></td></tr>
+<tr id="row_10_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="_e_m_gun_8cpp_source.html"><span class="icondoc"></span></a><a class="el" href="_e_m_gun_8cpp.html" target="_self">EMGun.cpp</a></td><td class="desc"></td></tr>
+<tr id="row_11_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="_e_m_gun_8h_source.html"><span class="icondoc"></span></a><a class="el" href="_e_m_gun_8h.html" target="_self">EMGun.h</a></td><td class="desc"></td></tr>
+<tr id="row_12_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="_entity_8cpp_source.html"><span class="icondoc"></span></a><a class="el" href="_entity_8cpp.html" target="_self">Entity.cpp</a></td><td class="desc"></td></tr>
+<tr id="row_13_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="_entity_8h_source.html"><span class="icondoc"></span></a><a class="el" href="_entity_8h.html" target="_self">Entity.h</a></td><td class="desc"></td></tr>
+<tr id="row_14_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="_entity_collection_8hpp_source.html"><span class="icondoc"></span></a><a class="el" href="_entity_collection_8hpp.html" target="_self">EntityCollection.hpp</a></td><td class="desc"></td></tr>
+<tr id="row_15_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="_entity_with_a_i_8cpp_source.html"><span class="icondoc"></span></a><a class="el" href="_entity_with_a_i_8cpp.html" target="_self">EntityWithAI.cpp</a></td><td class="desc"></td></tr>
+<tr id="row_16_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="_entity_with_a_i_8h_source.html"><span class="icondoc"></span></a><a class="el" href="_entity_with_a_i_8h.html" target="_self">EntityWithAI.h</a></td><td class="desc"></td></tr>
+<tr id="row_17_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="_explosive_projectile_8cpp_source.html"><span class="icondoc"></span></a><a class="el" href="_explosive_projectile_8cpp.html" target="_self">ExplosiveProjectile.cpp</a></td><td class="desc"></td></tr>
+<tr id="row_18_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="_explosive_projectile_8h_source.html"><span class="icondoc"></span></a><a class="el" href="_explosive_projectile_8h.html" target="_self">ExplosiveProjectile.h</a></td><td class="desc"></td></tr>
+<tr id="row_19_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="game_8cpp_source.html"><span class="icondoc"></span></a><a class="el" href="game_8cpp.html" target="_self">game.cpp</a></td><td class="desc"></td></tr>
+<tr id="row_20_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="_game_exception_8cpp_source.html"><span class="icondoc"></span></a><a class="el" href="_game_exception_8cpp.html" target="_self">GameException.cpp</a></td><td class="desc"></td></tr>
+<tr id="row_21_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="_game_exception_8h_source.html"><span class="icondoc"></span></a><a class="el" href="_game_exception_8h.html" target="_self">GameException.h</a></td><td class="desc"></td></tr>
+<tr id="row_22_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="_glitch_gun_8cpp_source.html"><span class="icondoc"></span></a><a class="el" href="_glitch_gun_8cpp.html" target="_self">GlitchGun.cpp</a></td><td class="desc"></td></tr>
+<tr id="row_23_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="_glitch_gun_8h_source.html"><span class="icondoc"></span></a><a class="el" href="_glitch_gun_8h.html" target="_self">GlitchGun.h</a></td><td class="desc"></td></tr>
+<tr id="row_24_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="_i_texture_8h_source.html"><span class="icondoc"></span></a><a class="el" href="_i_texture_8h.html" target="_self">ITexture.h</a></td><td class="desc"></td></tr>
+<tr id="row_25_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="_lazy_sprite_8cpp_source.html"><span class="icondoc"></span></a><a class="el" href="_lazy_sprite_8cpp.html" target="_self">LazySprite.cpp</a></td><td class="desc"></td></tr>
+<tr id="row_26_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="_lazy_sprite_8h_source.html"><span class="icondoc"></span></a><a class="el" href="_lazy_sprite_8h.html" target="_self">LazySprite.h</a></td><td class="desc"></td></tr>
+<tr id="row_27_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="_living_entity_8cpp_source.html"><span class="icondoc"></span></a><a class="el" href="_living_entity_8cpp.html" target="_self">LivingEntity.cpp</a></td><td class="desc"></td></tr>
+<tr id="row_28_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="_living_entity_8h_source.html"><span class="icondoc"></span></a><a class="el" href="_living_entity_8h.html" target="_self">LivingEntity.h</a></td><td class="desc"></td></tr>
+<tr id="row_29_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="main_game_8cpp_source.html"><span class="icondoc"></span></a><a class="el" href="main_game_8cpp.html" target="_self">mainGame.cpp</a></td><td class="desc"></td></tr>
+<tr id="row_30_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="main_game_8h_source.html"><span class="icondoc"></span></a><a class="el" href="main_game_8h.html" target="_self">mainGame.h</a></td><td class="desc"></td></tr>
+<tr id="row_31_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="_melee_weapon_8cpp_source.html"><span class="icondoc"></span></a><a class="el" href="_melee_weapon_8cpp.html" target="_self">MeleeWeapon.cpp</a></td><td class="desc"></td></tr>
+<tr id="row_32_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="_melee_weapon_8h_source.html"><span class="icondoc"></span></a><a class="el" href="_melee_weapon_8h.html" target="_self">MeleeWeapon.h</a></td><td class="desc"></td></tr>
+<tr id="row_33_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="olc_8h_source.html"><span class="icondoc"></span></a><a class="el" href="olc_8h.html" target="_self">olc.h</a></td><td class="desc"></td></tr>
+<tr id="row_34_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="olc_p_g_e_x___transformed_view_8h_source.html"><span class="icondoc"></span></a><a class="el" href="olc_p_g_e_x___transformed_view_8h.html" target="_self">olcPGEX_TransformedView.h</a></td><td class="desc"></td></tr>
+<tr id="row_35_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="olc_pixel_game_engine_8h_source.html"><span class="icondoc"></span></a><a class="el" href="olc_pixel_game_engine_8h.html" target="_self">olcPixelGameEngine.h</a></td><td class="desc"></td></tr>
+<tr id="row_36_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="_pistol_8cpp_source.html"><span class="icondoc"></span></a><a class="el" href="_pistol_8cpp.html" target="_self">Pistol.cpp</a></td><td class="desc"></td></tr>
+<tr id="row_37_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="_pistol_8h_source.html"><span class="icondoc"></span></a><a class="el" href="_pistol_8h.html" target="_self">Pistol.h</a></td><td class="desc"></td></tr>
+<tr id="row_38_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="_player_entity_8cpp_source.html"><span class="icondoc"></span></a><a class="el" href="_player_entity_8cpp.html" target="_self">PlayerEntity.cpp</a></td><td class="desc"></td></tr>
+<tr id="row_39_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="_player_entity_8h_source.html"><span class="icondoc"></span></a><a class="el" href="_player_entity_8h.html" target="_self">PlayerEntity.h</a></td><td class="desc"></td></tr>
+<tr id="row_40_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="_projectile_entity_8cpp_source.html"><span class="icondoc"></span></a><a class="el" href="_projectile_entity_8cpp.html" target="_self">ProjectileEntity.cpp</a></td><td class="desc"></td></tr>
+<tr id="row_41_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="_projectile_entity_8h_source.html"><span class="icondoc"></span></a><a class="el" href="_projectile_entity_8h.html" target="_self">ProjectileEntity.h</a></td><td class="desc"></td></tr>
+<tr id="row_42_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="_ranged_weapon_8cpp_source.html"><span class="icondoc"></span></a><a class="el" href="_ranged_weapon_8cpp.html" target="_self">RangedWeapon.cpp</a></td><td class="desc"></td></tr>
+<tr id="row_43_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="_ranged_weapon_8h_source.html"><span class="icondoc"></span></a><a class="el" href="_ranged_weapon_8h.html" target="_self">RangedWeapon.h</a></td><td class="desc"></td></tr>
+<tr id="row_44_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="_render_exception_8cpp_source.html"><span class="icondoc"></span></a><a class="el" href="_render_exception_8cpp.html" target="_self">RenderException.cpp</a></td><td class="desc"></td></tr>
+<tr id="row_45_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="_render_exception_8h_source.html"><span class="icondoc"></span></a><a class="el" href="_render_exception_8h.html" target="_self">RenderException.h</a></td><td class="desc"></td></tr>
+<tr id="row_46_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="resource_8h_source.html"><span class="icondoc"></span></a><a class="el" href="resource_8h.html" target="_self">resource.h</a></td><td class="desc"></td></tr>
+<tr id="row_47_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="resource1_8h_source.html"><span class="icondoc"></span></a><a class="el" href="resource1_8h.html" target="_self">resource1.h</a></td><td class="desc"></td></tr>
+<tr id="row_48_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="_resource_manager_8cpp_source.html"><span class="icondoc"></span></a><a class="el" href="_resource_manager_8cpp.html" target="_self">ResourceManager.cpp</a></td><td class="desc"></td></tr>
+<tr id="row_49_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="_resource_manager_8h_source.html"><span class="icondoc"></span></a><a class="el" href="_resource_manager_8h.html" target="_self">ResourceManager.h</a></td><td class="desc"></td></tr>
+<tr id="row_50_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="_simple_sprite_8cpp_source.html"><span class="icondoc"></span></a><a class="el" href="_simple_sprite_8cpp.html" target="_self">SimpleSprite.cpp</a></td><td class="desc"></td></tr>
+<tr id="row_51_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="_simple_sprite_8h_source.html"><span class="icondoc"></span></a><a class="el" href="_simple_sprite_8h.html" target="_self">SimpleSprite.h</a></td><td class="desc"></td></tr>
+<tr id="row_52_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="_square_room_generator_8cpp_source.html"><span class="icondoc"></span></a><a class="el" href="_square_room_generator_8cpp.html" target="_self">SquareRoomGenerator.cpp</a></td><td class="desc"></td></tr>
+<tr id="row_53_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="_square_room_generator_8h_source.html"><span class="icondoc"></span></a><a class="el" href="_square_room_generator_8h.html" target="_self">SquareRoomGenerator.h</a></td><td class="desc"></td></tr>
+<tr id="row_54_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="_test_generator_8cpp_source.html"><span class="icondoc"></span></a><a class="el" href="_test_generator_8cpp.html" target="_self">TestGenerator.cpp</a></td><td class="desc"></td></tr>
+<tr id="row_55_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="_test_generator_8h_source.html"><span class="icondoc"></span></a><a class="el" href="_test_generator_8h.html" target="_self">TestGenerator.h</a></td><td class="desc"></td></tr>
+<tr id="row_56_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="_typical_melee_weapon_8cpp_source.html"><span class="icondoc"></span></a><a class="el" href="_typical_melee_weapon_8cpp.html" target="_self">TypicalMeleeWeapon.cpp</a></td><td class="desc"></td></tr>
+<tr id="row_57_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="_typical_melee_weapon_8h_source.html"><span class="icondoc"></span></a><a class="el" href="_typical_melee_weapon_8h.html" target="_self">TypicalMeleeWeapon.h</a></td><td class="desc"></td></tr>
+<tr id="row_58_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="_wall_entity_8cpp_source.html"><span class="icondoc"></span></a><a class="el" href="_wall_entity_8cpp.html" target="_self">WallEntity.cpp</a></td><td class="desc"></td></tr>
+<tr id="row_59_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="_wall_entity_8h_source.html"><span class="icondoc"></span></a><a class="el" href="_wall_entity_8h.html" target="_self">WallEntity.h</a></td><td class="desc"></td></tr>
+<tr id="row_60_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="_wall_texture_8cpp_source.html"><span class="icondoc"></span></a><a class="el" href="_wall_texture_8cpp.html" target="_self">WallTexture.cpp</a></td><td class="desc"></td></tr>
+<tr id="row_61_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="_wall_texture_8h_source.html"><span class="icondoc"></span></a><a class="el" href="_wall_texture_8h.html" target="_self">WallTexture.h</a></td><td class="desc"></td></tr>
+<tr id="row_62_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="_weapon_8cpp_source.html"><span class="icondoc"></span></a><a class="el" href="_weapon_8cpp.html" target="_self">Weapon.cpp</a></td><td class="desc"></td></tr>
+<tr id="row_63_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="_weapon_8h_source.html"><span class="icondoc"></span></a><a class="el" href="_weapon_8h.html" target="_self">Weapon.h</a></td><td class="desc"></td></tr>
+<tr id="row_64_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="_weapon_textures_8cpp_source.html"><span class="icondoc"></span></a><a class="el" href="_weapon_textures_8cpp.html" target="_self">WeaponTextures.cpp</a></td><td class="desc"></td></tr>
+<tr id="row_65_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="_weapon_textures_8h_source.html"><span class="icondoc"></span></a><a class="el" href="_weapon_textures_8h.html" target="_self">WeaponTextures.h</a></td><td class="desc"></td></tr>
+</table>
+</div><!-- directory -->
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/folderclosed.png b/doxy/html/folderclosed.png
new file mode 100644
index 0000000000000000000000000000000000000000..bb8ab35edce8e97554e360005ee9fc5bffb36e66
Binary files /dev/null and b/doxy/html/folderclosed.png differ
diff --git a/doxy/html/folderopen.png b/doxy/html/folderopen.png
new file mode 100644
index 0000000000000000000000000000000000000000..d6c7f676a3b3ef8c2c307d319dff3c6a604eb227
Binary files /dev/null and b/doxy/html/folderopen.png differ
diff --git a/doxy/html/functions.html b/doxy/html/functions.html
new file mode 100644
index 0000000000000000000000000000000000000000..b53d8ef1330fcd56b031f7a9f76cfe596d6e6842
--- /dev/null
+++ b/doxy/html/functions.html
@@ -0,0 +1,102 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: Class Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<div class="textblock">Here is a list of all class members with links to the classes they belong to:</div>
+
+<h3><a id="index_a"></a>- a -</h3><ul>
+<li>a
+: <a class="el" href="structolc_1_1_pixel.html#a652a25d4bcab1f7bf627c3224842f0b1">olc::Pixel</a>
+</li>
+<li>addEntity()
+: <a class="el" href="class_game_client.html#ac1df0a856bd945976c06b3977167d4c7">GameClient</a>
+</li>
+<li>AddFile()
+: <a class="el" href="classolc_1_1_resource_pack.html#a56eebc321c66215d15df1390b1080c66">olc::ResourcePack</a>
+</li>
+<li>addWeapon()
+: <a class="el" href="classentities_1_1_entity_with_a_i.html#af1e954b2ecf51732759a28e00dc2614c">entities::EntityWithAI</a>
+</li>
+<li>ALPHA
+: <a class="el" href="structolc_1_1_pixel.html#ae9012164940526ddb09b217dbbddfd65a561bc0234492261a62a3191252692753">olc::Pixel</a>
+</li>
+<li>ApplicationCleanUp()
+: <a class="el" href="classolc_1_1_platform.html#aec7a14ba9007d3c421481baa49e55669">olc::Platform</a>
+</li>
+<li>ApplicationStartUp()
+: <a class="el" href="classolc_1_1_platform.html#a65e6f9763726056f6a9d37395b8ed023">olc::Platform</a>
+</li>
+<li>ApplyTexture()
+: <a class="el" href="classolc_1_1_renderer.html#a0a87094df3c911860a0eec9a8bb3b060">olc::Renderer</a>
+</li>
+<li>attackOffset
+: <a class="el" href="classweapons_1_1_typical_melee_weapon.html#af33a1ff938b8068aaab0bd0ac943ca83">weapons::TypicalMeleeWeapon</a>
+</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/functions_b.html b/doxy/html/functions_b.html
new file mode 100644
index 0000000000000000000000000000000000000000..5e5cc7ea6b87bf8655bf5b615fd506999719096b
--- /dev/null
+++ b/doxy/html/functions_b.html
@@ -0,0 +1,102 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: Class Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<div class="textblock">Here is a list of all class members with links to the classes they belong to:</div>
+
+<h3><a id="index_b"></a>- b -</h3><ul>
+<li>b
+: <a class="el" href="structolc_1_1_pixel.html#a8738f2cd490bd9c5288f37c8d19816be">olc::Pixel</a>
+</li>
+<li>baseDamage
+: <a class="el" href="classweapons_1_1_weapon.html#a27456b08c51df0759ae0155b9f79e336">weapons::Weapon</a>
+</li>
+<li>begin()
+: <a class="el" href="class_dynamic_array.html#a3b4f5925657f9e8dfd71bcc5973399ee">DynamicArray&lt; T &gt;</a>
+</li>
+<li>bHeld
+: <a class="el" href="structolc_1_1_h_w_button.html#a6d872a5aeb23aba39103b95093c63cb7">olc::HWButton</a>
+</li>
+<li>bounce()
+: <a class="el" href="classentities_1_1_projectile_entity.html#ab3eb63e6fdf0ca5c4b81ebbc02e7f513">entities::ProjectileEntity</a>
+</li>
+<li>bPressed
+: <a class="el" href="structolc_1_1_h_w_button.html#a0c379d6a109299fc0a1c872ebbb2f4d9">olc::HWButton</a>
+</li>
+<li>bReleased
+: <a class="el" href="structolc_1_1_h_w_button.html#a2576b36bdf00033f78fa1cdcabfa2a00">olc::HWButton</a>
+</li>
+<li>bShow
+: <a class="el" href="structolc_1_1_layer_desc.html#aeb19896b6a82e301769bfd9d5aa053b6">olc::LayerDesc</a>
+</li>
+<li>bUpdate
+: <a class="el" href="structolc_1_1_layer_desc.html#a5239ecc59495acca81a03e8783d9b873">olc::LayerDesc</a>
+</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/functions_c.html b/doxy/html/functions_c.html
new file mode 100644
index 0000000000000000000000000000000000000000..a2af187c93134e58b37abeb54abbe44c75c14b54
--- /dev/null
+++ b/doxy/html/functions_c.html
@@ -0,0 +1,135 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: Class Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<div class="textblock">Here is a list of all class members with links to the classes they belong to:</div>
+
+<h3><a id="index_c"></a>- c -</h3><ul>
+<li>canBeRemoved()
+: <a class="el" href="classentities_1_1_entity.html#a59426fe1b7dcefe96a0a748250724ff6">entities::Entity</a>
+, <a class="el" href="classentities_1_1_explosive_projectile.html#a8b075196a23aed5116e885709b64d583">entities::ExplosiveProjectile</a>
+, <a class="el" href="classweapons_1_1_weapon.html#aaf97827d27191b7b437ef1be96d6ac2c">weapons::Weapon</a>
+</li>
+<li>ceil()
+: <a class="el" href="structolc_1_1v2d__generic.html#a65efb6611304b590a2cb45781b1c34cc">olc::v2d_generic&lt; T &gt;</a>
+</li>
+<li>CharacterEntity()
+: <a class="el" href="classentities_1_1_character_entity.html#aa7c43269834b07ef51355a874be373e8">entities::CharacterEntity</a>
+</li>
+<li>CharacterTexture()
+: <a class="el" href="classrender_1_1_character_texture.html#a0e5cb130b98e46c9de43e274ca206d1b">render::CharacterTexture</a>
+</li>
+<li>Clear()
+: <a class="el" href="classolc_1_1_pixel_game_engine.html#aeb70b40809815fab4e1017e25c7ab161">olc::PixelGameEngine</a>
+</li>
+<li>ClearBuffer()
+: <a class="el" href="classolc_1_1_pixel_game_engine.html#aed9a3f6bd349e091728a329ee42932bf">olc::PixelGameEngine</a>
+, <a class="el" href="classolc_1_1_renderer.html#a921406bc341efd881ca510c64cebdc26">olc::Renderer</a>
+</li>
+<li>collisionOffset()
+: <a class="el" href="classentities_1_1_living_entity.html#a07a7d7f7e43f2140e3e6337322f78224">entities::LivingEntity</a>
+</li>
+<li>Construct()
+: <a class="el" href="classolc_1_1_pixel_game_engine.html#af1a9cf3b38dda2071b7ec18868ee1ccd">olc::PixelGameEngine</a>
+</li>
+<li>cooldown
+: <a class="el" href="classweapons_1_1_weapon.html#aa3529d6c0160f61132fc7bb1b9284a02">weapons::Weapon</a>
+</li>
+<li>cooldownTime
+: <a class="el" href="classweapons_1_1_weapon.html#aa3d78dae766eee8279326026dbb46f1f">weapons::Weapon</a>
+</li>
+<li>Create()
+: <a class="el" href="classolc_1_1_renderable.html#ab15a4441be7b48519d55296e416976fd">olc::Renderable</a>
+</li>
+<li>CreateDevice()
+: <a class="el" href="classolc_1_1_renderer.html#a28c87db87f8fd9b0f356db5d01499992">olc::Renderer</a>
+</li>
+<li>CreateGraphics()
+: <a class="el" href="classolc_1_1_platform.html#a2e951cdc0d8fd9bb68f05b33f1fd0450">olc::Platform</a>
+</li>
+<li>createInstance()
+: <a class="el" href="classrender_1_1_resource_manager.html#abdb364e2b932233c873a98a1b5c03d2a">render::ResourceManager</a>
+</li>
+<li>CreateLayer()
+: <a class="el" href="classolc_1_1_pixel_game_engine.html#ae15ffa0503e2893aad7001aa2f5769b7">olc::PixelGameEngine</a>
+</li>
+<li>CreateTexture()
+: <a class="el" href="classolc_1_1_renderer.html#aeac898aaf282d09a9cd848303de57bea">olc::Renderer</a>
+</li>
+<li>CreateWindowPane()
+: <a class="el" href="classolc_1_1_platform.html#a4966327ca7d5ff2b855b3a4eaf0f88f2">olc::Platform</a>
+</li>
+<li>cross()
+: <a class="el" href="structolc_1_1v2d__generic.html#a1febe5d22672d7d0121526577bf3b535">olc::v2d_generic&lt; T &gt;</a>
+</li>
+<li>CUSTOM
+: <a class="el" href="structolc_1_1_pixel.html#ae9012164940526ddb09b217dbbddfd65aed57164e9f056c1af912b3069eb45deb">olc::Pixel</a>
+</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/functions_d.html b/doxy/html/functions_d.html
new file mode 100644
index 0000000000000000000000000000000000000000..133c229abffaf08b52717fac89a85d9fa7b30829
--- /dev/null
+++ b/doxy/html/functions_d.html
@@ -0,0 +1,203 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: Class Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<div class="textblock">Here is a list of all class members with links to the classes they belong to:</div>
+
+<h3><a id="index_d"></a>- d -</h3><ul>
+<li>damage()
+: <a class="el" href="classentities_1_1_entity.html#af7fc9949fc50b1b31abb36a3d51b0597">entities::Entity</a>
+, <a class="el" href="classentities_1_1_entity_with_a_i.html#a49a1c8a8ec1a318f65007d54173c3d37">entities::EntityWithAI</a>
+, <a class="el" href="classentities_1_1_living_entity.html#a28d31eff59137171da3e23a8e3ef9c1c">entities::LivingEntity</a>
+, <a class="el" href="classentities_1_1_player_entity.html#ab654524e0ad7ba5a9b1b590794d347f2">entities::PlayerEntity</a>
+, <a class="el" href="classentities_1_1_projectile_entity.html#a723e706e6421504ce9c6d70d77561215">entities::ProjectileEntity</a>
+, <a class="el" href="classentities_1_1_wall_entity.html#a0cd908003450361a7c08d2c7c83d21dc">entities::WallEntity</a>
+, <a class="el" href="classweapons_1_1_typical_melee_weapon.html#a00287ced5e67a7f91423596fac46606b">weapons::TypicalMeleeWeapon</a>
+, <a class="el" href="classweapons_1_1_weapon.html#a397c372ffe2838f7c9c1ce67c06e55a9">weapons::Weapon</a>
+</li>
+<li>damageEntity()
+: <a class="el" href="classweapons_1_1_melee_weapon.html#a6938e2705c6353b4b2782e8a4186de17">weapons::MeleeWeapon</a>
+</li>
+<li>damageIf()
+: <a class="el" href="classweapons_1_1_melee_weapon.html#a59a5b959539d2c71605c1b6fbec3111b">weapons::MeleeWeapon</a>
+</li>
+<li>damageValue
+: <a class="el" href="classentities_1_1_projectile_entity.html#ad4325b9194e4c76e68f27857226eefd8">entities::ProjectileEntity</a>
+</li>
+<li>Decal()
+: <a class="el" href="classolc_1_1_decal.html#a5479fee995f05355026dafd8cadcac88">olc::Decal</a>
+</li>
+<li>decal
+: <a class="el" href="structolc_1_1_decal_instance.html#ad01bc9806792469d91ee0b5736058e7e">olc::DecalInstance</a>
+</li>
+<li>Decal()
+: <a class="el" href="classolc_1_1_renderable.html#af6e5a2d5a46fe4f475c67ca5ab1b1f5d">olc::Renderable</a>
+</li>
+<li>DeleteTexture()
+: <a class="el" href="classolc_1_1_renderer.html#aec8e86eb7a104fb0bc8f9fe51318f1a0">olc::Renderer</a>
+</li>
+<li>DestroyDevice()
+: <a class="el" href="classolc_1_1_renderer.html#a3a59a195cc380f89e5f9cc98b6fda2c7">olc::Renderer</a>
+</li>
+<li>DisplayFrame()
+: <a class="el" href="classolc_1_1_renderer.html#a660f3ca709b2a2fcec1d1cba1a4cfd18">olc::Renderer</a>
+</li>
+<li>dot()
+: <a class="el" href="structolc_1_1v2d__generic.html#ad2e96c716c487677bbde6966464fc482">olc::v2d_generic&lt; T &gt;</a>
+</li>
+<li>Draw()
+: <a class="el" href="classolc_1_1_pixel_game_engine.html#a95ab046b4b0843565bddd0e009a25569">olc::PixelGameEngine</a>
+, <a class="el" href="classolc_1_1_transformed_view.html#a09a214f47f9e4f5e85a8d3bd224ab9b1">olc::TransformedView</a>
+</li>
+<li>DrawCircle()
+: <a class="el" href="classolc_1_1_pixel_game_engine.html#a2ce3e34fd633acdc22b8dc2c8d25f86c">olc::PixelGameEngine</a>
+, <a class="el" href="classolc_1_1_transformed_view.html#abbf0590764bbacdd35a4d0adc6e69b84">olc::TransformedView</a>
+</li>
+<li>DrawDecal()
+: <a class="el" href="classolc_1_1_pixel_game_engine.html#a5b676590555cab61db67804417c6f25f">olc::PixelGameEngine</a>
+, <a class="el" href="classolc_1_1_renderer.html#ac567df937350bffb2eae3e647ccc10d5">olc::Renderer</a>
+, <a class="el" href="classolc_1_1_transformed_view.html#a8bad23f424184f2e15f32deb7f179160">olc::TransformedView</a>
+</li>
+<li>DrawExplicitDecal()
+: <a class="el" href="classolc_1_1_pixel_game_engine.html#a26d7073d87bb19f15d5ade6bb58e8e2d">olc::PixelGameEngine</a>
+, <a class="el" href="classolc_1_1_transformed_view.html#ac133c5f498e18dc4bcf6a087c7f8b356">olc::TransformedView</a>
+</li>
+<li>DrawLayerQuad()
+: <a class="el" href="classolc_1_1_renderer.html#a3eccca504615e72d1f40acd03ffce89f">olc::Renderer</a>
+</li>
+<li>DrawLine()
+: <a class="el" href="classolc_1_1_pixel_game_engine.html#a131877968123c843374f079814503d22">olc::PixelGameEngine</a>
+, <a class="el" href="classolc_1_1_transformed_view.html#a2564b30474cab1de208a9b220ddbc181">olc::TransformedView</a>
+</li>
+<li>DrawPartialDecal()
+: <a class="el" href="classolc_1_1_pixel_game_engine.html#a8bae37cf84b215e9e0416f058241aeba">olc::PixelGameEngine</a>
+, <a class="el" href="classolc_1_1_transformed_view.html#a1daefdb27499350eb3927c79ec60bca5">olc::TransformedView</a>
+</li>
+<li>DrawPartialRotatedDecal()
+: <a class="el" href="classolc_1_1_pixel_game_engine.html#aad3107bbad34e5792a9a35629e1fdbd0">olc::PixelGameEngine</a>
+, <a class="el" href="classolc_1_1_transformed_view.html#a3f2574c761a0045641fd2f5f9b194184">olc::TransformedView</a>
+</li>
+<li>DrawPartialSprite()
+: <a class="el" href="classolc_1_1_pixel_game_engine.html#ab777dd885946b2dba5e8bef894c6868c">olc::PixelGameEngine</a>
+, <a class="el" href="classolc_1_1_transformed_view.html#a829557257985bb738baad577ed0ed7a0">olc::TransformedView</a>
+</li>
+<li>DrawPartialWarpedDecal()
+: <a class="el" href="classolc_1_1_pixel_game_engine.html#a78be0709345710435fdaef7bc14f5fb3">olc::PixelGameEngine</a>
+, <a class="el" href="classolc_1_1_transformed_view.html#a17bf0d6a35728abe95993ef5475aa767">olc::TransformedView</a>
+</li>
+<li>DrawPolygonDecal()
+: <a class="el" href="classolc_1_1_pixel_game_engine.html#a40a7754338ea7b388ffa2383958d1f0b">olc::PixelGameEngine</a>
+, <a class="el" href="classolc_1_1_transformed_view.html#a0555577738d2edacb8b8e701d90804d7">olc::TransformedView</a>
+</li>
+<li>DrawRect()
+: <a class="el" href="classolc_1_1_pixel_game_engine.html#a220f523e520e317f5656c4d3df777163">olc::PixelGameEngine</a>
+, <a class="el" href="classolc_1_1_transformed_view.html#a2ce6891b49d600eacb32eef88f07b2e0">olc::TransformedView</a>
+</li>
+<li>DrawRotatedDecal()
+: <a class="el" href="classolc_1_1_pixel_game_engine.html#ab9af9b6726271e83dd7e4b24583b4236">olc::PixelGameEngine</a>
+, <a class="el" href="classolc_1_1_transformed_view.html#a0d11f6c9ddf0cda25a7b6a79c39c61d6">olc::TransformedView</a>
+</li>
+<li>DrawSprite()
+: <a class="el" href="classolc_1_1_pixel_game_engine.html#a5bae460b03f2837e39fdee3a0bbb6f99">olc::PixelGameEngine</a>
+, <a class="el" href="classolc_1_1_transformed_view.html#a44f1c98c6c6720338d7b6dcc9117cb03">olc::TransformedView</a>
+</li>
+<li>DrawString()
+: <a class="el" href="classolc_1_1_pixel_game_engine.html#ac29d79dedde0b2187f9f9ccbbc33fd0b">olc::PixelGameEngine</a>
+, <a class="el" href="classolc_1_1_transformed_view.html#ab8e4acce21674331d91910c7056c59a3">olc::TransformedView</a>
+</li>
+<li>DrawStringDecal()
+: <a class="el" href="classolc_1_1_pixel_game_engine.html#a689d1828a93292702070b97fb14f5644">olc::PixelGameEngine</a>
+, <a class="el" href="classolc_1_1_transformed_view.html#a903ad811f1e3f99d8c6e35f1a1aaf9bf">olc::TransformedView</a>
+</li>
+<li>DrawStringProp()
+: <a class="el" href="classolc_1_1_pixel_game_engine.html#a1ddca999be34411764bb12d2a15cc021">olc::PixelGameEngine</a>
+</li>
+<li>DrawStringPropDecal()
+: <a class="el" href="classolc_1_1_pixel_game_engine.html#a7392273f15fc09b3659b112564aa0dfa">olc::PixelGameEngine</a>
+, <a class="el" href="classolc_1_1_transformed_view.html#afde48a1dc4946bfb3718c19bdf62b328">olc::TransformedView</a>
+</li>
+<li>DrawTriangle()
+: <a class="el" href="classolc_1_1_pixel_game_engine.html#a2bddba9e808a8702f6af354007302c16">olc::PixelGameEngine</a>
+, <a class="el" href="classolc_1_1_transformed_view.html#a6c818747c7fa97445fbb40c9f222e865">olc::TransformedView</a>
+</li>
+<li>DrawWarpedDecal()
+: <a class="el" href="classolc_1_1_pixel_game_engine.html#a5174456bbdaace7cde233889f7ad6d72">olc::PixelGameEngine</a>
+, <a class="el" href="classolc_1_1_transformed_view.html#a615fda4662913d6a1fc2764025c28efc">olc::TransformedView</a>
+</li>
+<li>DummyEntity()
+: <a class="el" href="classentities_1_1_dummy_entity.html#aa68ec40dca291f94607c943d7d50c34b">entities::DummyEntity</a>
+</li>
+<li>Duplicate()
+: <a class="el" href="classolc_1_1_sprite.html#a0b9399ba5d6df0b481ab16d8c4a28ded">olc::Sprite</a>
+</li>
+<li>DynamicArray()
+: <a class="el" href="class_dynamic_array.html#a7d42e6eaa66bab7c43f193e78d2d56a9">DynamicArray&lt; T &gt;</a>
+</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/functions_e.html b/doxy/html/functions_e.html
new file mode 100644
index 0000000000000000000000000000000000000000..e3904765c53c90e6f8ca6708fa14f63e6370b615
--- /dev/null
+++ b/doxy/html/functions_e.html
@@ -0,0 +1,102 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: Class Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<div class="textblock">Here is a list of all class members with links to the classes they belong to:</div>
+
+<h3><a id="index_e"></a>- e -</h3><ul>
+<li>EMGun()
+: <a class="el" href="classweapons_1_1_e_m_gun.html#a39114a620affbf0d80d616cf4baf7e17">weapons::EMGun</a>
+</li>
+<li>emgun
+: <a class="el" href="classweapons_1_1_ranged_weapon.html#acf33d7619066026e823986ec5ec51a97">weapons::RangedWeapon</a>
+</li>
+<li>EnableLayer()
+: <a class="el" href="classolc_1_1_pixel_game_engine.html#a1e3453e2a118596fa04a961f66c6fd46">olc::PixelGameEngine</a>
+</li>
+<li>end()
+: <a class="el" href="class_dynamic_array.html#ac316f2e7a1938687031cb5cc34df34cc">DynamicArray&lt; T &gt;</a>
+</li>
+<li>EndPan()
+: <a class="el" href="classolc_1_1_transformed_view.html#a3edd680172e1ae5b710290ab58d617e0">olc::TransformedView</a>
+</li>
+<li>EngineerTexture
+: <a class="el" href="classrender_1_1_character_texture.html#a86b8570b892ad9e076b0dcc98e0190c3">render::CharacterTexture</a>
+</li>
+<li>Entity()
+: <a class="el" href="classentities_1_1_entity.html#a539ddef34b718b6068df421f316f4a6d">entities::Entity</a>
+</li>
+<li>EntityWithAI()
+: <a class="el" href="classentities_1_1_entity_with_a_i.html#aa8bfaebef1ce596fbd8d70b36362135b">entities::EntityWithAI</a>
+</li>
+<li>ExplosiveProjectile()
+: <a class="el" href="classentities_1_1_explosive_projectile.html#ae80625e2530015d21b963ec219be758e">entities::ExplosiveProjectile</a>
+</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/functions_enum.html b/doxy/html/functions_enum.html
new file mode 100644
index 0000000000000000000000000000000000000000..0a161cc36cc668120ed63cc4fe9bce223baa4241
--- /dev/null
+++ b/doxy/html/functions_enum.html
@@ -0,0 +1,80 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: Class Members - Enumerations</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+&#160;<ul>
+<li>Flip
+: <a class="el" href="classolc_1_1_sprite.html#ad0d1976d2060997f5cd99eb284a5dc24">olc::Sprite</a>
+</li>
+<li>Mode
+: <a class="el" href="structolc_1_1_pixel.html#ae9012164940526ddb09b217dbbddfd65">olc::Pixel</a>
+, <a class="el" href="classolc_1_1_sprite.html#a78b7f14903f9f0bb536b66c37f3139cf">olc::Sprite</a>
+</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/functions_eval.html b/doxy/html/functions_eval.html
new file mode 100644
index 0000000000000000000000000000000000000000..fb959a93b2db2c007145e577c64784b66926b94f
--- /dev/null
+++ b/doxy/html/functions_eval.html
@@ -0,0 +1,98 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: Class Members - Enumerator</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+&#160;<ul>
+<li>ALPHA
+: <a class="el" href="structolc_1_1_pixel.html#ae9012164940526ddb09b217dbbddfd65a561bc0234492261a62a3191252692753">olc::Pixel</a>
+</li>
+<li>CUSTOM
+: <a class="el" href="structolc_1_1_pixel.html#ae9012164940526ddb09b217dbbddfd65aed57164e9f056c1af912b3069eb45deb">olc::Pixel</a>
+</li>
+<li>HORIZ
+: <a class="el" href="classolc_1_1_sprite.html#ad0d1976d2060997f5cd99eb284a5dc24a2ff5b18e468156f629a10c5b515d78cd">olc::Sprite</a>
+</li>
+<li>MASK
+: <a class="el" href="structolc_1_1_pixel.html#ae9012164940526ddb09b217dbbddfd65a4062d4baa9669fb2e91f31a15061a9d6">olc::Pixel</a>
+</li>
+<li>NONE
+: <a class="el" href="classolc_1_1_sprite.html#ad0d1976d2060997f5cd99eb284a5dc24a6ad338b4e63faacfbed68b020c3a0c0c">olc::Sprite</a>
+</li>
+<li>NORMAL
+: <a class="el" href="structolc_1_1_pixel.html#ae9012164940526ddb09b217dbbddfd65a8abacc164c972b4684c2a76efd381018">olc::Pixel</a>
+, <a class="el" href="classolc_1_1_sprite.html#a78b7f14903f9f0bb536b66c37f3139cfa1128b229a2ab5d7b344aeefd329252a1">olc::Sprite</a>
+</li>
+<li>PERIODIC
+: <a class="el" href="classolc_1_1_sprite.html#a78b7f14903f9f0bb536b66c37f3139cfa3185e8dea4ea5a89d7ea66716c67a175">olc::Sprite</a>
+</li>
+<li>VERT
+: <a class="el" href="classolc_1_1_sprite.html#ad0d1976d2060997f5cd99eb284a5dc24a7d2b99d18b574e41332e569d141914c5">olc::Sprite</a>
+</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/functions_f.html b/doxy/html/functions_f.html
new file mode 100644
index 0000000000000000000000000000000000000000..78cb48e03ce3ba4cc8aa07a2bd4ce7ca1fbf4eaf
--- /dev/null
+++ b/doxy/html/functions_f.html
@@ -0,0 +1,103 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: Class Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<div class="textblock">Here is a list of all class members with links to the classes they belong to:</div>
+
+<h3><a id="index_f"></a>- f -</h3><ul>
+<li>FillCircle()
+: <a class="el" href="classolc_1_1_pixel_game_engine.html#a483f56606fbbf3ab4850554491a853bd">olc::PixelGameEngine</a>
+, <a class="el" href="classolc_1_1_transformed_view.html#a8d8559f74de40982e41f9cab0577b3b9">olc::TransformedView</a>
+</li>
+<li>FillRect()
+: <a class="el" href="classolc_1_1_pixel_game_engine.html#ae225f7027e20fe0f45a8190a992981cc">olc::PixelGameEngine</a>
+, <a class="el" href="classolc_1_1_transformed_view.html#a2f12ada82c7262a2e29572cfded60f02">olc::TransformedView</a>
+</li>
+<li>FillRectDecal()
+: <a class="el" href="classolc_1_1_pixel_game_engine.html#a02a26bca44e04f075f517bdae6ac0e9d">olc::PixelGameEngine</a>
+, <a class="el" href="classolc_1_1_transformed_view.html#a82f6eeb19d315324c160aa78fd2ead70">olc::TransformedView</a>
+</li>
+<li>FillTriangle()
+: <a class="el" href="classolc_1_1_pixel_game_engine.html#ad31abffe6c4d0b864b8f7762c33b7a7d">olc::PixelGameEngine</a>
+, <a class="el" href="classolc_1_1_transformed_view.html#a5cba545151923f38fd5d87b2c130a894">olc::TransformedView</a>
+</li>
+<li>finalizeAdd()
+: <a class="el" href="class_dynamic_array.html#a180959557f211bf3fcdf5e26b7cb67ab">DynamicArray&lt; T &gt;</a>
+</li>
+<li>Flip
+: <a class="el" href="classolc_1_1_sprite.html#ad0d1976d2060997f5cd99eb284a5dc24">olc::Sprite</a>
+</li>
+<li>floor()
+: <a class="el" href="structolc_1_1v2d__generic.html#affe50148d448ff75c298da3a1fd45323">olc::v2d_generic&lt; T &gt;</a>
+</li>
+<li>funcHook
+: <a class="el" href="structolc_1_1_layer_desc.html#a3ed4e651cce6277ab5b75ab1a9b05765">olc::LayerDesc</a>
+</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/functions_func.html b/doxy/html/functions_func.html
new file mode 100644
index 0000000000000000000000000000000000000000..a6a3c8aefedeeef6434e6a42c4c5e2ad82bb02fc
--- /dev/null
+++ b/doxy/html/functions_func.html
@@ -0,0 +1,93 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: Class Members - Functions</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+&#160;
+
+<h3><a id="index_a"></a>- a -</h3><ul>
+<li>addEntity()
+: <a class="el" href="class_game_client.html#ac1df0a856bd945976c06b3977167d4c7">GameClient</a>
+</li>
+<li>AddFile()
+: <a class="el" href="classolc_1_1_resource_pack.html#a56eebc321c66215d15df1390b1080c66">olc::ResourcePack</a>
+</li>
+<li>addWeapon()
+: <a class="el" href="classentities_1_1_entity_with_a_i.html#af1e954b2ecf51732759a28e00dc2614c">entities::EntityWithAI</a>
+</li>
+<li>ApplicationCleanUp()
+: <a class="el" href="classolc_1_1_platform.html#aec7a14ba9007d3c421481baa49e55669">olc::Platform</a>
+</li>
+<li>ApplicationStartUp()
+: <a class="el" href="classolc_1_1_platform.html#a65e6f9763726056f6a9d37395b8ed023">olc::Platform</a>
+</li>
+<li>ApplyTexture()
+: <a class="el" href="classolc_1_1_renderer.html#a0a87094df3c911860a0eec9a8bb3b060">olc::Renderer</a>
+</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/functions_func_b.html b/doxy/html/functions_func_b.html
new file mode 100644
index 0000000000000000000000000000000000000000..549f945f596a4467a4cbb1077ba16b654e13f5a2
--- /dev/null
+++ b/doxy/html/functions_func_b.html
@@ -0,0 +1,81 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: Class Members - Functions</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+&#160;
+
+<h3><a id="index_b"></a>- b -</h3><ul>
+<li>begin()
+: <a class="el" href="class_dynamic_array.html#a3b4f5925657f9e8dfd71bcc5973399ee">DynamicArray&lt; T &gt;</a>
+</li>
+<li>bounce()
+: <a class="el" href="classentities_1_1_projectile_entity.html#ab3eb63e6fdf0ca5c4b81ebbc02e7f513">entities::ProjectileEntity</a>
+</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/functions_func_c.html b/doxy/html/functions_func_c.html
new file mode 100644
index 0000000000000000000000000000000000000000..f8275c09b467d2b4a805b378a6075da1f25f2c08
--- /dev/null
+++ b/doxy/html/functions_func_c.html
@@ -0,0 +1,126 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: Class Members - Functions</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+&#160;
+
+<h3><a id="index_c"></a>- c -</h3><ul>
+<li>canBeRemoved()
+: <a class="el" href="classentities_1_1_entity.html#a59426fe1b7dcefe96a0a748250724ff6">entities::Entity</a>
+, <a class="el" href="classentities_1_1_explosive_projectile.html#a8b075196a23aed5116e885709b64d583">entities::ExplosiveProjectile</a>
+, <a class="el" href="classweapons_1_1_weapon.html#aaf97827d27191b7b437ef1be96d6ac2c">weapons::Weapon</a>
+</li>
+<li>ceil()
+: <a class="el" href="structolc_1_1v2d__generic.html#a65efb6611304b590a2cb45781b1c34cc">olc::v2d_generic&lt; T &gt;</a>
+</li>
+<li>CharacterEntity()
+: <a class="el" href="classentities_1_1_character_entity.html#aa7c43269834b07ef51355a874be373e8">entities::CharacterEntity</a>
+</li>
+<li>CharacterTexture()
+: <a class="el" href="classrender_1_1_character_texture.html#a0e5cb130b98e46c9de43e274ca206d1b">render::CharacterTexture</a>
+</li>
+<li>Clear()
+: <a class="el" href="classolc_1_1_pixel_game_engine.html#aeb70b40809815fab4e1017e25c7ab161">olc::PixelGameEngine</a>
+</li>
+<li>ClearBuffer()
+: <a class="el" href="classolc_1_1_pixel_game_engine.html#aed9a3f6bd349e091728a329ee42932bf">olc::PixelGameEngine</a>
+, <a class="el" href="classolc_1_1_renderer.html#a921406bc341efd881ca510c64cebdc26">olc::Renderer</a>
+</li>
+<li>collisionOffset()
+: <a class="el" href="classentities_1_1_living_entity.html#a07a7d7f7e43f2140e3e6337322f78224">entities::LivingEntity</a>
+</li>
+<li>Construct()
+: <a class="el" href="classolc_1_1_pixel_game_engine.html#af1a9cf3b38dda2071b7ec18868ee1ccd">olc::PixelGameEngine</a>
+</li>
+<li>Create()
+: <a class="el" href="classolc_1_1_renderable.html#ab15a4441be7b48519d55296e416976fd">olc::Renderable</a>
+</li>
+<li>CreateDevice()
+: <a class="el" href="classolc_1_1_renderer.html#a28c87db87f8fd9b0f356db5d01499992">olc::Renderer</a>
+</li>
+<li>CreateGraphics()
+: <a class="el" href="classolc_1_1_platform.html#a2e951cdc0d8fd9bb68f05b33f1fd0450">olc::Platform</a>
+</li>
+<li>createInstance()
+: <a class="el" href="classrender_1_1_resource_manager.html#abdb364e2b932233c873a98a1b5c03d2a">render::ResourceManager</a>
+</li>
+<li>CreateLayer()
+: <a class="el" href="classolc_1_1_pixel_game_engine.html#ae15ffa0503e2893aad7001aa2f5769b7">olc::PixelGameEngine</a>
+</li>
+<li>CreateTexture()
+: <a class="el" href="classolc_1_1_renderer.html#aeac898aaf282d09a9cd848303de57bea">olc::Renderer</a>
+</li>
+<li>CreateWindowPane()
+: <a class="el" href="classolc_1_1_platform.html#a4966327ca7d5ff2b855b3a4eaf0f88f2">olc::Platform</a>
+</li>
+<li>cross()
+: <a class="el" href="structolc_1_1v2d__generic.html#a1febe5d22672d7d0121526577bf3b535">olc::v2d_generic&lt; T &gt;</a>
+</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/functions_func_d.html b/doxy/html/functions_func_d.html
new file mode 100644
index 0000000000000000000000000000000000000000..1f61c9db20390418162797acb9bcb3034dcc9a47
--- /dev/null
+++ b/doxy/html/functions_func_d.html
@@ -0,0 +1,195 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: Class Members - Functions</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+&#160;
+
+<h3><a id="index_d"></a>- d -</h3><ul>
+<li>damage()
+: <a class="el" href="classentities_1_1_entity.html#af7fc9949fc50b1b31abb36a3d51b0597">entities::Entity</a>
+, <a class="el" href="classentities_1_1_entity_with_a_i.html#a49a1c8a8ec1a318f65007d54173c3d37">entities::EntityWithAI</a>
+, <a class="el" href="classentities_1_1_living_entity.html#a28d31eff59137171da3e23a8e3ef9c1c">entities::LivingEntity</a>
+, <a class="el" href="classentities_1_1_player_entity.html#ab654524e0ad7ba5a9b1b590794d347f2">entities::PlayerEntity</a>
+, <a class="el" href="classentities_1_1_projectile_entity.html#a723e706e6421504ce9c6d70d77561215">entities::ProjectileEntity</a>
+, <a class="el" href="classentities_1_1_wall_entity.html#a0cd908003450361a7c08d2c7c83d21dc">entities::WallEntity</a>
+, <a class="el" href="classweapons_1_1_typical_melee_weapon.html#a00287ced5e67a7f91423596fac46606b">weapons::TypicalMeleeWeapon</a>
+, <a class="el" href="classweapons_1_1_weapon.html#a397c372ffe2838f7c9c1ce67c06e55a9">weapons::Weapon</a>
+</li>
+<li>damageEntity()
+: <a class="el" href="classweapons_1_1_melee_weapon.html#a6938e2705c6353b4b2782e8a4186de17">weapons::MeleeWeapon</a>
+</li>
+<li>damageIf()
+: <a class="el" href="classweapons_1_1_melee_weapon.html#a59a5b959539d2c71605c1b6fbec3111b">weapons::MeleeWeapon</a>
+</li>
+<li>Decal()
+: <a class="el" href="classolc_1_1_decal.html#a5479fee995f05355026dafd8cadcac88">olc::Decal</a>
+, <a class="el" href="classolc_1_1_renderable.html#af6e5a2d5a46fe4f475c67ca5ab1b1f5d">olc::Renderable</a>
+</li>
+<li>DeleteTexture()
+: <a class="el" href="classolc_1_1_renderer.html#aec8e86eb7a104fb0bc8f9fe51318f1a0">olc::Renderer</a>
+</li>
+<li>DestroyDevice()
+: <a class="el" href="classolc_1_1_renderer.html#a3a59a195cc380f89e5f9cc98b6fda2c7">olc::Renderer</a>
+</li>
+<li>DisplayFrame()
+: <a class="el" href="classolc_1_1_renderer.html#a660f3ca709b2a2fcec1d1cba1a4cfd18">olc::Renderer</a>
+</li>
+<li>dot()
+: <a class="el" href="structolc_1_1v2d__generic.html#ad2e96c716c487677bbde6966464fc482">olc::v2d_generic&lt; T &gt;</a>
+</li>
+<li>Draw()
+: <a class="el" href="classolc_1_1_pixel_game_engine.html#a95ab046b4b0843565bddd0e009a25569">olc::PixelGameEngine</a>
+, <a class="el" href="classolc_1_1_transformed_view.html#a09a214f47f9e4f5e85a8d3bd224ab9b1">olc::TransformedView</a>
+</li>
+<li>DrawCircle()
+: <a class="el" href="classolc_1_1_pixel_game_engine.html#a2ce3e34fd633acdc22b8dc2c8d25f86c">olc::PixelGameEngine</a>
+, <a class="el" href="classolc_1_1_transformed_view.html#abbf0590764bbacdd35a4d0adc6e69b84">olc::TransformedView</a>
+</li>
+<li>DrawDecal()
+: <a class="el" href="classolc_1_1_pixel_game_engine.html#a5b676590555cab61db67804417c6f25f">olc::PixelGameEngine</a>
+, <a class="el" href="classolc_1_1_renderer.html#ac567df937350bffb2eae3e647ccc10d5">olc::Renderer</a>
+, <a class="el" href="classolc_1_1_transformed_view.html#a8bad23f424184f2e15f32deb7f179160">olc::TransformedView</a>
+</li>
+<li>DrawExplicitDecal()
+: <a class="el" href="classolc_1_1_pixel_game_engine.html#a26d7073d87bb19f15d5ade6bb58e8e2d">olc::PixelGameEngine</a>
+, <a class="el" href="classolc_1_1_transformed_view.html#ac133c5f498e18dc4bcf6a087c7f8b356">olc::TransformedView</a>
+</li>
+<li>DrawLayerQuad()
+: <a class="el" href="classolc_1_1_renderer.html#a3eccca504615e72d1f40acd03ffce89f">olc::Renderer</a>
+</li>
+<li>DrawLine()
+: <a class="el" href="classolc_1_1_pixel_game_engine.html#a131877968123c843374f079814503d22">olc::PixelGameEngine</a>
+, <a class="el" href="classolc_1_1_transformed_view.html#a2564b30474cab1de208a9b220ddbc181">olc::TransformedView</a>
+</li>
+<li>DrawPartialDecal()
+: <a class="el" href="classolc_1_1_pixel_game_engine.html#a8bae37cf84b215e9e0416f058241aeba">olc::PixelGameEngine</a>
+, <a class="el" href="classolc_1_1_transformed_view.html#a1daefdb27499350eb3927c79ec60bca5">olc::TransformedView</a>
+</li>
+<li>DrawPartialRotatedDecal()
+: <a class="el" href="classolc_1_1_pixel_game_engine.html#aad3107bbad34e5792a9a35629e1fdbd0">olc::PixelGameEngine</a>
+, <a class="el" href="classolc_1_1_transformed_view.html#a3f2574c761a0045641fd2f5f9b194184">olc::TransformedView</a>
+</li>
+<li>DrawPartialSprite()
+: <a class="el" href="classolc_1_1_pixel_game_engine.html#ab777dd885946b2dba5e8bef894c6868c">olc::PixelGameEngine</a>
+, <a class="el" href="classolc_1_1_transformed_view.html#a829557257985bb738baad577ed0ed7a0">olc::TransformedView</a>
+</li>
+<li>DrawPartialWarpedDecal()
+: <a class="el" href="classolc_1_1_pixel_game_engine.html#a78be0709345710435fdaef7bc14f5fb3">olc::PixelGameEngine</a>
+, <a class="el" href="classolc_1_1_transformed_view.html#a17bf0d6a35728abe95993ef5475aa767">olc::TransformedView</a>
+</li>
+<li>DrawPolygonDecal()
+: <a class="el" href="classolc_1_1_pixel_game_engine.html#a40a7754338ea7b388ffa2383958d1f0b">olc::PixelGameEngine</a>
+, <a class="el" href="classolc_1_1_transformed_view.html#a0555577738d2edacb8b8e701d90804d7">olc::TransformedView</a>
+</li>
+<li>DrawRect()
+: <a class="el" href="classolc_1_1_pixel_game_engine.html#a220f523e520e317f5656c4d3df777163">olc::PixelGameEngine</a>
+, <a class="el" href="classolc_1_1_transformed_view.html#a2ce6891b49d600eacb32eef88f07b2e0">olc::TransformedView</a>
+</li>
+<li>DrawRotatedDecal()
+: <a class="el" href="classolc_1_1_pixel_game_engine.html#ab9af9b6726271e83dd7e4b24583b4236">olc::PixelGameEngine</a>
+, <a class="el" href="classolc_1_1_transformed_view.html#a0d11f6c9ddf0cda25a7b6a79c39c61d6">olc::TransformedView</a>
+</li>
+<li>DrawSprite()
+: <a class="el" href="classolc_1_1_pixel_game_engine.html#adcf00714f6f13ed5ad256e2102084177">olc::PixelGameEngine</a>
+, <a class="el" href="classolc_1_1_transformed_view.html#a44f1c98c6c6720338d7b6dcc9117cb03">olc::TransformedView</a>
+</li>
+<li>DrawString()
+: <a class="el" href="classolc_1_1_pixel_game_engine.html#ae099b13b38e5b02ffd31ad34a703cee5">olc::PixelGameEngine</a>
+, <a class="el" href="classolc_1_1_transformed_view.html#acf22577cab34db667d05eae0e38000e0">olc::TransformedView</a>
+</li>
+<li>DrawStringDecal()
+: <a class="el" href="classolc_1_1_pixel_game_engine.html#a689d1828a93292702070b97fb14f5644">olc::PixelGameEngine</a>
+, <a class="el" href="classolc_1_1_transformed_view.html#a903ad811f1e3f99d8c6e35f1a1aaf9bf">olc::TransformedView</a>
+</li>
+<li>DrawStringProp()
+: <a class="el" href="classolc_1_1_pixel_game_engine.html#a161ef8177257c371741d12cbc4818cf6">olc::PixelGameEngine</a>
+</li>
+<li>DrawStringPropDecal()
+: <a class="el" href="classolc_1_1_pixel_game_engine.html#a7392273f15fc09b3659b112564aa0dfa">olc::PixelGameEngine</a>
+, <a class="el" href="classolc_1_1_transformed_view.html#afde48a1dc4946bfb3718c19bdf62b328">olc::TransformedView</a>
+</li>
+<li>DrawTriangle()
+: <a class="el" href="classolc_1_1_pixel_game_engine.html#aafe21db2127f56670b5f5f089adced71">olc::PixelGameEngine</a>
+, <a class="el" href="classolc_1_1_transformed_view.html#a45a659d55d124e87e956e842963637fa">olc::TransformedView</a>
+</li>
+<li>DrawWarpedDecal()
+: <a class="el" href="classolc_1_1_pixel_game_engine.html#a5174456bbdaace7cde233889f7ad6d72">olc::PixelGameEngine</a>
+, <a class="el" href="classolc_1_1_transformed_view.html#a250badf6257c666f0e0a07ed3d86ad9e">olc::TransformedView</a>
+</li>
+<li>DummyEntity()
+: <a class="el" href="classentities_1_1_dummy_entity.html#aa68ec40dca291f94607c943d7d50c34b">entities::DummyEntity</a>
+</li>
+<li>Duplicate()
+: <a class="el" href="classolc_1_1_sprite.html#ac4307f400438dad18b0720cc034bec0b">olc::Sprite</a>
+</li>
+<li>DynamicArray()
+: <a class="el" href="class_dynamic_array.html#a7d42e6eaa66bab7c43f193e78d2d56a9">DynamicArray&lt; T &gt;</a>
+</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/functions_func_e.html b/doxy/html/functions_func_e.html
new file mode 100644
index 0000000000000000000000000000000000000000..a9baa25a3cc7b6e73e387f86c4c9a6913f481958
--- /dev/null
+++ b/doxy/html/functions_func_e.html
@@ -0,0 +1,96 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: Class Members - Functions</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+&#160;
+
+<h3><a id="index_e"></a>- e -</h3><ul>
+<li>EMGun()
+: <a class="el" href="classweapons_1_1_e_m_gun.html#a39114a620affbf0d80d616cf4baf7e17">weapons::EMGun</a>
+</li>
+<li>EnableLayer()
+: <a class="el" href="classolc_1_1_pixel_game_engine.html#a1e3453e2a118596fa04a961f66c6fd46">olc::PixelGameEngine</a>
+</li>
+<li>end()
+: <a class="el" href="class_dynamic_array.html#ac316f2e7a1938687031cb5cc34df34cc">DynamicArray&lt; T &gt;</a>
+</li>
+<li>EndPan()
+: <a class="el" href="classolc_1_1_transformed_view.html#a3edd680172e1ae5b710290ab58d617e0">olc::TransformedView</a>
+</li>
+<li>Entity()
+: <a class="el" href="classentities_1_1_entity.html#a539ddef34b718b6068df421f316f4a6d">entities::Entity</a>
+</li>
+<li>EntityWithAI()
+: <a class="el" href="classentities_1_1_entity_with_a_i.html#aa8bfaebef1ce596fbd8d70b36362135b">entities::EntityWithAI</a>
+</li>
+<li>ExplosiveProjectile()
+: <a class="el" href="classentities_1_1_explosive_projectile.html#ae80625e2530015d21b963ec219be758e">entities::ExplosiveProjectile</a>
+</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/functions_func_f.html b/doxy/html/functions_func_f.html
new file mode 100644
index 0000000000000000000000000000000000000000..0020d941f367faf132ffda404e15541b1d99901a
--- /dev/null
+++ b/doxy/html/functions_func_f.html
@@ -0,0 +1,97 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: Class Members - Functions</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+&#160;
+
+<h3><a id="index_f"></a>- f -</h3><ul>
+<li>FillCircle()
+: <a class="el" href="classolc_1_1_pixel_game_engine.html#a483f56606fbbf3ab4850554491a853bd">olc::PixelGameEngine</a>
+, <a class="el" href="classolc_1_1_transformed_view.html#a8d8559f74de40982e41f9cab0577b3b9">olc::TransformedView</a>
+</li>
+<li>FillRect()
+: <a class="el" href="classolc_1_1_pixel_game_engine.html#ae225f7027e20fe0f45a8190a992981cc">olc::PixelGameEngine</a>
+, <a class="el" href="classolc_1_1_transformed_view.html#a2f12ada82c7262a2e29572cfded60f02">olc::TransformedView</a>
+</li>
+<li>FillRectDecal()
+: <a class="el" href="classolc_1_1_pixel_game_engine.html#a02a26bca44e04f075f517bdae6ac0e9d">olc::PixelGameEngine</a>
+, <a class="el" href="classolc_1_1_transformed_view.html#a82f6eeb19d315324c160aa78fd2ead70">olc::TransformedView</a>
+</li>
+<li>FillTriangle()
+: <a class="el" href="classolc_1_1_pixel_game_engine.html#ad31abffe6c4d0b864b8f7762c33b7a7d">olc::PixelGameEngine</a>
+, <a class="el" href="classolc_1_1_transformed_view.html#a5cba545151923f38fd5d87b2c130a894">olc::TransformedView</a>
+</li>
+<li>finalizeAdd()
+: <a class="el" href="class_dynamic_array.html#a180959557f211bf3fcdf5e26b7cb67ab">DynamicArray&lt; T &gt;</a>
+</li>
+<li>floor()
+: <a class="el" href="structolc_1_1v2d__generic.html#affe50148d448ff75c298da3a1fd45323">olc::v2d_generic&lt; T &gt;</a>
+</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/functions_func_g.html b/doxy/html/functions_func_g.html
new file mode 100644
index 0000000000000000000000000000000000000000..f2cdf58f656828d4089fe690faeeace7cf36e012
--- /dev/null
+++ b/doxy/html/functions_func_g.html
@@ -0,0 +1,278 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: Class Members - Functions</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+&#160;
+
+<h3><a id="index_g"></a>- g -</h3><ul>
+<li>GameClient()
+: <a class="el" href="class_game_client.html#a1324a20c121e201e69391dfe7a08e546">GameClient</a>
+</li>
+<li>GameException()
+: <a class="el" href="class_game_exception.html#a076a7dd5228356c8d54dd0922d1c3048">GameException</a>
+</li>
+<li>generate()
+: <a class="el" href="class_dungeon_generator.html#add8fcec4f013307d734616106110a1ea">DungeonGenerator</a>
+, <a class="el" href="class_square_room_generator.html#a5b9952abf9af7a8fc4241f3f9e93a616">SquareRoomGenerator</a>
+, <a class="el" href="class_test_generator.html#aaacdd82f39d99e1dcbc847b674f245e1">TestGenerator</a>
+</li>
+<li>getAnimPhase()
+: <a class="el" href="classentities_1_1_living_entity.html#a657626746aaed854f45ac3bb6d6c2a2f">entities::LivingEntity</a>
+</li>
+<li>GetBottomRightTile()
+: <a class="el" href="classolc_1_1_tile_transformed_view.html#af681fe11952b2a791a388c79054adc1f">olc::TileTransformedView</a>
+</li>
+<li>getCollision()
+: <a class="el" href="classentities_1_1_entity.html#a94d18db8d502d677b6f4215dc1e1d820">entities::Entity</a>
+</li>
+<li>getCooldownBar()
+: <a class="el" href="classweapons_1_1_weapon.html#a9626ba57d509b1ee0fbe7f900d5181c6">weapons::Weapon</a>
+</li>
+<li>getDamage()
+: <a class="el" href="classentities_1_1_projectile_entity.html#a463a54543d8412feddf3be0aa7ab532a">entities::ProjectileEntity</a>
+, <a class="el" href="classweapons_1_1_melee_weapon.html#a2636c0b628f8fa52d269bb2dab0b21bd">weapons::MeleeWeapon</a>
+</li>
+<li>GetData()
+: <a class="el" href="classolc_1_1_sprite.html#ad8fcc6bbf8a785aa0bb9d00bf3cfdff2">olc::Sprite</a>
+</li>
+<li>getDecal()
+: <a class="el" href="classrender_1_1_lazy_sprite.html#aea6cdfcf5295c8a2c4b3f4a51ee0bc28">render::LazySprite</a>
+, <a class="el" href="classrender_1_1_resource_manager.html#a58cd141c758a19c7a04b33742de422f8">render::ResourceManager</a>
+, <a class="el" href="classrender_1_1_sprite_manager.html#ad40363b5fa66e08aec13f332c5964d6b">render::SpriteManager</a>
+</li>
+<li>getDirection()
+: <a class="el" href="classentities_1_1_living_entity.html#a27f39311f1139c96967b28cbaf752bd2">entities::LivingEntity</a>
+</li>
+<li>GetDrawTarget()
+: <a class="el" href="classolc_1_1_pixel_game_engine.html#a5fd95bd9571bc3ed3fd5d7d110e48cff">olc::PixelGameEngine</a>
+</li>
+<li>GetDrawTargetHeight()
+: <a class="el" href="classolc_1_1_pixel_game_engine.html#a4ee3dbff01900d71e62bfe499b1c83c3">olc::PixelGameEngine</a>
+</li>
+<li>GetDrawTargetWidth()
+: <a class="el" href="classolc_1_1_pixel_game_engine.html#a45d918f65f5fee13e654878d8271326b">olc::PixelGameEngine</a>
+</li>
+<li>GetElapsedTime()
+: <a class="el" href="classolc_1_1_pixel_game_engine.html#af881473291c52d849dbef155e359b27c">olc::PixelGameEngine</a>
+</li>
+<li>getEntities()
+: <a class="el" href="class_game_client.html#a6984da0365fd19c81dbc8907b598bf49">GameClient</a>
+</li>
+<li>GetFileBuffer()
+: <a class="el" href="classolc_1_1_resource_pack.html#accb89668e145dc59e0740925b1b91987">olc::ResourcePack</a>
+</li>
+<li>GetFontSprite()
+: <a class="el" href="classolc_1_1_pixel_game_engine.html#abab955edc6d1ec6023a7806509582f52">olc::PixelGameEngine</a>
+</li>
+<li>GetFPS()
+: <a class="el" href="classolc_1_1_pixel_game_engine.html#a89d27938d71d49b42a20307444147697">olc::PixelGameEngine</a>
+</li>
+<li>getHealthStatus()
+: <a class="el" href="classentities_1_1_player_entity.html#ab4a5cd2af67538f73832668a2cd32c9f">entities::PlayerEntity</a>
+</li>
+<li>getHitBoxSize()
+: <a class="el" href="classentities_1_1_entity.html#a9cd7ba81ddbd978b8f43e9f10e97492f">entities::Entity</a>
+, <a class="el" href="classentities_1_1_living_entity.html#aa965d3922663b974dd14cc5f8004ed65">entities::LivingEntity</a>
+, <a class="el" href="classentities_1_1_projectile_entity.html#ae38525094695db8ab564c5ae27711bb4">entities::ProjectileEntity</a>
+, <a class="el" href="classentities_1_1_wall_entity.html#afd4863a311190a59cdf7574798ac3f2d">entities::WallEntity</a>
+, <a class="el" href="classweapons_1_1_typical_melee_weapon.html#ab60f5d99ae206d9064381b0c70b9a7a2">weapons::TypicalMeleeWeapon</a>
+, <a class="el" href="classweapons_1_1_weapon.html#a862bd61cf947a91809b423304885cf66">weapons::Weapon</a>
+</li>
+<li>getHitOffset()
+: <a class="el" href="classweapons_1_1_melee_weapon.html#ac6a6b662df60c1927531fddf9a93ebaa">weapons::MeleeWeapon</a>
+, <a class="el" href="classweapons_1_1_typical_melee_weapon.html#a74cb37d45c599296e443858b73cd1d97">weapons::TypicalMeleeWeapon</a>
+</li>
+<li>getInstance()
+: <a class="el" href="class_game_client.html#adfcb979db6333b335dee4e6d785aabcf">GameClient</a>
+</li>
+<li>GetKey()
+: <a class="el" href="classolc_1_1_pixel_game_engine.html#a27cb4cb68d5e1ca7df8014d66221269e">olc::PixelGameEngine</a>
+</li>
+<li>GetLayers()
+: <a class="el" href="classolc_1_1_pixel_game_engine.html#aac31baad6daf55b926f6add9c44a5591">olc::PixelGameEngine</a>
+</li>
+<li>GetMouse()
+: <a class="el" href="classolc_1_1_pixel_game_engine.html#abdf9f5d70c9e24ab9358a8dd07474105">olc::PixelGameEngine</a>
+</li>
+<li>GetMousePos()
+: <a class="el" href="classolc_1_1_pixel_game_engine.html#af11fb390dbc5a3168c26fe911690dcbe">olc::PixelGameEngine</a>
+</li>
+<li>GetMouseWheel()
+: <a class="el" href="classolc_1_1_pixel_game_engine.html#a9640286e4a7cd03c6f545b1df7373269">olc::PixelGameEngine</a>
+</li>
+<li>GetMouseX()
+: <a class="el" href="classolc_1_1_pixel_game_engine.html#a2ec1d2a1f3777338fb4388c620344a34">olc::PixelGameEngine</a>
+</li>
+<li>GetMouseY()
+: <a class="el" href="classolc_1_1_pixel_game_engine.html#a8dde80c07547240f5e72b4f2fcd89668">olc::PixelGameEngine</a>
+</li>
+<li>getName()
+: <a class="el" href="classentities_1_1_entity.html#a8c4b0c1eb69a673619e4c8943ef34f86">entities::Entity</a>
+</li>
+<li>getNeighbourID()
+: <a class="el" href="classentities_1_1_wall_entity.html#af799f9675cdf4acadfcf9d9616d36e1b">entities::WallEntity</a>
+</li>
+<li>GetPixel()
+: <a class="el" href="classolc_1_1_sprite.html#a7e1f8169c9822f1ed94f0212d3f8d6f6">olc::Sprite</a>
+</li>
+<li>GetPixelMode()
+: <a class="el" href="classolc_1_1_pixel_game_engine.html#ad4f95a449dc09a2650ec771e6fa83049">olc::PixelGameEngine</a>
+</li>
+<li>GetPixelSize()
+: <a class="el" href="classolc_1_1_pixel_game_engine.html#a721fb4cfac75f76c6d5832415fccbe61">olc::PixelGameEngine</a>
+</li>
+<li>getPlayerEntity()
+: <a class="el" href="class_game_client.html#acc1e0f1d4836be4a8556289cfdfd4049">GameClient</a>
+</li>
+<li>getPos()
+: <a class="el" href="classentities_1_1_entity.html#a799a692b988248dd23d207b95e7fe2b7">entities::Entity</a>
+</li>
+<li>getPredicator()
+: <a class="el" href="classweapons_1_1_melee_weapon.html#af14b624f27592421fc117c4fa81aba1b">weapons::MeleeWeapon</a>
+, <a class="el" href="classweapons_1_1_typical_melee_weapon.html#ad367f50efc891a92b0f22f2404f39c5e">weapons::TypicalMeleeWeapon</a>
+</li>
+<li>getScene()
+: <a class="el" href="class_game_client.html#a01a0c559c6cfe63557fa4b5d7aa9e72c">GameClient</a>
+</li>
+<li>GetScreenPixelSize()
+: <a class="el" href="classolc_1_1_pixel_game_engine.html#a5602d50220bd7edbd77fc67eaa981ce5">olc::PixelGameEngine</a>
+</li>
+<li>getSecondaryBar()
+: <a class="el" href="classweapons_1_1_e_m_gun.html#a1d2c920f4fddd40d39dba5d4dddf496f">weapons::EMGun</a>
+, <a class="el" href="classweapons_1_1_weapon.html#a3f84544c15d6220252c6175fdfe5c61d">weapons::Weapon</a>
+</li>
+<li>getSize()
+: <a class="el" href="class_dynamic_array.html#acbec0bb643ebec934cf5e9dfc1ecf01e">DynamicArray&lt; T &gt;</a>
+, <a class="el" href="classentities_1_1_entity.html#ac60e9beb5a45fc65120e9779e680c04b">entities::Entity</a>
+</li>
+<li>getSprite()
+: <a class="el" href="classrender_1_1_resource_manager.html#a4ac8358921fdda1f37bf4564855f6fce">render::ResourceManager</a>
+</li>
+<li>GetTextSize()
+: <a class="el" href="classolc_1_1_pixel_game_engine.html#aa70121ffb85733f8ea2e7e5d0b4b311b">olc::PixelGameEngine</a>
+</li>
+<li>GetTextSizeProp()
+: <a class="el" href="classolc_1_1_pixel_game_engine.html#ab282eddb9b8fe14d01311c8613f79e84">olc::PixelGameEngine</a>
+</li>
+<li>getTexture()
+: <a class="el" href="classentities_1_1_character_entity.html#afdae03f49fd5d47d0837ed660e37038f">entities::CharacterEntity</a>
+, <a class="el" href="classentities_1_1_entity.html#af01b796fb472ef3139aea41aeed36c76">entities::Entity</a>
+, <a class="el" href="classentities_1_1_projectile_entity.html#a7e67fe629e1ef7115fd2a0cae8b1efc0">entities::ProjectileEntity</a>
+, <a class="el" href="classentities_1_1_wall_entity.html#a4b6c55275f06a30dac07c2dc5452e602">entities::WallEntity</a>
+</li>
+<li>GetTileOffset()
+: <a class="el" href="classolc_1_1_tile_transformed_view.html#afd338a68b965309beeefa3f239a0680b">olc::TileTransformedView</a>
+</li>
+<li>GetTileUnderScreenPos()
+: <a class="el" href="classolc_1_1_tile_transformed_view.html#a1a963a55248ff021b76ecc8e92a555e6">olc::TileTransformedView</a>
+</li>
+<li>GetTopLeftTile()
+: <a class="el" href="classolc_1_1_tile_transformed_view.html#a9230a04b74c812551768b324a07bf2a3">olc::TileTransformedView</a>
+</li>
+<li>GetVisibleTiles()
+: <a class="el" href="classolc_1_1_tile_transformed_view.html#abc2e3898f7bb8209d84095cc5c16843b">olc::TileTransformedView</a>
+</li>
+<li>getWeapon()
+: <a class="el" href="classentities_1_1_character_entity.html#a7926bfbac4481203c1bd8920fcb2c432">entities::CharacterEntity</a>
+, <a class="el" href="classentities_1_1_entity_with_a_i.html#a66937315f0a16d70c29359e89415d222">entities::EntityWithAI</a>
+, <a class="el" href="classentities_1_1_player_entity.html#a1759d4f054b70c3c57f0f66c03fe09bb">entities::PlayerEntity</a>
+</li>
+<li>GetWindowMouse()
+: <a class="el" href="classolc_1_1_pixel_game_engine.html#a54b5141da371af51541874dd68e4e6a2">olc::PixelGameEngine</a>
+</li>
+<li>GetWindowSize()
+: <a class="el" href="classolc_1_1_pixel_game_engine.html#aee10e917aeb1ce4625561d71126e0a7d">olc::PixelGameEngine</a>
+</li>
+<li>GetWorldBR()
+: <a class="el" href="classolc_1_1_transformed_view.html#a5240bf2a7285559be13c80f3ce2a97a3">olc::TransformedView</a>
+</li>
+<li>GetWorldOffset()
+: <a class="el" href="classolc_1_1_transformed_view.html#a88152a5f5b9fbb3df0f6d965ef4c4fe4">olc::TransformedView</a>
+</li>
+<li>GetWorldScale()
+: <a class="el" href="classolc_1_1_transformed_view.html#a4f6ba5d2c58b720677f4287743713f65">olc::TransformedView</a>
+</li>
+<li>GetWorldTL()
+: <a class="el" href="classolc_1_1_transformed_view.html#ac75bd045f9fbc5d8cd901ecdd216fcb5">olc::TransformedView</a>
+</li>
+<li>GetWorldVisibleArea()
+: <a class="el" href="classolc_1_1_transformed_view.html#a7f7815582a087a163199bb29f1c4c0ae">olc::TransformedView</a>
+</li>
+<li>GlitchGun()
+: <a class="el" href="classweapons_1_1_glitch_gun.html#ac8935765613bfe258bc6985441159702">weapons::GlitchGun</a>
+</li>
+<li>GlitchTexture()
+: <a class="el" href="classweapons_1_1_glitch_texture.html#a613747d0865e988631cb0f0213c54640">weapons::GlitchTexture</a>
+</li>
+<li>GradientFillRectDecal()
+: <a class="el" href="classolc_1_1_pixel_game_engine.html#a11d9ed8762b81e0bd6bbe4349255b1e8">olc::PixelGameEngine</a>
+, <a class="el" href="classolc_1_1_transformed_view.html#a220b8b9184eb25a6bb2c3271d5417025">olc::TransformedView</a>
+</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/functions_func_h.html b/doxy/html/functions_func_h.html
new file mode 100644
index 0000000000000000000000000000000000000000..18512a0a9b16100b804ee2525bd15a72fdf23b3a
--- /dev/null
+++ b/doxy/html/functions_func_h.html
@@ -0,0 +1,78 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: Class Members - Functions</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+&#160;
+
+<h3><a id="index_h"></a>- h -</h3><ul>
+<li>HandleSystemEvent()
+: <a class="el" href="classolc_1_1_platform.html#abbc05f4b3aea3513919b05fdb15bfbbc">olc::Platform</a>
+</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/functions_func_i.html b/doxy/html/functions_func_i.html
new file mode 100644
index 0000000000000000000000000000000000000000..c1e632bbae98888d3803149b750165d55c76e0a1
--- /dev/null
+++ b/doxy/html/functions_func_i.html
@@ -0,0 +1,103 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: Class Members - Functions</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+&#160;
+
+<h3><a id="index_i"></a>- i -</h3><ul>
+<li>ImageLoader()
+: <a class="el" href="classolc_1_1_image_loader.html#a7aa358a572ec995b530ca5b54829f044">olc::ImageLoader</a>
+</li>
+<li>init()
+: <a class="el" href="classentities_1_1_entity.html#afd80ddceccb36b87d0d80dcc7f88fc3b">entities::Entity</a>
+, <a class="el" href="classentities_1_1_wall_entity.html#ad66ed8002d8082035bd3b7df07ff45b5">entities::WallEntity</a>
+</li>
+<li>Initialise()
+: <a class="el" href="classolc_1_1_transformed_view.html#a799473b80691228b87a818f80847ca76">olc::TransformedView</a>
+</li>
+<li>inv()
+: <a class="el" href="structolc_1_1_pixel.html#a8a1daba449fb823a4535a6089fe880ab">olc::Pixel</a>
+</li>
+<li>isAlive()
+: <a class="el" href="classentities_1_1_entity.html#ab0ee90a84f2163b600e603f24cff046f">entities::Entity</a>
+</li>
+<li>IsFocused()
+: <a class="el" href="classolc_1_1_pixel_game_engine.html#a92192402b5d499ab8b230dfb9393f3b7">olc::PixelGameEngine</a>
+</li>
+<li>isInitialized()
+: <a class="el" href="classentities_1_1_entity.html#ab010066d52a02c63908f70ff6ef7d873">entities::Entity</a>
+</li>
+<li>IsPointVisible()
+: <a class="el" href="classolc_1_1_transformed_view.html#a664ea0cbd54bbff17ea419ebfac1e359">olc::TransformedView</a>
+</li>
+<li>IsRectVisible()
+: <a class="el" href="classolc_1_1_transformed_view.html#aecadbbdf84343ec0a2f0e2e8c9017f0e">olc::TransformedView</a>
+</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/functions_func_l.html b/doxy/html/functions_func_l.html
new file mode 100644
index 0000000000000000000000000000000000000000..6f8aa52d472fa62dc45f0c89b5cf144caf25b1d1
--- /dev/null
+++ b/doxy/html/functions_func_l.html
@@ -0,0 +1,99 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: Class Members - Functions</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+&#160;
+
+<h3><a id="index_l"></a>- l -</h3><ul>
+<li>LazySprite()
+: <a class="el" href="classrender_1_1_lazy_sprite.html#a28a8d429dc27035aa9a09151aa150b0a">render::LazySprite</a>
+</li>
+<li>LivingEntity()
+: <a class="el" href="classentities_1_1_living_entity.html#a08837d43e7338c4ceff9acfbbbffd94b">entities::LivingEntity</a>
+</li>
+<li>Load()
+: <a class="el" href="classolc_1_1_renderable.html#ace5d212d903d86bc9789f1af0f92096c">olc::Renderable</a>
+</li>
+<li>Loaded()
+: <a class="el" href="classolc_1_1_resource_pack.html#a4421c33c022ad042d29ef81f29f5b355">olc::ResourcePack</a>
+</li>
+<li>LoadFromFile()
+: <a class="el" href="classolc_1_1_sprite.html#adc277c0342733a4aa8dcdc9152326fec">olc::Sprite</a>
+</li>
+<li>LoadFromPGESprFile()
+: <a class="el" href="classolc_1_1_sprite.html#a6959a2d94d6c02b7918aec5ce9b1a371">olc::Sprite</a>
+</li>
+<li>LoadImageResource()
+: <a class="el" href="classolc_1_1_image_loader.html#ac08c7387037c748a38598b6442974d81">olc::ImageLoader</a>
+</li>
+<li>LoadPack()
+: <a class="el" href="classolc_1_1_resource_pack.html#a3168eef974448f8119e93af97272df27">olc::ResourcePack</a>
+</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/functions_func_m.html b/doxy/html/functions_func_m.html
new file mode 100644
index 0000000000000000000000000000000000000000..351a7715069b76b3c4bd19acd112bbb7f495c3a5
--- /dev/null
+++ b/doxy/html/functions_func_m.html
@@ -0,0 +1,93 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: Class Members - Functions</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+&#160;
+
+<h3><a id="index_m"></a>- m -</h3><ul>
+<li>mag()
+: <a class="el" href="structolc_1_1v2d__generic.html#ab06016810fe727fa826e43e44e02008b">olc::v2d_generic&lt; T &gt;</a>
+</li>
+<li>mag2()
+: <a class="el" href="structolc_1_1v2d__generic.html#a6b83d7375119637fdf65233cf6dae947">olc::v2d_generic&lt; T &gt;</a>
+</li>
+<li>max()
+: <a class="el" href="structolc_1_1v2d__generic.html#a1fe55d8bc22dbb400583cb68cc9e3e36">olc::v2d_generic&lt; T &gt;</a>
+</li>
+<li>MeleeWeapon()
+: <a class="el" href="classweapons_1_1_melee_weapon.html#a719614055440a5e7cfaf943dab856bb1">weapons::MeleeWeapon</a>
+</li>
+<li>min()
+: <a class="el" href="structolc_1_1v2d__generic.html#aec7b204ad597ee0edc9a444ff3a242eb">olc::v2d_generic&lt; T &gt;</a>
+</li>
+<li>MoveWorldOffset()
+: <a class="el" href="classolc_1_1_transformed_view.html#a154b34bc81f6e0c67579d2d2ee40b2d1">olc::TransformedView</a>
+</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/functions_func_n.html b/doxy/html/functions_func_n.html
new file mode 100644
index 0000000000000000000000000000000000000000..35b22d53e664edb0094c1a917ba10cf36eab3b99
--- /dev/null
+++ b/doxy/html/functions_func_n.html
@@ -0,0 +1,78 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: Class Members - Functions</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+&#160;
+
+<h3><a id="index_n"></a>- n -</h3><ul>
+<li>norm()
+: <a class="el" href="structolc_1_1v2d__generic.html#a9c62f12d51859a5a487c5a0c2d00b09a">olc::v2d_generic&lt; T &gt;</a>
+</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/functions_func_o.html b/doxy/html/functions_func_o.html
new file mode 100644
index 0000000000000000000000000000000000000000..f64d4e8c67d0da6f15397b1c6b3ce9a51310dd35
--- /dev/null
+++ b/doxy/html/functions_func_o.html
@@ -0,0 +1,211 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: Class Members - Functions</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+&#160;
+
+<h3><a id="index_o"></a>- o -</h3><ul>
+<li>olc_ConfigureSystem()
+: <a class="el" href="classolc_1_1_pixel_game_engine.html#a7afa0b57c65bd5d9a54c602afd4fe756">olc::PixelGameEngine</a>
+</li>
+<li>olc_ConstructFontSheet()
+: <a class="el" href="classolc_1_1_pixel_game_engine.html#a117eedbe1e9366fe2bf402334beb9692">olc::PixelGameEngine</a>
+</li>
+<li>olc_CoreUpdate()
+: <a class="el" href="classolc_1_1_pixel_game_engine.html#a0018131435f88bb5de406fd11ee54058">olc::PixelGameEngine</a>
+</li>
+<li>olc_IsRunning()
+: <a class="el" href="classolc_1_1_pixel_game_engine.html#a7b0f41bc4b4258a5c4fa1742b41d15e3">olc::PixelGameEngine</a>
+</li>
+<li>olc_PrepareEngine()
+: <a class="el" href="classolc_1_1_pixel_game_engine.html#aa19aafa028a7e2eaaf7b2235a9bd2256">olc::PixelGameEngine</a>
+</li>
+<li>olc_Reanimate()
+: <a class="el" href="classolc_1_1_pixel_game_engine.html#a417b6cd564ccad1d878ae51cfdd3be8e">olc::PixelGameEngine</a>
+</li>
+<li>olc_Terminate()
+: <a class="el" href="classolc_1_1_pixel_game_engine.html#a2da1f2ebbc1a5fbdbf52890e6ac707b1">olc::PixelGameEngine</a>
+</li>
+<li>olc_UpdateKeyFocus()
+: <a class="el" href="classolc_1_1_pixel_game_engine.html#a7343712504f23f86c8490646ffc50e7f">olc::PixelGameEngine</a>
+</li>
+<li>olc_UpdateKeyState()
+: <a class="el" href="classolc_1_1_pixel_game_engine.html#a61fde81846a9ef7f8fcf63080e6d350b">olc::PixelGameEngine</a>
+</li>
+<li>olc_UpdateMouse()
+: <a class="el" href="classolc_1_1_pixel_game_engine.html#a6e10d8fae75e26dea03b0b447667a308">olc::PixelGameEngine</a>
+</li>
+<li>olc_UpdateMouseFocus()
+: <a class="el" href="classolc_1_1_pixel_game_engine.html#ab3150ba487188e64940c294998fa38d3">olc::PixelGameEngine</a>
+</li>
+<li>olc_UpdateMouseState()
+: <a class="el" href="classolc_1_1_pixel_game_engine.html#a59645c08376a7d4e58673919f3bd0dfb">olc::PixelGameEngine</a>
+</li>
+<li>olc_UpdateMouseWheel()
+: <a class="el" href="classolc_1_1_pixel_game_engine.html#aa33ea5e40d4577e3c44fcf4a26cecadd">olc::PixelGameEngine</a>
+</li>
+<li>olc_UpdateViewport()
+: <a class="el" href="classolc_1_1_pixel_game_engine.html#af1cd38cf0df2e7c3ab53bee66ec63771">olc::PixelGameEngine</a>
+</li>
+<li>olc_UpdateWindowSize()
+: <a class="el" href="classolc_1_1_pixel_game_engine.html#a4f0dae00f21f8d71d4544d50593234c3">olc::PixelGameEngine</a>
+</li>
+<li>OnAfterUserCreate()
+: <a class="el" href="classolc_1_1_p_g_e_x.html#a2a57a711518202708d2b0e586058348f">olc::PGEX</a>
+</li>
+<li>OnAfterUserUpdate()
+: <a class="el" href="classolc_1_1_p_g_e_x.html#a4d2dd7d685fb1c7d00d97aa15e3376b4">olc::PGEX</a>
+</li>
+<li>OnBeforeUserCreate()
+: <a class="el" href="classolc_1_1_p_g_e_x.html#a69c65b5d3a56f9a247e1bf15fd2e4035">olc::PGEX</a>
+</li>
+<li>OnBeforeUserUpdate()
+: <a class="el" href="classolc_1_1_p_g_e_x.html#a2573df22f1637314b976811714dea3fb">olc::PGEX</a>
+</li>
+<li>onCollide()
+: <a class="el" href="classentities_1_1_explosive_projectile.html#a7e0d880f0dfeb6570dc724a0739b1331">entities::ExplosiveProjectile</a>
+, <a class="el" href="classentities_1_1_projectile_entity.html#a865c1a9527f67a3e5402a4fcf8baac98">entities::ProjectileEntity</a>
+</li>
+<li>OnUserCreate()
+: <a class="el" href="class_game_client.html#a698bb8a4ba91211dc4fcaa4079d8d070">GameClient</a>
+, <a class="el" href="classolc_1_1_pixel_game_engine.html#a6a33b6ff7cd23dfd05b34416865fb5c3">olc::PixelGameEngine</a>
+</li>
+<li>OnUserDestroy()
+: <a class="el" href="classolc_1_1_pixel_game_engine.html#ad4fbf979865fb1f08250ea379f2de669">olc::PixelGameEngine</a>
+</li>
+<li>OnUserUpdate()
+: <a class="el" href="class_game_client.html#ab6e2efe37e67de64062bca35d8a11e2e">GameClient</a>
+, <a class="el" href="classolc_1_1_pixel_game_engine.html#af9379a3db341b0acb410ea543e30fdd1">olc::PixelGameEngine</a>
+</li>
+<li>operator v2d_generic&lt; double &gt;()
+: <a class="el" href="structolc_1_1v2d__generic.html#a5b722f332f64d260741ef8322cca5cce">olc::v2d_generic&lt; T &gt;</a>
+</li>
+<li>operator v2d_generic&lt; float &gt;()
+: <a class="el" href="structolc_1_1v2d__generic.html#a7fd9786ec8121d50addc3dd624ca21eb">olc::v2d_generic&lt; T &gt;</a>
+</li>
+<li>operator v2d_generic&lt; int32_t &gt;()
+: <a class="el" href="structolc_1_1v2d__generic.html#a2bf267ac209cca361df72649a5aac92c">olc::v2d_generic&lt; T &gt;</a>
+</li>
+<li>operator WallEntity *()
+: <a class="el" href="classentities_1_1_entity.html#ad0a172ff99a7e73aaaee3658d5e3ae08">entities::Entity</a>
+</li>
+<li>operator!=()
+: <a class="el" href="structolc_1_1_pixel.html#aeeaecb16a243ce3be52cd9261fdf2b23">olc::Pixel</a>
+, <a class="el" href="structolc_1_1v2d__generic.html#abd9af6a38bc73471874665f508ff10b6">olc::v2d_generic&lt; T &gt;</a>
+</li>
+<li>operator()()
+: <a class="el" href="classweapons_1_1_melee_weapon_1_1predicate_distance.html#abfe04e14018aab1af891302df42255eb">weapons::MeleeWeapon::predicateDistance</a>
+</li>
+<li>operator*()
+: <a class="el" href="structolc_1_1_pixel.html#a15a61beedc23ca678a954567274e24de">olc::Pixel</a>
+, <a class="el" href="structolc_1_1v2d__generic.html#a542487700e63b2e30940d64b75c3d3db">olc::v2d_generic&lt; T &gt;</a>
+</li>
+<li>operator*=()
+: <a class="el" href="structolc_1_1_pixel.html#abace0545af22380831ffbc8bd1a66419">olc::Pixel</a>
+, <a class="el" href="structolc_1_1v2d__generic.html#a35c81946f320da79fa5a33e595873252">olc::v2d_generic&lt; T &gt;</a>
+</li>
+<li>operator+()
+: <a class="el" href="structolc_1_1_pixel.html#acb54675f2c61b989de500f8e6e56a9f6">olc::Pixel</a>
+, <a class="el" href="structolc_1_1v2d__generic.html#a5ae3f55fd12af9bf44a2837ad76ea7dd">olc::v2d_generic&lt; T &gt;</a>
+</li>
+<li>operator+=()
+: <a class="el" href="class_dynamic_array.html#a9f3bb8f56ad0cb35f890ebae426c7a61">DynamicArray&lt; T &gt;</a>
+, <a class="el" href="class_game_client.html#abf4100b1ee69f4f300346424139f8d93">GameClient</a>
+, <a class="el" href="structolc_1_1_pixel.html#a39dc75f9f15c040c2d2715c66b13f4e0">olc::Pixel</a>
+, <a class="el" href="structolc_1_1v2d__generic.html#ac57326846384068beaaddec0674b65d2">olc::v2d_generic&lt; T &gt;</a>
+</li>
+<li>operator-()
+: <a class="el" href="structolc_1_1_pixel.html#a1ac8b9d37f4c368b62b21b52df1f5937">olc::Pixel</a>
+, <a class="el" href="structolc_1_1v2d__generic.html#a9eff196e75aeffcd96bffb64de04219d">olc::v2d_generic&lt; T &gt;</a>
+</li>
+<li>operator-=()
+: <a class="el" href="structolc_1_1_pixel.html#a058f58406ca54ab73075f5e42125a65a">olc::Pixel</a>
+, <a class="el" href="structolc_1_1v2d__generic.html#af3e8b94c4921f8d81b4112b319bd7f6d">olc::v2d_generic&lt; T &gt;</a>
+</li>
+<li>operator/()
+: <a class="el" href="structolc_1_1_pixel.html#a7fdcfa79f91368e834cc2ec66d9de769">olc::Pixel</a>
+, <a class="el" href="structolc_1_1v2d__generic.html#adcf0004e01ba1d8c813cdcb6525eb1c6">olc::v2d_generic&lt; T &gt;</a>
+</li>
+<li>operator/=()
+: <a class="el" href="structolc_1_1_pixel.html#afd73fb0548d7232923f0ce707171e0da">olc::Pixel</a>
+, <a class="el" href="structolc_1_1v2d__generic.html#a8e035b45f69db29e4cac698658ad4de1">olc::v2d_generic&lt; T &gt;</a>
+</li>
+<li>operator=()
+: <a class="el" href="structolc_1_1_pixel.html#a9e52ebcc91b8460859a606b7bf763b82">olc::Pixel</a>
+, <a class="el" href="structolc_1_1v2d__generic.html#adff36d90ca79f24401a31cbde706bf8c">olc::v2d_generic&lt; T &gt;</a>
+</li>
+<li>operator==()
+: <a class="el" href="structolc_1_1_pixel.html#a6b82561c110de5447ca4d59c3162d06c">olc::Pixel</a>
+, <a class="el" href="structolc_1_1v2d__generic.html#ace104acaa0ef181acb36fe75d0aed683">olc::v2d_generic&lt; T &gt;</a>
+</li>
+<li>operator[]()
+: <a class="el" href="classrender_1_1_resource_manager.html#aec5833434ea7432806785ae0ce1e1d91">render::ResourceManager</a>
+</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/functions_func_p.html b/doxy/html/functions_func_p.html
new file mode 100644
index 0000000000000000000000000000000000000000..fccc16422d88305875372b14aaa05b0c8b865475
--- /dev/null
+++ b/doxy/html/functions_func_p.html
@@ -0,0 +1,105 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: Class Members - Functions</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+&#160;
+
+<h3><a id="index_p"></a>- p -</h3><ul>
+<li>perp()
+: <a class="el" href="structolc_1_1v2d__generic.html#a8275a944d309dc4b58f60cbc2925a7cc">olc::v2d_generic&lt; T &gt;</a>
+</li>
+<li>PGEX()
+: <a class="el" href="classolc_1_1_p_g_e_x.html#aae9dbde2ad7341482b9f911f23678d75">olc::PGEX</a>
+</li>
+<li>pgex_Register()
+: <a class="el" href="classolc_1_1_pixel_game_engine.html#a49a2ead57239e1595cc555effd3e3a2b">olc::PixelGameEngine</a>
+</li>
+<li>Pistol()
+: <a class="el" href="classweapons_1_1_pistol.html#acc8c02692de7d84e5060da436b96ed86">weapons::Pistol</a>
+</li>
+<li>Pixel()
+: <a class="el" href="structolc_1_1_pixel.html#a75ef9e180289d861dfa6687faa248345">olc::Pixel</a>
+</li>
+<li>PixelGameEngine()
+: <a class="el" href="classolc_1_1_pixel_game_engine.html#afe9d685732305246c3fcb361ae3c4bc6">olc::PixelGameEngine</a>
+</li>
+<li>PlayerEntity()
+: <a class="el" href="classentities_1_1_player_entity.html#ace0cf1f8c711b21afef3965eb3b380a1">entities::PlayerEntity</a>
+</li>
+<li>PrepareDevice()
+: <a class="el" href="classolc_1_1_renderer.html#a7d97cab172e59d23a2587f636c9b12b7">olc::Renderer</a>
+</li>
+<li>PrepareDrawing()
+: <a class="el" href="classolc_1_1_renderer.html#a04c56d76c76ab50f5f06b9b537e9d98d">olc::Renderer</a>
+</li>
+<li>ProjectileEntity()
+: <a class="el" href="classentities_1_1_projectile_entity.html#ad42e2a1181110d2fa3acbec7eef3424e">entities::ProjectileEntity</a>
+</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/functions_func_r.html b/doxy/html/functions_func_r.html
new file mode 100644
index 0000000000000000000000000000000000000000..804ad8a971b6a7af7e7192bb6a0d5e768a001c79
--- /dev/null
+++ b/doxy/html/functions_func_r.html
@@ -0,0 +1,107 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: Class Members - Functions</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+&#160;
+
+<h3><a id="index_r"></a>- r -</h3><ul>
+<li>RangedWeapon()
+: <a class="el" href="classweapons_1_1_ranged_weapon.html#add8afffc63175911e5f81b3ce43d135f">weapons::RangedWeapon</a>
+</li>
+<li>ReadTexture()
+: <a class="el" href="classolc_1_1_renderer.html#aa0e93a7d9ff6f25e9b154b2c8c86d44d">olc::Renderer</a>
+</li>
+<li>removeIf()
+: <a class="el" href="class_dynamic_array.html#a9db6489676b4560684be1ba03233fca0">DynamicArray&lt; T &gt;</a>
+</li>
+<li>render()
+: <a class="el" href="classentities_1_1_character_entity.html#aeb6069f0f07d0914faf0f94c0cc33def">entities::CharacterEntity</a>
+, <a class="el" href="classentities_1_1_entity.html#abcc4364b5b7250f0364f3550a618b3ab">entities::Entity</a>
+, <a class="el" href="classentities_1_1_explosive_projectile.html#a86148b27403d275c1513f22bb3f47892">entities::ExplosiveProjectile</a>
+, <a class="el" href="classrender_1_1_character_texture.html#a16ced1889ccaf7ca4c913ec1475c2f9a">render::CharacterTexture</a>
+, <a class="el" href="classrender_1_1_i_texture.html#aedf64dab92f17e22a807635493196913">render::ITexture</a>
+, <a class="el" href="classrender_1_1_lazy_sprite.html#a3e2884ba94b5f6bbe9061c5a44ca6a23">render::LazySprite</a>
+, <a class="el" href="classrender_1_1_simple_sprite.html#aaed7cf3094f69387291a2d287d7753a5">render::SimpleSprite</a>
+, <a class="el" href="classrender_1_1_wall_texture.html#a03239c7168e114906cb20f3d39815344">render::WallTexture</a>
+, <a class="el" href="classweapons_1_1_glitch_texture.html#a5484c864f917e54fb6041b7d0d33ef42">weapons::GlitchTexture</a>
+</li>
+<li>Renderable()
+: <a class="el" href="classolc_1_1_renderable.html#affef9fb6b4810e59a7d14410f351ba37">olc::Renderable</a>
+</li>
+<li>renderCentered()
+: <a class="el" href="classrender_1_1_lazy_sprite.html#a1e0b32f06c67b96eed8da12747aa4f0a">render::LazySprite</a>
+</li>
+<li>ResourceBuffer()
+: <a class="el" href="structolc_1_1_resource_buffer.html#abd18994c20cc7992ff7ccb07af9914e7">olc::ResourceBuffer</a>
+</li>
+<li>ResourcePack()
+: <a class="el" href="classolc_1_1_resource_pack.html#af5b7f93e4fb4e8b899da50985b689083">olc::ResourcePack</a>
+</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/functions_func_s.html b/doxy/html/functions_func_s.html
new file mode 100644
index 0000000000000000000000000000000000000000..6199db7f5cbd43157fee7bb11b9f6fdf02e5fd99
--- /dev/null
+++ b/doxy/html/functions_func_s.html
@@ -0,0 +1,199 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: Class Members - Functions</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+&#160;
+
+<h3><a id="index_s"></a>- s -</h3><ul>
+<li>Sample()
+: <a class="el" href="classolc_1_1_sprite.html#a902192f81ab42420921992a7288aab48">olc::Sprite</a>
+</li>
+<li>SampleBL()
+: <a class="el" href="classolc_1_1_sprite.html#a5e28024237453fb56c32f37d6996443d">olc::Sprite</a>
+</li>
+<li>SaveImageResource()
+: <a class="el" href="classolc_1_1_image_loader.html#addedde73c3a76c668a2954db36695f08">olc::ImageLoader</a>
+</li>
+<li>SavePack()
+: <a class="el" href="classolc_1_1_resource_pack.html#af6b1fec791c3c85b51b565db63a1aa9a">olc::ResourcePack</a>
+</li>
+<li>SaveToPGESprFile()
+: <a class="el" href="classolc_1_1_sprite.html#a1f1b2a3f1fd932a6a14faa622a2918bf">olc::Sprite</a>
+</li>
+<li>ScaleToScreen()
+: <a class="el" href="classolc_1_1_transformed_view.html#a8be86d8036bf635287debfcf2509e4c5">olc::TransformedView</a>
+</li>
+<li>ScaleToWorld()
+: <a class="el" href="classolc_1_1_transformed_view.html#a09492f689459319994da4c9d0e0c2dc4">olc::TransformedView</a>
+</li>
+<li>ScreenHeight()
+: <a class="el" href="classolc_1_1_pixel_game_engine.html#abbbee4578ffa6b844c04c1af363052af">olc::PixelGameEngine</a>
+</li>
+<li>ScreenToWorld()
+: <a class="el" href="classolc_1_1_transformed_view.html#a0f18594e00e7865fe4376761f9e20812">olc::TransformedView</a>
+</li>
+<li>ScreenWidth()
+: <a class="el" href="classolc_1_1_pixel_game_engine.html#aa3b458d05eab503d9918cfd2d383a45c">olc::PixelGameEngine</a>
+</li>
+<li>setDebugMode()
+: <a class="el" href="class_game_client.html#a9af9a685c31d428921b0cf5976a63c14">GameClient</a>
+</li>
+<li>SetDecalMode()
+: <a class="el" href="classolc_1_1_pixel_game_engine.html#a27ee96acff2c74d47f0cb78493aac756">olc::PixelGameEngine</a>
+, <a class="el" href="classolc_1_1_renderer.html#aebfc5a561c54b88f16a0b3d855eedaa1">olc::Renderer</a>
+</li>
+<li>SetDrawTarget()
+: <a class="el" href="classolc_1_1_pixel_game_engine.html#a70b6a145d7ab0c8857000a72ce4d4a70">olc::PixelGameEngine</a>
+</li>
+<li>SetLayerCustomRenderFunction()
+: <a class="el" href="classolc_1_1_pixel_game_engine.html#a40a88ddb3800e59121f05b06fd64dbfd">olc::PixelGameEngine</a>
+</li>
+<li>SetLayerOffset()
+: <a class="el" href="classolc_1_1_pixel_game_engine.html#a0e1ddc993ef65dfe00f2bbcf59e535ad">olc::PixelGameEngine</a>
+</li>
+<li>SetLayerScale()
+: <a class="el" href="classolc_1_1_pixel_game_engine.html#af8fbe005b4069ed1de8e0347b72ebc30">olc::PixelGameEngine</a>
+</li>
+<li>SetLayerTint()
+: <a class="el" href="classolc_1_1_pixel_game_engine.html#a7d7c04245161782d5f5c48d3d62ff7a7">olc::PixelGameEngine</a>
+</li>
+<li>setPickUp()
+: <a class="el" href="classweapons_1_1_weapon.html#ace9c44751879af7382585c3338d4bc47">weapons::Weapon</a>
+</li>
+<li>SetPixel()
+: <a class="el" href="classolc_1_1_sprite.html#a294389e93a95c8307f1260d7cacaf9ba">olc::Sprite</a>
+</li>
+<li>SetPixelBlend()
+: <a class="el" href="classolc_1_1_pixel_game_engine.html#ab0726b7758bc1bf7f7de30369076b8e7">olc::PixelGameEngine</a>
+</li>
+<li>SetPixelMode()
+: <a class="el" href="classolc_1_1_pixel_game_engine.html#ae4a3d1aaa40761986389966ab927ef32">olc::PixelGameEngine</a>
+</li>
+<li>setPos()
+: <a class="el" href="classweapons_1_1_weapon.html#a34c39bfa9cdb2d7483bc340300e8a2d9">weapons::Weapon</a>
+</li>
+<li>SetRangeX()
+: <a class="el" href="classolc_1_1_tile_transformed_view.html#ace1a6e5c3df96cd43582e02ca4b94dac">olc::TileTransformedView</a>
+</li>
+<li>SetRangeY()
+: <a class="el" href="classolc_1_1_tile_transformed_view.html#a660fcd24db414be714ae53ba131296a7">olc::TileTransformedView</a>
+</li>
+<li>SetSampleMode()
+: <a class="el" href="classolc_1_1_sprite.html#a78f4fcf41780cfc547f21e5a0dea03a2">olc::Sprite</a>
+</li>
+<li>SetScreenSize()
+: <a class="el" href="classolc_1_1_pixel_game_engine.html#abd403468f57f7665d56e202da8de8e76">olc::PixelGameEngine</a>
+</li>
+<li>setVelocity()
+: <a class="el" href="classentities_1_1_projectile_entity.html#ad88aa7e53b9a6671dab6132a8d58dbb5">entities::ProjectileEntity</a>
+</li>
+<li>SetViewArea()
+: <a class="el" href="classolc_1_1_transformed_view.html#ac7295e90921832fef16779172cc9e4ff">olc::TransformedView</a>
+</li>
+<li>SetWindowTitle()
+: <a class="el" href="classolc_1_1_platform.html#ab9ea28ecd660730810463dd6c68b73fd">olc::Platform</a>
+</li>
+<li>SetWorldOffset()
+: <a class="el" href="classolc_1_1_transformed_view.html#aee86c84a719f8b5c3143e2a0b89e8024">olc::TransformedView</a>
+</li>
+<li>SetWorldScale()
+: <a class="el" href="classolc_1_1_transformed_view.html#a971e25ee6978c271127f766aba69b285">olc::TransformedView</a>
+</li>
+<li>SetZoom()
+: <a class="el" href="classolc_1_1_transformed_view.html#a89fd4d642cf37d1e6f1674b870b142d8">olc::TransformedView</a>
+</li>
+<li>SimpleSprite()
+: <a class="el" href="classrender_1_1_simple_sprite.html#af16d9ee29214a89a6ebe404a73ea5cad">render::SimpleSprite</a>
+</li>
+<li>spawnProjectile()
+: <a class="el" href="classweapons_1_1_glitch_gun.html#a9268757aeb63315254d6a13df8ed0ba4">weapons::GlitchGun</a>
+, <a class="el" href="classweapons_1_1_pistol.html#a37f81949e55c373d7cf1f35cb59c1c25">weapons::Pistol</a>
+, <a class="el" href="classweapons_1_1_ranged_weapon.html#a6b6b8265efc6ecf60e36ab261fe6f360">weapons::RangedWeapon</a>
+</li>
+<li>Sprite()
+: <a class="el" href="classolc_1_1_renderable.html#a8128a49bae0a3b40a5681d92cc01f52a">olc::Renderable</a>
+, <a class="el" href="classolc_1_1_sprite.html#aaf231565550d294ef20bf31364562ec3">olc::Sprite</a>
+</li>
+<li>SpriteManager()
+: <a class="el" href="classrender_1_1_sprite_manager.html#ad65313b397c85d87f307fbb931907afb">render::SpriteManager</a>
+</li>
+<li>Start()
+: <a class="el" href="classolc_1_1_pixel_game_engine.html#a8e8848aa1c743a1ec2cdaa14c87e5cde">olc::PixelGameEngine</a>
+</li>
+<li>StartPan()
+: <a class="el" href="classolc_1_1_transformed_view.html#a4dc2bd0de3686978fdf8630d23a727c3">olc::TransformedView</a>
+</li>
+<li>StartSystemEventLoop()
+: <a class="el" href="classolc_1_1_platform.html#af58e24a992339020fa1ebf58a224b209">olc::Platform</a>
+</li>
+<li>str()
+: <a class="el" href="structolc_1_1v2d__generic.html#a88a794a4e9ec632f215afbeb04b354c8">olc::v2d_generic&lt; T &gt;</a>
+</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/functions_func_t.html b/doxy/html/functions_func_t.html
new file mode 100644
index 0000000000000000000000000000000000000000..ecc5e138fdbd0dd2a7dac2791d74ff95540fb283
--- /dev/null
+++ b/doxy/html/functions_func_t.html
@@ -0,0 +1,100 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: Class Members - Functions</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+&#160;
+
+<h3><a id="index_t"></a>- t -</h3><ul>
+<li>ThreadCleanUp()
+: <a class="el" href="classolc_1_1_platform.html#a0e4e37ccc06ae7f3251b7a53ce839c13">olc::Platform</a>
+</li>
+<li>ThreadStartUp()
+: <a class="el" href="classolc_1_1_platform.html#ace0ea54aaa50143628b5fd41851b578f">olc::Platform</a>
+</li>
+<li>tick()
+: <a class="el" href="classentities_1_1_character_entity.html#ae7cdddc6dca655e7bf8c2f48424c5208">entities::CharacterEntity</a>
+, <a class="el" href="classentities_1_1_entity.html#a0440674bf90ae83d9a26aa4b0ac8309e">entities::Entity</a>
+, <a class="el" href="classentities_1_1_entity_with_a_i.html#a92708b14b042c03fa9a8673192867e72">entities::EntityWithAI</a>
+, <a class="el" href="classentities_1_1_explosive_projectile.html#a3aa22ab3467caa20a8c7b3cc818b157d">entities::ExplosiveProjectile</a>
+, <a class="el" href="classentities_1_1_living_entity.html#af13cb8c3fabd2960746e21cd7dabe4d6">entities::LivingEntity</a>
+, <a class="el" href="classentities_1_1_player_entity.html#a9f5c7033ca46daf217c73cb5edbb0d68">entities::PlayerEntity</a>
+, <a class="el" href="classentities_1_1_projectile_entity.html#a761f27885de02515edaf252e8a4162b5">entities::ProjectileEntity</a>
+, <a class="el" href="classweapons_1_1_weapon.html#a92ae1db47ca866d828f8b09c6de5a3f6">weapons::Weapon</a>
+</li>
+<li>TileTransformedView()
+: <a class="el" href="classolc_1_1_tile_transformed_view.html#ac38d47324d7370b5259894d814b879f8">olc::TileTransformedView</a>
+</li>
+<li>TransformedView()
+: <a class="el" href="classolc_1_1_transformed_view.html#a1f4ed7eb880b0f0edc0b86be4b33b04e">olc::TransformedView</a>
+</li>
+<li>TypicalMeleeWeapon()
+: <a class="el" href="classweapons_1_1_typical_melee_weapon.html#a939cbdc05adab9adf58301cce00e3f8b">weapons::TypicalMeleeWeapon</a>
+</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/functions_func_u.html b/doxy/html/functions_func_u.html
new file mode 100644
index 0000000000000000000000000000000000000000..3857106dafafaf862130b7e21e347edcc323df82
--- /dev/null
+++ b/doxy/html/functions_func_u.html
@@ -0,0 +1,104 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: Class Members - Functions</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+&#160;
+
+<h3><a id="index_u"></a>- u -</h3><ul>
+<li>Update()
+: <a class="el" href="classolc_1_1_decal.html#aac5ad6844f98fb3a8bce2f36adf02429">olc::Decal</a>
+</li>
+<li>update()
+: <a class="el" href="classweapons_1_1_e_m_gun.html#a0bb30401aa36e2205c011ea0fcf40303">weapons::EMGun</a>
+, <a class="el" href="classweapons_1_1_glitch_gun.html#a6687147e8005e96f12806862f73a6cd8">weapons::GlitchGun</a>
+, <a class="el" href="classweapons_1_1_weapon.html#a1cbf391f196bd151f3e3f1ae1e316088">weapons::Weapon</a>
+</li>
+<li>updateNeighbours()
+: <a class="el" href="classentities_1_1_wall_entity.html#a8d65d65453803e731cd9aa112d1f0447">entities::WallEntity</a>
+</li>
+<li>UpdatePan()
+: <a class="el" href="classolc_1_1_transformed_view.html#a4baf2b53892749ff380833991161b9c4">olc::TransformedView</a>
+</li>
+<li>UpdateSprite()
+: <a class="el" href="classolc_1_1_decal.html#a4a3b893edbce4d416453f57c11754092">olc::Decal</a>
+</li>
+<li>UpdateTexture()
+: <a class="el" href="classolc_1_1_renderer.html#a1512e2939b94f6fdb58bbf152ac0e4e5">olc::Renderer</a>
+</li>
+<li>UpdateViewport()
+: <a class="el" href="classolc_1_1_renderer.html#abc873336dd8f9079dc26f92ce0f95748">olc::Renderer</a>
+</li>
+<li>use()
+: <a class="el" href="classweapons_1_1_e_m_gun.html#a8034852a4a5957c3d3bc00ca5f7df6e4">weapons::EMGun</a>
+, <a class="el" href="classweapons_1_1_melee_weapon.html#ac1b9a6718cbf78cea0b9e5e0b8dcc64e">weapons::MeleeWeapon</a>
+, <a class="el" href="classweapons_1_1_ranged_weapon.html#a0e8915ad79021eb8fd79a1a3d7b1c92c">weapons::RangedWeapon</a>
+, <a class="el" href="classweapons_1_1_weapon.html#a8c6f12ac9ed871ebd0394f6b5c447868">weapons::Weapon</a>
+</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/functions_func_v.html b/doxy/html/functions_func_v.html
new file mode 100644
index 0000000000000000000000000000000000000000..75daeddc72ff59801e599d55ba5ecec4bcd28cdf
--- /dev/null
+++ b/doxy/html/functions_func_v.html
@@ -0,0 +1,78 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: Class Members - Functions</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+&#160;
+
+<h3><a id="index_v"></a>- v -</h3><ul>
+<li>v2d_generic()
+: <a class="el" href="structolc_1_1v2d__generic.html#aba35d326b62454a5fbdeea4220438784">olc::v2d_generic&lt; T &gt;</a>
+</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/functions_func_w.html b/doxy/html/functions_func_w.html
new file mode 100644
index 0000000000000000000000000000000000000000..82acef51db32fee3c978c410dc90d1176d53c547
--- /dev/null
+++ b/doxy/html/functions_func_w.html
@@ -0,0 +1,87 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: Class Members - Functions</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+&#160;
+
+<h3><a id="index_w"></a>- w -</h3><ul>
+<li>WallEntity()
+: <a class="el" href="classentities_1_1_wall_entity.html#a109600cce4cd0514d320c14b4f8f4813">entities::WallEntity</a>
+</li>
+<li>WallTexture()
+: <a class="el" href="classrender_1_1_wall_texture.html#af0420c11949bbc21421cc21765bd8920">render::WallTexture</a>
+</li>
+<li>Weapon()
+: <a class="el" href="classweapons_1_1_weapon.html#a28f7b716212ae6b4606cff82501e00a2">weapons::Weapon</a>
+</li>
+<li>WorldToScreen()
+: <a class="el" href="classolc_1_1_transformed_view.html#a18b18c9718c642ca912d44a133ffde1d">olc::TransformedView</a>
+</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/functions_func_z.html b/doxy/html/functions_func_z.html
new file mode 100644
index 0000000000000000000000000000000000000000..bea28a951d8d18e3345c35031806543c08d9f166
--- /dev/null
+++ b/doxy/html/functions_func_z.html
@@ -0,0 +1,78 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: Class Members - Functions</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+&#160;
+
+<h3><a id="index_z"></a>- z -</h3><ul>
+<li>ZoomAtScreenPos()
+: <a class="el" href="classolc_1_1_transformed_view.html#a84a8b9030ac97afa9b6099dea5865b9c">olc::TransformedView</a>
+</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/functions_func_~.html b/doxy/html/functions_func_~.html
new file mode 100644
index 0000000000000000000000000000000000000000..9cfb7759ca74014d1ae7ec5eb0ae33e84534090f
--- /dev/null
+++ b/doxy/html/functions_func_~.html
@@ -0,0 +1,105 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: Class Members - Functions</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+&#160;
+
+<h3><a id="index__7E"></a>- ~ -</h3><ul>
+<li>~Decal()
+: <a class="el" href="classolc_1_1_decal.html#a5c993dab5be43270dce30b44f1d3e50b">olc::Decal</a>
+</li>
+<li>~Entity()
+: <a class="el" href="classentities_1_1_entity.html#a64d968c160dee2fdfca68aff2e49946b">entities::Entity</a>
+</li>
+<li>~ImageLoader()
+: <a class="el" href="classolc_1_1_image_loader.html#a680c0395200ceab209fb96c21cd8b883">olc::ImageLoader</a>
+</li>
+<li>~ITexture()
+: <a class="el" href="classrender_1_1_i_texture.html#a2dcbcad96404d6a0ff64e8053ccde162">render::ITexture</a>
+</li>
+<li>~PixelGameEngine()
+: <a class="el" href="classolc_1_1_pixel_game_engine.html#a423d90134c297f7b9f1834a136071b19">olc::PixelGameEngine</a>
+</li>
+<li>~Platform()
+: <a class="el" href="classolc_1_1_platform.html#a352f636fdc2e30bddac2db85238b166b">olc::Platform</a>
+</li>
+<li>~Renderer()
+: <a class="el" href="classolc_1_1_renderer.html#a877048a1bcf3decfe544804f0e4e1ad9">olc::Renderer</a>
+</li>
+<li>~ResourceManager()
+: <a class="el" href="classrender_1_1_resource_manager.html#a718ece71d629e1fd5b4b3afc967d4381">render::ResourceManager</a>
+</li>
+<li>~ResourcePack()
+: <a class="el" href="classolc_1_1_resource_pack.html#a7e48d44ecdac3d4a2eec7bb5a5eb1ec5">olc::ResourcePack</a>
+</li>
+<li>~Sprite()
+: <a class="el" href="classolc_1_1_sprite.html#a594abc52842c29e4a5417adf57fb877e">olc::Sprite</a>
+</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/functions_g.html b/doxy/html/functions_g.html
new file mode 100644
index 0000000000000000000000000000000000000000..8984461382cf30cab218c28da9b429caf02ac2a5
--- /dev/null
+++ b/doxy/html/functions_g.html
@@ -0,0 +1,281 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: Class Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<div class="textblock">Here is a list of all class members with links to the classes they belong to:</div>
+
+<h3><a id="index_g"></a>- g -</h3><ul>
+<li>g
+: <a class="el" href="structolc_1_1_pixel.html#a14cf5612284974c409f078944fe5f6ee">olc::Pixel</a>
+</li>
+<li>GameClient()
+: <a class="el" href="class_game_client.html#a1324a20c121e201e69391dfe7a08e546">GameClient</a>
+</li>
+<li>GameException()
+: <a class="el" href="class_game_exception.html#a076a7dd5228356c8d54dd0922d1c3048">GameException</a>
+</li>
+<li>generate()
+: <a class="el" href="class_dungeon_generator.html#add8fcec4f013307d734616106110a1ea">DungeonGenerator</a>
+, <a class="el" href="class_square_room_generator.html#a5b9952abf9af7a8fc4241f3f9e93a616">SquareRoomGenerator</a>
+, <a class="el" href="class_test_generator.html#aaacdd82f39d99e1dcbc847b674f245e1">TestGenerator</a>
+</li>
+<li>getAnimPhase()
+: <a class="el" href="classentities_1_1_living_entity.html#a657626746aaed854f45ac3bb6d6c2a2f">entities::LivingEntity</a>
+</li>
+<li>GetBottomRightTile()
+: <a class="el" href="classolc_1_1_tile_transformed_view.html#af681fe11952b2a791a388c79054adc1f">olc::TileTransformedView</a>
+</li>
+<li>getCollision()
+: <a class="el" href="classentities_1_1_entity.html#a94d18db8d502d677b6f4215dc1e1d820">entities::Entity</a>
+</li>
+<li>getCooldownBar()
+: <a class="el" href="classweapons_1_1_weapon.html#a9626ba57d509b1ee0fbe7f900d5181c6">weapons::Weapon</a>
+</li>
+<li>getDamage()
+: <a class="el" href="classentities_1_1_projectile_entity.html#a463a54543d8412feddf3be0aa7ab532a">entities::ProjectileEntity</a>
+, <a class="el" href="classweapons_1_1_melee_weapon.html#a2636c0b628f8fa52d269bb2dab0b21bd">weapons::MeleeWeapon</a>
+</li>
+<li>GetData()
+: <a class="el" href="classolc_1_1_sprite.html#ad8fcc6bbf8a785aa0bb9d00bf3cfdff2">olc::Sprite</a>
+</li>
+<li>getDecal()
+: <a class="el" href="classrender_1_1_lazy_sprite.html#aea6cdfcf5295c8a2c4b3f4a51ee0bc28">render::LazySprite</a>
+, <a class="el" href="classrender_1_1_resource_manager.html#a58cd141c758a19c7a04b33742de422f8">render::ResourceManager</a>
+, <a class="el" href="classrender_1_1_sprite_manager.html#ad40363b5fa66e08aec13f332c5964d6b">render::SpriteManager</a>
+</li>
+<li>getDirection()
+: <a class="el" href="classentities_1_1_living_entity.html#a27f39311f1139c96967b28cbaf752bd2">entities::LivingEntity</a>
+</li>
+<li>GetDrawTarget()
+: <a class="el" href="classolc_1_1_pixel_game_engine.html#a5fd95bd9571bc3ed3fd5d7d110e48cff">olc::PixelGameEngine</a>
+</li>
+<li>GetDrawTargetHeight()
+: <a class="el" href="classolc_1_1_pixel_game_engine.html#a4ee3dbff01900d71e62bfe499b1c83c3">olc::PixelGameEngine</a>
+</li>
+<li>GetDrawTargetWidth()
+: <a class="el" href="classolc_1_1_pixel_game_engine.html#a45d918f65f5fee13e654878d8271326b">olc::PixelGameEngine</a>
+</li>
+<li>GetElapsedTime()
+: <a class="el" href="classolc_1_1_pixel_game_engine.html#af881473291c52d849dbef155e359b27c">olc::PixelGameEngine</a>
+</li>
+<li>getEntities()
+: <a class="el" href="class_game_client.html#a6984da0365fd19c81dbc8907b598bf49">GameClient</a>
+</li>
+<li>GetFileBuffer()
+: <a class="el" href="classolc_1_1_resource_pack.html#accb89668e145dc59e0740925b1b91987">olc::ResourcePack</a>
+</li>
+<li>GetFontSprite()
+: <a class="el" href="classolc_1_1_pixel_game_engine.html#abab955edc6d1ec6023a7806509582f52">olc::PixelGameEngine</a>
+</li>
+<li>GetFPS()
+: <a class="el" href="classolc_1_1_pixel_game_engine.html#a89d27938d71d49b42a20307444147697">olc::PixelGameEngine</a>
+</li>
+<li>getHealthStatus()
+: <a class="el" href="classentities_1_1_player_entity.html#ab4a5cd2af67538f73832668a2cd32c9f">entities::PlayerEntity</a>
+</li>
+<li>getHitBoxSize()
+: <a class="el" href="classentities_1_1_entity.html#a9cd7ba81ddbd978b8f43e9f10e97492f">entities::Entity</a>
+, <a class="el" href="classentities_1_1_living_entity.html#aa965d3922663b974dd14cc5f8004ed65">entities::LivingEntity</a>
+, <a class="el" href="classentities_1_1_projectile_entity.html#ae38525094695db8ab564c5ae27711bb4">entities::ProjectileEntity</a>
+, <a class="el" href="classentities_1_1_wall_entity.html#afd4863a311190a59cdf7574798ac3f2d">entities::WallEntity</a>
+, <a class="el" href="classweapons_1_1_typical_melee_weapon.html#ab60f5d99ae206d9064381b0c70b9a7a2">weapons::TypicalMeleeWeapon</a>
+, <a class="el" href="classweapons_1_1_weapon.html#a862bd61cf947a91809b423304885cf66">weapons::Weapon</a>
+</li>
+<li>getHitOffset()
+: <a class="el" href="classweapons_1_1_melee_weapon.html#ac6a6b662df60c1927531fddf9a93ebaa">weapons::MeleeWeapon</a>
+, <a class="el" href="classweapons_1_1_typical_melee_weapon.html#a74cb37d45c599296e443858b73cd1d97">weapons::TypicalMeleeWeapon</a>
+</li>
+<li>getInstance()
+: <a class="el" href="class_game_client.html#adfcb979db6333b335dee4e6d785aabcf">GameClient</a>
+</li>
+<li>GetKey()
+: <a class="el" href="classolc_1_1_pixel_game_engine.html#a27cb4cb68d5e1ca7df8014d66221269e">olc::PixelGameEngine</a>
+</li>
+<li>GetLayers()
+: <a class="el" href="classolc_1_1_pixel_game_engine.html#aac31baad6daf55b926f6add9c44a5591">olc::PixelGameEngine</a>
+</li>
+<li>GetMouse()
+: <a class="el" href="classolc_1_1_pixel_game_engine.html#abdf9f5d70c9e24ab9358a8dd07474105">olc::PixelGameEngine</a>
+</li>
+<li>GetMousePos()
+: <a class="el" href="classolc_1_1_pixel_game_engine.html#af11fb390dbc5a3168c26fe911690dcbe">olc::PixelGameEngine</a>
+</li>
+<li>GetMouseWheel()
+: <a class="el" href="classolc_1_1_pixel_game_engine.html#a9640286e4a7cd03c6f545b1df7373269">olc::PixelGameEngine</a>
+</li>
+<li>GetMouseX()
+: <a class="el" href="classolc_1_1_pixel_game_engine.html#a2ec1d2a1f3777338fb4388c620344a34">olc::PixelGameEngine</a>
+</li>
+<li>GetMouseY()
+: <a class="el" href="classolc_1_1_pixel_game_engine.html#a8dde80c07547240f5e72b4f2fcd89668">olc::PixelGameEngine</a>
+</li>
+<li>getName()
+: <a class="el" href="classentities_1_1_entity.html#a8c4b0c1eb69a673619e4c8943ef34f86">entities::Entity</a>
+</li>
+<li>getNeighbourID()
+: <a class="el" href="classentities_1_1_wall_entity.html#af799f9675cdf4acadfcf9d9616d36e1b">entities::WallEntity</a>
+</li>
+<li>GetPixel()
+: <a class="el" href="classolc_1_1_sprite.html#a7e1f8169c9822f1ed94f0212d3f8d6f6">olc::Sprite</a>
+</li>
+<li>GetPixelMode()
+: <a class="el" href="classolc_1_1_pixel_game_engine.html#ad4f95a449dc09a2650ec771e6fa83049">olc::PixelGameEngine</a>
+</li>
+<li>GetPixelSize()
+: <a class="el" href="classolc_1_1_pixel_game_engine.html#a721fb4cfac75f76c6d5832415fccbe61">olc::PixelGameEngine</a>
+</li>
+<li>getPlayerEntity()
+: <a class="el" href="class_game_client.html#acc1e0f1d4836be4a8556289cfdfd4049">GameClient</a>
+</li>
+<li>getPos()
+: <a class="el" href="classentities_1_1_entity.html#a799a692b988248dd23d207b95e7fe2b7">entities::Entity</a>
+</li>
+<li>getPredicator()
+: <a class="el" href="classweapons_1_1_melee_weapon.html#af14b624f27592421fc117c4fa81aba1b">weapons::MeleeWeapon</a>
+, <a class="el" href="classweapons_1_1_typical_melee_weapon.html#ad367f50efc891a92b0f22f2404f39c5e">weapons::TypicalMeleeWeapon</a>
+</li>
+<li>getScene()
+: <a class="el" href="class_game_client.html#a01a0c559c6cfe63557fa4b5d7aa9e72c">GameClient</a>
+</li>
+<li>GetScreenPixelSize()
+: <a class="el" href="classolc_1_1_pixel_game_engine.html#a5602d50220bd7edbd77fc67eaa981ce5">olc::PixelGameEngine</a>
+</li>
+<li>getSecondaryBar()
+: <a class="el" href="classweapons_1_1_e_m_gun.html#a1d2c920f4fddd40d39dba5d4dddf496f">weapons::EMGun</a>
+, <a class="el" href="classweapons_1_1_weapon.html#a3f84544c15d6220252c6175fdfe5c61d">weapons::Weapon</a>
+</li>
+<li>getSize()
+: <a class="el" href="class_dynamic_array.html#acbec0bb643ebec934cf5e9dfc1ecf01e">DynamicArray&lt; T &gt;</a>
+, <a class="el" href="classentities_1_1_entity.html#ac60e9beb5a45fc65120e9779e680c04b">entities::Entity</a>
+</li>
+<li>getSprite()
+: <a class="el" href="classrender_1_1_resource_manager.html#a4ac8358921fdda1f37bf4564855f6fce">render::ResourceManager</a>
+</li>
+<li>GetTextSize()
+: <a class="el" href="classolc_1_1_pixel_game_engine.html#aa70121ffb85733f8ea2e7e5d0b4b311b">olc::PixelGameEngine</a>
+</li>
+<li>GetTextSizeProp()
+: <a class="el" href="classolc_1_1_pixel_game_engine.html#ab282eddb9b8fe14d01311c8613f79e84">olc::PixelGameEngine</a>
+</li>
+<li>getTexture()
+: <a class="el" href="classentities_1_1_character_entity.html#afdae03f49fd5d47d0837ed660e37038f">entities::CharacterEntity</a>
+, <a class="el" href="classentities_1_1_entity.html#af01b796fb472ef3139aea41aeed36c76">entities::Entity</a>
+, <a class="el" href="classentities_1_1_projectile_entity.html#a7e67fe629e1ef7115fd2a0cae8b1efc0">entities::ProjectileEntity</a>
+, <a class="el" href="classentities_1_1_wall_entity.html#a4b6c55275f06a30dac07c2dc5452e602">entities::WallEntity</a>
+</li>
+<li>GetTileOffset()
+: <a class="el" href="classolc_1_1_tile_transformed_view.html#afd338a68b965309beeefa3f239a0680b">olc::TileTransformedView</a>
+</li>
+<li>GetTileUnderScreenPos()
+: <a class="el" href="classolc_1_1_tile_transformed_view.html#a1a963a55248ff021b76ecc8e92a555e6">olc::TileTransformedView</a>
+</li>
+<li>GetTopLeftTile()
+: <a class="el" href="classolc_1_1_tile_transformed_view.html#a9230a04b74c812551768b324a07bf2a3">olc::TileTransformedView</a>
+</li>
+<li>GetVisibleTiles()
+: <a class="el" href="classolc_1_1_tile_transformed_view.html#abc2e3898f7bb8209d84095cc5c16843b">olc::TileTransformedView</a>
+</li>
+<li>getWeapon()
+: <a class="el" href="classentities_1_1_character_entity.html#a7926bfbac4481203c1bd8920fcb2c432">entities::CharacterEntity</a>
+, <a class="el" href="classentities_1_1_entity_with_a_i.html#a66937315f0a16d70c29359e89415d222">entities::EntityWithAI</a>
+, <a class="el" href="classentities_1_1_player_entity.html#a6b0fdc757c8e1d95012a31dab836f20a">entities::PlayerEntity</a>
+</li>
+<li>GetWindowMouse()
+: <a class="el" href="classolc_1_1_pixel_game_engine.html#a54b5141da371af51541874dd68e4e6a2">olc::PixelGameEngine</a>
+</li>
+<li>GetWindowSize()
+: <a class="el" href="classolc_1_1_pixel_game_engine.html#aee10e917aeb1ce4625561d71126e0a7d">olc::PixelGameEngine</a>
+</li>
+<li>GetWorldBR()
+: <a class="el" href="classolc_1_1_transformed_view.html#a5240bf2a7285559be13c80f3ce2a97a3">olc::TransformedView</a>
+</li>
+<li>GetWorldOffset()
+: <a class="el" href="classolc_1_1_transformed_view.html#a88152a5f5b9fbb3df0f6d965ef4c4fe4">olc::TransformedView</a>
+</li>
+<li>GetWorldScale()
+: <a class="el" href="classolc_1_1_transformed_view.html#a4f6ba5d2c58b720677f4287743713f65">olc::TransformedView</a>
+</li>
+<li>GetWorldTL()
+: <a class="el" href="classolc_1_1_transformed_view.html#ac75bd045f9fbc5d8cd901ecdd216fcb5">olc::TransformedView</a>
+</li>
+<li>GetWorldVisibleArea()
+: <a class="el" href="classolc_1_1_transformed_view.html#a7f7815582a087a163199bb29f1c4c0ae">olc::TransformedView</a>
+</li>
+<li>GlitchGun()
+: <a class="el" href="classweapons_1_1_glitch_gun.html#ac8935765613bfe258bc6985441159702">weapons::GlitchGun</a>
+</li>
+<li>GlitchTexture()
+: <a class="el" href="classweapons_1_1_glitch_texture.html#a613747d0865e988631cb0f0213c54640">weapons::GlitchTexture</a>
+</li>
+<li>GradientFillRectDecal()
+: <a class="el" href="classolc_1_1_pixel_game_engine.html#a11d9ed8762b81e0bd6bbe4349255b1e8">olc::PixelGameEngine</a>
+, <a class="el" href="classolc_1_1_transformed_view.html#a220b8b9184eb25a6bb2c3271d5417025">olc::TransformedView</a>
+</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/functions_h.html b/doxy/html/functions_h.html
new file mode 100644
index 0000000000000000000000000000000000000000..b320a2de857e71af8cb5efabd228721a22d42d98
--- /dev/null
+++ b/doxy/html/functions_h.html
@@ -0,0 +1,87 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: Class Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<div class="textblock">Here is a list of all class members with links to the classes they belong to:</div>
+
+<h3><a id="index_h"></a>- h -</h3><ul>
+<li>HandleSystemEvent()
+: <a class="el" href="classolc_1_1_platform.html#abbc05f4b3aea3513919b05fdb15bfbbc">olc::Platform</a>
+</li>
+<li>health
+: <a class="el" href="classentities_1_1_living_entity.html#a78282129a711906b7973c4ecb37b8434">entities::LivingEntity</a>
+</li>
+<li>height
+: <a class="el" href="classolc_1_1_sprite.html#ab05010cb1a5ff6c36267d0050d568d96">olc::Sprite</a>
+</li>
+<li>HORIZ
+: <a class="el" href="classolc_1_1_sprite.html#ad0d1976d2060997f5cd99eb284a5dc24a2ff5b18e468156f629a10c5b515d78cd">olc::Sprite</a>
+</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/functions_i.html b/doxy/html/functions_i.html
new file mode 100644
index 0000000000000000000000000000000000000000..0f1237c35948383a295ece78ae3a1165aae6a0ba
--- /dev/null
+++ b/doxy/html/functions_i.html
@@ -0,0 +1,115 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: Class Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<div class="textblock">Here is a list of all class members with links to the classes they belong to:</div>
+
+<h3><a id="index_i"></a>- i -</h3><ul>
+<li>id
+: <a class="el" href="classolc_1_1_decal.html#a7cc798e0327ea4118c648b10e2d57986">olc::Decal</a>
+</li>
+<li>ImageLoader()
+: <a class="el" href="classolc_1_1_image_loader.html#a7aa358a572ec995b530ca5b54829f044">olc::ImageLoader</a>
+</li>
+<li>init()
+: <a class="el" href="classentities_1_1_entity.html#afd80ddceccb36b87d0d80dcc7f88fc3b">entities::Entity</a>
+, <a class="el" href="classentities_1_1_wall_entity.html#ad66ed8002d8082035bd3b7df07ff45b5">entities::WallEntity</a>
+</li>
+<li>Initialise()
+: <a class="el" href="classolc_1_1_transformed_view.html#a799473b80691228b87a818f80847ca76">olc::TransformedView</a>
+</li>
+<li>inv()
+: <a class="el" href="structolc_1_1_pixel.html#a8a1daba449fb823a4535a6089fe880ab">olc::Pixel</a>
+</li>
+<li>is_alive
+: <a class="el" href="classentities_1_1_entity.html#aedac7bb35b729e4a02c582b9f4369ab8">entities::Entity</a>
+</li>
+<li>is_initialized
+: <a class="el" href="classentities_1_1_entity.html#a1453bca3376a185aa54135dd4958b244">entities::Entity</a>
+</li>
+<li>isAlive()
+: <a class="el" href="classentities_1_1_entity.html#ab0ee90a84f2163b600e603f24cff046f">entities::Entity</a>
+</li>
+<li>IsFocused()
+: <a class="el" href="classolc_1_1_pixel_game_engine.html#a92192402b5d499ab8b230dfb9393f3b7">olc::PixelGameEngine</a>
+</li>
+<li>isInitialized()
+: <a class="el" href="classentities_1_1_entity.html#ab010066d52a02c63908f70ff6ef7d873">entities::Entity</a>
+</li>
+<li>isPickedUp
+: <a class="el" href="classweapons_1_1_weapon.html#aba025076ad5e6fae2f9b9d40f4ef815d">weapons::Weapon</a>
+</li>
+<li>IsPointVisible()
+: <a class="el" href="classolc_1_1_transformed_view.html#a664ea0cbd54bbff17ea419ebfac1e359">olc::TransformedView</a>
+</li>
+<li>IsRectVisible()
+: <a class="el" href="classolc_1_1_transformed_view.html#aecadbbdf84343ec0a2f0e2e8c9017f0e">olc::TransformedView</a>
+</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/functions_l.html b/doxy/html/functions_l.html
new file mode 100644
index 0000000000000000000000000000000000000000..2b614ef59a5a5f13aa3f66ee4e6efb80e3027378
--- /dev/null
+++ b/doxy/html/functions_l.html
@@ -0,0 +1,105 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: Class Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<div class="textblock">Here is a list of all class members with links to the classes they belong to:</div>
+
+<h3><a id="index_l"></a>- l -</h3><ul>
+<li>LazySprite()
+: <a class="el" href="classrender_1_1_lazy_sprite.html#a28a8d429dc27035aa9a09151aa150b0a">render::LazySprite</a>
+</li>
+<li>LivingEntity()
+: <a class="el" href="classentities_1_1_living_entity.html#a08837d43e7338c4ceff9acfbbbffd94b">entities::LivingEntity</a>
+</li>
+<li>Load()
+: <a class="el" href="classolc_1_1_renderable.html#ace5d212d903d86bc9789f1af0f92096c">olc::Renderable</a>
+</li>
+<li>Loaded()
+: <a class="el" href="classolc_1_1_resource_pack.html#a4421c33c022ad042d29ef81f29f5b355">olc::ResourcePack</a>
+</li>
+<li>loader
+: <a class="el" href="classolc_1_1_sprite.html#a023da26661031ebf7a276cafd9a43902">olc::Sprite</a>
+</li>
+<li>LoadFromFile()
+: <a class="el" href="classolc_1_1_sprite.html#adc277c0342733a4aa8dcdc9152326fec">olc::Sprite</a>
+</li>
+<li>LoadFromPGESprFile()
+: <a class="el" href="classolc_1_1_sprite.html#a6959a2d94d6c02b7918aec5ce9b1a371">olc::Sprite</a>
+</li>
+<li>LoadImageResource()
+: <a class="el" href="classolc_1_1_image_loader.html#ac08c7387037c748a38598b6442974d81">olc::ImageLoader</a>
+</li>
+<li>LoadPack()
+: <a class="el" href="classolc_1_1_resource_pack.html#a3168eef974448f8119e93af97272df27">olc::ResourcePack</a>
+</li>
+<li>longSword
+: <a class="el" href="classweapons_1_1_typical_melee_weapon.html#ae623cc428bd32ef113d48d6ca15cf4c2">weapons::TypicalMeleeWeapon</a>
+</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/functions_m.html b/doxy/html/functions_m.html
new file mode 100644
index 0000000000000000000000000000000000000000..a63baea317d360bf71379efe2a21465731fdb135
--- /dev/null
+++ b/doxy/html/functions_m.html
@@ -0,0 +1,142 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: Class Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<div class="textblock">Here is a list of all class members with links to the classes they belong to:</div>
+
+<h3><a id="index_m"></a>- m -</h3><ul>
+<li>m_bPanning
+: <a class="el" href="classolc_1_1_transformed_view.html#a2c19ec65e54f43500cce003f878c8ed5">olc::TransformedView</a>
+</li>
+<li>m_vPixelScale
+: <a class="el" href="classolc_1_1_transformed_view.html#a94a7fd3ad136ec70040bbff1c7133418">olc::TransformedView</a>
+</li>
+<li>m_vRecipPixel
+: <a class="el" href="classolc_1_1_transformed_view.html#ae1b7b82332f0979caa99e003827624cb">olc::TransformedView</a>
+</li>
+<li>m_vStartPan
+: <a class="el" href="classolc_1_1_transformed_view.html#a4f7569cc3d27120b485077789b86aa44">olc::TransformedView</a>
+</li>
+<li>m_vViewArea
+: <a class="el" href="classolc_1_1_transformed_view.html#a0a2936aac23f1621ff1d618c7155de1c">olc::TransformedView</a>
+</li>
+<li>m_vWorldOffset
+: <a class="el" href="classolc_1_1_transformed_view.html#a2e77497521f72e59ae7ecb56dc5d3f37">olc::TransformedView</a>
+</li>
+<li>m_vWorldScale
+: <a class="el" href="classolc_1_1_transformed_view.html#a652909b48a4d8960c36d1ce4262cc95a">olc::TransformedView</a>
+</li>
+<li>mag()
+: <a class="el" href="structolc_1_1v2d__generic.html#ab06016810fe727fa826e43e44e02008b">olc::v2d_generic&lt; T &gt;</a>
+</li>
+<li>mag2()
+: <a class="el" href="structolc_1_1v2d__generic.html#a6b83d7375119637fdf65233cf6dae947">olc::v2d_generic&lt; T &gt;</a>
+</li>
+<li>MageTexture
+: <a class="el" href="classrender_1_1_character_texture.html#a29faf07d6f3edb7d05ad4811613a9ded">render::CharacterTexture</a>
+</li>
+<li>main
+: <a class="el" href="class_game_client.html#a81ce304348a420752ee080480d2b3095">GameClient</a>
+</li>
+<li>MASK
+: <a class="el" href="structolc_1_1_pixel.html#ae9012164940526ddb09b217dbbddfd65a4062d4baa9669fb2e91f31a15061a9d6">olc::Pixel</a>
+</li>
+<li>max()
+: <a class="el" href="structolc_1_1v2d__generic.html#a1fe55d8bc22dbb400583cb68cc9e3e36">olc::v2d_generic&lt; T &gt;</a>
+</li>
+<li>maxDistance
+: <a class="el" href="classweapons_1_1_melee_weapon_1_1predicate_distance.html#a3d53f314c59a28ad09a209299c6f04dc">weapons::MeleeWeapon::predicateDistance</a>
+</li>
+<li>maxRange
+: <a class="el" href="classweapons_1_1_typical_melee_weapon.html#a7822572a76104d2cd2d0a21cdfa754d7">weapons::TypicalMeleeWeapon</a>
+</li>
+<li>MeleeWeapon()
+: <a class="el" href="classweapons_1_1_melee_weapon.html#a719614055440a5e7cfaf943dab856bb1">weapons::MeleeWeapon</a>
+</li>
+<li>min()
+: <a class="el" href="structolc_1_1v2d__generic.html#aec7b204ad597ee0edc9a444ff3a242eb">olc::v2d_generic&lt; T &gt;</a>
+</li>
+<li>minDistance
+: <a class="el" href="classweapons_1_1_melee_weapon_1_1predicate_distance.html#ad75b973371de19453068e729b275af89">weapons::MeleeWeapon::predicateDistance</a>
+</li>
+<li>mode
+: <a class="el" href="structolc_1_1_decal_instance.html#a3dcc0fc374fe00a5d6451a4ac13e6649">olc::DecalInstance</a>
+</li>
+<li>Mode
+: <a class="el" href="structolc_1_1_pixel.html#ae9012164940526ddb09b217dbbddfd65">olc::Pixel</a>
+, <a class="el" href="classolc_1_1_sprite.html#a78b7f14903f9f0bb536b66c37f3139cf">olc::Sprite</a>
+</li>
+<li>modeSample
+: <a class="el" href="classolc_1_1_sprite.html#ab9182b86e829467f454c7ef630ebc9fb">olc::Sprite</a>
+</li>
+<li>MoveWorldOffset()
+: <a class="el" href="classolc_1_1_transformed_view.html#a154b34bc81f6e0c67579d2d2ee40b2d1">olc::TransformedView</a>
+</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/functions_n.html b/doxy/html/functions_n.html
new file mode 100644
index 0000000000000000000000000000000000000000..a94e55d67ac8a0e1c72b345b9c795ddf1ddaa06a
--- /dev/null
+++ b/doxy/html/functions_n.html
@@ -0,0 +1,94 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: Class Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<div class="textblock">Here is a list of all class members with links to the classes they belong to:</div>
+
+<h3><a id="index_n"></a>- n -</h3><ul>
+<li>n
+: <a class="el" href="structolc_1_1_pixel.html#aa9cb31c80e2822ccc726526be5801ae2">olc::Pixel</a>
+</li>
+<li>name
+: <a class="el" href="classweapons_1_1_weapon.html#a3dab7574419aed48f2a0f2d54cfcd825">weapons::Weapon</a>
+</li>
+<li>NONE
+: <a class="el" href="classolc_1_1_sprite.html#ad0d1976d2060997f5cd99eb284a5dc24a6ad338b4e63faacfbed68b020c3a0c0c">olc::Sprite</a>
+</li>
+<li>norm()
+: <a class="el" href="structolc_1_1v2d__generic.html#a9c62f12d51859a5a487c5a0c2d00b09a">olc::v2d_generic&lt; T &gt;</a>
+</li>
+<li>NORMAL
+: <a class="el" href="structolc_1_1_pixel.html#ae9012164940526ddb09b217dbbddfd65a8abacc164c972b4684c2a76efd381018">olc::Pixel</a>
+, <a class="el" href="classolc_1_1_sprite.html#a78b7f14903f9f0bb536b66c37f3139cfa1128b229a2ab5d7b344aeefd329252a1">olc::Sprite</a>
+</li>
+<li>nResID
+: <a class="el" href="structolc_1_1_layer_desc.html#a9433153aabd3d3530043f71a2ad63b1a">olc::LayerDesc</a>
+</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/functions_o.html b/doxy/html/functions_o.html
new file mode 100644
index 0000000000000000000000000000000000000000..2f54a540f5f97f5cc1fe0b6cf299301840943bed
--- /dev/null
+++ b/doxy/html/functions_o.html
@@ -0,0 +1,220 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: Class Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<div class="textblock">Here is a list of all class members with links to the classes they belong to:</div>
+
+<h3><a id="index_o"></a>- o -</h3><ul>
+<li>offsetMap
+: <a class="el" href="classrender_1_1_wall_texture.html#a8246fdde3751baf778392ce6f4577a8d">render::WallTexture</a>
+</li>
+<li>olc::PixelGameEngine
+: <a class="el" href="classolc_1_1_p_g_e_x.html#a3770265094ef2f9700ae97b8ee0fe282">olc::PGEX</a>
+</li>
+<li>olc_ConfigureSystem()
+: <a class="el" href="classolc_1_1_pixel_game_engine.html#a7afa0b57c65bd5d9a54c602afd4fe756">olc::PixelGameEngine</a>
+</li>
+<li>olc_ConstructFontSheet()
+: <a class="el" href="classolc_1_1_pixel_game_engine.html#a117eedbe1e9366fe2bf402334beb9692">olc::PixelGameEngine</a>
+</li>
+<li>olc_CoreUpdate()
+: <a class="el" href="classolc_1_1_pixel_game_engine.html#a0018131435f88bb5de406fd11ee54058">olc::PixelGameEngine</a>
+</li>
+<li>olc_IsRunning()
+: <a class="el" href="classolc_1_1_pixel_game_engine.html#a7b0f41bc4b4258a5c4fa1742b41d15e3">olc::PixelGameEngine</a>
+</li>
+<li>olc_PrepareEngine()
+: <a class="el" href="classolc_1_1_pixel_game_engine.html#aa19aafa028a7e2eaaf7b2235a9bd2256">olc::PixelGameEngine</a>
+</li>
+<li>olc_Reanimate()
+: <a class="el" href="classolc_1_1_pixel_game_engine.html#a417b6cd564ccad1d878ae51cfdd3be8e">olc::PixelGameEngine</a>
+</li>
+<li>olc_Terminate()
+: <a class="el" href="classolc_1_1_pixel_game_engine.html#a2da1f2ebbc1a5fbdbf52890e6ac707b1">olc::PixelGameEngine</a>
+</li>
+<li>olc_UpdateKeyFocus()
+: <a class="el" href="classolc_1_1_pixel_game_engine.html#a7343712504f23f86c8490646ffc50e7f">olc::PixelGameEngine</a>
+</li>
+<li>olc_UpdateKeyState()
+: <a class="el" href="classolc_1_1_pixel_game_engine.html#a61fde81846a9ef7f8fcf63080e6d350b">olc::PixelGameEngine</a>
+</li>
+<li>olc_UpdateMouse()
+: <a class="el" href="classolc_1_1_pixel_game_engine.html#a6e10d8fae75e26dea03b0b447667a308">olc::PixelGameEngine</a>
+</li>
+<li>olc_UpdateMouseFocus()
+: <a class="el" href="classolc_1_1_pixel_game_engine.html#ab3150ba487188e64940c294998fa38d3">olc::PixelGameEngine</a>
+</li>
+<li>olc_UpdateMouseState()
+: <a class="el" href="classolc_1_1_pixel_game_engine.html#a59645c08376a7d4e58673919f3bd0dfb">olc::PixelGameEngine</a>
+</li>
+<li>olc_UpdateMouseWheel()
+: <a class="el" href="classolc_1_1_pixel_game_engine.html#aa33ea5e40d4577e3c44fcf4a26cecadd">olc::PixelGameEngine</a>
+</li>
+<li>olc_UpdateViewport()
+: <a class="el" href="classolc_1_1_pixel_game_engine.html#af1cd38cf0df2e7c3ab53bee66ec63771">olc::PixelGameEngine</a>
+</li>
+<li>olc_UpdateWindowSize()
+: <a class="el" href="classolc_1_1_pixel_game_engine.html#a4f0dae00f21f8d71d4544d50593234c3">olc::PixelGameEngine</a>
+</li>
+<li>OnAfterUserCreate()
+: <a class="el" href="classolc_1_1_p_g_e_x.html#a2a57a711518202708d2b0e586058348f">olc::PGEX</a>
+</li>
+<li>OnAfterUserUpdate()
+: <a class="el" href="classolc_1_1_p_g_e_x.html#a4d2dd7d685fb1c7d00d97aa15e3376b4">olc::PGEX</a>
+</li>
+<li>OnBeforeUserCreate()
+: <a class="el" href="classolc_1_1_p_g_e_x.html#a69c65b5d3a56f9a247e1bf15fd2e4035">olc::PGEX</a>
+</li>
+<li>OnBeforeUserUpdate()
+: <a class="el" href="classolc_1_1_p_g_e_x.html#a2573df22f1637314b976811714dea3fb">olc::PGEX</a>
+</li>
+<li>onCollide()
+: <a class="el" href="classentities_1_1_explosive_projectile.html#a7e0d880f0dfeb6570dc724a0739b1331">entities::ExplosiveProjectile</a>
+, <a class="el" href="classentities_1_1_projectile_entity.html#a865c1a9527f67a3e5402a4fcf8baac98">entities::ProjectileEntity</a>
+</li>
+<li>OnUserCreate()
+: <a class="el" href="class_game_client.html#a698bb8a4ba91211dc4fcaa4079d8d070">GameClient</a>
+, <a class="el" href="classolc_1_1_pixel_game_engine.html#a6a33b6ff7cd23dfd05b34416865fb5c3">olc::PixelGameEngine</a>
+</li>
+<li>OnUserDestroy()
+: <a class="el" href="classolc_1_1_pixel_game_engine.html#ad4fbf979865fb1f08250ea379f2de669">olc::PixelGameEngine</a>
+</li>
+<li>OnUserUpdate()
+: <a class="el" href="class_game_client.html#ab6e2efe37e67de64062bca35d8a11e2e">GameClient</a>
+, <a class="el" href="classolc_1_1_pixel_game_engine.html#af9379a3db341b0acb410ea543e30fdd1">olc::PixelGameEngine</a>
+</li>
+<li>operator v2d_generic&lt; double &gt;()
+: <a class="el" href="structolc_1_1v2d__generic.html#a5b722f332f64d260741ef8322cca5cce">olc::v2d_generic&lt; T &gt;</a>
+</li>
+<li>operator v2d_generic&lt; float &gt;()
+: <a class="el" href="structolc_1_1v2d__generic.html#a7fd9786ec8121d50addc3dd624ca21eb">olc::v2d_generic&lt; T &gt;</a>
+</li>
+<li>operator v2d_generic&lt; int32_t &gt;()
+: <a class="el" href="structolc_1_1v2d__generic.html#a2bf267ac209cca361df72649a5aac92c">olc::v2d_generic&lt; T &gt;</a>
+</li>
+<li>operator WallEntity *()
+: <a class="el" href="classentities_1_1_entity.html#ad0a172ff99a7e73aaaee3658d5e3ae08">entities::Entity</a>
+</li>
+<li>operator!=()
+: <a class="el" href="structolc_1_1_pixel.html#aeeaecb16a243ce3be52cd9261fdf2b23">olc::Pixel</a>
+, <a class="el" href="structolc_1_1v2d__generic.html#abd9af6a38bc73471874665f508ff10b6">olc::v2d_generic&lt; T &gt;</a>
+</li>
+<li>operator()()
+: <a class="el" href="classweapons_1_1_melee_weapon_1_1predicate_distance.html#abfe04e14018aab1af891302df42255eb">weapons::MeleeWeapon::predicateDistance</a>
+</li>
+<li>operator*()
+: <a class="el" href="structolc_1_1_pixel.html#a15a61beedc23ca678a954567274e24de">olc::Pixel</a>
+, <a class="el" href="structolc_1_1v2d__generic.html#a542487700e63b2e30940d64b75c3d3db">olc::v2d_generic&lt; T &gt;</a>
+</li>
+<li>operator*=()
+: <a class="el" href="structolc_1_1_pixel.html#abace0545af22380831ffbc8bd1a66419">olc::Pixel</a>
+, <a class="el" href="structolc_1_1v2d__generic.html#a35c81946f320da79fa5a33e595873252">olc::v2d_generic&lt; T &gt;</a>
+</li>
+<li>operator+()
+: <a class="el" href="structolc_1_1_pixel.html#acb54675f2c61b989de500f8e6e56a9f6">olc::Pixel</a>
+, <a class="el" href="structolc_1_1v2d__generic.html#a70a7c59a5b9b9fac0de8a823633abb08">olc::v2d_generic&lt; T &gt;</a>
+</li>
+<li>operator+=()
+: <a class="el" href="class_dynamic_array.html#a9f3bb8f56ad0cb35f890ebae426c7a61">DynamicArray&lt; T &gt;</a>
+, <a class="el" href="class_game_client.html#abf4100b1ee69f4f300346424139f8d93">GameClient</a>
+, <a class="el" href="structolc_1_1_pixel.html#a39dc75f9f15c040c2d2715c66b13f4e0">olc::Pixel</a>
+, <a class="el" href="structolc_1_1v2d__generic.html#ac57326846384068beaaddec0674b65d2">olc::v2d_generic&lt; T &gt;</a>
+</li>
+<li>operator-()
+: <a class="el" href="structolc_1_1_pixel.html#a1ac8b9d37f4c368b62b21b52df1f5937">olc::Pixel</a>
+, <a class="el" href="structolc_1_1v2d__generic.html#a64e053d62d2826193f6a058ee120c6e2">olc::v2d_generic&lt; T &gt;</a>
+</li>
+<li>operator-=()
+: <a class="el" href="structolc_1_1_pixel.html#a058f58406ca54ab73075f5e42125a65a">olc::Pixel</a>
+, <a class="el" href="structolc_1_1v2d__generic.html#af3e8b94c4921f8d81b4112b319bd7f6d">olc::v2d_generic&lt; T &gt;</a>
+</li>
+<li>operator/()
+: <a class="el" href="structolc_1_1_pixel.html#a7fdcfa79f91368e834cc2ec66d9de769">olc::Pixel</a>
+, <a class="el" href="structolc_1_1v2d__generic.html#a1f1138ee06adae0eaffe900b0437b896">olc::v2d_generic&lt; T &gt;</a>
+</li>
+<li>operator/=()
+: <a class="el" href="structolc_1_1_pixel.html#afd73fb0548d7232923f0ce707171e0da">olc::Pixel</a>
+, <a class="el" href="structolc_1_1v2d__generic.html#a88a5aa098b5ada7667a7900a0bc9bba2">olc::v2d_generic&lt; T &gt;</a>
+</li>
+<li>operator&lt;&lt;
+: <a class="el" href="structolc_1_1v2d__generic.html#afeb5dac5960ca80197ad7ce455ed190c">olc::v2d_generic&lt; T &gt;</a>
+</li>
+<li>operator=()
+: <a class="el" href="structolc_1_1_pixel.html#a9e52ebcc91b8460859a606b7bf763b82">olc::Pixel</a>
+, <a class="el" href="structolc_1_1v2d__generic.html#adff36d90ca79f24401a31cbde706bf8c">olc::v2d_generic&lt; T &gt;</a>
+</li>
+<li>operator==()
+: <a class="el" href="structolc_1_1_pixel.html#a6b82561c110de5447ca4d59c3162d06c">olc::Pixel</a>
+, <a class="el" href="structolc_1_1v2d__generic.html#ace104acaa0ef181acb36fe75d0aed683">olc::v2d_generic&lt; T &gt;</a>
+</li>
+<li>operator[]()
+: <a class="el" href="classrender_1_1_resource_manager.html#aec5833434ea7432806785ae0ce1e1d91">render::ResourceManager</a>
+</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/functions_p.html b/doxy/html/functions_p.html
new file mode 100644
index 0000000000000000000000000000000000000000..40b35a3751b425d21605eb5eaf23c661eb7328e5
--- /dev/null
+++ b/doxy/html/functions_p.html
@@ -0,0 +1,141 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: Class Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<div class="textblock">Here is a list of all class members with links to the classes they belong to:</div>
+
+<h3><a id="index_p"></a>- p -</h3><ul>
+<li>PaladinTexture
+: <a class="el" href="classrender_1_1_character_texture.html#aa83fc0221f1d435820cd794cdb1b126e">render::CharacterTexture</a>
+</li>
+<li>pColData
+: <a class="el" href="classolc_1_1_sprite.html#adb41a2041dfe14de9605dabcd905db60">olc::Sprite</a>
+</li>
+<li>pDrawTarget
+: <a class="el" href="structolc_1_1_layer_desc.html#a24f921523245fce959bb1cd0f55faeff">olc::LayerDesc</a>
+</li>
+<li>PERIODIC
+: <a class="el" href="classolc_1_1_sprite.html#a78b7f14903f9f0bb536b66c37f3139cfa3185e8dea4ea5a89d7ea66716c67a175">olc::Sprite</a>
+</li>
+<li>perp()
+: <a class="el" href="structolc_1_1v2d__generic.html#a8275a944d309dc4b58f60cbc2925a7cc">olc::v2d_generic&lt; T &gt;</a>
+</li>
+<li>pge
+: <a class="el" href="classolc_1_1_p_g_e_x.html#a032efdb84150a7cdd3cc9248860df316">olc::PGEX</a>
+</li>
+<li>PGEX()
+: <a class="el" href="classolc_1_1_p_g_e_x.html#aae9dbde2ad7341482b9f911f23678d75">olc::PGEX</a>
+, <a class="el" href="classolc_1_1_pixel_game_engine.html#a98fcee28f1a645fe0a29f6b6e6a5d7bb">olc::PixelGameEngine</a>
+</li>
+<li>pgex_Register()
+: <a class="el" href="classolc_1_1_pixel_game_engine.html#a49a2ead57239e1595cc555effd3e3a2b">olc::PixelGameEngine</a>
+</li>
+<li>Pistol()
+: <a class="el" href="classweapons_1_1_pistol.html#acc8c02692de7d84e5060da436b96ed86">weapons::Pistol</a>
+</li>
+<li>pistol
+: <a class="el" href="classweapons_1_1_ranged_weapon.html#a2c916fa61105c656187e1f6f41fa4fab">weapons::RangedWeapon</a>
+</li>
+<li>Pixel()
+: <a class="el" href="structolc_1_1_pixel.html#a75ef9e180289d861dfa6687faa248345">olc::Pixel</a>
+</li>
+<li>PixelGameEngine()
+: <a class="el" href="classolc_1_1_pixel_game_engine.html#afe9d685732305246c3fcb361ae3c4bc6">olc::PixelGameEngine</a>
+</li>
+<li>PlayerEntity()
+: <a class="el" href="classentities_1_1_player_entity.html#ace0cf1f8c711b21afef3965eb3b380a1">entities::PlayerEntity</a>
+</li>
+<li>points
+: <a class="el" href="structolc_1_1_decal_instance.html#aa03e3326919eb0c889cdad3492c8a8f6">olc::DecalInstance</a>
+</li>
+<li>pos
+: <a class="el" href="classentities_1_1_entity.html#a04f9c2febe8d435138a07eb2f48ba96b">entities::Entity</a>
+, <a class="el" href="structolc_1_1_decal_instance.html#a8dcf3a11a4f2c722e9b54c01643de08c">olc::DecalInstance</a>
+</li>
+<li>PrepareDevice()
+: <a class="el" href="classolc_1_1_renderer.html#a7d97cab172e59d23a2587f636c9b12b7">olc::Renderer</a>
+</li>
+<li>PrepareDrawing()
+: <a class="el" href="classolc_1_1_renderer.html#a04c56d76c76ab50f5f06b9b537e9d98d">olc::Renderer</a>
+</li>
+<li>projectile
+: <a class="el" href="classentities_1_1_projectile_entity.html#aedd28853ca6fd6f1b8fa45dbe6b90c63">entities::ProjectileEntity</a>
+</li>
+<li>ProjectileEntity()
+: <a class="el" href="classentities_1_1_projectile_entity.html#ad42e2a1181110d2fa3acbec7eef3424e">entities::ProjectileEntity</a>
+</li>
+<li>projectileSpeed
+: <a class="el" href="classweapons_1_1_ranged_weapon.html#a299d09c213670d80f7215e2310c92889">weapons::RangedWeapon</a>
+</li>
+<li>ptrPGE
+: <a class="el" href="classolc_1_1_platform.html#a43a4a5eaaf20384b9cef6aec6e75dbbd">olc::Platform</a>
+, <a class="el" href="classolc_1_1_renderer.html#a89f800c14ab1b070408c17e2589e02a1">olc::Renderer</a>
+</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/functions_r.html b/doxy/html/functions_r.html
new file mode 100644
index 0000000000000000000000000000000000000000..a8448dbfe66558844318a5174ca5fe070ac87db2
--- /dev/null
+++ b/doxy/html/functions_r.html
@@ -0,0 +1,116 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: Class Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<div class="textblock">Here is a list of all class members with links to the classes they belong to:</div>
+
+<h3><a id="index_r"></a>- r -</h3><ul>
+<li>r
+: <a class="el" href="structolc_1_1_pixel.html#a93ee3efde3d2b363e4e4813a490f60b4">olc::Pixel</a>
+</li>
+<li>RangedWeapon()
+: <a class="el" href="classweapons_1_1_ranged_weapon.html#add8afffc63175911e5f81b3ce43d135f">weapons::RangedWeapon</a>
+</li>
+<li>ReadTexture()
+: <a class="el" href="classolc_1_1_renderer.html#aa0e93a7d9ff6f25e9b154b2c8c86d44d">olc::Renderer</a>
+</li>
+<li>removeIf()
+: <a class="el" href="class_dynamic_array.html#a9db6489676b4560684be1ba03233fca0">DynamicArray&lt; T &gt;</a>
+</li>
+<li>render()
+: <a class="el" href="classentities_1_1_character_entity.html#aeb6069f0f07d0914faf0f94c0cc33def">entities::CharacterEntity</a>
+, <a class="el" href="classentities_1_1_entity.html#abcc4364b5b7250f0364f3550a618b3ab">entities::Entity</a>
+, <a class="el" href="classentities_1_1_explosive_projectile.html#a86148b27403d275c1513f22bb3f47892">entities::ExplosiveProjectile</a>
+, <a class="el" href="classrender_1_1_character_texture.html#a16ced1889ccaf7ca4c913ec1475c2f9a">render::CharacterTexture</a>
+, <a class="el" href="classrender_1_1_i_texture.html#aedf64dab92f17e22a807635493196913">render::ITexture</a>
+, <a class="el" href="classrender_1_1_lazy_sprite.html#a3e2884ba94b5f6bbe9061c5a44ca6a23">render::LazySprite</a>
+, <a class="el" href="classrender_1_1_simple_sprite.html#aaed7cf3094f69387291a2d287d7753a5">render::SimpleSprite</a>
+, <a class="el" href="classrender_1_1_wall_texture.html#a03239c7168e114906cb20f3d39815344">render::WallTexture</a>
+, <a class="el" href="classweapons_1_1_glitch_texture.html#a5484c864f917e54fb6041b7d0d33ef42">weapons::GlitchTexture</a>
+</li>
+<li>Renderable()
+: <a class="el" href="classolc_1_1_renderable.html#affef9fb6b4810e59a7d14410f351ba37">olc::Renderable</a>
+</li>
+<li>renderCentered()
+: <a class="el" href="classrender_1_1_lazy_sprite.html#a1e0b32f06c67b96eed8da12747aa4f0a">render::LazySprite</a>
+</li>
+<li>ResourceBuffer()
+: <a class="el" href="structolc_1_1_resource_buffer.html#abd18994c20cc7992ff7ccb07af9914e7">olc::ResourceBuffer</a>
+</li>
+<li>resourceName
+: <a class="el" href="classrender_1_1_lazy_sprite.html#a67a794671efc86ea29921c0e5934377e">render::LazySprite</a>
+</li>
+<li>ResourcePack()
+: <a class="el" href="classolc_1_1_resource_pack.html#af5b7f93e4fb4e8b899da50985b689083">olc::ResourcePack</a>
+</li>
+<li>RougeTexture
+: <a class="el" href="classrender_1_1_character_texture.html#a48e57b7a2864c6adb791b91a24b5daea">render::CharacterTexture</a>
+</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/functions_rela.html b/doxy/html/functions_rela.html
new file mode 100644
index 0000000000000000000000000000000000000000..c5dc96056e621f4ab7293694f68598086e2f938a
--- /dev/null
+++ b/doxy/html/functions_rela.html
@@ -0,0 +1,85 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: Class Members - Related Functions</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+&#160;<ul>
+<li>main
+: <a class="el" href="class_game_client.html#a81ce304348a420752ee080480d2b3095">GameClient</a>
+</li>
+<li>olc::PixelGameEngine
+: <a class="el" href="classolc_1_1_p_g_e_x.html#a3770265094ef2f9700ae97b8ee0fe282">olc::PGEX</a>
+</li>
+<li>operator&lt;&lt;
+: <a class="el" href="structolc_1_1v2d__generic.html#afeb5dac5960ca80197ad7ce455ed190c">olc::v2d_generic&lt; T &gt;</a>
+</li>
+<li>PGEX
+: <a class="el" href="classolc_1_1_pixel_game_engine.html#a98fcee28f1a645fe0a29f6b6e6a5d7bb">olc::PixelGameEngine</a>
+</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/functions_s.html b/doxy/html/functions_s.html
new file mode 100644
index 0000000000000000000000000000000000000000..5a499b56d371df617c4e7c6896d3bca7c0998224
--- /dev/null
+++ b/doxy/html/functions_s.html
@@ -0,0 +1,220 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: Class Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<div class="textblock">Here is a list of all class members with links to the classes they belong to:</div>
+
+<h3><a id="index_s"></a>- s -</h3><ul>
+<li>Sample()
+: <a class="el" href="classolc_1_1_sprite.html#a902192f81ab42420921992a7288aab48">olc::Sprite</a>
+</li>
+<li>SampleBL()
+: <a class="el" href="classolc_1_1_sprite.html#a5e28024237453fb56c32f37d6996443d">olc::Sprite</a>
+</li>
+<li>sAppName
+: <a class="el" href="classolc_1_1_pixel_game_engine.html#a02d0f9c50770aa38aea1448f62d3604f">olc::PixelGameEngine</a>
+</li>
+<li>SaveImageResource()
+: <a class="el" href="classolc_1_1_image_loader.html#addedde73c3a76c668a2954db36695f08">olc::ImageLoader</a>
+</li>
+<li>SavePack()
+: <a class="el" href="classolc_1_1_resource_pack.html#af6b1fec791c3c85b51b565db63a1aa9a">olc::ResourcePack</a>
+</li>
+<li>SaveToPGESprFile()
+: <a class="el" href="classolc_1_1_sprite.html#a1f1b2a3f1fd932a6a14faa622a2918bf">olc::Sprite</a>
+</li>
+<li>ScaleToScreen()
+: <a class="el" href="classolc_1_1_transformed_view.html#a8be86d8036bf635287debfcf2509e4c5">olc::TransformedView</a>
+</li>
+<li>ScaleToWorld()
+: <a class="el" href="classolc_1_1_transformed_view.html#a09492f689459319994da4c9d0e0c2dc4">olc::TransformedView</a>
+</li>
+<li>ScreenHeight()
+: <a class="el" href="classolc_1_1_pixel_game_engine.html#abbbee4578ffa6b844c04c1af363052af">olc::PixelGameEngine</a>
+</li>
+<li>ScreenToWorld()
+: <a class="el" href="classolc_1_1_transformed_view.html#a0f18594e00e7865fe4376761f9e20812">olc::TransformedView</a>
+</li>
+<li>ScreenWidth()
+: <a class="el" href="classolc_1_1_pixel_game_engine.html#aa3b458d05eab503d9918cfd2d383a45c">olc::PixelGameEngine</a>
+</li>
+<li>setDebugMode()
+: <a class="el" href="class_game_client.html#a9af9a685c31d428921b0cf5976a63c14">GameClient</a>
+</li>
+<li>SetDecalMode()
+: <a class="el" href="classolc_1_1_pixel_game_engine.html#a27ee96acff2c74d47f0cb78493aac756">olc::PixelGameEngine</a>
+, <a class="el" href="classolc_1_1_renderer.html#aebfc5a561c54b88f16a0b3d855eedaa1">olc::Renderer</a>
+</li>
+<li>SetDrawTarget()
+: <a class="el" href="classolc_1_1_pixel_game_engine.html#a5842c1087a70c95a7ff96d53f28b7bab">olc::PixelGameEngine</a>
+</li>
+<li>SetLayerCustomRenderFunction()
+: <a class="el" href="classolc_1_1_pixel_game_engine.html#a40a88ddb3800e59121f05b06fd64dbfd">olc::PixelGameEngine</a>
+</li>
+<li>SetLayerOffset()
+: <a class="el" href="classolc_1_1_pixel_game_engine.html#a0e1ddc993ef65dfe00f2bbcf59e535ad">olc::PixelGameEngine</a>
+</li>
+<li>SetLayerScale()
+: <a class="el" href="classolc_1_1_pixel_game_engine.html#af8fbe005b4069ed1de8e0347b72ebc30">olc::PixelGameEngine</a>
+</li>
+<li>SetLayerTint()
+: <a class="el" href="classolc_1_1_pixel_game_engine.html#a7d7c04245161782d5f5c48d3d62ff7a7">olc::PixelGameEngine</a>
+</li>
+<li>setPickUp()
+: <a class="el" href="classweapons_1_1_weapon.html#ace9c44751879af7382585c3338d4bc47">weapons::Weapon</a>
+</li>
+<li>SetPixel()
+: <a class="el" href="classolc_1_1_sprite.html#a294389e93a95c8307f1260d7cacaf9ba">olc::Sprite</a>
+</li>
+<li>SetPixelBlend()
+: <a class="el" href="classolc_1_1_pixel_game_engine.html#ab0726b7758bc1bf7f7de30369076b8e7">olc::PixelGameEngine</a>
+</li>
+<li>SetPixelMode()
+: <a class="el" href="classolc_1_1_pixel_game_engine.html#ae4a3d1aaa40761986389966ab927ef32">olc::PixelGameEngine</a>
+</li>
+<li>setPos()
+: <a class="el" href="classweapons_1_1_weapon.html#a34c39bfa9cdb2d7483bc340300e8a2d9">weapons::Weapon</a>
+</li>
+<li>SetRangeX()
+: <a class="el" href="classolc_1_1_tile_transformed_view.html#ace1a6e5c3df96cd43582e02ca4b94dac">olc::TileTransformedView</a>
+</li>
+<li>SetRangeY()
+: <a class="el" href="classolc_1_1_tile_transformed_view.html#a660fcd24db414be714ae53ba131296a7">olc::TileTransformedView</a>
+</li>
+<li>SetSampleMode()
+: <a class="el" href="classolc_1_1_sprite.html#a78f4fcf41780cfc547f21e5a0dea03a2">olc::Sprite</a>
+</li>
+<li>SetScreenSize()
+: <a class="el" href="classolc_1_1_pixel_game_engine.html#abd403468f57f7665d56e202da8de8e76">olc::PixelGameEngine</a>
+</li>
+<li>setVelocity()
+: <a class="el" href="classentities_1_1_projectile_entity.html#ad88aa7e53b9a6671dab6132a8d58dbb5">entities::ProjectileEntity</a>
+</li>
+<li>SetViewArea()
+: <a class="el" href="classolc_1_1_transformed_view.html#ac7295e90921832fef16779172cc9e4ff">olc::TransformedView</a>
+</li>
+<li>SetWindowTitle()
+: <a class="el" href="classolc_1_1_platform.html#ab9ea28ecd660730810463dd6c68b73fd">olc::Platform</a>
+</li>
+<li>SetWorldOffset()
+: <a class="el" href="classolc_1_1_transformed_view.html#aee86c84a719f8b5c3143e2a0b89e8024">olc::TransformedView</a>
+</li>
+<li>SetWorldScale()
+: <a class="el" href="classolc_1_1_transformed_view.html#a971e25ee6978c271127f766aba69b285">olc::TransformedView</a>
+</li>
+<li>SetZoom()
+: <a class="el" href="classolc_1_1_transformed_view.html#a89fd4d642cf37d1e6f1674b870b142d8">olc::TransformedView</a>
+</li>
+<li>simpleGreenWallTexture
+: <a class="el" href="classentities_1_1_wall_entity.html#a3006e4856a24086bdd28b7b353b159ff">entities::WallEntity</a>
+</li>
+<li>SimpleSprite()
+: <a class="el" href="classrender_1_1_simple_sprite.html#af16d9ee29214a89a6ebe404a73ea5cad">render::SimpleSprite</a>
+</li>
+<li>simpleWallTexture
+: <a class="el" href="classentities_1_1_wall_entity.html#a73c32014a207a92fc1a837f0dda83eb8">entities::WallEntity</a>
+</li>
+<li>spawnProjectile()
+: <a class="el" href="classweapons_1_1_glitch_gun.html#a9268757aeb63315254d6a13df8ed0ba4">weapons::GlitchGun</a>
+, <a class="el" href="classweapons_1_1_pistol.html#a37f81949e55c373d7cf1f35cb59c1c25">weapons::Pistol</a>
+, <a class="el" href="classweapons_1_1_ranged_weapon.html#a6b6b8265efc6ecf60e36ab261fe6f360">weapons::RangedWeapon</a>
+</li>
+<li>speed
+: <a class="el" href="classentities_1_1_living_entity.html#ad8b574e93d1fa34cdd119be6f0391acb">entities::LivingEntity</a>
+</li>
+<li>spoon
+: <a class="el" href="classweapons_1_1_typical_melee_weapon.html#a1988a389241e423445c7b0f6ff2ed23f">weapons::TypicalMeleeWeapon</a>
+</li>
+<li>sprite
+: <a class="el" href="classolc_1_1_decal.html#a93a1e2ae28aa587978e2a66b6328d66a">olc::Decal</a>
+</li>
+<li>Sprite()
+: <a class="el" href="classolc_1_1_renderable.html#a8128a49bae0a3b40a5681d92cc01f52a">olc::Renderable</a>
+, <a class="el" href="classolc_1_1_sprite.html#a5b0190890ed98560125b2ae4db9a7d9f">olc::Sprite</a>
+</li>
+<li>SpriteManager()
+: <a class="el" href="classrender_1_1_sprite_manager.html#ad65313b397c85d87f307fbb931907afb">render::SpriteManager</a>
+</li>
+<li>Start()
+: <a class="el" href="classolc_1_1_pixel_game_engine.html#a8e8848aa1c743a1ec2cdaa14c87e5cde">olc::PixelGameEngine</a>
+</li>
+<li>StartPan()
+: <a class="el" href="classolc_1_1_transformed_view.html#a4dc2bd0de3686978fdf8630d23a727c3">olc::TransformedView</a>
+</li>
+<li>StartSystemEventLoop()
+: <a class="el" href="classolc_1_1_platform.html#af58e24a992339020fa1ebf58a224b209">olc::Platform</a>
+</li>
+<li>str()
+: <a class="el" href="structolc_1_1v2d__generic.html#a88a794a4e9ec632f215afbeb04b354c8">olc::v2d_generic&lt; T &gt;</a>
+</li>
+<li>sword
+: <a class="el" href="classweapons_1_1_typical_melee_weapon.html#a1eed0cf1fc89f495ccad84dd4acac0eb">weapons::TypicalMeleeWeapon</a>
+</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/functions_t.html b/doxy/html/functions_t.html
new file mode 100644
index 0000000000000000000000000000000000000000..58c7cf67c198a503e4c533cfa31bbdeb79e78b5e
--- /dev/null
+++ b/doxy/html/functions_t.html
@@ -0,0 +1,107 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: Class Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<div class="textblock">Here is a list of all class members with links to the classes they belong to:</div>
+
+<h3><a id="index_t"></a>- t -</h3><ul>
+<li>texture
+: <a class="el" href="classentities_1_1_character_entity.html#a295a77ffb22dd1a7b30164ab04ecf400">entities::CharacterEntity</a>
+</li>
+<li>ThreadCleanUp()
+: <a class="el" href="classolc_1_1_platform.html#a0e4e37ccc06ae7f3251b7a53ce839c13">olc::Platform</a>
+</li>
+<li>ThreadStartUp()
+: <a class="el" href="classolc_1_1_platform.html#ace0ea54aaa50143628b5fd41851b578f">olc::Platform</a>
+</li>
+<li>tick()
+: <a class="el" href="classentities_1_1_character_entity.html#ae7cdddc6dca655e7bf8c2f48424c5208">entities::CharacterEntity</a>
+, <a class="el" href="classentities_1_1_entity.html#a0440674bf90ae83d9a26aa4b0ac8309e">entities::Entity</a>
+, <a class="el" href="classentities_1_1_entity_with_a_i.html#a92708b14b042c03fa9a8673192867e72">entities::EntityWithAI</a>
+, <a class="el" href="classentities_1_1_explosive_projectile.html#a3aa22ab3467caa20a8c7b3cc818b157d">entities::ExplosiveProjectile</a>
+, <a class="el" href="classentities_1_1_living_entity.html#af13cb8c3fabd2960746e21cd7dabe4d6">entities::LivingEntity</a>
+, <a class="el" href="classentities_1_1_player_entity.html#a9f5c7033ca46daf217c73cb5edbb0d68">entities::PlayerEntity</a>
+, <a class="el" href="classentities_1_1_projectile_entity.html#a761f27885de02515edaf252e8a4162b5">entities::ProjectileEntity</a>
+, <a class="el" href="classweapons_1_1_weapon.html#a92ae1db47ca866d828f8b09c6de5a3f6">weapons::Weapon</a>
+</li>
+<li>TileTransformedView()
+: <a class="el" href="classolc_1_1_tile_transformed_view.html#ac38d47324d7370b5259894d814b879f8">olc::TileTransformedView</a>
+</li>
+<li>tint
+: <a class="el" href="structolc_1_1_decal_instance.html#a04f01880bf6d4045b6e1f70aff3e5c8f">olc::DecalInstance</a>
+, <a class="el" href="structolc_1_1_layer_desc.html#af6027ed5757afe2c8c0cd50620d7311f">olc::LayerDesc</a>
+</li>
+<li>TransformedView()
+: <a class="el" href="classolc_1_1_transformed_view.html#a1f4ed7eb880b0f0edc0b86be4b33b04e">olc::TransformedView</a>
+</li>
+<li>TypicalMeleeWeapon()
+: <a class="el" href="classweapons_1_1_typical_melee_weapon.html#a939cbdc05adab9adf58301cce00e3f8b">weapons::TypicalMeleeWeapon</a>
+</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/functions_u.html b/doxy/html/functions_u.html
new file mode 100644
index 0000000000000000000000000000000000000000..f7ed9c3d57da5b715b5e88cabca274245b15c052
--- /dev/null
+++ b/doxy/html/functions_u.html
@@ -0,0 +1,110 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: Class Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<div class="textblock">Here is a list of all class members with links to the classes they belong to:</div>
+
+<h3><a id="index_u"></a>- u -</h3><ul>
+<li>Update()
+: <a class="el" href="classolc_1_1_decal.html#aac5ad6844f98fb3a8bce2f36adf02429">olc::Decal</a>
+</li>
+<li>update()
+: <a class="el" href="classweapons_1_1_e_m_gun.html#a0bb30401aa36e2205c011ea0fcf40303">weapons::EMGun</a>
+, <a class="el" href="classweapons_1_1_glitch_gun.html#a6687147e8005e96f12806862f73a6cd8">weapons::GlitchGun</a>
+, <a class="el" href="classweapons_1_1_weapon.html#a1cbf391f196bd151f3e3f1ae1e316088">weapons::Weapon</a>
+</li>
+<li>updateNeighbours()
+: <a class="el" href="classentities_1_1_wall_entity.html#a8d65d65453803e731cd9aa112d1f0447">entities::WallEntity</a>
+</li>
+<li>UpdatePan()
+: <a class="el" href="classolc_1_1_transformed_view.html#a4baf2b53892749ff380833991161b9c4">olc::TransformedView</a>
+</li>
+<li>UpdateSprite()
+: <a class="el" href="classolc_1_1_decal.html#a4a3b893edbce4d416453f57c11754092">olc::Decal</a>
+</li>
+<li>UpdateTexture()
+: <a class="el" href="classolc_1_1_renderer.html#a1512e2939b94f6fdb58bbf152ac0e4e5">olc::Renderer</a>
+</li>
+<li>UpdateViewport()
+: <a class="el" href="classolc_1_1_renderer.html#abc873336dd8f9079dc26f92ce0f95748">olc::Renderer</a>
+</li>
+<li>use()
+: <a class="el" href="classweapons_1_1_e_m_gun.html#a8034852a4a5957c3d3bc00ca5f7df6e4">weapons::EMGun</a>
+, <a class="el" href="classweapons_1_1_melee_weapon.html#ac1b9a6718cbf78cea0b9e5e0b8dcc64e">weapons::MeleeWeapon</a>
+, <a class="el" href="classweapons_1_1_ranged_weapon.html#a0e8915ad79021eb8fd79a1a3d7b1c92c">weapons::RangedWeapon</a>
+, <a class="el" href="classweapons_1_1_weapon.html#a8c6f12ac9ed871ebd0394f6b5c447868">weapons::Weapon</a>
+</li>
+<li>user
+: <a class="el" href="classentities_1_1_projectile_entity.html#ab01d1aa4b66b21481d07f7777bfb2ca3">entities::ProjectileEntity</a>
+</li>
+<li>uv
+: <a class="el" href="structolc_1_1_decal_instance.html#a60337d982b4f35b3bb5b1d814fa0d09f">olc::DecalInstance</a>
+</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/functions_v.html b/doxy/html/functions_v.html
new file mode 100644
index 0000000000000000000000000000000000000000..80d52ffa685813376486704d5bc059d2634bf80a
--- /dev/null
+++ b/doxy/html/functions_v.html
@@ -0,0 +1,99 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: Class Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<div class="textblock">Here is a list of all class members with links to the classes they belong to:</div>
+
+<h3><a id="index_v"></a>- v -</h3><ul>
+<li>v2d_generic()
+: <a class="el" href="structolc_1_1v2d__generic.html#aba35d326b62454a5fbdeea4220438784">olc::v2d_generic&lt; T &gt;</a>
+</li>
+<li>vecDecalInstance
+: <a class="el" href="structolc_1_1_layer_desc.html#ac6cd952e0ebbd7cde19060b4e3896875">olc::LayerDesc</a>
+</li>
+<li>velocity
+: <a class="el" href="classentities_1_1_projectile_entity.html#a29cb43b58d34f32f18986185bf8691f8">entities::ProjectileEntity</a>
+</li>
+<li>VERT
+: <a class="el" href="classolc_1_1_sprite.html#ad0d1976d2060997f5cd99eb284a5dc24a7d2b99d18b574e41332e569d141914c5">olc::Sprite</a>
+</li>
+<li>vMemory
+: <a class="el" href="structolc_1_1_resource_buffer.html#a413e818311737396d14838a00df05303">olc::ResourceBuffer</a>
+</li>
+<li>vOffset
+: <a class="el" href="structolc_1_1_layer_desc.html#a1657be3b96c8fbb85fe113ae695fece9">olc::LayerDesc</a>
+</li>
+<li>vScale
+: <a class="el" href="structolc_1_1_layer_desc.html#ab9701d17eb84ab32e93211277cacc763">olc::LayerDesc</a>
+</li>
+<li>vUVScale
+: <a class="el" href="classolc_1_1_decal.html#aff06190e3ca17446d373d5a93a3636c7">olc::Decal</a>
+</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/functions_vars.html b/doxy/html/functions_vars.html
new file mode 100644
index 0000000000000000000000000000000000000000..2aaf3e5dee7baa484c2245118718d2c9a1d0430e
--- /dev/null
+++ b/doxy/html/functions_vars.html
@@ -0,0 +1,393 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: Class Members - Variables</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+&#160;
+
+<h3><a id="index_a"></a>- a -</h3><ul>
+<li>a
+: <a class="el" href="structolc_1_1_pixel.html#a652a25d4bcab1f7bf627c3224842f0b1">olc::Pixel</a>
+</li>
+<li>attackOffset
+: <a class="el" href="classweapons_1_1_typical_melee_weapon.html#af33a1ff938b8068aaab0bd0ac943ca83">weapons::TypicalMeleeWeapon</a>
+</li>
+</ul>
+
+
+<h3><a id="index_b"></a>- b -</h3><ul>
+<li>b
+: <a class="el" href="structolc_1_1_pixel.html#a8738f2cd490bd9c5288f37c8d19816be">olc::Pixel</a>
+</li>
+<li>baseDamage
+: <a class="el" href="classweapons_1_1_weapon.html#a27456b08c51df0759ae0155b9f79e336">weapons::Weapon</a>
+</li>
+<li>bHeld
+: <a class="el" href="structolc_1_1_h_w_button.html#a6d872a5aeb23aba39103b95093c63cb7">olc::HWButton</a>
+</li>
+<li>bPressed
+: <a class="el" href="structolc_1_1_h_w_button.html#a0c379d6a109299fc0a1c872ebbb2f4d9">olc::HWButton</a>
+</li>
+<li>bReleased
+: <a class="el" href="structolc_1_1_h_w_button.html#a2576b36bdf00033f78fa1cdcabfa2a00">olc::HWButton</a>
+</li>
+<li>bShow
+: <a class="el" href="structolc_1_1_layer_desc.html#aeb19896b6a82e301769bfd9d5aa053b6">olc::LayerDesc</a>
+</li>
+<li>bUpdate
+: <a class="el" href="structolc_1_1_layer_desc.html#a5239ecc59495acca81a03e8783d9b873">olc::LayerDesc</a>
+</li>
+</ul>
+
+
+<h3><a id="index_c"></a>- c -</h3><ul>
+<li>cooldown
+: <a class="el" href="classweapons_1_1_weapon.html#aa3529d6c0160f61132fc7bb1b9284a02">weapons::Weapon</a>
+</li>
+<li>cooldownTime
+: <a class="el" href="classweapons_1_1_weapon.html#aa3d78dae766eee8279326026dbb46f1f">weapons::Weapon</a>
+</li>
+</ul>
+
+
+<h3><a id="index_d"></a>- d -</h3><ul>
+<li>damageValue
+: <a class="el" href="classentities_1_1_projectile_entity.html#ad4325b9194e4c76e68f27857226eefd8">entities::ProjectileEntity</a>
+</li>
+<li>decal
+: <a class="el" href="structolc_1_1_decal_instance.html#ad01bc9806792469d91ee0b5736058e7e">olc::DecalInstance</a>
+</li>
+</ul>
+
+
+<h3><a id="index_e"></a>- e -</h3><ul>
+<li>emgun
+: <a class="el" href="classweapons_1_1_ranged_weapon.html#acf33d7619066026e823986ec5ec51a97">weapons::RangedWeapon</a>
+</li>
+<li>EngineerTexture
+: <a class="el" href="classrender_1_1_character_texture.html#a86b8570b892ad9e076b0dcc98e0190c3">render::CharacterTexture</a>
+</li>
+</ul>
+
+
+<h3><a id="index_f"></a>- f -</h3><ul>
+<li>funcHook
+: <a class="el" href="structolc_1_1_layer_desc.html#a3ed4e651cce6277ab5b75ab1a9b05765">olc::LayerDesc</a>
+</li>
+</ul>
+
+
+<h3><a id="index_g"></a>- g -</h3><ul>
+<li>g
+: <a class="el" href="structolc_1_1_pixel.html#a14cf5612284974c409f078944fe5f6ee">olc::Pixel</a>
+</li>
+</ul>
+
+
+<h3><a id="index_h"></a>- h -</h3><ul>
+<li>health
+: <a class="el" href="classentities_1_1_living_entity.html#a78282129a711906b7973c4ecb37b8434">entities::LivingEntity</a>
+</li>
+<li>height
+: <a class="el" href="classolc_1_1_sprite.html#ab05010cb1a5ff6c36267d0050d568d96">olc::Sprite</a>
+</li>
+</ul>
+
+
+<h3><a id="index_i"></a>- i -</h3><ul>
+<li>id
+: <a class="el" href="classolc_1_1_decal.html#a7cc798e0327ea4118c648b10e2d57986">olc::Decal</a>
+</li>
+<li>is_alive
+: <a class="el" href="classentities_1_1_entity.html#aedac7bb35b729e4a02c582b9f4369ab8">entities::Entity</a>
+</li>
+<li>is_initialized
+: <a class="el" href="classentities_1_1_entity.html#a1453bca3376a185aa54135dd4958b244">entities::Entity</a>
+</li>
+<li>isPickedUp
+: <a class="el" href="classweapons_1_1_weapon.html#aba025076ad5e6fae2f9b9d40f4ef815d">weapons::Weapon</a>
+</li>
+</ul>
+
+
+<h3><a id="index_l"></a>- l -</h3><ul>
+<li>loader
+: <a class="el" href="classolc_1_1_sprite.html#a023da26661031ebf7a276cafd9a43902">olc::Sprite</a>
+</li>
+<li>longSword
+: <a class="el" href="classweapons_1_1_typical_melee_weapon.html#ae623cc428bd32ef113d48d6ca15cf4c2">weapons::TypicalMeleeWeapon</a>
+</li>
+</ul>
+
+
+<h3><a id="index_m"></a>- m -</h3><ul>
+<li>m_bPanning
+: <a class="el" href="classolc_1_1_transformed_view.html#a2c19ec65e54f43500cce003f878c8ed5">olc::TransformedView</a>
+</li>
+<li>m_vPixelScale
+: <a class="el" href="classolc_1_1_transformed_view.html#a94a7fd3ad136ec70040bbff1c7133418">olc::TransformedView</a>
+</li>
+<li>m_vRecipPixel
+: <a class="el" href="classolc_1_1_transformed_view.html#ae1b7b82332f0979caa99e003827624cb">olc::TransformedView</a>
+</li>
+<li>m_vStartPan
+: <a class="el" href="classolc_1_1_transformed_view.html#a4f7569cc3d27120b485077789b86aa44">olc::TransformedView</a>
+</li>
+<li>m_vViewArea
+: <a class="el" href="classolc_1_1_transformed_view.html#a0a2936aac23f1621ff1d618c7155de1c">olc::TransformedView</a>
+</li>
+<li>m_vWorldOffset
+: <a class="el" href="classolc_1_1_transformed_view.html#a2e77497521f72e59ae7ecb56dc5d3f37">olc::TransformedView</a>
+</li>
+<li>m_vWorldScale
+: <a class="el" href="classolc_1_1_transformed_view.html#a652909b48a4d8960c36d1ce4262cc95a">olc::TransformedView</a>
+</li>
+<li>MageTexture
+: <a class="el" href="classrender_1_1_character_texture.html#a29faf07d6f3edb7d05ad4811613a9ded">render::CharacterTexture</a>
+</li>
+<li>maxDistance
+: <a class="el" href="classweapons_1_1_melee_weapon_1_1predicate_distance.html#a3d53f314c59a28ad09a209299c6f04dc">weapons::MeleeWeapon::predicateDistance</a>
+</li>
+<li>maxRange
+: <a class="el" href="classweapons_1_1_typical_melee_weapon.html#a7822572a76104d2cd2d0a21cdfa754d7">weapons::TypicalMeleeWeapon</a>
+</li>
+<li>minDistance
+: <a class="el" href="classweapons_1_1_melee_weapon_1_1predicate_distance.html#ad75b973371de19453068e729b275af89">weapons::MeleeWeapon::predicateDistance</a>
+</li>
+<li>mode
+: <a class="el" href="structolc_1_1_decal_instance.html#a3dcc0fc374fe00a5d6451a4ac13e6649">olc::DecalInstance</a>
+</li>
+<li>modeSample
+: <a class="el" href="classolc_1_1_sprite.html#ab9182b86e829467f454c7ef630ebc9fb">olc::Sprite</a>
+</li>
+</ul>
+
+
+<h3><a id="index_n"></a>- n -</h3><ul>
+<li>n
+: <a class="el" href="structolc_1_1_pixel.html#aa9cb31c80e2822ccc726526be5801ae2">olc::Pixel</a>
+</li>
+<li>name
+: <a class="el" href="classweapons_1_1_weapon.html#a3dab7574419aed48f2a0f2d54cfcd825">weapons::Weapon</a>
+</li>
+<li>nResID
+: <a class="el" href="structolc_1_1_layer_desc.html#a9433153aabd3d3530043f71a2ad63b1a">olc::LayerDesc</a>
+</li>
+</ul>
+
+
+<h3><a id="index_o"></a>- o -</h3><ul>
+<li>offsetMap
+: <a class="el" href="classrender_1_1_wall_texture.html#a8246fdde3751baf778392ce6f4577a8d">render::WallTexture</a>
+</li>
+</ul>
+
+
+<h3><a id="index_p"></a>- p -</h3><ul>
+<li>PaladinTexture
+: <a class="el" href="classrender_1_1_character_texture.html#aa83fc0221f1d435820cd794cdb1b126e">render::CharacterTexture</a>
+</li>
+<li>pColData
+: <a class="el" href="classolc_1_1_sprite.html#adb41a2041dfe14de9605dabcd905db60">olc::Sprite</a>
+</li>
+<li>pDrawTarget
+: <a class="el" href="structolc_1_1_layer_desc.html#a24f921523245fce959bb1cd0f55faeff">olc::LayerDesc</a>
+</li>
+<li>pge
+: <a class="el" href="classolc_1_1_p_g_e_x.html#a032efdb84150a7cdd3cc9248860df316">olc::PGEX</a>
+</li>
+<li>pistol
+: <a class="el" href="classweapons_1_1_ranged_weapon.html#a2c916fa61105c656187e1f6f41fa4fab">weapons::RangedWeapon</a>
+</li>
+<li>points
+: <a class="el" href="structolc_1_1_decal_instance.html#aa03e3326919eb0c889cdad3492c8a8f6">olc::DecalInstance</a>
+</li>
+<li>pos
+: <a class="el" href="classentities_1_1_entity.html#a04f9c2febe8d435138a07eb2f48ba96b">entities::Entity</a>
+, <a class="el" href="structolc_1_1_decal_instance.html#a8dcf3a11a4f2c722e9b54c01643de08c">olc::DecalInstance</a>
+</li>
+<li>projectile
+: <a class="el" href="classentities_1_1_projectile_entity.html#aedd28853ca6fd6f1b8fa45dbe6b90c63">entities::ProjectileEntity</a>
+</li>
+<li>projectileSpeed
+: <a class="el" href="classweapons_1_1_ranged_weapon.html#a299d09c213670d80f7215e2310c92889">weapons::RangedWeapon</a>
+</li>
+<li>ptrPGE
+: <a class="el" href="classolc_1_1_platform.html#a43a4a5eaaf20384b9cef6aec6e75dbbd">olc::Platform</a>
+, <a class="el" href="classolc_1_1_renderer.html#a89f800c14ab1b070408c17e2589e02a1">olc::Renderer</a>
+</li>
+</ul>
+
+
+<h3><a id="index_r"></a>- r -</h3><ul>
+<li>r
+: <a class="el" href="structolc_1_1_pixel.html#a93ee3efde3d2b363e4e4813a490f60b4">olc::Pixel</a>
+</li>
+<li>resourceName
+: <a class="el" href="classrender_1_1_lazy_sprite.html#a67a794671efc86ea29921c0e5934377e">render::LazySprite</a>
+</li>
+<li>RougeTexture
+: <a class="el" href="classrender_1_1_character_texture.html#a48e57b7a2864c6adb791b91a24b5daea">render::CharacterTexture</a>
+</li>
+</ul>
+
+
+<h3><a id="index_s"></a>- s -</h3><ul>
+<li>sAppName
+: <a class="el" href="classolc_1_1_pixel_game_engine.html#a02d0f9c50770aa38aea1448f62d3604f">olc::PixelGameEngine</a>
+</li>
+<li>simpleGreenWallTexture
+: <a class="el" href="classentities_1_1_wall_entity.html#a3006e4856a24086bdd28b7b353b159ff">entities::WallEntity</a>
+</li>
+<li>simpleWallTexture
+: <a class="el" href="classentities_1_1_wall_entity.html#a73c32014a207a92fc1a837f0dda83eb8">entities::WallEntity</a>
+</li>
+<li>speed
+: <a class="el" href="classentities_1_1_living_entity.html#ad8b574e93d1fa34cdd119be6f0391acb">entities::LivingEntity</a>
+</li>
+<li>spoon
+: <a class="el" href="classweapons_1_1_typical_melee_weapon.html#a1988a389241e423445c7b0f6ff2ed23f">weapons::TypicalMeleeWeapon</a>
+</li>
+<li>sprite
+: <a class="el" href="classolc_1_1_decal.html#a93a1e2ae28aa587978e2a66b6328d66a">olc::Decal</a>
+</li>
+<li>sword
+: <a class="el" href="classweapons_1_1_typical_melee_weapon.html#a1eed0cf1fc89f495ccad84dd4acac0eb">weapons::TypicalMeleeWeapon</a>
+</li>
+</ul>
+
+
+<h3><a id="index_t"></a>- t -</h3><ul>
+<li>texture
+: <a class="el" href="classentities_1_1_character_entity.html#a295a77ffb22dd1a7b30164ab04ecf400">entities::CharacterEntity</a>
+</li>
+<li>tint
+: <a class="el" href="structolc_1_1_decal_instance.html#a04f01880bf6d4045b6e1f70aff3e5c8f">olc::DecalInstance</a>
+, <a class="el" href="structolc_1_1_layer_desc.html#af6027ed5757afe2c8c0cd50620d7311f">olc::LayerDesc</a>
+</li>
+</ul>
+
+
+<h3><a id="index_u"></a>- u -</h3><ul>
+<li>user
+: <a class="el" href="classentities_1_1_projectile_entity.html#ab01d1aa4b66b21481d07f7777bfb2ca3">entities::ProjectileEntity</a>
+</li>
+<li>uv
+: <a class="el" href="structolc_1_1_decal_instance.html#a60337d982b4f35b3bb5b1d814fa0d09f">olc::DecalInstance</a>
+</li>
+</ul>
+
+
+<h3><a id="index_v"></a>- v -</h3><ul>
+<li>vecDecalInstance
+: <a class="el" href="structolc_1_1_layer_desc.html#ac6cd952e0ebbd7cde19060b4e3896875">olc::LayerDesc</a>
+</li>
+<li>velocity
+: <a class="el" href="classentities_1_1_projectile_entity.html#a29cb43b58d34f32f18986185bf8691f8">entities::ProjectileEntity</a>
+</li>
+<li>vMemory
+: <a class="el" href="structolc_1_1_resource_buffer.html#a413e818311737396d14838a00df05303">olc::ResourceBuffer</a>
+</li>
+<li>vOffset
+: <a class="el" href="structolc_1_1_layer_desc.html#a1657be3b96c8fbb85fe113ae695fece9">olc::LayerDesc</a>
+</li>
+<li>vScale
+: <a class="el" href="structolc_1_1_layer_desc.html#ab9701d17eb84ab32e93211277cacc763">olc::LayerDesc</a>
+</li>
+<li>vUVScale
+: <a class="el" href="classolc_1_1_decal.html#aff06190e3ca17446d373d5a93a3636c7">olc::Decal</a>
+</li>
+</ul>
+
+
+<h3><a id="index_w"></a>- w -</h3><ul>
+<li>w
+: <a class="el" href="structolc_1_1_decal_instance.html#a3475b1bb41f868f218c759972dec2f73">olc::DecalInstance</a>
+</li>
+<li>WarriorTexture
+: <a class="el" href="classrender_1_1_character_texture.html#a63149d0abd6b6c3fffac01f6bae855eb">render::CharacterTexture</a>
+</li>
+<li>width
+: <a class="el" href="classolc_1_1_sprite.html#af055800e63204ae372ca0812e6926230">olc::Sprite</a>
+</li>
+</ul>
+
+
+<h3><a id="index_x"></a>- x -</h3><ul>
+<li>x
+: <a class="el" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">olc::v2d_generic&lt; T &gt;</a>
+</li>
+</ul>
+
+
+<h3><a id="index_y"></a>- y -</h3><ul>
+<li>y
+: <a class="el" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">olc::v2d_generic&lt; T &gt;</a>
+</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/functions_w.html b/doxy/html/functions_w.html
new file mode 100644
index 0000000000000000000000000000000000000000..fa85a1e5ae234c6cd8e549c19d50a365417b1001
--- /dev/null
+++ b/doxy/html/functions_w.html
@@ -0,0 +1,96 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: Class Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<div class="textblock">Here is a list of all class members with links to the classes they belong to:</div>
+
+<h3><a id="index_w"></a>- w -</h3><ul>
+<li>w
+: <a class="el" href="structolc_1_1_decal_instance.html#a3475b1bb41f868f218c759972dec2f73">olc::DecalInstance</a>
+</li>
+<li>WallEntity()
+: <a class="el" href="classentities_1_1_wall_entity.html#a109600cce4cd0514d320c14b4f8f4813">entities::WallEntity</a>
+</li>
+<li>WallTexture()
+: <a class="el" href="classrender_1_1_wall_texture.html#af0420c11949bbc21421cc21765bd8920">render::WallTexture</a>
+</li>
+<li>WarriorTexture
+: <a class="el" href="classrender_1_1_character_texture.html#a63149d0abd6b6c3fffac01f6bae855eb">render::CharacterTexture</a>
+</li>
+<li>Weapon()
+: <a class="el" href="classweapons_1_1_weapon.html#a28f7b716212ae6b4606cff82501e00a2">weapons::Weapon</a>
+</li>
+<li>width
+: <a class="el" href="classolc_1_1_sprite.html#af055800e63204ae372ca0812e6926230">olc::Sprite</a>
+</li>
+<li>WorldToScreen()
+: <a class="el" href="classolc_1_1_transformed_view.html#a18b18c9718c642ca912d44a133ffde1d">olc::TransformedView</a>
+</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/functions_x.html b/doxy/html/functions_x.html
new file mode 100644
index 0000000000000000000000000000000000000000..b43f581822e82cd22adb9128d90d379f92186614
--- /dev/null
+++ b/doxy/html/functions_x.html
@@ -0,0 +1,78 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: Class Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<div class="textblock">Here is a list of all class members with links to the classes they belong to:</div>
+
+<h3><a id="index_x"></a>- x -</h3><ul>
+<li>x
+: <a class="el" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">olc::v2d_generic&lt; T &gt;</a>
+</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/functions_y.html b/doxy/html/functions_y.html
new file mode 100644
index 0000000000000000000000000000000000000000..b3b26af17278c98d05aa8723c061895d9181a90b
--- /dev/null
+++ b/doxy/html/functions_y.html
@@ -0,0 +1,78 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: Class Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<div class="textblock">Here is a list of all class members with links to the classes they belong to:</div>
+
+<h3><a id="index_y"></a>- y -</h3><ul>
+<li>y
+: <a class="el" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">olc::v2d_generic&lt; T &gt;</a>
+</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/functions_z.html b/doxy/html/functions_z.html
new file mode 100644
index 0000000000000000000000000000000000000000..93be9b9321509fdea8cd2f102ade1a1de94299a5
--- /dev/null
+++ b/doxy/html/functions_z.html
@@ -0,0 +1,78 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: Class Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<div class="textblock">Here is a list of all class members with links to the classes they belong to:</div>
+
+<h3><a id="index_z"></a>- z -</h3><ul>
+<li>ZoomAtScreenPos()
+: <a class="el" href="classolc_1_1_transformed_view.html#a84a8b9030ac97afa9b6099dea5865b9c">olc::TransformedView</a>
+</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/functions_~.html b/doxy/html/functions_~.html
new file mode 100644
index 0000000000000000000000000000000000000000..ec8cd1d52fd14d2c9a33d520a433f744b7a13347
--- /dev/null
+++ b/doxy/html/functions_~.html
@@ -0,0 +1,105 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: Class Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<div class="textblock">Here is a list of all class members with links to the classes they belong to:</div>
+
+<h3><a id="index__7E"></a>- ~ -</h3><ul>
+<li>~Decal()
+: <a class="el" href="classolc_1_1_decal.html#a5c993dab5be43270dce30b44f1d3e50b">olc::Decal</a>
+</li>
+<li>~Entity()
+: <a class="el" href="classentities_1_1_entity.html#a64d968c160dee2fdfca68aff2e49946b">entities::Entity</a>
+</li>
+<li>~ImageLoader()
+: <a class="el" href="classolc_1_1_image_loader.html#a680c0395200ceab209fb96c21cd8b883">olc::ImageLoader</a>
+</li>
+<li>~ITexture()
+: <a class="el" href="classrender_1_1_i_texture.html#a2dcbcad96404d6a0ff64e8053ccde162">render::ITexture</a>
+</li>
+<li>~PixelGameEngine()
+: <a class="el" href="classolc_1_1_pixel_game_engine.html#a423d90134c297f7b9f1834a136071b19">olc::PixelGameEngine</a>
+</li>
+<li>~Platform()
+: <a class="el" href="classolc_1_1_platform.html#a352f636fdc2e30bddac2db85238b166b">olc::Platform</a>
+</li>
+<li>~Renderer()
+: <a class="el" href="classolc_1_1_renderer.html#a877048a1bcf3decfe544804f0e4e1ad9">olc::Renderer</a>
+</li>
+<li>~ResourceManager()
+: <a class="el" href="classrender_1_1_resource_manager.html#a718ece71d629e1fd5b4b3afc967d4381">render::ResourceManager</a>
+</li>
+<li>~ResourcePack()
+: <a class="el" href="classolc_1_1_resource_pack.html#a7e48d44ecdac3d4a2eec7bb5a5eb1ec5">olc::ResourcePack</a>
+</li>
+<li>~Sprite()
+: <a class="el" href="classolc_1_1_sprite.html#a594abc52842c29e4a5417adf57fb877e">olc::Sprite</a>
+</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/game_8cpp.html b/doxy/html/game_8cpp.html
new file mode 100644
index 0000000000000000000000000000000000000000..8265db83785c07d0c8deb7b6b185ff6432ccf104
--- /dev/null
+++ b/doxy/html/game_8cpp.html
@@ -0,0 +1,163 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: C:/Users/kosmx/Documents/GitHub/2d-game/game.cpp File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#define-members">Macros</a> &#124;
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">C:/Users/kosmx/Documents/GitHub/2d-game/game.cpp File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &quot;<a class="el" href="olc_pixel_game_engine_8h_source.html">olcPixelGameEngine.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="main_game_8h_source.html">mainGame.h</a>&quot;</code><br />
+<code>#include &lt;iostream&gt;</code><br />
+<code>#include &lt;string&gt;</code><br />
+<code>#include &lt;random&gt;</code><br />
+<code>#include &lt;time.h&gt;</code><br />
+</div>
+<p><a href="game_8cpp_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
+Macros</h2></td></tr>
+<tr class="memitem:a1263ab7caa5c273b04d3fcfac6814370"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="game_8cpp.html#a1263ab7caa5c273b04d3fcfac6814370">OLC_PGE_APPLICATION</a></td></tr>
+<tr class="separator:a1263ab7caa5c273b04d3fcfac6814370"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:addb987782a88225c5c14f86c3db1cbb0"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="game_8cpp.html#addb987782a88225c5c14f86c3db1cbb0">OLC_PGEX_TRANSFORMEDVIEW</a></td></tr>
+<tr class="separator:addb987782a88225c5c14f86c3db1cbb0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a0ddf1224851353fc92bfbff6f499fa97"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="game_8cpp.html#a0ddf1224851353fc92bfbff6f499fa97">main</a> (int argc, char *argv[])</td></tr>
+<tr class="separator:a0ddf1224851353fc92bfbff6f499fa97"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Macro Definition Documentation</h2>
+<a id="a1263ab7caa5c273b04d3fcfac6814370"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a1263ab7caa5c273b04d3fcfac6814370">&#9670;&nbsp;</a></span>OLC_PGE_APPLICATION</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define OLC_PGE_APPLICATION</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="game_8cpp_source.html#l00001">1</a> of file <a class="el" href="game_8cpp_source.html">game.cpp</a>.</p>
+
+</div>
+</div>
+<a id="addb987782a88225c5c14f86c3db1cbb0"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#addb987782a88225c5c14f86c3db1cbb0">&#9670;&nbsp;</a></span>OLC_PGEX_TRANSFORMEDVIEW</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define OLC_PGEX_TRANSFORMEDVIEW</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="game_8cpp_source.html#l00002">2</a> of file <a class="el" href="game_8cpp_source.html">game.cpp</a>.</p>
+
+</div>
+</div>
+<h2 class="groupheader">Function Documentation</h2>
+<a id="a0ddf1224851353fc92bfbff6f499fa97"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a0ddf1224851353fc92bfbff6f499fa97">&#9670;&nbsp;</a></span>main()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int main </td>
+          <td>(</td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>argc</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">char *&#160;</td>
+          <td class="paramname"><em>argv</em>[]&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="game_8cpp_source.html#l00013">13</a> of file <a class="el" href="game_8cpp_source.html">game.cpp</a>.</p>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/game_8cpp_source.html b/doxy/html/game_8cpp_source.html
new file mode 100644
index 0000000000000000000000000000000000000000..14bc15f78567e2cc9bb6a53cdb7db74d3a47b00f
--- /dev/null
+++ b/doxy/html/game_8cpp_source.html
@@ -0,0 +1,129 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: C:/Users/kosmx/Documents/GitHub/2d-game/game.cpp Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="headertitle">
+<div class="title">C:/Users/kosmx/Documents/GitHub/2d-game/game.cpp</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="game_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"><a class="line" href="game_8cpp.html#a1263ab7caa5c273b04d3fcfac6814370">    1</a></span>&#160;<span class="preprocessor">#define OLC_PGE_APPLICATION</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno"><a class="line" href="game_8cpp.html#addb987782a88225c5c14f86c3db1cbb0">    2</a></span>&#160;<span class="preprocessor">#define OLC_PGEX_TRANSFORMEDVIEW</span></div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="olc_pixel_game_engine_8h.html">olcPixelGameEngine.h</a>&quot;</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="main_game_8h.html">mainGame.h</a>&quot;</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160; </div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="preprocessor">#include &lt;iostream&gt;</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="preprocessor">#include &lt;string&gt;</span></div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="preprocessor">#include &lt;random&gt;</span></div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="preprocessor">#include &lt;time.h&gt;</span></div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160; </div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="keyword">using namespace </span>std;</div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160; </div>
+<div class="line"><a name="l00013"></a><span class="lineno"><a class="line" href="game_8cpp.html#a0ddf1224851353fc92bfbff6f499fa97">   13</a></span>&#160;<span class="keywordtype">int</span> <a class="code" href="game_8cpp.html#a0ddf1224851353fc92bfbff6f499fa97">main</a>(<span class="keywordtype">int</span> argc, <span class="keywordtype">char</span>* argv[])</div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;{</div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;    cout &lt;&lt; argv[0] &lt;&lt; endl;</div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;    </div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;    <span class="keywordtype">bool</span> invalidArg = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;    <span class="keywordtype">bool</span> debug = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;    <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; argc; i++){</div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;        std::string tmp(argv[i]);</div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;        <span class="keywordflow">if</span>(tmp == <span class="stringliteral">&quot;-r&quot;</span> || tmp == <span class="stringliteral">&quot;--resource&quot;</span>){</div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;            <span class="keywordflow">if</span>(i + 1 &lt; argc){</div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;                cout &lt;&lt; <span class="stringliteral">&quot;O.K. I&#39;ll read it, but //TODO&quot;</span> &lt;&lt; endl;</div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;                <span class="comment">//TODO</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;            }</div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;            <span class="keywordflow">else</span>{</div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;                invalidArg = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;            }</div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;        }</div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;        <span class="keywordflow">else</span> <span class="keywordflow">if</span>(tmp == <span class="stringliteral">&quot;-d&quot;</span>){</div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;            debug = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;        }</div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;    }</div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;    <span class="keywordflow">if</span>(invalidArg){</div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;        cout &lt;&lt; <span class="stringliteral">&quot;Invalid arguments&quot;</span> &lt;&lt; endl;</div>
+<div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;        <span class="comment">//TODO write something meaningful</span></div>
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;        <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;    }</div>
+<div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160; </div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;    srand(time(<span class="keyword">nullptr</span>));</div>
+<div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;    </div>
+<div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;    <a class="code" href="class_game_client.html">GameClient</a>&amp; client = GameClient::createInstance(debug);</div>
+<div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;    </div>
+<div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;    <span class="keywordflow">if</span>(client.<a class="code" href="classolc_1_1_pixel_game_engine.html#af1a9cf3b38dda2071b7ec18868ee1ccd">Construct</a>(512, 400, 2, 2)){</div>
+<div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;        client.<a class="code" href="classolc_1_1_pixel_game_engine.html#a8e8848aa1c743a1ec2cdaa14c87e5cde">Start</a>();</div>
+<div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;    }</div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;    <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;}</div>
+</div><!-- fragment --></div><!-- contents -->
+<div class="ttc" id="aclassolc_1_1_pixel_game_engine_html_af1a9cf3b38dda2071b7ec18868ee1ccd"><div class="ttname"><a href="classolc_1_1_pixel_game_engine.html#af1a9cf3b38dda2071b7ec18868ee1ccd">olc::PixelGameEngine::Construct</a></div><div class="ttdeci">olc::rcode Construct(int32_t screen_w, int32_t screen_h, int32_t pixel_w, int32_t pixel_h, bool full_screen=false, bool vsync=false, bool cohesion=false)</div></div>
+<div class="ttc" id="aolc_pixel_game_engine_8h_html"><div class="ttname"><a href="olc_pixel_game_engine_8h.html">olcPixelGameEngine.h</a></div></div>
+<div class="ttc" id="agame_8cpp_html_a0ddf1224851353fc92bfbff6f499fa97"><div class="ttname"><a href="game_8cpp.html#a0ddf1224851353fc92bfbff6f499fa97">main</a></div><div class="ttdeci">int main(int argc, char *argv[])</div><div class="ttdef"><b>Definition:</b> <a href="game_8cpp_source.html#l00013">game.cpp:13</a></div></div>
+<div class="ttc" id="aclass_game_client_html"><div class="ttname"><a href="class_game_client.html">GameClient</a></div><div class="ttdoc">The game main class itself. manages the entities, adjust the screen...</div><div class="ttdef"><b>Definition:</b> <a href="main_game_8h_source.html#l00011">mainGame.h:13</a></div></div>
+<div class="ttc" id="aclassolc_1_1_pixel_game_engine_html_a8e8848aa1c743a1ec2cdaa14c87e5cde"><div class="ttname"><a href="classolc_1_1_pixel_game_engine.html#a8e8848aa1c743a1ec2cdaa14c87e5cde">olc::PixelGameEngine::Start</a></div><div class="ttdeci">olc::rcode Start()</div></div>
+<div class="ttc" id="amain_game_8h_html"><div class="ttname"><a href="main_game_8h.html">mainGame.h</a></div></div>
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/globals.html b/doxy/html/globals.html
new file mode 100644
index 0000000000000000000000000000000000000000..2b999b7c11b914ca158a50b616795f6923d78af6
--- /dev/null
+++ b/doxy/html/globals.html
@@ -0,0 +1,137 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: File Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<div class="textblock">Here is a list of all file members with links to the files they belong to:</div><ul>
+<li>_SILENCE_EXPERIMENTAL_FILESYSTEM_DEPRECATION_WARNING
+: <a class="el" href="olc_pixel_game_engine_8h.html#aab6af62131aad81d17d3b4afd9db334f">olcPixelGameEngine.h</a>
+</li>
+<li>explosionRadius
+: <a class="el" href="_explosive_projectile_8cpp.html#a5eca5e4f5f408cb99671021a490cfac4">ExplosiveProjectile.cpp</a>
+</li>
+<li>ignoreDistance
+: <a class="el" href="_entity_8cpp.html#abbe123cdd88a2c284df8426f38efafca">Entity.cpp</a>
+</li>
+<li>main()
+: <a class="el" href="game_8cpp.html#a0ddf1224851353fc92bfbff6f499fa97">game.cpp</a>
+</li>
+<li>maxAttackCooldown
+: <a class="el" href="_entity_with_a_i_8cpp.html#a57be3a52c6744615f203955322706cfc">EntityWithAI.cpp</a>
+</li>
+<li>maxProjectileAge
+: <a class="el" href="_projectile_entity_8cpp.html#a3e9bff6f87d6a4caeac7578a37192511">ProjectileEntity.cpp</a>
+</li>
+<li>maxSize
+: <a class="el" href="_square_room_generator_8cpp.html#af598d998387dbc59923042b09ff6a63a">SquareRoomGenerator.cpp</a>
+</li>
+<li>maxTimeDelta
+: <a class="el" href="main_game_8cpp.html#aa8c13326fceadba77254d2971649a3ab">mainGame.cpp</a>
+</li>
+<li>maxWeaponPickupRange
+: <a class="el" href="_player_entity_8cpp.html#a3c781e763876e55aa6ab889f192e17ca">PlayerEntity.cpp</a>
+</li>
+<li>minSize
+: <a class="el" href="_square_room_generator_8cpp.html#a03e2392026add58812e6bad00bee5b84">SquareRoomGenerator.cpp</a>
+</li>
+<li>OLC_GFX_OPENGL10
+: <a class="el" href="olc_pixel_game_engine_8h.html#a3778ec518130e256bc0f11a7b8ba82bc">olcPixelGameEngine.h</a>
+</li>
+<li>OLC_PGE_APPLICATION
+: <a class="el" href="game_8cpp.html#a1263ab7caa5c273b04d3fcfac6814370">game.cpp</a>
+</li>
+<li>OLC_PGEX_TRANSFORMEDVIEW
+: <a class="el" href="game_8cpp.html#addb987782a88225c5c14f86c3db1cbb0">game.cpp</a>
+</li>
+<li>OLC_PGEX_TRANSFORMEDVIEW_H
+: <a class="el" href="olc_p_g_e_x___transformed_view_8h.html#a47f1ada970406eff596ebe181debec3d">olcPGEX_TransformedView.h</a>
+</li>
+<li>olcT
+: <a class="el" href="olc_pixel_game_engine_8h.html#ac02283d1990a8623a332f7f7f2230a1f">olcPixelGameEngine.h</a>
+</li>
+<li>operator+=()
+: <a class="el" href="_entity_8cpp.html#a84cbcaa4d8a9e6ac00abf777323fb212">Entity.cpp</a>
+, <a class="el" href="_entity_8h.html#afba80426f5df447305cca8887a8ff92d">Entity.h</a>
+</li>
+<li>PGE_VER
+: <a class="el" href="olc_pixel_game_engine_8h.html#a6301d810e4f45704594786997b2261ea">olcPixelGameEngine.h</a>
+</li>
+<li>screenMoveScale
+: <a class="el" href="main_game_8cpp.html#a7f4c2bc4db6ed1d3f59d20429bcca8db">mainGame.cpp</a>
+</li>
+<li>UNUSED
+: <a class="el" href="olc_pixel_game_engine_8h.html#a86d500a34c624c2cae56bc25a31b12f3">olcPixelGameEngine.h</a>
+</li>
+<li>USE_EXPERIMENTAL_FS
+: <a class="el" href="olc_pixel_game_engine_8h.html#a7f7123ffe9352ede10ecc711ae8901d3">olcPixelGameEngine.h</a>
+</li>
+<li>worldToScreenScale
+: <a class="el" href="main_game_8cpp.html#ab553cccbcdbb19b4f2c3a1a727eeb867">mainGame.cpp</a>
+</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/globals_defs.html b/doxy/html/globals_defs.html
new file mode 100644
index 0000000000000000000000000000000000000000..70f769ddb4d09def861ee41137ecd72ac643be95
--- /dev/null
+++ b/doxy/html/globals_defs.html
@@ -0,0 +1,100 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: File Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+&#160;<ul>
+<li>_SILENCE_EXPERIMENTAL_FILESYSTEM_DEPRECATION_WARNING
+: <a class="el" href="olc_pixel_game_engine_8h.html#aab6af62131aad81d17d3b4afd9db334f">olcPixelGameEngine.h</a>
+</li>
+<li>OLC_GFX_OPENGL10
+: <a class="el" href="olc_pixel_game_engine_8h.html#a3778ec518130e256bc0f11a7b8ba82bc">olcPixelGameEngine.h</a>
+</li>
+<li>OLC_PGE_APPLICATION
+: <a class="el" href="game_8cpp.html#a1263ab7caa5c273b04d3fcfac6814370">game.cpp</a>
+</li>
+<li>OLC_PGEX_TRANSFORMEDVIEW
+: <a class="el" href="game_8cpp.html#addb987782a88225c5c14f86c3db1cbb0">game.cpp</a>
+</li>
+<li>OLC_PGEX_TRANSFORMEDVIEW_H
+: <a class="el" href="olc_p_g_e_x___transformed_view_8h.html#a47f1ada970406eff596ebe181debec3d">olcPGEX_TransformedView.h</a>
+</li>
+<li>olcT
+: <a class="el" href="olc_pixel_game_engine_8h.html#ac02283d1990a8623a332f7f7f2230a1f">olcPixelGameEngine.h</a>
+</li>
+<li>PGE_VER
+: <a class="el" href="olc_pixel_game_engine_8h.html#a6301d810e4f45704594786997b2261ea">olcPixelGameEngine.h</a>
+</li>
+<li>UNUSED
+: <a class="el" href="olc_pixel_game_engine_8h.html#a86d500a34c624c2cae56bc25a31b12f3">olcPixelGameEngine.h</a>
+</li>
+<li>USE_EXPERIMENTAL_FS
+: <a class="el" href="olc_pixel_game_engine_8h.html#a7f7123ffe9352ede10ecc711ae8901d3">olcPixelGameEngine.h</a>
+</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/globals_func.html b/doxy/html/globals_func.html
new file mode 100644
index 0000000000000000000000000000000000000000..6c29262b98e37f404854b4a2b2c8fe98b8c3c9a3
--- /dev/null
+++ b/doxy/html/globals_func.html
@@ -0,0 +1,80 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: File Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+&#160;<ul>
+<li>main()
+: <a class="el" href="game_8cpp.html#a0ddf1224851353fc92bfbff6f499fa97">game.cpp</a>
+</li>
+<li>operator+=()
+: <a class="el" href="_entity_8cpp.html#a84cbcaa4d8a9e6ac00abf777323fb212">Entity.cpp</a>
+, <a class="el" href="_entity_8h.html#afba80426f5df447305cca8887a8ff92d">Entity.h</a>
+</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/globals_vars.html b/doxy/html/globals_vars.html
new file mode 100644
index 0000000000000000000000000000000000000000..f20f1cdd9d2aad929996fa7c8c16009b8a84fb68
--- /dev/null
+++ b/doxy/html/globals_vars.html
@@ -0,0 +1,103 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: File Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+&#160;<ul>
+<li>explosionRadius
+: <a class="el" href="_explosive_projectile_8cpp.html#a5eca5e4f5f408cb99671021a490cfac4">ExplosiveProjectile.cpp</a>
+</li>
+<li>ignoreDistance
+: <a class="el" href="_entity_8cpp.html#abbe123cdd88a2c284df8426f38efafca">Entity.cpp</a>
+</li>
+<li>maxAttackCooldown
+: <a class="el" href="_entity_with_a_i_8cpp.html#a57be3a52c6744615f203955322706cfc">EntityWithAI.cpp</a>
+</li>
+<li>maxProjectileAge
+: <a class="el" href="_projectile_entity_8cpp.html#a3e9bff6f87d6a4caeac7578a37192511">ProjectileEntity.cpp</a>
+</li>
+<li>maxSize
+: <a class="el" href="_square_room_generator_8cpp.html#af598d998387dbc59923042b09ff6a63a">SquareRoomGenerator.cpp</a>
+</li>
+<li>maxTimeDelta
+: <a class="el" href="main_game_8cpp.html#aa8c13326fceadba77254d2971649a3ab">mainGame.cpp</a>
+</li>
+<li>maxWeaponPickupRange
+: <a class="el" href="_player_entity_8cpp.html#a3c781e763876e55aa6ab889f192e17ca">PlayerEntity.cpp</a>
+</li>
+<li>minSize
+: <a class="el" href="_square_room_generator_8cpp.html#a03e2392026add58812e6bad00bee5b84">SquareRoomGenerator.cpp</a>
+</li>
+<li>screenMoveScale
+: <a class="el" href="main_game_8cpp.html#a7f4c2bc4db6ed1d3f59d20429bcca8db">mainGame.cpp</a>
+</li>
+<li>worldToScreenScale
+: <a class="el" href="main_game_8cpp.html#ab553cccbcdbb19b4f2c3a1a727eeb867">mainGame.cpp</a>
+</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/hierarchy.html b/doxy/html/hierarchy.html
new file mode 100644
index 0000000000000000000000000000000000000000..4dea478a4c886e7bf4018a7f61d18d78466185c8
--- /dev/null
+++ b/doxy/html/hierarchy.html
@@ -0,0 +1,133 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: Class Hierarchy</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="headertitle">
+<div class="title">Class Hierarchy</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock">This inheritance list is sorted roughly, but not completely, alphabetically:</div><div class="directory">
+<div class="levels">[detail level <span onclick="javascript:toggleLevel(1);">1</span><span onclick="javascript:toggleLevel(2);">2</span><span onclick="javascript:toggleLevel(3);">3</span><span onclick="javascript:toggleLevel(4);">4</span><span onclick="javascript:toggleLevel(5);">5</span><span onclick="javascript:toggleLevel(6);">6</span>]</div><table class="directory">
+<tr id="row_0_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classolc_1_1_decal.html" target="_self">olc::Decal</a></td><td class="desc"></td></tr>
+<tr id="row_1_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structolc_1_1_decal_instance.html" target="_self">olc::DecalInstance</a></td><td class="desc"></td></tr>
+<tr id="row_2_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_2_" class="arrow" onclick="toggleFolder('2_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_dungeon_generator.html" target="_self">DungeonGenerator</a></td><td class="desc">Generate random dungeons.. </td></tr>
+<tr id="row_2_0_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_square_room_generator.html" target="_self">SquareRoomGenerator</a></td><td class="desc">Generates a weird square dungeon, filled with stupid enemies and weapons </td></tr>
+<tr id="row_2_1_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_test_generator.html" target="_self">TestGenerator</a></td><td class="desc">Used for testing, doesn't random </td></tr>
+<tr id="row_3_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_dynamic_array.html" target="_self">DynamicArray&lt; T &gt;</a></td><td class="desc">Dynamic array, to store entities, have a buffer, to don't tick newly added entities too early </td></tr>
+<tr id="row_4_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_dynamic_array.html" target="_self">DynamicArray&lt; std::shared_ptr&lt; entities::Entity &gt; &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_5_"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_5_" class="arrow" onclick="toggleFolder('5_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classentities_1_1_entity.html" target="_self">entities::Entity</a></td><td class="desc">Every object, what can be on the map </td></tr>
+<tr id="row_5_0_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_5_0_" class="arrow" onclick="toggleFolder('5_0_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classentities_1_1_living_entity.html" target="_self">entities::LivingEntity</a></td><td class="desc">Any moving animal or player </td></tr>
+<tr id="row_5_0_0_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_5_0_0_" class="arrow" onclick="toggleFolder('5_0_0_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classentities_1_1_character_entity.html" target="_self">entities::CharacterEntity</a></td><td class="desc">A player or an enemy </td></tr>
+<tr id="row_5_0_0_0_" class="even"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classentities_1_1_dummy_entity.html" target="_self">entities::DummyEntity</a></td><td class="desc">A test/dummy entity. it can't do anything... no, it can die </td></tr>
+<tr id="row_5_0_0_1_"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classentities_1_1_entity_with_a_i.html" target="_self">entities::EntityWithAI</a></td><td class="desc">The enemies. go after the player, and try to kill it </td></tr>
+<tr id="row_5_0_0_2_" class="even"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classentities_1_1_player_entity.html" target="_self">entities::PlayerEntity</a></td><td class="desc">You, or the player </td></tr>
+<tr id="row_5_1_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_5_1_" class="arrow" onclick="toggleFolder('5_1_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classentities_1_1_projectile_entity.html" target="_self">entities::ProjectileEntity</a></td><td class="desc">A projectile, a bullet </td></tr>
+<tr id="row_5_1_0_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classentities_1_1_explosive_projectile.html" target="_self">entities::ExplosiveProjectile</a></td><td class="desc">A projectile, that explodes </td></tr>
+<tr id="row_5_2_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classentities_1_1_wall_entity.html" target="_self">entities::WallEntity</a></td><td class="desc">Just a stupid wall, it doesn't do much, can't be killed.. </td></tr>
+<tr id="row_5_3_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_5_3_" class="arrow" onclick="toggleFolder('5_3_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classweapons_1_1_weapon.html" target="_self">weapons::Weapon</a></td><td class="desc">You can throw it to the ground, this is why it's an entity. But it will be possible to use it. and shoot enemies, or projectiles </td></tr>
+<tr id="row_5_3_0_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_5_3_0_" class="arrow" onclick="toggleFolder('5_3_0_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classweapons_1_1_melee_weapon.html" target="_self">weapons::MeleeWeapon</a></td><td class="desc">A melee weapon, like a spoon </td></tr>
+<tr id="row_5_3_0_0_" class="even"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classweapons_1_1_typical_melee_weapon.html" target="_self">weapons::TypicalMeleeWeapon</a></td><td class="desc">A typical melee weapon. I want to do not typical melee weapons too </td></tr>
+<tr id="row_5_3_1_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_5_3_1_" class="arrow" onclick="toggleFolder('5_3_1_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classweapons_1_1_ranged_weapon.html" target="_self">weapons::RangedWeapon</a></td><td class="desc">Any weapon, what does shoot. not melee </td></tr>
+<tr id="row_5_3_1_0_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span id="arr_5_3_1_0_" class="arrow" onclick="toggleFolder('5_3_1_0_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classweapons_1_1_pistol.html" target="_self">weapons::Pistol</a></td><td class="desc">Just a pistol, nothing too dangerous </td></tr>
+<tr id="row_5_3_1_0_0_"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span id="arr_5_3_1_0_0_" class="arrow" onclick="toggleFolder('5_3_1_0_0_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classweapons_1_1_e_m_gun.html" target="_self">weapons::EMGun</a></td><td class="desc"><a class="el" href="classweapons_1_1_weapon.html" title="You can throw it to the ground, this is why it&#39;s an entity. But it will be possible to use it....">Weapon</a> with energy level </td></tr>
+<tr id="row_5_3_1_0_0_0_" class="even"><td class="entry"><span style="width:96px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classweapons_1_1_glitch_gun.html" target="_self">weapons::GlitchGun</a></td><td class="desc">TODO make the bug weapon more buggy </td></tr>
+<tr id="row_6_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structolc_1_1_h_w_button.html" target="_self">olc::HWButton</a></td><td class="desc"></td></tr>
+<tr id="row_7_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classolc_1_1_image_loader.html" target="_self">olc::ImageLoader</a></td><td class="desc"></td></tr>
+<tr id="row_8_"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_8_" class="arrow" onclick="toggleFolder('8_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classrender_1_1_i_texture.html" target="_self">render::ITexture</a></td><td class="desc">Every texture, what can render an entity </td></tr>
+<tr id="row_8_0_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classrender_1_1_character_texture.html" target="_self">render::CharacterTexture</a></td><td class="desc">Texture for CharacterEntities </td></tr>
+<tr id="row_8_1_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classrender_1_1_simple_sprite.html" target="_self">render::SimpleSprite</a></td><td class="desc">Simplest useable texture </td></tr>
+<tr id="row_8_2_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classrender_1_1_wall_texture.html" target="_self">render::WallTexture</a></td><td class="desc">Texture to render walls, with 16 possible states </td></tr>
+<tr id="row_8_3_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classweapons_1_1_glitch_texture.html" target="_self">weapons::GlitchTexture</a></td><td class="desc">Texture for the bug weapon </td></tr>
+<tr id="row_9_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structolc_1_1_layer_desc.html" target="_self">olc::LayerDesc</a></td><td class="desc"></td></tr>
+<tr id="row_10_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classrender_1_1_lazy_sprite.html" target="_self">render::LazySprite</a></td><td class="desc">Refer to one texture, not animated, not modifiable, just a simple image. Lazy loading means, it will load it only, when you're trying to use it </td></tr>
+<tr id="row_11_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_11_" class="arrow" onclick="toggleFolder('11_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classolc_1_1_p_g_e_x.html" target="_self">olc::PGEX</a></td><td class="desc"></td></tr>
+<tr id="row_11_0_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_11_0_" class="arrow" onclick="toggleFolder('11_0_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classolc_1_1_transformed_view.html" target="_self">olc::TransformedView</a></td><td class="desc"></td></tr>
+<tr id="row_11_0_0_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classolc_1_1_tile_transformed_view.html" target="_self">olc::TileTransformedView</a></td><td class="desc"></td></tr>
+<tr id="row_12_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structolc_1_1_pixel.html" target="_self">olc::Pixel</a></td><td class="desc"></td></tr>
+<tr id="row_13_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_13_" class="arrow" onclick="toggleFolder('13_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classolc_1_1_pixel_game_engine.html" target="_self">olc::PixelGameEngine</a></td><td class="desc"></td></tr>
+<tr id="row_13_0_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_game_client.html" target="_self">GameClient</a></td><td class="desc">The game main class itself. manages the entities, adjust the screen.. </td></tr>
+<tr id="row_14_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classolc_1_1_platform.html" target="_self">olc::Platform</a></td><td class="desc"></td></tr>
+<tr id="row_15_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classweapons_1_1_melee_weapon_1_1predicate_distance.html" target="_self">weapons::MeleeWeapon::predicateDistance</a></td><td class="desc">Functor to predicate entity distance. You can also use lambda, if you want </td></tr>
+<tr id="row_16_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classolc_1_1_renderable.html" target="_self">olc::Renderable</a></td><td class="desc"></td></tr>
+<tr id="row_17_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classolc_1_1_renderer.html" target="_self">olc::Renderer</a></td><td class="desc"></td></tr>
+<tr id="row_18_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_render_exception.html" target="_self">RenderException</a></td><td class="desc"></td></tr>
+<tr id="row_19_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classrender_1_1_resource_manager.html" target="_self">render::ResourceManager</a></td><td class="desc">Load every sprite only once, act as a set for loaded textures </td></tr>
+<tr id="row_20_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_20_" class="arrow" onclick="toggleFolder('20_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><b>runtime_error</b></td><td class="desc"></td></tr>
+<tr id="row_20_0_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_game_exception.html" target="_self">GameException</a></td><td class="desc"></td></tr>
+<tr id="row_21_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classolc_1_1_sprite.html" target="_self">olc::Sprite</a></td><td class="desc"></td></tr>
+<tr id="row_22_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classrender_1_1_sprite_manager.html" target="_self">render::SpriteManager</a></td><td class="desc"></td></tr>
+<tr id="row_23_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_23_" class="arrow" onclick="toggleFolder('23_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><b>streambuf</b></td><td class="desc"></td></tr>
+<tr id="row_23_0_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structolc_1_1_resource_buffer.html" target="_self">olc::ResourceBuffer</a></td><td class="desc"></td></tr>
+<tr id="row_23_1_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classolc_1_1_resource_pack.html" target="_self">olc::ResourcePack</a></td><td class="desc"></td></tr>
+<tr id="row_24_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structolc_1_1v2d__generic.html" target="_self">olc::v2d_generic&lt; T &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_25_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structolc_1_1v2d__generic.html" target="_self">olc::v2d_generic&lt; float &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_26_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structolc_1_1v2d__generic.html" target="_self">olc::v2d_generic&lt; int32_t &gt;</a></td><td class="desc"></td></tr>
+</table>
+</div><!-- directory -->
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/index.html b/doxy/html/index.html
new file mode 100644
index 0000000000000000000000000000000000000000..493c403eb95564cd9824179c0440f2bc7422bf61
--- /dev/null
+++ b/doxy/html/index.html
@@ -0,0 +1,75 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: Main Page</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="headertitle">
+<div class="title">2D-game Documentation</div>  </div>
+</div><!--header-->
+<div class="contents">
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/jquery.js b/doxy/html/jquery.js
new file mode 100644
index 0000000000000000000000000000000000000000..103c32d79b749c24101fba7ff19fd17ee1a59724
--- /dev/null
+++ b/doxy/html/jquery.js
@@ -0,0 +1,35 @@
+/*! jQuery v3.4.1 | (c) JS Foundation and other contributors | jquery.org/license */
+!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],E=C.document,r=Object.getPrototypeOf,s=t.slice,g=t.concat,u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType},x=function(e){return null!=e&&e===e.window},c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.4.1",k=function(e,t){return new k.fn.init(e,t)},p=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;function d(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0<t&&t-1 in e)}k.fn=k.prototype={jquery:f,constructor:k,length:0,toArray:function(){return s.call(this)},get:function(e){return null==e?s.call(this):e<0?this[e+this.length]:this[e]},pushStack:function(e){var t=k.merge(this.constructor(),e);return t.prevObject=this,t},each:function(e){return k.each(this,e)},map:function(n){return this.pushStack(k.map(this,function(e,t){return n.call(e,t,e)}))},slice:function(){return this.pushStack(s.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(e<0?t:0);return this.pushStack(0<=n&&n<t?[this[n]]:[])},end:function(){return this.prevObject||this.constructor()},push:u,sort:t.sort,splice:t.splice},k.extend=k.fn.extend=function(){var e,t,n,r,i,o,a=arguments[0]||{},s=1,u=arguments.length,l=!1;for("boolean"==typeof a&&(l=a,a=arguments[s]||{},s++),"object"==typeof a||m(a)||(a={}),s===u&&(a=this,s--);s<u;s++)if(null!=(e=arguments[s]))for(t in e)r=e[t],"__proto__"!==t&&a!==r&&(l&&r&&(k.isPlainObject(r)||(i=Array.isArray(r)))?(n=a[t],o=i&&!Array.isArray(n)?[]:i||k.isPlainObject(n)?n:{},i=!1,a[t]=k.extend(l,o,r)):void 0!==r&&(a[t]=r));return a},k.extend({expando:"jQuery"+(f+Math.random()).replace(/\D/g,""),isReady:!0,error:function(e){throw new Error(e)},noop:function(){},isPlainObject:function(e){var t,n;return!(!e||"[object Object]"!==o.call(e))&&(!(t=r(e))||"function"==typeof(n=v.call(t,"constructor")&&t.constructor)&&a.call(n)===l)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},globalEval:function(e,t){b(e,{nonce:t&&t.nonce})},each:function(e,t){var n,r=0;if(d(e)){for(n=e.length;r<n;r++)if(!1===t.call(e[r],r,e[r]))break}else for(r in e)if(!1===t.call(e[r],r,e[r]))break;return e},trim:function(e){return null==e?"":(e+"").replace(p,"")},makeArray:function(e,t){var n=t||[];return null!=e&&(d(Object(e))?k.merge(n,"string"==typeof e?[e]:e):u.call(n,e)),n},inArray:function(e,t,n){return null==t?-1:i.call(t,e,n)},merge:function(e,t){for(var n=+t.length,r=0,i=e.length;r<n;r++)e[i++]=t[r];return e.length=i,e},grep:function(e,t,n){for(var r=[],i=0,o=e.length,a=!n;i<o;i++)!t(e[i],i)!==a&&r.push(e[i]);return r},map:function(e,t,n){var r,i,o=0,a=[];if(d(e))for(r=e.length;o<r;o++)null!=(i=t(e[o],o,n))&&a.push(i);else for(o in e)null!=(i=t(e[o],o,n))&&a.push(i);return g.apply([],a)},guid:1,support:y}),"function"==typeof Symbol&&(k.fn[Symbol.iterator]=t[Symbol.iterator]),k.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(e,t){n["[object "+t+"]"]=t.toLowerCase()});var h=function(n){var e,d,b,o,i,h,f,g,w,u,l,T,C,a,E,v,s,c,y,k="sizzle"+1*new Date,m=n.document,S=0,r=0,p=ue(),x=ue(),N=ue(),A=ue(),D=function(e,t){return e===t&&(l=!0),0},j={}.hasOwnProperty,t=[],q=t.pop,L=t.push,H=t.push,O=t.slice,P=function(e,t){for(var n=0,r=e.length;n<r;n++)if(e[n]===t)return n;return-1},R="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",M="[\\x20\\t\\r\\n\\f]",I="(?:\\\\.|[\\w-]|[^\0-\\xa0])+",W="\\["+M+"*("+I+")(?:"+M+"*([*^$|!~]?=)"+M+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+I+"))|)"+M+"*\\]",$=":("+I+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+W+")*)|.*)\\)|)",F=new RegExp(M+"+","g"),B=new RegExp("^"+M+"+|((?:^|[^\\\\])(?:\\\\.)*)"+M+"+$","g"),_=new RegExp("^"+M+"*,"+M+"*"),z=new RegExp("^"+M+"*([>+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp($),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+$),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\([\\da-f]{1,6}"+M+"?|("+M+")|.)","ig"),ne=function(e,t,n){var r="0x"+t-65536;return r!=r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(m.childNodes),m.childNodes),t[m.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&((e?e.ownerDocument||e:m)!==C&&T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!A[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&U.test(t)){(s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=k),o=(l=h(t)).length;while(o--)l[o]="#"+s+" "+xe(l[o]);c=l.join(","),f=ee.test(t)&&ye(e.parentNode)||e}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){A(t,!0)}finally{s===k&&e.removeAttribute("id")}}}return g(t.replace(B,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[k]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e.namespaceURI,n=(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:m;return r!==C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),m!==C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=k,!C.getElementsByName||!C.getElementsByName(k).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){a.appendChild(e).innerHTML="<a id='"+k+"'></a><select id='"+k+"-\r\\' msallowcapture=''><option selected=''></option></select>",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+k+"-]").length||v.push("~="),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+k+"+*").length||v.push(".#.+[+~]")}),ce(function(e){e.innerHTML="<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",$)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e===C||e.ownerDocument===m&&y(m,e)?-1:t===C||t.ownerDocument===m&&y(m,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e===C?-1:t===C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]===m?-1:s[r]===m?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if((e.ownerDocument||e)!==C&&T(e),d.matchesSelector&&E&&!A[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){A(t,!0)}return 0<se(t,C,null,[e]).length},se.contains=function(e,t){return(e.ownerDocument||e)!==C&&T(e),y(e,t)},se.attr=function(e,t){(e.ownerDocument||e)!==C&&T(e);var n=b.attrHandle[t.toLowerCase()],r=n&&j.call(b.attrHandle,t.toLowerCase())?n(e,t,!E):void 0;return void 0!==r?r:d.attributes||!E?e.getAttribute(t):(r=e.getAttributeNode(t))&&r.specified?r.value:null},se.escape=function(e){return(e+"").replace(re,ie)},se.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},se.uniqueSort=function(e){var t,n=[],r=0,i=0;if(l=!d.detectDuplicates,u=!d.sortStable&&e.slice(0),e.sort(D),l){while(t=e[i++])t===e[i]&&(r=n.push(i));while(r--)e.splice(n[r],1)}return u=null,e},o=se.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=o(e)}else if(3===i||4===i)return e.nodeValue}else while(t=e[r++])n+=o(t);return n},(b=se.selectors={cacheLength:50,createPseudo:le,match:G,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=p[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&p(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1<t.indexOf(i):"$="===r?i&&t.slice(-i.length)===i:"~="===r?-1<(" "+t.replace(F," ")+" ").indexOf(i):"|="===r&&(t===i||t.slice(0,i.length+1)===i+"-"))}},CHILD:function(h,e,t,g,v){var y="nth"!==h.slice(0,3),m="last"!==h.slice(-4),x="of-type"===e;return 1===g&&0===v?function(e){return!!e.parentNode}:function(e,t,n){var r,i,o,a,s,u,l=y!==m?"nextSibling":"previousSibling",c=e.parentNode,f=x&&e.nodeName.toLowerCase(),p=!n&&!x,d=!1;if(c){if(y){while(l){a=e;while(a=a[l])if(x?a.nodeName.toLowerCase()===f:1===a.nodeType)return!1;u=l="only"===h&&!u&&"nextSibling"}return!0}if(u=[m?c.firstChild:c.lastChild],m&&p){d=(s=(r=(i=(o=(a=c)[k]||(a[k]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]||[])[0]===S&&r[1])&&r[2],a=s&&c.childNodes[s];while(a=++s&&a&&a[l]||(d=s=0)||u.pop())if(1===a.nodeType&&++d&&a===e){i[h]=[S,s,d];break}}else if(p&&(d=s=(r=(i=(o=(a=e)[k]||(a[k]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]||[])[0]===S&&r[1]),!1===d)while(a=++s&&a&&a[l]||(d=s=0)||u.pop())if((x?a.nodeName.toLowerCase()===f:1===a.nodeType)&&++d&&(p&&((i=(o=a[k]||(a[k]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]=[S,d]),a===e))break;return(d-=v)===g||d%g==0&&0<=d/g}}},PSEUDO:function(e,o){var t,a=b.pseudos[e]||b.setFilters[e.toLowerCase()]||se.error("unsupported pseudo: "+e);return a[k]?a(o):1<a.length?(t=[e,e,"",o],b.setFilters.hasOwnProperty(e.toLowerCase())?le(function(e,t){var n,r=a(e,o),i=r.length;while(i--)e[n=P(e,r[i])]=!(t[n]=r[i])}):function(e){return a(e,0,t)}):a}},pseudos:{not:le(function(e){var r=[],i=[],s=f(e.replace(B,"$1"));return s[k]?le(function(e,t,n,r){var i,o=s(e,null,r,[]),a=e.length;while(a--)(i=o[a])&&(e[a]=!(t[a]=i))}):function(e,t,n){return r[0]=e,s(r,null,n,i),r[0]=null,!i.pop()}}),has:le(function(t){return function(e){return 0<se(t,e).length}}),contains:le(function(t){return t=t.replace(te,ne),function(e){return-1<(e.textContent||o(e)).indexOf(t)}}),lang:le(function(n){return V.test(n||"")||se.error("unsupported lang: "+n),n=n.replace(te,ne).toLowerCase(),function(e){var t;do{if(t=E?e.lang:e.getAttribute("xml:lang")||e.getAttribute("lang"))return(t=t.toLowerCase())===n||0===t.indexOf(n+"-")}while((e=e.parentNode)&&1===e.nodeType);return!1}}),target:function(e){var t=n.location&&n.location.hash;return t&&t.slice(1)===e.id},root:function(e){return e===a},focus:function(e){return e===C.activeElement&&(!C.hasFocus||C.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:ge(!1),disabled:ge(!0),checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,!0===e.selected},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!b.pseudos.empty(e)},header:function(e){return J.test(e.nodeName)},input:function(e){return Q.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:ve(function(){return[0]}),last:ve(function(e,t){return[t-1]}),eq:ve(function(e,t,n){return[n<0?n+t:n]}),even:ve(function(e,t){for(var n=0;n<t;n+=2)e.push(n);return e}),odd:ve(function(e,t){for(var n=1;n<t;n+=2)e.push(n);return e}),lt:ve(function(e,t,n){for(var r=n<0?n+t:t<n?t:n;0<=--r;)e.push(r);return e}),gt:ve(function(e,t,n){for(var r=n<0?n+t:n;++r<t;)e.push(r);return e})}}).pseudos.nth=b.pseudos.eq,{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})b.pseudos[e]=de(e);for(e in{submit:!0,reset:!0})b.pseudos[e]=he(e);function me(){}function xe(e){for(var t=0,n=e.length,r="";t<n;t++)r+=e[t].value;return r}function be(s,e,t){var u=e.dir,l=e.next,c=l||u,f=t&&"parentNode"===c,p=r++;return e.first?function(e,t,n){while(e=e[u])if(1===e.nodeType||f)return s(e,t,n);return!1}:function(e,t,n){var r,i,o,a=[S,p];if(n){while(e=e[u])if((1===e.nodeType||f)&&s(e,t,n))return!0}else while(e=e[u])if(1===e.nodeType||f)if(i=(o=e[k]||(e[k]={}))[e.uniqueID]||(o[e.uniqueID]={}),l&&l===e.nodeName.toLowerCase())e=e[u]||e;else{if((r=i[c])&&r[0]===S&&r[1]===p)return a[2]=r[2];if((i[c]=a)[2]=s(e,t,n))return!0}return!1}}function we(i){return 1<i.length?function(e,t,n){var r=i.length;while(r--)if(!i[r](e,t,n))return!1;return!0}:i[0]}function Te(e,t,n,r,i){for(var o,a=[],s=0,u=e.length,l=null!=t;s<u;s++)(o=e[s])&&(n&&!n(o,r,i)||(a.push(o),l&&t.push(s)));return a}function Ce(d,h,g,v,y,e){return v&&!v[k]&&(v=Ce(v)),y&&!y[k]&&(y=Ce(y,e)),le(function(e,t,n,r){var i,o,a,s=[],u=[],l=t.length,c=e||function(e,t,n){for(var r=0,i=t.length;r<i;r++)se(e,t[r],n);return n}(h||"*",n.nodeType?[n]:n,[]),f=!d||!e&&h?c:Te(c,s,d,n,r),p=g?y||(e?d:l||v)?[]:t:f;if(g&&g(f,p,n,r),v){i=Te(p,u),v(i,[],n,r),o=i.length;while(o--)(a=i[o])&&(p[u[o]]=!(f[u[o]]=a))}if(e){if(y||d){if(y){i=[],o=p.length;while(o--)(a=p[o])&&i.push(f[o]=a);y(null,p=[],i,r)}o=p.length;while(o--)(a=p[o])&&-1<(i=y?P(e,a):s[o])&&(e[i]=!(t[i]=a))}}else p=Te(p===t?p.splice(l,p.length):p),y?y(null,t,p,r):H.apply(t,p)})}function Ee(e){for(var i,t,n,r=e.length,o=b.relative[e[0].type],a=o||b.relative[" "],s=o?1:0,u=be(function(e){return e===i},a,!0),l=be(function(e){return-1<P(i,e)},a,!0),c=[function(e,t,n){var r=!o&&(n||t!==w)||((i=t).nodeType?u(e,t,n):l(e,t,n));return i=null,r}];s<r;s++)if(t=b.relative[e[s].type])c=[be(we(c),t)];else{if((t=b.filter[e[s].type].apply(null,e[s].matches))[k]){for(n=++s;n<r;n++)if(b.relative[e[n].type])break;return Ce(1<s&&we(c),1<s&&xe(e.slice(0,s-1).concat({value:" "===e[s-2].type?"*":""})).replace(B,"$1"),t,s<n&&Ee(e.slice(s,n)),n<r&&Ee(e=e.slice(n)),n<r&&xe(e))}c.push(t)}return we(c)}return me.prototype=b.filters=b.pseudos,b.setFilters=new me,h=se.tokenize=function(e,t){var n,r,i,o,a,s,u,l=x[e+" "];if(l)return t?0:l.slice(0);a=e,s=[],u=b.preFilter;while(a){for(o in n&&!(r=_.exec(a))||(r&&(a=a.slice(r[0].length)||a),s.push(i=[])),n=!1,(r=z.exec(a))&&(n=r.shift(),i.push({value:n,type:r[0].replace(B," ")}),a=a.slice(n.length)),b.filter)!(r=G[o].exec(a))||u[o]&&!(r=u[o](r))||(n=r.shift(),i.push({value:n,type:o,matches:r}),a=a.slice(n.length));if(!n)break}return t?a.length:a?se.error(e):x(e,s).slice(0)},f=se.compile=function(e,t){var n,v,y,m,x,r,i=[],o=[],a=N[e+" "];if(!a){t||(t=h(e)),n=t.length;while(n--)(a=Ee(t[n]))[k]?i.push(a):o.push(a);(a=N(e,(v=o,m=0<(y=i).length,x=0<v.length,r=function(e,t,n,r,i){var o,a,s,u=0,l="0",c=e&&[],f=[],p=w,d=e||x&&b.find.TAG("*",i),h=S+=null==p?1:Math.random()||.1,g=d.length;for(i&&(w=t===C||t||i);l!==g&&null!=(o=d[l]);l++){if(x&&o){a=0,t||o.ownerDocument===C||(T(o),n=!E);while(s=v[a++])if(s(o,t||C,n)){r.push(o);break}i&&(S=h)}m&&((o=!s&&o)&&u--,e&&c.push(o))}if(u+=l,m&&l!==u){a=0;while(s=y[a++])s(c,f,t,n);if(e){if(0<u)while(l--)c[l]||f[l]||(f[l]=q.call(r));f=Te(f)}H.apply(r,f),i&&!e&&0<f.length&&1<u+y.length&&se.uniqueSort(r)}return i&&(S=h,w=p),c},m?le(r):r))).selector=e}return a},g=se.select=function(e,t,n,r){var i,o,a,s,u,l="function"==typeof e&&e,c=!r&&h(e=l.selector||e);if(n=n||[],1===c.length){if(2<(o=c[0]=c[0].slice(0)).length&&"ID"===(a=o[0]).type&&9===t.nodeType&&E&&b.relative[o[1].type]){if(!(t=(b.find.ID(a.matches[0].replace(te,ne),t)||[])[0]))return n;l&&(t=t.parentNode),e=e.slice(o.shift().value.length)}i=G.needsContext.test(e)?0:o.length;while(i--){if(a=o[i],b.relative[s=a.type])break;if((u=b.find[s])&&(r=u(a.matches[0].replace(te,ne),ee.test(o[0].type)&&ye(t.parentNode)||t))){if(o.splice(i,1),!(e=r.length&&xe(o)))return H.apply(n,r),n;break}}}return(l||f(e,c))(r,t,!E,n,!t||ee.test(e)&&ye(t.parentNode)||t),n},d.sortStable=k.split("").sort(D).join("")===k,d.detectDuplicates=!!l,T(),d.sortDetached=ce(function(e){return 1&e.compareDocumentPosition(C.createElement("fieldset"))}),ce(function(e){return e.innerHTML="<a href='#'></a>","#"===e.firstChild.getAttribute("href")})||fe("type|href|height|width",function(e,t,n){if(!n)return e.getAttribute(t,"type"===t.toLowerCase()?1:2)}),d.attributes&&ce(function(e){return e.innerHTML="<input/>",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||fe("value",function(e,t,n){if(!n&&"input"===e.nodeName.toLowerCase())return e.defaultValue}),ce(function(e){return null==e.getAttribute("disabled")})||fe(R,function(e,t,n){var r;if(!n)return!0===e[t]?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null}),se}(C);k.find=h,k.expr=h.selectors,k.expr[":"]=k.expr.pseudos,k.uniqueSort=k.unique=h.uniqueSort,k.text=h.getText,k.isXMLDoc=h.isXML,k.contains=h.contains,k.escapeSelector=h.escape;var T=function(e,t,n){var r=[],i=void 0!==n;while((e=e[t])&&9!==e.nodeType)if(1===e.nodeType){if(i&&k(e).is(n))break;r.push(e)}return r},S=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},N=k.expr.match.needsContext;function A(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()}var D=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?k.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?k.grep(e,function(e){return e===n!==r}):"string"!=typeof n?k.grep(e,function(e){return-1<i.call(n,e)!==r}):k.filter(n,e,r)}k.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?k.find.matchesSelector(r,e)?[r]:[]:k.find.matches(e,k.grep(t,function(e){return 1===e.nodeType}))},k.fn.extend({find:function(e){var t,n,r=this.length,i=this;if("string"!=typeof e)return this.pushStack(k(e).filter(function(){for(t=0;t<r;t++)if(k.contains(i[t],this))return!0}));for(n=this.pushStack([]),t=0;t<r;t++)k.find(e,i[t],n);return 1<r?k.uniqueSort(n):n},filter:function(e){return this.pushStack(j(this,e||[],!1))},not:function(e){return this.pushStack(j(this,e||[],!0))},is:function(e){return!!j(this,"string"==typeof e&&N.test(e)?k(e):e||[],!1).length}});var q,L=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;(k.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||q,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:L.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof k?t[0]:t,k.merge(this,k.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),D.test(r[1])&&k.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(k):k.makeArray(e,this)}).prototype=k.fn,q=k(E);var H=/^(?:parents|prev(?:Until|All))/,O={children:!0,contents:!0,next:!0,prev:!0};function P(e,t){while((e=e[t])&&1!==e.nodeType);return e}k.fn.extend({has:function(e){var t=k(e,this),n=t.length;return this.filter(function(){for(var e=0;e<n;e++)if(k.contains(this,t[e]))return!0})},closest:function(e,t){var n,r=0,i=this.length,o=[],a="string"!=typeof e&&k(e);if(!N.test(e))for(;r<i;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(n.nodeType<11&&(a?-1<a.index(n):1===n.nodeType&&k.find.matchesSelector(n,e))){o.push(n);break}return this.pushStack(1<o.length?k.uniqueSort(o):o)},index:function(e){return e?"string"==typeof e?i.call(k(e),this[0]):i.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(k.uniqueSort(k.merge(this.get(),k(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),k.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return T(e,"parentNode")},parentsUntil:function(e,t,n){return T(e,"parentNode",n)},next:function(e){return P(e,"nextSibling")},prev:function(e){return P(e,"previousSibling")},nextAll:function(e){return T(e,"nextSibling")},prevAll:function(e){return T(e,"previousSibling")},nextUntil:function(e,t,n){return T(e,"nextSibling",n)},prevUntil:function(e,t,n){return T(e,"previousSibling",n)},siblings:function(e){return S((e.parentNode||{}).firstChild,e)},children:function(e){return S(e.firstChild)},contents:function(e){return"undefined"!=typeof e.contentDocument?e.contentDocument:(A(e,"template")&&(e=e.content||e),k.merge([],e.childNodes))}},function(r,i){k.fn[r]=function(e,t){var n=k.map(this,i,e);return"Until"!==r.slice(-5)&&(t=e),t&&"string"==typeof t&&(n=k.filter(t,n)),1<this.length&&(O[r]||k.uniqueSort(n),H.test(r)&&n.reverse()),this.pushStack(n)}});var R=/[^\x20\t\r\n\f]+/g;function M(e){return e}function I(e){throw e}function W(e,t,n,r){var i;try{e&&m(i=e.promise)?i.call(e).done(t).fail(n):e&&m(i=e.then)?i.call(e,t,n):t.apply(void 0,[e].slice(r))}catch(e){n.apply(void 0,[e])}}k.Callbacks=function(r){var e,n;r="string"==typeof r?(e=r,n={},k.each(e.match(R)||[],function(e,t){n[t]=!0}),n):k.extend({},r);var i,t,o,a,s=[],u=[],l=-1,c=function(){for(a=a||r.once,o=i=!0;u.length;l=-1){t=u.shift();while(++l<s.length)!1===s[l].apply(t[0],t[1])&&r.stopOnFalse&&(l=s.length,t=!1)}r.memory||(t=!1),i=!1,a&&(s=t?[]:"")},f={add:function(){return s&&(t&&!i&&(l=s.length-1,u.push(t)),function n(e){k.each(e,function(e,t){m(t)?r.unique&&f.has(t)||s.push(t):t&&t.length&&"string"!==w(t)&&n(t)})}(arguments),t&&!i&&c()),this},remove:function(){return k.each(arguments,function(e,t){var n;while(-1<(n=k.inArray(t,s,n)))s.splice(n,1),n<=l&&l--}),this},has:function(e){return e?-1<k.inArray(e,s):0<s.length},empty:function(){return s&&(s=[]),this},disable:function(){return a=u=[],s=t="",this},disabled:function(){return!s},lock:function(){return a=u=[],t||i||(s=t=""),this},locked:function(){return!!a},fireWith:function(e,t){return a||(t=[e,(t=t||[]).slice?t.slice():t],u.push(t),i||c()),this},fire:function(){return f.fireWith(this,arguments),this},fired:function(){return!!o}};return f},k.extend({Deferred:function(e){var o=[["notify","progress",k.Callbacks("memory"),k.Callbacks("memory"),2],["resolve","done",k.Callbacks("once memory"),k.Callbacks("once memory"),0,"resolved"],["reject","fail",k.Callbacks("once memory"),k.Callbacks("once memory"),1,"rejected"]],i="pending",a={state:function(){return i},always:function(){return s.done(arguments).fail(arguments),this},"catch":function(e){return a.then(null,e)},pipe:function(){var i=arguments;return k.Deferred(function(r){k.each(o,function(e,t){var n=m(i[t[4]])&&i[t[4]];s[t[1]](function(){var e=n&&n.apply(this,arguments);e&&m(e.promise)?e.promise().progress(r.notify).done(r.resolve).fail(r.reject):r[t[0]+"With"](this,n?[e]:arguments)})}),i=null}).promise()},then:function(t,n,r){var u=0;function l(i,o,a,s){return function(){var n=this,r=arguments,e=function(){var e,t;if(!(i<u)){if((e=a.apply(n,r))===o.promise())throw new TypeError("Thenable self-resolution");t=e&&("object"==typeof e||"function"==typeof e)&&e.then,m(t)?s?t.call(e,l(u,o,M,s),l(u,o,I,s)):(u++,t.call(e,l(u,o,M,s),l(u,o,I,s),l(u,o,M,o.notifyWith))):(a!==M&&(n=void 0,r=[e]),(s||o.resolveWith)(n,r))}},t=s?e:function(){try{e()}catch(e){k.Deferred.exceptionHook&&k.Deferred.exceptionHook(e,t.stackTrace),u<=i+1&&(a!==I&&(n=void 0,r=[e]),o.rejectWith(n,r))}};i?t():(k.Deferred.getStackHook&&(t.stackTrace=k.Deferred.getStackHook()),C.setTimeout(t))}}return k.Deferred(function(e){o[0][3].add(l(0,e,m(r)?r:M,e.notifyWith)),o[1][3].add(l(0,e,m(t)?t:M)),o[2][3].add(l(0,e,m(n)?n:I))}).promise()},promise:function(e){return null!=e?k.extend(e,a):a}},s={};return k.each(o,function(e,t){var n=t[2],r=t[5];a[t[1]]=n.add,r&&n.add(function(){i=r},o[3-e][2].disable,o[3-e][3].disable,o[0][2].lock,o[0][3].lock),n.add(t[3].fire),s[t[0]]=function(){return s[t[0]+"With"](this===s?void 0:this,arguments),this},s[t[0]+"With"]=n.fireWith}),a.promise(s),e&&e.call(s,s),s},when:function(e){var n=arguments.length,t=n,r=Array(t),i=s.call(arguments),o=k.Deferred(),a=function(t){return function(e){r[t]=this,i[t]=1<arguments.length?s.call(arguments):e,--n||o.resolveWith(r,i)}};if(n<=1&&(W(e,o.done(a(t)).resolve,o.reject,!n),"pending"===o.state()||m(i[t]&&i[t].then)))return o.then();while(t--)W(i[t],a(t),o.reject);return o.promise()}});var $=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;k.Deferred.exceptionHook=function(e,t){C.console&&C.console.warn&&e&&$.test(e.name)&&C.console.warn("jQuery.Deferred exception: "+e.message,e.stack,t)},k.readyException=function(e){C.setTimeout(function(){throw e})};var F=k.Deferred();function B(){E.removeEventListener("DOMContentLoaded",B),C.removeEventListener("load",B),k.ready()}k.fn.ready=function(e){return F.then(e)["catch"](function(e){k.readyException(e)}),this},k.extend({isReady:!1,readyWait:1,ready:function(e){(!0===e?--k.readyWait:k.isReady)||(k.isReady=!0)!==e&&0<--k.readyWait||F.resolveWith(E,[k])}}),k.ready.then=F.then,"complete"===E.readyState||"loading"!==E.readyState&&!E.documentElement.doScroll?C.setTimeout(k.ready):(E.addEventListener("DOMContentLoaded",B),C.addEventListener("load",B));var _=function(e,t,n,r,i,o,a){var s=0,u=e.length,l=null==n;if("object"===w(n))for(s in i=!0,n)_(e,t,s,n[s],!0,o,a);else if(void 0!==r&&(i=!0,m(r)||(a=!0),l&&(a?(t.call(e,r),t=null):(l=t,t=function(e,t,n){return l.call(k(e),n)})),t))for(;s<u;s++)t(e[s],n,a?r:r.call(e[s],s,t(e[s],n)));return i?e:l?t.call(e):u?t(e[0],n):o},z=/^-ms-/,U=/-([a-z])/g;function X(e,t){return t.toUpperCase()}function V(e){return e.replace(z,"ms-").replace(U,X)}var G=function(e){return 1===e.nodeType||9===e.nodeType||!+e.nodeType};function Y(){this.expando=k.expando+Y.uid++}Y.uid=1,Y.prototype={cache:function(e){var t=e[this.expando];return t||(t={},G(e)&&(e.nodeType?e[this.expando]=t:Object.defineProperty(e,this.expando,{value:t,configurable:!0}))),t},set:function(e,t,n){var r,i=this.cache(e);if("string"==typeof t)i[V(t)]=n;else for(r in t)i[V(r)]=t[r];return i},get:function(e,t){return void 0===t?this.cache(e):e[this.expando]&&e[this.expando][V(t)]},access:function(e,t,n){return void 0===t||t&&"string"==typeof t&&void 0===n?this.get(e,t):(this.set(e,t,n),void 0!==n?n:t)},remove:function(e,t){var n,r=e[this.expando];if(void 0!==r){if(void 0!==t){n=(t=Array.isArray(t)?t.map(V):(t=V(t))in r?[t]:t.match(R)||[]).length;while(n--)delete r[t[n]]}(void 0===t||k.isEmptyObject(r))&&(e.nodeType?e[this.expando]=void 0:delete e[this.expando])}},hasData:function(e){var t=e[this.expando];return void 0!==t&&!k.isEmptyObject(t)}};var Q=new Y,J=new Y,K=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,Z=/[A-Z]/g;function ee(e,t,n){var r,i;if(void 0===n&&1===e.nodeType)if(r="data-"+t.replace(Z,"-$&").toLowerCase(),"string"==typeof(n=e.getAttribute(r))){try{n="true"===(i=n)||"false"!==i&&("null"===i?null:i===+i+""?+i:K.test(i)?JSON.parse(i):i)}catch(e){}J.set(e,t,n)}else n=void 0;return n}k.extend({hasData:function(e){return J.hasData(e)||Q.hasData(e)},data:function(e,t,n){return J.access(e,t,n)},removeData:function(e,t){J.remove(e,t)},_data:function(e,t,n){return Q.access(e,t,n)},_removeData:function(e,t){Q.remove(e,t)}}),k.fn.extend({data:function(n,e){var t,r,i,o=this[0],a=o&&o.attributes;if(void 0===n){if(this.length&&(i=J.get(o),1===o.nodeType&&!Q.get(o,"hasDataAttrs"))){t=a.length;while(t--)a[t]&&0===(r=a[t].name).indexOf("data-")&&(r=V(r.slice(5)),ee(o,r,i[r]));Q.set(o,"hasDataAttrs",!0)}return i}return"object"==typeof n?this.each(function(){J.set(this,n)}):_(this,function(e){var t;if(o&&void 0===e)return void 0!==(t=J.get(o,n))?t:void 0!==(t=ee(o,n))?t:void 0;this.each(function(){J.set(this,n,e)})},null,e,1<arguments.length,null,!0)},removeData:function(e){return this.each(function(){J.remove(this,e)})}}),k.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=Q.get(e,t),n&&(!r||Array.isArray(n)?r=Q.access(e,t,k.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=k.queue(e,t),r=n.length,i=n.shift(),o=k._queueHooks(e,t);"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,function(){k.dequeue(e,t)},o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return Q.get(e,n)||Q.access(e,n,{empty:k.Callbacks("once memory").add(function(){Q.remove(e,[t+"queue",n])})})}}),k.fn.extend({queue:function(t,n){var e=2;return"string"!=typeof t&&(n=t,t="fx",e--),arguments.length<e?k.queue(this[0],t):void 0===n?this:this.each(function(){var e=k.queue(this,t,n);k._queueHooks(this,t),"fx"===t&&"inprogress"!==e[0]&&k.dequeue(this,t)})},dequeue:function(e){return this.each(function(){k.dequeue(this,e)})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,t){var n,r=1,i=k.Deferred(),o=this,a=this.length,s=function(){--r||i.resolveWith(o,[o])};"string"!=typeof e&&(t=e,e=void 0),e=e||"fx";while(a--)(n=Q.get(o[a],e+"queueHooks"))&&n.empty&&(r++,n.empty.add(s));return s(),i.promise(t)}});var te=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,ne=new RegExp("^(?:([+-])=|)("+te+")([a-z%]*)$","i"),re=["Top","Right","Bottom","Left"],ie=E.documentElement,oe=function(e){return k.contains(e.ownerDocument,e)},ae={composed:!0};ie.getRootNode&&(oe=function(e){return k.contains(e.ownerDocument,e)||e.getRootNode(ae)===e.ownerDocument});var se=function(e,t){return"none"===(e=t||e).style.display||""===e.style.display&&oe(e)&&"none"===k.css(e,"display")},ue=function(e,t,n,r){var i,o,a={};for(o in t)a[o]=e.style[o],e.style[o]=t[o];for(o in i=n.apply(e,r||[]),t)e.style[o]=a[o];return i};function le(e,t,n,r){var i,o,a=20,s=r?function(){return r.cur()}:function(){return k.css(e,t,"")},u=s(),l=n&&n[3]||(k.cssNumber[t]?"":"px"),c=e.nodeType&&(k.cssNumber[t]||"px"!==l&&+u)&&ne.exec(k.css(e,t));if(c&&c[3]!==l){u/=2,l=l||c[3],c=+u||1;while(a--)k.style(e,t,c+l),(1-o)*(1-(o=s()/u||.5))<=0&&(a=0),c/=o;c*=2,k.style(e,t,c+l),n=n||[]}return n&&(c=+c||+u||0,i=n[1]?c+(n[1]+1)*n[2]:+n[2],r&&(r.unit=l,r.start=c,r.end=i)),i}var ce={};function fe(e,t){for(var n,r,i,o,a,s,u,l=[],c=0,f=e.length;c<f;c++)(r=e[c]).style&&(n=r.style.display,t?("none"===n&&(l[c]=Q.get(r,"display")||null,l[c]||(r.style.display="")),""===r.style.display&&se(r)&&(l[c]=(u=a=o=void 0,a=(i=r).ownerDocument,s=i.nodeName,(u=ce[s])||(o=a.body.appendChild(a.createElement(s)),u=k.css(o,"display"),o.parentNode.removeChild(o),"none"===u&&(u="block"),ce[s]=u)))):"none"!==n&&(l[c]="none",Q.set(r,"display",n)));for(c=0;c<f;c++)null!=l[c]&&(e[c].style.display=l[c]);return e}k.fn.extend({show:function(){return fe(this,!0)},hide:function(){return fe(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each(function(){se(this)?k(this).show():k(this).hide()})}});var pe=/^(?:checkbox|radio)$/i,de=/<([a-z][^\/\0>\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i,ge={option:[1,"<select multiple='multiple'>","</select>"],thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?k.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n<r;n++)Q.set(e[n],"globalEval",!t||Q.get(t[n],"globalEval"))}ge.optgroup=ge.option,ge.tbody=ge.tfoot=ge.colgroup=ge.caption=ge.thead,ge.th=ge.td;var me,xe,be=/<|&#?\w+;/;function we(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d<h;d++)if((o=e[d])||0===o)if("object"===w(o))k.merge(p,o.nodeType?[o]:o);else if(be.test(o)){a=a||f.appendChild(t.createElement("div")),s=(de.exec(o)||["",""])[1].toLowerCase(),u=ge[s]||ge._default,a.innerHTML=u[1]+k.htmlPrefilter(o)+u[2],c=u[0];while(c--)a=a.lastChild;k.merge(p,a.childNodes),(a=f.firstChild).textContent=""}else p.push(t.createTextNode(o));f.textContent="",d=0;while(o=p[d++])if(r&&-1<k.inArray(o,r))i&&i.push(o);else if(l=oe(o),a=ve(f.appendChild(o),"script"),l&&ye(a),n){c=0;while(o=a[c++])he.test(o.type||"")&&n.push(o)}return f}me=E.createDocumentFragment().appendChild(E.createElement("div")),(xe=E.createElement("input")).setAttribute("type","radio"),xe.setAttribute("checked","checked"),xe.setAttribute("name","t"),me.appendChild(xe),y.checkClone=me.cloneNode(!0).cloneNode(!0).lastChild.checked,me.innerHTML="<textarea>x</textarea>",y.noCloneChecked=!!me.cloneNode(!0).lastChild.defaultValue;var Te=/^key/,Ce=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Ee=/^([^.]*)(?:\.(.+)|)/;function ke(){return!0}function Se(){return!1}function Ne(e,t){return e===function(){try{return E.activeElement}catch(e){}}()==("focus"===t)}function Ae(e,t,n,r,i,o){var a,s;if("object"==typeof t){for(s in"string"!=typeof n&&(r=r||n,n=void 0),t)Ae(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=Se;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return k().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=k.guid++)),e.each(function(){k.event.add(this,t,i,r,n)})}function De(e,i,o){o?(Q.set(e,i,!1),k.event.add(e,i,{namespace:!1,handler:function(e){var t,n,r=Q.get(this,i);if(1&e.isTrigger&&this[i]){if(r.length)(k.event.special[i]||{}).delegateType&&e.stopPropagation();else if(r=s.call(arguments),Q.set(this,i,r),t=o(this,i),this[i](),r!==(n=Q.get(this,i))||t?Q.set(this,i,!1):n={},r!==n)return e.stopImmediatePropagation(),e.preventDefault(),n.value}else r.length&&(Q.set(this,i,{value:k.event.trigger(k.extend(r[0],k.Event.prototype),r.slice(1),this)}),e.stopImmediatePropagation())}})):void 0===Q.get(e,i)&&k.event.add(e,i,ke)}k.event={global:{},add:function(t,e,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.get(t);if(v){n.handler&&(n=(o=n).handler,i=o.selector),i&&k.find.matchesSelector(ie,i),n.guid||(n.guid=k.guid++),(u=v.events)||(u=v.events={}),(a=v.handle)||(a=v.handle=function(e){return"undefined"!=typeof k&&k.event.triggered!==e.type?k.event.dispatch.apply(t,arguments):void 0}),l=(e=(e||"").match(R)||[""]).length;while(l--)d=g=(s=Ee.exec(e[l])||[])[1],h=(s[2]||"").split(".").sort(),d&&(f=k.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=k.event.special[d]||{},c=k.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&k.expr.match.needsContext.test(i),namespace:h.join(".")},o),(p=u[d])||((p=u[d]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(t,r,h,a)||t.addEventListener&&t.addEventListener(d,a)),f.add&&(f.add.call(t,c),c.handler.guid||(c.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,c):p.push(c),k.event.global[d]=!0)}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.hasData(e)&&Q.get(e);if(v&&(u=v.events)){l=(t=(t||"").match(R)||[""]).length;while(l--)if(d=g=(s=Ee.exec(t[l])||[])[1],h=(s[2]||"").split(".").sort(),d){f=k.event.special[d]||{},p=u[d=(r?f.delegateType:f.bindType)||d]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=p.length;while(o--)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));a&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,h,v.handle)||k.removeEvent(e,d,v.handle),delete u[d])}else for(d in u)k.event.remove(e,d+t[l],n,r,!0);k.isEmptyObject(u)&&Q.remove(e,"handle events")}},dispatch:function(e){var t,n,r,i,o,a,s=k.event.fix(e),u=new Array(arguments.length),l=(Q.get(this,"events")||{})[s.type]||[],c=k.event.special[s.type]||{};for(u[0]=s,t=1;t<arguments.length;t++)u[t]=arguments[t];if(s.delegateTarget=this,!c.preDispatch||!1!==c.preDispatch.call(this,s)){a=k.event.handlers.call(this,s,l),t=0;while((i=a[t++])&&!s.isPropagationStopped()){s.currentTarget=i.elem,n=0;while((o=i.handlers[n++])&&!s.isImmediatePropagationStopped())s.rnamespace&&!1!==o.namespace&&!s.rnamespace.test(o.namespace)||(s.handleObj=o,s.data=o.data,void 0!==(r=((k.event.special[o.origType]||{}).handle||o.handler).apply(i.elem,u))&&!1===(s.result=r)&&(s.preventDefault(),s.stopPropagation()))}return c.postDispatch&&c.postDispatch.call(this,s),s.result}},handlers:function(e,t){var n,r,i,o,a,s=[],u=t.delegateCount,l=e.target;if(u&&l.nodeType&&!("click"===e.type&&1<=e.button))for(;l!==this;l=l.parentNode||this)if(1===l.nodeType&&("click"!==e.type||!0!==l.disabled)){for(o=[],a={},n=0;n<u;n++)void 0===a[i=(r=t[n]).selector+" "]&&(a[i]=r.needsContext?-1<k(i,this).index(l):k.find(i,this,null,[l]).length),a[i]&&o.push(r);o.length&&s.push({elem:l,handlers:o})}return l=this,u<t.length&&s.push({elem:l,handlers:t.slice(u)}),s},addProp:function(t,e){Object.defineProperty(k.Event.prototype,t,{enumerable:!0,configurable:!0,get:m(e)?function(){if(this.originalEvent)return e(this.originalEvent)}:function(){if(this.originalEvent)return this.originalEvent[t]},set:function(e){Object.defineProperty(this,t,{enumerable:!0,configurable:!0,writable:!0,value:e})}})},fix:function(e){return e[k.expando]?e:new k.Event(e)},special:{load:{noBubble:!0},click:{setup:function(e){var t=this||e;return pe.test(t.type)&&t.click&&A(t,"input")&&De(t,"click",ke),!1},trigger:function(e){var t=this||e;return pe.test(t.type)&&t.click&&A(t,"input")&&De(t,"click"),!0},_default:function(e){var t=e.target;return pe.test(t.type)&&t.click&&A(t,"input")&&Q.get(t,"click")||A(t,"a")}},beforeunload:{postDispatch:function(e){void 0!==e.result&&e.originalEvent&&(e.originalEvent.returnValue=e.result)}}}},k.removeEvent=function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n)},k.Event=function(e,t){if(!(this instanceof k.Event))return new k.Event(e,t);e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||void 0===e.defaultPrevented&&!1===e.returnValue?ke:Se,this.target=e.target&&3===e.target.nodeType?e.target.parentNode:e.target,this.currentTarget=e.currentTarget,this.relatedTarget=e.relatedTarget):this.type=e,t&&k.extend(this,t),this.timeStamp=e&&e.timeStamp||Date.now(),this[k.expando]=!0},k.Event.prototype={constructor:k.Event,isDefaultPrevented:Se,isPropagationStopped:Se,isImmediatePropagationStopped:Se,isSimulated:!1,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=ke,e&&!this.isSimulated&&e.preventDefault()},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=ke,e&&!this.isSimulated&&e.stopPropagation()},stopImmediatePropagation:function(){var e=this.originalEvent;this.isImmediatePropagationStopped=ke,e&&!this.isSimulated&&e.stopImmediatePropagation(),this.stopPropagation()}},k.each({altKey:!0,bubbles:!0,cancelable:!0,changedTouches:!0,ctrlKey:!0,detail:!0,eventPhase:!0,metaKey:!0,pageX:!0,pageY:!0,shiftKey:!0,view:!0,"char":!0,code:!0,charCode:!0,key:!0,keyCode:!0,button:!0,buttons:!0,clientX:!0,clientY:!0,offsetX:!0,offsetY:!0,pointerId:!0,pointerType:!0,screenX:!0,screenY:!0,targetTouches:!0,toElement:!0,touches:!0,which:function(e){var t=e.button;return null==e.which&&Te.test(e.type)?null!=e.charCode?e.charCode:e.keyCode:!e.which&&void 0!==t&&Ce.test(e.type)?1&t?1:2&t?3:4&t?2:0:e.which}},k.event.addProp),k.each({focus:"focusin",blur:"focusout"},function(e,t){k.event.special[e]={setup:function(){return De(this,e,Ne),!1},trigger:function(){return De(this,e),!0},delegateType:t}}),k.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(e,i){k.event.special[e]={delegateType:i,bindType:i,handle:function(e){var t,n=e.relatedTarget,r=e.handleObj;return n&&(n===this||k.contains(this,n))||(e.type=r.origType,t=r.handler.apply(this,arguments),e.type=i),t}}}),k.fn.extend({on:function(e,t,n,r){return Ae(this,e,t,n,r)},one:function(e,t,n,r){return Ae(this,e,t,n,r,1)},off:function(e,t,n){var r,i;if(e&&e.preventDefault&&e.handleObj)return r=e.handleObj,k(e.delegateTarget).off(r.namespace?r.origType+"."+r.namespace:r.origType,r.selector,r.handler),this;if("object"==typeof e){for(i in e)this.off(i,t,e[i]);return this}return!1!==t&&"function"!=typeof t||(n=t,t=void 0),!1===n&&(n=Se),this.each(function(){k.event.remove(this,e,n,t)})}});var je=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi,qe=/<script|<style|<link/i,Le=/checked\s*(?:[^=]|=\s*.checked.)/i,He=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;function Oe(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&k(e).children("tbody")[0]||e}function Pe(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function Re(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Me(e,t){var n,r,i,o,a,s,u,l;if(1===t.nodeType){if(Q.hasData(e)&&(o=Q.access(e),a=Q.set(t,o),l=o.events))for(i in delete a.handle,a.events={},l)for(n=0,r=l[i].length;n<r;n++)k.event.add(t,i,l[i][n]);J.hasData(e)&&(s=J.access(e),u=k.extend({},s),J.set(t,u))}}function Ie(n,r,i,o){r=g.apply([],r);var e,t,a,s,u,l,c=0,f=n.length,p=f-1,d=r[0],h=m(d);if(h||1<f&&"string"==typeof d&&!y.checkClone&&Le.test(d))return n.each(function(e){var t=n.eq(e);h&&(r[0]=d.call(this,e,t.html())),Ie(t,r,i,o)});if(f&&(t=(e=we(r,n[0].ownerDocument,!1,n,o)).firstChild,1===e.childNodes.length&&(e=t),t||o)){for(s=(a=k.map(ve(e,"script"),Pe)).length;c<f;c++)u=e,c!==p&&(u=k.clone(u,!0,!0),s&&k.merge(a,ve(u,"script"))),i.call(n[c],u,c);if(s)for(l=a[a.length-1].ownerDocument,k.map(a,Re),c=0;c<s;c++)u=a[c],he.test(u.type||"")&&!Q.access(u,"globalEval")&&k.contains(l,u)&&(u.src&&"module"!==(u.type||"").toLowerCase()?k._evalUrl&&!u.noModule&&k._evalUrl(u.src,{nonce:u.nonce||u.getAttribute("nonce")}):b(u.textContent.replace(He,""),u,l))}return n}function We(e,t,n){for(var r,i=t?k.filter(t,e):e,o=0;null!=(r=i[o]);o++)n||1!==r.nodeType||k.cleanData(ve(r)),r.parentNode&&(n&&oe(r)&&ye(ve(r,"script")),r.parentNode.removeChild(r));return e}k.extend({htmlPrefilter:function(e){return e.replace(je,"<$1></$2>")},clone:function(e,t,n){var r,i,o,a,s,u,l,c=e.cloneNode(!0),f=oe(e);if(!(y.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||k.isXMLDoc(e)))for(a=ve(c),r=0,i=(o=ve(e)).length;r<i;r++)s=o[r],u=a[r],void 0,"input"===(l=u.nodeName.toLowerCase())&&pe.test(s.type)?u.checked=s.checked:"input"!==l&&"textarea"!==l||(u.defaultValue=s.defaultValue);if(t)if(n)for(o=o||ve(e),a=a||ve(c),r=0,i=o.length;r<i;r++)Me(o[r],a[r]);else Me(e,c);return 0<(a=ve(c,"script")).length&&ye(a,!f&&ve(e,"script")),c},cleanData:function(e){for(var t,n,r,i=k.event.special,o=0;void 0!==(n=e[o]);o++)if(G(n)){if(t=n[Q.expando]){if(t.events)for(r in t.events)i[r]?k.event.remove(n,r):k.removeEvent(n,r,t.handle);n[Q.expando]=void 0}n[J.expando]&&(n[J.expando]=void 0)}}}),k.fn.extend({detach:function(e){return We(this,e,!0)},remove:function(e){return We(this,e)},text:function(e){return _(this,function(e){return void 0===e?k.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=e)})},null,e,arguments.length)},append:function(){return Ie(this,arguments,function(e){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||Oe(this,e).appendChild(e)})},prepend:function(){return Ie(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=Oe(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return Ie(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return Ie(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},empty:function(){for(var e,t=0;null!=(e=this[t]);t++)1===e.nodeType&&(k.cleanData(ve(e,!1)),e.textContent="");return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map(function(){return k.clone(this,e,t)})},html:function(e){return _(this,function(e){var t=this[0]||{},n=0,r=this.length;if(void 0===e&&1===t.nodeType)return t.innerHTML;if("string"==typeof e&&!qe.test(e)&&!ge[(de.exec(e)||["",""])[1].toLowerCase()]){e=k.htmlPrefilter(e);try{for(;n<r;n++)1===(t=this[n]||{}).nodeType&&(k.cleanData(ve(t,!1)),t.innerHTML=e);t=0}catch(e){}}t&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var n=[];return Ie(this,arguments,function(e){var t=this.parentNode;k.inArray(this,n)<0&&(k.cleanData(ve(this)),t&&t.replaceChild(e,this))},n)}}),k.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,a){k.fn[e]=function(e){for(var t,n=[],r=k(e),i=r.length-1,o=0;o<=i;o++)t=o===i?this:this.clone(!0),k(r[o])[a](t),u.apply(n,t.get());return this.pushStack(n)}});var $e=new RegExp("^("+te+")(?!px)[a-z%]+$","i"),Fe=function(e){var t=e.ownerDocument.defaultView;return t&&t.opener||(t=C),t.getComputedStyle(e)},Be=new RegExp(re.join("|"),"i");function _e(e,t,n){var r,i,o,a,s=e.style;return(n=n||Fe(e))&&(""!==(a=n.getPropertyValue(t)||n[t])||oe(e)||(a=k.style(e,t)),!y.pixelBoxStyles()&&$e.test(a)&&Be.test(t)&&(r=s.width,i=s.minWidth,o=s.maxWidth,s.minWidth=s.maxWidth=s.width=a,a=n.width,s.width=r,s.minWidth=i,s.maxWidth=o)),void 0!==a?a+"":a}function ze(e,t){return{get:function(){if(!e())return(this.get=t).apply(this,arguments);delete this.get}}}!function(){function e(){if(u){s.style.cssText="position:absolute;left:-11111px;width:60px;margin-top:1px;padding:0;border:0",u.style.cssText="position:relative;display:block;box-sizing:border-box;overflow:scroll;margin:auto;border:1px;padding:1px;width:60%;top:1%",ie.appendChild(s).appendChild(u);var e=C.getComputedStyle(u);n="1%"!==e.top,a=12===t(e.marginLeft),u.style.right="60%",o=36===t(e.right),r=36===t(e.width),u.style.position="absolute",i=12===t(u.offsetWidth/3),ie.removeChild(s),u=null}}function t(e){return Math.round(parseFloat(e))}var n,r,i,o,a,s=E.createElement("div"),u=E.createElement("div");u.style&&(u.style.backgroundClip="content-box",u.cloneNode(!0).style.backgroundClip="",y.clearCloneStyle="content-box"===u.style.backgroundClip,k.extend(y,{boxSizingReliable:function(){return e(),r},pixelBoxStyles:function(){return e(),o},pixelPosition:function(){return e(),n},reliableMarginLeft:function(){return e(),a},scrollboxSize:function(){return e(),i}}))}();var Ue=["Webkit","Moz","ms"],Xe=E.createElement("div").style,Ve={};function Ge(e){var t=k.cssProps[e]||Ve[e];return t||(e in Xe?e:Ve[e]=function(e){var t=e[0].toUpperCase()+e.slice(1),n=Ue.length;while(n--)if((e=Ue[n]+t)in Xe)return e}(e)||e)}var Ye=/^(none|table(?!-c[ea]).+)/,Qe=/^--/,Je={position:"absolute",visibility:"hidden",display:"block"},Ke={letterSpacing:"0",fontWeight:"400"};function Ze(e,t,n){var r=ne.exec(t);return r?Math.max(0,r[2]-(n||0))+(r[3]||"px"):t}function et(e,t,n,r,i,o){var a="width"===t?1:0,s=0,u=0;if(n===(r?"border":"content"))return 0;for(;a<4;a+=2)"margin"===n&&(u+=k.css(e,n+re[a],!0,i)),r?("content"===n&&(u-=k.css(e,"padding"+re[a],!0,i)),"margin"!==n&&(u-=k.css(e,"border"+re[a]+"Width",!0,i))):(u+=k.css(e,"padding"+re[a],!0,i),"padding"!==n?u+=k.css(e,"border"+re[a]+"Width",!0,i):s+=k.css(e,"border"+re[a]+"Width",!0,i));return!r&&0<=o&&(u+=Math.max(0,Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-o-u-s-.5))||0),u}function tt(e,t,n){var r=Fe(e),i=(!y.boxSizingReliable()||n)&&"border-box"===k.css(e,"boxSizing",!1,r),o=i,a=_e(e,t,r),s="offset"+t[0].toUpperCase()+t.slice(1);if($e.test(a)){if(!n)return a;a="auto"}return(!y.boxSizingReliable()&&i||"auto"===a||!parseFloat(a)&&"inline"===k.css(e,"display",!1,r))&&e.getClientRects().length&&(i="border-box"===k.css(e,"boxSizing",!1,r),(o=s in e)&&(a=e[s])),(a=parseFloat(a)||0)+et(e,t,n||(i?"border":"content"),o,r,a)+"px"}function nt(e,t,n,r,i){return new nt.prototype.init(e,t,n,r,i)}k.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=_e(e,"opacity");return""===n?"1":n}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,gridArea:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnStart:!0,gridRow:!0,gridRowEnd:!0,gridRowStart:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{},style:function(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var i,o,a,s=V(t),u=Qe.test(t),l=e.style;if(u||(t=Ge(s)),a=k.cssHooks[t]||k.cssHooks[s],void 0===n)return a&&"get"in a&&void 0!==(i=a.get(e,!1,r))?i:l[t];"string"===(o=typeof n)&&(i=ne.exec(n))&&i[1]&&(n=le(e,t,i),o="number"),null!=n&&n==n&&("number"!==o||u||(n+=i&&i[3]||(k.cssNumber[s]?"":"px")),y.clearCloneStyle||""!==n||0!==t.indexOf("background")||(l[t]="inherit"),a&&"set"in a&&void 0===(n=a.set(e,n,r))||(u?l.setProperty(t,n):l[t]=n))}},css:function(e,t,n,r){var i,o,a,s=V(t);return Qe.test(t)||(t=Ge(s)),(a=k.cssHooks[t]||k.cssHooks[s])&&"get"in a&&(i=a.get(e,!0,n)),void 0===i&&(i=_e(e,t,r)),"normal"===i&&t in Ke&&(i=Ke[t]),""===n||n?(o=parseFloat(i),!0===n||isFinite(o)?o||0:i):i}}),k.each(["height","width"],function(e,u){k.cssHooks[u]={get:function(e,t,n){if(t)return!Ye.test(k.css(e,"display"))||e.getClientRects().length&&e.getBoundingClientRect().width?tt(e,u,n):ue(e,Je,function(){return tt(e,u,n)})},set:function(e,t,n){var r,i=Fe(e),o=!y.scrollboxSize()&&"absolute"===i.position,a=(o||n)&&"border-box"===k.css(e,"boxSizing",!1,i),s=n?et(e,u,n,a,i):0;return a&&o&&(s-=Math.ceil(e["offset"+u[0].toUpperCase()+u.slice(1)]-parseFloat(i[u])-et(e,u,"border",!1,i)-.5)),s&&(r=ne.exec(t))&&"px"!==(r[3]||"px")&&(e.style[u]=t,t=k.css(e,u)),Ze(0,t,s)}}}),k.cssHooks.marginLeft=ze(y.reliableMarginLeft,function(e,t){if(t)return(parseFloat(_e(e,"marginLeft"))||e.getBoundingClientRect().left-ue(e,{marginLeft:0},function(){return e.getBoundingClientRect().left}))+"px"}),k.each({margin:"",padding:"",border:"Width"},function(i,o){k.cssHooks[i+o]={expand:function(e){for(var t=0,n={},r="string"==typeof e?e.split(" "):[e];t<4;t++)n[i+re[t]+o]=r[t]||r[t-2]||r[0];return n}},"margin"!==i&&(k.cssHooks[i+o].set=Ze)}),k.fn.extend({css:function(e,t){return _(this,function(e,t,n){var r,i,o={},a=0;if(Array.isArray(t)){for(r=Fe(e),i=t.length;a<i;a++)o[t[a]]=k.css(e,t[a],!1,r);return o}return void 0!==n?k.style(e,t,n):k.css(e,t)},e,t,1<arguments.length)}}),((k.Tween=nt).prototype={constructor:nt,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||k.easing._default,this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(k.cssNumber[n]?"":"px")},cur:function(){var e=nt.propHooks[this.prop];return e&&e.get?e.get(this):nt.propHooks._default.get(this)},run:function(e){var t,n=nt.propHooks[this.prop];return this.options.duration?this.pos=t=k.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):nt.propHooks._default.set(this),this}}).init.prototype=nt.prototype,(nt.propHooks={_default:{get:function(e){var t;return 1!==e.elem.nodeType||null!=e.elem[e.prop]&&null==e.elem.style[e.prop]?e.elem[e.prop]:(t=k.css(e.elem,e.prop,""))&&"auto"!==t?t:0},set:function(e){k.fx.step[e.prop]?k.fx.step[e.prop](e):1!==e.elem.nodeType||!k.cssHooks[e.prop]&&null==e.elem.style[Ge(e.prop)]?e.elem[e.prop]=e.now:k.style(e.elem,e.prop,e.now+e.unit)}}}).scrollTop=nt.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},k.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},_default:"swing"},k.fx=nt.prototype.init,k.fx.step={};var rt,it,ot,at,st=/^(?:toggle|show|hide)$/,ut=/queueHooks$/;function lt(){it&&(!1===E.hidden&&C.requestAnimationFrame?C.requestAnimationFrame(lt):C.setTimeout(lt,k.fx.interval),k.fx.tick())}function ct(){return C.setTimeout(function(){rt=void 0}),rt=Date.now()}function ft(e,t){var n,r=0,i={height:e};for(t=t?1:0;r<4;r+=2-t)i["margin"+(n=re[r])]=i["padding"+n]=e;return t&&(i.opacity=i.width=e),i}function pt(e,t,n){for(var r,i=(dt.tweeners[t]||[]).concat(dt.tweeners["*"]),o=0,a=i.length;o<a;o++)if(r=i[o].call(n,t,e))return r}function dt(o,e,t){var n,a,r=0,i=dt.prefilters.length,s=k.Deferred().always(function(){delete u.elem}),u=function(){if(a)return!1;for(var e=rt||ct(),t=Math.max(0,l.startTime+l.duration-e),n=1-(t/l.duration||0),r=0,i=l.tweens.length;r<i;r++)l.tweens[r].run(n);return s.notifyWith(o,[l,n,t]),n<1&&i?t:(i||s.notifyWith(o,[l,1,0]),s.resolveWith(o,[l]),!1)},l=s.promise({elem:o,props:k.extend({},e),opts:k.extend(!0,{specialEasing:{},easing:k.easing._default},t),originalProperties:e,originalOptions:t,startTime:rt||ct(),duration:t.duration,tweens:[],createTween:function(e,t){var n=k.Tween(o,l.opts,e,t,l.opts.specialEasing[e]||l.opts.easing);return l.tweens.push(n),n},stop:function(e){var t=0,n=e?l.tweens.length:0;if(a)return this;for(a=!0;t<n;t++)l.tweens[t].run(1);return e?(s.notifyWith(o,[l,1,0]),s.resolveWith(o,[l,e])):s.rejectWith(o,[l,e]),this}}),c=l.props;for(!function(e,t){var n,r,i,o,a;for(n in e)if(i=t[r=V(n)],o=e[n],Array.isArray(o)&&(i=o[1],o=e[n]=o[0]),n!==r&&(e[r]=o,delete e[n]),(a=k.cssHooks[r])&&"expand"in a)for(n in o=a.expand(o),delete e[r],o)n in e||(e[n]=o[n],t[n]=i);else t[r]=i}(c,l.opts.specialEasing);r<i;r++)if(n=dt.prefilters[r].call(l,o,c,l.opts))return m(n.stop)&&(k._queueHooks(l.elem,l.opts.queue).stop=n.stop.bind(n)),n;return k.map(c,pt,l),m(l.opts.start)&&l.opts.start.call(o,l),l.progress(l.opts.progress).done(l.opts.done,l.opts.complete).fail(l.opts.fail).always(l.opts.always),k.fx.timer(k.extend(u,{elem:o,anim:l,queue:l.opts.queue})),l}k.Animation=k.extend(dt,{tweeners:{"*":[function(e,t){var n=this.createTween(e,t);return le(n.elem,e,ne.exec(t),n),n}]},tweener:function(e,t){m(e)?(t=e,e=["*"]):e=e.match(R);for(var n,r=0,i=e.length;r<i;r++)n=e[r],dt.tweeners[n]=dt.tweeners[n]||[],dt.tweeners[n].unshift(t)},prefilters:[function(e,t,n){var r,i,o,a,s,u,l,c,f="width"in t||"height"in t,p=this,d={},h=e.style,g=e.nodeType&&se(e),v=Q.get(e,"fxshow");for(r in n.queue||(null==(a=k._queueHooks(e,"fx")).unqueued&&(a.unqueued=0,s=a.empty.fire,a.empty.fire=function(){a.unqueued||s()}),a.unqueued++,p.always(function(){p.always(function(){a.unqueued--,k.queue(e,"fx").length||a.empty.fire()})})),t)if(i=t[r],st.test(i)){if(delete t[r],o=o||"toggle"===i,i===(g?"hide":"show")){if("show"!==i||!v||void 0===v[r])continue;g=!0}d[r]=v&&v[r]||k.style(e,r)}if((u=!k.isEmptyObject(t))||!k.isEmptyObject(d))for(r in f&&1===e.nodeType&&(n.overflow=[h.overflow,h.overflowX,h.overflowY],null==(l=v&&v.display)&&(l=Q.get(e,"display")),"none"===(c=k.css(e,"display"))&&(l?c=l:(fe([e],!0),l=e.style.display||l,c=k.css(e,"display"),fe([e]))),("inline"===c||"inline-block"===c&&null!=l)&&"none"===k.css(e,"float")&&(u||(p.done(function(){h.display=l}),null==l&&(c=h.display,l="none"===c?"":c)),h.display="inline-block")),n.overflow&&(h.overflow="hidden",p.always(function(){h.overflow=n.overflow[0],h.overflowX=n.overflow[1],h.overflowY=n.overflow[2]})),u=!1,d)u||(v?"hidden"in v&&(g=v.hidden):v=Q.access(e,"fxshow",{display:l}),o&&(v.hidden=!g),g&&fe([e],!0),p.done(function(){for(r in g||fe([e]),Q.remove(e,"fxshow"),d)k.style(e,r,d[r])})),u=pt(g?v[r]:0,r,p),r in v||(v[r]=u.start,g&&(u.end=u.start,u.start=0))}],prefilter:function(e,t){t?dt.prefilters.unshift(e):dt.prefilters.push(e)}}),k.speed=function(e,t,n){var r=e&&"object"==typeof e?k.extend({},e):{complete:n||!n&&t||m(e)&&e,duration:e,easing:n&&t||t&&!m(t)&&t};return k.fx.off?r.duration=0:"number"!=typeof r.duration&&(r.duration in k.fx.speeds?r.duration=k.fx.speeds[r.duration]:r.duration=k.fx.speeds._default),null!=r.queue&&!0!==r.queue||(r.queue="fx"),r.old=r.complete,r.complete=function(){m(r.old)&&r.old.call(this),r.queue&&k.dequeue(this,r.queue)},r},k.fn.extend({fadeTo:function(e,t,n,r){return this.filter(se).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(t,e,n,r){var i=k.isEmptyObject(t),o=k.speed(e,n,r),a=function(){var e=dt(this,k.extend({},t),o);(i||Q.get(this,"finish"))&&e.stop(!0)};return a.finish=a,i||!1===o.queue?this.each(a):this.queue(o.queue,a)},stop:function(i,e,o){var a=function(e){var t=e.stop;delete e.stop,t(o)};return"string"!=typeof i&&(o=e,e=i,i=void 0),e&&!1!==i&&this.queue(i||"fx",[]),this.each(function(){var e=!0,t=null!=i&&i+"queueHooks",n=k.timers,r=Q.get(this);if(t)r[t]&&r[t].stop&&a(r[t]);else for(t in r)r[t]&&r[t].stop&&ut.test(t)&&a(r[t]);for(t=n.length;t--;)n[t].elem!==this||null!=i&&n[t].queue!==i||(n[t].anim.stop(o),e=!1,n.splice(t,1));!e&&o||k.dequeue(this,i)})},finish:function(a){return!1!==a&&(a=a||"fx"),this.each(function(){var e,t=Q.get(this),n=t[a+"queue"],r=t[a+"queueHooks"],i=k.timers,o=n?n.length:0;for(t.finish=!0,k.queue(this,a,[]),r&&r.stop&&r.stop.call(this,!0),e=i.length;e--;)i[e].elem===this&&i[e].queue===a&&(i[e].anim.stop(!0),i.splice(e,1));for(e=0;e<o;e++)n[e]&&n[e].finish&&n[e].finish.call(this);delete t.finish})}}),k.each(["toggle","show","hide"],function(e,r){var i=k.fn[r];k.fn[r]=function(e,t,n){return null==e||"boolean"==typeof e?i.apply(this,arguments):this.animate(ft(r,!0),e,t,n)}}),k.each({slideDown:ft("show"),slideUp:ft("hide"),slideToggle:ft("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,r){k.fn[e]=function(e,t,n){return this.animate(r,e,t,n)}}),k.timers=[],k.fx.tick=function(){var e,t=0,n=k.timers;for(rt=Date.now();t<n.length;t++)(e=n[t])()||n[t]!==e||n.splice(t--,1);n.length||k.fx.stop(),rt=void 0},k.fx.timer=function(e){k.timers.push(e),k.fx.start()},k.fx.interval=13,k.fx.start=function(){it||(it=!0,lt())},k.fx.stop=function(){it=null},k.fx.speeds={slow:600,fast:200,_default:400},k.fn.delay=function(r,e){return r=k.fx&&k.fx.speeds[r]||r,e=e||"fx",this.queue(e,function(e,t){var n=C.setTimeout(e,r);t.stop=function(){C.clearTimeout(n)}})},ot=E.createElement("input"),at=E.createElement("select").appendChild(E.createElement("option")),ot.type="checkbox",y.checkOn=""!==ot.value,y.optSelected=at.selected,(ot=E.createElement("input")).value="t",ot.type="radio",y.radioValue="t"===ot.value;var ht,gt=k.expr.attrHandle;k.fn.extend({attr:function(e,t){return _(this,k.attr,e,t,1<arguments.length)},removeAttr:function(e){return this.each(function(){k.removeAttr(this,e)})}}),k.extend({attr:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return"undefined"==typeof e.getAttribute?k.prop(e,t,n):(1===o&&k.isXMLDoc(e)||(i=k.attrHooks[t.toLowerCase()]||(k.expr.match.bool.test(t)?ht:void 0)),void 0!==n?null===n?void k.removeAttr(e,t):i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:(e.setAttribute(t,n+""),n):i&&"get"in i&&null!==(r=i.get(e,t))?r:null==(r=k.find.attr(e,t))?void 0:r)},attrHooks:{type:{set:function(e,t){if(!y.radioValue&&"radio"===t&&A(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},removeAttr:function(e,t){var n,r=0,i=t&&t.match(R);if(i&&1===e.nodeType)while(n=i[r++])e.removeAttribute(n)}}),ht={set:function(e,t,n){return!1===t?k.removeAttr(e,n):e.setAttribute(n,n),n}},k.each(k.expr.match.bool.source.match(/\w+/g),function(e,t){var a=gt[t]||k.find.attr;gt[t]=function(e,t,n){var r,i,o=t.toLowerCase();return n||(i=gt[o],gt[o]=r,r=null!=a(e,t,n)?o:null,gt[o]=i),r}});var vt=/^(?:input|select|textarea|button)$/i,yt=/^(?:a|area)$/i;function mt(e){return(e.match(R)||[]).join(" ")}function xt(e){return e.getAttribute&&e.getAttribute("class")||""}function bt(e){return Array.isArray(e)?e:"string"==typeof e&&e.match(R)||[]}k.fn.extend({prop:function(e,t){return _(this,k.prop,e,t,1<arguments.length)},removeProp:function(e){return this.each(function(){delete this[k.propFix[e]||e]})}}),k.extend({prop:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return 1===o&&k.isXMLDoc(e)||(t=k.propFix[t]||t,i=k.propHooks[t]),void 0!==n?i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:e[t]=n:i&&"get"in i&&null!==(r=i.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){var t=k.find.attr(e,"tabindex");return t?parseInt(t,10):vt.test(e.nodeName)||yt.test(e.nodeName)&&e.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),y.optSelected||(k.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null},set:function(e){var t=e.parentNode;t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex)}}),k.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){k.propFix[this.toLowerCase()]=this}),k.fn.extend({addClass:function(t){var e,n,r,i,o,a,s,u=0;if(m(t))return this.each(function(e){k(this).addClass(t.call(this,e,xt(this)))});if((e=bt(t)).length)while(n=this[u++])if(i=xt(n),r=1===n.nodeType&&" "+mt(i)+" "){a=0;while(o=e[a++])r.indexOf(" "+o+" ")<0&&(r+=o+" ");i!==(s=mt(r))&&n.setAttribute("class",s)}return this},removeClass:function(t){var e,n,r,i,o,a,s,u=0;if(m(t))return this.each(function(e){k(this).removeClass(t.call(this,e,xt(this)))});if(!arguments.length)return this.attr("class","");if((e=bt(t)).length)while(n=this[u++])if(i=xt(n),r=1===n.nodeType&&" "+mt(i)+" "){a=0;while(o=e[a++])while(-1<r.indexOf(" "+o+" "))r=r.replace(" "+o+" "," ");i!==(s=mt(r))&&n.setAttribute("class",s)}return this},toggleClass:function(i,t){var o=typeof i,a="string"===o||Array.isArray(i);return"boolean"==typeof t&&a?t?this.addClass(i):this.removeClass(i):m(i)?this.each(function(e){k(this).toggleClass(i.call(this,e,xt(this),t),t)}):this.each(function(){var e,t,n,r;if(a){t=0,n=k(this),r=bt(i);while(e=r[t++])n.hasClass(e)?n.removeClass(e):n.addClass(e)}else void 0!==i&&"boolean"!==o||((e=xt(this))&&Q.set(this,"__className__",e),this.setAttribute&&this.setAttribute("class",e||!1===i?"":Q.get(this,"__className__")||""))})},hasClass:function(e){var t,n,r=0;t=" "+e+" ";while(n=this[r++])if(1===n.nodeType&&-1<(" "+mt(xt(n))+" ").indexOf(t))return!0;return!1}});var wt=/\r/g;k.fn.extend({val:function(n){var r,e,i,t=this[0];return arguments.length?(i=m(n),this.each(function(e){var t;1===this.nodeType&&(null==(t=i?n.call(this,e,k(this).val()):n)?t="":"number"==typeof t?t+="":Array.isArray(t)&&(t=k.map(t,function(e){return null==e?"":e+""})),(r=k.valHooks[this.type]||k.valHooks[this.nodeName.toLowerCase()])&&"set"in r&&void 0!==r.set(this,t,"value")||(this.value=t))})):t?(r=k.valHooks[t.type]||k.valHooks[t.nodeName.toLowerCase()])&&"get"in r&&void 0!==(e=r.get(t,"value"))?e:"string"==typeof(e=t.value)?e.replace(wt,""):null==e?"":e:void 0}}),k.extend({valHooks:{option:{get:function(e){var t=k.find.attr(e,"value");return null!=t?t:mt(k.text(e))}},select:{get:function(e){var t,n,r,i=e.options,o=e.selectedIndex,a="select-one"===e.type,s=a?null:[],u=a?o+1:i.length;for(r=o<0?u:a?o:0;r<u;r++)if(((n=i[r]).selected||r===o)&&!n.disabled&&(!n.parentNode.disabled||!A(n.parentNode,"optgroup"))){if(t=k(n).val(),a)return t;s.push(t)}return s},set:function(e,t){var n,r,i=e.options,o=k.makeArray(t),a=i.length;while(a--)((r=i[a]).selected=-1<k.inArray(k.valHooks.option.get(r),o))&&(n=!0);return n||(e.selectedIndex=-1),o}}}}),k.each(["radio","checkbox"],function(){k.valHooks[this]={set:function(e,t){if(Array.isArray(t))return e.checked=-1<k.inArray(k(e).val(),t)}},y.checkOn||(k.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})}),y.focusin="onfocusin"in C;var Tt=/^(?:focusinfocus|focusoutblur)$/,Ct=function(e){e.stopPropagation()};k.extend(k.event,{trigger:function(e,t,n,r){var i,o,a,s,u,l,c,f,p=[n||E],d=v.call(e,"type")?e.type:e,h=v.call(e,"namespace")?e.namespace.split("."):[];if(o=f=a=n=n||E,3!==n.nodeType&&8!==n.nodeType&&!Tt.test(d+k.event.triggered)&&(-1<d.indexOf(".")&&(d=(h=d.split(".")).shift(),h.sort()),u=d.indexOf(":")<0&&"on"+d,(e=e[k.expando]?e:new k.Event(d,"object"==typeof e&&e)).isTrigger=r?2:3,e.namespace=h.join("."),e.rnamespace=e.namespace?new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,e.result=void 0,e.target||(e.target=n),t=null==t?[e]:k.makeArray(t,[e]),c=k.event.special[d]||{},r||!c.trigger||!1!==c.trigger.apply(n,t))){if(!r&&!c.noBubble&&!x(n)){for(s=c.delegateType||d,Tt.test(s+d)||(o=o.parentNode);o;o=o.parentNode)p.push(o),a=o;a===(n.ownerDocument||E)&&p.push(a.defaultView||a.parentWindow||C)}i=0;while((o=p[i++])&&!e.isPropagationStopped())f=o,e.type=1<i?s:c.bindType||d,(l=(Q.get(o,"events")||{})[e.type]&&Q.get(o,"handle"))&&l.apply(o,t),(l=u&&o[u])&&l.apply&&G(o)&&(e.result=l.apply(o,t),!1===e.result&&e.preventDefault());return e.type=d,r||e.isDefaultPrevented()||c._default&&!1!==c._default.apply(p.pop(),t)||!G(n)||u&&m(n[d])&&!x(n)&&((a=n[u])&&(n[u]=null),k.event.triggered=d,e.isPropagationStopped()&&f.addEventListener(d,Ct),n[d](),e.isPropagationStopped()&&f.removeEventListener(d,Ct),k.event.triggered=void 0,a&&(n[u]=a)),e.result}},simulate:function(e,t,n){var r=k.extend(new k.Event,n,{type:e,isSimulated:!0});k.event.trigger(r,null,t)}}),k.fn.extend({trigger:function(e,t){return this.each(function(){k.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0];if(n)return k.event.trigger(e,t,n,!0)}}),y.focusin||k.each({focus:"focusin",blur:"focusout"},function(n,r){var i=function(e){k.event.simulate(r,e.target,k.event.fix(e))};k.event.special[r]={setup:function(){var e=this.ownerDocument||this,t=Q.access(e,r);t||e.addEventListener(n,i,!0),Q.access(e,r,(t||0)+1)},teardown:function(){var e=this.ownerDocument||this,t=Q.access(e,r)-1;t?Q.access(e,r,t):(e.removeEventListener(n,i,!0),Q.remove(e,r))}}});var Et=C.location,kt=Date.now(),St=/\?/;k.parseXML=function(e){var t;if(!e||"string"!=typeof e)return null;try{t=(new C.DOMParser).parseFromString(e,"text/xml")}catch(e){t=void 0}return t&&!t.getElementsByTagName("parsererror").length||k.error("Invalid XML: "+e),t};var Nt=/\[\]$/,At=/\r?\n/g,Dt=/^(?:submit|button|image|reset|file)$/i,jt=/^(?:input|select|textarea|keygen)/i;function qt(n,e,r,i){var t;if(Array.isArray(e))k.each(e,function(e,t){r||Nt.test(n)?i(n,t):qt(n+"["+("object"==typeof t&&null!=t?e:"")+"]",t,r,i)});else if(r||"object"!==w(e))i(n,e);else for(t in e)qt(n+"["+t+"]",e[t],r,i)}k.param=function(e,t){var n,r=[],i=function(e,t){var n=m(t)?t():t;r[r.length]=encodeURIComponent(e)+"="+encodeURIComponent(null==n?"":n)};if(null==e)return"";if(Array.isArray(e)||e.jquery&&!k.isPlainObject(e))k.each(e,function(){i(this.name,this.value)});else for(n in e)qt(n,e[n],t,i);return r.join("&")},k.fn.extend({serialize:function(){return k.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=k.prop(this,"elements");return e?k.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!k(this).is(":disabled")&&jt.test(this.nodeName)&&!Dt.test(e)&&(this.checked||!pe.test(e))}).map(function(e,t){var n=k(this).val();return null==n?null:Array.isArray(n)?k.map(n,function(e){return{name:t.name,value:e.replace(At,"\r\n")}}):{name:t.name,value:n.replace(At,"\r\n")}}).get()}});var Lt=/%20/g,Ht=/#.*$/,Ot=/([?&])_=[^&]*/,Pt=/^(.*?):[ \t]*([^\r\n]*)$/gm,Rt=/^(?:GET|HEAD)$/,Mt=/^\/\//,It={},Wt={},$t="*/".concat("*"),Ft=E.createElement("a");function Bt(o){return function(e,t){"string"!=typeof e&&(t=e,e="*");var n,r=0,i=e.toLowerCase().match(R)||[];if(m(t))while(n=i[r++])"+"===n[0]?(n=n.slice(1)||"*",(o[n]=o[n]||[]).unshift(t)):(o[n]=o[n]||[]).push(t)}}function _t(t,i,o,a){var s={},u=t===Wt;function l(e){var r;return s[e]=!0,k.each(t[e]||[],function(e,t){var n=t(i,o,a);return"string"!=typeof n||u||s[n]?u?!(r=n):void 0:(i.dataTypes.unshift(n),l(n),!1)}),r}return l(i.dataTypes[0])||!s["*"]&&l("*")}function zt(e,t){var n,r,i=k.ajaxSettings.flatOptions||{};for(n in t)void 0!==t[n]&&((i[n]?e:r||(r={}))[n]=t[n]);return r&&k.extend(!0,e,r),e}Ft.href=Et.href,k.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:Et.href,type:"GET",isLocal:/^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(Et.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":$t,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":k.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?zt(zt(e,k.ajaxSettings),t):zt(k.ajaxSettings,e)},ajaxPrefilter:Bt(It),ajaxTransport:Bt(Wt),ajax:function(e,t){"object"==typeof e&&(t=e,e=void 0),t=t||{};var c,f,p,n,d,r,h,g,i,o,v=k.ajaxSetup({},t),y=v.context||v,m=v.context&&(y.nodeType||y.jquery)?k(y):k.event,x=k.Deferred(),b=k.Callbacks("once memory"),w=v.statusCode||{},a={},s={},u="canceled",T={readyState:0,getResponseHeader:function(e){var t;if(h){if(!n){n={};while(t=Pt.exec(p))n[t[1].toLowerCase()+" "]=(n[t[1].toLowerCase()+" "]||[]).concat(t[2])}t=n[e.toLowerCase()+" "]}return null==t?null:t.join(", ")},getAllResponseHeaders:function(){return h?p:null},setRequestHeader:function(e,t){return null==h&&(e=s[e.toLowerCase()]=s[e.toLowerCase()]||e,a[e]=t),this},overrideMimeType:function(e){return null==h&&(v.mimeType=e),this},statusCode:function(e){var t;if(e)if(h)T.always(e[T.status]);else for(t in e)w[t]=[w[t],e[t]];return this},abort:function(e){var t=e||u;return c&&c.abort(t),l(0,t),this}};if(x.promise(T),v.url=((e||v.url||Et.href)+"").replace(Mt,Et.protocol+"//"),v.type=t.method||t.type||v.method||v.type,v.dataTypes=(v.dataType||"*").toLowerCase().match(R)||[""],null==v.crossDomain){r=E.createElement("a");try{r.href=v.url,r.href=r.href,v.crossDomain=Ft.protocol+"//"+Ft.host!=r.protocol+"//"+r.host}catch(e){v.crossDomain=!0}}if(v.data&&v.processData&&"string"!=typeof v.data&&(v.data=k.param(v.data,v.traditional)),_t(It,v,t,T),h)return T;for(i in(g=k.event&&v.global)&&0==k.active++&&k.event.trigger("ajaxStart"),v.type=v.type.toUpperCase(),v.hasContent=!Rt.test(v.type),f=v.url.replace(Ht,""),v.hasContent?v.data&&v.processData&&0===(v.contentType||"").indexOf("application/x-www-form-urlencoded")&&(v.data=v.data.replace(Lt,"+")):(o=v.url.slice(f.length),v.data&&(v.processData||"string"==typeof v.data)&&(f+=(St.test(f)?"&":"?")+v.data,delete v.data),!1===v.cache&&(f=f.replace(Ot,"$1"),o=(St.test(f)?"&":"?")+"_="+kt+++o),v.url=f+o),v.ifModified&&(k.lastModified[f]&&T.setRequestHeader("If-Modified-Since",k.lastModified[f]),k.etag[f]&&T.setRequestHeader("If-None-Match",k.etag[f])),(v.data&&v.hasContent&&!1!==v.contentType||t.contentType)&&T.setRequestHeader("Content-Type",v.contentType),T.setRequestHeader("Accept",v.dataTypes[0]&&v.accepts[v.dataTypes[0]]?v.accepts[v.dataTypes[0]]+("*"!==v.dataTypes[0]?", "+$t+"; q=0.01":""):v.accepts["*"]),v.headers)T.setRequestHeader(i,v.headers[i]);if(v.beforeSend&&(!1===v.beforeSend.call(y,T,v)||h))return T.abort();if(u="abort",b.add(v.complete),T.done(v.success),T.fail(v.error),c=_t(Wt,v,t,T)){if(T.readyState=1,g&&m.trigger("ajaxSend",[T,v]),h)return T;v.async&&0<v.timeout&&(d=C.setTimeout(function(){T.abort("timeout")},v.timeout));try{h=!1,c.send(a,l)}catch(e){if(h)throw e;l(-1,e)}}else l(-1,"No Transport");function l(e,t,n,r){var i,o,a,s,u,l=t;h||(h=!0,d&&C.clearTimeout(d),c=void 0,p=r||"",T.readyState=0<e?4:0,i=200<=e&&e<300||304===e,n&&(s=function(e,t,n){var r,i,o,a,s=e.contents,u=e.dataTypes;while("*"===u[0])u.shift(),void 0===r&&(r=e.mimeType||t.getResponseHeader("Content-Type"));if(r)for(i in s)if(s[i]&&s[i].test(r)){u.unshift(i);break}if(u[0]in n)o=u[0];else{for(i in n){if(!u[0]||e.converters[i+" "+u[0]]){o=i;break}a||(a=i)}o=o||a}if(o)return o!==u[0]&&u.unshift(o),n[o]}(v,T,n)),s=function(e,t,n,r){var i,o,a,s,u,l={},c=e.dataTypes.slice();if(c[1])for(a in e.converters)l[a.toLowerCase()]=e.converters[a];o=c.shift();while(o)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!u&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),u=o,o=c.shift())if("*"===o)o=u;else if("*"!==u&&u!==o){if(!(a=l[u+" "+o]||l["* "+o]))for(i in l)if((s=i.split(" "))[1]===o&&(a=l[u+" "+s[0]]||l["* "+s[0]])){!0===a?a=l[i]:!0!==l[i]&&(o=s[0],c.unshift(s[1]));break}if(!0!==a)if(a&&e["throws"])t=a(t);else try{t=a(t)}catch(e){return{state:"parsererror",error:a?e:"No conversion from "+u+" to "+o}}}return{state:"success",data:t}}(v,s,T,i),i?(v.ifModified&&((u=T.getResponseHeader("Last-Modified"))&&(k.lastModified[f]=u),(u=T.getResponseHeader("etag"))&&(k.etag[f]=u)),204===e||"HEAD"===v.type?l="nocontent":304===e?l="notmodified":(l=s.state,o=s.data,i=!(a=s.error))):(a=l,!e&&l||(l="error",e<0&&(e=0))),T.status=e,T.statusText=(t||l)+"",i?x.resolveWith(y,[o,l,T]):x.rejectWith(y,[T,l,a]),T.statusCode(w),w=void 0,g&&m.trigger(i?"ajaxSuccess":"ajaxError",[T,v,i?o:a]),b.fireWith(y,[T,l]),g&&(m.trigger("ajaxComplete",[T,v]),--k.active||k.event.trigger("ajaxStop")))}return T},getJSON:function(e,t,n){return k.get(e,t,n,"json")},getScript:function(e,t){return k.get(e,void 0,t,"script")}}),k.each(["get","post"],function(e,i){k[i]=function(e,t,n,r){return m(t)&&(r=r||n,n=t,t=void 0),k.ajax(k.extend({url:e,type:i,dataType:r,data:t,success:n},k.isPlainObject(e)&&e))}}),k._evalUrl=function(e,t){return k.ajax({url:e,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,converters:{"text script":function(){}},dataFilter:function(e){k.globalEval(e,t)}})},k.fn.extend({wrapAll:function(e){var t;return this[0]&&(m(e)&&(e=e.call(this[0])),t=k(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstElementChild)e=e.firstElementChild;return e}).append(this)),this},wrapInner:function(n){return m(n)?this.each(function(e){k(this).wrapInner(n.call(this,e))}):this.each(function(){var e=k(this),t=e.contents();t.length?t.wrapAll(n):e.append(n)})},wrap:function(t){var n=m(t);return this.each(function(e){k(this).wrapAll(n?t.call(this,e):t)})},unwrap:function(e){return this.parent(e).not("body").each(function(){k(this).replaceWith(this.childNodes)}),this}}),k.expr.pseudos.hidden=function(e){return!k.expr.pseudos.visible(e)},k.expr.pseudos.visible=function(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)},k.ajaxSettings.xhr=function(){try{return new C.XMLHttpRequest}catch(e){}};var Ut={0:200,1223:204},Xt=k.ajaxSettings.xhr();y.cors=!!Xt&&"withCredentials"in Xt,y.ajax=Xt=!!Xt,k.ajaxTransport(function(i){var o,a;if(y.cors||Xt&&!i.crossDomain)return{send:function(e,t){var n,r=i.xhr();if(r.open(i.type,i.url,i.async,i.username,i.password),i.xhrFields)for(n in i.xhrFields)r[n]=i.xhrFields[n];for(n in i.mimeType&&r.overrideMimeType&&r.overrideMimeType(i.mimeType),i.crossDomain||e["X-Requested-With"]||(e["X-Requested-With"]="XMLHttpRequest"),e)r.setRequestHeader(n,e[n]);o=function(e){return function(){o&&(o=a=r.onload=r.onerror=r.onabort=r.ontimeout=r.onreadystatechange=null,"abort"===e?r.abort():"error"===e?"number"!=typeof r.status?t(0,"error"):t(r.status,r.statusText):t(Ut[r.status]||r.status,r.statusText,"text"!==(r.responseType||"text")||"string"!=typeof r.responseText?{binary:r.response}:{text:r.responseText},r.getAllResponseHeaders()))}},r.onload=o(),a=r.onerror=r.ontimeout=o("error"),void 0!==r.onabort?r.onabort=a:r.onreadystatechange=function(){4===r.readyState&&C.setTimeout(function(){o&&a()})},o=o("abort");try{r.send(i.hasContent&&i.data||null)}catch(e){if(o)throw e}},abort:function(){o&&o()}}}),k.ajaxPrefilter(function(e){e.crossDomain&&(e.contents.script=!1)}),k.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(e){return k.globalEval(e),e}}}),k.ajaxPrefilter("script",function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type="GET")}),k.ajaxTransport("script",function(n){var r,i;if(n.crossDomain||n.scriptAttrs)return{send:function(e,t){r=k("<script>").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var Vt,Gt=[],Yt=/(=)\?(?=&|$)|\?\?/;k.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Gt.pop()||k.expando+"_"+kt++;return this[e]=!0,e}}),k.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Yt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Yt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Yt,"$1"+r):!1!==e.jsonp&&(e.url+=(St.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||k.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?k(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Gt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((Vt=E.implementation.createHTMLDocument("").body).innerHTML="<form></form><form></form>",2===Vt.childNodes.length),k.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=D.exec(e))?[t.createElement(i[1])]:(i=we([e],t,o),o&&o.length&&k(o).remove(),k.merge([],i.childNodes)));var r,i,o},k.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1<s&&(r=mt(e.slice(s)),e=e.slice(0,s)),m(t)?(n=t,t=void 0):t&&"object"==typeof t&&(i="POST"),0<a.length&&k.ajax({url:e,type:i||"GET",dataType:"html",data:t}).done(function(e){o=arguments,a.html(r?k("<div>").append(k.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},k.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){k.fn[t]=function(e){return this.on(t,e)}}),k.expr.pseudos.animated=function(t){return k.grep(k.timers,function(e){return t===e.elem}).length},k.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=k.css(e,"position"),c=k(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=k.css(e,"top"),u=k.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,k.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},k.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){k.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===k.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===k.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=k(e).offset()).top+=k.css(e,"borderTopWidth",!0),i.left+=k.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-k.css(r,"marginTop",!0),left:t.left-i.left-k.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===k.css(e,"position"))e=e.offsetParent;return e||ie})}}),k.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;k.fn[t]=function(e){return _(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),k.each(["top","left"],function(e,n){k.cssHooks[n]=ze(y.pixelPosition,function(e,t){if(t)return t=_e(e,n),$e.test(t)?k(e).position()[n]+"px":t})}),k.each({Height:"height",Width:"width"},function(a,s){k.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){k.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return _(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?k.css(e,t,i):k.style(e,t,n,i)},s,n?e:void 0,n)}})}),k.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){k.fn[n]=function(e,t){return 0<arguments.length?this.on(n,null,e,t):this.trigger(n)}}),k.fn.extend({hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),k.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)}}),k.proxy=function(e,t){var n,r,i;if("string"==typeof t&&(n=e[t],t=e,e=n),m(e))return r=s.call(arguments,2),(i=function(){return e.apply(t||this,r.concat(s.call(arguments)))}).guid=e.guid=e.guid||k.guid++,i},k.holdReady=function(e){e?k.readyWait++:k.ready(!0)},k.isArray=Array.isArray,k.parseJSON=JSON.parse,k.nodeName=A,k.isFunction=m,k.isWindow=x,k.camelCase=V,k.type=w,k.now=Date.now,k.isNumeric=function(e){var t=k.type(e);return("number"===t||"string"===t)&&!isNaN(e-parseFloat(e))},"function"==typeof define&&define.amd&&define("jquery",[],function(){return k});var Qt=C.jQuery,Jt=C.$;return k.noConflict=function(e){return C.$===k&&(C.$=Jt),e&&C.jQuery===k&&(C.jQuery=Qt),k},e||(C.jQuery=C.$=k),k});
+/*! jQuery UI - v1.12.1 - 2019-01-27
+* http://jqueryui.com
+* Includes: widget.js, position.js, data.js, disable-selection.js, focusable.js, form-reset-mixin.js, jquery-1-7.js, keycode.js, labels.js, scroll-parent.js, tabbable.js, unique-id.js, widgets/resizable.js, widgets/mouse.js
+* Copyright jQuery Foundation and other contributors; Licensed MIT */
+
+(function(t){"function"==typeof define&&define.amd?define(["jquery"],t):t(jQuery)})(function(t){function e(t){for(var e=t.css("visibility");"inherit"===e;)t=t.parent(),e=t.css("visibility");return"hidden"!==e}t.ui=t.ui||{},t.ui.version="1.12.1";var i=0,s=Array.prototype.slice;t.cleanData=function(e){return function(i){var s,n,o;for(o=0;null!=(n=i[o]);o++)try{s=t._data(n,"events"),s&&s.remove&&t(n).triggerHandler("remove")}catch(a){}e(i)}}(t.cleanData),t.widget=function(e,i,s){var n,o,a,r={},h=e.split(".")[0];e=e.split(".")[1];var l=h+"-"+e;return s||(s=i,i=t.Widget),t.isArray(s)&&(s=t.extend.apply(null,[{}].concat(s))),t.expr[":"][l.toLowerCase()]=function(e){return!!t.data(e,l)},t[h]=t[h]||{},n=t[h][e],o=t[h][e]=function(t,e){return this._createWidget?(arguments.length&&this._createWidget(t,e),void 0):new o(t,e)},t.extend(o,n,{version:s.version,_proto:t.extend({},s),_childConstructors:[]}),a=new i,a.options=t.widget.extend({},a.options),t.each(s,function(e,s){return t.isFunction(s)?(r[e]=function(){function t(){return i.prototype[e].apply(this,arguments)}function n(t){return i.prototype[e].apply(this,t)}return function(){var e,i=this._super,o=this._superApply;return this._super=t,this._superApply=n,e=s.apply(this,arguments),this._super=i,this._superApply=o,e}}(),void 0):(r[e]=s,void 0)}),o.prototype=t.widget.extend(a,{widgetEventPrefix:n?a.widgetEventPrefix||e:e},r,{constructor:o,namespace:h,widgetName:e,widgetFullName:l}),n?(t.each(n._childConstructors,function(e,i){var s=i.prototype;t.widget(s.namespace+"."+s.widgetName,o,i._proto)}),delete n._childConstructors):i._childConstructors.push(o),t.widget.bridge(e,o),o},t.widget.extend=function(e){for(var i,n,o=s.call(arguments,1),a=0,r=o.length;r>a;a++)for(i in o[a])n=o[a][i],o[a].hasOwnProperty(i)&&void 0!==n&&(e[i]=t.isPlainObject(n)?t.isPlainObject(e[i])?t.widget.extend({},e[i],n):t.widget.extend({},n):n);return e},t.widget.bridge=function(e,i){var n=i.prototype.widgetFullName||e;t.fn[e]=function(o){var a="string"==typeof o,r=s.call(arguments,1),h=this;return a?this.length||"instance"!==o?this.each(function(){var i,s=t.data(this,n);return"instance"===o?(h=s,!1):s?t.isFunction(s[o])&&"_"!==o.charAt(0)?(i=s[o].apply(s,r),i!==s&&void 0!==i?(h=i&&i.jquery?h.pushStack(i.get()):i,!1):void 0):t.error("no such method '"+o+"' for "+e+" widget instance"):t.error("cannot call methods on "+e+" prior to initialization; "+"attempted to call method '"+o+"'")}):h=void 0:(r.length&&(o=t.widget.extend.apply(null,[o].concat(r))),this.each(function(){var e=t.data(this,n);e?(e.option(o||{}),e._init&&e._init()):t.data(this,n,new i(o,this))})),h}},t.Widget=function(){},t.Widget._childConstructors=[],t.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",defaultElement:"<div>",options:{classes:{},disabled:!1,create:null},_createWidget:function(e,s){s=t(s||this.defaultElement||this)[0],this.element=t(s),this.uuid=i++,this.eventNamespace="."+this.widgetName+this.uuid,this.bindings=t(),this.hoverable=t(),this.focusable=t(),this.classesElementLookup={},s!==this&&(t.data(s,this.widgetFullName,this),this._on(!0,this.element,{remove:function(t){t.target===s&&this.destroy()}}),this.document=t(s.style?s.ownerDocument:s.document||s),this.window=t(this.document[0].defaultView||this.document[0].parentWindow)),this.options=t.widget.extend({},this.options,this._getCreateOptions(),e),this._create(),this.options.disabled&&this._setOptionDisabled(this.options.disabled),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:function(){return{}},_getCreateEventData:t.noop,_create:t.noop,_init:t.noop,destroy:function(){var e=this;this._destroy(),t.each(this.classesElementLookup,function(t,i){e._removeClass(i,t)}),this.element.off(this.eventNamespace).removeData(this.widgetFullName),this.widget().off(this.eventNamespace).removeAttr("aria-disabled"),this.bindings.off(this.eventNamespace)},_destroy:t.noop,widget:function(){return this.element},option:function(e,i){var s,n,o,a=e;if(0===arguments.length)return t.widget.extend({},this.options);if("string"==typeof e)if(a={},s=e.split("."),e=s.shift(),s.length){for(n=a[e]=t.widget.extend({},this.options[e]),o=0;s.length-1>o;o++)n[s[o]]=n[s[o]]||{},n=n[s[o]];if(e=s.pop(),1===arguments.length)return void 0===n[e]?null:n[e];n[e]=i}else{if(1===arguments.length)return void 0===this.options[e]?null:this.options[e];a[e]=i}return this._setOptions(a),this},_setOptions:function(t){var e;for(e in t)this._setOption(e,t[e]);return this},_setOption:function(t,e){return"classes"===t&&this._setOptionClasses(e),this.options[t]=e,"disabled"===t&&this._setOptionDisabled(e),this},_setOptionClasses:function(e){var i,s,n;for(i in e)n=this.classesElementLookup[i],e[i]!==this.options.classes[i]&&n&&n.length&&(s=t(n.get()),this._removeClass(n,i),s.addClass(this._classes({element:s,keys:i,classes:e,add:!0})))},_setOptionDisabled:function(t){this._toggleClass(this.widget(),this.widgetFullName+"-disabled",null,!!t),t&&(this._removeClass(this.hoverable,null,"ui-state-hover"),this._removeClass(this.focusable,null,"ui-state-focus"))},enable:function(){return this._setOptions({disabled:!1})},disable:function(){return this._setOptions({disabled:!0})},_classes:function(e){function i(i,o){var a,r;for(r=0;i.length>r;r++)a=n.classesElementLookup[i[r]]||t(),a=e.add?t(t.unique(a.get().concat(e.element.get()))):t(a.not(e.element).get()),n.classesElementLookup[i[r]]=a,s.push(i[r]),o&&e.classes[i[r]]&&s.push(e.classes[i[r]])}var s=[],n=this;return e=t.extend({element:this.element,classes:this.options.classes||{}},e),this._on(e.element,{remove:"_untrackClassesElement"}),e.keys&&i(e.keys.match(/\S+/g)||[],!0),e.extra&&i(e.extra.match(/\S+/g)||[]),s.join(" ")},_untrackClassesElement:function(e){var i=this;t.each(i.classesElementLookup,function(s,n){-1!==t.inArray(e.target,n)&&(i.classesElementLookup[s]=t(n.not(e.target).get()))})},_removeClass:function(t,e,i){return this._toggleClass(t,e,i,!1)},_addClass:function(t,e,i){return this._toggleClass(t,e,i,!0)},_toggleClass:function(t,e,i,s){s="boolean"==typeof s?s:i;var n="string"==typeof t||null===t,o={extra:n?e:i,keys:n?t:e,element:n?this.element:t,add:s};return o.element.toggleClass(this._classes(o),s),this},_on:function(e,i,s){var n,o=this;"boolean"!=typeof e&&(s=i,i=e,e=!1),s?(i=n=t(i),this.bindings=this.bindings.add(i)):(s=i,i=this.element,n=this.widget()),t.each(s,function(s,a){function r(){return e||o.options.disabled!==!0&&!t(this).hasClass("ui-state-disabled")?("string"==typeof a?o[a]:a).apply(o,arguments):void 0}"string"!=typeof a&&(r.guid=a.guid=a.guid||r.guid||t.guid++);var h=s.match(/^([\w:-]*)\s*(.*)$/),l=h[1]+o.eventNamespace,c=h[2];c?n.on(l,c,r):i.on(l,r)})},_off:function(e,i){i=(i||"").split(" ").join(this.eventNamespace+" ")+this.eventNamespace,e.off(i).off(i),this.bindings=t(this.bindings.not(e).get()),this.focusable=t(this.focusable.not(e).get()),this.hoverable=t(this.hoverable.not(e).get())},_delay:function(t,e){function i(){return("string"==typeof t?s[t]:t).apply(s,arguments)}var s=this;return setTimeout(i,e||0)},_hoverable:function(e){this.hoverable=this.hoverable.add(e),this._on(e,{mouseenter:function(e){this._addClass(t(e.currentTarget),null,"ui-state-hover")},mouseleave:function(e){this._removeClass(t(e.currentTarget),null,"ui-state-hover")}})},_focusable:function(e){this.focusable=this.focusable.add(e),this._on(e,{focusin:function(e){this._addClass(t(e.currentTarget),null,"ui-state-focus")},focusout:function(e){this._removeClass(t(e.currentTarget),null,"ui-state-focus")}})},_trigger:function(e,i,s){var n,o,a=this.options[e];if(s=s||{},i=t.Event(i),i.type=(e===this.widgetEventPrefix?e:this.widgetEventPrefix+e).toLowerCase(),i.target=this.element[0],o=i.originalEvent)for(n in o)n in i||(i[n]=o[n]);return this.element.trigger(i,s),!(t.isFunction(a)&&a.apply(this.element[0],[i].concat(s))===!1||i.isDefaultPrevented())}},t.each({show:"fadeIn",hide:"fadeOut"},function(e,i){t.Widget.prototype["_"+e]=function(s,n,o){"string"==typeof n&&(n={effect:n});var a,r=n?n===!0||"number"==typeof n?i:n.effect||i:e;n=n||{},"number"==typeof n&&(n={duration:n}),a=!t.isEmptyObject(n),n.complete=o,n.delay&&s.delay(n.delay),a&&t.effects&&t.effects.effect[r]?s[e](n):r!==e&&s[r]?s[r](n.duration,n.easing,o):s.queue(function(i){t(this)[e](),o&&o.call(s[0]),i()})}}),t.widget,function(){function e(t,e,i){return[parseFloat(t[0])*(u.test(t[0])?e/100:1),parseFloat(t[1])*(u.test(t[1])?i/100:1)]}function i(e,i){return parseInt(t.css(e,i),10)||0}function s(e){var i=e[0];return 9===i.nodeType?{width:e.width(),height:e.height(),offset:{top:0,left:0}}:t.isWindow(i)?{width:e.width(),height:e.height(),offset:{top:e.scrollTop(),left:e.scrollLeft()}}:i.preventDefault?{width:0,height:0,offset:{top:i.pageY,left:i.pageX}}:{width:e.outerWidth(),height:e.outerHeight(),offset:e.offset()}}var n,o=Math.max,a=Math.abs,r=/left|center|right/,h=/top|center|bottom/,l=/[\+\-]\d+(\.[\d]+)?%?/,c=/^\w+/,u=/%$/,d=t.fn.position;t.position={scrollbarWidth:function(){if(void 0!==n)return n;var e,i,s=t("<div style='display:block;position:absolute;width:50px;height:50px;overflow:hidden;'><div style='height:100px;width:auto;'></div></div>"),o=s.children()[0];return t("body").append(s),e=o.offsetWidth,s.css("overflow","scroll"),i=o.offsetWidth,e===i&&(i=s[0].clientWidth),s.remove(),n=e-i},getScrollInfo:function(e){var i=e.isWindow||e.isDocument?"":e.element.css("overflow-x"),s=e.isWindow||e.isDocument?"":e.element.css("overflow-y"),n="scroll"===i||"auto"===i&&e.width<e.element[0].scrollWidth,o="scroll"===s||"auto"===s&&e.height<e.element[0].scrollHeight;return{width:o?t.position.scrollbarWidth():0,height:n?t.position.scrollbarWidth():0}},getWithinInfo:function(e){var i=t(e||window),s=t.isWindow(i[0]),n=!!i[0]&&9===i[0].nodeType,o=!s&&!n;return{element:i,isWindow:s,isDocument:n,offset:o?t(e).offset():{left:0,top:0},scrollLeft:i.scrollLeft(),scrollTop:i.scrollTop(),width:i.outerWidth(),height:i.outerHeight()}}},t.fn.position=function(n){if(!n||!n.of)return d.apply(this,arguments);n=t.extend({},n);var u,p,f,m,g,_,v=t(n.of),b=t.position.getWithinInfo(n.within),y=t.position.getScrollInfo(b),w=(n.collision||"flip").split(" "),x={};return _=s(v),v[0].preventDefault&&(n.at="left top"),p=_.width,f=_.height,m=_.offset,g=t.extend({},m),t.each(["my","at"],function(){var t,e,i=(n[this]||"").split(" ");1===i.length&&(i=r.test(i[0])?i.concat(["center"]):h.test(i[0])?["center"].concat(i):["center","center"]),i[0]=r.test(i[0])?i[0]:"center",i[1]=h.test(i[1])?i[1]:"center",t=l.exec(i[0]),e=l.exec(i[1]),x[this]=[t?t[0]:0,e?e[0]:0],n[this]=[c.exec(i[0])[0],c.exec(i[1])[0]]}),1===w.length&&(w[1]=w[0]),"right"===n.at[0]?g.left+=p:"center"===n.at[0]&&(g.left+=p/2),"bottom"===n.at[1]?g.top+=f:"center"===n.at[1]&&(g.top+=f/2),u=e(x.at,p,f),g.left+=u[0],g.top+=u[1],this.each(function(){var s,r,h=t(this),l=h.outerWidth(),c=h.outerHeight(),d=i(this,"marginLeft"),_=i(this,"marginTop"),k=l+d+i(this,"marginRight")+y.width,C=c+_+i(this,"marginBottom")+y.height,D=t.extend({},g),T=e(x.my,h.outerWidth(),h.outerHeight());"right"===n.my[0]?D.left-=l:"center"===n.my[0]&&(D.left-=l/2),"bottom"===n.my[1]?D.top-=c:"center"===n.my[1]&&(D.top-=c/2),D.left+=T[0],D.top+=T[1],s={marginLeft:d,marginTop:_},t.each(["left","top"],function(e,i){t.ui.position[w[e]]&&t.ui.position[w[e]][i](D,{targetWidth:p,targetHeight:f,elemWidth:l,elemHeight:c,collisionPosition:s,collisionWidth:k,collisionHeight:C,offset:[u[0]+T[0],u[1]+T[1]],my:n.my,at:n.at,within:b,elem:h})}),n.using&&(r=function(t){var e=m.left-D.left,i=e+p-l,s=m.top-D.top,r=s+f-c,u={target:{element:v,left:m.left,top:m.top,width:p,height:f},element:{element:h,left:D.left,top:D.top,width:l,height:c},horizontal:0>i?"left":e>0?"right":"center",vertical:0>r?"top":s>0?"bottom":"middle"};l>p&&p>a(e+i)&&(u.horizontal="center"),c>f&&f>a(s+r)&&(u.vertical="middle"),u.important=o(a(e),a(i))>o(a(s),a(r))?"horizontal":"vertical",n.using.call(this,t,u)}),h.offset(t.extend(D,{using:r}))})},t.ui.position={fit:{left:function(t,e){var i,s=e.within,n=s.isWindow?s.scrollLeft:s.offset.left,a=s.width,r=t.left-e.collisionPosition.marginLeft,h=n-r,l=r+e.collisionWidth-a-n;e.collisionWidth>a?h>0&&0>=l?(i=t.left+h+e.collisionWidth-a-n,t.left+=h-i):t.left=l>0&&0>=h?n:h>l?n+a-e.collisionWidth:n:h>0?t.left+=h:l>0?t.left-=l:t.left=o(t.left-r,t.left)},top:function(t,e){var i,s=e.within,n=s.isWindow?s.scrollTop:s.offset.top,a=e.within.height,r=t.top-e.collisionPosition.marginTop,h=n-r,l=r+e.collisionHeight-a-n;e.collisionHeight>a?h>0&&0>=l?(i=t.top+h+e.collisionHeight-a-n,t.top+=h-i):t.top=l>0&&0>=h?n:h>l?n+a-e.collisionHeight:n:h>0?t.top+=h:l>0?t.top-=l:t.top=o(t.top-r,t.top)}},flip:{left:function(t,e){var i,s,n=e.within,o=n.offset.left+n.scrollLeft,r=n.width,h=n.isWindow?n.scrollLeft:n.offset.left,l=t.left-e.collisionPosition.marginLeft,c=l-h,u=l+e.collisionWidth-r-h,d="left"===e.my[0]?-e.elemWidth:"right"===e.my[0]?e.elemWidth:0,p="left"===e.at[0]?e.targetWidth:"right"===e.at[0]?-e.targetWidth:0,f=-2*e.offset[0];0>c?(i=t.left+d+p+f+e.collisionWidth-r-o,(0>i||a(c)>i)&&(t.left+=d+p+f)):u>0&&(s=t.left-e.collisionPosition.marginLeft+d+p+f-h,(s>0||u>a(s))&&(t.left+=d+p+f))},top:function(t,e){var i,s,n=e.within,o=n.offset.top+n.scrollTop,r=n.height,h=n.isWindow?n.scrollTop:n.offset.top,l=t.top-e.collisionPosition.marginTop,c=l-h,u=l+e.collisionHeight-r-h,d="top"===e.my[1],p=d?-e.elemHeight:"bottom"===e.my[1]?e.elemHeight:0,f="top"===e.at[1]?e.targetHeight:"bottom"===e.at[1]?-e.targetHeight:0,m=-2*e.offset[1];0>c?(s=t.top+p+f+m+e.collisionHeight-r-o,(0>s||a(c)>s)&&(t.top+=p+f+m)):u>0&&(i=t.top-e.collisionPosition.marginTop+p+f+m-h,(i>0||u>a(i))&&(t.top+=p+f+m))}},flipfit:{left:function(){t.ui.position.flip.left.apply(this,arguments),t.ui.position.fit.left.apply(this,arguments)},top:function(){t.ui.position.flip.top.apply(this,arguments),t.ui.position.fit.top.apply(this,arguments)}}}}(),t.ui.position,t.extend(t.expr[":"],{data:t.expr.createPseudo?t.expr.createPseudo(function(e){return function(i){return!!t.data(i,e)}}):function(e,i,s){return!!t.data(e,s[3])}}),t.fn.extend({disableSelection:function(){var t="onselectstart"in document.createElement("div")?"selectstart":"mousedown";return function(){return this.on(t+".ui-disableSelection",function(t){t.preventDefault()})}}(),enableSelection:function(){return this.off(".ui-disableSelection")}}),t.ui.focusable=function(i,s){var n,o,a,r,h,l=i.nodeName.toLowerCase();return"area"===l?(n=i.parentNode,o=n.name,i.href&&o&&"map"===n.nodeName.toLowerCase()?(a=t("img[usemap='#"+o+"']"),a.length>0&&a.is(":visible")):!1):(/^(input|select|textarea|button|object)$/.test(l)?(r=!i.disabled,r&&(h=t(i).closest("fieldset")[0],h&&(r=!h.disabled))):r="a"===l?i.href||s:s,r&&t(i).is(":visible")&&e(t(i)))},t.extend(t.expr[":"],{focusable:function(e){return t.ui.focusable(e,null!=t.attr(e,"tabindex"))}}),t.ui.focusable,t.fn.form=function(){return"string"==typeof this[0].form?this.closest("form"):t(this[0].form)},t.ui.formResetMixin={_formResetHandler:function(){var e=t(this);setTimeout(function(){var i=e.data("ui-form-reset-instances");t.each(i,function(){this.refresh()})})},_bindFormResetHandler:function(){if(this.form=this.element.form(),this.form.length){var t=this.form.data("ui-form-reset-instances")||[];t.length||this.form.on("reset.ui-form-reset",this._formResetHandler),t.push(this),this.form.data("ui-form-reset-instances",t)}},_unbindFormResetHandler:function(){if(this.form.length){var e=this.form.data("ui-form-reset-instances");e.splice(t.inArray(this,e),1),e.length?this.form.data("ui-form-reset-instances",e):this.form.removeData("ui-form-reset-instances").off("reset.ui-form-reset")}}},"1.7"===t.fn.jquery.substring(0,3)&&(t.each(["Width","Height"],function(e,i){function s(e,i,s,o){return t.each(n,function(){i-=parseFloat(t.css(e,"padding"+this))||0,s&&(i-=parseFloat(t.css(e,"border"+this+"Width"))||0),o&&(i-=parseFloat(t.css(e,"margin"+this))||0)}),i}var n="Width"===i?["Left","Right"]:["Top","Bottom"],o=i.toLowerCase(),a={innerWidth:t.fn.innerWidth,innerHeight:t.fn.innerHeight,outerWidth:t.fn.outerWidth,outerHeight:t.fn.outerHeight};t.fn["inner"+i]=function(e){return void 0===e?a["inner"+i].call(this):this.each(function(){t(this).css(o,s(this,e)+"px")})},t.fn["outer"+i]=function(e,n){return"number"!=typeof e?a["outer"+i].call(this,e):this.each(function(){t(this).css(o,s(this,e,!0,n)+"px")})}}),t.fn.addBack=function(t){return this.add(null==t?this.prevObject:this.prevObject.filter(t))}),t.ui.keyCode={BACKSPACE:8,COMMA:188,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,LEFT:37,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SPACE:32,TAB:9,UP:38},t.ui.escapeSelector=function(){var t=/([!"#$%&'()*+,./:;<=>?@[\]^`{|}~])/g;return function(e){return e.replace(t,"\\$1")}}(),t.fn.labels=function(){var e,i,s,n,o;return this[0].labels&&this[0].labels.length?this.pushStack(this[0].labels):(n=this.eq(0).parents("label"),s=this.attr("id"),s&&(e=this.eq(0).parents().last(),o=e.add(e.length?e.siblings():this.siblings()),i="label[for='"+t.ui.escapeSelector(s)+"']",n=n.add(o.find(i).addBack(i))),this.pushStack(n))},t.fn.scrollParent=function(e){var i=this.css("position"),s="absolute"===i,n=e?/(auto|scroll|hidden)/:/(auto|scroll)/,o=this.parents().filter(function(){var e=t(this);return s&&"static"===e.css("position")?!1:n.test(e.css("overflow")+e.css("overflow-y")+e.css("overflow-x"))}).eq(0);return"fixed"!==i&&o.length?o:t(this[0].ownerDocument||document)},t.extend(t.expr[":"],{tabbable:function(e){var i=t.attr(e,"tabindex"),s=null!=i;return(!s||i>=0)&&t.ui.focusable(e,s)}}),t.fn.extend({uniqueId:function(){var t=0;return function(){return this.each(function(){this.id||(this.id="ui-id-"+ ++t)})}}(),removeUniqueId:function(){return this.each(function(){/^ui-id-\d+$/.test(this.id)&&t(this).removeAttr("id")})}}),t.ui.ie=!!/msie [\w.]+/.exec(navigator.userAgent.toLowerCase());var n=!1;t(document).on("mouseup",function(){n=!1}),t.widget("ui.mouse",{version:"1.12.1",options:{cancel:"input, textarea, button, select, option",distance:1,delay:0},_mouseInit:function(){var e=this;this.element.on("mousedown."+this.widgetName,function(t){return e._mouseDown(t)}).on("click."+this.widgetName,function(i){return!0===t.data(i.target,e.widgetName+".preventClickEvent")?(t.removeData(i.target,e.widgetName+".preventClickEvent"),i.stopImmediatePropagation(),!1):void 0}),this.started=!1},_mouseDestroy:function(){this.element.off("."+this.widgetName),this._mouseMoveDelegate&&this.document.off("mousemove."+this.widgetName,this._mouseMoveDelegate).off("mouseup."+this.widgetName,this._mouseUpDelegate)},_mouseDown:function(e){if(!n){this._mouseMoved=!1,this._mouseStarted&&this._mouseUp(e),this._mouseDownEvent=e;var i=this,s=1===e.which,o="string"==typeof this.options.cancel&&e.target.nodeName?t(e.target).closest(this.options.cancel).length:!1;return s&&!o&&this._mouseCapture(e)?(this.mouseDelayMet=!this.options.delay,this.mouseDelayMet||(this._mouseDelayTimer=setTimeout(function(){i.mouseDelayMet=!0},this.options.delay)),this._mouseDistanceMet(e)&&this._mouseDelayMet(e)&&(this._mouseStarted=this._mouseStart(e)!==!1,!this._mouseStarted)?(e.preventDefault(),!0):(!0===t.data(e.target,this.widgetName+".preventClickEvent")&&t.removeData(e.target,this.widgetName+".preventClickEvent"),this._mouseMoveDelegate=function(t){return i._mouseMove(t)},this._mouseUpDelegate=function(t){return i._mouseUp(t)},this.document.on("mousemove."+this.widgetName,this._mouseMoveDelegate).on("mouseup."+this.widgetName,this._mouseUpDelegate),e.preventDefault(),n=!0,!0)):!0}},_mouseMove:function(e){if(this._mouseMoved){if(t.ui.ie&&(!document.documentMode||9>document.documentMode)&&!e.button)return this._mouseUp(e);if(!e.which)if(e.originalEvent.altKey||e.originalEvent.ctrlKey||e.originalEvent.metaKey||e.originalEvent.shiftKey)this.ignoreMissingWhich=!0;else if(!this.ignoreMissingWhich)return this._mouseUp(e)}return(e.which||e.button)&&(this._mouseMoved=!0),this._mouseStarted?(this._mouseDrag(e),e.preventDefault()):(this._mouseDistanceMet(e)&&this._mouseDelayMet(e)&&(this._mouseStarted=this._mouseStart(this._mouseDownEvent,e)!==!1,this._mouseStarted?this._mouseDrag(e):this._mouseUp(e)),!this._mouseStarted)},_mouseUp:function(e){this.document.off("mousemove."+this.widgetName,this._mouseMoveDelegate).off("mouseup."+this.widgetName,this._mouseUpDelegate),this._mouseStarted&&(this._mouseStarted=!1,e.target===this._mouseDownEvent.target&&t.data(e.target,this.widgetName+".preventClickEvent",!0),this._mouseStop(e)),this._mouseDelayTimer&&(clearTimeout(this._mouseDelayTimer),delete this._mouseDelayTimer),this.ignoreMissingWhich=!1,n=!1,e.preventDefault()},_mouseDistanceMet:function(t){return Math.max(Math.abs(this._mouseDownEvent.pageX-t.pageX),Math.abs(this._mouseDownEvent.pageY-t.pageY))>=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return!0}}),t.ui.plugin={add:function(e,i,s){var n,o=t.ui[e].prototype;for(n in s)o.plugins[n]=o.plugins[n]||[],o.plugins[n].push([i,s[n]])},call:function(t,e,i,s){var n,o=t.plugins[e];if(o&&(s||t.element[0].parentNode&&11!==t.element[0].parentNode.nodeType))for(n=0;o.length>n;n++)t.options[o[n][0]]&&o[n][1].apply(t.element,i)}},t.widget("ui.resizable",t.ui.mouse,{version:"1.12.1",widgetEventPrefix:"resize",options:{alsoResize:!1,animate:!1,animateDuration:"slow",animateEasing:"swing",aspectRatio:!1,autoHide:!1,classes:{"ui-resizable-se":"ui-icon ui-icon-gripsmall-diagonal-se"},containment:!1,ghost:!1,grid:!1,handles:"e,s,se",helper:!1,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:90,resize:null,start:null,stop:null},_num:function(t){return parseFloat(t)||0},_isNumber:function(t){return!isNaN(parseFloat(t))},_hasScroll:function(e,i){if("hidden"===t(e).css("overflow"))return!1;var s=i&&"left"===i?"scrollLeft":"scrollTop",n=!1;return e[s]>0?!0:(e[s]=1,n=e[s]>0,e[s]=0,n)},_create:function(){var e,i=this.options,s=this;this._addClass("ui-resizable"),t.extend(this,{_aspectRatio:!!i.aspectRatio,aspectRatio:i.aspectRatio,originalElement:this.element,_proportionallyResizeElements:[],_helper:i.helper||i.ghost||i.animate?i.helper||"ui-resizable-helper":null}),this.element[0].nodeName.match(/^(canvas|textarea|input|select|button|img)$/i)&&(this.element.wrap(t("<div class='ui-wrapper' style='overflow: hidden;'></div>").css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")})),this.element=this.element.parent().data("ui-resizable",this.element.resizable("instance")),this.elementIsWrapper=!0,e={marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom"),marginLeft:this.originalElement.css("marginLeft")},this.element.css(e),this.originalElement.css("margin",0),this.originalResizeStyle=this.originalElement.css("resize"),this.originalElement.css("resize","none"),this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"})),this.originalElement.css(e),this._proportionallyResize()),this._setupHandles(),i.autoHide&&t(this.element).on("mouseenter",function(){i.disabled||(s._removeClass("ui-resizable-autohide"),s._handles.show())}).on("mouseleave",function(){i.disabled||s.resizing||(s._addClass("ui-resizable-autohide"),s._handles.hide())}),this._mouseInit()},_destroy:function(){this._mouseDestroy();var e,i=function(e){t(e).removeData("resizable").removeData("ui-resizable").off(".resizable").find(".ui-resizable-handle").remove()};return this.elementIsWrapper&&(i(this.element),e=this.element,this.originalElement.css({position:e.css("position"),width:e.outerWidth(),height:e.outerHeight(),top:e.css("top"),left:e.css("left")}).insertAfter(e),e.remove()),this.originalElement.css("resize",this.originalResizeStyle),i(this.originalElement),this},_setOption:function(t,e){switch(this._super(t,e),t){case"handles":this._removeHandles(),this._setupHandles();break;default:}},_setupHandles:function(){var e,i,s,n,o,a=this.options,r=this;if(this.handles=a.handles||(t(".ui-resizable-handle",this.element).length?{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"}:"e,s,se"),this._handles=t(),this.handles.constructor===String)for("all"===this.handles&&(this.handles="n,e,s,w,se,sw,ne,nw"),s=this.handles.split(","),this.handles={},i=0;s.length>i;i++)e=t.trim(s[i]),n="ui-resizable-"+e,o=t("<div>"),this._addClass(o,"ui-resizable-handle "+n),o.css({zIndex:a.zIndex}),this.handles[e]=".ui-resizable-"+e,this.element.append(o);this._renderAxis=function(e){var i,s,n,o;e=e||this.element;for(i in this.handles)this.handles[i].constructor===String?this.handles[i]=this.element.children(this.handles[i]).first().show():(this.handles[i].jquery||this.handles[i].nodeType)&&(this.handles[i]=t(this.handles[i]),this._on(this.handles[i],{mousedown:r._mouseDown})),this.elementIsWrapper&&this.originalElement[0].nodeName.match(/^(textarea|input|select|button)$/i)&&(s=t(this.handles[i],this.element),o=/sw|ne|nw|se|n|s/.test(i)?s.outerHeight():s.outerWidth(),n=["padding",/ne|nw|n/.test(i)?"Top":/se|sw|s/.test(i)?"Bottom":/^e$/.test(i)?"Right":"Left"].join(""),e.css(n,o),this._proportionallyResize()),this._handles=this._handles.add(this.handles[i])},this._renderAxis(this.element),this._handles=this._handles.add(this.element.find(".ui-resizable-handle")),this._handles.disableSelection(),this._handles.on("mouseover",function(){r.resizing||(this.className&&(o=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)),r.axis=o&&o[1]?o[1]:"se")}),a.autoHide&&(this._handles.hide(),this._addClass("ui-resizable-autohide"))},_removeHandles:function(){this._handles.remove()},_mouseCapture:function(e){var i,s,n=!1;for(i in this.handles)s=t(this.handles[i])[0],(s===e.target||t.contains(s,e.target))&&(n=!0);return!this.options.disabled&&n},_mouseStart:function(e){var i,s,n,o=this.options,a=this.element;return this.resizing=!0,this._renderProxy(),i=this._num(this.helper.css("left")),s=this._num(this.helper.css("top")),o.containment&&(i+=t(o.containment).scrollLeft()||0,s+=t(o.containment).scrollTop()||0),this.offset=this.helper.offset(),this.position={left:i,top:s},this.size=this._helper?{width:this.helper.width(),height:this.helper.height()}:{width:a.width(),height:a.height()},this.originalSize=this._helper?{width:a.outerWidth(),height:a.outerHeight()}:{width:a.width(),height:a.height()},this.sizeDiff={width:a.outerWidth()-a.width(),height:a.outerHeight()-a.height()},this.originalPosition={left:i,top:s},this.originalMousePosition={left:e.pageX,top:e.pageY},this.aspectRatio="number"==typeof o.aspectRatio?o.aspectRatio:this.originalSize.width/this.originalSize.height||1,n=t(".ui-resizable-"+this.axis).css("cursor"),t("body").css("cursor","auto"===n?this.axis+"-resize":n),this._addClass("ui-resizable-resizing"),this._propagate("start",e),!0},_mouseDrag:function(e){var i,s,n=this.originalMousePosition,o=this.axis,a=e.pageX-n.left||0,r=e.pageY-n.top||0,h=this._change[o];return this._updatePrevProperties(),h?(i=h.apply(this,[e,a,r]),this._updateVirtualBoundaries(e.shiftKey),(this._aspectRatio||e.shiftKey)&&(i=this._updateRatio(i,e)),i=this._respectSize(i,e),this._updateCache(i),this._propagate("resize",e),s=this._applyChanges(),!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize(),t.isEmptyObject(s)||(this._updatePrevProperties(),this._trigger("resize",e,this.ui()),this._applyChanges()),!1):!1},_mouseStop:function(e){this.resizing=!1;var i,s,n,o,a,r,h,l=this.options,c=this;return this._helper&&(i=this._proportionallyResizeElements,s=i.length&&/textarea/i.test(i[0].nodeName),n=s&&this._hasScroll(i[0],"left")?0:c.sizeDiff.height,o=s?0:c.sizeDiff.width,a={width:c.helper.width()-o,height:c.helper.height()-n},r=parseFloat(c.element.css("left"))+(c.position.left-c.originalPosition.left)||null,h=parseFloat(c.element.css("top"))+(c.position.top-c.originalPosition.top)||null,l.animate||this.element.css(t.extend(a,{top:h,left:r})),c.helper.height(c.size.height),c.helper.width(c.size.width),this._helper&&!l.animate&&this._proportionallyResize()),t("body").css("cursor","auto"),this._removeClass("ui-resizable-resizing"),this._propagate("stop",e),this._helper&&this.helper.remove(),!1},_updatePrevProperties:function(){this.prevPosition={top:this.position.top,left:this.position.left},this.prevSize={width:this.size.width,height:this.size.height}},_applyChanges:function(){var t={};return this.position.top!==this.prevPosition.top&&(t.top=this.position.top+"px"),this.position.left!==this.prevPosition.left&&(t.left=this.position.left+"px"),this.size.width!==this.prevSize.width&&(t.width=this.size.width+"px"),this.size.height!==this.prevSize.height&&(t.height=this.size.height+"px"),this.helper.css(t),t},_updateVirtualBoundaries:function(t){var e,i,s,n,o,a=this.options;o={minWidth:this._isNumber(a.minWidth)?a.minWidth:0,maxWidth:this._isNumber(a.maxWidth)?a.maxWidth:1/0,minHeight:this._isNumber(a.minHeight)?a.minHeight:0,maxHeight:this._isNumber(a.maxHeight)?a.maxHeight:1/0},(this._aspectRatio||t)&&(e=o.minHeight*this.aspectRatio,s=o.minWidth/this.aspectRatio,i=o.maxHeight*this.aspectRatio,n=o.maxWidth/this.aspectRatio,e>o.minWidth&&(o.minWidth=e),s>o.minHeight&&(o.minHeight=s),o.maxWidth>i&&(o.maxWidth=i),o.maxHeight>n&&(o.maxHeight=n)),this._vBoundaries=o},_updateCache:function(t){this.offset=this.helper.offset(),this._isNumber(t.left)&&(this.position.left=t.left),this._isNumber(t.top)&&(this.position.top=t.top),this._isNumber(t.height)&&(this.size.height=t.height),this._isNumber(t.width)&&(this.size.width=t.width)},_updateRatio:function(t){var e=this.position,i=this.size,s=this.axis;return this._isNumber(t.height)?t.width=t.height*this.aspectRatio:this._isNumber(t.width)&&(t.height=t.width/this.aspectRatio),"sw"===s&&(t.left=e.left+(i.width-t.width),t.top=null),"nw"===s&&(t.top=e.top+(i.height-t.height),t.left=e.left+(i.width-t.width)),t},_respectSize:function(t){var e=this._vBoundaries,i=this.axis,s=this._isNumber(t.width)&&e.maxWidth&&e.maxWidth<t.width,n=this._isNumber(t.height)&&e.maxHeight&&e.maxHeight<t.height,o=this._isNumber(t.width)&&e.minWidth&&e.minWidth>t.width,a=this._isNumber(t.height)&&e.minHeight&&e.minHeight>t.height,r=this.originalPosition.left+this.originalSize.width,h=this.originalPosition.top+this.originalSize.height,l=/sw|nw|w/.test(i),c=/nw|ne|n/.test(i);return o&&(t.width=e.minWidth),a&&(t.height=e.minHeight),s&&(t.width=e.maxWidth),n&&(t.height=e.maxHeight),o&&l&&(t.left=r-e.minWidth),s&&l&&(t.left=r-e.maxWidth),a&&c&&(t.top=h-e.minHeight),n&&c&&(t.top=h-e.maxHeight),t.width||t.height||t.left||!t.top?t.width||t.height||t.top||!t.left||(t.left=null):t.top=null,t},_getPaddingPlusBorderDimensions:function(t){for(var e=0,i=[],s=[t.css("borderTopWidth"),t.css("borderRightWidth"),t.css("borderBottomWidth"),t.css("borderLeftWidth")],n=[t.css("paddingTop"),t.css("paddingRight"),t.css("paddingBottom"),t.css("paddingLeft")];4>e;e++)i[e]=parseFloat(s[e])||0,i[e]+=parseFloat(n[e])||0;return{height:i[0]+i[2],width:i[1]+i[3]}},_proportionallyResize:function(){if(this._proportionallyResizeElements.length)for(var t,e=0,i=this.helper||this.element;this._proportionallyResizeElements.length>e;e++)t=this._proportionallyResizeElements[e],this.outerDimensions||(this.outerDimensions=this._getPaddingPlusBorderDimensions(t)),t.css({height:i.height()-this.outerDimensions.height||0,width:i.width()-this.outerDimensions.width||0})},_renderProxy:function(){var e=this.element,i=this.options;this.elementOffset=e.offset(),this._helper?(this.helper=this.helper||t("<div style='overflow:hidden;'></div>"),this._addClass(this.helper,this._helper),this.helper.css({width:this.element.outerWidth(),height:this.element.outerHeight(),position:"absolute",left:this.elementOffset.left+"px",top:this.elementOffset.top+"px",zIndex:++i.zIndex}),this.helper.appendTo("body").disableSelection()):this.helper=this.element
+},_change:{e:function(t,e){return{width:this.originalSize.width+e}},w:function(t,e){var i=this.originalSize,s=this.originalPosition;return{left:s.left+e,width:i.width-e}},n:function(t,e,i){var s=this.originalSize,n=this.originalPosition;return{top:n.top+i,height:s.height-i}},s:function(t,e,i){return{height:this.originalSize.height+i}},se:function(e,i,s){return t.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[e,i,s]))},sw:function(e,i,s){return t.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[e,i,s]))},ne:function(e,i,s){return t.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[e,i,s]))},nw:function(e,i,s){return t.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[e,i,s]))}},_propagate:function(e,i){t.ui.plugin.call(this,e,[i,this.ui()]),"resize"!==e&&this._trigger(e,i,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}}),t.ui.plugin.add("resizable","animate",{stop:function(e){var i=t(this).resizable("instance"),s=i.options,n=i._proportionallyResizeElements,o=n.length&&/textarea/i.test(n[0].nodeName),a=o&&i._hasScroll(n[0],"left")?0:i.sizeDiff.height,r=o?0:i.sizeDiff.width,h={width:i.size.width-r,height:i.size.height-a},l=parseFloat(i.element.css("left"))+(i.position.left-i.originalPosition.left)||null,c=parseFloat(i.element.css("top"))+(i.position.top-i.originalPosition.top)||null;i.element.animate(t.extend(h,c&&l?{top:c,left:l}:{}),{duration:s.animateDuration,easing:s.animateEasing,step:function(){var s={width:parseFloat(i.element.css("width")),height:parseFloat(i.element.css("height")),top:parseFloat(i.element.css("top")),left:parseFloat(i.element.css("left"))};n&&n.length&&t(n[0]).css({width:s.width,height:s.height}),i._updateCache(s),i._propagate("resize",e)}})}}),t.ui.plugin.add("resizable","containment",{start:function(){var e,i,s,n,o,a,r,h=t(this).resizable("instance"),l=h.options,c=h.element,u=l.containment,d=u instanceof t?u.get(0):/parent/.test(u)?c.parent().get(0):u;d&&(h.containerElement=t(d),/document/.test(u)||u===document?(h.containerOffset={left:0,top:0},h.containerPosition={left:0,top:0},h.parentData={element:t(document),left:0,top:0,width:t(document).width(),height:t(document).height()||document.body.parentNode.scrollHeight}):(e=t(d),i=[],t(["Top","Right","Left","Bottom"]).each(function(t,s){i[t]=h._num(e.css("padding"+s))}),h.containerOffset=e.offset(),h.containerPosition=e.position(),h.containerSize={height:e.innerHeight()-i[3],width:e.innerWidth()-i[1]},s=h.containerOffset,n=h.containerSize.height,o=h.containerSize.width,a=h._hasScroll(d,"left")?d.scrollWidth:o,r=h._hasScroll(d)?d.scrollHeight:n,h.parentData={element:d,left:s.left,top:s.top,width:a,height:r}))},resize:function(e){var i,s,n,o,a=t(this).resizable("instance"),r=a.options,h=a.containerOffset,l=a.position,c=a._aspectRatio||e.shiftKey,u={top:0,left:0},d=a.containerElement,p=!0;d[0]!==document&&/static/.test(d.css("position"))&&(u=h),l.left<(a._helper?h.left:0)&&(a.size.width=a.size.width+(a._helper?a.position.left-h.left:a.position.left-u.left),c&&(a.size.height=a.size.width/a.aspectRatio,p=!1),a.position.left=r.helper?h.left:0),l.top<(a._helper?h.top:0)&&(a.size.height=a.size.height+(a._helper?a.position.top-h.top:a.position.top),c&&(a.size.width=a.size.height*a.aspectRatio,p=!1),a.position.top=a._helper?h.top:0),n=a.containerElement.get(0)===a.element.parent().get(0),o=/relative|absolute/.test(a.containerElement.css("position")),n&&o?(a.offset.left=a.parentData.left+a.position.left,a.offset.top=a.parentData.top+a.position.top):(a.offset.left=a.element.offset().left,a.offset.top=a.element.offset().top),i=Math.abs(a.sizeDiff.width+(a._helper?a.offset.left-u.left:a.offset.left-h.left)),s=Math.abs(a.sizeDiff.height+(a._helper?a.offset.top-u.top:a.offset.top-h.top)),i+a.size.width>=a.parentData.width&&(a.size.width=a.parentData.width-i,c&&(a.size.height=a.size.width/a.aspectRatio,p=!1)),s+a.size.height>=a.parentData.height&&(a.size.height=a.parentData.height-s,c&&(a.size.width=a.size.height*a.aspectRatio,p=!1)),p||(a.position.left=a.prevPosition.left,a.position.top=a.prevPosition.top,a.size.width=a.prevSize.width,a.size.height=a.prevSize.height)},stop:function(){var e=t(this).resizable("instance"),i=e.options,s=e.containerOffset,n=e.containerPosition,o=e.containerElement,a=t(e.helper),r=a.offset(),h=a.outerWidth()-e.sizeDiff.width,l=a.outerHeight()-e.sizeDiff.height;e._helper&&!i.animate&&/relative/.test(o.css("position"))&&t(this).css({left:r.left-n.left-s.left,width:h,height:l}),e._helper&&!i.animate&&/static/.test(o.css("position"))&&t(this).css({left:r.left-n.left-s.left,width:h,height:l})}}),t.ui.plugin.add("resizable","alsoResize",{start:function(){var e=t(this).resizable("instance"),i=e.options;t(i.alsoResize).each(function(){var e=t(this);e.data("ui-resizable-alsoresize",{width:parseFloat(e.width()),height:parseFloat(e.height()),left:parseFloat(e.css("left")),top:parseFloat(e.css("top"))})})},resize:function(e,i){var s=t(this).resizable("instance"),n=s.options,o=s.originalSize,a=s.originalPosition,r={height:s.size.height-o.height||0,width:s.size.width-o.width||0,top:s.position.top-a.top||0,left:s.position.left-a.left||0};t(n.alsoResize).each(function(){var e=t(this),s=t(this).data("ui-resizable-alsoresize"),n={},o=e.parents(i.originalElement[0]).length?["width","height"]:["width","height","top","left"];t.each(o,function(t,e){var i=(s[e]||0)+(r[e]||0);i&&i>=0&&(n[e]=i||null)}),e.css(n)})},stop:function(){t(this).removeData("ui-resizable-alsoresize")}}),t.ui.plugin.add("resizable","ghost",{start:function(){var e=t(this).resizable("instance"),i=e.size;e.ghost=e.originalElement.clone(),e.ghost.css({opacity:.25,display:"block",position:"relative",height:i.height,width:i.width,margin:0,left:0,top:0}),e._addClass(e.ghost,"ui-resizable-ghost"),t.uiBackCompat!==!1&&"string"==typeof e.options.ghost&&e.ghost.addClass(this.options.ghost),e.ghost.appendTo(e.helper)},resize:function(){var e=t(this).resizable("instance");e.ghost&&e.ghost.css({position:"relative",height:e.size.height,width:e.size.width})},stop:function(){var e=t(this).resizable("instance");e.ghost&&e.helper&&e.helper.get(0).removeChild(e.ghost.get(0))}}),t.ui.plugin.add("resizable","grid",{resize:function(){var e,i=t(this).resizable("instance"),s=i.options,n=i.size,o=i.originalSize,a=i.originalPosition,r=i.axis,h="number"==typeof s.grid?[s.grid,s.grid]:s.grid,l=h[0]||1,c=h[1]||1,u=Math.round((n.width-o.width)/l)*l,d=Math.round((n.height-o.height)/c)*c,p=o.width+u,f=o.height+d,m=s.maxWidth&&p>s.maxWidth,g=s.maxHeight&&f>s.maxHeight,_=s.minWidth&&s.minWidth>p,v=s.minHeight&&s.minHeight>f;s.grid=h,_&&(p+=l),v&&(f+=c),m&&(p-=l),g&&(f-=c),/^(se|s|e)$/.test(r)?(i.size.width=p,i.size.height=f):/^(ne)$/.test(r)?(i.size.width=p,i.size.height=f,i.position.top=a.top-d):/^(sw)$/.test(r)?(i.size.width=p,i.size.height=f,i.position.left=a.left-u):((0>=f-c||0>=p-l)&&(e=i._getPaddingPlusBorderDimensions(this)),f-c>0?(i.size.height=f,i.position.top=a.top-d):(f=c-e.height,i.size.height=f,i.position.top=a.top+o.height-f),p-l>0?(i.size.width=p,i.position.left=a.left-u):(p=l-e.width,i.size.width=p,i.position.left=a.left+o.width-p))}}),t.ui.resizable});/**
+ * Copyright (c) 2007 Ariel Flesler - aflesler ○ gmail • com | https://github.com/flesler
+ * Licensed under MIT
+ * @author Ariel Flesler
+ * @version 2.1.2
+ */
+;(function(f){"use strict";"function"===typeof define&&define.amd?define(["jquery"],f):"undefined"!==typeof module&&module.exports?module.exports=f(require("jquery")):f(jQuery)})(function($){"use strict";function n(a){return!a.nodeName||-1!==$.inArray(a.nodeName.toLowerCase(),["iframe","#document","html","body"])}function h(a){return $.isFunction(a)||$.isPlainObject(a)?a:{top:a,left:a}}var p=$.scrollTo=function(a,d,b){return $(window).scrollTo(a,d,b)};p.defaults={axis:"xy",duration:0,limit:!0};$.fn.scrollTo=function(a,d,b){"object"=== typeof d&&(b=d,d=0);"function"===typeof b&&(b={onAfter:b});"max"===a&&(a=9E9);b=$.extend({},p.defaults,b);d=d||b.duration;var u=b.queue&&1<b.axis.length;u&&(d/=2);b.offset=h(b.offset);b.over=h(b.over);return this.each(function(){function k(a){var k=$.extend({},b,{queue:!0,duration:d,complete:a&&function(){a.call(q,e,b)}});r.animate(f,k)}if(null!==a){var l=n(this),q=l?this.contentWindow||window:this,r=$(q),e=a,f={},t;switch(typeof e){case "number":case "string":if(/^([+-]=?)?\d+(\.\d+)?(px|%)?$/.test(e)){e= h(e);break}e=l?$(e):$(e,q);case "object":if(e.length===0)return;if(e.is||e.style)t=(e=$(e)).offset()}var v=$.isFunction(b.offset)&&b.offset(q,e)||b.offset;$.each(b.axis.split(""),function(a,c){var d="x"===c?"Left":"Top",m=d.toLowerCase(),g="scroll"+d,h=r[g](),n=p.max(q,c);t?(f[g]=t[m]+(l?0:h-r.offset()[m]),b.margin&&(f[g]-=parseInt(e.css("margin"+d),10)||0,f[g]-=parseInt(e.css("border"+d+"Width"),10)||0),f[g]+=v[m]||0,b.over[m]&&(f[g]+=e["x"===c?"width":"height"]()*b.over[m])):(d=e[m],f[g]=d.slice&& "%"===d.slice(-1)?parseFloat(d)/100*n:d);b.limit&&/^\d+$/.test(f[g])&&(f[g]=0>=f[g]?0:Math.min(f[g],n));!a&&1<b.axis.length&&(h===f[g]?f={}:u&&(k(b.onAfterFirst),f={}))});k(b.onAfter)}})};p.max=function(a,d){var b="x"===d?"Width":"Height",h="scroll"+b;if(!n(a))return a[h]-$(a)[b.toLowerCase()]();var b="client"+b,k=a.ownerDocument||a.document,l=k.documentElement,k=k.body;return Math.max(l[h],k[h])-Math.min(l[b],k[b])};$.Tween.propHooks.scrollLeft=$.Tween.propHooks.scrollTop={get:function(a){return $(a.elem)[a.prop]()}, set:function(a){var d=this.get(a);if(a.options.interrupt&&a._last&&a._last!==d)return $(a.elem).stop();var b=Math.round(a.now);d!==b&&($(a.elem)[a.prop](b),a._last=this.get(a))}};return p});
+/*!
+ PowerTip v1.3.1 (2018-04-15)
+ https://stevenbenner.github.io/jquery-powertip/
+ Copyright (c) 2018 Steven Benner (http://stevenbenner.com/).
+ Released under MIT license.
+ https://raw.github.com/stevenbenner/jquery-powertip/master/LICENSE.txt
+*/
+(function(root,factory){if(typeof define==="function"&&define.amd){define(["jquery"],factory)}else if(typeof module==="object"&&module.exports){module.exports=factory(require("jquery"))}else{factory(root.jQuery)}})(this,function($){var $document=$(document),$window=$(window),$body=$("body");var DATA_DISPLAYCONTROLLER="displayController",DATA_HASACTIVEHOVER="hasActiveHover",DATA_FORCEDOPEN="forcedOpen",DATA_HASMOUSEMOVE="hasMouseMove",DATA_MOUSEONTOTIP="mouseOnToPopup",DATA_ORIGINALTITLE="originalTitle",DATA_POWERTIP="powertip",DATA_POWERTIPJQ="powertipjq",DATA_POWERTIPTARGET="powertiptarget",EVENT_NAMESPACE=".powertip",RAD2DEG=180/Math.PI,MOUSE_EVENTS=["click","dblclick","mousedown","mouseup","mousemove","mouseover","mouseout","mouseenter","mouseleave","contextmenu"];var session={tooltips:null,isTipOpen:false,isFixedTipOpen:false,isClosing:false,tipOpenImminent:false,activeHover:null,currentX:0,currentY:0,previousX:0,previousY:0,desyncTimeout:null,closeDelayTimeout:null,mouseTrackingActive:false,delayInProgress:false,windowWidth:0,windowHeight:0,scrollTop:0,scrollLeft:0};var Collision={none:0,top:1,bottom:2,left:4,right:8};$.fn.powerTip=function(opts,arg){var targetElements=this,options,tipController;if(!targetElements.length){return targetElements}if($.type(opts)==="string"&&$.powerTip[opts]){return $.powerTip[opts].call(targetElements,targetElements,arg)}options=$.extend({},$.fn.powerTip.defaults,opts);tipController=new TooltipController(options);initTracking();targetElements.each(function elementSetup(){var $this=$(this),dataPowertip=$this.data(DATA_POWERTIP),dataElem=$this.data(DATA_POWERTIPJQ),dataTarget=$this.data(DATA_POWERTIPTARGET),title=$this.attr("title");if(!dataPowertip&&!dataTarget&&!dataElem&&title){$this.data(DATA_POWERTIP,title);$this.data(DATA_ORIGINALTITLE,title);$this.removeAttr("title")}$this.data(DATA_DISPLAYCONTROLLER,new DisplayController($this,options,tipController))});if(!options.manual){$.each(options.openEvents,function(idx,evt){if($.inArray(evt,options.closeEvents)>-1){targetElements.on(evt+EVENT_NAMESPACE,function elementToggle(event){$.powerTip.toggle(this,event)})}else{targetElements.on(evt+EVENT_NAMESPACE,function elementOpen(event){$.powerTip.show(this,event)})}});$.each(options.closeEvents,function(idx,evt){if($.inArray(evt,options.openEvents)<0){targetElements.on(evt+EVENT_NAMESPACE,function elementClose(event){$.powerTip.hide(this,!isMouseEvent(event))})}});targetElements.on("keydown"+EVENT_NAMESPACE,function elementKeyDown(event){if(event.keyCode===27){$.powerTip.hide(this,true)}})}return targetElements};$.fn.powerTip.defaults={fadeInTime:200,fadeOutTime:100,followMouse:false,popupId:"powerTip",popupClass:null,intentSensitivity:7,intentPollInterval:100,closeDelay:100,placement:"n",smartPlacement:false,offset:10,mouseOnToPopup:false,manual:false,openEvents:["mouseenter","focus"],closeEvents:["mouseleave","blur"]};$.fn.powerTip.smartPlacementLists={n:["n","ne","nw","s"],e:["e","ne","se","w","nw","sw","n","s","e"],s:["s","se","sw","n"],w:["w","nw","sw","e","ne","se","n","s","w"],nw:["nw","w","sw","n","s","se","nw"],ne:["ne","e","se","n","s","sw","ne"],sw:["sw","w","nw","s","n","ne","sw"],se:["se","e","ne","s","n","nw","se"],"nw-alt":["nw-alt","n","ne-alt","sw-alt","s","se-alt","w","e"],"ne-alt":["ne-alt","n","nw-alt","se-alt","s","sw-alt","e","w"],"sw-alt":["sw-alt","s","se-alt","nw-alt","n","ne-alt","w","e"],"se-alt":["se-alt","s","sw-alt","ne-alt","n","nw-alt","e","w"]};$.powerTip={show:function apiShowTip(element,event){if(isMouseEvent(event)){trackMouse(event);session.previousX=event.pageX;session.previousY=event.pageY;$(element).data(DATA_DISPLAYCONTROLLER).show()}else{$(element).first().data(DATA_DISPLAYCONTROLLER).show(true,true)}return element},reposition:function apiResetPosition(element){$(element).first().data(DATA_DISPLAYCONTROLLER).resetPosition();return element},hide:function apiCloseTip(element,immediate){var displayController;immediate=element?immediate:true;if(element){displayController=$(element).first().data(DATA_DISPLAYCONTROLLER)}else if(session.activeHover){displayController=session.activeHover.data(DATA_DISPLAYCONTROLLER)}if(displayController){displayController.hide(immediate)}return element},toggle:function apiToggle(element,event){if(session.activeHover&&session.activeHover.is(element)){$.powerTip.hide(element,!isMouseEvent(event))}else{$.powerTip.show(element,event)}return element}};$.powerTip.showTip=$.powerTip.show;$.powerTip.closeTip=$.powerTip.hide;function CSSCoordinates(){var me=this;me.top="auto";me.left="auto";me.right="auto";me.bottom="auto";me.set=function(property,value){if($.isNumeric(value)){me[property]=Math.round(value)}}}function DisplayController(element,options,tipController){var hoverTimer=null,myCloseDelay=null;function openTooltip(immediate,forceOpen){cancelTimer();if(!element.data(DATA_HASACTIVEHOVER)){if(!immediate){session.tipOpenImminent=true;hoverTimer=setTimeout(function intentDelay(){hoverTimer=null;checkForIntent()},options.intentPollInterval)}else{if(forceOpen){element.data(DATA_FORCEDOPEN,true)}closeAnyDelayed();tipController.showTip(element)}}else{cancelClose()}}function closeTooltip(disableDelay){if(myCloseDelay){myCloseDelay=session.closeDelayTimeout=clearTimeout(myCloseDelay);session.delayInProgress=false}cancelTimer();session.tipOpenImminent=false;if(element.data(DATA_HASACTIVEHOVER)){element.data(DATA_FORCEDOPEN,false);if(!disableDelay){session.delayInProgress=true;session.closeDelayTimeout=setTimeout(function closeDelay(){session.closeDelayTimeout=null;tipController.hideTip(element);session.delayInProgress=false;myCloseDelay=null},options.closeDelay);myCloseDelay=session.closeDelayTimeout}else{tipController.hideTip(element)}}}function checkForIntent(){var xDifference=Math.abs(session.previousX-session.currentX),yDifference=Math.abs(session.previousY-session.currentY),totalDifference=xDifference+yDifference;if(totalDifference<options.intentSensitivity){cancelClose();closeAnyDelayed();tipController.showTip(element)}else{session.previousX=session.currentX;session.previousY=session.currentY;openTooltip()}}function cancelTimer(stopClose){hoverTimer=clearTimeout(hoverTimer);if(session.closeDelayTimeout&&myCloseDelay===session.closeDelayTimeout||stopClose){cancelClose()}}function cancelClose(){session.closeDelayTimeout=clearTimeout(session.closeDelayTimeout);session.delayInProgress=false}function closeAnyDelayed(){if(session.delayInProgress&&session.activeHover&&!session.activeHover.is(element)){session.activeHover.data(DATA_DISPLAYCONTROLLER).hide(true)}}function repositionTooltip(){tipController.resetPosition(element)}this.show=openTooltip;this.hide=closeTooltip;this.cancel=cancelTimer;this.resetPosition=repositionTooltip}function PlacementCalculator(){function computePlacementCoords(element,placement,tipWidth,tipHeight,offset){var placementBase=placement.split("-")[0],coords=new CSSCoordinates,position;if(isSvgElement(element)){position=getSvgPlacement(element,placementBase)}else{position=getHtmlPlacement(element,placementBase)}switch(placement){case"n":coords.set("left",position.left-tipWidth/2);coords.set("bottom",session.windowHeight-position.top+offset);break;case"e":coords.set("left",position.left+offset);coords.set("top",position.top-tipHeight/2);break;case"s":coords.set("left",position.left-tipWidth/2);coords.set("top",position.top+offset);break;case"w":coords.set("top",position.top-tipHeight/2);coords.set("right",session.windowWidth-position.left+offset);break;case"nw":coords.set("bottom",session.windowHeight-position.top+offset);coords.set("right",session.windowWidth-position.left-20);break;case"nw-alt":coords.set("left",position.left);coords.set("bottom",session.windowHeight-position.top+offset);break;case"ne":coords.set("left",position.left-20);coords.set("bottom",session.windowHeight-position.top+offset);break;case"ne-alt":coords.set("bottom",session.windowHeight-position.top+offset);coords.set("right",session.windowWidth-position.left);break;case"sw":coords.set("top",position.top+offset);coords.set("right",session.windowWidth-position.left-20);break;case"sw-alt":coords.set("left",position.left);coords.set("top",position.top+offset);break;case"se":coords.set("left",position.left-20);coords.set("top",position.top+offset);break;case"se-alt":coords.set("top",position.top+offset);coords.set("right",session.windowWidth-position.left);break}return coords}function getHtmlPlacement(element,placement){var objectOffset=element.offset(),objectWidth=element.outerWidth(),objectHeight=element.outerHeight(),left,top;switch(placement){case"n":left=objectOffset.left+objectWidth/2;top=objectOffset.top;break;case"e":left=objectOffset.left+objectWidth;top=objectOffset.top+objectHeight/2;break;case"s":left=objectOffset.left+objectWidth/2;top=objectOffset.top+objectHeight;break;case"w":left=objectOffset.left;top=objectOffset.top+objectHeight/2;break;case"nw":left=objectOffset.left;top=objectOffset.top;break;case"ne":left=objectOffset.left+objectWidth;top=objectOffset.top;break;case"sw":left=objectOffset.left;top=objectOffset.top+objectHeight;break;case"se":left=objectOffset.left+objectWidth;top=objectOffset.top+objectHeight;break}return{top:top,left:left}}function getSvgPlacement(element,placement){var svgElement=element.closest("svg")[0],domElement=element[0],point=svgElement.createSVGPoint(),boundingBox=domElement.getBBox(),matrix=domElement.getScreenCTM(),halfWidth=boundingBox.width/2,halfHeight=boundingBox.height/2,placements=[],placementKeys=["nw","n","ne","e","se","s","sw","w"],coords,rotation,steps,x;function pushPlacement(){placements.push(point.matrixTransform(matrix))}point.x=boundingBox.x;point.y=boundingBox.y;pushPlacement();point.x+=halfWidth;pushPlacement();point.x+=halfWidth;pushPlacement();point.y+=halfHeight;pushPlacement();point.y+=halfHeight;pushPlacement();point.x-=halfWidth;pushPlacement();point.x-=halfWidth;pushPlacement();point.y-=halfHeight;pushPlacement();if(placements[0].y!==placements[1].y||placements[0].x!==placements[7].x){rotation=Math.atan2(matrix.b,matrix.a)*RAD2DEG;steps=Math.ceil((rotation%360-22.5)/45);if(steps<1){steps+=8}while(steps--){placementKeys.push(placementKeys.shift())}}for(x=0;x<placements.length;x++){if(placementKeys[x]===placement){coords=placements[x];break}}return{top:coords.y+session.scrollTop,left:coords.x+session.scrollLeft}}this.compute=computePlacementCoords}function TooltipController(options){var placementCalculator=new PlacementCalculator,tipElement=$("#"+options.popupId);if(tipElement.length===0){tipElement=$("<div/>",{id:options.popupId});if($body.length===0){$body=$("body")}$body.append(tipElement);session.tooltips=session.tooltips?session.tooltips.add(tipElement):tipElement}if(options.followMouse){if(!tipElement.data(DATA_HASMOUSEMOVE)){$document.on("mousemove"+EVENT_NAMESPACE,positionTipOnCursor);$window.on("scroll"+EVENT_NAMESPACE,positionTipOnCursor);tipElement.data(DATA_HASMOUSEMOVE,true)}}function beginShowTip(element){element.data(DATA_HASACTIVEHOVER,true);tipElement.queue(function queueTipInit(next){showTip(element);next()})}function showTip(element){var tipContent;if(!element.data(DATA_HASACTIVEHOVER)){return}if(session.isTipOpen){if(!session.isClosing){hideTip(session.activeHover)}tipElement.delay(100).queue(function queueTipAgain(next){showTip(element);next()});return}element.trigger("powerTipPreRender");tipContent=getTooltipContent(element);if(tipContent){tipElement.empty().append(tipContent)}else{return}element.trigger("powerTipRender");session.activeHover=element;session.isTipOpen=true;tipElement.data(DATA_MOUSEONTOTIP,options.mouseOnToPopup);tipElement.addClass(options.popupClass);if(!options.followMouse||element.data(DATA_FORCEDOPEN)){positionTipOnElement(element);session.isFixedTipOpen=true}else{positionTipOnCursor()}if(!element.data(DATA_FORCEDOPEN)&&!options.followMouse){$document.on("click"+EVENT_NAMESPACE,function documentClick(event){var target=event.target;if(target!==element[0]){if(options.mouseOnToPopup){if(target!==tipElement[0]&&!$.contains(tipElement[0],target)){$.powerTip.hide()}}else{$.powerTip.hide()}}})}if(options.mouseOnToPopup&&!options.manual){tipElement.on("mouseenter"+EVENT_NAMESPACE,function tipMouseEnter(){if(session.activeHover){session.activeHover.data(DATA_DISPLAYCONTROLLER).cancel()}});tipElement.on("mouseleave"+EVENT_NAMESPACE,function tipMouseLeave(){if(session.activeHover){session.activeHover.data(DATA_DISPLAYCONTROLLER).hide()}})}tipElement.fadeIn(options.fadeInTime,function fadeInCallback(){if(!session.desyncTimeout){session.desyncTimeout=setInterval(closeDesyncedTip,500)}element.trigger("powerTipOpen")})}function hideTip(element){session.isClosing=true;session.isTipOpen=false;session.desyncTimeout=clearInterval(session.desyncTimeout);element.data(DATA_HASACTIVEHOVER,false);element.data(DATA_FORCEDOPEN,false);$document.off("click"+EVENT_NAMESPACE);tipElement.off(EVENT_NAMESPACE);tipElement.fadeOut(options.fadeOutTime,function fadeOutCallback(){var coords=new CSSCoordinates;session.activeHover=null;session.isClosing=false;session.isFixedTipOpen=false;tipElement.removeClass();coords.set("top",session.currentY+options.offset);coords.set("left",session.currentX+options.offset);tipElement.css(coords);element.trigger("powerTipClose")})}function positionTipOnCursor(){var tipWidth,tipHeight,coords,collisions,collisionCount;if(!session.isFixedTipOpen&&(session.isTipOpen||session.tipOpenImminent&&tipElement.data(DATA_HASMOUSEMOVE))){tipWidth=tipElement.outerWidth();tipHeight=tipElement.outerHeight();coords=new CSSCoordinates;coords.set("top",session.currentY+options.offset);coords.set("left",session.currentX+options.offset);collisions=getViewportCollisions(coords,tipWidth,tipHeight);if(collisions!==Collision.none){collisionCount=countFlags(collisions);if(collisionCount===1){if(collisions===Collision.right){coords.set("left",session.scrollLeft+session.windowWidth-tipWidth)}else if(collisions===Collision.bottom){coords.set("top",session.scrollTop+session.windowHeight-tipHeight)}}else{coords.set("left",session.currentX-tipWidth-options.offset);coords.set("top",session.currentY-tipHeight-options.offset)}}tipElement.css(coords)}}function positionTipOnElement(element){var priorityList,finalPlacement;if(options.smartPlacement||options.followMouse&&element.data(DATA_FORCEDOPEN)){priorityList=$.fn.powerTip.smartPlacementLists[options.placement];$.each(priorityList,function(idx,pos){var collisions=getViewportCollisions(placeTooltip(element,pos),tipElement.outerWidth(),tipElement.outerHeight());finalPlacement=pos;return collisions!==Collision.none})}else{placeTooltip(element,options.placement);finalPlacement=options.placement}tipElement.removeClass("w nw sw e ne se n s w se-alt sw-alt ne-alt nw-alt");tipElement.addClass(finalPlacement)}function placeTooltip(element,placement){var iterationCount=0,tipWidth,tipHeight,coords=new CSSCoordinates;coords.set("top",0);coords.set("left",0);tipElement.css(coords);do{tipWidth=tipElement.outerWidth();tipHeight=tipElement.outerHeight();coords=placementCalculator.compute(element,placement,tipWidth,tipHeight,options.offset);tipElement.css(coords)}while(++iterationCount<=5&&(tipWidth!==tipElement.outerWidth()||tipHeight!==tipElement.outerHeight()));return coords}function closeDesyncedTip(){var isDesynced=false,hasDesyncableCloseEvent=$.grep(["mouseleave","mouseout","blur","focusout"],function(eventType){return $.inArray(eventType,options.closeEvents)!==-1}).length>0;if(session.isTipOpen&&!session.isClosing&&!session.delayInProgress&&hasDesyncableCloseEvent){if(session.activeHover.data(DATA_HASACTIVEHOVER)===false||session.activeHover.is(":disabled")){isDesynced=true}else if(!isMouseOver(session.activeHover)&&!session.activeHover.is(":focus")&&!session.activeHover.data(DATA_FORCEDOPEN)){if(tipElement.data(DATA_MOUSEONTOTIP)){if(!isMouseOver(tipElement)){isDesynced=true}}else{isDesynced=true}}if(isDesynced){hideTip(session.activeHover)}}}this.showTip=beginShowTip;this.hideTip=hideTip;this.resetPosition=positionTipOnElement}function isSvgElement(element){return Boolean(window.SVGElement&&element[0]instanceof SVGElement)}function isMouseEvent(event){return Boolean(event&&$.inArray(event.type,MOUSE_EVENTS)>-1&&typeof event.pageX==="number")}function initTracking(){if(!session.mouseTrackingActive){session.mouseTrackingActive=true;getViewportDimensions();$(getViewportDimensions);$document.on("mousemove"+EVENT_NAMESPACE,trackMouse);$window.on("resize"+EVENT_NAMESPACE,trackResize);$window.on("scroll"+EVENT_NAMESPACE,trackScroll)}}function getViewportDimensions(){session.scrollLeft=$window.scrollLeft();session.scrollTop=$window.scrollTop();session.windowWidth=$window.width();session.windowHeight=$window.height()}function trackResize(){session.windowWidth=$window.width();session.windowHeight=$window.height()}function trackScroll(){var x=$window.scrollLeft(),y=$window.scrollTop();if(x!==session.scrollLeft){session.currentX+=x-session.scrollLeft;session.scrollLeft=x}if(y!==session.scrollTop){session.currentY+=y-session.scrollTop;session.scrollTop=y}}function trackMouse(event){session.currentX=event.pageX;session.currentY=event.pageY}function isMouseOver(element){var elementPosition=element.offset(),elementBox=element[0].getBoundingClientRect(),elementWidth=elementBox.right-elementBox.left,elementHeight=elementBox.bottom-elementBox.top;return session.currentX>=elementPosition.left&&session.currentX<=elementPosition.left+elementWidth&&session.currentY>=elementPosition.top&&session.currentY<=elementPosition.top+elementHeight}function getTooltipContent(element){var tipText=element.data(DATA_POWERTIP),tipObject=element.data(DATA_POWERTIPJQ),tipTarget=element.data(DATA_POWERTIPTARGET),targetElement,content;if(tipText){if($.isFunction(tipText)){tipText=tipText.call(element[0])}content=tipText}else if(tipObject){if($.isFunction(tipObject)){tipObject=tipObject.call(element[0])}if(tipObject.length>0){content=tipObject.clone(true,true)}}else if(tipTarget){targetElement=$("#"+tipTarget);if(targetElement.length>0){content=targetElement.html()}}return content}function getViewportCollisions(coords,elementWidth,elementHeight){var viewportTop=session.scrollTop,viewportLeft=session.scrollLeft,viewportBottom=viewportTop+session.windowHeight,viewportRight=viewportLeft+session.windowWidth,collisions=Collision.none;if(coords.top<viewportTop||Math.abs(coords.bottom-session.windowHeight)-elementHeight<viewportTop){collisions|=Collision.top}if(coords.top+elementHeight>viewportBottom||Math.abs(coords.bottom-session.windowHeight)>viewportBottom){collisions|=Collision.bottom}if(coords.left<viewportLeft||coords.right+elementWidth>viewportRight){collisions|=Collision.left}if(coords.left+elementWidth>viewportRight||coords.right<viewportLeft){collisions|=Collision.right}return collisions}function countFlags(value){var count=0;while(value){value&=value-1;count++}return count}return $.powerTip});/*!
+ * jQuery UI Touch Punch 0.2.3
+ *
+ * Copyright 2011–2014, Dave Furfero
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ *
+ * Depends:
+ *  jquery.ui.widget.js
+ *  jquery.ui.mouse.js
+ */
+!function(a){function f(a,b){if(!(a.originalEvent.touches.length>1)){a.preventDefault();var c=a.originalEvent.changedTouches[0],d=document.createEvent("MouseEvents");d.initMouseEvent(b,!0,!0,window,1,c.screenX,c.screenY,c.clientX,c.clientY,!1,!1,!1,!1,0,null),a.target.dispatchEvent(d)}}if(a.support.touch="ontouchend"in document,a.support.touch){var e,b=a.ui.mouse.prototype,c=b._mouseInit,d=b._mouseDestroy;b._touchStart=function(a){var b=this;!e&&b._mouseCapture(a.originalEvent.changedTouches[0])&&(e=!0,b._touchMoved=!1,f(a,"mouseover"),f(a,"mousemove"),f(a,"mousedown"))},b._touchMove=function(a){e&&(this._touchMoved=!0,f(a,"mousemove"))},b._touchEnd=function(a){e&&(f(a,"mouseup"),f(a,"mouseout"),this._touchMoved||f(a,"click"),e=!1)},b._mouseInit=function(){var b=this;b.element.bind({touchstart:a.proxy(b,"_touchStart"),touchmove:a.proxy(b,"_touchMove"),touchend:a.proxy(b,"_touchEnd")}),c.call(b)},b._mouseDestroy=function(){var b=this;b.element.unbind({touchstart:a.proxy(b,"_touchStart"),touchmove:a.proxy(b,"_touchMove"),touchend:a.proxy(b,"_touchEnd")}),d.call(b)}}}(jQuery);/*! SmartMenus jQuery Plugin - v1.1.0 - September 17, 2017
+ * http://www.smartmenus.org/
+ * Copyright Vasil Dinkov, Vadikom Web Ltd. http://vadikom.com; Licensed MIT */(function(t){"function"==typeof define&&define.amd?define(["jquery"],t):"object"==typeof module&&"object"==typeof module.exports?module.exports=t(require("jquery")):t(jQuery)})(function($){function initMouseDetection(t){var e=".smartmenus_mouse";if(mouseDetectionEnabled||t)mouseDetectionEnabled&&t&&($(document).off(e),mouseDetectionEnabled=!1);else{var i=!0,s=null,o={mousemove:function(t){var e={x:t.pageX,y:t.pageY,timeStamp:(new Date).getTime()};if(s){var o=Math.abs(s.x-e.x),a=Math.abs(s.y-e.y);if((o>0||a>0)&&2>=o&&2>=a&&300>=e.timeStamp-s.timeStamp&&(mouse=!0,i)){var n=$(t.target).closest("a");n.is("a")&&$.each(menuTrees,function(){return $.contains(this.$root[0],n[0])?(this.itemEnter({currentTarget:n[0]}),!1):void 0}),i=!1}}s=e}};o[touchEvents?"touchstart":"pointerover pointermove pointerout MSPointerOver MSPointerMove MSPointerOut"]=function(t){isTouchEvent(t.originalEvent)&&(mouse=!1)},$(document).on(getEventsNS(o,e)),mouseDetectionEnabled=!0}}function isTouchEvent(t){return!/^(4|mouse)$/.test(t.pointerType)}function getEventsNS(t,e){e||(e="");var i={};for(var s in t)i[s.split(" ").join(e+" ")+e]=t[s];return i}var menuTrees=[],mouse=!1,touchEvents="ontouchstart"in window,mouseDetectionEnabled=!1,requestAnimationFrame=window.requestAnimationFrame||function(t){return setTimeout(t,1e3/60)},cancelAnimationFrame=window.cancelAnimationFrame||function(t){clearTimeout(t)},canAnimate=!!$.fn.animate;return $.SmartMenus=function(t,e){this.$root=$(t),this.opts=e,this.rootId="",this.accessIdPrefix="",this.$subArrow=null,this.activatedItems=[],this.visibleSubMenus=[],this.showTimeout=0,this.hideTimeout=0,this.scrollTimeout=0,this.clickActivated=!1,this.focusActivated=!1,this.zIndexInc=0,this.idInc=0,this.$firstLink=null,this.$firstSub=null,this.disabled=!1,this.$disableOverlay=null,this.$touchScrollingSub=null,this.cssTransforms3d="perspective"in t.style||"webkitPerspective"in t.style,this.wasCollapsible=!1,this.init()},$.extend($.SmartMenus,{hideAll:function(){$.each(menuTrees,function(){this.menuHideAll()})},destroy:function(){for(;menuTrees.length;)menuTrees[0].destroy();initMouseDetection(!0)},prototype:{init:function(t){var e=this;if(!t){menuTrees.push(this),this.rootId=((new Date).getTime()+Math.random()+"").replace(/\D/g,""),this.accessIdPrefix="sm-"+this.rootId+"-",this.$root.hasClass("sm-rtl")&&(this.opts.rightToLeftSubMenus=!0);var i=".smartmenus";this.$root.data("smartmenus",this).attr("data-smartmenus-id",this.rootId).dataSM("level",1).on(getEventsNS({"mouseover focusin":$.proxy(this.rootOver,this),"mouseout focusout":$.proxy(this.rootOut,this),keydown:$.proxy(this.rootKeyDown,this)},i)).on(getEventsNS({mouseenter:$.proxy(this.itemEnter,this),mouseleave:$.proxy(this.itemLeave,this),mousedown:$.proxy(this.itemDown,this),focus:$.proxy(this.itemFocus,this),blur:$.proxy(this.itemBlur,this),click:$.proxy(this.itemClick,this)},i),"a"),i+=this.rootId,this.opts.hideOnClick&&$(document).on(getEventsNS({touchstart:$.proxy(this.docTouchStart,this),touchmove:$.proxy(this.docTouchMove,this),touchend:$.proxy(this.docTouchEnd,this),click:$.proxy(this.docClick,this)},i)),$(window).on(getEventsNS({"resize orientationchange":$.proxy(this.winResize,this)},i)),this.opts.subIndicators&&(this.$subArrow=$("<span/>").addClass("sub-arrow"),this.opts.subIndicatorsText&&this.$subArrow.html(this.opts.subIndicatorsText)),initMouseDetection()}if(this.$firstSub=this.$root.find("ul").each(function(){e.menuInit($(this))}).eq(0),this.$firstLink=this.$root.find("a").eq(0),this.opts.markCurrentItem){var s=/(index|default)\.[^#\?\/]*/i,o=/#.*/,a=window.location.href.replace(s,""),n=a.replace(o,"");this.$root.find("a").each(function(){var t=this.href.replace(s,""),i=$(this);(t==a||t==n)&&(i.addClass("current"),e.opts.markCurrentTree&&i.parentsUntil("[data-smartmenus-id]","ul").each(function(){$(this).dataSM("parent-a").addClass("current")}))})}this.wasCollapsible=this.isCollapsible()},destroy:function(t){if(!t){var e=".smartmenus";this.$root.removeData("smartmenus").removeAttr("data-smartmenus-id").removeDataSM("level").off(e),e+=this.rootId,$(document).off(e),$(window).off(e),this.opts.subIndicators&&(this.$subArrow=null)}this.menuHideAll();var i=this;this.$root.find("ul").each(function(){var t=$(this);t.dataSM("scroll-arrows")&&t.dataSM("scroll-arrows").remove(),t.dataSM("shown-before")&&((i.opts.subMenusMinWidth||i.opts.subMenusMaxWidth)&&t.css({width:"",minWidth:"",maxWidth:""}).removeClass("sm-nowrap"),t.dataSM("scroll-arrows")&&t.dataSM("scroll-arrows").remove(),t.css({zIndex:"",top:"",left:"",marginLeft:"",marginTop:"",display:""})),0==(t.attr("id")||"").indexOf(i.accessIdPrefix)&&t.removeAttr("id")}).removeDataSM("in-mega").removeDataSM("shown-before").removeDataSM("scroll-arrows").removeDataSM("parent-a").removeDataSM("level").removeDataSM("beforefirstshowfired").removeAttr("role").removeAttr("aria-hidden").removeAttr("aria-labelledby").removeAttr("aria-expanded"),this.$root.find("a.has-submenu").each(function(){var t=$(this);0==t.attr("id").indexOf(i.accessIdPrefix)&&t.removeAttr("id")}).removeClass("has-submenu").removeDataSM("sub").removeAttr("aria-haspopup").removeAttr("aria-controls").removeAttr("aria-expanded").closest("li").removeDataSM("sub"),this.opts.subIndicators&&this.$root.find("span.sub-arrow").remove(),this.opts.markCurrentItem&&this.$root.find("a.current").removeClass("current"),t||(this.$root=null,this.$firstLink=null,this.$firstSub=null,this.$disableOverlay&&(this.$disableOverlay.remove(),this.$disableOverlay=null),menuTrees.splice($.inArray(this,menuTrees),1))},disable:function(t){if(!this.disabled){if(this.menuHideAll(),!t&&!this.opts.isPopup&&this.$root.is(":visible")){var e=this.$root.offset();this.$disableOverlay=$('<div class="sm-jquery-disable-overlay"/>').css({position:"absolute",top:e.top,left:e.left,width:this.$root.outerWidth(),height:this.$root.outerHeight(),zIndex:this.getStartZIndex(!0),opacity:0}).appendTo(document.body)}this.disabled=!0}},docClick:function(t){return this.$touchScrollingSub?(this.$touchScrollingSub=null,void 0):((this.visibleSubMenus.length&&!$.contains(this.$root[0],t.target)||$(t.target).closest("a").length)&&this.menuHideAll(),void 0)},docTouchEnd:function(){if(this.lastTouch){if(!(!this.visibleSubMenus.length||void 0!==this.lastTouch.x2&&this.lastTouch.x1!=this.lastTouch.x2||void 0!==this.lastTouch.y2&&this.lastTouch.y1!=this.lastTouch.y2||this.lastTouch.target&&$.contains(this.$root[0],this.lastTouch.target))){this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0);var t=this;this.hideTimeout=setTimeout(function(){t.menuHideAll()},350)}this.lastTouch=null}},docTouchMove:function(t){if(this.lastTouch){var e=t.originalEvent.touches[0];this.lastTouch.x2=e.pageX,this.lastTouch.y2=e.pageY}},docTouchStart:function(t){var e=t.originalEvent.touches[0];this.lastTouch={x1:e.pageX,y1:e.pageY,target:e.target}},enable:function(){this.disabled&&(this.$disableOverlay&&(this.$disableOverlay.remove(),this.$disableOverlay=null),this.disabled=!1)},getClosestMenu:function(t){for(var e=$(t).closest("ul");e.dataSM("in-mega");)e=e.parent().closest("ul");return e[0]||null},getHeight:function(t){return this.getOffset(t,!0)},getOffset:function(t,e){var i;"none"==t.css("display")&&(i={position:t[0].style.position,visibility:t[0].style.visibility},t.css({position:"absolute",visibility:"hidden"}).show());var s=t[0].getBoundingClientRect&&t[0].getBoundingClientRect(),o=s&&(e?s.height||s.bottom-s.top:s.width||s.right-s.left);return o||0===o||(o=e?t[0].offsetHeight:t[0].offsetWidth),i&&t.hide().css(i),o},getStartZIndex:function(t){var e=parseInt(this[t?"$root":"$firstSub"].css("z-index"));return!t&&isNaN(e)&&(e=parseInt(this.$root.css("z-index"))),isNaN(e)?1:e},getTouchPoint:function(t){return t.touches&&t.touches[0]||t.changedTouches&&t.changedTouches[0]||t},getViewport:function(t){var e=t?"Height":"Width",i=document.documentElement["client"+e],s=window["inner"+e];return s&&(i=Math.min(i,s)),i},getViewportHeight:function(){return this.getViewport(!0)},getViewportWidth:function(){return this.getViewport()},getWidth:function(t){return this.getOffset(t)},handleEvents:function(){return!this.disabled&&this.isCSSOn()},handleItemEvents:function(t){return this.handleEvents()&&!this.isLinkInMegaMenu(t)},isCollapsible:function(){return"static"==this.$firstSub.css("position")},isCSSOn:function(){return"inline"!=this.$firstLink.css("display")},isFixed:function(){var t="fixed"==this.$root.css("position");return t||this.$root.parentsUntil("body").each(function(){return"fixed"==$(this).css("position")?(t=!0,!1):void 0}),t},isLinkInMegaMenu:function(t){return $(this.getClosestMenu(t[0])).hasClass("mega-menu")},isTouchMode:function(){return!mouse||this.opts.noMouseOver||this.isCollapsible()},itemActivate:function(t,e){var i=t.closest("ul"),s=i.dataSM("level");if(s>1&&(!this.activatedItems[s-2]||this.activatedItems[s-2][0]!=i.dataSM("parent-a")[0])){var o=this;$(i.parentsUntil("[data-smartmenus-id]","ul").get().reverse()).add(i).each(function(){o.itemActivate($(this).dataSM("parent-a"))})}if((!this.isCollapsible()||e)&&this.menuHideSubMenus(this.activatedItems[s-1]&&this.activatedItems[s-1][0]==t[0]?s:s-1),this.activatedItems[s-1]=t,this.$root.triggerHandler("activate.smapi",t[0])!==!1){var a=t.dataSM("sub");a&&(this.isTouchMode()||!this.opts.showOnClick||this.clickActivated)&&this.menuShow(a)}},itemBlur:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&this.$root.triggerHandler("blur.smapi",e[0])},itemClick:function(t){var e=$(t.currentTarget);if(this.handleItemEvents(e)){if(this.$touchScrollingSub&&this.$touchScrollingSub[0]==e.closest("ul")[0])return this.$touchScrollingSub=null,t.stopPropagation(),!1;if(this.$root.triggerHandler("click.smapi",e[0])===!1)return!1;var i=$(t.target).is(".sub-arrow"),s=e.dataSM("sub"),o=s?2==s.dataSM("level"):!1,a=this.isCollapsible(),n=/toggle$/.test(this.opts.collapsibleBehavior),r=/link$/.test(this.opts.collapsibleBehavior),h=/^accordion/.test(this.opts.collapsibleBehavior);if(s&&!s.is(":visible")){if((!r||!a||i)&&(this.opts.showOnClick&&o&&(this.clickActivated=!0),this.itemActivate(e,h),s.is(":visible")))return this.focusActivated=!0,!1}else if(a&&(n||i))return this.itemActivate(e,h),this.menuHide(s),n&&(this.focusActivated=!1),!1;return this.opts.showOnClick&&o||e.hasClass("disabled")||this.$root.triggerHandler("select.smapi",e[0])===!1?!1:void 0}},itemDown:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&e.dataSM("mousedown",!0)},itemEnter:function(t){var e=$(t.currentTarget);if(this.handleItemEvents(e)){if(!this.isTouchMode()){this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0);var i=this;this.showTimeout=setTimeout(function(){i.itemActivate(e)},this.opts.showOnClick&&1==e.closest("ul").dataSM("level")?1:this.opts.showTimeout)}this.$root.triggerHandler("mouseenter.smapi",e[0])}},itemFocus:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&(!this.focusActivated||this.isTouchMode()&&e.dataSM("mousedown")||this.activatedItems.length&&this.activatedItems[this.activatedItems.length-1][0]==e[0]||this.itemActivate(e,!0),this.$root.triggerHandler("focus.smapi",e[0]))},itemLeave:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&(this.isTouchMode()||(e[0].blur(),this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0)),e.removeDataSM("mousedown"),this.$root.triggerHandler("mouseleave.smapi",e[0]))},menuHide:function(t){if(this.$root.triggerHandler("beforehide.smapi",t[0])!==!1&&(canAnimate&&t.stop(!0,!0),"none"!=t.css("display"))){var e=function(){t.css("z-index","")};this.isCollapsible()?canAnimate&&this.opts.collapsibleHideFunction?this.opts.collapsibleHideFunction.call(this,t,e):t.hide(this.opts.collapsibleHideDuration,e):canAnimate&&this.opts.hideFunction?this.opts.hideFunction.call(this,t,e):t.hide(this.opts.hideDuration,e),t.dataSM("scroll")&&(this.menuScrollStop(t),t.css({"touch-action":"","-ms-touch-action":"","-webkit-transform":"",transform:""}).off(".smartmenus_scroll").removeDataSM("scroll").dataSM("scroll-arrows").hide()),t.dataSM("parent-a").removeClass("highlighted").attr("aria-expanded","false"),t.attr({"aria-expanded":"false","aria-hidden":"true"});var i=t.dataSM("level");this.activatedItems.splice(i-1,1),this.visibleSubMenus.splice($.inArray(t,this.visibleSubMenus),1),this.$root.triggerHandler("hide.smapi",t[0])}},menuHideAll:function(){this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0);for(var t=this.opts.isPopup?1:0,e=this.visibleSubMenus.length-1;e>=t;e--)this.menuHide(this.visibleSubMenus[e]);this.opts.isPopup&&(canAnimate&&this.$root.stop(!0,!0),this.$root.is(":visible")&&(canAnimate&&this.opts.hideFunction?this.opts.hideFunction.call(this,this.$root):this.$root.hide(this.opts.hideDuration))),this.activatedItems=[],this.visibleSubMenus=[],this.clickActivated=!1,this.focusActivated=!1,this.zIndexInc=0,this.$root.triggerHandler("hideAll.smapi")},menuHideSubMenus:function(t){for(var e=this.activatedItems.length-1;e>=t;e--){var i=this.activatedItems[e].dataSM("sub");i&&this.menuHide(i)}},menuInit:function(t){if(!t.dataSM("in-mega")){t.hasClass("mega-menu")&&t.find("ul").dataSM("in-mega",!0);for(var e=2,i=t[0];(i=i.parentNode.parentNode)!=this.$root[0];)e++;var s=t.prevAll("a").eq(-1);s.length||(s=t.prevAll().find("a").eq(-1)),s.addClass("has-submenu").dataSM("sub",t),t.dataSM("parent-a",s).dataSM("level",e).parent().dataSM("sub",t);var o=s.attr("id")||this.accessIdPrefix+ ++this.idInc,a=t.attr("id")||this.accessIdPrefix+ ++this.idInc;s.attr({id:o,"aria-haspopup":"true","aria-controls":a,"aria-expanded":"false"}),t.attr({id:a,role:"group","aria-hidden":"true","aria-labelledby":o,"aria-expanded":"false"}),this.opts.subIndicators&&s[this.opts.subIndicatorsPos](this.$subArrow.clone())}},menuPosition:function(t){var e,i,s=t.dataSM("parent-a"),o=s.closest("li"),a=o.parent(),n=t.dataSM("level"),r=this.getWidth(t),h=this.getHeight(t),u=s.offset(),l=u.left,c=u.top,d=this.getWidth(s),m=this.getHeight(s),p=$(window),f=p.scrollLeft(),v=p.scrollTop(),b=this.getViewportWidth(),S=this.getViewportHeight(),g=a.parent().is("[data-sm-horizontal-sub]")||2==n&&!a.hasClass("sm-vertical"),M=this.opts.rightToLeftSubMenus&&!o.is("[data-sm-reverse]")||!this.opts.rightToLeftSubMenus&&o.is("[data-sm-reverse]"),w=2==n?this.opts.mainMenuSubOffsetX:this.opts.subMenusSubOffsetX,T=2==n?this.opts.mainMenuSubOffsetY:this.opts.subMenusSubOffsetY;if(g?(e=M?d-r-w:w,i=this.opts.bottomToTopSubMenus?-h-T:m+T):(e=M?w-r:d-w,i=this.opts.bottomToTopSubMenus?m-T-h:T),this.opts.keepInViewport){var y=l+e,I=c+i;if(M&&f>y?e=g?f-y+e:d-w:!M&&y+r>f+b&&(e=g?f+b-r-y+e:w-r),g||(S>h&&I+h>v+S?i+=v+S-h-I:(h>=S||v>I)&&(i+=v-I)),g&&(I+h>v+S+.49||v>I)||!g&&h>S+.49){var x=this;t.dataSM("scroll-arrows")||t.dataSM("scroll-arrows",$([$('<span class="scroll-up"><span class="scroll-up-arrow"></span></span>')[0],$('<span class="scroll-down"><span class="scroll-down-arrow"></span></span>')[0]]).on({mouseenter:function(){t.dataSM("scroll").up=$(this).hasClass("scroll-up"),x.menuScroll(t)},mouseleave:function(e){x.menuScrollStop(t),x.menuScrollOut(t,e)},"mousewheel DOMMouseScroll":function(t){t.preventDefault()}}).insertAfter(t));var A=".smartmenus_scroll";if(t.dataSM("scroll",{y:this.cssTransforms3d?0:i-m,step:1,itemH:m,subH:h,arrowDownH:this.getHeight(t.dataSM("scroll-arrows").eq(1))}).on(getEventsNS({mouseover:function(e){x.menuScrollOver(t,e)},mouseout:function(e){x.menuScrollOut(t,e)},"mousewheel DOMMouseScroll":function(e){x.menuScrollMousewheel(t,e)}},A)).dataSM("scroll-arrows").css({top:"auto",left:"0",marginLeft:e+(parseInt(t.css("border-left-width"))||0),width:r-(parseInt(t.css("border-left-width"))||0)-(parseInt(t.css("border-right-width"))||0),zIndex:t.css("z-index")}).eq(g&&this.opts.bottomToTopSubMenus?0:1).show(),this.isFixed()){var C={};C[touchEvents?"touchstart touchmove touchend":"pointerdown pointermove pointerup MSPointerDown MSPointerMove MSPointerUp"]=function(e){x.menuScrollTouch(t,e)},t.css({"touch-action":"none","-ms-touch-action":"none"}).on(getEventsNS(C,A))}}}t.css({top:"auto",left:"0",marginLeft:e,marginTop:i-m})},menuScroll:function(t,e,i){var s,o=t.dataSM("scroll"),a=t.dataSM("scroll-arrows"),n=o.up?o.upEnd:o.downEnd;if(!e&&o.momentum){if(o.momentum*=.92,s=o.momentum,.5>s)return this.menuScrollStop(t),void 0}else s=i||(e||!this.opts.scrollAccelerate?this.opts.scrollStep:Math.floor(o.step));var r=t.dataSM("level");if(this.activatedItems[r-1]&&this.activatedItems[r-1].dataSM("sub")&&this.activatedItems[r-1].dataSM("sub").is(":visible")&&this.menuHideSubMenus(r-1),o.y=o.up&&o.y>=n||!o.up&&n>=o.y?o.y:Math.abs(n-o.y)>s?o.y+(o.up?s:-s):n,t.css(this.cssTransforms3d?{"-webkit-transform":"translate3d(0, "+o.y+"px, 0)",transform:"translate3d(0, "+o.y+"px, 0)"}:{marginTop:o.y}),mouse&&(o.up&&o.y>o.downEnd||!o.up&&o.y<o.upEnd)&&a.eq(o.up?1:0).show(),o.y==n)mouse&&a.eq(o.up?0:1).hide(),this.menuScrollStop(t);else if(!e){this.opts.scrollAccelerate&&o.step<this.opts.scrollStep&&(o.step+=.2);var h=this;this.scrollTimeout=requestAnimationFrame(function(){h.menuScroll(t)})}},menuScrollMousewheel:function(t,e){if(this.getClosestMenu(e.target)==t[0]){e=e.originalEvent;var i=(e.wheelDelta||-e.detail)>0;t.dataSM("scroll-arrows").eq(i?0:1).is(":visible")&&(t.dataSM("scroll").up=i,this.menuScroll(t,!0))}e.preventDefault()},menuScrollOut:function(t,e){mouse&&(/^scroll-(up|down)/.test((e.relatedTarget||"").className)||(t[0]==e.relatedTarget||$.contains(t[0],e.relatedTarget))&&this.getClosestMenu(e.relatedTarget)==t[0]||t.dataSM("scroll-arrows").css("visibility","hidden"))},menuScrollOver:function(t,e){if(mouse&&!/^scroll-(up|down)/.test(e.target.className)&&this.getClosestMenu(e.target)==t[0]){this.menuScrollRefreshData(t);var i=t.dataSM("scroll"),s=$(window).scrollTop()-t.dataSM("parent-a").offset().top-i.itemH;t.dataSM("scroll-arrows").eq(0).css("margin-top",s).end().eq(1).css("margin-top",s+this.getViewportHeight()-i.arrowDownH).end().css("visibility","visible")}},menuScrollRefreshData:function(t){var e=t.dataSM("scroll"),i=$(window).scrollTop()-t.dataSM("parent-a").offset().top-e.itemH;this.cssTransforms3d&&(i=-(parseFloat(t.css("margin-top"))-i)),$.extend(e,{upEnd:i,downEnd:i+this.getViewportHeight()-e.subH})},menuScrollStop:function(t){return this.scrollTimeout?(cancelAnimationFrame(this.scrollTimeout),this.scrollTimeout=0,t.dataSM("scroll").step=1,!0):void 0},menuScrollTouch:function(t,e){if(e=e.originalEvent,isTouchEvent(e)){var i=this.getTouchPoint(e);if(this.getClosestMenu(i.target)==t[0]){var s=t.dataSM("scroll");if(/(start|down)$/i.test(e.type))this.menuScrollStop(t)?(e.preventDefault(),this.$touchScrollingSub=t):this.$touchScrollingSub=null,this.menuScrollRefreshData(t),$.extend(s,{touchStartY:i.pageY,touchStartTime:e.timeStamp});else if(/move$/i.test(e.type)){var o=void 0!==s.touchY?s.touchY:s.touchStartY;if(void 0!==o&&o!=i.pageY){this.$touchScrollingSub=t;var a=i.pageY>o;void 0!==s.up&&s.up!=a&&$.extend(s,{touchStartY:i.pageY,touchStartTime:e.timeStamp}),$.extend(s,{up:a,touchY:i.pageY}),this.menuScroll(t,!0,Math.abs(i.pageY-o))}e.preventDefault()}else void 0!==s.touchY&&((s.momentum=15*Math.pow(Math.abs(i.pageY-s.touchStartY)/(e.timeStamp-s.touchStartTime),2))&&(this.menuScrollStop(t),this.menuScroll(t),e.preventDefault()),delete s.touchY)}}},menuShow:function(t){if((t.dataSM("beforefirstshowfired")||(t.dataSM("beforefirstshowfired",!0),this.$root.triggerHandler("beforefirstshow.smapi",t[0])!==!1))&&this.$root.triggerHandler("beforeshow.smapi",t[0])!==!1&&(t.dataSM("shown-before",!0),canAnimate&&t.stop(!0,!0),!t.is(":visible"))){var e=t.dataSM("parent-a"),i=this.isCollapsible();if((this.opts.keepHighlighted||i)&&e.addClass("highlighted"),i)t.removeClass("sm-nowrap").css({zIndex:"",width:"auto",minWidth:"",maxWidth:"",top:"",left:"",marginLeft:"",marginTop:""});else{if(t.css("z-index",this.zIndexInc=(this.zIndexInc||this.getStartZIndex())+1),(this.opts.subMenusMinWidth||this.opts.subMenusMaxWidth)&&(t.css({width:"auto",minWidth:"",maxWidth:""}).addClass("sm-nowrap"),this.opts.subMenusMinWidth&&t.css("min-width",this.opts.subMenusMinWidth),this.opts.subMenusMaxWidth)){var s=this.getWidth(t);t.css("max-width",this.opts.subMenusMaxWidth),s>this.getWidth(t)&&t.removeClass("sm-nowrap").css("width",this.opts.subMenusMaxWidth)}this.menuPosition(t)}var o=function(){t.css("overflow","")};i?canAnimate&&this.opts.collapsibleShowFunction?this.opts.collapsibleShowFunction.call(this,t,o):t.show(this.opts.collapsibleShowDuration,o):canAnimate&&this.opts.showFunction?this.opts.showFunction.call(this,t,o):t.show(this.opts.showDuration,o),e.attr("aria-expanded","true"),t.attr({"aria-expanded":"true","aria-hidden":"false"}),this.visibleSubMenus.push(t),this.$root.triggerHandler("show.smapi",t[0])}},popupHide:function(t){this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0);var e=this;this.hideTimeout=setTimeout(function(){e.menuHideAll()},t?1:this.opts.hideTimeout)},popupShow:function(t,e){if(!this.opts.isPopup)return alert('SmartMenus jQuery Error:\n\nIf you want to show this menu via the "popupShow" method, set the isPopup:true option.'),void 0;if(this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0),this.$root.dataSM("shown-before",!0),canAnimate&&this.$root.stop(!0,!0),!this.$root.is(":visible")){this.$root.css({left:t,top:e});var i=this,s=function(){i.$root.css("overflow","")};canAnimate&&this.opts.showFunction?this.opts.showFunction.call(this,this.$root,s):this.$root.show(this.opts.showDuration,s),this.visibleSubMenus[0]=this.$root}},refresh:function(){this.destroy(!0),this.init(!0)},rootKeyDown:function(t){if(this.handleEvents())switch(t.keyCode){case 27:var e=this.activatedItems[0];if(e){this.menuHideAll(),e[0].focus();var i=e.dataSM("sub");i&&this.menuHide(i)}break;case 32:var s=$(t.target);if(s.is("a")&&this.handleItemEvents(s)){var i=s.dataSM("sub");i&&!i.is(":visible")&&(this.itemClick({currentTarget:t.target}),t.preventDefault())}}},rootOut:function(t){if(this.handleEvents()&&!this.isTouchMode()&&t.target!=this.$root[0]&&(this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0),!this.opts.showOnClick||!this.opts.hideOnClick)){var e=this;this.hideTimeout=setTimeout(function(){e.menuHideAll()},this.opts.hideTimeout)}},rootOver:function(t){this.handleEvents()&&!this.isTouchMode()&&t.target!=this.$root[0]&&this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0)},winResize:function(t){if(this.handleEvents()){if(!("onorientationchange"in window)||"orientationchange"==t.type){var e=this.isCollapsible();this.wasCollapsible&&e||(this.activatedItems.length&&this.activatedItems[this.activatedItems.length-1][0].blur(),this.menuHideAll()),this.wasCollapsible=e}}else if(this.$disableOverlay){var i=this.$root.offset();this.$disableOverlay.css({top:i.top,left:i.left,width:this.$root.outerWidth(),height:this.$root.outerHeight()})}}}}),$.fn.dataSM=function(t,e){return e?this.data(t+"_smartmenus",e):this.data(t+"_smartmenus")},$.fn.removeDataSM=function(t){return this.removeData(t+"_smartmenus")},$.fn.smartmenus=function(options){if("string"==typeof options){var args=arguments,method=options;return Array.prototype.shift.call(args),this.each(function(){var t=$(this).data("smartmenus");t&&t[method]&&t[method].apply(t,args)})}return this.each(function(){var dataOpts=$(this).data("sm-options")||null;if(dataOpts)try{dataOpts=eval("("+dataOpts+")")}catch(e){dataOpts=null,alert('ERROR\n\nSmartMenus jQuery init:\nInvalid "data-sm-options" attribute value syntax.')}new $.SmartMenus(this,$.extend({},$.fn.smartmenus.defaults,options,dataOpts))})},$.fn.smartmenus.defaults={isPopup:!1,mainMenuSubOffsetX:0,mainMenuSubOffsetY:0,subMenusSubOffsetX:0,subMenusSubOffsetY:0,subMenusMinWidth:"10em",subMenusMaxWidth:"20em",subIndicators:!0,subIndicatorsPos:"append",subIndicatorsText:"",scrollStep:30,scrollAccelerate:!0,showTimeout:250,hideTimeout:500,showDuration:0,showFunction:null,hideDuration:0,hideFunction:function(t,e){t.fadeOut(200,e)},collapsibleShowDuration:0,collapsibleShowFunction:function(t,e){t.slideDown(200,e)},collapsibleHideDuration:0,collapsibleHideFunction:function(t,e){t.slideUp(200,e)},showOnClick:!1,hideOnClick:!0,noMouseOver:!1,keepInViewport:!0,keepHighlighted:!0,markCurrentItem:!1,markCurrentTree:!0,rightToLeftSubMenus:!1,bottomToTopSubMenus:!1,collapsibleBehavior:"default"},$});
\ No newline at end of file
diff --git a/doxy/html/main_game_8cpp.html b/doxy/html/main_game_8cpp.html
new file mode 100644
index 0000000000000000000000000000000000000000..410236b946295e2091eb52ba2f2ce0d871098dc2
--- /dev/null
+++ b/doxy/html/main_game_8cpp.html
@@ -0,0 +1,145 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: C:/Users/kosmx/Documents/GitHub/2d-game/mainGame.cpp File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#var-members">Variables</a>  </div>
+  <div class="headertitle">
+<div class="title">C:/Users/kosmx/Documents/GitHub/2d-game/mainGame.cpp File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &quot;<a class="el" href="main_game_8h_source.html">mainGame.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="_resource_manager_8h_source.html">ResourceManager.h</a>&quot;</code><br />
+<code>#include &lt;algorithm&gt;</code><br />
+<code>#include &quot;<a class="el" href="_game_exception_8h_source.html">GameException.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="_test_generator_8h_source.html">TestGenerator.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="_square_room_generator_8h_source.html">SquareRoomGenerator.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="_weapon_8h_source.html">Weapon.h</a>&quot;</code><br />
+</div>
+<p><a href="main_game_8cpp_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a>
+Variables</h2></td></tr>
+<tr class="memitem:aa8c13326fceadba77254d2971649a3ab"><td class="memItemLeft" align="right" valign="top">const float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="main_game_8cpp.html#aa8c13326fceadba77254d2971649a3ab">maxTimeDelta</a> = 0.05f</td></tr>
+<tr class="separator:aa8c13326fceadba77254d2971649a3ab"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7f4c2bc4db6ed1d3f59d20429bcca8db"><td class="memItemLeft" align="right" valign="top">const float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="main_game_8cpp.html#a7f4c2bc4db6ed1d3f59d20429bcca8db">screenMoveScale</a> = 8</td></tr>
+<tr class="separator:a7f4c2bc4db6ed1d3f59d20429bcca8db"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab553cccbcdbb19b4f2c3a1a727eeb867"><td class="memItemLeft" align="right" valign="top">const int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="main_game_8cpp.html#ab553cccbcdbb19b4f2c3a1a727eeb867">worldToScreenScale</a> = 16</td></tr>
+<tr class="separator:ab553cccbcdbb19b4f2c3a1a727eeb867"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Variable Documentation</h2>
+<a id="aa8c13326fceadba77254d2971649a3ab"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aa8c13326fceadba77254d2971649a3ab">&#9670;&nbsp;</a></span>maxTimeDelta</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">const float maxTimeDelta = 0.05f</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="main_game_8cpp_source.html#l00009">9</a> of file <a class="el" href="main_game_8cpp_source.html">mainGame.cpp</a>.</p>
+
+</div>
+</div>
+<a id="a7f4c2bc4db6ed1d3f59d20429bcca8db"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a7f4c2bc4db6ed1d3f59d20429bcca8db">&#9670;&nbsp;</a></span>screenMoveScale</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">const float screenMoveScale = 8</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="main_game_8cpp_source.html#l00014">14</a> of file <a class="el" href="main_game_8cpp_source.html">mainGame.cpp</a>.</p>
+
+</div>
+</div>
+<a id="ab553cccbcdbb19b4f2c3a1a727eeb867"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ab553cccbcdbb19b4f2c3a1a727eeb867">&#9670;&nbsp;</a></span>worldToScreenScale</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">const int worldToScreenScale = 16</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="main_game_8cpp_source.html#l00015">15</a> of file <a class="el" href="main_game_8cpp_source.html">mainGame.cpp</a>.</p>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/main_game_8cpp_source.html b/doxy/html/main_game_8cpp_source.html
new file mode 100644
index 0000000000000000000000000000000000000000..546cc0fbc34689032489053746537697007ecaed
--- /dev/null
+++ b/doxy/html/main_game_8cpp_source.html
@@ -0,0 +1,280 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: C:/Users/kosmx/Documents/GitHub/2d-game/mainGame.cpp Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="headertitle">
+<div class="title">C:/Users/kosmx/Documents/GitHub/2d-game/mainGame.cpp</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="main_game_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="main_game_8h.html">mainGame.h</a>&quot;</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_resource_manager_8h.html">ResourceManager.h</a>&quot;</span></div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="preprocessor">#include &lt;algorithm&gt;</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_game_exception_8h.html">GameException.h</a>&quot;</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_test_generator_8h.html">TestGenerator.h</a>&quot;</span></div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_square_room_generator_8h.html">SquareRoomGenerator.h</a>&quot;</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_weapon_8h.html">Weapon.h</a>&quot;</span></div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160; </div>
+<div class="line"><a name="l00009"></a><span class="lineno"><a class="line" href="main_game_8cpp.html#aa8c13326fceadba77254d2971649a3ab">    9</a></span>&#160;<span class="keyword">const</span> <span class="keywordtype">float</span> <a class="code" href="main_game_8cpp.html#aa8c13326fceadba77254d2971649a3ab">maxTimeDelta</a> = 0.05f;</div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="keyword">using namespace </span>std;</div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="keyword">using namespace </span><a class="code" href="namespaceentities.html">entities</a>;</div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="keyword">using namespace </span><a class="code" href="namespaceolc.html">olc</a>;</div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160; </div>
+<div class="line"><a name="l00014"></a><span class="lineno"><a class="line" href="main_game_8cpp.html#a7f4c2bc4db6ed1d3f59d20429bcca8db">   14</a></span>&#160;<span class="keyword">const</span> <span class="keywordtype">float</span> <a class="code" href="main_game_8cpp.html#a7f4c2bc4db6ed1d3f59d20429bcca8db">screenMoveScale</a> = 8;</div>
+<div class="line"><a name="l00015"></a><span class="lineno"><a class="line" href="main_game_8cpp.html#ab553cccbcdbb19b4f2c3a1a727eeb867">   15</a></span>&#160;<span class="keyword">const</span> <span class="keywordtype">int</span> <a class="code" href="main_game_8cpp.html#ab553cccbcdbb19b4f2c3a1a727eeb867">worldToScreenScale</a> = 16;</div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160; </div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<a class="code" href="class_game_client.html">GameClient</a>&amp; GameClient::createInstance(<span class="keywordtype">bool</span> debug)</div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;{</div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;    instance = <span class="keyword">new</span> <a class="code" href="class_game_client.html">GameClient</a>(debug);</div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;    <span class="keywordflow">return</span> *instance;</div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;}</div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160; </div>
+<div class="line"><a name="l00023"></a><span class="lineno"><a class="line" href="class_game_client.html#a1324a20c121e201e69391dfe7a08e546">   23</a></span>&#160;<a class="code" href="class_game_client.html#a1324a20c121e201e69391dfe7a08e546">GameClient::GameClient</a>(<span class="keywordtype">bool</span> debug)</div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;    : debug(debug)</div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;{</div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;    this-&gt;<a class="code" href="classolc_1_1_pixel_game_engine.html#a02d0f9c50770aa38aea1448f62d3604f">sAppName</a> = <span class="stringliteral">&quot;KosmX&#39;s game&quot;</span>;</div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;}</div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160; </div>
+<div class="line"><a name="l00029"></a><span class="lineno"><a class="line" href="class_game_client.html#a6984da0365fd19c81dbc8907b598bf49">   29</a></span>&#160;<a class="code" href="class_dynamic_array.html">DynamicArray&lt;std::shared_ptr&lt;Entity&gt;</a>&gt;&amp; <a class="code" href="class_game_client.html#a6984da0365fd19c81dbc8907b598bf49">GameClient::getEntities</a>()</div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;{</div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;    <span class="keywordflow">return</span> this-&gt;<a class="code" href="namespaceentities.html">entities</a>;</div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;}</div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160; </div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;<span class="keywordtype">void</span> GameClient::updateWorldOffset(<span class="keywordtype">float</span> dTick)</div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;{</div>
+<div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;    <a class="code" href="structolc_1_1v2d__generic.html">vf2d</a> delta = scene.<a class="code" href="classolc_1_1_transformed_view.html#a88152a5f5b9fbb3df0f6d965ef4c4fe4">GetWorldOffset</a>() + scene.<a class="code" href="classolc_1_1_transformed_view.html#a7f7815582a087a163199bb29f1c4c0ae">GetWorldVisibleArea</a>()/4;</div>
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;    scene.<a class="code" href="classolc_1_1_transformed_view.html#a154b34bc81f6e0c67579d2d2ee40b2d1">MoveWorldOffset</a>((player-&gt;getPos() - delta) * dTick * <a class="code" href="main_game_8cpp.html#a7f4c2bc4db6ed1d3f59d20429bcca8db">screenMoveScale</a>);</div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;}</div>
+<div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160; </div>
+<div class="line"><a name="l00040"></a><span class="lineno"><a class="line" href="class_game_client.html#adfcb979db6333b335dee4e6d785aabcf">   40</a></span>&#160;<a class="code" href="class_game_client.html">GameClient</a>&amp; <a class="code" href="class_game_client.html#adfcb979db6333b335dee4e6d785aabcf">GameClient::getInstance</a>()</div>
+<div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;{</div>
+<div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;    <span class="keywordflow">return</span> *instance;</div>
+<div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;}</div>
+<div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160; </div>
+<div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="class_game_client.html#a698bb8a4ba91211dc4fcaa4079d8d070">   45</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_game_client.html#a698bb8a4ba91211dc4fcaa4079d8d070">GameClient::OnUserCreate</a>()</div>
+<div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;{</div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160; </div>
+<div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;    <span class="comment">//Set resource parent!</span></div>
+<div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;    <a class="code" href="classrender_1_1_resource_manager.html#abdb364e2b932233c873a98a1b5c03d2a">render::ResourceManager::createInstance</a>();</div>
+<div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160; </div>
+<div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;    scene.<a class="code" href="classolc_1_1_transformed_view.html#a799473b80691228b87a818f80847ca76">Initialise</a>(<a class="code" href="classolc_1_1_pixel_game_engine.html#aee10e917aeb1ce4625561d71126e0a7d">GetWindowSize</a>(), { <a class="code" href="main_game_8cpp.html#ab553cccbcdbb19b4f2c3a1a727eeb867">worldToScreenScale</a>, <a class="code" href="main_game_8cpp.html#ab553cccbcdbb19b4f2c3a1a727eeb867">worldToScreenScale</a> }); <span class="comment">// uh. idk. maybe that&#39;s the best option</span></div>
+<div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;    </div>
+<div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;    </div>
+<div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;    <a class="code" href="class_square_room_generator.html">SquareRoomGenerator</a> generator;</div>
+<div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;    player = generator.<a class="code" href="class_square_room_generator.html#a5b9952abf9af7a8fc4241f3f9e93a616">generate</a>(*<span class="keyword">this</span>);</div>
+<div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160; </div>
+<div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;    </div>
+<div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;    <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;}</div>
+<div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160; </div>
+<div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;<span class="keywordtype">void</span> GameClient::renderStatusLine(<span class="keywordtype">int</span> i, <span class="keywordtype">float</span> f, <span class="keyword">const</span> <a class="code" href="structolc_1_1_pixel.html">olc::Pixel</a>&amp; pixel)</div>
+<div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;{</div>
+<div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;    <a class="code" href="classolc_1_1_pixel_game_engine.html#a131877968123c843374f079814503d22">DrawLine</a>(<a class="code" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">vf2d</a>(0, i + 0.f), <a class="code" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">vf2d</a>( 128.f * f, i ), pixel);</div>
+<div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;    <a class="code" href="classolc_1_1_pixel_game_engine.html#a131877968123c843374f079814503d22">DrawLine</a>(<a class="code" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">vf2d</a>(0, i + 1.f), <a class="code" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">vf2d</a>( 128.f * f, i + 1 ), pixel);</div>
+<div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;}</div>
+<div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160; </div>
+<div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;<span class="keywordtype">void</span> GameClient::renderStatus()</div>
+<div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;{</div>
+<div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;    <a class="code" href="classolc_1_1_pixel_game_engine.html#a70b6a145d7ab0c8857000a72ce4d4a70">SetDrawTarget</a>(1);</div>
+<div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160; </div>
+<div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;    <span class="keywordtype">float</span> health = this-&gt;player-&gt;getHealthStatus();</div>
+<div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;    <span class="keywordflow">if</span> (this-&gt;player-&gt;getWeapon()) {</div>
+<div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;        <span class="keywordtype">float</span> weapon = 0;</div>
+<div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;        <span class="keywordtype">float</span> weapon2 = 0;</div>
+<div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;        shared_ptr&lt;weapons::Weapon&gt; wep = this-&gt;player-&gt;getWeapon();</div>
+<div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;        weapon = wep-&gt;getCooldownBar();</div>
+<div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;        weapon2 = wep-&gt;getSecondaryBar();</div>
+<div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;        renderStatusLine(4, weapon, <a class="code" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">WHITE</a>);</div>
+<div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;        renderStatusLine(6, weapon2, <a class="code" href="namespaceolc.html#ac1e1d3e39e0b78e9767142c9daeba4ee">BLUE</a>);</div>
+<div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;    }</div>
+<div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160; </div>
+<div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;    renderStatusLine(0, health, <a class="code" href="namespaceolc.html#ad4579f7eb75a257d76bb657a268f0a8d">RED</a>);</div>
+<div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;    </div>
+<div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;    </div>
+<div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;    <a class="code" href="classolc_1_1_pixel_game_engine.html#a70b6a145d7ab0c8857000a72ce4d4a70">SetDrawTarget</a>(<span class="keyword">static_cast&lt;</span>uint8_t<span class="keyword">&gt;</span>(0));</div>
+<div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;}</div>
+<div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160; </div>
+<div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160; </div>
+<div class="line"><a name="l00089"></a><span class="lineno"><a class="line" href="class_game_client.html#ab6e2efe37e67de64062bca35d8a11e2e">   89</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_game_client.html#ab6e2efe37e67de64062bca35d8a11e2e">GameClient::OnUserUpdate</a>(<span class="keywordtype">float</span> fElapsedTime)</div>
+<div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;{</div>
+<div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;    <a class="code" href="classolc_1_1_pixel_game_engine.html#aeb70b40809815fab4e1017e25c7ab161">Clear</a>(<a class="code" href="namespaceolc.html#a183de1c471cfd6f45980bc9c2c58ed9d">BLACK</a>);</div>
+<div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;    </div>
+<div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;    fElapsedTime = std::min(<a class="code" href="main_game_8cpp.html#aa8c13326fceadba77254d2971649a3ab">maxTimeDelta</a>, fElapsedTime);</div>
+<div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;    <span class="comment">//return false if it want to exit.</span></div>
+<div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160; </div>
+<div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;    <span class="keywordflow">for</span>(std::shared_ptr&lt;Entity&gt;&amp; entity : this-&gt;<a class="code" href="class_game_client.html#a6984da0365fd19c81dbc8907b598bf49">getEntities</a>()){</div>
+<div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;        entity-&gt;tick(*<span class="keyword">this</span>, fElapsedTime, entity);</div>
+<div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;    }</div>
+<div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160; </div>
+<div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;    <span class="keyword">auto</span> iterator = <a class="code" href="namespaceentities.html">entities</a>.finalizeAdd();</div>
+<div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;    </div>
+<div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;    <span class="keywordflow">while</span> (iterator != <a class="code" href="namespaceentities.html">entities</a>.end()){</div>
+<div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;        iterator++-&gt;get()-&gt;init(*<span class="keyword">this</span>);</div>
+<div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;    }</div>
+<div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160; </div>
+<div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;    <span class="comment">//lambda remove condition. because why not?</span></div>
+<div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;    <a class="code" href="namespaceentities.html">entities</a>.removeIf([](<span class="keyword">const</span> shared_ptr&lt;Entity&gt;&amp; entity)-&gt;<span class="keywordtype">bool</span></div>
+<div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;        {</div>
+<div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;            <span class="keywordflow">return</span> entity-&gt;canBeRemoved();</div>
+<div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;        });</div>
+<div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160; </div>
+<div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;    this-&gt;updateWorldOffset(fElapsedTime);</div>
+<div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;    </div>
+<div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;    </div>
+<div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;    <span class="keywordflow">for</span>(<span class="keyword">auto</span>&amp; entity : <a class="code" href="namespaceentities.html">entities</a>){</div>
+<div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;        <span class="comment">// I literally add entities to the scene :D</span></div>
+<div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;        <span class="keywordflow">try</span> {</div>
+<div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;            scene += entity;</div>
+<div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;        }</div>
+<div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;        <span class="keywordflow">catch</span> (<a class="code" href="class_game_exception.html">GameException</a>&amp; exception){</div>
+<div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;            std::cout &lt;&lt; <span class="stringliteral">&quot;Exception has occur while rendering entity: &quot;</span> &lt;&lt; exception.what();</div>
+<div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;        }</div>
+<div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;    }</div>
+<div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160; </div>
+<div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;    renderStatus();</div>
+<div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;    </div>
+<div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;    <span class="comment">//debug section</span></div>
+<div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;    <span class="keywordflow">if</span> (debug) {</div>
+<div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160;        <span class="comment">//scene.DrawCircle({ 0, 0 }, 1);</span></div>
+<div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;        cout &lt;&lt; <a class="code" href="namespaceentities.html">entities</a>.getSize() &lt;&lt; <span class="stringliteral">&quot; was ticked&quot;</span> &lt;&lt; endl;</div>
+<div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;    }</div>
+<div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;    <span class="keywordflow">return</span> player-&gt;isAlive();</div>
+<div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;}</div>
+<div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160; </div>
+<div class="line"><a name="l00135"></a><span class="lineno"><a class="line" href="class_game_client.html#a9af9a685c31d428921b0cf5976a63c14">  135</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_game_client.html#a9af9a685c31d428921b0cf5976a63c14">GameClient::setDebugMode</a>(<span class="keywordtype">bool</span> bl)</div>
+<div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;{</div>
+<div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;    this-&gt;debug = bl;</div>
+<div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160;}</div>
+<div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160; </div>
+<div class="line"><a name="l00140"></a><span class="lineno"><a class="line" href="class_game_client.html#ac1df0a856bd945976c06b3977167d4c7">  140</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_game_client.html#ac1df0a856bd945976c06b3977167d4c7">GameClient::addEntity</a>(std::shared_ptr&lt;Entity&gt;&amp; entity)</div>
+<div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;{</div>
+<div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;    this-&gt;<a class="code" href="namespaceentities.html">entities</a>.operator+=(entity);</div>
+<div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160;}</div>
+<div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160; </div>
+<div class="line"><a name="l00145"></a><span class="lineno"><a class="line" href="class_game_client.html#a01a0c559c6cfe63557fa4b5d7aa9e72c">  145</a></span>&#160;<span class="keyword">const</span> <a class="code" href="classolc_1_1_transformed_view.html">olc::TransformedView</a>&amp; <a class="code" href="class_game_client.html#a01a0c559c6cfe63557fa4b5d7aa9e72c">GameClient::getScene</a>()</div>
+<div class="line"><a name="l00146"></a><span class="lineno">  146</span>&#160;{</div>
+<div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160;    <span class="keywordflow">return</span> scene;</div>
+<div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160;}</div>
+<div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160; </div>
+<div class="line"><a name="l00150"></a><span class="lineno"><a class="line" href="class_game_client.html#abf4100b1ee69f4f300346424139f8d93">  150</a></span>&#160;<a class="code" href="class_game_client.html">GameClient</a>&amp; <a class="code" href="class_game_client.html#abf4100b1ee69f4f300346424139f8d93">GameClient::operator+=</a>(std::shared_ptr&lt;Entity&gt; entity)</div>
+<div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160;{</div>
+<div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160;    this-&gt;<a class="code" href="class_game_client.html#ac1df0a856bd945976c06b3977167d4c7">addEntity</a>(entity);</div>
+<div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160;    <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
+<div class="line"><a name="l00154"></a><span class="lineno">  154</span>&#160;}</div>
+<div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160; </div>
+<div class="line"><a name="l00156"></a><span class="lineno"><a class="line" href="class_game_client.html#acc1e0f1d4836be4a8556289cfdfd4049">  156</a></span>&#160;std::shared_ptr&lt;entities::PlayerEntity&gt; <a class="code" href="class_game_client.html#acc1e0f1d4836be4a8556289cfdfd4049">GameClient::getPlayerEntity</a>()</div>
+<div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160;{</div>
+<div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160;    <span class="keywordflow">return</span> player;</div>
+<div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160;}</div>
+<div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160; </div>
+<div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160;<a class="code" href="class_game_client.html">GameClient</a>* GameClient::instance = <span class="keyword">nullptr</span>;</div>
+</div><!-- fragment --></div><!-- contents -->
+<div class="ttc" id="astructolc_1_1v2d__generic_html"><div class="ttname"><a href="structolc_1_1v2d__generic.html">olc::v2d_generic&lt; float &gt;</a></div></div>
+<div class="ttc" id="aclass_game_client_html_ac1df0a856bd945976c06b3977167d4c7"><div class="ttname"><a href="class_game_client.html#ac1df0a856bd945976c06b3977167d4c7">GameClient::addEntity</a></div><div class="ttdeci">void addEntity(std::shared_ptr&lt; entities::Entity &gt; &amp;entity)</div><div class="ttdoc">Add a new entity to the world. you can also use +=.</div><div class="ttdef"><b>Definition:</b> <a href="main_game_8cpp_source.html#l00140">mainGame.cpp:140</a></div></div>
+<div class="ttc" id="aclass_game_client_html_a9af9a685c31d428921b0cf5976a63c14"><div class="ttname"><a href="class_game_client.html#a9af9a685c31d428921b0cf5976a63c14">GameClient::setDebugMode</a></div><div class="ttdeci">void setDebugMode(bool bl=true)</div><div class="ttdoc">turn on debug, caused by an exception</div><div class="ttdef"><b>Definition:</b> <a href="main_game_8cpp_source.html#l00135">mainGame.cpp:135</a></div></div>
+<div class="ttc" id="aclass_game_client_html_a698bb8a4ba91211dc4fcaa4079d8d070"><div class="ttname"><a href="class_game_client.html#a698bb8a4ba91211dc4fcaa4079d8d070">GameClient::OnUserCreate</a></div><div class="ttdeci">bool OnUserCreate() override</div><div class="ttdoc">Create a new game instance.</div><div class="ttdef"><b>Definition:</b> <a href="main_game_8cpp_source.html#l00045">mainGame.cpp:45</a></div></div>
+<div class="ttc" id="anamespaceolc_html_ad4579f7eb75a257d76bb657a268f0a8d"><div class="ttname"><a href="namespaceolc.html#ad4579f7eb75a257d76bb657a268f0a8d">olc::RED</a></div><div class="ttdeci">static const Pixel RED(255, 0, 0)</div></div>
+<div class="ttc" id="anamespaceolc_html_adb87819740ea9625f84c821fffb16429"><div class="ttname"><a href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a></div><div class="ttdeci">v2d_generic&lt; float &gt; vf2d</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00646">olcPixelGameEngine.h:646</a></div></div>
+<div class="ttc" id="aclass_game_client_html_a1324a20c121e201e69391dfe7a08e546"><div class="ttname"><a href="class_game_client.html#a1324a20c121e201e69391dfe7a08e546">GameClient::GameClient</a></div><div class="ttdeci">GameClient(bool debug=false)</div><div class="ttdef"><b>Definition:</b> <a href="main_game_8cpp_source.html#l00023">mainGame.cpp:23</a></div></div>
+<div class="ttc" id="aclass_dynamic_array_html"><div class="ttname"><a href="class_dynamic_array.html">DynamicArray</a></div><div class="ttdoc">Dynamic array, to store entities, have a buffer, to don't tick newly added entities too early.</div><div class="ttdef"><b>Definition:</b> <a href="_dynamic_array_8hpp_source.html#l00014">DynamicArray.hpp:15</a></div></div>
+<div class="ttc" id="a_resource_manager_8h_html"><div class="ttname"><a href="_resource_manager_8h.html">ResourceManager.h</a></div></div>
+<div class="ttc" id="amain_game_8cpp_html_aa8c13326fceadba77254d2971649a3ab"><div class="ttname"><a href="main_game_8cpp.html#aa8c13326fceadba77254d2971649a3ab">maxTimeDelta</a></div><div class="ttdeci">const float maxTimeDelta</div><div class="ttdef"><b>Definition:</b> <a href="main_game_8cpp_source.html#l00009">mainGame.cpp:9</a></div></div>
+<div class="ttc" id="aclassolc_1_1_pixel_game_engine_html_aeb70b40809815fab4e1017e25c7ab161"><div class="ttname"><a href="classolc_1_1_pixel_game_engine.html#aeb70b40809815fab4e1017e25c7ab161">olc::PixelGameEngine::Clear</a></div><div class="ttdeci">void Clear(Pixel p)</div></div>
+<div class="ttc" id="anamespaceolc_html"><div class="ttname"><a href="namespaceolc.html">olc</a></div><div class="ttdef"><b>Definition:</b> <a href="olc_p_g_e_x___transformed_view_8h_source.html#l00077">olcPGEX_TransformedView.h:78</a></div></div>
+<div class="ttc" id="aclass_game_client_html_a01a0c559c6cfe63557fa4b5d7aa9e72c"><div class="ttname"><a href="class_game_client.html#a01a0c559c6cfe63557fa4b5d7aa9e72c">GameClient::getScene</a></div><div class="ttdeci">const olc::TransformedView &amp; getScene()</div><div class="ttdoc">Get the screen details. needed in fire direction calculation.</div><div class="ttdef"><b>Definition:</b> <a href="main_game_8cpp_source.html#l00145">mainGame.cpp:145</a></div></div>
+<div class="ttc" id="anamespaceolc_html_a183de1c471cfd6f45980bc9c2c58ed9d"><div class="ttname"><a href="namespaceolc.html#a183de1c471cfd6f45980bc9c2c58ed9d">olc::BLACK</a></div><div class="ttdeci">static const Pixel BLACK(0, 0, 0)</div></div>
+<div class="ttc" id="a_square_room_generator_8h_html"><div class="ttname"><a href="_square_room_generator_8h.html">SquareRoomGenerator.h</a></div></div>
+<div class="ttc" id="aclass_game_exception_html"><div class="ttname"><a href="class_game_exception.html">GameException</a></div><div class="ttdef"><b>Definition:</b> <a href="_game_exception_8h_source.html#l00009">GameException.h:11</a></div></div>
+<div class="ttc" id="aclassrender_1_1_resource_manager_html_abdb364e2b932233c873a98a1b5c03d2a"><div class="ttname"><a href="classrender_1_1_resource_manager.html#abdb364e2b932233c873a98a1b5c03d2a">render::ResourceManager::createInstance</a></div><div class="ttdeci">static void createInstance(std::string *parent=nullptr)</div><div class="ttdef"><b>Definition:</b> <a href="_resource_manager_8cpp_source.html#l00038">ResourceManager.cpp:38</a></div></div>
+<div class="ttc" id="aclass_square_room_generator_html"><div class="ttname"><a href="class_square_room_generator.html">SquareRoomGenerator</a></div><div class="ttdoc">Generates a weird square dungeon, filled with stupid enemies and weapons.</div><div class="ttdef"><b>Definition:</b> <a href="_square_room_generator_8h_source.html#l00006">SquareRoomGenerator.h:8</a></div></div>
+<div class="ttc" id="aclassolc_1_1_pixel_game_engine_html_aee10e917aeb1ce4625561d71126e0a7d"><div class="ttname"><a href="classolc_1_1_pixel_game_engine.html#aee10e917aeb1ce4625561d71126e0a7d">olc::PixelGameEngine::GetWindowSize</a></div><div class="ttdeci">const olc::vi2d &amp; GetWindowSize() const</div></div>
+<div class="ttc" id="aclass_game_client_html_a6984da0365fd19c81dbc8907b598bf49"><div class="ttname"><a href="class_game_client.html#a6984da0365fd19c81dbc8907b598bf49">GameClient::getEntities</a></div><div class="ttdeci">DynamicArray&lt; std::shared_ptr&lt; entities::Entity &gt; &gt; &amp; getEntities()</div><div class="ttdef"><b>Definition:</b> <a href="main_game_8cpp_source.html#l00029">mainGame.cpp:29</a></div></div>
+<div class="ttc" id="amain_game_8cpp_html_ab553cccbcdbb19b4f2c3a1a727eeb867"><div class="ttname"><a href="main_game_8cpp.html#ab553cccbcdbb19b4f2c3a1a727eeb867">worldToScreenScale</a></div><div class="ttdeci">const int worldToScreenScale</div><div class="ttdef"><b>Definition:</b> <a href="main_game_8cpp_source.html#l00015">mainGame.cpp:15</a></div></div>
+<div class="ttc" id="amain_game_8cpp_html_a7f4c2bc4db6ed1d3f59d20429bcca8db"><div class="ttname"><a href="main_game_8cpp.html#a7f4c2bc4db6ed1d3f59d20429bcca8db">screenMoveScale</a></div><div class="ttdeci">const float screenMoveScale</div><div class="ttdef"><b>Definition:</b> <a href="main_game_8cpp_source.html#l00014">mainGame.cpp:14</a></div></div>
+<div class="ttc" id="aclassolc_1_1_transformed_view_html_a7f7815582a087a163199bb29f1c4c0ae"><div class="ttname"><a href="classolc_1_1_transformed_view.html#a7f7815582a087a163199bb29f1c4c0ae">olc::TransformedView::GetWorldVisibleArea</a></div><div class="ttdeci">olc::vf2d GetWorldVisibleArea() const</div></div>
+<div class="ttc" id="aclassolc_1_1_transformed_view_html_a88152a5f5b9fbb3df0f6d965ef4c4fe4"><div class="ttname"><a href="classolc_1_1_transformed_view.html#a88152a5f5b9fbb3df0f6d965ef4c4fe4">olc::TransformedView::GetWorldOffset</a></div><div class="ttdeci">const olc::vf2d &amp; GetWorldOffset() const</div></div>
+<div class="ttc" id="aclass_game_client_html"><div class="ttname"><a href="class_game_client.html">GameClient</a></div><div class="ttdoc">The game main class itself. manages the entities, adjust the screen...</div><div class="ttdef"><b>Definition:</b> <a href="main_game_8h_source.html#l00011">mainGame.h:13</a></div></div>
+<div class="ttc" id="aclassolc_1_1_pixel_game_engine_html_a02d0f9c50770aa38aea1448f62d3604f"><div class="ttname"><a href="classolc_1_1_pixel_game_engine.html#a02d0f9c50770aa38aea1448f62d3604f">olc::PixelGameEngine::sAppName</a></div><div class="ttdeci">std::string sAppName</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l01024">olcPixelGameEngine.h:1024</a></div></div>
+<div class="ttc" id="a_game_exception_8h_html"><div class="ttname"><a href="_game_exception_8h.html">GameException.h</a></div></div>
+<div class="ttc" id="aclassolc_1_1_pixel_game_engine_html_a70b6a145d7ab0c8857000a72ce4d4a70"><div class="ttname"><a href="classolc_1_1_pixel_game_engine.html#a70b6a145d7ab0c8857000a72ce4d4a70">olc::PixelGameEngine::SetDrawTarget</a></div><div class="ttdeci">void SetDrawTarget(Sprite *target)</div></div>
+<div class="ttc" id="aclassolc_1_1_transformed_view_html_a799473b80691228b87a818f80847ca76"><div class="ttname"><a href="classolc_1_1_transformed_view.html#a799473b80691228b87a818f80847ca76">olc::TransformedView::Initialise</a></div><div class="ttdeci">virtual void Initialise(const olc::vi2d &amp;vViewArea, const olc::vf2d &amp;vPixelScale={ 1.0f, 1.0f })</div></div>
+<div class="ttc" id="aclass_game_client_html_ab6e2efe37e67de64062bca35d8a11e2e"><div class="ttname"><a href="class_game_client.html#ab6e2efe37e67de64062bca35d8a11e2e">GameClient::OnUserUpdate</a></div><div class="ttdeci">bool OnUserUpdate(float fElapsedTime) override</div><div class="ttdoc">Update the game.</div><div class="ttdef"><b>Definition:</b> <a href="main_game_8cpp_source.html#l00089">mainGame.cpp:89</a></div></div>
+<div class="ttc" id="aclassolc_1_1_pixel_game_engine_html_a131877968123c843374f079814503d22"><div class="ttname"><a href="classolc_1_1_pixel_game_engine.html#a131877968123c843374f079814503d22">olc::PixelGameEngine::DrawLine</a></div><div class="ttdeci">void DrawLine(int32_t x1, int32_t y1, int32_t x2, int32_t y2, Pixel p=olc::WHITE, uint32_t pattern=0xFFFFFFFF)</div></div>
+<div class="ttc" id="anamespaceentities_html"><div class="ttname"><a href="namespaceentities.html">entities</a></div><div class="ttdef"><b>Definition:</b> <a href="_character_entity_8cpp_source.html#l00005">CharacterEntity.cpp:5</a></div></div>
+<div class="ttc" id="aclassolc_1_1_transformed_view_html"><div class="ttname"><a href="classolc_1_1_transformed_view.html">olc::TransformedView</a></div><div class="ttdef"><b>Definition:</b> <a href="olc_p_g_e_x___transformed_view_8h_source.html#l00079">olcPGEX_TransformedView.h:80</a></div></div>
+<div class="ttc" id="aclass_square_room_generator_html_a5b9952abf9af7a8fc4241f3f9e93a616"><div class="ttname"><a href="class_square_room_generator.html#a5b9952abf9af7a8fc4241f3f9e93a616">SquareRoomGenerator::generate</a></div><div class="ttdeci">std::shared_ptr&lt; entities::PlayerEntity &gt; generate(GameClient &amp;client) override</div><div class="ttdef"><b>Definition:</b> <a href="_square_room_generator_8cpp_source.html#l00023">SquareRoomGenerator.cpp:23</a></div></div>
+<div class="ttc" id="a_test_generator_8h_html"><div class="ttname"><a href="_test_generator_8h.html">TestGenerator.h</a></div></div>
+<div class="ttc" id="anamespaceolc_html_ae3de4726bf87f2d74693e62d76816db1"><div class="ttname"><a href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a></div><div class="ttdeci">static const Pixel WHITE(255, 255, 255)</div></div>
+<div class="ttc" id="aclass_game_client_html_adfcb979db6333b335dee4e6d785aabcf"><div class="ttname"><a href="class_game_client.html#adfcb979db6333b335dee4e6d785aabcf">GameClient::getInstance</a></div><div class="ttdeci">static GameClient &amp; getInstance()</div><div class="ttdef"><b>Definition:</b> <a href="main_game_8cpp_source.html#l00040">mainGame.cpp:40</a></div></div>
+<div class="ttc" id="anamespaceolc_html_ac1e1d3e39e0b78e9767142c9daeba4ee"><div class="ttname"><a href="namespaceolc.html#ac1e1d3e39e0b78e9767142c9daeba4ee">olc::BLUE</a></div><div class="ttdeci">static const Pixel BLUE(0, 0, 255)</div></div>
+<div class="ttc" id="astructolc_1_1_pixel_html"><div class="ttname"><a href="structolc_1_1_pixel.html">olc::Pixel</a></div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00502">olcPixelGameEngine.h:503</a></div></div>
+<div class="ttc" id="amain_game_8h_html"><div class="ttname"><a href="main_game_8h.html">mainGame.h</a></div></div>
+<div class="ttc" id="aclassolc_1_1_transformed_view_html_a154b34bc81f6e0c67579d2d2ee40b2d1"><div class="ttname"><a href="classolc_1_1_transformed_view.html#a154b34bc81f6e0c67579d2d2ee40b2d1">olc::TransformedView::MoveWorldOffset</a></div><div class="ttdeci">void MoveWorldOffset(const olc::vf2d &amp;vDeltaOffset)</div></div>
+<div class="ttc" id="aclass_game_client_html_acc1e0f1d4836be4a8556289cfdfd4049"><div class="ttname"><a href="class_game_client.html#acc1e0f1d4836be4a8556289cfdfd4049">GameClient::getPlayerEntity</a></div><div class="ttdeci">std::shared_ptr&lt; entities::PlayerEntity &gt; getPlayerEntity()</div><div class="ttdoc">Get the main player.</div><div class="ttdef"><b>Definition:</b> <a href="main_game_8cpp_source.html#l00156">mainGame.cpp:156</a></div></div>
+<div class="ttc" id="a_weapon_8h_html"><div class="ttname"><a href="_weapon_8h.html">Weapon.h</a></div></div>
+<div class="ttc" id="aclass_game_client_html_abf4100b1ee69f4f300346424139f8d93"><div class="ttname"><a href="class_game_client.html#abf4100b1ee69f4f300346424139f8d93">GameClient::operator+=</a></div><div class="ttdeci">GameClient &amp; operator+=(std::shared_ptr&lt; entities::Entity &gt; entity)</div><div class="ttdoc">Add an entity to the world.</div><div class="ttdef"><b>Definition:</b> <a href="main_game_8cpp_source.html#l00150">mainGame.cpp:150</a></div></div>
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/main_game_8h.html b/doxy/html/main_game_8h.html
new file mode 100644
index 0000000000000000000000000000000000000000..5733e42b4ca4a10c4c55218fe1a8fc864c09c882
--- /dev/null
+++ b/doxy/html/main_game_8h.html
@@ -0,0 +1,91 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: C:/Users/kosmx/Documents/GitHub/2d-game/mainGame.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#nested-classes">Classes</a>  </div>
+  <div class="headertitle">
+<div class="title">C:/Users/kosmx/Documents/GitHub/2d-game/mainGame.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &quot;<a class="el" href="olc_pixel_game_engine_8h_source.html">olcPixelGameEngine.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="_dynamic_array_8hpp_source.html">DynamicArray.hpp</a>&quot;</code><br />
+<code>#include &lt;memory&gt;</code><br />
+<code>#include &quot;<a class="el" href="_entity_8h_source.html">Entity.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="_player_entity_8h_source.html">PlayerEntity.h</a>&quot;</code><br />
+</div>
+<p><a href="main_game_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_game_client.html">GameClient</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">The game main class itself. manages the entities, adjust the screen...  <a href="class_game_client.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/main_game_8h_source.html b/doxy/html/main_game_8h_source.html
new file mode 100644
index 0000000000000000000000000000000000000000..848e2332a635335110a9d9bdc53fa6e63ca919bd
--- /dev/null
+++ b/doxy/html/main_game_8h_source.html
@@ -0,0 +1,145 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: C:/Users/kosmx/Documents/GitHub/2d-game/mainGame.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="headertitle">
+<div class="title">C:/Users/kosmx/Documents/GitHub/2d-game/mainGame.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="main_game_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="olc_pixel_game_engine_8h.html">olcPixelGameEngine.h</a>&quot;</span></div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_dynamic_array_8hpp.html">DynamicArray.hpp</a>&quot;</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="preprocessor">#include &lt;memory&gt;</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_entity_8h.html">Entity.h</a>&quot;</span></div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_player_entity_8h.html">PlayerEntity.h</a>&quot;</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160; </div>
+<div class="line"><a name="l00011"></a><span class="lineno"><a class="line" href="class_game_client.html">   11</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_game_client.html">GameClient</a> :</div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;    <span class="keyword">public</span> <a class="code" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;{</div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="keyword">private</span>:</div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;    <span class="keyword">static</span> <a class="code" href="class_game_client.html">GameClient</a>* instance;</div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;    <span class="keyword">static</span> <a class="code" href="class_game_client.html">GameClient</a>&amp; createInstance(<span class="keywordtype">bool</span> debug);</div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;    <span class="comment">//I want it to me a singleton, but I don&#39;t want to let anything init this</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;    <span class="keyword">friend</span> <span class="keywordtype">int</span> <a class="code" href="class_game_client.html#a81ce304348a420752ee080480d2b3095">main</a>(<span class="keywordtype">int</span>, <span class="keywordtype">char</span>* []);</div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;    <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a> viewArea = {-2, -2};</div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;    <span class="comment">//olc::vf2d viewScale = {2, 2};</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;    <span class="keywordtype">bool</span> debug;</div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;    <a class="code" href="classolc_1_1_transformed_view.html">olc::TransformedView</a> scene;</div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;    std::shared_ptr&lt;entities::PlayerEntity&gt; player;</div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;    <span class="keywordtype">void</span> updateWorldOffset(<span class="keywordtype">float</span> dTick);</div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;    <span class="keywordtype">void</span> renderStatus();</div>
+<div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;    <span class="keywordtype">void</span> renderStatusLine(<span class="keywordtype">int</span> i, <span class="keywordtype">float</span> f, <span class="keyword">const</span> <a class="code" href="structolc_1_1_pixel.html">olc::Pixel</a>&amp; pixel);</div>
+<div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;<span class="keyword">public</span>:</div>
+<div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;    <span class="keyword">static</span> <a class="code" href="class_game_client.html">GameClient</a>&amp; <a class="code" href="class_game_client.html#adfcb979db6333b335dee4e6d785aabcf">getInstance</a>();</div>
+<div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160; </div>
+<div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;<span class="comment">// real class stuff</span></div>
+<div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;<span class="keyword">private</span>:</div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;    <a class="code" href="class_dynamic_array.html">DynamicArray&lt;std::shared_ptr&lt;entities::Entity&gt;</a>&gt; <a class="code" href="namespaceentities.html">entities</a>;</div>
+<div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160; </div>
+<div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;    </div>
+<div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;<span class="keyword">public</span>:</div>
+<div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;    <a class="code" href="class_game_client.html#a1324a20c121e201e69391dfe7a08e546">GameClient</a>(<span class="keywordtype">bool</span> debug = <span class="keyword">false</span>);</div>
+<div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160; </div>
+<div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;    <a class="code" href="class_dynamic_array.html">DynamicArray&lt;std::shared_ptr&lt;entities::Entity&gt;</a>&gt;&amp; <a class="code" href="class_game_client.html#a6984da0365fd19c81dbc8907b598bf49">getEntities</a>();</div>
+<div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160; </div>
+<div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="class_game_client.html#a698bb8a4ba91211dc4fcaa4079d8d070">OnUserCreate</a>() <span class="keyword">override</span>;</div>
+<div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="class_game_client.html#ab6e2efe37e67de64062bca35d8a11e2e">OnUserUpdate</a>(<span class="keywordtype">float</span> fElapsedTime) <span class="keyword">override</span>;</div>
+<div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="class_game_client.html#a9af9a685c31d428921b0cf5976a63c14">setDebugMode</a>(<span class="keywordtype">bool</span> bl = <span class="keyword">true</span>);</div>
+<div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="class_game_client.html#ac1df0a856bd945976c06b3977167d4c7">addEntity</a>(std::shared_ptr&lt;entities::Entity&gt;&amp; entity);</div>
+<div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;    <span class="keyword">const</span> <a class="code" href="classolc_1_1_transformed_view.html">olc::TransformedView</a>&amp; <a class="code" href="class_game_client.html#a01a0c559c6cfe63557fa4b5d7aa9e72c">getScene</a>(); <span class="comment">//for some reason</span></div>
+<div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;<span class="comment"></span>    <a class="code" href="class_game_client.html">GameClient</a>&amp; <a class="code" href="class_game_client.html#abf4100b1ee69f4f300346424139f8d93">operator+=</a>(std::shared_ptr&lt;entities::Entity&gt; entity);</div>
+<div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160; </div>
+<div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;    std::shared_ptr&lt;entities::PlayerEntity&gt; <a class="code" href="class_game_client.html#acc1e0f1d4836be4a8556289cfdfd4049">getPlayerEntity</a>();</div>
+<div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;    <span class="comment">//for some reason, probably I won&#39;t need it</span></div>
+<div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;    <span class="comment">//bool OnUserDestroy() override;</span></div>
+<div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;};</div>
+<div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160; </div>
+</div><!-- fragment --></div><!-- contents -->
+<div class="ttc" id="astructolc_1_1v2d__generic_html"><div class="ttname"><a href="structolc_1_1v2d__generic.html">olc::v2d_generic&lt; float &gt;</a></div></div>
+<div class="ttc" id="aolc_pixel_game_engine_8h_html"><div class="ttname"><a href="olc_pixel_game_engine_8h.html">olcPixelGameEngine.h</a></div></div>
+<div class="ttc" id="aclass_game_client_html_ac1df0a856bd945976c06b3977167d4c7"><div class="ttname"><a href="class_game_client.html#ac1df0a856bd945976c06b3977167d4c7">GameClient::addEntity</a></div><div class="ttdeci">void addEntity(std::shared_ptr&lt; entities::Entity &gt; &amp;entity)</div><div class="ttdoc">Add a new entity to the world. you can also use +=.</div><div class="ttdef"><b>Definition:</b> <a href="main_game_8cpp_source.html#l00140">mainGame.cpp:140</a></div></div>
+<div class="ttc" id="aclass_game_client_html_a9af9a685c31d428921b0cf5976a63c14"><div class="ttname"><a href="class_game_client.html#a9af9a685c31d428921b0cf5976a63c14">GameClient::setDebugMode</a></div><div class="ttdeci">void setDebugMode(bool bl=true)</div><div class="ttdoc">turn on debug, caused by an exception</div><div class="ttdef"><b>Definition:</b> <a href="main_game_8cpp_source.html#l00135">mainGame.cpp:135</a></div></div>
+<div class="ttc" id="aclass_game_client_html_a698bb8a4ba91211dc4fcaa4079d8d070"><div class="ttname"><a href="class_game_client.html#a698bb8a4ba91211dc4fcaa4079d8d070">GameClient::OnUserCreate</a></div><div class="ttdeci">bool OnUserCreate() override</div><div class="ttdoc">Create a new game instance.</div><div class="ttdef"><b>Definition:</b> <a href="main_game_8cpp_source.html#l00045">mainGame.cpp:45</a></div></div>
+<div class="ttc" id="aclass_game_client_html_a1324a20c121e201e69391dfe7a08e546"><div class="ttname"><a href="class_game_client.html#a1324a20c121e201e69391dfe7a08e546">GameClient::GameClient</a></div><div class="ttdeci">GameClient(bool debug=false)</div><div class="ttdef"><b>Definition:</b> <a href="main_game_8cpp_source.html#l00023">mainGame.cpp:23</a></div></div>
+<div class="ttc" id="aclass_dynamic_array_html"><div class="ttname"><a href="class_dynamic_array.html">DynamicArray</a></div><div class="ttdoc">Dynamic array, to store entities, have a buffer, to don't tick newly added entities too early.</div><div class="ttdef"><b>Definition:</b> <a href="_dynamic_array_8hpp_source.html#l00014">DynamicArray.hpp:15</a></div></div>
+<div class="ttc" id="aclass_game_client_html_a81ce304348a420752ee080480d2b3095"><div class="ttname"><a href="class_game_client.html#a81ce304348a420752ee080480d2b3095">GameClient::main</a></div><div class="ttdeci">friend int main(int, char *[])</div><div class="ttdef"><b>Definition:</b> <a href="game_8cpp_source.html#l00013">game.cpp:13</a></div></div>
+<div class="ttc" id="aclass_game_client_html_a01a0c559c6cfe63557fa4b5d7aa9e72c"><div class="ttname"><a href="class_game_client.html#a01a0c559c6cfe63557fa4b5d7aa9e72c">GameClient::getScene</a></div><div class="ttdeci">const olc::TransformedView &amp; getScene()</div><div class="ttdoc">Get the screen details. needed in fire direction calculation.</div><div class="ttdef"><b>Definition:</b> <a href="main_game_8cpp_source.html#l00145">mainGame.cpp:145</a></div></div>
+<div class="ttc" id="aclass_game_client_html_a6984da0365fd19c81dbc8907b598bf49"><div class="ttname"><a href="class_game_client.html#a6984da0365fd19c81dbc8907b598bf49">GameClient::getEntities</a></div><div class="ttdeci">DynamicArray&lt; std::shared_ptr&lt; entities::Entity &gt; &gt; &amp; getEntities()</div><div class="ttdef"><b>Definition:</b> <a href="main_game_8cpp_source.html#l00029">mainGame.cpp:29</a></div></div>
+<div class="ttc" id="aclass_game_client_html"><div class="ttname"><a href="class_game_client.html">GameClient</a></div><div class="ttdoc">The game main class itself. manages the entities, adjust the screen...</div><div class="ttdef"><b>Definition:</b> <a href="main_game_8h_source.html#l00011">mainGame.h:13</a></div></div>
+<div class="ttc" id="a_entity_8h_html"><div class="ttname"><a href="_entity_8h.html">Entity.h</a></div></div>
+<div class="ttc" id="aclass_game_client_html_ab6e2efe37e67de64062bca35d8a11e2e"><div class="ttname"><a href="class_game_client.html#ab6e2efe37e67de64062bca35d8a11e2e">GameClient::OnUserUpdate</a></div><div class="ttdeci">bool OnUserUpdate(float fElapsedTime) override</div><div class="ttdoc">Update the game.</div><div class="ttdef"><b>Definition:</b> <a href="main_game_8cpp_source.html#l00089">mainGame.cpp:89</a></div></div>
+<div class="ttc" id="anamespaceentities_html"><div class="ttname"><a href="namespaceentities.html">entities</a></div><div class="ttdef"><b>Definition:</b> <a href="_character_entity_8cpp_source.html#l00005">CharacterEntity.cpp:5</a></div></div>
+<div class="ttc" id="aclassolc_1_1_transformed_view_html"><div class="ttname"><a href="classolc_1_1_transformed_view.html">olc::TransformedView</a></div><div class="ttdef"><b>Definition:</b> <a href="olc_p_g_e_x___transformed_view_8h_source.html#l00079">olcPGEX_TransformedView.h:80</a></div></div>
+<div class="ttc" id="a_dynamic_array_8hpp_html"><div class="ttname"><a href="_dynamic_array_8hpp.html">DynamicArray.hpp</a></div></div>
+<div class="ttc" id="aclassolc_1_1_pixel_game_engine_html"><div class="ttname"><a href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00855">olcPixelGameEngine.h:856</a></div></div>
+<div class="ttc" id="aclass_game_client_html_adfcb979db6333b335dee4e6d785aabcf"><div class="ttname"><a href="class_game_client.html#adfcb979db6333b335dee4e6d785aabcf">GameClient::getInstance</a></div><div class="ttdeci">static GameClient &amp; getInstance()</div><div class="ttdef"><b>Definition:</b> <a href="main_game_8cpp_source.html#l00040">mainGame.cpp:40</a></div></div>
+<div class="ttc" id="a_player_entity_8h_html"><div class="ttname"><a href="_player_entity_8h.html">PlayerEntity.h</a></div></div>
+<div class="ttc" id="astructolc_1_1_pixel_html"><div class="ttname"><a href="structolc_1_1_pixel.html">olc::Pixel</a></div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00502">olcPixelGameEngine.h:503</a></div></div>
+<div class="ttc" id="aclass_game_client_html_acc1e0f1d4836be4a8556289cfdfd4049"><div class="ttname"><a href="class_game_client.html#acc1e0f1d4836be4a8556289cfdfd4049">GameClient::getPlayerEntity</a></div><div class="ttdeci">std::shared_ptr&lt; entities::PlayerEntity &gt; getPlayerEntity()</div><div class="ttdoc">Get the main player.</div><div class="ttdef"><b>Definition:</b> <a href="main_game_8cpp_source.html#l00156">mainGame.cpp:156</a></div></div>
+<div class="ttc" id="aclass_game_client_html_abf4100b1ee69f4f300346424139f8d93"><div class="ttname"><a href="class_game_client.html#abf4100b1ee69f4f300346424139f8d93">GameClient::operator+=</a></div><div class="ttdeci">GameClient &amp; operator+=(std::shared_ptr&lt; entities::Entity &gt; entity)</div><div class="ttdoc">Add an entity to the world.</div><div class="ttdef"><b>Definition:</b> <a href="main_game_8cpp_source.html#l00150">mainGame.cpp:150</a></div></div>
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/md__c___users_kosmx__documents__git_hub_2d-game__r_e_a_d_m_e.html b/doxy/html/md__c___users_kosmx__documents__git_hub_2d-game__r_e_a_d_m_e.html
new file mode 100644
index 0000000000000000000000000000000000000000..618bea19fdfeb7843e57a4cfeb9514a28feba780
--- /dev/null
+++ b/doxy/html/md__c___users_kosmx__documents__git_hub_2d-game__r_e_a_d_m_e.html
@@ -0,0 +1,78 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: :D</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="PageDoc"><div class="header">
+  <div class="headertitle">
+<div class="title">:D </div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><h1><a class="anchor" id="autotoc_md1"></a>
+It's not a bug. It's an undocumented feature</h1>
+</div></div><!-- contents -->
+</div><!-- PageDoc -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/md__c___users_kosmx__documents__git_hub_2d-game__text.html b/doxy/html/md__c___users_kosmx__documents__git_hub_2d-game__text.html
new file mode 100644
index 0000000000000000000000000000000000000000..6cbcde12e238cc895803ab0fbd065728d47c029d
--- /dev/null
+++ b/doxy/html/md__c___users_kosmx__documents__git_hub_2d-game__text.html
@@ -0,0 +1,78 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: Text</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="PageDoc"><div class="header">
+  <div class="headertitle">
+<div class="title">Text </div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><p>I know, correctly it is <code>weapon</code></p>
+<p>if you don't understand this, open the porject in MS Visual Studio. </p>
+</div></div><!-- contents -->
+</div><!-- PageDoc -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/menu.js b/doxy/html/menu.js
new file mode 100644
index 0000000000000000000000000000000000000000..2fe2214f26aafa79ae0a11cecc6f127d13ff9eb9
--- /dev/null
+++ b/doxy/html/menu.js
@@ -0,0 +1,51 @@
+/*
+ @licstart  The following is the entire license notice for the JavaScript code in this file.
+
+ The MIT License (MIT)
+
+ Copyright (C) 1997-2020 by Dimitri van Heesch
+
+ Permission is hereby granted, free of charge, to any person obtaining a copy of this software
+ and associated documentation files (the "Software"), to deal in the Software without restriction,
+ including without limitation the rights to use, copy, modify, merge, publish, distribute,
+ sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
+ furnished to do so, subject to the following conditions:
+
+ The above copyright notice and this permission notice shall be included in all copies or
+ substantial portions of the Software.
+
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
+ BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+ DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+ @licend  The above is the entire license notice for the JavaScript code in this file
+ */
+function initMenu(relPath,searchEnabled,serverSide,searchPage,search) {
+  function makeTree(data,relPath) {
+    var result='';
+    if ('children' in data) {
+      result+='<ul>';
+      for (var i in data.children) {
+        result+='<li><a href="'+relPath+data.children[i].url+'">'+
+                                data.children[i].text+'</a>'+
+                                makeTree(data.children[i],relPath)+'</li>';
+      }
+      result+='</ul>';
+    }
+    return result;
+  }
+
+  $('#main-nav').append(makeTree(menudata,relPath));
+  $('#main-nav').children(':first').addClass('sm sm-dox').attr('id','main-menu');
+  if (searchEnabled) {
+    if (serverSide) {
+      $('#main-menu').append('<li style="float:right"><div id="MSearchBox" class="MSearchBoxInactive"><div class="left"><form id="FSearchBox" action="'+relPath+searchPage+'" method="get"><img id="MSearchSelect" src="'+relPath+'search/mag.svg" alt=""/><input type="text" id="MSearchField" name="query" value="'+search+'" size="20" accesskey="S" onfocus="searchBox.OnSearchFieldFocus(true)" onblur="searchBox.OnSearchFieldFocus(false)"></form></div><div class="right"></div></div></li>');
+    } else {
+      $('#main-menu').append('<li style="float:right"><div id="MSearchBox" class="MSearchBoxInactive"><span class="left"><img id="MSearchSelect" src="'+relPath+'search/mag_sel.svg" onmouseover="return searchBox.OnSearchSelectShow()" onmouseout="return searchBox.OnSearchSelectHide()" alt=""/><input type="text" id="MSearchField" value="'+search+'" accesskey="S" onfocus="searchBox.OnSearchFieldFocus(true)" onblur="searchBox.OnSearchFieldFocus(false)" onkeyup="searchBox.OnSearchFieldChange(event)"/></span><span class="right"><a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="'+relPath+'search/close.svg" alt=""/></a></span></div></li>');
+    }
+  }
+  $('#main-menu').smartmenus();
+}
+/* @license-end */
diff --git a/doxy/html/menudata.js b/doxy/html/menudata.js
new file mode 100644
index 0000000000000000000000000000000000000000..e37102b3e8d7d81479bb0d0c9d65285d0930bc3d
--- /dev/null
+++ b/doxy/html/menudata.js
@@ -0,0 +1,186 @@
+/*
+ @licstart  The following is the entire license notice for the JavaScript code in this file.
+
+ The MIT License (MIT)
+
+ Copyright (C) 1997-2020 by Dimitri van Heesch
+
+ Permission is hereby granted, free of charge, to any person obtaining a copy of this software
+ and associated documentation files (the "Software"), to deal in the Software without restriction,
+ including without limitation the rights to use, copy, modify, merge, publish, distribute,
+ sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
+ furnished to do so, subject to the following conditions:
+
+ The above copyright notice and this permission notice shall be included in all copies or
+ substantial portions of the Software.
+
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
+ BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+ DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+ @licend  The above is the entire license notice for the JavaScript code in this file
+*/
+var menudata={children:[
+{text:"Main Page",url:"index.html"},
+{text:"Related Pages",url:"pages.html"},
+{text:"Namespaces",url:"namespaces.html",children:[
+{text:"Namespace List",url:"namespaces.html"},
+{text:"Namespace Members",url:"namespacemembers.html",children:[
+{text:"All",url:"namespacemembers.html",children:[
+{text:"a",url:"namespacemembers.html#index_a"},
+{text:"b",url:"namespacemembers.html#index_b"},
+{text:"c",url:"namespacemembers.html#index_c"},
+{text:"d",url:"namespacemembers.html#index_d"},
+{text:"e",url:"namespacemembers.html#index_e"},
+{text:"f",url:"namespacemembers.html#index_f"},
+{text:"g",url:"namespacemembers.html#index_g"},
+{text:"h",url:"namespacemembers.html#index_h"},
+{text:"i",url:"namespacemembers.html#index_i"},
+{text:"j",url:"namespacemembers.html#index_j"},
+{text:"k",url:"namespacemembers.html#index_k"},
+{text:"l",url:"namespacemembers.html#index_l"},
+{text:"m",url:"namespacemembers.html#index_m"},
+{text:"n",url:"namespacemembers.html#index_n"},
+{text:"o",url:"namespacemembers.html#index_o"},
+{text:"p",url:"namespacemembers.html#index_p"},
+{text:"q",url:"namespacemembers.html#index_q"},
+{text:"r",url:"namespacemembers.html#index_r"},
+{text:"s",url:"namespacemembers.html#index_s"},
+{text:"t",url:"namespacemembers.html#index_t"},
+{text:"u",url:"namespacemembers.html#index_u"},
+{text:"v",url:"namespacemembers.html#index_v"},
+{text:"w",url:"namespacemembers.html#index_w"},
+{text:"x",url:"namespacemembers.html#index_x"},
+{text:"y",url:"namespacemembers.html#index_y"},
+{text:"z",url:"namespacemembers.html#index_z"}]},
+{text:"Functions",url:"namespacemembers_func.html",children:[
+{text:"b",url:"namespacemembers_func.html#index_b"},
+{text:"c",url:"namespacemembers_func.html#index_c"},
+{text:"d",url:"namespacemembers_func.html#index_d"},
+{text:"g",url:"namespacemembers_func.html#index_g"},
+{text:"m",url:"namespacemembers_func.html#index_m"},
+{text:"o",url:"namespacemembers_func.html#index_o"},
+{text:"p",url:"namespacemembers_func.html#index_p"},
+{text:"r",url:"namespacemembers_func.html#index_r"},
+{text:"s",url:"namespacemembers_func.html#index_s"},
+{text:"v",url:"namespacemembers_func.html#index_v"},
+{text:"w",url:"namespacemembers_func.html#index_w"},
+{text:"y",url:"namespacemembers_func.html#index_y"}]},
+{text:"Variables",url:"namespacemembers_vars.html"},
+{text:"Typedefs",url:"namespacemembers_type.html"},
+{text:"Enumerations",url:"namespacemembers_enum.html"},
+{text:"Enumerator",url:"namespacemembers_eval.html",children:[
+{text:"a",url:"namespacemembers_eval.html#index_a"},
+{text:"b",url:"namespacemembers_eval.html#index_b"},
+{text:"c",url:"namespacemembers_eval.html#index_c"},
+{text:"d",url:"namespacemembers_eval.html#index_d"},
+{text:"e",url:"namespacemembers_eval.html#index_e"},
+{text:"f",url:"namespacemembers_eval.html#index_f"},
+{text:"g",url:"namespacemembers_eval.html#index_g"},
+{text:"h",url:"namespacemembers_eval.html#index_h"},
+{text:"i",url:"namespacemembers_eval.html#index_i"},
+{text:"j",url:"namespacemembers_eval.html#index_j"},
+{text:"k",url:"namespacemembers_eval.html#index_k"},
+{text:"l",url:"namespacemembers_eval.html#index_l"},
+{text:"m",url:"namespacemembers_eval.html#index_m"},
+{text:"n",url:"namespacemembers_eval.html#index_n"},
+{text:"o",url:"namespacemembers_eval.html#index_o"},
+{text:"p",url:"namespacemembers_eval.html#index_p"},
+{text:"q",url:"namespacemembers_eval.html#index_q"},
+{text:"r",url:"namespacemembers_eval.html#index_r"},
+{text:"s",url:"namespacemembers_eval.html#index_s"},
+{text:"t",url:"namespacemembers_eval.html#index_t"},
+{text:"u",url:"namespacemembers_eval.html#index_u"},
+{text:"v",url:"namespacemembers_eval.html#index_v"},
+{text:"w",url:"namespacemembers_eval.html#index_w"},
+{text:"x",url:"namespacemembers_eval.html#index_x"},
+{text:"y",url:"namespacemembers_eval.html#index_y"},
+{text:"z",url:"namespacemembers_eval.html#index_z"}]}]}]},
+{text:"Classes",url:"annotated.html",children:[
+{text:"Class List",url:"annotated.html"},
+{text:"Class Index",url:"classes.html"},
+{text:"Class Hierarchy",url:"hierarchy.html"},
+{text:"Class Members",url:"functions.html",children:[
+{text:"All",url:"functions.html",children:[
+{text:"a",url:"functions.html#index_a"},
+{text:"b",url:"functions_b.html#index_b"},
+{text:"c",url:"functions_c.html#index_c"},
+{text:"d",url:"functions_d.html#index_d"},
+{text:"e",url:"functions_e.html#index_e"},
+{text:"f",url:"functions_f.html#index_f"},
+{text:"g",url:"functions_g.html#index_g"},
+{text:"h",url:"functions_h.html#index_h"},
+{text:"i",url:"functions_i.html#index_i"},
+{text:"l",url:"functions_l.html#index_l"},
+{text:"m",url:"functions_m.html#index_m"},
+{text:"n",url:"functions_n.html#index_n"},
+{text:"o",url:"functions_o.html#index_o"},
+{text:"p",url:"functions_p.html#index_p"},
+{text:"r",url:"functions_r.html#index_r"},
+{text:"s",url:"functions_s.html#index_s"},
+{text:"t",url:"functions_t.html#index_t"},
+{text:"u",url:"functions_u.html#index_u"},
+{text:"v",url:"functions_v.html#index_v"},
+{text:"w",url:"functions_w.html#index_w"},
+{text:"x",url:"functions_x.html#index_x"},
+{text:"y",url:"functions_y.html#index_y"},
+{text:"z",url:"functions_z.html#index_z"},
+{text:"~",url:"functions_~.html#index__7E"}]},
+{text:"Functions",url:"functions_func.html",children:[
+{text:"a",url:"functions_func.html#index_a"},
+{text:"b",url:"functions_func_b.html#index_b"},
+{text:"c",url:"functions_func_c.html#index_c"},
+{text:"d",url:"functions_func_d.html#index_d"},
+{text:"e",url:"functions_func_e.html#index_e"},
+{text:"f",url:"functions_func_f.html#index_f"},
+{text:"g",url:"functions_func_g.html#index_g"},
+{text:"h",url:"functions_func_h.html#index_h"},
+{text:"i",url:"functions_func_i.html#index_i"},
+{text:"l",url:"functions_func_l.html#index_l"},
+{text:"m",url:"functions_func_m.html#index_m"},
+{text:"n",url:"functions_func_n.html#index_n"},
+{text:"o",url:"functions_func_o.html#index_o"},
+{text:"p",url:"functions_func_p.html#index_p"},
+{text:"r",url:"functions_func_r.html#index_r"},
+{text:"s",url:"functions_func_s.html#index_s"},
+{text:"t",url:"functions_func_t.html#index_t"},
+{text:"u",url:"functions_func_u.html#index_u"},
+{text:"v",url:"functions_func_v.html#index_v"},
+{text:"w",url:"functions_func_w.html#index_w"},
+{text:"z",url:"functions_func_z.html#index_z"},
+{text:"~",url:"functions_func_~.html#index__7E"}]},
+{text:"Variables",url:"functions_vars.html",children:[
+{text:"a",url:"functions_vars.html#index_a"},
+{text:"b",url:"functions_vars.html#index_b"},
+{text:"c",url:"functions_vars.html#index_c"},
+{text:"d",url:"functions_vars.html#index_d"},
+{text:"e",url:"functions_vars.html#index_e"},
+{text:"f",url:"functions_vars.html#index_f"},
+{text:"g",url:"functions_vars.html#index_g"},
+{text:"h",url:"functions_vars.html#index_h"},
+{text:"i",url:"functions_vars.html#index_i"},
+{text:"l",url:"functions_vars.html#index_l"},
+{text:"m",url:"functions_vars.html#index_m"},
+{text:"n",url:"functions_vars.html#index_n"},
+{text:"o",url:"functions_vars.html#index_o"},
+{text:"p",url:"functions_vars.html#index_p"},
+{text:"r",url:"functions_vars.html#index_r"},
+{text:"s",url:"functions_vars.html#index_s"},
+{text:"t",url:"functions_vars.html#index_t"},
+{text:"u",url:"functions_vars.html#index_u"},
+{text:"v",url:"functions_vars.html#index_v"},
+{text:"w",url:"functions_vars.html#index_w"},
+{text:"x",url:"functions_vars.html#index_x"},
+{text:"y",url:"functions_vars.html#index_y"}]},
+{text:"Enumerations",url:"functions_enum.html"},
+{text:"Enumerator",url:"functions_eval.html"},
+{text:"Related Functions",url:"functions_rela.html"}]}]},
+{text:"Files",url:"files.html",children:[
+{text:"File List",url:"files.html"},
+{text:"File Members",url:"globals.html",children:[
+{text:"All",url:"globals.html"},
+{text:"Functions",url:"globals_func.html"},
+{text:"Variables",url:"globals_vars.html"},
+{text:"Macros",url:"globals_defs.html"}]}]}]}
diff --git a/doxy/html/namespaceentities.html b/doxy/html/namespaceentities.html
new file mode 100644
index 0000000000000000000000000000000000000000..5d0c4760e439739a8c7e72f01e98b90260c86eda
--- /dev/null
+++ b/doxy/html/namespaceentities.html
@@ -0,0 +1,108 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: entities Namespace Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#nested-classes">Classes</a>  </div>
+  <div class="headertitle">
+<div class="title">entities Namespace Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_character_entity.html">CharacterEntity</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A player or an enemy.  <a href="classentities_1_1_character_entity.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_dummy_entity.html">DummyEntity</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A test/dummy entity. it can't do anything... no, it can die.  <a href="classentities_1_1_dummy_entity.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity.html">Entity</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Every object, what can be on the map.  <a href="classentities_1_1_entity.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_entity_with_a_i.html">EntityWithAI</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">The enemies. go after the player, and try to kill it.  <a href="classentities_1_1_entity_with_a_i.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_explosive_projectile.html">ExplosiveProjectile</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A projectile, that explodes.  <a href="classentities_1_1_explosive_projectile.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_living_entity.html">LivingEntity</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Any moving animal or player.  <a href="classentities_1_1_living_entity.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_player_entity.html">PlayerEntity</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">You, or the player.  <a href="classentities_1_1_player_entity.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_projectile_entity.html">ProjectileEntity</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A projectile, a bullet.  <a href="classentities_1_1_projectile_entity.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentities_1_1_wall_entity.html">WallEntity</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Just a stupid wall, it doesn't do much, can't be killed...  <a href="classentities_1_1_wall_entity.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/namespacemembers.html b/doxy/html/namespacemembers.html
new file mode 100644
index 0000000000000000000000000000000000000000..ef52d767cf5047d2e4e8d2bbad75424087981fa7
--- /dev/null
+++ b/doxy/html/namespacemembers.html
@@ -0,0 +1,634 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: Namespace Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<div class="textblock">Here is a list of all namespace members with links to the namespace documentation for each member:</div>
+
+<h3><a id="index_a"></a>- a -</h3><ul>
+<li>A
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a3e1af6612f2964145f438bb63073098d">olc</a>
+</li>
+</ul>
+
+
+<h3><a id="index_b"></a>- b -</h3><ul>
+<li>B
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a8baf1c6fa76f36bae92c12df88f4c84d">olc</a>
+</li>
+<li>BACK
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a390af039d8a8c4ab71787f001f810521">olc</a>
+</li>
+<li>BLACK()
+: <a class="el" href="namespaceolc.html#a183de1c471cfd6f45980bc9c2c58ed9d">olc</a>
+</li>
+<li>BLANK()
+: <a class="el" href="namespaceolc.html#ac940e7f6502cbced06f26b4d13349166">olc</a>
+</li>
+<li>BLUE()
+: <a class="el" href="namespaceolc.html#ac1e1d3e39e0b78e9767142c9daeba4ee">olc</a>
+</li>
+<li>bow()
+: <a class="el" href="namespaceweapons_1_1textures.html#ae84acdfc1384af6d4e1f64c1883a8784">weapons::textures</a>
+</li>
+</ul>
+
+
+<h3><a id="index_c"></a>- c -</h3><ul>
+<li>C
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7aaa5fe91e0948a39a142504c1f9067549">olc</a>
+</li>
+<li>CAPS_LOCK
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a523c88e17275650861203e32067dde01">olc</a>
+</li>
+<li>COMMA
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ae2fab0c220f54cd28729c9340951ecb4">olc</a>
+</li>
+<li>crystalBow()
+: <a class="el" href="namespaceweapons_1_1textures.html#a2f33f64b881c4028086431f8ba0fe1c5">weapons::textures</a>
+</li>
+<li>CTRL
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ae7e6e69075c36b0e44309aae888b86dc">olc</a>
+</li>
+<li>CYAN()
+: <a class="el" href="namespaceolc.html#a43ffa41e9a4a260b86da82b823e6a252">olc</a>
+</li>
+</ul>
+
+
+<h3><a id="index_d"></a>- d -</h3><ul>
+<li>D
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a7323455add036f066f8b23546f0c37bb">olc</a>
+</li>
+<li>DARK_BLUE()
+: <a class="el" href="namespaceolc.html#ac6e041f71287438da8b9145758c4fe63">olc</a>
+</li>
+<li>DARK_CYAN()
+: <a class="el" href="namespaceolc.html#aa0824f5fdd85c58712495a7bc0de191e">olc</a>
+</li>
+<li>DARK_GREEN()
+: <a class="el" href="namespaceolc.html#ac192218acb2f30c4c3748485dd5e4ba0">olc</a>
+</li>
+<li>DARK_GREY()
+: <a class="el" href="namespaceolc.html#a7208a6ce62e94eca5b0ba80f7c2f5e30">olc</a>
+</li>
+<li>DARK_MAGENTA()
+: <a class="el" href="namespaceolc.html#abad91f58a178a173f76ce7d9f9aa99c4">olc</a>
+</li>
+<li>DARK_RED()
+: <a class="el" href="namespaceolc.html#a8265396ef812918ca95d2e7aa39c14cc">olc</a>
+</li>
+<li>DARK_YELLOW()
+: <a class="el" href="namespaceolc.html#a379f9d3a40edb1700299c031cd0b6a08">olc</a>
+</li>
+<li>DecalMode
+: <a class="el" href="namespaceolc.html#aeda642f63378f868193c28e8613138ca">olc</a>
+</li>
+<li>DEL
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a5a979509d792ab38404b7a2aca12c981">olc</a>
+</li>
+<li>DOWN
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a506f2ec576fcd3a8fabd37461bba83f8">olc</a>
+</li>
+</ul>
+
+
+<h3><a id="index_e"></a>- e -</h3><ul>
+<li>E
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ad29058aa6514f4f9dcdefdba93adc8ec">olc</a>
+</li>
+<li>END
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a53394a407c13bf8192b2946607d27a0f">olc</a>
+</li>
+<li>ENTER
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a31321cae06dfe0989acbbe94c5272b33">olc</a>
+</li>
+<li>ENUM_END
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a35430b793d6fae00ed8b060cb0accf32">olc</a>
+</li>
+<li>EQUALS
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7aa82c0ef0b75db6208407e90f6f77f002">olc</a>
+</li>
+<li>ESCAPE
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ac58fbe549b8c1a668c42a17d9e572b0f">olc</a>
+</li>
+</ul>
+
+
+<h3><a id="index_f"></a>- f -</h3><ul>
+<li>F
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a614698cb99af6a9effa5d7ce88b2c674">olc</a>
+</li>
+<li>F1
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a17a119da4c7fd21cd061972ac8f8029a">olc</a>
+</li>
+<li>F10
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7abe90f6618beb39117690b93a5c9d8ccb">olc</a>
+</li>
+<li>F11
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7aba366840d455651d4cedc7f7ee4c770b">olc</a>
+</li>
+<li>F12
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a9bc869632cc0095b7d8e456efd571969">olc</a>
+</li>
+<li>F2
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a207c1404adcacfadf941ffc681485026">olc</a>
+</li>
+<li>F3
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a573a484680114e221c1a3ecd8307d61a">olc</a>
+</li>
+<li>F4
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a3c808be2b8b226138090bb3884bdc52b">olc</a>
+</li>
+<li>F5
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ab9dd7de33e89c10afa7947bc5ff6fdea">olc</a>
+</li>
+<li>F6
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a12e4309f479cd3e34476ef3be7986847">olc</a>
+</li>
+<li>F7
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ac955ad4fdd41f4d3600b29da016fdf36">olc</a>
+</li>
+<li>F8
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ab9ff66b449c18ecdb5b83a2e055e393b">olc</a>
+</li>
+<li>F9
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a2f2949bdd6d44b3c918531ebc30d8186">olc</a>
+</li>
+<li>FAIL
+: <a class="el" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87baadc8ac6e9769db5bb290fbf5f8284dbf">olc</a>
+</li>
+</ul>
+
+
+<h3><a id="index_g"></a>- g -</h3><ul>
+<li>G
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a1a7a9ef9ded3ee4bb7b7e4fbc69ae4b8">olc</a>
+</li>
+<li>glitchGun()
+: <a class="el" href="namespaceweapons_1_1textures.html#ad763a6f6186015fe93af0a1e5088f026">weapons::textures</a>
+</li>
+<li>GREEN()
+: <a class="el" href="namespaceolc.html#a32b98884f548bf731eab3225557ebe8c">olc</a>
+</li>
+</ul>
+
+
+<h3><a id="index_h"></a>- h -</h3><ul>
+<li>H
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a224c0773e09bdb7fb13683fbb4eeee1a">olc</a>
+</li>
+<li>HOME
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a29419f86c551b623c828f9530f301389">olc</a>
+</li>
+</ul>
+
+
+<h3><a id="index_i"></a>- i -</h3><ul>
+<li>I
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ac242ddce5db0d462674ead1db3956a19">olc</a>
+</li>
+<li>INS
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a691b8388214af88a7794c43d31fbe16a">olc</a>
+</li>
+</ul>
+
+
+<h3><a id="index_j"></a>- j -</h3><ul>
+<li>J
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a476769e330b87f2fb75aaa684c2f6373">olc</a>
+</li>
+</ul>
+
+
+<h3><a id="index_k"></a>- k -</h3><ul>
+<li>K
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a136309f07b14d70a8561a69ca563bab7">olc</a>
+</li>
+<li>K0
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a2dd03c94eccd6d1259d4b2b51b7f85a7">olc</a>
+</li>
+<li>K1
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a353892e1e3473d0a6d3427dd86080506">olc</a>
+</li>
+<li>K2
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ab3b331dc3158175e2c567f7ebdf9fa75">olc</a>
+</li>
+<li>K3
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7aba2ad21d300fb113ff4e82665800cf75">olc</a>
+</li>
+<li>K4
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7aadd3a981032ec5fc07440dd0dbd1a3b3">olc</a>
+</li>
+<li>K5
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a353906757178b0d48008b62cdca75332">olc</a>
+</li>
+<li>K6
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a81afecef4b483614604bfc5341d8a2d5">olc</a>
+</li>
+<li>K7
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a89291a8afb7ac7b481090dc97f643263">olc</a>
+</li>
+<li>K8
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a636f4e49257a6476ad0aab590318672f">olc</a>
+</li>
+<li>K9
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a949dddf48734610228c20566a33912bc">olc</a>
+</li>
+<li>Key
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7">olc</a>
+</li>
+</ul>
+
+
+<h3><a id="index_l"></a>- l -</h3><ul>
+<li>L
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a4d809048542b770e810d48919c8f8500">olc</a>
+</li>
+<li>LEFT
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a4da01be8126ba4113717cc6385ad22d2">olc</a>
+</li>
+</ul>
+
+
+<h3><a id="index_m"></a>- m -</h3><ul>
+<li>M
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7afda4a6ac36e1870cd31522ac4e40a113">olc</a>
+</li>
+<li>MAGENTA()
+: <a class="el" href="namespaceolc.html#adc292fdc3c4d2a03e8c6bbad1853b727">olc</a>
+</li>
+<li>minigun()
+: <a class="el" href="namespaceweapons_1_1textures.html#a51f0963cb1171938daa3a1e894e5305b">weapons::textures</a>
+</li>
+<li>MINUS
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a4b3a1d83a513de0e2c3c8ba2a8a5fd2d">olc</a>
+</li>
+</ul>
+
+
+<h3><a id="index_n"></a>- n -</h3><ul>
+<li>N
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ab9b5b3e2b7e4f47de4a8d84e03cd5911">olc</a>
+</li>
+<li>nDefaultAlpha
+: <a class="el" href="namespaceolc.html#adede7d1156ab9d8ffdc3e9048f0f364b">olc</a>
+</li>
+<li>nDefaultPixel
+: <a class="el" href="namespaceolc.html#a10bbdc57cc3fecc7b80ba428eb7494d0">olc</a>
+</li>
+<li>nMouseButtons
+: <a class="el" href="namespaceolc.html#abf7dfc35dd1d895f33d3635831953e38">olc</a>
+</li>
+<li>NO_FILE
+: <a class="el" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87babfe0b9ad99c942b01b1ee61404f559b5">olc</a>
+</li>
+<li>NONE
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a569010ded143bbdfd1b2dc8e82327b45">olc</a>
+</li>
+<li>NP0
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a16054c3b1419b9679d95ac70ef262666">olc</a>
+</li>
+<li>NP1
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a96c49dba90b7ecdfcf88e18c2842a964">olc</a>
+</li>
+<li>NP2
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a7ca6517890a3566dbf758618f9c7690f">olc</a>
+</li>
+<li>NP3
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7aab84341adb43a72b48030189f9919360">olc</a>
+</li>
+<li>NP4
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a443551e4895cf1d2be984eba0bd7098e">olc</a>
+</li>
+<li>NP5
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a0ba7e1a6dbc9d1291a40172a09bb49a4">olc</a>
+</li>
+<li>NP6
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ad6aae0ca10843b8046ee0186af4e42f9">olc</a>
+</li>
+<li>NP7
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7afee25adbffa6e8fc092d52193195182f">olc</a>
+</li>
+<li>NP8
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a468bb1704a74fc6e42d28e7bee8ecb51">olc</a>
+</li>
+<li>NP9
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a53987c7c18a4a4479c4e1ff7f65c414e">olc</a>
+</li>
+<li>NP_ADD
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7af15830fd3562b144e15a9d8abeb6c118">olc</a>
+</li>
+<li>NP_DECIMAL
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a2c21f93f355bf0a6baa7e205acd86b50">olc</a>
+</li>
+<li>NP_DIV
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7aee5afd77eb82eb3111195ee300ff3714">olc</a>
+</li>
+<li>NP_MUL
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ae2ce826d1d0de6429f9f28a19d11edfb">olc</a>
+</li>
+<li>NP_SUB
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7aade223a1643f8d607eb44fff1bbaae8e">olc</a>
+</li>
+</ul>
+
+
+<h3><a id="index_o"></a>- o -</h3><ul>
+<li>O
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a7f95c3a8701b46a2cca143078d7e3aea">olc</a>
+</li>
+<li>OEM_1
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a3a044efaf7d74df21e84a29063006eae">olc</a>
+</li>
+<li>OEM_2
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ad29833dd46d756ecf0e9d477d0845450">olc</a>
+</li>
+<li>OEM_3
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7abb25924adf005b39efaef185f332a3ad">olc</a>
+</li>
+<li>OEM_4
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7aa09e2508e2f2fd372d3e37ebdfce6814">olc</a>
+</li>
+<li>OEM_5
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ad7e69e28cedaf91718aa4801d5a3bdb7">olc</a>
+</li>
+<li>OEM_6
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7af2cec59ecc924be0b636e5b767abf29f">olc</a>
+</li>
+<li>OEM_7
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a3dada7cdf09fb367c10c650e9bce7bfa">olc</a>
+</li>
+<li>OEM_8
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ab719317cfd8ac665e8cc2f420f74b46a">olc</a>
+</li>
+<li>OK
+: <a class="el" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87ba0178b5f8abe39121e6f14d3c6c093a82">olc</a>
+</li>
+<li>operator*()
+: <a class="el" href="namespaceolc.html#a0cb5b54cc54cf0c92741da285010e1e5">olc</a>
+</li>
+<li>operator/()
+: <a class="el" href="namespaceolc.html#a302501c3eb64a99ffa93feac2cc46115">olc</a>
+</li>
+<li>operator&lt;()
+: <a class="el" href="namespaceolc.html#a2831a8757172243381b08adf69e91e0a">olc</a>
+</li>
+<li>operator&gt;()
+: <a class="el" href="namespaceolc.html#a34519a6f9006c6c4854bbe762d490900">olc</a>
+</li>
+</ul>
+
+
+<h3><a id="index_p"></a>- p -</h3><ul>
+<li>P
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a2af805290f6ef4b2de028b868debe170">olc</a>
+</li>
+<li>PAUSE
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a0bc227b9b4a43118d7500e8195806d74">olc</a>
+</li>
+<li>PERIOD
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a1adffcecf8c735b404ac6eedf220ae5a">olc</a>
+</li>
+<li>PGDN
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7aae334e3943922c2b16842afc5306a1e9">olc</a>
+</li>
+<li>PGUP
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a0bab26868b97eab537e7cad879d4b9a3">olc</a>
+</li>
+<li>photoMachine()
+: <a class="el" href="namespaceweapons_1_1textures.html#ac65344c207a89b29b15e56e01fc3e16a">weapons::textures</a>
+</li>
+<li>pickaxe()
+: <a class="el" href="namespaceweapons_1_1textures.html#a25cf2019ff68d29442fa3554a5862c1e">weapons::textures</a>
+</li>
+<li>pistol()
+: <a class="el" href="namespaceweapons_1_1textures.html#a8a733a84e93619430cfdaa2306a6a7ec">weapons::textures</a>
+</li>
+<li>PixelF()
+: <a class="el" href="namespaceolc.html#a06c9f23f2e370e7afe71788427a820fd">olc</a>
+</li>
+<li>PixelLerp()
+: <a class="el" href="namespaceolc.html#a2069e5cf447f5dd311c680c9463f9c42">olc</a>
+</li>
+</ul>
+
+
+<h3><a id="index_q"></a>- q -</h3><ul>
+<li>Q
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a6d49ec75b05a97e8714ac8c244ad29a8">olc</a>
+</li>
+</ul>
+
+
+<h3><a id="index_r"></a>- r -</h3><ul>
+<li>R
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a7417555746b2b1026b8ba65912817111">olc</a>
+</li>
+<li>rcode
+: <a class="el" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87b">olc</a>
+</li>
+<li>RED()
+: <a class="el" href="namespaceolc.html#ad4579f7eb75a257d76bb657a268f0a8d">olc</a>
+</li>
+<li>RETURN
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a4f04a0bac23ee4f7b875d0328f29df27">olc</a>
+</li>
+<li>rifle()
+: <a class="el" href="namespaceweapons_1_1textures.html#a7ae588b12d703b44d1de1abb05d9f672">weapons::textures</a>
+</li>
+<li>RIGHT
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a58e7b18972e446a03ce5ce915bc2d34d">olc</a>
+</li>
+</ul>
+
+
+<h3><a id="index_s"></a>- s -</h3><ul>
+<li>S
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a050dfda2928d980787eeebcaaa4e6fa7">olc</a>
+</li>
+<li>SCROLL
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a44cf52f457ad06d45cd947c72c291ccc">olc</a>
+</li>
+<li>scythe()
+: <a class="el" href="namespaceweapons_1_1textures.html#ac492d02548352205657c28cd311d997b">weapons::textures</a>
+</li>
+<li>SHIFT
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a4cd994e0e2285e9b52e129f74c84aa0b">olc</a>
+</li>
+<li>shovel()
+: <a class="el" href="namespaceweapons_1_1textures.html#affedf59c6526368e5358afc383f15022">weapons::textures</a>
+</li>
+<li>SPACE
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a925d9a708542cd050a0b4f87bd7ba297">olc</a>
+</li>
+<li>spear()
+: <a class="el" href="namespaceweapons_1_1textures.html#a9734b7f6d13a24af2d62e74e6cd9dfde">weapons::textures</a>
+</li>
+<li>sword1()
+: <a class="el" href="namespaceweapons_1_1textures.html#a2a490d5d835f3ea3a9b07d2a9efb1c36">weapons::textures</a>
+</li>
+<li>sword2()
+: <a class="el" href="namespaceweapons_1_1textures.html#a05b20bd98c55bfbfcf4c2e7e0b08ebaf">weapons::textures</a>
+</li>
+</ul>
+
+
+<h3><a id="index_t"></a>- t -</h3><ul>
+<li>T
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0">olc</a>
+</li>
+<li>TAB
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7aef93738bc8d89f07932dd1a603b021bd">olc</a>
+</li>
+</ul>
+
+
+<h3><a id="index_u"></a>- u -</h3><ul>
+<li>U
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a62c2493e1585db2af15cb70ac979fb09">olc</a>
+</li>
+<li>UP
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a2b35f0b03e615b828187a990935344c4">olc</a>
+</li>
+</ul>
+
+
+<h3><a id="index_v"></a>- v -</h3><ul>
+<li>V
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a170eaa7913d25c0ff02712bd93d7bf81">olc</a>
+</li>
+<li>vd2d
+: <a class="el" href="namespaceolc.html#a51aaa7b75138a3323048a77457735d33">olc</a>
+</li>
+<li>VERY_DARK_BLUE()
+: <a class="el" href="namespaceolc.html#a48fb6375b9a7c0a0d44feaa879e7ebb7">olc</a>
+</li>
+<li>VERY_DARK_CYAN()
+: <a class="el" href="namespaceolc.html#aee6a06b446368ac58033b5ae4f4c6ca2">olc</a>
+</li>
+<li>VERY_DARK_GREEN()
+: <a class="el" href="namespaceolc.html#a29c85b49a3c9cbd0b251e80e3bc57140">olc</a>
+</li>
+<li>VERY_DARK_GREY()
+: <a class="el" href="namespaceolc.html#a93de271d8b3cbd5aec73a085e6a6ec7a">olc</a>
+</li>
+<li>VERY_DARK_MAGENTA()
+: <a class="el" href="namespaceolc.html#a150fed0369958dc77d3207298588bc94">olc</a>
+</li>
+<li>VERY_DARK_RED()
+: <a class="el" href="namespaceolc.html#a82b6404acf7ac86f237179fc5f9a859f">olc</a>
+</li>
+<li>VERY_DARK_YELLOW()
+: <a class="el" href="namespaceolc.html#a131df56f1dd5cb0906cd02f9df49b17d">olc</a>
+</li>
+<li>vf2d
+: <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc</a>
+</li>
+<li>vi2d
+: <a class="el" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">olc</a>
+</li>
+<li>vu2d
+: <a class="el" href="namespaceolc.html#ac9f9fa9267428312fd81237a4cc5c8e5">olc</a>
+</li>
+</ul>
+
+
+<h3><a id="index_w"></a>- w -</h3><ul>
+<li>W
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ac1ae605c94e2d813c718148311c101d1">olc</a>
+</li>
+<li>WHITE()
+: <a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc</a>
+</li>
+</ul>
+
+
+<h3><a id="index_x"></a>- x -</h3><ul>
+<li>X
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a259dcb71eab0ee6c477f792543f43ec5">olc</a>
+</li>
+</ul>
+
+
+<h3><a id="index_y"></a>- y -</h3><ul>
+<li>Y
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a6207f4e5a37e546fa3881817046587b9">olc</a>
+</li>
+<li>YELLOW()
+: <a class="el" href="namespaceolc.html#a6c9728f6dba8b58406bb0e10979b6ccf">olc</a>
+</li>
+</ul>
+
+
+<h3><a id="index_z"></a>- z -</h3><ul>
+<li>Z
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a7c408b7a6694f74ac270013753b13aaa">olc</a>
+</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/namespacemembers_enum.html b/doxy/html/namespacemembers_enum.html
new file mode 100644
index 0000000000000000000000000000000000000000..854444e367dfcd2fc189bbb9ed133621d40d5174
--- /dev/null
+++ b/doxy/html/namespacemembers_enum.html
@@ -0,0 +1,82 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: Namespace Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+&#160;<ul>
+<li>DecalMode
+: <a class="el" href="namespaceolc.html#aeda642f63378f868193c28e8613138ca">olc</a>
+</li>
+<li>Key
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7">olc</a>
+</li>
+<li>rcode
+: <a class="el" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87b">olc</a>
+</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/namespacemembers_eval.html b/doxy/html/namespacemembers_eval.html
new file mode 100644
index 0000000000000000000000000000000000000000..1c1b9209a0628324b94757d7db0437d2ddec6f3d
--- /dev/null
+++ b/doxy/html/namespacemembers_eval.html
@@ -0,0 +1,478 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: Namespace Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+&#160;
+
+<h3><a id="index_a"></a>- a -</h3><ul>
+<li>A
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a3e1af6612f2964145f438bb63073098d">olc</a>
+</li>
+</ul>
+
+
+<h3><a id="index_b"></a>- b -</h3><ul>
+<li>B
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a8baf1c6fa76f36bae92c12df88f4c84d">olc</a>
+</li>
+<li>BACK
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a390af039d8a8c4ab71787f001f810521">olc</a>
+</li>
+</ul>
+
+
+<h3><a id="index_c"></a>- c -</h3><ul>
+<li>C
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7aaa5fe91e0948a39a142504c1f9067549">olc</a>
+</li>
+<li>CAPS_LOCK
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a523c88e17275650861203e32067dde01">olc</a>
+</li>
+<li>COMMA
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ae2fab0c220f54cd28729c9340951ecb4">olc</a>
+</li>
+<li>CTRL
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ae7e6e69075c36b0e44309aae888b86dc">olc</a>
+</li>
+</ul>
+
+
+<h3><a id="index_d"></a>- d -</h3><ul>
+<li>D
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a7323455add036f066f8b23546f0c37bb">olc</a>
+</li>
+<li>DEL
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a5a979509d792ab38404b7a2aca12c981">olc</a>
+</li>
+<li>DOWN
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a506f2ec576fcd3a8fabd37461bba83f8">olc</a>
+</li>
+</ul>
+
+
+<h3><a id="index_e"></a>- e -</h3><ul>
+<li>E
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ad29058aa6514f4f9dcdefdba93adc8ec">olc</a>
+</li>
+<li>END
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a53394a407c13bf8192b2946607d27a0f">olc</a>
+</li>
+<li>ENTER
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a31321cae06dfe0989acbbe94c5272b33">olc</a>
+</li>
+<li>ENUM_END
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a35430b793d6fae00ed8b060cb0accf32">olc</a>
+</li>
+<li>EQUALS
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7aa82c0ef0b75db6208407e90f6f77f002">olc</a>
+</li>
+<li>ESCAPE
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ac58fbe549b8c1a668c42a17d9e572b0f">olc</a>
+</li>
+</ul>
+
+
+<h3><a id="index_f"></a>- f -</h3><ul>
+<li>F
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a614698cb99af6a9effa5d7ce88b2c674">olc</a>
+</li>
+<li>F1
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a17a119da4c7fd21cd061972ac8f8029a">olc</a>
+</li>
+<li>F10
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7abe90f6618beb39117690b93a5c9d8ccb">olc</a>
+</li>
+<li>F11
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7aba366840d455651d4cedc7f7ee4c770b">olc</a>
+</li>
+<li>F12
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a9bc869632cc0095b7d8e456efd571969">olc</a>
+</li>
+<li>F2
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a207c1404adcacfadf941ffc681485026">olc</a>
+</li>
+<li>F3
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a573a484680114e221c1a3ecd8307d61a">olc</a>
+</li>
+<li>F4
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a3c808be2b8b226138090bb3884bdc52b">olc</a>
+</li>
+<li>F5
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ab9dd7de33e89c10afa7947bc5ff6fdea">olc</a>
+</li>
+<li>F6
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a12e4309f479cd3e34476ef3be7986847">olc</a>
+</li>
+<li>F7
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ac955ad4fdd41f4d3600b29da016fdf36">olc</a>
+</li>
+<li>F8
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ab9ff66b449c18ecdb5b83a2e055e393b">olc</a>
+</li>
+<li>F9
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a2f2949bdd6d44b3c918531ebc30d8186">olc</a>
+</li>
+<li>FAIL
+: <a class="el" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87baadc8ac6e9769db5bb290fbf5f8284dbf">olc</a>
+</li>
+</ul>
+
+
+<h3><a id="index_g"></a>- g -</h3><ul>
+<li>G
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a1a7a9ef9ded3ee4bb7b7e4fbc69ae4b8">olc</a>
+</li>
+</ul>
+
+
+<h3><a id="index_h"></a>- h -</h3><ul>
+<li>H
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a224c0773e09bdb7fb13683fbb4eeee1a">olc</a>
+</li>
+<li>HOME
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a29419f86c551b623c828f9530f301389">olc</a>
+</li>
+</ul>
+
+
+<h3><a id="index_i"></a>- i -</h3><ul>
+<li>I
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ac242ddce5db0d462674ead1db3956a19">olc</a>
+</li>
+<li>INS
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a691b8388214af88a7794c43d31fbe16a">olc</a>
+</li>
+</ul>
+
+
+<h3><a id="index_j"></a>- j -</h3><ul>
+<li>J
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a476769e330b87f2fb75aaa684c2f6373">olc</a>
+</li>
+</ul>
+
+
+<h3><a id="index_k"></a>- k -</h3><ul>
+<li>K
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a136309f07b14d70a8561a69ca563bab7">olc</a>
+</li>
+<li>K0
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a2dd03c94eccd6d1259d4b2b51b7f85a7">olc</a>
+</li>
+<li>K1
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a353892e1e3473d0a6d3427dd86080506">olc</a>
+</li>
+<li>K2
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ab3b331dc3158175e2c567f7ebdf9fa75">olc</a>
+</li>
+<li>K3
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7aba2ad21d300fb113ff4e82665800cf75">olc</a>
+</li>
+<li>K4
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7aadd3a981032ec5fc07440dd0dbd1a3b3">olc</a>
+</li>
+<li>K5
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a353906757178b0d48008b62cdca75332">olc</a>
+</li>
+<li>K6
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a81afecef4b483614604bfc5341d8a2d5">olc</a>
+</li>
+<li>K7
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a89291a8afb7ac7b481090dc97f643263">olc</a>
+</li>
+<li>K8
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a636f4e49257a6476ad0aab590318672f">olc</a>
+</li>
+<li>K9
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a949dddf48734610228c20566a33912bc">olc</a>
+</li>
+</ul>
+
+
+<h3><a id="index_l"></a>- l -</h3><ul>
+<li>L
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a4d809048542b770e810d48919c8f8500">olc</a>
+</li>
+<li>LEFT
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a4da01be8126ba4113717cc6385ad22d2">olc</a>
+</li>
+</ul>
+
+
+<h3><a id="index_m"></a>- m -</h3><ul>
+<li>M
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7afda4a6ac36e1870cd31522ac4e40a113">olc</a>
+</li>
+<li>MINUS
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a4b3a1d83a513de0e2c3c8ba2a8a5fd2d">olc</a>
+</li>
+</ul>
+
+
+<h3><a id="index_n"></a>- n -</h3><ul>
+<li>N
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ab9b5b3e2b7e4f47de4a8d84e03cd5911">olc</a>
+</li>
+<li>NO_FILE
+: <a class="el" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87babfe0b9ad99c942b01b1ee61404f559b5">olc</a>
+</li>
+<li>NONE
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a569010ded143bbdfd1b2dc8e82327b45">olc</a>
+</li>
+<li>NP0
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a16054c3b1419b9679d95ac70ef262666">olc</a>
+</li>
+<li>NP1
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a96c49dba90b7ecdfcf88e18c2842a964">olc</a>
+</li>
+<li>NP2
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a7ca6517890a3566dbf758618f9c7690f">olc</a>
+</li>
+<li>NP3
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7aab84341adb43a72b48030189f9919360">olc</a>
+</li>
+<li>NP4
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a443551e4895cf1d2be984eba0bd7098e">olc</a>
+</li>
+<li>NP5
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a0ba7e1a6dbc9d1291a40172a09bb49a4">olc</a>
+</li>
+<li>NP6
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ad6aae0ca10843b8046ee0186af4e42f9">olc</a>
+</li>
+<li>NP7
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7afee25adbffa6e8fc092d52193195182f">olc</a>
+</li>
+<li>NP8
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a468bb1704a74fc6e42d28e7bee8ecb51">olc</a>
+</li>
+<li>NP9
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a53987c7c18a4a4479c4e1ff7f65c414e">olc</a>
+</li>
+<li>NP_ADD
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7af15830fd3562b144e15a9d8abeb6c118">olc</a>
+</li>
+<li>NP_DECIMAL
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a2c21f93f355bf0a6baa7e205acd86b50">olc</a>
+</li>
+<li>NP_DIV
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7aee5afd77eb82eb3111195ee300ff3714">olc</a>
+</li>
+<li>NP_MUL
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ae2ce826d1d0de6429f9f28a19d11edfb">olc</a>
+</li>
+<li>NP_SUB
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7aade223a1643f8d607eb44fff1bbaae8e">olc</a>
+</li>
+</ul>
+
+
+<h3><a id="index_o"></a>- o -</h3><ul>
+<li>O
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a7f95c3a8701b46a2cca143078d7e3aea">olc</a>
+</li>
+<li>OEM_1
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a3a044efaf7d74df21e84a29063006eae">olc</a>
+</li>
+<li>OEM_2
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ad29833dd46d756ecf0e9d477d0845450">olc</a>
+</li>
+<li>OEM_3
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7abb25924adf005b39efaef185f332a3ad">olc</a>
+</li>
+<li>OEM_4
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7aa09e2508e2f2fd372d3e37ebdfce6814">olc</a>
+</li>
+<li>OEM_5
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ad7e69e28cedaf91718aa4801d5a3bdb7">olc</a>
+</li>
+<li>OEM_6
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7af2cec59ecc924be0b636e5b767abf29f">olc</a>
+</li>
+<li>OEM_7
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a3dada7cdf09fb367c10c650e9bce7bfa">olc</a>
+</li>
+<li>OEM_8
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ab719317cfd8ac665e8cc2f420f74b46a">olc</a>
+</li>
+<li>OK
+: <a class="el" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87ba0178b5f8abe39121e6f14d3c6c093a82">olc</a>
+</li>
+</ul>
+
+
+<h3><a id="index_p"></a>- p -</h3><ul>
+<li>P
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a2af805290f6ef4b2de028b868debe170">olc</a>
+</li>
+<li>PAUSE
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a0bc227b9b4a43118d7500e8195806d74">olc</a>
+</li>
+<li>PERIOD
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a1adffcecf8c735b404ac6eedf220ae5a">olc</a>
+</li>
+<li>PGDN
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7aae334e3943922c2b16842afc5306a1e9">olc</a>
+</li>
+<li>PGUP
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a0bab26868b97eab537e7cad879d4b9a3">olc</a>
+</li>
+</ul>
+
+
+<h3><a id="index_q"></a>- q -</h3><ul>
+<li>Q
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a6d49ec75b05a97e8714ac8c244ad29a8">olc</a>
+</li>
+</ul>
+
+
+<h3><a id="index_r"></a>- r -</h3><ul>
+<li>R
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a7417555746b2b1026b8ba65912817111">olc</a>
+</li>
+<li>RETURN
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a4f04a0bac23ee4f7b875d0328f29df27">olc</a>
+</li>
+<li>RIGHT
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a58e7b18972e446a03ce5ce915bc2d34d">olc</a>
+</li>
+</ul>
+
+
+<h3><a id="index_s"></a>- s -</h3><ul>
+<li>S
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a050dfda2928d980787eeebcaaa4e6fa7">olc</a>
+</li>
+<li>SCROLL
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a44cf52f457ad06d45cd947c72c291ccc">olc</a>
+</li>
+<li>SHIFT
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a4cd994e0e2285e9b52e129f74c84aa0b">olc</a>
+</li>
+<li>SPACE
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a925d9a708542cd050a0b4f87bd7ba297">olc</a>
+</li>
+</ul>
+
+
+<h3><a id="index_t"></a>- t -</h3><ul>
+<li>T
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0">olc</a>
+</li>
+<li>TAB
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7aef93738bc8d89f07932dd1a603b021bd">olc</a>
+</li>
+</ul>
+
+
+<h3><a id="index_u"></a>- u -</h3><ul>
+<li>U
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a62c2493e1585db2af15cb70ac979fb09">olc</a>
+</li>
+<li>UP
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a2b35f0b03e615b828187a990935344c4">olc</a>
+</li>
+</ul>
+
+
+<h3><a id="index_v"></a>- v -</h3><ul>
+<li>V
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a170eaa7913d25c0ff02712bd93d7bf81">olc</a>
+</li>
+</ul>
+
+
+<h3><a id="index_w"></a>- w -</h3><ul>
+<li>W
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ac1ae605c94e2d813c718148311c101d1">olc</a>
+</li>
+</ul>
+
+
+<h3><a id="index_x"></a>- x -</h3><ul>
+<li>X
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a259dcb71eab0ee6c477f792543f43ec5">olc</a>
+</li>
+</ul>
+
+
+<h3><a id="index_y"></a>- y -</h3><ul>
+<li>Y
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a6207f4e5a37e546fa3881817046587b9">olc</a>
+</li>
+</ul>
+
+
+<h3><a id="index_z"></a>- z -</h3><ul>
+<li>Z
+: <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a7c408b7a6694f74ac270013753b13aaa">olc</a>
+</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/namespacemembers_func.html b/doxy/html/namespacemembers_func.html
new file mode 100644
index 0000000000000000000000000000000000000000..f89a1d57c118d45ef50dd59ab17f3aeb38ef8f85
--- /dev/null
+++ b/doxy/html/namespacemembers_func.html
@@ -0,0 +1,245 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: Namespace Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+&#160;
+
+<h3><a id="index_b"></a>- b -</h3><ul>
+<li>BLACK()
+: <a class="el" href="namespaceolc.html#a183de1c471cfd6f45980bc9c2c58ed9d">olc</a>
+</li>
+<li>BLANK()
+: <a class="el" href="namespaceolc.html#ac940e7f6502cbced06f26b4d13349166">olc</a>
+</li>
+<li>BLUE()
+: <a class="el" href="namespaceolc.html#ac1e1d3e39e0b78e9767142c9daeba4ee">olc</a>
+</li>
+<li>bow()
+: <a class="el" href="namespaceweapons_1_1textures.html#ae84acdfc1384af6d4e1f64c1883a8784">weapons::textures</a>
+</li>
+</ul>
+
+
+<h3><a id="index_c"></a>- c -</h3><ul>
+<li>crystalBow()
+: <a class="el" href="namespaceweapons_1_1textures.html#a2f33f64b881c4028086431f8ba0fe1c5">weapons::textures</a>
+</li>
+<li>CYAN()
+: <a class="el" href="namespaceolc.html#a43ffa41e9a4a260b86da82b823e6a252">olc</a>
+</li>
+</ul>
+
+
+<h3><a id="index_d"></a>- d -</h3><ul>
+<li>DARK_BLUE()
+: <a class="el" href="namespaceolc.html#ac6e041f71287438da8b9145758c4fe63">olc</a>
+</li>
+<li>DARK_CYAN()
+: <a class="el" href="namespaceolc.html#aa0824f5fdd85c58712495a7bc0de191e">olc</a>
+</li>
+<li>DARK_GREEN()
+: <a class="el" href="namespaceolc.html#ac192218acb2f30c4c3748485dd5e4ba0">olc</a>
+</li>
+<li>DARK_GREY()
+: <a class="el" href="namespaceolc.html#a7208a6ce62e94eca5b0ba80f7c2f5e30">olc</a>
+</li>
+<li>DARK_MAGENTA()
+: <a class="el" href="namespaceolc.html#abad91f58a178a173f76ce7d9f9aa99c4">olc</a>
+</li>
+<li>DARK_RED()
+: <a class="el" href="namespaceolc.html#a8265396ef812918ca95d2e7aa39c14cc">olc</a>
+</li>
+<li>DARK_YELLOW()
+: <a class="el" href="namespaceolc.html#a379f9d3a40edb1700299c031cd0b6a08">olc</a>
+</li>
+</ul>
+
+
+<h3><a id="index_g"></a>- g -</h3><ul>
+<li>glitchGun()
+: <a class="el" href="namespaceweapons_1_1textures.html#ad763a6f6186015fe93af0a1e5088f026">weapons::textures</a>
+</li>
+<li>GREEN()
+: <a class="el" href="namespaceolc.html#a32b98884f548bf731eab3225557ebe8c">olc</a>
+</li>
+</ul>
+
+
+<h3><a id="index_m"></a>- m -</h3><ul>
+<li>MAGENTA()
+: <a class="el" href="namespaceolc.html#adc292fdc3c4d2a03e8c6bbad1853b727">olc</a>
+</li>
+<li>minigun()
+: <a class="el" href="namespaceweapons_1_1textures.html#a51f0963cb1171938daa3a1e894e5305b">weapons::textures</a>
+</li>
+</ul>
+
+
+<h3><a id="index_o"></a>- o -</h3><ul>
+<li>operator*()
+: <a class="el" href="namespaceolc.html#a0cb5b54cc54cf0c92741da285010e1e5">olc</a>
+</li>
+<li>operator/()
+: <a class="el" href="namespaceolc.html#a6448f6127e1003cd9287161c5c4d52e0">olc</a>
+</li>
+<li>operator&lt;()
+: <a class="el" href="namespaceolc.html#a2831a8757172243381b08adf69e91e0a">olc</a>
+</li>
+<li>operator&gt;()
+: <a class="el" href="namespaceolc.html#a34519a6f9006c6c4854bbe762d490900">olc</a>
+</li>
+</ul>
+
+
+<h3><a id="index_p"></a>- p -</h3><ul>
+<li>photoMachine()
+: <a class="el" href="namespaceweapons_1_1textures.html#ac65344c207a89b29b15e56e01fc3e16a">weapons::textures</a>
+</li>
+<li>pickaxe()
+: <a class="el" href="namespaceweapons_1_1textures.html#a25cf2019ff68d29442fa3554a5862c1e">weapons::textures</a>
+</li>
+<li>pistol()
+: <a class="el" href="namespaceweapons_1_1textures.html#a8a733a84e93619430cfdaa2306a6a7ec">weapons::textures</a>
+</li>
+<li>PixelF()
+: <a class="el" href="namespaceolc.html#a06c9f23f2e370e7afe71788427a820fd">olc</a>
+</li>
+<li>PixelLerp()
+: <a class="el" href="namespaceolc.html#a2069e5cf447f5dd311c680c9463f9c42">olc</a>
+</li>
+</ul>
+
+
+<h3><a id="index_r"></a>- r -</h3><ul>
+<li>RED()
+: <a class="el" href="namespaceolc.html#ad4579f7eb75a257d76bb657a268f0a8d">olc</a>
+</li>
+<li>rifle()
+: <a class="el" href="namespaceweapons_1_1textures.html#a7ae588b12d703b44d1de1abb05d9f672">weapons::textures</a>
+</li>
+</ul>
+
+
+<h3><a id="index_s"></a>- s -</h3><ul>
+<li>scythe()
+: <a class="el" href="namespaceweapons_1_1textures.html#ac492d02548352205657c28cd311d997b">weapons::textures</a>
+</li>
+<li>shovel()
+: <a class="el" href="namespaceweapons_1_1textures.html#affedf59c6526368e5358afc383f15022">weapons::textures</a>
+</li>
+<li>spear()
+: <a class="el" href="namespaceweapons_1_1textures.html#a9734b7f6d13a24af2d62e74e6cd9dfde">weapons::textures</a>
+</li>
+<li>sword1()
+: <a class="el" href="namespaceweapons_1_1textures.html#a2a490d5d835f3ea3a9b07d2a9efb1c36">weapons::textures</a>
+</li>
+<li>sword2()
+: <a class="el" href="namespaceweapons_1_1textures.html#a05b20bd98c55bfbfcf4c2e7e0b08ebaf">weapons::textures</a>
+</li>
+</ul>
+
+
+<h3><a id="index_v"></a>- v -</h3><ul>
+<li>VERY_DARK_BLUE()
+: <a class="el" href="namespaceolc.html#a48fb6375b9a7c0a0d44feaa879e7ebb7">olc</a>
+</li>
+<li>VERY_DARK_CYAN()
+: <a class="el" href="namespaceolc.html#aee6a06b446368ac58033b5ae4f4c6ca2">olc</a>
+</li>
+<li>VERY_DARK_GREEN()
+: <a class="el" href="namespaceolc.html#a29c85b49a3c9cbd0b251e80e3bc57140">olc</a>
+</li>
+<li>VERY_DARK_GREY()
+: <a class="el" href="namespaceolc.html#a93de271d8b3cbd5aec73a085e6a6ec7a">olc</a>
+</li>
+<li>VERY_DARK_MAGENTA()
+: <a class="el" href="namespaceolc.html#a150fed0369958dc77d3207298588bc94">olc</a>
+</li>
+<li>VERY_DARK_RED()
+: <a class="el" href="namespaceolc.html#a82b6404acf7ac86f237179fc5f9a859f">olc</a>
+</li>
+<li>VERY_DARK_YELLOW()
+: <a class="el" href="namespaceolc.html#a131df56f1dd5cb0906cd02f9df49b17d">olc</a>
+</li>
+</ul>
+
+
+<h3><a id="index_w"></a>- w -</h3><ul>
+<li>WHITE()
+: <a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc</a>
+</li>
+</ul>
+
+
+<h3><a id="index_y"></a>- y -</h3><ul>
+<li>YELLOW()
+: <a class="el" href="namespaceolc.html#a6c9728f6dba8b58406bb0e10979b6ccf">olc</a>
+</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/namespacemembers_type.html b/doxy/html/namespacemembers_type.html
new file mode 100644
index 0000000000000000000000000000000000000000..4eed533b6a2dd5f7530b5110f708e269cb524e92
--- /dev/null
+++ b/doxy/html/namespacemembers_type.html
@@ -0,0 +1,85 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: Namespace Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+&#160;<ul>
+<li>vd2d
+: <a class="el" href="namespaceolc.html#a51aaa7b75138a3323048a77457735d33">olc</a>
+</li>
+<li>vf2d
+: <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc</a>
+</li>
+<li>vi2d
+: <a class="el" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">olc</a>
+</li>
+<li>vu2d
+: <a class="el" href="namespaceolc.html#ac9f9fa9267428312fd81237a4cc5c8e5">olc</a>
+</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/namespacemembers_vars.html b/doxy/html/namespacemembers_vars.html
new file mode 100644
index 0000000000000000000000000000000000000000..cb400e803bbd7e8172d1bbbad34837932d5361be
--- /dev/null
+++ b/doxy/html/namespacemembers_vars.html
@@ -0,0 +1,82 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: Namespace Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+&#160;<ul>
+<li>nDefaultAlpha
+: <a class="el" href="namespaceolc.html#adede7d1156ab9d8ffdc3e9048f0f364b">olc</a>
+</li>
+<li>nDefaultPixel
+: <a class="el" href="namespaceolc.html#a10bbdc57cc3fecc7b80ba428eb7494d0">olc</a>
+</li>
+<li>nMouseButtons
+: <a class="el" href="namespaceolc.html#abf7dfc35dd1d895f33d3635831953e38">olc</a>
+</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/namespaceolc.html b/doxy/html/namespaceolc.html
new file mode 100644
index 0000000000000000000000000000000000000000..9510cca81e77077a4155e3cb720f9e0686babf32
--- /dev/null
+++ b/doxy/html/namespaceolc.html
@@ -0,0 +1,1852 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: olc Namespace Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#nested-classes">Classes</a> &#124;
+<a href="#typedef-members">Typedefs</a> &#124;
+<a href="#enum-members">Enumerations</a> &#124;
+<a href="#func-members">Functions</a> &#124;
+<a href="#var-members">Variables</a>  </div>
+  <div class="headertitle">
+<div class="title">olc Namespace Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_decal.html">Decal</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structolc_1_1_decal_instance.html">DecalInstance</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structolc_1_1_h_w_button.html">HWButton</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_image_loader.html">ImageLoader</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structolc_1_1_layer_desc.html">LayerDesc</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_p_g_e_x.html">PGEX</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structolc_1_1_pixel.html">Pixel</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html">PixelGameEngine</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_platform.html">Platform</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_renderable.html">Renderable</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_renderer.html">Renderer</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structolc_1_1_resource_buffer.html">ResourceBuffer</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_resource_pack.html">ResourcePack</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_sprite.html">Sprite</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_tile_transformed_view.html">TileTransformedView</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_transformed_view.html">TransformedView</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structolc_1_1v2d__generic.html">v2d_generic</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
+Typedefs</h2></td></tr>
+<tr class="memitem:a3c42697361e8a28424bcf8415aba3564"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="structolc_1_1v2d__generic.html">v2d_generic</a>&lt; int32_t &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">vi2d</a></td></tr>
+<tr class="separator:a3c42697361e8a28424bcf8415aba3564"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac9f9fa9267428312fd81237a4cc5c8e5"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="structolc_1_1v2d__generic.html">v2d_generic</a>&lt; uint32_t &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceolc.html#ac9f9fa9267428312fd81237a4cc5c8e5">vu2d</a></td></tr>
+<tr class="separator:ac9f9fa9267428312fd81237a4cc5c8e5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:adb87819740ea9625f84c821fffb16429"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="structolc_1_1v2d__generic.html">v2d_generic</a>&lt; float &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">vf2d</a></td></tr>
+<tr class="separator:adb87819740ea9625f84c821fffb16429"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a51aaa7b75138a3323048a77457735d33"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="structolc_1_1v2d__generic.html">v2d_generic</a>&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceolc.html#a51aaa7b75138a3323048a77457735d33">vd2d</a></td></tr>
+<tr class="separator:a51aaa7b75138a3323048a77457735d33"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
+Enumerations</h2></td></tr>
+<tr class="memitem:a3d40e9b1c005602550230690b55ae87b"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87b">rcode</a> { <a class="el" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87baadc8ac6e9769db5bb290fbf5f8284dbf">FAIL</a> = 0, 
+<a class="el" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87ba0178b5f8abe39121e6f14d3c6c093a82">OK</a> = 1, 
+<a class="el" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87babfe0b9ad99c942b01b1ee61404f559b5">NO_FILE</a> = -1
+ }</td></tr>
+<tr class="separator:a3d40e9b1c005602550230690b55ae87b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa26a067cf0db83f0b1dd587036a64be7"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7">Key</a> { <br />
+&#160;&#160;<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a569010ded143bbdfd1b2dc8e82327b45">NONE</a>, 
+<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a3e1af6612f2964145f438bb63073098d">A</a>, 
+<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a8baf1c6fa76f36bae92c12df88f4c84d">B</a>, 
+<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7aaa5fe91e0948a39a142504c1f9067549">C</a>, 
+<br />
+&#160;&#160;<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a7323455add036f066f8b23546f0c37bb">D</a>, 
+<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ad29058aa6514f4f9dcdefdba93adc8ec">E</a>, 
+<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a614698cb99af6a9effa5d7ce88b2c674">F</a>, 
+<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a1a7a9ef9ded3ee4bb7b7e4fbc69ae4b8">G</a>, 
+<br />
+&#160;&#160;<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a224c0773e09bdb7fb13683fbb4eeee1a">H</a>, 
+<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ac242ddce5db0d462674ead1db3956a19">I</a>, 
+<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a476769e330b87f2fb75aaa684c2f6373">J</a>, 
+<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a136309f07b14d70a8561a69ca563bab7">K</a>, 
+<br />
+&#160;&#160;<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a4d809048542b770e810d48919c8f8500">L</a>, 
+<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7afda4a6ac36e1870cd31522ac4e40a113">M</a>, 
+<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ab9b5b3e2b7e4f47de4a8d84e03cd5911">N</a>, 
+<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a7f95c3a8701b46a2cca143078d7e3aea">O</a>, 
+<br />
+&#160;&#160;<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a2af805290f6ef4b2de028b868debe170">P</a>, 
+<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a6d49ec75b05a97e8714ac8c244ad29a8">Q</a>, 
+<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a7417555746b2b1026b8ba65912817111">R</a>, 
+<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a050dfda2928d980787eeebcaaa4e6fa7">S</a>, 
+<br />
+&#160;&#160;<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0">T</a>, 
+<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a62c2493e1585db2af15cb70ac979fb09">U</a>, 
+<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a170eaa7913d25c0ff02712bd93d7bf81">V</a>, 
+<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ac1ae605c94e2d813c718148311c101d1">W</a>, 
+<br />
+&#160;&#160;<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a259dcb71eab0ee6c477f792543f43ec5">X</a>, 
+<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a6207f4e5a37e546fa3881817046587b9">Y</a>, 
+<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a7c408b7a6694f74ac270013753b13aaa">Z</a>, 
+<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a2dd03c94eccd6d1259d4b2b51b7f85a7">K0</a>, 
+<br />
+&#160;&#160;<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a353892e1e3473d0a6d3427dd86080506">K1</a>, 
+<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ab3b331dc3158175e2c567f7ebdf9fa75">K2</a>, 
+<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7aba2ad21d300fb113ff4e82665800cf75">K3</a>, 
+<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7aadd3a981032ec5fc07440dd0dbd1a3b3">K4</a>, 
+<br />
+&#160;&#160;<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a353906757178b0d48008b62cdca75332">K5</a>, 
+<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a81afecef4b483614604bfc5341d8a2d5">K6</a>, 
+<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a89291a8afb7ac7b481090dc97f643263">K7</a>, 
+<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a636f4e49257a6476ad0aab590318672f">K8</a>, 
+<br />
+&#160;&#160;<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a949dddf48734610228c20566a33912bc">K9</a>, 
+<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a17a119da4c7fd21cd061972ac8f8029a">F1</a>, 
+<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a207c1404adcacfadf941ffc681485026">F2</a>, 
+<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a573a484680114e221c1a3ecd8307d61a">F3</a>, 
+<br />
+&#160;&#160;<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a3c808be2b8b226138090bb3884bdc52b">F4</a>, 
+<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ab9dd7de33e89c10afa7947bc5ff6fdea">F5</a>, 
+<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a12e4309f479cd3e34476ef3be7986847">F6</a>, 
+<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ac955ad4fdd41f4d3600b29da016fdf36">F7</a>, 
+<br />
+&#160;&#160;<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ab9ff66b449c18ecdb5b83a2e055e393b">F8</a>, 
+<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a2f2949bdd6d44b3c918531ebc30d8186">F9</a>, 
+<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7abe90f6618beb39117690b93a5c9d8ccb">F10</a>, 
+<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7aba366840d455651d4cedc7f7ee4c770b">F11</a>, 
+<br />
+&#160;&#160;<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a9bc869632cc0095b7d8e456efd571969">F12</a>, 
+<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a2b35f0b03e615b828187a990935344c4">UP</a>, 
+<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a506f2ec576fcd3a8fabd37461bba83f8">DOWN</a>, 
+<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a4da01be8126ba4113717cc6385ad22d2">LEFT</a>, 
+<br />
+&#160;&#160;<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a58e7b18972e446a03ce5ce915bc2d34d">RIGHT</a>, 
+<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a925d9a708542cd050a0b4f87bd7ba297">SPACE</a>, 
+<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7aef93738bc8d89f07932dd1a603b021bd">TAB</a>, 
+<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a4cd994e0e2285e9b52e129f74c84aa0b">SHIFT</a>, 
+<br />
+&#160;&#160;<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ae7e6e69075c36b0e44309aae888b86dc">CTRL</a>, 
+<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a691b8388214af88a7794c43d31fbe16a">INS</a>, 
+<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a5a979509d792ab38404b7a2aca12c981">DEL</a>, 
+<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a29419f86c551b623c828f9530f301389">HOME</a>, 
+<br />
+&#160;&#160;<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a53394a407c13bf8192b2946607d27a0f">END</a>, 
+<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a0bab26868b97eab537e7cad879d4b9a3">PGUP</a>, 
+<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7aae334e3943922c2b16842afc5306a1e9">PGDN</a>, 
+<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a390af039d8a8c4ab71787f001f810521">BACK</a>, 
+<br />
+&#160;&#160;<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ac58fbe549b8c1a668c42a17d9e572b0f">ESCAPE</a>, 
+<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a4f04a0bac23ee4f7b875d0328f29df27">RETURN</a>, 
+<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a31321cae06dfe0989acbbe94c5272b33">ENTER</a>, 
+<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a0bc227b9b4a43118d7500e8195806d74">PAUSE</a>, 
+<br />
+&#160;&#160;<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a44cf52f457ad06d45cd947c72c291ccc">SCROLL</a>, 
+<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a16054c3b1419b9679d95ac70ef262666">NP0</a>, 
+<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a96c49dba90b7ecdfcf88e18c2842a964">NP1</a>, 
+<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a7ca6517890a3566dbf758618f9c7690f">NP2</a>, 
+<br />
+&#160;&#160;<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7aab84341adb43a72b48030189f9919360">NP3</a>, 
+<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a443551e4895cf1d2be984eba0bd7098e">NP4</a>, 
+<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a0ba7e1a6dbc9d1291a40172a09bb49a4">NP5</a>, 
+<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ad6aae0ca10843b8046ee0186af4e42f9">NP6</a>, 
+<br />
+&#160;&#160;<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7afee25adbffa6e8fc092d52193195182f">NP7</a>, 
+<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a468bb1704a74fc6e42d28e7bee8ecb51">NP8</a>, 
+<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a53987c7c18a4a4479c4e1ff7f65c414e">NP9</a>, 
+<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ae2ce826d1d0de6429f9f28a19d11edfb">NP_MUL</a>, 
+<br />
+&#160;&#160;<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7aee5afd77eb82eb3111195ee300ff3714">NP_DIV</a>, 
+<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7af15830fd3562b144e15a9d8abeb6c118">NP_ADD</a>, 
+<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7aade223a1643f8d607eb44fff1bbaae8e">NP_SUB</a>, 
+<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a2c21f93f355bf0a6baa7e205acd86b50">NP_DECIMAL</a>, 
+<br />
+&#160;&#160;<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a1adffcecf8c735b404ac6eedf220ae5a">PERIOD</a>, 
+<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7aa82c0ef0b75db6208407e90f6f77f002">EQUALS</a>, 
+<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ae2fab0c220f54cd28729c9340951ecb4">COMMA</a>, 
+<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a4b3a1d83a513de0e2c3c8ba2a8a5fd2d">MINUS</a>, 
+<br />
+&#160;&#160;<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a3a044efaf7d74df21e84a29063006eae">OEM_1</a>, 
+<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ad29833dd46d756ecf0e9d477d0845450">OEM_2</a>, 
+<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7abb25924adf005b39efaef185f332a3ad">OEM_3</a>, 
+<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7aa09e2508e2f2fd372d3e37ebdfce6814">OEM_4</a>, 
+<br />
+&#160;&#160;<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ad7e69e28cedaf91718aa4801d5a3bdb7">OEM_5</a>, 
+<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7af2cec59ecc924be0b636e5b767abf29f">OEM_6</a>, 
+<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a3dada7cdf09fb367c10c650e9bce7bfa">OEM_7</a>, 
+<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ab719317cfd8ac665e8cc2f420f74b46a">OEM_8</a>, 
+<br />
+&#160;&#160;<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a523c88e17275650861203e32067dde01">CAPS_LOCK</a>, 
+<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a35430b793d6fae00ed8b060cb0accf32">ENUM_END</a>
+<br />
+ }</td></tr>
+<tr class="separator:aa26a067cf0db83f0b1dd587036a64be7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aeda642f63378f868193c28e8613138ca"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceolc.html#aeda642f63378f868193c28e8613138ca">DecalMode</a> { <br />
+&#160;&#160;<a class="el" href="namespaceolc.html#aeda642f63378f868193c28e8613138caa1e23852820b9154316c7c06e2b7ba051">DecalMode::NORMAL</a>, 
+<a class="el" href="namespaceolc.html#aeda642f63378f868193c28e8613138caa8d8c2c7c04ebe2b70bca10a3060ca491">DecalMode::ADDITIVE</a>, 
+<a class="el" href="namespaceolc.html#aeda642f63378f868193c28e8613138caa418ef46700a2836c0d6218e2b46bf564">DecalMode::MULTIPLICATIVE</a>, 
+<a class="el" href="namespaceolc.html#aeda642f63378f868193c28e8613138caa301b25ea9a653329b5d5d727f92514c4">DecalMode::STENCIL</a>, 
+<br />
+&#160;&#160;<a class="el" href="namespaceolc.html#aeda642f63378f868193c28e8613138caab892134232b911680f88a64a24883f7d">DecalMode::ILLUMINATE</a>, 
+<a class="el" href="namespaceolc.html#aeda642f63378f868193c28e8613138caa43ea8c7cefb63ec314b4df5628cba577">DecalMode::WIREFRAME</a>
+<br />
+ }</td></tr>
+<tr class="separator:aeda642f63378f868193c28e8613138ca"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a06c9f23f2e370e7afe71788427a820fd"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structolc_1_1_pixel.html">Pixel</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceolc.html#a06c9f23f2e370e7afe71788427a820fd">PixelF</a> (float red, float green, float blue, float alpha=1.0f)</td></tr>
+<tr class="separator:a06c9f23f2e370e7afe71788427a820fd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2069e5cf447f5dd311c680c9463f9c42"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structolc_1_1_pixel.html">Pixel</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceolc.html#a2069e5cf447f5dd311c680c9463f9c42">PixelLerp</a> (const <a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a> &amp;p1, const <a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a> &amp;p2, float t)</td></tr>
+<tr class="separator:a2069e5cf447f5dd311c680c9463f9c42"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7208a6ce62e94eca5b0ba80f7c2f5e30"><td class="memItemLeft" align="right" valign="top">static const <a class="el" href="structolc_1_1_pixel.html">Pixel</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceolc.html#a7208a6ce62e94eca5b0ba80f7c2f5e30">DARK_GREY</a> (128, 128, 128)</td></tr>
+<tr class="separator:a7208a6ce62e94eca5b0ba80f7c2f5e30"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a93de271d8b3cbd5aec73a085e6a6ec7a"><td class="memItemLeft" align="right" valign="top">static const <a class="el" href="structolc_1_1_pixel.html">Pixel</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceolc.html#a93de271d8b3cbd5aec73a085e6a6ec7a">VERY_DARK_GREY</a> (64, 64, 64)</td></tr>
+<tr class="separator:a93de271d8b3cbd5aec73a085e6a6ec7a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad4579f7eb75a257d76bb657a268f0a8d"><td class="memItemLeft" align="right" valign="top">static const <a class="el" href="structolc_1_1_pixel.html">Pixel</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceolc.html#ad4579f7eb75a257d76bb657a268f0a8d">RED</a> (255, 0, 0)</td></tr>
+<tr class="separator:ad4579f7eb75a257d76bb657a268f0a8d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8265396ef812918ca95d2e7aa39c14cc"><td class="memItemLeft" align="right" valign="top">static const <a class="el" href="structolc_1_1_pixel.html">Pixel</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceolc.html#a8265396ef812918ca95d2e7aa39c14cc">DARK_RED</a> (128, 0, 0)</td></tr>
+<tr class="separator:a8265396ef812918ca95d2e7aa39c14cc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a82b6404acf7ac86f237179fc5f9a859f"><td class="memItemLeft" align="right" valign="top">static const <a class="el" href="structolc_1_1_pixel.html">Pixel</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceolc.html#a82b6404acf7ac86f237179fc5f9a859f">VERY_DARK_RED</a> (64, 0, 0)</td></tr>
+<tr class="separator:a82b6404acf7ac86f237179fc5f9a859f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6c9728f6dba8b58406bb0e10979b6ccf"><td class="memItemLeft" align="right" valign="top">static const <a class="el" href="structolc_1_1_pixel.html">Pixel</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceolc.html#a6c9728f6dba8b58406bb0e10979b6ccf">YELLOW</a> (255, 255, 0)</td></tr>
+<tr class="separator:a6c9728f6dba8b58406bb0e10979b6ccf"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a379f9d3a40edb1700299c031cd0b6a08"><td class="memItemLeft" align="right" valign="top">static const <a class="el" href="structolc_1_1_pixel.html">Pixel</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceolc.html#a379f9d3a40edb1700299c031cd0b6a08">DARK_YELLOW</a> (128, 128, 0)</td></tr>
+<tr class="separator:a379f9d3a40edb1700299c031cd0b6a08"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a131df56f1dd5cb0906cd02f9df49b17d"><td class="memItemLeft" align="right" valign="top">static const <a class="el" href="structolc_1_1_pixel.html">Pixel</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceolc.html#a131df56f1dd5cb0906cd02f9df49b17d">VERY_DARK_YELLOW</a> (64, 64, 0)</td></tr>
+<tr class="separator:a131df56f1dd5cb0906cd02f9df49b17d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a32b98884f548bf731eab3225557ebe8c"><td class="memItemLeft" align="right" valign="top">static const <a class="el" href="structolc_1_1_pixel.html">Pixel</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceolc.html#a32b98884f548bf731eab3225557ebe8c">GREEN</a> (0, 255, 0)</td></tr>
+<tr class="separator:a32b98884f548bf731eab3225557ebe8c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac192218acb2f30c4c3748485dd5e4ba0"><td class="memItemLeft" align="right" valign="top">static const <a class="el" href="structolc_1_1_pixel.html">Pixel</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceolc.html#ac192218acb2f30c4c3748485dd5e4ba0">DARK_GREEN</a> (0, 128, 0)</td></tr>
+<tr class="separator:ac192218acb2f30c4c3748485dd5e4ba0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a29c85b49a3c9cbd0b251e80e3bc57140"><td class="memItemLeft" align="right" valign="top">static const <a class="el" href="structolc_1_1_pixel.html">Pixel</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceolc.html#a29c85b49a3c9cbd0b251e80e3bc57140">VERY_DARK_GREEN</a> (0, 64, 0)</td></tr>
+<tr class="separator:a29c85b49a3c9cbd0b251e80e3bc57140"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a43ffa41e9a4a260b86da82b823e6a252"><td class="memItemLeft" align="right" valign="top">static const <a class="el" href="structolc_1_1_pixel.html">Pixel</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceolc.html#a43ffa41e9a4a260b86da82b823e6a252">CYAN</a> (0, 255, 255)</td></tr>
+<tr class="separator:a43ffa41e9a4a260b86da82b823e6a252"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa0824f5fdd85c58712495a7bc0de191e"><td class="memItemLeft" align="right" valign="top">static const <a class="el" href="structolc_1_1_pixel.html">Pixel</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceolc.html#aa0824f5fdd85c58712495a7bc0de191e">DARK_CYAN</a> (0, 128, 128)</td></tr>
+<tr class="separator:aa0824f5fdd85c58712495a7bc0de191e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aee6a06b446368ac58033b5ae4f4c6ca2"><td class="memItemLeft" align="right" valign="top">static const <a class="el" href="structolc_1_1_pixel.html">Pixel</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceolc.html#aee6a06b446368ac58033b5ae4f4c6ca2">VERY_DARK_CYAN</a> (0, 64, 64)</td></tr>
+<tr class="separator:aee6a06b446368ac58033b5ae4f4c6ca2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac1e1d3e39e0b78e9767142c9daeba4ee"><td class="memItemLeft" align="right" valign="top">static const <a class="el" href="structolc_1_1_pixel.html">Pixel</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceolc.html#ac1e1d3e39e0b78e9767142c9daeba4ee">BLUE</a> (0, 0, 255)</td></tr>
+<tr class="separator:ac1e1d3e39e0b78e9767142c9daeba4ee"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac6e041f71287438da8b9145758c4fe63"><td class="memItemLeft" align="right" valign="top">static const <a class="el" href="structolc_1_1_pixel.html">Pixel</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceolc.html#ac6e041f71287438da8b9145758c4fe63">DARK_BLUE</a> (0, 0, 128)</td></tr>
+<tr class="separator:ac6e041f71287438da8b9145758c4fe63"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a48fb6375b9a7c0a0d44feaa879e7ebb7"><td class="memItemLeft" align="right" valign="top">static const <a class="el" href="structolc_1_1_pixel.html">Pixel</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceolc.html#a48fb6375b9a7c0a0d44feaa879e7ebb7">VERY_DARK_BLUE</a> (0, 0, 64)</td></tr>
+<tr class="separator:a48fb6375b9a7c0a0d44feaa879e7ebb7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:adc292fdc3c4d2a03e8c6bbad1853b727"><td class="memItemLeft" align="right" valign="top">static const <a class="el" href="structolc_1_1_pixel.html">Pixel</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceolc.html#adc292fdc3c4d2a03e8c6bbad1853b727">MAGENTA</a> (255, 0, 255)</td></tr>
+<tr class="separator:adc292fdc3c4d2a03e8c6bbad1853b727"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abad91f58a178a173f76ce7d9f9aa99c4"><td class="memItemLeft" align="right" valign="top">static const <a class="el" href="structolc_1_1_pixel.html">Pixel</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceolc.html#abad91f58a178a173f76ce7d9f9aa99c4">DARK_MAGENTA</a> (128, 0, 128)</td></tr>
+<tr class="separator:abad91f58a178a173f76ce7d9f9aa99c4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a150fed0369958dc77d3207298588bc94"><td class="memItemLeft" align="right" valign="top">static const <a class="el" href="structolc_1_1_pixel.html">Pixel</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceolc.html#a150fed0369958dc77d3207298588bc94">VERY_DARK_MAGENTA</a> (64, 0, 64)</td></tr>
+<tr class="separator:a150fed0369958dc77d3207298588bc94"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae3de4726bf87f2d74693e62d76816db1"><td class="memItemLeft" align="right" valign="top">static const <a class="el" href="structolc_1_1_pixel.html">Pixel</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">WHITE</a> (255, 255, 255)</td></tr>
+<tr class="separator:ae3de4726bf87f2d74693e62d76816db1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a183de1c471cfd6f45980bc9c2c58ed9d"><td class="memItemLeft" align="right" valign="top">static const <a class="el" href="structolc_1_1_pixel.html">Pixel</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceolc.html#a183de1c471cfd6f45980bc9c2c58ed9d">BLACK</a> (0, 0, 0)</td></tr>
+<tr class="separator:a183de1c471cfd6f45980bc9c2c58ed9d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac940e7f6502cbced06f26b4d13349166"><td class="memItemLeft" align="right" valign="top">static const <a class="el" href="structolc_1_1_pixel.html">Pixel</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceolc.html#ac940e7f6502cbced06f26b4d13349166">BLANK</a> (0, 0, 0, 0)</td></tr>
+<tr class="separator:ac940e7f6502cbced06f26b4d13349166"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0cb5b54cc54cf0c92741da285010e1e5"><td class="memTemplParams" colspan="2">template&lt;class T &gt; </td></tr>
+<tr class="memitem:a0cb5b54cc54cf0c92741da285010e1e5"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structolc_1_1v2d__generic.html">v2d_generic</a>&lt; <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0">T</a> &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceolc.html#a0cb5b54cc54cf0c92741da285010e1e5">operator*</a> (const float &amp;lhs, const <a class="el" href="structolc_1_1v2d__generic.html">v2d_generic</a>&lt; <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0">T</a> &gt; &amp;rhs)</td></tr>
+<tr class="separator:a0cb5b54cc54cf0c92741da285010e1e5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9a03952e9e6c1c40c2512560ac182382"><td class="memTemplParams" colspan="2">template&lt;class T &gt; </td></tr>
+<tr class="memitem:a9a03952e9e6c1c40c2512560ac182382"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structolc_1_1v2d__generic.html">v2d_generic</a>&lt; <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0">T</a> &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceolc.html#a9a03952e9e6c1c40c2512560ac182382">operator*</a> (const double &amp;lhs, const <a class="el" href="structolc_1_1v2d__generic.html">v2d_generic</a>&lt; <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0">T</a> &gt; &amp;rhs)</td></tr>
+<tr class="separator:a9a03952e9e6c1c40c2512560ac182382"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab04d4eba2afcfda14b1045bace972a76"><td class="memTemplParams" colspan="2">template&lt;class T &gt; </td></tr>
+<tr class="memitem:ab04d4eba2afcfda14b1045bace972a76"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structolc_1_1v2d__generic.html">v2d_generic</a>&lt; <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0">T</a> &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceolc.html#ab04d4eba2afcfda14b1045bace972a76">operator*</a> (const int &amp;lhs, const <a class="el" href="structolc_1_1v2d__generic.html">v2d_generic</a>&lt; <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0">T</a> &gt; &amp;rhs)</td></tr>
+<tr class="separator:ab04d4eba2afcfda14b1045bace972a76"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6448f6127e1003cd9287161c5c4d52e0"><td class="memTemplParams" colspan="2">template&lt;class T &gt; </td></tr>
+<tr class="memitem:a6448f6127e1003cd9287161c5c4d52e0"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structolc_1_1v2d__generic.html">v2d_generic</a>&lt; <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0">T</a> &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceolc.html#a6448f6127e1003cd9287161c5c4d52e0">operator/</a> (const float &amp;lhs, const <a class="el" href="structolc_1_1v2d__generic.html">v2d_generic</a>&lt; <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0">T</a> &gt; &amp;rhs)</td></tr>
+<tr class="separator:a6448f6127e1003cd9287161c5c4d52e0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a879e763a12d6fbc6b4d3e2aac7b4c85a"><td class="memTemplParams" colspan="2">template&lt;class T &gt; </td></tr>
+<tr class="memitem:a879e763a12d6fbc6b4d3e2aac7b4c85a"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structolc_1_1v2d__generic.html">v2d_generic</a>&lt; <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0">T</a> &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceolc.html#a879e763a12d6fbc6b4d3e2aac7b4c85a">operator/</a> (const double &amp;lhs, const <a class="el" href="structolc_1_1v2d__generic.html">v2d_generic</a>&lt; <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0">T</a> &gt; &amp;rhs)</td></tr>
+<tr class="separator:a879e763a12d6fbc6b4d3e2aac7b4c85a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a302501c3eb64a99ffa93feac2cc46115"><td class="memTemplParams" colspan="2">template&lt;class T &gt; </td></tr>
+<tr class="memitem:a302501c3eb64a99ffa93feac2cc46115"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structolc_1_1v2d__generic.html">v2d_generic</a>&lt; <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0">T</a> &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceolc.html#a302501c3eb64a99ffa93feac2cc46115">operator/</a> (const int &amp;lhs, const <a class="el" href="structolc_1_1v2d__generic.html">v2d_generic</a>&lt; <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0">T</a> &gt; &amp;rhs)</td></tr>
+<tr class="separator:a302501c3eb64a99ffa93feac2cc46115"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2831a8757172243381b08adf69e91e0a"><td class="memTemplParams" colspan="2">template&lt;class T , class U &gt; </td></tr>
+<tr class="memitem:a2831a8757172243381b08adf69e91e0a"><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceolc.html#a2831a8757172243381b08adf69e91e0a">operator&lt;</a> (const <a class="el" href="structolc_1_1v2d__generic.html">v2d_generic</a>&lt; <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0">T</a> &gt; &amp;lhs, const <a class="el" href="structolc_1_1v2d__generic.html">v2d_generic</a>&lt; <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a62c2493e1585db2af15cb70ac979fb09">U</a> &gt; &amp;rhs)</td></tr>
+<tr class="separator:a2831a8757172243381b08adf69e91e0a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a34519a6f9006c6c4854bbe762d490900"><td class="memTemplParams" colspan="2">template&lt;class T , class U &gt; </td></tr>
+<tr class="memitem:a34519a6f9006c6c4854bbe762d490900"><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceolc.html#a34519a6f9006c6c4854bbe762d490900">operator&gt;</a> (const <a class="el" href="structolc_1_1v2d__generic.html">v2d_generic</a>&lt; <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0">T</a> &gt; &amp;lhs, const <a class="el" href="structolc_1_1v2d__generic.html">v2d_generic</a>&lt; <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a62c2493e1585db2af15cb70ac979fb09">U</a> &gt; &amp;rhs)</td></tr>
+<tr class="separator:a34519a6f9006c6c4854bbe762d490900"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a>
+Variables</h2></td></tr>
+<tr class="memitem:abf7dfc35dd1d895f33d3635831953e38"><td class="memItemLeft" align="right" valign="top">constexpr uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceolc.html#abf7dfc35dd1d895f33d3635831953e38">nMouseButtons</a> = 5</td></tr>
+<tr class="separator:abf7dfc35dd1d895f33d3635831953e38"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:adede7d1156ab9d8ffdc3e9048f0f364b"><td class="memItemLeft" align="right" valign="top">constexpr uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceolc.html#adede7d1156ab9d8ffdc3e9048f0f364b">nDefaultAlpha</a> = 0xFF</td></tr>
+<tr class="separator:adede7d1156ab9d8ffdc3e9048f0f364b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a10bbdc57cc3fecc7b80ba428eb7494d0"><td class="memItemLeft" align="right" valign="top">constexpr uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceolc.html#a10bbdc57cc3fecc7b80ba428eb7494d0">nDefaultPixel</a> = (<a class="el" href="namespaceolc.html#adede7d1156ab9d8ffdc3e9048f0f364b">nDefaultAlpha</a> &lt;&lt; 24)</td></tr>
+<tr class="separator:a10bbdc57cc3fecc7b80ba428eb7494d0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Typedef Documentation</h2>
+<a id="a51aaa7b75138a3323048a77457735d33"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a51aaa7b75138a3323048a77457735d33">&#9670;&nbsp;</a></span>vd2d</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef <a class="el" href="structolc_1_1v2d__generic.html">v2d_generic</a>&lt;double&gt; <a class="el" href="namespaceolc.html#a51aaa7b75138a3323048a77457735d33">olc::vd2d</a></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="olc_pixel_game_engine_8h_source.html#l00647">647</a> of file <a class="el" href="olc_pixel_game_engine_8h_source.html">olcPixelGameEngine.h</a>.</p>
+
+</div>
+</div>
+<a id="adb87819740ea9625f84c821fffb16429"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#adb87819740ea9625f84c821fffb16429">&#9670;&nbsp;</a></span>vf2d</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef <a class="el" href="structolc_1_1v2d__generic.html">v2d_generic</a>&lt;float&gt; <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="olc_pixel_game_engine_8h_source.html#l00646">646</a> of file <a class="el" href="olc_pixel_game_engine_8h_source.html">olcPixelGameEngine.h</a>.</p>
+
+</div>
+</div>
+<a id="a3c42697361e8a28424bcf8415aba3564"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a3c42697361e8a28424bcf8415aba3564">&#9670;&nbsp;</a></span>vi2d</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef <a class="el" href="structolc_1_1v2d__generic.html">v2d_generic</a>&lt;int32_t&gt; <a class="el" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">olc::vi2d</a></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="olc_pixel_game_engine_8h_source.html#l00644">644</a> of file <a class="el" href="olc_pixel_game_engine_8h_source.html">olcPixelGameEngine.h</a>.</p>
+
+</div>
+</div>
+<a id="ac9f9fa9267428312fd81237a4cc5c8e5"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ac9f9fa9267428312fd81237a4cc5c8e5">&#9670;&nbsp;</a></span>vu2d</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef <a class="el" href="structolc_1_1v2d__generic.html">v2d_generic</a>&lt;uint32_t&gt; <a class="el" href="namespaceolc.html#ac9f9fa9267428312fd81237a4cc5c8e5">olc::vu2d</a></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="olc_pixel_game_engine_8h_source.html#l00645">645</a> of file <a class="el" href="olc_pixel_game_engine_8h_source.html">olcPixelGameEngine.h</a>.</p>
+
+</div>
+</div>
+<h2 class="groupheader">Enumeration Type Documentation</h2>
+<a id="aeda642f63378f868193c28e8613138ca"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aeda642f63378f868193c28e8613138ca">&#9670;&nbsp;</a></span>DecalMode</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">enum <a class="el" href="namespaceolc.html#aeda642f63378f868193c28e8613138ca">olc::DecalMode</a></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">strong</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+<table class="fieldtable">
+<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="aeda642f63378f868193c28e8613138caa1e23852820b9154316c7c06e2b7ba051"></a>NORMAL&#160;</td><td class="fielddoc"></td></tr>
+<tr><td class="fieldname"><a id="aeda642f63378f868193c28e8613138caa8d8c2c7c04ebe2b70bca10a3060ca491"></a>ADDITIVE&#160;</td><td class="fielddoc"></td></tr>
+<tr><td class="fieldname"><a id="aeda642f63378f868193c28e8613138caa418ef46700a2836c0d6218e2b46bf564"></a>MULTIPLICATIVE&#160;</td><td class="fielddoc"></td></tr>
+<tr><td class="fieldname"><a id="aeda642f63378f868193c28e8613138caa301b25ea9a653329b5d5d727f92514c4"></a>STENCIL&#160;</td><td class="fielddoc"></td></tr>
+<tr><td class="fieldname"><a id="aeda642f63378f868193c28e8613138caab892134232b911680f88a64a24883f7d"></a>ILLUMINATE&#160;</td><td class="fielddoc"></td></tr>
+<tr><td class="fieldname"><a id="aeda642f63378f868193c28e8613138caa43ea8c7cefb63ec314b4df5628cba577"></a>WIREFRAME&#160;</td><td class="fielddoc"></td></tr>
+</table>
+
+<p class="definition">Definition at line <a class="el" href="olc_pixel_game_engine_8h_source.html#l00751">751</a> of file <a class="el" href="olc_pixel_game_engine_8h_source.html">olcPixelGameEngine.h</a>.</p>
+
+</div>
+</div>
+<a id="aa26a067cf0db83f0b1dd587036a64be7"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aa26a067cf0db83f0b1dd587036a64be7">&#9670;&nbsp;</a></span>Key</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">enum <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7">olc::Key</a></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<table class="fieldtable">
+<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="aa26a067cf0db83f0b1dd587036a64be7a569010ded143bbdfd1b2dc8e82327b45"></a>NONE&#160;</td><td class="fielddoc"></td></tr>
+<tr><td class="fieldname"><a id="aa26a067cf0db83f0b1dd587036a64be7a3e1af6612f2964145f438bb63073098d"></a>A&#160;</td><td class="fielddoc"></td></tr>
+<tr><td class="fieldname"><a id="aa26a067cf0db83f0b1dd587036a64be7a8baf1c6fa76f36bae92c12df88f4c84d"></a>B&#160;</td><td class="fielddoc"></td></tr>
+<tr><td class="fieldname"><a id="aa26a067cf0db83f0b1dd587036a64be7aaa5fe91e0948a39a142504c1f9067549"></a>C&#160;</td><td class="fielddoc"></td></tr>
+<tr><td class="fieldname"><a id="aa26a067cf0db83f0b1dd587036a64be7a7323455add036f066f8b23546f0c37bb"></a>D&#160;</td><td class="fielddoc"></td></tr>
+<tr><td class="fieldname"><a id="aa26a067cf0db83f0b1dd587036a64be7ad29058aa6514f4f9dcdefdba93adc8ec"></a>E&#160;</td><td class="fielddoc"></td></tr>
+<tr><td class="fieldname"><a id="aa26a067cf0db83f0b1dd587036a64be7a614698cb99af6a9effa5d7ce88b2c674"></a>F&#160;</td><td class="fielddoc"></td></tr>
+<tr><td class="fieldname"><a id="aa26a067cf0db83f0b1dd587036a64be7a1a7a9ef9ded3ee4bb7b7e4fbc69ae4b8"></a>G&#160;</td><td class="fielddoc"></td></tr>
+<tr><td class="fieldname"><a id="aa26a067cf0db83f0b1dd587036a64be7a224c0773e09bdb7fb13683fbb4eeee1a"></a>H&#160;</td><td class="fielddoc"></td></tr>
+<tr><td class="fieldname"><a id="aa26a067cf0db83f0b1dd587036a64be7ac242ddce5db0d462674ead1db3956a19"></a>I&#160;</td><td class="fielddoc"></td></tr>
+<tr><td class="fieldname"><a id="aa26a067cf0db83f0b1dd587036a64be7a476769e330b87f2fb75aaa684c2f6373"></a>J&#160;</td><td class="fielddoc"></td></tr>
+<tr><td class="fieldname"><a id="aa26a067cf0db83f0b1dd587036a64be7a136309f07b14d70a8561a69ca563bab7"></a>K&#160;</td><td class="fielddoc"></td></tr>
+<tr><td class="fieldname"><a id="aa26a067cf0db83f0b1dd587036a64be7a4d809048542b770e810d48919c8f8500"></a>L&#160;</td><td class="fielddoc"></td></tr>
+<tr><td class="fieldname"><a id="aa26a067cf0db83f0b1dd587036a64be7afda4a6ac36e1870cd31522ac4e40a113"></a>M&#160;</td><td class="fielddoc"></td></tr>
+<tr><td class="fieldname"><a id="aa26a067cf0db83f0b1dd587036a64be7ab9b5b3e2b7e4f47de4a8d84e03cd5911"></a>N&#160;</td><td class="fielddoc"></td></tr>
+<tr><td class="fieldname"><a id="aa26a067cf0db83f0b1dd587036a64be7a7f95c3a8701b46a2cca143078d7e3aea"></a>O&#160;</td><td class="fielddoc"></td></tr>
+<tr><td class="fieldname"><a id="aa26a067cf0db83f0b1dd587036a64be7a2af805290f6ef4b2de028b868debe170"></a>P&#160;</td><td class="fielddoc"></td></tr>
+<tr><td class="fieldname"><a id="aa26a067cf0db83f0b1dd587036a64be7a6d49ec75b05a97e8714ac8c244ad29a8"></a>Q&#160;</td><td class="fielddoc"></td></tr>
+<tr><td class="fieldname"><a id="aa26a067cf0db83f0b1dd587036a64be7a7417555746b2b1026b8ba65912817111"></a>R&#160;</td><td class="fielddoc"></td></tr>
+<tr><td class="fieldname"><a id="aa26a067cf0db83f0b1dd587036a64be7a050dfda2928d980787eeebcaaa4e6fa7"></a>S&#160;</td><td class="fielddoc"></td></tr>
+<tr><td class="fieldname"><a id="aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0"></a>T&#160;</td><td class="fielddoc"></td></tr>
+<tr><td class="fieldname"><a id="aa26a067cf0db83f0b1dd587036a64be7a62c2493e1585db2af15cb70ac979fb09"></a>U&#160;</td><td class="fielddoc"></td></tr>
+<tr><td class="fieldname"><a id="aa26a067cf0db83f0b1dd587036a64be7a170eaa7913d25c0ff02712bd93d7bf81"></a>V&#160;</td><td class="fielddoc"></td></tr>
+<tr><td class="fieldname"><a id="aa26a067cf0db83f0b1dd587036a64be7ac1ae605c94e2d813c718148311c101d1"></a>W&#160;</td><td class="fielddoc"></td></tr>
+<tr><td class="fieldname"><a id="aa26a067cf0db83f0b1dd587036a64be7a259dcb71eab0ee6c477f792543f43ec5"></a>X&#160;</td><td class="fielddoc"></td></tr>
+<tr><td class="fieldname"><a id="aa26a067cf0db83f0b1dd587036a64be7a6207f4e5a37e546fa3881817046587b9"></a>Y&#160;</td><td class="fielddoc"></td></tr>
+<tr><td class="fieldname"><a id="aa26a067cf0db83f0b1dd587036a64be7a7c408b7a6694f74ac270013753b13aaa"></a>Z&#160;</td><td class="fielddoc"></td></tr>
+<tr><td class="fieldname"><a id="aa26a067cf0db83f0b1dd587036a64be7a2dd03c94eccd6d1259d4b2b51b7f85a7"></a>K0&#160;</td><td class="fielddoc"></td></tr>
+<tr><td class="fieldname"><a id="aa26a067cf0db83f0b1dd587036a64be7a353892e1e3473d0a6d3427dd86080506"></a>K1&#160;</td><td class="fielddoc"></td></tr>
+<tr><td class="fieldname"><a id="aa26a067cf0db83f0b1dd587036a64be7ab3b331dc3158175e2c567f7ebdf9fa75"></a>K2&#160;</td><td class="fielddoc"></td></tr>
+<tr><td class="fieldname"><a id="aa26a067cf0db83f0b1dd587036a64be7aba2ad21d300fb113ff4e82665800cf75"></a>K3&#160;</td><td class="fielddoc"></td></tr>
+<tr><td class="fieldname"><a id="aa26a067cf0db83f0b1dd587036a64be7aadd3a981032ec5fc07440dd0dbd1a3b3"></a>K4&#160;</td><td class="fielddoc"></td></tr>
+<tr><td class="fieldname"><a id="aa26a067cf0db83f0b1dd587036a64be7a353906757178b0d48008b62cdca75332"></a>K5&#160;</td><td class="fielddoc"></td></tr>
+<tr><td class="fieldname"><a id="aa26a067cf0db83f0b1dd587036a64be7a81afecef4b483614604bfc5341d8a2d5"></a>K6&#160;</td><td class="fielddoc"></td></tr>
+<tr><td class="fieldname"><a id="aa26a067cf0db83f0b1dd587036a64be7a89291a8afb7ac7b481090dc97f643263"></a>K7&#160;</td><td class="fielddoc"></td></tr>
+<tr><td class="fieldname"><a id="aa26a067cf0db83f0b1dd587036a64be7a636f4e49257a6476ad0aab590318672f"></a>K8&#160;</td><td class="fielddoc"></td></tr>
+<tr><td class="fieldname"><a id="aa26a067cf0db83f0b1dd587036a64be7a949dddf48734610228c20566a33912bc"></a>K9&#160;</td><td class="fielddoc"></td></tr>
+<tr><td class="fieldname"><a id="aa26a067cf0db83f0b1dd587036a64be7a17a119da4c7fd21cd061972ac8f8029a"></a>F1&#160;</td><td class="fielddoc"></td></tr>
+<tr><td class="fieldname"><a id="aa26a067cf0db83f0b1dd587036a64be7a207c1404adcacfadf941ffc681485026"></a>F2&#160;</td><td class="fielddoc"></td></tr>
+<tr><td class="fieldname"><a id="aa26a067cf0db83f0b1dd587036a64be7a573a484680114e221c1a3ecd8307d61a"></a>F3&#160;</td><td class="fielddoc"></td></tr>
+<tr><td class="fieldname"><a id="aa26a067cf0db83f0b1dd587036a64be7a3c808be2b8b226138090bb3884bdc52b"></a>F4&#160;</td><td class="fielddoc"></td></tr>
+<tr><td class="fieldname"><a id="aa26a067cf0db83f0b1dd587036a64be7ab9dd7de33e89c10afa7947bc5ff6fdea"></a>F5&#160;</td><td class="fielddoc"></td></tr>
+<tr><td class="fieldname"><a id="aa26a067cf0db83f0b1dd587036a64be7a12e4309f479cd3e34476ef3be7986847"></a>F6&#160;</td><td class="fielddoc"></td></tr>
+<tr><td class="fieldname"><a id="aa26a067cf0db83f0b1dd587036a64be7ac955ad4fdd41f4d3600b29da016fdf36"></a>F7&#160;</td><td class="fielddoc"></td></tr>
+<tr><td class="fieldname"><a id="aa26a067cf0db83f0b1dd587036a64be7ab9ff66b449c18ecdb5b83a2e055e393b"></a>F8&#160;</td><td class="fielddoc"></td></tr>
+<tr><td class="fieldname"><a id="aa26a067cf0db83f0b1dd587036a64be7a2f2949bdd6d44b3c918531ebc30d8186"></a>F9&#160;</td><td class="fielddoc"></td></tr>
+<tr><td class="fieldname"><a id="aa26a067cf0db83f0b1dd587036a64be7abe90f6618beb39117690b93a5c9d8ccb"></a>F10&#160;</td><td class="fielddoc"></td></tr>
+<tr><td class="fieldname"><a id="aa26a067cf0db83f0b1dd587036a64be7aba366840d455651d4cedc7f7ee4c770b"></a>F11&#160;</td><td class="fielddoc"></td></tr>
+<tr><td class="fieldname"><a id="aa26a067cf0db83f0b1dd587036a64be7a9bc869632cc0095b7d8e456efd571969"></a>F12&#160;</td><td class="fielddoc"></td></tr>
+<tr><td class="fieldname"><a id="aa26a067cf0db83f0b1dd587036a64be7a2b35f0b03e615b828187a990935344c4"></a>UP&#160;</td><td class="fielddoc"></td></tr>
+<tr><td class="fieldname"><a id="aa26a067cf0db83f0b1dd587036a64be7a506f2ec576fcd3a8fabd37461bba83f8"></a>DOWN&#160;</td><td class="fielddoc"></td></tr>
+<tr><td class="fieldname"><a id="aa26a067cf0db83f0b1dd587036a64be7a4da01be8126ba4113717cc6385ad22d2"></a>LEFT&#160;</td><td class="fielddoc"></td></tr>
+<tr><td class="fieldname"><a id="aa26a067cf0db83f0b1dd587036a64be7a58e7b18972e446a03ce5ce915bc2d34d"></a>RIGHT&#160;</td><td class="fielddoc"></td></tr>
+<tr><td class="fieldname"><a id="aa26a067cf0db83f0b1dd587036a64be7a925d9a708542cd050a0b4f87bd7ba297"></a>SPACE&#160;</td><td class="fielddoc"></td></tr>
+<tr><td class="fieldname"><a id="aa26a067cf0db83f0b1dd587036a64be7aef93738bc8d89f07932dd1a603b021bd"></a>TAB&#160;</td><td class="fielddoc"></td></tr>
+<tr><td class="fieldname"><a id="aa26a067cf0db83f0b1dd587036a64be7a4cd994e0e2285e9b52e129f74c84aa0b"></a>SHIFT&#160;</td><td class="fielddoc"></td></tr>
+<tr><td class="fieldname"><a id="aa26a067cf0db83f0b1dd587036a64be7ae7e6e69075c36b0e44309aae888b86dc"></a>CTRL&#160;</td><td class="fielddoc"></td></tr>
+<tr><td class="fieldname"><a id="aa26a067cf0db83f0b1dd587036a64be7a691b8388214af88a7794c43d31fbe16a"></a>INS&#160;</td><td class="fielddoc"></td></tr>
+<tr><td class="fieldname"><a id="aa26a067cf0db83f0b1dd587036a64be7a5a979509d792ab38404b7a2aca12c981"></a>DEL&#160;</td><td class="fielddoc"></td></tr>
+<tr><td class="fieldname"><a id="aa26a067cf0db83f0b1dd587036a64be7a29419f86c551b623c828f9530f301389"></a>HOME&#160;</td><td class="fielddoc"></td></tr>
+<tr><td class="fieldname"><a id="aa26a067cf0db83f0b1dd587036a64be7a53394a407c13bf8192b2946607d27a0f"></a>END&#160;</td><td class="fielddoc"></td></tr>
+<tr><td class="fieldname"><a id="aa26a067cf0db83f0b1dd587036a64be7a0bab26868b97eab537e7cad879d4b9a3"></a>PGUP&#160;</td><td class="fielddoc"></td></tr>
+<tr><td class="fieldname"><a id="aa26a067cf0db83f0b1dd587036a64be7aae334e3943922c2b16842afc5306a1e9"></a>PGDN&#160;</td><td class="fielddoc"></td></tr>
+<tr><td class="fieldname"><a id="aa26a067cf0db83f0b1dd587036a64be7a390af039d8a8c4ab71787f001f810521"></a>BACK&#160;</td><td class="fielddoc"></td></tr>
+<tr><td class="fieldname"><a id="aa26a067cf0db83f0b1dd587036a64be7ac58fbe549b8c1a668c42a17d9e572b0f"></a>ESCAPE&#160;</td><td class="fielddoc"></td></tr>
+<tr><td class="fieldname"><a id="aa26a067cf0db83f0b1dd587036a64be7a4f04a0bac23ee4f7b875d0328f29df27"></a>RETURN&#160;</td><td class="fielddoc"></td></tr>
+<tr><td class="fieldname"><a id="aa26a067cf0db83f0b1dd587036a64be7a31321cae06dfe0989acbbe94c5272b33"></a>ENTER&#160;</td><td class="fielddoc"></td></tr>
+<tr><td class="fieldname"><a id="aa26a067cf0db83f0b1dd587036a64be7a0bc227b9b4a43118d7500e8195806d74"></a>PAUSE&#160;</td><td class="fielddoc"></td></tr>
+<tr><td class="fieldname"><a id="aa26a067cf0db83f0b1dd587036a64be7a44cf52f457ad06d45cd947c72c291ccc"></a>SCROLL&#160;</td><td class="fielddoc"></td></tr>
+<tr><td class="fieldname"><a id="aa26a067cf0db83f0b1dd587036a64be7a16054c3b1419b9679d95ac70ef262666"></a>NP0&#160;</td><td class="fielddoc"></td></tr>
+<tr><td class="fieldname"><a id="aa26a067cf0db83f0b1dd587036a64be7a96c49dba90b7ecdfcf88e18c2842a964"></a>NP1&#160;</td><td class="fielddoc"></td></tr>
+<tr><td class="fieldname"><a id="aa26a067cf0db83f0b1dd587036a64be7a7ca6517890a3566dbf758618f9c7690f"></a>NP2&#160;</td><td class="fielddoc"></td></tr>
+<tr><td class="fieldname"><a id="aa26a067cf0db83f0b1dd587036a64be7aab84341adb43a72b48030189f9919360"></a>NP3&#160;</td><td class="fielddoc"></td></tr>
+<tr><td class="fieldname"><a id="aa26a067cf0db83f0b1dd587036a64be7a443551e4895cf1d2be984eba0bd7098e"></a>NP4&#160;</td><td class="fielddoc"></td></tr>
+<tr><td class="fieldname"><a id="aa26a067cf0db83f0b1dd587036a64be7a0ba7e1a6dbc9d1291a40172a09bb49a4"></a>NP5&#160;</td><td class="fielddoc"></td></tr>
+<tr><td class="fieldname"><a id="aa26a067cf0db83f0b1dd587036a64be7ad6aae0ca10843b8046ee0186af4e42f9"></a>NP6&#160;</td><td class="fielddoc"></td></tr>
+<tr><td class="fieldname"><a id="aa26a067cf0db83f0b1dd587036a64be7afee25adbffa6e8fc092d52193195182f"></a>NP7&#160;</td><td class="fielddoc"></td></tr>
+<tr><td class="fieldname"><a id="aa26a067cf0db83f0b1dd587036a64be7a468bb1704a74fc6e42d28e7bee8ecb51"></a>NP8&#160;</td><td class="fielddoc"></td></tr>
+<tr><td class="fieldname"><a id="aa26a067cf0db83f0b1dd587036a64be7a53987c7c18a4a4479c4e1ff7f65c414e"></a>NP9&#160;</td><td class="fielddoc"></td></tr>
+<tr><td class="fieldname"><a id="aa26a067cf0db83f0b1dd587036a64be7ae2ce826d1d0de6429f9f28a19d11edfb"></a>NP_MUL&#160;</td><td class="fielddoc"></td></tr>
+<tr><td class="fieldname"><a id="aa26a067cf0db83f0b1dd587036a64be7aee5afd77eb82eb3111195ee300ff3714"></a>NP_DIV&#160;</td><td class="fielddoc"></td></tr>
+<tr><td class="fieldname"><a id="aa26a067cf0db83f0b1dd587036a64be7af15830fd3562b144e15a9d8abeb6c118"></a>NP_ADD&#160;</td><td class="fielddoc"></td></tr>
+<tr><td class="fieldname"><a id="aa26a067cf0db83f0b1dd587036a64be7aade223a1643f8d607eb44fff1bbaae8e"></a>NP_SUB&#160;</td><td class="fielddoc"></td></tr>
+<tr><td class="fieldname"><a id="aa26a067cf0db83f0b1dd587036a64be7a2c21f93f355bf0a6baa7e205acd86b50"></a>NP_DECIMAL&#160;</td><td class="fielddoc"></td></tr>
+<tr><td class="fieldname"><a id="aa26a067cf0db83f0b1dd587036a64be7a1adffcecf8c735b404ac6eedf220ae5a"></a>PERIOD&#160;</td><td class="fielddoc"></td></tr>
+<tr><td class="fieldname"><a id="aa26a067cf0db83f0b1dd587036a64be7aa82c0ef0b75db6208407e90f6f77f002"></a>EQUALS&#160;</td><td class="fielddoc"></td></tr>
+<tr><td class="fieldname"><a id="aa26a067cf0db83f0b1dd587036a64be7ae2fab0c220f54cd28729c9340951ecb4"></a>COMMA&#160;</td><td class="fielddoc"></td></tr>
+<tr><td class="fieldname"><a id="aa26a067cf0db83f0b1dd587036a64be7a4b3a1d83a513de0e2c3c8ba2a8a5fd2d"></a>MINUS&#160;</td><td class="fielddoc"></td></tr>
+<tr><td class="fieldname"><a id="aa26a067cf0db83f0b1dd587036a64be7a3a044efaf7d74df21e84a29063006eae"></a>OEM_1&#160;</td><td class="fielddoc"></td></tr>
+<tr><td class="fieldname"><a id="aa26a067cf0db83f0b1dd587036a64be7ad29833dd46d756ecf0e9d477d0845450"></a>OEM_2&#160;</td><td class="fielddoc"></td></tr>
+<tr><td class="fieldname"><a id="aa26a067cf0db83f0b1dd587036a64be7abb25924adf005b39efaef185f332a3ad"></a>OEM_3&#160;</td><td class="fielddoc"></td></tr>
+<tr><td class="fieldname"><a id="aa26a067cf0db83f0b1dd587036a64be7aa09e2508e2f2fd372d3e37ebdfce6814"></a>OEM_4&#160;</td><td class="fielddoc"></td></tr>
+<tr><td class="fieldname"><a id="aa26a067cf0db83f0b1dd587036a64be7ad7e69e28cedaf91718aa4801d5a3bdb7"></a>OEM_5&#160;</td><td class="fielddoc"></td></tr>
+<tr><td class="fieldname"><a id="aa26a067cf0db83f0b1dd587036a64be7af2cec59ecc924be0b636e5b767abf29f"></a>OEM_6&#160;</td><td class="fielddoc"></td></tr>
+<tr><td class="fieldname"><a id="aa26a067cf0db83f0b1dd587036a64be7a3dada7cdf09fb367c10c650e9bce7bfa"></a>OEM_7&#160;</td><td class="fielddoc"></td></tr>
+<tr><td class="fieldname"><a id="aa26a067cf0db83f0b1dd587036a64be7ab719317cfd8ac665e8cc2f420f74b46a"></a>OEM_8&#160;</td><td class="fielddoc"></td></tr>
+<tr><td class="fieldname"><a id="aa26a067cf0db83f0b1dd587036a64be7a523c88e17275650861203e32067dde01"></a>CAPS_LOCK&#160;</td><td class="fielddoc"></td></tr>
+<tr><td class="fieldname"><a id="aa26a067cf0db83f0b1dd587036a64be7a35430b793d6fae00ed8b060cb0accf32"></a>ENUM_END&#160;</td><td class="fielddoc"></td></tr>
+</table>
+
+<p class="definition">Definition at line <a class="el" href="olc_pixel_game_engine_8h_source.html#l00548">548</a> of file <a class="el" href="olc_pixel_game_engine_8h_source.html">olcPixelGameEngine.h</a>.</p>
+
+</div>
+</div>
+<a id="a3d40e9b1c005602550230690b55ae87b"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a3d40e9b1c005602550230690b55ae87b">&#9670;&nbsp;</a></span>rcode</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">enum <a class="el" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87b">olc::rcode</a></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<table class="fieldtable">
+<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="a3d40e9b1c005602550230690b55ae87baadc8ac6e9769db5bb290fbf5f8284dbf"></a>FAIL&#160;</td><td class="fielddoc"></td></tr>
+<tr><td class="fieldname"><a id="a3d40e9b1c005602550230690b55ae87ba0178b5f8abe39121e6f14d3c6c093a82"></a>OK&#160;</td><td class="fielddoc"></td></tr>
+<tr><td class="fieldname"><a id="a3d40e9b1c005602550230690b55ae87babfe0b9ad99c942b01b1ee61404f559b5"></a>NO_FILE&#160;</td><td class="fielddoc"></td></tr>
+</table>
+
+<p class="definition">Definition at line <a class="el" href="olc_pixel_game_engine_8h_source.html#l00497">497</a> of file <a class="el" href="olc_pixel_game_engine_8h_source.html">olcPixelGameEngine.h</a>.</p>
+
+</div>
+</div>
+<h2 class="groupheader">Function Documentation</h2>
+<a id="a183de1c471cfd6f45980bc9c2c58ed9d"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a183de1c471cfd6f45980bc9c2c58ed9d">&#9670;&nbsp;</a></span>BLACK()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">static const <a class="el" href="structolc_1_1_pixel.html">Pixel</a> olc::BLACK </td>
+          <td>(</td>
+          <td class="paramtype">0&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">0&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">0&#160;</td>
+          <td class="paramname">&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="ac940e7f6502cbced06f26b4d13349166"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ac940e7f6502cbced06f26b4d13349166">&#9670;&nbsp;</a></span>BLANK()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">static const <a class="el" href="structolc_1_1_pixel.html">Pixel</a> olc::BLANK </td>
+          <td>(</td>
+          <td class="paramtype">0&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">0&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">0&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">0&#160;</td>
+          <td class="paramname">&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="ac1e1d3e39e0b78e9767142c9daeba4ee"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ac1e1d3e39e0b78e9767142c9daeba4ee">&#9670;&nbsp;</a></span>BLUE()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">static const <a class="el" href="structolc_1_1_pixel.html">Pixel</a> olc::BLUE </td>
+          <td>(</td>
+          <td class="paramtype">0&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">0&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">255&#160;</td>
+          <td class="paramname">&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a43ffa41e9a4a260b86da82b823e6a252"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a43ffa41e9a4a260b86da82b823e6a252">&#9670;&nbsp;</a></span>CYAN()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">static const <a class="el" href="structolc_1_1_pixel.html">Pixel</a> olc::CYAN </td>
+          <td>(</td>
+          <td class="paramtype">0&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">255&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">255&#160;</td>
+          <td class="paramname">&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="ac6e041f71287438da8b9145758c4fe63"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ac6e041f71287438da8b9145758c4fe63">&#9670;&nbsp;</a></span>DARK_BLUE()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">static const <a class="el" href="structolc_1_1_pixel.html">Pixel</a> olc::DARK_BLUE </td>
+          <td>(</td>
+          <td class="paramtype">0&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">0&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">128&#160;</td>
+          <td class="paramname">&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="aa0824f5fdd85c58712495a7bc0de191e"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aa0824f5fdd85c58712495a7bc0de191e">&#9670;&nbsp;</a></span>DARK_CYAN()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">static const <a class="el" href="structolc_1_1_pixel.html">Pixel</a> olc::DARK_CYAN </td>
+          <td>(</td>
+          <td class="paramtype">0&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">128&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">128&#160;</td>
+          <td class="paramname">&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="ac192218acb2f30c4c3748485dd5e4ba0"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ac192218acb2f30c4c3748485dd5e4ba0">&#9670;&nbsp;</a></span>DARK_GREEN()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">static const <a class="el" href="structolc_1_1_pixel.html">Pixel</a> olc::DARK_GREEN </td>
+          <td>(</td>
+          <td class="paramtype">0&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">128&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">0&#160;</td>
+          <td class="paramname">&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a7208a6ce62e94eca5b0ba80f7c2f5e30"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a7208a6ce62e94eca5b0ba80f7c2f5e30">&#9670;&nbsp;</a></span>DARK_GREY()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">static const <a class="el" href="structolc_1_1_pixel.html">Pixel</a> olc::DARK_GREY </td>
+          <td>(</td>
+          <td class="paramtype">128&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">128&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">128&#160;</td>
+          <td class="paramname">&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="abad91f58a178a173f76ce7d9f9aa99c4"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#abad91f58a178a173f76ce7d9f9aa99c4">&#9670;&nbsp;</a></span>DARK_MAGENTA()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">static const <a class="el" href="structolc_1_1_pixel.html">Pixel</a> olc::DARK_MAGENTA </td>
+          <td>(</td>
+          <td class="paramtype">128&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">0&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">128&#160;</td>
+          <td class="paramname">&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a8265396ef812918ca95d2e7aa39c14cc"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a8265396ef812918ca95d2e7aa39c14cc">&#9670;&nbsp;</a></span>DARK_RED()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">static const <a class="el" href="structolc_1_1_pixel.html">Pixel</a> olc::DARK_RED </td>
+          <td>(</td>
+          <td class="paramtype">128&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">0&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">0&#160;</td>
+          <td class="paramname">&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a379f9d3a40edb1700299c031cd0b6a08"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a379f9d3a40edb1700299c031cd0b6a08">&#9670;&nbsp;</a></span>DARK_YELLOW()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">static const <a class="el" href="structolc_1_1_pixel.html">Pixel</a> olc::DARK_YELLOW </td>
+          <td>(</td>
+          <td class="paramtype">128&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">128&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">0&#160;</td>
+          <td class="paramname">&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a32b98884f548bf731eab3225557ebe8c"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a32b98884f548bf731eab3225557ebe8c">&#9670;&nbsp;</a></span>GREEN()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">static const <a class="el" href="structolc_1_1_pixel.html">Pixel</a> olc::GREEN </td>
+          <td>(</td>
+          <td class="paramtype">0&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">255&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">0&#160;</td>
+          <td class="paramname">&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="adc292fdc3c4d2a03e8c6bbad1853b727"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#adc292fdc3c4d2a03e8c6bbad1853b727">&#9670;&nbsp;</a></span>MAGENTA()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">static const <a class="el" href="structolc_1_1_pixel.html">Pixel</a> olc::MAGENTA </td>
+          <td>(</td>
+          <td class="paramtype">255&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">0&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">255&#160;</td>
+          <td class="paramname">&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a9a03952e9e6c1c40c2512560ac182382"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a9a03952e9e6c1c40c2512560ac182382">&#9670;&nbsp;</a></span>operator*() <span class="overload">[1/3]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;class T &gt; </div>
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structolc_1_1v2d__generic.html">v2d_generic</a>&lt;<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0">T</a>&gt; olc::operator* </td>
+          <td>(</td>
+          <td class="paramtype">const double &amp;&#160;</td>
+          <td class="paramname"><em>lhs</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structolc_1_1v2d__generic.html">v2d_generic</a>&lt; <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0">T</a> &gt; &amp;&#160;</td>
+          <td class="paramname"><em>rhs</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="olc_pixel_game_engine_8h_source.html#l00627">627</a> of file <a class="el" href="olc_pixel_game_engine_8h_source.html">olcPixelGameEngine.h</a>.</p>
+
+</div>
+</div>
+<a id="a0cb5b54cc54cf0c92741da285010e1e5"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a0cb5b54cc54cf0c92741da285010e1e5">&#9670;&nbsp;</a></span>operator*() <span class="overload">[2/3]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;class T &gt; </div>
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structolc_1_1v2d__generic.html">v2d_generic</a>&lt;<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0">T</a>&gt; olc::operator* </td>
+          <td>(</td>
+          <td class="paramtype">const float &amp;&#160;</td>
+          <td class="paramname"><em>lhs</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structolc_1_1v2d__generic.html">v2d_generic</a>&lt; <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0">T</a> &gt; &amp;&#160;</td>
+          <td class="paramname"><em>rhs</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="olc_pixel_game_engine_8h_source.html#l00625">625</a> of file <a class="el" href="olc_pixel_game_engine_8h_source.html">olcPixelGameEngine.h</a>.</p>
+
+</div>
+</div>
+<a id="ab04d4eba2afcfda14b1045bace972a76"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ab04d4eba2afcfda14b1045bace972a76">&#9670;&nbsp;</a></span>operator*() <span class="overload">[3/3]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;class T &gt; </div>
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structolc_1_1v2d__generic.html">v2d_generic</a>&lt;<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0">T</a>&gt; olc::operator* </td>
+          <td>(</td>
+          <td class="paramtype">const int &amp;&#160;</td>
+          <td class="paramname"><em>lhs</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structolc_1_1v2d__generic.html">v2d_generic</a>&lt; <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0">T</a> &gt; &amp;&#160;</td>
+          <td class="paramname"><em>rhs</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="olc_pixel_game_engine_8h_source.html#l00629">629</a> of file <a class="el" href="olc_pixel_game_engine_8h_source.html">olcPixelGameEngine.h</a>.</p>
+
+</div>
+</div>
+<a id="a879e763a12d6fbc6b4d3e2aac7b4c85a"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a879e763a12d6fbc6b4d3e2aac7b4c85a">&#9670;&nbsp;</a></span>operator/() <span class="overload">[1/3]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;class T &gt; </div>
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structolc_1_1v2d__generic.html">v2d_generic</a>&lt;<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0">T</a>&gt; olc::operator/ </td>
+          <td>(</td>
+          <td class="paramtype">const double &amp;&#160;</td>
+          <td class="paramname"><em>lhs</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structolc_1_1v2d__generic.html">v2d_generic</a>&lt; <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0">T</a> &gt; &amp;&#160;</td>
+          <td class="paramname"><em>rhs</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="olc_pixel_game_engine_8h_source.html#l00633">633</a> of file <a class="el" href="olc_pixel_game_engine_8h_source.html">olcPixelGameEngine.h</a>.</p>
+
+</div>
+</div>
+<a id="a6448f6127e1003cd9287161c5c4d52e0"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a6448f6127e1003cd9287161c5c4d52e0">&#9670;&nbsp;</a></span>operator/() <span class="overload">[2/3]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;class T &gt; </div>
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structolc_1_1v2d__generic.html">v2d_generic</a>&lt;<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0">T</a>&gt; olc::operator/ </td>
+          <td>(</td>
+          <td class="paramtype">const float &amp;&#160;</td>
+          <td class="paramname"><em>lhs</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structolc_1_1v2d__generic.html">v2d_generic</a>&lt; <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0">T</a> &gt; &amp;&#160;</td>
+          <td class="paramname"><em>rhs</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="olc_pixel_game_engine_8h_source.html#l00631">631</a> of file <a class="el" href="olc_pixel_game_engine_8h_source.html">olcPixelGameEngine.h</a>.</p>
+
+</div>
+</div>
+<a id="a302501c3eb64a99ffa93feac2cc46115"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a302501c3eb64a99ffa93feac2cc46115">&#9670;&nbsp;</a></span>operator/() <span class="overload">[3/3]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;class T &gt; </div>
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structolc_1_1v2d__generic.html">v2d_generic</a>&lt;<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0">T</a>&gt; olc::operator/ </td>
+          <td>(</td>
+          <td class="paramtype">const int &amp;&#160;</td>
+          <td class="paramname"><em>lhs</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structolc_1_1v2d__generic.html">v2d_generic</a>&lt; <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0">T</a> &gt; &amp;&#160;</td>
+          <td class="paramname"><em>rhs</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="olc_pixel_game_engine_8h_source.html#l00635">635</a> of file <a class="el" href="olc_pixel_game_engine_8h_source.html">olcPixelGameEngine.h</a>.</p>
+
+</div>
+</div>
+<a id="a2831a8757172243381b08adf69e91e0a"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a2831a8757172243381b08adf69e91e0a">&#9670;&nbsp;</a></span>operator&lt;()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;class T , class U &gt; </div>
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">bool olc::operator&lt; </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="structolc_1_1v2d__generic.html">v2d_generic</a>&lt; <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0">T</a> &gt; &amp;&#160;</td>
+          <td class="paramname"><em>lhs</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structolc_1_1v2d__generic.html">v2d_generic</a>&lt; <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a62c2493e1585db2af15cb70ac979fb09">U</a> &gt; &amp;&#160;</td>
+          <td class="paramname"><em>rhs</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="olc_pixel_game_engine_8h_source.html#l00639">639</a> of file <a class="el" href="olc_pixel_game_engine_8h_source.html">olcPixelGameEngine.h</a>.</p>
+
+</div>
+</div>
+<a id="a34519a6f9006c6c4854bbe762d490900"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a34519a6f9006c6c4854bbe762d490900">&#9670;&nbsp;</a></span>operator&gt;()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;class T , class U &gt; </div>
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">bool olc::operator&gt; </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="structolc_1_1v2d__generic.html">v2d_generic</a>&lt; <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0">T</a> &gt; &amp;&#160;</td>
+          <td class="paramname"><em>lhs</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structolc_1_1v2d__generic.html">v2d_generic</a>&lt; <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a62c2493e1585db2af15cb70ac979fb09">U</a> &gt; &amp;&#160;</td>
+          <td class="paramname"><em>rhs</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="olc_pixel_game_engine_8h_source.html#l00641">641</a> of file <a class="el" href="olc_pixel_game_engine_8h_source.html">olcPixelGameEngine.h</a>.</p>
+
+</div>
+</div>
+<a id="a06c9f23f2e370e7afe71788427a820fd"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a06c9f23f2e370e7afe71788427a820fd">&#9670;&nbsp;</a></span>PixelF()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structolc_1_1_pixel.html">Pixel</a> olc::PixelF </td>
+          <td>(</td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>red</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>green</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>blue</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>alpha</em> = <code>1.0f</code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a2069e5cf447f5dd311c680c9463f9c42"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a2069e5cf447f5dd311c680c9463f9c42">&#9670;&nbsp;</a></span>PixelLerp()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structolc_1_1_pixel.html">Pixel</a> olc::PixelLerp </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a> &amp;&#160;</td>
+          <td class="paramname"><em>p1</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a> &amp;&#160;</td>
+          <td class="paramname"><em>p2</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">float&#160;</td>
+          <td class="paramname"><em>t</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="ad4579f7eb75a257d76bb657a268f0a8d"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ad4579f7eb75a257d76bb657a268f0a8d">&#9670;&nbsp;</a></span>RED()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">static const <a class="el" href="structolc_1_1_pixel.html">Pixel</a> olc::RED </td>
+          <td>(</td>
+          <td class="paramtype">255&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">0&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">0&#160;</td>
+          <td class="paramname">&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a48fb6375b9a7c0a0d44feaa879e7ebb7"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a48fb6375b9a7c0a0d44feaa879e7ebb7">&#9670;&nbsp;</a></span>VERY_DARK_BLUE()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">static const <a class="el" href="structolc_1_1_pixel.html">Pixel</a> olc::VERY_DARK_BLUE </td>
+          <td>(</td>
+          <td class="paramtype">0&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">0&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">64&#160;</td>
+          <td class="paramname">&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="aee6a06b446368ac58033b5ae4f4c6ca2"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aee6a06b446368ac58033b5ae4f4c6ca2">&#9670;&nbsp;</a></span>VERY_DARK_CYAN()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">static const <a class="el" href="structolc_1_1_pixel.html">Pixel</a> olc::VERY_DARK_CYAN </td>
+          <td>(</td>
+          <td class="paramtype">0&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">64&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">64&#160;</td>
+          <td class="paramname">&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a29c85b49a3c9cbd0b251e80e3bc57140"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a29c85b49a3c9cbd0b251e80e3bc57140">&#9670;&nbsp;</a></span>VERY_DARK_GREEN()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">static const <a class="el" href="structolc_1_1_pixel.html">Pixel</a> olc::VERY_DARK_GREEN </td>
+          <td>(</td>
+          <td class="paramtype">0&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">64&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">0&#160;</td>
+          <td class="paramname">&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a93de271d8b3cbd5aec73a085e6a6ec7a"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a93de271d8b3cbd5aec73a085e6a6ec7a">&#9670;&nbsp;</a></span>VERY_DARK_GREY()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">static const <a class="el" href="structolc_1_1_pixel.html">Pixel</a> olc::VERY_DARK_GREY </td>
+          <td>(</td>
+          <td class="paramtype">64&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">64&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">64&#160;</td>
+          <td class="paramname">&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a150fed0369958dc77d3207298588bc94"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a150fed0369958dc77d3207298588bc94">&#9670;&nbsp;</a></span>VERY_DARK_MAGENTA()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">static const <a class="el" href="structolc_1_1_pixel.html">Pixel</a> olc::VERY_DARK_MAGENTA </td>
+          <td>(</td>
+          <td class="paramtype">64&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">0&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">64&#160;</td>
+          <td class="paramname">&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a82b6404acf7ac86f237179fc5f9a859f"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a82b6404acf7ac86f237179fc5f9a859f">&#9670;&nbsp;</a></span>VERY_DARK_RED()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">static const <a class="el" href="structolc_1_1_pixel.html">Pixel</a> olc::VERY_DARK_RED </td>
+          <td>(</td>
+          <td class="paramtype">64&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">0&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">0&#160;</td>
+          <td class="paramname">&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a131df56f1dd5cb0906cd02f9df49b17d"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a131df56f1dd5cb0906cd02f9df49b17d">&#9670;&nbsp;</a></span>VERY_DARK_YELLOW()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">static const <a class="el" href="structolc_1_1_pixel.html">Pixel</a> olc::VERY_DARK_YELLOW </td>
+          <td>(</td>
+          <td class="paramtype">64&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">64&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">0&#160;</td>
+          <td class="paramname">&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="ae3de4726bf87f2d74693e62d76816db1"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ae3de4726bf87f2d74693e62d76816db1">&#9670;&nbsp;</a></span>WHITE()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">static const <a class="el" href="structolc_1_1_pixel.html">Pixel</a> olc::WHITE </td>
+          <td>(</td>
+          <td class="paramtype">255&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">255&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">255&#160;</td>
+          <td class="paramname">&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a6c9728f6dba8b58406bb0e10979b6ccf"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a6c9728f6dba8b58406bb0e10979b6ccf">&#9670;&nbsp;</a></span>YELLOW()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">static const <a class="el" href="structolc_1_1_pixel.html">Pixel</a> olc::YELLOW </td>
+          <td>(</td>
+          <td class="paramtype">255&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">255&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">0&#160;</td>
+          <td class="paramname">&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<h2 class="groupheader">Variable Documentation</h2>
+<a id="adede7d1156ab9d8ffdc3e9048f0f364b"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#adede7d1156ab9d8ffdc3e9048f0f364b">&#9670;&nbsp;</a></span>nDefaultAlpha</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">constexpr uint8_t olc::nDefaultAlpha = 0xFF</td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">constexpr</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="olc_pixel_game_engine_8h_source.html#l00495">495</a> of file <a class="el" href="olc_pixel_game_engine_8h_source.html">olcPixelGameEngine.h</a>.</p>
+
+</div>
+</div>
+<a id="a10bbdc57cc3fecc7b80ba428eb7494d0"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a10bbdc57cc3fecc7b80ba428eb7494d0">&#9670;&nbsp;</a></span>nDefaultPixel</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">constexpr uint32_t olc::nDefaultPixel = (<a class="el" href="namespaceolc.html#adede7d1156ab9d8ffdc3e9048f0f364b">nDefaultAlpha</a> &lt;&lt; 24)</td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">constexpr</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="olc_pixel_game_engine_8h_source.html#l00496">496</a> of file <a class="el" href="olc_pixel_game_engine_8h_source.html">olcPixelGameEngine.h</a>.</p>
+
+</div>
+</div>
+<a id="abf7dfc35dd1d895f33d3635831953e38"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#abf7dfc35dd1d895f33d3635831953e38">&#9670;&nbsp;</a></span>nMouseButtons</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">constexpr uint8_t olc::nMouseButtons = 5</td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">constexpr</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="olc_pixel_game_engine_8h_source.html#l00494">494</a> of file <a class="el" href="olc_pixel_game_engine_8h_source.html">olcPixelGameEngine.h</a>.</p>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/namespacerender.html b/doxy/html/namespacerender.html
new file mode 100644
index 0000000000000000000000000000000000000000..1d35649cea4bc72f2d442ec30ec466698a6b8220
--- /dev/null
+++ b/doxy/html/namespacerender.html
@@ -0,0 +1,101 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: render Namespace Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#nested-classes">Classes</a>  </div>
+  <div class="headertitle">
+<div class="title">render Namespace Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classrender_1_1_character_texture.html">CharacterTexture</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Texture for CharacterEntities.  <a href="classrender_1_1_character_texture.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classrender_1_1_i_texture.html">ITexture</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Every texture, what can render an entity.  <a href="classrender_1_1_i_texture.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classrender_1_1_lazy_sprite.html">LazySprite</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Refer to one texture, not animated, not modifiable, just a simple image. Lazy loading means, it will load it only, when you're trying to use it.  <a href="classrender_1_1_lazy_sprite.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classrender_1_1_resource_manager.html">ResourceManager</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Load every sprite only once, act as a set for loaded textures.  <a href="classrender_1_1_resource_manager.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classrender_1_1_simple_sprite.html">SimpleSprite</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Simplest useable texture.  <a href="classrender_1_1_simple_sprite.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classrender_1_1_sprite_manager.html">SpriteManager</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classrender_1_1_wall_texture.html">WallTexture</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Texture to render walls, with 16 possible states.  <a href="classrender_1_1_wall_texture.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/namespaces.html b/doxy/html/namespaces.html
new file mode 100644
index 0000000000000000000000000000000000000000..78f477fdda0feb5cce9990a807d65f622431949f
--- /dev/null
+++ b/doxy/html/namespaces.html
@@ -0,0 +1,84 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: Namespace List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="headertitle">
+<div class="title">Namespace List</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock">Here is a list of all namespaces with brief descriptions:</div><div class="directory">
+<div class="levels">[detail level <span onclick="javascript:toggleLevel(1);">1</span><span onclick="javascript:toggleLevel(2);">2</span>]</div><table class="directory">
+<tr id="row_0_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespaceentities.html" target="_self">entities</a></td><td class="desc"></td></tr>
+<tr id="row_1_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespaceolc.html" target="_self">olc</a></td><td class="desc"></td></tr>
+<tr id="row_2_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespacerender.html" target="_self">render</a></td><td class="desc"></td></tr>
+<tr id="row_3_"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_3_" class="arrow" onclick="toggleFolder('3_')">&#9660;</span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespaceweapons.html" target="_self">weapons</a></td><td class="desc"></td></tr>
+<tr id="row_3_0_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespaceweapons_1_1textures.html" target="_self">textures</a></td><td class="desc">Textures for common weapons.. </td></tr>
+</table>
+</div><!-- directory -->
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/namespaceweapons.html b/doxy/html/namespaceweapons.html
new file mode 100644
index 0000000000000000000000000000000000000000..3ea1514a003520355bee0cb1a6855160e5c31267
--- /dev/null
+++ b/doxy/html/namespaceweapons.html
@@ -0,0 +1,112 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: weapons Namespace Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#namespaces">Namespaces</a> &#124;
+<a href="#nested-classes">Classes</a>  </div>
+  <div class="headertitle">
+<div class="title">weapons Namespace Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
+Namespaces</h2></td></tr>
+<tr class="memitem:namespaceweapons_1_1textures"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceweapons_1_1textures.html">textures</a></td></tr>
+<tr class="memdesc:namespaceweapons_1_1textures"><td class="mdescLeft">&#160;</td><td class="mdescRight">Textures for common weapons... <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_e_m_gun.html">EMGun</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classweapons_1_1_weapon.html" title="You can throw it to the ground, this is why it&#39;s an entity. But it will be possible to use it....">Weapon</a> with energy level.  <a href="classweapons_1_1_e_m_gun.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_glitch_gun.html">GlitchGun</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">TODO make the bug weapon more buggy.  <a href="classweapons_1_1_glitch_gun.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_glitch_texture.html">GlitchTexture</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Texture for the bug weapon.  <a href="classweapons_1_1_glitch_texture.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_melee_weapon.html">MeleeWeapon</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A melee weapon, like a spoon.  <a href="classweapons_1_1_melee_weapon.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_pistol.html">Pistol</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Just a pistol, nothing too dangerous.  <a href="classweapons_1_1_pistol.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_ranged_weapon.html">RangedWeapon</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Any weapon, what does shoot. not melee.  <a href="classweapons_1_1_ranged_weapon.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_typical_melee_weapon.html">TypicalMeleeWeapon</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A typical melee weapon. I want to do not typical melee weapons too.  <a href="classweapons_1_1_typical_melee_weapon.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classweapons_1_1_weapon.html">Weapon</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">You can throw it to the ground, this is why it's an entity. But it will be possible to use it. and shoot enemies, or projectiles.  <a href="classweapons_1_1_weapon.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/namespaceweapons_1_1textures.html b/doxy/html/namespaceweapons_1_1textures.html
new file mode 100644
index 0000000000000000000000000000000000000000..6c25cf6e776b6adf3d921ae4a3a3944806248ea1
--- /dev/null
+++ b/doxy/html/namespaceweapons_1_1textures.html
@@ -0,0 +1,555 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: weapons::textures Namespace Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="namespaceweapons.html">weapons</a></li><li class="navelem"><a class="el" href="namespaceweapons_1_1textures.html">textures</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">weapons::textures Namespace Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Textures for common weapons...  
+<a href="namespaceweapons_1_1textures.html#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a2a490d5d835f3ea3a9b07d2a9efb1c36"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classrender_1_1_simple_sprite.html">render::SimpleSprite</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceweapons_1_1textures.html#a2a490d5d835f3ea3a9b07d2a9efb1c36">sword1</a> (&quot;Items/LongWep.png&quot;, { 0, 16 })</td></tr>
+<tr class="separator:a2a490d5d835f3ea3a9b07d2a9efb1c36"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a05b20bd98c55bfbfcf4c2e7e0b08ebaf"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classrender_1_1_simple_sprite.html">render::SimpleSprite</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceweapons_1_1textures.html#a05b20bd98c55bfbfcf4c2e7e0b08ebaf">sword2</a> (&quot;Items/LongWep.png&quot;, { 32, 16 })</td></tr>
+<tr class="separator:a05b20bd98c55bfbfcf4c2e7e0b08ebaf"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9734b7f6d13a24af2d62e74e6cd9dfde"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classrender_1_1_simple_sprite.html">render::SimpleSprite</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceweapons_1_1textures.html#a9734b7f6d13a24af2d62e74e6cd9dfde">spear</a> (&quot;Items/LongWep.png&quot;, { 0, 32 })</td></tr>
+<tr class="separator:a9734b7f6d13a24af2d62e74e6cd9dfde"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac492d02548352205657c28cd311d997b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classrender_1_1_simple_sprite.html">render::SimpleSprite</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceweapons_1_1textures.html#ac492d02548352205657c28cd311d997b">scythe</a> (&quot;Items/LongWep.png&quot;, { 16 *3, 16 *4 })</td></tr>
+<tr class="separator:ac492d02548352205657c28cd311d997b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:affedf59c6526368e5358afc383f15022"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classrender_1_1_simple_sprite.html">render::SimpleSprite</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceweapons_1_1textures.html#affedf59c6526368e5358afc383f15022">shovel</a> (&quot;Items/LongWep.png&quot;, { 16 *4, 16 *4 })</td></tr>
+<tr class="separator:affedf59c6526368e5358afc383f15022"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a25cf2019ff68d29442fa3554a5862c1e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classrender_1_1_simple_sprite.html">render::SimpleSprite</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceweapons_1_1textures.html#a25cf2019ff68d29442fa3554a5862c1e">pickaxe</a> (&quot;Items/ShortWep.png&quot;, { 16 *2, 16 *3 })</td></tr>
+<tr class="separator:a25cf2019ff68d29442fa3554a5862c1e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae84acdfc1384af6d4e1f64c1883a8784"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classrender_1_1_simple_sprite.html">render::SimpleSprite</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceweapons_1_1textures.html#ae84acdfc1384af6d4e1f64c1883a8784">bow</a> (&quot;Items/Ammo.png&quot;, { 0, 16 })</td></tr>
+<tr class="separator:ae84acdfc1384af6d4e1f64c1883a8784"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2f33f64b881c4028086431f8ba0fe1c5"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classrender_1_1_simple_sprite.html">render::SimpleSprite</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceweapons_1_1textures.html#a2f33f64b881c4028086431f8ba0fe1c5">crystalBow</a> (&quot;Items/Ammo.png&quot;, { 48, 16 })</td></tr>
+<tr class="separator:a2f33f64b881c4028086431f8ba0fe1c5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7ae588b12d703b44d1de1abb05d9f672"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classrender_1_1_simple_sprite.html">render::SimpleSprite</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceweapons_1_1textures.html#a7ae588b12d703b44d1de1abb05d9f672">rifle</a> (&quot;Items/Ammo.png&quot;, { 16, 64 })</td></tr>
+<tr class="separator:a7ae588b12d703b44d1de1abb05d9f672"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac65344c207a89b29b15e56e01fc3e16a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classrender_1_1_simple_sprite.html">render::SimpleSprite</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceweapons_1_1textures.html#ac65344c207a89b29b15e56e01fc3e16a">photoMachine</a> (&quot;Items/Light.png&quot;, { 16 *6, 0 })</td></tr>
+<tr class="separator:ac65344c207a89b29b15e56e01fc3e16a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8a733a84e93619430cfdaa2306a6a7ec"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classrender_1_1_simple_sprite.html">render::SimpleSprite</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceweapons_1_1textures.html#a8a733a84e93619430cfdaa2306a6a7ec">pistol</a> (&quot;FromMacskusz111/pistol.png&quot;)</td></tr>
+<tr class="separator:a8a733a84e93619430cfdaa2306a6a7ec"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a51f0963cb1171938daa3a1e894e5305b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classrender_1_1_simple_sprite.html">render::SimpleSprite</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceweapons_1_1textures.html#a51f0963cb1171938daa3a1e894e5305b">minigun</a> (&quot;FromMacskusz111/gun1.png&quot;)</td></tr>
+<tr class="separator:a51f0963cb1171938daa3a1e894e5305b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad763a6f6186015fe93af0a1e5088f026"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classrender_1_1_simple_sprite.html">render::SimpleSprite</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceweapons_1_1textures.html#ad763a6f6186015fe93af0a1e5088f026">glitchGun</a> (&quot;FromMacskusz111/bug.png&quot;)</td></tr>
+<tr class="separator:ad763a6f6186015fe93af0a1e5088f026"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Textures for common weapons... </p>
+</div><h2 class="groupheader">Function Documentation</h2>
+<a id="ae84acdfc1384af6d4e1f64c1883a8784"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ae84acdfc1384af6d4e1f64c1883a8784">&#9670;&nbsp;</a></span>bow()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classrender_1_1_simple_sprite.html">render::SimpleSprite</a> weapons::textures::bow </td>
+          <td>(</td>
+          <td class="paramtype">&quot;Items/Ammo.png&quot;&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">{ 0, 16 }&#160;</td>
+          <td class="paramname">&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a2f33f64b881c4028086431f8ba0fe1c5"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a2f33f64b881c4028086431f8ba0fe1c5">&#9670;&nbsp;</a></span>crystalBow()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classrender_1_1_simple_sprite.html">render::SimpleSprite</a> weapons::textures::crystalBow </td>
+          <td>(</td>
+          <td class="paramtype">&quot;Items/Ammo.png&quot;&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">{ 48, 16 }&#160;</td>
+          <td class="paramname">&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="ad763a6f6186015fe93af0a1e5088f026"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ad763a6f6186015fe93af0a1e5088f026">&#9670;&nbsp;</a></span>glitchGun()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classrender_1_1_simple_sprite.html">render::SimpleSprite</a> weapons::textures::glitchGun </td>
+          <td>(</td>
+          <td class="paramtype">&quot;FromMacskusz111/bug.png&quot;&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a51f0963cb1171938daa3a1e894e5305b"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a51f0963cb1171938daa3a1e894e5305b">&#9670;&nbsp;</a></span>minigun()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classrender_1_1_simple_sprite.html">render::SimpleSprite</a> weapons::textures::minigun </td>
+          <td>(</td>
+          <td class="paramtype">&quot;FromMacskusz111/gun1.png&quot;&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="ac65344c207a89b29b15e56e01fc3e16a"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ac65344c207a89b29b15e56e01fc3e16a">&#9670;&nbsp;</a></span>photoMachine()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classrender_1_1_simple_sprite.html">render::SimpleSprite</a> weapons::textures::photoMachine </td>
+          <td>(</td>
+          <td class="paramtype">&quot;Items/Light.png&quot;&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">{ 16 *6, 0 }&#160;</td>
+          <td class="paramname">&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a25cf2019ff68d29442fa3554a5862c1e"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a25cf2019ff68d29442fa3554a5862c1e">&#9670;&nbsp;</a></span>pickaxe()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classrender_1_1_simple_sprite.html">render::SimpleSprite</a> weapons::textures::pickaxe </td>
+          <td>(</td>
+          <td class="paramtype">&quot;Items/ShortWep.png&quot;&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">{ 16 *2, 16 *3 }&#160;</td>
+          <td class="paramname">&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a8a733a84e93619430cfdaa2306a6a7ec"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a8a733a84e93619430cfdaa2306a6a7ec">&#9670;&nbsp;</a></span>pistol()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classrender_1_1_simple_sprite.html">render::SimpleSprite</a> weapons::textures::pistol </td>
+          <td>(</td>
+          <td class="paramtype">&quot;FromMacskusz111/pistol.png&quot;&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a7ae588b12d703b44d1de1abb05d9f672"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a7ae588b12d703b44d1de1abb05d9f672">&#9670;&nbsp;</a></span>rifle()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classrender_1_1_simple_sprite.html">render::SimpleSprite</a> weapons::textures::rifle </td>
+          <td>(</td>
+          <td class="paramtype">&quot;Items/Ammo.png&quot;&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">{ 16, 64 }&#160;</td>
+          <td class="paramname">&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="ac492d02548352205657c28cd311d997b"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ac492d02548352205657c28cd311d997b">&#9670;&nbsp;</a></span>scythe()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classrender_1_1_simple_sprite.html">render::SimpleSprite</a> weapons::textures::scythe </td>
+          <td>(</td>
+          <td class="paramtype">&quot;Items/LongWep.png&quot;&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">{ 16 *3, 16 *4 }&#160;</td>
+          <td class="paramname">&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="affedf59c6526368e5358afc383f15022"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#affedf59c6526368e5358afc383f15022">&#9670;&nbsp;</a></span>shovel()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classrender_1_1_simple_sprite.html">render::SimpleSprite</a> weapons::textures::shovel </td>
+          <td>(</td>
+          <td class="paramtype">&quot;Items/LongWep.png&quot;&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">{ 16 *4, 16 *4 }&#160;</td>
+          <td class="paramname">&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a9734b7f6d13a24af2d62e74e6cd9dfde"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a9734b7f6d13a24af2d62e74e6cd9dfde">&#9670;&nbsp;</a></span>spear()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classrender_1_1_simple_sprite.html">render::SimpleSprite</a> weapons::textures::spear </td>
+          <td>(</td>
+          <td class="paramtype">&quot;Items/LongWep.png&quot;&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">{ 0, 32 }&#160;</td>
+          <td class="paramname">&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a2a490d5d835f3ea3a9b07d2a9efb1c36"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a2a490d5d835f3ea3a9b07d2a9efb1c36">&#9670;&nbsp;</a></span>sword1()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classrender_1_1_simple_sprite.html">render::SimpleSprite</a> weapons::textures::sword1 </td>
+          <td>(</td>
+          <td class="paramtype">&quot;Items/LongWep.png&quot;&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">{ 0, 16 }&#160;</td>
+          <td class="paramname">&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a05b20bd98c55bfbfcf4c2e7e0b08ebaf"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a05b20bd98c55bfbfcf4c2e7e0b08ebaf">&#9670;&nbsp;</a></span>sword2()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classrender_1_1_simple_sprite.html">render::SimpleSprite</a> weapons::textures::sword2 </td>
+          <td>(</td>
+          <td class="paramtype">&quot;Items/LongWep.png&quot;&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">{ 32, 16 }&#160;</td>
+          <td class="paramname">&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/nav_f.png b/doxy/html/nav_f.png
new file mode 100644
index 0000000000000000000000000000000000000000..72a58a529ed3a9ed6aa0c51a79cf207e026deee2
Binary files /dev/null and b/doxy/html/nav_f.png differ
diff --git a/doxy/html/nav_g.png b/doxy/html/nav_g.png
new file mode 100644
index 0000000000000000000000000000000000000000..2093a237a94f6c83e19ec6e5fd42f7ddabdafa81
Binary files /dev/null and b/doxy/html/nav_g.png differ
diff --git a/doxy/html/nav_h.png b/doxy/html/nav_h.png
new file mode 100644
index 0000000000000000000000000000000000000000..33389b101d9cd9b4c98ad286b5d9c46a6671f650
Binary files /dev/null and b/doxy/html/nav_h.png differ
diff --git a/doxy/html/olc_8h.html b/doxy/html/olc_8h.html
new file mode 100644
index 0000000000000000000000000000000000000000..abf661bd4431ab1cbb8c745950c60f8185a460db
--- /dev/null
+++ b/doxy/html/olc_8h.html
@@ -0,0 +1,79 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: C:/Users/kosmx/Documents/GitHub/2d-game/olc.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">C:/Users/kosmx/Documents/GitHub/2d-game/olc.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &quot;<a class="el" href="olc_p_g_e_x___transformed_view_8h_source.html">olcPGEX_TransformedView.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="olc_pixel_game_engine_8h_source.html">olcPixelGameEngine.h</a>&quot;</code><br />
+</div>
+<p><a href="olc_8h_source.html">Go to the source code of this file.</a></p>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/olc_8h_source.html b/doxy/html/olc_8h_source.html
new file mode 100644
index 0000000000000000000000000000000000000000..9b182ea79b940b07e2ce1d0837d6dc1f0e3cbb46
--- /dev/null
+++ b/doxy/html/olc_8h_source.html
@@ -0,0 +1,81 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: C:/Users/kosmx/Documents/GitHub/2d-game/olc.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="headertitle">
+<div class="title">C:/Users/kosmx/Documents/GitHub/2d-game/olc.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="olc_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160; </div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="olc_p_g_e_x___transformed_view_8h.html">olcPGEX_TransformedView.h</a>&quot;</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="olc_pixel_game_engine_8h.html">olcPixelGameEngine.h</a>&quot;</span></div>
+</div><!-- fragment --></div><!-- contents -->
+<div class="ttc" id="aolc_pixel_game_engine_8h_html"><div class="ttname"><a href="olc_pixel_game_engine_8h.html">olcPixelGameEngine.h</a></div></div>
+<div class="ttc" id="aolc_p_g_e_x___transformed_view_8h_html"><div class="ttname"><a href="olc_p_g_e_x___transformed_view_8h.html">olcPGEX_TransformedView.h</a></div></div>
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/olc_p_g_e_x___transformed_view_8h.html b/doxy/html/olc_p_g_e_x___transformed_view_8h.html
new file mode 100644
index 0000000000000000000000000000000000000000..243caba17b02b731db76097be92b7eb08241c843
--- /dev/null
+++ b/doxy/html/olc_p_g_e_x___transformed_view_8h.html
@@ -0,0 +1,117 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: C:/Users/kosmx/Documents/GitHub/2d-game/olcPGEX_TransformedView.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#nested-classes">Classes</a> &#124;
+<a href="#namespaces">Namespaces</a> &#124;
+<a href="#define-members">Macros</a>  </div>
+  <div class="headertitle">
+<div class="title">C:/Users/kosmx/Documents/GitHub/2d-game/olcPGEX_TransformedView.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &quot;<a class="el" href="olc_pixel_game_engine_8h_source.html">olcPixelGameEngine.h</a>&quot;</code><br />
+</div>
+<p><a href="olc_p_g_e_x___transformed_view_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_transformed_view.html">olc::TransformedView</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_tile_transformed_view.html">olc::TileTransformedView</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
+Namespaces</h2></td></tr>
+<tr class="memitem:namespaceolc"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceolc.html">olc</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
+Macros</h2></td></tr>
+<tr class="memitem:a47f1ada970406eff596ebe181debec3d"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="olc_p_g_e_x___transformed_view_8h.html#a47f1ada970406eff596ebe181debec3d">OLC_PGEX_TRANSFORMEDVIEW_H</a></td></tr>
+<tr class="separator:a47f1ada970406eff596ebe181debec3d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Macro Definition Documentation</h2>
+<a id="a47f1ada970406eff596ebe181debec3d"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a47f1ada970406eff596ebe181debec3d">&#9670;&nbsp;</a></span>OLC_PGEX_TRANSFORMEDVIEW_H</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define OLC_PGEX_TRANSFORMEDVIEW_H</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="olc_p_g_e_x___transformed_view_8h_source.html#l00071">71</a> of file <a class="el" href="olc_p_g_e_x___transformed_view_8h_source.html">olcPGEX_TransformedView.h</a>.</p>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/olc_p_g_e_x___transformed_view_8h_source.html b/doxy/html/olc_p_g_e_x___transformed_view_8h_source.html
new file mode 100644
index 0000000000000000000000000000000000000000..60ce81a860fafe908e1252f73446bea99a51bdcd
--- /dev/null
+++ b/doxy/html/olc_p_g_e_x___transformed_view_8h_source.html
@@ -0,0 +1,850 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: C:/Users/kosmx/Documents/GitHub/2d-game/olcPGEX_TransformedView.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="headertitle">
+<div class="title">C:/Users/kosmx/Documents/GitHub/2d-game/olcPGEX_TransformedView.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="olc_p_g_e_x___transformed_view_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment">    olcPGEX_TransformedView.h</span></div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"></span> </div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment">    +-------------------------------------------------------------+</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment">    |         OneLoneCoder Pixel Game Engine Extension            |</span></div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment">    |                 Transformed View v1.01                      |</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment">    +-------------------------------------------------------------+</span></div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"></span> </div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment">    NOTE: UNDER ACTIVE DEVELOPMENT - THERE ARE BUGS/GLITCHES</span></div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"></span> </div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment">    What is this?</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment">    ~~~~~~~~~~~~~</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment">    This extension provides drawing routines that are compatible with</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment">    changeable world and screen spaces. For example you can pan and</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment">    zoom, and all PGE drawing routines will automatically adopt the current</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment">    world scales and offsets.</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"></span> </div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment">    License (OLC-3)</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="comment">    ~~~~~~~~~~~~~~~</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="comment"></span> </div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="comment">    Copyright 2018 - 2021 OneLoneCoder.com</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="comment"></span> </div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="comment">    Redistribution and use in source and binary forms, with or without</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="comment">    modification, are permitted provided that the following conditions</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<span class="comment">    are met:</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;<span class="comment"></span> </div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;<span class="comment">    1. Redistributions or derivations of source code must retain the above</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;<span class="comment">    copyright notice, this list of conditions and the following disclaimer.</span></div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="comment"></span> </div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;<span class="comment">    2. Redistributions or derivative works in binary form must reproduce</span></div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;<span class="comment">    the above copyright notice. This list of conditions and the following</span></div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;<span class="comment">    disclaimer must be reproduced in the documentation and/or other</span></div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;<span class="comment">    materials provided with the distribution.</span></div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;<span class="comment"></span> </div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;<span class="comment">    3. Neither the name of the copyright holder nor the names of its</span></div>
+<div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;<span class="comment">    contributors may be used to endorse or promote products derived</span></div>
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;<span class="comment">    from this software without specific prior written permission.</span></div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;<span class="comment"></span> </div>
+<div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;<span class="comment">    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS</span></div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;<span class="comment">    &quot;AS IS&quot; AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT</span></div>
+<div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;<span class="comment">    LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR</span></div>
+<div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;<span class="comment">    A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT</span></div>
+<div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;<span class="comment">    HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,</span></div>
+<div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;<span class="comment">    SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT</span></div>
+<div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;<span class="comment">    LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,</span></div>
+<div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;<span class="comment">    DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY</span></div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;<span class="comment">    THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT</span></div>
+<div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;<span class="comment">    (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE</span></div>
+<div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;<span class="comment">    OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.</span></div>
+<div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;<span class="comment"></span> </div>
+<div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;<span class="comment">    Links</span></div>
+<div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;<span class="comment">    ~~~~~</span></div>
+<div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;<span class="comment">    YouTube:    https://www.youtube.com/javidx9</span></div>
+<div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;<span class="comment">    Discord:    https://discord.gg/WhwHUMV</span></div>
+<div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;<span class="comment">    Twitter:    https://www.twitter.com/javidx9</span></div>
+<div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;<span class="comment">    Twitch:     https://www.twitch.tv/javidx9</span></div>
+<div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;<span class="comment">    GitHub:     https://www.github.com/onelonecoder</span></div>
+<div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;<span class="comment">    Homepage:   https://www.onelonecoder.com</span></div>
+<div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;<span class="comment"></span> </div>
+<div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;<span class="comment">    Author</span></div>
+<div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;<span class="comment">    ~~~~~~</span></div>
+<div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;<span class="comment">    David Barr, aka javidx9, ©OneLoneCoder 2019, 2020, 2021</span></div>
+<div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;<span class="comment"></span> </div>
+<div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;<span class="comment">    Revisions:</span></div>
+<div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;<span class="comment">    1.00:   Initial Release</span></div>
+<div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;<span class="comment">        1.01:   DrawLine bug fix, thanks Fern</span></div>
+<div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;<span class="comment">*/</span></div>
+<div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160; </div>
+<div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;<span class="preprocessor">#pragma once</span></div>
+<div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;<span class="preprocessor">#ifndef OLC_PGEX_TRANSFORMEDVIEW_H</span></div>
+<div class="line"><a name="l00071"></a><span class="lineno"><a class="line" href="olc_p_g_e_x___transformed_view_8h.html#a47f1ada970406eff596ebe181debec3d">   71</a></span>&#160;<span class="preprocessor">#define OLC_PGEX_TRANSFORMEDVIEW_H</span></div>
+<div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160; </div>
+<div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="olc_pixel_game_engine_8h.html">olcPixelGameEngine.h</a>&quot;</span></div>
+<div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160; </div>
+<div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160; </div>
+<div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160; </div>
+<div class="line"><a name="l00077"></a><span class="lineno"><a class="line" href="namespaceolc.html">   77</a></span>&#160;<span class="keyword">namespace </span><a class="code" href="namespaceolc.html">olc</a></div>
+<div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;{</div>
+<div class="line"><a name="l00079"></a><span class="lineno"><a class="line" href="classolc_1_1_transformed_view.html">   79</a></span>&#160;    <span class="keyword">class </span><a class="code" href="classolc_1_1_transformed_view.html">TransformedView</a> : <span class="keyword">public</span> <a class="code" href="classolc_1_1_p_g_e_x.html">olc::PGEX</a></div>
+<div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;    {</div>
+<div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;    <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00082"></a><span class="lineno"><a class="line" href="classolc_1_1_transformed_view.html#a1f4ed7eb880b0f0edc0b86be4b33b04e">   82</a></span>&#160;        <a class="code" href="classolc_1_1_transformed_view.html#a1f4ed7eb880b0f0edc0b86be4b33b04e">TransformedView</a>() = <span class="keywordflow">default</span>;</div>
+<div class="line"><a name="l00083"></a><span class="lineno"><a class="line" href="classolc_1_1_transformed_view.html#a799473b80691228b87a818f80847ca76">   83</a></span>&#160;        <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_transformed_view.html#a799473b80691228b87a818f80847ca76">Initialise</a>(<span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vi2d</a>&amp; vViewArea, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; vPixelScale = { 1.0f, 1.0f });</div>
+<div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160; </div>
+<div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;    <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00086"></a><span class="lineno"><a class="line" href="classolc_1_1_transformed_view.html#aee86c84a719f8b5c3143e2a0b89e8024">   86</a></span>&#160;        <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_transformed_view.html#aee86c84a719f8b5c3143e2a0b89e8024">SetWorldOffset</a>(<span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; vOffset);</div>
+<div class="line"><a name="l00087"></a><span class="lineno"><a class="line" href="classolc_1_1_transformed_view.html#a154b34bc81f6e0c67579d2d2ee40b2d1">   87</a></span>&#160;        <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_transformed_view.html#a154b34bc81f6e0c67579d2d2ee40b2d1">MoveWorldOffset</a>(<span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; vDeltaOffset);</div>
+<div class="line"><a name="l00088"></a><span class="lineno"><a class="line" href="classolc_1_1_transformed_view.html#a971e25ee6978c271127f766aba69b285">   88</a></span>&#160;        <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_transformed_view.html#a971e25ee6978c271127f766aba69b285">SetWorldScale</a>(<span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; vScale);</div>
+<div class="line"><a name="l00089"></a><span class="lineno"><a class="line" href="classolc_1_1_transformed_view.html#ac7295e90921832fef16779172cc9e4ff">   89</a></span>&#160;        <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_transformed_view.html#ac7295e90921832fef16779172cc9e4ff">SetViewArea</a>(<span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vi2d</a>&amp; vViewArea);</div>
+<div class="line"><a name="l00090"></a><span class="lineno"><a class="line" href="classolc_1_1_transformed_view.html#ac75bd045f9fbc5d8cd901ecdd216fcb5">   90</a></span>&#160;        <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a> <a class="code" href="classolc_1_1_transformed_view.html#ac75bd045f9fbc5d8cd901ecdd216fcb5">GetWorldTL</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00091"></a><span class="lineno"><a class="line" href="classolc_1_1_transformed_view.html#a5240bf2a7285559be13c80f3ce2a97a3">   91</a></span>&#160;        <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a> <a class="code" href="classolc_1_1_transformed_view.html#a5240bf2a7285559be13c80f3ce2a97a3">GetWorldBR</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00092"></a><span class="lineno"><a class="line" href="classolc_1_1_transformed_view.html#a7f7815582a087a163199bb29f1c4c0ae">   92</a></span>&#160;        <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a> <a class="code" href="classolc_1_1_transformed_view.html#a7f7815582a087a163199bb29f1c4c0ae">GetWorldVisibleArea</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00093"></a><span class="lineno"><a class="line" href="classolc_1_1_transformed_view.html#a84a8b9030ac97afa9b6099dea5865b9c">   93</a></span>&#160;        <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_transformed_view.html#a84a8b9030ac97afa9b6099dea5865b9c">ZoomAtScreenPos</a>(<span class="keyword">const</span> <span class="keywordtype">float</span> fDeltaZoom, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vi2d</a>&amp; vPos);</div>
+<div class="line"><a name="l00094"></a><span class="lineno"><a class="line" href="classolc_1_1_transformed_view.html#a89fd4d642cf37d1e6f1674b870b142d8">   94</a></span>&#160;        <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_transformed_view.html#a89fd4d642cf37d1e6f1674b870b142d8">SetZoom</a>(<span class="keyword">const</span> <span class="keywordtype">float</span> fZoom, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vi2d</a>&amp; vPos);</div>
+<div class="line"><a name="l00095"></a><span class="lineno"><a class="line" href="classolc_1_1_transformed_view.html#a4dc2bd0de3686978fdf8630d23a727c3">   95</a></span>&#160;        <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_transformed_view.html#a4dc2bd0de3686978fdf8630d23a727c3">StartPan</a>(<span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vi2d</a>&amp; vPos);</div>
+<div class="line"><a name="l00096"></a><span class="lineno"><a class="line" href="classolc_1_1_transformed_view.html#a4baf2b53892749ff380833991161b9c4">   96</a></span>&#160;        <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_transformed_view.html#a4baf2b53892749ff380833991161b9c4">UpdatePan</a>(<span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vi2d</a>&amp; vPos);</div>
+<div class="line"><a name="l00097"></a><span class="lineno"><a class="line" href="classolc_1_1_transformed_view.html#a3edd680172e1ae5b710290ab58d617e0">   97</a></span>&#160;        <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_transformed_view.html#a3edd680172e1ae5b710290ab58d617e0">EndPan</a>(<span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vi2d</a>&amp; vPos);</div>
+<div class="line"><a name="l00098"></a><span class="lineno"><a class="line" href="classolc_1_1_transformed_view.html#a88152a5f5b9fbb3df0f6d965ef4c4fe4">   98</a></span>&#160;        <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; <a class="code" href="classolc_1_1_transformed_view.html#a88152a5f5b9fbb3df0f6d965ef4c4fe4">GetWorldOffset</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00099"></a><span class="lineno"><a class="line" href="classolc_1_1_transformed_view.html#a4f6ba5d2c58b720677f4287743713f65">   99</a></span>&#160;        <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; <a class="code" href="classolc_1_1_transformed_view.html#a4f6ba5d2c58b720677f4287743713f65">GetWorldScale</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00100"></a><span class="lineno"><a class="line" href="classolc_1_1_transformed_view.html#a18b18c9718c642ca912d44a133ffde1d">  100</a></span>&#160;        <span class="keyword">virtual</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vi2d</a> <a class="code" href="classolc_1_1_transformed_view.html#a18b18c9718c642ca912d44a133ffde1d">WorldToScreen</a>(<span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; vWorldPos) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00101"></a><span class="lineno"><a class="line" href="classolc_1_1_transformed_view.html#a0f18594e00e7865fe4376761f9e20812">  101</a></span>&#160;        <span class="keyword">virtual</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a> <a class="code" href="classolc_1_1_transformed_view.html#a0f18594e00e7865fe4376761f9e20812">ScreenToWorld</a>(<span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vi2d</a>&amp; vScreenPos) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00102"></a><span class="lineno"><a class="line" href="classolc_1_1_transformed_view.html#a09492f689459319994da4c9d0e0c2dc4">  102</a></span>&#160;        <span class="keyword">virtual</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a> <a class="code" href="classolc_1_1_transformed_view.html#a09492f689459319994da4c9d0e0c2dc4">ScaleToWorld</a>(<span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vi2d</a>&amp; vScreenSize) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00103"></a><span class="lineno"><a class="line" href="classolc_1_1_transformed_view.html#a8be86d8036bf635287debfcf2509e4c5">  103</a></span>&#160;        <span class="keyword">virtual</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vi2d</a> <a class="code" href="classolc_1_1_transformed_view.html#a8be86d8036bf635287debfcf2509e4c5">ScaleToScreen</a>(<span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; vWorldSize) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00104"></a><span class="lineno"><a class="line" href="classolc_1_1_transformed_view.html#a664ea0cbd54bbff17ea419ebfac1e359">  104</a></span>&#160;        <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classolc_1_1_transformed_view.html#a664ea0cbd54bbff17ea419ebfac1e359">IsPointVisible</a>(<span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; vPos) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00105"></a><span class="lineno"><a class="line" href="classolc_1_1_transformed_view.html#aecadbbdf84343ec0a2f0e2e8c9017f0e">  105</a></span>&#160;        <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classolc_1_1_transformed_view.html#aecadbbdf84343ec0a2f0e2e8c9017f0e">IsRectVisible</a>(<span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; vPos, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; vSize) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;        </div>
+<div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;    <span class="keyword">protected</span>:</div>
+<div class="line"><a name="l00108"></a><span class="lineno"><a class="line" href="classolc_1_1_transformed_view.html#a2e77497521f72e59ae7ecb56dc5d3f37">  108</a></span>&#160;        <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a> <a class="code" href="classolc_1_1_transformed_view.html#a2e77497521f72e59ae7ecb56dc5d3f37">m_vWorldOffset</a> = { 0.0f, 0.0f };</div>
+<div class="line"><a name="l00109"></a><span class="lineno"><a class="line" href="classolc_1_1_transformed_view.html#a652909b48a4d8960c36d1ce4262cc95a">  109</a></span>&#160;        <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a> <a class="code" href="classolc_1_1_transformed_view.html#a652909b48a4d8960c36d1ce4262cc95a">m_vWorldScale</a> = { 1.0f, 1.0f };</div>
+<div class="line"><a name="l00110"></a><span class="lineno"><a class="line" href="classolc_1_1_transformed_view.html#ae1b7b82332f0979caa99e003827624cb">  110</a></span>&#160;        <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a> <a class="code" href="classolc_1_1_transformed_view.html#ae1b7b82332f0979caa99e003827624cb">m_vRecipPixel</a> = { 1.0f, 1.0f };</div>
+<div class="line"><a name="l00111"></a><span class="lineno"><a class="line" href="classolc_1_1_transformed_view.html#a94a7fd3ad136ec70040bbff1c7133418">  111</a></span>&#160;        <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a> <a class="code" href="classolc_1_1_transformed_view.html#a94a7fd3ad136ec70040bbff1c7133418">m_vPixelScale</a> = { 1.0f, 1.0f };</div>
+<div class="line"><a name="l00112"></a><span class="lineno"><a class="line" href="classolc_1_1_transformed_view.html#a2c19ec65e54f43500cce003f878c8ed5">  112</a></span>&#160;        <span class="keywordtype">bool</span> <a class="code" href="classolc_1_1_transformed_view.html#a2c19ec65e54f43500cce003f878c8ed5">m_bPanning</a> = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00113"></a><span class="lineno"><a class="line" href="classolc_1_1_transformed_view.html#a4f7569cc3d27120b485077789b86aa44">  113</a></span>&#160;        <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a> <a class="code" href="classolc_1_1_transformed_view.html#a4f7569cc3d27120b485077789b86aa44">m_vStartPan</a> = { 0.0f, 0.0f };</div>
+<div class="line"><a name="l00114"></a><span class="lineno"><a class="line" href="classolc_1_1_transformed_view.html#a0a2936aac23f1621ff1d618c7155de1c">  114</a></span>&#160;        <a class="code" href="structolc_1_1v2d__generic.html">olc::vi2d</a> <a class="code" href="classolc_1_1_transformed_view.html#a0a2936aac23f1621ff1d618c7155de1c">m_vViewArea</a>;</div>
+<div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160; </div>
+<div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;    <span class="keyword">public</span>: <span class="comment">// Hopefully, these should look familiar!</span></div>
+<div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;        <span class="comment">// Plots a single point</span></div>
+<div class="line"><a name="l00118"></a><span class="lineno"><a class="line" href="classolc_1_1_transformed_view.html#a09a214f47f9e4f5e85a8d3bd224ab9b1">  118</a></span>&#160;        <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classolc_1_1_transformed_view.html#a09a214f47f9e4f5e85a8d3bd224ab9b1">Draw</a>(<span class="keywordtype">float</span> x, <span class="keywordtype">float</span> y, <a class="code" href="structolc_1_1_pixel.html">olc::Pixel</a> p = <a class="code" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>);</div>
+<div class="line"><a name="l00119"></a><span class="lineno"><a class="line" href="classolc_1_1_transformed_view.html#a2509ea7aa54013b9b0caa7a265818511">  119</a></span>&#160;        <span class="keywordtype">bool</span> <a class="code" href="classolc_1_1_transformed_view.html#a2509ea7aa54013b9b0caa7a265818511">Draw</a>(<span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; pos, <a class="code" href="structolc_1_1_pixel.html">olc::Pixel</a> p = <a class="code" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>);     </div>
+<div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;        <span class="comment">// Draws a line from (x1,y1) to (x2,y2)</span></div>
+<div class="line"><a name="l00121"></a><span class="lineno"><a class="line" href="classolc_1_1_transformed_view.html#a2564b30474cab1de208a9b220ddbc181">  121</a></span>&#160;        <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_transformed_view.html#a2564b30474cab1de208a9b220ddbc181">DrawLine</a>(<span class="keywordtype">float</span> x1, <span class="keywordtype">float</span> y1, <span class="keywordtype">float</span> x2, <span class="keywordtype">float</span> y2, <a class="code" href="structolc_1_1_pixel.html">olc::Pixel</a> p = <a class="code" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>, uint32_t pattern = 0xFFFFFFFF);</div>
+<div class="line"><a name="l00122"></a><span class="lineno"><a class="line" href="classolc_1_1_transformed_view.html#a60a961188fe9a5cb60258c1b4d8cf498">  122</a></span>&#160;        <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_transformed_view.html#a60a961188fe9a5cb60258c1b4d8cf498">DrawLine</a>(<span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; pos1, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; pos2, <a class="code" href="structolc_1_1_pixel.html">olc::Pixel</a> p = <a class="code" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>, uint32_t pattern = 0xFFFFFFFF);</div>
+<div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;        <span class="comment">// Draws a circle located at (x,y) with radius</span></div>
+<div class="line"><a name="l00124"></a><span class="lineno"><a class="line" href="classolc_1_1_transformed_view.html#abbf0590764bbacdd35a4d0adc6e69b84">  124</a></span>&#160;        <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_transformed_view.html#abbf0590764bbacdd35a4d0adc6e69b84">DrawCircle</a>(<span class="keywordtype">float</span> x, <span class="keywordtype">float</span> y, <span class="keywordtype">float</span> radius, <a class="code" href="structolc_1_1_pixel.html">olc::Pixel</a> p = <a class="code" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>, uint8_t mask = 0xFF);</div>
+<div class="line"><a name="l00125"></a><span class="lineno"><a class="line" href="classolc_1_1_transformed_view.html#aa7edb61f256624bad3e5d5847f0eef88">  125</a></span>&#160;        <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_transformed_view.html#aa7edb61f256624bad3e5d5847f0eef88">DrawCircle</a>(<span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; pos, <span class="keywordtype">float</span> radius, <a class="code" href="structolc_1_1_pixel.html">olc::Pixel</a> p = <a class="code" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>, uint8_t mask = 0xFF);</div>
+<div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;        <span class="comment">// Fills a circle located at (x,y) with radius</span></div>
+<div class="line"><a name="l00127"></a><span class="lineno"><a class="line" href="classolc_1_1_transformed_view.html#afd3f4dffe3a2fffaed2fd6c84e40ce23">  127</a></span>&#160;        <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_transformed_view.html#afd3f4dffe3a2fffaed2fd6c84e40ce23">FillCircle</a>(<span class="keywordtype">float</span> x, <span class="keywordtype">float</span> y, <span class="keywordtype">float</span> radius, <a class="code" href="structolc_1_1_pixel.html">olc::Pixel</a> p = <a class="code" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>);</div>
+<div class="line"><a name="l00128"></a><span class="lineno"><a class="line" href="classolc_1_1_transformed_view.html#a8d8559f74de40982e41f9cab0577b3b9">  128</a></span>&#160;        <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_transformed_view.html#a8d8559f74de40982e41f9cab0577b3b9">FillCircle</a>(<span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; pos, <span class="keywordtype">float</span> radius, <a class="code" href="structolc_1_1_pixel.html">olc::Pixel</a> p = <a class="code" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>);</div>
+<div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160;        <span class="comment">// Draws a rectangle at (x,y) to (x+w,y+h)</span></div>
+<div class="line"><a name="l00130"></a><span class="lineno"><a class="line" href="classolc_1_1_transformed_view.html#ab1578748552d35bff05e63dcfc79cfb9">  130</a></span>&#160;        <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_transformed_view.html#ab1578748552d35bff05e63dcfc79cfb9">DrawRect</a>(<span class="keywordtype">float</span> x, <span class="keywordtype">float</span> y, <span class="keywordtype">float</span> w, <span class="keywordtype">float</span> h, <a class="code" href="structolc_1_1_pixel.html">olc::Pixel</a> p = <a class="code" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>);</div>
+<div class="line"><a name="l00131"></a><span class="lineno"><a class="line" href="classolc_1_1_transformed_view.html#a2ce6891b49d600eacb32eef88f07b2e0">  131</a></span>&#160;        <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_transformed_view.html#a2ce6891b49d600eacb32eef88f07b2e0">DrawRect</a>(<span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; pos, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; size, <a class="code" href="structolc_1_1_pixel.html">olc::Pixel</a> p = <a class="code" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>);</div>
+<div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;        <span class="comment">// Fills a rectangle at (x,y) to (x+w,y+h)</span></div>
+<div class="line"><a name="l00133"></a><span class="lineno"><a class="line" href="classolc_1_1_transformed_view.html#a2f12ada82c7262a2e29572cfded60f02">  133</a></span>&#160;        <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_transformed_view.html#a2f12ada82c7262a2e29572cfded60f02">FillRect</a>(<span class="keywordtype">float</span> x, <span class="keywordtype">float</span> y, <span class="keywordtype">float</span> w, <span class="keywordtype">float</span> h, <a class="code" href="structolc_1_1_pixel.html">olc::Pixel</a> p = <a class="code" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>);</div>
+<div class="line"><a name="l00134"></a><span class="lineno"><a class="line" href="classolc_1_1_transformed_view.html#abc3071fe6fa5f9ca4c5fe227a335df54">  134</a></span>&#160;        <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_transformed_view.html#abc3071fe6fa5f9ca4c5fe227a335df54">FillRect</a>(<span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; pos, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; size, <a class="code" href="structolc_1_1_pixel.html">olc::Pixel</a> p = <a class="code" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>);</div>
+<div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;        <span class="comment">// Draws a triangle between points (x1,y1), (x2,y2) and (x3,y3)</span></div>
+<div class="line"><a name="l00136"></a><span class="lineno"><a class="line" href="classolc_1_1_transformed_view.html#a6c818747c7fa97445fbb40c9f222e865">  136</a></span>&#160;        <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_transformed_view.html#a6c818747c7fa97445fbb40c9f222e865">DrawTriangle</a>(<span class="keywordtype">float</span> x1, <span class="keywordtype">float</span> y1, <span class="keywordtype">float</span> x2, <span class="keywordtype">float</span> y2, <span class="keywordtype">float</span> x3, <span class="keywordtype">float</span> y3, <a class="code" href="structolc_1_1_pixel.html">olc::Pixel</a> p = <a class="code" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>);</div>
+<div class="line"><a name="l00137"></a><span class="lineno"><a class="line" href="classolc_1_1_transformed_view.html#a45a659d55d124e87e956e842963637fa">  137</a></span>&#160;        <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_transformed_view.html#a45a659d55d124e87e956e842963637fa">DrawTriangle</a>(<span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; pos1, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; pos2, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; pos3, <a class="code" href="structolc_1_1_pixel.html">olc::Pixel</a> p = <a class="code" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>);</div>
+<div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160;        <span class="comment">// Flat fills a triangle between points (x1,y1), (x2,y2) and (x3,y3)</span></div>
+<div class="line"><a name="l00139"></a><span class="lineno"><a class="line" href="classolc_1_1_transformed_view.html#a5cba545151923f38fd5d87b2c130a894">  139</a></span>&#160;        <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_transformed_view.html#a5cba545151923f38fd5d87b2c130a894">FillTriangle</a>(<span class="keywordtype">float</span> x1, <span class="keywordtype">float</span> y1, <span class="keywordtype">float</span> x2, <span class="keywordtype">float</span> y2, <span class="keywordtype">float</span> x3, <span class="keywordtype">float</span> y3, <a class="code" href="structolc_1_1_pixel.html">olc::Pixel</a> p = <a class="code" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>);</div>
+<div class="line"><a name="l00140"></a><span class="lineno"><a class="line" href="classolc_1_1_transformed_view.html#a023149966b61d7f233898c2b4372d018">  140</a></span>&#160;        <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_transformed_view.html#a023149966b61d7f233898c2b4372d018">FillTriangle</a>(<span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; pos1, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; pos2, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; pos3, <a class="code" href="structolc_1_1_pixel.html">olc::Pixel</a> p = <a class="code" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>);</div>
+<div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;        <span class="comment">// Draws an entire sprite at location (x,y)</span></div>
+<div class="line"><a name="l00142"></a><span class="lineno"><a class="line" href="classolc_1_1_transformed_view.html#a0814eafdbf34c4570c08722998b3c936">  142</a></span>&#160;        <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_transformed_view.html#a0814eafdbf34c4570c08722998b3c936">DrawSprite</a>(<span class="keywordtype">float</span> x, <span class="keywordtype">float</span> y, <a class="code" href="classolc_1_1_sprite.html">olc::Sprite</a>* sprite, <span class="keywordtype">float</span> scalex = 1, <span class="keywordtype">float</span> scaley = 1, uint8_t flip = <a class="code" href="classolc_1_1_sprite.html#ad0d1976d2060997f5cd99eb284a5dc24a6ad338b4e63faacfbed68b020c3a0c0c">olc::Sprite::NONE</a>);</div>
+<div class="line"><a name="l00143"></a><span class="lineno"><a class="line" href="classolc_1_1_transformed_view.html#a44f1c98c6c6720338d7b6dcc9117cb03">  143</a></span>&#160;        <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_transformed_view.html#a44f1c98c6c6720338d7b6dcc9117cb03">DrawSprite</a>(<span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; pos, <a class="code" href="classolc_1_1_sprite.html">olc::Sprite</a>* sprite, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; scale = { 1.0f, 1.0f }, uint8_t flip = <a class="code" href="classolc_1_1_sprite.html#ad0d1976d2060997f5cd99eb284a5dc24a6ad338b4e63faacfbed68b020c3a0c0c">olc::Sprite::NONE</a>);</div>
+<div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160;        <span class="comment">// Draws an area of a sprite at location (x,y), where the</span></div>
+<div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160;        <span class="comment">// selected area is (ox,oy) to (ox+w,oy+h)</span></div>
+<div class="line"><a name="l00146"></a><span class="lineno"><a class="line" href="classolc_1_1_transformed_view.html#a829557257985bb738baad577ed0ed7a0">  146</a></span>&#160;        <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_transformed_view.html#a829557257985bb738baad577ed0ed7a0">DrawPartialSprite</a>(<span class="keywordtype">float</span> x, <span class="keywordtype">float</span> y, <a class="code" href="classolc_1_1_sprite.html">Sprite</a>* sprite, int32_t ox, int32_t oy, int32_t w, int32_t h, <span class="keywordtype">float</span> scalex = 1, <span class="keywordtype">float</span> scaley = 1, uint8_t flip = <a class="code" href="classolc_1_1_sprite.html#ad0d1976d2060997f5cd99eb284a5dc24a6ad338b4e63faacfbed68b020c3a0c0c">olc::Sprite::NONE</a>);</div>
+<div class="line"><a name="l00147"></a><span class="lineno"><a class="line" href="classolc_1_1_transformed_view.html#a0c6e1fb72399ec97e0dc093a2da80d50">  147</a></span>&#160;        <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_transformed_view.html#a0c6e1fb72399ec97e0dc093a2da80d50">DrawPartialSprite</a>(<span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; pos, <a class="code" href="classolc_1_1_sprite.html">Sprite</a>* sprite, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vi2d</a>&amp; sourcepos, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vi2d</a>&amp; size, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; scale = { 1.0f, 1.0f }, uint8_t flip = <a class="code" href="classolc_1_1_sprite.html#ad0d1976d2060997f5cd99eb284a5dc24a6ad338b4e63faacfbed68b020c3a0c0c">olc::Sprite::NONE</a>);</div>
+<div class="line"><a name="l00148"></a><span class="lineno"><a class="line" href="classolc_1_1_transformed_view.html#acf22577cab34db667d05eae0e38000e0">  148</a></span>&#160;        <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_transformed_view.html#acf22577cab34db667d05eae0e38000e0">DrawString</a>(<span class="keywordtype">float</span> x, <span class="keywordtype">float</span> y, <span class="keyword">const</span> std::string&amp; sText, <a class="code" href="structolc_1_1_pixel.html">Pixel</a> col, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; scale);</div>
+<div class="line"><a name="l00149"></a><span class="lineno"><a class="line" href="classolc_1_1_transformed_view.html#ab8e4acce21674331d91910c7056c59a3">  149</a></span>&#160;        <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_transformed_view.html#ab8e4acce21674331d91910c7056c59a3">DrawString</a>(<span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; pos, <span class="keyword">const</span> std::string&amp; sText, <span class="keyword">const</span> <a class="code" href="structolc_1_1_pixel.html">Pixel</a> col, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; scale);</div>
+<div class="line"><a name="l00150"></a><span class="lineno">  150</span>&#160; </div>
+<div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160;        </div>
+<div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160;        <span class="comment">// Draws a whole decal, with optional scale and tinting</span></div>
+<div class="line"><a name="l00153"></a><span class="lineno"><a class="line" href="classolc_1_1_transformed_view.html#a8bad23f424184f2e15f32deb7f179160">  153</a></span>&#160;        <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_transformed_view.html#a8bad23f424184f2e15f32deb7f179160">DrawDecal</a>(<span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; pos, <a class="code" href="classolc_1_1_decal.html">olc::Decal</a>* decal, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; scale = { 1.0f,1.0f }, <span class="keyword">const</span> <a class="code" href="structolc_1_1_pixel.html">olc::Pixel</a>&amp; tint = <a class="code" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>);</div>
+<div class="line"><a name="l00154"></a><span class="lineno">  154</span>&#160;        <span class="comment">// Draws a region of a decal, with optional scale and tinting</span></div>
+<div class="line"><a name="l00155"></a><span class="lineno"><a class="line" href="classolc_1_1_transformed_view.html#a1daefdb27499350eb3927c79ec60bca5">  155</a></span>&#160;        <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_transformed_view.html#a1daefdb27499350eb3927c79ec60bca5">DrawPartialDecal</a>(<span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; pos, <a class="code" href="classolc_1_1_decal.html">olc::Decal</a>* decal, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; source_pos, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; source_size, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; scale = { 1.0f,1.0f }, <span class="keyword">const</span> <a class="code" href="structolc_1_1_pixel.html">olc::Pixel</a>&amp; tint = <a class="code" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>);</div>
+<div class="line"><a name="l00156"></a><span class="lineno"><a class="line" href="classolc_1_1_transformed_view.html#a03ef78202a55d896cd86eb16f39b8847">  156</a></span>&#160;        <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_transformed_view.html#a03ef78202a55d896cd86eb16f39b8847">DrawPartialDecal</a>(<span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; pos, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; size, <a class="code" href="classolc_1_1_decal.html">olc::Decal</a>* decal, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; source_pos, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; source_size, <span class="keyword">const</span> <a class="code" href="structolc_1_1_pixel.html">olc::Pixel</a>&amp; tint = <a class="code" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>);</div>
+<div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160;        <span class="comment">// Draws fully user controlled 4 vertices, pos(pixels), uv(pixels), colours</span></div>
+<div class="line"><a name="l00158"></a><span class="lineno"><a class="line" href="classolc_1_1_transformed_view.html#ac133c5f498e18dc4bcf6a087c7f8b356">  158</a></span>&#160;        <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_transformed_view.html#ac133c5f498e18dc4bcf6a087c7f8b356">DrawExplicitDecal</a>(<a class="code" href="classolc_1_1_decal.html">olc::Decal</a>* decal, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>* pos, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>* uv, <span class="keyword">const</span> <a class="code" href="structolc_1_1_pixel.html">olc::Pixel</a>* col, uint32_t elements = 4);</div>
+<div class="line"><a name="l00160"></a><span class="lineno"><a class="line" href="classolc_1_1_transformed_view.html#a2c0e827b1182696275583059a1a72412">  160</a></span>&#160;        <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_transformed_view.html#a2c0e827b1182696275583059a1a72412">DrawWarpedDecal</a>(<a class="code" href="classolc_1_1_decal.html">olc::Decal</a>* decal, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>(&amp;pos)[4], <span class="keyword">const</span> <a class="code" href="structolc_1_1_pixel.html">olc::Pixel</a>&amp; tint = <a class="code" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>);</div>
+<div class="line"><a name="l00161"></a><span class="lineno"><a class="line" href="classolc_1_1_transformed_view.html#a250badf6257c666f0e0a07ed3d86ad9e">  161</a></span>&#160;        <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_transformed_view.html#a250badf6257c666f0e0a07ed3d86ad9e">DrawWarpedDecal</a>(<a class="code" href="classolc_1_1_decal.html">olc::Decal</a>* decal, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>* pos, <span class="keyword">const</span> <a class="code" href="structolc_1_1_pixel.html">olc::Pixel</a>&amp; tint = <a class="code" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>);</div>
+<div class="line"><a name="l00162"></a><span class="lineno"><a class="line" href="classolc_1_1_transformed_view.html#a615fda4662913d6a1fc2764025c28efc">  162</a></span>&#160;        <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_transformed_view.html#a615fda4662913d6a1fc2764025c28efc">DrawWarpedDecal</a>(<a class="code" href="classolc_1_1_decal.html">olc::Decal</a>* decal, <span class="keyword">const</span> std::array&lt;olc::vf2d, 4&gt;&amp; pos, <span class="keyword">const</span> <a class="code" href="structolc_1_1_pixel.html">olc::Pixel</a>&amp; tint = <a class="code" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>);</div>
+<div class="line"><a name="l00164"></a><span class="lineno"><a class="line" href="classolc_1_1_transformed_view.html#a17bf0d6a35728abe95993ef5475aa767">  164</a></span>&#160;        <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_transformed_view.html#a17bf0d6a35728abe95993ef5475aa767">DrawPartialWarpedDecal</a>(<a class="code" href="classolc_1_1_decal.html">olc::Decal</a>* decal, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>(&amp;pos)[4], <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; source_pos, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; source_size, <span class="keyword">const</span> <a class="code" href="structolc_1_1_pixel.html">olc::Pixel</a>&amp; tint = <a class="code" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>);</div>
+<div class="line"><a name="l00165"></a><span class="lineno"><a class="line" href="classolc_1_1_transformed_view.html#a88045b492c61288a7e5ca1eb164ad2fb">  165</a></span>&#160;        <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_transformed_view.html#a88045b492c61288a7e5ca1eb164ad2fb">DrawPartialWarpedDecal</a>(<a class="code" href="classolc_1_1_decal.html">olc::Decal</a>* decal, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>* pos, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; source_pos, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; source_size, <span class="keyword">const</span> <a class="code" href="structolc_1_1_pixel.html">olc::Pixel</a>&amp; tint = <a class="code" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>);</div>
+<div class="line"><a name="l00166"></a><span class="lineno"><a class="line" href="classolc_1_1_transformed_view.html#a624730b2582152c4cc49d457bc140859">  166</a></span>&#160;        <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_transformed_view.html#a624730b2582152c4cc49d457bc140859">DrawPartialWarpedDecal</a>(<a class="code" href="classolc_1_1_decal.html">olc::Decal</a>* decal, <span class="keyword">const</span> std::array&lt;olc::vf2d, 4&gt;&amp; pos, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; source_pos, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; source_size, <span class="keyword">const</span> <a class="code" href="structolc_1_1_pixel.html">olc::Pixel</a>&amp; tint = <a class="code" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>);</div>
+<div class="line"><a name="l00168"></a><span class="lineno"><a class="line" href="classolc_1_1_transformed_view.html#a0d11f6c9ddf0cda25a7b6a79c39c61d6">  168</a></span>&#160;        <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_transformed_view.html#a0d11f6c9ddf0cda25a7b6a79c39c61d6">DrawRotatedDecal</a>(<span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; pos, <a class="code" href="classolc_1_1_decal.html">olc::Decal</a>* decal, <span class="keyword">const</span> <span class="keywordtype">float</span> fAngle, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; center = { 0.0f, 0.0f }, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; scale = { 1.0f,1.0f }, <span class="keyword">const</span> <a class="code" href="structolc_1_1_pixel.html">olc::Pixel</a>&amp; tint = <a class="code" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>);</div>
+<div class="line"><a name="l00169"></a><span class="lineno"><a class="line" href="classolc_1_1_transformed_view.html#a3f2574c761a0045641fd2f5f9b194184">  169</a></span>&#160;        <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_transformed_view.html#a3f2574c761a0045641fd2f5f9b194184">DrawPartialRotatedDecal</a>(<span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; pos, <a class="code" href="classolc_1_1_decal.html">olc::Decal</a>* decal, <span class="keyword">const</span> <span class="keywordtype">float</span> fAngle, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; center, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; source_pos, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; source_size, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; scale = { 1.0f, 1.0f }, <span class="keyword">const</span> <a class="code" href="structolc_1_1_pixel.html">olc::Pixel</a>&amp; tint = <a class="code" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>);</div>
+<div class="line"><a name="l00170"></a><span class="lineno">  170</span>&#160;        <span class="comment">// Draws a multiline string as a decal, with tiniting and scaling</span></div>
+<div class="line"><a name="l00171"></a><span class="lineno"><a class="line" href="classolc_1_1_transformed_view.html#a903ad811f1e3f99d8c6e35f1a1aaf9bf">  171</a></span>&#160;        <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_transformed_view.html#a903ad811f1e3f99d8c6e35f1a1aaf9bf">DrawStringDecal</a>(<span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; pos, <span class="keyword">const</span> std::string&amp; sText, <span class="keyword">const</span> <a class="code" href="structolc_1_1_pixel.html">olc::Pixel</a> col = <a class="code" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; scale = { 1.0f, 1.0f });</div>
+<div class="line"><a name="l00172"></a><span class="lineno"><a class="line" href="classolc_1_1_transformed_view.html#afde48a1dc4946bfb3718c19bdf62b328">  172</a></span>&#160;        <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_transformed_view.html#afde48a1dc4946bfb3718c19bdf62b328">DrawStringPropDecal</a>(<span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; pos, <span class="keyword">const</span> std::string&amp; sText, <span class="keyword">const</span> <a class="code" href="structolc_1_1_pixel.html">olc::Pixel</a> col = <a class="code" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; scale = { 1.0f, 1.0f });</div>
+<div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160;        <span class="comment">// Draws a single shaded filled rectangle as a decal</span></div>
+<div class="line"><a name="l00174"></a><span class="lineno"><a class="line" href="classolc_1_1_transformed_view.html#a82f6eeb19d315324c160aa78fd2ead70">  174</a></span>&#160;        <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_transformed_view.html#a82f6eeb19d315324c160aa78fd2ead70">FillRectDecal</a>(<span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; pos, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; size, <span class="keyword">const</span> <a class="code" href="structolc_1_1_pixel.html">olc::Pixel</a> col = <a class="code" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>);</div>
+<div class="line"><a name="l00175"></a><span class="lineno">  175</span>&#160;        <span class="comment">// Draws a corner shaded rectangle as a decal</span></div>
+<div class="line"><a name="l00176"></a><span class="lineno"><a class="line" href="classolc_1_1_transformed_view.html#a220b8b9184eb25a6bb2c3271d5417025">  176</a></span>&#160;        <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_transformed_view.html#a220b8b9184eb25a6bb2c3271d5417025">GradientFillRectDecal</a>(<span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; pos, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; size, <span class="keyword">const</span> <a class="code" href="structolc_1_1_pixel.html">olc::Pixel</a> colTL, <span class="keyword">const</span> <a class="code" href="structolc_1_1_pixel.html">olc::Pixel</a> colBL, <span class="keyword">const</span> <a class="code" href="structolc_1_1_pixel.html">olc::Pixel</a> colBR, <span class="keyword">const</span> <a class="code" href="structolc_1_1_pixel.html">olc::Pixel</a> colTR);</div>
+<div class="line"><a name="l00177"></a><span class="lineno">  177</span>&#160;        <span class="comment">// Draws an arbitrary convex textured polygon using GPU</span></div>
+<div class="line"><a name="l00178"></a><span class="lineno"><a class="line" href="classolc_1_1_transformed_view.html#a0555577738d2edacb8b8e701d90804d7">  178</a></span>&#160;        <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_transformed_view.html#a0555577738d2edacb8b8e701d90804d7">DrawPolygonDecal</a>(<a class="code" href="classolc_1_1_decal.html">olc::Decal</a>* decal, <span class="keyword">const</span> std::vector&lt;olc::vf2d&gt;&amp; pos, <span class="keyword">const</span> std::vector&lt;olc::vf2d&gt;&amp; uv, <span class="keyword">const</span> <a class="code" href="structolc_1_1_pixel.html">olc::Pixel</a> tint = <a class="code" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>);</div>
+<div class="line"><a name="l00179"></a><span class="lineno">  179</span>&#160; </div>
+<div class="line"><a name="l00180"></a><span class="lineno">  180</span>&#160;    };</div>
+<div class="line"><a name="l00181"></a><span class="lineno">  181</span>&#160; </div>
+<div class="line"><a name="l00182"></a><span class="lineno"><a class="line" href="classolc_1_1_tile_transformed_view.html">  182</a></span>&#160;    <span class="keyword">class </span><a class="code" href="classolc_1_1_tile_transformed_view.html">TileTransformedView</a> : <span class="keyword">public</span> <a class="code" href="classolc_1_1_transformed_view.html">TransformedView</a></div>
+<div class="line"><a name="l00183"></a><span class="lineno">  183</span>&#160;    {</div>
+<div class="line"><a name="l00184"></a><span class="lineno">  184</span>&#160;    <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00185"></a><span class="lineno"><a class="line" href="classolc_1_1_tile_transformed_view.html#a4ecc47c57596ad966120894db8d6ad59">  185</a></span>&#160;        <a class="code" href="classolc_1_1_tile_transformed_view.html#a4ecc47c57596ad966120894db8d6ad59">TileTransformedView</a>() = <span class="keywordflow">default</span>;    </div>
+<div class="line"><a name="l00186"></a><span class="lineno"><a class="line" href="classolc_1_1_tile_transformed_view.html#ac38d47324d7370b5259894d814b879f8">  186</a></span>&#160;        <a class="code" href="classolc_1_1_tile_transformed_view.html#ac38d47324d7370b5259894d814b879f8">TileTransformedView</a>(<span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vi2d</a>&amp; vViewArea, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vi2d</a>&amp; vTileSize);</div>
+<div class="line"><a name="l00187"></a><span class="lineno">  187</span>&#160;    </div>
+<div class="line"><a name="l00188"></a><span class="lineno">  188</span>&#160;    <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00189"></a><span class="lineno"><a class="line" href="classolc_1_1_tile_transformed_view.html#ace1a6e5c3df96cd43582e02ca4b94dac">  189</a></span>&#160;        <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_tile_transformed_view.html#ace1a6e5c3df96cd43582e02ca4b94dac">SetRangeX</a>(<span class="keyword">const</span> <span class="keywordtype">bool</span> bRanged, <span class="keyword">const</span> int32_t nMin = 0, <span class="keyword">const</span> int32_t nMax = 0);</div>
+<div class="line"><a name="l00190"></a><span class="lineno"><a class="line" href="classolc_1_1_tile_transformed_view.html#a660fcd24db414be714ae53ba131296a7">  190</a></span>&#160;        <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_tile_transformed_view.html#a660fcd24db414be714ae53ba131296a7">SetRangeY</a>(<span class="keyword">const</span> <span class="keywordtype">bool</span> bRanged, <span class="keyword">const</span> int32_t nMin = 0, <span class="keyword">const</span> int32_t nMax = 0);</div>
+<div class="line"><a name="l00191"></a><span class="lineno"><a class="line" href="classolc_1_1_tile_transformed_view.html#a9230a04b74c812551768b324a07bf2a3">  191</a></span>&#160;        <a class="code" href="structolc_1_1v2d__generic.html">olc::vi2d</a> <a class="code" href="classolc_1_1_tile_transformed_view.html#a9230a04b74c812551768b324a07bf2a3">GetTopLeftTile</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00192"></a><span class="lineno"><a class="line" href="classolc_1_1_tile_transformed_view.html#af681fe11952b2a791a388c79054adc1f">  192</a></span>&#160;        <a class="code" href="structolc_1_1v2d__generic.html">olc::vi2d</a> <a class="code" href="classolc_1_1_tile_transformed_view.html#af681fe11952b2a791a388c79054adc1f">GetBottomRightTile</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00193"></a><span class="lineno"><a class="line" href="classolc_1_1_tile_transformed_view.html#abc2e3898f7bb8209d84095cc5c16843b">  193</a></span>&#160;        <a class="code" href="structolc_1_1v2d__generic.html">olc::vi2d</a> <a class="code" href="classolc_1_1_tile_transformed_view.html#abc2e3898f7bb8209d84095cc5c16843b">GetVisibleTiles</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00194"></a><span class="lineno"><a class="line" href="classolc_1_1_tile_transformed_view.html#a1a963a55248ff021b76ecc8e92a555e6">  194</a></span>&#160;        <a class="code" href="structolc_1_1v2d__generic.html">olc::vi2d</a> <a class="code" href="classolc_1_1_tile_transformed_view.html#a1a963a55248ff021b76ecc8e92a555e6">GetTileUnderScreenPos</a>(<span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vi2d</a>&amp; vPos) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00195"></a><span class="lineno"><a class="line" href="classolc_1_1_tile_transformed_view.html#afd338a68b965309beeefa3f239a0680b">  195</a></span>&#160;        <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vi2d</a> <a class="code" href="classolc_1_1_tile_transformed_view.html#afd338a68b965309beeefa3f239a0680b">GetTileOffset</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00196"></a><span class="lineno">  196</span>&#160;        </div>
+<div class="line"><a name="l00197"></a><span class="lineno">  197</span>&#160;    <span class="keyword">private</span>:</div>
+<div class="line"><a name="l00198"></a><span class="lineno">  198</span>&#160;        <span class="keywordtype">bool</span> m_bRangedX = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00199"></a><span class="lineno">  199</span>&#160;        int32_t m_nMinRangeX = 0;</div>
+<div class="line"><a name="l00200"></a><span class="lineno">  200</span>&#160;        int32_t m_nMaxRangeX = 0;</div>
+<div class="line"><a name="l00201"></a><span class="lineno">  201</span>&#160;        <span class="keywordtype">bool</span> m_bRangedY = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00202"></a><span class="lineno">  202</span>&#160;        int32_t m_nMinRangeY = 0;</div>
+<div class="line"><a name="l00203"></a><span class="lineno">  203</span>&#160;        int32_t m_nMaxRangeY = 0;</div>
+<div class="line"><a name="l00204"></a><span class="lineno">  204</span>&#160;    };</div>
+<div class="line"><a name="l00205"></a><span class="lineno">  205</span>&#160;}</div>
+<div class="line"><a name="l00206"></a><span class="lineno">  206</span>&#160; </div>
+<div class="line"><a name="l00207"></a><span class="lineno">  207</span>&#160;<span class="preprocessor">#ifdef OLC_PGEX_TRANSFORMEDVIEW</span></div>
+<div class="line"><a name="l00208"></a><span class="lineno">  208</span>&#160;<span class="preprocessor">#undef OLC_PGEX_TRANSFORMEDVIEW</span></div>
+<div class="line"><a name="l00209"></a><span class="lineno">  209</span>&#160; </div>
+<div class="line"><a name="l00210"></a><span class="lineno">  210</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespaceolc.html">olc</a></div>
+<div class="line"><a name="l00211"></a><span class="lineno">  211</span>&#160;{</div>
+<div class="line"><a name="l00212"></a><span class="lineno">  212</span>&#160; </div>
+<div class="line"><a name="l00213"></a><span class="lineno">  213</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_transformed_view.html#a799473b80691228b87a818f80847ca76">TransformedView::Initialise</a>(<span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vi2d</a>&amp; vViewArea, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; vPixelScale)</div>
+<div class="line"><a name="l00214"></a><span class="lineno">  214</span>&#160;    {</div>
+<div class="line"><a name="l00215"></a><span class="lineno">  215</span>&#160;        <a class="code" href="classolc_1_1_transformed_view.html#ac7295e90921832fef16779172cc9e4ff">SetViewArea</a>(vViewArea);</div>
+<div class="line"><a name="l00216"></a><span class="lineno">  216</span>&#160;        <a class="code" href="classolc_1_1_transformed_view.html#a971e25ee6978c271127f766aba69b285">SetWorldScale</a>(vPixelScale);</div>
+<div class="line"><a name="l00217"></a><span class="lineno">  217</span>&#160;        <a class="code" href="classolc_1_1_transformed_view.html#a94a7fd3ad136ec70040bbff1c7133418">m_vPixelScale</a> = vPixelScale;</div>
+<div class="line"><a name="l00218"></a><span class="lineno">  218</span>&#160;        <a class="code" href="classolc_1_1_transformed_view.html#ae1b7b82332f0979caa99e003827624cb">m_vRecipPixel</a> = 1.0f / <a class="code" href="classolc_1_1_transformed_view.html#a94a7fd3ad136ec70040bbff1c7133418">m_vPixelScale</a>;</div>
+<div class="line"><a name="l00219"></a><span class="lineno">  219</span>&#160;    }</div>
+<div class="line"><a name="l00220"></a><span class="lineno">  220</span>&#160; </div>
+<div class="line"><a name="l00221"></a><span class="lineno">  221</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_transformed_view.html#aee86c84a719f8b5c3143e2a0b89e8024">TransformedView::SetWorldOffset</a>(<span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; vOffset)</div>
+<div class="line"><a name="l00222"></a><span class="lineno">  222</span>&#160;    {</div>
+<div class="line"><a name="l00223"></a><span class="lineno">  223</span>&#160;        <a class="code" href="classolc_1_1_transformed_view.html#a2e77497521f72e59ae7ecb56dc5d3f37">m_vWorldOffset</a> = vOffset;</div>
+<div class="line"><a name="l00224"></a><span class="lineno">  224</span>&#160;    }</div>
+<div class="line"><a name="l00225"></a><span class="lineno">  225</span>&#160; </div>
+<div class="line"><a name="l00226"></a><span class="lineno">  226</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_transformed_view.html#a154b34bc81f6e0c67579d2d2ee40b2d1">TransformedView::MoveWorldOffset</a>(<span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; vDeltaOffset)</div>
+<div class="line"><a name="l00227"></a><span class="lineno">  227</span>&#160;    {</div>
+<div class="line"><a name="l00228"></a><span class="lineno">  228</span>&#160;        <a class="code" href="classolc_1_1_transformed_view.html#a2e77497521f72e59ae7ecb56dc5d3f37">m_vWorldOffset</a> += vDeltaOffset;</div>
+<div class="line"><a name="l00229"></a><span class="lineno">  229</span>&#160;    }</div>
+<div class="line"><a name="l00230"></a><span class="lineno">  230</span>&#160; </div>
+<div class="line"><a name="l00231"></a><span class="lineno">  231</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_transformed_view.html#a971e25ee6978c271127f766aba69b285">TransformedView::SetWorldScale</a>(<span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; vScale)</div>
+<div class="line"><a name="l00232"></a><span class="lineno">  232</span>&#160;    {</div>
+<div class="line"><a name="l00233"></a><span class="lineno">  233</span>&#160;        <a class="code" href="classolc_1_1_transformed_view.html#a652909b48a4d8960c36d1ce4262cc95a">m_vWorldScale</a> = vScale;</div>
+<div class="line"><a name="l00234"></a><span class="lineno">  234</span>&#160;    }</div>
+<div class="line"><a name="l00235"></a><span class="lineno">  235</span>&#160; </div>
+<div class="line"><a name="l00236"></a><span class="lineno">  236</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_transformed_view.html#ac7295e90921832fef16779172cc9e4ff">TransformedView::SetViewArea</a>(<span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vi2d</a>&amp; vViewArea)</div>
+<div class="line"><a name="l00237"></a><span class="lineno">  237</span>&#160;    {</div>
+<div class="line"><a name="l00238"></a><span class="lineno">  238</span>&#160;        <a class="code" href="classolc_1_1_transformed_view.html#a0a2936aac23f1621ff1d618c7155de1c">m_vViewArea</a> = vViewArea;</div>
+<div class="line"><a name="l00239"></a><span class="lineno">  239</span>&#160;    }</div>
+<div class="line"><a name="l00240"></a><span class="lineno">  240</span>&#160; </div>
+<div class="line"><a name="l00241"></a><span class="lineno">  241</span>&#160;    <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a> <a class="code" href="classolc_1_1_transformed_view.html#ac75bd045f9fbc5d8cd901ecdd216fcb5">TransformedView::GetWorldTL</a>()<span class="keyword"> const</span></div>
+<div class="line"><a name="l00242"></a><span class="lineno">  242</span>&#160;<span class="keyword">    </span>{</div>
+<div class="line"><a name="l00243"></a><span class="lineno">  243</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="classolc_1_1_transformed_view.html#a0f18594e00e7865fe4376761f9e20812">ScreenToWorld</a>({ 0,0 });</div>
+<div class="line"><a name="l00244"></a><span class="lineno">  244</span>&#160;    }</div>
+<div class="line"><a name="l00245"></a><span class="lineno">  245</span>&#160; </div>
+<div class="line"><a name="l00246"></a><span class="lineno">  246</span>&#160;    <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a> <a class="code" href="classolc_1_1_transformed_view.html#a5240bf2a7285559be13c80f3ce2a97a3">TransformedView::GetWorldBR</a>()<span class="keyword"> const</span></div>
+<div class="line"><a name="l00247"></a><span class="lineno">  247</span>&#160;<span class="keyword">    </span>{</div>
+<div class="line"><a name="l00248"></a><span class="lineno">  248</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="classolc_1_1_transformed_view.html#a0f18594e00e7865fe4376761f9e20812">TransformedView::ScreenToWorld</a>(<a class="code" href="classolc_1_1_transformed_view.html#a0a2936aac23f1621ff1d618c7155de1c">m_vViewArea</a>);</div>
+<div class="line"><a name="l00249"></a><span class="lineno">  249</span>&#160;    }</div>
+<div class="line"><a name="l00250"></a><span class="lineno">  250</span>&#160; </div>
+<div class="line"><a name="l00251"></a><span class="lineno">  251</span>&#160;    <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a> <a class="code" href="classolc_1_1_transformed_view.html#a7f7815582a087a163199bb29f1c4c0ae">TransformedView::GetWorldVisibleArea</a>()<span class="keyword"> const</span></div>
+<div class="line"><a name="l00252"></a><span class="lineno">  252</span>&#160;<span class="keyword">    </span>{</div>
+<div class="line"><a name="l00253"></a><span class="lineno">  253</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="classolc_1_1_transformed_view.html#a5240bf2a7285559be13c80f3ce2a97a3">GetWorldBR</a>() - <a class="code" href="classolc_1_1_transformed_view.html#ac75bd045f9fbc5d8cd901ecdd216fcb5">GetWorldTL</a>();</div>
+<div class="line"><a name="l00254"></a><span class="lineno">  254</span>&#160;    }</div>
+<div class="line"><a name="l00255"></a><span class="lineno">  255</span>&#160; </div>
+<div class="line"><a name="l00256"></a><span class="lineno">  256</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_transformed_view.html#a84a8b9030ac97afa9b6099dea5865b9c">TransformedView::ZoomAtScreenPos</a>(<span class="keyword">const</span> <span class="keywordtype">float</span> fDeltaZoom, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vi2d</a>&amp; vPos)</div>
+<div class="line"><a name="l00257"></a><span class="lineno">  257</span>&#160;    {</div>
+<div class="line"><a name="l00258"></a><span class="lineno">  258</span>&#160;        <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a> vOffsetBeforeZoom = <a class="code" href="classolc_1_1_transformed_view.html#a0f18594e00e7865fe4376761f9e20812">ScreenToWorld</a>(vPos);</div>
+<div class="line"><a name="l00259"></a><span class="lineno">  259</span>&#160;        <a class="code" href="classolc_1_1_transformed_view.html#a652909b48a4d8960c36d1ce4262cc95a">m_vWorldScale</a> *= fDeltaZoom;</div>
+<div class="line"><a name="l00260"></a><span class="lineno">  260</span>&#160;        <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a> vOffsetAfterZoom = <a class="code" href="classolc_1_1_transformed_view.html#a0f18594e00e7865fe4376761f9e20812">ScreenToWorld</a>(vPos);</div>
+<div class="line"><a name="l00261"></a><span class="lineno">  261</span>&#160;        <a class="code" href="classolc_1_1_transformed_view.html#a2e77497521f72e59ae7ecb56dc5d3f37">m_vWorldOffset</a> += vOffsetBeforeZoom - vOffsetAfterZoom;</div>
+<div class="line"><a name="l00262"></a><span class="lineno">  262</span>&#160;    }</div>
+<div class="line"><a name="l00263"></a><span class="lineno">  263</span>&#160; </div>
+<div class="line"><a name="l00264"></a><span class="lineno">  264</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_transformed_view.html#a89fd4d642cf37d1e6f1674b870b142d8">TransformedView::SetZoom</a>(<span class="keyword">const</span> <span class="keywordtype">float</span> fZoom, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vi2d</a>&amp; vPos)</div>
+<div class="line"><a name="l00265"></a><span class="lineno">  265</span>&#160;    {</div>
+<div class="line"><a name="l00266"></a><span class="lineno">  266</span>&#160;        <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a> vOffsetBeforeZoom = <a class="code" href="classolc_1_1_transformed_view.html#a0f18594e00e7865fe4376761f9e20812">ScreenToWorld</a>(vPos);</div>
+<div class="line"><a name="l00267"></a><span class="lineno">  267</span>&#160;        <a class="code" href="classolc_1_1_transformed_view.html#a652909b48a4d8960c36d1ce4262cc95a">m_vWorldScale</a> = { fZoom, fZoom };</div>
+<div class="line"><a name="l00268"></a><span class="lineno">  268</span>&#160;        <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a> vOffsetAfterZoom = <a class="code" href="classolc_1_1_transformed_view.html#a0f18594e00e7865fe4376761f9e20812">ScreenToWorld</a>(vPos);</div>
+<div class="line"><a name="l00269"></a><span class="lineno">  269</span>&#160;        <a class="code" href="classolc_1_1_transformed_view.html#a2e77497521f72e59ae7ecb56dc5d3f37">m_vWorldOffset</a> += vOffsetBeforeZoom - vOffsetAfterZoom;</div>
+<div class="line"><a name="l00270"></a><span class="lineno">  270</span>&#160;    }</div>
+<div class="line"><a name="l00271"></a><span class="lineno">  271</span>&#160; </div>
+<div class="line"><a name="l00272"></a><span class="lineno">  272</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_transformed_view.html#a4dc2bd0de3686978fdf8630d23a727c3">TransformedView::StartPan</a>(<span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vi2d</a>&amp; vPos)</div>
+<div class="line"><a name="l00273"></a><span class="lineno">  273</span>&#160;    {</div>
+<div class="line"><a name="l00274"></a><span class="lineno">  274</span>&#160;        <a class="code" href="classolc_1_1_transformed_view.html#a2c19ec65e54f43500cce003f878c8ed5">m_bPanning</a> = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00275"></a><span class="lineno">  275</span>&#160;        <a class="code" href="classolc_1_1_transformed_view.html#a4f7569cc3d27120b485077789b86aa44">m_vStartPan</a> = <a class="code" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a>(vPos);</div>
+<div class="line"><a name="l00276"></a><span class="lineno">  276</span>&#160;    }</div>
+<div class="line"><a name="l00277"></a><span class="lineno">  277</span>&#160; </div>
+<div class="line"><a name="l00278"></a><span class="lineno">  278</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_transformed_view.html#a4baf2b53892749ff380833991161b9c4">TransformedView::UpdatePan</a>(<span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vi2d</a>&amp; vPos)</div>
+<div class="line"><a name="l00279"></a><span class="lineno">  279</span>&#160;    {</div>
+<div class="line"><a name="l00280"></a><span class="lineno">  280</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="classolc_1_1_transformed_view.html#a2c19ec65e54f43500cce003f878c8ed5">m_bPanning</a>)</div>
+<div class="line"><a name="l00281"></a><span class="lineno">  281</span>&#160;        {</div>
+<div class="line"><a name="l00282"></a><span class="lineno">  282</span>&#160;            <a class="code" href="classolc_1_1_transformed_view.html#a2e77497521f72e59ae7ecb56dc5d3f37">m_vWorldOffset</a> -= (<a class="code" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a>(vPos) - <a class="code" href="classolc_1_1_transformed_view.html#a4f7569cc3d27120b485077789b86aa44">m_vStartPan</a>) / <a class="code" href="classolc_1_1_transformed_view.html#a652909b48a4d8960c36d1ce4262cc95a">m_vWorldScale</a>;</div>
+<div class="line"><a name="l00283"></a><span class="lineno">  283</span>&#160;            <a class="code" href="classolc_1_1_transformed_view.html#a4f7569cc3d27120b485077789b86aa44">m_vStartPan</a> = <a class="code" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a>(vPos);</div>
+<div class="line"><a name="l00284"></a><span class="lineno">  284</span>&#160;        }</div>
+<div class="line"><a name="l00285"></a><span class="lineno">  285</span>&#160;    }</div>
+<div class="line"><a name="l00286"></a><span class="lineno">  286</span>&#160; </div>
+<div class="line"><a name="l00287"></a><span class="lineno">  287</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_transformed_view.html#a3edd680172e1ae5b710290ab58d617e0">TransformedView::EndPan</a>(<span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vi2d</a>&amp; vPos)</div>
+<div class="line"><a name="l00288"></a><span class="lineno">  288</span>&#160;    {</div>
+<div class="line"><a name="l00289"></a><span class="lineno">  289</span>&#160;        <a class="code" href="classolc_1_1_transformed_view.html#a4baf2b53892749ff380833991161b9c4">UpdatePan</a>(vPos);</div>
+<div class="line"><a name="l00290"></a><span class="lineno">  290</span>&#160;        <a class="code" href="classolc_1_1_transformed_view.html#a2c19ec65e54f43500cce003f878c8ed5">m_bPanning</a> = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00291"></a><span class="lineno">  291</span>&#160;    }</div>
+<div class="line"><a name="l00292"></a><span class="lineno">  292</span>&#160; </div>
+<div class="line"><a name="l00293"></a><span class="lineno">  293</span>&#160;    <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; <a class="code" href="classolc_1_1_transformed_view.html#a88152a5f5b9fbb3df0f6d965ef4c4fe4">TransformedView::GetWorldOffset</a>()<span class="keyword"> const</span></div>
+<div class="line"><a name="l00294"></a><span class="lineno">  294</span>&#160;<span class="keyword">    </span>{</div>
+<div class="line"><a name="l00295"></a><span class="lineno">  295</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="classolc_1_1_transformed_view.html#a2e77497521f72e59ae7ecb56dc5d3f37">m_vWorldOffset</a>;</div>
+<div class="line"><a name="l00296"></a><span class="lineno">  296</span>&#160;    }</div>
+<div class="line"><a name="l00297"></a><span class="lineno">  297</span>&#160; </div>
+<div class="line"><a name="l00298"></a><span class="lineno">  298</span>&#160;    <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; <a class="code" href="classolc_1_1_transformed_view.html#a4f6ba5d2c58b720677f4287743713f65">TransformedView::GetWorldScale</a>()<span class="keyword"> const</span></div>
+<div class="line"><a name="l00299"></a><span class="lineno">  299</span>&#160;<span class="keyword">    </span>{</div>
+<div class="line"><a name="l00300"></a><span class="lineno">  300</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="classolc_1_1_transformed_view.html#a652909b48a4d8960c36d1ce4262cc95a">m_vWorldScale</a>;</div>
+<div class="line"><a name="l00301"></a><span class="lineno">  301</span>&#160;    }</div>
+<div class="line"><a name="l00302"></a><span class="lineno">  302</span>&#160; </div>
+<div class="line"><a name="l00303"></a><span class="lineno">  303</span>&#160;    <a class="code" href="structolc_1_1v2d__generic.html">olc::vi2d</a> <a class="code" href="classolc_1_1_transformed_view.html#a18b18c9718c642ca912d44a133ffde1d">TransformedView::WorldToScreen</a>(<span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; vWorldPos)<span class="keyword"> const</span></div>
+<div class="line"><a name="l00304"></a><span class="lineno">  304</span>&#160;<span class="keyword">    </span>{</div>
+<div class="line"><a name="l00305"></a><span class="lineno">  305</span>&#160;        <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a> vFloat = ((vWorldPos - <a class="code" href="classolc_1_1_transformed_view.html#a2e77497521f72e59ae7ecb56dc5d3f37">m_vWorldOffset</a>) * <a class="code" href="classolc_1_1_transformed_view.html#a652909b48a4d8960c36d1ce4262cc95a">m_vWorldScale</a>);</div>
+<div class="line"><a name="l00306"></a><span class="lineno">  306</span>&#160;        vFloat = { std::floor(vFloat.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a>), std::floor(vFloat.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a>) };</div>
+<div class="line"><a name="l00307"></a><span class="lineno">  307</span>&#160;        <span class="keywordflow">return</span> vFloat;</div>
+<div class="line"><a name="l00308"></a><span class="lineno">  308</span>&#160;    }</div>
+<div class="line"><a name="l00309"></a><span class="lineno">  309</span>&#160; </div>
+<div class="line"><a name="l00310"></a><span class="lineno">  310</span>&#160;    <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a> <a class="code" href="classolc_1_1_transformed_view.html#a0f18594e00e7865fe4376761f9e20812">TransformedView::ScreenToWorld</a>(<span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vi2d</a>&amp; vScreenPos)<span class="keyword"> const</span></div>
+<div class="line"><a name="l00311"></a><span class="lineno">  311</span>&#160;<span class="keyword">    </span>{</div>
+<div class="line"><a name="l00312"></a><span class="lineno">  312</span>&#160;        <span class="keywordflow">return</span> (<a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>(vScreenPos) / <a class="code" href="classolc_1_1_transformed_view.html#a652909b48a4d8960c36d1ce4262cc95a">m_vWorldScale</a>) + <a class="code" href="classolc_1_1_transformed_view.html#a2e77497521f72e59ae7ecb56dc5d3f37">m_vWorldOffset</a>;</div>
+<div class="line"><a name="l00313"></a><span class="lineno">  313</span>&#160;    }</div>
+<div class="line"><a name="l00314"></a><span class="lineno">  314</span>&#160; </div>
+<div class="line"><a name="l00315"></a><span class="lineno">  315</span>&#160;    <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a> <a class="code" href="classolc_1_1_transformed_view.html#a09492f689459319994da4c9d0e0c2dc4">TransformedView::ScaleToWorld</a>(<span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vi2d</a>&amp; vScreenSize)<span class="keyword"> const</span></div>
+<div class="line"><a name="l00316"></a><span class="lineno">  316</span>&#160;<span class="keyword">    </span>{</div>
+<div class="line"><a name="l00317"></a><span class="lineno">  317</span>&#160;        <span class="keywordflow">return</span> (<a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>(vScreenSize) / <a class="code" href="classolc_1_1_transformed_view.html#a652909b48a4d8960c36d1ce4262cc95a">m_vWorldScale</a>);</div>
+<div class="line"><a name="l00318"></a><span class="lineno">  318</span>&#160;    }</div>
+<div class="line"><a name="l00319"></a><span class="lineno">  319</span>&#160; </div>
+<div class="line"><a name="l00320"></a><span class="lineno">  320</span>&#160;    <a class="code" href="structolc_1_1v2d__generic.html">olc::vi2d</a> <a class="code" href="classolc_1_1_transformed_view.html#a8be86d8036bf635287debfcf2509e4c5">TransformedView::ScaleToScreen</a>(<span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; vWorldSize)<span class="keyword"> const</span></div>
+<div class="line"><a name="l00321"></a><span class="lineno">  321</span>&#160;<span class="keyword">    </span>{</div>
+<div class="line"><a name="l00322"></a><span class="lineno">  322</span>&#160;        <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a> vFloat = vWorldSize * <a class="code" href="classolc_1_1_transformed_view.html#a652909b48a4d8960c36d1ce4262cc95a">m_vWorldScale</a>;      </div>
+<div class="line"><a name="l00323"></a><span class="lineno">  323</span>&#160;        <span class="keywordflow">return</span> vFloat.<a class="code" href="structolc_1_1v2d__generic.html#affe50148d448ff75c298da3a1fd45323">floor</a>();</div>
+<div class="line"><a name="l00324"></a><span class="lineno">  324</span>&#160;    }</div>
+<div class="line"><a name="l00325"></a><span class="lineno">  325</span>&#160; </div>
+<div class="line"><a name="l00326"></a><span class="lineno">  326</span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="classolc_1_1_transformed_view.html#a664ea0cbd54bbff17ea419ebfac1e359">TransformedView::IsPointVisible</a>(<span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a> &amp; vPos)<span class="keyword"> const</span></div>
+<div class="line"><a name="l00327"></a><span class="lineno">  327</span>&#160;<span class="keyword">    </span>{</div>
+<div class="line"><a name="l00328"></a><span class="lineno">  328</span>&#160;        <a class="code" href="structolc_1_1v2d__generic.html">olc::vi2d</a> vScreen = <a class="code" href="classolc_1_1_transformed_view.html#a18b18c9718c642ca912d44a133ffde1d">WorldToScreen</a>(vPos);</div>
+<div class="line"><a name="l00329"></a><span class="lineno">  329</span>&#160;        <span class="keywordflow">return</span> vScreen.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a> &gt;= 0 &amp;&amp; vScreen.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a> &lt; <a class="code" href="classolc_1_1_transformed_view.html#a0a2936aac23f1621ff1d618c7155de1c">m_vViewArea</a>.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a>&amp;&amp; vScreen.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a> &gt;= 0 &amp;&amp; vScreen.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a> &lt; <a class="code" href="classolc_1_1_transformed_view.html#a0a2936aac23f1621ff1d618c7155de1c">m_vViewArea</a>.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a>;</div>
+<div class="line"><a name="l00330"></a><span class="lineno">  330</span>&#160;    }</div>
+<div class="line"><a name="l00331"></a><span class="lineno">  331</span>&#160; </div>
+<div class="line"><a name="l00332"></a><span class="lineno">  332</span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="classolc_1_1_transformed_view.html#aecadbbdf84343ec0a2f0e2e8c9017f0e">TransformedView::IsRectVisible</a>(<span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; vPos, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; vSize)<span class="keyword"> const</span></div>
+<div class="line"><a name="l00333"></a><span class="lineno">  333</span>&#160;<span class="keyword">    </span>{</div>
+<div class="line"><a name="l00334"></a><span class="lineno">  334</span>&#160;        <a class="code" href="structolc_1_1v2d__generic.html">olc::vi2d</a> vScreenPos = <a class="code" href="classolc_1_1_transformed_view.html#a18b18c9718c642ca912d44a133ffde1d">WorldToScreen</a>(vPos);</div>
+<div class="line"><a name="l00335"></a><span class="lineno">  335</span>&#160;        <a class="code" href="structolc_1_1v2d__generic.html">olc::vi2d</a> vScreenSize = vSize * <a class="code" href="classolc_1_1_transformed_view.html#a652909b48a4d8960c36d1ce4262cc95a">m_vWorldScale</a>;</div>
+<div class="line"><a name="l00336"></a><span class="lineno">  336</span>&#160;        <span class="keywordflow">return</span> (vScreenPos.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a> &lt; 0 + <a class="code" href="classolc_1_1_transformed_view.html#a0a2936aac23f1621ff1d618c7155de1c">m_vViewArea</a>.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a> &amp;&amp; vScreenPos.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a> + vScreenSize.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a> &gt; 0 &amp;&amp; vScreenPos.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a> &lt; <a class="code" href="classolc_1_1_transformed_view.html#a0a2936aac23f1621ff1d618c7155de1c">m_vViewArea</a>.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a>&amp;&amp; vScreenPos.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a> + vScreenSize.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a> &gt; 0);</div>
+<div class="line"><a name="l00337"></a><span class="lineno">  337</span>&#160;    }</div>
+<div class="line"><a name="l00338"></a><span class="lineno">  338</span>&#160; </div>
+<div class="line"><a name="l00339"></a><span class="lineno">  339</span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="classolc_1_1_transformed_view.html#a09a214f47f9e4f5e85a8d3bd224ab9b1">TransformedView::Draw</a>(<span class="keywordtype">float</span> x, <span class="keywordtype">float</span> y, <a class="code" href="structolc_1_1_pixel.html">olc::Pixel</a> p)</div>
+<div class="line"><a name="l00340"></a><span class="lineno">  340</span>&#160;    {</div>
+<div class="line"><a name="l00341"></a><span class="lineno">  341</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="classolc_1_1_transformed_view.html#a09a214f47f9e4f5e85a8d3bd224ab9b1">Draw</a>({ x, y }, p);</div>
+<div class="line"><a name="l00342"></a><span class="lineno">  342</span>&#160;    }</div>
+<div class="line"><a name="l00343"></a><span class="lineno">  343</span>&#160; </div>
+<div class="line"><a name="l00344"></a><span class="lineno">  344</span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="classolc_1_1_transformed_view.html#a09a214f47f9e4f5e85a8d3bd224ab9b1">TransformedView::Draw</a>(<span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a> &amp; pos, <a class="code" href="structolc_1_1_pixel.html">olc::Pixel</a> p)</div>
+<div class="line"><a name="l00345"></a><span class="lineno">  345</span>&#160;    {</div>
+<div class="line"><a name="l00346"></a><span class="lineno">  346</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="classolc_1_1_p_g_e_x.html#a032efdb84150a7cdd3cc9248860df316">pge</a>-&gt;<a class="code" href="classolc_1_1_pixel_game_engine.html#a95ab046b4b0843565bddd0e009a25569">Draw</a>(<a class="code" href="classolc_1_1_transformed_view.html#a18b18c9718c642ca912d44a133ffde1d">WorldToScreen</a>(pos), p);</div>
+<div class="line"><a name="l00347"></a><span class="lineno">  347</span>&#160;    }</div>
+<div class="line"><a name="l00348"></a><span class="lineno">  348</span>&#160;    </div>
+<div class="line"><a name="l00349"></a><span class="lineno">  349</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_transformed_view.html#a2564b30474cab1de208a9b220ddbc181">TransformedView::DrawLine</a>(<span class="keywordtype">float</span> x1, <span class="keywordtype">float</span> y1, <span class="keywordtype">float</span> x2, <span class="keywordtype">float</span> y2, <a class="code" href="structolc_1_1_pixel.html">olc::Pixel</a> p, uint32_t pattern)</div>
+<div class="line"><a name="l00350"></a><span class="lineno">  350</span>&#160;    {</div>
+<div class="line"><a name="l00351"></a><span class="lineno">  351</span>&#160;        <a class="code" href="classolc_1_1_transformed_view.html#a2564b30474cab1de208a9b220ddbc181">DrawLine</a>({ x1, y1 }, { x2, y2 }, p, pattern);</div>
+<div class="line"><a name="l00352"></a><span class="lineno">  352</span>&#160;    }</div>
+<div class="line"><a name="l00353"></a><span class="lineno">  353</span>&#160; </div>
+<div class="line"><a name="l00354"></a><span class="lineno">  354</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_transformed_view.html#a2564b30474cab1de208a9b220ddbc181">TransformedView::DrawLine</a>(<span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a> &amp; pos1, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a> &amp; pos2, <a class="code" href="structolc_1_1_pixel.html">olc::Pixel</a> p, uint32_t pattern)</div>
+<div class="line"><a name="l00355"></a><span class="lineno">  355</span>&#160;    {</div>
+<div class="line"><a name="l00356"></a><span class="lineno">  356</span>&#160;        <a class="code" href="classolc_1_1_p_g_e_x.html#a032efdb84150a7cdd3cc9248860df316">pge</a>-&gt;<a class="code" href="classolc_1_1_pixel_game_engine.html#a131877968123c843374f079814503d22">DrawLine</a>(<a class="code" href="classolc_1_1_transformed_view.html#a18b18c9718c642ca912d44a133ffde1d">WorldToScreen</a>(pos1), <a class="code" href="classolc_1_1_transformed_view.html#a18b18c9718c642ca912d44a133ffde1d">WorldToScreen</a>(pos2), p, pattern);</div>
+<div class="line"><a name="l00357"></a><span class="lineno">  357</span>&#160;    }</div>
+<div class="line"><a name="l00358"></a><span class="lineno">  358</span>&#160;    </div>
+<div class="line"><a name="l00359"></a><span class="lineno">  359</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_transformed_view.html#abbf0590764bbacdd35a4d0adc6e69b84">TransformedView::DrawCircle</a>(<span class="keywordtype">float</span> x, <span class="keywordtype">float</span> y, <span class="keywordtype">float</span> radius, <a class="code" href="structolc_1_1_pixel.html">olc::Pixel</a> p, uint8_t mask)</div>
+<div class="line"><a name="l00360"></a><span class="lineno">  360</span>&#160;    {</div>
+<div class="line"><a name="l00361"></a><span class="lineno">  361</span>&#160;        <a class="code" href="classolc_1_1_transformed_view.html#abbf0590764bbacdd35a4d0adc6e69b84">DrawCircle</a>({ x,y }, radius, p, mask);</div>
+<div class="line"><a name="l00362"></a><span class="lineno">  362</span>&#160;    }</div>
+<div class="line"><a name="l00363"></a><span class="lineno">  363</span>&#160; </div>
+<div class="line"><a name="l00364"></a><span class="lineno">  364</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_transformed_view.html#abbf0590764bbacdd35a4d0adc6e69b84">TransformedView::DrawCircle</a>(<span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a> &amp; pos, <span class="keywordtype">float</span> radius, <a class="code" href="structolc_1_1_pixel.html">olc::Pixel</a> p, uint8_t mask)</div>
+<div class="line"><a name="l00365"></a><span class="lineno">  365</span>&#160;    {</div>
+<div class="line"><a name="l00366"></a><span class="lineno">  366</span>&#160;        <a class="code" href="classolc_1_1_p_g_e_x.html#a032efdb84150a7cdd3cc9248860df316">pge</a>-&gt;<a class="code" href="classolc_1_1_pixel_game_engine.html#a2ce3e34fd633acdc22b8dc2c8d25f86c">DrawCircle</a>(<a class="code" href="classolc_1_1_transformed_view.html#a18b18c9718c642ca912d44a133ffde1d">WorldToScreen</a>(pos), int32_t(radius * <a class="code" href="classolc_1_1_transformed_view.html#a652909b48a4d8960c36d1ce4262cc95a">m_vWorldScale</a>.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a>), p, mask);</div>
+<div class="line"><a name="l00367"></a><span class="lineno">  367</span>&#160;    }</div>
+<div class="line"><a name="l00368"></a><span class="lineno">  368</span>&#160; </div>
+<div class="line"><a name="l00369"></a><span class="lineno">  369</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_transformed_view.html#afd3f4dffe3a2fffaed2fd6c84e40ce23">TransformedView::FillCircle</a>(<span class="keywordtype">float</span> x, <span class="keywordtype">float</span> y, <span class="keywordtype">float</span> radius, <a class="code" href="structolc_1_1_pixel.html">olc::Pixel</a> p)</div>
+<div class="line"><a name="l00370"></a><span class="lineno">  370</span>&#160;    {</div>
+<div class="line"><a name="l00371"></a><span class="lineno">  371</span>&#160;        <a class="code" href="classolc_1_1_transformed_view.html#afd3f4dffe3a2fffaed2fd6c84e40ce23">FillCircle</a>({ x,y }, radius, p);</div>
+<div class="line"><a name="l00372"></a><span class="lineno">  372</span>&#160;    }</div>
+<div class="line"><a name="l00373"></a><span class="lineno">  373</span>&#160; </div>
+<div class="line"><a name="l00374"></a><span class="lineno">  374</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_transformed_view.html#afd3f4dffe3a2fffaed2fd6c84e40ce23">TransformedView::FillCircle</a>(<span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a> &amp; pos, <span class="keywordtype">float</span> radius, <a class="code" href="structolc_1_1_pixel.html">olc::Pixel</a> p)</div>
+<div class="line"><a name="l00375"></a><span class="lineno">  375</span>&#160;    {</div>
+<div class="line"><a name="l00376"></a><span class="lineno">  376</span>&#160;        <a class="code" href="classolc_1_1_p_g_e_x.html#a032efdb84150a7cdd3cc9248860df316">pge</a>-&gt;<a class="code" href="classolc_1_1_pixel_game_engine.html#a483f56606fbbf3ab4850554491a853bd">FillCircle</a>(<a class="code" href="classolc_1_1_transformed_view.html#a18b18c9718c642ca912d44a133ffde1d">WorldToScreen</a>(pos), int32_t(radius * <a class="code" href="classolc_1_1_transformed_view.html#a652909b48a4d8960c36d1ce4262cc95a">m_vWorldScale</a>.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a>), p);</div>
+<div class="line"><a name="l00377"></a><span class="lineno">  377</span>&#160;    }</div>
+<div class="line"><a name="l00378"></a><span class="lineno">  378</span>&#160; </div>
+<div class="line"><a name="l00379"></a><span class="lineno">  379</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_transformed_view.html#ab1578748552d35bff05e63dcfc79cfb9">TransformedView::DrawRect</a>(<span class="keywordtype">float</span> x, <span class="keywordtype">float</span> y, <span class="keywordtype">float</span> w, <span class="keywordtype">float</span> h, <a class="code" href="structolc_1_1_pixel.html">olc::Pixel</a> p)</div>
+<div class="line"><a name="l00380"></a><span class="lineno">  380</span>&#160;    {</div>
+<div class="line"><a name="l00381"></a><span class="lineno">  381</span>&#160;        <a class="code" href="classolc_1_1_transformed_view.html#ab1578748552d35bff05e63dcfc79cfb9">DrawRect</a>({ x, y }, { w, h }, p);</div>
+<div class="line"><a name="l00382"></a><span class="lineno">  382</span>&#160;    }</div>
+<div class="line"><a name="l00383"></a><span class="lineno">  383</span>&#160; </div>
+<div class="line"><a name="l00384"></a><span class="lineno">  384</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_transformed_view.html#ab1578748552d35bff05e63dcfc79cfb9">TransformedView::DrawRect</a>(<span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a> &amp; pos, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a> &amp; size, <a class="code" href="structolc_1_1_pixel.html">olc::Pixel</a> p)</div>
+<div class="line"><a name="l00385"></a><span class="lineno">  385</span>&#160;    {</div>
+<div class="line"><a name="l00386"></a><span class="lineno">  386</span>&#160;        <a class="code" href="classolc_1_1_p_g_e_x.html#a032efdb84150a7cdd3cc9248860df316">pge</a>-&gt;<a class="code" href="classolc_1_1_pixel_game_engine.html#a220f523e520e317f5656c4d3df777163">DrawRect</a>(<a class="code" href="classolc_1_1_transformed_view.html#a18b18c9718c642ca912d44a133ffde1d">WorldToScreen</a>(pos), ((size * <a class="code" href="classolc_1_1_transformed_view.html#a652909b48a4d8960c36d1ce4262cc95a">m_vWorldScale</a>) + <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>(0.5f, 0.5f)).floor(), p);</div>
+<div class="line"><a name="l00387"></a><span class="lineno">  387</span>&#160;    }</div>
+<div class="line"><a name="l00388"></a><span class="lineno">  388</span>&#160;    </div>
+<div class="line"><a name="l00389"></a><span class="lineno">  389</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_transformed_view.html#a2f12ada82c7262a2e29572cfded60f02">TransformedView::FillRect</a>(<span class="keywordtype">float</span> x, <span class="keywordtype">float</span> y, <span class="keywordtype">float</span> w, <span class="keywordtype">float</span> h, <a class="code" href="structolc_1_1_pixel.html">olc::Pixel</a> p)</div>
+<div class="line"><a name="l00390"></a><span class="lineno">  390</span>&#160;    {</div>
+<div class="line"><a name="l00391"></a><span class="lineno">  391</span>&#160;        <a class="code" href="classolc_1_1_transformed_view.html#a2f12ada82c7262a2e29572cfded60f02">FillRect</a>({ x, y }, { w, h }, p);</div>
+<div class="line"><a name="l00392"></a><span class="lineno">  392</span>&#160;    }</div>
+<div class="line"><a name="l00393"></a><span class="lineno">  393</span>&#160; </div>
+<div class="line"><a name="l00394"></a><span class="lineno">  394</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_transformed_view.html#a2f12ada82c7262a2e29572cfded60f02">TransformedView::FillRect</a>(<span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a> &amp; pos, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a> &amp; size, <a class="code" href="structolc_1_1_pixel.html">olc::Pixel</a> p)</div>
+<div class="line"><a name="l00395"></a><span class="lineno">  395</span>&#160;    {</div>
+<div class="line"><a name="l00396"></a><span class="lineno">  396</span>&#160;        <a class="code" href="classolc_1_1_p_g_e_x.html#a032efdb84150a7cdd3cc9248860df316">pge</a>-&gt;<a class="code" href="classolc_1_1_pixel_game_engine.html#a6b5e218bb4360f27a470f9e821721331">FillRect</a>(<a class="code" href="classolc_1_1_transformed_view.html#a18b18c9718c642ca912d44a133ffde1d">WorldToScreen</a>(pos), size * <a class="code" href="classolc_1_1_transformed_view.html#a652909b48a4d8960c36d1ce4262cc95a">m_vWorldScale</a>, p);</div>
+<div class="line"><a name="l00397"></a><span class="lineno">  397</span>&#160;    }</div>
+<div class="line"><a name="l00398"></a><span class="lineno">  398</span>&#160;    </div>
+<div class="line"><a name="l00399"></a><span class="lineno">  399</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_transformed_view.html#a6c818747c7fa97445fbb40c9f222e865">TransformedView::DrawTriangle</a>(<span class="keywordtype">float</span> x1, <span class="keywordtype">float</span> y1, <span class="keywordtype">float</span> x2, <span class="keywordtype">float</span> y2, <span class="keywordtype">float</span> x3, <span class="keywordtype">float</span> y3, <a class="code" href="structolc_1_1_pixel.html">olc::Pixel</a> p)</div>
+<div class="line"><a name="l00400"></a><span class="lineno">  400</span>&#160;    {</div>
+<div class="line"><a name="l00401"></a><span class="lineno">  401</span>&#160;        <a class="code" href="classolc_1_1_transformed_view.html#a6c818747c7fa97445fbb40c9f222e865">DrawTriangle</a>({ x1, y1 }, { x2, y2 }, { x3, y3 }, p);</div>
+<div class="line"><a name="l00402"></a><span class="lineno">  402</span>&#160;    }</div>
+<div class="line"><a name="l00403"></a><span class="lineno">  403</span>&#160; </div>
+<div class="line"><a name="l00404"></a><span class="lineno">  404</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_transformed_view.html#a6c818747c7fa97445fbb40c9f222e865">TransformedView::DrawTriangle</a>(<span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a> &amp; pos1, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a> &amp; pos2, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a> &amp; pos3, <a class="code" href="structolc_1_1_pixel.html">olc::Pixel</a> p)</div>
+<div class="line"><a name="l00405"></a><span class="lineno">  405</span>&#160;    {</div>
+<div class="line"><a name="l00406"></a><span class="lineno">  406</span>&#160;        <a class="code" href="classolc_1_1_p_g_e_x.html#a032efdb84150a7cdd3cc9248860df316">pge</a>-&gt;<a class="code" href="classolc_1_1_pixel_game_engine.html#a2bddba9e808a8702f6af354007302c16">DrawTriangle</a>(<a class="code" href="classolc_1_1_transformed_view.html#a18b18c9718c642ca912d44a133ffde1d">WorldToScreen</a>(pos1), <a class="code" href="classolc_1_1_transformed_view.html#a18b18c9718c642ca912d44a133ffde1d">WorldToScreen</a>(pos2), <a class="code" href="classolc_1_1_transformed_view.html#a18b18c9718c642ca912d44a133ffde1d">WorldToScreen</a>(pos3), p);</div>
+<div class="line"><a name="l00407"></a><span class="lineno">  407</span>&#160;    }</div>
+<div class="line"><a name="l00408"></a><span class="lineno">  408</span>&#160;    </div>
+<div class="line"><a name="l00409"></a><span class="lineno">  409</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_transformed_view.html#a5cba545151923f38fd5d87b2c130a894">TransformedView::FillTriangle</a>(<span class="keywordtype">float</span> x1, <span class="keywordtype">float</span> y1, <span class="keywordtype">float</span> x2, <span class="keywordtype">float</span> y2, <span class="keywordtype">float</span> x3, <span class="keywordtype">float</span> y3, <a class="code" href="structolc_1_1_pixel.html">olc::Pixel</a> p)</div>
+<div class="line"><a name="l00410"></a><span class="lineno">  410</span>&#160;    {</div>
+<div class="line"><a name="l00411"></a><span class="lineno">  411</span>&#160;        <a class="code" href="classolc_1_1_transformed_view.html#a5cba545151923f38fd5d87b2c130a894">FillTriangle</a>({ x1, y1 }, { x2, y2 }, { x3, y3 }, p);</div>
+<div class="line"><a name="l00412"></a><span class="lineno">  412</span>&#160;    }</div>
+<div class="line"><a name="l00413"></a><span class="lineno">  413</span>&#160; </div>
+<div class="line"><a name="l00414"></a><span class="lineno">  414</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_transformed_view.html#a5cba545151923f38fd5d87b2c130a894">TransformedView::FillTriangle</a>(<span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a> &amp; pos1, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a> &amp; pos2, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a> &amp; pos3, <a class="code" href="structolc_1_1_pixel.html">olc::Pixel</a> p)</div>
+<div class="line"><a name="l00415"></a><span class="lineno">  415</span>&#160;    {</div>
+<div class="line"><a name="l00416"></a><span class="lineno">  416</span>&#160;        <a class="code" href="classolc_1_1_p_g_e_x.html#a032efdb84150a7cdd3cc9248860df316">pge</a>-&gt;<a class="code" href="classolc_1_1_pixel_game_engine.html#ad31abffe6c4d0b864b8f7762c33b7a7d">FillTriangle</a>(<a class="code" href="classolc_1_1_transformed_view.html#a18b18c9718c642ca912d44a133ffde1d">WorldToScreen</a>(pos1), <a class="code" href="classolc_1_1_transformed_view.html#a18b18c9718c642ca912d44a133ffde1d">WorldToScreen</a>(pos2), <a class="code" href="classolc_1_1_transformed_view.html#a18b18c9718c642ca912d44a133ffde1d">WorldToScreen</a>(pos3), p);</div>
+<div class="line"><a name="l00417"></a><span class="lineno">  417</span>&#160;    }</div>
+<div class="line"><a name="l00418"></a><span class="lineno">  418</span>&#160; </div>
+<div class="line"><a name="l00419"></a><span class="lineno">  419</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_transformed_view.html#a0814eafdbf34c4570c08722998b3c936">TransformedView::DrawSprite</a>(<span class="keywordtype">float</span> x, <span class="keywordtype">float</span> y, <a class="code" href="classolc_1_1_sprite.html">olc::Sprite</a>* sprite, <span class="keywordtype">float</span> scalex, <span class="keywordtype">float</span> scaley, uint8_t flip)</div>
+<div class="line"><a name="l00420"></a><span class="lineno">  420</span>&#160;    {</div>
+<div class="line"><a name="l00421"></a><span class="lineno">  421</span>&#160;        <a class="code" href="classolc_1_1_transformed_view.html#a0814eafdbf34c4570c08722998b3c936">DrawSprite</a>({ x, y }, sprite, { scalex, scaley }, flip);</div>
+<div class="line"><a name="l00422"></a><span class="lineno">  422</span>&#160;    }</div>
+<div class="line"><a name="l00423"></a><span class="lineno">  423</span>&#160; </div>
+<div class="line"><a name="l00424"></a><span class="lineno">  424</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_transformed_view.html#a0814eafdbf34c4570c08722998b3c936">TransformedView::DrawSprite</a>(<span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a> &amp; pos, <a class="code" href="classolc_1_1_sprite.html">olc::Sprite</a> * sprite, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a> &amp; scale, uint8_t flip)</div>
+<div class="line"><a name="l00425"></a><span class="lineno">  425</span>&#160;    {</div>
+<div class="line"><a name="l00426"></a><span class="lineno">  426</span>&#160;        <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a> vSpriteSize = <a class="code" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a>(<span class="keywordtype">float</span>(sprite-&gt;<a class="code" href="classolc_1_1_sprite.html#af055800e63204ae372ca0812e6926230">width</a>), <span class="keywordtype">float</span>(sprite-&gt;<a class="code" href="classolc_1_1_sprite.html#ab05010cb1a5ff6c36267d0050d568d96">height</a>));</div>
+<div class="line"><a name="l00427"></a><span class="lineno">  427</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="classolc_1_1_transformed_view.html#aecadbbdf84343ec0a2f0e2e8c9017f0e">IsRectVisible</a>(pos, vSpriteSize * scale))</div>
+<div class="line"><a name="l00428"></a><span class="lineno">  428</span>&#160;        {</div>
+<div class="line"><a name="l00429"></a><span class="lineno">  429</span>&#160;            <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a> vSpriteScaledSize = vSpriteSize * <a class="code" href="classolc_1_1_transformed_view.html#ae1b7b82332f0979caa99e003827624cb">m_vRecipPixel</a> * <a class="code" href="classolc_1_1_transformed_view.html#a652909b48a4d8960c36d1ce4262cc95a">m_vWorldScale</a> * scale;</div>
+<div class="line"><a name="l00430"></a><span class="lineno">  430</span>&#160;            <a class="code" href="structolc_1_1v2d__generic.html">olc::vi2d</a> vPixel, vStart = <a class="code" href="classolc_1_1_transformed_view.html#a18b18c9718c642ca912d44a133ffde1d">WorldToScreen</a>(pos), vEnd = vSpriteScaledSize + vStart;</div>
+<div class="line"><a name="l00431"></a><span class="lineno">  431</span>&#160;            <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a> vPixelStep = 1.0f / vSpriteScaledSize;</div>
+<div class="line"><a name="l00432"></a><span class="lineno">  432</span>&#160;            <span class="keywordflow">for</span> (vPixel.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a> = vStart.y; vPixel.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a> &lt; vEnd.y; vPixel.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a>++)</div>
+<div class="line"><a name="l00433"></a><span class="lineno">  433</span>&#160;            {</div>
+<div class="line"><a name="l00434"></a><span class="lineno">  434</span>&#160;                <span class="keywordflow">for</span> (vPixel.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a> = vStart.x; vPixel.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a> &lt; vEnd.x; vPixel.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a>++)</div>
+<div class="line"><a name="l00435"></a><span class="lineno">  435</span>&#160;                {</div>
+<div class="line"><a name="l00436"></a><span class="lineno">  436</span>&#160;                    <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a> vSample = <a class="code" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a>(vPixel - vStart) * vPixelStep;</div>
+<div class="line"><a name="l00437"></a><span class="lineno">  437</span>&#160;                    <a class="code" href="classolc_1_1_p_g_e_x.html#a032efdb84150a7cdd3cc9248860df316">pge</a>-&gt;<a class="code" href="classolc_1_1_pixel_game_engine.html#a95ab046b4b0843565bddd0e009a25569">Draw</a>(vPixel, sprite-&gt;<a class="code" href="classolc_1_1_sprite.html#a902192f81ab42420921992a7288aab48">Sample</a>(vSample.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a>, vSample.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a>));</div>
+<div class="line"><a name="l00438"></a><span class="lineno">  438</span>&#160;                }</div>
+<div class="line"><a name="l00439"></a><span class="lineno">  439</span>&#160;            }</div>
+<div class="line"><a name="l00440"></a><span class="lineno">  440</span>&#160;        }</div>
+<div class="line"><a name="l00441"></a><span class="lineno">  441</span>&#160;    }</div>
+<div class="line"><a name="l00442"></a><span class="lineno">  442</span>&#160; </div>
+<div class="line"><a name="l00443"></a><span class="lineno">  443</span>&#160; </div>
+<div class="line"><a name="l00444"></a><span class="lineno">  444</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_transformed_view.html#a829557257985bb738baad577ed0ed7a0">TransformedView::DrawPartialSprite</a>(<span class="keywordtype">float</span> x, <span class="keywordtype">float</span> y, Sprite* sprite, int32_t ox, int32_t oy, int32_t w, int32_t h, <span class="keywordtype">float</span> scalex, <span class="keywordtype">float</span> scaley, uint8_t flip)</div>
+<div class="line"><a name="l00445"></a><span class="lineno">  445</span>&#160;    {</div>
+<div class="line"><a name="l00446"></a><span class="lineno">  446</span>&#160;        <a class="code" href="classolc_1_1_transformed_view.html#a829557257985bb738baad577ed0ed7a0">DrawPartialSprite</a>({ x,y }, sprite, { ox,oy }, { w, h }, { scalex, scaley }, flip);</div>
+<div class="line"><a name="l00447"></a><span class="lineno">  447</span>&#160;    }</div>
+<div class="line"><a name="l00448"></a><span class="lineno">  448</span>&#160; </div>
+<div class="line"><a name="l00449"></a><span class="lineno">  449</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_transformed_view.html#a829557257985bb738baad577ed0ed7a0">TransformedView::DrawPartialSprite</a>(<span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; pos, Sprite* sprite, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vi2d</a>&amp; sourcepos, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vi2d</a>&amp; size, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; scale, uint8_t flip)</div>
+<div class="line"><a name="l00450"></a><span class="lineno">  450</span>&#160;    {</div>
+<div class="line"><a name="l00451"></a><span class="lineno">  451</span>&#160;        <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a> vSpriteSize = size;</div>
+<div class="line"><a name="l00452"></a><span class="lineno">  452</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="classolc_1_1_transformed_view.html#aecadbbdf84343ec0a2f0e2e8c9017f0e">IsRectVisible</a>(pos, size * scale))</div>
+<div class="line"><a name="l00453"></a><span class="lineno">  453</span>&#160;        {</div>
+<div class="line"><a name="l00454"></a><span class="lineno">  454</span>&#160;            <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a> vSpriteScaledSize = <a class="code" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a>(size) * <a class="code" href="classolc_1_1_transformed_view.html#ae1b7b82332f0979caa99e003827624cb">m_vRecipPixel</a> * <a class="code" href="classolc_1_1_transformed_view.html#a652909b48a4d8960c36d1ce4262cc95a">m_vWorldScale</a> * scale;</div>
+<div class="line"><a name="l00455"></a><span class="lineno">  455</span>&#160;            <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a> vSpritePixelStep = 1.0f / <a class="code" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a>(<span class="keywordtype">float</span>(sprite-&gt;width), <span class="keywordtype">float</span>(sprite-&gt;height));</div>
+<div class="line"><a name="l00456"></a><span class="lineno">  456</span>&#160;            <a class="code" href="structolc_1_1v2d__generic.html">olc::vi2d</a> vPixel, vStart = <a class="code" href="classolc_1_1_transformed_view.html#a18b18c9718c642ca912d44a133ffde1d">WorldToScreen</a>(pos), vEnd = vSpriteScaledSize + vStart;</div>
+<div class="line"><a name="l00457"></a><span class="lineno">  457</span>&#160;            <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a> vScreenPixelStep = 1.0f / vSpriteScaledSize;</div>
+<div class="line"><a name="l00458"></a><span class="lineno">  458</span>&#160; </div>
+<div class="line"><a name="l00459"></a><span class="lineno">  459</span>&#160;            <span class="keywordflow">for</span> (vPixel.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a> = vStart.y; vPixel.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a> &lt; vEnd.y; vPixel.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a>++)</div>
+<div class="line"><a name="l00460"></a><span class="lineno">  460</span>&#160;            {</div>
+<div class="line"><a name="l00461"></a><span class="lineno">  461</span>&#160;                <span class="keywordflow">for</span> (vPixel.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a> = vStart.x; vPixel.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a> &lt; vEnd.x; vPixel.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a>++)</div>
+<div class="line"><a name="l00462"></a><span class="lineno">  462</span>&#160;                {</div>
+<div class="line"><a name="l00463"></a><span class="lineno">  463</span>&#160;                    <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a> vSample = ((<a class="code" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a>(vPixel - vStart) * vScreenPixelStep) * size * vSpritePixelStep) + <a class="code" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a>(sourcepos) * vSpritePixelStep;</div>
+<div class="line"><a name="l00464"></a><span class="lineno">  464</span>&#160;                    <a class="code" href="classolc_1_1_p_g_e_x.html#a032efdb84150a7cdd3cc9248860df316">pge</a>-&gt;<a class="code" href="classolc_1_1_pixel_game_engine.html#a95ab046b4b0843565bddd0e009a25569">Draw</a>(vPixel, sprite-&gt;Sample(vSample.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a>, vSample.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a>));</div>
+<div class="line"><a name="l00465"></a><span class="lineno">  465</span>&#160;                }</div>
+<div class="line"><a name="l00466"></a><span class="lineno">  466</span>&#160;            }</div>
+<div class="line"><a name="l00467"></a><span class="lineno">  467</span>&#160;        }</div>
+<div class="line"><a name="l00468"></a><span class="lineno">  468</span>&#160;    }</div>
+<div class="line"><a name="l00469"></a><span class="lineno">  469</span>&#160; </div>
+<div class="line"><a name="l00470"></a><span class="lineno">  470</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_transformed_view.html#acf22577cab34db667d05eae0e38000e0">TransformedView::DrawString</a>(<span class="keywordtype">float</span> x, <span class="keywordtype">float</span> y, <span class="keyword">const</span> std::string&amp; sText, Pixel col, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; scale)</div>
+<div class="line"><a name="l00471"></a><span class="lineno">  471</span>&#160;    {</div>
+<div class="line"><a name="l00472"></a><span class="lineno">  472</span>&#160;        <a class="code" href="classolc_1_1_transformed_view.html#acf22577cab34db667d05eae0e38000e0">DrawString</a>({ x, y }, sText, col, scale);</div>
+<div class="line"><a name="l00473"></a><span class="lineno">  473</span>&#160;    }</div>
+<div class="line"><a name="l00474"></a><span class="lineno">  474</span>&#160; </div>
+<div class="line"><a name="l00475"></a><span class="lineno">  475</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_transformed_view.html#acf22577cab34db667d05eae0e38000e0">TransformedView::DrawString</a>(<span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; pos, <span class="keyword">const</span> std::string&amp; sText, <span class="keyword">const</span> Pixel col, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; scale)</div>
+<div class="line"><a name="l00476"></a><span class="lineno">  476</span>&#160;    {</div>
+<div class="line"><a name="l00477"></a><span class="lineno">  477</span>&#160;        <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a> vOffset = { 0.0f, 0.0f };</div>
+<div class="line"><a name="l00478"></a><span class="lineno">  478</span>&#160;        <a class="code" href="structolc_1_1_pixel.html#ae9012164940526ddb09b217dbbddfd65">Pixel::Mode</a> m = <a class="code" href="classolc_1_1_p_g_e_x.html#a032efdb84150a7cdd3cc9248860df316">pge</a>-&gt;<a class="code" href="classolc_1_1_pixel_game_engine.html#ad4f95a449dc09a2650ec771e6fa83049">GetPixelMode</a>();</div>
+<div class="line"><a name="l00479"></a><span class="lineno">  479</span>&#160; </div>
+<div class="line"><a name="l00480"></a><span class="lineno">  480</span>&#160;        <span class="keyword">auto</span> StringPlot = [&amp;col](<span class="keyword">const</span> <span class="keywordtype">int</span> x, <span class="keyword">const</span> <span class="keywordtype">int</span> y, <span class="keyword">const</span> <a class="code" href="structolc_1_1_pixel.html">olc::Pixel</a>&amp; pSource, <span class="keyword">const</span> <a class="code" href="structolc_1_1_pixel.html">olc::Pixel</a>&amp; pDest)</div>
+<div class="line"><a name="l00481"></a><span class="lineno">  481</span>&#160;        {       </div>
+<div class="line"><a name="l00482"></a><span class="lineno">  482</span>&#160;            <span class="keywordflow">return</span> pSource.r &gt; 1 ? col : pDest;</div>
+<div class="line"><a name="l00483"></a><span class="lineno">  483</span>&#160;        };</div>
+<div class="line"><a name="l00484"></a><span class="lineno">  484</span>&#160; </div>
+<div class="line"><a name="l00485"></a><span class="lineno">  485</span>&#160;        <a class="code" href="classolc_1_1_p_g_e_x.html#a032efdb84150a7cdd3cc9248860df316">pge</a>-&gt;<a class="code" href="classolc_1_1_pixel_game_engine.html#ae4a3d1aaa40761986389966ab927ef32">SetPixelMode</a>(StringPlot);</div>
+<div class="line"><a name="l00486"></a><span class="lineno">  486</span>&#160; </div>
+<div class="line"><a name="l00487"></a><span class="lineno">  487</span>&#160;        <span class="keywordflow">for</span> (<span class="keyword">auto</span> c : sText)</div>
+<div class="line"><a name="l00488"></a><span class="lineno">  488</span>&#160;        {</div>
+<div class="line"><a name="l00489"></a><span class="lineno">  489</span>&#160;            <span class="keywordflow">if</span> (c == <span class="charliteral">&#39;\n&#39;</span>)</div>
+<div class="line"><a name="l00490"></a><span class="lineno">  490</span>&#160;            {</div>
+<div class="line"><a name="l00491"></a><span class="lineno">  491</span>&#160;                vOffset.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a> = 0.0f; vOffset.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a> += 8.0f * <a class="code" href="classolc_1_1_transformed_view.html#ae1b7b82332f0979caa99e003827624cb">m_vRecipPixel</a>.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a> * scale.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a>;</div>
+<div class="line"><a name="l00492"></a><span class="lineno">  492</span>&#160;            }</div>
+<div class="line"><a name="l00493"></a><span class="lineno">  493</span>&#160;            <span class="keywordflow">else</span></div>
+<div class="line"><a name="l00494"></a><span class="lineno">  494</span>&#160;            {</div>
+<div class="line"><a name="l00495"></a><span class="lineno">  495</span>&#160;                int32_t ox = ((c - 32) % 16) * 8;</div>
+<div class="line"><a name="l00496"></a><span class="lineno">  496</span>&#160;                int32_t oy = ((c - 32) / 16) * 8;</div>
+<div class="line"><a name="l00497"></a><span class="lineno">  497</span>&#160;                <a class="code" href="classolc_1_1_transformed_view.html#a829557257985bb738baad577ed0ed7a0">DrawPartialSprite</a>(pos + vOffset, <a class="code" href="classolc_1_1_p_g_e_x.html#a032efdb84150a7cdd3cc9248860df316">pge</a>-&gt;<a class="code" href="classolc_1_1_pixel_game_engine.html#abab955edc6d1ec6023a7806509582f52">GetFontSprite</a>(), { ox, oy }, { 8, 8 }, scale);</div>
+<div class="line"><a name="l00498"></a><span class="lineno">  498</span>&#160;                vOffset.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a> += 8.0f * <a class="code" href="classolc_1_1_transformed_view.html#ae1b7b82332f0979caa99e003827624cb">m_vRecipPixel</a>.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a> * scale.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a>;</div>
+<div class="line"><a name="l00499"></a><span class="lineno">  499</span>&#160;            }</div>
+<div class="line"><a name="l00500"></a><span class="lineno">  500</span>&#160;        }</div>
+<div class="line"><a name="l00501"></a><span class="lineno">  501</span>&#160;        <a class="code" href="classolc_1_1_p_g_e_x.html#a032efdb84150a7cdd3cc9248860df316">pge</a>-&gt;<a class="code" href="classolc_1_1_pixel_game_engine.html#ae4a3d1aaa40761986389966ab927ef32">SetPixelMode</a>(m);</div>
+<div class="line"><a name="l00502"></a><span class="lineno">  502</span>&#160;    }</div>
+<div class="line"><a name="l00503"></a><span class="lineno">  503</span>&#160; </div>
+<div class="line"><a name="l00504"></a><span class="lineno">  504</span>&#160; </div>
+<div class="line"><a name="l00505"></a><span class="lineno">  505</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_transformed_view.html#a8bad23f424184f2e15f32deb7f179160">TransformedView::DrawDecal</a>(<span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a> &amp; pos, <a class="code" href="classolc_1_1_decal.html">olc::Decal</a> * decal, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a> &amp; scale, <span class="keyword">const</span> <a class="code" href="structolc_1_1_pixel.html">olc::Pixel</a> &amp; tint)</div>
+<div class="line"><a name="l00506"></a><span class="lineno">  506</span>&#160;    {</div>
+<div class="line"><a name="l00507"></a><span class="lineno">  507</span>&#160;        <a class="code" href="classolc_1_1_p_g_e_x.html#a032efdb84150a7cdd3cc9248860df316">pge</a>-&gt;<a class="code" href="classolc_1_1_pixel_game_engine.html#a5b676590555cab61db67804417c6f25f">DrawDecal</a>(<a class="code" href="classolc_1_1_transformed_view.html#a18b18c9718c642ca912d44a133ffde1d">WorldToScreen</a>(pos), decal, scale * <a class="code" href="classolc_1_1_transformed_view.html#a652909b48a4d8960c36d1ce4262cc95a">m_vWorldScale</a> * <a class="code" href="classolc_1_1_transformed_view.html#ae1b7b82332f0979caa99e003827624cb">m_vRecipPixel</a>, tint);</div>
+<div class="line"><a name="l00508"></a><span class="lineno">  508</span>&#160;    }</div>
+<div class="line"><a name="l00509"></a><span class="lineno">  509</span>&#160; </div>
+<div class="line"><a name="l00510"></a><span class="lineno">  510</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_transformed_view.html#a1daefdb27499350eb3927c79ec60bca5">TransformedView::DrawPartialDecal</a>(<span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a> &amp; pos, <a class="code" href="classolc_1_1_decal.html">olc::Decal</a> * decal, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a> &amp; source_pos, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a> &amp; source_size, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a> &amp; scale, <span class="keyword">const</span> <a class="code" href="structolc_1_1_pixel.html">olc::Pixel</a> &amp; tint)</div>
+<div class="line"><a name="l00511"></a><span class="lineno">  511</span>&#160;    {</div>
+<div class="line"><a name="l00512"></a><span class="lineno">  512</span>&#160;        <a class="code" href="classolc_1_1_p_g_e_x.html#a032efdb84150a7cdd3cc9248860df316">pge</a>-&gt;<a class="code" href="classolc_1_1_pixel_game_engine.html#a8bae37cf84b215e9e0416f058241aeba">DrawPartialDecal</a>(<a class="code" href="classolc_1_1_transformed_view.html#a18b18c9718c642ca912d44a133ffde1d">WorldToScreen</a>(pos), decal, source_pos, source_size, scale * <a class="code" href="classolc_1_1_transformed_view.html#a652909b48a4d8960c36d1ce4262cc95a">m_vWorldScale</a> * <a class="code" href="classolc_1_1_transformed_view.html#ae1b7b82332f0979caa99e003827624cb">m_vRecipPixel</a>, tint);</div>
+<div class="line"><a name="l00513"></a><span class="lineno">  513</span>&#160;    }</div>
+<div class="line"><a name="l00514"></a><span class="lineno">  514</span>&#160; </div>
+<div class="line"><a name="l00515"></a><span class="lineno">  515</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_transformed_view.html#a1daefdb27499350eb3927c79ec60bca5">TransformedView::DrawPartialDecal</a>(<span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a> &amp; pos, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a> &amp; size, <a class="code" href="classolc_1_1_decal.html">olc::Decal</a> * decal, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a> &amp; source_pos, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a> &amp; source_size, <span class="keyword">const</span> <a class="code" href="structolc_1_1_pixel.html">olc::Pixel</a> &amp; tint)</div>
+<div class="line"><a name="l00516"></a><span class="lineno">  516</span>&#160;    {</div>
+<div class="line"><a name="l00517"></a><span class="lineno">  517</span>&#160;        <a class="code" href="classolc_1_1_p_g_e_x.html#a032efdb84150a7cdd3cc9248860df316">pge</a>-&gt;<a class="code" href="classolc_1_1_pixel_game_engine.html#a8bae37cf84b215e9e0416f058241aeba">DrawPartialDecal</a>(<a class="code" href="classolc_1_1_transformed_view.html#a18b18c9718c642ca912d44a133ffde1d">WorldToScreen</a>(pos), size * <a class="code" href="classolc_1_1_transformed_view.html#a652909b48a4d8960c36d1ce4262cc95a">m_vWorldScale</a> * <a class="code" href="classolc_1_1_transformed_view.html#ae1b7b82332f0979caa99e003827624cb">m_vRecipPixel</a>, decal, source_pos, source_size, tint);</div>
+<div class="line"><a name="l00518"></a><span class="lineno">  518</span>&#160;    }</div>
+<div class="line"><a name="l00519"></a><span class="lineno">  519</span>&#160;    </div>
+<div class="line"><a name="l00520"></a><span class="lineno">  520</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_transformed_view.html#ac133c5f498e18dc4bcf6a087c7f8b356">TransformedView::DrawExplicitDecal</a>(<a class="code" href="classolc_1_1_decal.html">olc::Decal</a>* decal, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>* pos, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>* uv, <span class="keyword">const</span> <a class="code" href="structolc_1_1_pixel.html">olc::Pixel</a>* col, uint32_t elements)</div>
+<div class="line"><a name="l00521"></a><span class="lineno">  521</span>&#160;    {</div>
+<div class="line"><a name="l00522"></a><span class="lineno">  522</span>&#160;        std::vector&lt;olc::vf2d&gt; vTransformed(elements);</div>
+<div class="line"><a name="l00523"></a><span class="lineno">  523</span>&#160;        <span class="keywordflow">for</span> (uint32_t n = 0; n &lt; elements; n++)</div>
+<div class="line"><a name="l00524"></a><span class="lineno">  524</span>&#160;            vTransformed[n] = <a class="code" href="classolc_1_1_transformed_view.html#a18b18c9718c642ca912d44a133ffde1d">WorldToScreen</a>(pos[n]);        </div>
+<div class="line"><a name="l00525"></a><span class="lineno">  525</span>&#160;        <a class="code" href="classolc_1_1_p_g_e_x.html#a032efdb84150a7cdd3cc9248860df316">pge</a>-&gt;<a class="code" href="classolc_1_1_pixel_game_engine.html#a26d7073d87bb19f15d5ade6bb58e8e2d">DrawExplicitDecal</a>(decal, vTransformed.data(), uv, col, elements);</div>
+<div class="line"><a name="l00526"></a><span class="lineno">  526</span>&#160;    }</div>
+<div class="line"><a name="l00527"></a><span class="lineno">  527</span>&#160; </div>
+<div class="line"><a name="l00528"></a><span class="lineno">  528</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_transformed_view.html#a2c0e827b1182696275583059a1a72412">TransformedView::DrawWarpedDecal</a>(<a class="code" href="classolc_1_1_decal.html">olc::Decal</a>* decal, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>* pos, <span class="keyword">const</span> <a class="code" href="structolc_1_1_pixel.html">olc::Pixel</a>&amp; tint)</div>
+<div class="line"><a name="l00529"></a><span class="lineno">  529</span>&#160;    {</div>
+<div class="line"><a name="l00530"></a><span class="lineno">  530</span>&#160;        std::array&lt;olc::vf2d, 4&gt; vTransformed = </div>
+<div class="line"><a name="l00531"></a><span class="lineno">  531</span>&#160;        { {</div>
+<div class="line"><a name="l00532"></a><span class="lineno">  532</span>&#160;            <a class="code" href="classolc_1_1_transformed_view.html#a18b18c9718c642ca912d44a133ffde1d">WorldToScreen</a>(pos[0]), <a class="code" href="classolc_1_1_transformed_view.html#a18b18c9718c642ca912d44a133ffde1d">WorldToScreen</a>(pos[1]),</div>
+<div class="line"><a name="l00533"></a><span class="lineno">  533</span>&#160;            <a class="code" href="classolc_1_1_transformed_view.html#a18b18c9718c642ca912d44a133ffde1d">WorldToScreen</a>(pos[2]), <a class="code" href="classolc_1_1_transformed_view.html#a18b18c9718c642ca912d44a133ffde1d">WorldToScreen</a>(pos[3]),</div>
+<div class="line"><a name="l00534"></a><span class="lineno">  534</span>&#160;        } };</div>
+<div class="line"><a name="l00535"></a><span class="lineno">  535</span>&#160; </div>
+<div class="line"><a name="l00536"></a><span class="lineno">  536</span>&#160;        <a class="code" href="classolc_1_1_p_g_e_x.html#a032efdb84150a7cdd3cc9248860df316">pge</a>-&gt;<a class="code" href="classolc_1_1_pixel_game_engine.html#a65098b403a403c45041599893429b550">DrawWarpedDecal</a>(decal, vTransformed, tint);</div>
+<div class="line"><a name="l00537"></a><span class="lineno">  537</span>&#160;    }</div>
+<div class="line"><a name="l00538"></a><span class="lineno">  538</span>&#160; </div>
+<div class="line"><a name="l00539"></a><span class="lineno">  539</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_transformed_view.html#a2c0e827b1182696275583059a1a72412">TransformedView::DrawWarpedDecal</a>(<a class="code" href="classolc_1_1_decal.html">olc::Decal</a>* decal, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>(&amp;pos)[4], <span class="keyword">const</span> <a class="code" href="structolc_1_1_pixel.html">olc::Pixel</a>&amp; tint)</div>
+<div class="line"><a name="l00540"></a><span class="lineno">  540</span>&#160;    {</div>
+<div class="line"><a name="l00541"></a><span class="lineno">  541</span>&#160;        <a class="code" href="classolc_1_1_transformed_view.html#a2c0e827b1182696275583059a1a72412">DrawWarpedDecal</a>(decal, &amp;pos[0], tint);</div>
+<div class="line"><a name="l00542"></a><span class="lineno">  542</span>&#160;    }</div>
+<div class="line"><a name="l00543"></a><span class="lineno">  543</span>&#160; </div>
+<div class="line"><a name="l00544"></a><span class="lineno">  544</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_transformed_view.html#a2c0e827b1182696275583059a1a72412">TransformedView::DrawWarpedDecal</a>(<a class="code" href="classolc_1_1_decal.html">olc::Decal</a>* decal, <span class="keyword">const</span> std::array&lt;olc::vf2d, 4&gt;&amp; pos, <span class="keyword">const</span> <a class="code" href="structolc_1_1_pixel.html">olc::Pixel</a>&amp; tint)</div>
+<div class="line"><a name="l00545"></a><span class="lineno">  545</span>&#160;    {</div>
+<div class="line"><a name="l00546"></a><span class="lineno">  546</span>&#160;        <a class="code" href="classolc_1_1_transformed_view.html#a2c0e827b1182696275583059a1a72412">DrawWarpedDecal</a>(decal, pos.data(), tint);</div>
+<div class="line"><a name="l00547"></a><span class="lineno">  547</span>&#160;    }</div>
+<div class="line"><a name="l00548"></a><span class="lineno">  548</span>&#160; </div>
+<div class="line"><a name="l00549"></a><span class="lineno">  549</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_transformed_view.html#a17bf0d6a35728abe95993ef5475aa767">TransformedView::DrawPartialWarpedDecal</a>(<a class="code" href="classolc_1_1_decal.html">olc::Decal</a>* decal, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>(&amp;pos)[4], <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; source_pos, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; source_size, <span class="keyword">const</span> <a class="code" href="structolc_1_1_pixel.html">olc::Pixel</a>&amp; tint)</div>
+<div class="line"><a name="l00550"></a><span class="lineno">  550</span>&#160;    {</div>
+<div class="line"><a name="l00551"></a><span class="lineno">  551</span>&#160;        <a class="code" href="classolc_1_1_transformed_view.html#a17bf0d6a35728abe95993ef5475aa767">DrawPartialWarpedDecal</a>(decal, &amp;pos[0], source_pos, source_size, tint);</div>
+<div class="line"><a name="l00552"></a><span class="lineno">  552</span>&#160;    }</div>
+<div class="line"><a name="l00553"></a><span class="lineno">  553</span>&#160; </div>
+<div class="line"><a name="l00554"></a><span class="lineno">  554</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_transformed_view.html#a17bf0d6a35728abe95993ef5475aa767">TransformedView::DrawPartialWarpedDecal</a>(<a class="code" href="classolc_1_1_decal.html">olc::Decal</a>* decal, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>* pos, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; source_pos, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; source_size, <span class="keyword">const</span> <a class="code" href="structolc_1_1_pixel.html">olc::Pixel</a>&amp; tint)</div>
+<div class="line"><a name="l00555"></a><span class="lineno">  555</span>&#160;    {</div>
+<div class="line"><a name="l00556"></a><span class="lineno">  556</span>&#160;        std::array&lt;olc::vf2d, 4&gt; vTransformed =</div>
+<div class="line"><a name="l00557"></a><span class="lineno">  557</span>&#160;        { {</div>
+<div class="line"><a name="l00558"></a><span class="lineno">  558</span>&#160;            <a class="code" href="classolc_1_1_transformed_view.html#a18b18c9718c642ca912d44a133ffde1d">WorldToScreen</a>(pos[0]), <a class="code" href="classolc_1_1_transformed_view.html#a18b18c9718c642ca912d44a133ffde1d">WorldToScreen</a>(pos[1]),</div>
+<div class="line"><a name="l00559"></a><span class="lineno">  559</span>&#160;            <a class="code" href="classolc_1_1_transformed_view.html#a18b18c9718c642ca912d44a133ffde1d">WorldToScreen</a>(pos[2]), <a class="code" href="classolc_1_1_transformed_view.html#a18b18c9718c642ca912d44a133ffde1d">WorldToScreen</a>(pos[3]),</div>
+<div class="line"><a name="l00560"></a><span class="lineno">  560</span>&#160;        } };</div>
+<div class="line"><a name="l00561"></a><span class="lineno">  561</span>&#160; </div>
+<div class="line"><a name="l00562"></a><span class="lineno">  562</span>&#160;        <a class="code" href="classolc_1_1_p_g_e_x.html#a032efdb84150a7cdd3cc9248860df316">pge</a>-&gt;<a class="code" href="classolc_1_1_pixel_game_engine.html#a78be0709345710435fdaef7bc14f5fb3">DrawPartialWarpedDecal</a>(decal, vTransformed, source_pos, source_size, tint);</div>
+<div class="line"><a name="l00563"></a><span class="lineno">  563</span>&#160;    }</div>
+<div class="line"><a name="l00564"></a><span class="lineno">  564</span>&#160; </div>
+<div class="line"><a name="l00565"></a><span class="lineno">  565</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_transformed_view.html#a17bf0d6a35728abe95993ef5475aa767">TransformedView::DrawPartialWarpedDecal</a>(<a class="code" href="classolc_1_1_decal.html">olc::Decal</a>* decal, <span class="keyword">const</span> std::array&lt;olc::vf2d, 4&gt;&amp; pos, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; source_pos, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; source_size, <span class="keyword">const</span> <a class="code" href="structolc_1_1_pixel.html">olc::Pixel</a>&amp; tint)</div>
+<div class="line"><a name="l00566"></a><span class="lineno">  566</span>&#160;    {</div>
+<div class="line"><a name="l00567"></a><span class="lineno">  567</span>&#160;        <a class="code" href="classolc_1_1_transformed_view.html#a17bf0d6a35728abe95993ef5475aa767">DrawPartialWarpedDecal</a>(decal, pos.data(), source_pos, source_size, tint);</div>
+<div class="line"><a name="l00568"></a><span class="lineno">  568</span>&#160;    }</div>
+<div class="line"><a name="l00569"></a><span class="lineno">  569</span>&#160; </div>
+<div class="line"><a name="l00570"></a><span class="lineno">  570</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_transformed_view.html#a0d11f6c9ddf0cda25a7b6a79c39c61d6">TransformedView::DrawRotatedDecal</a>(<span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a> &amp; pos, <a class="code" href="classolc_1_1_decal.html">olc::Decal</a> * decal, <span class="keyword">const</span> <span class="keywordtype">float</span> fAngle, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a> &amp; center, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a> &amp; scale, <span class="keyword">const</span> <a class="code" href="structolc_1_1_pixel.html">olc::Pixel</a> &amp; tint)</div>
+<div class="line"><a name="l00571"></a><span class="lineno">  571</span>&#160;    {</div>
+<div class="line"><a name="l00572"></a><span class="lineno">  572</span>&#160;        <a class="code" href="classolc_1_1_p_g_e_x.html#a032efdb84150a7cdd3cc9248860df316">pge</a>-&gt;<a class="code" href="classolc_1_1_pixel_game_engine.html#ab9af9b6726271e83dd7e4b24583b4236">DrawRotatedDecal</a>(<a class="code" href="classolc_1_1_transformed_view.html#a18b18c9718c642ca912d44a133ffde1d">WorldToScreen</a>(pos), decal, fAngle, center, scale * <a class="code" href="classolc_1_1_transformed_view.html#a652909b48a4d8960c36d1ce4262cc95a">m_vWorldScale</a> * <a class="code" href="classolc_1_1_transformed_view.html#ae1b7b82332f0979caa99e003827624cb">m_vRecipPixel</a>, tint);</div>
+<div class="line"><a name="l00573"></a><span class="lineno">  573</span>&#160;    }</div>
+<div class="line"><a name="l00574"></a><span class="lineno">  574</span>&#160; </div>
+<div class="line"><a name="l00575"></a><span class="lineno">  575</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_transformed_view.html#a3f2574c761a0045641fd2f5f9b194184">TransformedView::DrawPartialRotatedDecal</a>(<span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a> &amp; pos, <a class="code" href="classolc_1_1_decal.html">olc::Decal</a> * decal, <span class="keyword">const</span> <span class="keywordtype">float</span> fAngle, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a> &amp; center, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a> &amp; source_pos, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a> &amp; source_size, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a> &amp; scale, <span class="keyword">const</span> <a class="code" href="structolc_1_1_pixel.html">olc::Pixel</a> &amp; tint)</div>
+<div class="line"><a name="l00576"></a><span class="lineno">  576</span>&#160;    {</div>
+<div class="line"><a name="l00577"></a><span class="lineno">  577</span>&#160;        <a class="code" href="classolc_1_1_p_g_e_x.html#a032efdb84150a7cdd3cc9248860df316">pge</a>-&gt;<a class="code" href="classolc_1_1_pixel_game_engine.html#aad3107bbad34e5792a9a35629e1fdbd0">DrawPartialRotatedDecal</a>(<a class="code" href="classolc_1_1_transformed_view.html#a18b18c9718c642ca912d44a133ffde1d">WorldToScreen</a>(pos), decal, fAngle, center, source_pos, source_size, scale * <a class="code" href="classolc_1_1_transformed_view.html#a652909b48a4d8960c36d1ce4262cc95a">m_vWorldScale</a> * <a class="code" href="classolc_1_1_transformed_view.html#ae1b7b82332f0979caa99e003827624cb">m_vRecipPixel</a>, tint);</div>
+<div class="line"><a name="l00578"></a><span class="lineno">  578</span>&#160;    }</div>
+<div class="line"><a name="l00579"></a><span class="lineno">  579</span>&#160;    </div>
+<div class="line"><a name="l00580"></a><span class="lineno">  580</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_transformed_view.html#a903ad811f1e3f99d8c6e35f1a1aaf9bf">TransformedView::DrawStringDecal</a>(<span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a> &amp; pos, <span class="keyword">const</span> std::string &amp; sText, <span class="keyword">const</span> <a class="code" href="structolc_1_1_pixel.html">olc::Pixel</a> col, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a> &amp; scale)</div>
+<div class="line"><a name="l00581"></a><span class="lineno">  581</span>&#160;    {</div>
+<div class="line"><a name="l00582"></a><span class="lineno">  582</span>&#160;        <a class="code" href="classolc_1_1_p_g_e_x.html#a032efdb84150a7cdd3cc9248860df316">pge</a>-&gt;<a class="code" href="classolc_1_1_pixel_game_engine.html#a689d1828a93292702070b97fb14f5644">DrawStringDecal</a>(<a class="code" href="classolc_1_1_transformed_view.html#a18b18c9718c642ca912d44a133ffde1d">WorldToScreen</a>(pos), sText, col, scale * <a class="code" href="classolc_1_1_transformed_view.html#a652909b48a4d8960c36d1ce4262cc95a">m_vWorldScale</a> * <a class="code" href="classolc_1_1_transformed_view.html#ae1b7b82332f0979caa99e003827624cb">m_vRecipPixel</a>);</div>
+<div class="line"><a name="l00583"></a><span class="lineno">  583</span>&#160;    }</div>
+<div class="line"><a name="l00584"></a><span class="lineno">  584</span>&#160; </div>
+<div class="line"><a name="l00585"></a><span class="lineno">  585</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_transformed_view.html#afde48a1dc4946bfb3718c19bdf62b328">TransformedView::DrawStringPropDecal</a>(<span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a> &amp; pos, <span class="keyword">const</span> std::string &amp; sText, <span class="keyword">const</span> <a class="code" href="structolc_1_1_pixel.html">olc::Pixel</a> col, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a> &amp; scale )</div>
+<div class="line"><a name="l00586"></a><span class="lineno">  586</span>&#160;    {</div>
+<div class="line"><a name="l00587"></a><span class="lineno">  587</span>&#160;        <a class="code" href="classolc_1_1_p_g_e_x.html#a032efdb84150a7cdd3cc9248860df316">pge</a>-&gt;<a class="code" href="classolc_1_1_pixel_game_engine.html#a7392273f15fc09b3659b112564aa0dfa">DrawStringPropDecal</a>(<a class="code" href="classolc_1_1_transformed_view.html#a18b18c9718c642ca912d44a133ffde1d">WorldToScreen</a>(pos), sText, col, scale * <a class="code" href="classolc_1_1_transformed_view.html#a652909b48a4d8960c36d1ce4262cc95a">m_vWorldScale</a> * <a class="code" href="classolc_1_1_transformed_view.html#ae1b7b82332f0979caa99e003827624cb">m_vRecipPixel</a>);</div>
+<div class="line"><a name="l00588"></a><span class="lineno">  588</span>&#160;    }</div>
+<div class="line"><a name="l00589"></a><span class="lineno">  589</span>&#160; </div>
+<div class="line"><a name="l00590"></a><span class="lineno">  590</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_transformed_view.html#a82f6eeb19d315324c160aa78fd2ead70">TransformedView::FillRectDecal</a>(<span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a> &amp; pos, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a> &amp; size, <span class="keyword">const</span> <a class="code" href="structolc_1_1_pixel.html">olc::Pixel</a> col)</div>
+<div class="line"><a name="l00591"></a><span class="lineno">  591</span>&#160;    {</div>
+<div class="line"><a name="l00592"></a><span class="lineno">  592</span>&#160;        <a class="code" href="classolc_1_1_p_g_e_x.html#a032efdb84150a7cdd3cc9248860df316">pge</a>-&gt;<a class="code" href="classolc_1_1_pixel_game_engine.html#a02a26bca44e04f075f517bdae6ac0e9d">FillRectDecal</a>(<a class="code" href="classolc_1_1_transformed_view.html#a18b18c9718c642ca912d44a133ffde1d">WorldToScreen</a>(pos), (size * <a class="code" href="classolc_1_1_transformed_view.html#a652909b48a4d8960c36d1ce4262cc95a">m_vWorldScale</a>).ceil(), col);</div>
+<div class="line"><a name="l00593"></a><span class="lineno">  593</span>&#160;    }</div>
+<div class="line"><a name="l00594"></a><span class="lineno">  594</span>&#160;    </div>
+<div class="line"><a name="l00595"></a><span class="lineno">  595</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_transformed_view.html#a220b8b9184eb25a6bb2c3271d5417025">TransformedView::GradientFillRectDecal</a>(<span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a> &amp; pos, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a> &amp; size, <span class="keyword">const</span> <a class="code" href="structolc_1_1_pixel.html">olc::Pixel</a> colTL, <span class="keyword">const</span> <a class="code" href="structolc_1_1_pixel.html">olc::Pixel</a> colBL, <span class="keyword">const</span> <a class="code" href="structolc_1_1_pixel.html">olc::Pixel</a> colBR, <span class="keyword">const</span> <a class="code" href="structolc_1_1_pixel.html">olc::Pixel</a> colTR)</div>
+<div class="line"><a name="l00596"></a><span class="lineno">  596</span>&#160;    {</div>
+<div class="line"><a name="l00597"></a><span class="lineno">  597</span>&#160;        <a class="code" href="classolc_1_1_p_g_e_x.html#a032efdb84150a7cdd3cc9248860df316">pge</a>-&gt;<a class="code" href="classolc_1_1_pixel_game_engine.html#a11d9ed8762b81e0bd6bbe4349255b1e8">GradientFillRectDecal</a>(<a class="code" href="classolc_1_1_transformed_view.html#a18b18c9718c642ca912d44a133ffde1d">WorldToScreen</a>(pos), size * <a class="code" href="classolc_1_1_transformed_view.html#a652909b48a4d8960c36d1ce4262cc95a">m_vWorldScale</a>, colTL, colBL, colBR, colTR);</div>
+<div class="line"><a name="l00598"></a><span class="lineno">  598</span>&#160;    }</div>
+<div class="line"><a name="l00599"></a><span class="lineno">  599</span>&#160; </div>
+<div class="line"><a name="l00600"></a><span class="lineno">  600</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_transformed_view.html#a0555577738d2edacb8b8e701d90804d7">TransformedView::DrawPolygonDecal</a>(<a class="code" href="classolc_1_1_decal.html">olc::Decal</a>* decal, <span class="keyword">const</span> std::vector&lt;olc::vf2d&gt;&amp; pos, <span class="keyword">const</span> std::vector&lt;olc::vf2d&gt;&amp; uv, <span class="keyword">const</span> <a class="code" href="structolc_1_1_pixel.html">olc::Pixel</a> tint)</div>
+<div class="line"><a name="l00601"></a><span class="lineno">  601</span>&#160;    {</div>
+<div class="line"><a name="l00602"></a><span class="lineno">  602</span>&#160;        std::vector&lt;olc::vf2d&gt; vTransformed(pos.size());</div>
+<div class="line"><a name="l00603"></a><span class="lineno">  603</span>&#160;        <span class="keywordflow">for</span> (uint32_t n = 0; n &lt; pos.size(); n++)</div>
+<div class="line"><a name="l00604"></a><span class="lineno">  604</span>&#160;            vTransformed[n] = <a class="code" href="classolc_1_1_transformed_view.html#a18b18c9718c642ca912d44a133ffde1d">WorldToScreen</a>(pos[n]);</div>
+<div class="line"><a name="l00605"></a><span class="lineno">  605</span>&#160;        <a class="code" href="classolc_1_1_p_g_e_x.html#a032efdb84150a7cdd3cc9248860df316">pge</a>-&gt;<a class="code" href="classolc_1_1_pixel_game_engine.html#a40a7754338ea7b388ffa2383958d1f0b">DrawPolygonDecal</a>(decal, vTransformed, uv, tint);</div>
+<div class="line"><a name="l00606"></a><span class="lineno">  606</span>&#160;    }</div>
+<div class="line"><a name="l00607"></a><span class="lineno">  607</span>&#160; </div>
+<div class="line"><a name="l00610"></a><span class="lineno">  610</span>&#160; </div>
+<div class="line"><a name="l00611"></a><span class="lineno">  611</span>&#160; </div>
+<div class="line"><a name="l00612"></a><span class="lineno">  612</span>&#160;    <a class="code" href="classolc_1_1_tile_transformed_view.html#a4ecc47c57596ad966120894db8d6ad59">TileTransformedView::TileTransformedView</a>(<span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vi2d</a>&amp; vViewArea, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vi2d</a>&amp; vTileSize)        </div>
+<div class="line"><a name="l00613"></a><span class="lineno">  613</span>&#160;    { </div>
+<div class="line"><a name="l00614"></a><span class="lineno">  614</span>&#160;        <a class="code" href="classolc_1_1_transformed_view.html#a799473b80691228b87a818f80847ca76">Initialise</a>(vViewArea, vTileSize);</div>
+<div class="line"><a name="l00615"></a><span class="lineno">  615</span>&#160;    }</div>
+<div class="line"><a name="l00616"></a><span class="lineno">  616</span>&#160; </div>
+<div class="line"><a name="l00617"></a><span class="lineno">  617</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_tile_transformed_view.html#ace1a6e5c3df96cd43582e02ca4b94dac">TileTransformedView::SetRangeX</a>(<span class="keyword">const</span> <span class="keywordtype">bool</span> bRanged, <span class="keyword">const</span> int32_t nMin, <span class="keyword">const</span> int32_t nMax)</div>
+<div class="line"><a name="l00618"></a><span class="lineno">  618</span>&#160;    {</div>
+<div class="line"><a name="l00619"></a><span class="lineno">  619</span>&#160;        m_bRangedX = bRanged;</div>
+<div class="line"><a name="l00620"></a><span class="lineno">  620</span>&#160;        m_nMinRangeX = nMin;</div>
+<div class="line"><a name="l00621"></a><span class="lineno">  621</span>&#160;        m_nMaxRangeX = nMax;</div>
+<div class="line"><a name="l00622"></a><span class="lineno">  622</span>&#160;    }</div>
+<div class="line"><a name="l00623"></a><span class="lineno">  623</span>&#160; </div>
+<div class="line"><a name="l00624"></a><span class="lineno">  624</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_tile_transformed_view.html#a660fcd24db414be714ae53ba131296a7">TileTransformedView::SetRangeY</a>(<span class="keyword">const</span> <span class="keywordtype">bool</span> bRanged, <span class="keyword">const</span> int32_t nMin, <span class="keyword">const</span> int32_t nMax)</div>
+<div class="line"><a name="l00625"></a><span class="lineno">  625</span>&#160;    {</div>
+<div class="line"><a name="l00626"></a><span class="lineno">  626</span>&#160;        m_bRangedY = bRanged;</div>
+<div class="line"><a name="l00627"></a><span class="lineno">  627</span>&#160;        m_nMinRangeY = nMin;</div>
+<div class="line"><a name="l00628"></a><span class="lineno">  628</span>&#160;        m_nMaxRangeY = nMax;</div>
+<div class="line"><a name="l00629"></a><span class="lineno">  629</span>&#160;    }</div>
+<div class="line"><a name="l00630"></a><span class="lineno">  630</span>&#160; </div>
+<div class="line"><a name="l00631"></a><span class="lineno">  631</span>&#160;    <a class="code" href="structolc_1_1v2d__generic.html">olc::vi2d</a> <a class="code" href="classolc_1_1_tile_transformed_view.html#a9230a04b74c812551768b324a07bf2a3">TileTransformedView::GetTopLeftTile</a>()<span class="keyword"> const</span></div>
+<div class="line"><a name="l00632"></a><span class="lineno">  632</span>&#160;<span class="keyword">    </span>{</div>
+<div class="line"><a name="l00633"></a><span class="lineno">  633</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="classolc_1_1_transformed_view.html#a0f18594e00e7865fe4376761f9e20812">ScreenToWorld</a>({ 0,0 }).floor();      </div>
+<div class="line"><a name="l00634"></a><span class="lineno">  634</span>&#160;    }</div>
+<div class="line"><a name="l00635"></a><span class="lineno">  635</span>&#160; </div>
+<div class="line"><a name="l00636"></a><span class="lineno">  636</span>&#160;    <a class="code" href="structolc_1_1v2d__generic.html">olc::vi2d</a> <a class="code" href="classolc_1_1_tile_transformed_view.html#af681fe11952b2a791a388c79054adc1f">TileTransformedView::GetBottomRightTile</a>()<span class="keyword"> const</span></div>
+<div class="line"><a name="l00637"></a><span class="lineno">  637</span>&#160;<span class="keyword">    </span>{</div>
+<div class="line"><a name="l00638"></a><span class="lineno">  638</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="classolc_1_1_transformed_view.html#a0f18594e00e7865fe4376761f9e20812">ScreenToWorld</a>(<a class="code" href="classolc_1_1_transformed_view.html#a0a2936aac23f1621ff1d618c7155de1c">m_vViewArea</a>).<a class="code" href="structolc_1_1v2d__generic.html#a65efb6611304b590a2cb45781b1c34cc">ceil</a>();</div>
+<div class="line"><a name="l00639"></a><span class="lineno">  639</span>&#160;    }</div>
+<div class="line"><a name="l00640"></a><span class="lineno">  640</span>&#160; </div>
+<div class="line"><a name="l00641"></a><span class="lineno">  641</span>&#160;    <a class="code" href="structolc_1_1v2d__generic.html">olc::vi2d</a> <a class="code" href="classolc_1_1_tile_transformed_view.html#abc2e3898f7bb8209d84095cc5c16843b">TileTransformedView::GetVisibleTiles</a>()<span class="keyword"> const</span></div>
+<div class="line"><a name="l00642"></a><span class="lineno">  642</span>&#160;<span class="keyword">    </span>{</div>
+<div class="line"><a name="l00643"></a><span class="lineno">  643</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="classolc_1_1_tile_transformed_view.html#af681fe11952b2a791a388c79054adc1f">GetBottomRightTile</a>() - <a class="code" href="classolc_1_1_tile_transformed_view.html#a9230a04b74c812551768b324a07bf2a3">GetTopLeftTile</a>();</div>
+<div class="line"><a name="l00644"></a><span class="lineno">  644</span>&#160;    }</div>
+<div class="line"><a name="l00645"></a><span class="lineno">  645</span>&#160; </div>
+<div class="line"><a name="l00646"></a><span class="lineno">  646</span>&#160;    <a class="code" href="structolc_1_1v2d__generic.html">olc::vi2d</a> <a class="code" href="classolc_1_1_tile_transformed_view.html#a1a963a55248ff021b76ecc8e92a555e6">TileTransformedView::GetTileUnderScreenPos</a>(<span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vi2d</a>&amp; vPos)<span class="keyword"> const</span></div>
+<div class="line"><a name="l00647"></a><span class="lineno">  647</span>&#160;<span class="keyword">    </span>{</div>
+<div class="line"><a name="l00648"></a><span class="lineno">  648</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="classolc_1_1_transformed_view.html#a0f18594e00e7865fe4376761f9e20812">ScreenToWorld</a>(vPos).<a class="code" href="structolc_1_1v2d__generic.html#affe50148d448ff75c298da3a1fd45323">floor</a>();     </div>
+<div class="line"><a name="l00649"></a><span class="lineno">  649</span>&#160;    }</div>
+<div class="line"><a name="l00650"></a><span class="lineno">  650</span>&#160; </div>
+<div class="line"><a name="l00651"></a><span class="lineno">  651</span>&#160;    <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vi2d</a> <a class="code" href="classolc_1_1_tile_transformed_view.html#afd338a68b965309beeefa3f239a0680b">TileTransformedView::GetTileOffset</a>()<span class="keyword"> const</span></div>
+<div class="line"><a name="l00652"></a><span class="lineno">  652</span>&#160;<span class="keyword">    </span>{</div>
+<div class="line"><a name="l00653"></a><span class="lineno">  653</span>&#160;        <span class="keywordflow">return</span> { int32_t((<a class="code" href="classolc_1_1_transformed_view.html#a2e77497521f72e59ae7ecb56dc5d3f37">m_vWorldOffset</a>.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a> - std::floor(<a class="code" href="classolc_1_1_transformed_view.html#a2e77497521f72e59ae7ecb56dc5d3f37">m_vWorldOffset</a>.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a>)) * <a class="code" href="classolc_1_1_transformed_view.html#a652909b48a4d8960c36d1ce4262cc95a">m_vWorldScale</a>.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a>),</div>
+<div class="line"><a name="l00654"></a><span class="lineno">  654</span>&#160;            int32_t((<a class="code" href="classolc_1_1_transformed_view.html#a2e77497521f72e59ae7ecb56dc5d3f37">m_vWorldOffset</a>.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a> - std::floor(<a class="code" href="classolc_1_1_transformed_view.html#a2e77497521f72e59ae7ecb56dc5d3f37">m_vWorldOffset</a>.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a>)) * <a class="code" href="classolc_1_1_transformed_view.html#a652909b48a4d8960c36d1ce4262cc95a">m_vWorldScale</a>.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a>) };</div>
+<div class="line"><a name="l00655"></a><span class="lineno">  655</span>&#160;    }</div>
+<div class="line"><a name="l00656"></a><span class="lineno">  656</span>&#160;}</div>
+<div class="line"><a name="l00657"></a><span class="lineno">  657</span>&#160; </div>
+<div class="line"><a name="l00658"></a><span class="lineno">  658</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00659"></a><span class="lineno">  659</span>&#160;<span class="preprocessor">#endif</span></div>
+</div><!-- fragment --></div><!-- contents -->
+<div class="ttc" id="aclassolc_1_1_transformed_view_html_a903ad811f1e3f99d8c6e35f1a1aaf9bf"><div class="ttname"><a href="classolc_1_1_transformed_view.html#a903ad811f1e3f99d8c6e35f1a1aaf9bf">olc::TransformedView::DrawStringDecal</a></div><div class="ttdeci">void DrawStringDecal(const olc::vf2d &amp;pos, const std::string &amp;sText, const olc::Pixel col=olc::WHITE, const olc::vf2d &amp;scale={ 1.0f, 1.0f })</div></div>
+<div class="ttc" id="aclassolc_1_1_transformed_view_html_a971e25ee6978c271127f766aba69b285"><div class="ttname"><a href="classolc_1_1_transformed_view.html#a971e25ee6978c271127f766aba69b285">olc::TransformedView::SetWorldScale</a></div><div class="ttdeci">void SetWorldScale(const olc::vf2d &amp;vScale)</div></div>
+<div class="ttc" id="astructolc_1_1v2d__generic_html_affe50148d448ff75c298da3a1fd45323"><div class="ttname"><a href="structolc_1_1v2d__generic.html#affe50148d448ff75c298da3a1fd45323">olc::v2d_generic::floor</a></div><div class="ttdeci">v2d_generic floor() const</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00594">olcPixelGameEngine.h:594</a></div></div>
+<div class="ttc" id="aclassolc_1_1_transformed_view_html_a664ea0cbd54bbff17ea419ebfac1e359"><div class="ttname"><a href="classolc_1_1_transformed_view.html#a664ea0cbd54bbff17ea419ebfac1e359">olc::TransformedView::IsPointVisible</a></div><div class="ttdeci">virtual bool IsPointVisible(const olc::vf2d &amp;vPos) const</div></div>
+<div class="ttc" id="aclassolc_1_1_transformed_view_html_a2c0e827b1182696275583059a1a72412"><div class="ttname"><a href="classolc_1_1_transformed_view.html#a2c0e827b1182696275583059a1a72412">olc::TransformedView::DrawWarpedDecal</a></div><div class="ttdeci">void DrawWarpedDecal(olc::Decal *decal, const olc::vf2d(&amp;pos)[4], const olc::Pixel &amp;tint=olc::WHITE)</div></div>
+<div class="ttc" id="astructolc_1_1v2d__generic_html"><div class="ttname"><a href="structolc_1_1v2d__generic.html">olc::v2d_generic&lt; int32_t &gt;</a></div></div>
+<div class="ttc" id="aclassolc_1_1_transformed_view_html_a84a8b9030ac97afa9b6099dea5865b9c"><div class="ttname"><a href="classolc_1_1_transformed_view.html#a84a8b9030ac97afa9b6099dea5865b9c">olc::TransformedView::ZoomAtScreenPos</a></div><div class="ttdeci">void ZoomAtScreenPos(const float fDeltaZoom, const olc::vi2d &amp;vPos)</div></div>
+<div class="ttc" id="aclassolc_1_1_transformed_view_html_a023149966b61d7f233898c2b4372d018"><div class="ttname"><a href="classolc_1_1_transformed_view.html#a023149966b61d7f233898c2b4372d018">olc::TransformedView::FillTriangle</a></div><div class="ttdeci">void FillTriangle(const olc::vf2d &amp;pos1, const olc::vf2d &amp;pos2, const olc::vf2d &amp;pos3, olc::Pixel p=olc::WHITE)</div></div>
+<div class="ttc" id="aclassolc_1_1_transformed_view_html_a2c19ec65e54f43500cce003f878c8ed5"><div class="ttname"><a href="classolc_1_1_transformed_view.html#a2c19ec65e54f43500cce003f878c8ed5">olc::TransformedView::m_bPanning</a></div><div class="ttdeci">bool m_bPanning</div><div class="ttdef"><b>Definition:</b> <a href="olc_p_g_e_x___transformed_view_8h_source.html#l00112">olcPGEX_TransformedView.h:112</a></div></div>
+<div class="ttc" id="aclassolc_1_1_pixel_game_engine_html_ab9af9b6726271e83dd7e4b24583b4236"><div class="ttname"><a href="classolc_1_1_pixel_game_engine.html#ab9af9b6726271e83dd7e4b24583b4236">olc::PixelGameEngine::DrawRotatedDecal</a></div><div class="ttdeci">void DrawRotatedDecal(const olc::vf2d &amp;pos, olc::Decal *decal, const float fAngle, const olc::vf2d &amp;center={ 0.0f, 0.0f }, const olc::vf2d &amp;scale={ 1.0f, 1.0f }, const olc::Pixel &amp;tint=olc::WHITE)</div></div>
+<div class="ttc" id="astructolc_1_1v2d__generic_html_a5a9c94207b2163c69a39190c320fcbdf"><div class="ttname"><a href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">olc::v2d_generic::y</a></div><div class="ttdeci">T y</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00585">olcPixelGameEngine.h:585</a></div></div>
+<div class="ttc" id="aclassolc_1_1_transformed_view_html_a829557257985bb738baad577ed0ed7a0"><div class="ttname"><a href="classolc_1_1_transformed_view.html#a829557257985bb738baad577ed0ed7a0">olc::TransformedView::DrawPartialSprite</a></div><div class="ttdeci">void DrawPartialSprite(float x, float y, Sprite *sprite, int32_t ox, int32_t oy, int32_t w, int32_t h, float scalex=1, float scaley=1, uint8_t flip=olc::Sprite::NONE)</div></div>
+<div class="ttc" id="aclassolc_1_1_tile_transformed_view_html_abc2e3898f7bb8209d84095cc5c16843b"><div class="ttname"><a href="classolc_1_1_tile_transformed_view.html#abc2e3898f7bb8209d84095cc5c16843b">olc::TileTransformedView::GetVisibleTiles</a></div><div class="ttdeci">olc::vi2d GetVisibleTiles() const</div></div>
+<div class="ttc" id="aolc_pixel_game_engine_8h_html"><div class="ttname"><a href="olc_pixel_game_engine_8h.html">olcPixelGameEngine.h</a></div></div>
+<div class="ttc" id="aclassolc_1_1_transformed_view_html_a250badf6257c666f0e0a07ed3d86ad9e"><div class="ttname"><a href="classolc_1_1_transformed_view.html#a250badf6257c666f0e0a07ed3d86ad9e">olc::TransformedView::DrawWarpedDecal</a></div><div class="ttdeci">void DrawWarpedDecal(olc::Decal *decal, const olc::vf2d *pos, const olc::Pixel &amp;tint=olc::WHITE)</div></div>
+<div class="ttc" id="aclassolc_1_1_pixel_game_engine_html_a65098b403a403c45041599893429b550"><div class="ttname"><a href="classolc_1_1_pixel_game_engine.html#a65098b403a403c45041599893429b550">olc::PixelGameEngine::DrawWarpedDecal</a></div><div class="ttdeci">void DrawWarpedDecal(olc::Decal *decal, const olc::vf2d(&amp;pos)[4], const olc::Pixel &amp;tint=olc::WHITE)</div></div>
+<div class="ttc" id="aclassolc_1_1_tile_transformed_view_html_a660fcd24db414be714ae53ba131296a7"><div class="ttname"><a href="classolc_1_1_tile_transformed_view.html#a660fcd24db414be714ae53ba131296a7">olc::TileTransformedView::SetRangeY</a></div><div class="ttdeci">void SetRangeY(const bool bRanged, const int32_t nMin=0, const int32_t nMax=0)</div></div>
+<div class="ttc" id="aclassolc_1_1_sprite_html_ab05010cb1a5ff6c36267d0050d568d96"><div class="ttname"><a href="classolc_1_1_sprite.html#ab05010cb1a5ff6c36267d0050d568d96">olc::Sprite::height</a></div><div class="ttdeci">int32_t height</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00712">olcPixelGameEngine.h:712</a></div></div>
+<div class="ttc" id="aclassolc_1_1_tile_transformed_view_html_ac38d47324d7370b5259894d814b879f8"><div class="ttname"><a href="classolc_1_1_tile_transformed_view.html#ac38d47324d7370b5259894d814b879f8">olc::TileTransformedView::TileTransformedView</a></div><div class="ttdeci">TileTransformedView(const olc::vi2d &amp;vViewArea, const olc::vi2d &amp;vTileSize)</div></div>
+<div class="ttc" id="aclassolc_1_1_transformed_view_html_ae1b7b82332f0979caa99e003827624cb"><div class="ttname"><a href="classolc_1_1_transformed_view.html#ae1b7b82332f0979caa99e003827624cb">olc::TransformedView::m_vRecipPixel</a></div><div class="ttdeci">olc::vf2d m_vRecipPixel</div><div class="ttdef"><b>Definition:</b> <a href="olc_p_g_e_x___transformed_view_8h_source.html#l00110">olcPGEX_TransformedView.h:110</a></div></div>
+<div class="ttc" id="anamespaceolc_html_adb87819740ea9625f84c821fffb16429"><div class="ttname"><a href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a></div><div class="ttdeci">v2d_generic&lt; float &gt; vf2d</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00646">olcPixelGameEngine.h:646</a></div></div>
+<div class="ttc" id="aclassolc_1_1_tile_transformed_view_html_a9230a04b74c812551768b324a07bf2a3"><div class="ttname"><a href="classolc_1_1_tile_transformed_view.html#a9230a04b74c812551768b324a07bf2a3">olc::TileTransformedView::GetTopLeftTile</a></div><div class="ttdeci">olc::vi2d GetTopLeftTile() const</div></div>
+<div class="ttc" id="aclassolc_1_1_transformed_view_html_a2ce6891b49d600eacb32eef88f07b2e0"><div class="ttname"><a href="classolc_1_1_transformed_view.html#a2ce6891b49d600eacb32eef88f07b2e0">olc::TransformedView::DrawRect</a></div><div class="ttdeci">void DrawRect(const olc::vf2d &amp;pos, const olc::vf2d &amp;size, olc::Pixel p=olc::WHITE)</div></div>
+<div class="ttc" id="aclassolc_1_1_pixel_game_engine_html_a26d7073d87bb19f15d5ade6bb58e8e2d"><div class="ttname"><a href="classolc_1_1_pixel_game_engine.html#a26d7073d87bb19f15d5ade6bb58e8e2d">olc::PixelGameEngine::DrawExplicitDecal</a></div><div class="ttdeci">void DrawExplicitDecal(olc::Decal *decal, const olc::vf2d *pos, const olc::vf2d *uv, const olc::Pixel *col, uint32_t elements=4)</div></div>
+<div class="ttc" id="aclassolc_1_1_transformed_view_html_a18b18c9718c642ca912d44a133ffde1d"><div class="ttname"><a href="classolc_1_1_transformed_view.html#a18b18c9718c642ca912d44a133ffde1d">olc::TransformedView::WorldToScreen</a></div><div class="ttdeci">virtual olc::vi2d WorldToScreen(const olc::vf2d &amp;vWorldPos) const</div></div>
+<div class="ttc" id="aclassolc_1_1_pixel_game_engine_html_a78be0709345710435fdaef7bc14f5fb3"><div class="ttname"><a href="classolc_1_1_pixel_game_engine.html#a78be0709345710435fdaef7bc14f5fb3">olc::PixelGameEngine::DrawPartialWarpedDecal</a></div><div class="ttdeci">void DrawPartialWarpedDecal(olc::Decal *decal, const olc::vf2d(&amp;pos)[4], const olc::vf2d &amp;source_pos, const olc::vf2d &amp;source_size, const olc::Pixel &amp;tint=olc::WHITE)</div></div>
+<div class="ttc" id="aclassolc_1_1_sprite_html_ad0d1976d2060997f5cd99eb284a5dc24a6ad338b4e63faacfbed68b020c3a0c0c"><div class="ttname"><a href="classolc_1_1_sprite.html#ad0d1976d2060997f5cd99eb284a5dc24a6ad338b4e63faacfbed68b020c3a0c0c">olc::Sprite::NONE</a></div><div class="ttdeci">@ NONE</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00714">olcPixelGameEngine.h:714</a></div></div>
+<div class="ttc" id="aclassolc_1_1_transformed_view_html_a03ef78202a55d896cd86eb16f39b8847"><div class="ttname"><a href="classolc_1_1_transformed_view.html#a03ef78202a55d896cd86eb16f39b8847">olc::TransformedView::DrawPartialDecal</a></div><div class="ttdeci">void DrawPartialDecal(const olc::vf2d &amp;pos, const olc::vf2d &amp;size, olc::Decal *decal, const olc::vf2d &amp;source_pos, const olc::vf2d &amp;source_size, const olc::Pixel &amp;tint=olc::WHITE)</div></div>
+<div class="ttc" id="aclassolc_1_1_transformed_view_html_a6c818747c7fa97445fbb40c9f222e865"><div class="ttname"><a href="classolc_1_1_transformed_view.html#a6c818747c7fa97445fbb40c9f222e865">olc::TransformedView::DrawTriangle</a></div><div class="ttdeci">void DrawTriangle(float x1, float y1, float x2, float y2, float x3, float y3, olc::Pixel p=olc::WHITE)</div></div>
+<div class="ttc" id="aclassolc_1_1_transformed_view_html_abbf0590764bbacdd35a4d0adc6e69b84"><div class="ttname"><a href="classolc_1_1_transformed_view.html#abbf0590764bbacdd35a4d0adc6e69b84">olc::TransformedView::DrawCircle</a></div><div class="ttdeci">void DrawCircle(float x, float y, float radius, olc::Pixel p=olc::WHITE, uint8_t mask=0xFF)</div></div>
+<div class="ttc" id="aclassolc_1_1_transformed_view_html_a5240bf2a7285559be13c80f3ce2a97a3"><div class="ttname"><a href="classolc_1_1_transformed_view.html#a5240bf2a7285559be13c80f3ce2a97a3">olc::TransformedView::GetWorldBR</a></div><div class="ttdeci">olc::vf2d GetWorldBR() const</div></div>
+<div class="ttc" id="aclassolc_1_1_transformed_view_html_ab1578748552d35bff05e63dcfc79cfb9"><div class="ttname"><a href="classolc_1_1_transformed_view.html#ab1578748552d35bff05e63dcfc79cfb9">olc::TransformedView::DrawRect</a></div><div class="ttdeci">void DrawRect(float x, float y, float w, float h, olc::Pixel p=olc::WHITE)</div></div>
+<div class="ttc" id="aclassolc_1_1_transformed_view_html_afd3f4dffe3a2fffaed2fd6c84e40ce23"><div class="ttname"><a href="classolc_1_1_transformed_view.html#afd3f4dffe3a2fffaed2fd6c84e40ce23">olc::TransformedView::FillCircle</a></div><div class="ttdeci">void FillCircle(float x, float y, float radius, olc::Pixel p=olc::WHITE)</div></div>
+<div class="ttc" id="aclassolc_1_1_transformed_view_html_aee86c84a719f8b5c3143e2a0b89e8024"><div class="ttname"><a href="classolc_1_1_transformed_view.html#aee86c84a719f8b5c3143e2a0b89e8024">olc::TransformedView::SetWorldOffset</a></div><div class="ttdeci">void SetWorldOffset(const olc::vf2d &amp;vOffset)</div></div>
+<div class="ttc" id="aclassolc_1_1_tile_transformed_view_html_a4ecc47c57596ad966120894db8d6ad59"><div class="ttname"><a href="classolc_1_1_tile_transformed_view.html#a4ecc47c57596ad966120894db8d6ad59">olc::TileTransformedView::TileTransformedView</a></div><div class="ttdeci">TileTransformedView()=default</div></div>
+<div class="ttc" id="astructolc_1_1v2d__generic_html_a2c6ce2738720f5e098c7d0bf17f33807"><div class="ttname"><a href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">olc::v2d_generic::x</a></div><div class="ttdeci">T x</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00584">olcPixelGameEngine.h:584</a></div></div>
+<div class="ttc" id="aclassolc_1_1_transformed_view_html_a0f18594e00e7865fe4376761f9e20812"><div class="ttname"><a href="classolc_1_1_transformed_view.html#a0f18594e00e7865fe4376761f9e20812">olc::TransformedView::ScreenToWorld</a></div><div class="ttdeci">virtual olc::vf2d ScreenToWorld(const olc::vi2d &amp;vScreenPos) const</div></div>
+<div class="ttc" id="aclassolc_1_1_transformed_view_html_a4dc2bd0de3686978fdf8630d23a727c3"><div class="ttname"><a href="classolc_1_1_transformed_view.html#a4dc2bd0de3686978fdf8630d23a727c3">olc::TransformedView::StartPan</a></div><div class="ttdeci">void StartPan(const olc::vi2d &amp;vPos)</div></div>
+<div class="ttc" id="anamespaceolc_html"><div class="ttname"><a href="namespaceolc.html">olc</a></div><div class="ttdef"><b>Definition:</b> <a href="olc_p_g_e_x___transformed_view_8h_source.html#l00077">olcPGEX_TransformedView.h:78</a></div></div>
+<div class="ttc" id="aclassolc_1_1_transformed_view_html_a8bad23f424184f2e15f32deb7f179160"><div class="ttname"><a href="classolc_1_1_transformed_view.html#a8bad23f424184f2e15f32deb7f179160">olc::TransformedView::DrawDecal</a></div><div class="ttdeci">void DrawDecal(const olc::vf2d &amp;pos, olc::Decal *decal, const olc::vf2d &amp;scale={ 1.0f, 1.0f }, const olc::Pixel &amp;tint=olc::WHITE)</div></div>
+<div class="ttc" id="aclassolc_1_1_transformed_view_html_afde48a1dc4946bfb3718c19bdf62b328"><div class="ttname"><a href="classolc_1_1_transformed_view.html#afde48a1dc4946bfb3718c19bdf62b328">olc::TransformedView::DrawStringPropDecal</a></div><div class="ttdeci">void DrawStringPropDecal(const olc::vf2d &amp;pos, const std::string &amp;sText, const olc::Pixel col=olc::WHITE, const olc::vf2d &amp;scale={ 1.0f, 1.0f })</div></div>
+<div class="ttc" id="aclassolc_1_1_transformed_view_html_a60a961188fe9a5cb60258c1b4d8cf498"><div class="ttname"><a href="classolc_1_1_transformed_view.html#a60a961188fe9a5cb60258c1b4d8cf498">olc::TransformedView::DrawLine</a></div><div class="ttdeci">void DrawLine(const olc::vf2d &amp;pos1, const olc::vf2d &amp;pos2, olc::Pixel p=olc::WHITE, uint32_t pattern=0xFFFFFFFF)</div></div>
+<div class="ttc" id="aclassolc_1_1_transformed_view_html_a2e77497521f72e59ae7ecb56dc5d3f37"><div class="ttname"><a href="classolc_1_1_transformed_view.html#a2e77497521f72e59ae7ecb56dc5d3f37">olc::TransformedView::m_vWorldOffset</a></div><div class="ttdeci">olc::vf2d m_vWorldOffset</div><div class="ttdef"><b>Definition:</b> <a href="olc_p_g_e_x___transformed_view_8h_source.html#l00108">olcPGEX_TransformedView.h:108</a></div></div>
+<div class="ttc" id="aclassolc_1_1_transformed_view_html_a09492f689459319994da4c9d0e0c2dc4"><div class="ttname"><a href="classolc_1_1_transformed_view.html#a09492f689459319994da4c9d0e0c2dc4">olc::TransformedView::ScaleToWorld</a></div><div class="ttdeci">virtual olc::vf2d ScaleToWorld(const olc::vi2d &amp;vScreenSize) const</div></div>
+<div class="ttc" id="aclassolc_1_1_transformed_view_html_a88045b492c61288a7e5ca1eb164ad2fb"><div class="ttname"><a href="classolc_1_1_transformed_view.html#a88045b492c61288a7e5ca1eb164ad2fb">olc::TransformedView::DrawPartialWarpedDecal</a></div><div class="ttdeci">void DrawPartialWarpedDecal(olc::Decal *decal, const olc::vf2d *pos, const olc::vf2d &amp;source_pos, const olc::vf2d &amp;source_size, const olc::Pixel &amp;tint=olc::WHITE)</div></div>
+<div class="ttc" id="aclassolc_1_1_transformed_view_html_a94a7fd3ad136ec70040bbff1c7133418"><div class="ttname"><a href="classolc_1_1_transformed_view.html#a94a7fd3ad136ec70040bbff1c7133418">olc::TransformedView::m_vPixelScale</a></div><div class="ttdeci">olc::vf2d m_vPixelScale</div><div class="ttdef"><b>Definition:</b> <a href="olc_p_g_e_x___transformed_view_8h_source.html#l00111">olcPGEX_TransformedView.h:111</a></div></div>
+<div class="ttc" id="aclassolc_1_1_transformed_view_html_a17bf0d6a35728abe95993ef5475aa767"><div class="ttname"><a href="classolc_1_1_transformed_view.html#a17bf0d6a35728abe95993ef5475aa767">olc::TransformedView::DrawPartialWarpedDecal</a></div><div class="ttdeci">void DrawPartialWarpedDecal(olc::Decal *decal, const olc::vf2d(&amp;pos)[4], const olc::vf2d &amp;source_pos, const olc::vf2d &amp;source_size, const olc::Pixel &amp;tint=olc::WHITE)</div></div>
+<div class="ttc" id="aclassolc_1_1_transformed_view_html_a624730b2582152c4cc49d457bc140859"><div class="ttname"><a href="classolc_1_1_transformed_view.html#a624730b2582152c4cc49d457bc140859">olc::TransformedView::DrawPartialWarpedDecal</a></div><div class="ttdeci">void DrawPartialWarpedDecal(olc::Decal *decal, const std::array&lt; olc::vf2d, 4 &gt; &amp;pos, const olc::vf2d &amp;source_pos, const olc::vf2d &amp;source_size, const olc::Pixel &amp;tint=olc::WHITE)</div></div>
+<div class="ttc" id="aclassolc_1_1_transformed_view_html_ac7295e90921832fef16779172cc9e4ff"><div class="ttname"><a href="classolc_1_1_transformed_view.html#ac7295e90921832fef16779172cc9e4ff">olc::TransformedView::SetViewArea</a></div><div class="ttdeci">void SetViewArea(const olc::vi2d &amp;vViewArea)</div></div>
+<div class="ttc" id="aclassolc_1_1_pixel_game_engine_html_a5b676590555cab61db67804417c6f25f"><div class="ttname"><a href="classolc_1_1_pixel_game_engine.html#a5b676590555cab61db67804417c6f25f">olc::PixelGameEngine::DrawDecal</a></div><div class="ttdeci">void DrawDecal(const olc::vf2d &amp;pos, olc::Decal *decal, const olc::vf2d &amp;scale={ 1.0f, 1.0f }, const olc::Pixel &amp;tint=olc::WHITE)</div></div>
+<div class="ttc" id="aclassolc_1_1_pixel_game_engine_html_a483f56606fbbf3ab4850554491a853bd"><div class="ttname"><a href="classolc_1_1_pixel_game_engine.html#a483f56606fbbf3ab4850554491a853bd">olc::PixelGameEngine::FillCircle</a></div><div class="ttdeci">void FillCircle(int32_t x, int32_t y, int32_t radius, Pixel p=olc::WHITE)</div></div>
+<div class="ttc" id="aclassolc_1_1_transformed_view_html_a220b8b9184eb25a6bb2c3271d5417025"><div class="ttname"><a href="classolc_1_1_transformed_view.html#a220b8b9184eb25a6bb2c3271d5417025">olc::TransformedView::GradientFillRectDecal</a></div><div class="ttdeci">void GradientFillRectDecal(const olc::vf2d &amp;pos, const olc::vf2d &amp;size, const olc::Pixel colTL, const olc::Pixel colBL, const olc::Pixel colBR, const olc::Pixel colTR)</div></div>
+<div class="ttc" id="aclassolc_1_1_pixel_game_engine_html_ad4f95a449dc09a2650ec771e6fa83049"><div class="ttname"><a href="classolc_1_1_pixel_game_engine.html#ad4f95a449dc09a2650ec771e6fa83049">olc::PixelGameEngine::GetPixelMode</a></div><div class="ttdeci">Pixel::Mode GetPixelMode()</div></div>
+<div class="ttc" id="astructolc_1_1_pixel_html_ae9012164940526ddb09b217dbbddfd65"><div class="ttname"><a href="structolc_1_1_pixel.html#ae9012164940526ddb09b217dbbddfd65">olc::Pixel::Mode</a></div><div class="ttdeci">Mode</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00510">olcPixelGameEngine.h:510</a></div></div>
+<div class="ttc" id="aclassolc_1_1_transformed_view_html_a7f7815582a087a163199bb29f1c4c0ae"><div class="ttname"><a href="classolc_1_1_transformed_view.html#a7f7815582a087a163199bb29f1c4c0ae">olc::TransformedView::GetWorldVisibleArea</a></div><div class="ttdeci">olc::vf2d GetWorldVisibleArea() const</div></div>
+<div class="ttc" id="aclassolc_1_1_transformed_view_html_a88152a5f5b9fbb3df0f6d965ef4c4fe4"><div class="ttname"><a href="classolc_1_1_transformed_view.html#a88152a5f5b9fbb3df0f6d965ef4c4fe4">olc::TransformedView::GetWorldOffset</a></div><div class="ttdeci">const olc::vf2d &amp; GetWorldOffset() const</div></div>
+<div class="ttc" id="aclassolc_1_1_transformed_view_html_a3edd680172e1ae5b710290ab58d617e0"><div class="ttname"><a href="classolc_1_1_transformed_view.html#a3edd680172e1ae5b710290ab58d617e0">olc::TransformedView::EndPan</a></div><div class="ttdeci">void EndPan(const olc::vi2d &amp;vPos)</div></div>
+<div class="ttc" id="aclassolc_1_1_transformed_view_html_a44f1c98c6c6720338d7b6dcc9117cb03"><div class="ttname"><a href="classolc_1_1_transformed_view.html#a44f1c98c6c6720338d7b6dcc9117cb03">olc::TransformedView::DrawSprite</a></div><div class="ttdeci">void DrawSprite(const olc::vf2d &amp;pos, olc::Sprite *sprite, const olc::vf2d &amp;scale={ 1.0f, 1.0f }, uint8_t flip=olc::Sprite::NONE)</div></div>
+<div class="ttc" id="aclassolc_1_1_tile_transformed_view_html_af681fe11952b2a791a388c79054adc1f"><div class="ttname"><a href="classolc_1_1_tile_transformed_view.html#af681fe11952b2a791a388c79054adc1f">olc::TileTransformedView::GetBottomRightTile</a></div><div class="ttdeci">olc::vi2d GetBottomRightTile() const</div></div>
+<div class="ttc" id="aclassolc_1_1_transformed_view_html_a4f7569cc3d27120b485077789b86aa44"><div class="ttname"><a href="classolc_1_1_transformed_view.html#a4f7569cc3d27120b485077789b86aa44">olc::TransformedView::m_vStartPan</a></div><div class="ttdeci">olc::vf2d m_vStartPan</div><div class="ttdef"><b>Definition:</b> <a href="olc_p_g_e_x___transformed_view_8h_source.html#l00113">olcPGEX_TransformedView.h:113</a></div></div>
+<div class="ttc" id="aclassolc_1_1_transformed_view_html_a0c6e1fb72399ec97e0dc093a2da80d50"><div class="ttname"><a href="classolc_1_1_transformed_view.html#a0c6e1fb72399ec97e0dc093a2da80d50">olc::TransformedView::DrawPartialSprite</a></div><div class="ttdeci">void DrawPartialSprite(const olc::vf2d &amp;pos, Sprite *sprite, const olc::vi2d &amp;sourcepos, const olc::vi2d &amp;size, const olc::vf2d &amp;scale={ 1.0f, 1.0f }, uint8_t flip=olc::Sprite::NONE)</div></div>
+<div class="ttc" id="aclassolc_1_1_pixel_game_engine_html_a02a26bca44e04f075f517bdae6ac0e9d"><div class="ttname"><a href="classolc_1_1_pixel_game_engine.html#a02a26bca44e04f075f517bdae6ac0e9d">olc::PixelGameEngine::FillRectDecal</a></div><div class="ttdeci">void FillRectDecal(const olc::vf2d &amp;pos, const olc::vf2d &amp;size, const olc::Pixel col=olc::WHITE)</div></div>
+<div class="ttc" id="aclassolc_1_1_p_g_e_x_html"><div class="ttname"><a href="classolc_1_1_p_g_e_x.html">olc::PGEX</a></div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l01118">olcPixelGameEngine.h:1119</a></div></div>
+<div class="ttc" id="aclassolc_1_1_pixel_game_engine_html_a7392273f15fc09b3659b112564aa0dfa"><div class="ttname"><a href="classolc_1_1_pixel_game_engine.html#a7392273f15fc09b3659b112564aa0dfa">olc::PixelGameEngine::DrawStringPropDecal</a></div><div class="ttdeci">void DrawStringPropDecal(const olc::vf2d &amp;pos, const std::string &amp;sText, const Pixel col=olc::WHITE, const olc::vf2d &amp;scale={ 1.0f, 1.0f })</div></div>
+<div class="ttc" id="aclassolc_1_1_transformed_view_html_a799473b80691228b87a818f80847ca76"><div class="ttname"><a href="classolc_1_1_transformed_view.html#a799473b80691228b87a818f80847ca76">olc::TransformedView::Initialise</a></div><div class="ttdeci">virtual void Initialise(const olc::vi2d &amp;vViewArea, const olc::vf2d &amp;vPixelScale={ 1.0f, 1.0f })</div></div>
+<div class="ttc" id="aclassolc_1_1_p_g_e_x_html_a032efdb84150a7cdd3cc9248860df316"><div class="ttname"><a href="classolc_1_1_p_g_e_x.html#a032efdb84150a7cdd3cc9248860df316">olc::PGEX::pge</a></div><div class="ttdeci">static PixelGameEngine * pge</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l01131">olcPixelGameEngine.h:1131</a></div></div>
+<div class="ttc" id="aclassolc_1_1_transformed_view_html_ab8e4acce21674331d91910c7056c59a3"><div class="ttname"><a href="classolc_1_1_transformed_view.html#ab8e4acce21674331d91910c7056c59a3">olc::TransformedView::DrawString</a></div><div class="ttdeci">void DrawString(const olc::vf2d &amp;pos, const std::string &amp;sText, const Pixel col, const olc::vf2d &amp;scale)</div></div>
+<div class="ttc" id="aclassolc_1_1_transformed_view_html_a1daefdb27499350eb3927c79ec60bca5"><div class="ttname"><a href="classolc_1_1_transformed_view.html#a1daefdb27499350eb3927c79ec60bca5">olc::TransformedView::DrawPartialDecal</a></div><div class="ttdeci">void DrawPartialDecal(const olc::vf2d &amp;pos, olc::Decal *decal, const olc::vf2d &amp;source_pos, const olc::vf2d &amp;source_size, const olc::vf2d &amp;scale={ 1.0f, 1.0f }, const olc::Pixel &amp;tint=olc::WHITE)</div></div>
+<div class="ttc" id="aclassolc_1_1_transformed_view_html_a2509ea7aa54013b9b0caa7a265818511"><div class="ttname"><a href="classolc_1_1_transformed_view.html#a2509ea7aa54013b9b0caa7a265818511">olc::TransformedView::Draw</a></div><div class="ttdeci">bool Draw(const olc::vf2d &amp;pos, olc::Pixel p=olc::WHITE)</div></div>
+<div class="ttc" id="aclassolc_1_1_transformed_view_html_a82f6eeb19d315324c160aa78fd2ead70"><div class="ttname"><a href="classolc_1_1_transformed_view.html#a82f6eeb19d315324c160aa78fd2ead70">olc::TransformedView::FillRectDecal</a></div><div class="ttdeci">void FillRectDecal(const olc::vf2d &amp;pos, const olc::vf2d &amp;size, const olc::Pixel col=olc::WHITE)</div></div>
+<div class="ttc" id="aclassolc_1_1_sprite_html_af055800e63204ae372ca0812e6926230"><div class="ttname"><a href="classolc_1_1_sprite.html#af055800e63204ae372ca0812e6926230">olc::Sprite::width</a></div><div class="ttdeci">int32_t width</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00711">olcPixelGameEngine.h:711</a></div></div>
+<div class="ttc" id="aclassolc_1_1_transformed_view_html_a4baf2b53892749ff380833991161b9c4"><div class="ttname"><a href="classolc_1_1_transformed_view.html#a4baf2b53892749ff380833991161b9c4">olc::TransformedView::UpdatePan</a></div><div class="ttdeci">void UpdatePan(const olc::vi2d &amp;vPos)</div></div>
+<div class="ttc" id="aclassolc_1_1_transformed_view_html_a8be86d8036bf635287debfcf2509e4c5"><div class="ttname"><a href="classolc_1_1_transformed_view.html#a8be86d8036bf635287debfcf2509e4c5">olc::TransformedView::ScaleToScreen</a></div><div class="ttdeci">virtual olc::vi2d ScaleToScreen(const olc::vf2d &amp;vWorldSize) const</div></div>
+<div class="ttc" id="aclassolc_1_1_transformed_view_html_a45a659d55d124e87e956e842963637fa"><div class="ttname"><a href="classolc_1_1_transformed_view.html#a45a659d55d124e87e956e842963637fa">olc::TransformedView::DrawTriangle</a></div><div class="ttdeci">void DrawTriangle(const olc::vf2d &amp;pos1, const olc::vf2d &amp;pos2, const olc::vf2d &amp;pos3, olc::Pixel p=olc::WHITE)</div></div>
+<div class="ttc" id="aclassolc_1_1_pixel_game_engine_html_ad31abffe6c4d0b864b8f7762c33b7a7d"><div class="ttname"><a href="classolc_1_1_pixel_game_engine.html#ad31abffe6c4d0b864b8f7762c33b7a7d">olc::PixelGameEngine::FillTriangle</a></div><div class="ttdeci">void FillTriangle(int32_t x1, int32_t y1, int32_t x2, int32_t y2, int32_t x3, int32_t y3, Pixel p=olc::WHITE)</div></div>
+<div class="ttc" id="aclassolc_1_1_transformed_view_html_ac75bd045f9fbc5d8cd901ecdd216fcb5"><div class="ttname"><a href="classolc_1_1_transformed_view.html#ac75bd045f9fbc5d8cd901ecdd216fcb5">olc::TransformedView::GetWorldTL</a></div><div class="ttdeci">olc::vf2d GetWorldTL() const</div></div>
+<div class="ttc" id="aclassolc_1_1_pixel_game_engine_html_a2bddba9e808a8702f6af354007302c16"><div class="ttname"><a href="classolc_1_1_pixel_game_engine.html#a2bddba9e808a8702f6af354007302c16">olc::PixelGameEngine::DrawTriangle</a></div><div class="ttdeci">void DrawTriangle(int32_t x1, int32_t y1, int32_t x2, int32_t y2, int32_t x3, int32_t y3, Pixel p=olc::WHITE)</div></div>
+<div class="ttc" id="aclassolc_1_1_transformed_view_html_a09a214f47f9e4f5e85a8d3bd224ab9b1"><div class="ttname"><a href="classolc_1_1_transformed_view.html#a09a214f47f9e4f5e85a8d3bd224ab9b1">olc::TransformedView::Draw</a></div><div class="ttdeci">virtual bool Draw(float x, float y, olc::Pixel p=olc::WHITE)</div></div>
+<div class="ttc" id="aclassolc_1_1_transformed_view_html_acf22577cab34db667d05eae0e38000e0"><div class="ttname"><a href="classolc_1_1_transformed_view.html#acf22577cab34db667d05eae0e38000e0">olc::TransformedView::DrawString</a></div><div class="ttdeci">void DrawString(float x, float y, const std::string &amp;sText, Pixel col, const olc::vf2d &amp;scale)</div></div>
+<div class="ttc" id="aclassolc_1_1_transformed_view_html_a2f12ada82c7262a2e29572cfded60f02"><div class="ttname"><a href="classolc_1_1_transformed_view.html#a2f12ada82c7262a2e29572cfded60f02">olc::TransformedView::FillRect</a></div><div class="ttdeci">void FillRect(float x, float y, float w, float h, olc::Pixel p=olc::WHITE)</div></div>
+<div class="ttc" id="astructolc_1_1v2d__generic_html_a65efb6611304b590a2cb45781b1c34cc"><div class="ttname"><a href="structolc_1_1v2d__generic.html#a65efb6611304b590a2cb45781b1c34cc">olc::v2d_generic::ceil</a></div><div class="ttdeci">v2d_generic ceil() const</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00595">olcPixelGameEngine.h:595</a></div></div>
+<div class="ttc" id="aclassolc_1_1_transformed_view_html_a0a2936aac23f1621ff1d618c7155de1c"><div class="ttname"><a href="classolc_1_1_transformed_view.html#a0a2936aac23f1621ff1d618c7155de1c">olc::TransformedView::m_vViewArea</a></div><div class="ttdeci">olc::vi2d m_vViewArea</div><div class="ttdef"><b>Definition:</b> <a href="olc_p_g_e_x___transformed_view_8h_source.html#l00114">olcPGEX_TransformedView.h:114</a></div></div>
+<div class="ttc" id="aclassolc_1_1_transformed_view_html_a652909b48a4d8960c36d1ce4262cc95a"><div class="ttname"><a href="classolc_1_1_transformed_view.html#a652909b48a4d8960c36d1ce4262cc95a">olc::TransformedView::m_vWorldScale</a></div><div class="ttdeci">olc::vf2d m_vWorldScale</div><div class="ttdef"><b>Definition:</b> <a href="olc_p_g_e_x___transformed_view_8h_source.html#l00109">olcPGEX_TransformedView.h:109</a></div></div>
+<div class="ttc" id="aclassolc_1_1_transformed_view_html_a3f2574c761a0045641fd2f5f9b194184"><div class="ttname"><a href="classolc_1_1_transformed_view.html#a3f2574c761a0045641fd2f5f9b194184">olc::TransformedView::DrawPartialRotatedDecal</a></div><div class="ttdeci">void DrawPartialRotatedDecal(const olc::vf2d &amp;pos, olc::Decal *decal, const float fAngle, const olc::vf2d &amp;center, const olc::vf2d &amp;source_pos, const olc::vf2d &amp;source_size, const olc::vf2d &amp;scale={ 1.0f, 1.0f }, const olc::Pixel &amp;tint=olc::WHITE)</div></div>
+<div class="ttc" id="aclassolc_1_1_transformed_view_html_a1f4ed7eb880b0f0edc0b86be4b33b04e"><div class="ttname"><a href="classolc_1_1_transformed_view.html#a1f4ed7eb880b0f0edc0b86be4b33b04e">olc::TransformedView::TransformedView</a></div><div class="ttdeci">TransformedView()=default</div></div>
+<div class="ttc" id="aclassolc_1_1_transformed_view_html_a0814eafdbf34c4570c08722998b3c936"><div class="ttname"><a href="classolc_1_1_transformed_view.html#a0814eafdbf34c4570c08722998b3c936">olc::TransformedView::DrawSprite</a></div><div class="ttdeci">void DrawSprite(float x, float y, olc::Sprite *sprite, float scalex=1, float scaley=1, uint8_t flip=olc::Sprite::NONE)</div></div>
+<div class="ttc" id="aclassolc_1_1_pixel_game_engine_html_ae4a3d1aaa40761986389966ab927ef32"><div class="ttname"><a href="classolc_1_1_pixel_game_engine.html#ae4a3d1aaa40761986389966ab927ef32">olc::PixelGameEngine::SetPixelMode</a></div><div class="ttdeci">void SetPixelMode(Pixel::Mode m)</div></div>
+<div class="ttc" id="aclassolc_1_1_pixel_game_engine_html_a131877968123c843374f079814503d22"><div class="ttname"><a href="classolc_1_1_pixel_game_engine.html#a131877968123c843374f079814503d22">olc::PixelGameEngine::DrawLine</a></div><div class="ttdeci">void DrawLine(int32_t x1, int32_t y1, int32_t x2, int32_t y2, Pixel p=olc::WHITE, uint32_t pattern=0xFFFFFFFF)</div></div>
+<div class="ttc" id="aclassolc_1_1_pixel_game_engine_html_aad3107bbad34e5792a9a35629e1fdbd0"><div class="ttname"><a href="classolc_1_1_pixel_game_engine.html#aad3107bbad34e5792a9a35629e1fdbd0">olc::PixelGameEngine::DrawPartialRotatedDecal</a></div><div class="ttdeci">void DrawPartialRotatedDecal(const olc::vf2d &amp;pos, olc::Decal *decal, const float fAngle, const olc::vf2d &amp;center, const olc::vf2d &amp;source_pos, const olc::vf2d &amp;source_size, const olc::vf2d &amp;scale={ 1.0f, 1.0f }, const olc::Pixel &amp;tint=olc::WHITE)</div></div>
+<div class="ttc" id="aclassolc_1_1_transformed_view_html_aa7edb61f256624bad3e5d5847f0eef88"><div class="ttname"><a href="classolc_1_1_transformed_view.html#aa7edb61f256624bad3e5d5847f0eef88">olc::TransformedView::DrawCircle</a></div><div class="ttdeci">void DrawCircle(const olc::vf2d &amp;pos, float radius, olc::Pixel p=olc::WHITE, uint8_t mask=0xFF)</div></div>
+<div class="ttc" id="aclassolc_1_1_transformed_view_html_a615fda4662913d6a1fc2764025c28efc"><div class="ttname"><a href="classolc_1_1_transformed_view.html#a615fda4662913d6a1fc2764025c28efc">olc::TransformedView::DrawWarpedDecal</a></div><div class="ttdeci">void DrawWarpedDecal(olc::Decal *decal, const std::array&lt; olc::vf2d, 4 &gt; &amp;pos, const olc::Pixel &amp;tint=olc::WHITE)</div></div>
+<div class="ttc" id="aclassolc_1_1_transformed_view_html"><div class="ttname"><a href="classolc_1_1_transformed_view.html">olc::TransformedView</a></div><div class="ttdef"><b>Definition:</b> <a href="olc_p_g_e_x___transformed_view_8h_source.html#l00079">olcPGEX_TransformedView.h:80</a></div></div>
+<div class="ttc" id="aclassolc_1_1_pixel_game_engine_html_a11d9ed8762b81e0bd6bbe4349255b1e8"><div class="ttname"><a href="classolc_1_1_pixel_game_engine.html#a11d9ed8762b81e0bd6bbe4349255b1e8">olc::PixelGameEngine::GradientFillRectDecal</a></div><div class="ttdeci">void GradientFillRectDecal(const olc::vf2d &amp;pos, const olc::vf2d &amp;size, const olc::Pixel colTL, const olc::Pixel colBL, const olc::Pixel colBR, const olc::Pixel colTR)</div></div>
+<div class="ttc" id="aclassolc_1_1_pixel_game_engine_html_a40a7754338ea7b388ffa2383958d1f0b"><div class="ttname"><a href="classolc_1_1_pixel_game_engine.html#a40a7754338ea7b388ffa2383958d1f0b">olc::PixelGameEngine::DrawPolygonDecal</a></div><div class="ttdeci">void DrawPolygonDecal(olc::Decal *decal, const std::vector&lt; olc::vf2d &gt; &amp;pos, const std::vector&lt; olc::vf2d &gt; &amp;uv, const olc::Pixel tint=olc::WHITE)</div></div>
+<div class="ttc" id="aclassolc_1_1_transformed_view_html_aecadbbdf84343ec0a2f0e2e8c9017f0e"><div class="ttname"><a href="classolc_1_1_transformed_view.html#aecadbbdf84343ec0a2f0e2e8c9017f0e">olc::TransformedView::IsRectVisible</a></div><div class="ttdeci">virtual bool IsRectVisible(const olc::vf2d &amp;vPos, const olc::vf2d &amp;vSize) const</div></div>
+<div class="ttc" id="anamespaceolc_html_ae3de4726bf87f2d74693e62d76816db1"><div class="ttname"><a href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a></div><div class="ttdeci">static const Pixel WHITE(255, 255, 255)</div></div>
+<div class="ttc" id="aclassolc_1_1_tile_transformed_view_html_afd338a68b965309beeefa3f239a0680b"><div class="ttname"><a href="classolc_1_1_tile_transformed_view.html#afd338a68b965309beeefa3f239a0680b">olc::TileTransformedView::GetTileOffset</a></div><div class="ttdeci">const olc::vi2d GetTileOffset() const</div></div>
+<div class="ttc" id="aclassolc_1_1_transformed_view_html_abc3071fe6fa5f9ca4c5fe227a335df54"><div class="ttname"><a href="classolc_1_1_transformed_view.html#abc3071fe6fa5f9ca4c5fe227a335df54">olc::TransformedView::FillRect</a></div><div class="ttdeci">void FillRect(const olc::vf2d &amp;pos, const olc::vf2d &amp;size, olc::Pixel p=olc::WHITE)</div></div>
+<div class="ttc" id="aclassolc_1_1_transformed_view_html_a0555577738d2edacb8b8e701d90804d7"><div class="ttname"><a href="classolc_1_1_transformed_view.html#a0555577738d2edacb8b8e701d90804d7">olc::TransformedView::DrawPolygonDecal</a></div><div class="ttdeci">void DrawPolygonDecal(olc::Decal *decal, const std::vector&lt; olc::vf2d &gt; &amp;pos, const std::vector&lt; olc::vf2d &gt; &amp;uv, const olc::Pixel tint=olc::WHITE)</div></div>
+<div class="ttc" id="aclassolc_1_1_pixel_game_engine_html_a6b5e218bb4360f27a470f9e821721331"><div class="ttname"><a href="classolc_1_1_pixel_game_engine.html#a6b5e218bb4360f27a470f9e821721331">olc::PixelGameEngine::FillRect</a></div><div class="ttdeci">void FillRect(int32_t x, int32_t y, int32_t w, int32_t h, Pixel p=olc::WHITE)</div></div>
+<div class="ttc" id="aclassolc_1_1_transformed_view_html_a2564b30474cab1de208a9b220ddbc181"><div class="ttname"><a href="classolc_1_1_transformed_view.html#a2564b30474cab1de208a9b220ddbc181">olc::TransformedView::DrawLine</a></div><div class="ttdeci">void DrawLine(float x1, float y1, float x2, float y2, olc::Pixel p=olc::WHITE, uint32_t pattern=0xFFFFFFFF)</div></div>
+<div class="ttc" id="aclassolc_1_1_transformed_view_html_a4f6ba5d2c58b720677f4287743713f65"><div class="ttname"><a href="classolc_1_1_transformed_view.html#a4f6ba5d2c58b720677f4287743713f65">olc::TransformedView::GetWorldScale</a></div><div class="ttdeci">const olc::vf2d &amp; GetWorldScale() const</div></div>
+<div class="ttc" id="astructolc_1_1_pixel_html"><div class="ttname"><a href="structolc_1_1_pixel.html">olc::Pixel</a></div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00502">olcPixelGameEngine.h:503</a></div></div>
+<div class="ttc" id="aclassolc_1_1_transformed_view_html_a89fd4d642cf37d1e6f1674b870b142d8"><div class="ttname"><a href="classolc_1_1_transformed_view.html#a89fd4d642cf37d1e6f1674b870b142d8">olc::TransformedView::SetZoom</a></div><div class="ttdeci">void SetZoom(const float fZoom, const olc::vi2d &amp;vPos)</div></div>
+<div class="ttc" id="aclassolc_1_1_transformed_view_html_ac133c5f498e18dc4bcf6a087c7f8b356"><div class="ttname"><a href="classolc_1_1_transformed_view.html#ac133c5f498e18dc4bcf6a087c7f8b356">olc::TransformedView::DrawExplicitDecal</a></div><div class="ttdeci">void DrawExplicitDecal(olc::Decal *decal, const olc::vf2d *pos, const olc::vf2d *uv, const olc::Pixel *col, uint32_t elements=4)</div></div>
+<div class="ttc" id="aclassolc_1_1_sprite_html"><div class="ttname"><a href="classolc_1_1_sprite.html">olc::Sprite</a></div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00696">olcPixelGameEngine.h:697</a></div></div>
+<div class="ttc" id="aclassolc_1_1_transformed_view_html_a154b34bc81f6e0c67579d2d2ee40b2d1"><div class="ttname"><a href="classolc_1_1_transformed_view.html#a154b34bc81f6e0c67579d2d2ee40b2d1">olc::TransformedView::MoveWorldOffset</a></div><div class="ttdeci">void MoveWorldOffset(const olc::vf2d &amp;vDeltaOffset)</div></div>
+<div class="ttc" id="aclassolc_1_1_pixel_game_engine_html_abab955edc6d1ec6023a7806509582f52"><div class="ttname"><a href="classolc_1_1_pixel_game_engine.html#abab955edc6d1ec6023a7806509582f52">olc::PixelGameEngine::GetFontSprite</a></div><div class="ttdeci">olc::Sprite * GetFontSprite()</div></div>
+<div class="ttc" id="aclassolc_1_1_pixel_game_engine_html_a8bae37cf84b215e9e0416f058241aeba"><div class="ttname"><a href="classolc_1_1_pixel_game_engine.html#a8bae37cf84b215e9e0416f058241aeba">olc::PixelGameEngine::DrawPartialDecal</a></div><div class="ttdeci">void DrawPartialDecal(const olc::vf2d &amp;pos, olc::Decal *decal, const olc::vf2d &amp;source_pos, const olc::vf2d &amp;source_size, const olc::vf2d &amp;scale={ 1.0f, 1.0f }, const olc::Pixel &amp;tint=olc::WHITE)</div></div>
+<div class="ttc" id="aclassolc_1_1_pixel_game_engine_html_a689d1828a93292702070b97fb14f5644"><div class="ttname"><a href="classolc_1_1_pixel_game_engine.html#a689d1828a93292702070b97fb14f5644">olc::PixelGameEngine::DrawStringDecal</a></div><div class="ttdeci">void DrawStringDecal(const olc::vf2d &amp;pos, const std::string &amp;sText, const Pixel col=olc::WHITE, const olc::vf2d &amp;scale={ 1.0f, 1.0f })</div></div>
+<div class="ttc" id="aclassolc_1_1_sprite_html_a902192f81ab42420921992a7288aab48"><div class="ttname"><a href="classolc_1_1_sprite.html#a902192f81ab42420921992a7288aab48">olc::Sprite::Sample</a></div><div class="ttdeci">Pixel Sample(float x, float y) const</div></div>
+<div class="ttc" id="aclassolc_1_1_tile_transformed_view_html"><div class="ttname"><a href="classolc_1_1_tile_transformed_view.html">olc::TileTransformedView</a></div><div class="ttdef"><b>Definition:</b> <a href="olc_p_g_e_x___transformed_view_8h_source.html#l00182">olcPGEX_TransformedView.h:183</a></div></div>
+<div class="ttc" id="aclassolc_1_1_tile_transformed_view_html_a1a963a55248ff021b76ecc8e92a555e6"><div class="ttname"><a href="classolc_1_1_tile_transformed_view.html#a1a963a55248ff021b76ecc8e92a555e6">olc::TileTransformedView::GetTileUnderScreenPos</a></div><div class="ttdeci">olc::vi2d GetTileUnderScreenPos(const olc::vi2d &amp;vPos) const</div></div>
+<div class="ttc" id="aclassolc_1_1_transformed_view_html_a0d11f6c9ddf0cda25a7b6a79c39c61d6"><div class="ttname"><a href="classolc_1_1_transformed_view.html#a0d11f6c9ddf0cda25a7b6a79c39c61d6">olc::TransformedView::DrawRotatedDecal</a></div><div class="ttdeci">void DrawRotatedDecal(const olc::vf2d &amp;pos, olc::Decal *decal, const float fAngle, const olc::vf2d &amp;center={ 0.0f, 0.0f }, const olc::vf2d &amp;scale={ 1.0f, 1.0f }, const olc::Pixel &amp;tint=olc::WHITE)</div></div>
+<div class="ttc" id="aclassolc_1_1_transformed_view_html_a8d8559f74de40982e41f9cab0577b3b9"><div class="ttname"><a href="classolc_1_1_transformed_view.html#a8d8559f74de40982e41f9cab0577b3b9">olc::TransformedView::FillCircle</a></div><div class="ttdeci">void FillCircle(const olc::vf2d &amp;pos, float radius, olc::Pixel p=olc::WHITE)</div></div>
+<div class="ttc" id="aclassolc_1_1_transformed_view_html_a5cba545151923f38fd5d87b2c130a894"><div class="ttname"><a href="classolc_1_1_transformed_view.html#a5cba545151923f38fd5d87b2c130a894">olc::TransformedView::FillTriangle</a></div><div class="ttdeci">void FillTriangle(float x1, float y1, float x2, float y2, float x3, float y3, olc::Pixel p=olc::WHITE)</div></div>
+<div class="ttc" id="aclassolc_1_1_pixel_game_engine_html_a2ce3e34fd633acdc22b8dc2c8d25f86c"><div class="ttname"><a href="classolc_1_1_pixel_game_engine.html#a2ce3e34fd633acdc22b8dc2c8d25f86c">olc::PixelGameEngine::DrawCircle</a></div><div class="ttdeci">void DrawCircle(int32_t x, int32_t y, int32_t radius, Pixel p=olc::WHITE, uint8_t mask=0xFF)</div></div>
+<div class="ttc" id="aclassolc_1_1_pixel_game_engine_html_a220f523e520e317f5656c4d3df777163"><div class="ttname"><a href="classolc_1_1_pixel_game_engine.html#a220f523e520e317f5656c4d3df777163">olc::PixelGameEngine::DrawRect</a></div><div class="ttdeci">void DrawRect(int32_t x, int32_t y, int32_t w, int32_t h, Pixel p=olc::WHITE)</div></div>
+<div class="ttc" id="aclassolc_1_1_pixel_game_engine_html_a95ab046b4b0843565bddd0e009a25569"><div class="ttname"><a href="classolc_1_1_pixel_game_engine.html#a95ab046b4b0843565bddd0e009a25569">olc::PixelGameEngine::Draw</a></div><div class="ttdeci">virtual bool Draw(int32_t x, int32_t y, Pixel p=olc::WHITE)</div></div>
+<div class="ttc" id="aclassolc_1_1_tile_transformed_view_html_ace1a6e5c3df96cd43582e02ca4b94dac"><div class="ttname"><a href="classolc_1_1_tile_transformed_view.html#ace1a6e5c3df96cd43582e02ca4b94dac">olc::TileTransformedView::SetRangeX</a></div><div class="ttdeci">void SetRangeX(const bool bRanged, const int32_t nMin=0, const int32_t nMax=0)</div></div>
+<div class="ttc" id="aclassolc_1_1_decal_html"><div class="ttname"><a href="classolc_1_1_decal.html">olc::Decal</a></div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00736">olcPixelGameEngine.h:737</a></div></div>
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/olc_pixel_game_engine_8h.html b/doxy/html/olc_pixel_game_engine_8h.html
new file mode 100644
index 0000000000000000000000000000000000000000..6e01c3078573e4ff34f70c7e179099dbc38ffa24
--- /dev/null
+++ b/doxy/html/olc_pixel_game_engine_8h.html
@@ -0,0 +1,504 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: C:/Users/kosmx/Documents/GitHub/2d-game/olcPixelGameEngine.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#nested-classes">Classes</a> &#124;
+<a href="#namespaces">Namespaces</a> &#124;
+<a href="#define-members">Macros</a> &#124;
+<a href="#typedef-members">Typedefs</a> &#124;
+<a href="#enum-members">Enumerations</a> &#124;
+<a href="#func-members">Functions</a> &#124;
+<a href="#var-members">Variables</a>  </div>
+  <div class="headertitle">
+<div class="title">C:/Users/kosmx/Documents/GitHub/2d-game/olcPixelGameEngine.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &lt;cmath&gt;</code><br />
+<code>#include &lt;cstdint&gt;</code><br />
+<code>#include &lt;string&gt;</code><br />
+<code>#include &lt;iostream&gt;</code><br />
+<code>#include &lt;streambuf&gt;</code><br />
+<code>#include &lt;sstream&gt;</code><br />
+<code>#include &lt;chrono&gt;</code><br />
+<code>#include &lt;vector&gt;</code><br />
+<code>#include &lt;list&gt;</code><br />
+<code>#include &lt;thread&gt;</code><br />
+<code>#include &lt;atomic&gt;</code><br />
+<code>#include &lt;fstream&gt;</code><br />
+<code>#include &lt;map&gt;</code><br />
+<code>#include &lt;functional&gt;</code><br />
+<code>#include &lt;algorithm&gt;</code><br />
+<code>#include &lt;array&gt;</code><br />
+<code>#include &lt;cstring&gt;</code><br />
+<code>#include &lt;experimental/filesystem&gt;</code><br />
+</div>
+<p><a href="olc_pixel_game_engine_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structolc_1_1_h_w_button.html">olc::HWButton</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structolc_1_1v2d__generic.html">olc::v2d_generic&lt; T &gt;</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structolc_1_1_resource_buffer.html">olc::ResourceBuffer</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_resource_pack.html">olc::ResourcePack</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_image_loader.html">olc::ImageLoader</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_sprite.html">olc::Sprite</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_decal.html">olc::Decal</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_renderable.html">olc::Renderable</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structolc_1_1_decal_instance.html">olc::DecalInstance</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structolc_1_1_layer_desc.html">olc::LayerDesc</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_renderer.html">olc::Renderer</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_platform.html">olc::Platform</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classolc_1_1_p_g_e_x.html">olc::PGEX</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
+Namespaces</h2></td></tr>
+<tr class="memitem:namespaceolc"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceolc.html">olc</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
+Macros</h2></td></tr>
+<tr class="memitem:a6301d810e4f45704594786997b2261ea"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="olc_pixel_game_engine_8h.html#a6301d810e4f45704594786997b2261ea">PGE_VER</a>&#160;&#160;&#160;215</td></tr>
+<tr class="separator:a6301d810e4f45704594786997b2261ea"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7f7123ffe9352ede10ecc711ae8901d3"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="olc_pixel_game_engine_8h.html#a7f7123ffe9352ede10ecc711ae8901d3">USE_EXPERIMENTAL_FS</a></td></tr>
+<tr class="separator:a7f7123ffe9352ede10ecc711ae8901d3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aab6af62131aad81d17d3b4afd9db334f"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="olc_pixel_game_engine_8h.html#aab6af62131aad81d17d3b4afd9db334f">_SILENCE_EXPERIMENTAL_FILESYSTEM_DEPRECATION_WARNING</a></td></tr>
+<tr class="separator:aab6af62131aad81d17d3b4afd9db334f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac02283d1990a8623a332f7f7f2230a1f"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="olc_pixel_game_engine_8h.html#ac02283d1990a8623a332f7f7f2230a1f">olcT</a>(s)&#160;&#160;&#160;s</td></tr>
+<tr class="separator:ac02283d1990a8623a332f7f7f2230a1f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a86d500a34c624c2cae56bc25a31b12f3"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="olc_pixel_game_engine_8h.html#a86d500a34c624c2cae56bc25a31b12f3">UNUSED</a>(x)&#160;&#160;&#160;(void)(x)</td></tr>
+<tr class="separator:a86d500a34c624c2cae56bc25a31b12f3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3778ec518130e256bc0f11a7b8ba82bc"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="olc_pixel_game_engine_8h.html#a3778ec518130e256bc0f11a7b8ba82bc">OLC_GFX_OPENGL10</a></td></tr>
+<tr class="separator:a3778ec518130e256bc0f11a7b8ba82bc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
+Typedefs</h2></td></tr>
+<tr class="memitem:a3c42697361e8a28424bcf8415aba3564"><td class="memItemLeft" align="right" valign="top">typedef v2d_generic&lt; int32_t &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">olc::vi2d</a></td></tr>
+<tr class="separator:a3c42697361e8a28424bcf8415aba3564"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac9f9fa9267428312fd81237a4cc5c8e5"><td class="memItemLeft" align="right" valign="top">typedef v2d_generic&lt; uint32_t &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceolc.html#ac9f9fa9267428312fd81237a4cc5c8e5">olc::vu2d</a></td></tr>
+<tr class="separator:ac9f9fa9267428312fd81237a4cc5c8e5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:adb87819740ea9625f84c821fffb16429"><td class="memItemLeft" align="right" valign="top">typedef v2d_generic&lt; float &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a></td></tr>
+<tr class="separator:adb87819740ea9625f84c821fffb16429"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a51aaa7b75138a3323048a77457735d33"><td class="memItemLeft" align="right" valign="top">typedef v2d_generic&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceolc.html#a51aaa7b75138a3323048a77457735d33">olc::vd2d</a></td></tr>
+<tr class="separator:a51aaa7b75138a3323048a77457735d33"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
+Enumerations</h2></td></tr>
+<tr class="memitem:a3d40e9b1c005602550230690b55ae87b"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87b">olc::rcode</a> { <a class="el" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87baadc8ac6e9769db5bb290fbf5f8284dbf">olc::FAIL</a> = 0, 
+<a class="el" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87ba0178b5f8abe39121e6f14d3c6c093a82">olc::OK</a> = 1, 
+<a class="el" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87babfe0b9ad99c942b01b1ee61404f559b5">olc::NO_FILE</a> = -1
+ }</td></tr>
+<tr class="separator:a3d40e9b1c005602550230690b55ae87b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa26a067cf0db83f0b1dd587036a64be7"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7">olc::Key</a> { <br />
+&#160;&#160;<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a569010ded143bbdfd1b2dc8e82327b45">olc::NONE</a>, 
+<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a3e1af6612f2964145f438bb63073098d">olc::A</a>, 
+<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a8baf1c6fa76f36bae92c12df88f4c84d">olc::B</a>, 
+<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7aaa5fe91e0948a39a142504c1f9067549">olc::C</a>, 
+<br />
+&#160;&#160;<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a7323455add036f066f8b23546f0c37bb">olc::D</a>, 
+<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ad29058aa6514f4f9dcdefdba93adc8ec">olc::E</a>, 
+<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a614698cb99af6a9effa5d7ce88b2c674">olc::F</a>, 
+<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a1a7a9ef9ded3ee4bb7b7e4fbc69ae4b8">olc::G</a>, 
+<br />
+&#160;&#160;<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a224c0773e09bdb7fb13683fbb4eeee1a">olc::H</a>, 
+<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ac242ddce5db0d462674ead1db3956a19">olc::I</a>, 
+<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a476769e330b87f2fb75aaa684c2f6373">olc::J</a>, 
+<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a136309f07b14d70a8561a69ca563bab7">olc::K</a>, 
+<br />
+&#160;&#160;<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a4d809048542b770e810d48919c8f8500">olc::L</a>, 
+<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7afda4a6ac36e1870cd31522ac4e40a113">olc::M</a>, 
+<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ab9b5b3e2b7e4f47de4a8d84e03cd5911">olc::N</a>, 
+<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a7f95c3a8701b46a2cca143078d7e3aea">olc::O</a>, 
+<br />
+&#160;&#160;<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a2af805290f6ef4b2de028b868debe170">olc::P</a>, 
+<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a6d49ec75b05a97e8714ac8c244ad29a8">olc::Q</a>, 
+<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a7417555746b2b1026b8ba65912817111">olc::R</a>, 
+<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a050dfda2928d980787eeebcaaa4e6fa7">olc::S</a>, 
+<br />
+&#160;&#160;<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0">olc::T</a>, 
+<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a62c2493e1585db2af15cb70ac979fb09">olc::U</a>, 
+<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a170eaa7913d25c0ff02712bd93d7bf81">olc::V</a>, 
+<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ac1ae605c94e2d813c718148311c101d1">olc::W</a>, 
+<br />
+&#160;&#160;<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a259dcb71eab0ee6c477f792543f43ec5">olc::X</a>, 
+<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a6207f4e5a37e546fa3881817046587b9">olc::Y</a>, 
+<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a7c408b7a6694f74ac270013753b13aaa">olc::Z</a>, 
+<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a2dd03c94eccd6d1259d4b2b51b7f85a7">olc::K0</a>, 
+<br />
+&#160;&#160;<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a353892e1e3473d0a6d3427dd86080506">olc::K1</a>, 
+<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ab3b331dc3158175e2c567f7ebdf9fa75">olc::K2</a>, 
+<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7aba2ad21d300fb113ff4e82665800cf75">olc::K3</a>, 
+<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7aadd3a981032ec5fc07440dd0dbd1a3b3">olc::K4</a>, 
+<br />
+&#160;&#160;<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a353906757178b0d48008b62cdca75332">olc::K5</a>, 
+<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a81afecef4b483614604bfc5341d8a2d5">olc::K6</a>, 
+<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a89291a8afb7ac7b481090dc97f643263">olc::K7</a>, 
+<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a636f4e49257a6476ad0aab590318672f">olc::K8</a>, 
+<br />
+&#160;&#160;<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a949dddf48734610228c20566a33912bc">olc::K9</a>, 
+<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a17a119da4c7fd21cd061972ac8f8029a">olc::F1</a>, 
+<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a207c1404adcacfadf941ffc681485026">olc::F2</a>, 
+<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a573a484680114e221c1a3ecd8307d61a">olc::F3</a>, 
+<br />
+&#160;&#160;<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a3c808be2b8b226138090bb3884bdc52b">olc::F4</a>, 
+<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ab9dd7de33e89c10afa7947bc5ff6fdea">olc::F5</a>, 
+<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a12e4309f479cd3e34476ef3be7986847">olc::F6</a>, 
+<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ac955ad4fdd41f4d3600b29da016fdf36">olc::F7</a>, 
+<br />
+&#160;&#160;<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ab9ff66b449c18ecdb5b83a2e055e393b">olc::F8</a>, 
+<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a2f2949bdd6d44b3c918531ebc30d8186">olc::F9</a>, 
+<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7abe90f6618beb39117690b93a5c9d8ccb">olc::F10</a>, 
+<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7aba366840d455651d4cedc7f7ee4c770b">olc::F11</a>, 
+<br />
+&#160;&#160;<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a9bc869632cc0095b7d8e456efd571969">olc::F12</a>, 
+<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a2b35f0b03e615b828187a990935344c4">olc::UP</a>, 
+<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a506f2ec576fcd3a8fabd37461bba83f8">olc::DOWN</a>, 
+<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a4da01be8126ba4113717cc6385ad22d2">olc::LEFT</a>, 
+<br />
+&#160;&#160;<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a58e7b18972e446a03ce5ce915bc2d34d">olc::RIGHT</a>, 
+<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a925d9a708542cd050a0b4f87bd7ba297">olc::SPACE</a>, 
+<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7aef93738bc8d89f07932dd1a603b021bd">olc::TAB</a>, 
+<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a4cd994e0e2285e9b52e129f74c84aa0b">olc::SHIFT</a>, 
+<br />
+&#160;&#160;<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ae7e6e69075c36b0e44309aae888b86dc">olc::CTRL</a>, 
+<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a691b8388214af88a7794c43d31fbe16a">olc::INS</a>, 
+<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a5a979509d792ab38404b7a2aca12c981">olc::DEL</a>, 
+<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a29419f86c551b623c828f9530f301389">olc::HOME</a>, 
+<br />
+&#160;&#160;<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a53394a407c13bf8192b2946607d27a0f">olc::END</a>, 
+<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a0bab26868b97eab537e7cad879d4b9a3">olc::PGUP</a>, 
+<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7aae334e3943922c2b16842afc5306a1e9">olc::PGDN</a>, 
+<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a390af039d8a8c4ab71787f001f810521">olc::BACK</a>, 
+<br />
+&#160;&#160;<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ac58fbe549b8c1a668c42a17d9e572b0f">olc::ESCAPE</a>, 
+<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a4f04a0bac23ee4f7b875d0328f29df27">olc::RETURN</a>, 
+<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a31321cae06dfe0989acbbe94c5272b33">olc::ENTER</a>, 
+<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a0bc227b9b4a43118d7500e8195806d74">olc::PAUSE</a>, 
+<br />
+&#160;&#160;<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a44cf52f457ad06d45cd947c72c291ccc">olc::SCROLL</a>, 
+<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a16054c3b1419b9679d95ac70ef262666">olc::NP0</a>, 
+<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a96c49dba90b7ecdfcf88e18c2842a964">olc::NP1</a>, 
+<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a7ca6517890a3566dbf758618f9c7690f">olc::NP2</a>, 
+<br />
+&#160;&#160;<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7aab84341adb43a72b48030189f9919360">olc::NP3</a>, 
+<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a443551e4895cf1d2be984eba0bd7098e">olc::NP4</a>, 
+<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a0ba7e1a6dbc9d1291a40172a09bb49a4">olc::NP5</a>, 
+<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ad6aae0ca10843b8046ee0186af4e42f9">olc::NP6</a>, 
+<br />
+&#160;&#160;<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7afee25adbffa6e8fc092d52193195182f">olc::NP7</a>, 
+<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a468bb1704a74fc6e42d28e7bee8ecb51">olc::NP8</a>, 
+<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a53987c7c18a4a4479c4e1ff7f65c414e">olc::NP9</a>, 
+<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ae2ce826d1d0de6429f9f28a19d11edfb">olc::NP_MUL</a>, 
+<br />
+&#160;&#160;<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7aee5afd77eb82eb3111195ee300ff3714">olc::NP_DIV</a>, 
+<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7af15830fd3562b144e15a9d8abeb6c118">olc::NP_ADD</a>, 
+<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7aade223a1643f8d607eb44fff1bbaae8e">olc::NP_SUB</a>, 
+<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a2c21f93f355bf0a6baa7e205acd86b50">olc::NP_DECIMAL</a>, 
+<br />
+&#160;&#160;<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a1adffcecf8c735b404ac6eedf220ae5a">olc::PERIOD</a>, 
+<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7aa82c0ef0b75db6208407e90f6f77f002">olc::EQUALS</a>, 
+<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ae2fab0c220f54cd28729c9340951ecb4">olc::COMMA</a>, 
+<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a4b3a1d83a513de0e2c3c8ba2a8a5fd2d">olc::MINUS</a>, 
+<br />
+&#160;&#160;<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a3a044efaf7d74df21e84a29063006eae">olc::OEM_1</a>, 
+<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ad29833dd46d756ecf0e9d477d0845450">olc::OEM_2</a>, 
+<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7abb25924adf005b39efaef185f332a3ad">olc::OEM_3</a>, 
+<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7aa09e2508e2f2fd372d3e37ebdfce6814">olc::OEM_4</a>, 
+<br />
+&#160;&#160;<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ad7e69e28cedaf91718aa4801d5a3bdb7">olc::OEM_5</a>, 
+<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7af2cec59ecc924be0b636e5b767abf29f">olc::OEM_6</a>, 
+<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a3dada7cdf09fb367c10c650e9bce7bfa">olc::OEM_7</a>, 
+<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ab719317cfd8ac665e8cc2f420f74b46a">olc::OEM_8</a>, 
+<br />
+&#160;&#160;<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a523c88e17275650861203e32067dde01">olc::CAPS_LOCK</a>, 
+<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a35430b793d6fae00ed8b060cb0accf32">olc::ENUM_END</a>
+<br />
+ }</td></tr>
+<tr class="separator:aa26a067cf0db83f0b1dd587036a64be7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aeda642f63378f868193c28e8613138ca"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceolc.html#aeda642f63378f868193c28e8613138ca">olc::DecalMode</a> { <br />
+&#160;&#160;<a class="el" href="namespaceolc.html#aeda642f63378f868193c28e8613138caa1e23852820b9154316c7c06e2b7ba051">olc::DecalMode::NORMAL</a>, 
+<a class="el" href="namespaceolc.html#aeda642f63378f868193c28e8613138caa8d8c2c7c04ebe2b70bca10a3060ca491">olc::DecalMode::ADDITIVE</a>, 
+<a class="el" href="namespaceolc.html#aeda642f63378f868193c28e8613138caa418ef46700a2836c0d6218e2b46bf564">olc::DecalMode::MULTIPLICATIVE</a>, 
+<a class="el" href="namespaceolc.html#aeda642f63378f868193c28e8613138caa301b25ea9a653329b5d5d727f92514c4">olc::DecalMode::STENCIL</a>, 
+<br />
+&#160;&#160;<a class="el" href="namespaceolc.html#aeda642f63378f868193c28e8613138caab892134232b911680f88a64a24883f7d">olc::DecalMode::ILLUMINATE</a>, 
+<a class="el" href="namespaceolc.html#aeda642f63378f868193c28e8613138caa43ea8c7cefb63ec314b4df5628cba577">olc::DecalMode::WIREFRAME</a>
+<br />
+ }</td></tr>
+<tr class="separator:aeda642f63378f868193c28e8613138ca"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a06c9f23f2e370e7afe71788427a820fd"><td class="memItemLeft" align="right" valign="top">Pixel&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceolc.html#a06c9f23f2e370e7afe71788427a820fd">olc::PixelF</a> (float red, float green, float blue, float alpha=1.0f)</td></tr>
+<tr class="separator:a06c9f23f2e370e7afe71788427a820fd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2069e5cf447f5dd311c680c9463f9c42"><td class="memItemLeft" align="right" valign="top">Pixel&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceolc.html#a2069e5cf447f5dd311c680c9463f9c42">olc::PixelLerp</a> (const <a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a> &amp;p1, const <a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a> &amp;p2, float t)</td></tr>
+<tr class="separator:a2069e5cf447f5dd311c680c9463f9c42"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7208a6ce62e94eca5b0ba80f7c2f5e30"><td class="memItemLeft" align="right" valign="top">static const Pixel&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceolc.html#a7208a6ce62e94eca5b0ba80f7c2f5e30">olc::DARK_GREY</a> (128, 128, 128)</td></tr>
+<tr class="separator:a7208a6ce62e94eca5b0ba80f7c2f5e30"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a93de271d8b3cbd5aec73a085e6a6ec7a"><td class="memItemLeft" align="right" valign="top">static const Pixel&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceolc.html#a93de271d8b3cbd5aec73a085e6a6ec7a">olc::VERY_DARK_GREY</a> (64, 64, 64)</td></tr>
+<tr class="separator:a93de271d8b3cbd5aec73a085e6a6ec7a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad4579f7eb75a257d76bb657a268f0a8d"><td class="memItemLeft" align="right" valign="top">static const Pixel&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceolc.html#ad4579f7eb75a257d76bb657a268f0a8d">olc::RED</a> (255, 0, 0)</td></tr>
+<tr class="separator:ad4579f7eb75a257d76bb657a268f0a8d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8265396ef812918ca95d2e7aa39c14cc"><td class="memItemLeft" align="right" valign="top">static const Pixel&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceolc.html#a8265396ef812918ca95d2e7aa39c14cc">olc::DARK_RED</a> (128, 0, 0)</td></tr>
+<tr class="separator:a8265396ef812918ca95d2e7aa39c14cc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a82b6404acf7ac86f237179fc5f9a859f"><td class="memItemLeft" align="right" valign="top">static const Pixel&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceolc.html#a82b6404acf7ac86f237179fc5f9a859f">olc::VERY_DARK_RED</a> (64, 0, 0)</td></tr>
+<tr class="separator:a82b6404acf7ac86f237179fc5f9a859f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6c9728f6dba8b58406bb0e10979b6ccf"><td class="memItemLeft" align="right" valign="top">static const Pixel&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceolc.html#a6c9728f6dba8b58406bb0e10979b6ccf">olc::YELLOW</a> (255, 255, 0)</td></tr>
+<tr class="separator:a6c9728f6dba8b58406bb0e10979b6ccf"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a379f9d3a40edb1700299c031cd0b6a08"><td class="memItemLeft" align="right" valign="top">static const Pixel&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceolc.html#a379f9d3a40edb1700299c031cd0b6a08">olc::DARK_YELLOW</a> (128, 128, 0)</td></tr>
+<tr class="separator:a379f9d3a40edb1700299c031cd0b6a08"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a131df56f1dd5cb0906cd02f9df49b17d"><td class="memItemLeft" align="right" valign="top">static const Pixel&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceolc.html#a131df56f1dd5cb0906cd02f9df49b17d">olc::VERY_DARK_YELLOW</a> (64, 64, 0)</td></tr>
+<tr class="separator:a131df56f1dd5cb0906cd02f9df49b17d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a32b98884f548bf731eab3225557ebe8c"><td class="memItemLeft" align="right" valign="top">static const Pixel&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceolc.html#a32b98884f548bf731eab3225557ebe8c">olc::GREEN</a> (0, 255, 0)</td></tr>
+<tr class="separator:a32b98884f548bf731eab3225557ebe8c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac192218acb2f30c4c3748485dd5e4ba0"><td class="memItemLeft" align="right" valign="top">static const Pixel&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceolc.html#ac192218acb2f30c4c3748485dd5e4ba0">olc::DARK_GREEN</a> (0, 128, 0)</td></tr>
+<tr class="separator:ac192218acb2f30c4c3748485dd5e4ba0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a29c85b49a3c9cbd0b251e80e3bc57140"><td class="memItemLeft" align="right" valign="top">static const Pixel&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceolc.html#a29c85b49a3c9cbd0b251e80e3bc57140">olc::VERY_DARK_GREEN</a> (0, 64, 0)</td></tr>
+<tr class="separator:a29c85b49a3c9cbd0b251e80e3bc57140"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a43ffa41e9a4a260b86da82b823e6a252"><td class="memItemLeft" align="right" valign="top">static const Pixel&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceolc.html#a43ffa41e9a4a260b86da82b823e6a252">olc::CYAN</a> (0, 255, 255)</td></tr>
+<tr class="separator:a43ffa41e9a4a260b86da82b823e6a252"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa0824f5fdd85c58712495a7bc0de191e"><td class="memItemLeft" align="right" valign="top">static const Pixel&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceolc.html#aa0824f5fdd85c58712495a7bc0de191e">olc::DARK_CYAN</a> (0, 128, 128)</td></tr>
+<tr class="separator:aa0824f5fdd85c58712495a7bc0de191e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aee6a06b446368ac58033b5ae4f4c6ca2"><td class="memItemLeft" align="right" valign="top">static const Pixel&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceolc.html#aee6a06b446368ac58033b5ae4f4c6ca2">olc::VERY_DARK_CYAN</a> (0, 64, 64)</td></tr>
+<tr class="separator:aee6a06b446368ac58033b5ae4f4c6ca2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac1e1d3e39e0b78e9767142c9daeba4ee"><td class="memItemLeft" align="right" valign="top">static const Pixel&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceolc.html#ac1e1d3e39e0b78e9767142c9daeba4ee">olc::BLUE</a> (0, 0, 255)</td></tr>
+<tr class="separator:ac1e1d3e39e0b78e9767142c9daeba4ee"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac6e041f71287438da8b9145758c4fe63"><td class="memItemLeft" align="right" valign="top">static const Pixel&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceolc.html#ac6e041f71287438da8b9145758c4fe63">olc::DARK_BLUE</a> (0, 0, 128)</td></tr>
+<tr class="separator:ac6e041f71287438da8b9145758c4fe63"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a48fb6375b9a7c0a0d44feaa879e7ebb7"><td class="memItemLeft" align="right" valign="top">static const Pixel&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceolc.html#a48fb6375b9a7c0a0d44feaa879e7ebb7">olc::VERY_DARK_BLUE</a> (0, 0, 64)</td></tr>
+<tr class="separator:a48fb6375b9a7c0a0d44feaa879e7ebb7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:adc292fdc3c4d2a03e8c6bbad1853b727"><td class="memItemLeft" align="right" valign="top">static const Pixel&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceolc.html#adc292fdc3c4d2a03e8c6bbad1853b727">olc::MAGENTA</a> (255, 0, 255)</td></tr>
+<tr class="separator:adc292fdc3c4d2a03e8c6bbad1853b727"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abad91f58a178a173f76ce7d9f9aa99c4"><td class="memItemLeft" align="right" valign="top">static const Pixel&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceolc.html#abad91f58a178a173f76ce7d9f9aa99c4">olc::DARK_MAGENTA</a> (128, 0, 128)</td></tr>
+<tr class="separator:abad91f58a178a173f76ce7d9f9aa99c4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a150fed0369958dc77d3207298588bc94"><td class="memItemLeft" align="right" valign="top">static const Pixel&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceolc.html#a150fed0369958dc77d3207298588bc94">olc::VERY_DARK_MAGENTA</a> (64, 0, 64)</td></tr>
+<tr class="separator:a150fed0369958dc77d3207298588bc94"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae3de4726bf87f2d74693e62d76816db1"><td class="memItemLeft" align="right" valign="top">static const Pixel&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a> (255, 255, 255)</td></tr>
+<tr class="separator:ae3de4726bf87f2d74693e62d76816db1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a183de1c471cfd6f45980bc9c2c58ed9d"><td class="memItemLeft" align="right" valign="top">static const Pixel&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceolc.html#a183de1c471cfd6f45980bc9c2c58ed9d">olc::BLACK</a> (0, 0, 0)</td></tr>
+<tr class="separator:a183de1c471cfd6f45980bc9c2c58ed9d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac940e7f6502cbced06f26b4d13349166"><td class="memItemLeft" align="right" valign="top">static const Pixel&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceolc.html#ac940e7f6502cbced06f26b4d13349166">olc::BLANK</a> (0, 0, 0, 0)</td></tr>
+<tr class="separator:ac940e7f6502cbced06f26b4d13349166"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0cb5b54cc54cf0c92741da285010e1e5"><td class="memTemplParams" colspan="2">template&lt;class T &gt; </td></tr>
+<tr class="memitem:a0cb5b54cc54cf0c92741da285010e1e5"><td class="memTemplItemLeft" align="right" valign="top">v2d_generic&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceolc.html#a0cb5b54cc54cf0c92741da285010e1e5">olc::operator*</a> (const float &amp;lhs, const v2d_generic&lt; T &gt; &amp;rhs)</td></tr>
+<tr class="separator:a0cb5b54cc54cf0c92741da285010e1e5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9a03952e9e6c1c40c2512560ac182382"><td class="memTemplParams" colspan="2">template&lt;class T &gt; </td></tr>
+<tr class="memitem:a9a03952e9e6c1c40c2512560ac182382"><td class="memTemplItemLeft" align="right" valign="top">v2d_generic&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceolc.html#a9a03952e9e6c1c40c2512560ac182382">olc::operator*</a> (const double &amp;lhs, const v2d_generic&lt; T &gt; &amp;rhs)</td></tr>
+<tr class="separator:a9a03952e9e6c1c40c2512560ac182382"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab04d4eba2afcfda14b1045bace972a76"><td class="memTemplParams" colspan="2">template&lt;class T &gt; </td></tr>
+<tr class="memitem:ab04d4eba2afcfda14b1045bace972a76"><td class="memTemplItemLeft" align="right" valign="top">v2d_generic&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceolc.html#ab04d4eba2afcfda14b1045bace972a76">olc::operator*</a> (const int &amp;lhs, const v2d_generic&lt; T &gt; &amp;rhs)</td></tr>
+<tr class="separator:ab04d4eba2afcfda14b1045bace972a76"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6448f6127e1003cd9287161c5c4d52e0"><td class="memTemplParams" colspan="2">template&lt;class T &gt; </td></tr>
+<tr class="memitem:a6448f6127e1003cd9287161c5c4d52e0"><td class="memTemplItemLeft" align="right" valign="top">v2d_generic&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceolc.html#a6448f6127e1003cd9287161c5c4d52e0">olc::operator/</a> (const float &amp;lhs, const v2d_generic&lt; T &gt; &amp;rhs)</td></tr>
+<tr class="separator:a6448f6127e1003cd9287161c5c4d52e0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a879e763a12d6fbc6b4d3e2aac7b4c85a"><td class="memTemplParams" colspan="2">template&lt;class T &gt; </td></tr>
+<tr class="memitem:a879e763a12d6fbc6b4d3e2aac7b4c85a"><td class="memTemplItemLeft" align="right" valign="top">v2d_generic&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceolc.html#a879e763a12d6fbc6b4d3e2aac7b4c85a">olc::operator/</a> (const double &amp;lhs, const v2d_generic&lt; T &gt; &amp;rhs)</td></tr>
+<tr class="separator:a879e763a12d6fbc6b4d3e2aac7b4c85a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a302501c3eb64a99ffa93feac2cc46115"><td class="memTemplParams" colspan="2">template&lt;class T &gt; </td></tr>
+<tr class="memitem:a302501c3eb64a99ffa93feac2cc46115"><td class="memTemplItemLeft" align="right" valign="top">v2d_generic&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceolc.html#a302501c3eb64a99ffa93feac2cc46115">olc::operator/</a> (const int &amp;lhs, const v2d_generic&lt; T &gt; &amp;rhs)</td></tr>
+<tr class="separator:a302501c3eb64a99ffa93feac2cc46115"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2831a8757172243381b08adf69e91e0a"><td class="memTemplParams" colspan="2">template&lt;class T , class U &gt; </td></tr>
+<tr class="memitem:a2831a8757172243381b08adf69e91e0a"><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceolc.html#a2831a8757172243381b08adf69e91e0a">olc::operator&lt;</a> (const v2d_generic&lt; T &gt; &amp;lhs, const v2d_generic&lt; U &gt; &amp;rhs)</td></tr>
+<tr class="separator:a2831a8757172243381b08adf69e91e0a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a34519a6f9006c6c4854bbe762d490900"><td class="memTemplParams" colspan="2">template&lt;class T , class U &gt; </td></tr>
+<tr class="memitem:a34519a6f9006c6c4854bbe762d490900"><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceolc.html#a34519a6f9006c6c4854bbe762d490900">olc::operator&gt;</a> (const v2d_generic&lt; T &gt; &amp;lhs, const v2d_generic&lt; U &gt; &amp;rhs)</td></tr>
+<tr class="separator:a34519a6f9006c6c4854bbe762d490900"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a>
+Variables</h2></td></tr>
+<tr class="memitem:abf7dfc35dd1d895f33d3635831953e38"><td class="memItemLeft" align="right" valign="top">constexpr uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceolc.html#abf7dfc35dd1d895f33d3635831953e38">olc::nMouseButtons</a> = 5</td></tr>
+<tr class="separator:abf7dfc35dd1d895f33d3635831953e38"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:adede7d1156ab9d8ffdc3e9048f0f364b"><td class="memItemLeft" align="right" valign="top">constexpr uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceolc.html#adede7d1156ab9d8ffdc3e9048f0f364b">olc::nDefaultAlpha</a> = 0xFF</td></tr>
+<tr class="separator:adede7d1156ab9d8ffdc3e9048f0f364b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a10bbdc57cc3fecc7b80ba428eb7494d0"><td class="memItemLeft" align="right" valign="top">constexpr uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceolc.html#a10bbdc57cc3fecc7b80ba428eb7494d0">olc::nDefaultPixel</a> = (nDefaultAlpha &lt;&lt; 24)</td></tr>
+<tr class="separator:a10bbdc57cc3fecc7b80ba428eb7494d0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Macro Definition Documentation</h2>
+<a id="aab6af62131aad81d17d3b4afd9db334f"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aab6af62131aad81d17d3b4afd9db334f">&#9670;&nbsp;</a></span>_SILENCE_EXPERIMENTAL_FILESYSTEM_DEPRECATION_WARNING</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define _SILENCE_EXPERIMENTAL_FILESYSTEM_DEPRECATION_WARNING</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="olc_pixel_game_engine_8h_source.html#l00371">371</a> of file <a class="el" href="olc_pixel_game_engine_8h_source.html">olcPixelGameEngine.h</a>.</p>
+
+</div>
+</div>
+<a id="a3778ec518130e256bc0f11a7b8ba82bc"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a3778ec518130e256bc0f11a7b8ba82bc">&#9670;&nbsp;</a></span>OLC_GFX_OPENGL10</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define OLC_GFX_OPENGL10</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="olc_pixel_game_engine_8h_source.html#l00422">422</a> of file <a class="el" href="olc_pixel_game_engine_8h_source.html">olcPixelGameEngine.h</a>.</p>
+
+</div>
+</div>
+<a id="ac02283d1990a8623a332f7f7f2230a1f"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ac02283d1990a8623a332f7f7f2230a1f">&#9670;&nbsp;</a></span>olcT</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define olcT</td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname">s</td><td>)</td>
+          <td>&#160;&#160;&#160;s</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="olc_pixel_game_engine_8h_source.html#l00383">383</a> of file <a class="el" href="olc_pixel_game_engine_8h_source.html">olcPixelGameEngine.h</a>.</p>
+
+</div>
+</div>
+<a id="a6301d810e4f45704594786997b2261ea"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a6301d810e4f45704594786997b2261ea">&#9670;&nbsp;</a></span>PGE_VER</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define PGE_VER&#160;&#160;&#160;215</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="olc_pixel_game_engine_8h_source.html#l00350">350</a> of file <a class="el" href="olc_pixel_game_engine_8h_source.html">olcPixelGameEngine.h</a>.</p>
+
+</div>
+</div>
+<a id="a86d500a34c624c2cae56bc25a31b12f3"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a86d500a34c624c2cae56bc25a31b12f3">&#9670;&nbsp;</a></span>UNUSED</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define UNUSED</td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname">x</td><td>)</td>
+          <td>&#160;&#160;&#160;(void)(x)</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="olc_pixel_game_engine_8h_source.html#l00386">386</a> of file <a class="el" href="olc_pixel_game_engine_8h_source.html">olcPixelGameEngine.h</a>.</p>
+
+</div>
+</div>
+<a id="a7f7123ffe9352ede10ecc711ae8901d3"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a7f7123ffe9352ede10ecc711ae8901d3">&#9670;&nbsp;</a></span>USE_EXPERIMENTAL_FS</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define USE_EXPERIMENTAL_FS</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="olc_pixel_game_engine_8h_source.html#l00356">356</a> of file <a class="el" href="olc_pixel_game_engine_8h_source.html">olcPixelGameEngine.h</a>.</p>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/olc_pixel_game_engine_8h_source.html b/doxy/html/olc_pixel_game_engine_8h_source.html
new file mode 100644
index 0000000000000000000000000000000000000000..078584cc1ea6e6649fe28bfc5013a27e7aa20d8f
--- /dev/null
+++ b/doxy/html/olc_pixel_game_engine_8h_source.html
@@ -0,0 +1,6031 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: C:/Users/kosmx/Documents/GitHub/2d-game/olcPixelGameEngine.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="headertitle">
+<div class="title">C:/Users/kosmx/Documents/GitHub/2d-game/olcPixelGameEngine.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="olc_pixel_game_engine_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="preprocessor">#pragma region license_and_help</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment">/*</span></div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment">    olcPixelGameEngine.h</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"></span> </div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment">    +-------------------------------------------------------------+</span></div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment">    |           OneLoneCoder Pixel Game Engine v2.15              |</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment">    |  &quot;What do you need? Pixels... Lots of Pixels...&quot; - javidx9  |</span></div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment">    +-------------------------------------------------------------+</span></div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"></span> </div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment">    What is this?</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment">    ~~~~~~~~~~~~~</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment">    olc::PixelGameEngine is a single file, cross platform graphics and userinput</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment">    framework used for games, visualisations, algorithm exploration and learning.</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment">    It was developed by YouTuber &quot;javidx9&quot; as an assistive tool for many of his</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment">    videos. The goal of this project is to provide high speed graphics with</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment">    minimal project setup complexity, to encourage new programmers, younger people,</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment">    and anyone else that wants to make fun things.</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"></span> </div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="comment">    However, olc::PixelGameEngine is not a toy! It is a powerful and fast utility</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="comment">    capable of delivering high resolution, high speed, high quality applications</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="comment">    which behave the same way regardless of the operating system or platform.</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="comment"></span> </div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="comment">    This file provides the core utility set of the olc::PixelGameEngine, including</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="comment">    window creation, keyboard/mouse input, main game thread, timing, pixel drawing</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<span class="comment">    routines, image/sprite loading and drawing routines, and a bunch of utility</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;<span class="comment">    types to make rapid development of games/visualisations possible.</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;<span class="comment"></span> </div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;<span class="comment"></span> </div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="comment">    License (OLC-3)</span></div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;<span class="comment">    ~~~~~~~~~~~~~~~</span></div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;<span class="comment"></span> </div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;<span class="comment">    Copyright 2018 - 2021 OneLoneCoder.com</span></div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;<span class="comment"></span> </div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;<span class="comment">    Redistribution and use in source and binary forms, with or without modification,</span></div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;<span class="comment">    are permitted provided that the following conditions are met:</span></div>
+<div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;<span class="comment"></span> </div>
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;<span class="comment">    1. Redistributions or derivations of source code must retain the above copyright</span></div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;<span class="comment">    notice, this list of conditions and the following disclaimer.</span></div>
+<div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;<span class="comment"></span> </div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;<span class="comment">    2. Redistributions or derivative works in binary form must reproduce the above</span></div>
+<div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;<span class="comment">    copyright notice. This list of conditions and the following disclaimer must be</span></div>
+<div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;<span class="comment">    reproduced in the documentation and/or other materials provided with the distribution.</span></div>
+<div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;<span class="comment"></span> </div>
+<div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;<span class="comment">    3. Neither the name of the copyright holder nor the names of its contributors may</span></div>
+<div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;<span class="comment">    be used to endorse or promote products derived from this software without specific</span></div>
+<div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;<span class="comment">    prior written permission.</span></div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;<span class="comment"></span> </div>
+<div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;<span class="comment">    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS &quot;AS IS&quot; AND ANY</span></div>
+<div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;<span class="comment">    EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES</span></div>
+<div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;<span class="comment">    OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT</span></div>
+<div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;<span class="comment">    SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,</span></div>
+<div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;<span class="comment">    INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED</span></div>
+<div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;<span class="comment">    TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR</span></div>
+<div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;<span class="comment">    BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN</span></div>
+<div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;<span class="comment">    CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN</span></div>
+<div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;<span class="comment">    ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF</span></div>
+<div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;<span class="comment">    SUCH DAMAGE.</span></div>
+<div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;<span class="comment"></span> </div>
+<div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;<span class="comment">    Links</span></div>
+<div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;<span class="comment">    ~~~~~</span></div>
+<div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;<span class="comment">    YouTube:    https://www.youtube.com/javidx9</span></div>
+<div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;<span class="comment">                https://www.youtube.com/javidx9extra</span></div>
+<div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;<span class="comment">    Discord:    https://discord.gg/WhwHUMV</span></div>
+<div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;<span class="comment">    Twitter:    https://www.twitter.com/javidx9</span></div>
+<div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;<span class="comment">    Twitch:     https://www.twitch.tv/javidx9</span></div>
+<div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;<span class="comment">    GitHub:     https://www.github.com/onelonecoder</span></div>
+<div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;<span class="comment">    Homepage:   https://www.onelonecoder.com</span></div>
+<div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;<span class="comment">    Patreon:    https://www.patreon.com/javidx9</span></div>
+<div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;<span class="comment">    Community:  https://community.onelonecoder.com</span></div>
+<div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;<span class="comment"></span> </div>
+<div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;<span class="comment"></span> </div>
+<div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;<span class="comment"></span> </div>
+<div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;<span class="comment">    Compiling in Linux</span></div>
+<div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;<span class="comment">    ~~~~~~~~~~~~~~~~~~</span></div>
+<div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;<span class="comment">    You will need a modern C++ compiler, so update yours!</span></div>
+<div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;<span class="comment">    To compile use the command:</span></div>
+<div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;<span class="comment"></span> </div>
+<div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;<span class="comment">    g++ -o YourProgName YourSource.cpp -lX11 -lGL -lpthread -lpng -lstdc++fs -std=c++17</span></div>
+<div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;<span class="comment"></span> </div>
+<div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;<span class="comment">    On some Linux configurations, the frame rate is locked to the refresh</span></div>
+<div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;<span class="comment">    rate of the monitor. This engine tries to unlock it but may not be</span></div>
+<div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;<span class="comment">    able to, in which case try launching your program like this:</span></div>
+<div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;<span class="comment"></span> </div>
+<div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;<span class="comment">    vblank_mode=0 ./YourProgName</span></div>
+<div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;<span class="comment"></span> </div>
+<div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;<span class="comment"></span> </div>
+<div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;<span class="comment"></span> </div>
+<div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;<span class="comment">    Compiling in Code::Blocks on Windows</span></div>
+<div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;<span class="comment">    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~</span></div>
+<div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;<span class="comment">    Well I wont judge you, but make sure your Code::Blocks installation</span></div>
+<div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;<span class="comment">    is really up to date - you may even consider updating your C++ toolchain</span></div>
+<div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;<span class="comment">    to use MinGW32-W64.</span></div>
+<div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;<span class="comment"></span> </div>
+<div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;<span class="comment">    Guide for installing recent GCC for Windows:</span></div>
+<div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;<span class="comment">    https://www.msys2.org/</span></div>
+<div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;<span class="comment">    Guide for configuring code::blocks:</span></div>
+<div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;<span class="comment">    https://solarianprogrammer.com/2019/11/05/install-gcc-windows/</span></div>
+<div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;<span class="comment">    https://solarianprogrammer.com/2019/11/16/install-codeblocks-gcc-windows-build-c-cpp-fortran-programs/</span></div>
+<div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;<span class="comment"></span> </div>
+<div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;<span class="comment">    Add these libraries to &quot;Linker Options&quot;:</span></div>
+<div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;<span class="comment">    user32 gdi32 opengl32 gdiplus Shlwapi dwmapi stdc++fs</span></div>
+<div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;<span class="comment"></span> </div>
+<div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;<span class="comment">    Set these compiler options: -std=c++17</span></div>
+<div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;<span class="comment"></span> </div>
+<div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;<span class="comment"></span> </div>
+<div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;<span class="comment"></span> </div>
+<div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;<span class="comment">    Compiling on Mac - EXPERIMENTAL! PROBABLY HAS BUGS</span></div>
+<div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;<span class="comment">    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~</span></div>
+<div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;<span class="comment">    Yes yes, people use Macs for C++ programming! Who knew? Anyway, enough</span></div>
+<div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;<span class="comment">    arguing, thanks to Mumflr the PGE is now supported on Mac. Now I know nothing</span></div>
+<div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;<span class="comment">    about Mac, so if you need support, I suggest checking out the instructions</span></div>
+<div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;<span class="comment">    here: https://github.com/MumflrFumperdink/olcPGEMac</span></div>
+<div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;<span class="comment"></span> </div>
+<div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;<span class="comment">    clang++ -arch x86_64 -std=c++17 -mmacosx-version-min=10.15 -Wall -framework OpenGL -framework GLUT -lpng YourSource.cpp -o YourProgName</span></div>
+<div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;<span class="comment"></span> </div>
+<div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;<span class="comment"></span> </div>
+<div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;<span class="comment"></span> </div>
+<div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;<span class="comment">    Compiling with Emscripten (New &amp; Experimental)</span></div>
+<div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;<span class="comment">    ~~~~~~~~~~~~~~~~~~~~~~~~~</span></div>
+<div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;<span class="comment">    Emscripten compiler will turn your awesome C++ PixelGameEngine project into WASM!</span></div>
+<div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;<span class="comment">    This means you can run your application in teh browser, great for distributing</span></div>
+<div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;<span class="comment">    and submission in to jams and things! It&#39;s a bit new at the moment. </span></div>
+<div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;<span class="comment"></span> </div>
+<div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;<span class="comment">    em++ -std=c++17 -O2 -s ALLOW_MEMORY_GROWTH=1 -s MAX_WEBGL_VERSION=2 -s MIN_WEBGL_VERSION=2 -s USE_LIBPNG=1 ./YourSource.cpp -o pge.html</span></div>
+<div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;<span class="comment"></span> </div>
+<div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;<span class="comment"></span> </div>
+<div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;<span class="comment"></span> </div>
+<div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;<span class="comment">    Using stb_image.h</span></div>
+<div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160;<span class="comment">    ~~~~~~~~~~~~~~~~~</span></div>
+<div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;<span class="comment">    The PGE will load png images by default (with help from libpng on non-windows systems).</span></div>
+<div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;<span class="comment">    However, the excellent &quot;stb_image.h&quot; can be used instead, supporting a variety of</span></div>
+<div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;<span class="comment">    image formats, and has no library dependence - something we like at OLC studios ;)</span></div>
+<div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;<span class="comment">    To use stb_image.h, make sure it&#39;s in your code base, and simply:</span></div>
+<div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;<span class="comment"></span> </div>
+<div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;<span class="comment">    #define OLC_IMAGE_STB</span></div>
+<div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;<span class="comment"></span> </div>
+<div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;<span class="comment">    Before including the olcPixelGameEngine.h header file. stb_image.h works on many systems</span></div>
+<div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160;<span class="comment">    and can be downloaded here: https://github.com/nothings/stb/blob/master/stb_image.h</span></div>
+<div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;<span class="comment"></span> </div>
+<div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;<span class="comment"></span> </div>
+<div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;<span class="comment"></span> </div>
+<div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;<span class="comment">    Multiple cpp file projects?</span></div>
+<div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160;<span class="comment">    ~~~~~~~~~~~~~~~~~~~~~~~~~~~</span></div>
+<div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160;<span class="comment">    As a single header solution, the OLC_PGE_APPLICATION definition is used to</span></div>
+<div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160;<span class="comment">    insert the engine implementation at a project location of your choosing.</span></div>
+<div class="line"><a name="l00146"></a><span class="lineno">  146</span>&#160;<span class="comment">    The simplest way to setup multifile projects is to create a file called</span></div>
+<div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160;<span class="comment">    &quot;olcPixelGameEngine.cpp&quot; which includes the following:</span></div>
+<div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160;<span class="comment"></span> </div>
+<div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160;<span class="comment">    #define OLC_PGE_APPLICATION</span></div>
+<div class="line"><a name="l00150"></a><span class="lineno">  150</span>&#160;<span class="comment">    #include &quot;olcPixelGameEngine.h&quot;</span></div>
+<div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160;<span class="comment"></span> </div>
+<div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160;<span class="comment">    That&#39;s all it should include. You can also include PGEX includes and </span></div>
+<div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160;<span class="comment">    defines in here too. With this in place, you dont need to </span></div>
+<div class="line"><a name="l00154"></a><span class="lineno">  154</span>&#160;<span class="comment">    #define OLC_PGE_APPLICATION anywhere, and can simply include this </span></div>
+<div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160;<span class="comment">    header file as an when you need to.</span></div>
+<div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160;<span class="comment"></span> </div>
+<div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160;<span class="comment"></span> </div>
+<div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160;<span class="comment"></span> </div>
+<div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160;<span class="comment">    Ports</span></div>
+<div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160;<span class="comment">    ~~~~~</span></div>
+<div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160;<span class="comment">    olc::PixelGameEngine has been ported and tested with varying degrees of</span></div>
+<div class="line"><a name="l00162"></a><span class="lineno">  162</span>&#160;<span class="comment">    success to: WinXP, Win7, Win8, Win10, Various Linux, Raspberry Pi,</span></div>
+<div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160;<span class="comment">    Chromebook, Playstation Portable (PSP) and Nintendo Switch. If you are</span></div>
+<div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160;<span class="comment">    interested in the details of these ports, come and visit the Discord!</span></div>
+<div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160;<span class="comment"></span> </div>
+<div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160;<span class="comment"></span> </div>
+<div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160;<span class="comment"></span> </div>
+<div class="line"><a name="l00168"></a><span class="lineno">  168</span>&#160;<span class="comment">    Thanks</span></div>
+<div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160;<span class="comment">    ~~~~~~</span></div>
+<div class="line"><a name="l00170"></a><span class="lineno">  170</span>&#160;<span class="comment">    I&#39;d like to extend thanks to Ian McKay, Bispoo, Eremiell, slavka, gurkanctn, Phantim,</span></div>
+<div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160;<span class="comment">    IProgramInCPP, JackOJC, KrossX, Huhlig, Dragoneye, Appa, JustinRichardsMusic, SliceNDice, </span></div>
+<div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160;<span class="comment">    dandistine, Ralakus, Gorbit99, raoul, joshinils, benedani, Moros1138, Alexio, SaladinAkara </span></div>
+<div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160;<span class="comment">    &amp; MagetzUb for advice, ideas and testing, and I&#39;d like to extend my appreciation to the</span></div>
+<div class="line"><a name="l00174"></a><span class="lineno">  174</span>&#160;<span class="comment">    230K YouTube followers, 80+ Patreons and 10K Discord server members who give me</span></div>
+<div class="line"><a name="l00175"></a><span class="lineno">  175</span>&#160;<span class="comment">    the motivation to keep going with all this :D</span></div>
+<div class="line"><a name="l00176"></a><span class="lineno">  176</span>&#160;<span class="comment"></span> </div>
+<div class="line"><a name="l00177"></a><span class="lineno">  177</span>&#160;<span class="comment">    Significant Contributors: @Moros1138, @SaladinAkara, @MaGetzUb, @slavka,</span></div>
+<div class="line"><a name="l00178"></a><span class="lineno">  178</span>&#160;<span class="comment">                              @Dragoneye, @Gorbit99, @dandistine &amp; @Mumflr</span></div>
+<div class="line"><a name="l00179"></a><span class="lineno">  179</span>&#160;<span class="comment"></span> </div>
+<div class="line"><a name="l00180"></a><span class="lineno">  180</span>&#160;<span class="comment">    Special thanks to those who bring gifts!</span></div>
+<div class="line"><a name="l00181"></a><span class="lineno">  181</span>&#160;<span class="comment">    GnarGnarHead.......Domina</span></div>
+<div class="line"><a name="l00182"></a><span class="lineno">  182</span>&#160;<span class="comment">    Gorbit99...........Bastion, Ori &amp; The Blind Forest, Terraria, Spelunky 2</span></div>
+<div class="line"><a name="l00183"></a><span class="lineno">  183</span>&#160;<span class="comment">    Marti Morta........Gris</span></div>
+<div class="line"><a name="l00184"></a><span class="lineno">  184</span>&#160;<span class="comment">    Danicron...........Terraria</span></div>
+<div class="line"><a name="l00185"></a><span class="lineno">  185</span>&#160;<span class="comment">    SaladinAkara.......Aseprite, Inside</span></div>
+<div class="line"><a name="l00186"></a><span class="lineno">  186</span>&#160;<span class="comment">    AlterEgo...........Final Fantasy XII - The Zodiac Age</span></div>
+<div class="line"><a name="l00187"></a><span class="lineno">  187</span>&#160;<span class="comment">    SlicEnDicE.........Noita, Inside</span></div>
+<div class="line"><a name="l00188"></a><span class="lineno">  188</span>&#160;<span class="comment"></span> </div>
+<div class="line"><a name="l00189"></a><span class="lineno">  189</span>&#160;<span class="comment">    Special thanks to my Patreons too - I wont name you on here, but I&#39;ve</span></div>
+<div class="line"><a name="l00190"></a><span class="lineno">  190</span>&#160;<span class="comment">    certainly enjoyed my tea and flapjacks :D</span></div>
+<div class="line"><a name="l00191"></a><span class="lineno">  191</span>&#160;<span class="comment"></span> </div>
+<div class="line"><a name="l00192"></a><span class="lineno">  192</span>&#160;<span class="comment"></span> </div>
+<div class="line"><a name="l00193"></a><span class="lineno">  193</span>&#160;<span class="comment"></span> </div>
+<div class="line"><a name="l00194"></a><span class="lineno">  194</span>&#160;<span class="comment">    Author</span></div>
+<div class="line"><a name="l00195"></a><span class="lineno">  195</span>&#160;<span class="comment">    ~~~~~~</span></div>
+<div class="line"><a name="l00196"></a><span class="lineno">  196</span>&#160;<span class="comment">    David Barr, aka javidx9, �OneLoneCoder 2018, 2019, 2020, 2021</span></div>
+<div class="line"><a name="l00197"></a><span class="lineno">  197</span>&#160;<span class="comment">*/</span></div>
+<div class="line"><a name="l00198"></a><span class="lineno">  198</span>&#160;<span class="preprocessor">#pragma endregion</span></div>
+<div class="line"><a name="l00199"></a><span class="lineno">  199</span>&#160; </div>
+<div class="line"><a name="l00200"></a><span class="lineno">  200</span>&#160;<span class="preprocessor">#pragma region version_history</span></div>
+<div class="line"><a name="l00201"></a><span class="lineno">  201</span>&#160;<span class="comment">/*</span></div>
+<div class="line"><a name="l00202"></a><span class="lineno">  202</span>&#160;<span class="comment">    2.01: Made renderer and platform static for multifile projects</span></div>
+<div class="line"><a name="l00203"></a><span class="lineno">  203</span>&#160;<span class="comment">    2.02: Added Decal destructor, optimised Pixel constructor</span></div>
+<div class="line"><a name="l00204"></a><span class="lineno">  204</span>&#160;<span class="comment">    2.03: Added FreeBSD flags, Added DrawStringDecal()</span></div>
+<div class="line"><a name="l00205"></a><span class="lineno">  205</span>&#160;<span class="comment">    2.04: Windows Full-Screen bug fixed</span></div>
+<div class="line"><a name="l00206"></a><span class="lineno">  206</span>&#160;<span class="comment">    2.05: +DrawPartialWarpedDecal() - draws a warped decal from a subset image</span></div>
+<div class="line"><a name="l00207"></a><span class="lineno">  207</span>&#160;<span class="comment">          +DrawPartialRotatedDecal() - draws a rotated decal from a subset image</span></div>
+<div class="line"><a name="l00208"></a><span class="lineno">  208</span>&#160;<span class="comment">    2.06: +GetTextSize() - returns area occupied by multiline string</span></div>
+<div class="line"><a name="l00209"></a><span class="lineno">  209</span>&#160;<span class="comment">          +GetWindowSize() - returns actual window size</span></div>
+<div class="line"><a name="l00210"></a><span class="lineno">  210</span>&#160;<span class="comment">          +GetElapsedTime() - returns last calculated fElapsedTime</span></div>
+<div class="line"><a name="l00211"></a><span class="lineno">  211</span>&#160;<span class="comment">          +GetWindowMouse() - returns actual mouse location in window</span></div>
+<div class="line"><a name="l00212"></a><span class="lineno">  212</span>&#160;<span class="comment">          +DrawExplicitDecal() - bow-chikka-bow-bow</span></div>
+<div class="line"><a name="l00213"></a><span class="lineno">  213</span>&#160;<span class="comment">          +DrawPartialDecal(pos, size) - draws a partial decal to specified area</span></div>
+<div class="line"><a name="l00214"></a><span class="lineno">  214</span>&#160;<span class="comment">          +FillRectDecal() - draws a flat shaded rectangle as a decal</span></div>
+<div class="line"><a name="l00215"></a><span class="lineno">  215</span>&#160;<span class="comment">          +GradientFillRectDecal() - draws a rectangle, with unique colour corners</span></div>
+<div class="line"><a name="l00216"></a><span class="lineno">  216</span>&#160;<span class="comment">          +Modified DrawCircle() &amp; FillCircle() - Thanks IanM-Matrix1 (#PR121)</span></div>
+<div class="line"><a name="l00217"></a><span class="lineno">  217</span>&#160;<span class="comment">          +Gone someway to appeasing pedants</span></div>
+<div class="line"><a name="l00218"></a><span class="lineno">  218</span>&#160;<span class="comment">    2.07: +GetPixelSize() - returns user specified pixel size</span></div>
+<div class="line"><a name="l00219"></a><span class="lineno">  219</span>&#160;<span class="comment">          +GetScreenPixelSize() - returns actual size in monitor pixels</span></div>
+<div class="line"><a name="l00220"></a><span class="lineno">  220</span>&#160;<span class="comment">          +Pixel Cohesion Mode (flag in Construct()) - disallows arbitrary window scaling</span></div>
+<div class="line"><a name="l00221"></a><span class="lineno">  221</span>&#160;<span class="comment">          +Working VSYNC in Windows windowed application - now much smoother</span></div>
+<div class="line"><a name="l00222"></a><span class="lineno">  222</span>&#160;<span class="comment">          +Added string conversion for olc::vectors</span></div>
+<div class="line"><a name="l00223"></a><span class="lineno">  223</span>&#160;<span class="comment">          +Added comparator operators for olc::vectors</span></div>
+<div class="line"><a name="l00224"></a><span class="lineno">  224</span>&#160;<span class="comment">          +Added DestroyWindow() on windows platforms for serial PGE launches</span></div>
+<div class="line"><a name="l00225"></a><span class="lineno">  225</span>&#160;<span class="comment">          +Added GetMousePos() to stop TarriestPython whinging</span></div>
+<div class="line"><a name="l00226"></a><span class="lineno">  226</span>&#160;<span class="comment">    2.08: Fix SetScreenSize() aspect ratio pre-calculation</span></div>
+<div class="line"><a name="l00227"></a><span class="lineno">  227</span>&#160;<span class="comment">          Fix DrawExplicitDecal() - stupid oversight with multiple decals</span></div>
+<div class="line"><a name="l00228"></a><span class="lineno">  228</span>&#160;<span class="comment">          Disabled olc::Sprite copy constructor</span></div>
+<div class="line"><a name="l00229"></a><span class="lineno">  229</span>&#160;<span class="comment">          +olc::Sprite Duplicate() - produces a new clone of the sprite</span></div>
+<div class="line"><a name="l00230"></a><span class="lineno">  230</span>&#160;<span class="comment">          +olc::Sprite Duplicate(pos, size) - produces a new sprite from the region defined</span></div>
+<div class="line"><a name="l00231"></a><span class="lineno">  231</span>&#160;<span class="comment">          +Unary operators for vectors</span></div>
+<div class="line"><a name="l00232"></a><span class="lineno">  232</span>&#160;<span class="comment">          +More pedant mollification - Thanks TheLandfill</span></div>
+<div class="line"><a name="l00233"></a><span class="lineno">  233</span>&#160;<span class="comment">          +ImageLoader modules - user selectable image handling core, gdi+, libpng, stb_image</span></div>
+<div class="line"><a name="l00234"></a><span class="lineno">  234</span>&#160;<span class="comment">          +Mac Support via GLUT - thanks Mumflr!</span></div>
+<div class="line"><a name="l00235"></a><span class="lineno">  235</span>&#160;<span class="comment">    2.09: Fix olc::Renderable Image load error - Thanks MaGetzUb &amp; Zij-IT for finding and moaning about it</span></div>
+<div class="line"><a name="l00236"></a><span class="lineno">  236</span>&#160;<span class="comment">          Fix file rejection in image loaders when using resource packs</span></div>
+<div class="line"><a name="l00237"></a><span class="lineno">  237</span>&#160;<span class="comment">          Tidied Compiler defines per platform - Thanks slavka</span></div>
+<div class="line"><a name="l00238"></a><span class="lineno">  238</span>&#160;<span class="comment">          +Pedant fixes, const correctness in parts</span></div>
+<div class="line"><a name="l00239"></a><span class="lineno">  239</span>&#160;<span class="comment">          +DecalModes - Normal, Additive, Multiplicative blend modes</span></div>
+<div class="line"><a name="l00240"></a><span class="lineno">  240</span>&#160;<span class="comment">          +Pixel Operators &amp; Lerping</span></div>
+<div class="line"><a name="l00241"></a><span class="lineno">  241</span>&#160;<span class="comment">          +Filtered Decals - If you hate pixels, then erase this file</span></div>
+<div class="line"><a name="l00242"></a><span class="lineno">  242</span>&#160;<span class="comment">          +DrawStringProp(), GetTextSizeProp(), DrawStringPropDecal() - Draws non-monospaced font</span></div>
+<div class="line"><a name="l00243"></a><span class="lineno">  243</span>&#160;<span class="comment">    2.10: Fix PixelLerp() - oops my bad, lerped the wrong way :P</span></div>
+<div class="line"><a name="l00244"></a><span class="lineno">  244</span>&#160;<span class="comment">          Fix &quot;Shader&quot; support for strings - thanks Megarev for crying about it</span></div>
+<div class="line"><a name="l00245"></a><span class="lineno">  245</span>&#160;<span class="comment">          Fix GetTextSizeProp() - Height was just plain wrong...</span></div>
+<div class="line"><a name="l00246"></a><span class="lineno">  246</span>&#160;<span class="comment">          +vec2d operator overloads (element wise *=, /=)</span></div>
+<div class="line"><a name="l00247"></a><span class="lineno">  247</span>&#160;<span class="comment">          +vec2d comparison operators... :| yup... hmmmm...</span></div>
+<div class="line"><a name="l00248"></a><span class="lineno">  248</span>&#160;<span class="comment">          +vec2d ceil(), floor(), min(), max() functions - surprising how often I do it manually</span></div>
+<div class="line"><a name="l00249"></a><span class="lineno">  249</span>&#160;<span class="comment">          +DrawExplicitDecal(... uint32_t elements) - complete control over convex polygons and lines</span></div>
+<div class="line"><a name="l00250"></a><span class="lineno">  250</span>&#160;<span class="comment">          +DrawPolygonDecal() - to keep Bispoo happy, required significant rewrite of EVERYTHING, but hey ho</span></div>
+<div class="line"><a name="l00251"></a><span class="lineno">  251</span>&#160;<span class="comment">          +Complete rewrite of decal renderer</span></div>
+<div class="line"><a name="l00252"></a><span class="lineno">  252</span>&#160;<span class="comment">          +OpenGL 3.3 Renderer (also supports Raspberry Pi)</span></div>
+<div class="line"><a name="l00253"></a><span class="lineno">  253</span>&#160;<span class="comment">          +PGEX Break-In Hooks - with a push from Dandistine</span></div>
+<div class="line"><a name="l00254"></a><span class="lineno">  254</span>&#160;<span class="comment">          +Wireframe Decal Mode - For debug overlays</span></div>
+<div class="line"><a name="l00255"></a><span class="lineno">  255</span>&#160;<span class="comment">    2.11: Made PGEX hooks optional - (provide true to super constructor)</span></div>
+<div class="line"><a name="l00256"></a><span class="lineno">  256</span>&#160;<span class="comment">    2.12: Fix for MinGW compiler non-compliance :( - why is its sdk structure different?? why???</span></div>
+<div class="line"><a name="l00257"></a><span class="lineno">  257</span>&#160;<span class="comment">    2.13: +GetFontSprite() - allows access to font data  </span></div>
+<div class="line"><a name="l00258"></a><span class="lineno">  258</span>&#160;<span class="comment">    2.14: Fix WIN32 Definition reshuffle</span></div>
+<div class="line"><a name="l00259"></a><span class="lineno">  259</span>&#160;<span class="comment">          Fix DrawPartialDecal() - messed up dimension during renderer experiment, didnt remove junk code, thanks Alexio</span></div>
+<div class="line"><a name="l00260"></a><span class="lineno">  260</span>&#160;<span class="comment">          Fix? Strange error regarding GDI+ Image Loader not knowing about COM, SDK change?</span></div>
+<div class="line"><a name="l00261"></a><span class="lineno">  261</span>&#160;<span class="comment">    2.15: Big Reformat</span></div>
+<div class="line"><a name="l00262"></a><span class="lineno">  262</span>&#160;<span class="comment">          +WASM Platform (via Emscripten) - Big Thanks to OLC Community - See Platform for details        </span></div>
+<div class="line"><a name="l00263"></a><span class="lineno">  263</span>&#160;<span class="comment">          +Sample Mode for Decals</span></div>
+<div class="line"><a name="l00264"></a><span class="lineno">  264</span>&#160;<span class="comment">          +Made olc_ConfigureSystem() accessible</span></div>
+<div class="line"><a name="l00265"></a><span class="lineno">  265</span>&#160;<span class="comment">          +Added OLC_----_CUSTOM_EX for externalised platforms, renderers and image loaders</span></div>
+<div class="line"><a name="l00266"></a><span class="lineno">  266</span>&#160;<span class="comment">          =Refactored olc::Sprite pixel data store</span></div>
+<div class="line"><a name="l00267"></a><span class="lineno">  267</span>&#160;<span class="comment">          -Deprecating LoadFromPGESprFile()</span></div>
+<div class="line"><a name="l00268"></a><span class="lineno">  268</span>&#160;<span class="comment">          -Deprecating SaveToPGESprFile()</span></div>
+<div class="line"><a name="l00269"></a><span class="lineno">  269</span>&#160;<span class="comment">          Fix Pixel -= operator (thanks Au Lit)</span></div>
+<div class="line"><a name="l00270"></a><span class="lineno">  270</span>&#160;<span class="comment"></span> </div>
+<div class="line"><a name="l00271"></a><span class="lineno">  271</span>&#160;<span class="comment">          </span></div>
+<div class="line"><a name="l00272"></a><span class="lineno">  272</span>&#160;<span class="comment">    !! Apple Platforms will not see these updates immediately - Sorry, I dont have a mac to test... !!</span></div>
+<div class="line"><a name="l00273"></a><span class="lineno">  273</span>&#160;<span class="comment">    !!   Volunteers willing to help appreciated, though PRs are manually integrated with credit     !!</span></div>
+<div class="line"><a name="l00274"></a><span class="lineno">  274</span>&#160;<span class="comment">*/</span></div>
+<div class="line"><a name="l00275"></a><span class="lineno">  275</span>&#160;<span class="preprocessor">#pragma endregion</span></div>
+<div class="line"><a name="l00276"></a><span class="lineno">  276</span>&#160; </div>
+<div class="line"><a name="l00277"></a><span class="lineno">  277</span>&#160;<span class="preprocessor">#pragma region hello_world_example</span></div>
+<div class="line"><a name="l00278"></a><span class="lineno">  278</span>&#160;<span class="comment">// O------------------------------------------------------------------------------O</span></div>
+<div class="line"><a name="l00279"></a><span class="lineno">  279</span>&#160;<span class="comment">// | Example &quot;Hello World&quot; Program (main.cpp)                                     |</span></div>
+<div class="line"><a name="l00280"></a><span class="lineno">  280</span>&#160;<span class="comment">// O------------------------------------------------------------------------------O</span></div>
+<div class="line"><a name="l00281"></a><span class="lineno">  281</span>&#160;<span class="comment">/*</span></div>
+<div class="line"><a name="l00282"></a><span class="lineno">  282</span>&#160;<span class="comment"></span> </div>
+<div class="line"><a name="l00283"></a><span class="lineno">  283</span>&#160;<span class="comment">#define OLC_PGE_APPLICATION</span></div>
+<div class="line"><a name="l00284"></a><span class="lineno">  284</span>&#160;<span class="comment">#include &quot;olcPixelGameEngine.h&quot;</span></div>
+<div class="line"><a name="l00285"></a><span class="lineno">  285</span>&#160;<span class="comment"></span> </div>
+<div class="line"><a name="l00286"></a><span class="lineno">  286</span>&#160;<span class="comment">// Override base class with your custom functionality</span></div>
+<div class="line"><a name="l00287"></a><span class="lineno">  287</span>&#160;<span class="comment">class Example : public olc::PixelGameEngine</span></div>
+<div class="line"><a name="l00288"></a><span class="lineno">  288</span>&#160;<span class="comment">{</span></div>
+<div class="line"><a name="l00289"></a><span class="lineno">  289</span>&#160;<span class="comment">public:</span></div>
+<div class="line"><a name="l00290"></a><span class="lineno">  290</span>&#160;<span class="comment">    Example()</span></div>
+<div class="line"><a name="l00291"></a><span class="lineno">  291</span>&#160;<span class="comment">    {</span></div>
+<div class="line"><a name="l00292"></a><span class="lineno">  292</span>&#160;<span class="comment">        // Name your application</span></div>
+<div class="line"><a name="l00293"></a><span class="lineno">  293</span>&#160;<span class="comment">        sAppName = &quot;Example&quot;;</span></div>
+<div class="line"><a name="l00294"></a><span class="lineno">  294</span>&#160;<span class="comment">    }</span></div>
+<div class="line"><a name="l00295"></a><span class="lineno">  295</span>&#160;<span class="comment"></span> </div>
+<div class="line"><a name="l00296"></a><span class="lineno">  296</span>&#160;<span class="comment">public:</span></div>
+<div class="line"><a name="l00297"></a><span class="lineno">  297</span>&#160;<span class="comment">    bool OnUserCreate() override</span></div>
+<div class="line"><a name="l00298"></a><span class="lineno">  298</span>&#160;<span class="comment">    {</span></div>
+<div class="line"><a name="l00299"></a><span class="lineno">  299</span>&#160;<span class="comment">        // Called once at the start, so create things here</span></div>
+<div class="line"><a name="l00300"></a><span class="lineno">  300</span>&#160;<span class="comment">        return true;</span></div>
+<div class="line"><a name="l00301"></a><span class="lineno">  301</span>&#160;<span class="comment">    }</span></div>
+<div class="line"><a name="l00302"></a><span class="lineno">  302</span>&#160;<span class="comment"></span> </div>
+<div class="line"><a name="l00303"></a><span class="lineno">  303</span>&#160;<span class="comment">    bool OnUserUpdate(float fElapsedTime) override</span></div>
+<div class="line"><a name="l00304"></a><span class="lineno">  304</span>&#160;<span class="comment">    {</span></div>
+<div class="line"><a name="l00305"></a><span class="lineno">  305</span>&#160;<span class="comment">        // Called once per frame, draws random coloured pixels</span></div>
+<div class="line"><a name="l00306"></a><span class="lineno">  306</span>&#160;<span class="comment">        for (int x = 0; x &lt; ScreenWidth(); x++)</span></div>
+<div class="line"><a name="l00307"></a><span class="lineno">  307</span>&#160;<span class="comment">            for (int y = 0; y &lt; ScreenHeight(); y++)</span></div>
+<div class="line"><a name="l00308"></a><span class="lineno">  308</span>&#160;<span class="comment">                Draw(x, y, olc::Pixel(rand() % 256, rand() % 256, rand() % 256));</span></div>
+<div class="line"><a name="l00309"></a><span class="lineno">  309</span>&#160;<span class="comment">        return true;</span></div>
+<div class="line"><a name="l00310"></a><span class="lineno">  310</span>&#160;<span class="comment">    }</span></div>
+<div class="line"><a name="l00311"></a><span class="lineno">  311</span>&#160;<span class="comment">};</span></div>
+<div class="line"><a name="l00312"></a><span class="lineno">  312</span>&#160;<span class="comment"></span> </div>
+<div class="line"><a name="l00313"></a><span class="lineno">  313</span>&#160;<span class="comment">int main()</span></div>
+<div class="line"><a name="l00314"></a><span class="lineno">  314</span>&#160;<span class="comment">{</span></div>
+<div class="line"><a name="l00315"></a><span class="lineno">  315</span>&#160;<span class="comment">    Example demo;</span></div>
+<div class="line"><a name="l00316"></a><span class="lineno">  316</span>&#160;<span class="comment">    if (demo.Construct(256, 240, 4, 4))</span></div>
+<div class="line"><a name="l00317"></a><span class="lineno">  317</span>&#160;<span class="comment">        demo.Start();</span></div>
+<div class="line"><a name="l00318"></a><span class="lineno">  318</span>&#160;<span class="comment">    return 0;</span></div>
+<div class="line"><a name="l00319"></a><span class="lineno">  319</span>&#160;<span class="comment">}</span></div>
+<div class="line"><a name="l00320"></a><span class="lineno">  320</span>&#160;<span class="comment"></span> </div>
+<div class="line"><a name="l00321"></a><span class="lineno">  321</span>&#160;<span class="comment">*/</span></div>
+<div class="line"><a name="l00322"></a><span class="lineno">  322</span>&#160;<span class="preprocessor">#pragma endregion</span></div>
+<div class="line"><a name="l00323"></a><span class="lineno">  323</span>&#160; </div>
+<div class="line"><a name="l00324"></a><span class="lineno">  324</span>&#160;<span class="preprocessor">#ifndef OLC_PGE_DEF</span></div>
+<div class="line"><a name="l00325"></a><span class="lineno">  325</span>&#160;<span class="preprocessor">#define OLC_PGE_DEF</span></div>
+<div class="line"><a name="l00326"></a><span class="lineno">  326</span>&#160; </div>
+<div class="line"><a name="l00327"></a><span class="lineno">  327</span>&#160;<span class="preprocessor">#pragma region std_includes</span></div>
+<div class="line"><a name="l00328"></a><span class="lineno">  328</span>&#160;<span class="comment">// O------------------------------------------------------------------------------O</span></div>
+<div class="line"><a name="l00329"></a><span class="lineno">  329</span>&#160;<span class="comment">// | STANDARD INCLUDES                                                            |</span></div>
+<div class="line"><a name="l00330"></a><span class="lineno">  330</span>&#160;<span class="comment">// O------------------------------------------------------------------------------O</span></div>
+<div class="line"><a name="l00331"></a><span class="lineno">  331</span>&#160;<span class="preprocessor">#include &lt;cmath&gt;</span></div>
+<div class="line"><a name="l00332"></a><span class="lineno">  332</span>&#160;<span class="preprocessor">#include &lt;cstdint&gt;</span></div>
+<div class="line"><a name="l00333"></a><span class="lineno">  333</span>&#160;<span class="preprocessor">#include &lt;string&gt;</span></div>
+<div class="line"><a name="l00334"></a><span class="lineno">  334</span>&#160;<span class="preprocessor">#include &lt;iostream&gt;</span></div>
+<div class="line"><a name="l00335"></a><span class="lineno">  335</span>&#160;<span class="preprocessor">#include &lt;streambuf&gt;</span></div>
+<div class="line"><a name="l00336"></a><span class="lineno">  336</span>&#160;<span class="preprocessor">#include &lt;sstream&gt;</span></div>
+<div class="line"><a name="l00337"></a><span class="lineno">  337</span>&#160;<span class="preprocessor">#include &lt;chrono&gt;</span></div>
+<div class="line"><a name="l00338"></a><span class="lineno">  338</span>&#160;<span class="preprocessor">#include &lt;vector&gt;</span></div>
+<div class="line"><a name="l00339"></a><span class="lineno">  339</span>&#160;<span class="preprocessor">#include &lt;list&gt;</span></div>
+<div class="line"><a name="l00340"></a><span class="lineno">  340</span>&#160;<span class="preprocessor">#include &lt;thread&gt;</span></div>
+<div class="line"><a name="l00341"></a><span class="lineno">  341</span>&#160;<span class="preprocessor">#include &lt;atomic&gt;</span></div>
+<div class="line"><a name="l00342"></a><span class="lineno">  342</span>&#160;<span class="preprocessor">#include &lt;fstream&gt;</span></div>
+<div class="line"><a name="l00343"></a><span class="lineno">  343</span>&#160;<span class="preprocessor">#include &lt;map&gt;</span></div>
+<div class="line"><a name="l00344"></a><span class="lineno">  344</span>&#160;<span class="preprocessor">#include &lt;functional&gt;</span></div>
+<div class="line"><a name="l00345"></a><span class="lineno">  345</span>&#160;<span class="preprocessor">#include &lt;algorithm&gt;</span></div>
+<div class="line"><a name="l00346"></a><span class="lineno">  346</span>&#160;<span class="preprocessor">#include &lt;array&gt;</span></div>
+<div class="line"><a name="l00347"></a><span class="lineno">  347</span>&#160;<span class="preprocessor">#include &lt;cstring&gt;</span></div>
+<div class="line"><a name="l00348"></a><span class="lineno">  348</span>&#160;<span class="preprocessor">#pragma endregion</span></div>
+<div class="line"><a name="l00349"></a><span class="lineno">  349</span>&#160; </div>
+<div class="line"><a name="l00350"></a><span class="lineno"><a class="line" href="olc_pixel_game_engine_8h.html#a6301d810e4f45704594786997b2261ea">  350</a></span>&#160;<span class="preprocessor">#define PGE_VER 215</span></div>
+<div class="line"><a name="l00351"></a><span class="lineno">  351</span>&#160; </div>
+<div class="line"><a name="l00352"></a><span class="lineno">  352</span>&#160;<span class="comment">// O------------------------------------------------------------------------------O</span></div>
+<div class="line"><a name="l00353"></a><span class="lineno">  353</span>&#160;<span class="comment">// | COMPILER CONFIGURATION ODDITIES                                              |</span></div>
+<div class="line"><a name="l00354"></a><span class="lineno">  354</span>&#160;<span class="comment">// O------------------------------------------------------------------------------O</span></div>
+<div class="line"><a name="l00355"></a><span class="lineno">  355</span>&#160;<span class="preprocessor">#pragma region compiler_config</span></div>
+<div class="line"><a name="l00356"></a><span class="lineno"><a class="line" href="olc_pixel_game_engine_8h.html#a7f7123ffe9352ede10ecc711ae8901d3">  356</a></span>&#160;<span class="preprocessor">#define USE_EXPERIMENTAL_FS</span></div>
+<div class="line"><a name="l00357"></a><span class="lineno">  357</span>&#160;<span class="preprocessor">#if defined(_WIN32)</span></div>
+<div class="line"><a name="l00358"></a><span class="lineno">  358</span>&#160;<span class="preprocessor">    #if _MSC_VER &gt;= 1920 &amp;&amp; _MSVC_LANG &gt;= 201703L</span></div>
+<div class="line"><a name="l00359"></a><span class="lineno">  359</span>&#160;<span class="preprocessor">        #undef USE_EXPERIMENTAL_FS</span></div>
+<div class="line"><a name="l00360"></a><span class="lineno">  360</span>&#160;<span class="preprocessor">    #endif</span></div>
+<div class="line"><a name="l00361"></a><span class="lineno">  361</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00362"></a><span class="lineno">  362</span>&#160;<span class="preprocessor">#if defined(__linux__) || defined(__MINGW32__) || defined(__EMSCRIPTEN__) || defined(__FreeBSD__) || defined(__APPLE__)</span></div>
+<div class="line"><a name="l00363"></a><span class="lineno">  363</span>&#160;<span class="preprocessor">    #if __cplusplus &gt;= 201703L</span></div>
+<div class="line"><a name="l00364"></a><span class="lineno">  364</span>&#160;<span class="preprocessor">        #undef USE_EXPERIMENTAL_FS</span></div>
+<div class="line"><a name="l00365"></a><span class="lineno">  365</span>&#160;<span class="preprocessor">    #endif</span></div>
+<div class="line"><a name="l00366"></a><span class="lineno">  366</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00367"></a><span class="lineno">  367</span>&#160; </div>
+<div class="line"><a name="l00368"></a><span class="lineno">  368</span>&#160; </div>
+<div class="line"><a name="l00369"></a><span class="lineno">  369</span>&#160;<span class="preprocessor">#if defined(USE_EXPERIMENTAL_FS) || defined(FORCE_EXPERIMENTAL_FS)</span></div>
+<div class="line"><a name="l00370"></a><span class="lineno">  370</span>&#160;    <span class="comment">// C++14</span></div>
+<div class="line"><a name="l00371"></a><span class="lineno"><a class="line" href="olc_pixel_game_engine_8h.html#aab6af62131aad81d17d3b4afd9db334f">  371</a></span>&#160;<span class="preprocessor">    #define _SILENCE_EXPERIMENTAL_FILESYSTEM_DEPRECATION_WARNING</span></div>
+<div class="line"><a name="l00372"></a><span class="lineno">  372</span>&#160;<span class="preprocessor">    #include &lt;experimental/filesystem&gt;</span></div>
+<div class="line"><a name="l00373"></a><span class="lineno">  373</span>&#160;    <span class="keyword">namespace </span>_gfs = std::experimental::filesystem::v1;</div>
+<div class="line"><a name="l00374"></a><span class="lineno">  374</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00375"></a><span class="lineno">  375</span>&#160;    <span class="comment">// C++17</span></div>
+<div class="line"><a name="l00376"></a><span class="lineno">  376</span>&#160;<span class="preprocessor">    #include &lt;filesystem&gt;</span></div>
+<div class="line"><a name="l00377"></a><span class="lineno">  377</span>&#160;    <span class="keyword">namespace </span>_gfs = std::filesystem;</div>
+<div class="line"><a name="l00378"></a><span class="lineno">  378</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00379"></a><span class="lineno">  379</span>&#160; </div>
+<div class="line"><a name="l00380"></a><span class="lineno">  380</span>&#160;<span class="preprocessor">#if defined(UNICODE) || defined(_UNICODE)</span></div>
+<div class="line"><a name="l00381"></a><span class="lineno">  381</span>&#160;<span class="preprocessor">    #define olcT(s) L##s</span></div>
+<div class="line"><a name="l00382"></a><span class="lineno">  382</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00383"></a><span class="lineno"><a class="line" href="olc_pixel_game_engine_8h.html#ac02283d1990a8623a332f7f7f2230a1f">  383</a></span>&#160;<span class="preprocessor">    #define olcT(s) s</span></div>
+<div class="line"><a name="l00384"></a><span class="lineno">  384</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00385"></a><span class="lineno">  385</span>&#160; </div>
+<div class="line"><a name="l00386"></a><span class="lineno"><a class="line" href="olc_pixel_game_engine_8h.html#a86d500a34c624c2cae56bc25a31b12f3">  386</a></span>&#160;<span class="preprocessor">#define UNUSED(x) (void)(x)</span></div>
+<div class="line"><a name="l00387"></a><span class="lineno">  387</span>&#160; </div>
+<div class="line"><a name="l00388"></a><span class="lineno">  388</span>&#160;<span class="comment">// O------------------------------------------------------------------------------O</span></div>
+<div class="line"><a name="l00389"></a><span class="lineno">  389</span>&#160;<span class="comment">// | PLATFORM SELECTION CODE, Thanks slavka!                                      |</span></div>
+<div class="line"><a name="l00390"></a><span class="lineno">  390</span>&#160;<span class="comment">// O------------------------------------------------------------------------------O</span></div>
+<div class="line"><a name="l00391"></a><span class="lineno">  391</span>&#160; </div>
+<div class="line"><a name="l00392"></a><span class="lineno">  392</span>&#160;<span class="comment">// Platform</span></div>
+<div class="line"><a name="l00393"></a><span class="lineno">  393</span>&#160;<span class="preprocessor">#if !defined(OLC_PLATFORM_WINAPI) &amp;&amp; !defined(OLC_PLATFORM_X11) &amp;&amp; !defined(OLC_PLATFORM_GLUT) &amp;&amp; !defined(OLC_PLATFORM_EMSCRIPTEN)</span></div>
+<div class="line"><a name="l00394"></a><span class="lineno">  394</span>&#160;<span class="preprocessor">    #if !defined(OLC_PLATFORM_CUSTOM_EX)</span></div>
+<div class="line"><a name="l00395"></a><span class="lineno">  395</span>&#160;<span class="preprocessor">        #if defined(_WIN32)</span></div>
+<div class="line"><a name="l00396"></a><span class="lineno">  396</span>&#160;<span class="preprocessor">            #define OLC_PLATFORM_WINAPI</span></div>
+<div class="line"><a name="l00397"></a><span class="lineno">  397</span>&#160;<span class="preprocessor">        #endif</span></div>
+<div class="line"><a name="l00398"></a><span class="lineno">  398</span>&#160;<span class="preprocessor">        #if defined(__linux__) || defined(__FreeBSD__)</span></div>
+<div class="line"><a name="l00399"></a><span class="lineno">  399</span>&#160;<span class="preprocessor">            #define OLC_PLATFORM_X11</span></div>
+<div class="line"><a name="l00400"></a><span class="lineno">  400</span>&#160;<span class="preprocessor">        #endif</span></div>
+<div class="line"><a name="l00401"></a><span class="lineno">  401</span>&#160;<span class="preprocessor">        #if defined(__APPLE__)</span></div>
+<div class="line"><a name="l00402"></a><span class="lineno">  402</span>&#160;<span class="preprocessor">            #define GL_SILENCE_DEPRECATION</span></div>
+<div class="line"><a name="l00403"></a><span class="lineno">  403</span>&#160;<span class="preprocessor">            #define OLC_PLATFORM_GLUT</span></div>
+<div class="line"><a name="l00404"></a><span class="lineno">  404</span>&#160;<span class="preprocessor">        #endif</span></div>
+<div class="line"><a name="l00405"></a><span class="lineno">  405</span>&#160;<span class="preprocessor">        #if defined(__EMSCRIPTEN__)</span></div>
+<div class="line"><a name="l00406"></a><span class="lineno">  406</span>&#160;<span class="preprocessor">            #define OLC_PLATFORM_EMSCRIPTEN</span></div>
+<div class="line"><a name="l00407"></a><span class="lineno">  407</span>&#160;<span class="preprocessor">        #endif</span></div>
+<div class="line"><a name="l00408"></a><span class="lineno">  408</span>&#160;<span class="preprocessor">    #endif</span></div>
+<div class="line"><a name="l00409"></a><span class="lineno">  409</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00410"></a><span class="lineno">  410</span>&#160; </div>
+<div class="line"><a name="l00411"></a><span class="lineno">  411</span>&#160;<span class="comment">// Start Situation</span></div>
+<div class="line"><a name="l00412"></a><span class="lineno">  412</span>&#160;<span class="preprocessor">#if defined(OLC_PLATFORM_GLUT) || defined(OLC_PLATFORM_EMSCRIPTEN)</span></div>
+<div class="line"><a name="l00413"></a><span class="lineno">  413</span>&#160;<span class="preprocessor">    #define PGE_USE_CUSTOM_START</span></div>
+<div class="line"><a name="l00414"></a><span class="lineno">  414</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00415"></a><span class="lineno">  415</span>&#160; </div>
+<div class="line"><a name="l00416"></a><span class="lineno">  416</span>&#160;<span class="comment">// Renderer</span></div>
+<div class="line"><a name="l00417"></a><span class="lineno">  417</span>&#160;<span class="preprocessor">#if !defined(OLC_GFX_OPENGL10) &amp;&amp; !defined(OLC_GFX_OPENGL33) &amp;&amp; !defined(OLC_GFX_DIRECTX10)</span></div>
+<div class="line"><a name="l00418"></a><span class="lineno">  418</span>&#160;<span class="preprocessor">    #if !defined(OLC_GFX_CUSTOM_EX)</span></div>
+<div class="line"><a name="l00419"></a><span class="lineno">  419</span>&#160;<span class="preprocessor">        #if defined(OLC_PLATFORM_EMSCRIPTEN)</span></div>
+<div class="line"><a name="l00420"></a><span class="lineno">  420</span>&#160;<span class="preprocessor">            #define OLC_GFX_OPENGL33</span></div>
+<div class="line"><a name="l00421"></a><span class="lineno">  421</span>&#160;<span class="preprocessor">        #else</span></div>
+<div class="line"><a name="l00422"></a><span class="lineno"><a class="line" href="olc_pixel_game_engine_8h.html#a3778ec518130e256bc0f11a7b8ba82bc">  422</a></span>&#160;<span class="preprocessor">            #define OLC_GFX_OPENGL10</span></div>
+<div class="line"><a name="l00423"></a><span class="lineno">  423</span>&#160;<span class="preprocessor">        #endif</span></div>
+<div class="line"><a name="l00424"></a><span class="lineno">  424</span>&#160;<span class="preprocessor">    #endif</span></div>
+<div class="line"><a name="l00425"></a><span class="lineno">  425</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00426"></a><span class="lineno">  426</span>&#160; </div>
+<div class="line"><a name="l00427"></a><span class="lineno">  427</span>&#160;<span class="comment">// Image loader</span></div>
+<div class="line"><a name="l00428"></a><span class="lineno">  428</span>&#160;<span class="preprocessor">#if !defined(OLC_IMAGE_STB) &amp;&amp; !defined(OLC_IMAGE_GDI) &amp;&amp; !defined(OLC_IMAGE_LIBPNG)</span></div>
+<div class="line"><a name="l00429"></a><span class="lineno">  429</span>&#160;<span class="preprocessor">    #if !defined(OLC_IMAGE_CUSTOM_EX)</span></div>
+<div class="line"><a name="l00430"></a><span class="lineno">  430</span>&#160;<span class="preprocessor">        #if defined(_WIN32)</span></div>
+<div class="line"><a name="l00431"></a><span class="lineno">  431</span>&#160;<span class="preprocessor">            #define OLC_IMAGE_GDI</span></div>
+<div class="line"><a name="l00432"></a><span class="lineno">  432</span>&#160;<span class="preprocessor">        #endif</span></div>
+<div class="line"><a name="l00433"></a><span class="lineno">  433</span>&#160;<span class="preprocessor">        #if defined(__linux__) || defined(__APPLE__) || defined(__FreeBSD__) || defined(__EMSCRIPTEN__)</span></div>
+<div class="line"><a name="l00434"></a><span class="lineno">  434</span>&#160;<span class="preprocessor">            #define OLC_IMAGE_LIBPNG</span></div>
+<div class="line"><a name="l00435"></a><span class="lineno">  435</span>&#160;<span class="preprocessor">        #endif</span></div>
+<div class="line"><a name="l00436"></a><span class="lineno">  436</span>&#160;<span class="preprocessor">    #endif</span></div>
+<div class="line"><a name="l00437"></a><span class="lineno">  437</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00438"></a><span class="lineno">  438</span>&#160; </div>
+<div class="line"><a name="l00439"></a><span class="lineno">  439</span>&#160; </div>
+<div class="line"><a name="l00440"></a><span class="lineno">  440</span>&#160;<span class="comment">// O------------------------------------------------------------------------------O</span></div>
+<div class="line"><a name="l00441"></a><span class="lineno">  441</span>&#160;<span class="comment">// | PLATFORM-SPECIFIC DEPENDENCIES                                               |</span></div>
+<div class="line"><a name="l00442"></a><span class="lineno">  442</span>&#160;<span class="comment">// O------------------------------------------------------------------------------O</span></div>
+<div class="line"><a name="l00443"></a><span class="lineno">  443</span>&#160;<span class="preprocessor">#if defined(OLC_PLATFORM_WINAPI)    </span></div>
+<div class="line"><a name="l00444"></a><span class="lineno">  444</span>&#160;<span class="preprocessor">    #define _WINSOCKAPI_ // Thanks Cornchipss</span></div>
+<div class="line"><a name="l00445"></a><span class="lineno">  445</span>&#160;<span class="preprocessor">        #if !defined(VC_EXTRALEAN)</span></div>
+<div class="line"><a name="l00446"></a><span class="lineno">  446</span>&#160;<span class="preprocessor">        #define VC_EXTRALEAN</span></div>
+<div class="line"><a name="l00447"></a><span class="lineno">  447</span>&#160;<span class="preprocessor">    #endif</span></div>
+<div class="line"><a name="l00448"></a><span class="lineno">  448</span>&#160;<span class="preprocessor">    #if !defined(NOMINMAX)</span></div>
+<div class="line"><a name="l00449"></a><span class="lineno">  449</span>&#160;<span class="preprocessor">        #define NOMINMAX</span></div>
+<div class="line"><a name="l00450"></a><span class="lineno">  450</span>&#160;<span class="preprocessor">    #endif</span></div>
+<div class="line"><a name="l00451"></a><span class="lineno">  451</span>&#160; </div>
+<div class="line"><a name="l00452"></a><span class="lineno">  452</span>&#160;    <span class="comment">// In Code::Blocks</span></div>
+<div class="line"><a name="l00453"></a><span class="lineno">  453</span>&#160;<span class="preprocessor">    #if !defined(_WIN32_WINNT)</span></div>
+<div class="line"><a name="l00454"></a><span class="lineno">  454</span>&#160;<span class="preprocessor">        #ifdef HAVE_MSMF</span></div>
+<div class="line"><a name="l00455"></a><span class="lineno">  455</span>&#160;<span class="preprocessor">            #define _WIN32_WINNT 0x0600 // Windows Vista</span></div>
+<div class="line"><a name="l00456"></a><span class="lineno">  456</span>&#160;<span class="preprocessor">        #else</span></div>
+<div class="line"><a name="l00457"></a><span class="lineno">  457</span>&#160;<span class="preprocessor">            #define _WIN32_WINNT 0x0500 // Windows 2000</span></div>
+<div class="line"><a name="l00458"></a><span class="lineno">  458</span>&#160;<span class="preprocessor">        #endif</span></div>
+<div class="line"><a name="l00459"></a><span class="lineno">  459</span>&#160;<span class="preprocessor">    #endif</span></div>
+<div class="line"><a name="l00460"></a><span class="lineno">  460</span>&#160; </div>
+<div class="line"><a name="l00461"></a><span class="lineno">  461</span>&#160;<span class="preprocessor">    #include &lt;windows.h&gt;</span></div>
+<div class="line"><a name="l00462"></a><span class="lineno">  462</span>&#160;<span class="preprocessor">    #undef _WINSOCKAPI_</span></div>
+<div class="line"><a name="l00463"></a><span class="lineno">  463</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00464"></a><span class="lineno">  464</span>&#160; </div>
+<div class="line"><a name="l00465"></a><span class="lineno">  465</span>&#160;<span class="preprocessor">#if defined(OLC_PLATFORM_X11)</span></div>
+<div class="line"><a name="l00466"></a><span class="lineno">  466</span>&#160;    <span class="keyword">namespace </span>X11</div>
+<div class="line"><a name="l00467"></a><span class="lineno">  467</span>&#160;    {</div>
+<div class="line"><a name="l00468"></a><span class="lineno">  468</span>&#160;<span class="preprocessor">        #include &lt;X11/X.h&gt;</span></div>
+<div class="line"><a name="l00469"></a><span class="lineno">  469</span>&#160;<span class="preprocessor">        #include &lt;X11/Xlib.h&gt;</span></div>
+<div class="line"><a name="l00470"></a><span class="lineno">  470</span>&#160;    }</div>
+<div class="line"><a name="l00471"></a><span class="lineno">  471</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00472"></a><span class="lineno">  472</span>&#160; </div>
+<div class="line"><a name="l00473"></a><span class="lineno">  473</span>&#160;<span class="preprocessor">#if defined(OLC_PLATFORM_GLUT)</span></div>
+<div class="line"><a name="l00474"></a><span class="lineno">  474</span>&#160;<span class="preprocessor">    #if defined(__linux__)</span></div>
+<div class="line"><a name="l00475"></a><span class="lineno">  475</span>&#160;<span class="preprocessor">        #include &lt;GL/glut.h&gt;</span></div>
+<div class="line"><a name="l00476"></a><span class="lineno">  476</span>&#160;<span class="preprocessor">        #include &lt;GL/freeglut_ext.h&gt;</span></div>
+<div class="line"><a name="l00477"></a><span class="lineno">  477</span>&#160;<span class="preprocessor">    #endif</span></div>
+<div class="line"><a name="l00478"></a><span class="lineno">  478</span>&#160;<span class="preprocessor">    #if defined(__APPLE__)</span></div>
+<div class="line"><a name="l00479"></a><span class="lineno">  479</span>&#160;<span class="preprocessor">        #include &lt;GLUT/glut.h&gt;</span></div>
+<div class="line"><a name="l00480"></a><span class="lineno">  480</span>&#160;<span class="preprocessor">    #endif</span></div>
+<div class="line"><a name="l00481"></a><span class="lineno">  481</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00482"></a><span class="lineno">  482</span>&#160;<span class="preprocessor">#pragma endregion</span></div>
+<div class="line"><a name="l00483"></a><span class="lineno">  483</span>&#160; </div>
+<div class="line"><a name="l00484"></a><span class="lineno">  484</span>&#160;<span class="comment">// O------------------------------------------------------------------------------O</span></div>
+<div class="line"><a name="l00485"></a><span class="lineno">  485</span>&#160;<span class="comment">// | olcPixelGameEngine INTERFACE DECLARATION                                     |</span></div>
+<div class="line"><a name="l00486"></a><span class="lineno">  486</span>&#160;<span class="comment">// O------------------------------------------------------------------------------O</span></div>
+<div class="line"><a name="l00487"></a><span class="lineno">  487</span>&#160;<span class="preprocessor">#pragma region pge_declaration</span></div>
+<div class="line"><a name="l00488"></a><span class="lineno">  488</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespaceolc.html">olc</a></div>
+<div class="line"><a name="l00489"></a><span class="lineno">  489</span>&#160;{</div>
+<div class="line"><a name="l00490"></a><span class="lineno">  490</span>&#160;    <span class="keyword">class </span>PixelGameEngine;</div>
+<div class="line"><a name="l00491"></a><span class="lineno">  491</span>&#160;    <span class="keyword">class </span>Sprite;</div>
+<div class="line"><a name="l00492"></a><span class="lineno">  492</span>&#160; </div>
+<div class="line"><a name="l00493"></a><span class="lineno">  493</span>&#160;    <span class="comment">// Pixel Game Engine Advanced Configuration</span></div>
+<div class="line"><a name="l00494"></a><span class="lineno"><a class="line" href="namespaceolc.html#abf7dfc35dd1d895f33d3635831953e38">  494</a></span>&#160;    constexpr uint8_t  <a class="code" href="namespaceolc.html#abf7dfc35dd1d895f33d3635831953e38">nMouseButtons</a> = 5;</div>
+<div class="line"><a name="l00495"></a><span class="lineno"><a class="line" href="namespaceolc.html#adede7d1156ab9d8ffdc3e9048f0f364b">  495</a></span>&#160;    constexpr uint8_t  <a class="code" href="namespaceolc.html#adede7d1156ab9d8ffdc3e9048f0f364b">nDefaultAlpha</a> = 0xFF;</div>
+<div class="line"><a name="l00496"></a><span class="lineno"><a class="line" href="namespaceolc.html#a10bbdc57cc3fecc7b80ba428eb7494d0">  496</a></span>&#160;    constexpr uint32_t <a class="code" href="namespaceolc.html#a10bbdc57cc3fecc7b80ba428eb7494d0">nDefaultPixel</a> = (<a class="code" href="namespaceolc.html#adede7d1156ab9d8ffdc3e9048f0f364b">nDefaultAlpha</a> &lt;&lt; 24);</div>
+<div class="line"><a name="l00497"></a><span class="lineno"><a class="line" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87b">  497</a></span>&#160;    <span class="keyword">enum</span> <a class="code" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87b">rcode</a> { <a class="code" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87baadc8ac6e9769db5bb290fbf5f8284dbf">FAIL</a> = 0, <a class="code" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87ba0178b5f8abe39121e6f14d3c6c093a82">OK</a> = 1, <a class="code" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87babfe0b9ad99c942b01b1ee61404f559b5">NO_FILE</a> = -1 };</div>
+<div class="line"><a name="l00498"></a><span class="lineno">  498</span>&#160; </div>
+<div class="line"><a name="l00499"></a><span class="lineno">  499</span>&#160;    <span class="comment">// O------------------------------------------------------------------------------O</span></div>
+<div class="line"><a name="l00500"></a><span class="lineno">  500</span>&#160;    <span class="comment">// | olc::Pixel - Represents a 32-Bit RGBA colour                                 |</span></div>
+<div class="line"><a name="l00501"></a><span class="lineno">  501</span>&#160;    <span class="comment">// O------------------------------------------------------------------------------O</span></div>
+<div class="line"><a name="l00502"></a><span class="lineno"><a class="line" href="structolc_1_1_pixel.html">  502</a></span>&#160;    <span class="keyword">struct </span><a class="code" href="structolc_1_1_pixel.html">Pixel</a></div>
+<div class="line"><a name="l00503"></a><span class="lineno">  503</span>&#160;    {</div>
+<div class="line"><a name="l00504"></a><span class="lineno">  504</span>&#160;        <span class="keyword">union</span></div>
+<div class="line"><a name="l00505"></a><span class="lineno">  505</span>&#160;        {</div>
+<div class="line"><a name="l00506"></a><span class="lineno"><a class="line" href="structolc_1_1_pixel.html#aa9cb31c80e2822ccc726526be5801ae2">  506</a></span>&#160;            uint32_t <a class="code" href="structolc_1_1_pixel.html#aa9cb31c80e2822ccc726526be5801ae2">n</a> = <a class="code" href="namespaceolc.html#a10bbdc57cc3fecc7b80ba428eb7494d0">nDefaultPixel</a>;</div>
+<div class="line"><a name="l00507"></a><span class="lineno"><a class="line" href="structolc_1_1_pixel.html#a93ee3efde3d2b363e4e4813a490f60b4">  507</a></span>&#160;            <span class="keyword">struct </span>{ uint8_t <a class="code" href="structolc_1_1_pixel.html#a93ee3efde3d2b363e4e4813a490f60b4">r</a>; uint8_t <a class="code" href="structolc_1_1_pixel.html#a14cf5612284974c409f078944fe5f6ee">g</a>; uint8_t <a class="code" href="structolc_1_1_pixel.html#a8738f2cd490bd9c5288f37c8d19816be">b</a>; uint8_t <a class="code" href="structolc_1_1_pixel.html#a652a25d4bcab1f7bf627c3224842f0b1">a</a>; };</div>
+<div class="line"><a name="l00508"></a><span class="lineno">  508</span>&#160;        };</div>
+<div class="line"><a name="l00509"></a><span class="lineno">  509</span>&#160; </div>
+<div class="line"><a name="l00510"></a><span class="lineno"><a class="line" href="structolc_1_1_pixel.html#ae9012164940526ddb09b217dbbddfd65a8abacc164c972b4684c2a76efd381018">  510</a></span>&#160;        <span class="keyword">enum</span> <a class="code" href="structolc_1_1_pixel.html#ae9012164940526ddb09b217dbbddfd65">Mode</a> { <a class="code" href="structolc_1_1_pixel.html#ae9012164940526ddb09b217dbbddfd65a8abacc164c972b4684c2a76efd381018">NORMAL</a>, <a class="code" href="structolc_1_1_pixel.html#ae9012164940526ddb09b217dbbddfd65a4062d4baa9669fb2e91f31a15061a9d6">MASK</a>, <a class="code" href="structolc_1_1_pixel.html#ae9012164940526ddb09b217dbbddfd65a561bc0234492261a62a3191252692753">ALPHA</a>, <a class="code" href="structolc_1_1_pixel.html#ae9012164940526ddb09b217dbbddfd65aed57164e9f056c1af912b3069eb45deb">CUSTOM</a> };</div>
+<div class="line"><a name="l00511"></a><span class="lineno">  511</span>&#160; </div>
+<div class="line"><a name="l00512"></a><span class="lineno"><a class="line" href="structolc_1_1_pixel.html#a75ef9e180289d861dfa6687faa248345">  512</a></span>&#160;        <a class="code" href="structolc_1_1_pixel.html#a75ef9e180289d861dfa6687faa248345">Pixel</a>();</div>
+<div class="line"><a name="l00513"></a><span class="lineno"><a class="line" href="structolc_1_1_pixel.html#a542d8daf20eb48a0539d671ffed9168f">  513</a></span>&#160;        <a class="code" href="structolc_1_1_pixel.html#a542d8daf20eb48a0539d671ffed9168f">Pixel</a>(uint8_t red, uint8_t green, uint8_t blue, uint8_t alpha = <a class="code" href="namespaceolc.html#adede7d1156ab9d8ffdc3e9048f0f364b">nDefaultAlpha</a>);</div>
+<div class="line"><a name="l00514"></a><span class="lineno"><a class="line" href="structolc_1_1_pixel.html#ad6ddaba5806de8b26fea03fa6f7b0edf">  514</a></span>&#160;        <a class="code" href="structolc_1_1_pixel.html#ad6ddaba5806de8b26fea03fa6f7b0edf">Pixel</a>(uint32_t p);</div>
+<div class="line"><a name="l00515"></a><span class="lineno"><a class="line" href="structolc_1_1_pixel.html#a9e52ebcc91b8460859a606b7bf763b82">  515</a></span>&#160;        <a class="code" href="structolc_1_1_pixel.html">Pixel</a>&amp; <a class="code" href="structolc_1_1_pixel.html#a9e52ebcc91b8460859a606b7bf763b82">operator = </a>(<span class="keyword">const</span> <a class="code" href="structolc_1_1_pixel.html">Pixel</a>&amp; v) = <span class="keywordflow">default</span>;</div>
+<div class="line"><a name="l00516"></a><span class="lineno"><a class="line" href="structolc_1_1_pixel.html#a6b82561c110de5447ca4d59c3162d06c">  516</a></span>&#160;        <span class="keywordtype">bool</span>   <a class="code" href="structolc_1_1_pixel.html#a6b82561c110de5447ca4d59c3162d06c">operator ==</a>(<span class="keyword">const</span> <a class="code" href="structolc_1_1_pixel.html">Pixel</a>&amp; p) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00517"></a><span class="lineno"><a class="line" href="structolc_1_1_pixel.html#aeeaecb16a243ce3be52cd9261fdf2b23">  517</a></span>&#160;        <span class="keywordtype">bool</span>   <a class="code" href="structolc_1_1_pixel.html#aeeaecb16a243ce3be52cd9261fdf2b23">operator !=</a>(<span class="keyword">const</span> <a class="code" href="structolc_1_1_pixel.html">Pixel</a>&amp; p) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00518"></a><span class="lineno"><a class="line" href="structolc_1_1_pixel.html#a15a61beedc23ca678a954567274e24de">  518</a></span>&#160;        <a class="code" href="structolc_1_1_pixel.html">Pixel</a>  <a class="code" href="structolc_1_1_pixel.html#a15a61beedc23ca678a954567274e24de">operator * </a>(<span class="keyword">const</span> <span class="keywordtype">float</span> i) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00519"></a><span class="lineno"><a class="line" href="structolc_1_1_pixel.html#a7fdcfa79f91368e834cc2ec66d9de769">  519</a></span>&#160;        <a class="code" href="structolc_1_1_pixel.html">Pixel</a>  <a class="code" href="structolc_1_1_pixel.html#a7fdcfa79f91368e834cc2ec66d9de769">operator / </a>(<span class="keyword">const</span> <span class="keywordtype">float</span> i) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00520"></a><span class="lineno"><a class="line" href="structolc_1_1_pixel.html#abace0545af22380831ffbc8bd1a66419">  520</a></span>&#160;        <a class="code" href="structolc_1_1_pixel.html">Pixel</a>&amp; <a class="code" href="structolc_1_1_pixel.html#abace0545af22380831ffbc8bd1a66419">operator *=</a>(<span class="keyword">const</span> <span class="keywordtype">float</span> i);</div>
+<div class="line"><a name="l00521"></a><span class="lineno"><a class="line" href="structolc_1_1_pixel.html#afd73fb0548d7232923f0ce707171e0da">  521</a></span>&#160;        <a class="code" href="structolc_1_1_pixel.html">Pixel</a>&amp; <a class="code" href="structolc_1_1_pixel.html#afd73fb0548d7232923f0ce707171e0da">operator /=</a>(<span class="keyword">const</span> <span class="keywordtype">float</span> i);</div>
+<div class="line"><a name="l00522"></a><span class="lineno"><a class="line" href="structolc_1_1_pixel.html#acb54675f2c61b989de500f8e6e56a9f6">  522</a></span>&#160;        <a class="code" href="structolc_1_1_pixel.html">Pixel</a>  <a class="code" href="structolc_1_1_pixel.html#acb54675f2c61b989de500f8e6e56a9f6">operator + </a>(<span class="keyword">const</span> <a class="code" href="structolc_1_1_pixel.html">Pixel</a>&amp; p) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00523"></a><span class="lineno"><a class="line" href="structolc_1_1_pixel.html#a1ac8b9d37f4c368b62b21b52df1f5937">  523</a></span>&#160;        <a class="code" href="structolc_1_1_pixel.html">Pixel</a>  <a class="code" href="structolc_1_1_pixel.html#a1ac8b9d37f4c368b62b21b52df1f5937">operator - </a>(<span class="keyword">const</span> <a class="code" href="structolc_1_1_pixel.html">Pixel</a>&amp; p) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00524"></a><span class="lineno"><a class="line" href="structolc_1_1_pixel.html#a39dc75f9f15c040c2d2715c66b13f4e0">  524</a></span>&#160;        <a class="code" href="structolc_1_1_pixel.html">Pixel</a>&amp; <a class="code" href="structolc_1_1_pixel.html#a39dc75f9f15c040c2d2715c66b13f4e0">operator +=</a>(<span class="keyword">const</span> <a class="code" href="structolc_1_1_pixel.html">Pixel</a>&amp; p);</div>
+<div class="line"><a name="l00525"></a><span class="lineno"><a class="line" href="structolc_1_1_pixel.html#a058f58406ca54ab73075f5e42125a65a">  525</a></span>&#160;        <a class="code" href="structolc_1_1_pixel.html">Pixel</a>&amp; <a class="code" href="structolc_1_1_pixel.html#a058f58406ca54ab73075f5e42125a65a">operator -=</a>(<span class="keyword">const</span> <a class="code" href="structolc_1_1_pixel.html">Pixel</a>&amp; p);</div>
+<div class="line"><a name="l00526"></a><span class="lineno"><a class="line" href="structolc_1_1_pixel.html#a8a1daba449fb823a4535a6089fe880ab">  526</a></span>&#160;        <a class="code" href="structolc_1_1_pixel.html">Pixel</a>  <a class="code" href="structolc_1_1_pixel.html#a8a1daba449fb823a4535a6089fe880ab">inv</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00527"></a><span class="lineno">  527</span>&#160;    };</div>
+<div class="line"><a name="l00528"></a><span class="lineno">  528</span>&#160; </div>
+<div class="line"><a name="l00529"></a><span class="lineno"><a class="line" href="namespaceolc.html#a06c9f23f2e370e7afe71788427a820fd">  529</a></span>&#160;    <a class="code" href="structolc_1_1_pixel.html">Pixel</a> <a class="code" href="namespaceolc.html#a06c9f23f2e370e7afe71788427a820fd">PixelF</a>(<span class="keywordtype">float</span> red, <span class="keywordtype">float</span> green, <span class="keywordtype">float</span> blue, <span class="keywordtype">float</span> alpha = 1.0f);</div>
+<div class="line"><a name="l00530"></a><span class="lineno"><a class="line" href="namespaceolc.html#a2069e5cf447f5dd311c680c9463f9c42">  530</a></span>&#160;    <a class="code" href="structolc_1_1_pixel.html">Pixel</a> <a class="code" href="namespaceolc.html#a2069e5cf447f5dd311c680c9463f9c42">PixelLerp</a>(<span class="keyword">const</span> <a class="code" href="structolc_1_1_pixel.html">olc::Pixel</a>&amp; p1, <span class="keyword">const</span> <a class="code" href="structolc_1_1_pixel.html">olc::Pixel</a>&amp; p2, <span class="keywordtype">float</span> t);</div>
+<div class="line"><a name="l00531"></a><span class="lineno">  531</span>&#160; </div>
+<div class="line"><a name="l00532"></a><span class="lineno">  532</span>&#160; </div>
+<div class="line"><a name="l00533"></a><span class="lineno">  533</span>&#160;    <span class="comment">// O------------------------------------------------------------------------------O</span></div>
+<div class="line"><a name="l00534"></a><span class="lineno">  534</span>&#160;    <span class="comment">// | USEFUL CONSTANTS                                                             |</span></div>
+<div class="line"><a name="l00535"></a><span class="lineno">  535</span>&#160;    <span class="comment">// O------------------------------------------------------------------------------O</span></div>
+<div class="line"><a name="l00536"></a><span class="lineno">  536</span>&#160;    <span class="keyword">static</span> <span class="keyword">const</span> <a class="code" href="structolc_1_1_pixel.html">Pixel</a></div>
+<div class="line"><a name="l00537"></a><span class="lineno"><a class="line" href="namespaceolc.html#a93de271d8b3cbd5aec73a085e6a6ec7a">  537</a></span>&#160;        GREY(192, 192, 192), <a class="code" href="namespaceolc.html#a7208a6ce62e94eca5b0ba80f7c2f5e30">DARK_GREY</a>(128, 128, 128), <a class="code" href="namespaceolc.html#a93de271d8b3cbd5aec73a085e6a6ec7a">VERY_DARK_GREY</a>(64, 64, 64),</div>
+<div class="line"><a name="l00538"></a><span class="lineno"><a class="line" href="namespaceolc.html#a82b6404acf7ac86f237179fc5f9a859f">  538</a></span>&#160;        <a class="code" href="namespaceolc.html#ad4579f7eb75a257d76bb657a268f0a8d">RED</a>(255, 0, 0), <a class="code" href="namespaceolc.html#a8265396ef812918ca95d2e7aa39c14cc">DARK_RED</a>(128, 0, 0), <a class="code" href="namespaceolc.html#a82b6404acf7ac86f237179fc5f9a859f">VERY_DARK_RED</a>(64, 0, 0),</div>
+<div class="line"><a name="l00539"></a><span class="lineno"><a class="line" href="namespaceolc.html#a6c9728f6dba8b58406bb0e10979b6ccf">  539</a></span>&#160;        <a class="code" href="namespaceolc.html#a6c9728f6dba8b58406bb0e10979b6ccf">YELLOW</a>(255, 255, 0), <a class="code" href="namespaceolc.html#a379f9d3a40edb1700299c031cd0b6a08">DARK_YELLOW</a>(128, 128, 0), <a class="code" href="namespaceolc.html#a131df56f1dd5cb0906cd02f9df49b17d">VERY_DARK_YELLOW</a>(64, 64, 0),</div>
+<div class="line"><a name="l00540"></a><span class="lineno"><a class="line" href="namespaceolc.html#a29c85b49a3c9cbd0b251e80e3bc57140">  540</a></span>&#160;        <a class="code" href="namespaceolc.html#a32b98884f548bf731eab3225557ebe8c">GREEN</a>(0, 255, 0), <a class="code" href="namespaceolc.html#ac192218acb2f30c4c3748485dd5e4ba0">DARK_GREEN</a>(0, 128, 0), <a class="code" href="namespaceolc.html#a29c85b49a3c9cbd0b251e80e3bc57140">VERY_DARK_GREEN</a>(0, 64, 0),</div>
+<div class="line"><a name="l00541"></a><span class="lineno"><a class="line" href="namespaceolc.html#aee6a06b446368ac58033b5ae4f4c6ca2">  541</a></span>&#160;        <a class="code" href="namespaceolc.html#a43ffa41e9a4a260b86da82b823e6a252">CYAN</a>(0, 255, 255), <a class="code" href="namespaceolc.html#aa0824f5fdd85c58712495a7bc0de191e">DARK_CYAN</a>(0, 128, 128), <a class="code" href="namespaceolc.html#aee6a06b446368ac58033b5ae4f4c6ca2">VERY_DARK_CYAN</a>(0, 64, 64),</div>
+<div class="line"><a name="l00542"></a><span class="lineno"><a class="line" href="namespaceolc.html#a48fb6375b9a7c0a0d44feaa879e7ebb7">  542</a></span>&#160;        <a class="code" href="namespaceolc.html#ac1e1d3e39e0b78e9767142c9daeba4ee">BLUE</a>(0, 0, 255), <a class="code" href="namespaceolc.html#ac6e041f71287438da8b9145758c4fe63">DARK_BLUE</a>(0, 0, 128), <a class="code" href="namespaceolc.html#a48fb6375b9a7c0a0d44feaa879e7ebb7">VERY_DARK_BLUE</a>(0, 0, 64),</div>
+<div class="line"><a name="l00543"></a><span class="lineno"><a class="line" href="namespaceolc.html#a150fed0369958dc77d3207298588bc94">  543</a></span>&#160;        <a class="code" href="namespaceolc.html#adc292fdc3c4d2a03e8c6bbad1853b727">MAGENTA</a>(255, 0, 255), <a class="code" href="namespaceolc.html#abad91f58a178a173f76ce7d9f9aa99c4">DARK_MAGENTA</a>(128, 0, 128), <a class="code" href="namespaceolc.html#a150fed0369958dc77d3207298588bc94">VERY_DARK_MAGENTA</a>(64, 0, 64),</div>
+<div class="line"><a name="l00544"></a><span class="lineno"><a class="line" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">  544</a></span>&#160;        <a class="code" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">WHITE</a>(255, 255, 255), <a class="code" href="namespaceolc.html#a183de1c471cfd6f45980bc9c2c58ed9d">BLACK</a>(0, 0, 0), <a class="code" href="namespaceolc.html#ac940e7f6502cbced06f26b4d13349166">BLANK</a>(0, 0, 0, 0);</div>
+<div class="line"><a name="l00545"></a><span class="lineno">  545</span>&#160; </div>
+<div class="line"><a name="l00546"></a><span class="lineno">  546</span>&#160;    <span class="comment">// Thanks to scripticuk and others for updating the key maps</span></div>
+<div class="line"><a name="l00547"></a><span class="lineno">  547</span>&#160;    <span class="comment">// NOTE: The GLUT platform will need updating, open to contributions ;)</span></div>
+<div class="line"><a name="l00548"></a><span class="lineno"><a class="line" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7">  548</a></span>&#160;    <span class="keyword">enum</span> <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7">Key</a></div>
+<div class="line"><a name="l00549"></a><span class="lineno">  549</span>&#160;    {</div>
+<div class="line"><a name="l00550"></a><span class="lineno"><a class="line" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a569010ded143bbdfd1b2dc8e82327b45">  550</a></span>&#160;        <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a569010ded143bbdfd1b2dc8e82327b45">NONE</a>,</div>
+<div class="line"><a name="l00551"></a><span class="lineno"><a class="line" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a7c408b7a6694f74ac270013753b13aaa">  551</a></span>&#160;        <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a3e1af6612f2964145f438bb63073098d">A</a>, <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a8baf1c6fa76f36bae92c12df88f4c84d">B</a>, <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7aaa5fe91e0948a39a142504c1f9067549">C</a>, <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a7323455add036f066f8b23546f0c37bb">D</a>, <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ad29058aa6514f4f9dcdefdba93adc8ec">E</a>, <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a614698cb99af6a9effa5d7ce88b2c674">F</a>, <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a1a7a9ef9ded3ee4bb7b7e4fbc69ae4b8">G</a>, <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a224c0773e09bdb7fb13683fbb4eeee1a">H</a>, <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ac242ddce5db0d462674ead1db3956a19">I</a>, <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a476769e330b87f2fb75aaa684c2f6373">J</a>, <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a136309f07b14d70a8561a69ca563bab7">K</a>, <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a4d809048542b770e810d48919c8f8500">L</a>, <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7afda4a6ac36e1870cd31522ac4e40a113">M</a>, <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ab9b5b3e2b7e4f47de4a8d84e03cd5911">N</a>, <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a7f95c3a8701b46a2cca143078d7e3aea">O</a>, <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a2af805290f6ef4b2de028b868debe170">P</a>, <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a6d49ec75b05a97e8714ac8c244ad29a8">Q</a>, <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a7417555746b2b1026b8ba65912817111">R</a>, <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a050dfda2928d980787eeebcaaa4e6fa7">S</a>, <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0">T</a>, <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a62c2493e1585db2af15cb70ac979fb09">U</a>, <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a170eaa7913d25c0ff02712bd93d7bf81">V</a>, <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ac1ae605c94e2d813c718148311c101d1">W</a>, <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a259dcb71eab0ee6c477f792543f43ec5">X</a>, <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a6207f4e5a37e546fa3881817046587b9">Y</a>, <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a7c408b7a6694f74ac270013753b13aaa">Z</a>,</div>
+<div class="line"><a name="l00552"></a><span class="lineno"><a class="line" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a949dddf48734610228c20566a33912bc">  552</a></span>&#160;        <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a2dd03c94eccd6d1259d4b2b51b7f85a7">K0</a>, <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a353892e1e3473d0a6d3427dd86080506">K1</a>, <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ab3b331dc3158175e2c567f7ebdf9fa75">K2</a>, <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7aba2ad21d300fb113ff4e82665800cf75">K3</a>, <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7aadd3a981032ec5fc07440dd0dbd1a3b3">K4</a>, <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a353906757178b0d48008b62cdca75332">K5</a>, <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a81afecef4b483614604bfc5341d8a2d5">K6</a>, <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a89291a8afb7ac7b481090dc97f643263">K7</a>, <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a636f4e49257a6476ad0aab590318672f">K8</a>, <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a949dddf48734610228c20566a33912bc">K9</a>,</div>
+<div class="line"><a name="l00553"></a><span class="lineno"><a class="line" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a2f2949bdd6d44b3c918531ebc30d8186">  553</a></span>&#160;        <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a17a119da4c7fd21cd061972ac8f8029a">F1</a>, <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a207c1404adcacfadf941ffc681485026">F2</a>, <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a573a484680114e221c1a3ecd8307d61a">F3</a>, <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a3c808be2b8b226138090bb3884bdc52b">F4</a>, <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ab9dd7de33e89c10afa7947bc5ff6fdea">F5</a>, <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a12e4309f479cd3e34476ef3be7986847">F6</a>, <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ac955ad4fdd41f4d3600b29da016fdf36">F7</a>, <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ab9ff66b449c18ecdb5b83a2e055e393b">F8</a>, <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a2f2949bdd6d44b3c918531ebc30d8186">F9</a>, <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7abe90f6618beb39117690b93a5c9d8ccb">F10</a>, <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7aba366840d455651d4cedc7f7ee4c770b">F11</a>, <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a9bc869632cc0095b7d8e456efd571969">F12</a>,</div>
+<div class="line"><a name="l00554"></a><span class="lineno"><a class="line" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a2b35f0b03e615b828187a990935344c4">  554</a></span>&#160;        <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a2b35f0b03e615b828187a990935344c4">UP</a>, <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a506f2ec576fcd3a8fabd37461bba83f8">DOWN</a>, <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a4da01be8126ba4113717cc6385ad22d2">LEFT</a>, <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a58e7b18972e446a03ce5ce915bc2d34d">RIGHT</a>,</div>
+<div class="line"><a name="l00555"></a><span class="lineno"><a class="line" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7aef93738bc8d89f07932dd1a603b021bd">  555</a></span>&#160;        <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a925d9a708542cd050a0b4f87bd7ba297">SPACE</a>, <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7aef93738bc8d89f07932dd1a603b021bd">TAB</a>, <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a4cd994e0e2285e9b52e129f74c84aa0b">SHIFT</a>, <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ae7e6e69075c36b0e44309aae888b86dc">CTRL</a>, <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a691b8388214af88a7794c43d31fbe16a">INS</a>, <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a5a979509d792ab38404b7a2aca12c981">DEL</a>, <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a29419f86c551b623c828f9530f301389">HOME</a>, <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a53394a407c13bf8192b2946607d27a0f">END</a>, <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a0bab26868b97eab537e7cad879d4b9a3">PGUP</a>, <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7aae334e3943922c2b16842afc5306a1e9">PGDN</a>,</div>
+<div class="line"><a name="l00556"></a><span class="lineno"><a class="line" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a44cf52f457ad06d45cd947c72c291ccc">  556</a></span>&#160;        <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a390af039d8a8c4ab71787f001f810521">BACK</a>, <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ac58fbe549b8c1a668c42a17d9e572b0f">ESCAPE</a>, <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a4f04a0bac23ee4f7b875d0328f29df27">RETURN</a>, <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a31321cae06dfe0989acbbe94c5272b33">ENTER</a>, <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a0bc227b9b4a43118d7500e8195806d74">PAUSE</a>, <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a44cf52f457ad06d45cd947c72c291ccc">SCROLL</a>,</div>
+<div class="line"><a name="l00557"></a><span class="lineno"><a class="line" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a53987c7c18a4a4479c4e1ff7f65c414e">  557</a></span>&#160;        <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a16054c3b1419b9679d95ac70ef262666">NP0</a>, <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a96c49dba90b7ecdfcf88e18c2842a964">NP1</a>, <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a7ca6517890a3566dbf758618f9c7690f">NP2</a>, <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7aab84341adb43a72b48030189f9919360">NP3</a>, <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a443551e4895cf1d2be984eba0bd7098e">NP4</a>, <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a0ba7e1a6dbc9d1291a40172a09bb49a4">NP5</a>, <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ad6aae0ca10843b8046ee0186af4e42f9">NP6</a>, <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7afee25adbffa6e8fc092d52193195182f">NP7</a>, <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a468bb1704a74fc6e42d28e7bee8ecb51">NP8</a>, <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a53987c7c18a4a4479c4e1ff7f65c414e">NP9</a>,</div>
+<div class="line"><a name="l00558"></a><span class="lineno"><a class="line" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a1adffcecf8c735b404ac6eedf220ae5a">  558</a></span>&#160;        <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ae2ce826d1d0de6429f9f28a19d11edfb">NP_MUL</a>, <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7aee5afd77eb82eb3111195ee300ff3714">NP_DIV</a>, <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7af15830fd3562b144e15a9d8abeb6c118">NP_ADD</a>, <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7aade223a1643f8d607eb44fff1bbaae8e">NP_SUB</a>, <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a2c21f93f355bf0a6baa7e205acd86b50">NP_DECIMAL</a>, <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a1adffcecf8c735b404ac6eedf220ae5a">PERIOD</a>,</div>
+<div class="line"><a name="l00559"></a><span class="lineno"><a class="line" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a4b3a1d83a513de0e2c3c8ba2a8a5fd2d">  559</a></span>&#160;        <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7aa82c0ef0b75db6208407e90f6f77f002">EQUALS</a>, <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ae2fab0c220f54cd28729c9340951ecb4">COMMA</a>, <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a4b3a1d83a513de0e2c3c8ba2a8a5fd2d">MINUS</a>,</div>
+<div class="line"><a name="l00560"></a><span class="lineno"><a class="line" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ab719317cfd8ac665e8cc2f420f74b46a">  560</a></span>&#160;        <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a3a044efaf7d74df21e84a29063006eae">OEM_1</a>, <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ad29833dd46d756ecf0e9d477d0845450">OEM_2</a>, <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7abb25924adf005b39efaef185f332a3ad">OEM_3</a>, <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7aa09e2508e2f2fd372d3e37ebdfce6814">OEM_4</a>, <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ad7e69e28cedaf91718aa4801d5a3bdb7">OEM_5</a>, <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7af2cec59ecc924be0b636e5b767abf29f">OEM_6</a>, <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a3dada7cdf09fb367c10c650e9bce7bfa">OEM_7</a>, <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ab719317cfd8ac665e8cc2f420f74b46a">OEM_8</a>,</div>
+<div class="line"><a name="l00561"></a><span class="lineno"><a class="line" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a523c88e17275650861203e32067dde01">  561</a></span>&#160;        <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a523c88e17275650861203e32067dde01">CAPS_LOCK</a>, <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a35430b793d6fae00ed8b060cb0accf32">ENUM_END</a></div>
+<div class="line"><a name="l00562"></a><span class="lineno"><a class="line" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a35430b793d6fae00ed8b060cb0accf32">  562</a></span>&#160;    };</div>
+<div class="line"><a name="l00563"></a><span class="lineno">  563</span>&#160; </div>
+<div class="line"><a name="l00564"></a><span class="lineno">  564</span>&#160;    <span class="comment">// O------------------------------------------------------------------------------O</span></div>
+<div class="line"><a name="l00565"></a><span class="lineno">  565</span>&#160;    <span class="comment">// | olc::HWButton - Represents the state of a hardware button (mouse/key/joy)    |</span></div>
+<div class="line"><a name="l00566"></a><span class="lineno">  566</span>&#160;    <span class="comment">// O------------------------------------------------------------------------------O</span></div>
+<div class="line"><a name="l00567"></a><span class="lineno"><a class="line" href="structolc_1_1_h_w_button.html">  567</a></span>&#160;    <span class="keyword">struct </span><a class="code" href="structolc_1_1_h_w_button.html">HWButton</a></div>
+<div class="line"><a name="l00568"></a><span class="lineno">  568</span>&#160;    {</div>
+<div class="line"><a name="l00569"></a><span class="lineno"><a class="line" href="structolc_1_1_h_w_button.html#a0c379d6a109299fc0a1c872ebbb2f4d9">  569</a></span>&#160;        <span class="keywordtype">bool</span> <a class="code" href="structolc_1_1_h_w_button.html#a0c379d6a109299fc0a1c872ebbb2f4d9">bPressed</a> = <span class="keyword">false</span>;  <span class="comment">// Set once during the frame the event occurs</span></div>
+<div class="line"><a name="l00570"></a><span class="lineno"><a class="line" href="structolc_1_1_h_w_button.html#a2576b36bdf00033f78fa1cdcabfa2a00">  570</a></span>&#160;        <span class="keywordtype">bool</span> <a class="code" href="structolc_1_1_h_w_button.html#a2576b36bdf00033f78fa1cdcabfa2a00">bReleased</a> = <span class="keyword">false</span>; <span class="comment">// Set once during the frame the event occurs</span></div>
+<div class="line"><a name="l00571"></a><span class="lineno"><a class="line" href="structolc_1_1_h_w_button.html#a6d872a5aeb23aba39103b95093c63cb7">  571</a></span>&#160;        <span class="keywordtype">bool</span> <a class="code" href="structolc_1_1_h_w_button.html#a6d872a5aeb23aba39103b95093c63cb7">bHeld</a> = <span class="keyword">false</span>;     <span class="comment">// Set true for all frames between pressed and released events</span></div>
+<div class="line"><a name="l00572"></a><span class="lineno">  572</span>&#160;    };</div>
+<div class="line"><a name="l00573"></a><span class="lineno">  573</span>&#160; </div>
+<div class="line"><a name="l00574"></a><span class="lineno">  574</span>&#160; </div>
+<div class="line"><a name="l00575"></a><span class="lineno">  575</span>&#160; </div>
+<div class="line"><a name="l00576"></a><span class="lineno">  576</span>&#160; </div>
+<div class="line"><a name="l00577"></a><span class="lineno">  577</span>&#160;    <span class="comment">// O------------------------------------------------------------------------------O</span></div>
+<div class="line"><a name="l00578"></a><span class="lineno">  578</span>&#160;    <span class="comment">// | olc::vX2d - A generic 2D vector type                                         |</span></div>
+<div class="line"><a name="l00579"></a><span class="lineno">  579</span>&#160;    <span class="comment">// O------------------------------------------------------------------------------O</span></div>
+<div class="line"><a name="l00580"></a><span class="lineno">  580</span>&#160;<span class="preprocessor">#if !defined(OLC_IGNORE_VEC2D)</span></div>
+<div class="line"><a name="l00581"></a><span class="lineno">  581</span>&#160;    <span class="keyword">template</span> &lt;<span class="keyword">class</span> T&gt;</div>
+<div class="line"><a name="l00582"></a><span class="lineno"><a class="line" href="structolc_1_1v2d__generic.html">  582</a></span>&#160;    <span class="keyword">struct </span><a class="code" href="structolc_1_1v2d__generic.html">v2d_generic</a></div>
+<div class="line"><a name="l00583"></a><span class="lineno">  583</span>&#160;    {</div>
+<div class="line"><a name="l00584"></a><span class="lineno"><a class="line" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">  584</a></span>&#160;        <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0">T</a> <a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a> = 0;</div>
+<div class="line"><a name="l00585"></a><span class="lineno"><a class="line" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">  585</a></span>&#160;        <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0">T</a> <a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a> = 0;</div>
+<div class="line"><a name="l00586"></a><span class="lineno"><a class="line" href="structolc_1_1v2d__generic.html#aba35d326b62454a5fbdeea4220438784">  586</a></span>&#160;        <a class="code" href="structolc_1_1v2d__generic.html#aba35d326b62454a5fbdeea4220438784">v2d_generic</a>() : <a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a>(0), <a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a>(0) {}</div>
+<div class="line"><a name="l00587"></a><span class="lineno"><a class="line" href="structolc_1_1v2d__generic.html#a2fc62e52adae5f9e4138adf073afddb0">  587</a></span>&#160;        <a class="code" href="structolc_1_1v2d__generic.html#a2fc62e52adae5f9e4138adf073afddb0">v2d_generic</a>(<a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0">T</a> _x, <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0">T</a> _y) : <a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a>(_x), <a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a>(_y) {}</div>
+<div class="line"><a name="l00588"></a><span class="lineno"><a class="line" href="structolc_1_1v2d__generic.html#a7897de7e3e5f2a0e6ba1d2aef2015fce">  588</a></span>&#160;        <a class="code" href="structolc_1_1v2d__generic.html#a7897de7e3e5f2a0e6ba1d2aef2015fce">v2d_generic</a>(<span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">v2d_generic</a>&amp; v) : <a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a>(v.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a>), <a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a>(v.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a>) {}</div>
+<div class="line"><a name="l00589"></a><span class="lineno"><a class="line" href="structolc_1_1v2d__generic.html#adff36d90ca79f24401a31cbde706bf8c">  589</a></span>&#160;        <a class="code" href="structolc_1_1v2d__generic.html">v2d_generic</a>&amp; <a class="code" href="structolc_1_1v2d__generic.html#adff36d90ca79f24401a31cbde706bf8c">operator=</a>(<span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">v2d_generic</a>&amp; v) = <span class="keywordflow">default</span>;</div>
+<div class="line"><a name="l00590"></a><span class="lineno"><a class="line" href="structolc_1_1v2d__generic.html#ab06016810fe727fa826e43e44e02008b">  590</a></span>&#160;        <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0">T</a> <a class="code" href="structolc_1_1v2d__generic.html#ab06016810fe727fa826e43e44e02008b">mag</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0">T</a>(std::sqrt(<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a> * <a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a> + <a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a> * <a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a>)); }</div>
+<div class="line"><a name="l00591"></a><span class="lineno"><a class="line" href="structolc_1_1v2d__generic.html#a6b83d7375119637fdf65233cf6dae947">  591</a></span>&#160;        <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0">T</a> <a class="code" href="structolc_1_1v2d__generic.html#a6b83d7375119637fdf65233cf6dae947">mag2</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a> * <a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a> + <a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a> * <a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a>; }</div>
+<div class="line"><a name="l00592"></a><span class="lineno"><a class="line" href="structolc_1_1v2d__generic.html#a9c62f12d51859a5a487c5a0c2d00b09a">  592</a></span>&#160;        <a class="code" href="structolc_1_1v2d__generic.html">v2d_generic</a>  <a class="code" href="structolc_1_1v2d__generic.html#a9c62f12d51859a5a487c5a0c2d00b09a">norm</a>()<span class="keyword"> const </span>{ <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0">T</a> r = 1 / <a class="code" href="structolc_1_1v2d__generic.html#ab06016810fe727fa826e43e44e02008b">mag</a>(); <span class="keywordflow">return</span> <a class="code" href="structolc_1_1v2d__generic.html#aba35d326b62454a5fbdeea4220438784">v2d_generic</a>(<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a> * r, <a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a> * r); }</div>
+<div class="line"><a name="l00593"></a><span class="lineno"><a class="line" href="structolc_1_1v2d__generic.html#a8275a944d309dc4b58f60cbc2925a7cc">  593</a></span>&#160;        <a class="code" href="structolc_1_1v2d__generic.html">v2d_generic</a>  <a class="code" href="structolc_1_1v2d__generic.html#a8275a944d309dc4b58f60cbc2925a7cc">perp</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="structolc_1_1v2d__generic.html#aba35d326b62454a5fbdeea4220438784">v2d_generic</a>(-<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a>, <a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a>); }</div>
+<div class="line"><a name="l00594"></a><span class="lineno"><a class="line" href="structolc_1_1v2d__generic.html#affe50148d448ff75c298da3a1fd45323">  594</a></span>&#160;        <a class="code" href="structolc_1_1v2d__generic.html">v2d_generic</a>  <a class="code" href="structolc_1_1v2d__generic.html#affe50148d448ff75c298da3a1fd45323">floor</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="structolc_1_1v2d__generic.html#aba35d326b62454a5fbdeea4220438784">v2d_generic</a>(std::floor(<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a>), std::floor(<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a>)); }</div>
+<div class="line"><a name="l00595"></a><span class="lineno"><a class="line" href="structolc_1_1v2d__generic.html#a65efb6611304b590a2cb45781b1c34cc">  595</a></span>&#160;        <a class="code" href="structolc_1_1v2d__generic.html">v2d_generic</a>  <a class="code" href="structolc_1_1v2d__generic.html#a65efb6611304b590a2cb45781b1c34cc">ceil</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="structolc_1_1v2d__generic.html#aba35d326b62454a5fbdeea4220438784">v2d_generic</a>(std::ceil(<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a>), std::ceil(<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a>)); }</div>
+<div class="line"><a name="l00596"></a><span class="lineno"><a class="line" href="structolc_1_1v2d__generic.html#a1fe55d8bc22dbb400583cb68cc9e3e36">  596</a></span>&#160;        <a class="code" href="structolc_1_1v2d__generic.html">v2d_generic</a>  <a class="code" href="structolc_1_1v2d__generic.html#a1fe55d8bc22dbb400583cb68cc9e3e36">max</a>(<span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">v2d_generic</a>&amp; v)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="structolc_1_1v2d__generic.html#aba35d326b62454a5fbdeea4220438784">v2d_generic</a>(std::max(<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a>, v.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a>), std::max(<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a>, v.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a>)); }</div>
+<div class="line"><a name="l00597"></a><span class="lineno"><a class="line" href="structolc_1_1v2d__generic.html#aec7b204ad597ee0edc9a444ff3a242eb">  597</a></span>&#160;        <a class="code" href="structolc_1_1v2d__generic.html">v2d_generic</a>  <a class="code" href="structolc_1_1v2d__generic.html#aec7b204ad597ee0edc9a444ff3a242eb">min</a>(<span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">v2d_generic</a>&amp; v)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="structolc_1_1v2d__generic.html#aba35d326b62454a5fbdeea4220438784">v2d_generic</a>(std::min(<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a>, v.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a>), std::min(<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a>, v.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a>)); }</div>
+<div class="line"><a name="l00598"></a><span class="lineno"><a class="line" href="structolc_1_1v2d__generic.html#ad2e96c716c487677bbde6966464fc482">  598</a></span>&#160;        <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0">T</a> <a class="code" href="structolc_1_1v2d__generic.html#ad2e96c716c487677bbde6966464fc482">dot</a>(<span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">v2d_generic</a>&amp; rhs)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> this-&gt;x * rhs.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a> + this-&gt;y * rhs.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a>; }</div>
+<div class="line"><a name="l00599"></a><span class="lineno"><a class="line" href="structolc_1_1v2d__generic.html#a1febe5d22672d7d0121526577bf3b535">  599</a></span>&#160;        <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0">T</a> <a class="code" href="structolc_1_1v2d__generic.html#a1febe5d22672d7d0121526577bf3b535">cross</a>(<span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">v2d_generic</a>&amp; rhs)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> this-&gt;x * rhs.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a> - this-&gt;y * rhs.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a>; }</div>
+<div class="line"><a name="l00600"></a><span class="lineno"><a class="line" href="structolc_1_1v2d__generic.html#a5ae3f55fd12af9bf44a2837ad76ea7dd">  600</a></span>&#160;        <a class="code" href="structolc_1_1v2d__generic.html">v2d_generic</a>  <a class="code" href="structolc_1_1v2d__generic.html#a70a7c59a5b9b9fac0de8a823633abb08">operator +  </a>(<span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">v2d_generic</a>&amp; rhs)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="structolc_1_1v2d__generic.html#aba35d326b62454a5fbdeea4220438784">v2d_generic</a>(this-&gt;x + rhs.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a>, this-&gt;y + rhs.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a>); }</div>
+<div class="line"><a name="l00601"></a><span class="lineno"><a class="line" href="structolc_1_1v2d__generic.html#a64e053d62d2826193f6a058ee120c6e2">  601</a></span>&#160;        <a class="code" href="structolc_1_1v2d__generic.html">v2d_generic</a>  <a class="code" href="structolc_1_1v2d__generic.html#a9eff196e75aeffcd96bffb64de04219d">operator -  </a>(<span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">v2d_generic</a>&amp; rhs)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="structolc_1_1v2d__generic.html#aba35d326b62454a5fbdeea4220438784">v2d_generic</a>(this-&gt;x - rhs.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a>, this-&gt;y - rhs.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a>); }</div>
+<div class="line"><a name="l00602"></a><span class="lineno"><a class="line" href="structolc_1_1v2d__generic.html#a542487700e63b2e30940d64b75c3d3db">  602</a></span>&#160;        <a class="code" href="structolc_1_1v2d__generic.html">v2d_generic</a>  <a class="code" href="structolc_1_1v2d__generic.html#a542487700e63b2e30940d64b75c3d3db">operator *  </a>(<span class="keyword">const</span> <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0">T</a>&amp; rhs)<span class="keyword">           const </span>{ <span class="keywordflow">return</span> <a class="code" href="structolc_1_1v2d__generic.html#aba35d326b62454a5fbdeea4220438784">v2d_generic</a>(this-&gt;x * rhs, this-&gt;y * rhs); }</div>
+<div class="line"><a name="l00603"></a><span class="lineno"><a class="line" href="structolc_1_1v2d__generic.html#a78e7362a3b955735c0389c6a5c7b32f0">  603</a></span>&#160;        <a class="code" href="structolc_1_1v2d__generic.html">v2d_generic</a>  <a class="code" href="structolc_1_1v2d__generic.html#a542487700e63b2e30940d64b75c3d3db">operator *  </a>(<span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">v2d_generic</a>&amp; rhs)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="structolc_1_1v2d__generic.html#aba35d326b62454a5fbdeea4220438784">v2d_generic</a>(this-&gt;x * rhs.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a>, this-&gt;y * rhs.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a>); }</div>
+<div class="line"><a name="l00604"></a><span class="lineno"><a class="line" href="structolc_1_1v2d__generic.html#a1f1138ee06adae0eaffe900b0437b896">  604</a></span>&#160;        <a class="code" href="structolc_1_1v2d__generic.html">v2d_generic</a>  <a class="code" href="structolc_1_1v2d__generic.html#a1f1138ee06adae0eaffe900b0437b896">operator /  </a>(<span class="keyword">const</span> <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0">T</a>&amp; rhs)<span class="keyword">           const </span>{ <span class="keywordflow">return</span> <a class="code" href="structolc_1_1v2d__generic.html#aba35d326b62454a5fbdeea4220438784">v2d_generic</a>(this-&gt;x / rhs, this-&gt;y / rhs); }</div>
+<div class="line"><a name="l00605"></a><span class="lineno"><a class="line" href="structolc_1_1v2d__generic.html#adcf0004e01ba1d8c813cdcb6525eb1c6">  605</a></span>&#160;        <a class="code" href="structolc_1_1v2d__generic.html">v2d_generic</a>  <a class="code" href="structolc_1_1v2d__generic.html#a1f1138ee06adae0eaffe900b0437b896">operator /  </a>(<span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">v2d_generic</a>&amp; rhs)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="structolc_1_1v2d__generic.html#aba35d326b62454a5fbdeea4220438784">v2d_generic</a>(this-&gt;x / rhs.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a>, this-&gt;y / rhs.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a>); }</div>
+<div class="line"><a name="l00606"></a><span class="lineno"><a class="line" href="structolc_1_1v2d__generic.html#ac57326846384068beaaddec0674b65d2">  606</a></span>&#160;        <a class="code" href="structolc_1_1v2d__generic.html">v2d_generic</a>&amp; <a class="code" href="structolc_1_1v2d__generic.html#ac57326846384068beaaddec0674b65d2">operator += </a>(<span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">v2d_generic</a>&amp; rhs) { this-&gt;x += rhs.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a>; this-&gt;y += rhs.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a>; <span class="keywordflow">return</span> *<span class="keyword">this</span>; }</div>
+<div class="line"><a name="l00607"></a><span class="lineno"><a class="line" href="structolc_1_1v2d__generic.html#af3e8b94c4921f8d81b4112b319bd7f6d">  607</a></span>&#160;        <a class="code" href="structolc_1_1v2d__generic.html">v2d_generic</a>&amp; <a class="code" href="structolc_1_1v2d__generic.html#af3e8b94c4921f8d81b4112b319bd7f6d">operator -= </a>(<span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">v2d_generic</a>&amp; rhs) { this-&gt;x -= rhs.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a>; this-&gt;y -= rhs.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a>; <span class="keywordflow">return</span> *<span class="keyword">this</span>; }</div>
+<div class="line"><a name="l00608"></a><span class="lineno"><a class="line" href="structolc_1_1v2d__generic.html#a35c81946f320da79fa5a33e595873252">  608</a></span>&#160;        <a class="code" href="structolc_1_1v2d__generic.html">v2d_generic</a>&amp; <a class="code" href="structolc_1_1v2d__generic.html#a35c81946f320da79fa5a33e595873252">operator *= </a>(<span class="keyword">const</span> <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0">T</a>&amp; rhs) { this-&gt;x *= rhs; this-&gt;y *= rhs; <span class="keywordflow">return</span> *<span class="keyword">this</span>; }</div>
+<div class="line"><a name="l00609"></a><span class="lineno"><a class="line" href="structolc_1_1v2d__generic.html#a88a5aa098b5ada7667a7900a0bc9bba2">  609</a></span>&#160;        <a class="code" href="structolc_1_1v2d__generic.html">v2d_generic</a>&amp; <a class="code" href="structolc_1_1v2d__generic.html#a88a5aa098b5ada7667a7900a0bc9bba2">operator /= </a>(<span class="keyword">const</span> <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0">T</a>&amp; rhs) { this-&gt;x /= rhs; this-&gt;y /= rhs; <span class="keywordflow">return</span> *<span class="keyword">this</span>; }</div>
+<div class="line"><a name="l00610"></a><span class="lineno"><a class="line" href="structolc_1_1v2d__generic.html#a2a0fb49722257578bfc148a273b4c1c5">  610</a></span>&#160;        <a class="code" href="structolc_1_1v2d__generic.html">v2d_generic</a>&amp; <a class="code" href="structolc_1_1v2d__generic.html#a35c81946f320da79fa5a33e595873252">operator *= </a>(<span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">v2d_generic</a>&amp; rhs) { this-&gt;x *= rhs.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a>; this-&gt;y *= rhs.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a>; <span class="keywordflow">return</span> *<span class="keyword">this</span>; }</div>
+<div class="line"><a name="l00611"></a><span class="lineno"><a class="line" href="structolc_1_1v2d__generic.html#a8e035b45f69db29e4cac698658ad4de1">  611</a></span>&#160;        <a class="code" href="structolc_1_1v2d__generic.html">v2d_generic</a>&amp; <a class="code" href="structolc_1_1v2d__generic.html#a88a5aa098b5ada7667a7900a0bc9bba2">operator /= </a>(<span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">v2d_generic</a>&amp; rhs) { this-&gt;x /= rhs.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a>; this-&gt;y /= rhs.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a>; <span class="keywordflow">return</span> *<span class="keyword">this</span>; }</div>
+<div class="line"><a name="l00612"></a><span class="lineno"><a class="line" href="structolc_1_1v2d__generic.html#a70a7c59a5b9b9fac0de8a823633abb08">  612</a></span>&#160;        <a class="code" href="structolc_1_1v2d__generic.html">v2d_generic</a>  <a class="code" href="structolc_1_1v2d__generic.html#a70a7c59a5b9b9fac0de8a823633abb08">operator +  </a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> { +<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a>, +<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a> }; }</div>
+<div class="line"><a name="l00613"></a><span class="lineno"><a class="line" href="structolc_1_1v2d__generic.html#a9eff196e75aeffcd96bffb64de04219d">  613</a></span>&#160;        <a class="code" href="structolc_1_1v2d__generic.html">v2d_generic</a>  <a class="code" href="structolc_1_1v2d__generic.html#a9eff196e75aeffcd96bffb64de04219d">operator -  </a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> { -<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a>, -<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a> }; }</div>
+<div class="line"><a name="l00614"></a><span class="lineno"><a class="line" href="structolc_1_1v2d__generic.html#ace104acaa0ef181acb36fe75d0aed683">  614</a></span>&#160;        <span class="keywordtype">bool</span> <a class="code" href="structolc_1_1v2d__generic.html#ace104acaa0ef181acb36fe75d0aed683">operator == </a>(<span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">v2d_generic</a>&amp; rhs)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> (this-&gt;x == rhs.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a> &amp;&amp; this-&gt;y == rhs.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a>); }</div>
+<div class="line"><a name="l00615"></a><span class="lineno"><a class="line" href="structolc_1_1v2d__generic.html#abd9af6a38bc73471874665f508ff10b6">  615</a></span>&#160;        <span class="keywordtype">bool</span> <a class="code" href="structolc_1_1v2d__generic.html#abd9af6a38bc73471874665f508ff10b6">operator != </a>(<span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">v2d_generic</a>&amp; rhs)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> (this-&gt;x != rhs.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a> || this-&gt;y != rhs.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a>); }</div>
+<div class="line"><a name="l00616"></a><span class="lineno"><a class="line" href="structolc_1_1v2d__generic.html#a88a794a4e9ec632f215afbeb04b354c8">  616</a></span>&#160;        <span class="keyword">const</span> std::string <a class="code" href="structolc_1_1v2d__generic.html#a88a794a4e9ec632f215afbeb04b354c8">str</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> std::string(<span class="stringliteral">&quot;(&quot;</span>) + std::to_string(this-&gt;x) + <span class="stringliteral">&quot;,&quot;</span> + std::to_string(this-&gt;y) + <span class="stringliteral">&quot;)&quot;</span>; }</div>
+<div class="line"><a name="l00617"></a><span class="lineno"><a class="line" href="structolc_1_1v2d__generic.html#afeb5dac5960ca80197ad7ce455ed190c">  617</a></span>&#160;        <span class="keyword">friend</span> std::ostream&amp; <a class="code" href="structolc_1_1v2d__generic.html#afeb5dac5960ca80197ad7ce455ed190c">operator &lt;&lt; </a>(std::ostream&amp; os, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">v2d_generic</a>&amp; rhs) { os &lt;&lt; rhs.<a class="code" href="structolc_1_1v2d__generic.html#a88a794a4e9ec632f215afbeb04b354c8">str</a>(); <span class="keywordflow">return</span> os; }</div>
+<div class="line"><a name="l00618"></a><span class="lineno"><a class="line" href="structolc_1_1v2d__generic.html#a2bf267ac209cca361df72649a5aac92c">  618</a></span>&#160;        <span class="keyword">operator</span> <a class="code" href="structolc_1_1v2d__generic.html">v2d_generic&lt;int32_t&gt;</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> { <span class="keyword">static_cast&lt;</span>int32_t<span class="keyword">&gt;</span>(this-&gt;<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a>), <span class="keyword">static_cast&lt;</span>int32_t<span class="keyword">&gt;</span>(this-&gt;y) }; }</div>
+<div class="line"><a name="l00619"></a><span class="lineno"><a class="line" href="structolc_1_1v2d__generic.html#a7fd9786ec8121d50addc3dd624ca21eb">  619</a></span>&#160;        <span class="keyword">operator</span> <a class="code" href="structolc_1_1v2d__generic.html">v2d_generic&lt;float&gt;</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> { <span class="keyword">static_cast&lt;</span><span class="keywordtype">float</span><span class="keyword">&gt;</span>(this-&gt;<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a>), <span class="keyword">static_cast&lt;</span><span class="keywordtype">float</span><span class="keyword">&gt;</span>(this-&gt;y) }; }</div>
+<div class="line"><a name="l00620"></a><span class="lineno"><a class="line" href="structolc_1_1v2d__generic.html#a5b722f332f64d260741ef8322cca5cce">  620</a></span>&#160;        <span class="keyword">operator</span> <a class="code" href="structolc_1_1v2d__generic.html">v2d_generic&lt;double&gt;</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> { <span class="keyword">static_cast&lt;</span><span class="keywordtype">double</span><span class="keyword">&gt;</span>(this-&gt;<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a>), <span class="keyword">static_cast&lt;</span><span class="keywordtype">double</span><span class="keyword">&gt;</span>(this-&gt;y) }; }</div>
+<div class="line"><a name="l00621"></a><span class="lineno">  621</span>&#160;    };</div>
+<div class="line"><a name="l00622"></a><span class="lineno">  622</span>&#160; </div>
+<div class="line"><a name="l00623"></a><span class="lineno">  623</span>&#160;    <span class="comment">// Note: joshinils has some good suggestions here, but they are complicated to implement at this moment, </span></div>
+<div class="line"><a name="l00624"></a><span class="lineno">  624</span>&#160;    <span class="comment">// however they will appear in a future version of PGE</span></div>
+<div class="line"><a name="l00625"></a><span class="lineno"><a class="line" href="namespaceolc.html#a0cb5b54cc54cf0c92741da285010e1e5">  625</a></span>&#160;    <span class="keyword">template</span>&lt;<span class="keyword">class</span> T&gt; <span class="keyword">inline</span> <a class="code" href="structolc_1_1v2d__generic.html">v2d_generic&lt;T&gt;</a> <a class="code" href="namespaceolc.html#a0cb5b54cc54cf0c92741da285010e1e5">operator * </a>(<span class="keyword">const</span> <span class="keywordtype">float</span>&amp; lhs, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">v2d_generic&lt;T&gt;</a>&amp; rhs)</div>
+<div class="line"><a name="l00626"></a><span class="lineno">  626</span>&#160;    { <span class="keywordflow">return</span> <a class="code" href="structolc_1_1v2d__generic.html">v2d_generic&lt;T&gt;</a>((<a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0">T</a>)(lhs * (<span class="keywordtype">float</span>)rhs.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a>), (<a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0">T</a>)(lhs * (<span class="keywordtype">float</span>)rhs.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a>)); }</div>
+<div class="line"><a name="l00627"></a><span class="lineno"><a class="line" href="namespaceolc.html#a9a03952e9e6c1c40c2512560ac182382">  627</a></span>&#160;    <span class="keyword">template</span>&lt;<span class="keyword">class</span> T&gt; <span class="keyword">inline</span> <a class="code" href="structolc_1_1v2d__generic.html">v2d_generic&lt;T&gt;</a> <a class="code" href="namespaceolc.html#a0cb5b54cc54cf0c92741da285010e1e5">operator * </a>(<span class="keyword">const</span> <span class="keywordtype">double</span>&amp; lhs, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">v2d_generic&lt;T&gt;</a>&amp; rhs)</div>
+<div class="line"><a name="l00628"></a><span class="lineno">  628</span>&#160;    { <span class="keywordflow">return</span> <a class="code" href="structolc_1_1v2d__generic.html">v2d_generic&lt;T&gt;</a>((<a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0">T</a>)(lhs * (<span class="keywordtype">double</span>)rhs.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a>), (<a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0">T</a>)(lhs * (<span class="keywordtype">double</span>)rhs.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a>)); }</div>
+<div class="line"><a name="l00629"></a><span class="lineno"><a class="line" href="namespaceolc.html#ab04d4eba2afcfda14b1045bace972a76">  629</a></span>&#160;    <span class="keyword">template</span>&lt;<span class="keyword">class</span> T&gt; <span class="keyword">inline</span> <a class="code" href="structolc_1_1v2d__generic.html">v2d_generic&lt;T&gt;</a> <a class="code" href="namespaceolc.html#a0cb5b54cc54cf0c92741da285010e1e5">operator * </a>(<span class="keyword">const</span> <span class="keywordtype">int</span>&amp; lhs, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">v2d_generic&lt;T&gt;</a>&amp; rhs)</div>
+<div class="line"><a name="l00630"></a><span class="lineno">  630</span>&#160;    { <span class="keywordflow">return</span> <a class="code" href="structolc_1_1v2d__generic.html">v2d_generic&lt;T&gt;</a>((<a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0">T</a>)(lhs * (<span class="keywordtype">int</span>)rhs.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a>), (<a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0">T</a>)(lhs * (<span class="keywordtype">int</span>)rhs.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a>)); }</div>
+<div class="line"><a name="l00631"></a><span class="lineno"><a class="line" href="namespaceolc.html#a6448f6127e1003cd9287161c5c4d52e0">  631</a></span>&#160;    <span class="keyword">template</span>&lt;<span class="keyword">class</span> T&gt; <span class="keyword">inline</span> <a class="code" href="structolc_1_1v2d__generic.html">v2d_generic&lt;T&gt;</a> <a class="code" href="namespaceolc.html#a6448f6127e1003cd9287161c5c4d52e0">operator / </a>(<span class="keyword">const</span> <span class="keywordtype">float</span>&amp; lhs, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">v2d_generic&lt;T&gt;</a>&amp; rhs)</div>
+<div class="line"><a name="l00632"></a><span class="lineno">  632</span>&#160;    { <span class="keywordflow">return</span> <a class="code" href="structolc_1_1v2d__generic.html">v2d_generic&lt;T&gt;</a>((<a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0">T</a>)(lhs / (<span class="keywordtype">float</span>)rhs.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a>), (<a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0">T</a>)(lhs / (<span class="keywordtype">float</span>)rhs.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a>)); }</div>
+<div class="line"><a name="l00633"></a><span class="lineno"><a class="line" href="namespaceolc.html#a879e763a12d6fbc6b4d3e2aac7b4c85a">  633</a></span>&#160;    <span class="keyword">template</span>&lt;<span class="keyword">class</span> T&gt; <span class="keyword">inline</span> <a class="code" href="structolc_1_1v2d__generic.html">v2d_generic&lt;T&gt;</a> <a class="code" href="namespaceolc.html#a6448f6127e1003cd9287161c5c4d52e0">operator / </a>(<span class="keyword">const</span> <span class="keywordtype">double</span>&amp; lhs, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">v2d_generic&lt;T&gt;</a>&amp; rhs)</div>
+<div class="line"><a name="l00634"></a><span class="lineno">  634</span>&#160;    { <span class="keywordflow">return</span> <a class="code" href="structolc_1_1v2d__generic.html">v2d_generic&lt;T&gt;</a>((<a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0">T</a>)(lhs / (<span class="keywordtype">double</span>)rhs.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a>), (<a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0">T</a>)(lhs / (<span class="keywordtype">double</span>)rhs.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a>)); }</div>
+<div class="line"><a name="l00635"></a><span class="lineno"><a class="line" href="namespaceolc.html#a302501c3eb64a99ffa93feac2cc46115">  635</a></span>&#160;    <span class="keyword">template</span>&lt;<span class="keyword">class</span> T&gt; <span class="keyword">inline</span> <a class="code" href="structolc_1_1v2d__generic.html">v2d_generic&lt;T&gt;</a> <a class="code" href="namespaceolc.html#a6448f6127e1003cd9287161c5c4d52e0">operator / </a>(<span class="keyword">const</span> <span class="keywordtype">int</span>&amp; lhs, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">v2d_generic&lt;T&gt;</a>&amp; rhs)</div>
+<div class="line"><a name="l00636"></a><span class="lineno">  636</span>&#160;    { <span class="keywordflow">return</span> <a class="code" href="structolc_1_1v2d__generic.html">v2d_generic&lt;T&gt;</a>((<a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0">T</a>)(lhs / (<span class="keywordtype">int</span>)rhs.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a>), (<a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0">T</a>)(lhs / (<span class="keywordtype">int</span>)rhs.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a>)); }</div>
+<div class="line"><a name="l00637"></a><span class="lineno">  637</span>&#160; </div>
+<div class="line"><a name="l00638"></a><span class="lineno">  638</span>&#160;    <span class="comment">// To stop dandistine crying...</span></div>
+<div class="line"><a name="l00639"></a><span class="lineno"><a class="line" href="namespaceolc.html#a2831a8757172243381b08adf69e91e0a">  639</a></span>&#160;    <span class="keyword">template</span>&lt;<span class="keyword">class</span> T, <span class="keyword">class</span> U&gt; <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespaceolc.html#a2831a8757172243381b08adf69e91e0a">operator &lt; </a>(<span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">v2d_generic&lt;T&gt;</a>&amp; lhs, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">v2d_generic&lt;U&gt;</a>&amp; rhs)</div>
+<div class="line"><a name="l00640"></a><span class="lineno">  640</span>&#160;    { <span class="keywordflow">return</span> lhs.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a> &lt; rhs.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a> || (lhs.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a> == rhs.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a> &amp;&amp; lhs.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a> &lt; rhs.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a>); }</div>
+<div class="line"><a name="l00641"></a><span class="lineno"><a class="line" href="namespaceolc.html#a34519a6f9006c6c4854bbe762d490900">  641</a></span>&#160;    <span class="keyword">template</span>&lt;<span class="keyword">class</span> T, <span class="keyword">class</span> U&gt; <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespaceolc.html#a34519a6f9006c6c4854bbe762d490900">operator &gt; </a>(<span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">v2d_generic&lt;T&gt;</a>&amp; lhs, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">v2d_generic&lt;U&gt;</a>&amp; rhs)</div>
+<div class="line"><a name="l00642"></a><span class="lineno">  642</span>&#160;    { <span class="keywordflow">return</span> lhs.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a> &gt; rhs.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a> || (lhs.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a> == rhs.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a> &amp;&amp; lhs.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a> &gt; rhs.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a>); }</div>
+<div class="line"><a name="l00643"></a><span class="lineno">  643</span>&#160; </div>
+<div class="line"><a name="l00644"></a><span class="lineno"><a class="line" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">  644</a></span>&#160;    <span class="keyword">typedef</span> <a class="code" href="structolc_1_1v2d__generic.html">v2d_generic&lt;int32_t&gt;</a> <a class="code" href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">vi2d</a>;</div>
+<div class="line"><a name="l00645"></a><span class="lineno"><a class="line" href="namespaceolc.html#ac9f9fa9267428312fd81237a4cc5c8e5">  645</a></span>&#160;    <span class="keyword">typedef</span> <a class="code" href="structolc_1_1v2d__generic.html">v2d_generic&lt;uint32_t&gt;</a> <a class="code" href="namespaceolc.html#ac9f9fa9267428312fd81237a4cc5c8e5">vu2d</a>;</div>
+<div class="line"><a name="l00646"></a><span class="lineno"><a class="line" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">  646</a></span>&#160;    <span class="keyword">typedef</span> <a class="code" href="structolc_1_1v2d__generic.html">v2d_generic&lt;float&gt;</a> <a class="code" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">vf2d</a>;</div>
+<div class="line"><a name="l00647"></a><span class="lineno"><a class="line" href="namespaceolc.html#a51aaa7b75138a3323048a77457735d33">  647</a></span>&#160;    <span class="keyword">typedef</span> <a class="code" href="structolc_1_1v2d__generic.html">v2d_generic&lt;double&gt;</a> <a class="code" href="namespaceolc.html#a51aaa7b75138a3323048a77457735d33">vd2d</a>;</div>
+<div class="line"><a name="l00648"></a><span class="lineno">  648</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00649"></a><span class="lineno">  649</span>&#160; </div>
+<div class="line"><a name="l00650"></a><span class="lineno">  650</span>&#160; </div>
+<div class="line"><a name="l00651"></a><span class="lineno">  651</span>&#160; </div>
+<div class="line"><a name="l00652"></a><span class="lineno">  652</span>&#160;    </div>
+<div class="line"><a name="l00653"></a><span class="lineno">  653</span>&#160; </div>
+<div class="line"><a name="l00654"></a><span class="lineno">  654</span>&#160; </div>
+<div class="line"><a name="l00655"></a><span class="lineno">  655</span>&#160;    <span class="comment">// O------------------------------------------------------------------------------O</span></div>
+<div class="line"><a name="l00656"></a><span class="lineno">  656</span>&#160;    <span class="comment">// | olc::ResourcePack - A virtual scrambled filesystem to pack your assets into  |</span></div>
+<div class="line"><a name="l00657"></a><span class="lineno">  657</span>&#160;    <span class="comment">// O------------------------------------------------------------------------------O</span></div>
+<div class="line"><a name="l00658"></a><span class="lineno"><a class="line" href="structolc_1_1_resource_buffer.html">  658</a></span>&#160;    <span class="keyword">struct </span><a class="code" href="structolc_1_1_resource_buffer.html">ResourceBuffer</a> : <span class="keyword">public</span> std::streambuf</div>
+<div class="line"><a name="l00659"></a><span class="lineno">  659</span>&#160;    {</div>
+<div class="line"><a name="l00660"></a><span class="lineno"><a class="line" href="structolc_1_1_resource_buffer.html#abd18994c20cc7992ff7ccb07af9914e7">  660</a></span>&#160;        <a class="code" href="structolc_1_1_resource_buffer.html#abd18994c20cc7992ff7ccb07af9914e7">ResourceBuffer</a>(std::ifstream&amp; ifs, uint32_t offset, uint32_t size);</div>
+<div class="line"><a name="l00661"></a><span class="lineno"><a class="line" href="structolc_1_1_resource_buffer.html#a413e818311737396d14838a00df05303">  661</a></span>&#160;        std::vector&lt;char&gt; <a class="code" href="structolc_1_1_resource_buffer.html#a413e818311737396d14838a00df05303">vMemory</a>;</div>
+<div class="line"><a name="l00662"></a><span class="lineno">  662</span>&#160;    };</div>
+<div class="line"><a name="l00663"></a><span class="lineno">  663</span>&#160; </div>
+<div class="line"><a name="l00664"></a><span class="lineno"><a class="line" href="classolc_1_1_resource_pack.html">  664</a></span>&#160;    <span class="keyword">class </span><a class="code" href="classolc_1_1_resource_pack.html">ResourcePack</a> : <span class="keyword">public</span> std::streambuf</div>
+<div class="line"><a name="l00665"></a><span class="lineno">  665</span>&#160;    {</div>
+<div class="line"><a name="l00666"></a><span class="lineno">  666</span>&#160;    <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00667"></a><span class="lineno"><a class="line" href="classolc_1_1_resource_pack.html#af5b7f93e4fb4e8b899da50985b689083">  667</a></span>&#160;        <a class="code" href="classolc_1_1_resource_pack.html#af5b7f93e4fb4e8b899da50985b689083">ResourcePack</a>();</div>
+<div class="line"><a name="l00668"></a><span class="lineno"><a class="line" href="classolc_1_1_resource_pack.html#a7e48d44ecdac3d4a2eec7bb5a5eb1ec5">  668</a></span>&#160;        <a class="code" href="classolc_1_1_resource_pack.html#a7e48d44ecdac3d4a2eec7bb5a5eb1ec5">~ResourcePack</a>();</div>
+<div class="line"><a name="l00669"></a><span class="lineno"><a class="line" href="classolc_1_1_resource_pack.html#a56eebc321c66215d15df1390b1080c66">  669</a></span>&#160;        <span class="keywordtype">bool</span> <a class="code" href="classolc_1_1_resource_pack.html#a56eebc321c66215d15df1390b1080c66">AddFile</a>(<span class="keyword">const</span> std::string&amp; sFile);</div>
+<div class="line"><a name="l00670"></a><span class="lineno"><a class="line" href="classolc_1_1_resource_pack.html#a3168eef974448f8119e93af97272df27">  670</a></span>&#160;        <span class="keywordtype">bool</span> <a class="code" href="classolc_1_1_resource_pack.html#a3168eef974448f8119e93af97272df27">LoadPack</a>(<span class="keyword">const</span> std::string&amp; sFile, <span class="keyword">const</span> std::string&amp; sKey);</div>
+<div class="line"><a name="l00671"></a><span class="lineno"><a class="line" href="classolc_1_1_resource_pack.html#af6b1fec791c3c85b51b565db63a1aa9a">  671</a></span>&#160;        <span class="keywordtype">bool</span> <a class="code" href="classolc_1_1_resource_pack.html#af6b1fec791c3c85b51b565db63a1aa9a">SavePack</a>(<span class="keyword">const</span> std::string&amp; sFile, <span class="keyword">const</span> std::string&amp; sKey);</div>
+<div class="line"><a name="l00672"></a><span class="lineno"><a class="line" href="classolc_1_1_resource_pack.html#accb89668e145dc59e0740925b1b91987">  672</a></span>&#160;        <a class="code" href="structolc_1_1_resource_buffer.html">ResourceBuffer</a> <a class="code" href="classolc_1_1_resource_pack.html#accb89668e145dc59e0740925b1b91987">GetFileBuffer</a>(<span class="keyword">const</span> std::string&amp; sFile);</div>
+<div class="line"><a name="l00673"></a><span class="lineno"><a class="line" href="classolc_1_1_resource_pack.html#a4421c33c022ad042d29ef81f29f5b355">  673</a></span>&#160;        <span class="keywordtype">bool</span> <a class="code" href="classolc_1_1_resource_pack.html#a4421c33c022ad042d29ef81f29f5b355">Loaded</a>();</div>
+<div class="line"><a name="l00674"></a><span class="lineno">  674</span>&#160;    <span class="keyword">private</span>:</div>
+<div class="line"><a name="l00675"></a><span class="lineno">  675</span>&#160;        <span class="keyword">struct </span>sResourceFile { uint32_t nSize; uint32_t nOffset; };</div>
+<div class="line"><a name="l00676"></a><span class="lineno">  676</span>&#160;        std::map&lt;std::string, sResourceFile&gt; mapFiles;</div>
+<div class="line"><a name="l00677"></a><span class="lineno">  677</span>&#160;        std::ifstream baseFile;</div>
+<div class="line"><a name="l00678"></a><span class="lineno">  678</span>&#160;        std::vector&lt;char&gt; scramble(<span class="keyword">const</span> std::vector&lt;char&gt;&amp; data, <span class="keyword">const</span> std::string&amp; key);</div>
+<div class="line"><a name="l00679"></a><span class="lineno">  679</span>&#160;        std::string makeposix(<span class="keyword">const</span> std::string&amp; path);</div>
+<div class="line"><a name="l00680"></a><span class="lineno">  680</span>&#160;    };</div>
+<div class="line"><a name="l00681"></a><span class="lineno">  681</span>&#160; </div>
+<div class="line"><a name="l00682"></a><span class="lineno">  682</span>&#160; </div>
+<div class="line"><a name="l00683"></a><span class="lineno"><a class="line" href="classolc_1_1_image_loader.html">  683</a></span>&#160;    <span class="keyword">class </span><a class="code" href="classolc_1_1_image_loader.html">ImageLoader</a></div>
+<div class="line"><a name="l00684"></a><span class="lineno">  684</span>&#160;    {</div>
+<div class="line"><a name="l00685"></a><span class="lineno">  685</span>&#160;    <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00686"></a><span class="lineno"><a class="line" href="classolc_1_1_image_loader.html#a7aa358a572ec995b530ca5b54829f044">  686</a></span>&#160;        <a class="code" href="classolc_1_1_image_loader.html#a7aa358a572ec995b530ca5b54829f044">ImageLoader</a>() = <span class="keywordflow">default</span>;</div>
+<div class="line"><a name="l00687"></a><span class="lineno"><a class="line" href="classolc_1_1_image_loader.html#a680c0395200ceab209fb96c21cd8b883">  687</a></span>&#160;        <span class="keyword">virtual</span> <a class="code" href="classolc_1_1_image_loader.html#a680c0395200ceab209fb96c21cd8b883">~ImageLoader</a>() = <span class="keywordflow">default</span>;</div>
+<div class="line"><a name="l00688"></a><span class="lineno"><a class="line" href="classolc_1_1_image_loader.html#ac08c7387037c748a38598b6442974d81">  688</a></span>&#160;        <span class="keyword">virtual</span> <a class="code" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87b">olc::rcode</a> <a class="code" href="classolc_1_1_image_loader.html#ac08c7387037c748a38598b6442974d81">LoadImageResource</a>(<a class="code" href="classolc_1_1_sprite.html">olc::Sprite</a>* spr, <span class="keyword">const</span> std::string&amp; sImageFile, <a class="code" href="classolc_1_1_resource_pack.html">olc::ResourcePack</a>* pack) = 0;</div>
+<div class="line"><a name="l00689"></a><span class="lineno"><a class="line" href="classolc_1_1_image_loader.html#addedde73c3a76c668a2954db36695f08">  689</a></span>&#160;        <span class="keyword">virtual</span> <a class="code" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87b">olc::rcode</a> <a class="code" href="classolc_1_1_image_loader.html#addedde73c3a76c668a2954db36695f08">SaveImageResource</a>(<a class="code" href="classolc_1_1_sprite.html">olc::Sprite</a>* spr, <span class="keyword">const</span> std::string&amp; sImageFile) = 0;</div>
+<div class="line"><a name="l00690"></a><span class="lineno">  690</span>&#160;    };</div>
+<div class="line"><a name="l00691"></a><span class="lineno">  691</span>&#160; </div>
+<div class="line"><a name="l00692"></a><span class="lineno">  692</span>&#160; </div>
+<div class="line"><a name="l00693"></a><span class="lineno">  693</span>&#160;    <span class="comment">// O------------------------------------------------------------------------------O</span></div>
+<div class="line"><a name="l00694"></a><span class="lineno">  694</span>&#160;    <span class="comment">// | olc::Sprite - An image represented by a 2D array of olc::Pixel               |</span></div>
+<div class="line"><a name="l00695"></a><span class="lineno">  695</span>&#160;    <span class="comment">// O------------------------------------------------------------------------------O</span></div>
+<div class="line"><a name="l00696"></a><span class="lineno"><a class="line" href="classolc_1_1_sprite.html">  696</a></span>&#160;    <span class="keyword">class </span><a class="code" href="classolc_1_1_sprite.html">Sprite</a></div>
+<div class="line"><a name="l00697"></a><span class="lineno">  697</span>&#160;    {</div>
+<div class="line"><a name="l00698"></a><span class="lineno">  698</span>&#160;    <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00699"></a><span class="lineno"><a class="line" href="classolc_1_1_sprite.html#aaf231565550d294ef20bf31364562ec3">  699</a></span>&#160;        <a class="code" href="classolc_1_1_sprite.html#aaf231565550d294ef20bf31364562ec3">Sprite</a>();</div>
+<div class="line"><a name="l00700"></a><span class="lineno"><a class="line" href="classolc_1_1_sprite.html#ad8ce71f2399a2721aff9234390a18b8e">  700</a></span>&#160;        <a class="code" href="classolc_1_1_sprite.html#ad8ce71f2399a2721aff9234390a18b8e">Sprite</a>(<span class="keyword">const</span> std::string&amp; sImageFile, <a class="code" href="classolc_1_1_resource_pack.html">olc::ResourcePack</a>* pack = <span class="keyword">nullptr</span>);</div>
+<div class="line"><a name="l00701"></a><span class="lineno"><a class="line" href="classolc_1_1_sprite.html#a3e452a040fc2680228b1e6a7b6b9890e">  701</a></span>&#160;        <a class="code" href="classolc_1_1_sprite.html#a3e452a040fc2680228b1e6a7b6b9890e">Sprite</a>(int32_t w, int32_t h);</div>
+<div class="line"><a name="l00702"></a><span class="lineno"><a class="line" href="classolc_1_1_sprite.html#a5b0190890ed98560125b2ae4db9a7d9f">  702</a></span>&#160;        <a class="code" href="classolc_1_1_sprite.html#a5b0190890ed98560125b2ae4db9a7d9f">Sprite</a>(<span class="keyword">const</span> <a class="code" href="classolc_1_1_sprite.html">olc::Sprite</a>&amp;) = <span class="keyword">delete</span>;</div>
+<div class="line"><a name="l00703"></a><span class="lineno"><a class="line" href="classolc_1_1_sprite.html#a594abc52842c29e4a5417adf57fb877e">  703</a></span>&#160;        <a class="code" href="classolc_1_1_sprite.html#a594abc52842c29e4a5417adf57fb877e">~Sprite</a>();</div>
+<div class="line"><a name="l00704"></a><span class="lineno">  704</span>&#160; </div>
+<div class="line"><a name="l00705"></a><span class="lineno">  705</span>&#160;    <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00706"></a><span class="lineno"><a class="line" href="classolc_1_1_sprite.html#adc277c0342733a4aa8dcdc9152326fec">  706</a></span>&#160;        <a class="code" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87b">olc::rcode</a> <a class="code" href="classolc_1_1_sprite.html#adc277c0342733a4aa8dcdc9152326fec">LoadFromFile</a>(<span class="keyword">const</span> std::string&amp; sImageFile, <a class="code" href="classolc_1_1_resource_pack.html">olc::ResourcePack</a>* pack = <span class="keyword">nullptr</span>);</div>
+<div class="line"><a name="l00707"></a><span class="lineno"><a class="line" href="classolc_1_1_sprite.html#a6959a2d94d6c02b7918aec5ce9b1a371">  707</a></span>&#160;        <a class="code" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87b">olc::rcode</a> <a class="code" href="classolc_1_1_sprite.html#a6959a2d94d6c02b7918aec5ce9b1a371">LoadFromPGESprFile</a>(<span class="keyword">const</span> std::string&amp; sImageFile, <a class="code" href="classolc_1_1_resource_pack.html">olc::ResourcePack</a>* pack = <span class="keyword">nullptr</span>);</div>
+<div class="line"><a name="l00708"></a><span class="lineno"><a class="line" href="classolc_1_1_sprite.html#a1f1b2a3f1fd932a6a14faa622a2918bf">  708</a></span>&#160;        <a class="code" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87b">olc::rcode</a> <a class="code" href="classolc_1_1_sprite.html#a1f1b2a3f1fd932a6a14faa622a2918bf">SaveToPGESprFile</a>(<span class="keyword">const</span> std::string&amp; sImageFile);</div>
+<div class="line"><a name="l00709"></a><span class="lineno">  709</span>&#160; </div>
+<div class="line"><a name="l00710"></a><span class="lineno">  710</span>&#160;    <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00711"></a><span class="lineno"><a class="line" href="classolc_1_1_sprite.html#af055800e63204ae372ca0812e6926230">  711</a></span>&#160;        int32_t <a class="code" href="classolc_1_1_sprite.html#af055800e63204ae372ca0812e6926230">width</a> = 0;</div>
+<div class="line"><a name="l00712"></a><span class="lineno"><a class="line" href="classolc_1_1_sprite.html#ab05010cb1a5ff6c36267d0050d568d96">  712</a></span>&#160;        int32_t <a class="code" href="classolc_1_1_sprite.html#ab05010cb1a5ff6c36267d0050d568d96">height</a> = 0;</div>
+<div class="line"><a name="l00713"></a><span class="lineno"><a class="line" href="classolc_1_1_sprite.html#a78b7f14903f9f0bb536b66c37f3139cfa3185e8dea4ea5a89d7ea66716c67a175">  713</a></span>&#160;        <span class="keyword">enum</span> <a class="code" href="classolc_1_1_sprite.html#a78b7f14903f9f0bb536b66c37f3139cf">Mode</a> { <a class="code" href="classolc_1_1_sprite.html#a78b7f14903f9f0bb536b66c37f3139cfa1128b229a2ab5d7b344aeefd329252a1">NORMAL</a>, <a class="code" href="classolc_1_1_sprite.html#a78b7f14903f9f0bb536b66c37f3139cfa3185e8dea4ea5a89d7ea66716c67a175">PERIODIC</a> };</div>
+<div class="line"><a name="l00714"></a><span class="lineno"><a class="line" href="classolc_1_1_sprite.html#ad0d1976d2060997f5cd99eb284a5dc24a7d2b99d18b574e41332e569d141914c5">  714</a></span>&#160;        <span class="keyword">enum</span> <a class="code" href="classolc_1_1_sprite.html#ad0d1976d2060997f5cd99eb284a5dc24">Flip</a> { <a class="code" href="classolc_1_1_sprite.html#ad0d1976d2060997f5cd99eb284a5dc24a6ad338b4e63faacfbed68b020c3a0c0c">NONE</a> = 0, <a class="code" href="classolc_1_1_sprite.html#ad0d1976d2060997f5cd99eb284a5dc24a2ff5b18e468156f629a10c5b515d78cd">HORIZ</a> = 1, <a class="code" href="classolc_1_1_sprite.html#ad0d1976d2060997f5cd99eb284a5dc24a7d2b99d18b574e41332e569d141914c5">VERT</a> = 2 };</div>
+<div class="line"><a name="l00715"></a><span class="lineno">  715</span>&#160; </div>
+<div class="line"><a name="l00716"></a><span class="lineno">  716</span>&#160;    <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00717"></a><span class="lineno"><a class="line" href="classolc_1_1_sprite.html#a78f4fcf41780cfc547f21e5a0dea03a2">  717</a></span>&#160;        <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_sprite.html#a78f4fcf41780cfc547f21e5a0dea03a2">SetSampleMode</a>(<a class="code" href="classolc_1_1_sprite.html#a78b7f14903f9f0bb536b66c37f3139cf">olc::Sprite::Mode</a> mode = olc::Sprite::Mode::NORMAL);</div>
+<div class="line"><a name="l00718"></a><span class="lineno"><a class="line" href="classolc_1_1_sprite.html#a7e1f8169c9822f1ed94f0212d3f8d6f6">  718</a></span>&#160;        <a class="code" href="structolc_1_1_pixel.html">Pixel</a> <a class="code" href="classolc_1_1_sprite.html#a7e1f8169c9822f1ed94f0212d3f8d6f6">GetPixel</a>(int32_t x, int32_t y) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00719"></a><span class="lineno"><a class="line" href="classolc_1_1_sprite.html#a294389e93a95c8307f1260d7cacaf9ba">  719</a></span>&#160;        <span class="keywordtype">bool</span>  <a class="code" href="classolc_1_1_sprite.html#a294389e93a95c8307f1260d7cacaf9ba">SetPixel</a>(int32_t x, int32_t y, <a class="code" href="structolc_1_1_pixel.html">Pixel</a> p);</div>
+<div class="line"><a name="l00720"></a><span class="lineno"><a class="line" href="classolc_1_1_sprite.html#a1a05e4ffd8d8b24b99ab511279b342cf">  720</a></span>&#160;        <a class="code" href="structolc_1_1_pixel.html">Pixel</a> <a class="code" href="classolc_1_1_sprite.html#a1a05e4ffd8d8b24b99ab511279b342cf">GetPixel</a>(<span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vi2d</a>&amp; a) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00721"></a><span class="lineno"><a class="line" href="classolc_1_1_sprite.html#ae7b8af09a29793ab16b7b813c8b0d26d">  721</a></span>&#160;        <span class="keywordtype">bool</span>  <a class="code" href="classolc_1_1_sprite.html#ae7b8af09a29793ab16b7b813c8b0d26d">SetPixel</a>(<span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vi2d</a>&amp; a, <a class="code" href="structolc_1_1_pixel.html">Pixel</a> p);</div>
+<div class="line"><a name="l00722"></a><span class="lineno"><a class="line" href="classolc_1_1_sprite.html#a902192f81ab42420921992a7288aab48">  722</a></span>&#160;        <a class="code" href="structolc_1_1_pixel.html">Pixel</a> <a class="code" href="classolc_1_1_sprite.html#a902192f81ab42420921992a7288aab48">Sample</a>(<span class="keywordtype">float</span> x, <span class="keywordtype">float</span> y) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00723"></a><span class="lineno"><a class="line" href="classolc_1_1_sprite.html#a5e28024237453fb56c32f37d6996443d">  723</a></span>&#160;        <a class="code" href="structolc_1_1_pixel.html">Pixel</a> <a class="code" href="classolc_1_1_sprite.html#a5e28024237453fb56c32f37d6996443d">SampleBL</a>(<span class="keywordtype">float</span> u, <span class="keywordtype">float</span> v) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00724"></a><span class="lineno"><a class="line" href="classolc_1_1_sprite.html#ad8fcc6bbf8a785aa0bb9d00bf3cfdff2">  724</a></span>&#160;        <a class="code" href="structolc_1_1_pixel.html">Pixel</a>* <a class="code" href="classolc_1_1_sprite.html#ad8fcc6bbf8a785aa0bb9d00bf3cfdff2">GetData</a>();</div>
+<div class="line"><a name="l00725"></a><span class="lineno"><a class="line" href="classolc_1_1_sprite.html#a0b9399ba5d6df0b481ab16d8c4a28ded">  725</a></span>&#160;        <a class="code" href="classolc_1_1_sprite.html">olc::Sprite</a>* <a class="code" href="classolc_1_1_sprite.html#a0b9399ba5d6df0b481ab16d8c4a28ded">Duplicate</a>();</div>
+<div class="line"><a name="l00726"></a><span class="lineno"><a class="line" href="classolc_1_1_sprite.html#ac4307f400438dad18b0720cc034bec0b">  726</a></span>&#160;        <a class="code" href="classolc_1_1_sprite.html">olc::Sprite</a>* <a class="code" href="classolc_1_1_sprite.html#ac4307f400438dad18b0720cc034bec0b">Duplicate</a>(<span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vi2d</a>&amp; vPos, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vi2d</a>&amp; vSize);</div>
+<div class="line"><a name="l00727"></a><span class="lineno"><a class="line" href="classolc_1_1_sprite.html#adb41a2041dfe14de9605dabcd905db60">  727</a></span>&#160;        std::vector&lt;olc::Pixel&gt; <a class="code" href="classolc_1_1_sprite.html#adb41a2041dfe14de9605dabcd905db60">pColData</a>;</div>
+<div class="line"><a name="l00728"></a><span class="lineno"><a class="line" href="classolc_1_1_sprite.html#ab9182b86e829467f454c7ef630ebc9fb">  728</a></span>&#160;        <a class="code" href="classolc_1_1_sprite.html#a78b7f14903f9f0bb536b66c37f3139cf">Mode</a> <a class="code" href="classolc_1_1_sprite.html#ab9182b86e829467f454c7ef630ebc9fb">modeSample</a> = Mode::NORMAL;</div>
+<div class="line"><a name="l00729"></a><span class="lineno">  729</span>&#160; </div>
+<div class="line"><a name="l00730"></a><span class="lineno"><a class="line" href="classolc_1_1_sprite.html#a023da26661031ebf7a276cafd9a43902">  730</a></span>&#160;        <span class="keyword">static</span> std::unique_ptr&lt;olc::ImageLoader&gt; <a class="code" href="classolc_1_1_sprite.html#a023da26661031ebf7a276cafd9a43902">loader</a>;</div>
+<div class="line"><a name="l00731"></a><span class="lineno">  731</span>&#160;    };</div>
+<div class="line"><a name="l00732"></a><span class="lineno">  732</span>&#160; </div>
+<div class="line"><a name="l00733"></a><span class="lineno">  733</span>&#160;    <span class="comment">// O------------------------------------------------------------------------------O</span></div>
+<div class="line"><a name="l00734"></a><span class="lineno">  734</span>&#160;    <span class="comment">// | olc::Decal - A GPU resident storage of an olc::Sprite                        |</span></div>
+<div class="line"><a name="l00735"></a><span class="lineno">  735</span>&#160;    <span class="comment">// O------------------------------------------------------------------------------O</span></div>
+<div class="line"><a name="l00736"></a><span class="lineno"><a class="line" href="classolc_1_1_decal.html">  736</a></span>&#160;    <span class="keyword">class </span><a class="code" href="classolc_1_1_decal.html">Decal</a></div>
+<div class="line"><a name="l00737"></a><span class="lineno">  737</span>&#160;    {</div>
+<div class="line"><a name="l00738"></a><span class="lineno">  738</span>&#160;    <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00739"></a><span class="lineno"><a class="line" href="classolc_1_1_decal.html#a5479fee995f05355026dafd8cadcac88">  739</a></span>&#160;        <a class="code" href="classolc_1_1_decal.html#a5479fee995f05355026dafd8cadcac88">Decal</a>(<a class="code" href="classolc_1_1_sprite.html">olc::Sprite</a>* spr, <span class="keywordtype">bool</span> filter = <span class="keyword">false</span>, <span class="keywordtype">bool</span> clamp = <span class="keyword">true</span>);</div>
+<div class="line"><a name="l00740"></a><span class="lineno"><a class="line" href="classolc_1_1_decal.html#ade1e337e839cd254603e4d061c219cc5">  740</a></span>&#160;        <a class="code" href="classolc_1_1_decal.html#ade1e337e839cd254603e4d061c219cc5">Decal</a>(<span class="keyword">const</span> uint32_t nExistingTextureResource, <a class="code" href="classolc_1_1_sprite.html">olc::Sprite</a>* spr);</div>
+<div class="line"><a name="l00741"></a><span class="lineno"><a class="line" href="classolc_1_1_decal.html#a5c993dab5be43270dce30b44f1d3e50b">  741</a></span>&#160;        <span class="keyword">virtual</span> <a class="code" href="classolc_1_1_decal.html#a5c993dab5be43270dce30b44f1d3e50b">~Decal</a>();</div>
+<div class="line"><a name="l00742"></a><span class="lineno"><a class="line" href="classolc_1_1_decal.html#aac5ad6844f98fb3a8bce2f36adf02429">  742</a></span>&#160;        <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_decal.html#aac5ad6844f98fb3a8bce2f36adf02429">Update</a>();</div>
+<div class="line"><a name="l00743"></a><span class="lineno"><a class="line" href="classolc_1_1_decal.html#a4a3b893edbce4d416453f57c11754092">  743</a></span>&#160;        <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_decal.html#a4a3b893edbce4d416453f57c11754092">UpdateSprite</a>();</div>
+<div class="line"><a name="l00744"></a><span class="lineno">  744</span>&#160; </div>
+<div class="line"><a name="l00745"></a><span class="lineno">  745</span>&#160;    <span class="keyword">public</span>: <span class="comment">// But dont touch</span></div>
+<div class="line"><a name="l00746"></a><span class="lineno"><a class="line" href="classolc_1_1_decal.html#a7cc798e0327ea4118c648b10e2d57986">  746</a></span>&#160;        int32_t <span class="keywordtype">id</span> = -1;</div>
+<div class="line"><a name="l00747"></a><span class="lineno"><a class="line" href="classolc_1_1_decal.html#a93a1e2ae28aa587978e2a66b6328d66a">  747</a></span>&#160;        <a class="code" href="classolc_1_1_sprite.html">olc::Sprite</a>* <a class="code" href="classolc_1_1_decal.html#a93a1e2ae28aa587978e2a66b6328d66a">sprite</a> = <span class="keyword">nullptr</span>;</div>
+<div class="line"><a name="l00748"></a><span class="lineno"><a class="line" href="classolc_1_1_decal.html#aff06190e3ca17446d373d5a93a3636c7">  748</a></span>&#160;        <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a> <a class="code" href="classolc_1_1_decal.html#aff06190e3ca17446d373d5a93a3636c7">vUVScale</a> = { 1.0f, 1.0f };</div>
+<div class="line"><a name="l00749"></a><span class="lineno">  749</span>&#160;    };</div>
+<div class="line"><a name="l00750"></a><span class="lineno">  750</span>&#160; </div>
+<div class="line"><a name="l00751"></a><span class="lineno"><a class="line" href="namespaceolc.html#aeda642f63378f868193c28e8613138ca">  751</a></span>&#160;    <span class="keyword">enum class</span> <a class="code" href="namespaceolc.html#aeda642f63378f868193c28e8613138ca">DecalMode</a></div>
+<div class="line"><a name="l00752"></a><span class="lineno">  752</span>&#160;    {</div>
+<div class="line"><a name="l00753"></a><span class="lineno">  753</span>&#160;        <a class="code" href="namespaceolc.html#aeda642f63378f868193c28e8613138caa1e23852820b9154316c7c06e2b7ba051">NORMAL</a>,</div>
+<div class="line"><a name="l00754"></a><span class="lineno">  754</span>&#160;        ADDITIVE,</div>
+<div class="line"><a name="l00755"></a><span class="lineno">  755</span>&#160;        MULTIPLICATIVE,</div>
+<div class="line"><a name="l00756"></a><span class="lineno">  756</span>&#160;        STENCIL,</div>
+<div class="line"><a name="l00757"></a><span class="lineno">  757</span>&#160;        ILLUMINATE,</div>
+<div class="line"><a name="l00758"></a><span class="lineno">  758</span>&#160;        <a class="code" href="namespaceolc.html#aeda642f63378f868193c28e8613138caa1e23852820b9154316c7c06e2b7ba051">WIREFRAME</a>,</div>
+<div class="line"><a name="l00759"></a><span class="lineno">  759</span>&#160;    };</div>
+<div class="line"><a name="l00760"></a><span class="lineno">  760</span>&#160; </div>
+<div class="line"><a name="l00761"></a><span class="lineno">  761</span>&#160;    <span class="comment">// O------------------------------------------------------------------------------O</span></div>
+<div class="line"><a name="l00762"></a><span class="lineno">  762</span>&#160;    <span class="comment">// | olc::Renderable - Convenience class to keep a sprite and decal together      |</span></div>
+<div class="line"><a name="l00763"></a><span class="lineno">  763</span>&#160;    <span class="comment">// O------------------------------------------------------------------------------O</span></div>
+<div class="line"><a name="l00764"></a><span class="lineno"><a class="line" href="classolc_1_1_renderable.html">  764</a></span>&#160;    <span class="keyword">class </span><a class="code" href="classolc_1_1_renderable.html">Renderable</a></div>
+<div class="line"><a name="l00765"></a><span class="lineno">  765</span>&#160;    {</div>
+<div class="line"><a name="l00766"></a><span class="lineno">  766</span>&#160;    <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00767"></a><span class="lineno"><a class="line" href="classolc_1_1_renderable.html#affef9fb6b4810e59a7d14410f351ba37">  767</a></span>&#160;        <a class="code" href="classolc_1_1_renderable.html#affef9fb6b4810e59a7d14410f351ba37">Renderable</a>() = <span class="keywordflow">default</span>;</div>
+<div class="line"><a name="l00768"></a><span class="lineno"><a class="line" href="classolc_1_1_renderable.html#ace5d212d903d86bc9789f1af0f92096c">  768</a></span>&#160;        <a class="code" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87b">olc::rcode</a> <a class="code" href="classolc_1_1_renderable.html#ace5d212d903d86bc9789f1af0f92096c">Load</a>(<span class="keyword">const</span> std::string&amp; sFile, <a class="code" href="classolc_1_1_resource_pack.html">ResourcePack</a>* pack = <span class="keyword">nullptr</span>, <span class="keywordtype">bool</span> filter = <span class="keyword">false</span>, <span class="keywordtype">bool</span> clamp = <span class="keyword">true</span>);</div>
+<div class="line"><a name="l00769"></a><span class="lineno"><a class="line" href="classolc_1_1_renderable.html#ab15a4441be7b48519d55296e416976fd">  769</a></span>&#160;        <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_renderable.html#ab15a4441be7b48519d55296e416976fd">Create</a>(uint32_t width, uint32_t height, <span class="keywordtype">bool</span> filter = <span class="keyword">false</span>, <span class="keywordtype">bool</span> clamp = <span class="keyword">true</span>);</div>
+<div class="line"><a name="l00770"></a><span class="lineno"><a class="line" href="classolc_1_1_renderable.html#af6e5a2d5a46fe4f475c67ca5ab1b1f5d">  770</a></span>&#160;        <a class="code" href="classolc_1_1_decal.html">olc::Decal</a>* <a class="code" href="classolc_1_1_renderable.html#af6e5a2d5a46fe4f475c67ca5ab1b1f5d">Decal</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00771"></a><span class="lineno"><a class="line" href="classolc_1_1_renderable.html#a8128a49bae0a3b40a5681d92cc01f52a">  771</a></span>&#160;        <a class="code" href="classolc_1_1_sprite.html">olc::Sprite</a>* <a class="code" href="classolc_1_1_renderable.html#a8128a49bae0a3b40a5681d92cc01f52a">Sprite</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00772"></a><span class="lineno">  772</span>&#160; </div>
+<div class="line"><a name="l00773"></a><span class="lineno">  773</span>&#160;    <span class="keyword">private</span>:</div>
+<div class="line"><a name="l00774"></a><span class="lineno">  774</span>&#160;        std::unique_ptr&lt;olc::Sprite&gt; pSprite = <span class="keyword">nullptr</span>;</div>
+<div class="line"><a name="l00775"></a><span class="lineno">  775</span>&#160;        std::unique_ptr&lt;olc::Decal&gt; pDecal = <span class="keyword">nullptr</span>;</div>
+<div class="line"><a name="l00776"></a><span class="lineno">  776</span>&#160;    };</div>
+<div class="line"><a name="l00777"></a><span class="lineno">  777</span>&#160; </div>
+<div class="line"><a name="l00778"></a><span class="lineno">  778</span>&#160; </div>
+<div class="line"><a name="l00779"></a><span class="lineno">  779</span>&#160;    <span class="comment">// O------------------------------------------------------------------------------O</span></div>
+<div class="line"><a name="l00780"></a><span class="lineno">  780</span>&#160;    <span class="comment">// | Auxilliary components internal to engine                                     |</span></div>
+<div class="line"><a name="l00781"></a><span class="lineno">  781</span>&#160;    <span class="comment">// O------------------------------------------------------------------------------O</span></div>
+<div class="line"><a name="l00782"></a><span class="lineno">  782</span>&#160; </div>
+<div class="line"><a name="l00783"></a><span class="lineno"><a class="line" href="structolc_1_1_decal_instance.html">  783</a></span>&#160;    <span class="keyword">struct </span><a class="code" href="structolc_1_1_decal_instance.html">DecalInstance</a></div>
+<div class="line"><a name="l00784"></a><span class="lineno">  784</span>&#160;    {</div>
+<div class="line"><a name="l00785"></a><span class="lineno"><a class="line" href="structolc_1_1_decal_instance.html#ad01bc9806792469d91ee0b5736058e7e">  785</a></span>&#160;        <a class="code" href="classolc_1_1_decal.html">olc::Decal</a>* <a class="code" href="structolc_1_1_decal_instance.html#ad01bc9806792469d91ee0b5736058e7e">decal</a> = <span class="keyword">nullptr</span>;</div>
+<div class="line"><a name="l00786"></a><span class="lineno"><a class="line" href="structolc_1_1_decal_instance.html#a8dcf3a11a4f2c722e9b54c01643de08c">  786</a></span>&#160;        std::vector&lt;olc::vf2d&gt; <a class="code" href="structolc_1_1_decal_instance.html#a8dcf3a11a4f2c722e9b54c01643de08c">pos</a>;</div>
+<div class="line"><a name="l00787"></a><span class="lineno"><a class="line" href="structolc_1_1_decal_instance.html#a60337d982b4f35b3bb5b1d814fa0d09f">  787</a></span>&#160;        std::vector&lt;olc::vf2d&gt; <a class="code" href="structolc_1_1_decal_instance.html#a60337d982b4f35b3bb5b1d814fa0d09f">uv</a>;</div>
+<div class="line"><a name="l00788"></a><span class="lineno"><a class="line" href="structolc_1_1_decal_instance.html#a3475b1bb41f868f218c759972dec2f73">  788</a></span>&#160;        std::vector&lt;float&gt; <a class="code" href="structolc_1_1_decal_instance.html#a3475b1bb41f868f218c759972dec2f73">w</a>;</div>
+<div class="line"><a name="l00789"></a><span class="lineno"><a class="line" href="structolc_1_1_decal_instance.html#a04f01880bf6d4045b6e1f70aff3e5c8f">  789</a></span>&#160;        std::vector&lt;olc::Pixel&gt; <a class="code" href="structolc_1_1_decal_instance.html#a04f01880bf6d4045b6e1f70aff3e5c8f">tint</a>;</div>
+<div class="line"><a name="l00790"></a><span class="lineno"><a class="line" href="structolc_1_1_decal_instance.html#a3dcc0fc374fe00a5d6451a4ac13e6649">  790</a></span>&#160;        <a class="code" href="namespaceolc.html#aeda642f63378f868193c28e8613138ca">olc::DecalMode</a> <a class="code" href="structolc_1_1_decal_instance.html#a3dcc0fc374fe00a5d6451a4ac13e6649">mode</a> = <a class="code" href="namespaceolc.html#aeda642f63378f868193c28e8613138caa1e23852820b9154316c7c06e2b7ba051">olc::DecalMode::NORMAL</a>;</div>
+<div class="line"><a name="l00791"></a><span class="lineno"><a class="line" href="structolc_1_1_decal_instance.html#aa03e3326919eb0c889cdad3492c8a8f6">  791</a></span>&#160;        uint32_t <a class="code" href="structolc_1_1_decal_instance.html#aa03e3326919eb0c889cdad3492c8a8f6">points</a> = 0;</div>
+<div class="line"><a name="l00792"></a><span class="lineno">  792</span>&#160;    };</div>
+<div class="line"><a name="l00793"></a><span class="lineno">  793</span>&#160; </div>
+<div class="line"><a name="l00794"></a><span class="lineno"><a class="line" href="structolc_1_1_layer_desc.html">  794</a></span>&#160;    <span class="keyword">struct </span><a class="code" href="structolc_1_1_layer_desc.html">LayerDesc</a></div>
+<div class="line"><a name="l00795"></a><span class="lineno">  795</span>&#160;    {</div>
+<div class="line"><a name="l00796"></a><span class="lineno"><a class="line" href="structolc_1_1_layer_desc.html#a1657be3b96c8fbb85fe113ae695fece9">  796</a></span>&#160;        <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a> <a class="code" href="structolc_1_1_layer_desc.html#a1657be3b96c8fbb85fe113ae695fece9">vOffset</a> = { 0, 0 };</div>
+<div class="line"><a name="l00797"></a><span class="lineno"><a class="line" href="structolc_1_1_layer_desc.html#ab9701d17eb84ab32e93211277cacc763">  797</a></span>&#160;        <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a> <a class="code" href="structolc_1_1_layer_desc.html#ab9701d17eb84ab32e93211277cacc763">vScale</a> = { 1, 1 };</div>
+<div class="line"><a name="l00798"></a><span class="lineno"><a class="line" href="structolc_1_1_layer_desc.html#aeb19896b6a82e301769bfd9d5aa053b6">  798</a></span>&#160;        <span class="keywordtype">bool</span> <a class="code" href="structolc_1_1_layer_desc.html#aeb19896b6a82e301769bfd9d5aa053b6">bShow</a> = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00799"></a><span class="lineno"><a class="line" href="structolc_1_1_layer_desc.html#a5239ecc59495acca81a03e8783d9b873">  799</a></span>&#160;        <span class="keywordtype">bool</span> <a class="code" href="structolc_1_1_layer_desc.html#a5239ecc59495acca81a03e8783d9b873">bUpdate</a> = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00800"></a><span class="lineno"><a class="line" href="structolc_1_1_layer_desc.html#a24f921523245fce959bb1cd0f55faeff">  800</a></span>&#160;        <a class="code" href="classolc_1_1_sprite.html">olc::Sprite</a>* <a class="code" href="structolc_1_1_layer_desc.html#a24f921523245fce959bb1cd0f55faeff">pDrawTarget</a> = <span class="keyword">nullptr</span>;</div>
+<div class="line"><a name="l00801"></a><span class="lineno"><a class="line" href="structolc_1_1_layer_desc.html#a9433153aabd3d3530043f71a2ad63b1a">  801</a></span>&#160;        uint32_t <a class="code" href="structolc_1_1_layer_desc.html#a9433153aabd3d3530043f71a2ad63b1a">nResID</a> = 0;</div>
+<div class="line"><a name="l00802"></a><span class="lineno"><a class="line" href="structolc_1_1_layer_desc.html#ac6cd952e0ebbd7cde19060b4e3896875">  802</a></span>&#160;        std::vector&lt;DecalInstance&gt; <a class="code" href="structolc_1_1_layer_desc.html#ac6cd952e0ebbd7cde19060b4e3896875">vecDecalInstance</a>;</div>
+<div class="line"><a name="l00803"></a><span class="lineno"><a class="line" href="structolc_1_1_layer_desc.html#af6027ed5757afe2c8c0cd50620d7311f">  803</a></span>&#160;        <a class="code" href="structolc_1_1_pixel.html">olc::Pixel</a> <a class="code" href="structolc_1_1_layer_desc.html#af6027ed5757afe2c8c0cd50620d7311f">tint</a> = <a class="code" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>;</div>
+<div class="line"><a name="l00804"></a><span class="lineno"><a class="line" href="structolc_1_1_layer_desc.html#a3ed4e651cce6277ab5b75ab1a9b05765">  804</a></span>&#160;        std::function&lt;void()&gt; <a class="code" href="structolc_1_1_layer_desc.html#a3ed4e651cce6277ab5b75ab1a9b05765">funcHook</a> = <span class="keyword">nullptr</span>;</div>
+<div class="line"><a name="l00805"></a><span class="lineno">  805</span>&#160;    };</div>
+<div class="line"><a name="l00806"></a><span class="lineno">  806</span>&#160; </div>
+<div class="line"><a name="l00807"></a><span class="lineno"><a class="line" href="classolc_1_1_renderer.html">  807</a></span>&#160;    <span class="keyword">class </span><a class="code" href="classolc_1_1_renderer.html">Renderer</a></div>
+<div class="line"><a name="l00808"></a><span class="lineno">  808</span>&#160;    {</div>
+<div class="line"><a name="l00809"></a><span class="lineno">  809</span>&#160;    <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00810"></a><span class="lineno"><a class="line" href="classolc_1_1_renderer.html#a877048a1bcf3decfe544804f0e4e1ad9">  810</a></span>&#160;        <span class="keyword">virtual</span> <a class="code" href="classolc_1_1_renderer.html#a877048a1bcf3decfe544804f0e4e1ad9">~Renderer</a>() = <span class="keywordflow">default</span>;</div>
+<div class="line"><a name="l00811"></a><span class="lineno"><a class="line" href="classolc_1_1_renderer.html#a7d97cab172e59d23a2587f636c9b12b7">  811</a></span>&#160;        <span class="keyword">virtual</span> <span class="keywordtype">void</span>       <a class="code" href="classolc_1_1_renderer.html#a7d97cab172e59d23a2587f636c9b12b7">PrepareDevice</a>() = 0;</div>
+<div class="line"><a name="l00812"></a><span class="lineno"><a class="line" href="classolc_1_1_renderer.html#a28c87db87f8fd9b0f356db5d01499992">  812</a></span>&#160;        <span class="keyword">virtual</span> <a class="code" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87b">olc::rcode</a> <a class="code" href="classolc_1_1_renderer.html#a28c87db87f8fd9b0f356db5d01499992">CreateDevice</a>(std::vector&lt;void*&gt; params, <span class="keywordtype">bool</span> bFullScreen, <span class="keywordtype">bool</span> bVSYNC) = 0;</div>
+<div class="line"><a name="l00813"></a><span class="lineno"><a class="line" href="classolc_1_1_renderer.html#a3a59a195cc380f89e5f9cc98b6fda2c7">  813</a></span>&#160;        <span class="keyword">virtual</span> <a class="code" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87b">olc::rcode</a> <a class="code" href="classolc_1_1_renderer.html#a3a59a195cc380f89e5f9cc98b6fda2c7">DestroyDevice</a>() = 0;</div>
+<div class="line"><a name="l00814"></a><span class="lineno"><a class="line" href="classolc_1_1_renderer.html#a660f3ca709b2a2fcec1d1cba1a4cfd18">  814</a></span>&#160;        <span class="keyword">virtual</span> <span class="keywordtype">void</span>       <a class="code" href="classolc_1_1_renderer.html#a660f3ca709b2a2fcec1d1cba1a4cfd18">DisplayFrame</a>() = 0;</div>
+<div class="line"><a name="l00815"></a><span class="lineno"><a class="line" href="classolc_1_1_renderer.html#a04c56d76c76ab50f5f06b9b537e9d98d">  815</a></span>&#160;        <span class="keyword">virtual</span> <span class="keywordtype">void</span>       <a class="code" href="classolc_1_1_renderer.html#a04c56d76c76ab50f5f06b9b537e9d98d">PrepareDrawing</a>() = 0;</div>
+<div class="line"><a name="l00816"></a><span class="lineno"><a class="line" href="classolc_1_1_renderer.html#aebfc5a561c54b88f16a0b3d855eedaa1">  816</a></span>&#160;        <span class="keyword">virtual</span> <span class="keywordtype">void</span>       <a class="code" href="classolc_1_1_renderer.html#aebfc5a561c54b88f16a0b3d855eedaa1">SetDecalMode</a>(<span class="keyword">const</span> <a class="code" href="namespaceolc.html#aeda642f63378f868193c28e8613138ca">olc::DecalMode</a>&amp; mode) = 0;</div>
+<div class="line"><a name="l00817"></a><span class="lineno"><a class="line" href="classolc_1_1_renderer.html#a3eccca504615e72d1f40acd03ffce89f">  817</a></span>&#160;        <span class="keyword">virtual</span> <span class="keywordtype">void</span>       <a class="code" href="classolc_1_1_renderer.html#a3eccca504615e72d1f40acd03ffce89f">DrawLayerQuad</a>(<span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; offset, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; scale, <span class="keyword">const</span> <a class="code" href="structolc_1_1_pixel.html">olc::Pixel</a> tint) = 0;</div>
+<div class="line"><a name="l00818"></a><span class="lineno"><a class="line" href="classolc_1_1_renderer.html#ac567df937350bffb2eae3e647ccc10d5">  818</a></span>&#160;        <span class="keyword">virtual</span> <span class="keywordtype">void</span>       <a class="code" href="classolc_1_1_renderer.html#ac567df937350bffb2eae3e647ccc10d5">DrawDecal</a>(<span class="keyword">const</span> <a class="code" href="structolc_1_1_decal_instance.html">olc::DecalInstance</a>&amp; decal) = 0;</div>
+<div class="line"><a name="l00819"></a><span class="lineno"><a class="line" href="classolc_1_1_renderer.html#aeac898aaf282d09a9cd848303de57bea">  819</a></span>&#160;        <span class="keyword">virtual</span> uint32_t   <a class="code" href="classolc_1_1_renderer.html#aeac898aaf282d09a9cd848303de57bea">CreateTexture</a>(<span class="keyword">const</span> uint32_t width, <span class="keyword">const</span> uint32_t height, <span class="keyword">const</span> <span class="keywordtype">bool</span> filtered = <span class="keyword">false</span>, <span class="keyword">const</span> <span class="keywordtype">bool</span> clamp = <span class="keyword">true</span>) = 0;</div>
+<div class="line"><a name="l00820"></a><span class="lineno"><a class="line" href="classolc_1_1_renderer.html#a1512e2939b94f6fdb58bbf152ac0e4e5">  820</a></span>&#160;        <span class="keyword">virtual</span> <span class="keywordtype">void</span>       <a class="code" href="classolc_1_1_renderer.html#a1512e2939b94f6fdb58bbf152ac0e4e5">UpdateTexture</a>(uint32_t <span class="keywordtype">id</span>, <a class="code" href="classolc_1_1_sprite.html">olc::Sprite</a>* spr) = 0;</div>
+<div class="line"><a name="l00821"></a><span class="lineno"><a class="line" href="classolc_1_1_renderer.html#aa0e93a7d9ff6f25e9b154b2c8c86d44d">  821</a></span>&#160;        <span class="keyword">virtual</span> <span class="keywordtype">void</span>       <a class="code" href="classolc_1_1_renderer.html#aa0e93a7d9ff6f25e9b154b2c8c86d44d">ReadTexture</a>(uint32_t <span class="keywordtype">id</span>, <a class="code" href="classolc_1_1_sprite.html">olc::Sprite</a>* spr) = 0;</div>
+<div class="line"><a name="l00822"></a><span class="lineno"><a class="line" href="classolc_1_1_renderer.html#aec8e86eb7a104fb0bc8f9fe51318f1a0">  822</a></span>&#160;        <span class="keyword">virtual</span> uint32_t   <a class="code" href="classolc_1_1_renderer.html#aec8e86eb7a104fb0bc8f9fe51318f1a0">DeleteTexture</a>(<span class="keyword">const</span> uint32_t <span class="keywordtype">id</span>) = 0;</div>
+<div class="line"><a name="l00823"></a><span class="lineno"><a class="line" href="classolc_1_1_renderer.html#a0a87094df3c911860a0eec9a8bb3b060">  823</a></span>&#160;        <span class="keyword">virtual</span> <span class="keywordtype">void</span>       <a class="code" href="classolc_1_1_renderer.html#a0a87094df3c911860a0eec9a8bb3b060">ApplyTexture</a>(uint32_t <span class="keywordtype">id</span>) = 0;</div>
+<div class="line"><a name="l00824"></a><span class="lineno"><a class="line" href="classolc_1_1_renderer.html#abc873336dd8f9079dc26f92ce0f95748">  824</a></span>&#160;        <span class="keyword">virtual</span> <span class="keywordtype">void</span>       <a class="code" href="classolc_1_1_renderer.html#abc873336dd8f9079dc26f92ce0f95748">UpdateViewport</a>(<span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vi2d</a>&amp; pos, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vi2d</a>&amp; size) = 0;</div>
+<div class="line"><a name="l00825"></a><span class="lineno"><a class="line" href="classolc_1_1_renderer.html#a921406bc341efd881ca510c64cebdc26">  825</a></span>&#160;        <span class="keyword">virtual</span> <span class="keywordtype">void</span>       <a class="code" href="classolc_1_1_renderer.html#a921406bc341efd881ca510c64cebdc26">ClearBuffer</a>(<a class="code" href="structolc_1_1_pixel.html">olc::Pixel</a> p, <span class="keywordtype">bool</span> bDepth) = 0;</div>
+<div class="line"><a name="l00826"></a><span class="lineno"><a class="line" href="classolc_1_1_renderer.html#a89f800c14ab1b070408c17e2589e02a1">  826</a></span>&#160;        <span class="keyword">static</span> <a class="code" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a>* <a class="code" href="classolc_1_1_renderer.html#a89f800c14ab1b070408c17e2589e02a1">ptrPGE</a>;</div>
+<div class="line"><a name="l00827"></a><span class="lineno">  827</span>&#160;    };</div>
+<div class="line"><a name="l00828"></a><span class="lineno">  828</span>&#160; </div>
+<div class="line"><a name="l00829"></a><span class="lineno"><a class="line" href="classolc_1_1_platform.html">  829</a></span>&#160;    <span class="keyword">class </span><a class="code" href="classolc_1_1_platform.html">Platform</a></div>
+<div class="line"><a name="l00830"></a><span class="lineno">  830</span>&#160;    {</div>
+<div class="line"><a name="l00831"></a><span class="lineno">  831</span>&#160;    <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00832"></a><span class="lineno"><a class="line" href="classolc_1_1_platform.html#a352f636fdc2e30bddac2db85238b166b">  832</a></span>&#160;        <span class="keyword">virtual</span> <a class="code" href="classolc_1_1_platform.html#a352f636fdc2e30bddac2db85238b166b">~Platform</a>() = <span class="keywordflow">default</span>;</div>
+<div class="line"><a name="l00833"></a><span class="lineno"><a class="line" href="classolc_1_1_platform.html#a65e6f9763726056f6a9d37395b8ed023">  833</a></span>&#160;        <span class="keyword">virtual</span> <a class="code" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87b">olc::rcode</a> <a class="code" href="classolc_1_1_platform.html#a65e6f9763726056f6a9d37395b8ed023">ApplicationStartUp</a>() = 0;</div>
+<div class="line"><a name="l00834"></a><span class="lineno"><a class="line" href="classolc_1_1_platform.html#aec7a14ba9007d3c421481baa49e55669">  834</a></span>&#160;        <span class="keyword">virtual</span> <a class="code" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87b">olc::rcode</a> <a class="code" href="classolc_1_1_platform.html#aec7a14ba9007d3c421481baa49e55669">ApplicationCleanUp</a>() = 0;</div>
+<div class="line"><a name="l00835"></a><span class="lineno"><a class="line" href="classolc_1_1_platform.html#ace0ea54aaa50143628b5fd41851b578f">  835</a></span>&#160;        <span class="keyword">virtual</span> <a class="code" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87b">olc::rcode</a> <a class="code" href="classolc_1_1_platform.html#ace0ea54aaa50143628b5fd41851b578f">ThreadStartUp</a>() = 0;</div>
+<div class="line"><a name="l00836"></a><span class="lineno"><a class="line" href="classolc_1_1_platform.html#a0e4e37ccc06ae7f3251b7a53ce839c13">  836</a></span>&#160;        <span class="keyword">virtual</span> <a class="code" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87b">olc::rcode</a> <a class="code" href="classolc_1_1_platform.html#a0e4e37ccc06ae7f3251b7a53ce839c13">ThreadCleanUp</a>() = 0;</div>
+<div class="line"><a name="l00837"></a><span class="lineno"><a class="line" href="classolc_1_1_platform.html#a2e951cdc0d8fd9bb68f05b33f1fd0450">  837</a></span>&#160;        <span class="keyword">virtual</span> <a class="code" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87b">olc::rcode</a> <a class="code" href="classolc_1_1_platform.html#a2e951cdc0d8fd9bb68f05b33f1fd0450">CreateGraphics</a>(<span class="keywordtype">bool</span> bFullScreen, <span class="keywordtype">bool</span> bEnableVSYNC, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vi2d</a>&amp; vViewPos, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vi2d</a>&amp; vViewSize) = 0;</div>
+<div class="line"><a name="l00838"></a><span class="lineno"><a class="line" href="classolc_1_1_platform.html#a4966327ca7d5ff2b855b3a4eaf0f88f2">  838</a></span>&#160;        <span class="keyword">virtual</span> <a class="code" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87b">olc::rcode</a> <a class="code" href="classolc_1_1_platform.html#a4966327ca7d5ff2b855b3a4eaf0f88f2">CreateWindowPane</a>(<span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vi2d</a>&amp; vWindowPos, <a class="code" href="structolc_1_1v2d__generic.html">olc::vi2d</a>&amp; vWindowSize, <span class="keywordtype">bool</span> bFullScreen) = 0;</div>
+<div class="line"><a name="l00839"></a><span class="lineno"><a class="line" href="classolc_1_1_platform.html#ab9ea28ecd660730810463dd6c68b73fd">  839</a></span>&#160;        <span class="keyword">virtual</span> <a class="code" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87b">olc::rcode</a> <a class="code" href="classolc_1_1_platform.html#ab9ea28ecd660730810463dd6c68b73fd">SetWindowTitle</a>(<span class="keyword">const</span> std::string&amp; s) = 0;</div>
+<div class="line"><a name="l00840"></a><span class="lineno"><a class="line" href="classolc_1_1_platform.html#af58e24a992339020fa1ebf58a224b209">  840</a></span>&#160;        <span class="keyword">virtual</span> <a class="code" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87b">olc::rcode</a> <a class="code" href="classolc_1_1_platform.html#af58e24a992339020fa1ebf58a224b209">StartSystemEventLoop</a>() = 0;</div>
+<div class="line"><a name="l00841"></a><span class="lineno"><a class="line" href="classolc_1_1_platform.html#abbc05f4b3aea3513919b05fdb15bfbbc">  841</a></span>&#160;        <span class="keyword">virtual</span> <a class="code" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87b">olc::rcode</a> <a class="code" href="classolc_1_1_platform.html#abbc05f4b3aea3513919b05fdb15bfbbc">HandleSystemEvent</a>() = 0;</div>
+<div class="line"><a name="l00842"></a><span class="lineno"><a class="line" href="classolc_1_1_platform.html#a43a4a5eaaf20384b9cef6aec6e75dbbd">  842</a></span>&#160;        <span class="keyword">static</span> <a class="code" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a>* <a class="code" href="classolc_1_1_platform.html#a43a4a5eaaf20384b9cef6aec6e75dbbd">ptrPGE</a>;</div>
+<div class="line"><a name="l00843"></a><span class="lineno">  843</span>&#160;    };</div>
+<div class="line"><a name="l00844"></a><span class="lineno">  844</span>&#160; </div>
+<div class="line"><a name="l00845"></a><span class="lineno">  845</span>&#160;    <span class="keyword">class </span><a class="code" href="classolc_1_1_p_g_e_x.html">PGEX</a>;</div>
+<div class="line"><a name="l00846"></a><span class="lineno">  846</span>&#160; </div>
+<div class="line"><a name="l00847"></a><span class="lineno">  847</span>&#160;    <span class="comment">// The Static Twins (plus one)</span></div>
+<div class="line"><a name="l00848"></a><span class="lineno">  848</span>&#160;    <span class="keyword">static</span> std::unique_ptr&lt;Renderer&gt; renderer;</div>
+<div class="line"><a name="l00849"></a><span class="lineno">  849</span>&#160;    <span class="keyword">static</span> std::unique_ptr&lt;Platform&gt; platform;</div>
+<div class="line"><a name="l00850"></a><span class="lineno">  850</span>&#160;    <span class="keyword">static</span> std::map&lt;size_t, uint8_t&gt; mapKeys;</div>
+<div class="line"><a name="l00851"></a><span class="lineno">  851</span>&#160; </div>
+<div class="line"><a name="l00852"></a><span class="lineno">  852</span>&#160;    <span class="comment">// O------------------------------------------------------------------------------O</span></div>
+<div class="line"><a name="l00853"></a><span class="lineno">  853</span>&#160;    <span class="comment">// | olc::PixelGameEngine - The main BASE class for your application              |</span></div>
+<div class="line"><a name="l00854"></a><span class="lineno">  854</span>&#160;    <span class="comment">// O------------------------------------------------------------------------------O</span></div>
+<div class="line"><a name="l00855"></a><span class="lineno"><a class="line" href="classolc_1_1_pixel_game_engine.html">  855</a></span>&#160;    <span class="keyword">class </span><a class="code" href="classolc_1_1_pixel_game_engine.html">PixelGameEngine</a></div>
+<div class="line"><a name="l00856"></a><span class="lineno">  856</span>&#160;    {</div>
+<div class="line"><a name="l00857"></a><span class="lineno">  857</span>&#160;    <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00858"></a><span class="lineno"><a class="line" href="classolc_1_1_pixel_game_engine.html#afe9d685732305246c3fcb361ae3c4bc6">  858</a></span>&#160;        <a class="code" href="classolc_1_1_pixel_game_engine.html#afe9d685732305246c3fcb361ae3c4bc6">PixelGameEngine</a>();</div>
+<div class="line"><a name="l00859"></a><span class="lineno"><a class="line" href="classolc_1_1_pixel_game_engine.html#a423d90134c297f7b9f1834a136071b19">  859</a></span>&#160;        <span class="keyword">virtual</span> <a class="code" href="classolc_1_1_pixel_game_engine.html#a423d90134c297f7b9f1834a136071b19">~PixelGameEngine</a>();</div>
+<div class="line"><a name="l00860"></a><span class="lineno">  860</span>&#160;    <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00861"></a><span class="lineno"><a class="line" href="classolc_1_1_pixel_game_engine.html#af1a9cf3b38dda2071b7ec18868ee1ccd">  861</a></span>&#160;        <a class="code" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87b">olc::rcode</a> <a class="code" href="classolc_1_1_pixel_game_engine.html#af1a9cf3b38dda2071b7ec18868ee1ccd">Construct</a>(int32_t screen_w, int32_t screen_h, int32_t pixel_w, int32_t pixel_h,</div>
+<div class="line"><a name="l00862"></a><span class="lineno">  862</span>&#160;            <span class="keywordtype">bool</span> full_screen = <span class="keyword">false</span>, <span class="keywordtype">bool</span> vsync = <span class="keyword">false</span>, <span class="keywordtype">bool</span> cohesion = <span class="keyword">false</span>);</div>
+<div class="line"><a name="l00863"></a><span class="lineno"><a class="line" href="classolc_1_1_pixel_game_engine.html#a8e8848aa1c743a1ec2cdaa14c87e5cde">  863</a></span>&#160;        <a class="code" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87b">olc::rcode</a> <a class="code" href="classolc_1_1_pixel_game_engine.html#a8e8848aa1c743a1ec2cdaa14c87e5cde">Start</a>();</div>
+<div class="line"><a name="l00864"></a><span class="lineno">  864</span>&#160; </div>
+<div class="line"><a name="l00865"></a><span class="lineno">  865</span>&#160;    <span class="keyword">public</span>: <span class="comment">// User Override Interfaces</span></div>
+<div class="line"><a name="l00866"></a><span class="lineno">  866</span>&#160;        <span class="comment">// Called once on application startup, use to load your resources</span></div>
+<div class="line"><a name="l00867"></a><span class="lineno"><a class="line" href="classolc_1_1_pixel_game_engine.html#a6a33b6ff7cd23dfd05b34416865fb5c3">  867</a></span>&#160;        <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classolc_1_1_pixel_game_engine.html#a6a33b6ff7cd23dfd05b34416865fb5c3">OnUserCreate</a>();</div>
+<div class="line"><a name="l00868"></a><span class="lineno">  868</span>&#160;        <span class="comment">// Called every frame, and provides you with a time per frame value</span></div>
+<div class="line"><a name="l00869"></a><span class="lineno"><a class="line" href="classolc_1_1_pixel_game_engine.html#af9379a3db341b0acb410ea543e30fdd1">  869</a></span>&#160;        <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classolc_1_1_pixel_game_engine.html#af9379a3db341b0acb410ea543e30fdd1">OnUserUpdate</a>(<span class="keywordtype">float</span> fElapsedTime);</div>
+<div class="line"><a name="l00870"></a><span class="lineno">  870</span>&#160;        <span class="comment">// Called once on application termination, so you can be one clean coder</span></div>
+<div class="line"><a name="l00871"></a><span class="lineno"><a class="line" href="classolc_1_1_pixel_game_engine.html#ad4fbf979865fb1f08250ea379f2de669">  871</a></span>&#160;        <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classolc_1_1_pixel_game_engine.html#ad4fbf979865fb1f08250ea379f2de669">OnUserDestroy</a>();</div>
+<div class="line"><a name="l00872"></a><span class="lineno">  872</span>&#160; </div>
+<div class="line"><a name="l00873"></a><span class="lineno">  873</span>&#160;    <span class="keyword">public</span>: <span class="comment">// Hardware Interfaces</span></div>
+<div class="line"><a name="l00874"></a><span class="lineno">  874</span>&#160;        <span class="comment">// Returns true if window is currently in focus</span></div>
+<div class="line"><a name="l00875"></a><span class="lineno"><a class="line" href="classolc_1_1_pixel_game_engine.html#a92192402b5d499ab8b230dfb9393f3b7">  875</a></span>&#160;        <span class="keywordtype">bool</span> <a class="code" href="classolc_1_1_pixel_game_engine.html#a92192402b5d499ab8b230dfb9393f3b7">IsFocused</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00876"></a><span class="lineno">  876</span>&#160;        <span class="comment">// Get the state of a specific keyboard button</span></div>
+<div class="line"><a name="l00877"></a><span class="lineno"><a class="line" href="classolc_1_1_pixel_game_engine.html#a27cb4cb68d5e1ca7df8014d66221269e">  877</a></span>&#160;        <a class="code" href="structolc_1_1_h_w_button.html">HWButton</a> <a class="code" href="classolc_1_1_pixel_game_engine.html#a27cb4cb68d5e1ca7df8014d66221269e">GetKey</a>(<a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7">Key</a> k) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00878"></a><span class="lineno">  878</span>&#160;        <span class="comment">// Get the state of a specific mouse button</span></div>
+<div class="line"><a name="l00879"></a><span class="lineno"><a class="line" href="classolc_1_1_pixel_game_engine.html#abdf9f5d70c9e24ab9358a8dd07474105">  879</a></span>&#160;        <a class="code" href="structolc_1_1_h_w_button.html">HWButton</a> <a class="code" href="classolc_1_1_pixel_game_engine.html#abdf9f5d70c9e24ab9358a8dd07474105">GetMouse</a>(uint32_t b) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00880"></a><span class="lineno">  880</span>&#160;        <span class="comment">// Get Mouse X coordinate in &quot;pixel&quot; space</span></div>
+<div class="line"><a name="l00881"></a><span class="lineno"><a class="line" href="classolc_1_1_pixel_game_engine.html#a2ec1d2a1f3777338fb4388c620344a34">  881</a></span>&#160;        int32_t <a class="code" href="classolc_1_1_pixel_game_engine.html#a2ec1d2a1f3777338fb4388c620344a34">GetMouseX</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00882"></a><span class="lineno">  882</span>&#160;        <span class="comment">// Get Mouse Y coordinate in &quot;pixel&quot; space</span></div>
+<div class="line"><a name="l00883"></a><span class="lineno"><a class="line" href="classolc_1_1_pixel_game_engine.html#a8dde80c07547240f5e72b4f2fcd89668">  883</a></span>&#160;        int32_t <a class="code" href="classolc_1_1_pixel_game_engine.html#a8dde80c07547240f5e72b4f2fcd89668">GetMouseY</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00884"></a><span class="lineno">  884</span>&#160;        <span class="comment">// Get Mouse Wheel Delta</span></div>
+<div class="line"><a name="l00885"></a><span class="lineno"><a class="line" href="classolc_1_1_pixel_game_engine.html#a9640286e4a7cd03c6f545b1df7373269">  885</a></span>&#160;        int32_t <a class="code" href="classolc_1_1_pixel_game_engine.html#a9640286e4a7cd03c6f545b1df7373269">GetMouseWheel</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00886"></a><span class="lineno">  886</span>&#160;        <span class="comment">// Get the mouse in window space</span></div>
+<div class="line"><a name="l00887"></a><span class="lineno"><a class="line" href="classolc_1_1_pixel_game_engine.html#a54b5141da371af51541874dd68e4e6a2">  887</a></span>&#160;        <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vi2d</a>&amp; <a class="code" href="classolc_1_1_pixel_game_engine.html#a54b5141da371af51541874dd68e4e6a2">GetWindowMouse</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00888"></a><span class="lineno">  888</span>&#160;        <span class="comment">// Gets the mouse as a vector to keep Tarriest happy</span></div>
+<div class="line"><a name="l00889"></a><span class="lineno"><a class="line" href="classolc_1_1_pixel_game_engine.html#af11fb390dbc5a3168c26fe911690dcbe">  889</a></span>&#160;        <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vi2d</a>&amp; <a class="code" href="classolc_1_1_pixel_game_engine.html#af11fb390dbc5a3168c26fe911690dcbe">GetMousePos</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00890"></a><span class="lineno">  890</span>&#160; </div>
+<div class="line"><a name="l00891"></a><span class="lineno">  891</span>&#160;    <span class="keyword">public</span>: <span class="comment">// Utility</span></div>
+<div class="line"><a name="l00892"></a><span class="lineno">  892</span>&#160;        <span class="comment">// Returns the width of the screen in &quot;pixels&quot;</span></div>
+<div class="line"><a name="l00893"></a><span class="lineno"><a class="line" href="classolc_1_1_pixel_game_engine.html#aa3b458d05eab503d9918cfd2d383a45c">  893</a></span>&#160;        int32_t <a class="code" href="classolc_1_1_pixel_game_engine.html#aa3b458d05eab503d9918cfd2d383a45c">ScreenWidth</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00894"></a><span class="lineno">  894</span>&#160;        <span class="comment">// Returns the height of the screen in &quot;pixels&quot;</span></div>
+<div class="line"><a name="l00895"></a><span class="lineno"><a class="line" href="classolc_1_1_pixel_game_engine.html#abbbee4578ffa6b844c04c1af363052af">  895</a></span>&#160;        int32_t <a class="code" href="classolc_1_1_pixel_game_engine.html#abbbee4578ffa6b844c04c1af363052af">ScreenHeight</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00896"></a><span class="lineno">  896</span>&#160;        <span class="comment">// Returns the width of the currently selected drawing target in &quot;pixels&quot;</span></div>
+<div class="line"><a name="l00897"></a><span class="lineno"><a class="line" href="classolc_1_1_pixel_game_engine.html#a45d918f65f5fee13e654878d8271326b">  897</a></span>&#160;        int32_t <a class="code" href="classolc_1_1_pixel_game_engine.html#a45d918f65f5fee13e654878d8271326b">GetDrawTargetWidth</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00898"></a><span class="lineno">  898</span>&#160;        <span class="comment">// Returns the height of the currently selected drawing target in &quot;pixels&quot;</span></div>
+<div class="line"><a name="l00899"></a><span class="lineno"><a class="line" href="classolc_1_1_pixel_game_engine.html#a4ee3dbff01900d71e62bfe499b1c83c3">  899</a></span>&#160;        int32_t <a class="code" href="classolc_1_1_pixel_game_engine.html#a4ee3dbff01900d71e62bfe499b1c83c3">GetDrawTargetHeight</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00900"></a><span class="lineno">  900</span>&#160;        <span class="comment">// Returns the currently active draw target</span></div>
+<div class="line"><a name="l00901"></a><span class="lineno"><a class="line" href="classolc_1_1_pixel_game_engine.html#a5fd95bd9571bc3ed3fd5d7d110e48cff">  901</a></span>&#160;        <a class="code" href="classolc_1_1_sprite.html">olc::Sprite</a>* <a class="code" href="classolc_1_1_pixel_game_engine.html#a5fd95bd9571bc3ed3fd5d7d110e48cff">GetDrawTarget</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00902"></a><span class="lineno">  902</span>&#160;        <span class="comment">// Resize the primary screen sprite</span></div>
+<div class="line"><a name="l00903"></a><span class="lineno"><a class="line" href="classolc_1_1_pixel_game_engine.html#abd403468f57f7665d56e202da8de8e76">  903</a></span>&#160;        <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_pixel_game_engine.html#abd403468f57f7665d56e202da8de8e76">SetScreenSize</a>(<span class="keywordtype">int</span> w, <span class="keywordtype">int</span> h);</div>
+<div class="line"><a name="l00904"></a><span class="lineno">  904</span>&#160;        <span class="comment">// Specify which Sprite should be the target of drawing functions, use nullptr</span></div>
+<div class="line"><a name="l00905"></a><span class="lineno">  905</span>&#160;        <span class="comment">// to specify the primary screen</span></div>
+<div class="line"><a name="l00906"></a><span class="lineno"><a class="line" href="classolc_1_1_pixel_game_engine.html#a70b6a145d7ab0c8857000a72ce4d4a70">  906</a></span>&#160;        <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_pixel_game_engine.html#a70b6a145d7ab0c8857000a72ce4d4a70">SetDrawTarget</a>(<a class="code" href="classolc_1_1_sprite.html">Sprite</a>* target);</div>
+<div class="line"><a name="l00907"></a><span class="lineno">  907</span>&#160;        <span class="comment">// Gets the current Frames Per Second</span></div>
+<div class="line"><a name="l00908"></a><span class="lineno"><a class="line" href="classolc_1_1_pixel_game_engine.html#a89d27938d71d49b42a20307444147697">  908</a></span>&#160;        uint32_t <a class="code" href="classolc_1_1_pixel_game_engine.html#a89d27938d71d49b42a20307444147697">GetFPS</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00909"></a><span class="lineno">  909</span>&#160;        <span class="comment">// Gets last update of elapsed time</span></div>
+<div class="line"><a name="l00910"></a><span class="lineno"><a class="line" href="classolc_1_1_pixel_game_engine.html#af881473291c52d849dbef155e359b27c">  910</a></span>&#160;        <span class="keywordtype">float</span> <a class="code" href="classolc_1_1_pixel_game_engine.html#af881473291c52d849dbef155e359b27c">GetElapsedTime</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00911"></a><span class="lineno">  911</span>&#160;        <span class="comment">// Gets Actual Window size</span></div>
+<div class="line"><a name="l00912"></a><span class="lineno"><a class="line" href="classolc_1_1_pixel_game_engine.html#aee10e917aeb1ce4625561d71126e0a7d">  912</a></span>&#160;        <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vi2d</a>&amp; <a class="code" href="classolc_1_1_pixel_game_engine.html#aee10e917aeb1ce4625561d71126e0a7d">GetWindowSize</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00913"></a><span class="lineno">  913</span>&#160;        <span class="comment">// Gets pixel scale</span></div>
+<div class="line"><a name="l00914"></a><span class="lineno"><a class="line" href="classolc_1_1_pixel_game_engine.html#a721fb4cfac75f76c6d5832415fccbe61">  914</a></span>&#160;        <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vi2d</a>&amp; <a class="code" href="classolc_1_1_pixel_game_engine.html#a721fb4cfac75f76c6d5832415fccbe61">GetPixelSize</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00915"></a><span class="lineno">  915</span>&#160;        <span class="comment">// Gets actual pixel scale</span></div>
+<div class="line"><a name="l00916"></a><span class="lineno"><a class="line" href="classolc_1_1_pixel_game_engine.html#a5602d50220bd7edbd77fc67eaa981ce5">  916</a></span>&#160;        <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vi2d</a>&amp; <a class="code" href="classolc_1_1_pixel_game_engine.html#a5602d50220bd7edbd77fc67eaa981ce5">GetScreenPixelSize</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00917"></a><span class="lineno">  917</span>&#160; </div>
+<div class="line"><a name="l00918"></a><span class="lineno">  918</span>&#160;    <span class="keyword">public</span>: <span class="comment">// CONFIGURATION ROUTINES</span></div>
+<div class="line"><a name="l00919"></a><span class="lineno">  919</span>&#160;        <span class="comment">// Layer targeting functions</span></div>
+<div class="line"><a name="l00920"></a><span class="lineno"><a class="line" href="classolc_1_1_pixel_game_engine.html#a5842c1087a70c95a7ff96d53f28b7bab">  920</a></span>&#160;        <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_pixel_game_engine.html#a5842c1087a70c95a7ff96d53f28b7bab">SetDrawTarget</a>(uint8_t layer);</div>
+<div class="line"><a name="l00921"></a><span class="lineno"><a class="line" href="classolc_1_1_pixel_game_engine.html#a1e3453e2a118596fa04a961f66c6fd46">  921</a></span>&#160;        <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_pixel_game_engine.html#a1e3453e2a118596fa04a961f66c6fd46">EnableLayer</a>(uint8_t layer, <span class="keywordtype">bool</span> b);</div>
+<div class="line"><a name="l00922"></a><span class="lineno"><a class="line" href="classolc_1_1_pixel_game_engine.html#a0e1ddc993ef65dfe00f2bbcf59e535ad">  922</a></span>&#160;        <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_pixel_game_engine.html#a0e1ddc993ef65dfe00f2bbcf59e535ad">SetLayerOffset</a>(uint8_t layer, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; offset);</div>
+<div class="line"><a name="l00923"></a><span class="lineno"><a class="line" href="classolc_1_1_pixel_game_engine.html#a9fed21eddcebeb743472d8b9eb1e3ece">  923</a></span>&#160;        <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_pixel_game_engine.html#a9fed21eddcebeb743472d8b9eb1e3ece">SetLayerOffset</a>(uint8_t layer, <span class="keywordtype">float</span> x, <span class="keywordtype">float</span> y);</div>
+<div class="line"><a name="l00924"></a><span class="lineno"><a class="line" href="classolc_1_1_pixel_game_engine.html#af8fbe005b4069ed1de8e0347b72ebc30">  924</a></span>&#160;        <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_pixel_game_engine.html#af8fbe005b4069ed1de8e0347b72ebc30">SetLayerScale</a>(uint8_t layer, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; scale);</div>
+<div class="line"><a name="l00925"></a><span class="lineno"><a class="line" href="classolc_1_1_pixel_game_engine.html#a409825b0147e25c0d4c05fb0aa1f6273">  925</a></span>&#160;        <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_pixel_game_engine.html#a409825b0147e25c0d4c05fb0aa1f6273">SetLayerScale</a>(uint8_t layer, <span class="keywordtype">float</span> x, <span class="keywordtype">float</span> y);</div>
+<div class="line"><a name="l00926"></a><span class="lineno"><a class="line" href="classolc_1_1_pixel_game_engine.html#a7d7c04245161782d5f5c48d3d62ff7a7">  926</a></span>&#160;        <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_pixel_game_engine.html#a7d7c04245161782d5f5c48d3d62ff7a7">SetLayerTint</a>(uint8_t layer, <span class="keyword">const</span> <a class="code" href="structolc_1_1_pixel.html">olc::Pixel</a>&amp; tint);</div>
+<div class="line"><a name="l00927"></a><span class="lineno"><a class="line" href="classolc_1_1_pixel_game_engine.html#a40a88ddb3800e59121f05b06fd64dbfd">  927</a></span>&#160;        <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_pixel_game_engine.html#a40a88ddb3800e59121f05b06fd64dbfd">SetLayerCustomRenderFunction</a>(uint8_t layer, std::function&lt;<span class="keywordtype">void</span>()&gt; f);</div>
+<div class="line"><a name="l00928"></a><span class="lineno">  928</span>&#160; </div>
+<div class="line"><a name="l00929"></a><span class="lineno"><a class="line" href="classolc_1_1_pixel_game_engine.html#aac31baad6daf55b926f6add9c44a5591">  929</a></span>&#160;        std::vector&lt;LayerDesc&gt;&amp; <a class="code" href="classolc_1_1_pixel_game_engine.html#aac31baad6daf55b926f6add9c44a5591">GetLayers</a>();</div>
+<div class="line"><a name="l00930"></a><span class="lineno"><a class="line" href="classolc_1_1_pixel_game_engine.html#ae15ffa0503e2893aad7001aa2f5769b7">  930</a></span>&#160;        uint32_t <a class="code" href="classolc_1_1_pixel_game_engine.html#ae15ffa0503e2893aad7001aa2f5769b7">CreateLayer</a>();</div>
+<div class="line"><a name="l00931"></a><span class="lineno">  931</span>&#160; </div>
+<div class="line"><a name="l00932"></a><span class="lineno">  932</span>&#160;        <span class="comment">// Change the pixel mode for different optimisations</span></div>
+<div class="line"><a name="l00933"></a><span class="lineno">  933</span>&#160;        <span class="comment">// olc::Pixel::NORMAL = No transparency</span></div>
+<div class="line"><a name="l00934"></a><span class="lineno">  934</span>&#160;        <span class="comment">// olc::Pixel::MASK   = Transparent if alpha is &lt; 255</span></div>
+<div class="line"><a name="l00935"></a><span class="lineno">  935</span>&#160;        <span class="comment">// olc::Pixel::ALPHA  = Full transparency</span></div>
+<div class="line"><a name="l00936"></a><span class="lineno"><a class="line" href="classolc_1_1_pixel_game_engine.html#ae4a3d1aaa40761986389966ab927ef32">  936</a></span>&#160;        <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_pixel_game_engine.html#ae4a3d1aaa40761986389966ab927ef32">SetPixelMode</a>(<a class="code" href="structolc_1_1_pixel.html#ae9012164940526ddb09b217dbbddfd65">Pixel::Mode</a> m);</div>
+<div class="line"><a name="l00937"></a><span class="lineno"><a class="line" href="classolc_1_1_pixel_game_engine.html#ad4f95a449dc09a2650ec771e6fa83049">  937</a></span>&#160;        <a class="code" href="structolc_1_1_pixel.html#ae9012164940526ddb09b217dbbddfd65">Pixel::Mode</a> <a class="code" href="classolc_1_1_pixel_game_engine.html#ad4f95a449dc09a2650ec771e6fa83049">GetPixelMode</a>();</div>
+<div class="line"><a name="l00938"></a><span class="lineno">  938</span>&#160;        <span class="comment">// Use a custom blend function</span></div>
+<div class="line"><a name="l00939"></a><span class="lineno"><a class="line" href="classolc_1_1_pixel_game_engine.html#a9aa31ae4e1735efa72f3ea17fb51b2ef">  939</a></span>&#160;        <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_pixel_game_engine.html#a9aa31ae4e1735efa72f3ea17fb51b2ef">SetPixelMode</a>(std::function&lt;<a class="code" href="structolc_1_1_pixel.html">olc::Pixel</a>(<span class="keyword">const</span> <span class="keywordtype">int</span> x, <span class="keyword">const</span> <span class="keywordtype">int</span> y, <span class="keyword">const</span> <a class="code" href="structolc_1_1_pixel.html">olc::Pixel</a>&amp; pSource, <span class="keyword">const</span> <a class="code" href="structolc_1_1_pixel.html">olc::Pixel</a>&amp; pDest)&gt; pixelMode);</div>
+<div class="line"><a name="l00940"></a><span class="lineno">  940</span>&#160;        <span class="comment">// Change the blend factor from between 0.0f to 1.0f;</span></div>
+<div class="line"><a name="l00941"></a><span class="lineno"><a class="line" href="classolc_1_1_pixel_game_engine.html#ab0726b7758bc1bf7f7de30369076b8e7">  941</a></span>&#160;        <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_pixel_game_engine.html#ab0726b7758bc1bf7f7de30369076b8e7">SetPixelBlend</a>(<span class="keywordtype">float</span> fBlend);</div>
+<div class="line"><a name="l00942"></a><span class="lineno">  942</span>&#160; </div>
+<div class="line"><a name="l00943"></a><span class="lineno">  943</span>&#160; </div>
+<div class="line"><a name="l00944"></a><span class="lineno">  944</span>&#160; </div>
+<div class="line"><a name="l00945"></a><span class="lineno">  945</span>&#160;    <span class="keyword">public</span>: <span class="comment">// DRAWING ROUTINES</span></div>
+<div class="line"><a name="l00946"></a><span class="lineno">  946</span>&#160;        <span class="comment">// Draws a single Pixel</span></div>
+<div class="line"><a name="l00947"></a><span class="lineno"><a class="line" href="classolc_1_1_pixel_game_engine.html#a95ab046b4b0843565bddd0e009a25569">  947</a></span>&#160;        <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classolc_1_1_pixel_game_engine.html#a95ab046b4b0843565bddd0e009a25569">Draw</a>(int32_t x, int32_t y, <a class="code" href="structolc_1_1_pixel.html">Pixel</a> p = <a class="code" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>);</div>
+<div class="line"><a name="l00948"></a><span class="lineno"><a class="line" href="classolc_1_1_pixel_game_engine.html#ad7bd70d2c3d0bc5bbb0991fa4695a4e9">  948</a></span>&#160;        <span class="keywordtype">bool</span> <a class="code" href="classolc_1_1_pixel_game_engine.html#ad7bd70d2c3d0bc5bbb0991fa4695a4e9">Draw</a>(<span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vi2d</a>&amp; pos, <a class="code" href="structolc_1_1_pixel.html">Pixel</a> p = <a class="code" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>);</div>
+<div class="line"><a name="l00949"></a><span class="lineno">  949</span>&#160;        <span class="comment">// Draws a line from (x1,y1) to (x2,y2)</span></div>
+<div class="line"><a name="l00950"></a><span class="lineno"><a class="line" href="classolc_1_1_pixel_game_engine.html#a131877968123c843374f079814503d22">  950</a></span>&#160;        <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_pixel_game_engine.html#a131877968123c843374f079814503d22">DrawLine</a>(int32_t x1, int32_t y1, int32_t x2, int32_t y2, <a class="code" href="structolc_1_1_pixel.html">Pixel</a> p = <a class="code" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>, uint32_t pattern = 0xFFFFFFFF);</div>
+<div class="line"><a name="l00951"></a><span class="lineno"><a class="line" href="classolc_1_1_pixel_game_engine.html#ac24457d32db7d8acf0661c6de57be7a8">  951</a></span>&#160;        <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_pixel_game_engine.html#ac24457d32db7d8acf0661c6de57be7a8">DrawLine</a>(<span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vi2d</a>&amp; pos1, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vi2d</a>&amp; pos2, <a class="code" href="structolc_1_1_pixel.html">Pixel</a> p = <a class="code" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>, uint32_t pattern = 0xFFFFFFFF);</div>
+<div class="line"><a name="l00952"></a><span class="lineno">  952</span>&#160;        <span class="comment">// Draws a circle located at (x,y) with radius</span></div>
+<div class="line"><a name="l00953"></a><span class="lineno"><a class="line" href="classolc_1_1_pixel_game_engine.html#a2ce3e34fd633acdc22b8dc2c8d25f86c">  953</a></span>&#160;        <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_pixel_game_engine.html#a2ce3e34fd633acdc22b8dc2c8d25f86c">DrawCircle</a>(int32_t x, int32_t y, int32_t radius, <a class="code" href="structolc_1_1_pixel.html">Pixel</a> p = <a class="code" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>, uint8_t mask = 0xFF);</div>
+<div class="line"><a name="l00954"></a><span class="lineno"><a class="line" href="classolc_1_1_pixel_game_engine.html#a0016377c9188719462724f523b3a6334">  954</a></span>&#160;        <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_pixel_game_engine.html#a0016377c9188719462724f523b3a6334">DrawCircle</a>(<span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vi2d</a>&amp; pos, int32_t radius, <a class="code" href="structolc_1_1_pixel.html">Pixel</a> p = <a class="code" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>, uint8_t mask = 0xFF);</div>
+<div class="line"><a name="l00955"></a><span class="lineno">  955</span>&#160;        <span class="comment">// Fills a circle located at (x,y) with radius</span></div>
+<div class="line"><a name="l00956"></a><span class="lineno"><a class="line" href="classolc_1_1_pixel_game_engine.html#a483f56606fbbf3ab4850554491a853bd">  956</a></span>&#160;        <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_pixel_game_engine.html#a483f56606fbbf3ab4850554491a853bd">FillCircle</a>(int32_t x, int32_t y, int32_t radius, <a class="code" href="structolc_1_1_pixel.html">Pixel</a> p = <a class="code" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>);</div>
+<div class="line"><a name="l00957"></a><span class="lineno"><a class="line" href="classolc_1_1_pixel_game_engine.html#a169b1c8ca3116ac2338785b8ffe87954">  957</a></span>&#160;        <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_pixel_game_engine.html#a169b1c8ca3116ac2338785b8ffe87954">FillCircle</a>(<span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vi2d</a>&amp; pos, int32_t radius, <a class="code" href="structolc_1_1_pixel.html">Pixel</a> p = <a class="code" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>);</div>
+<div class="line"><a name="l00958"></a><span class="lineno">  958</span>&#160;        <span class="comment">// Draws a rectangle at (x,y) to (x+w,y+h)</span></div>
+<div class="line"><a name="l00959"></a><span class="lineno"><a class="line" href="classolc_1_1_pixel_game_engine.html#a220f523e520e317f5656c4d3df777163">  959</a></span>&#160;        <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_pixel_game_engine.html#a220f523e520e317f5656c4d3df777163">DrawRect</a>(int32_t x, int32_t y, int32_t w, int32_t h, <a class="code" href="structolc_1_1_pixel.html">Pixel</a> p = <a class="code" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>);</div>
+<div class="line"><a name="l00960"></a><span class="lineno"><a class="line" href="classolc_1_1_pixel_game_engine.html#ac8536bf173a396cf78f952ab66fe6156">  960</a></span>&#160;        <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_pixel_game_engine.html#ac8536bf173a396cf78f952ab66fe6156">DrawRect</a>(<span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vi2d</a>&amp; pos, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vi2d</a>&amp; size, <a class="code" href="structolc_1_1_pixel.html">Pixel</a> p = <a class="code" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>);</div>
+<div class="line"><a name="l00961"></a><span class="lineno">  961</span>&#160;        <span class="comment">// Fills a rectangle at (x,y) to (x+w,y+h)</span></div>
+<div class="line"><a name="l00962"></a><span class="lineno"><a class="line" href="classolc_1_1_pixel_game_engine.html#a6b5e218bb4360f27a470f9e821721331">  962</a></span>&#160;        <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_pixel_game_engine.html#a6b5e218bb4360f27a470f9e821721331">FillRect</a>(int32_t x, int32_t y, int32_t w, int32_t h, <a class="code" href="structolc_1_1_pixel.html">Pixel</a> p = <a class="code" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>);</div>
+<div class="line"><a name="l00963"></a><span class="lineno"><a class="line" href="classolc_1_1_pixel_game_engine.html#ae225f7027e20fe0f45a8190a992981cc">  963</a></span>&#160;        <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_pixel_game_engine.html#ae225f7027e20fe0f45a8190a992981cc">FillRect</a>(<span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vi2d</a>&amp; pos, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vi2d</a>&amp; size, <a class="code" href="structolc_1_1_pixel.html">Pixel</a> p = <a class="code" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>);</div>
+<div class="line"><a name="l00964"></a><span class="lineno">  964</span>&#160;        <span class="comment">// Draws a triangle between points (x1,y1), (x2,y2) and (x3,y3)</span></div>
+<div class="line"><a name="l00965"></a><span class="lineno"><a class="line" href="classolc_1_1_pixel_game_engine.html#a2bddba9e808a8702f6af354007302c16">  965</a></span>&#160;        <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_pixel_game_engine.html#a2bddba9e808a8702f6af354007302c16">DrawTriangle</a>(int32_t x1, int32_t y1, int32_t x2, int32_t y2, int32_t x3, int32_t y3, <a class="code" href="structolc_1_1_pixel.html">Pixel</a> p = <a class="code" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>);</div>
+<div class="line"><a name="l00966"></a><span class="lineno"><a class="line" href="classolc_1_1_pixel_game_engine.html#aafe21db2127f56670b5f5f089adced71">  966</a></span>&#160;        <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_pixel_game_engine.html#aafe21db2127f56670b5f5f089adced71">DrawTriangle</a>(<span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vi2d</a>&amp; pos1, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vi2d</a>&amp; pos2, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vi2d</a>&amp; pos3, <a class="code" href="structolc_1_1_pixel.html">Pixel</a> p = <a class="code" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>);</div>
+<div class="line"><a name="l00967"></a><span class="lineno">  967</span>&#160;        <span class="comment">// Flat fills a triangle between points (x1,y1), (x2,y2) and (x3,y3)</span></div>
+<div class="line"><a name="l00968"></a><span class="lineno"><a class="line" href="classolc_1_1_pixel_game_engine.html#ad31abffe6c4d0b864b8f7762c33b7a7d">  968</a></span>&#160;        <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_pixel_game_engine.html#ad31abffe6c4d0b864b8f7762c33b7a7d">FillTriangle</a>(int32_t x1, int32_t y1, int32_t x2, int32_t y2, int32_t x3, int32_t y3, <a class="code" href="structolc_1_1_pixel.html">Pixel</a> p = <a class="code" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>);</div>
+<div class="line"><a name="l00969"></a><span class="lineno"><a class="line" href="classolc_1_1_pixel_game_engine.html#a091224d5937210726d25c8cdeb4a951e">  969</a></span>&#160;        <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_pixel_game_engine.html#a091224d5937210726d25c8cdeb4a951e">FillTriangle</a>(<span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vi2d</a>&amp; pos1, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vi2d</a>&amp; pos2, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vi2d</a>&amp; pos3, <a class="code" href="structolc_1_1_pixel.html">Pixel</a> p = <a class="code" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>);</div>
+<div class="line"><a name="l00970"></a><span class="lineno">  970</span>&#160;        <span class="comment">// Draws an entire sprite at location (x,y)</span></div>
+<div class="line"><a name="l00971"></a><span class="lineno"><a class="line" href="classolc_1_1_pixel_game_engine.html#a5bae460b03f2837e39fdee3a0bbb6f99">  971</a></span>&#160;        <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_pixel_game_engine.html#a5bae460b03f2837e39fdee3a0bbb6f99">DrawSprite</a>(int32_t x, int32_t y, <a class="code" href="classolc_1_1_sprite.html">Sprite</a>* sprite, uint32_t scale = 1, uint8_t flip = <a class="code" href="classolc_1_1_sprite.html#ad0d1976d2060997f5cd99eb284a5dc24a6ad338b4e63faacfbed68b020c3a0c0c">olc::Sprite::NONE</a>);</div>
+<div class="line"><a name="l00972"></a><span class="lineno"><a class="line" href="classolc_1_1_pixel_game_engine.html#adcf00714f6f13ed5ad256e2102084177">  972</a></span>&#160;        <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_pixel_game_engine.html#adcf00714f6f13ed5ad256e2102084177">DrawSprite</a>(<span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vi2d</a>&amp; pos, <a class="code" href="classolc_1_1_sprite.html">Sprite</a>* sprite, uint32_t scale = 1, uint8_t flip = <a class="code" href="classolc_1_1_sprite.html#ad0d1976d2060997f5cd99eb284a5dc24a6ad338b4e63faacfbed68b020c3a0c0c">olc::Sprite::NONE</a>);</div>
+<div class="line"><a name="l00973"></a><span class="lineno">  973</span>&#160;        <span class="comment">// Draws an area of a sprite at location (x,y), where the</span></div>
+<div class="line"><a name="l00974"></a><span class="lineno">  974</span>&#160;        <span class="comment">// selected area is (ox,oy) to (ox+w,oy+h)</span></div>
+<div class="line"><a name="l00975"></a><span class="lineno"><a class="line" href="classolc_1_1_pixel_game_engine.html#ab777dd885946b2dba5e8bef894c6868c">  975</a></span>&#160;        <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_pixel_game_engine.html#ab777dd885946b2dba5e8bef894c6868c">DrawPartialSprite</a>(int32_t x, int32_t y, <a class="code" href="classolc_1_1_sprite.html">Sprite</a>* sprite, int32_t ox, int32_t oy, int32_t w, int32_t h, uint32_t scale = 1, uint8_t flip = <a class="code" href="classolc_1_1_sprite.html#ad0d1976d2060997f5cd99eb284a5dc24a6ad338b4e63faacfbed68b020c3a0c0c">olc::Sprite::NONE</a>);</div>
+<div class="line"><a name="l00976"></a><span class="lineno"><a class="line" href="classolc_1_1_pixel_game_engine.html#aecfcfec384cf4eb56ab89f92df4ff288">  976</a></span>&#160;        <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_pixel_game_engine.html#aecfcfec384cf4eb56ab89f92df4ff288">DrawPartialSprite</a>(<span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vi2d</a>&amp; pos, <a class="code" href="classolc_1_1_sprite.html">Sprite</a>* sprite, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vi2d</a>&amp; sourcepos, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vi2d</a>&amp; size, uint32_t scale = 1, uint8_t flip = <a class="code" href="classolc_1_1_sprite.html#ad0d1976d2060997f5cd99eb284a5dc24a6ad338b4e63faacfbed68b020c3a0c0c">olc::Sprite::NONE</a>);</div>
+<div class="line"><a name="l00977"></a><span class="lineno">  977</span>&#160;        <span class="comment">// Draws a single line of text - traditional monospaced</span></div>
+<div class="line"><a name="l00978"></a><span class="lineno"><a class="line" href="classolc_1_1_pixel_game_engine.html#ac29d79dedde0b2187f9f9ccbbc33fd0b">  978</a></span>&#160;        <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_pixel_game_engine.html#ac29d79dedde0b2187f9f9ccbbc33fd0b">DrawString</a>(int32_t x, int32_t y, <span class="keyword">const</span> std::string&amp; sText, <a class="code" href="structolc_1_1_pixel.html">Pixel</a> col = <a class="code" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>, uint32_t scale = 1);</div>
+<div class="line"><a name="l00979"></a><span class="lineno"><a class="line" href="classolc_1_1_pixel_game_engine.html#ae099b13b38e5b02ffd31ad34a703cee5">  979</a></span>&#160;        <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_pixel_game_engine.html#ae099b13b38e5b02ffd31ad34a703cee5">DrawString</a>(<span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vi2d</a>&amp; pos, <span class="keyword">const</span> std::string&amp; sText, <a class="code" href="structolc_1_1_pixel.html">Pixel</a> col = <a class="code" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>, uint32_t scale = 1);</div>
+<div class="line"><a name="l00980"></a><span class="lineno"><a class="line" href="classolc_1_1_pixel_game_engine.html#aa70121ffb85733f8ea2e7e5d0b4b311b">  980</a></span>&#160;        <a class="code" href="structolc_1_1v2d__generic.html">olc::vi2d</a> <a class="code" href="classolc_1_1_pixel_game_engine.html#aa70121ffb85733f8ea2e7e5d0b4b311b">GetTextSize</a>(<span class="keyword">const</span> std::string&amp; s);</div>
+<div class="line"><a name="l00981"></a><span class="lineno">  981</span>&#160;        <span class="comment">// Draws a single line of text - non-monospaced</span></div>
+<div class="line"><a name="l00982"></a><span class="lineno"><a class="line" href="classolc_1_1_pixel_game_engine.html#a1ddca999be34411764bb12d2a15cc021">  982</a></span>&#160;        <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_pixel_game_engine.html#a1ddca999be34411764bb12d2a15cc021">DrawStringProp</a>(int32_t x, int32_t y, <span class="keyword">const</span> std::string&amp; sText, <a class="code" href="structolc_1_1_pixel.html">Pixel</a> col = <a class="code" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>, uint32_t scale = 1);</div>
+<div class="line"><a name="l00983"></a><span class="lineno"><a class="line" href="classolc_1_1_pixel_game_engine.html#a161ef8177257c371741d12cbc4818cf6">  983</a></span>&#160;        <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_pixel_game_engine.html#a161ef8177257c371741d12cbc4818cf6">DrawStringProp</a>(<span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vi2d</a>&amp; pos, <span class="keyword">const</span> std::string&amp; sText, <a class="code" href="structolc_1_1_pixel.html">Pixel</a> col = <a class="code" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>, uint32_t scale = 1);</div>
+<div class="line"><a name="l00984"></a><span class="lineno"><a class="line" href="classolc_1_1_pixel_game_engine.html#ab282eddb9b8fe14d01311c8613f79e84">  984</a></span>&#160;        <a class="code" href="structolc_1_1v2d__generic.html">olc::vi2d</a> <a class="code" href="classolc_1_1_pixel_game_engine.html#ab282eddb9b8fe14d01311c8613f79e84">GetTextSizeProp</a>(<span class="keyword">const</span> std::string&amp; s);</div>
+<div class="line"><a name="l00985"></a><span class="lineno">  985</span>&#160; </div>
+<div class="line"><a name="l00986"></a><span class="lineno">  986</span>&#160;        <span class="comment">// Decal Quad functions</span></div>
+<div class="line"><a name="l00987"></a><span class="lineno"><a class="line" href="classolc_1_1_pixel_game_engine.html#a27ee96acff2c74d47f0cb78493aac756">  987</a></span>&#160;        <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_pixel_game_engine.html#a27ee96acff2c74d47f0cb78493aac756">SetDecalMode</a>(<span class="keyword">const</span> <a class="code" href="namespaceolc.html#aeda642f63378f868193c28e8613138ca">olc::DecalMode</a>&amp; mode);</div>
+<div class="line"><a name="l00988"></a><span class="lineno">  988</span>&#160;        <span class="comment">// Draws a whole decal, with optional scale and tinting</span></div>
+<div class="line"><a name="l00989"></a><span class="lineno"><a class="line" href="classolc_1_1_pixel_game_engine.html#a5b676590555cab61db67804417c6f25f">  989</a></span>&#160;        <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_pixel_game_engine.html#a5b676590555cab61db67804417c6f25f">DrawDecal</a>(<span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; pos, <a class="code" href="classolc_1_1_decal.html">olc::Decal</a>* decal, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; scale = { 1.0f,1.0f }, <span class="keyword">const</span> <a class="code" href="structolc_1_1_pixel.html">olc::Pixel</a>&amp; tint = <a class="code" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>);</div>
+<div class="line"><a name="l00990"></a><span class="lineno">  990</span>&#160;        <span class="comment">// Draws a region of a decal, with optional scale and tinting</span></div>
+<div class="line"><a name="l00991"></a><span class="lineno"><a class="line" href="classolc_1_1_pixel_game_engine.html#a8bae37cf84b215e9e0416f058241aeba">  991</a></span>&#160;        <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_pixel_game_engine.html#a8bae37cf84b215e9e0416f058241aeba">DrawPartialDecal</a>(<span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; pos, <a class="code" href="classolc_1_1_decal.html">olc::Decal</a>* decal, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; source_pos, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; source_size, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; scale = { 1.0f,1.0f }, <span class="keyword">const</span> <a class="code" href="structolc_1_1_pixel.html">olc::Pixel</a>&amp; tint = <a class="code" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>);</div>
+<div class="line"><a name="l00992"></a><span class="lineno"><a class="line" href="classolc_1_1_pixel_game_engine.html#a1b757070353b8f9238c229e42d33bbb5">  992</a></span>&#160;        <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_pixel_game_engine.html#a1b757070353b8f9238c229e42d33bbb5">DrawPartialDecal</a>(<span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; pos, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; size, <a class="code" href="classolc_1_1_decal.html">olc::Decal</a>* decal, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; source_pos, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; source_size, <span class="keyword">const</span> <a class="code" href="structolc_1_1_pixel.html">olc::Pixel</a>&amp; tint = <a class="code" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>);</div>
+<div class="line"><a name="l00993"></a><span class="lineno">  993</span>&#160;        <span class="comment">// Draws fully user controlled 4 vertices, pos(pixels), uv(pixels), colours</span></div>
+<div class="line"><a name="l00994"></a><span class="lineno"><a class="line" href="classolc_1_1_pixel_game_engine.html#a26d7073d87bb19f15d5ade6bb58e8e2d">  994</a></span>&#160;        <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_pixel_game_engine.html#a26d7073d87bb19f15d5ade6bb58e8e2d">DrawExplicitDecal</a>(<a class="code" href="classolc_1_1_decal.html">olc::Decal</a>* decal, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>* pos, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>* uv, <span class="keyword">const</span> <a class="code" href="structolc_1_1_pixel.html">olc::Pixel</a>* col, uint32_t elements = 4);</div>
+<div class="line"><a name="l00995"></a><span class="lineno">  995</span>&#160;        <span class="comment">// Draws a decal with 4 arbitrary points, warping the texture to look &quot;correct&quot;</span></div>
+<div class="line"><a name="l00996"></a><span class="lineno"><a class="line" href="classolc_1_1_pixel_game_engine.html#a65098b403a403c45041599893429b550">  996</a></span>&#160;        <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_pixel_game_engine.html#a65098b403a403c45041599893429b550">DrawWarpedDecal</a>(<a class="code" href="classolc_1_1_decal.html">olc::Decal</a>* decal, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>(&amp;pos)[4], <span class="keyword">const</span> <a class="code" href="structolc_1_1_pixel.html">olc::Pixel</a>&amp; tint = <a class="code" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>);</div>
+<div class="line"><a name="l00997"></a><span class="lineno"><a class="line" href="classolc_1_1_pixel_game_engine.html#ae6cc4bd274522bf9ac36054eda6c95ac">  997</a></span>&#160;        <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_pixel_game_engine.html#ae6cc4bd274522bf9ac36054eda6c95ac">DrawWarpedDecal</a>(<a class="code" href="classolc_1_1_decal.html">olc::Decal</a>* decal, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>* pos, <span class="keyword">const</span> <a class="code" href="structolc_1_1_pixel.html">olc::Pixel</a>&amp; tint = <a class="code" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>);</div>
+<div class="line"><a name="l00998"></a><span class="lineno"><a class="line" href="classolc_1_1_pixel_game_engine.html#a5174456bbdaace7cde233889f7ad6d72">  998</a></span>&#160;        <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_pixel_game_engine.html#a5174456bbdaace7cde233889f7ad6d72">DrawWarpedDecal</a>(<a class="code" href="classolc_1_1_decal.html">olc::Decal</a>* decal, <span class="keyword">const</span> std::array&lt;olc::vf2d, 4&gt;&amp; pos, <span class="keyword">const</span> <a class="code" href="structolc_1_1_pixel.html">olc::Pixel</a>&amp; tint = <a class="code" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>);</div>
+<div class="line"><a name="l00999"></a><span class="lineno">  999</span>&#160;        <span class="comment">// As above, but you can specify a region of a decal source sprite</span></div>
+<div class="line"><a name="l01000"></a><span class="lineno"><a class="line" href="classolc_1_1_pixel_game_engine.html#a78be0709345710435fdaef7bc14f5fb3"> 1000</a></span>&#160;        <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_pixel_game_engine.html#a78be0709345710435fdaef7bc14f5fb3">DrawPartialWarpedDecal</a>(<a class="code" href="classolc_1_1_decal.html">olc::Decal</a>* decal, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>(&amp;pos)[4], <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; source_pos, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; source_size, <span class="keyword">const</span> <a class="code" href="structolc_1_1_pixel.html">olc::Pixel</a>&amp; tint = <a class="code" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>);</div>
+<div class="line"><a name="l01001"></a><span class="lineno"><a class="line" href="classolc_1_1_pixel_game_engine.html#a5993da382c8e661655386a41ae874270"> 1001</a></span>&#160;        <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_pixel_game_engine.html#a5993da382c8e661655386a41ae874270">DrawPartialWarpedDecal</a>(<a class="code" href="classolc_1_1_decal.html">olc::Decal</a>* decal, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>* pos, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; source_pos, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; source_size, <span class="keyword">const</span> <a class="code" href="structolc_1_1_pixel.html">olc::Pixel</a>&amp; tint = <a class="code" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>);</div>
+<div class="line"><a name="l01002"></a><span class="lineno"><a class="line" href="classolc_1_1_pixel_game_engine.html#aaccd68c61d88b13ffe1e93493f2a5b35"> 1002</a></span>&#160;        <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_pixel_game_engine.html#aaccd68c61d88b13ffe1e93493f2a5b35">DrawPartialWarpedDecal</a>(<a class="code" href="classolc_1_1_decal.html">olc::Decal</a>* decal, <span class="keyword">const</span> std::array&lt;olc::vf2d, 4&gt;&amp; pos, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; source_pos, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; source_size, <span class="keyword">const</span> <a class="code" href="structolc_1_1_pixel.html">olc::Pixel</a>&amp; tint = <a class="code" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>);</div>
+<div class="line"><a name="l01003"></a><span class="lineno"> 1003</span>&#160;        <span class="comment">// Draws a decal rotated to specified angle, wit point of rotation offset</span></div>
+<div class="line"><a name="l01004"></a><span class="lineno"><a class="line" href="classolc_1_1_pixel_game_engine.html#ab9af9b6726271e83dd7e4b24583b4236"> 1004</a></span>&#160;        <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_pixel_game_engine.html#ab9af9b6726271e83dd7e4b24583b4236">DrawRotatedDecal</a>(<span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; pos, <a class="code" href="classolc_1_1_decal.html">olc::Decal</a>* decal, <span class="keyword">const</span> <span class="keywordtype">float</span> fAngle, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; center = { 0.0f, 0.0f }, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; scale = { 1.0f,1.0f }, <span class="keyword">const</span> <a class="code" href="structolc_1_1_pixel.html">olc::Pixel</a>&amp; tint = <a class="code" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>);</div>
+<div class="line"><a name="l01005"></a><span class="lineno"><a class="line" href="classolc_1_1_pixel_game_engine.html#aad3107bbad34e5792a9a35629e1fdbd0"> 1005</a></span>&#160;        <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_pixel_game_engine.html#aad3107bbad34e5792a9a35629e1fdbd0">DrawPartialRotatedDecal</a>(<span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; pos, <a class="code" href="classolc_1_1_decal.html">olc::Decal</a>* decal, <span class="keyword">const</span> <span class="keywordtype">float</span> fAngle, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; center, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; source_pos, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; source_size, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; scale = { 1.0f, 1.0f }, <span class="keyword">const</span> <a class="code" href="structolc_1_1_pixel.html">olc::Pixel</a>&amp; tint = <a class="code" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>);</div>
+<div class="line"><a name="l01006"></a><span class="lineno"> 1006</span>&#160;        <span class="comment">// Draws a multiline string as a decal, with tiniting and scaling</span></div>
+<div class="line"><a name="l01007"></a><span class="lineno"><a class="line" href="classolc_1_1_pixel_game_engine.html#a689d1828a93292702070b97fb14f5644"> 1007</a></span>&#160;        <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_pixel_game_engine.html#a689d1828a93292702070b97fb14f5644">DrawStringDecal</a>(<span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; pos, <span class="keyword">const</span> std::string&amp; sText, <span class="keyword">const</span> <a class="code" href="structolc_1_1_pixel.html">Pixel</a> col = <a class="code" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; scale = { 1.0f, 1.0f });</div>
+<div class="line"><a name="l01008"></a><span class="lineno"><a class="line" href="classolc_1_1_pixel_game_engine.html#a7392273f15fc09b3659b112564aa0dfa"> 1008</a></span>&#160;        <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_pixel_game_engine.html#a7392273f15fc09b3659b112564aa0dfa">DrawStringPropDecal</a>(<span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; pos, <span class="keyword">const</span> std::string&amp; sText, <span class="keyword">const</span> <a class="code" href="structolc_1_1_pixel.html">Pixel</a> col = <a class="code" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; scale = { 1.0f, 1.0f });</div>
+<div class="line"><a name="l01009"></a><span class="lineno"> 1009</span>&#160;        <span class="comment">// Draws a single shaded filled rectangle as a decal</span></div>
+<div class="line"><a name="l01010"></a><span class="lineno"><a class="line" href="classolc_1_1_pixel_game_engine.html#a02a26bca44e04f075f517bdae6ac0e9d"> 1010</a></span>&#160;        <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_pixel_game_engine.html#a02a26bca44e04f075f517bdae6ac0e9d">FillRectDecal</a>(<span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; pos, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; size, <span class="keyword">const</span> <a class="code" href="structolc_1_1_pixel.html">olc::Pixel</a> col = <a class="code" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>);</div>
+<div class="line"><a name="l01011"></a><span class="lineno"> 1011</span>&#160;        <span class="comment">// Draws a corner shaded rectangle as a decal</span></div>
+<div class="line"><a name="l01012"></a><span class="lineno"><a class="line" href="classolc_1_1_pixel_game_engine.html#a11d9ed8762b81e0bd6bbe4349255b1e8"> 1012</a></span>&#160;        <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_pixel_game_engine.html#a11d9ed8762b81e0bd6bbe4349255b1e8">GradientFillRectDecal</a>(<span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; pos, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; size, <span class="keyword">const</span> <a class="code" href="structolc_1_1_pixel.html">olc::Pixel</a> colTL, <span class="keyword">const</span> <a class="code" href="structolc_1_1_pixel.html">olc::Pixel</a> colBL, <span class="keyword">const</span> <a class="code" href="structolc_1_1_pixel.html">olc::Pixel</a> colBR, <span class="keyword">const</span> <a class="code" href="structolc_1_1_pixel.html">olc::Pixel</a> colTR);</div>
+<div class="line"><a name="l01013"></a><span class="lineno"> 1013</span>&#160;        <span class="comment">// Draws an arbitrary convex textured polygon using GPU</span></div>
+<div class="line"><a name="l01014"></a><span class="lineno"><a class="line" href="classolc_1_1_pixel_game_engine.html#a40a7754338ea7b388ffa2383958d1f0b"> 1014</a></span>&#160;        <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_pixel_game_engine.html#a40a7754338ea7b388ffa2383958d1f0b">DrawPolygonDecal</a>(<a class="code" href="classolc_1_1_decal.html">olc::Decal</a>* decal, <span class="keyword">const</span> std::vector&lt;olc::vf2d&gt;&amp; pos, <span class="keyword">const</span> std::vector&lt;olc::vf2d&gt;&amp; uv, <span class="keyword">const</span> <a class="code" href="structolc_1_1_pixel.html">olc::Pixel</a> tint = <a class="code" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>);</div>
+<div class="line"><a name="l01015"></a><span class="lineno"> 1015</span>&#160;                </div>
+<div class="line"><a name="l01016"></a><span class="lineno"> 1016</span>&#160;        <span class="comment">// Clears entire draw target to Pixel</span></div>
+<div class="line"><a name="l01017"></a><span class="lineno"><a class="line" href="classolc_1_1_pixel_game_engine.html#aeb70b40809815fab4e1017e25c7ab161"> 1017</a></span>&#160;        <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_pixel_game_engine.html#aeb70b40809815fab4e1017e25c7ab161">Clear</a>(<a class="code" href="structolc_1_1_pixel.html">Pixel</a> p);</div>
+<div class="line"><a name="l01018"></a><span class="lineno"> 1018</span>&#160;        <span class="comment">// Clears the rendering back buffer</span></div>
+<div class="line"><a name="l01019"></a><span class="lineno"><a class="line" href="classolc_1_1_pixel_game_engine.html#aed9a3f6bd349e091728a329ee42932bf"> 1019</a></span>&#160;        <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_pixel_game_engine.html#aed9a3f6bd349e091728a329ee42932bf">ClearBuffer</a>(<a class="code" href="structolc_1_1_pixel.html">Pixel</a> p, <span class="keywordtype">bool</span> bDepth = <span class="keyword">true</span>);</div>
+<div class="line"><a name="l01020"></a><span class="lineno"> 1020</span>&#160;        <span class="comment">// Returns the font image</span></div>
+<div class="line"><a name="l01021"></a><span class="lineno"><a class="line" href="classolc_1_1_pixel_game_engine.html#abab955edc6d1ec6023a7806509582f52"> 1021</a></span>&#160;        <a class="code" href="classolc_1_1_sprite.html">olc::Sprite</a>* <a class="code" href="classolc_1_1_pixel_game_engine.html#abab955edc6d1ec6023a7806509582f52">GetFontSprite</a>();</div>
+<div class="line"><a name="l01022"></a><span class="lineno"> 1022</span>&#160; </div>
+<div class="line"><a name="l01023"></a><span class="lineno"> 1023</span>&#160;    <span class="keyword">public</span>: <span class="comment">// Branding</span></div>
+<div class="line"><a name="l01024"></a><span class="lineno"><a class="line" href="classolc_1_1_pixel_game_engine.html#a02d0f9c50770aa38aea1448f62d3604f"> 1024</a></span>&#160;        std::string <a class="code" href="classolc_1_1_pixel_game_engine.html#a02d0f9c50770aa38aea1448f62d3604f">sAppName</a>;</div>
+<div class="line"><a name="l01025"></a><span class="lineno"> 1025</span>&#160; </div>
+<div class="line"><a name="l01026"></a><span class="lineno"> 1026</span>&#160;    <span class="keyword">private</span>: <span class="comment">// Inner mysterious workings</span></div>
+<div class="line"><a name="l01027"></a><span class="lineno"> 1027</span>&#160;        <a class="code" href="classolc_1_1_sprite.html">Sprite</a>*     pDrawTarget = <span class="keyword">nullptr</span>;</div>
+<div class="line"><a name="l01028"></a><span class="lineno"> 1028</span>&#160;        <a class="code" href="structolc_1_1_pixel.html#ae9012164940526ddb09b217dbbddfd65">Pixel::Mode</a> nPixelMode = <a class="code" href="structolc_1_1_pixel.html#ae9012164940526ddb09b217dbbddfd65a8abacc164c972b4684c2a76efd381018">Pixel::NORMAL</a>;</div>
+<div class="line"><a name="l01029"></a><span class="lineno"> 1029</span>&#160;        <span class="keywordtype">float</span>       fBlendFactor = 1.0f;</div>
+<div class="line"><a name="l01030"></a><span class="lineno"> 1030</span>&#160;        <a class="code" href="structolc_1_1v2d__generic.html">olc::vi2d</a>   vScreenSize = { 256, 240 };</div>
+<div class="line"><a name="l01031"></a><span class="lineno"> 1031</span>&#160;        <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>   vInvScreenSize = { 1.0f / 256.0f, 1.0f / 240.0f };</div>
+<div class="line"><a name="l01032"></a><span class="lineno"> 1032</span>&#160;        <a class="code" href="structolc_1_1v2d__generic.html">olc::vi2d</a>   vPixelSize = { 4, 4 };</div>
+<div class="line"><a name="l01033"></a><span class="lineno"> 1033</span>&#160;        <a class="code" href="structolc_1_1v2d__generic.html">olc::vi2d</a>   vScreenPixelSize = { 4, 4 };</div>
+<div class="line"><a name="l01034"></a><span class="lineno"> 1034</span>&#160;        <a class="code" href="structolc_1_1v2d__generic.html">olc::vi2d</a>   vMousePos = { 0, 0 };</div>
+<div class="line"><a name="l01035"></a><span class="lineno"> 1035</span>&#160;        int32_t     nMouseWheelDelta = 0;</div>
+<div class="line"><a name="l01036"></a><span class="lineno"> 1036</span>&#160;        <a class="code" href="structolc_1_1v2d__generic.html">olc::vi2d</a>   vMousePosCache = { 0, 0 };</div>
+<div class="line"><a name="l01037"></a><span class="lineno"> 1037</span>&#160;        <a class="code" href="structolc_1_1v2d__generic.html">olc::vi2d</a>   vMouseWindowPos = { 0, 0 };</div>
+<div class="line"><a name="l01038"></a><span class="lineno"> 1038</span>&#160;        int32_t     nMouseWheelDeltaCache = 0;</div>
+<div class="line"><a name="l01039"></a><span class="lineno"> 1039</span>&#160;        <a class="code" href="structolc_1_1v2d__generic.html">olc::vi2d</a>   vWindowSize = { 0, 0 };</div>
+<div class="line"><a name="l01040"></a><span class="lineno"> 1040</span>&#160;        <a class="code" href="structolc_1_1v2d__generic.html">olc::vi2d</a>   vViewPos = { 0, 0 };</div>
+<div class="line"><a name="l01041"></a><span class="lineno"> 1041</span>&#160;        <a class="code" href="structolc_1_1v2d__generic.html">olc::vi2d</a>   vViewSize = { 0,0 };</div>
+<div class="line"><a name="l01042"></a><span class="lineno"> 1042</span>&#160;        <span class="keywordtype">bool</span>        bFullScreen = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l01043"></a><span class="lineno"> 1043</span>&#160;        <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>   vPixel = { 1.0f, 1.0f };</div>
+<div class="line"><a name="l01044"></a><span class="lineno"> 1044</span>&#160;        <span class="keywordtype">bool</span>        bHasInputFocus = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l01045"></a><span class="lineno"> 1045</span>&#160;        <span class="keywordtype">bool</span>        bHasMouseFocus = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l01046"></a><span class="lineno"> 1046</span>&#160;        <span class="keywordtype">bool</span>        bEnableVSYNC = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l01047"></a><span class="lineno"> 1047</span>&#160;        <span class="keywordtype">float</span>       fFrameTimer = 1.0f;</div>
+<div class="line"><a name="l01048"></a><span class="lineno"> 1048</span>&#160;        <span class="keywordtype">float</span>       fLastElapsed = 0.0f;</div>
+<div class="line"><a name="l01049"></a><span class="lineno"> 1049</span>&#160;        <span class="keywordtype">int</span>         nFrameCount = 0;</div>
+<div class="line"><a name="l01050"></a><span class="lineno"> 1050</span>&#160;        Sprite*     fontSprite = <span class="keyword">nullptr</span>;</div>
+<div class="line"><a name="l01051"></a><span class="lineno"> 1051</span>&#160;        Decal*      fontDecal = <span class="keyword">nullptr</span>;</div>
+<div class="line"><a name="l01052"></a><span class="lineno"> 1052</span>&#160;        Sprite*     pDefaultDrawTarget = <span class="keyword">nullptr</span>;</div>
+<div class="line"><a name="l01053"></a><span class="lineno"> 1053</span>&#160;        std::vector&lt;LayerDesc&gt; vLayers;</div>
+<div class="line"><a name="l01054"></a><span class="lineno"> 1054</span>&#160;        uint8_t     nTargetLayer = 0;</div>
+<div class="line"><a name="l01055"></a><span class="lineno"> 1055</span>&#160;        uint32_t    nLastFPS = 0;</div>
+<div class="line"><a name="l01056"></a><span class="lineno"> 1056</span>&#160;        <span class="keywordtype">bool</span>        bPixelCohesion = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l01057"></a><span class="lineno"> 1057</span>&#160;        <a class="code" href="namespaceolc.html#aeda642f63378f868193c28e8613138ca">DecalMode</a>   nDecalMode = <a class="code" href="namespaceolc.html#aeda642f63378f868193c28e8613138caa1e23852820b9154316c7c06e2b7ba051">DecalMode::NORMAL</a>;</div>
+<div class="line"><a name="l01058"></a><span class="lineno"> 1058</span>&#160;        std::function&lt;<a class="code" href="structolc_1_1_pixel.html">olc::Pixel</a>(<span class="keyword">const</span> <span class="keywordtype">int</span> x, <span class="keyword">const</span> <span class="keywordtype">int</span> y, <span class="keyword">const</span> <a class="code" href="structolc_1_1_pixel.html">olc::Pixel</a>&amp;, <span class="keyword">const</span> <a class="code" href="structolc_1_1_pixel.html">olc::Pixel</a>&amp;)&gt; funcPixelMode;</div>
+<div class="line"><a name="l01059"></a><span class="lineno"> 1059</span>&#160;        std::chrono::time_point&lt;std::chrono::system_clock&gt; m_tp1, m_tp2;</div>
+<div class="line"><a name="l01060"></a><span class="lineno"> 1060</span>&#160;        std::vector&lt;olc::vi2d&gt; vFontSpacing;</div>
+<div class="line"><a name="l01061"></a><span class="lineno"> 1061</span>&#160; </div>
+<div class="line"><a name="l01062"></a><span class="lineno"> 1062</span>&#160;        <span class="comment">// State of keyboard        </span></div>
+<div class="line"><a name="l01063"></a><span class="lineno"> 1063</span>&#160;        <span class="keywordtype">bool</span>        pKeyNewState[256] = { 0 };</div>
+<div class="line"><a name="l01064"></a><span class="lineno"> 1064</span>&#160;        <span class="keywordtype">bool</span>        pKeyOldState[256] = { 0 };</div>
+<div class="line"><a name="l01065"></a><span class="lineno"> 1065</span>&#160;        HWButton    pKeyboardState[256] = { 0 };</div>
+<div class="line"><a name="l01066"></a><span class="lineno"> 1066</span>&#160; </div>
+<div class="line"><a name="l01067"></a><span class="lineno"> 1067</span>&#160;        <span class="comment">// State of mouse</span></div>
+<div class="line"><a name="l01068"></a><span class="lineno"> 1068</span>&#160;        <span class="keywordtype">bool</span>        pMouseNewState[<a class="code" href="namespaceolc.html#abf7dfc35dd1d895f33d3635831953e38">nMouseButtons</a>] = { 0 };</div>
+<div class="line"><a name="l01069"></a><span class="lineno"> 1069</span>&#160;        <span class="keywordtype">bool</span>        pMouseOldState[<a class="code" href="namespaceolc.html#abf7dfc35dd1d895f33d3635831953e38">nMouseButtons</a>] = { 0 };</div>
+<div class="line"><a name="l01070"></a><span class="lineno"> 1070</span>&#160;        HWButton    pMouseState[<a class="code" href="namespaceolc.html#abf7dfc35dd1d895f33d3635831953e38">nMouseButtons</a>] = { 0 };</div>
+<div class="line"><a name="l01071"></a><span class="lineno"> 1071</span>&#160; </div>
+<div class="line"><a name="l01072"></a><span class="lineno"> 1072</span>&#160;        <span class="comment">// The main engine thread</span></div>
+<div class="line"><a name="l01073"></a><span class="lineno"> 1073</span>&#160;        <span class="keywordtype">void</span>        EngineThread();</div>
+<div class="line"><a name="l01074"></a><span class="lineno"> 1074</span>&#160; </div>
+<div class="line"><a name="l01075"></a><span class="lineno"> 1075</span>&#160; </div>
+<div class="line"><a name="l01076"></a><span class="lineno"> 1076</span>&#160;        <span class="comment">// If anything sets this flag to false, the engine</span></div>
+<div class="line"><a name="l01077"></a><span class="lineno"> 1077</span>&#160;        <span class="comment">// &quot;should&quot; shut down gracefully</span></div>
+<div class="line"><a name="l01078"></a><span class="lineno"> 1078</span>&#160;        <span class="keyword">static</span> std::atomic&lt;bool&gt; bAtomActive;</div>
+<div class="line"><a name="l01079"></a><span class="lineno"> 1079</span>&#160; </div>
+<div class="line"><a name="l01080"></a><span class="lineno"> 1080</span>&#160;    <span class="keyword">public</span>:</div>
+<div class="line"><a name="l01081"></a><span class="lineno"> 1081</span>&#160;        <span class="comment">// &quot;Break In&quot; Functions</span></div>
+<div class="line"><a name="l01082"></a><span class="lineno"><a class="line" href="classolc_1_1_pixel_game_engine.html#a6e10d8fae75e26dea03b0b447667a308"> 1082</a></span>&#160;        <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_pixel_game_engine.html#a6e10d8fae75e26dea03b0b447667a308">olc_UpdateMouse</a>(int32_t x, int32_t y);</div>
+<div class="line"><a name="l01083"></a><span class="lineno"><a class="line" href="classolc_1_1_pixel_game_engine.html#aa33ea5e40d4577e3c44fcf4a26cecadd"> 1083</a></span>&#160;        <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_pixel_game_engine.html#aa33ea5e40d4577e3c44fcf4a26cecadd">olc_UpdateMouseWheel</a>(int32_t delta);</div>
+<div class="line"><a name="l01084"></a><span class="lineno"><a class="line" href="classolc_1_1_pixel_game_engine.html#a4f0dae00f21f8d71d4544d50593234c3"> 1084</a></span>&#160;        <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_pixel_game_engine.html#a4f0dae00f21f8d71d4544d50593234c3">olc_UpdateWindowSize</a>(int32_t x, int32_t y);</div>
+<div class="line"><a name="l01085"></a><span class="lineno"><a class="line" href="classolc_1_1_pixel_game_engine.html#af1cd38cf0df2e7c3ab53bee66ec63771"> 1085</a></span>&#160;        <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_pixel_game_engine.html#af1cd38cf0df2e7c3ab53bee66ec63771">olc_UpdateViewport</a>();</div>
+<div class="line"><a name="l01086"></a><span class="lineno"><a class="line" href="classolc_1_1_pixel_game_engine.html#a117eedbe1e9366fe2bf402334beb9692"> 1086</a></span>&#160;        <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_pixel_game_engine.html#a117eedbe1e9366fe2bf402334beb9692">olc_ConstructFontSheet</a>();</div>
+<div class="line"><a name="l01087"></a><span class="lineno"><a class="line" href="classolc_1_1_pixel_game_engine.html#a0018131435f88bb5de406fd11ee54058"> 1087</a></span>&#160;        <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_pixel_game_engine.html#a0018131435f88bb5de406fd11ee54058">olc_CoreUpdate</a>();</div>
+<div class="line"><a name="l01088"></a><span class="lineno"><a class="line" href="classolc_1_1_pixel_game_engine.html#aa19aafa028a7e2eaaf7b2235a9bd2256"> 1088</a></span>&#160;        <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_pixel_game_engine.html#aa19aafa028a7e2eaaf7b2235a9bd2256">olc_PrepareEngine</a>();</div>
+<div class="line"><a name="l01089"></a><span class="lineno"><a class="line" href="classolc_1_1_pixel_game_engine.html#a59645c08376a7d4e58673919f3bd0dfb"> 1089</a></span>&#160;        <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_pixel_game_engine.html#a59645c08376a7d4e58673919f3bd0dfb">olc_UpdateMouseState</a>(int32_t button, <span class="keywordtype">bool</span> state);</div>
+<div class="line"><a name="l01090"></a><span class="lineno"><a class="line" href="classolc_1_1_pixel_game_engine.html#a61fde81846a9ef7f8fcf63080e6d350b"> 1090</a></span>&#160;        <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_pixel_game_engine.html#a61fde81846a9ef7f8fcf63080e6d350b">olc_UpdateKeyState</a>(int32_t key, <span class="keywordtype">bool</span> state);</div>
+<div class="line"><a name="l01091"></a><span class="lineno"><a class="line" href="classolc_1_1_pixel_game_engine.html#ab3150ba487188e64940c294998fa38d3"> 1091</a></span>&#160;        <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_pixel_game_engine.html#ab3150ba487188e64940c294998fa38d3">olc_UpdateMouseFocus</a>(<span class="keywordtype">bool</span> state);</div>
+<div class="line"><a name="l01092"></a><span class="lineno"><a class="line" href="classolc_1_1_pixel_game_engine.html#a7343712504f23f86c8490646ffc50e7f"> 1092</a></span>&#160;        <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_pixel_game_engine.html#a7343712504f23f86c8490646ffc50e7f">olc_UpdateKeyFocus</a>(<span class="keywordtype">bool</span> state);</div>
+<div class="line"><a name="l01093"></a><span class="lineno"><a class="line" href="classolc_1_1_pixel_game_engine.html#a2da1f2ebbc1a5fbdbf52890e6ac707b1"> 1093</a></span>&#160;        <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_pixel_game_engine.html#a2da1f2ebbc1a5fbdbf52890e6ac707b1">olc_Terminate</a>();</div>
+<div class="line"><a name="l01094"></a><span class="lineno"><a class="line" href="classolc_1_1_pixel_game_engine.html#a417b6cd564ccad1d878ae51cfdd3be8e"> 1094</a></span>&#160;        <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_pixel_game_engine.html#a417b6cd564ccad1d878ae51cfdd3be8e">olc_Reanimate</a>();</div>
+<div class="line"><a name="l01095"></a><span class="lineno"><a class="line" href="classolc_1_1_pixel_game_engine.html#a7b0f41bc4b4258a5c4fa1742b41d15e3"> 1095</a></span>&#160;        <span class="keywordtype">bool</span> <a class="code" href="classolc_1_1_pixel_game_engine.html#a7b0f41bc4b4258a5c4fa1742b41d15e3">olc_IsRunning</a>();</div>
+<div class="line"><a name="l01096"></a><span class="lineno"> 1096</span>&#160; </div>
+<div class="line"><a name="l01097"></a><span class="lineno"> 1097</span>&#160;        <span class="comment">// At the very end of this file, chooses which</span></div>
+<div class="line"><a name="l01098"></a><span class="lineno"> 1098</span>&#160;        <span class="comment">// components to compile</span></div>
+<div class="line"><a name="l01099"></a><span class="lineno"><a class="line" href="classolc_1_1_pixel_game_engine.html#a7afa0b57c65bd5d9a54c602afd4fe756"> 1099</a></span>&#160;        <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_pixel_game_engine.html#a7afa0b57c65bd5d9a54c602afd4fe756">olc_ConfigureSystem</a>();</div>
+<div class="line"><a name="l01100"></a><span class="lineno"> 1100</span>&#160; </div>
+<div class="line"><a name="l01101"></a><span class="lineno"> 1101</span>&#160;        <span class="comment">// NOTE: Items Here are to be deprecated, I have left them in for now</span></div>
+<div class="line"><a name="l01102"></a><span class="lineno"> 1102</span>&#160;        <span class="comment">// in case you are using them, but they will be removed.</span></div>
+<div class="line"><a name="l01103"></a><span class="lineno"> 1103</span>&#160;        <span class="comment">// olc::vf2d    vSubPixelOffset = { 0.0f, 0.0f };</span></div>
+<div class="line"><a name="l01104"></a><span class="lineno"> 1104</span>&#160; </div>
+<div class="line"><a name="l01105"></a><span class="lineno"> 1105</span>&#160;    <span class="keyword">public</span>: <span class="comment">// PGEX Stuff</span></div>
+<div class="line"><a name="l01106"></a><span class="lineno"><a class="line" href="classolc_1_1_pixel_game_engine.html#a98fcee28f1a645fe0a29f6b6e6a5d7bb"> 1106</a></span>&#160;        <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classolc_1_1_p_g_e_x.html">PGEX</a>;</div>
+<div class="line"><a name="l01107"></a><span class="lineno"><a class="line" href="classolc_1_1_pixel_game_engine.html#a49a2ead57239e1595cc555effd3e3a2b"> 1107</a></span>&#160;        <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_pixel_game_engine.html#a49a2ead57239e1595cc555effd3e3a2b">pgex_Register</a>(<a class="code" href="classolc_1_1_p_g_e_x.html">olc::PGEX</a>* pgex);</div>
+<div class="line"><a name="l01108"></a><span class="lineno"> 1108</span>&#160; </div>
+<div class="line"><a name="l01109"></a><span class="lineno"> 1109</span>&#160;    <span class="keyword">private</span>:</div>
+<div class="line"><a name="l01110"></a><span class="lineno"> 1110</span>&#160;        std::vector&lt;olc::PGEX*&gt; vExtensions;</div>
+<div class="line"><a name="l01111"></a><span class="lineno"> 1111</span>&#160;    };</div>
+<div class="line"><a name="l01112"></a><span class="lineno"> 1112</span>&#160; </div>
+<div class="line"><a name="l01113"></a><span class="lineno"> 1113</span>&#160; </div>
+<div class="line"><a name="l01114"></a><span class="lineno"> 1114</span>&#160; </div>
+<div class="line"><a name="l01115"></a><span class="lineno"> 1115</span>&#160;    <span class="comment">// O------------------------------------------------------------------------------O</span></div>
+<div class="line"><a name="l01116"></a><span class="lineno"> 1116</span>&#160;    <span class="comment">// | PGE EXTENSION BASE CLASS - Permits access to PGE functions from extension    |</span></div>
+<div class="line"><a name="l01117"></a><span class="lineno"> 1117</span>&#160;    <span class="comment">// O------------------------------------------------------------------------------O</span></div>
+<div class="line"><a name="l01118"></a><span class="lineno"><a class="line" href="classolc_1_1_p_g_e_x.html"> 1118</a></span>&#160;    <span class="keyword">class </span><a class="code" href="classolc_1_1_p_g_e_x.html">PGEX</a></div>
+<div class="line"><a name="l01119"></a><span class="lineno"> 1119</span>&#160;    {</div>
+<div class="line"><a name="l01120"></a><span class="lineno"><a class="line" href="classolc_1_1_p_g_e_x.html#a3770265094ef2f9700ae97b8ee0fe282"> 1120</a></span>&#160;        <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a>;</div>
+<div class="line"><a name="l01121"></a><span class="lineno"> 1121</span>&#160;    <span class="keyword">public</span>:</div>
+<div class="line"><a name="l01122"></a><span class="lineno"><a class="line" href="classolc_1_1_p_g_e_x.html#aae9dbde2ad7341482b9f911f23678d75"> 1122</a></span>&#160;        <a class="code" href="classolc_1_1_p_g_e_x.html#aae9dbde2ad7341482b9f911f23678d75">PGEX</a>(<span class="keywordtype">bool</span> bHook = <span class="keyword">false</span>);</div>
+<div class="line"><a name="l01123"></a><span class="lineno"> 1123</span>&#160; </div>
+<div class="line"><a name="l01124"></a><span class="lineno"> 1124</span>&#160;    <span class="keyword">protected</span>:</div>
+<div class="line"><a name="l01125"></a><span class="lineno"><a class="line" href="classolc_1_1_p_g_e_x.html#a69c65b5d3a56f9a247e1bf15fd2e4035"> 1125</a></span>&#160;        <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_p_g_e_x.html#a69c65b5d3a56f9a247e1bf15fd2e4035">OnBeforeUserCreate</a>();</div>
+<div class="line"><a name="l01126"></a><span class="lineno"><a class="line" href="classolc_1_1_p_g_e_x.html#a2a57a711518202708d2b0e586058348f"> 1126</a></span>&#160;        <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_p_g_e_x.html#a2a57a711518202708d2b0e586058348f">OnAfterUserCreate</a>();</div>
+<div class="line"><a name="l01127"></a><span class="lineno"><a class="line" href="classolc_1_1_p_g_e_x.html#a2573df22f1637314b976811714dea3fb"> 1127</a></span>&#160;        <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_p_g_e_x.html#a2573df22f1637314b976811714dea3fb">OnBeforeUserUpdate</a>(<span class="keywordtype">float</span> &amp;fElapsedTime);</div>
+<div class="line"><a name="l01128"></a><span class="lineno"><a class="line" href="classolc_1_1_p_g_e_x.html#a4d2dd7d685fb1c7d00d97aa15e3376b4"> 1128</a></span>&#160;        <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_p_g_e_x.html#a4d2dd7d685fb1c7d00d97aa15e3376b4">OnAfterUserUpdate</a>(<span class="keywordtype">float</span> fElapsedTime);</div>
+<div class="line"><a name="l01129"></a><span class="lineno"> 1129</span>&#160; </div>
+<div class="line"><a name="l01130"></a><span class="lineno"> 1130</span>&#160;    <span class="keyword">protected</span>:</div>
+<div class="line"><a name="l01131"></a><span class="lineno"><a class="line" href="classolc_1_1_p_g_e_x.html#a032efdb84150a7cdd3cc9248860df316"> 1131</a></span>&#160;        <span class="keyword">static</span> <a class="code" href="classolc_1_1_pixel_game_engine.html">PixelGameEngine</a>* <a class="code" href="classolc_1_1_p_g_e_x.html#a032efdb84150a7cdd3cc9248860df316">pge</a>;</div>
+<div class="line"><a name="l01132"></a><span class="lineno"> 1132</span>&#160;    };</div>
+<div class="line"><a name="l01133"></a><span class="lineno"> 1133</span>&#160;}</div>
+<div class="line"><a name="l01134"></a><span class="lineno"> 1134</span>&#160; </div>
+<div class="line"><a name="l01135"></a><span class="lineno"> 1135</span>&#160;<span class="preprocessor">#pragma endregion</span></div>
+<div class="line"><a name="l01136"></a><span class="lineno"> 1136</span>&#160; </div>
+<div class="line"><a name="l01137"></a><span class="lineno"> 1137</span>&#160;<span class="preprocessor">#endif // OLC_PGE_DEF</span></div>
+<div class="line"><a name="l01138"></a><span class="lineno"> 1138</span>&#160; </div>
+<div class="line"><a name="l01139"></a><span class="lineno"> 1139</span>&#160; </div>
+<div class="line"><a name="l01140"></a><span class="lineno"> 1140</span>&#160;<span class="comment">// O------------------------------------------------------------------------------O</span></div>
+<div class="line"><a name="l01141"></a><span class="lineno"> 1141</span>&#160;<span class="comment">// | START OF OLC_PGE_APPLICATION                                                 |</span></div>
+<div class="line"><a name="l01142"></a><span class="lineno"> 1142</span>&#160;<span class="comment">// O------------------------------------------------------------------------------O</span></div>
+<div class="line"><a name="l01143"></a><span class="lineno"> 1143</span>&#160;<span class="preprocessor">#ifdef OLC_PGE_APPLICATION</span></div>
+<div class="line"><a name="l01144"></a><span class="lineno"> 1144</span>&#160;<span class="preprocessor">#undef OLC_PGE_APPLICATION</span></div>
+<div class="line"><a name="l01145"></a><span class="lineno"> 1145</span>&#160; </div>
+<div class="line"><a name="l01146"></a><span class="lineno"> 1146</span>&#160;<span class="comment">// O------------------------------------------------------------------------------O</span></div>
+<div class="line"><a name="l01147"></a><span class="lineno"> 1147</span>&#160;<span class="comment">// | olcPixelGameEngine INTERFACE IMPLEMENTATION (CORE)                           |</span></div>
+<div class="line"><a name="l01148"></a><span class="lineno"> 1148</span>&#160;<span class="comment">// | Note: The core implementation is platform independent                        |</span></div>
+<div class="line"><a name="l01149"></a><span class="lineno"> 1149</span>&#160;<span class="comment">// O------------------------------------------------------------------------------O</span></div>
+<div class="line"><a name="l01150"></a><span class="lineno"> 1150</span>&#160;<span class="preprocessor">#pragma region pge_implementation</span></div>
+<div class="line"><a name="l01151"></a><span class="lineno"> 1151</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespaceolc.html">olc</a></div>
+<div class="line"><a name="l01152"></a><span class="lineno"> 1152</span>&#160;{</div>
+<div class="line"><a name="l01153"></a><span class="lineno"> 1153</span>&#160;    <span class="comment">// O------------------------------------------------------------------------------O</span></div>
+<div class="line"><a name="l01154"></a><span class="lineno"> 1154</span>&#160;    <span class="comment">// | olc::Pixel IMPLEMENTATION                                                    |</span></div>
+<div class="line"><a name="l01155"></a><span class="lineno"> 1155</span>&#160;    <span class="comment">// O------------------------------------------------------------------------------O</span></div>
+<div class="line"><a name="l01156"></a><span class="lineno"> 1156</span>&#160;    <a class="code" href="structolc_1_1_pixel.html#a75ef9e180289d861dfa6687faa248345">Pixel::Pixel</a>()</div>
+<div class="line"><a name="l01157"></a><span class="lineno"> 1157</span>&#160;    { <a class="code" href="structolc_1_1_pixel.html#a93ee3efde3d2b363e4e4813a490f60b4">r</a> = 0; <a class="code" href="structolc_1_1_pixel.html#a14cf5612284974c409f078944fe5f6ee">g</a> = 0; <a class="code" href="structolc_1_1_pixel.html#a8738f2cd490bd9c5288f37c8d19816be">b</a> = 0; <a class="code" href="structolc_1_1_pixel.html#a652a25d4bcab1f7bf627c3224842f0b1">a</a> = <a class="code" href="namespaceolc.html#adede7d1156ab9d8ffdc3e9048f0f364b">nDefaultAlpha</a>; }</div>
+<div class="line"><a name="l01158"></a><span class="lineno"> 1158</span>&#160; </div>
+<div class="line"><a name="l01159"></a><span class="lineno"> 1159</span>&#160;    <a class="code" href="structolc_1_1_pixel.html#a75ef9e180289d861dfa6687faa248345">Pixel::Pixel</a>(uint8_t red, uint8_t green, uint8_t blue, uint8_t alpha)</div>
+<div class="line"><a name="l01160"></a><span class="lineno"> 1160</span>&#160;    { <a class="code" href="structolc_1_1_pixel.html#aa9cb31c80e2822ccc726526be5801ae2">n</a> = red | (green &lt;&lt; 8) | (blue &lt;&lt; 16) | (alpha &lt;&lt; 24); } <span class="comment">// Thanks jarekpelczar </span></div>
+<div class="line"><a name="l01161"></a><span class="lineno"> 1161</span>&#160; </div>
+<div class="line"><a name="l01162"></a><span class="lineno"> 1162</span>&#160;    <a class="code" href="structolc_1_1_pixel.html#a75ef9e180289d861dfa6687faa248345">Pixel::Pixel</a>(uint32_t p)</div>
+<div class="line"><a name="l01163"></a><span class="lineno"> 1163</span>&#160;    { <a class="code" href="structolc_1_1_pixel.html#aa9cb31c80e2822ccc726526be5801ae2">n</a> = p; }</div>
+<div class="line"><a name="l01164"></a><span class="lineno"> 1164</span>&#160; </div>
+<div class="line"><a name="l01165"></a><span class="lineno"> 1165</span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="structolc_1_1_pixel.html#a6b82561c110de5447ca4d59c3162d06c">Pixel::operator==</a>(<span class="keyword">const</span> Pixel&amp; p)<span class="keyword"> const</span></div>
+<div class="line"><a name="l01166"></a><span class="lineno"> 1166</span>&#160;<span class="keyword">    </span>{ <span class="keywordflow">return</span> <a class="code" href="structolc_1_1_pixel.html#aa9cb31c80e2822ccc726526be5801ae2">n</a> == p.n; }</div>
+<div class="line"><a name="l01167"></a><span class="lineno"> 1167</span>&#160; </div>
+<div class="line"><a name="l01168"></a><span class="lineno"> 1168</span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="structolc_1_1_pixel.html#aeeaecb16a243ce3be52cd9261fdf2b23">Pixel::operator!=</a>(<span class="keyword">const</span> Pixel&amp; p)<span class="keyword"> const</span></div>
+<div class="line"><a name="l01169"></a><span class="lineno"> 1169</span>&#160;<span class="keyword">    </span>{ <span class="keywordflow">return</span> <a class="code" href="structolc_1_1_pixel.html#aa9cb31c80e2822ccc726526be5801ae2">n</a> != p.n; }</div>
+<div class="line"><a name="l01170"></a><span class="lineno"> 1170</span>&#160; </div>
+<div class="line"><a name="l01171"></a><span class="lineno"> 1171</span>&#160;    Pixel  <a class="code" href="structolc_1_1_pixel.html#a15a61beedc23ca678a954567274e24de">Pixel::operator * </a>(<span class="keyword">const</span> <span class="keywordtype">float</span> i)<span class="keyword"> const</span></div>
+<div class="line"><a name="l01172"></a><span class="lineno"> 1172</span>&#160;<span class="keyword">    </span>{</div>
+<div class="line"><a name="l01173"></a><span class="lineno"> 1173</span>&#160;        <span class="keywordtype">float</span> fR = std::min(255.0f, std::max(0.0f, <span class="keywordtype">float</span>(<a class="code" href="structolc_1_1_pixel.html#a93ee3efde3d2b363e4e4813a490f60b4">r</a>) * i));</div>
+<div class="line"><a name="l01174"></a><span class="lineno"> 1174</span>&#160;        <span class="keywordtype">float</span> fG = std::min(255.0f, std::max(0.0f, <span class="keywordtype">float</span>(<a class="code" href="structolc_1_1_pixel.html#a14cf5612284974c409f078944fe5f6ee">g</a>) * i));</div>
+<div class="line"><a name="l01175"></a><span class="lineno"> 1175</span>&#160;        <span class="keywordtype">float</span> fB = std::min(255.0f, std::max(0.0f, <span class="keywordtype">float</span>(<a class="code" href="structolc_1_1_pixel.html#a8738f2cd490bd9c5288f37c8d19816be">b</a>) * i));</div>
+<div class="line"><a name="l01176"></a><span class="lineno"> 1176</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="structolc_1_1_pixel.html#a75ef9e180289d861dfa6687faa248345">Pixel</a>(uint8_t(fR), uint8_t(fG), uint8_t(fB), <a class="code" href="structolc_1_1_pixel.html#a652a25d4bcab1f7bf627c3224842f0b1">a</a>);</div>
+<div class="line"><a name="l01177"></a><span class="lineno"> 1177</span>&#160;    }</div>
+<div class="line"><a name="l01178"></a><span class="lineno"> 1178</span>&#160; </div>
+<div class="line"><a name="l01179"></a><span class="lineno"> 1179</span>&#160;    Pixel  <a class="code" href="structolc_1_1_pixel.html#a7fdcfa79f91368e834cc2ec66d9de769">Pixel::operator / </a>(<span class="keyword">const</span> <span class="keywordtype">float</span> i)<span class="keyword"> const</span></div>
+<div class="line"><a name="l01180"></a><span class="lineno"> 1180</span>&#160;<span class="keyword">    </span>{</div>
+<div class="line"><a name="l01181"></a><span class="lineno"> 1181</span>&#160;        <span class="keywordtype">float</span> fR = std::min(255.0f, std::max(0.0f, <span class="keywordtype">float</span>(<a class="code" href="structolc_1_1_pixel.html#a93ee3efde3d2b363e4e4813a490f60b4">r</a>) / i));</div>
+<div class="line"><a name="l01182"></a><span class="lineno"> 1182</span>&#160;        <span class="keywordtype">float</span> fG = std::min(255.0f, std::max(0.0f, <span class="keywordtype">float</span>(<a class="code" href="structolc_1_1_pixel.html#a14cf5612284974c409f078944fe5f6ee">g</a>) / i));</div>
+<div class="line"><a name="l01183"></a><span class="lineno"> 1183</span>&#160;        <span class="keywordtype">float</span> fB = std::min(255.0f, std::max(0.0f, <span class="keywordtype">float</span>(<a class="code" href="structolc_1_1_pixel.html#a8738f2cd490bd9c5288f37c8d19816be">b</a>) / i));</div>
+<div class="line"><a name="l01184"></a><span class="lineno"> 1184</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="structolc_1_1_pixel.html#a75ef9e180289d861dfa6687faa248345">Pixel</a>(uint8_t(fR), uint8_t(fG), uint8_t(fB), <a class="code" href="structolc_1_1_pixel.html#a652a25d4bcab1f7bf627c3224842f0b1">a</a>);</div>
+<div class="line"><a name="l01185"></a><span class="lineno"> 1185</span>&#160;    }</div>
+<div class="line"><a name="l01186"></a><span class="lineno"> 1186</span>&#160; </div>
+<div class="line"><a name="l01187"></a><span class="lineno"> 1187</span>&#160;    Pixel&amp; <a class="code" href="structolc_1_1_pixel.html#abace0545af22380831ffbc8bd1a66419">Pixel::operator *=</a>(<span class="keyword">const</span> <span class="keywordtype">float</span> i)</div>
+<div class="line"><a name="l01188"></a><span class="lineno"> 1188</span>&#160;    {</div>
+<div class="line"><a name="l01189"></a><span class="lineno"> 1189</span>&#160;        this-&gt;<a class="code" href="structolc_1_1_pixel.html#a93ee3efde3d2b363e4e4813a490f60b4">r</a> = uint8_t(std::min(255.0f, std::max(0.0f, <span class="keywordtype">float</span>(<a class="code" href="structolc_1_1_pixel.html#a93ee3efde3d2b363e4e4813a490f60b4">r</a>) * i)));</div>
+<div class="line"><a name="l01190"></a><span class="lineno"> 1190</span>&#160;        this-&gt;<a class="code" href="structolc_1_1_pixel.html#a14cf5612284974c409f078944fe5f6ee">g</a> = uint8_t(std::min(255.0f, std::max(0.0f, <span class="keywordtype">float</span>(<a class="code" href="structolc_1_1_pixel.html#a14cf5612284974c409f078944fe5f6ee">g</a>) * i)));</div>
+<div class="line"><a name="l01191"></a><span class="lineno"> 1191</span>&#160;        this-&gt;<a class="code" href="structolc_1_1_pixel.html#a8738f2cd490bd9c5288f37c8d19816be">b</a> = uint8_t(std::min(255.0f, std::max(0.0f, <span class="keywordtype">float</span>(<a class="code" href="structolc_1_1_pixel.html#a8738f2cd490bd9c5288f37c8d19816be">b</a>) * i)));</div>
+<div class="line"><a name="l01192"></a><span class="lineno"> 1192</span>&#160;        <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
+<div class="line"><a name="l01193"></a><span class="lineno"> 1193</span>&#160;    }</div>
+<div class="line"><a name="l01194"></a><span class="lineno"> 1194</span>&#160; </div>
+<div class="line"><a name="l01195"></a><span class="lineno"> 1195</span>&#160;    Pixel&amp; <a class="code" href="structolc_1_1_pixel.html#afd73fb0548d7232923f0ce707171e0da">Pixel::operator /=</a>(<span class="keyword">const</span> <span class="keywordtype">float</span> i)</div>
+<div class="line"><a name="l01196"></a><span class="lineno"> 1196</span>&#160;    {</div>
+<div class="line"><a name="l01197"></a><span class="lineno"> 1197</span>&#160;        this-&gt;<a class="code" href="structolc_1_1_pixel.html#a93ee3efde3d2b363e4e4813a490f60b4">r</a> = uint8_t(std::min(255.0f, std::max(0.0f, <span class="keywordtype">float</span>(<a class="code" href="structolc_1_1_pixel.html#a93ee3efde3d2b363e4e4813a490f60b4">r</a>) / i)));</div>
+<div class="line"><a name="l01198"></a><span class="lineno"> 1198</span>&#160;        this-&gt;<a class="code" href="structolc_1_1_pixel.html#a14cf5612284974c409f078944fe5f6ee">g</a> = uint8_t(std::min(255.0f, std::max(0.0f, <span class="keywordtype">float</span>(<a class="code" href="structolc_1_1_pixel.html#a14cf5612284974c409f078944fe5f6ee">g</a>) / i)));</div>
+<div class="line"><a name="l01199"></a><span class="lineno"> 1199</span>&#160;        this-&gt;<a class="code" href="structolc_1_1_pixel.html#a8738f2cd490bd9c5288f37c8d19816be">b</a> = uint8_t(std::min(255.0f, std::max(0.0f, <span class="keywordtype">float</span>(<a class="code" href="structolc_1_1_pixel.html#a8738f2cd490bd9c5288f37c8d19816be">b</a>) / i)));</div>
+<div class="line"><a name="l01200"></a><span class="lineno"> 1200</span>&#160;        <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
+<div class="line"><a name="l01201"></a><span class="lineno"> 1201</span>&#160;    }</div>
+<div class="line"><a name="l01202"></a><span class="lineno"> 1202</span>&#160; </div>
+<div class="line"><a name="l01203"></a><span class="lineno"> 1203</span>&#160;    Pixel  <a class="code" href="structolc_1_1_pixel.html#acb54675f2c61b989de500f8e6e56a9f6">Pixel::operator + </a>(<span class="keyword">const</span> Pixel&amp; p)<span class="keyword"> const</span></div>
+<div class="line"><a name="l01204"></a><span class="lineno"> 1204</span>&#160;<span class="keyword">    </span>{</div>
+<div class="line"><a name="l01205"></a><span class="lineno"> 1205</span>&#160;        uint8_t nR = uint8_t(std::min(255, std::max(0, <span class="keywordtype">int</span>(<a class="code" href="structolc_1_1_pixel.html#a93ee3efde3d2b363e4e4813a490f60b4">r</a>) + <span class="keywordtype">int</span>(p.r))));</div>
+<div class="line"><a name="l01206"></a><span class="lineno"> 1206</span>&#160;        uint8_t nG = uint8_t(std::min(255, std::max(0, <span class="keywordtype">int</span>(<a class="code" href="structolc_1_1_pixel.html#a14cf5612284974c409f078944fe5f6ee">g</a>) + <span class="keywordtype">int</span>(p.g))));</div>
+<div class="line"><a name="l01207"></a><span class="lineno"> 1207</span>&#160;        uint8_t nB = uint8_t(std::min(255, std::max(0, <span class="keywordtype">int</span>(<a class="code" href="structolc_1_1_pixel.html#a8738f2cd490bd9c5288f37c8d19816be">b</a>) + <span class="keywordtype">int</span>(p.b))));</div>
+<div class="line"><a name="l01208"></a><span class="lineno"> 1208</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="structolc_1_1_pixel.html#a75ef9e180289d861dfa6687faa248345">Pixel</a>(nR, nG, nB, <a class="code" href="structolc_1_1_pixel.html#a652a25d4bcab1f7bf627c3224842f0b1">a</a>);</div>
+<div class="line"><a name="l01209"></a><span class="lineno"> 1209</span>&#160;    }</div>
+<div class="line"><a name="l01210"></a><span class="lineno"> 1210</span>&#160; </div>
+<div class="line"><a name="l01211"></a><span class="lineno"> 1211</span>&#160;    Pixel  <a class="code" href="structolc_1_1_pixel.html#a1ac8b9d37f4c368b62b21b52df1f5937">Pixel::operator - </a>(<span class="keyword">const</span> Pixel&amp; p)<span class="keyword"> const</span></div>
+<div class="line"><a name="l01212"></a><span class="lineno"> 1212</span>&#160;<span class="keyword">    </span>{</div>
+<div class="line"><a name="l01213"></a><span class="lineno"> 1213</span>&#160;        uint8_t nR = uint8_t(std::min(255, std::max(0, <span class="keywordtype">int</span>(<a class="code" href="structolc_1_1_pixel.html#a93ee3efde3d2b363e4e4813a490f60b4">r</a>) - <span class="keywordtype">int</span>(p.r))));</div>
+<div class="line"><a name="l01214"></a><span class="lineno"> 1214</span>&#160;        uint8_t nG = uint8_t(std::min(255, std::max(0, <span class="keywordtype">int</span>(<a class="code" href="structolc_1_1_pixel.html#a14cf5612284974c409f078944fe5f6ee">g</a>) - <span class="keywordtype">int</span>(p.g))));</div>
+<div class="line"><a name="l01215"></a><span class="lineno"> 1215</span>&#160;        uint8_t nB = uint8_t(std::min(255, std::max(0, <span class="keywordtype">int</span>(<a class="code" href="structolc_1_1_pixel.html#a8738f2cd490bd9c5288f37c8d19816be">b</a>) - <span class="keywordtype">int</span>(p.b))));</div>
+<div class="line"><a name="l01216"></a><span class="lineno"> 1216</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="structolc_1_1_pixel.html#a75ef9e180289d861dfa6687faa248345">Pixel</a>(nR, nG, nB, <a class="code" href="structolc_1_1_pixel.html#a652a25d4bcab1f7bf627c3224842f0b1">a</a>);</div>
+<div class="line"><a name="l01217"></a><span class="lineno"> 1217</span>&#160;    }</div>
+<div class="line"><a name="l01218"></a><span class="lineno"> 1218</span>&#160; </div>
+<div class="line"><a name="l01219"></a><span class="lineno"> 1219</span>&#160;    Pixel&amp; <a class="code" href="structolc_1_1_pixel.html#a39dc75f9f15c040c2d2715c66b13f4e0">Pixel::operator += </a>(<span class="keyword">const</span> Pixel&amp; p)</div>
+<div class="line"><a name="l01220"></a><span class="lineno"> 1220</span>&#160;    {</div>
+<div class="line"><a name="l01221"></a><span class="lineno"> 1221</span>&#160;        this-&gt;<a class="code" href="structolc_1_1_pixel.html#a93ee3efde3d2b363e4e4813a490f60b4">r</a> = uint8_t(std::min(255, std::max(0, <span class="keywordtype">int</span>(<a class="code" href="structolc_1_1_pixel.html#a93ee3efde3d2b363e4e4813a490f60b4">r</a>) + <span class="keywordtype">int</span>(p.r))));</div>
+<div class="line"><a name="l01222"></a><span class="lineno"> 1222</span>&#160;        this-&gt;<a class="code" href="structolc_1_1_pixel.html#a14cf5612284974c409f078944fe5f6ee">g</a> = uint8_t(std::min(255, std::max(0, <span class="keywordtype">int</span>(<a class="code" href="structolc_1_1_pixel.html#a14cf5612284974c409f078944fe5f6ee">g</a>) + <span class="keywordtype">int</span>(p.g))));</div>
+<div class="line"><a name="l01223"></a><span class="lineno"> 1223</span>&#160;        this-&gt;<a class="code" href="structolc_1_1_pixel.html#a8738f2cd490bd9c5288f37c8d19816be">b</a> = uint8_t(std::min(255, std::max(0, <span class="keywordtype">int</span>(<a class="code" href="structolc_1_1_pixel.html#a8738f2cd490bd9c5288f37c8d19816be">b</a>) + <span class="keywordtype">int</span>(p.b))));</div>
+<div class="line"><a name="l01224"></a><span class="lineno"> 1224</span>&#160;        <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
+<div class="line"><a name="l01225"></a><span class="lineno"> 1225</span>&#160;    }</div>
+<div class="line"><a name="l01226"></a><span class="lineno"> 1226</span>&#160; </div>
+<div class="line"><a name="l01227"></a><span class="lineno"> 1227</span>&#160;    Pixel&amp; <a class="code" href="structolc_1_1_pixel.html#a058f58406ca54ab73075f5e42125a65a">Pixel::operator -= </a>(<span class="keyword">const</span> Pixel&amp; p) <span class="comment">// Thanks Au Lit</span></div>
+<div class="line"><a name="l01228"></a><span class="lineno"> 1228</span>&#160;    {</div>
+<div class="line"><a name="l01229"></a><span class="lineno"> 1229</span>&#160;        this-&gt;<a class="code" href="structolc_1_1_pixel.html#a93ee3efde3d2b363e4e4813a490f60b4">r</a> = uint8_t(std::min(255, std::max(0, <span class="keywordtype">int</span>(<a class="code" href="structolc_1_1_pixel.html#a93ee3efde3d2b363e4e4813a490f60b4">r</a>) - <span class="keywordtype">int</span>(p.r))));</div>
+<div class="line"><a name="l01230"></a><span class="lineno"> 1230</span>&#160;        this-&gt;<a class="code" href="structolc_1_1_pixel.html#a14cf5612284974c409f078944fe5f6ee">g</a> = uint8_t(std::min(255, std::max(0, <span class="keywordtype">int</span>(<a class="code" href="structolc_1_1_pixel.html#a14cf5612284974c409f078944fe5f6ee">g</a>) - <span class="keywordtype">int</span>(p.g))));</div>
+<div class="line"><a name="l01231"></a><span class="lineno"> 1231</span>&#160;        this-&gt;<a class="code" href="structolc_1_1_pixel.html#a8738f2cd490bd9c5288f37c8d19816be">b</a> = uint8_t(std::min(255, std::max(0, <span class="keywordtype">int</span>(<a class="code" href="structolc_1_1_pixel.html#a8738f2cd490bd9c5288f37c8d19816be">b</a>) - <span class="keywordtype">int</span>(p.b))));</div>
+<div class="line"><a name="l01232"></a><span class="lineno"> 1232</span>&#160;        <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
+<div class="line"><a name="l01233"></a><span class="lineno"> 1233</span>&#160;    }</div>
+<div class="line"><a name="l01234"></a><span class="lineno"> 1234</span>&#160; </div>
+<div class="line"><a name="l01235"></a><span class="lineno"> 1235</span>&#160;    Pixel <a class="code" href="structolc_1_1_pixel.html#a8a1daba449fb823a4535a6089fe880ab">Pixel::inv</a>()<span class="keyword"> const</span></div>
+<div class="line"><a name="l01236"></a><span class="lineno"> 1236</span>&#160;<span class="keyword">    </span>{</div>
+<div class="line"><a name="l01237"></a><span class="lineno"> 1237</span>&#160;        uint8_t nR = uint8_t(std::min(255, std::max(0, 255 - <span class="keywordtype">int</span>(<a class="code" href="structolc_1_1_pixel.html#a93ee3efde3d2b363e4e4813a490f60b4">r</a>))));</div>
+<div class="line"><a name="l01238"></a><span class="lineno"> 1238</span>&#160;        uint8_t nG = uint8_t(std::min(255, std::max(0, 255 - <span class="keywordtype">int</span>(<a class="code" href="structolc_1_1_pixel.html#a14cf5612284974c409f078944fe5f6ee">g</a>))));</div>
+<div class="line"><a name="l01239"></a><span class="lineno"> 1239</span>&#160;        uint8_t nB = uint8_t(std::min(255, std::max(0, 255 - <span class="keywordtype">int</span>(<a class="code" href="structolc_1_1_pixel.html#a8738f2cd490bd9c5288f37c8d19816be">b</a>))));</div>
+<div class="line"><a name="l01240"></a><span class="lineno"> 1240</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="structolc_1_1_pixel.html#a75ef9e180289d861dfa6687faa248345">Pixel</a>(nR, nG, nB, <a class="code" href="structolc_1_1_pixel.html#a652a25d4bcab1f7bf627c3224842f0b1">a</a>);</div>
+<div class="line"><a name="l01241"></a><span class="lineno"> 1241</span>&#160;    }</div>
+<div class="line"><a name="l01242"></a><span class="lineno"> 1242</span>&#160; </div>
+<div class="line"><a name="l01243"></a><span class="lineno"> 1243</span>&#160;    Pixel <a class="code" href="namespaceolc.html#a06c9f23f2e370e7afe71788427a820fd">PixelF</a>(<span class="keywordtype">float</span> red, <span class="keywordtype">float</span> green, <span class="keywordtype">float</span> blue, <span class="keywordtype">float</span> alpha)</div>
+<div class="line"><a name="l01244"></a><span class="lineno"> 1244</span>&#160;    { <span class="keywordflow">return</span> Pixel(uint8_t(red * 255.0f), uint8_t(green * 255.0f), uint8_t(blue * 255.0f), uint8_t(alpha * 255.0f)); }</div>
+<div class="line"><a name="l01245"></a><span class="lineno"> 1245</span>&#160; </div>
+<div class="line"><a name="l01246"></a><span class="lineno"> 1246</span>&#160;    Pixel <a class="code" href="namespaceolc.html#a2069e5cf447f5dd311c680c9463f9c42">PixelLerp</a>(<span class="keyword">const</span> <a class="code" href="structolc_1_1_pixel.html">olc::Pixel</a>&amp; p1, <span class="keyword">const</span> <a class="code" href="structolc_1_1_pixel.html">olc::Pixel</a>&amp; p2, <span class="keywordtype">float</span> t)</div>
+<div class="line"><a name="l01247"></a><span class="lineno"> 1247</span>&#160;    { <span class="keywordflow">return</span> (p2 * t) + p1 * (1.0f - t); }</div>
+<div class="line"><a name="l01248"></a><span class="lineno"> 1248</span>&#160; </div>
+<div class="line"><a name="l01249"></a><span class="lineno"> 1249</span>&#160;    <span class="comment">// O------------------------------------------------------------------------------O</span></div>
+<div class="line"><a name="l01250"></a><span class="lineno"> 1250</span>&#160;    <span class="comment">// | olc::Sprite IMPLEMENTATION                                                   |</span></div>
+<div class="line"><a name="l01251"></a><span class="lineno"> 1251</span>&#160;    <span class="comment">// O------------------------------------------------------------------------------O</span></div>
+<div class="line"><a name="l01252"></a><span class="lineno"> 1252</span>&#160;    <a class="code" href="classolc_1_1_sprite.html#aaf231565550d294ef20bf31364562ec3">Sprite::Sprite</a>()</div>
+<div class="line"><a name="l01253"></a><span class="lineno"> 1253</span>&#160;    { <a class="code" href="classolc_1_1_sprite.html#af055800e63204ae372ca0812e6926230">width</a> = 0; <a class="code" href="classolc_1_1_sprite.html#ab05010cb1a5ff6c36267d0050d568d96">height</a> = 0; }</div>
+<div class="line"><a name="l01254"></a><span class="lineno"> 1254</span>&#160; </div>
+<div class="line"><a name="l01255"></a><span class="lineno"> 1255</span>&#160;    <a class="code" href="classolc_1_1_sprite.html#aaf231565550d294ef20bf31364562ec3">Sprite::Sprite</a>(<span class="keyword">const</span> std::string&amp; sImageFile, <a class="code" href="classolc_1_1_resource_pack.html">olc::ResourcePack</a>* pack)</div>
+<div class="line"><a name="l01256"></a><span class="lineno"> 1256</span>&#160;    { <a class="code" href="classolc_1_1_sprite.html#adc277c0342733a4aa8dcdc9152326fec">LoadFromFile</a>(sImageFile, pack); }</div>
+<div class="line"><a name="l01257"></a><span class="lineno"> 1257</span>&#160; </div>
+<div class="line"><a name="l01258"></a><span class="lineno"> 1258</span>&#160;    <a class="code" href="classolc_1_1_sprite.html#aaf231565550d294ef20bf31364562ec3">Sprite::Sprite</a>(int32_t w, int32_t h)</div>
+<div class="line"><a name="l01259"></a><span class="lineno"> 1259</span>&#160;    {       </div>
+<div class="line"><a name="l01260"></a><span class="lineno"> 1260</span>&#160;        <a class="code" href="classolc_1_1_sprite.html#af055800e63204ae372ca0812e6926230">width</a> = w;      <a class="code" href="classolc_1_1_sprite.html#ab05010cb1a5ff6c36267d0050d568d96">height</a> = h;</div>
+<div class="line"><a name="l01261"></a><span class="lineno"> 1261</span>&#160;        <a class="code" href="classolc_1_1_sprite.html#adb41a2041dfe14de9605dabcd905db60">pColData</a>.resize(<a class="code" href="classolc_1_1_sprite.html#af055800e63204ae372ca0812e6926230">width</a> * <a class="code" href="classolc_1_1_sprite.html#ab05010cb1a5ff6c36267d0050d568d96">height</a>);</div>
+<div class="line"><a name="l01262"></a><span class="lineno"> 1262</span>&#160;        <a class="code" href="classolc_1_1_sprite.html#adb41a2041dfe14de9605dabcd905db60">pColData</a>.resize(<a class="code" href="classolc_1_1_sprite.html#af055800e63204ae372ca0812e6926230">width</a> * <a class="code" href="classolc_1_1_sprite.html#ab05010cb1a5ff6c36267d0050d568d96">height</a>, <a class="code" href="namespaceolc.html#a10bbdc57cc3fecc7b80ba428eb7494d0">nDefaultPixel</a>);</div>
+<div class="line"><a name="l01263"></a><span class="lineno"> 1263</span>&#160;    }</div>
+<div class="line"><a name="l01264"></a><span class="lineno"> 1264</span>&#160; </div>
+<div class="line"><a name="l01265"></a><span class="lineno"> 1265</span>&#160;    <a class="code" href="classolc_1_1_sprite.html#a594abc52842c29e4a5417adf57fb877e">Sprite::~Sprite</a>()</div>
+<div class="line"><a name="l01266"></a><span class="lineno"> 1266</span>&#160;    { <a class="code" href="classolc_1_1_sprite.html#adb41a2041dfe14de9605dabcd905db60">pColData</a>.clear(); }</div>
+<div class="line"><a name="l01267"></a><span class="lineno"> 1267</span>&#160; </div>
+<div class="line"><a name="l01268"></a><span class="lineno"> 1268</span>&#160;    <span class="comment">// To Be Deprecated</span></div>
+<div class="line"><a name="l01269"></a><span class="lineno"> 1269</span>&#160;    <span class="comment">//olc::rcode Sprite::LoadFromPGESprFile(const std::string&amp; sImageFile, olc::ResourcePack* pack)</span></div>
+<div class="line"><a name="l01270"></a><span class="lineno"> 1270</span>&#160;    <span class="comment">//{</span></div>
+<div class="line"><a name="l01271"></a><span class="lineno"> 1271</span>&#160;    <span class="comment">//  if (pColData) delete[] pColData;</span></div>
+<div class="line"><a name="l01272"></a><span class="lineno"> 1272</span>&#160;    <span class="comment">//  auto ReadData = [&amp;](std::istream&amp; is)</span></div>
+<div class="line"><a name="l01273"></a><span class="lineno"> 1273</span>&#160;    <span class="comment">//  {</span></div>
+<div class="line"><a name="l01274"></a><span class="lineno"> 1274</span>&#160;    <span class="comment">//      is.read((char*)&amp;width, sizeof(int32_t));</span></div>
+<div class="line"><a name="l01275"></a><span class="lineno"> 1275</span>&#160;    <span class="comment">//      is.read((char*)&amp;height, sizeof(int32_t));</span></div>
+<div class="line"><a name="l01276"></a><span class="lineno"> 1276</span>&#160;    <span class="comment">//      pColData = new Pixel[width * height];</span></div>
+<div class="line"><a name="l01277"></a><span class="lineno"> 1277</span>&#160;    <span class="comment">//      is.read((char*)pColData, (size_t)width * (size_t)height * sizeof(uint32_t));</span></div>
+<div class="line"><a name="l01278"></a><span class="lineno"> 1278</span>&#160;    <span class="comment">//  };</span></div>
+<div class="line"><a name="l01279"></a><span class="lineno"> 1279</span>&#160; </div>
+<div class="line"><a name="l01280"></a><span class="lineno"> 1280</span>&#160;    <span class="comment">//  // These are essentially Memory Surfaces represented by olc::Sprite</span></div>
+<div class="line"><a name="l01281"></a><span class="lineno"> 1281</span>&#160;    <span class="comment">//  // which load very fast, but are completely uncompressed</span></div>
+<div class="line"><a name="l01282"></a><span class="lineno"> 1282</span>&#160;    <span class="comment">//  if (pack == nullptr)</span></div>
+<div class="line"><a name="l01283"></a><span class="lineno"> 1283</span>&#160;    <span class="comment">//  {</span></div>
+<div class="line"><a name="l01284"></a><span class="lineno"> 1284</span>&#160;    <span class="comment">//      std::ifstream ifs;</span></div>
+<div class="line"><a name="l01285"></a><span class="lineno"> 1285</span>&#160;    <span class="comment">//      ifs.open(sImageFile, std::ifstream::binary);</span></div>
+<div class="line"><a name="l01286"></a><span class="lineno"> 1286</span>&#160;    <span class="comment">//      if (ifs.is_open())</span></div>
+<div class="line"><a name="l01287"></a><span class="lineno"> 1287</span>&#160;    <span class="comment">//      {</span></div>
+<div class="line"><a name="l01288"></a><span class="lineno"> 1288</span>&#160;    <span class="comment">//          ReadData(ifs);</span></div>
+<div class="line"><a name="l01289"></a><span class="lineno"> 1289</span>&#160;    <span class="comment">//          return olc::OK;</span></div>
+<div class="line"><a name="l01290"></a><span class="lineno"> 1290</span>&#160;    <span class="comment">//      }</span></div>
+<div class="line"><a name="l01291"></a><span class="lineno"> 1291</span>&#160;    <span class="comment">//      else</span></div>
+<div class="line"><a name="l01292"></a><span class="lineno"> 1292</span>&#160;    <span class="comment">//          return olc::FAIL;</span></div>
+<div class="line"><a name="l01293"></a><span class="lineno"> 1293</span>&#160;    <span class="comment">//  }</span></div>
+<div class="line"><a name="l01294"></a><span class="lineno"> 1294</span>&#160;    <span class="comment">//  else</span></div>
+<div class="line"><a name="l01295"></a><span class="lineno"> 1295</span>&#160;    <span class="comment">//  {</span></div>
+<div class="line"><a name="l01296"></a><span class="lineno"> 1296</span>&#160;    <span class="comment">//      ResourceBuffer rb = pack-&gt;GetFileBuffer(sImageFile);</span></div>
+<div class="line"><a name="l01297"></a><span class="lineno"> 1297</span>&#160;    <span class="comment">//      std::istream is(&amp;rb);</span></div>
+<div class="line"><a name="l01298"></a><span class="lineno"> 1298</span>&#160;    <span class="comment">//      ReadData(is);</span></div>
+<div class="line"><a name="l01299"></a><span class="lineno"> 1299</span>&#160;    <span class="comment">//      return olc::OK;</span></div>
+<div class="line"><a name="l01300"></a><span class="lineno"> 1300</span>&#160;    <span class="comment">//  }</span></div>
+<div class="line"><a name="l01301"></a><span class="lineno"> 1301</span>&#160;    <span class="comment">//  return olc::FAIL;</span></div>
+<div class="line"><a name="l01302"></a><span class="lineno"> 1302</span>&#160;    <span class="comment">//}</span></div>
+<div class="line"><a name="l01303"></a><span class="lineno"> 1303</span>&#160; </div>
+<div class="line"><a name="l01304"></a><span class="lineno"> 1304</span>&#160;    <span class="comment">//olc::rcode Sprite::SaveToPGESprFile(const std::string&amp; sImageFile)</span></div>
+<div class="line"><a name="l01305"></a><span class="lineno"> 1305</span>&#160;    <span class="comment">//{</span></div>
+<div class="line"><a name="l01306"></a><span class="lineno"> 1306</span>&#160;    <span class="comment">//  if (pColData == nullptr) return olc::FAIL;</span></div>
+<div class="line"><a name="l01307"></a><span class="lineno"> 1307</span>&#160; </div>
+<div class="line"><a name="l01308"></a><span class="lineno"> 1308</span>&#160;    <span class="comment">//  std::ofstream ofs;</span></div>
+<div class="line"><a name="l01309"></a><span class="lineno"> 1309</span>&#160;    <span class="comment">//  ofs.open(sImageFile, std::ifstream::binary);</span></div>
+<div class="line"><a name="l01310"></a><span class="lineno"> 1310</span>&#160;    <span class="comment">//  if (ofs.is_open())</span></div>
+<div class="line"><a name="l01311"></a><span class="lineno"> 1311</span>&#160;    <span class="comment">//  {</span></div>
+<div class="line"><a name="l01312"></a><span class="lineno"> 1312</span>&#160;    <span class="comment">//      ofs.write((char*)&amp;width, sizeof(int32_t));</span></div>
+<div class="line"><a name="l01313"></a><span class="lineno"> 1313</span>&#160;    <span class="comment">//      ofs.write((char*)&amp;height, sizeof(int32_t));</span></div>
+<div class="line"><a name="l01314"></a><span class="lineno"> 1314</span>&#160;    <span class="comment">//      ofs.write((char*)pColData, std::streamsize(width) * std::streamsize(height) * sizeof(uint32_t));</span></div>
+<div class="line"><a name="l01315"></a><span class="lineno"> 1315</span>&#160;    <span class="comment">//      ofs.close();</span></div>
+<div class="line"><a name="l01316"></a><span class="lineno"> 1316</span>&#160;    <span class="comment">//      return olc::OK;</span></div>
+<div class="line"><a name="l01317"></a><span class="lineno"> 1317</span>&#160;    <span class="comment">//  }</span></div>
+<div class="line"><a name="l01318"></a><span class="lineno"> 1318</span>&#160; </div>
+<div class="line"><a name="l01319"></a><span class="lineno"> 1319</span>&#160;    <span class="comment">//  return olc::FAIL;</span></div>
+<div class="line"><a name="l01320"></a><span class="lineno"> 1320</span>&#160;    <span class="comment">//}</span></div>
+<div class="line"><a name="l01321"></a><span class="lineno"> 1321</span>&#160; </div>
+<div class="line"><a name="l01322"></a><span class="lineno"> 1322</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_sprite.html#a78f4fcf41780cfc547f21e5a0dea03a2">Sprite::SetSampleMode</a>(<a class="code" href="classolc_1_1_sprite.html#a78b7f14903f9f0bb536b66c37f3139cf">olc::Sprite::Mode</a> mode)</div>
+<div class="line"><a name="l01323"></a><span class="lineno"> 1323</span>&#160;    { <a class="code" href="classolc_1_1_sprite.html#ab9182b86e829467f454c7ef630ebc9fb">modeSample</a> = mode; }</div>
+<div class="line"><a name="l01324"></a><span class="lineno"> 1324</span>&#160; </div>
+<div class="line"><a name="l01325"></a><span class="lineno"> 1325</span>&#160;    Pixel <a class="code" href="classolc_1_1_sprite.html#a7e1f8169c9822f1ed94f0212d3f8d6f6">Sprite::GetPixel</a>(<span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vi2d</a>&amp; a)<span class="keyword"> const</span></div>
+<div class="line"><a name="l01326"></a><span class="lineno"> 1326</span>&#160;<span class="keyword">    </span>{ <span class="keywordflow">return</span> <a class="code" href="classolc_1_1_sprite.html#a7e1f8169c9822f1ed94f0212d3f8d6f6">GetPixel</a>(a.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a>, a.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a>); }</div>
+<div class="line"><a name="l01327"></a><span class="lineno"> 1327</span>&#160; </div>
+<div class="line"><a name="l01328"></a><span class="lineno"> 1328</span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="classolc_1_1_sprite.html#a294389e93a95c8307f1260d7cacaf9ba">Sprite::SetPixel</a>(<span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vi2d</a>&amp; a, Pixel p)</div>
+<div class="line"><a name="l01329"></a><span class="lineno"> 1329</span>&#160;    { <span class="keywordflow">return</span> <a class="code" href="classolc_1_1_sprite.html#a294389e93a95c8307f1260d7cacaf9ba">SetPixel</a>(a.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a>, a.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a>, p); }</div>
+<div class="line"><a name="l01330"></a><span class="lineno"> 1330</span>&#160; </div>
+<div class="line"><a name="l01331"></a><span class="lineno"> 1331</span>&#160;    Pixel <a class="code" href="classolc_1_1_sprite.html#a7e1f8169c9822f1ed94f0212d3f8d6f6">Sprite::GetPixel</a>(int32_t x, int32_t y)<span class="keyword"> const</span></div>
+<div class="line"><a name="l01332"></a><span class="lineno"> 1332</span>&#160;<span class="keyword">    </span>{</div>
+<div class="line"><a name="l01333"></a><span class="lineno"> 1333</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="classolc_1_1_sprite.html#ab9182b86e829467f454c7ef630ebc9fb">modeSample</a> == olc::Sprite::Mode::NORMAL)</div>
+<div class="line"><a name="l01334"></a><span class="lineno"> 1334</span>&#160;        {</div>
+<div class="line"><a name="l01335"></a><span class="lineno"> 1335</span>&#160;            <span class="keywordflow">if</span> (x &gt;= 0 &amp;&amp; x &lt; width &amp;&amp; y &gt;= 0 &amp;&amp; y &lt; <a class="code" href="classolc_1_1_sprite.html#ab05010cb1a5ff6c36267d0050d568d96">height</a>)</div>
+<div class="line"><a name="l01336"></a><span class="lineno"> 1336</span>&#160;                <span class="keywordflow">return</span> <a class="code" href="classolc_1_1_sprite.html#adb41a2041dfe14de9605dabcd905db60">pColData</a>[y * <a class="code" href="classolc_1_1_sprite.html#af055800e63204ae372ca0812e6926230">width</a> + x];</div>
+<div class="line"><a name="l01337"></a><span class="lineno"> 1337</span>&#160;            <span class="keywordflow">else</span></div>
+<div class="line"><a name="l01338"></a><span class="lineno"> 1338</span>&#160;                <span class="keywordflow">return</span> Pixel(0, 0, 0, 0);</div>
+<div class="line"><a name="l01339"></a><span class="lineno"> 1339</span>&#160;        }</div>
+<div class="line"><a name="l01340"></a><span class="lineno"> 1340</span>&#160;        <span class="keywordflow">else</span></div>
+<div class="line"><a name="l01341"></a><span class="lineno"> 1341</span>&#160;        {</div>
+<div class="line"><a name="l01342"></a><span class="lineno"> 1342</span>&#160;            <span class="keywordflow">return</span> <a class="code" href="classolc_1_1_sprite.html#adb41a2041dfe14de9605dabcd905db60">pColData</a>[abs(y % <a class="code" href="classolc_1_1_sprite.html#ab05010cb1a5ff6c36267d0050d568d96">height</a>) * <a class="code" href="classolc_1_1_sprite.html#af055800e63204ae372ca0812e6926230">width</a> + abs(x % <a class="code" href="classolc_1_1_sprite.html#af055800e63204ae372ca0812e6926230">width</a>)];</div>
+<div class="line"><a name="l01343"></a><span class="lineno"> 1343</span>&#160;        }</div>
+<div class="line"><a name="l01344"></a><span class="lineno"> 1344</span>&#160;    }</div>
+<div class="line"><a name="l01345"></a><span class="lineno"> 1345</span>&#160; </div>
+<div class="line"><a name="l01346"></a><span class="lineno"> 1346</span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="classolc_1_1_sprite.html#a294389e93a95c8307f1260d7cacaf9ba">Sprite::SetPixel</a>(int32_t x, int32_t y, Pixel p)</div>
+<div class="line"><a name="l01347"></a><span class="lineno"> 1347</span>&#160;    {</div>
+<div class="line"><a name="l01348"></a><span class="lineno"> 1348</span>&#160;        <span class="keywordflow">if</span> (x &gt;= 0 &amp;&amp; x &lt; width &amp;&amp; y &gt;= 0 &amp;&amp; y &lt; <a class="code" href="classolc_1_1_sprite.html#ab05010cb1a5ff6c36267d0050d568d96">height</a>)</div>
+<div class="line"><a name="l01349"></a><span class="lineno"> 1349</span>&#160;        {</div>
+<div class="line"><a name="l01350"></a><span class="lineno"> 1350</span>&#160;            <a class="code" href="classolc_1_1_sprite.html#adb41a2041dfe14de9605dabcd905db60">pColData</a>[y * <a class="code" href="classolc_1_1_sprite.html#af055800e63204ae372ca0812e6926230">width</a> + x] = p;</div>
+<div class="line"><a name="l01351"></a><span class="lineno"> 1351</span>&#160;            <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l01352"></a><span class="lineno"> 1352</span>&#160;        }</div>
+<div class="line"><a name="l01353"></a><span class="lineno"> 1353</span>&#160;        <span class="keywordflow">else</span></div>
+<div class="line"><a name="l01354"></a><span class="lineno"> 1354</span>&#160;            <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l01355"></a><span class="lineno"> 1355</span>&#160;    }</div>
+<div class="line"><a name="l01356"></a><span class="lineno"> 1356</span>&#160; </div>
+<div class="line"><a name="l01357"></a><span class="lineno"> 1357</span>&#160;    Pixel <a class="code" href="classolc_1_1_sprite.html#a902192f81ab42420921992a7288aab48">Sprite::Sample</a>(<span class="keywordtype">float</span> x, <span class="keywordtype">float</span> y)<span class="keyword"> const</span></div>
+<div class="line"><a name="l01358"></a><span class="lineno"> 1358</span>&#160;<span class="keyword">    </span>{</div>
+<div class="line"><a name="l01359"></a><span class="lineno"> 1359</span>&#160;        int32_t sx = std::min((int32_t)((x * (<span class="keywordtype">float</span>)<a class="code" href="classolc_1_1_sprite.html#af055800e63204ae372ca0812e6926230">width</a>)), <a class="code" href="classolc_1_1_sprite.html#af055800e63204ae372ca0812e6926230">width</a> - 1);</div>
+<div class="line"><a name="l01360"></a><span class="lineno"> 1360</span>&#160;        int32_t sy = std::min((int32_t)((y * (<span class="keywordtype">float</span>)<a class="code" href="classolc_1_1_sprite.html#ab05010cb1a5ff6c36267d0050d568d96">height</a>)), <a class="code" href="classolc_1_1_sprite.html#ab05010cb1a5ff6c36267d0050d568d96">height</a> - 1);</div>
+<div class="line"><a name="l01361"></a><span class="lineno"> 1361</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="classolc_1_1_sprite.html#a7e1f8169c9822f1ed94f0212d3f8d6f6">GetPixel</a>(sx, sy);</div>
+<div class="line"><a name="l01362"></a><span class="lineno"> 1362</span>&#160;    }</div>
+<div class="line"><a name="l01363"></a><span class="lineno"> 1363</span>&#160; </div>
+<div class="line"><a name="l01364"></a><span class="lineno"> 1364</span>&#160;    Pixel <a class="code" href="classolc_1_1_sprite.html#a5e28024237453fb56c32f37d6996443d">Sprite::SampleBL</a>(<span class="keywordtype">float</span> u, <span class="keywordtype">float</span> v)<span class="keyword"> const</span></div>
+<div class="line"><a name="l01365"></a><span class="lineno"> 1365</span>&#160;<span class="keyword">    </span>{</div>
+<div class="line"><a name="l01366"></a><span class="lineno"> 1366</span>&#160;        u = u * <a class="code" href="classolc_1_1_sprite.html#af055800e63204ae372ca0812e6926230">width</a> - 0.5f;</div>
+<div class="line"><a name="l01367"></a><span class="lineno"> 1367</span>&#160;        v = v * <a class="code" href="classolc_1_1_sprite.html#ab05010cb1a5ff6c36267d0050d568d96">height</a> - 0.5f;</div>
+<div class="line"><a name="l01368"></a><span class="lineno"> 1368</span>&#160;        <span class="keywordtype">int</span> x = (int)floor(u); <span class="comment">// cast to int rounds toward zero, not downward</span></div>
+<div class="line"><a name="l01369"></a><span class="lineno"> 1369</span>&#160;        <span class="keywordtype">int</span> y = (int)floor(v); <span class="comment">// Thanks @joshinils</span></div>
+<div class="line"><a name="l01370"></a><span class="lineno"> 1370</span>&#160;        <span class="keywordtype">float</span> u_ratio = u - x;</div>
+<div class="line"><a name="l01371"></a><span class="lineno"> 1371</span>&#160;        <span class="keywordtype">float</span> v_ratio = v - y;</div>
+<div class="line"><a name="l01372"></a><span class="lineno"> 1372</span>&#160;        <span class="keywordtype">float</span> u_opposite = 1 - u_ratio;</div>
+<div class="line"><a name="l01373"></a><span class="lineno"> 1373</span>&#160;        <span class="keywordtype">float</span> v_opposite = 1 - v_ratio;</div>
+<div class="line"><a name="l01374"></a><span class="lineno"> 1374</span>&#160; </div>
+<div class="line"><a name="l01375"></a><span class="lineno"> 1375</span>&#160;        <a class="code" href="structolc_1_1_pixel.html">olc::Pixel</a> p1 = <a class="code" href="classolc_1_1_sprite.html#a7e1f8169c9822f1ed94f0212d3f8d6f6">GetPixel</a>(std::max(x, 0), std::max(y, 0));</div>
+<div class="line"><a name="l01376"></a><span class="lineno"> 1376</span>&#160;        <a class="code" href="structolc_1_1_pixel.html">olc::Pixel</a> p2 = <a class="code" href="classolc_1_1_sprite.html#a7e1f8169c9822f1ed94f0212d3f8d6f6">GetPixel</a>(std::min(x + 1, (<span class="keywordtype">int</span>)<a class="code" href="classolc_1_1_sprite.html#af055800e63204ae372ca0812e6926230">width</a> - 1), std::max(y, 0));</div>
+<div class="line"><a name="l01377"></a><span class="lineno"> 1377</span>&#160;        <a class="code" href="structolc_1_1_pixel.html">olc::Pixel</a> p3 = <a class="code" href="classolc_1_1_sprite.html#a7e1f8169c9822f1ed94f0212d3f8d6f6">GetPixel</a>(std::max(x, 0), std::min(y + 1, (<span class="keywordtype">int</span>)<a class="code" href="classolc_1_1_sprite.html#ab05010cb1a5ff6c36267d0050d568d96">height</a> - 1));</div>
+<div class="line"><a name="l01378"></a><span class="lineno"> 1378</span>&#160;        <a class="code" href="structolc_1_1_pixel.html">olc::Pixel</a> p4 = <a class="code" href="classolc_1_1_sprite.html#a7e1f8169c9822f1ed94f0212d3f8d6f6">GetPixel</a>(std::min(x + 1, (<span class="keywordtype">int</span>)<a class="code" href="classolc_1_1_sprite.html#af055800e63204ae372ca0812e6926230">width</a> - 1), std::min(y + 1, (<span class="keywordtype">int</span>)<a class="code" href="classolc_1_1_sprite.html#ab05010cb1a5ff6c36267d0050d568d96">height</a> - 1));</div>
+<div class="line"><a name="l01379"></a><span class="lineno"> 1379</span>&#160; </div>
+<div class="line"><a name="l01380"></a><span class="lineno"> 1380</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="structolc_1_1_pixel.html">olc::Pixel</a>(</div>
+<div class="line"><a name="l01381"></a><span class="lineno"> 1381</span>&#160;            (uint8_t)((p1.<a class="code" href="structolc_1_1_pixel.html#a93ee3efde3d2b363e4e4813a490f60b4">r</a> * u_opposite + p2.<a class="code" href="structolc_1_1_pixel.html#a93ee3efde3d2b363e4e4813a490f60b4">r</a> * u_ratio) * v_opposite + (p3.<a class="code" href="structolc_1_1_pixel.html#a93ee3efde3d2b363e4e4813a490f60b4">r</a> * u_opposite + p4.<a class="code" href="structolc_1_1_pixel.html#a93ee3efde3d2b363e4e4813a490f60b4">r</a> * u_ratio) * v_ratio),</div>
+<div class="line"><a name="l01382"></a><span class="lineno"> 1382</span>&#160;            (uint8_t)((p1.<a class="code" href="structolc_1_1_pixel.html#a14cf5612284974c409f078944fe5f6ee">g</a> * u_opposite + p2.<a class="code" href="structolc_1_1_pixel.html#a14cf5612284974c409f078944fe5f6ee">g</a> * u_ratio) * v_opposite + (p3.<a class="code" href="structolc_1_1_pixel.html#a14cf5612284974c409f078944fe5f6ee">g</a> * u_opposite + p4.<a class="code" href="structolc_1_1_pixel.html#a14cf5612284974c409f078944fe5f6ee">g</a> * u_ratio) * v_ratio),</div>
+<div class="line"><a name="l01383"></a><span class="lineno"> 1383</span>&#160;            (uint8_t)((p1.<a class="code" href="structolc_1_1_pixel.html#a8738f2cd490bd9c5288f37c8d19816be">b</a> * u_opposite + p2.<a class="code" href="structolc_1_1_pixel.html#a8738f2cd490bd9c5288f37c8d19816be">b</a> * u_ratio) * v_opposite + (p3.<a class="code" href="structolc_1_1_pixel.html#a8738f2cd490bd9c5288f37c8d19816be">b</a> * u_opposite + p4.<a class="code" href="structolc_1_1_pixel.html#a8738f2cd490bd9c5288f37c8d19816be">b</a> * u_ratio) * v_ratio));</div>
+<div class="line"><a name="l01384"></a><span class="lineno"> 1384</span>&#160;    }</div>
+<div class="line"><a name="l01385"></a><span class="lineno"> 1385</span>&#160; </div>
+<div class="line"><a name="l01386"></a><span class="lineno"> 1386</span>&#160;    Pixel* <a class="code" href="classolc_1_1_sprite.html#ad8fcc6bbf8a785aa0bb9d00bf3cfdff2">Sprite::GetData</a>()</div>
+<div class="line"><a name="l01387"></a><span class="lineno"> 1387</span>&#160;    { <span class="keywordflow">return</span> <a class="code" href="classolc_1_1_sprite.html#adb41a2041dfe14de9605dabcd905db60">pColData</a>.data(); }</div>
+<div class="line"><a name="l01388"></a><span class="lineno"> 1388</span>&#160; </div>
+<div class="line"><a name="l01389"></a><span class="lineno"> 1389</span>&#160; </div>
+<div class="line"><a name="l01390"></a><span class="lineno"> 1390</span>&#160;    <a class="code" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87b">olc::rcode</a> <a class="code" href="classolc_1_1_sprite.html#adc277c0342733a4aa8dcdc9152326fec">Sprite::LoadFromFile</a>(<span class="keyword">const</span> std::string&amp; sImageFile, <a class="code" href="classolc_1_1_resource_pack.html">olc::ResourcePack</a>* pack)</div>
+<div class="line"><a name="l01391"></a><span class="lineno"> 1391</span>&#160;    {</div>
+<div class="line"><a name="l01392"></a><span class="lineno"> 1392</span>&#160;        <a class="code" href="olc_pixel_game_engine_8h.html#a86d500a34c624c2cae56bc25a31b12f3">UNUSED</a>(pack);</div>
+<div class="line"><a name="l01393"></a><span class="lineno"> 1393</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="classolc_1_1_sprite.html#a023da26661031ebf7a276cafd9a43902">loader</a>-&gt;LoadImageResource(<span class="keyword">this</span>, sImageFile, pack);</div>
+<div class="line"><a name="l01394"></a><span class="lineno"> 1394</span>&#160;    }</div>
+<div class="line"><a name="l01395"></a><span class="lineno"> 1395</span>&#160; </div>
+<div class="line"><a name="l01396"></a><span class="lineno"> 1396</span>&#160;    <a class="code" href="classolc_1_1_sprite.html">olc::Sprite</a>* <a class="code" href="classolc_1_1_sprite.html#a0b9399ba5d6df0b481ab16d8c4a28ded">Sprite::Duplicate</a>()</div>
+<div class="line"><a name="l01397"></a><span class="lineno"> 1397</span>&#160;    {</div>
+<div class="line"><a name="l01398"></a><span class="lineno"> 1398</span>&#160;        <a class="code" href="classolc_1_1_sprite.html">olc::Sprite</a>* spr = <span class="keyword">new</span> <a class="code" href="classolc_1_1_sprite.html">olc::Sprite</a>(<a class="code" href="classolc_1_1_sprite.html#af055800e63204ae372ca0812e6926230">width</a>, <a class="code" href="classolc_1_1_sprite.html#ab05010cb1a5ff6c36267d0050d568d96">height</a>);</div>
+<div class="line"><a name="l01399"></a><span class="lineno"> 1399</span>&#160;        std::memcpy(spr-&gt;<a class="code" href="classolc_1_1_sprite.html#ad8fcc6bbf8a785aa0bb9d00bf3cfdff2">GetData</a>(), <a class="code" href="classolc_1_1_sprite.html#ad8fcc6bbf8a785aa0bb9d00bf3cfdff2">GetData</a>(), <a class="code" href="classolc_1_1_sprite.html#af055800e63204ae372ca0812e6926230">width</a> * <a class="code" href="classolc_1_1_sprite.html#ab05010cb1a5ff6c36267d0050d568d96">height</a> * <span class="keyword">sizeof</span>(<a class="code" href="structolc_1_1_pixel.html">olc::Pixel</a>));</div>
+<div class="line"><a name="l01400"></a><span class="lineno"> 1400</span>&#160;        spr-&gt;<a class="code" href="classolc_1_1_sprite.html#ab9182b86e829467f454c7ef630ebc9fb">modeSample</a> = <a class="code" href="classolc_1_1_sprite.html#ab9182b86e829467f454c7ef630ebc9fb">modeSample</a>;</div>
+<div class="line"><a name="l01401"></a><span class="lineno"> 1401</span>&#160;        <span class="keywordflow">return</span> spr;</div>
+<div class="line"><a name="l01402"></a><span class="lineno"> 1402</span>&#160;    }</div>
+<div class="line"><a name="l01403"></a><span class="lineno"> 1403</span>&#160; </div>
+<div class="line"><a name="l01404"></a><span class="lineno"> 1404</span>&#160;    <a class="code" href="classolc_1_1_sprite.html">olc::Sprite</a>* <a class="code" href="classolc_1_1_sprite.html#a0b9399ba5d6df0b481ab16d8c4a28ded">Sprite::Duplicate</a>(<span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vi2d</a>&amp; vPos, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vi2d</a>&amp; vSize)</div>
+<div class="line"><a name="l01405"></a><span class="lineno"> 1405</span>&#160;    {</div>
+<div class="line"><a name="l01406"></a><span class="lineno"> 1406</span>&#160;        <a class="code" href="classolc_1_1_sprite.html">olc::Sprite</a>* spr = <span class="keyword">new</span> <a class="code" href="classolc_1_1_sprite.html">olc::Sprite</a>(vSize.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a>, vSize.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a>);</div>
+<div class="line"><a name="l01407"></a><span class="lineno"> 1407</span>&#160;        <span class="keywordflow">for</span> (<span class="keywordtype">int</span> y = 0; y &lt; vSize.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a>; y++)</div>
+<div class="line"><a name="l01408"></a><span class="lineno"> 1408</span>&#160;            <span class="keywordflow">for</span> (<span class="keywordtype">int</span> x = 0; x &lt; vSize.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a>; x++)</div>
+<div class="line"><a name="l01409"></a><span class="lineno"> 1409</span>&#160;                spr-&gt;<a class="code" href="classolc_1_1_sprite.html#a294389e93a95c8307f1260d7cacaf9ba">SetPixel</a>(x, y, <a class="code" href="classolc_1_1_sprite.html#a7e1f8169c9822f1ed94f0212d3f8d6f6">GetPixel</a>(vPos.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a> + x, vPos.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a> + y));</div>
+<div class="line"><a name="l01410"></a><span class="lineno"> 1410</span>&#160;        <span class="keywordflow">return</span> spr;</div>
+<div class="line"><a name="l01411"></a><span class="lineno"> 1411</span>&#160;    }</div>
+<div class="line"><a name="l01412"></a><span class="lineno"> 1412</span>&#160; </div>
+<div class="line"><a name="l01413"></a><span class="lineno"> 1413</span>&#160;    <span class="comment">// O------------------------------------------------------------------------------O</span></div>
+<div class="line"><a name="l01414"></a><span class="lineno"> 1414</span>&#160;    <span class="comment">// | olc::Decal IMPLEMENTATION                                                    |</span></div>
+<div class="line"><a name="l01415"></a><span class="lineno"> 1415</span>&#160;    <span class="comment">// O------------------------------------------------------------------------------O</span></div>
+<div class="line"><a name="l01416"></a><span class="lineno"> 1416</span>&#160;    <a class="code" href="classolc_1_1_decal.html#a5479fee995f05355026dafd8cadcac88">Decal::Decal</a>(<a class="code" href="classolc_1_1_sprite.html">olc::Sprite</a>* spr, <span class="keywordtype">bool</span> filter, <span class="keywordtype">bool</span> clamp)</div>
+<div class="line"><a name="l01417"></a><span class="lineno"> 1417</span>&#160;    {</div>
+<div class="line"><a name="l01418"></a><span class="lineno"> 1418</span>&#160;        <span class="keywordtype">id</span> = -1;</div>
+<div class="line"><a name="l01419"></a><span class="lineno"> 1419</span>&#160;        <span class="keywordflow">if</span> (spr == <span class="keyword">nullptr</span>) <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l01420"></a><span class="lineno"> 1420</span>&#160;        <a class="code" href="classolc_1_1_decal.html#a93a1e2ae28aa587978e2a66b6328d66a">sprite</a> = spr;</div>
+<div class="line"><a name="l01421"></a><span class="lineno"> 1421</span>&#160;        <span class="keywordtype">id</span> = renderer-&gt;CreateTexture(<a class="code" href="classolc_1_1_decal.html#a93a1e2ae28aa587978e2a66b6328d66a">sprite</a>-&gt;<a class="code" href="classolc_1_1_sprite.html#af055800e63204ae372ca0812e6926230">width</a>, <a class="code" href="classolc_1_1_decal.html#a93a1e2ae28aa587978e2a66b6328d66a">sprite</a>-&gt;<a class="code" href="classolc_1_1_sprite.html#ab05010cb1a5ff6c36267d0050d568d96">height</a>, filter, clamp);</div>
+<div class="line"><a name="l01422"></a><span class="lineno"> 1422</span>&#160;        <a class="code" href="classolc_1_1_decal.html#aac5ad6844f98fb3a8bce2f36adf02429">Update</a>();</div>
+<div class="line"><a name="l01423"></a><span class="lineno"> 1423</span>&#160;    }</div>
+<div class="line"><a name="l01424"></a><span class="lineno"> 1424</span>&#160; </div>
+<div class="line"><a name="l01425"></a><span class="lineno"> 1425</span>&#160;    <a class="code" href="classolc_1_1_decal.html#a5479fee995f05355026dafd8cadcac88">Decal::Decal</a>(<span class="keyword">const</span> uint32_t nExistingTextureResource, <a class="code" href="classolc_1_1_sprite.html">olc::Sprite</a>* spr)</div>
+<div class="line"><a name="l01426"></a><span class="lineno"> 1426</span>&#160;    {</div>
+<div class="line"><a name="l01427"></a><span class="lineno"> 1427</span>&#160;        <span class="keywordflow">if</span> (spr == <span class="keyword">nullptr</span>) <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l01428"></a><span class="lineno"> 1428</span>&#160;        <span class="keywordtype">id</span> = nExistingTextureResource;</div>
+<div class="line"><a name="l01429"></a><span class="lineno"> 1429</span>&#160;    }</div>
+<div class="line"><a name="l01430"></a><span class="lineno"> 1430</span>&#160; </div>
+<div class="line"><a name="l01431"></a><span class="lineno"> 1431</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_decal.html#aac5ad6844f98fb3a8bce2f36adf02429">Decal::Update</a>()</div>
+<div class="line"><a name="l01432"></a><span class="lineno"> 1432</span>&#160;    {</div>
+<div class="line"><a name="l01433"></a><span class="lineno"> 1433</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="classolc_1_1_decal.html#a93a1e2ae28aa587978e2a66b6328d66a">sprite</a> == <span class="keyword">nullptr</span>) <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l01434"></a><span class="lineno"> 1434</span>&#160;        <a class="code" href="classolc_1_1_decal.html#aff06190e3ca17446d373d5a93a3636c7">vUVScale</a> = { 1.0f / float(<a class="code" href="classolc_1_1_decal.html#a93a1e2ae28aa587978e2a66b6328d66a">sprite</a>-&gt;<a class="code" href="classolc_1_1_sprite.html#af055800e63204ae372ca0812e6926230">width</a>), 1.0f / float(<a class="code" href="classolc_1_1_decal.html#a93a1e2ae28aa587978e2a66b6328d66a">sprite</a>-&gt;<a class="code" href="classolc_1_1_sprite.html#ab05010cb1a5ff6c36267d0050d568d96">height</a>) };</div>
+<div class="line"><a name="l01435"></a><span class="lineno"> 1435</span>&#160;        renderer-&gt;ApplyTexture(<span class="keywordtype">id</span>);</div>
+<div class="line"><a name="l01436"></a><span class="lineno"> 1436</span>&#160;        renderer-&gt;UpdateTexture(<span class="keywordtype">id</span>, <a class="code" href="classolc_1_1_decal.html#a93a1e2ae28aa587978e2a66b6328d66a">sprite</a>);</div>
+<div class="line"><a name="l01437"></a><span class="lineno"> 1437</span>&#160;    }</div>
+<div class="line"><a name="l01438"></a><span class="lineno"> 1438</span>&#160; </div>
+<div class="line"><a name="l01439"></a><span class="lineno"> 1439</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_decal.html#a4a3b893edbce4d416453f57c11754092">Decal::UpdateSprite</a>()</div>
+<div class="line"><a name="l01440"></a><span class="lineno"> 1440</span>&#160;    {</div>
+<div class="line"><a name="l01441"></a><span class="lineno"> 1441</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="classolc_1_1_decal.html#a93a1e2ae28aa587978e2a66b6328d66a">sprite</a> == <span class="keyword">nullptr</span>) <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l01442"></a><span class="lineno"> 1442</span>&#160;        renderer-&gt;ApplyTexture(<span class="keywordtype">id</span>);</div>
+<div class="line"><a name="l01443"></a><span class="lineno"> 1443</span>&#160;        renderer-&gt;ReadTexture(<span class="keywordtype">id</span>, <a class="code" href="classolc_1_1_decal.html#a93a1e2ae28aa587978e2a66b6328d66a">sprite</a>);</div>
+<div class="line"><a name="l01444"></a><span class="lineno"> 1444</span>&#160;    }</div>
+<div class="line"><a name="l01445"></a><span class="lineno"> 1445</span>&#160; </div>
+<div class="line"><a name="l01446"></a><span class="lineno"> 1446</span>&#160;    <a class="code" href="classolc_1_1_decal.html#a5c993dab5be43270dce30b44f1d3e50b">Decal::~Decal</a>()</div>
+<div class="line"><a name="l01447"></a><span class="lineno"> 1447</span>&#160;    {</div>
+<div class="line"><a name="l01448"></a><span class="lineno"> 1448</span>&#160;        <span class="keywordflow">if</span> (<span class="keywordtype">id</span> != -1)</div>
+<div class="line"><a name="l01449"></a><span class="lineno"> 1449</span>&#160;        {</div>
+<div class="line"><a name="l01450"></a><span class="lineno"> 1450</span>&#160;            renderer-&gt;DeleteTexture(<span class="keywordtype">id</span>);</div>
+<div class="line"><a name="l01451"></a><span class="lineno"> 1451</span>&#160;            <span class="keywordtype">id</span> = -1;</div>
+<div class="line"><a name="l01452"></a><span class="lineno"> 1452</span>&#160;        }</div>
+<div class="line"><a name="l01453"></a><span class="lineno"> 1453</span>&#160;    }</div>
+<div class="line"><a name="l01454"></a><span class="lineno"> 1454</span>&#160; </div>
+<div class="line"><a name="l01455"></a><span class="lineno"> 1455</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_renderable.html#ab15a4441be7b48519d55296e416976fd">Renderable::Create</a>(uint32_t width, uint32_t height, <span class="keywordtype">bool</span> filter, <span class="keywordtype">bool</span> clamp)</div>
+<div class="line"><a name="l01456"></a><span class="lineno"> 1456</span>&#160;    {</div>
+<div class="line"><a name="l01457"></a><span class="lineno"> 1457</span>&#160;        pSprite = std::make_unique&lt;olc::Sprite&gt;(width, height);</div>
+<div class="line"><a name="l01458"></a><span class="lineno"> 1458</span>&#160;        pDecal = std::make_unique&lt;olc::Decal&gt;(pSprite.get(), filter, clamp);</div>
+<div class="line"><a name="l01459"></a><span class="lineno"> 1459</span>&#160;    }</div>
+<div class="line"><a name="l01460"></a><span class="lineno"> 1460</span>&#160; </div>
+<div class="line"><a name="l01461"></a><span class="lineno"> 1461</span>&#160;    <a class="code" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87b">olc::rcode</a> <a class="code" href="classolc_1_1_renderable.html#ace5d212d903d86bc9789f1af0f92096c">Renderable::Load</a>(<span class="keyword">const</span> std::string&amp; sFile, ResourcePack* pack, <span class="keywordtype">bool</span> filter, <span class="keywordtype">bool</span> clamp)</div>
+<div class="line"><a name="l01462"></a><span class="lineno"> 1462</span>&#160;    {</div>
+<div class="line"><a name="l01463"></a><span class="lineno"> 1463</span>&#160;        pSprite = std::make_unique&lt;olc::Sprite&gt;();</div>
+<div class="line"><a name="l01464"></a><span class="lineno"> 1464</span>&#160;        <span class="keywordflow">if</span> (pSprite-&gt;LoadFromFile(sFile, pack) == <a class="code" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87ba0178b5f8abe39121e6f14d3c6c093a82">olc::rcode::OK</a>)</div>
+<div class="line"><a name="l01465"></a><span class="lineno"> 1465</span>&#160;        {</div>
+<div class="line"><a name="l01466"></a><span class="lineno"> 1466</span>&#160;            pDecal = std::make_unique&lt;olc::Decal&gt;(pSprite.get(), filter, clamp);</div>
+<div class="line"><a name="l01467"></a><span class="lineno"> 1467</span>&#160;            <span class="keywordflow">return</span> <a class="code" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87ba0178b5f8abe39121e6f14d3c6c093a82">olc::rcode::OK</a>;</div>
+<div class="line"><a name="l01468"></a><span class="lineno"> 1468</span>&#160;        }</div>
+<div class="line"><a name="l01469"></a><span class="lineno"> 1469</span>&#160;        <span class="keywordflow">else</span></div>
+<div class="line"><a name="l01470"></a><span class="lineno"> 1470</span>&#160;        {</div>
+<div class="line"><a name="l01471"></a><span class="lineno"> 1471</span>&#160;            pSprite.release();</div>
+<div class="line"><a name="l01472"></a><span class="lineno"> 1472</span>&#160;            pSprite = <span class="keyword">nullptr</span>;</div>
+<div class="line"><a name="l01473"></a><span class="lineno"> 1473</span>&#160;            <span class="keywordflow">return</span> <a class="code" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87babfe0b9ad99c942b01b1ee61404f559b5">olc::rcode::NO_FILE</a>;</div>
+<div class="line"><a name="l01474"></a><span class="lineno"> 1474</span>&#160;        }</div>
+<div class="line"><a name="l01475"></a><span class="lineno"> 1475</span>&#160;    }</div>
+<div class="line"><a name="l01476"></a><span class="lineno"> 1476</span>&#160; </div>
+<div class="line"><a name="l01477"></a><span class="lineno"> 1477</span>&#160;    <a class="code" href="classolc_1_1_decal.html">olc::Decal</a>* <a class="code" href="classolc_1_1_renderable.html#af6e5a2d5a46fe4f475c67ca5ab1b1f5d">Renderable::Decal</a>()<span class="keyword"> const</span></div>
+<div class="line"><a name="l01478"></a><span class="lineno"> 1478</span>&#160;<span class="keyword">    </span>{ <span class="keywordflow">return</span> pDecal.get(); }</div>
+<div class="line"><a name="l01479"></a><span class="lineno"> 1479</span>&#160; </div>
+<div class="line"><a name="l01480"></a><span class="lineno"> 1480</span>&#160;    <a class="code" href="classolc_1_1_sprite.html">olc::Sprite</a>* <a class="code" href="classolc_1_1_renderable.html#a8128a49bae0a3b40a5681d92cc01f52a">Renderable::Sprite</a>()<span class="keyword"> const</span></div>
+<div class="line"><a name="l01481"></a><span class="lineno"> 1481</span>&#160;<span class="keyword">    </span>{ <span class="keywordflow">return</span> pSprite.get(); }</div>
+<div class="line"><a name="l01482"></a><span class="lineno"> 1482</span>&#160; </div>
+<div class="line"><a name="l01483"></a><span class="lineno"> 1483</span>&#160;    <span class="comment">// O------------------------------------------------------------------------------O</span></div>
+<div class="line"><a name="l01484"></a><span class="lineno"> 1484</span>&#160;    <span class="comment">// | olc::ResourcePack IMPLEMENTATION                                             |</span></div>
+<div class="line"><a name="l01485"></a><span class="lineno"> 1485</span>&#160;    <span class="comment">// O------------------------------------------------------------------------------O</span></div>
+<div class="line"><a name="l01486"></a><span class="lineno"> 1486</span>&#160; </div>
+<div class="line"><a name="l01487"></a><span class="lineno"> 1487</span>&#160; </div>
+<div class="line"><a name="l01488"></a><span class="lineno"> 1488</span>&#160;    <span class="comment">//=============================================================</span></div>
+<div class="line"><a name="l01489"></a><span class="lineno"> 1489</span>&#160;    <span class="comment">// Resource Packs - Allows you to store files in one large </span></div>
+<div class="line"><a name="l01490"></a><span class="lineno"> 1490</span>&#160;    <span class="comment">// scrambled file - Thanks MaGetzUb for debugging a null char in std::stringstream bug</span></div>
+<div class="line"><a name="l01491"></a><span class="lineno"> 1491</span>&#160;    <a class="code" href="structolc_1_1_resource_buffer.html#abd18994c20cc7992ff7ccb07af9914e7">ResourceBuffer::ResourceBuffer</a>(std::ifstream&amp; ifs, uint32_t offset, uint32_t size)</div>
+<div class="line"><a name="l01492"></a><span class="lineno"> 1492</span>&#160;    {</div>
+<div class="line"><a name="l01493"></a><span class="lineno"> 1493</span>&#160;        <a class="code" href="structolc_1_1_resource_buffer.html#a413e818311737396d14838a00df05303">vMemory</a>.resize(size);</div>
+<div class="line"><a name="l01494"></a><span class="lineno"> 1494</span>&#160;        ifs.seekg(offset); ifs.read(<a class="code" href="structolc_1_1_resource_buffer.html#a413e818311737396d14838a00df05303">vMemory</a>.data(), <a class="code" href="structolc_1_1_resource_buffer.html#a413e818311737396d14838a00df05303">vMemory</a>.size());</div>
+<div class="line"><a name="l01495"></a><span class="lineno"> 1495</span>&#160;        setg(<a class="code" href="structolc_1_1_resource_buffer.html#a413e818311737396d14838a00df05303">vMemory</a>.data(), <a class="code" href="structolc_1_1_resource_buffer.html#a413e818311737396d14838a00df05303">vMemory</a>.data(), <a class="code" href="structolc_1_1_resource_buffer.html#a413e818311737396d14838a00df05303">vMemory</a>.data() + size);</div>
+<div class="line"><a name="l01496"></a><span class="lineno"> 1496</span>&#160;    }</div>
+<div class="line"><a name="l01497"></a><span class="lineno"> 1497</span>&#160; </div>
+<div class="line"><a name="l01498"></a><span class="lineno"> 1498</span>&#160;    <a class="code" href="classolc_1_1_resource_pack.html#af5b7f93e4fb4e8b899da50985b689083">ResourcePack::ResourcePack</a>() { }</div>
+<div class="line"><a name="l01499"></a><span class="lineno"> 1499</span>&#160;    <a class="code" href="classolc_1_1_resource_pack.html#a7e48d44ecdac3d4a2eec7bb5a5eb1ec5">ResourcePack::~ResourcePack</a>() { baseFile.close(); }</div>
+<div class="line"><a name="l01500"></a><span class="lineno"> 1500</span>&#160; </div>
+<div class="line"><a name="l01501"></a><span class="lineno"> 1501</span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="classolc_1_1_resource_pack.html#a56eebc321c66215d15df1390b1080c66">ResourcePack::AddFile</a>(<span class="keyword">const</span> std::string&amp; sFile)</div>
+<div class="line"><a name="l01502"></a><span class="lineno"> 1502</span>&#160;    {</div>
+<div class="line"><a name="l01503"></a><span class="lineno"> 1503</span>&#160;        <span class="keyword">const</span> std::string file = makeposix(sFile);</div>
+<div class="line"><a name="l01504"></a><span class="lineno"> 1504</span>&#160; </div>
+<div class="line"><a name="l01505"></a><span class="lineno"> 1505</span>&#160;        <span class="keywordflow">if</span> (_gfs::exists(file))</div>
+<div class="line"><a name="l01506"></a><span class="lineno"> 1506</span>&#160;        {</div>
+<div class="line"><a name="l01507"></a><span class="lineno"> 1507</span>&#160;            sResourceFile e;</div>
+<div class="line"><a name="l01508"></a><span class="lineno"> 1508</span>&#160;            e.nSize = (uint32_t)_gfs::file_size(file);</div>
+<div class="line"><a name="l01509"></a><span class="lineno"> 1509</span>&#160;            e.nOffset = 0; <span class="comment">// Unknown at this stage         </span></div>
+<div class="line"><a name="l01510"></a><span class="lineno"> 1510</span>&#160;            mapFiles[file] = e;</div>
+<div class="line"><a name="l01511"></a><span class="lineno"> 1511</span>&#160;            <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l01512"></a><span class="lineno"> 1512</span>&#160;        }</div>
+<div class="line"><a name="l01513"></a><span class="lineno"> 1513</span>&#160;        <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l01514"></a><span class="lineno"> 1514</span>&#160;    }</div>
+<div class="line"><a name="l01515"></a><span class="lineno"> 1515</span>&#160; </div>
+<div class="line"><a name="l01516"></a><span class="lineno"> 1516</span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="classolc_1_1_resource_pack.html#a3168eef974448f8119e93af97272df27">ResourcePack::LoadPack</a>(<span class="keyword">const</span> std::string&amp; sFile, <span class="keyword">const</span> std::string&amp; sKey)</div>
+<div class="line"><a name="l01517"></a><span class="lineno"> 1517</span>&#160;    {</div>
+<div class="line"><a name="l01518"></a><span class="lineno"> 1518</span>&#160;        <span class="comment">// Open the resource file</span></div>
+<div class="line"><a name="l01519"></a><span class="lineno"> 1519</span>&#160;        baseFile.open(sFile, std::ifstream::binary);</div>
+<div class="line"><a name="l01520"></a><span class="lineno"> 1520</span>&#160;        <span class="keywordflow">if</span> (!baseFile.is_open()) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l01521"></a><span class="lineno"> 1521</span>&#160; </div>
+<div class="line"><a name="l01522"></a><span class="lineno"> 1522</span>&#160;        <span class="comment">// 1) Read Scrambled index</span></div>
+<div class="line"><a name="l01523"></a><span class="lineno"> 1523</span>&#160;        uint32_t nIndexSize = 0;</div>
+<div class="line"><a name="l01524"></a><span class="lineno"> 1524</span>&#160;        baseFile.read((<span class="keywordtype">char</span>*)&amp;nIndexSize, <span class="keyword">sizeof</span>(uint32_t));</div>
+<div class="line"><a name="l01525"></a><span class="lineno"> 1525</span>&#160; </div>
+<div class="line"><a name="l01526"></a><span class="lineno"> 1526</span>&#160;        std::vector&lt;char&gt; buffer(nIndexSize);</div>
+<div class="line"><a name="l01527"></a><span class="lineno"> 1527</span>&#160;        <span class="keywordflow">for</span> (uint32_t j = 0; j &lt; nIndexSize; j++)</div>
+<div class="line"><a name="l01528"></a><span class="lineno"> 1528</span>&#160;            buffer[j] = baseFile.get();</div>
+<div class="line"><a name="l01529"></a><span class="lineno"> 1529</span>&#160; </div>
+<div class="line"><a name="l01530"></a><span class="lineno"> 1530</span>&#160;        std::vector&lt;char&gt; decoded = scramble(buffer, sKey);</div>
+<div class="line"><a name="l01531"></a><span class="lineno"> 1531</span>&#160;        <span class="keywordtype">size_t</span> pos = 0;</div>
+<div class="line"><a name="l01532"></a><span class="lineno"> 1532</span>&#160;        <span class="keyword">auto</span> read = [&amp;decoded, &amp;pos](<span class="keywordtype">char</span>* dst, <span class="keywordtype">size_t</span> size) {</div>
+<div class="line"><a name="l01533"></a><span class="lineno"> 1533</span>&#160;            memcpy((<span class="keywordtype">void</span>*)dst, (<span class="keyword">const</span> <span class="keywordtype">void</span>*)(decoded.data() + pos), size);</div>
+<div class="line"><a name="l01534"></a><span class="lineno"> 1534</span>&#160;            pos += size;</div>
+<div class="line"><a name="l01535"></a><span class="lineno"> 1535</span>&#160;        };</div>
+<div class="line"><a name="l01536"></a><span class="lineno"> 1536</span>&#160; </div>
+<div class="line"><a name="l01537"></a><span class="lineno"> 1537</span>&#160;        <span class="keyword">auto</span> get = [&amp;read]() -&gt; <span class="keywordtype">int</span> { <span class="keywordtype">char</span> c; read(&amp;c, 1); <span class="keywordflow">return</span> c; };</div>
+<div class="line"><a name="l01538"></a><span class="lineno"> 1538</span>&#160; </div>
+<div class="line"><a name="l01539"></a><span class="lineno"> 1539</span>&#160;        <span class="comment">// 2) Read Map</span></div>
+<div class="line"><a name="l01540"></a><span class="lineno"> 1540</span>&#160;        uint32_t nMapEntries = 0;</div>
+<div class="line"><a name="l01541"></a><span class="lineno"> 1541</span>&#160;        read((<span class="keywordtype">char</span>*)&amp;nMapEntries, <span class="keyword">sizeof</span>(uint32_t));</div>
+<div class="line"><a name="l01542"></a><span class="lineno"> 1542</span>&#160;        <span class="keywordflow">for</span> (uint32_t i = 0; i &lt; nMapEntries; i++)</div>
+<div class="line"><a name="l01543"></a><span class="lineno"> 1543</span>&#160;        {</div>
+<div class="line"><a name="l01544"></a><span class="lineno"> 1544</span>&#160;            uint32_t nFilePathSize = 0;</div>
+<div class="line"><a name="l01545"></a><span class="lineno"> 1545</span>&#160;            read((<span class="keywordtype">char</span>*)&amp;nFilePathSize, <span class="keyword">sizeof</span>(uint32_t));</div>
+<div class="line"><a name="l01546"></a><span class="lineno"> 1546</span>&#160; </div>
+<div class="line"><a name="l01547"></a><span class="lineno"> 1547</span>&#160;            std::string sFileName(nFilePathSize, <span class="charliteral">&#39; &#39;</span>);</div>
+<div class="line"><a name="l01548"></a><span class="lineno"> 1548</span>&#160;            <span class="keywordflow">for</span> (uint32_t j = 0; j &lt; nFilePathSize; j++)</div>
+<div class="line"><a name="l01549"></a><span class="lineno"> 1549</span>&#160;                sFileName[j] = get();</div>
+<div class="line"><a name="l01550"></a><span class="lineno"> 1550</span>&#160; </div>
+<div class="line"><a name="l01551"></a><span class="lineno"> 1551</span>&#160;            sResourceFile e;</div>
+<div class="line"><a name="l01552"></a><span class="lineno"> 1552</span>&#160;            read((<span class="keywordtype">char</span>*)&amp;e.nSize, <span class="keyword">sizeof</span>(uint32_t));</div>
+<div class="line"><a name="l01553"></a><span class="lineno"> 1553</span>&#160;            read((<span class="keywordtype">char</span>*)&amp;e.nOffset, <span class="keyword">sizeof</span>(uint32_t));</div>
+<div class="line"><a name="l01554"></a><span class="lineno"> 1554</span>&#160;            mapFiles[sFileName] = e;</div>
+<div class="line"><a name="l01555"></a><span class="lineno"> 1555</span>&#160;        }</div>
+<div class="line"><a name="l01556"></a><span class="lineno"> 1556</span>&#160; </div>
+<div class="line"><a name="l01557"></a><span class="lineno"> 1557</span>&#160;        <span class="comment">// Don&#39;t close base file! we will provide a stream</span></div>
+<div class="line"><a name="l01558"></a><span class="lineno"> 1558</span>&#160;        <span class="comment">// pointer when the file is requested</span></div>
+<div class="line"><a name="l01559"></a><span class="lineno"> 1559</span>&#160;        <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l01560"></a><span class="lineno"> 1560</span>&#160;    }</div>
+<div class="line"><a name="l01561"></a><span class="lineno"> 1561</span>&#160; </div>
+<div class="line"><a name="l01562"></a><span class="lineno"> 1562</span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="classolc_1_1_resource_pack.html#af6b1fec791c3c85b51b565db63a1aa9a">ResourcePack::SavePack</a>(<span class="keyword">const</span> std::string&amp; sFile, <span class="keyword">const</span> std::string&amp; sKey)</div>
+<div class="line"><a name="l01563"></a><span class="lineno"> 1563</span>&#160;    {</div>
+<div class="line"><a name="l01564"></a><span class="lineno"> 1564</span>&#160;        <span class="comment">// Create/Overwrite the resource file</span></div>
+<div class="line"><a name="l01565"></a><span class="lineno"> 1565</span>&#160;        std::ofstream ofs(sFile, std::ofstream::binary);</div>
+<div class="line"><a name="l01566"></a><span class="lineno"> 1566</span>&#160;        <span class="keywordflow">if</span> (!ofs.is_open()) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l01567"></a><span class="lineno"> 1567</span>&#160; </div>
+<div class="line"><a name="l01568"></a><span class="lineno"> 1568</span>&#160;        <span class="comment">// Iterate through map</span></div>
+<div class="line"><a name="l01569"></a><span class="lineno"> 1569</span>&#160;        uint32_t nIndexSize = 0; <span class="comment">// Unknown for now</span></div>
+<div class="line"><a name="l01570"></a><span class="lineno"> 1570</span>&#160;        ofs.write((<span class="keywordtype">char</span>*)&amp;nIndexSize, <span class="keyword">sizeof</span>(uint32_t));</div>
+<div class="line"><a name="l01571"></a><span class="lineno"> 1571</span>&#160;        uint32_t nMapSize = uint32_t(mapFiles.size());</div>
+<div class="line"><a name="l01572"></a><span class="lineno"> 1572</span>&#160;        ofs.write((<span class="keywordtype">char</span>*)&amp;nMapSize, <span class="keyword">sizeof</span>(uint32_t));</div>
+<div class="line"><a name="l01573"></a><span class="lineno"> 1573</span>&#160;        <span class="keywordflow">for</span> (<span class="keyword">auto</span>&amp; e : mapFiles)</div>
+<div class="line"><a name="l01574"></a><span class="lineno"> 1574</span>&#160;        {</div>
+<div class="line"><a name="l01575"></a><span class="lineno"> 1575</span>&#160;            <span class="comment">// Write the path of the file</span></div>
+<div class="line"><a name="l01576"></a><span class="lineno"> 1576</span>&#160;            <span class="keywordtype">size_t</span> nPathSize = e.first.size();</div>
+<div class="line"><a name="l01577"></a><span class="lineno"> 1577</span>&#160;            ofs.write((<span class="keywordtype">char</span>*)&amp;nPathSize, <span class="keyword">sizeof</span>(uint32_t));</div>
+<div class="line"><a name="l01578"></a><span class="lineno"> 1578</span>&#160;            ofs.write(e.first.c_str(), nPathSize);</div>
+<div class="line"><a name="l01579"></a><span class="lineno"> 1579</span>&#160; </div>
+<div class="line"><a name="l01580"></a><span class="lineno"> 1580</span>&#160;            <span class="comment">// Write the file entry properties</span></div>
+<div class="line"><a name="l01581"></a><span class="lineno"> 1581</span>&#160;            ofs.write((<span class="keywordtype">char</span>*)&amp;e.second.nSize, <span class="keyword">sizeof</span>(uint32_t));</div>
+<div class="line"><a name="l01582"></a><span class="lineno"> 1582</span>&#160;            ofs.write((<span class="keywordtype">char</span>*)&amp;e.second.nOffset, <span class="keyword">sizeof</span>(uint32_t));</div>
+<div class="line"><a name="l01583"></a><span class="lineno"> 1583</span>&#160;        }</div>
+<div class="line"><a name="l01584"></a><span class="lineno"> 1584</span>&#160; </div>
+<div class="line"><a name="l01585"></a><span class="lineno"> 1585</span>&#160;        <span class="comment">// 2) Write the individual Data</span></div>
+<div class="line"><a name="l01586"></a><span class="lineno"> 1586</span>&#160;        std::streampos offset = ofs.tellp();</div>
+<div class="line"><a name="l01587"></a><span class="lineno"> 1587</span>&#160;        nIndexSize = (uint32_t)offset;</div>
+<div class="line"><a name="l01588"></a><span class="lineno"> 1588</span>&#160;        <span class="keywordflow">for</span> (<span class="keyword">auto</span>&amp; e : mapFiles)</div>
+<div class="line"><a name="l01589"></a><span class="lineno"> 1589</span>&#160;        {</div>
+<div class="line"><a name="l01590"></a><span class="lineno"> 1590</span>&#160;            <span class="comment">// Store beginning of file offset within resource pack file</span></div>
+<div class="line"><a name="l01591"></a><span class="lineno"> 1591</span>&#160;            e.second.nOffset = (uint32_t)offset;</div>
+<div class="line"><a name="l01592"></a><span class="lineno"> 1592</span>&#160; </div>
+<div class="line"><a name="l01593"></a><span class="lineno"> 1593</span>&#160;            <span class="comment">// Load the file to be added</span></div>
+<div class="line"><a name="l01594"></a><span class="lineno"> 1594</span>&#160;            std::vector&lt;uint8_t&gt; vBuffer(e.second.nSize);</div>
+<div class="line"><a name="l01595"></a><span class="lineno"> 1595</span>&#160;            std::ifstream i(e.first, std::ifstream::binary);</div>
+<div class="line"><a name="l01596"></a><span class="lineno"> 1596</span>&#160;            i.read((<span class="keywordtype">char</span>*)vBuffer.data(), e.second.nSize);</div>
+<div class="line"><a name="l01597"></a><span class="lineno"> 1597</span>&#160;            i.close();</div>
+<div class="line"><a name="l01598"></a><span class="lineno"> 1598</span>&#160; </div>
+<div class="line"><a name="l01599"></a><span class="lineno"> 1599</span>&#160;            <span class="comment">// Write the loaded file into resource pack file</span></div>
+<div class="line"><a name="l01600"></a><span class="lineno"> 1600</span>&#160;            ofs.write((<span class="keywordtype">char</span>*)vBuffer.data(), e.second.nSize);</div>
+<div class="line"><a name="l01601"></a><span class="lineno"> 1601</span>&#160;            offset += e.second.nSize;</div>
+<div class="line"><a name="l01602"></a><span class="lineno"> 1602</span>&#160;        }</div>
+<div class="line"><a name="l01603"></a><span class="lineno"> 1603</span>&#160; </div>
+<div class="line"><a name="l01604"></a><span class="lineno"> 1604</span>&#160;        <span class="comment">// 3) Scramble Index</span></div>
+<div class="line"><a name="l01605"></a><span class="lineno"> 1605</span>&#160;        std::vector&lt;char&gt; stream;</div>
+<div class="line"><a name="l01606"></a><span class="lineno"> 1606</span>&#160;        <span class="keyword">auto</span> write = [&amp;stream](<span class="keyword">const</span> <span class="keywordtype">char</span>* data, <span class="keywordtype">size_t</span> size) {</div>
+<div class="line"><a name="l01607"></a><span class="lineno"> 1607</span>&#160;            <span class="keywordtype">size_t</span> sizeNow = stream.size();</div>
+<div class="line"><a name="l01608"></a><span class="lineno"> 1608</span>&#160;            stream.resize(sizeNow + size);</div>
+<div class="line"><a name="l01609"></a><span class="lineno"> 1609</span>&#160;            memcpy(stream.data() + sizeNow, data, size);</div>
+<div class="line"><a name="l01610"></a><span class="lineno"> 1610</span>&#160;        };</div>
+<div class="line"><a name="l01611"></a><span class="lineno"> 1611</span>&#160; </div>
+<div class="line"><a name="l01612"></a><span class="lineno"> 1612</span>&#160;        <span class="comment">// Iterate through map</span></div>
+<div class="line"><a name="l01613"></a><span class="lineno"> 1613</span>&#160;        write((<span class="keywordtype">char</span>*)&amp;nMapSize, <span class="keyword">sizeof</span>(uint32_t));</div>
+<div class="line"><a name="l01614"></a><span class="lineno"> 1614</span>&#160;        <span class="keywordflow">for</span> (<span class="keyword">auto</span>&amp; e : mapFiles)</div>
+<div class="line"><a name="l01615"></a><span class="lineno"> 1615</span>&#160;        {</div>
+<div class="line"><a name="l01616"></a><span class="lineno"> 1616</span>&#160;            <span class="comment">// Write the path of the file</span></div>
+<div class="line"><a name="l01617"></a><span class="lineno"> 1617</span>&#160;            <span class="keywordtype">size_t</span> nPathSize = e.first.size();</div>
+<div class="line"><a name="l01618"></a><span class="lineno"> 1618</span>&#160;            write((<span class="keywordtype">char</span>*)&amp;nPathSize, <span class="keyword">sizeof</span>(uint32_t));</div>
+<div class="line"><a name="l01619"></a><span class="lineno"> 1619</span>&#160;            write(e.first.c_str(), nPathSize);</div>
+<div class="line"><a name="l01620"></a><span class="lineno"> 1620</span>&#160; </div>
+<div class="line"><a name="l01621"></a><span class="lineno"> 1621</span>&#160;            <span class="comment">// Write the file entry properties</span></div>
+<div class="line"><a name="l01622"></a><span class="lineno"> 1622</span>&#160;            write((<span class="keywordtype">char</span>*)&amp;e.second.nSize, <span class="keyword">sizeof</span>(uint32_t));</div>
+<div class="line"><a name="l01623"></a><span class="lineno"> 1623</span>&#160;            write((<span class="keywordtype">char</span>*)&amp;e.second.nOffset, <span class="keyword">sizeof</span>(uint32_t));</div>
+<div class="line"><a name="l01624"></a><span class="lineno"> 1624</span>&#160;        }</div>
+<div class="line"><a name="l01625"></a><span class="lineno"> 1625</span>&#160;        std::vector&lt;char&gt; sIndexString = scramble(stream, sKey);</div>
+<div class="line"><a name="l01626"></a><span class="lineno"> 1626</span>&#160;        uint32_t nIndexStringLen = uint32_t(sIndexString.size());</div>
+<div class="line"><a name="l01627"></a><span class="lineno"> 1627</span>&#160;        <span class="comment">// 4) Rewrite Map (it has been updated with offsets now)</span></div>
+<div class="line"><a name="l01628"></a><span class="lineno"> 1628</span>&#160;        <span class="comment">// at start of file</span></div>
+<div class="line"><a name="l01629"></a><span class="lineno"> 1629</span>&#160;        ofs.seekp(0, std::ios::beg);</div>
+<div class="line"><a name="l01630"></a><span class="lineno"> 1630</span>&#160;        ofs.write((<span class="keywordtype">char</span>*)&amp;nIndexStringLen, <span class="keyword">sizeof</span>(uint32_t));</div>
+<div class="line"><a name="l01631"></a><span class="lineno"> 1631</span>&#160;        ofs.write(sIndexString.data(), nIndexStringLen);</div>
+<div class="line"><a name="l01632"></a><span class="lineno"> 1632</span>&#160;        ofs.close();</div>
+<div class="line"><a name="l01633"></a><span class="lineno"> 1633</span>&#160;        <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l01634"></a><span class="lineno"> 1634</span>&#160;    }</div>
+<div class="line"><a name="l01635"></a><span class="lineno"> 1635</span>&#160; </div>
+<div class="line"><a name="l01636"></a><span class="lineno"> 1636</span>&#160;    ResourceBuffer <a class="code" href="classolc_1_1_resource_pack.html#accb89668e145dc59e0740925b1b91987">ResourcePack::GetFileBuffer</a>(<span class="keyword">const</span> std::string&amp; sFile)</div>
+<div class="line"><a name="l01637"></a><span class="lineno"> 1637</span>&#160;    { <span class="keywordflow">return</span> ResourceBuffer(baseFile, mapFiles[sFile].nOffset, mapFiles[sFile].nSize); }</div>
+<div class="line"><a name="l01638"></a><span class="lineno"> 1638</span>&#160; </div>
+<div class="line"><a name="l01639"></a><span class="lineno"> 1639</span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="classolc_1_1_resource_pack.html#a4421c33c022ad042d29ef81f29f5b355">ResourcePack::Loaded</a>()</div>
+<div class="line"><a name="l01640"></a><span class="lineno"> 1640</span>&#160;    { <span class="keywordflow">return</span> baseFile.is_open(); }</div>
+<div class="line"><a name="l01641"></a><span class="lineno"> 1641</span>&#160; </div>
+<div class="line"><a name="l01642"></a><span class="lineno"> 1642</span>&#160;    std::vector&lt;char&gt; ResourcePack::scramble(<span class="keyword">const</span> std::vector&lt;char&gt;&amp; data, <span class="keyword">const</span> std::string&amp; key)</div>
+<div class="line"><a name="l01643"></a><span class="lineno"> 1643</span>&#160;    {</div>
+<div class="line"><a name="l01644"></a><span class="lineno"> 1644</span>&#160;        <span class="keywordflow">if</span> (key.empty()) <span class="keywordflow">return</span> data;</div>
+<div class="line"><a name="l01645"></a><span class="lineno"> 1645</span>&#160;        std::vector&lt;char&gt; o;</div>
+<div class="line"><a name="l01646"></a><span class="lineno"> 1646</span>&#160;        <span class="keywordtype">size_t</span> c = 0;</div>
+<div class="line"><a name="l01647"></a><span class="lineno"> 1647</span>&#160;        <span class="keywordflow">for</span> (<span class="keyword">auto</span> s : data) o.push_back(s ^ key[(c++) % key.size()]);</div>
+<div class="line"><a name="l01648"></a><span class="lineno"> 1648</span>&#160;        <span class="keywordflow">return</span> o;</div>
+<div class="line"><a name="l01649"></a><span class="lineno"> 1649</span>&#160;    };</div>
+<div class="line"><a name="l01650"></a><span class="lineno"> 1650</span>&#160; </div>
+<div class="line"><a name="l01651"></a><span class="lineno"> 1651</span>&#160;    std::string ResourcePack::makeposix(<span class="keyword">const</span> std::string&amp; path)</div>
+<div class="line"><a name="l01652"></a><span class="lineno"> 1652</span>&#160;    {</div>
+<div class="line"><a name="l01653"></a><span class="lineno"> 1653</span>&#160;        std::string o;</div>
+<div class="line"><a name="l01654"></a><span class="lineno"> 1654</span>&#160;        <span class="keywordflow">for</span> (<span class="keyword">auto</span> s : path) o += std::string(1, s == <span class="charliteral">&#39;\\&#39;</span> ? <span class="charliteral">&#39;/&#39;</span> : s);</div>
+<div class="line"><a name="l01655"></a><span class="lineno"> 1655</span>&#160;        <span class="keywordflow">return</span> o;</div>
+<div class="line"><a name="l01656"></a><span class="lineno"> 1656</span>&#160;    };</div>
+<div class="line"><a name="l01657"></a><span class="lineno"> 1657</span>&#160; </div>
+<div class="line"><a name="l01658"></a><span class="lineno"> 1658</span>&#160;    <span class="comment">// O------------------------------------------------------------------------------O</span></div>
+<div class="line"><a name="l01659"></a><span class="lineno"> 1659</span>&#160;    <span class="comment">// | olc::PixelGameEngine IMPLEMENTATION                                          |</span></div>
+<div class="line"><a name="l01660"></a><span class="lineno"> 1660</span>&#160;    <span class="comment">// O------------------------------------------------------------------------------O</span></div>
+<div class="line"><a name="l01661"></a><span class="lineno"> 1661</span>&#160;    <a class="code" href="classolc_1_1_pixel_game_engine.html#afe9d685732305246c3fcb361ae3c4bc6">PixelGameEngine::PixelGameEngine</a>()</div>
+<div class="line"><a name="l01662"></a><span class="lineno"> 1662</span>&#160;    {</div>
+<div class="line"><a name="l01663"></a><span class="lineno"> 1663</span>&#160;        <a class="code" href="classolc_1_1_pixel_game_engine.html#a02d0f9c50770aa38aea1448f62d3604f">sAppName</a> = <span class="stringliteral">&quot;Undefined&quot;</span>;</div>
+<div class="line"><a name="l01664"></a><span class="lineno"> 1664</span>&#160;        <a class="code" href="classolc_1_1_p_g_e_x.html#a032efdb84150a7cdd3cc9248860df316">olc::PGEX::pge</a> = <span class="keyword">this</span>;</div>
+<div class="line"><a name="l01665"></a><span class="lineno"> 1665</span>&#160; </div>
+<div class="line"><a name="l01666"></a><span class="lineno"> 1666</span>&#160;        <span class="comment">// Bring in relevant Platform &amp; Rendering systems depending</span></div>
+<div class="line"><a name="l01667"></a><span class="lineno"> 1667</span>&#160;        <span class="comment">// on compiler parameters</span></div>
+<div class="line"><a name="l01668"></a><span class="lineno"> 1668</span>&#160;        <a class="code" href="classolc_1_1_pixel_game_engine.html#a7afa0b57c65bd5d9a54c602afd4fe756">olc_ConfigureSystem</a>();</div>
+<div class="line"><a name="l01669"></a><span class="lineno"> 1669</span>&#160;    }</div>
+<div class="line"><a name="l01670"></a><span class="lineno"> 1670</span>&#160; </div>
+<div class="line"><a name="l01671"></a><span class="lineno"> 1671</span>&#160;    <a class="code" href="classolc_1_1_pixel_game_engine.html#a423d90134c297f7b9f1834a136071b19">PixelGameEngine::~PixelGameEngine</a>()</div>
+<div class="line"><a name="l01672"></a><span class="lineno"> 1672</span>&#160;    {}</div>
+<div class="line"><a name="l01673"></a><span class="lineno"> 1673</span>&#160; </div>
+<div class="line"><a name="l01674"></a><span class="lineno"> 1674</span>&#160; </div>
+<div class="line"><a name="l01675"></a><span class="lineno"> 1675</span>&#160;    <a class="code" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87b">olc::rcode</a> <a class="code" href="classolc_1_1_pixel_game_engine.html#af1a9cf3b38dda2071b7ec18868ee1ccd">PixelGameEngine::Construct</a>(int32_t screen_w, int32_t screen_h, int32_t pixel_w, int32_t pixel_h, <span class="keywordtype">bool</span> full_screen, <span class="keywordtype">bool</span> vsync, <span class="keywordtype">bool</span> cohesion)</div>
+<div class="line"><a name="l01676"></a><span class="lineno"> 1676</span>&#160;    {</div>
+<div class="line"><a name="l01677"></a><span class="lineno"> 1677</span>&#160;        bPixelCohesion = cohesion;</div>
+<div class="line"><a name="l01678"></a><span class="lineno"> 1678</span>&#160;        vScreenSize = { screen_w, screen_h };</div>
+<div class="line"><a name="l01679"></a><span class="lineno"> 1679</span>&#160;        vInvScreenSize = { 1.0f / float(screen_w), 1.0f / float(screen_h) };</div>
+<div class="line"><a name="l01680"></a><span class="lineno"> 1680</span>&#160;        vPixelSize = { pixel_w, pixel_h };</div>
+<div class="line"><a name="l01681"></a><span class="lineno"> 1681</span>&#160;        vWindowSize = vScreenSize * vPixelSize;</div>
+<div class="line"><a name="l01682"></a><span class="lineno"> 1682</span>&#160;        bFullScreen = full_screen;</div>
+<div class="line"><a name="l01683"></a><span class="lineno"> 1683</span>&#160;        bEnableVSYNC = vsync;</div>
+<div class="line"><a name="l01684"></a><span class="lineno"> 1684</span>&#160;        vPixel = 2.0f / vScreenSize;</div>
+<div class="line"><a name="l01685"></a><span class="lineno"> 1685</span>&#160; </div>
+<div class="line"><a name="l01686"></a><span class="lineno"> 1686</span>&#160;        <span class="keywordflow">if</span> (vPixelSize.x &lt;= 0 || vPixelSize.y &lt;= 0 || vScreenSize.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a> &lt;= 0 || vScreenSize.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a> &lt;= 0)</div>
+<div class="line"><a name="l01687"></a><span class="lineno"> 1687</span>&#160;            <span class="keywordflow">return</span> <a class="code" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87baadc8ac6e9769db5bb290fbf5f8284dbf">olc::FAIL</a>;</div>
+<div class="line"><a name="l01688"></a><span class="lineno"> 1688</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87ba0178b5f8abe39121e6f14d3c6c093a82">olc::OK</a>;</div>
+<div class="line"><a name="l01689"></a><span class="lineno"> 1689</span>&#160;    }</div>
+<div class="line"><a name="l01690"></a><span class="lineno"> 1690</span>&#160; </div>
+<div class="line"><a name="l01691"></a><span class="lineno"> 1691</span>&#160; </div>
+<div class="line"><a name="l01692"></a><span class="lineno"> 1692</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_pixel_game_engine.html#abd403468f57f7665d56e202da8de8e76">PixelGameEngine::SetScreenSize</a>(<span class="keywordtype">int</span> w, <span class="keywordtype">int</span> h)</div>
+<div class="line"><a name="l01693"></a><span class="lineno"> 1693</span>&#160;    {</div>
+<div class="line"><a name="l01694"></a><span class="lineno"> 1694</span>&#160;        vScreenSize = { w, h };</div>
+<div class="line"><a name="l01695"></a><span class="lineno"> 1695</span>&#160;        vInvScreenSize = { 1.0f / float(w), 1.0f / float(h) };</div>
+<div class="line"><a name="l01696"></a><span class="lineno"> 1696</span>&#160;        <span class="keywordflow">for</span> (<span class="keyword">auto</span>&amp; layer : vLayers)</div>
+<div class="line"><a name="l01697"></a><span class="lineno"> 1697</span>&#160;        {</div>
+<div class="line"><a name="l01698"></a><span class="lineno"> 1698</span>&#160;            <span class="keyword">delete</span> layer.pDrawTarget; <span class="comment">// Erase existing layer sprites</span></div>
+<div class="line"><a name="l01699"></a><span class="lineno"> 1699</span>&#160;            layer.pDrawTarget = <span class="keyword">new</span> Sprite(vScreenSize.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a>, vScreenSize.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a>);</div>
+<div class="line"><a name="l01700"></a><span class="lineno"> 1700</span>&#160;            layer.bUpdate = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l01701"></a><span class="lineno"> 1701</span>&#160;        }</div>
+<div class="line"><a name="l01702"></a><span class="lineno"> 1702</span>&#160;        <a class="code" href="classolc_1_1_pixel_game_engine.html#a70b6a145d7ab0c8857000a72ce4d4a70">SetDrawTarget</a>(<span class="keyword">nullptr</span>);</div>
+<div class="line"><a name="l01703"></a><span class="lineno"> 1703</span>&#160;        renderer-&gt;ClearBuffer(<a class="code" href="namespaceolc.html#a183de1c471cfd6f45980bc9c2c58ed9d">olc::BLACK</a>, <span class="keyword">true</span>);</div>
+<div class="line"><a name="l01704"></a><span class="lineno"> 1704</span>&#160;        renderer-&gt;DisplayFrame();</div>
+<div class="line"><a name="l01705"></a><span class="lineno"> 1705</span>&#160;        renderer-&gt;ClearBuffer(<a class="code" href="namespaceolc.html#a183de1c471cfd6f45980bc9c2c58ed9d">olc::BLACK</a>, <span class="keyword">true</span>);</div>
+<div class="line"><a name="l01706"></a><span class="lineno"> 1706</span>&#160;        renderer-&gt;UpdateViewport(vViewPos, vViewSize);</div>
+<div class="line"><a name="l01707"></a><span class="lineno"> 1707</span>&#160;    }</div>
+<div class="line"><a name="l01708"></a><span class="lineno"> 1708</span>&#160; </div>
+<div class="line"><a name="l01709"></a><span class="lineno"> 1709</span>&#160;<span class="preprocessor">#if !defined(PGE_USE_CUSTOM_START)</span></div>
+<div class="line"><a name="l01710"></a><span class="lineno"> 1710</span>&#160;    <a class="code" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87b">olc::rcode</a> <a class="code" href="classolc_1_1_pixel_game_engine.html#a8e8848aa1c743a1ec2cdaa14c87e5cde">PixelGameEngine::Start</a>()</div>
+<div class="line"><a name="l01711"></a><span class="lineno"> 1711</span>&#160;    {</div>
+<div class="line"><a name="l01712"></a><span class="lineno"> 1712</span>&#160;        <span class="keywordflow">if</span> (platform-&gt;ApplicationStartUp() != <a class="code" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87ba0178b5f8abe39121e6f14d3c6c093a82">olc::OK</a>) <span class="keywordflow">return</span> <a class="code" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87baadc8ac6e9769db5bb290fbf5f8284dbf">olc::FAIL</a>;</div>
+<div class="line"><a name="l01713"></a><span class="lineno"> 1713</span>&#160; </div>
+<div class="line"><a name="l01714"></a><span class="lineno"> 1714</span>&#160;        <span class="comment">// Construct the window</span></div>
+<div class="line"><a name="l01715"></a><span class="lineno"> 1715</span>&#160;        <span class="keywordflow">if</span> (platform-&gt;CreateWindowPane({ 30,30 }, vWindowSize, bFullScreen) != <a class="code" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87ba0178b5f8abe39121e6f14d3c6c093a82">olc::OK</a>) <span class="keywordflow">return</span> <a class="code" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87baadc8ac6e9769db5bb290fbf5f8284dbf">olc::FAIL</a>;</div>
+<div class="line"><a name="l01716"></a><span class="lineno"> 1716</span>&#160;        <a class="code" href="classolc_1_1_pixel_game_engine.html#a4f0dae00f21f8d71d4544d50593234c3">olc_UpdateWindowSize</a>(vWindowSize.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a>, vWindowSize.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a>);</div>
+<div class="line"><a name="l01717"></a><span class="lineno"> 1717</span>&#160; </div>
+<div class="line"><a name="l01718"></a><span class="lineno"> 1718</span>&#160;        <span class="comment">// Start the thread</span></div>
+<div class="line"><a name="l01719"></a><span class="lineno"> 1719</span>&#160;        bAtomActive = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l01720"></a><span class="lineno"> 1720</span>&#160;        std::thread t = std::thread(&amp;PixelGameEngine::EngineThread, <span class="keyword">this</span>);</div>
+<div class="line"><a name="l01721"></a><span class="lineno"> 1721</span>&#160; </div>
+<div class="line"><a name="l01722"></a><span class="lineno"> 1722</span>&#160;        <span class="comment">// Some implementations may form an event loop here</span></div>
+<div class="line"><a name="l01723"></a><span class="lineno"> 1723</span>&#160;        platform-&gt;StartSystemEventLoop();</div>
+<div class="line"><a name="l01724"></a><span class="lineno"> 1724</span>&#160; </div>
+<div class="line"><a name="l01725"></a><span class="lineno"> 1725</span>&#160;        <span class="comment">// Wait for thread to be exited</span></div>
+<div class="line"><a name="l01726"></a><span class="lineno"> 1726</span>&#160;        t.join();</div>
+<div class="line"><a name="l01727"></a><span class="lineno"> 1727</span>&#160; </div>
+<div class="line"><a name="l01728"></a><span class="lineno"> 1728</span>&#160;        <span class="keywordflow">if</span> (platform-&gt;ApplicationCleanUp() != <a class="code" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87ba0178b5f8abe39121e6f14d3c6c093a82">olc::OK</a>) <span class="keywordflow">return</span> <a class="code" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87baadc8ac6e9769db5bb290fbf5f8284dbf">olc::FAIL</a>;</div>
+<div class="line"><a name="l01729"></a><span class="lineno"> 1729</span>&#160; </div>
+<div class="line"><a name="l01730"></a><span class="lineno"> 1730</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87ba0178b5f8abe39121e6f14d3c6c093a82">olc::OK</a>;</div>
+<div class="line"><a name="l01731"></a><span class="lineno"> 1731</span>&#160;    }</div>
+<div class="line"><a name="l01732"></a><span class="lineno"> 1732</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l01733"></a><span class="lineno"> 1733</span>&#160; </div>
+<div class="line"><a name="l01734"></a><span class="lineno"> 1734</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_pixel_game_engine.html#a70b6a145d7ab0c8857000a72ce4d4a70">PixelGameEngine::SetDrawTarget</a>(Sprite* target)</div>
+<div class="line"><a name="l01735"></a><span class="lineno"> 1735</span>&#160;    {</div>
+<div class="line"><a name="l01736"></a><span class="lineno"> 1736</span>&#160;        <span class="keywordflow">if</span> (target)</div>
+<div class="line"><a name="l01737"></a><span class="lineno"> 1737</span>&#160;        {</div>
+<div class="line"><a name="l01738"></a><span class="lineno"> 1738</span>&#160;            pDrawTarget = target;</div>
+<div class="line"><a name="l01739"></a><span class="lineno"> 1739</span>&#160;        }</div>
+<div class="line"><a name="l01740"></a><span class="lineno"> 1740</span>&#160;        <span class="keywordflow">else</span></div>
+<div class="line"><a name="l01741"></a><span class="lineno"> 1741</span>&#160;        {</div>
+<div class="line"><a name="l01742"></a><span class="lineno"> 1742</span>&#160;            nTargetLayer = 0;</div>
+<div class="line"><a name="l01743"></a><span class="lineno"> 1743</span>&#160;            pDrawTarget = vLayers[0].pDrawTarget;</div>
+<div class="line"><a name="l01744"></a><span class="lineno"> 1744</span>&#160;        }</div>
+<div class="line"><a name="l01745"></a><span class="lineno"> 1745</span>&#160;    }</div>
+<div class="line"><a name="l01746"></a><span class="lineno"> 1746</span>&#160; </div>
+<div class="line"><a name="l01747"></a><span class="lineno"> 1747</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_pixel_game_engine.html#a70b6a145d7ab0c8857000a72ce4d4a70">PixelGameEngine::SetDrawTarget</a>(uint8_t layer)</div>
+<div class="line"><a name="l01748"></a><span class="lineno"> 1748</span>&#160;    {</div>
+<div class="line"><a name="l01749"></a><span class="lineno"> 1749</span>&#160;        <span class="keywordflow">if</span> (layer &lt; vLayers.size())</div>
+<div class="line"><a name="l01750"></a><span class="lineno"> 1750</span>&#160;        {</div>
+<div class="line"><a name="l01751"></a><span class="lineno"> 1751</span>&#160;            pDrawTarget = vLayers[layer].pDrawTarget;</div>
+<div class="line"><a name="l01752"></a><span class="lineno"> 1752</span>&#160;            vLayers[layer].bUpdate = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l01753"></a><span class="lineno"> 1753</span>&#160;            nTargetLayer = layer;</div>
+<div class="line"><a name="l01754"></a><span class="lineno"> 1754</span>&#160;        }</div>
+<div class="line"><a name="l01755"></a><span class="lineno"> 1755</span>&#160;    }</div>
+<div class="line"><a name="l01756"></a><span class="lineno"> 1756</span>&#160; </div>
+<div class="line"><a name="l01757"></a><span class="lineno"> 1757</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_pixel_game_engine.html#a1e3453e2a118596fa04a961f66c6fd46">PixelGameEngine::EnableLayer</a>(uint8_t layer, <span class="keywordtype">bool</span> b)</div>
+<div class="line"><a name="l01758"></a><span class="lineno"> 1758</span>&#160;    { <span class="keywordflow">if</span> (layer &lt; vLayers.size()) vLayers[layer].bShow = b; }</div>
+<div class="line"><a name="l01759"></a><span class="lineno"> 1759</span>&#160; </div>
+<div class="line"><a name="l01760"></a><span class="lineno"> 1760</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_pixel_game_engine.html#a0e1ddc993ef65dfe00f2bbcf59e535ad">PixelGameEngine::SetLayerOffset</a>(uint8_t layer, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; offset)</div>
+<div class="line"><a name="l01761"></a><span class="lineno"> 1761</span>&#160;    { <a class="code" href="classolc_1_1_pixel_game_engine.html#a0e1ddc993ef65dfe00f2bbcf59e535ad">SetLayerOffset</a>(layer, offset.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a>, offset.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a>); }</div>
+<div class="line"><a name="l01762"></a><span class="lineno"> 1762</span>&#160; </div>
+<div class="line"><a name="l01763"></a><span class="lineno"> 1763</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_pixel_game_engine.html#a0e1ddc993ef65dfe00f2bbcf59e535ad">PixelGameEngine::SetLayerOffset</a>(uint8_t layer, <span class="keywordtype">float</span> x, <span class="keywordtype">float</span> y)</div>
+<div class="line"><a name="l01764"></a><span class="lineno"> 1764</span>&#160;    { <span class="keywordflow">if</span> (layer &lt; vLayers.size()) vLayers[layer].vOffset = { x, y }; }</div>
+<div class="line"><a name="l01765"></a><span class="lineno"> 1765</span>&#160; </div>
+<div class="line"><a name="l01766"></a><span class="lineno"> 1766</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_pixel_game_engine.html#af8fbe005b4069ed1de8e0347b72ebc30">PixelGameEngine::SetLayerScale</a>(uint8_t layer, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; scale)</div>
+<div class="line"><a name="l01767"></a><span class="lineno"> 1767</span>&#160;    { <a class="code" href="classolc_1_1_pixel_game_engine.html#af8fbe005b4069ed1de8e0347b72ebc30">SetLayerScale</a>(layer, scale.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a>, scale.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a>); }</div>
+<div class="line"><a name="l01768"></a><span class="lineno"> 1768</span>&#160; </div>
+<div class="line"><a name="l01769"></a><span class="lineno"> 1769</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_pixel_game_engine.html#af8fbe005b4069ed1de8e0347b72ebc30">PixelGameEngine::SetLayerScale</a>(uint8_t layer, <span class="keywordtype">float</span> x, <span class="keywordtype">float</span> y)</div>
+<div class="line"><a name="l01770"></a><span class="lineno"> 1770</span>&#160;    { <span class="keywordflow">if</span> (layer &lt; vLayers.size()) vLayers[layer].vScale = { x, y }; }</div>
+<div class="line"><a name="l01771"></a><span class="lineno"> 1771</span>&#160; </div>
+<div class="line"><a name="l01772"></a><span class="lineno"> 1772</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_pixel_game_engine.html#a7d7c04245161782d5f5c48d3d62ff7a7">PixelGameEngine::SetLayerTint</a>(uint8_t layer, <span class="keyword">const</span> <a class="code" href="structolc_1_1_pixel.html">olc::Pixel</a>&amp; tint)</div>
+<div class="line"><a name="l01773"></a><span class="lineno"> 1773</span>&#160;    { <span class="keywordflow">if</span> (layer &lt; vLayers.size()) vLayers[layer].tint = tint; }</div>
+<div class="line"><a name="l01774"></a><span class="lineno"> 1774</span>&#160; </div>
+<div class="line"><a name="l01775"></a><span class="lineno"> 1775</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_pixel_game_engine.html#a40a88ddb3800e59121f05b06fd64dbfd">PixelGameEngine::SetLayerCustomRenderFunction</a>(uint8_t layer, std::function&lt;<span class="keywordtype">void</span>()&gt; f)</div>
+<div class="line"><a name="l01776"></a><span class="lineno"> 1776</span>&#160;    { <span class="keywordflow">if</span> (layer &lt; vLayers.size()) vLayers[layer].funcHook = f; }</div>
+<div class="line"><a name="l01777"></a><span class="lineno"> 1777</span>&#160; </div>
+<div class="line"><a name="l01778"></a><span class="lineno"> 1778</span>&#160;    std::vector&lt;LayerDesc&gt;&amp; <a class="code" href="classolc_1_1_pixel_game_engine.html#aac31baad6daf55b926f6add9c44a5591">PixelGameEngine::GetLayers</a>()</div>
+<div class="line"><a name="l01779"></a><span class="lineno"> 1779</span>&#160;    { <span class="keywordflow">return</span> vLayers; }</div>
+<div class="line"><a name="l01780"></a><span class="lineno"> 1780</span>&#160; </div>
+<div class="line"><a name="l01781"></a><span class="lineno"> 1781</span>&#160;    uint32_t <a class="code" href="classolc_1_1_pixel_game_engine.html#ae15ffa0503e2893aad7001aa2f5769b7">PixelGameEngine::CreateLayer</a>()</div>
+<div class="line"><a name="l01782"></a><span class="lineno"> 1782</span>&#160;    {</div>
+<div class="line"><a name="l01783"></a><span class="lineno"> 1783</span>&#160;        LayerDesc ld;</div>
+<div class="line"><a name="l01784"></a><span class="lineno"> 1784</span>&#160;        ld.pDrawTarget = <span class="keyword">new</span> <a class="code" href="classolc_1_1_sprite.html">olc::Sprite</a>(vScreenSize.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a>, vScreenSize.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a>);</div>
+<div class="line"><a name="l01785"></a><span class="lineno"> 1785</span>&#160;        ld.nResID = renderer-&gt;CreateTexture(vScreenSize.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a>, vScreenSize.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a>);</div>
+<div class="line"><a name="l01786"></a><span class="lineno"> 1786</span>&#160;        renderer-&gt;UpdateTexture(ld.nResID, ld.pDrawTarget);</div>
+<div class="line"><a name="l01787"></a><span class="lineno"> 1787</span>&#160;        vLayers.push_back(ld);</div>
+<div class="line"><a name="l01788"></a><span class="lineno"> 1788</span>&#160;        <span class="keywordflow">return</span> uint32_t(vLayers.size()) - 1;</div>
+<div class="line"><a name="l01789"></a><span class="lineno"> 1789</span>&#160;    }</div>
+<div class="line"><a name="l01790"></a><span class="lineno"> 1790</span>&#160; </div>
+<div class="line"><a name="l01791"></a><span class="lineno"> 1791</span>&#160;    Sprite* <a class="code" href="classolc_1_1_pixel_game_engine.html#a5fd95bd9571bc3ed3fd5d7d110e48cff">PixelGameEngine::GetDrawTarget</a>()<span class="keyword"> const</span></div>
+<div class="line"><a name="l01792"></a><span class="lineno"> 1792</span>&#160;<span class="keyword">    </span>{ <span class="keywordflow">return</span> pDrawTarget; }</div>
+<div class="line"><a name="l01793"></a><span class="lineno"> 1793</span>&#160; </div>
+<div class="line"><a name="l01794"></a><span class="lineno"> 1794</span>&#160;    int32_t <a class="code" href="classolc_1_1_pixel_game_engine.html#a45d918f65f5fee13e654878d8271326b">PixelGameEngine::GetDrawTargetWidth</a>()<span class="keyword"> const</span></div>
+<div class="line"><a name="l01795"></a><span class="lineno"> 1795</span>&#160;<span class="keyword">    </span>{</div>
+<div class="line"><a name="l01796"></a><span class="lineno"> 1796</span>&#160;        <span class="keywordflow">if</span> (pDrawTarget)</div>
+<div class="line"><a name="l01797"></a><span class="lineno"> 1797</span>&#160;            <span class="keywordflow">return</span> pDrawTarget-&gt;<a class="code" href="classolc_1_1_sprite.html#af055800e63204ae372ca0812e6926230">width</a>;</div>
+<div class="line"><a name="l01798"></a><span class="lineno"> 1798</span>&#160;        <span class="keywordflow">else</span></div>
+<div class="line"><a name="l01799"></a><span class="lineno"> 1799</span>&#160;            <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a name="l01800"></a><span class="lineno"> 1800</span>&#160;    }</div>
+<div class="line"><a name="l01801"></a><span class="lineno"> 1801</span>&#160; </div>
+<div class="line"><a name="l01802"></a><span class="lineno"> 1802</span>&#160;    int32_t <a class="code" href="classolc_1_1_pixel_game_engine.html#a4ee3dbff01900d71e62bfe499b1c83c3">PixelGameEngine::GetDrawTargetHeight</a>()<span class="keyword"> const</span></div>
+<div class="line"><a name="l01803"></a><span class="lineno"> 1803</span>&#160;<span class="keyword">    </span>{</div>
+<div class="line"><a name="l01804"></a><span class="lineno"> 1804</span>&#160;        <span class="keywordflow">if</span> (pDrawTarget)</div>
+<div class="line"><a name="l01805"></a><span class="lineno"> 1805</span>&#160;            <span class="keywordflow">return</span> pDrawTarget-&gt;<a class="code" href="classolc_1_1_sprite.html#ab05010cb1a5ff6c36267d0050d568d96">height</a>;</div>
+<div class="line"><a name="l01806"></a><span class="lineno"> 1806</span>&#160;        <span class="keywordflow">else</span></div>
+<div class="line"><a name="l01807"></a><span class="lineno"> 1807</span>&#160;            <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a name="l01808"></a><span class="lineno"> 1808</span>&#160;    }</div>
+<div class="line"><a name="l01809"></a><span class="lineno"> 1809</span>&#160; </div>
+<div class="line"><a name="l01810"></a><span class="lineno"> 1810</span>&#160;    uint32_t <a class="code" href="classolc_1_1_pixel_game_engine.html#a89d27938d71d49b42a20307444147697">PixelGameEngine::GetFPS</a>()<span class="keyword"> const</span></div>
+<div class="line"><a name="l01811"></a><span class="lineno"> 1811</span>&#160;<span class="keyword">    </span>{ <span class="keywordflow">return</span> nLastFPS; }</div>
+<div class="line"><a name="l01812"></a><span class="lineno"> 1812</span>&#160; </div>
+<div class="line"><a name="l01813"></a><span class="lineno"> 1813</span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="classolc_1_1_pixel_game_engine.html#a92192402b5d499ab8b230dfb9393f3b7">PixelGameEngine::IsFocused</a>()<span class="keyword"> const</span></div>
+<div class="line"><a name="l01814"></a><span class="lineno"> 1814</span>&#160;<span class="keyword">    </span>{ <span class="keywordflow">return</span> bHasInputFocus; }</div>
+<div class="line"><a name="l01815"></a><span class="lineno"> 1815</span>&#160; </div>
+<div class="line"><a name="l01816"></a><span class="lineno"> 1816</span>&#160;    HWButton <a class="code" href="classolc_1_1_pixel_game_engine.html#a27cb4cb68d5e1ca7df8014d66221269e">PixelGameEngine::GetKey</a>(<a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7">Key</a> k)<span class="keyword"> const</span></div>
+<div class="line"><a name="l01817"></a><span class="lineno"> 1817</span>&#160;<span class="keyword">    </span>{ <span class="keywordflow">return</span> pKeyboardState[k]; }</div>
+<div class="line"><a name="l01818"></a><span class="lineno"> 1818</span>&#160; </div>
+<div class="line"><a name="l01819"></a><span class="lineno"> 1819</span>&#160;    HWButton <a class="code" href="classolc_1_1_pixel_game_engine.html#abdf9f5d70c9e24ab9358a8dd07474105">PixelGameEngine::GetMouse</a>(uint32_t b)<span class="keyword"> const</span></div>
+<div class="line"><a name="l01820"></a><span class="lineno"> 1820</span>&#160;<span class="keyword">    </span>{ <span class="keywordflow">return</span> pMouseState[b]; }</div>
+<div class="line"><a name="l01821"></a><span class="lineno"> 1821</span>&#160; </div>
+<div class="line"><a name="l01822"></a><span class="lineno"> 1822</span>&#160;    int32_t <a class="code" href="classolc_1_1_pixel_game_engine.html#a2ec1d2a1f3777338fb4388c620344a34">PixelGameEngine::GetMouseX</a>()<span class="keyword"> const</span></div>
+<div class="line"><a name="l01823"></a><span class="lineno"> 1823</span>&#160;<span class="keyword">    </span>{ <span class="keywordflow">return</span> vMousePos.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a>; }</div>
+<div class="line"><a name="l01824"></a><span class="lineno"> 1824</span>&#160; </div>
+<div class="line"><a name="l01825"></a><span class="lineno"> 1825</span>&#160;    int32_t <a class="code" href="classolc_1_1_pixel_game_engine.html#a8dde80c07547240f5e72b4f2fcd89668">PixelGameEngine::GetMouseY</a>()<span class="keyword"> const</span></div>
+<div class="line"><a name="l01826"></a><span class="lineno"> 1826</span>&#160;<span class="keyword">    </span>{ <span class="keywordflow">return</span> vMousePos.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a>; }</div>
+<div class="line"><a name="l01827"></a><span class="lineno"> 1827</span>&#160; </div>
+<div class="line"><a name="l01828"></a><span class="lineno"> 1828</span>&#160;    <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vi2d</a>&amp; <a class="code" href="classolc_1_1_pixel_game_engine.html#af11fb390dbc5a3168c26fe911690dcbe">PixelGameEngine::GetMousePos</a>()<span class="keyword"> const</span></div>
+<div class="line"><a name="l01829"></a><span class="lineno"> 1829</span>&#160;<span class="keyword">    </span>{ <span class="keywordflow">return</span> vMousePos; }</div>
+<div class="line"><a name="l01830"></a><span class="lineno"> 1830</span>&#160; </div>
+<div class="line"><a name="l01831"></a><span class="lineno"> 1831</span>&#160;    int32_t <a class="code" href="classolc_1_1_pixel_game_engine.html#a9640286e4a7cd03c6f545b1df7373269">PixelGameEngine::GetMouseWheel</a>()<span class="keyword"> const</span></div>
+<div class="line"><a name="l01832"></a><span class="lineno"> 1832</span>&#160;<span class="keyword">    </span>{ <span class="keywordflow">return</span> nMouseWheelDelta; }</div>
+<div class="line"><a name="l01833"></a><span class="lineno"> 1833</span>&#160; </div>
+<div class="line"><a name="l01834"></a><span class="lineno"> 1834</span>&#160;    int32_t <a class="code" href="classolc_1_1_pixel_game_engine.html#aa3b458d05eab503d9918cfd2d383a45c">PixelGameEngine::ScreenWidth</a>()<span class="keyword"> const</span></div>
+<div class="line"><a name="l01835"></a><span class="lineno"> 1835</span>&#160;<span class="keyword">    </span>{ <span class="keywordflow">return</span> vScreenSize.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a>; }</div>
+<div class="line"><a name="l01836"></a><span class="lineno"> 1836</span>&#160; </div>
+<div class="line"><a name="l01837"></a><span class="lineno"> 1837</span>&#160;    int32_t <a class="code" href="classolc_1_1_pixel_game_engine.html#abbbee4578ffa6b844c04c1af363052af">PixelGameEngine::ScreenHeight</a>()<span class="keyword"> const</span></div>
+<div class="line"><a name="l01838"></a><span class="lineno"> 1838</span>&#160;<span class="keyword">    </span>{ <span class="keywordflow">return</span> vScreenSize.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a>; }</div>
+<div class="line"><a name="l01839"></a><span class="lineno"> 1839</span>&#160; </div>
+<div class="line"><a name="l01840"></a><span class="lineno"> 1840</span>&#160;    <span class="keywordtype">float</span> <a class="code" href="classolc_1_1_pixel_game_engine.html#af881473291c52d849dbef155e359b27c">PixelGameEngine::GetElapsedTime</a>()<span class="keyword"> const</span></div>
+<div class="line"><a name="l01841"></a><span class="lineno"> 1841</span>&#160;<span class="keyword">    </span>{ <span class="keywordflow">return</span> fLastElapsed; }</div>
+<div class="line"><a name="l01842"></a><span class="lineno"> 1842</span>&#160; </div>
+<div class="line"><a name="l01843"></a><span class="lineno"> 1843</span>&#160;    <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vi2d</a>&amp; <a class="code" href="classolc_1_1_pixel_game_engine.html#aee10e917aeb1ce4625561d71126e0a7d">PixelGameEngine::GetWindowSize</a>()<span class="keyword"> const</span></div>
+<div class="line"><a name="l01844"></a><span class="lineno"> 1844</span>&#160;<span class="keyword">    </span>{ <span class="keywordflow">return</span> vWindowSize; }</div>
+<div class="line"><a name="l01845"></a><span class="lineno"> 1845</span>&#160; </div>
+<div class="line"><a name="l01846"></a><span class="lineno"> 1846</span>&#160;    <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vi2d</a>&amp; <a class="code" href="classolc_1_1_pixel_game_engine.html#a721fb4cfac75f76c6d5832415fccbe61">PixelGameEngine::GetPixelSize</a>()<span class="keyword"> const</span></div>
+<div class="line"><a name="l01847"></a><span class="lineno"> 1847</span>&#160;<span class="keyword">    </span>{ <span class="keywordflow">return</span> vPixelSize; }</div>
+<div class="line"><a name="l01848"></a><span class="lineno"> 1848</span>&#160; </div>
+<div class="line"><a name="l01849"></a><span class="lineno"> 1849</span>&#160;    <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vi2d</a>&amp; <a class="code" href="classolc_1_1_pixel_game_engine.html#a5602d50220bd7edbd77fc67eaa981ce5">PixelGameEngine::GetScreenPixelSize</a>()<span class="keyword"> const</span></div>
+<div class="line"><a name="l01850"></a><span class="lineno"> 1850</span>&#160;<span class="keyword">    </span>{ <span class="keywordflow">return</span> vScreenPixelSize; }</div>
+<div class="line"><a name="l01851"></a><span class="lineno"> 1851</span>&#160; </div>
+<div class="line"><a name="l01852"></a><span class="lineno"> 1852</span>&#160;    <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vi2d</a>&amp; <a class="code" href="classolc_1_1_pixel_game_engine.html#a54b5141da371af51541874dd68e4e6a2">PixelGameEngine::GetWindowMouse</a>()<span class="keyword"> const</span></div>
+<div class="line"><a name="l01853"></a><span class="lineno"> 1853</span>&#160;<span class="keyword">    </span>{ <span class="keywordflow">return</span> vMouseWindowPos; }</div>
+<div class="line"><a name="l01854"></a><span class="lineno"> 1854</span>&#160; </div>
+<div class="line"><a name="l01855"></a><span class="lineno"> 1855</span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="classolc_1_1_pixel_game_engine.html#a95ab046b4b0843565bddd0e009a25569">PixelGameEngine::Draw</a>(<span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vi2d</a>&amp; pos, Pixel p)</div>
+<div class="line"><a name="l01856"></a><span class="lineno"> 1856</span>&#160;    { <span class="keywordflow">return</span> <a class="code" href="classolc_1_1_pixel_game_engine.html#a95ab046b4b0843565bddd0e009a25569">Draw</a>(pos.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a>, pos.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a>, p); }</div>
+<div class="line"><a name="l01857"></a><span class="lineno"> 1857</span>&#160; </div>
+<div class="line"><a name="l01858"></a><span class="lineno"> 1858</span>&#160;    <span class="comment">// This is it, the critical function that plots a pixel</span></div>
+<div class="line"><a name="l01859"></a><span class="lineno"> 1859</span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="classolc_1_1_pixel_game_engine.html#a95ab046b4b0843565bddd0e009a25569">PixelGameEngine::Draw</a>(int32_t x, int32_t y, Pixel p)</div>
+<div class="line"><a name="l01860"></a><span class="lineno"> 1860</span>&#160;    {</div>
+<div class="line"><a name="l01861"></a><span class="lineno"> 1861</span>&#160;        <span class="keywordflow">if</span> (!pDrawTarget) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l01862"></a><span class="lineno"> 1862</span>&#160; </div>
+<div class="line"><a name="l01863"></a><span class="lineno"> 1863</span>&#160;        <span class="keywordflow">if</span> (nPixelMode == <a class="code" href="structolc_1_1_pixel.html#ae9012164940526ddb09b217dbbddfd65a8abacc164c972b4684c2a76efd381018">Pixel::NORMAL</a>)</div>
+<div class="line"><a name="l01864"></a><span class="lineno"> 1864</span>&#160;        {</div>
+<div class="line"><a name="l01865"></a><span class="lineno"> 1865</span>&#160;            <span class="keywordflow">return</span> pDrawTarget-&gt;<a class="code" href="classolc_1_1_sprite.html#a294389e93a95c8307f1260d7cacaf9ba">SetPixel</a>(x, y, p);</div>
+<div class="line"><a name="l01866"></a><span class="lineno"> 1866</span>&#160;        }</div>
+<div class="line"><a name="l01867"></a><span class="lineno"> 1867</span>&#160; </div>
+<div class="line"><a name="l01868"></a><span class="lineno"> 1868</span>&#160;        <span class="keywordflow">if</span> (nPixelMode == <a class="code" href="structolc_1_1_pixel.html#ae9012164940526ddb09b217dbbddfd65a4062d4baa9669fb2e91f31a15061a9d6">Pixel::MASK</a>)</div>
+<div class="line"><a name="l01869"></a><span class="lineno"> 1869</span>&#160;        {</div>
+<div class="line"><a name="l01870"></a><span class="lineno"> 1870</span>&#160;            <span class="keywordflow">if</span> (p.a == 255)</div>
+<div class="line"><a name="l01871"></a><span class="lineno"> 1871</span>&#160;                <span class="keywordflow">return</span> pDrawTarget-&gt;<a class="code" href="classolc_1_1_sprite.html#a294389e93a95c8307f1260d7cacaf9ba">SetPixel</a>(x, y, p);</div>
+<div class="line"><a name="l01872"></a><span class="lineno"> 1872</span>&#160;        }</div>
+<div class="line"><a name="l01873"></a><span class="lineno"> 1873</span>&#160; </div>
+<div class="line"><a name="l01874"></a><span class="lineno"> 1874</span>&#160;        <span class="keywordflow">if</span> (nPixelMode == <a class="code" href="structolc_1_1_pixel.html#ae9012164940526ddb09b217dbbddfd65a561bc0234492261a62a3191252692753">Pixel::ALPHA</a>)</div>
+<div class="line"><a name="l01875"></a><span class="lineno"> 1875</span>&#160;        {</div>
+<div class="line"><a name="l01876"></a><span class="lineno"> 1876</span>&#160;            Pixel d = pDrawTarget-&gt;<a class="code" href="classolc_1_1_sprite.html#a7e1f8169c9822f1ed94f0212d3f8d6f6">GetPixel</a>(x, y);</div>
+<div class="line"><a name="l01877"></a><span class="lineno"> 1877</span>&#160;            <span class="keywordtype">float</span> a = (float)(p.a / 255.0f) * fBlendFactor;</div>
+<div class="line"><a name="l01878"></a><span class="lineno"> 1878</span>&#160;            <span class="keywordtype">float</span> c = 1.0f - a;</div>
+<div class="line"><a name="l01879"></a><span class="lineno"> 1879</span>&#160;            <span class="keywordtype">float</span> r = a * (float)p.r + c * (<span class="keywordtype">float</span>)d.r;</div>
+<div class="line"><a name="l01880"></a><span class="lineno"> 1880</span>&#160;            <span class="keywordtype">float</span> g = a * (float)p.g + c * (<span class="keywordtype">float</span>)d.g;</div>
+<div class="line"><a name="l01881"></a><span class="lineno"> 1881</span>&#160;            <span class="keywordtype">float</span> b = a * (float)p.b + c * (<span class="keywordtype">float</span>)d.b;</div>
+<div class="line"><a name="l01882"></a><span class="lineno"> 1882</span>&#160;            <span class="keywordflow">return</span> pDrawTarget-&gt;<a class="code" href="classolc_1_1_sprite.html#a294389e93a95c8307f1260d7cacaf9ba">SetPixel</a>(x, y, Pixel((uint8_t)r, (uint8_t)g, (uint8_t)b<span class="comment">/*, (uint8_t)(p.a * fBlendFactor)*/</span>));</div>
+<div class="line"><a name="l01883"></a><span class="lineno"> 1883</span>&#160;        }</div>
+<div class="line"><a name="l01884"></a><span class="lineno"> 1884</span>&#160; </div>
+<div class="line"><a name="l01885"></a><span class="lineno"> 1885</span>&#160;        <span class="keywordflow">if</span> (nPixelMode == <a class="code" href="structolc_1_1_pixel.html#ae9012164940526ddb09b217dbbddfd65aed57164e9f056c1af912b3069eb45deb">Pixel::CUSTOM</a>)</div>
+<div class="line"><a name="l01886"></a><span class="lineno"> 1886</span>&#160;        {</div>
+<div class="line"><a name="l01887"></a><span class="lineno"> 1887</span>&#160;            <span class="keywordflow">return</span> pDrawTarget-&gt;<a class="code" href="classolc_1_1_sprite.html#a294389e93a95c8307f1260d7cacaf9ba">SetPixel</a>(x, y, funcPixelMode(x, y, p, pDrawTarget-&gt;<a class="code" href="classolc_1_1_sprite.html#a7e1f8169c9822f1ed94f0212d3f8d6f6">GetPixel</a>(x, y)));</div>
+<div class="line"><a name="l01888"></a><span class="lineno"> 1888</span>&#160;        }</div>
+<div class="line"><a name="l01889"></a><span class="lineno"> 1889</span>&#160; </div>
+<div class="line"><a name="l01890"></a><span class="lineno"> 1890</span>&#160;        <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l01891"></a><span class="lineno"> 1891</span>&#160;    }</div>
+<div class="line"><a name="l01892"></a><span class="lineno"> 1892</span>&#160; </div>
+<div class="line"><a name="l01893"></a><span class="lineno"> 1893</span>&#160; </div>
+<div class="line"><a name="l01894"></a><span class="lineno"> 1894</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_pixel_game_engine.html#a131877968123c843374f079814503d22">PixelGameEngine::DrawLine</a>(<span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vi2d</a>&amp; pos1, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vi2d</a>&amp; pos2, Pixel p, uint32_t pattern)</div>
+<div class="line"><a name="l01895"></a><span class="lineno"> 1895</span>&#160;    { <a class="code" href="classolc_1_1_pixel_game_engine.html#a131877968123c843374f079814503d22">DrawLine</a>(pos1.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a>, pos1.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a>, pos2.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a>, pos2.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a>, p, pattern); }</div>
+<div class="line"><a name="l01896"></a><span class="lineno"> 1896</span>&#160; </div>
+<div class="line"><a name="l01897"></a><span class="lineno"> 1897</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_pixel_game_engine.html#a131877968123c843374f079814503d22">PixelGameEngine::DrawLine</a>(int32_t x1, int32_t y1, int32_t x2, int32_t y2, Pixel p, uint32_t pattern)</div>
+<div class="line"><a name="l01898"></a><span class="lineno"> 1898</span>&#160;    {</div>
+<div class="line"><a name="l01899"></a><span class="lineno"> 1899</span>&#160;        <span class="keywordtype">int</span> x, y, dx, dy, dx1, dy1, px, py, xe, ye, i;</div>
+<div class="line"><a name="l01900"></a><span class="lineno"> 1900</span>&#160;        dx = x2 - x1; dy = y2 - y1;</div>
+<div class="line"><a name="l01901"></a><span class="lineno"> 1901</span>&#160; </div>
+<div class="line"><a name="l01902"></a><span class="lineno"> 1902</span>&#160;        <span class="keyword">auto</span> rol = [&amp;](void) { pattern = (pattern &lt;&lt; 1) | (pattern &gt;&gt; 31); <span class="keywordflow">return</span> pattern &amp; 1; };</div>
+<div class="line"><a name="l01903"></a><span class="lineno"> 1903</span>&#160; </div>
+<div class="line"><a name="l01904"></a><span class="lineno"> 1904</span>&#160;        <span class="comment">// straight lines idea by gurkanctn</span></div>
+<div class="line"><a name="l01905"></a><span class="lineno"> 1905</span>&#160;        <span class="keywordflow">if</span> (dx == 0) <span class="comment">// Line is vertical</span></div>
+<div class="line"><a name="l01906"></a><span class="lineno"> 1906</span>&#160;        {</div>
+<div class="line"><a name="l01907"></a><span class="lineno"> 1907</span>&#160;            <span class="keywordflow">if</span> (y2 &lt; y1) std::swap(y1, y2);</div>
+<div class="line"><a name="l01908"></a><span class="lineno"> 1908</span>&#160;            <span class="keywordflow">for</span> (y = y1; y &lt;= y2; y++) <span class="keywordflow">if</span> (rol()) <a class="code" href="classolc_1_1_pixel_game_engine.html#a95ab046b4b0843565bddd0e009a25569">Draw</a>(x1, y, p);</div>
+<div class="line"><a name="l01909"></a><span class="lineno"> 1909</span>&#160;            <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l01910"></a><span class="lineno"> 1910</span>&#160;        }</div>
+<div class="line"><a name="l01911"></a><span class="lineno"> 1911</span>&#160; </div>
+<div class="line"><a name="l01912"></a><span class="lineno"> 1912</span>&#160;        <span class="keywordflow">if</span> (dy == 0) <span class="comment">// Line is horizontal</span></div>
+<div class="line"><a name="l01913"></a><span class="lineno"> 1913</span>&#160;        {</div>
+<div class="line"><a name="l01914"></a><span class="lineno"> 1914</span>&#160;            <span class="keywordflow">if</span> (x2 &lt; x1) std::swap(x1, x2);</div>
+<div class="line"><a name="l01915"></a><span class="lineno"> 1915</span>&#160;            <span class="keywordflow">for</span> (x = x1; x &lt;= x2; x++) <span class="keywordflow">if</span> (rol()) <a class="code" href="classolc_1_1_pixel_game_engine.html#a95ab046b4b0843565bddd0e009a25569">Draw</a>(x, y1, p);</div>
+<div class="line"><a name="l01916"></a><span class="lineno"> 1916</span>&#160;            <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l01917"></a><span class="lineno"> 1917</span>&#160;        }</div>
+<div class="line"><a name="l01918"></a><span class="lineno"> 1918</span>&#160; </div>
+<div class="line"><a name="l01919"></a><span class="lineno"> 1919</span>&#160;        <span class="comment">// Line is Funk-aye</span></div>
+<div class="line"><a name="l01920"></a><span class="lineno"> 1920</span>&#160;        dx1 = abs(dx); dy1 = abs(dy);</div>
+<div class="line"><a name="l01921"></a><span class="lineno"> 1921</span>&#160;        px = 2 * dy1 - dx1; py = 2 * dx1 - dy1;</div>
+<div class="line"><a name="l01922"></a><span class="lineno"> 1922</span>&#160;        <span class="keywordflow">if</span> (dy1 &lt;= dx1)</div>
+<div class="line"><a name="l01923"></a><span class="lineno"> 1923</span>&#160;        {</div>
+<div class="line"><a name="l01924"></a><span class="lineno"> 1924</span>&#160;            <span class="keywordflow">if</span> (dx &gt;= 0)</div>
+<div class="line"><a name="l01925"></a><span class="lineno"> 1925</span>&#160;            {</div>
+<div class="line"><a name="l01926"></a><span class="lineno"> 1926</span>&#160;                x = x1; y = y1; xe = x2;</div>
+<div class="line"><a name="l01927"></a><span class="lineno"> 1927</span>&#160;            }</div>
+<div class="line"><a name="l01928"></a><span class="lineno"> 1928</span>&#160;            <span class="keywordflow">else</span></div>
+<div class="line"><a name="l01929"></a><span class="lineno"> 1929</span>&#160;            {</div>
+<div class="line"><a name="l01930"></a><span class="lineno"> 1930</span>&#160;                x = x2; y = y2; xe = x1;</div>
+<div class="line"><a name="l01931"></a><span class="lineno"> 1931</span>&#160;            }</div>
+<div class="line"><a name="l01932"></a><span class="lineno"> 1932</span>&#160; </div>
+<div class="line"><a name="l01933"></a><span class="lineno"> 1933</span>&#160;            <span class="keywordflow">if</span> (rol()) <a class="code" href="classolc_1_1_pixel_game_engine.html#a95ab046b4b0843565bddd0e009a25569">Draw</a>(x, y, p);</div>
+<div class="line"><a name="l01934"></a><span class="lineno"> 1934</span>&#160; </div>
+<div class="line"><a name="l01935"></a><span class="lineno"> 1935</span>&#160;            <span class="keywordflow">for</span> (i = 0; x &lt; xe; i++)</div>
+<div class="line"><a name="l01936"></a><span class="lineno"> 1936</span>&#160;            {</div>
+<div class="line"><a name="l01937"></a><span class="lineno"> 1937</span>&#160;                x = x + 1;</div>
+<div class="line"><a name="l01938"></a><span class="lineno"> 1938</span>&#160;                <span class="keywordflow">if</span> (px &lt; 0)</div>
+<div class="line"><a name="l01939"></a><span class="lineno"> 1939</span>&#160;                    px = px + 2 * dy1;</div>
+<div class="line"><a name="l01940"></a><span class="lineno"> 1940</span>&#160;                <span class="keywordflow">else</span></div>
+<div class="line"><a name="l01941"></a><span class="lineno"> 1941</span>&#160;                {</div>
+<div class="line"><a name="l01942"></a><span class="lineno"> 1942</span>&#160;                    <span class="keywordflow">if</span> ((dx &lt; 0 &amp;&amp; dy &lt; 0) || (dx &gt; 0 &amp;&amp; dy &gt; 0)) y = y + 1; <span class="keywordflow">else</span> y = y - 1;</div>
+<div class="line"><a name="l01943"></a><span class="lineno"> 1943</span>&#160;                    px = px + 2 * (dy1 - dx1);</div>
+<div class="line"><a name="l01944"></a><span class="lineno"> 1944</span>&#160;                }</div>
+<div class="line"><a name="l01945"></a><span class="lineno"> 1945</span>&#160;                <span class="keywordflow">if</span> (rol()) <a class="code" href="classolc_1_1_pixel_game_engine.html#a95ab046b4b0843565bddd0e009a25569">Draw</a>(x, y, p);</div>
+<div class="line"><a name="l01946"></a><span class="lineno"> 1946</span>&#160;            }</div>
+<div class="line"><a name="l01947"></a><span class="lineno"> 1947</span>&#160;        }</div>
+<div class="line"><a name="l01948"></a><span class="lineno"> 1948</span>&#160;        <span class="keywordflow">else</span></div>
+<div class="line"><a name="l01949"></a><span class="lineno"> 1949</span>&#160;        {</div>
+<div class="line"><a name="l01950"></a><span class="lineno"> 1950</span>&#160;            <span class="keywordflow">if</span> (dy &gt;= 0)</div>
+<div class="line"><a name="l01951"></a><span class="lineno"> 1951</span>&#160;            {</div>
+<div class="line"><a name="l01952"></a><span class="lineno"> 1952</span>&#160;                x = x1; y = y1; ye = y2;</div>
+<div class="line"><a name="l01953"></a><span class="lineno"> 1953</span>&#160;            }</div>
+<div class="line"><a name="l01954"></a><span class="lineno"> 1954</span>&#160;            <span class="keywordflow">else</span></div>
+<div class="line"><a name="l01955"></a><span class="lineno"> 1955</span>&#160;            {</div>
+<div class="line"><a name="l01956"></a><span class="lineno"> 1956</span>&#160;                x = x2; y = y2; ye = y1;</div>
+<div class="line"><a name="l01957"></a><span class="lineno"> 1957</span>&#160;            }</div>
+<div class="line"><a name="l01958"></a><span class="lineno"> 1958</span>&#160; </div>
+<div class="line"><a name="l01959"></a><span class="lineno"> 1959</span>&#160;            <span class="keywordflow">if</span> (rol()) <a class="code" href="classolc_1_1_pixel_game_engine.html#a95ab046b4b0843565bddd0e009a25569">Draw</a>(x, y, p);</div>
+<div class="line"><a name="l01960"></a><span class="lineno"> 1960</span>&#160; </div>
+<div class="line"><a name="l01961"></a><span class="lineno"> 1961</span>&#160;            <span class="keywordflow">for</span> (i = 0; y &lt; ye; i++)</div>
+<div class="line"><a name="l01962"></a><span class="lineno"> 1962</span>&#160;            {</div>
+<div class="line"><a name="l01963"></a><span class="lineno"> 1963</span>&#160;                y = y + 1;</div>
+<div class="line"><a name="l01964"></a><span class="lineno"> 1964</span>&#160;                <span class="keywordflow">if</span> (py &lt;= 0)</div>
+<div class="line"><a name="l01965"></a><span class="lineno"> 1965</span>&#160;                    py = py + 2 * dx1;</div>
+<div class="line"><a name="l01966"></a><span class="lineno"> 1966</span>&#160;                <span class="keywordflow">else</span></div>
+<div class="line"><a name="l01967"></a><span class="lineno"> 1967</span>&#160;                {</div>
+<div class="line"><a name="l01968"></a><span class="lineno"> 1968</span>&#160;                    <span class="keywordflow">if</span> ((dx &lt; 0 &amp;&amp; dy &lt; 0) || (dx &gt; 0 &amp;&amp; dy &gt; 0)) x = x + 1; <span class="keywordflow">else</span> x = x - 1;</div>
+<div class="line"><a name="l01969"></a><span class="lineno"> 1969</span>&#160;                    py = py + 2 * (dx1 - dy1);</div>
+<div class="line"><a name="l01970"></a><span class="lineno"> 1970</span>&#160;                }</div>
+<div class="line"><a name="l01971"></a><span class="lineno"> 1971</span>&#160;                <span class="keywordflow">if</span> (rol()) <a class="code" href="classolc_1_1_pixel_game_engine.html#a95ab046b4b0843565bddd0e009a25569">Draw</a>(x, y, p);</div>
+<div class="line"><a name="l01972"></a><span class="lineno"> 1972</span>&#160;            }</div>
+<div class="line"><a name="l01973"></a><span class="lineno"> 1973</span>&#160;        }</div>
+<div class="line"><a name="l01974"></a><span class="lineno"> 1974</span>&#160;    }</div>
+<div class="line"><a name="l01975"></a><span class="lineno"> 1975</span>&#160; </div>
+<div class="line"><a name="l01976"></a><span class="lineno"> 1976</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_pixel_game_engine.html#a2ce3e34fd633acdc22b8dc2c8d25f86c">PixelGameEngine::DrawCircle</a>(<span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vi2d</a>&amp; pos, int32_t radius, Pixel p, uint8_t mask)</div>
+<div class="line"><a name="l01977"></a><span class="lineno"> 1977</span>&#160;    { <a class="code" href="classolc_1_1_pixel_game_engine.html#a2ce3e34fd633acdc22b8dc2c8d25f86c">DrawCircle</a>(pos.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a>, pos.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a>, radius, p, mask); }</div>
+<div class="line"><a name="l01978"></a><span class="lineno"> 1978</span>&#160; </div>
+<div class="line"><a name="l01979"></a><span class="lineno"> 1979</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_pixel_game_engine.html#a2ce3e34fd633acdc22b8dc2c8d25f86c">PixelGameEngine::DrawCircle</a>(int32_t x, int32_t y, int32_t radius, Pixel p, uint8_t mask)</div>
+<div class="line"><a name="l01980"></a><span class="lineno"> 1980</span>&#160;    { <span class="comment">// Thanks to IanM-Matrix1 #PR121</span></div>
+<div class="line"><a name="l01981"></a><span class="lineno"> 1981</span>&#160;        <span class="keywordflow">if</span> (radius &lt; 0 || x &lt; -radius || y &lt; -radius || x - <a class="code" href="classolc_1_1_pixel_game_engine.html#a45d918f65f5fee13e654878d8271326b">GetDrawTargetWidth</a>() &gt; radius || y - <a class="code" href="classolc_1_1_pixel_game_engine.html#a4ee3dbff01900d71e62bfe499b1c83c3">GetDrawTargetHeight</a>() &gt; radius)</div>
+<div class="line"><a name="l01982"></a><span class="lineno"> 1982</span>&#160;            <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l01983"></a><span class="lineno"> 1983</span>&#160; </div>
+<div class="line"><a name="l01984"></a><span class="lineno"> 1984</span>&#160;        <span class="keywordflow">if</span> (radius &gt; 0)</div>
+<div class="line"><a name="l01985"></a><span class="lineno"> 1985</span>&#160;        {</div>
+<div class="line"><a name="l01986"></a><span class="lineno"> 1986</span>&#160;            <span class="keywordtype">int</span> x0 = 0;</div>
+<div class="line"><a name="l01987"></a><span class="lineno"> 1987</span>&#160;            <span class="keywordtype">int</span> y0 = radius;</div>
+<div class="line"><a name="l01988"></a><span class="lineno"> 1988</span>&#160;            <span class="keywordtype">int</span> d = 3 - 2 * radius;</div>
+<div class="line"><a name="l01989"></a><span class="lineno"> 1989</span>&#160; </div>
+<div class="line"><a name="l01990"></a><span class="lineno"> 1990</span>&#160;            <span class="keywordflow">while</span> (y0 &gt;= x0) <span class="comment">// only formulate 1/8 of circle</span></div>
+<div class="line"><a name="l01991"></a><span class="lineno"> 1991</span>&#160;            {</div>
+<div class="line"><a name="l01992"></a><span class="lineno"> 1992</span>&#160;                <span class="comment">// Draw even octants</span></div>
+<div class="line"><a name="l01993"></a><span class="lineno"> 1993</span>&#160;                <span class="keywordflow">if</span> (mask &amp; 0x01) <a class="code" href="classolc_1_1_pixel_game_engine.html#a95ab046b4b0843565bddd0e009a25569">Draw</a>(x + x0, y - y0, p);<span class="comment">// Q6 - upper right right</span></div>
+<div class="line"><a name="l01994"></a><span class="lineno"> 1994</span>&#160;                <span class="keywordflow">if</span> (mask &amp; 0x04) <a class="code" href="classolc_1_1_pixel_game_engine.html#a95ab046b4b0843565bddd0e009a25569">Draw</a>(x + y0, y + x0, p);<span class="comment">// Q4 - lower lower right</span></div>
+<div class="line"><a name="l01995"></a><span class="lineno"> 1995</span>&#160;                <span class="keywordflow">if</span> (mask &amp; 0x10) <a class="code" href="classolc_1_1_pixel_game_engine.html#a95ab046b4b0843565bddd0e009a25569">Draw</a>(x - x0, y + y0, p);<span class="comment">// Q2 - lower left left</span></div>
+<div class="line"><a name="l01996"></a><span class="lineno"> 1996</span>&#160;                <span class="keywordflow">if</span> (mask &amp; 0x40) <a class="code" href="classolc_1_1_pixel_game_engine.html#a95ab046b4b0843565bddd0e009a25569">Draw</a>(x - y0, y - x0, p);<span class="comment">// Q0 - upper upper left</span></div>
+<div class="line"><a name="l01997"></a><span class="lineno"> 1997</span>&#160;                <span class="keywordflow">if</span> (x0 != 0 &amp;&amp; x0 != y0)</div>
+<div class="line"><a name="l01998"></a><span class="lineno"> 1998</span>&#160;                {</div>
+<div class="line"><a name="l01999"></a><span class="lineno"> 1999</span>&#160;                    <span class="keywordflow">if</span> (mask &amp; 0x02) <a class="code" href="classolc_1_1_pixel_game_engine.html#a95ab046b4b0843565bddd0e009a25569">Draw</a>(x + y0, y - x0, p);<span class="comment">// Q7 - upper upper right</span></div>
+<div class="line"><a name="l02000"></a><span class="lineno"> 2000</span>&#160;                    <span class="keywordflow">if</span> (mask &amp; 0x08) <a class="code" href="classolc_1_1_pixel_game_engine.html#a95ab046b4b0843565bddd0e009a25569">Draw</a>(x + x0, y + y0, p);<span class="comment">// Q5 - lower right right</span></div>
+<div class="line"><a name="l02001"></a><span class="lineno"> 2001</span>&#160;                    <span class="keywordflow">if</span> (mask &amp; 0x20) <a class="code" href="classolc_1_1_pixel_game_engine.html#a95ab046b4b0843565bddd0e009a25569">Draw</a>(x - y0, y + x0, p);<span class="comment">// Q3 - lower lower left</span></div>
+<div class="line"><a name="l02002"></a><span class="lineno"> 2002</span>&#160;                    <span class="keywordflow">if</span> (mask &amp; 0x80) <a class="code" href="classolc_1_1_pixel_game_engine.html#a95ab046b4b0843565bddd0e009a25569">Draw</a>(x - x0, y - y0, p);<span class="comment">// Q1 - upper left left</span></div>
+<div class="line"><a name="l02003"></a><span class="lineno"> 2003</span>&#160;                }</div>
+<div class="line"><a name="l02004"></a><span class="lineno"> 2004</span>&#160; </div>
+<div class="line"><a name="l02005"></a><span class="lineno"> 2005</span>&#160;                <span class="keywordflow">if</span> (d &lt; 0)</div>
+<div class="line"><a name="l02006"></a><span class="lineno"> 2006</span>&#160;                    d += 4 * x0++ + 6;</div>
+<div class="line"><a name="l02007"></a><span class="lineno"> 2007</span>&#160;                <span class="keywordflow">else</span></div>
+<div class="line"><a name="l02008"></a><span class="lineno"> 2008</span>&#160;                    d += 4 * (x0++ - y0--) + 10;</div>
+<div class="line"><a name="l02009"></a><span class="lineno"> 2009</span>&#160;            }</div>
+<div class="line"><a name="l02010"></a><span class="lineno"> 2010</span>&#160;        }</div>
+<div class="line"><a name="l02011"></a><span class="lineno"> 2011</span>&#160;        <span class="keywordflow">else</span></div>
+<div class="line"><a name="l02012"></a><span class="lineno"> 2012</span>&#160;            <a class="code" href="classolc_1_1_pixel_game_engine.html#a95ab046b4b0843565bddd0e009a25569">Draw</a>(x, y, p);</div>
+<div class="line"><a name="l02013"></a><span class="lineno"> 2013</span>&#160;    }</div>
+<div class="line"><a name="l02014"></a><span class="lineno"> 2014</span>&#160; </div>
+<div class="line"><a name="l02015"></a><span class="lineno"> 2015</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_pixel_game_engine.html#a483f56606fbbf3ab4850554491a853bd">PixelGameEngine::FillCircle</a>(<span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vi2d</a>&amp; pos, int32_t radius, Pixel p)</div>
+<div class="line"><a name="l02016"></a><span class="lineno"> 2016</span>&#160;    { <a class="code" href="classolc_1_1_pixel_game_engine.html#a483f56606fbbf3ab4850554491a853bd">FillCircle</a>(pos.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a>, pos.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a>, radius, p); }</div>
+<div class="line"><a name="l02017"></a><span class="lineno"> 2017</span>&#160; </div>
+<div class="line"><a name="l02018"></a><span class="lineno"> 2018</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_pixel_game_engine.html#a483f56606fbbf3ab4850554491a853bd">PixelGameEngine::FillCircle</a>(int32_t x, int32_t y, int32_t radius, Pixel p)</div>
+<div class="line"><a name="l02019"></a><span class="lineno"> 2019</span>&#160;    { <span class="comment">// Thanks to IanM-Matrix1 #PR121</span></div>
+<div class="line"><a name="l02020"></a><span class="lineno"> 2020</span>&#160;        <span class="keywordflow">if</span> (radius &lt; 0 || x &lt; -radius || y &lt; -radius || x - <a class="code" href="classolc_1_1_pixel_game_engine.html#a45d918f65f5fee13e654878d8271326b">GetDrawTargetWidth</a>() &gt; radius || y - <a class="code" href="classolc_1_1_pixel_game_engine.html#a4ee3dbff01900d71e62bfe499b1c83c3">GetDrawTargetHeight</a>() &gt; radius)</div>
+<div class="line"><a name="l02021"></a><span class="lineno"> 2021</span>&#160;            <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l02022"></a><span class="lineno"> 2022</span>&#160; </div>
+<div class="line"><a name="l02023"></a><span class="lineno"> 2023</span>&#160;        <span class="keywordflow">if</span> (radius &gt; 0)</div>
+<div class="line"><a name="l02024"></a><span class="lineno"> 2024</span>&#160;        {</div>
+<div class="line"><a name="l02025"></a><span class="lineno"> 2025</span>&#160;            <span class="keywordtype">int</span> x0 = 0;</div>
+<div class="line"><a name="l02026"></a><span class="lineno"> 2026</span>&#160;            <span class="keywordtype">int</span> y0 = radius;</div>
+<div class="line"><a name="l02027"></a><span class="lineno"> 2027</span>&#160;            <span class="keywordtype">int</span> d = 3 - 2 * radius;</div>
+<div class="line"><a name="l02028"></a><span class="lineno"> 2028</span>&#160; </div>
+<div class="line"><a name="l02029"></a><span class="lineno"> 2029</span>&#160;            <span class="keyword">auto</span> drawline = [&amp;](<span class="keywordtype">int</span> sx, <span class="keywordtype">int</span> ex, <span class="keywordtype">int</span> y)</div>
+<div class="line"><a name="l02030"></a><span class="lineno"> 2030</span>&#160;            {</div>
+<div class="line"><a name="l02031"></a><span class="lineno"> 2031</span>&#160;                <span class="keywordflow">for</span> (<span class="keywordtype">int</span> x = sx; x &lt;= ex; x++)</div>
+<div class="line"><a name="l02032"></a><span class="lineno"> 2032</span>&#160;                    <a class="code" href="classolc_1_1_pixel_game_engine.html#a95ab046b4b0843565bddd0e009a25569">Draw</a>(x, y, p);</div>
+<div class="line"><a name="l02033"></a><span class="lineno"> 2033</span>&#160;            };</div>
+<div class="line"><a name="l02034"></a><span class="lineno"> 2034</span>&#160; </div>
+<div class="line"><a name="l02035"></a><span class="lineno"> 2035</span>&#160;            <span class="keywordflow">while</span> (y0 &gt;= x0)</div>
+<div class="line"><a name="l02036"></a><span class="lineno"> 2036</span>&#160;            {</div>
+<div class="line"><a name="l02037"></a><span class="lineno"> 2037</span>&#160;                drawline(x - y0, x + y0, y - x0);</div>
+<div class="line"><a name="l02038"></a><span class="lineno"> 2038</span>&#160;                <span class="keywordflow">if</span> (x0 &gt; 0) drawline(x - y0, x + y0, y + x0);</div>
+<div class="line"><a name="l02039"></a><span class="lineno"> 2039</span>&#160; </div>
+<div class="line"><a name="l02040"></a><span class="lineno"> 2040</span>&#160;                <span class="keywordflow">if</span> (d &lt; 0)</div>
+<div class="line"><a name="l02041"></a><span class="lineno"> 2041</span>&#160;                    d += 4 * x0++ + 6;</div>
+<div class="line"><a name="l02042"></a><span class="lineno"> 2042</span>&#160;                <span class="keywordflow">else</span></div>
+<div class="line"><a name="l02043"></a><span class="lineno"> 2043</span>&#160;                {</div>
+<div class="line"><a name="l02044"></a><span class="lineno"> 2044</span>&#160;                    <span class="keywordflow">if</span> (x0 != y0)</div>
+<div class="line"><a name="l02045"></a><span class="lineno"> 2045</span>&#160;                    {</div>
+<div class="line"><a name="l02046"></a><span class="lineno"> 2046</span>&#160;                        drawline(x - x0, x + x0, y - y0);</div>
+<div class="line"><a name="l02047"></a><span class="lineno"> 2047</span>&#160;                        drawline(x - x0, x + x0, y + y0);</div>
+<div class="line"><a name="l02048"></a><span class="lineno"> 2048</span>&#160;                    }</div>
+<div class="line"><a name="l02049"></a><span class="lineno"> 2049</span>&#160;                    d += 4 * (x0++ - y0--) + 10;</div>
+<div class="line"><a name="l02050"></a><span class="lineno"> 2050</span>&#160;                }</div>
+<div class="line"><a name="l02051"></a><span class="lineno"> 2051</span>&#160;            }</div>
+<div class="line"><a name="l02052"></a><span class="lineno"> 2052</span>&#160;        }</div>
+<div class="line"><a name="l02053"></a><span class="lineno"> 2053</span>&#160;        <span class="keywordflow">else</span></div>
+<div class="line"><a name="l02054"></a><span class="lineno"> 2054</span>&#160;            <a class="code" href="classolc_1_1_pixel_game_engine.html#a95ab046b4b0843565bddd0e009a25569">Draw</a>(x, y, p);</div>
+<div class="line"><a name="l02055"></a><span class="lineno"> 2055</span>&#160;    }</div>
+<div class="line"><a name="l02056"></a><span class="lineno"> 2056</span>&#160; </div>
+<div class="line"><a name="l02057"></a><span class="lineno"> 2057</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_pixel_game_engine.html#a220f523e520e317f5656c4d3df777163">PixelGameEngine::DrawRect</a>(<span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vi2d</a>&amp; pos, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vi2d</a>&amp; size, Pixel p)</div>
+<div class="line"><a name="l02058"></a><span class="lineno"> 2058</span>&#160;    { <a class="code" href="classolc_1_1_pixel_game_engine.html#a220f523e520e317f5656c4d3df777163">DrawRect</a>(pos.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a>, pos.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a>, size.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a>, size.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a>, p); }</div>
+<div class="line"><a name="l02059"></a><span class="lineno"> 2059</span>&#160; </div>
+<div class="line"><a name="l02060"></a><span class="lineno"> 2060</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_pixel_game_engine.html#a220f523e520e317f5656c4d3df777163">PixelGameEngine::DrawRect</a>(int32_t x, int32_t y, int32_t w, int32_t h, Pixel p)</div>
+<div class="line"><a name="l02061"></a><span class="lineno"> 2061</span>&#160;    {</div>
+<div class="line"><a name="l02062"></a><span class="lineno"> 2062</span>&#160;        <a class="code" href="classolc_1_1_pixel_game_engine.html#a131877968123c843374f079814503d22">DrawLine</a>(x, y, x + w, y, p);</div>
+<div class="line"><a name="l02063"></a><span class="lineno"> 2063</span>&#160;        <a class="code" href="classolc_1_1_pixel_game_engine.html#a131877968123c843374f079814503d22">DrawLine</a>(x + w, y, x + w, y + h, p);</div>
+<div class="line"><a name="l02064"></a><span class="lineno"> 2064</span>&#160;        <a class="code" href="classolc_1_1_pixel_game_engine.html#a131877968123c843374f079814503d22">DrawLine</a>(x + w, y + h, x, y + h, p);</div>
+<div class="line"><a name="l02065"></a><span class="lineno"> 2065</span>&#160;        <a class="code" href="classolc_1_1_pixel_game_engine.html#a131877968123c843374f079814503d22">DrawLine</a>(x, y + h, x, y, p);</div>
+<div class="line"><a name="l02066"></a><span class="lineno"> 2066</span>&#160;    }</div>
+<div class="line"><a name="l02067"></a><span class="lineno"> 2067</span>&#160; </div>
+<div class="line"><a name="l02068"></a><span class="lineno"> 2068</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_pixel_game_engine.html#aeb70b40809815fab4e1017e25c7ab161">PixelGameEngine::Clear</a>(Pixel p)</div>
+<div class="line"><a name="l02069"></a><span class="lineno"> 2069</span>&#160;    {</div>
+<div class="line"><a name="l02070"></a><span class="lineno"> 2070</span>&#160;        <span class="keywordtype">int</span> pixels = <a class="code" href="classolc_1_1_pixel_game_engine.html#a45d918f65f5fee13e654878d8271326b">GetDrawTargetWidth</a>() * <a class="code" href="classolc_1_1_pixel_game_engine.html#a4ee3dbff01900d71e62bfe499b1c83c3">GetDrawTargetHeight</a>();</div>
+<div class="line"><a name="l02071"></a><span class="lineno"> 2071</span>&#160;        Pixel* m = <a class="code" href="classolc_1_1_pixel_game_engine.html#a5fd95bd9571bc3ed3fd5d7d110e48cff">GetDrawTarget</a>()-&gt;<a class="code" href="classolc_1_1_sprite.html#ad8fcc6bbf8a785aa0bb9d00bf3cfdff2">GetData</a>();</div>
+<div class="line"><a name="l02072"></a><span class="lineno"> 2072</span>&#160;        <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; pixels; i++) m[i] = p;</div>
+<div class="line"><a name="l02073"></a><span class="lineno"> 2073</span>&#160;    }</div>
+<div class="line"><a name="l02074"></a><span class="lineno"> 2074</span>&#160; </div>
+<div class="line"><a name="l02075"></a><span class="lineno"> 2075</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_pixel_game_engine.html#aed9a3f6bd349e091728a329ee42932bf">PixelGameEngine::ClearBuffer</a>(Pixel p, <span class="keywordtype">bool</span> bDepth)</div>
+<div class="line"><a name="l02076"></a><span class="lineno"> 2076</span>&#160;    { renderer-&gt;ClearBuffer(p, bDepth); }</div>
+<div class="line"><a name="l02077"></a><span class="lineno"> 2077</span>&#160; </div>
+<div class="line"><a name="l02078"></a><span class="lineno"> 2078</span>&#160;    <a class="code" href="classolc_1_1_sprite.html">olc::Sprite</a>* <a class="code" href="classolc_1_1_pixel_game_engine.html#abab955edc6d1ec6023a7806509582f52">PixelGameEngine::GetFontSprite</a>()</div>
+<div class="line"><a name="l02079"></a><span class="lineno"> 2079</span>&#160;    { <span class="keywordflow">return</span> fontSprite; }</div>
+<div class="line"><a name="l02080"></a><span class="lineno"> 2080</span>&#160; </div>
+<div class="line"><a name="l02081"></a><span class="lineno"> 2081</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_pixel_game_engine.html#a6b5e218bb4360f27a470f9e821721331">PixelGameEngine::FillRect</a>(<span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vi2d</a>&amp; pos, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vi2d</a>&amp; size, Pixel p)</div>
+<div class="line"><a name="l02082"></a><span class="lineno"> 2082</span>&#160;    { <a class="code" href="classolc_1_1_pixel_game_engine.html#a6b5e218bb4360f27a470f9e821721331">FillRect</a>(pos.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a>, pos.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a>, size.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a>, size.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a>, p); }</div>
+<div class="line"><a name="l02083"></a><span class="lineno"> 2083</span>&#160; </div>
+<div class="line"><a name="l02084"></a><span class="lineno"> 2084</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_pixel_game_engine.html#a6b5e218bb4360f27a470f9e821721331">PixelGameEngine::FillRect</a>(int32_t x, int32_t y, int32_t w, int32_t h, Pixel p)</div>
+<div class="line"><a name="l02085"></a><span class="lineno"> 2085</span>&#160;    {</div>
+<div class="line"><a name="l02086"></a><span class="lineno"> 2086</span>&#160;        int32_t x2 = x + w;</div>
+<div class="line"><a name="l02087"></a><span class="lineno"> 2087</span>&#160;        int32_t y2 = y + h;</div>
+<div class="line"><a name="l02088"></a><span class="lineno"> 2088</span>&#160; </div>
+<div class="line"><a name="l02089"></a><span class="lineno"> 2089</span>&#160;        <span class="keywordflow">if</span> (x &lt; 0) x = 0;</div>
+<div class="line"><a name="l02090"></a><span class="lineno"> 2090</span>&#160;        <span class="keywordflow">if</span> (x &gt;= (int32_t)<a class="code" href="classolc_1_1_pixel_game_engine.html#a45d918f65f5fee13e654878d8271326b">GetDrawTargetWidth</a>()) x = (int32_t)<a class="code" href="classolc_1_1_pixel_game_engine.html#a45d918f65f5fee13e654878d8271326b">GetDrawTargetWidth</a>();</div>
+<div class="line"><a name="l02091"></a><span class="lineno"> 2091</span>&#160;        <span class="keywordflow">if</span> (y &lt; 0) y = 0;</div>
+<div class="line"><a name="l02092"></a><span class="lineno"> 2092</span>&#160;        <span class="keywordflow">if</span> (y &gt;= (int32_t)<a class="code" href="classolc_1_1_pixel_game_engine.html#a4ee3dbff01900d71e62bfe499b1c83c3">GetDrawTargetHeight</a>()) y = (int32_t)<a class="code" href="classolc_1_1_pixel_game_engine.html#a4ee3dbff01900d71e62bfe499b1c83c3">GetDrawTargetHeight</a>();</div>
+<div class="line"><a name="l02093"></a><span class="lineno"> 2093</span>&#160; </div>
+<div class="line"><a name="l02094"></a><span class="lineno"> 2094</span>&#160;        <span class="keywordflow">if</span> (x2 &lt; 0) x2 = 0;</div>
+<div class="line"><a name="l02095"></a><span class="lineno"> 2095</span>&#160;        <span class="keywordflow">if</span> (x2 &gt;= (int32_t)<a class="code" href="classolc_1_1_pixel_game_engine.html#a45d918f65f5fee13e654878d8271326b">GetDrawTargetWidth</a>()) x2 = (int32_t)<a class="code" href="classolc_1_1_pixel_game_engine.html#a45d918f65f5fee13e654878d8271326b">GetDrawTargetWidth</a>();</div>
+<div class="line"><a name="l02096"></a><span class="lineno"> 2096</span>&#160;        <span class="keywordflow">if</span> (y2 &lt; 0) y2 = 0;</div>
+<div class="line"><a name="l02097"></a><span class="lineno"> 2097</span>&#160;        <span class="keywordflow">if</span> (y2 &gt;= (int32_t)<a class="code" href="classolc_1_1_pixel_game_engine.html#a4ee3dbff01900d71e62bfe499b1c83c3">GetDrawTargetHeight</a>()) y2 = (int32_t)<a class="code" href="classolc_1_1_pixel_game_engine.html#a4ee3dbff01900d71e62bfe499b1c83c3">GetDrawTargetHeight</a>();</div>
+<div class="line"><a name="l02098"></a><span class="lineno"> 2098</span>&#160; </div>
+<div class="line"><a name="l02099"></a><span class="lineno"> 2099</span>&#160;        <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = x; i &lt; x2; i++)</div>
+<div class="line"><a name="l02100"></a><span class="lineno"> 2100</span>&#160;            <span class="keywordflow">for</span> (<span class="keywordtype">int</span> j = y; j &lt; y2; j++)</div>
+<div class="line"><a name="l02101"></a><span class="lineno"> 2101</span>&#160;                <a class="code" href="classolc_1_1_pixel_game_engine.html#a95ab046b4b0843565bddd0e009a25569">Draw</a>(i, j, p);</div>
+<div class="line"><a name="l02102"></a><span class="lineno"> 2102</span>&#160;    }</div>
+<div class="line"><a name="l02103"></a><span class="lineno"> 2103</span>&#160; </div>
+<div class="line"><a name="l02104"></a><span class="lineno"> 2104</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_pixel_game_engine.html#a2bddba9e808a8702f6af354007302c16">PixelGameEngine::DrawTriangle</a>(<span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vi2d</a>&amp; pos1, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vi2d</a>&amp; pos2, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vi2d</a>&amp; pos3, Pixel p)</div>
+<div class="line"><a name="l02105"></a><span class="lineno"> 2105</span>&#160;    { <a class="code" href="classolc_1_1_pixel_game_engine.html#a2bddba9e808a8702f6af354007302c16">DrawTriangle</a>(pos1.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a>, pos1.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a>, pos2.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a>, pos2.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a>, pos3.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a>, pos3.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a>, p); }</div>
+<div class="line"><a name="l02106"></a><span class="lineno"> 2106</span>&#160; </div>
+<div class="line"><a name="l02107"></a><span class="lineno"> 2107</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_pixel_game_engine.html#a2bddba9e808a8702f6af354007302c16">PixelGameEngine::DrawTriangle</a>(int32_t x1, int32_t y1, int32_t x2, int32_t y2, int32_t x3, int32_t y3, Pixel p)</div>
+<div class="line"><a name="l02108"></a><span class="lineno"> 2108</span>&#160;    {</div>
+<div class="line"><a name="l02109"></a><span class="lineno"> 2109</span>&#160;        <a class="code" href="classolc_1_1_pixel_game_engine.html#a131877968123c843374f079814503d22">DrawLine</a>(x1, y1, x2, y2, p);</div>
+<div class="line"><a name="l02110"></a><span class="lineno"> 2110</span>&#160;        <a class="code" href="classolc_1_1_pixel_game_engine.html#a131877968123c843374f079814503d22">DrawLine</a>(x2, y2, x3, y3, p);</div>
+<div class="line"><a name="l02111"></a><span class="lineno"> 2111</span>&#160;        <a class="code" href="classolc_1_1_pixel_game_engine.html#a131877968123c843374f079814503d22">DrawLine</a>(x3, y3, x1, y1, p);</div>
+<div class="line"><a name="l02112"></a><span class="lineno"> 2112</span>&#160;    }</div>
+<div class="line"><a name="l02113"></a><span class="lineno"> 2113</span>&#160; </div>
+<div class="line"><a name="l02114"></a><span class="lineno"> 2114</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_pixel_game_engine.html#ad31abffe6c4d0b864b8f7762c33b7a7d">PixelGameEngine::FillTriangle</a>(<span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vi2d</a>&amp; pos1, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vi2d</a>&amp; pos2, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vi2d</a>&amp; pos3, Pixel p)</div>
+<div class="line"><a name="l02115"></a><span class="lineno"> 2115</span>&#160;    { <a class="code" href="classolc_1_1_pixel_game_engine.html#ad31abffe6c4d0b864b8f7762c33b7a7d">FillTriangle</a>(pos1.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a>, pos1.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a>, pos2.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a>, pos2.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a>, pos3.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a>, pos3.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a>, p); }</div>
+<div class="line"><a name="l02116"></a><span class="lineno"> 2116</span>&#160; </div>
+<div class="line"><a name="l02117"></a><span class="lineno"> 2117</span>&#160;    <span class="comment">// https://www.avrfreaks.net/sites/default/files/triangles.c</span></div>
+<div class="line"><a name="l02118"></a><span class="lineno"> 2118</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_pixel_game_engine.html#ad31abffe6c4d0b864b8f7762c33b7a7d">PixelGameEngine::FillTriangle</a>(int32_t x1, int32_t y1, int32_t x2, int32_t y2, int32_t x3, int32_t y3, Pixel p)</div>
+<div class="line"><a name="l02119"></a><span class="lineno"> 2119</span>&#160;    {</div>
+<div class="line"><a name="l02120"></a><span class="lineno"> 2120</span>&#160;        <span class="keyword">auto</span> drawline = [&amp;](<span class="keywordtype">int</span> sx, <span class="keywordtype">int</span> ex, <span class="keywordtype">int</span> ny) { <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = sx; i &lt;= ex; i++) <a class="code" href="classolc_1_1_pixel_game_engine.html#a95ab046b4b0843565bddd0e009a25569">Draw</a>(i, ny, p); };</div>
+<div class="line"><a name="l02121"></a><span class="lineno"> 2121</span>&#160; </div>
+<div class="line"><a name="l02122"></a><span class="lineno"> 2122</span>&#160;        <span class="keywordtype">int</span> t1x, t2x, y, minx, maxx, t1xp, t2xp;</div>
+<div class="line"><a name="l02123"></a><span class="lineno"> 2123</span>&#160;        <span class="keywordtype">bool</span> changed1 = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l02124"></a><span class="lineno"> 2124</span>&#160;        <span class="keywordtype">bool</span> changed2 = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l02125"></a><span class="lineno"> 2125</span>&#160;        <span class="keywordtype">int</span> signx1, signx2, dx1, dy1, dx2, dy2;</div>
+<div class="line"><a name="l02126"></a><span class="lineno"> 2126</span>&#160;        <span class="keywordtype">int</span> e1, e2;</div>
+<div class="line"><a name="l02127"></a><span class="lineno"> 2127</span>&#160;        <span class="comment">// Sort vertices</span></div>
+<div class="line"><a name="l02128"></a><span class="lineno"> 2128</span>&#160;        <span class="keywordflow">if</span> (y1 &gt; y2) { std::swap(y1, y2); std::swap(x1, x2); }</div>
+<div class="line"><a name="l02129"></a><span class="lineno"> 2129</span>&#160;        <span class="keywordflow">if</span> (y1 &gt; y3) { std::swap(y1, y3); std::swap(x1, x3); }</div>
+<div class="line"><a name="l02130"></a><span class="lineno"> 2130</span>&#160;        <span class="keywordflow">if</span> (y2 &gt; y3) { std::swap(y2, y3); std::swap(x2, x3); }</div>
+<div class="line"><a name="l02131"></a><span class="lineno"> 2131</span>&#160; </div>
+<div class="line"><a name="l02132"></a><span class="lineno"> 2132</span>&#160;        t1x = t2x = x1; y = y1;   <span class="comment">// Starting points</span></div>
+<div class="line"><a name="l02133"></a><span class="lineno"> 2133</span>&#160;        dx1 = (int)(x2 - x1);</div>
+<div class="line"><a name="l02134"></a><span class="lineno"> 2134</span>&#160;        <span class="keywordflow">if</span> (dx1 &lt; 0) { dx1 = -dx1; signx1 = -1; }</div>
+<div class="line"><a name="l02135"></a><span class="lineno"> 2135</span>&#160;        <span class="keywordflow">else</span> signx1 = 1;</div>
+<div class="line"><a name="l02136"></a><span class="lineno"> 2136</span>&#160;        dy1 = (int)(y2 - y1);</div>
+<div class="line"><a name="l02137"></a><span class="lineno"> 2137</span>&#160; </div>
+<div class="line"><a name="l02138"></a><span class="lineno"> 2138</span>&#160;        dx2 = (int)(x3 - x1);</div>
+<div class="line"><a name="l02139"></a><span class="lineno"> 2139</span>&#160;        <span class="keywordflow">if</span> (dx2 &lt; 0) { dx2 = -dx2; signx2 = -1; }</div>
+<div class="line"><a name="l02140"></a><span class="lineno"> 2140</span>&#160;        <span class="keywordflow">else</span> signx2 = 1;</div>
+<div class="line"><a name="l02141"></a><span class="lineno"> 2141</span>&#160;        dy2 = (int)(y3 - y1);</div>
+<div class="line"><a name="l02142"></a><span class="lineno"> 2142</span>&#160; </div>
+<div class="line"><a name="l02143"></a><span class="lineno"> 2143</span>&#160;        <span class="keywordflow">if</span> (dy1 &gt; dx1) { std::swap(dx1, dy1); changed1 = <span class="keyword">true</span>; }</div>
+<div class="line"><a name="l02144"></a><span class="lineno"> 2144</span>&#160;        <span class="keywordflow">if</span> (dy2 &gt; dx2) { std::swap(dy2, dx2); changed2 = <span class="keyword">true</span>; }</div>
+<div class="line"><a name="l02145"></a><span class="lineno"> 2145</span>&#160; </div>
+<div class="line"><a name="l02146"></a><span class="lineno"> 2146</span>&#160;        e2 = (int)(dx2 &gt;&gt; 1);</div>
+<div class="line"><a name="l02147"></a><span class="lineno"> 2147</span>&#160;        <span class="comment">// Flat top, just process the second half</span></div>
+<div class="line"><a name="l02148"></a><span class="lineno"> 2148</span>&#160;        <span class="keywordflow">if</span> (y1 == y2) <span class="keywordflow">goto</span> next;</div>
+<div class="line"><a name="l02149"></a><span class="lineno"> 2149</span>&#160;        e1 = (int)(dx1 &gt;&gt; 1);</div>
+<div class="line"><a name="l02150"></a><span class="lineno"> 2150</span>&#160; </div>
+<div class="line"><a name="l02151"></a><span class="lineno"> 2151</span>&#160;        <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; dx1;) {</div>
+<div class="line"><a name="l02152"></a><span class="lineno"> 2152</span>&#160;            t1xp = 0; t2xp = 0;</div>
+<div class="line"><a name="l02153"></a><span class="lineno"> 2153</span>&#160;            <span class="keywordflow">if</span> (t1x &lt; t2x) { minx = t1x; maxx = t2x; }</div>
+<div class="line"><a name="l02154"></a><span class="lineno"> 2154</span>&#160;            <span class="keywordflow">else</span> { minx = t2x; maxx = t1x; }</div>
+<div class="line"><a name="l02155"></a><span class="lineno"> 2155</span>&#160;            <span class="comment">// process first line until y value is about to change</span></div>
+<div class="line"><a name="l02156"></a><span class="lineno"> 2156</span>&#160;            <span class="keywordflow">while</span> (i &lt; dx1) {</div>
+<div class="line"><a name="l02157"></a><span class="lineno"> 2157</span>&#160;                i++;</div>
+<div class="line"><a name="l02158"></a><span class="lineno"> 2158</span>&#160;                e1 += dy1;</div>
+<div class="line"><a name="l02159"></a><span class="lineno"> 2159</span>&#160;                <span class="keywordflow">while</span> (e1 &gt;= dx1) {</div>
+<div class="line"><a name="l02160"></a><span class="lineno"> 2160</span>&#160;                    e1 -= dx1;</div>
+<div class="line"><a name="l02161"></a><span class="lineno"> 2161</span>&#160;                    <span class="keywordflow">if</span> (changed1) t1xp = signx1;<span class="comment">//t1x += signx1;</span></div>
+<div class="line"><a name="l02162"></a><span class="lineno"> 2162</span>&#160;                    <span class="keywordflow">else</span>          <span class="keywordflow">goto</span> next1;</div>
+<div class="line"><a name="l02163"></a><span class="lineno"> 2163</span>&#160;                }</div>
+<div class="line"><a name="l02164"></a><span class="lineno"> 2164</span>&#160;                <span class="keywordflow">if</span> (changed1) <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l02165"></a><span class="lineno"> 2165</span>&#160;                <span class="keywordflow">else</span> t1x += signx1;</div>
+<div class="line"><a name="l02166"></a><span class="lineno"> 2166</span>&#160;            }</div>
+<div class="line"><a name="l02167"></a><span class="lineno"> 2167</span>&#160;            <span class="comment">// Move line</span></div>
+<div class="line"><a name="l02168"></a><span class="lineno"> 2168</span>&#160;        next1:</div>
+<div class="line"><a name="l02169"></a><span class="lineno"> 2169</span>&#160;            <span class="comment">// process second line until y value is about to change</span></div>
+<div class="line"><a name="l02170"></a><span class="lineno"> 2170</span>&#160;            <span class="keywordflow">while</span> (1) {</div>
+<div class="line"><a name="l02171"></a><span class="lineno"> 2171</span>&#160;                e2 += dy2;</div>
+<div class="line"><a name="l02172"></a><span class="lineno"> 2172</span>&#160;                <span class="keywordflow">while</span> (e2 &gt;= dx2) {</div>
+<div class="line"><a name="l02173"></a><span class="lineno"> 2173</span>&#160;                    e2 -= dx2;</div>
+<div class="line"><a name="l02174"></a><span class="lineno"> 2174</span>&#160;                    <span class="keywordflow">if</span> (changed2) t2xp = signx2;<span class="comment">//t2x += signx2;</span></div>
+<div class="line"><a name="l02175"></a><span class="lineno"> 2175</span>&#160;                    <span class="keywordflow">else</span>          <span class="keywordflow">goto</span> next2;</div>
+<div class="line"><a name="l02176"></a><span class="lineno"> 2176</span>&#160;                }</div>
+<div class="line"><a name="l02177"></a><span class="lineno"> 2177</span>&#160;                <span class="keywordflow">if</span> (changed2)     <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l02178"></a><span class="lineno"> 2178</span>&#160;                <span class="keywordflow">else</span>              t2x += signx2;</div>
+<div class="line"><a name="l02179"></a><span class="lineno"> 2179</span>&#160;            }</div>
+<div class="line"><a name="l02180"></a><span class="lineno"> 2180</span>&#160;        next2:</div>
+<div class="line"><a name="l02181"></a><span class="lineno"> 2181</span>&#160;            <span class="keywordflow">if</span> (minx &gt; t1x) minx = t1x;</div>
+<div class="line"><a name="l02182"></a><span class="lineno"> 2182</span>&#160;            <span class="keywordflow">if</span> (minx &gt; t2x) minx = t2x;</div>
+<div class="line"><a name="l02183"></a><span class="lineno"> 2183</span>&#160;            <span class="keywordflow">if</span> (maxx &lt; t1x) maxx = t1x;</div>
+<div class="line"><a name="l02184"></a><span class="lineno"> 2184</span>&#160;            <span class="keywordflow">if</span> (maxx &lt; t2x) maxx = t2x;</div>
+<div class="line"><a name="l02185"></a><span class="lineno"> 2185</span>&#160;            drawline(minx, maxx, y);    <span class="comment">// Draw line from min to max points found on the y</span></div>
+<div class="line"><a name="l02186"></a><span class="lineno"> 2186</span>&#160;                                        <span class="comment">// Now increase y</span></div>
+<div class="line"><a name="l02187"></a><span class="lineno"> 2187</span>&#160;            <span class="keywordflow">if</span> (!changed1) t1x += signx1;</div>
+<div class="line"><a name="l02188"></a><span class="lineno"> 2188</span>&#160;            t1x += t1xp;</div>
+<div class="line"><a name="l02189"></a><span class="lineno"> 2189</span>&#160;            <span class="keywordflow">if</span> (!changed2) t2x += signx2;</div>
+<div class="line"><a name="l02190"></a><span class="lineno"> 2190</span>&#160;            t2x += t2xp;</div>
+<div class="line"><a name="l02191"></a><span class="lineno"> 2191</span>&#160;            y += 1;</div>
+<div class="line"><a name="l02192"></a><span class="lineno"> 2192</span>&#160;            <span class="keywordflow">if</span> (y == y2) <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l02193"></a><span class="lineno"> 2193</span>&#160;        }</div>
+<div class="line"><a name="l02194"></a><span class="lineno"> 2194</span>&#160;    next:</div>
+<div class="line"><a name="l02195"></a><span class="lineno"> 2195</span>&#160;        <span class="comment">// Second half</span></div>
+<div class="line"><a name="l02196"></a><span class="lineno"> 2196</span>&#160;        dx1 = (int)(x3 - x2); <span class="keywordflow">if</span> (dx1 &lt; 0) { dx1 = -dx1; signx1 = -1; }</div>
+<div class="line"><a name="l02197"></a><span class="lineno"> 2197</span>&#160;        <span class="keywordflow">else</span> signx1 = 1;</div>
+<div class="line"><a name="l02198"></a><span class="lineno"> 2198</span>&#160;        dy1 = (int)(y3 - y2);</div>
+<div class="line"><a name="l02199"></a><span class="lineno"> 2199</span>&#160;        t1x = x2;</div>
+<div class="line"><a name="l02200"></a><span class="lineno"> 2200</span>&#160; </div>
+<div class="line"><a name="l02201"></a><span class="lineno"> 2201</span>&#160;        <span class="keywordflow">if</span> (dy1 &gt; dx1) {   <span class="comment">// swap values</span></div>
+<div class="line"><a name="l02202"></a><span class="lineno"> 2202</span>&#160;            std::swap(dy1, dx1);</div>
+<div class="line"><a name="l02203"></a><span class="lineno"> 2203</span>&#160;            changed1 = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l02204"></a><span class="lineno"> 2204</span>&#160;        }</div>
+<div class="line"><a name="l02205"></a><span class="lineno"> 2205</span>&#160;        <span class="keywordflow">else</span> changed1 = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l02206"></a><span class="lineno"> 2206</span>&#160; </div>
+<div class="line"><a name="l02207"></a><span class="lineno"> 2207</span>&#160;        e1 = (int)(dx1 &gt;&gt; 1);</div>
+<div class="line"><a name="l02208"></a><span class="lineno"> 2208</span>&#160; </div>
+<div class="line"><a name="l02209"></a><span class="lineno"> 2209</span>&#160;        <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt;= dx1; i++) {</div>
+<div class="line"><a name="l02210"></a><span class="lineno"> 2210</span>&#160;            t1xp = 0; t2xp = 0;</div>
+<div class="line"><a name="l02211"></a><span class="lineno"> 2211</span>&#160;            <span class="keywordflow">if</span> (t1x &lt; t2x) { minx = t1x; maxx = t2x; }</div>
+<div class="line"><a name="l02212"></a><span class="lineno"> 2212</span>&#160;            <span class="keywordflow">else</span> { minx = t2x; maxx = t1x; }</div>
+<div class="line"><a name="l02213"></a><span class="lineno"> 2213</span>&#160;            <span class="comment">// process first line until y value is about to change</span></div>
+<div class="line"><a name="l02214"></a><span class="lineno"> 2214</span>&#160;            <span class="keywordflow">while</span> (i &lt; dx1) {</div>
+<div class="line"><a name="l02215"></a><span class="lineno"> 2215</span>&#160;                e1 += dy1;</div>
+<div class="line"><a name="l02216"></a><span class="lineno"> 2216</span>&#160;                <span class="keywordflow">while</span> (e1 &gt;= dx1) {</div>
+<div class="line"><a name="l02217"></a><span class="lineno"> 2217</span>&#160;                    e1 -= dx1;</div>
+<div class="line"><a name="l02218"></a><span class="lineno"> 2218</span>&#160;                    <span class="keywordflow">if</span> (changed1) { t1xp = signx1; <span class="keywordflow">break</span>; }<span class="comment">//t1x += signx1;</span></div>
+<div class="line"><a name="l02219"></a><span class="lineno"> 2219</span>&#160;                    <span class="keywordflow">else</span>          <span class="keywordflow">goto</span> next3;</div>
+<div class="line"><a name="l02220"></a><span class="lineno"> 2220</span>&#160;                }</div>
+<div class="line"><a name="l02221"></a><span class="lineno"> 2221</span>&#160;                <span class="keywordflow">if</span> (changed1) <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l02222"></a><span class="lineno"> 2222</span>&#160;                <span class="keywordflow">else</span>          t1x += signx1;</div>
+<div class="line"><a name="l02223"></a><span class="lineno"> 2223</span>&#160;                <span class="keywordflow">if</span> (i &lt; dx1) i++;</div>
+<div class="line"><a name="l02224"></a><span class="lineno"> 2224</span>&#160;            }</div>
+<div class="line"><a name="l02225"></a><span class="lineno"> 2225</span>&#160;        next3:</div>
+<div class="line"><a name="l02226"></a><span class="lineno"> 2226</span>&#160;            <span class="comment">// process second line until y value is about to change</span></div>
+<div class="line"><a name="l02227"></a><span class="lineno"> 2227</span>&#160;            <span class="keywordflow">while</span> (t2x != x3) {</div>
+<div class="line"><a name="l02228"></a><span class="lineno"> 2228</span>&#160;                e2 += dy2;</div>
+<div class="line"><a name="l02229"></a><span class="lineno"> 2229</span>&#160;                <span class="keywordflow">while</span> (e2 &gt;= dx2) {</div>
+<div class="line"><a name="l02230"></a><span class="lineno"> 2230</span>&#160;                    e2 -= dx2;</div>
+<div class="line"><a name="l02231"></a><span class="lineno"> 2231</span>&#160;                    <span class="keywordflow">if</span> (changed2) t2xp = signx2;</div>
+<div class="line"><a name="l02232"></a><span class="lineno"> 2232</span>&#160;                    <span class="keywordflow">else</span>          <span class="keywordflow">goto</span> next4;</div>
+<div class="line"><a name="l02233"></a><span class="lineno"> 2233</span>&#160;                }</div>
+<div class="line"><a name="l02234"></a><span class="lineno"> 2234</span>&#160;                <span class="keywordflow">if</span> (changed2)     <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l02235"></a><span class="lineno"> 2235</span>&#160;                <span class="keywordflow">else</span>              t2x += signx2;</div>
+<div class="line"><a name="l02236"></a><span class="lineno"> 2236</span>&#160;            }</div>
+<div class="line"><a name="l02237"></a><span class="lineno"> 2237</span>&#160;        next4:</div>
+<div class="line"><a name="l02238"></a><span class="lineno"> 2238</span>&#160; </div>
+<div class="line"><a name="l02239"></a><span class="lineno"> 2239</span>&#160;            <span class="keywordflow">if</span> (minx &gt; t1x) minx = t1x;</div>
+<div class="line"><a name="l02240"></a><span class="lineno"> 2240</span>&#160;            <span class="keywordflow">if</span> (minx &gt; t2x) minx = t2x;</div>
+<div class="line"><a name="l02241"></a><span class="lineno"> 2241</span>&#160;            <span class="keywordflow">if</span> (maxx &lt; t1x) maxx = t1x;</div>
+<div class="line"><a name="l02242"></a><span class="lineno"> 2242</span>&#160;            <span class="keywordflow">if</span> (maxx &lt; t2x) maxx = t2x;</div>
+<div class="line"><a name="l02243"></a><span class="lineno"> 2243</span>&#160;            drawline(minx, maxx, y);</div>
+<div class="line"><a name="l02244"></a><span class="lineno"> 2244</span>&#160;            <span class="keywordflow">if</span> (!changed1) t1x += signx1;</div>
+<div class="line"><a name="l02245"></a><span class="lineno"> 2245</span>&#160;            t1x += t1xp;</div>
+<div class="line"><a name="l02246"></a><span class="lineno"> 2246</span>&#160;            <span class="keywordflow">if</span> (!changed2) t2x += signx2;</div>
+<div class="line"><a name="l02247"></a><span class="lineno"> 2247</span>&#160;            t2x += t2xp;</div>
+<div class="line"><a name="l02248"></a><span class="lineno"> 2248</span>&#160;            y += 1;</div>
+<div class="line"><a name="l02249"></a><span class="lineno"> 2249</span>&#160;            <span class="keywordflow">if</span> (y &gt; y3) <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l02250"></a><span class="lineno"> 2250</span>&#160;        }</div>
+<div class="line"><a name="l02251"></a><span class="lineno"> 2251</span>&#160;    }</div>
+<div class="line"><a name="l02252"></a><span class="lineno"> 2252</span>&#160; </div>
+<div class="line"><a name="l02253"></a><span class="lineno"> 2253</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_pixel_game_engine.html#a5bae460b03f2837e39fdee3a0bbb6f99">PixelGameEngine::DrawSprite</a>(<span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vi2d</a>&amp; pos, Sprite* sprite, uint32_t scale, uint8_t flip)</div>
+<div class="line"><a name="l02254"></a><span class="lineno"> 2254</span>&#160;    { <a class="code" href="classolc_1_1_pixel_game_engine.html#a5bae460b03f2837e39fdee3a0bbb6f99">DrawSprite</a>(pos.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a>, pos.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a>, sprite, scale, flip); }</div>
+<div class="line"><a name="l02255"></a><span class="lineno"> 2255</span>&#160; </div>
+<div class="line"><a name="l02256"></a><span class="lineno"> 2256</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_pixel_game_engine.html#a5bae460b03f2837e39fdee3a0bbb6f99">PixelGameEngine::DrawSprite</a>(int32_t x, int32_t y, Sprite* sprite, uint32_t scale, uint8_t flip)</div>
+<div class="line"><a name="l02257"></a><span class="lineno"> 2257</span>&#160;    {</div>
+<div class="line"><a name="l02258"></a><span class="lineno"> 2258</span>&#160;        <span class="keywordflow">if</span> (sprite == <span class="keyword">nullptr</span>)</div>
+<div class="line"><a name="l02259"></a><span class="lineno"> 2259</span>&#160;            <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l02260"></a><span class="lineno"> 2260</span>&#160; </div>
+<div class="line"><a name="l02261"></a><span class="lineno"> 2261</span>&#160;        int32_t fxs = 0, fxm = 1, fx = 0;</div>
+<div class="line"><a name="l02262"></a><span class="lineno"> 2262</span>&#160;        int32_t fys = 0, fym = 1, fy = 0;</div>
+<div class="line"><a name="l02263"></a><span class="lineno"> 2263</span>&#160;        <span class="keywordflow">if</span> (flip &amp; olc::Sprite::Flip::HORIZ) { fxs = sprite-&gt;width - 1; fxm = -1; }</div>
+<div class="line"><a name="l02264"></a><span class="lineno"> 2264</span>&#160;        <span class="keywordflow">if</span> (flip &amp; olc::Sprite::Flip::VERT) { fys = sprite-&gt;height - 1; fym = -1; }</div>
+<div class="line"><a name="l02265"></a><span class="lineno"> 2265</span>&#160; </div>
+<div class="line"><a name="l02266"></a><span class="lineno"> 2266</span>&#160;        <span class="keywordflow">if</span> (scale &gt; 1)</div>
+<div class="line"><a name="l02267"></a><span class="lineno"> 2267</span>&#160;        {</div>
+<div class="line"><a name="l02268"></a><span class="lineno"> 2268</span>&#160;            fx = fxs;</div>
+<div class="line"><a name="l02269"></a><span class="lineno"> 2269</span>&#160;            <span class="keywordflow">for</span> (int32_t i = 0; i &lt; sprite-&gt;width; i++, fx += fxm)</div>
+<div class="line"><a name="l02270"></a><span class="lineno"> 2270</span>&#160;            {</div>
+<div class="line"><a name="l02271"></a><span class="lineno"> 2271</span>&#160;                fy = fys;</div>
+<div class="line"><a name="l02272"></a><span class="lineno"> 2272</span>&#160;                <span class="keywordflow">for</span> (int32_t j = 0; j &lt; sprite-&gt;height; j++, fy += fym)</div>
+<div class="line"><a name="l02273"></a><span class="lineno"> 2273</span>&#160;                    <span class="keywordflow">for</span> (uint32_t is = 0; is &lt; scale; is++)</div>
+<div class="line"><a name="l02274"></a><span class="lineno"> 2274</span>&#160;                        <span class="keywordflow">for</span> (uint32_t js = 0; js &lt; scale; js++)</div>
+<div class="line"><a name="l02275"></a><span class="lineno"> 2275</span>&#160;                            <a class="code" href="classolc_1_1_pixel_game_engine.html#a95ab046b4b0843565bddd0e009a25569">Draw</a>(x + (i * scale) + is, y + (j * scale) + js, sprite-&gt;GetPixel(fx, fy));</div>
+<div class="line"><a name="l02276"></a><span class="lineno"> 2276</span>&#160;            }</div>
+<div class="line"><a name="l02277"></a><span class="lineno"> 2277</span>&#160;        }</div>
+<div class="line"><a name="l02278"></a><span class="lineno"> 2278</span>&#160;        <span class="keywordflow">else</span></div>
+<div class="line"><a name="l02279"></a><span class="lineno"> 2279</span>&#160;        {</div>
+<div class="line"><a name="l02280"></a><span class="lineno"> 2280</span>&#160;            fx = fxs;</div>
+<div class="line"><a name="l02281"></a><span class="lineno"> 2281</span>&#160;            <span class="keywordflow">for</span> (int32_t i = 0; i &lt; sprite-&gt;width; i++, fx += fxm)</div>
+<div class="line"><a name="l02282"></a><span class="lineno"> 2282</span>&#160;            {</div>
+<div class="line"><a name="l02283"></a><span class="lineno"> 2283</span>&#160;                fy = fys;</div>
+<div class="line"><a name="l02284"></a><span class="lineno"> 2284</span>&#160;                <span class="keywordflow">for</span> (int32_t j = 0; j &lt; sprite-&gt;height; j++, fy += fym)</div>
+<div class="line"><a name="l02285"></a><span class="lineno"> 2285</span>&#160;                    <a class="code" href="classolc_1_1_pixel_game_engine.html#a95ab046b4b0843565bddd0e009a25569">Draw</a>(x + i, y + j, sprite-&gt;GetPixel(fx, fy));</div>
+<div class="line"><a name="l02286"></a><span class="lineno"> 2286</span>&#160;            }</div>
+<div class="line"><a name="l02287"></a><span class="lineno"> 2287</span>&#160;        }</div>
+<div class="line"><a name="l02288"></a><span class="lineno"> 2288</span>&#160;    }</div>
+<div class="line"><a name="l02289"></a><span class="lineno"> 2289</span>&#160; </div>
+<div class="line"><a name="l02290"></a><span class="lineno"> 2290</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_pixel_game_engine.html#ab777dd885946b2dba5e8bef894c6868c">PixelGameEngine::DrawPartialSprite</a>(<span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vi2d</a>&amp; pos, Sprite* sprite, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vi2d</a>&amp; sourcepos, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vi2d</a>&amp; size, uint32_t scale, uint8_t flip)</div>
+<div class="line"><a name="l02291"></a><span class="lineno"> 2291</span>&#160;    { <a class="code" href="classolc_1_1_pixel_game_engine.html#ab777dd885946b2dba5e8bef894c6868c">DrawPartialSprite</a>(pos.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a>, pos.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a>, sprite, sourcepos.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a>, sourcepos.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a>, size.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a>, size.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a>, scale, flip); }</div>
+<div class="line"><a name="l02292"></a><span class="lineno"> 2292</span>&#160; </div>
+<div class="line"><a name="l02293"></a><span class="lineno"> 2293</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_pixel_game_engine.html#ab777dd885946b2dba5e8bef894c6868c">PixelGameEngine::DrawPartialSprite</a>(int32_t x, int32_t y, Sprite* sprite, int32_t ox, int32_t oy, int32_t w, int32_t h, uint32_t scale, uint8_t flip)</div>
+<div class="line"><a name="l02294"></a><span class="lineno"> 2294</span>&#160;    {</div>
+<div class="line"><a name="l02295"></a><span class="lineno"> 2295</span>&#160;        <span class="keywordflow">if</span> (sprite == <span class="keyword">nullptr</span>)</div>
+<div class="line"><a name="l02296"></a><span class="lineno"> 2296</span>&#160;            <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l02297"></a><span class="lineno"> 2297</span>&#160; </div>
+<div class="line"><a name="l02298"></a><span class="lineno"> 2298</span>&#160;        int32_t fxs = 0, fxm = 1, fx = 0;</div>
+<div class="line"><a name="l02299"></a><span class="lineno"> 2299</span>&#160;        int32_t fys = 0, fym = 1, fy = 0;</div>
+<div class="line"><a name="l02300"></a><span class="lineno"> 2300</span>&#160;        <span class="keywordflow">if</span> (flip &amp; olc::Sprite::Flip::HORIZ) { fxs = w - 1; fxm = -1; }</div>
+<div class="line"><a name="l02301"></a><span class="lineno"> 2301</span>&#160;        <span class="keywordflow">if</span> (flip &amp; olc::Sprite::Flip::VERT) { fys = h - 1; fym = -1; }</div>
+<div class="line"><a name="l02302"></a><span class="lineno"> 2302</span>&#160; </div>
+<div class="line"><a name="l02303"></a><span class="lineno"> 2303</span>&#160;        <span class="keywordflow">if</span> (scale &gt; 1)</div>
+<div class="line"><a name="l02304"></a><span class="lineno"> 2304</span>&#160;        {</div>
+<div class="line"><a name="l02305"></a><span class="lineno"> 2305</span>&#160;            fx = fxs;</div>
+<div class="line"><a name="l02306"></a><span class="lineno"> 2306</span>&#160;            <span class="keywordflow">for</span> (int32_t i = 0; i &lt; w; i++, fx += fxm)</div>
+<div class="line"><a name="l02307"></a><span class="lineno"> 2307</span>&#160;            {</div>
+<div class="line"><a name="l02308"></a><span class="lineno"> 2308</span>&#160;                fy = fys;</div>
+<div class="line"><a name="l02309"></a><span class="lineno"> 2309</span>&#160;                <span class="keywordflow">for</span> (int32_t j = 0; j &lt; h; j++, fy += fym)</div>
+<div class="line"><a name="l02310"></a><span class="lineno"> 2310</span>&#160;                    <span class="keywordflow">for</span> (uint32_t is = 0; is &lt; scale; is++)</div>
+<div class="line"><a name="l02311"></a><span class="lineno"> 2311</span>&#160;                        <span class="keywordflow">for</span> (uint32_t js = 0; js &lt; scale; js++)</div>
+<div class="line"><a name="l02312"></a><span class="lineno"> 2312</span>&#160;                            <a class="code" href="classolc_1_1_pixel_game_engine.html#a95ab046b4b0843565bddd0e009a25569">Draw</a>(x + (i * scale) + is, y + (j * scale) + js, sprite-&gt;GetPixel(fx + ox, fy + oy));</div>
+<div class="line"><a name="l02313"></a><span class="lineno"> 2313</span>&#160;            }</div>
+<div class="line"><a name="l02314"></a><span class="lineno"> 2314</span>&#160;        }</div>
+<div class="line"><a name="l02315"></a><span class="lineno"> 2315</span>&#160;        <span class="keywordflow">else</span></div>
+<div class="line"><a name="l02316"></a><span class="lineno"> 2316</span>&#160;        {</div>
+<div class="line"><a name="l02317"></a><span class="lineno"> 2317</span>&#160;            fx = fxs;</div>
+<div class="line"><a name="l02318"></a><span class="lineno"> 2318</span>&#160;            <span class="keywordflow">for</span> (int32_t i = 0; i &lt; w; i++, fx += fxm)</div>
+<div class="line"><a name="l02319"></a><span class="lineno"> 2319</span>&#160;            {</div>
+<div class="line"><a name="l02320"></a><span class="lineno"> 2320</span>&#160;                fy = fys;</div>
+<div class="line"><a name="l02321"></a><span class="lineno"> 2321</span>&#160;                <span class="keywordflow">for</span> (int32_t j = 0; j &lt; h; j++, fy += fym)</div>
+<div class="line"><a name="l02322"></a><span class="lineno"> 2322</span>&#160;                    <a class="code" href="classolc_1_1_pixel_game_engine.html#a95ab046b4b0843565bddd0e009a25569">Draw</a>(x + i, y + j, sprite-&gt;GetPixel(fx + ox, fy + oy));</div>
+<div class="line"><a name="l02323"></a><span class="lineno"> 2323</span>&#160;            }</div>
+<div class="line"><a name="l02324"></a><span class="lineno"> 2324</span>&#160;        }</div>
+<div class="line"><a name="l02325"></a><span class="lineno"> 2325</span>&#160;    }</div>
+<div class="line"><a name="l02326"></a><span class="lineno"> 2326</span>&#160; </div>
+<div class="line"><a name="l02327"></a><span class="lineno"> 2327</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_pixel_game_engine.html#a27ee96acff2c74d47f0cb78493aac756">PixelGameEngine::SetDecalMode</a>(<span class="keyword">const</span> <a class="code" href="namespaceolc.html#aeda642f63378f868193c28e8613138ca">olc::DecalMode</a>&amp; mode)</div>
+<div class="line"><a name="l02328"></a><span class="lineno"> 2328</span>&#160;    { nDecalMode = mode; }</div>
+<div class="line"><a name="l02329"></a><span class="lineno"> 2329</span>&#160; </div>
+<div class="line"><a name="l02330"></a><span class="lineno"> 2330</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_pixel_game_engine.html#a8bae37cf84b215e9e0416f058241aeba">PixelGameEngine::DrawPartialDecal</a>(<span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; pos, <a class="code" href="classolc_1_1_decal.html">olc::Decal</a>* decal, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; source_pos, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; source_size, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; scale, <span class="keyword">const</span> <a class="code" href="structolc_1_1_pixel.html">olc::Pixel</a>&amp; tint)</div>
+<div class="line"><a name="l02331"></a><span class="lineno"> 2331</span>&#160;    {</div>
+<div class="line"><a name="l02332"></a><span class="lineno"> 2332</span>&#160;        <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a> vScreenSpacePos =</div>
+<div class="line"><a name="l02333"></a><span class="lineno"> 2333</span>&#160;        {</div>
+<div class="line"><a name="l02334"></a><span class="lineno"> 2334</span>&#160;            (std::floor(pos.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a>) * vInvScreenSize.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a>) * 2.0f - 1.0f,</div>
+<div class="line"><a name="l02335"></a><span class="lineno"> 2335</span>&#160;            ((std::floor(pos.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a>) * vInvScreenSize.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a>) * 2.0f - 1.0f) * -1.0f</div>
+<div class="line"><a name="l02336"></a><span class="lineno"> 2336</span>&#160;        };</div>
+<div class="line"><a name="l02337"></a><span class="lineno"> 2337</span>&#160; </div>
+<div class="line"><a name="l02338"></a><span class="lineno"> 2338</span>&#160;        <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a> vScreenSpaceDim =</div>
+<div class="line"><a name="l02339"></a><span class="lineno"> 2339</span>&#160;        {</div>
+<div class="line"><a name="l02340"></a><span class="lineno"> 2340</span>&#160;            vScreenSpacePos.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a> + (2.0f * source_size.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a> * vInvScreenSize.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a>) * scale.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a>,</div>
+<div class="line"><a name="l02341"></a><span class="lineno"> 2341</span>&#160;            vScreenSpacePos.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a> - (2.0f * source_size.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a> * vInvScreenSize.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a>) * scale.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a></div>
+<div class="line"><a name="l02342"></a><span class="lineno"> 2342</span>&#160;        };</div>
+<div class="line"><a name="l02343"></a><span class="lineno"> 2343</span>&#160; </div>
+<div class="line"><a name="l02344"></a><span class="lineno"> 2344</span>&#160;        DecalInstance di;</div>
+<div class="line"><a name="l02345"></a><span class="lineno"> 2345</span>&#160;        di.points = 4;</div>
+<div class="line"><a name="l02346"></a><span class="lineno"> 2346</span>&#160;        di.decal = decal;</div>
+<div class="line"><a name="l02347"></a><span class="lineno"> 2347</span>&#160;        di.tint = { tint, tint, tint, tint };</div>
+<div class="line"><a name="l02348"></a><span class="lineno"> 2348</span>&#160;        di.pos = { { vScreenSpacePos.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a>, vScreenSpacePos.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a> }, { vScreenSpacePos.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a>, vScreenSpaceDim.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a> }, { vScreenSpaceDim.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a>, vScreenSpaceDim.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a> }, { vScreenSpaceDim.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a>, vScreenSpacePos.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a> } };</div>
+<div class="line"><a name="l02349"></a><span class="lineno"> 2349</span>&#160;        <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a> uvtl = source_pos * decal-&gt;<a class="code" href="classolc_1_1_decal.html#aff06190e3ca17446d373d5a93a3636c7">vUVScale</a>;</div>
+<div class="line"><a name="l02350"></a><span class="lineno"> 2350</span>&#160;        <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a> uvbr = uvtl + (source_size * decal-&gt;<a class="code" href="classolc_1_1_decal.html#aff06190e3ca17446d373d5a93a3636c7">vUVScale</a>);</div>
+<div class="line"><a name="l02351"></a><span class="lineno"> 2351</span>&#160;        di.uv = { { uvtl.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a>, uvtl.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a> }, { uvtl.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a>, uvbr.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a> }, { uvbr.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a>, uvbr.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a> }, { uvbr.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a>, uvtl.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a> } };</div>
+<div class="line"><a name="l02352"></a><span class="lineno"> 2352</span>&#160;        di.w = { 1,1,1,1 };</div>
+<div class="line"><a name="l02353"></a><span class="lineno"> 2353</span>&#160;        di.mode = nDecalMode;</div>
+<div class="line"><a name="l02354"></a><span class="lineno"> 2354</span>&#160;        vLayers[nTargetLayer].vecDecalInstance.push_back(di);</div>
+<div class="line"><a name="l02355"></a><span class="lineno"> 2355</span>&#160;    }</div>
+<div class="line"><a name="l02356"></a><span class="lineno"> 2356</span>&#160; </div>
+<div class="line"><a name="l02357"></a><span class="lineno"> 2357</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_pixel_game_engine.html#a8bae37cf84b215e9e0416f058241aeba">PixelGameEngine::DrawPartialDecal</a>(<span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; pos, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; size, <a class="code" href="classolc_1_1_decal.html">olc::Decal</a>* decal, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; source_pos, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; source_size, <span class="keyword">const</span> <a class="code" href="structolc_1_1_pixel.html">olc::Pixel</a>&amp; tint)</div>
+<div class="line"><a name="l02358"></a><span class="lineno"> 2358</span>&#160;    {</div>
+<div class="line"><a name="l02359"></a><span class="lineno"> 2359</span>&#160;        <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a> vScreenSpacePos =</div>
+<div class="line"><a name="l02360"></a><span class="lineno"> 2360</span>&#160;        {</div>
+<div class="line"><a name="l02361"></a><span class="lineno"> 2361</span>&#160;            (std::floor(pos.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a>) * vInvScreenSize.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a>) * 2.0f - 1.0f,</div>
+<div class="line"><a name="l02362"></a><span class="lineno"> 2362</span>&#160;            ((std::floor(pos.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a>) * vInvScreenSize.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a>) * 2.0f - 1.0f) * -1.0f</div>
+<div class="line"><a name="l02363"></a><span class="lineno"> 2363</span>&#160;        };</div>
+<div class="line"><a name="l02364"></a><span class="lineno"> 2364</span>&#160; </div>
+<div class="line"><a name="l02365"></a><span class="lineno"> 2365</span>&#160;        <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a> vScreenSpaceDim =</div>
+<div class="line"><a name="l02366"></a><span class="lineno"> 2366</span>&#160;        {</div>
+<div class="line"><a name="l02367"></a><span class="lineno"> 2367</span>&#160;            vScreenSpacePos.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a> + (2.0f * size.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a> * vInvScreenSize.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a>),</div>
+<div class="line"><a name="l02368"></a><span class="lineno"> 2368</span>&#160;            vScreenSpacePos.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a> - (2.0f * size.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a> * vInvScreenSize.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a>)</div>
+<div class="line"><a name="l02369"></a><span class="lineno"> 2369</span>&#160;        };</div>
+<div class="line"><a name="l02370"></a><span class="lineno"> 2370</span>&#160; </div>
+<div class="line"><a name="l02371"></a><span class="lineno"> 2371</span>&#160;        DecalInstance di;</div>
+<div class="line"><a name="l02372"></a><span class="lineno"> 2372</span>&#160;        di.points = 4;</div>
+<div class="line"><a name="l02373"></a><span class="lineno"> 2373</span>&#160;        di.decal = decal;</div>
+<div class="line"><a name="l02374"></a><span class="lineno"> 2374</span>&#160;        di.tint = { tint, tint, tint, tint };</div>
+<div class="line"><a name="l02375"></a><span class="lineno"> 2375</span>&#160;        di.pos = { { vScreenSpacePos.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a>, vScreenSpacePos.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a> }, { vScreenSpacePos.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a>, vScreenSpaceDim.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a> }, { vScreenSpaceDim.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a>, vScreenSpaceDim.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a> }, { vScreenSpaceDim.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a>, vScreenSpacePos.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a> } };</div>
+<div class="line"><a name="l02376"></a><span class="lineno"> 2376</span>&#160;        <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a> uvtl = (source_pos) * decal-&gt;<a class="code" href="classolc_1_1_decal.html#aff06190e3ca17446d373d5a93a3636c7">vUVScale</a>;</div>
+<div class="line"><a name="l02377"></a><span class="lineno"> 2377</span>&#160;        <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a> uvbr = uvtl + ((source_size) * decal-&gt;<a class="code" href="classolc_1_1_decal.html#aff06190e3ca17446d373d5a93a3636c7">vUVScale</a>);</div>
+<div class="line"><a name="l02378"></a><span class="lineno"> 2378</span>&#160;        di.uv = { { uvtl.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a>, uvtl.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a> }, { uvtl.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a>, uvbr.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a> }, { uvbr.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a>, uvbr.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a> }, { uvbr.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a>, uvtl.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a> } };</div>
+<div class="line"><a name="l02379"></a><span class="lineno"> 2379</span>&#160;        di.w = { 1,1,1,1 };</div>
+<div class="line"><a name="l02380"></a><span class="lineno"> 2380</span>&#160;        di.mode = nDecalMode;</div>
+<div class="line"><a name="l02381"></a><span class="lineno"> 2381</span>&#160;        vLayers[nTargetLayer].vecDecalInstance.push_back(di);</div>
+<div class="line"><a name="l02382"></a><span class="lineno"> 2382</span>&#160;    }</div>
+<div class="line"><a name="l02383"></a><span class="lineno"> 2383</span>&#160; </div>
+<div class="line"><a name="l02384"></a><span class="lineno"> 2384</span>&#160; </div>
+<div class="line"><a name="l02385"></a><span class="lineno"> 2385</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_pixel_game_engine.html#a5b676590555cab61db67804417c6f25f">PixelGameEngine::DrawDecal</a>(<span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; pos, <a class="code" href="classolc_1_1_decal.html">olc::Decal</a>* decal, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; scale, <span class="keyword">const</span> <a class="code" href="structolc_1_1_pixel.html">olc::Pixel</a>&amp; tint)</div>
+<div class="line"><a name="l02386"></a><span class="lineno"> 2386</span>&#160;    {</div>
+<div class="line"><a name="l02387"></a><span class="lineno"> 2387</span>&#160;        <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a> vScreenSpacePos =</div>
+<div class="line"><a name="l02388"></a><span class="lineno"> 2388</span>&#160;        {</div>
+<div class="line"><a name="l02389"></a><span class="lineno"> 2389</span>&#160;            (std::floor(pos.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a>) * vInvScreenSize.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a>) * 2.0f - 1.0f,</div>
+<div class="line"><a name="l02390"></a><span class="lineno"> 2390</span>&#160;            ((std::floor(pos.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a>) * vInvScreenSize.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a>) * 2.0f - 1.0f) * -1.0f</div>
+<div class="line"><a name="l02391"></a><span class="lineno"> 2391</span>&#160;        };</div>
+<div class="line"><a name="l02392"></a><span class="lineno"> 2392</span>&#160; </div>
+<div class="line"><a name="l02393"></a><span class="lineno"> 2393</span>&#160;        <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a> vScreenSpaceDim =</div>
+<div class="line"><a name="l02394"></a><span class="lineno"> 2394</span>&#160;        {</div>
+<div class="line"><a name="l02395"></a><span class="lineno"> 2395</span>&#160;            vScreenSpacePos.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a> + (2.0f * (float(decal-&gt;<a class="code" href="classolc_1_1_decal.html#a93a1e2ae28aa587978e2a66b6328d66a">sprite</a>-&gt;<a class="code" href="classolc_1_1_sprite.html#af055800e63204ae372ca0812e6926230">width</a>) * vInvScreenSize.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a>)) * scale.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a>,</div>
+<div class="line"><a name="l02396"></a><span class="lineno"> 2396</span>&#160;            vScreenSpacePos.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a> - (2.0f * (float(decal-&gt;<a class="code" href="classolc_1_1_decal.html#a93a1e2ae28aa587978e2a66b6328d66a">sprite</a>-&gt;<a class="code" href="classolc_1_1_sprite.html#ab05010cb1a5ff6c36267d0050d568d96">height</a>) * vInvScreenSize.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a>)) * scale.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a></div>
+<div class="line"><a name="l02397"></a><span class="lineno"> 2397</span>&#160;        };</div>
+<div class="line"><a name="l02398"></a><span class="lineno"> 2398</span>&#160; </div>
+<div class="line"><a name="l02399"></a><span class="lineno"> 2399</span>&#160;        DecalInstance di;</div>
+<div class="line"><a name="l02400"></a><span class="lineno"> 2400</span>&#160;        di.decal = decal;</div>
+<div class="line"><a name="l02401"></a><span class="lineno"> 2401</span>&#160;        di.points = 4;</div>
+<div class="line"><a name="l02402"></a><span class="lineno"> 2402</span>&#160;        di.tint = { tint, tint, tint, tint };</div>
+<div class="line"><a name="l02403"></a><span class="lineno"> 2403</span>&#160;        di.pos = { { vScreenSpacePos.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a>, vScreenSpacePos.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a> }, { vScreenSpacePos.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a>, vScreenSpaceDim.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a> }, { vScreenSpaceDim.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a>, vScreenSpaceDim.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a> }, { vScreenSpaceDim.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a>, vScreenSpacePos.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a> } };</div>
+<div class="line"><a name="l02404"></a><span class="lineno"> 2404</span>&#160;        di.uv = { { 0.0f, 0.0f}, {0.0f, 1.0f}, {1.0f, 1.0f}, {1.0f, 0.0f} };</div>
+<div class="line"><a name="l02405"></a><span class="lineno"> 2405</span>&#160;        di.w = { 1, 1, 1, 1 };</div>
+<div class="line"><a name="l02406"></a><span class="lineno"> 2406</span>&#160;        di.mode = nDecalMode;</div>
+<div class="line"><a name="l02407"></a><span class="lineno"> 2407</span>&#160;        vLayers[nTargetLayer].vecDecalInstance.push_back(di);</div>
+<div class="line"><a name="l02408"></a><span class="lineno"> 2408</span>&#160;    }</div>
+<div class="line"><a name="l02409"></a><span class="lineno"> 2409</span>&#160; </div>
+<div class="line"><a name="l02410"></a><span class="lineno"> 2410</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_pixel_game_engine.html#a26d7073d87bb19f15d5ade6bb58e8e2d">PixelGameEngine::DrawExplicitDecal</a>(<a class="code" href="classolc_1_1_decal.html">olc::Decal</a>* decal, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>* pos, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>* uv, <span class="keyword">const</span> <a class="code" href="structolc_1_1_pixel.html">olc::Pixel</a>* col, uint32_t elements)</div>
+<div class="line"><a name="l02411"></a><span class="lineno"> 2411</span>&#160;    {</div>
+<div class="line"><a name="l02412"></a><span class="lineno"> 2412</span>&#160;        DecalInstance di;</div>
+<div class="line"><a name="l02413"></a><span class="lineno"> 2413</span>&#160;        di.decal = decal;</div>
+<div class="line"><a name="l02414"></a><span class="lineno"> 2414</span>&#160;        di.pos.resize(elements);</div>
+<div class="line"><a name="l02415"></a><span class="lineno"> 2415</span>&#160;        di.uv.resize(elements);</div>
+<div class="line"><a name="l02416"></a><span class="lineno"> 2416</span>&#160;        di.w.resize(elements);</div>
+<div class="line"><a name="l02417"></a><span class="lineno"> 2417</span>&#160;        di.tint.resize(elements);</div>
+<div class="line"><a name="l02418"></a><span class="lineno"> 2418</span>&#160;        di.points = elements;</div>
+<div class="line"><a name="l02419"></a><span class="lineno"> 2419</span>&#160;        <span class="keywordflow">for</span> (uint32_t i = 0; i &lt; elements; i++)</div>
+<div class="line"><a name="l02420"></a><span class="lineno"> 2420</span>&#160;        {</div>
+<div class="line"><a name="l02421"></a><span class="lineno"> 2421</span>&#160;            di.pos[i] = { (pos[i].<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a> * vInvScreenSize.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a>) * 2.0f - 1.0f, ((pos[i].y * vInvScreenSize.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a>) * 2.0f - 1.0f) * -1.0f };</div>
+<div class="line"><a name="l02422"></a><span class="lineno"> 2422</span>&#160;            di.uv[i] = uv[i];</div>
+<div class="line"><a name="l02423"></a><span class="lineno"> 2423</span>&#160;            di.tint[i] = col[i];</div>
+<div class="line"><a name="l02424"></a><span class="lineno"> 2424</span>&#160;            di.w[i] = 1.0f;</div>
+<div class="line"><a name="l02425"></a><span class="lineno"> 2425</span>&#160;        }</div>
+<div class="line"><a name="l02426"></a><span class="lineno"> 2426</span>&#160;        di.mode = nDecalMode;</div>
+<div class="line"><a name="l02427"></a><span class="lineno"> 2427</span>&#160;        vLayers[nTargetLayer].vecDecalInstance.push_back(di);</div>
+<div class="line"><a name="l02428"></a><span class="lineno"> 2428</span>&#160;    }</div>
+<div class="line"><a name="l02429"></a><span class="lineno"> 2429</span>&#160; </div>
+<div class="line"><a name="l02430"></a><span class="lineno"> 2430</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_pixel_game_engine.html#a40a7754338ea7b388ffa2383958d1f0b">PixelGameEngine::DrawPolygonDecal</a>(<a class="code" href="classolc_1_1_decal.html">olc::Decal</a>* decal, <span class="keyword">const</span> std::vector&lt;olc::vf2d&gt;&amp; pos, <span class="keyword">const</span> std::vector&lt;olc::vf2d&gt;&amp; uv, <span class="keyword">const</span> <a class="code" href="structolc_1_1_pixel.html">olc::Pixel</a> tint)</div>
+<div class="line"><a name="l02431"></a><span class="lineno"> 2431</span>&#160;    {</div>
+<div class="line"><a name="l02432"></a><span class="lineno"> 2432</span>&#160;        DecalInstance di;</div>
+<div class="line"><a name="l02433"></a><span class="lineno"> 2433</span>&#160;        di.decal = decal;</div>
+<div class="line"><a name="l02434"></a><span class="lineno"> 2434</span>&#160;        di.points = uint32_t(pos.size());</div>
+<div class="line"><a name="l02435"></a><span class="lineno"> 2435</span>&#160;        di.pos.resize(di.points);</div>
+<div class="line"><a name="l02436"></a><span class="lineno"> 2436</span>&#160;        di.uv.resize(di.points);</div>
+<div class="line"><a name="l02437"></a><span class="lineno"> 2437</span>&#160;        di.w.resize(di.points);</div>
+<div class="line"><a name="l02438"></a><span class="lineno"> 2438</span>&#160;        di.tint.resize(di.points);</div>
+<div class="line"><a name="l02439"></a><span class="lineno"> 2439</span>&#160;        <span class="keywordflow">for</span> (uint32_t i = 0; i &lt; di.points; i++)</div>
+<div class="line"><a name="l02440"></a><span class="lineno"> 2440</span>&#160;        {</div>
+<div class="line"><a name="l02441"></a><span class="lineno"> 2441</span>&#160;            di.pos[i] = { (pos[i].x * vInvScreenSize.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a>) * 2.0f - 1.0f, ((pos[i].y * vInvScreenSize.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a>) * 2.0f - 1.0f) * -1.0f };</div>
+<div class="line"><a name="l02442"></a><span class="lineno"> 2442</span>&#160;            di.uv[i] = uv[i];</div>
+<div class="line"><a name="l02443"></a><span class="lineno"> 2443</span>&#160;            di.tint[i] = tint;</div>
+<div class="line"><a name="l02444"></a><span class="lineno"> 2444</span>&#160;            di.w[i] = 1.0f;</div>
+<div class="line"><a name="l02445"></a><span class="lineno"> 2445</span>&#160;        }</div>
+<div class="line"><a name="l02446"></a><span class="lineno"> 2446</span>&#160;        di.mode = nDecalMode;</div>
+<div class="line"><a name="l02447"></a><span class="lineno"> 2447</span>&#160;        vLayers[nTargetLayer].vecDecalInstance.push_back(di);</div>
+<div class="line"><a name="l02448"></a><span class="lineno"> 2448</span>&#160;    }</div>
+<div class="line"><a name="l02449"></a><span class="lineno"> 2449</span>&#160; </div>
+<div class="line"><a name="l02450"></a><span class="lineno"> 2450</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_pixel_game_engine.html#a02a26bca44e04f075f517bdae6ac0e9d">PixelGameEngine::FillRectDecal</a>(<span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; pos, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; size, <span class="keyword">const</span> <a class="code" href="structolc_1_1_pixel.html">olc::Pixel</a> col)</div>
+<div class="line"><a name="l02451"></a><span class="lineno"> 2451</span>&#160;    {</div>
+<div class="line"><a name="l02452"></a><span class="lineno"> 2452</span>&#160;        std::array&lt;olc::vf2d, 4&gt; points = { { {pos}, {pos.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a>, pos.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a> + size.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a>}, {pos + size}, {pos.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a> + size.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a>, pos.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a>} } };</div>
+<div class="line"><a name="l02453"></a><span class="lineno"> 2453</span>&#160;        std::array&lt;olc::vf2d, 4&gt; uvs = { {{0,0},{0,0},{0,0},{0,0}} };</div>
+<div class="line"><a name="l02454"></a><span class="lineno"> 2454</span>&#160;        std::array&lt;olc::Pixel, 4&gt; cols = { {col, col, col, col} };</div>
+<div class="line"><a name="l02455"></a><span class="lineno"> 2455</span>&#160;        <a class="code" href="classolc_1_1_pixel_game_engine.html#a26d7073d87bb19f15d5ade6bb58e8e2d">DrawExplicitDecal</a>(<span class="keyword">nullptr</span>, points.data(), uvs.data(), cols.data(), 4);</div>
+<div class="line"><a name="l02456"></a><span class="lineno"> 2456</span>&#160;    }</div>
+<div class="line"><a name="l02457"></a><span class="lineno"> 2457</span>&#160; </div>
+<div class="line"><a name="l02458"></a><span class="lineno"> 2458</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_pixel_game_engine.html#a11d9ed8762b81e0bd6bbe4349255b1e8">PixelGameEngine::GradientFillRectDecal</a>(<span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; pos, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; size, <span class="keyword">const</span> <a class="code" href="structolc_1_1_pixel.html">olc::Pixel</a> colTL, <span class="keyword">const</span> <a class="code" href="structolc_1_1_pixel.html">olc::Pixel</a> colBL, <span class="keyword">const</span> <a class="code" href="structolc_1_1_pixel.html">olc::Pixel</a> colBR, <span class="keyword">const</span> <a class="code" href="structolc_1_1_pixel.html">olc::Pixel</a> colTR)</div>
+<div class="line"><a name="l02459"></a><span class="lineno"> 2459</span>&#160;    {</div>
+<div class="line"><a name="l02460"></a><span class="lineno"> 2460</span>&#160;        std::array&lt;olc::vf2d, 4&gt; points = { { {pos}, {pos.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a>, pos.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a> + size.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a>}, {pos + size}, {pos.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a> + size.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a>, pos.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a>} } };</div>
+<div class="line"><a name="l02461"></a><span class="lineno"> 2461</span>&#160;        std::array&lt;olc::vf2d, 4&gt; uvs = { {{0,0},{0,0},{0,0},{0,0}} };</div>
+<div class="line"><a name="l02462"></a><span class="lineno"> 2462</span>&#160;        std::array&lt;olc::Pixel, 4&gt; cols = { {colTL, colBL, colBR, colTR} };</div>
+<div class="line"><a name="l02463"></a><span class="lineno"> 2463</span>&#160;        <a class="code" href="classolc_1_1_pixel_game_engine.html#a26d7073d87bb19f15d5ade6bb58e8e2d">DrawExplicitDecal</a>(<span class="keyword">nullptr</span>, points.data(), uvs.data(), cols.data(), 4);</div>
+<div class="line"><a name="l02464"></a><span class="lineno"> 2464</span>&#160;    }</div>
+<div class="line"><a name="l02465"></a><span class="lineno"> 2465</span>&#160; </div>
+<div class="line"><a name="l02466"></a><span class="lineno"> 2466</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_pixel_game_engine.html#ab9af9b6726271e83dd7e4b24583b4236">PixelGameEngine::DrawRotatedDecal</a>(<span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; pos, <a class="code" href="classolc_1_1_decal.html">olc::Decal</a>* decal, <span class="keyword">const</span> <span class="keywordtype">float</span> fAngle, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; center, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; scale, <span class="keyword">const</span> <a class="code" href="structolc_1_1_pixel.html">olc::Pixel</a>&amp; tint)</div>
+<div class="line"><a name="l02467"></a><span class="lineno"> 2467</span>&#160;    {</div>
+<div class="line"><a name="l02468"></a><span class="lineno"> 2468</span>&#160;        DecalInstance di;</div>
+<div class="line"><a name="l02469"></a><span class="lineno"> 2469</span>&#160;        di.decal = decal;</div>
+<div class="line"><a name="l02470"></a><span class="lineno"> 2470</span>&#160;        di.pos.resize(4);</div>
+<div class="line"><a name="l02471"></a><span class="lineno"> 2471</span>&#160;        di.uv = { { 0.0f, 0.0f}, {0.0f, 1.0f}, {1.0f, 1.0f}, {1.0f, 0.0f} };</div>
+<div class="line"><a name="l02472"></a><span class="lineno"> 2472</span>&#160;        di.w = { 1, 1, 1, 1 };</div>
+<div class="line"><a name="l02473"></a><span class="lineno"> 2473</span>&#160;        di.tint = { tint, tint, tint, tint };</div>
+<div class="line"><a name="l02474"></a><span class="lineno"> 2474</span>&#160;        di.points = 4;</div>
+<div class="line"><a name="l02475"></a><span class="lineno"> 2475</span>&#160;        di.pos[0] = (<a class="code" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a>(0.0f, 0.0f) - center) * scale;</div>
+<div class="line"><a name="l02476"></a><span class="lineno"> 2476</span>&#160;        di.pos[1] = (<a class="code" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a>(0.0f, <span class="keywordtype">float</span>(decal-&gt;<a class="code" href="classolc_1_1_decal.html#a93a1e2ae28aa587978e2a66b6328d66a">sprite</a>-&gt;<a class="code" href="classolc_1_1_sprite.html#ab05010cb1a5ff6c36267d0050d568d96">height</a>)) - center) * scale;</div>
+<div class="line"><a name="l02477"></a><span class="lineno"> 2477</span>&#160;        di.pos[2] = (<a class="code" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a>(<span class="keywordtype">float</span>(decal-&gt;<a class="code" href="classolc_1_1_decal.html#a93a1e2ae28aa587978e2a66b6328d66a">sprite</a>-&gt;<a class="code" href="classolc_1_1_sprite.html#af055800e63204ae372ca0812e6926230">width</a>), <span class="keywordtype">float</span>(decal-&gt;<a class="code" href="classolc_1_1_decal.html#a93a1e2ae28aa587978e2a66b6328d66a">sprite</a>-&gt;<a class="code" href="classolc_1_1_sprite.html#ab05010cb1a5ff6c36267d0050d568d96">height</a>)) - center) * scale;</div>
+<div class="line"><a name="l02478"></a><span class="lineno"> 2478</span>&#160;        di.pos[3] = (<a class="code" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a>(<span class="keywordtype">float</span>(decal-&gt;<a class="code" href="classolc_1_1_decal.html#a93a1e2ae28aa587978e2a66b6328d66a">sprite</a>-&gt;<a class="code" href="classolc_1_1_sprite.html#af055800e63204ae372ca0812e6926230">width</a>), 0.0f) - center) * scale;</div>
+<div class="line"><a name="l02479"></a><span class="lineno"> 2479</span>&#160;        <span class="keywordtype">float</span> c = cos(fAngle), s = sin(fAngle);</div>
+<div class="line"><a name="l02480"></a><span class="lineno"> 2480</span>&#160;        <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; 4; i++)</div>
+<div class="line"><a name="l02481"></a><span class="lineno"> 2481</span>&#160;        {</div>
+<div class="line"><a name="l02482"></a><span class="lineno"> 2482</span>&#160;            di.pos[i] = pos + <a class="code" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a>(di.pos[i].x * c - di.pos[i].y * s, di.pos[i].x * s + di.pos[i].y * c);</div>
+<div class="line"><a name="l02483"></a><span class="lineno"> 2483</span>&#160;            di.pos[i] = di.pos[i] * vInvScreenSize * 2.0f - <a class="code" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a>(1.0f, 1.0f);</div>
+<div class="line"><a name="l02484"></a><span class="lineno"> 2484</span>&#160;            di.pos[i].y *= -1.0f;</div>
+<div class="line"><a name="l02485"></a><span class="lineno"> 2485</span>&#160;            di.w[i] = 1;</div>
+<div class="line"><a name="l02486"></a><span class="lineno"> 2486</span>&#160;        }</div>
+<div class="line"><a name="l02487"></a><span class="lineno"> 2487</span>&#160;        di.mode = nDecalMode;</div>
+<div class="line"><a name="l02488"></a><span class="lineno"> 2488</span>&#160;        vLayers[nTargetLayer].vecDecalInstance.push_back(di);</div>
+<div class="line"><a name="l02489"></a><span class="lineno"> 2489</span>&#160;    }</div>
+<div class="line"><a name="l02490"></a><span class="lineno"> 2490</span>&#160; </div>
+<div class="line"><a name="l02491"></a><span class="lineno"> 2491</span>&#160; </div>
+<div class="line"><a name="l02492"></a><span class="lineno"> 2492</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_pixel_game_engine.html#aad3107bbad34e5792a9a35629e1fdbd0">PixelGameEngine::DrawPartialRotatedDecal</a>(<span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; pos, <a class="code" href="classolc_1_1_decal.html">olc::Decal</a>* decal, <span class="keyword">const</span> <span class="keywordtype">float</span> fAngle, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; center, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; source_pos, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; source_size, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; scale, <span class="keyword">const</span> <a class="code" href="structolc_1_1_pixel.html">olc::Pixel</a>&amp; tint)</div>
+<div class="line"><a name="l02493"></a><span class="lineno"> 2493</span>&#160;    {</div>
+<div class="line"><a name="l02494"></a><span class="lineno"> 2494</span>&#160;        DecalInstance di;</div>
+<div class="line"><a name="l02495"></a><span class="lineno"> 2495</span>&#160;        di.decal = decal;</div>
+<div class="line"><a name="l02496"></a><span class="lineno"> 2496</span>&#160;        di.points = 4;</div>
+<div class="line"><a name="l02497"></a><span class="lineno"> 2497</span>&#160;        di.tint = { tint, tint, tint, tint };</div>
+<div class="line"><a name="l02498"></a><span class="lineno"> 2498</span>&#160;        di.w = { 1, 1, 1, 1 };</div>
+<div class="line"><a name="l02499"></a><span class="lineno"> 2499</span>&#160;        di.pos.resize(4);</div>
+<div class="line"><a name="l02500"></a><span class="lineno"> 2500</span>&#160;        di.pos[0] = (<a class="code" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a>(0.0f, 0.0f) - center) * scale;</div>
+<div class="line"><a name="l02501"></a><span class="lineno"> 2501</span>&#160;        di.pos[1] = (<a class="code" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a>(0.0f, source_size.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a>) - center) * scale;</div>
+<div class="line"><a name="l02502"></a><span class="lineno"> 2502</span>&#160;        di.pos[2] = (<a class="code" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a>(source_size.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a>, source_size.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a>) - center) * scale;</div>
+<div class="line"><a name="l02503"></a><span class="lineno"> 2503</span>&#160;        di.pos[3] = (<a class="code" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a>(source_size.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a>, 0.0f) - center) * scale;</div>
+<div class="line"><a name="l02504"></a><span class="lineno"> 2504</span>&#160;        <span class="keywordtype">float</span> c = cos(fAngle), s = sin(fAngle);</div>
+<div class="line"><a name="l02505"></a><span class="lineno"> 2505</span>&#160;        <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; 4; i++)</div>
+<div class="line"><a name="l02506"></a><span class="lineno"> 2506</span>&#160;        {</div>
+<div class="line"><a name="l02507"></a><span class="lineno"> 2507</span>&#160;            di.pos[i] = pos + <a class="code" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a>(di.pos[i].x * c - di.pos[i].y * s, di.pos[i].x * s + di.pos[i].y * c);</div>
+<div class="line"><a name="l02508"></a><span class="lineno"> 2508</span>&#160;            di.pos[i] = di.pos[i] * vInvScreenSize * 2.0f - <a class="code" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a>(1.0f, 1.0f);</div>
+<div class="line"><a name="l02509"></a><span class="lineno"> 2509</span>&#160;            di.pos[i].y *= -1.0f;</div>
+<div class="line"><a name="l02510"></a><span class="lineno"> 2510</span>&#160;        }</div>
+<div class="line"><a name="l02511"></a><span class="lineno"> 2511</span>&#160; </div>
+<div class="line"><a name="l02512"></a><span class="lineno"> 2512</span>&#160;        <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a> uvtl = source_pos * decal-&gt;<a class="code" href="classolc_1_1_decal.html#aff06190e3ca17446d373d5a93a3636c7">vUVScale</a>;</div>
+<div class="line"><a name="l02513"></a><span class="lineno"> 2513</span>&#160;        <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a> uvbr = uvtl + (source_size * decal-&gt;<a class="code" href="classolc_1_1_decal.html#aff06190e3ca17446d373d5a93a3636c7">vUVScale</a>);</div>
+<div class="line"><a name="l02514"></a><span class="lineno"> 2514</span>&#160;        di.uv = { { uvtl.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a>, uvtl.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a> }, { uvtl.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a>, uvbr.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a> }, { uvbr.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a>, uvbr.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a> }, { uvbr.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a>, uvtl.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a> } };</div>
+<div class="line"><a name="l02515"></a><span class="lineno"> 2515</span>&#160;        di.mode = nDecalMode;</div>
+<div class="line"><a name="l02516"></a><span class="lineno"> 2516</span>&#160;        vLayers[nTargetLayer].vecDecalInstance.push_back(di);</div>
+<div class="line"><a name="l02517"></a><span class="lineno"> 2517</span>&#160;    }</div>
+<div class="line"><a name="l02518"></a><span class="lineno"> 2518</span>&#160; </div>
+<div class="line"><a name="l02519"></a><span class="lineno"> 2519</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_pixel_game_engine.html#a78be0709345710435fdaef7bc14f5fb3">PixelGameEngine::DrawPartialWarpedDecal</a>(<a class="code" href="classolc_1_1_decal.html">olc::Decal</a>* decal, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>* pos, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; source_pos, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; source_size, <span class="keyword">const</span> <a class="code" href="structolc_1_1_pixel.html">olc::Pixel</a>&amp; tint)</div>
+<div class="line"><a name="l02520"></a><span class="lineno"> 2520</span>&#160;    {</div>
+<div class="line"><a name="l02521"></a><span class="lineno"> 2521</span>&#160;        DecalInstance di;</div>
+<div class="line"><a name="l02522"></a><span class="lineno"> 2522</span>&#160;        di.points = 4;</div>
+<div class="line"><a name="l02523"></a><span class="lineno"> 2523</span>&#160;        di.decal = decal;</div>
+<div class="line"><a name="l02524"></a><span class="lineno"> 2524</span>&#160;        di.tint = { tint, tint, tint, tint };</div>
+<div class="line"><a name="l02525"></a><span class="lineno"> 2525</span>&#160;        di.w = { 1, 1, 1, 1 };</div>
+<div class="line"><a name="l02526"></a><span class="lineno"> 2526</span>&#160;        di.pos.resize(4);</div>
+<div class="line"><a name="l02527"></a><span class="lineno"> 2527</span>&#160;        di.uv = { { 0.0f, 0.0f}, {0.0f, 1.0f}, {1.0f, 1.0f}, {1.0f, 0.0f} };</div>
+<div class="line"><a name="l02528"></a><span class="lineno"> 2528</span>&#160;        <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a> center;</div>
+<div class="line"><a name="l02529"></a><span class="lineno"> 2529</span>&#160;        <span class="keywordtype">float</span> rd = ((pos[2].<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a> - pos[0].<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a>) * (pos[3].y - pos[1].y) - (pos[3].<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a> - pos[1].<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a>) * (pos[2].y - pos[0].y));</div>
+<div class="line"><a name="l02530"></a><span class="lineno"> 2530</span>&#160;        <span class="keywordflow">if</span> (rd != 0)</div>
+<div class="line"><a name="l02531"></a><span class="lineno"> 2531</span>&#160;        {</div>
+<div class="line"><a name="l02532"></a><span class="lineno"> 2532</span>&#160;            <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a> uvtl = source_pos * decal-&gt;<a class="code" href="classolc_1_1_decal.html#aff06190e3ca17446d373d5a93a3636c7">vUVScale</a>;</div>
+<div class="line"><a name="l02533"></a><span class="lineno"> 2533</span>&#160;            <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a> uvbr = uvtl + (source_size * decal-&gt;<a class="code" href="classolc_1_1_decal.html#aff06190e3ca17446d373d5a93a3636c7">vUVScale</a>);</div>
+<div class="line"><a name="l02534"></a><span class="lineno"> 2534</span>&#160;            di.uv = { { uvtl.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a>, uvtl.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a> }, { uvtl.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a>, uvbr.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a> }, { uvbr.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a>, uvbr.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a> }, { uvbr.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a>, uvtl.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a> } };</div>
+<div class="line"><a name="l02535"></a><span class="lineno"> 2535</span>&#160; </div>
+<div class="line"><a name="l02536"></a><span class="lineno"> 2536</span>&#160;            rd = 1.0f / rd;</div>
+<div class="line"><a name="l02537"></a><span class="lineno"> 2537</span>&#160;            <span class="keywordtype">float</span> rn = ((pos[3].<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a> - pos[1].<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a>) * (pos[0].y - pos[1].y) - (pos[3].<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a> - pos[1].<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a>) * (pos[0].x - pos[1].x)) * rd;</div>
+<div class="line"><a name="l02538"></a><span class="lineno"> 2538</span>&#160;            <span class="keywordtype">float</span> sn = ((pos[2].<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a> - pos[0].<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a>) * (pos[0].y - pos[1].y) - (pos[2].<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a> - pos[0].<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a>) * (pos[0].x - pos[1].x)) * rd;</div>
+<div class="line"><a name="l02539"></a><span class="lineno"> 2539</span>&#160;            <span class="keywordflow">if</span> (!(rn &lt; 0.f || rn &gt; 1.f || sn &lt; 0.f || sn &gt; 1.f)) center = pos[0] + rn * (pos[2] - pos[0]);</div>
+<div class="line"><a name="l02540"></a><span class="lineno"> 2540</span>&#160;            <span class="keywordtype">float</span> d[4]; <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; 4; i++) d[i] = (pos[i] - center).mag();</div>
+<div class="line"><a name="l02541"></a><span class="lineno"> 2541</span>&#160;            <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; 4; i++)</div>
+<div class="line"><a name="l02542"></a><span class="lineno"> 2542</span>&#160;            {</div>
+<div class="line"><a name="l02543"></a><span class="lineno"> 2543</span>&#160;                <span class="keywordtype">float</span> q = d[i] == 0.0f ? 1.0f : (d[i] + d[(i + 2) &amp; 3]) / d[(i + 2) &amp; 3];</div>
+<div class="line"><a name="l02544"></a><span class="lineno"> 2544</span>&#160;                di.uv[i] *= q; di.w[i] *= q;</div>
+<div class="line"><a name="l02545"></a><span class="lineno"> 2545</span>&#160;                di.pos[i] = { (pos[i].<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a> * vInvScreenSize.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a>) * 2.0f - 1.0f, ((pos[i].y * vInvScreenSize.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a>) * 2.0f - 1.0f) * -1.0f };</div>
+<div class="line"><a name="l02546"></a><span class="lineno"> 2546</span>&#160;            }</div>
+<div class="line"><a name="l02547"></a><span class="lineno"> 2547</span>&#160;            di.mode = nDecalMode;</div>
+<div class="line"><a name="l02548"></a><span class="lineno"> 2548</span>&#160;            vLayers[nTargetLayer].vecDecalInstance.push_back(di);</div>
+<div class="line"><a name="l02549"></a><span class="lineno"> 2549</span>&#160;        }</div>
+<div class="line"><a name="l02550"></a><span class="lineno"> 2550</span>&#160;    }</div>
+<div class="line"><a name="l02551"></a><span class="lineno"> 2551</span>&#160; </div>
+<div class="line"><a name="l02552"></a><span class="lineno"> 2552</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_pixel_game_engine.html#a65098b403a403c45041599893429b550">PixelGameEngine::DrawWarpedDecal</a>(<a class="code" href="classolc_1_1_decal.html">olc::Decal</a>* decal, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>* pos, <span class="keyword">const</span> <a class="code" href="structolc_1_1_pixel.html">olc::Pixel</a>&amp; tint)</div>
+<div class="line"><a name="l02553"></a><span class="lineno"> 2553</span>&#160;    {</div>
+<div class="line"><a name="l02554"></a><span class="lineno"> 2554</span>&#160;        <span class="comment">// Thanks Nathan Reed, a brilliant article explaining whats going on here</span></div>
+<div class="line"><a name="l02555"></a><span class="lineno"> 2555</span>&#160;        <span class="comment">// http://www.reedbeta.com/blog/quadrilateral-interpolation-part-1/</span></div>
+<div class="line"><a name="l02556"></a><span class="lineno"> 2556</span>&#160;        DecalInstance di;</div>
+<div class="line"><a name="l02557"></a><span class="lineno"> 2557</span>&#160;        di.points = 4;</div>
+<div class="line"><a name="l02558"></a><span class="lineno"> 2558</span>&#160;        di.decal = decal;</div>
+<div class="line"><a name="l02559"></a><span class="lineno"> 2559</span>&#160;        di.tint = { tint, tint, tint, tint };</div>
+<div class="line"><a name="l02560"></a><span class="lineno"> 2560</span>&#160;        di.w = { 1, 1, 1, 1 };</div>
+<div class="line"><a name="l02561"></a><span class="lineno"> 2561</span>&#160;        di.pos.resize(4);</div>
+<div class="line"><a name="l02562"></a><span class="lineno"> 2562</span>&#160;        di.uv = { { 0.0f, 0.0f}, {0.0f, 1.0f}, {1.0f, 1.0f}, {1.0f, 0.0f} };</div>
+<div class="line"><a name="l02563"></a><span class="lineno"> 2563</span>&#160;        <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a> center;</div>
+<div class="line"><a name="l02564"></a><span class="lineno"> 2564</span>&#160;        <span class="keywordtype">float</span> rd = ((pos[2].<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a> - pos[0].<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a>) * (pos[3].y - pos[1].y) - (pos[3].<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a> - pos[1].<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a>) * (pos[2].y - pos[0].y));</div>
+<div class="line"><a name="l02565"></a><span class="lineno"> 2565</span>&#160;        <span class="keywordflow">if</span> (rd != 0)</div>
+<div class="line"><a name="l02566"></a><span class="lineno"> 2566</span>&#160;        {</div>
+<div class="line"><a name="l02567"></a><span class="lineno"> 2567</span>&#160;            rd = 1.0f / rd;</div>
+<div class="line"><a name="l02568"></a><span class="lineno"> 2568</span>&#160;            <span class="keywordtype">float</span> rn = ((pos[3].<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a> - pos[1].<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a>) * (pos[0].y - pos[1].y) - (pos[3].<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a> - pos[1].<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a>) * (pos[0].x - pos[1].x)) * rd;</div>
+<div class="line"><a name="l02569"></a><span class="lineno"> 2569</span>&#160;            <span class="keywordtype">float</span> sn = ((pos[2].<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a> - pos[0].<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a>) * (pos[0].y - pos[1].y) - (pos[2].<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a> - pos[0].<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a>) * (pos[0].x - pos[1].x)) * rd;</div>
+<div class="line"><a name="l02570"></a><span class="lineno"> 2570</span>&#160;            <span class="keywordflow">if</span> (!(rn &lt; 0.f || rn &gt; 1.f || sn &lt; 0.f || sn &gt; 1.f)) center = pos[0] + rn * (pos[2] - pos[0]);</div>
+<div class="line"><a name="l02571"></a><span class="lineno"> 2571</span>&#160;            <span class="keywordtype">float</span> d[4]; <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; 4; i++) d[i] = (pos[i] - center).<a class="code" href="structolc_1_1v2d__generic.html#ab06016810fe727fa826e43e44e02008b">mag</a>();</div>
+<div class="line"><a name="l02572"></a><span class="lineno"> 2572</span>&#160;            <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; 4; i++)</div>
+<div class="line"><a name="l02573"></a><span class="lineno"> 2573</span>&#160;            {</div>
+<div class="line"><a name="l02574"></a><span class="lineno"> 2574</span>&#160;                <span class="keywordtype">float</span> q = d[i] == 0.0f ? 1.0f : (d[i] + d[(i + 2) &amp; 3]) / d[(i + 2) &amp; 3];</div>
+<div class="line"><a name="l02575"></a><span class="lineno"> 2575</span>&#160;                di.uv[i] *= q; di.w[i] *= q;</div>
+<div class="line"><a name="l02576"></a><span class="lineno"> 2576</span>&#160;                di.pos[i] = { (pos[i].<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a> * vInvScreenSize.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a>) * 2.0f - 1.0f, ((pos[i].y * vInvScreenSize.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a>) * 2.0f - 1.0f) * -1.0f };</div>
+<div class="line"><a name="l02577"></a><span class="lineno"> 2577</span>&#160;            }</div>
+<div class="line"><a name="l02578"></a><span class="lineno"> 2578</span>&#160;            di.mode = nDecalMode;</div>
+<div class="line"><a name="l02579"></a><span class="lineno"> 2579</span>&#160;            vLayers[nTargetLayer].vecDecalInstance.push_back(di);</div>
+<div class="line"><a name="l02580"></a><span class="lineno"> 2580</span>&#160;        }</div>
+<div class="line"><a name="l02581"></a><span class="lineno"> 2581</span>&#160;    }</div>
+<div class="line"><a name="l02582"></a><span class="lineno"> 2582</span>&#160; </div>
+<div class="line"><a name="l02583"></a><span class="lineno"> 2583</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_pixel_game_engine.html#a65098b403a403c45041599893429b550">PixelGameEngine::DrawWarpedDecal</a>(<a class="code" href="classolc_1_1_decal.html">olc::Decal</a>* decal, <span class="keyword">const</span> std::array&lt;olc::vf2d, 4&gt;&amp; pos, <span class="keyword">const</span> <a class="code" href="structolc_1_1_pixel.html">olc::Pixel</a>&amp; tint)</div>
+<div class="line"><a name="l02584"></a><span class="lineno"> 2584</span>&#160;    { <a class="code" href="classolc_1_1_pixel_game_engine.html#a65098b403a403c45041599893429b550">DrawWarpedDecal</a>(decal, pos.data(), tint); }</div>
+<div class="line"><a name="l02585"></a><span class="lineno"> 2585</span>&#160; </div>
+<div class="line"><a name="l02586"></a><span class="lineno"> 2586</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_pixel_game_engine.html#a65098b403a403c45041599893429b550">PixelGameEngine::DrawWarpedDecal</a>(<a class="code" href="classolc_1_1_decal.html">olc::Decal</a>* decal, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>(&amp;pos)[4], <span class="keyword">const</span> <a class="code" href="structolc_1_1_pixel.html">olc::Pixel</a>&amp; tint)</div>
+<div class="line"><a name="l02587"></a><span class="lineno"> 2587</span>&#160;    { <a class="code" href="classolc_1_1_pixel_game_engine.html#a65098b403a403c45041599893429b550">DrawWarpedDecal</a>(decal, &amp;pos[0], tint); }</div>
+<div class="line"><a name="l02588"></a><span class="lineno"> 2588</span>&#160; </div>
+<div class="line"><a name="l02589"></a><span class="lineno"> 2589</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_pixel_game_engine.html#a78be0709345710435fdaef7bc14f5fb3">PixelGameEngine::DrawPartialWarpedDecal</a>(<a class="code" href="classolc_1_1_decal.html">olc::Decal</a>* decal, <span class="keyword">const</span> std::array&lt;olc::vf2d, 4&gt;&amp; pos, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; source_pos, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; source_size, <span class="keyword">const</span> <a class="code" href="structolc_1_1_pixel.html">olc::Pixel</a>&amp; tint)</div>
+<div class="line"><a name="l02590"></a><span class="lineno"> 2590</span>&#160;    { <a class="code" href="classolc_1_1_pixel_game_engine.html#a78be0709345710435fdaef7bc14f5fb3">DrawPartialWarpedDecal</a>(decal, pos.data(), source_pos, source_size, tint); }</div>
+<div class="line"><a name="l02591"></a><span class="lineno"> 2591</span>&#160; </div>
+<div class="line"><a name="l02592"></a><span class="lineno"> 2592</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_pixel_game_engine.html#a78be0709345710435fdaef7bc14f5fb3">PixelGameEngine::DrawPartialWarpedDecal</a>(<a class="code" href="classolc_1_1_decal.html">olc::Decal</a>* decal, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>(&amp;pos)[4], <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; source_pos, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; source_size, <span class="keyword">const</span> <a class="code" href="structolc_1_1_pixel.html">olc::Pixel</a>&amp; tint)</div>
+<div class="line"><a name="l02593"></a><span class="lineno"> 2593</span>&#160;    { <a class="code" href="classolc_1_1_pixel_game_engine.html#a78be0709345710435fdaef7bc14f5fb3">DrawPartialWarpedDecal</a>(decal, &amp;pos[0], source_pos, source_size, tint); }</div>
+<div class="line"><a name="l02594"></a><span class="lineno"> 2594</span>&#160; </div>
+<div class="line"><a name="l02595"></a><span class="lineno"> 2595</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_pixel_game_engine.html#a689d1828a93292702070b97fb14f5644">PixelGameEngine::DrawStringDecal</a>(<span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; pos, <span class="keyword">const</span> std::string&amp; sText, <span class="keyword">const</span> Pixel col, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; scale)</div>
+<div class="line"><a name="l02596"></a><span class="lineno"> 2596</span>&#160;    {</div>
+<div class="line"><a name="l02597"></a><span class="lineno"> 2597</span>&#160;        <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a> spos = { 0.0f, 0.0f };</div>
+<div class="line"><a name="l02598"></a><span class="lineno"> 2598</span>&#160;        <span class="keywordflow">for</span> (<span class="keyword">auto</span> c : sText)</div>
+<div class="line"><a name="l02599"></a><span class="lineno"> 2599</span>&#160;        {</div>
+<div class="line"><a name="l02600"></a><span class="lineno"> 2600</span>&#160;            <span class="keywordflow">if</span> (c == <span class="charliteral">&#39;\n&#39;</span>)</div>
+<div class="line"><a name="l02601"></a><span class="lineno"> 2601</span>&#160;            {</div>
+<div class="line"><a name="l02602"></a><span class="lineno"> 2602</span>&#160;                spos.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a> = 0; spos.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a> += 8.0f * scale.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a>;</div>
+<div class="line"><a name="l02603"></a><span class="lineno"> 2603</span>&#160;            }</div>
+<div class="line"><a name="l02604"></a><span class="lineno"> 2604</span>&#160;            <span class="keywordflow">else</span></div>
+<div class="line"><a name="l02605"></a><span class="lineno"> 2605</span>&#160;            {</div>
+<div class="line"><a name="l02606"></a><span class="lineno"> 2606</span>&#160;                int32_t ox = (c - 32) % 16;</div>
+<div class="line"><a name="l02607"></a><span class="lineno"> 2607</span>&#160;                int32_t oy = (c - 32) / 16;</div>
+<div class="line"><a name="l02608"></a><span class="lineno"> 2608</span>&#160;                <a class="code" href="classolc_1_1_pixel_game_engine.html#a8bae37cf84b215e9e0416f058241aeba">DrawPartialDecal</a>(pos + spos, fontDecal, { float(ox) * 8.0f, float(oy) * 8.0f }, { 8.0f, 8.0f }, scale, col);</div>
+<div class="line"><a name="l02609"></a><span class="lineno"> 2609</span>&#160;                spos.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a> += 8.0f * scale.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a>;</div>
+<div class="line"><a name="l02610"></a><span class="lineno"> 2610</span>&#160;            }</div>
+<div class="line"><a name="l02611"></a><span class="lineno"> 2611</span>&#160;        }</div>
+<div class="line"><a name="l02612"></a><span class="lineno"> 2612</span>&#160;    }</div>
+<div class="line"><a name="l02613"></a><span class="lineno"> 2613</span>&#160; </div>
+<div class="line"><a name="l02614"></a><span class="lineno"> 2614</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_pixel_game_engine.html#a7392273f15fc09b3659b112564aa0dfa">PixelGameEngine::DrawStringPropDecal</a>(<span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; pos, <span class="keyword">const</span> std::string&amp; sText, <span class="keyword">const</span> Pixel col, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; scale)</div>
+<div class="line"><a name="l02615"></a><span class="lineno"> 2615</span>&#160;    {</div>
+<div class="line"><a name="l02616"></a><span class="lineno"> 2616</span>&#160;        <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a> spos = { 0.0f, 0.0f };</div>
+<div class="line"><a name="l02617"></a><span class="lineno"> 2617</span>&#160;        <span class="keywordflow">for</span> (<span class="keyword">auto</span> c : sText)</div>
+<div class="line"><a name="l02618"></a><span class="lineno"> 2618</span>&#160;        {</div>
+<div class="line"><a name="l02619"></a><span class="lineno"> 2619</span>&#160;            <span class="keywordflow">if</span> (c == <span class="charliteral">&#39;\n&#39;</span>)</div>
+<div class="line"><a name="l02620"></a><span class="lineno"> 2620</span>&#160;            {</div>
+<div class="line"><a name="l02621"></a><span class="lineno"> 2621</span>&#160;                spos.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a> = 0; spos.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a> += 8.0f * scale.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a>;</div>
+<div class="line"><a name="l02622"></a><span class="lineno"> 2622</span>&#160;            }</div>
+<div class="line"><a name="l02623"></a><span class="lineno"> 2623</span>&#160;            <span class="keywordflow">else</span></div>
+<div class="line"><a name="l02624"></a><span class="lineno"> 2624</span>&#160;            {</div>
+<div class="line"><a name="l02625"></a><span class="lineno"> 2625</span>&#160;                int32_t ox = (c - 32) % 16;</div>
+<div class="line"><a name="l02626"></a><span class="lineno"> 2626</span>&#160;                int32_t oy = (c - 32) / 16;</div>
+<div class="line"><a name="l02627"></a><span class="lineno"> 2627</span>&#160;                <a class="code" href="classolc_1_1_pixel_game_engine.html#a8bae37cf84b215e9e0416f058241aeba">DrawPartialDecal</a>(pos + spos, fontDecal, { float(ox) * 8.0f + float(vFontSpacing[c - 32].x), float(oy) * 8.0f }, { float(vFontSpacing[c - 32].y), 8.0f }, scale, col);</div>
+<div class="line"><a name="l02628"></a><span class="lineno"> 2628</span>&#160;                spos.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a> += float(vFontSpacing[c - 32].y) * scale.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a>;</div>
+<div class="line"><a name="l02629"></a><span class="lineno"> 2629</span>&#160;            }</div>
+<div class="line"><a name="l02630"></a><span class="lineno"> 2630</span>&#160;        }</div>
+<div class="line"><a name="l02631"></a><span class="lineno"> 2631</span>&#160;    }</div>
+<div class="line"><a name="l02632"></a><span class="lineno"> 2632</span>&#160; </div>
+<div class="line"><a name="l02633"></a><span class="lineno"> 2633</span>&#160;    <a class="code" href="structolc_1_1v2d__generic.html">olc::vi2d</a> <a class="code" href="classolc_1_1_pixel_game_engine.html#aa70121ffb85733f8ea2e7e5d0b4b311b">PixelGameEngine::GetTextSize</a>(<span class="keyword">const</span> std::string&amp; s)</div>
+<div class="line"><a name="l02634"></a><span class="lineno"> 2634</span>&#160;    {</div>
+<div class="line"><a name="l02635"></a><span class="lineno"> 2635</span>&#160;        <a class="code" href="structolc_1_1v2d__generic.html">olc::vi2d</a> size = { 0,1 };</div>
+<div class="line"><a name="l02636"></a><span class="lineno"> 2636</span>&#160;        <a class="code" href="structolc_1_1v2d__generic.html">olc::vi2d</a> pos = { 0,1 };</div>
+<div class="line"><a name="l02637"></a><span class="lineno"> 2637</span>&#160;        <span class="keywordflow">for</span> (<span class="keyword">auto</span> c : s)</div>
+<div class="line"><a name="l02638"></a><span class="lineno"> 2638</span>&#160;        {</div>
+<div class="line"><a name="l02639"></a><span class="lineno"> 2639</span>&#160;            <span class="keywordflow">if</span> (c == <span class="charliteral">&#39;\n&#39;</span>) { pos.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a>++;  pos.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a> = 0; }</div>
+<div class="line"><a name="l02640"></a><span class="lineno"> 2640</span>&#160;            <span class="keywordflow">else</span> pos.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a>++;</div>
+<div class="line"><a name="l02641"></a><span class="lineno"> 2641</span>&#160;            size.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a> = std::max(size.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a>, pos.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a>);</div>
+<div class="line"><a name="l02642"></a><span class="lineno"> 2642</span>&#160;            size.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a> = std::max(size.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a>, pos.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a>);</div>
+<div class="line"><a name="l02643"></a><span class="lineno"> 2643</span>&#160;        }</div>
+<div class="line"><a name="l02644"></a><span class="lineno"> 2644</span>&#160;        <span class="keywordflow">return</span> size * 8;</div>
+<div class="line"><a name="l02645"></a><span class="lineno"> 2645</span>&#160;    }</div>
+<div class="line"><a name="l02646"></a><span class="lineno"> 2646</span>&#160; </div>
+<div class="line"><a name="l02647"></a><span class="lineno"> 2647</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_pixel_game_engine.html#ac29d79dedde0b2187f9f9ccbbc33fd0b">PixelGameEngine::DrawString</a>(<span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vi2d</a>&amp; pos, <span class="keyword">const</span> std::string&amp; sText, Pixel col, uint32_t scale)</div>
+<div class="line"><a name="l02648"></a><span class="lineno"> 2648</span>&#160;    { <a class="code" href="classolc_1_1_pixel_game_engine.html#ac29d79dedde0b2187f9f9ccbbc33fd0b">DrawString</a>(pos.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a>, pos.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a>, sText, col, scale); }</div>
+<div class="line"><a name="l02649"></a><span class="lineno"> 2649</span>&#160; </div>
+<div class="line"><a name="l02650"></a><span class="lineno"> 2650</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_pixel_game_engine.html#ac29d79dedde0b2187f9f9ccbbc33fd0b">PixelGameEngine::DrawString</a>(int32_t x, int32_t y, <span class="keyword">const</span> std::string&amp; sText, Pixel col, uint32_t scale)</div>
+<div class="line"><a name="l02651"></a><span class="lineno"> 2651</span>&#160;    {</div>
+<div class="line"><a name="l02652"></a><span class="lineno"> 2652</span>&#160;        int32_t sx = 0;</div>
+<div class="line"><a name="l02653"></a><span class="lineno"> 2653</span>&#160;        int32_t sy = 0;</div>
+<div class="line"><a name="l02654"></a><span class="lineno"> 2654</span>&#160;        <a class="code" href="structolc_1_1_pixel.html#ae9012164940526ddb09b217dbbddfd65">Pixel::Mode</a> m = nPixelMode;</div>
+<div class="line"><a name="l02655"></a><span class="lineno"> 2655</span>&#160;        <span class="comment">// Thanks @tucna, spotted bug with col.ALPHA :P</span></div>
+<div class="line"><a name="l02656"></a><span class="lineno"> 2656</span>&#160;        <span class="keywordflow">if</span> (m != <a class="code" href="structolc_1_1_pixel.html#ae9012164940526ddb09b217dbbddfd65aed57164e9f056c1af912b3069eb45deb">Pixel::CUSTOM</a>) <span class="comment">// Thanks @Megarev, required for &quot;shaders&quot;</span></div>
+<div class="line"><a name="l02657"></a><span class="lineno"> 2657</span>&#160;        {</div>
+<div class="line"><a name="l02658"></a><span class="lineno"> 2658</span>&#160;            <span class="keywordflow">if</span> (col.a != 255)       <a class="code" href="classolc_1_1_pixel_game_engine.html#ae4a3d1aaa40761986389966ab927ef32">SetPixelMode</a>(<a class="code" href="structolc_1_1_pixel.html#ae9012164940526ddb09b217dbbddfd65a561bc0234492261a62a3191252692753">Pixel::ALPHA</a>);</div>
+<div class="line"><a name="l02659"></a><span class="lineno"> 2659</span>&#160;            <span class="keywordflow">else</span>                    <a class="code" href="classolc_1_1_pixel_game_engine.html#ae4a3d1aaa40761986389966ab927ef32">SetPixelMode</a>(<a class="code" href="structolc_1_1_pixel.html#ae9012164940526ddb09b217dbbddfd65a4062d4baa9669fb2e91f31a15061a9d6">Pixel::MASK</a>);</div>
+<div class="line"><a name="l02660"></a><span class="lineno"> 2660</span>&#160;        }</div>
+<div class="line"><a name="l02661"></a><span class="lineno"> 2661</span>&#160;        <span class="keywordflow">for</span> (<span class="keyword">auto</span> c : sText)</div>
+<div class="line"><a name="l02662"></a><span class="lineno"> 2662</span>&#160;        {</div>
+<div class="line"><a name="l02663"></a><span class="lineno"> 2663</span>&#160;            <span class="keywordflow">if</span> (c == <span class="charliteral">&#39;\n&#39;</span>)</div>
+<div class="line"><a name="l02664"></a><span class="lineno"> 2664</span>&#160;            {</div>
+<div class="line"><a name="l02665"></a><span class="lineno"> 2665</span>&#160;                sx = 0; sy += 8 * scale;</div>
+<div class="line"><a name="l02666"></a><span class="lineno"> 2666</span>&#160;            }</div>
+<div class="line"><a name="l02667"></a><span class="lineno"> 2667</span>&#160;            <span class="keywordflow">else</span></div>
+<div class="line"><a name="l02668"></a><span class="lineno"> 2668</span>&#160;            {</div>
+<div class="line"><a name="l02669"></a><span class="lineno"> 2669</span>&#160;                int32_t ox = (c - 32) % 16;</div>
+<div class="line"><a name="l02670"></a><span class="lineno"> 2670</span>&#160;                int32_t oy = (c - 32) / 16;</div>
+<div class="line"><a name="l02671"></a><span class="lineno"> 2671</span>&#160; </div>
+<div class="line"><a name="l02672"></a><span class="lineno"> 2672</span>&#160;                <span class="keywordflow">if</span> (scale &gt; 1)</div>
+<div class="line"><a name="l02673"></a><span class="lineno"> 2673</span>&#160;                {</div>
+<div class="line"><a name="l02674"></a><span class="lineno"> 2674</span>&#160;                    <span class="keywordflow">for</span> (uint32_t i = 0; i &lt; 8; i++)</div>
+<div class="line"><a name="l02675"></a><span class="lineno"> 2675</span>&#160;                        <span class="keywordflow">for</span> (uint32_t j = 0; j &lt; 8; j++)</div>
+<div class="line"><a name="l02676"></a><span class="lineno"> 2676</span>&#160;                            <span class="keywordflow">if</span> (fontSprite-&gt;<a class="code" href="classolc_1_1_sprite.html#a7e1f8169c9822f1ed94f0212d3f8d6f6">GetPixel</a>(i + ox * 8, j + oy * 8).<a class="code" href="structolc_1_1_pixel.html#a93ee3efde3d2b363e4e4813a490f60b4">r</a> &gt; 0)</div>
+<div class="line"><a name="l02677"></a><span class="lineno"> 2677</span>&#160;                                <span class="keywordflow">for</span> (uint32_t is = 0; is &lt; scale; is++)</div>
+<div class="line"><a name="l02678"></a><span class="lineno"> 2678</span>&#160;                                    <span class="keywordflow">for</span> (uint32_t js = 0; js &lt; scale; js++)</div>
+<div class="line"><a name="l02679"></a><span class="lineno"> 2679</span>&#160;                                        <a class="code" href="classolc_1_1_pixel_game_engine.html#a95ab046b4b0843565bddd0e009a25569">Draw</a>(x + sx + (i * scale) + is, y + sy + (j * scale) + js, col);</div>
+<div class="line"><a name="l02680"></a><span class="lineno"> 2680</span>&#160;                }</div>
+<div class="line"><a name="l02681"></a><span class="lineno"> 2681</span>&#160;                <span class="keywordflow">else</span></div>
+<div class="line"><a name="l02682"></a><span class="lineno"> 2682</span>&#160;                {</div>
+<div class="line"><a name="l02683"></a><span class="lineno"> 2683</span>&#160;                    <span class="keywordflow">for</span> (uint32_t i = 0; i &lt; 8; i++)</div>
+<div class="line"><a name="l02684"></a><span class="lineno"> 2684</span>&#160;                        <span class="keywordflow">for</span> (uint32_t j = 0; j &lt; 8; j++)</div>
+<div class="line"><a name="l02685"></a><span class="lineno"> 2685</span>&#160;                            <span class="keywordflow">if</span> (fontSprite-&gt;<a class="code" href="classolc_1_1_sprite.html#a7e1f8169c9822f1ed94f0212d3f8d6f6">GetPixel</a>(i + ox * 8, j + oy * 8).<a class="code" href="structolc_1_1_pixel.html#a93ee3efde3d2b363e4e4813a490f60b4">r</a> &gt; 0)</div>
+<div class="line"><a name="l02686"></a><span class="lineno"> 2686</span>&#160;                                <a class="code" href="classolc_1_1_pixel_game_engine.html#a95ab046b4b0843565bddd0e009a25569">Draw</a>(x + sx + i, y + sy + j, col);</div>
+<div class="line"><a name="l02687"></a><span class="lineno"> 2687</span>&#160;                }</div>
+<div class="line"><a name="l02688"></a><span class="lineno"> 2688</span>&#160;                sx += 8 * scale;</div>
+<div class="line"><a name="l02689"></a><span class="lineno"> 2689</span>&#160;            }</div>
+<div class="line"><a name="l02690"></a><span class="lineno"> 2690</span>&#160;        }</div>
+<div class="line"><a name="l02691"></a><span class="lineno"> 2691</span>&#160;        <a class="code" href="classolc_1_1_pixel_game_engine.html#ae4a3d1aaa40761986389966ab927ef32">SetPixelMode</a>(m);</div>
+<div class="line"><a name="l02692"></a><span class="lineno"> 2692</span>&#160;    }</div>
+<div class="line"><a name="l02693"></a><span class="lineno"> 2693</span>&#160; </div>
+<div class="line"><a name="l02694"></a><span class="lineno"> 2694</span>&#160;    <a class="code" href="structolc_1_1v2d__generic.html">olc::vi2d</a> <a class="code" href="classolc_1_1_pixel_game_engine.html#ab282eddb9b8fe14d01311c8613f79e84">PixelGameEngine::GetTextSizeProp</a>(<span class="keyword">const</span> std::string&amp; s)</div>
+<div class="line"><a name="l02695"></a><span class="lineno"> 2695</span>&#160;    {</div>
+<div class="line"><a name="l02696"></a><span class="lineno"> 2696</span>&#160;        <a class="code" href="structolc_1_1v2d__generic.html">olc::vi2d</a> size = { 0,1 };</div>
+<div class="line"><a name="l02697"></a><span class="lineno"> 2697</span>&#160;        <a class="code" href="structolc_1_1v2d__generic.html">olc::vi2d</a> pos = { 0,1 };</div>
+<div class="line"><a name="l02698"></a><span class="lineno"> 2698</span>&#160;        <span class="keywordflow">for</span> (<span class="keyword">auto</span> c : s)</div>
+<div class="line"><a name="l02699"></a><span class="lineno"> 2699</span>&#160;        {</div>
+<div class="line"><a name="l02700"></a><span class="lineno"> 2700</span>&#160;            <span class="keywordflow">if</span> (c == <span class="charliteral">&#39;\n&#39;</span>) { pos.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a> += 1;  pos.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a> = 0; }</div>
+<div class="line"><a name="l02701"></a><span class="lineno"> 2701</span>&#160;            <span class="keywordflow">else</span> pos.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a> += vFontSpacing[c - 32].y;</div>
+<div class="line"><a name="l02702"></a><span class="lineno"> 2702</span>&#160;            size.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a> = std::max(size.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a>, pos.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a>);</div>
+<div class="line"><a name="l02703"></a><span class="lineno"> 2703</span>&#160;            size.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a> = std::max(size.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a>, pos.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a>);</div>
+<div class="line"><a name="l02704"></a><span class="lineno"> 2704</span>&#160;        }</div>
+<div class="line"><a name="l02705"></a><span class="lineno"> 2705</span>&#160; </div>
+<div class="line"><a name="l02706"></a><span class="lineno"> 2706</span>&#160;        size.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a> *= 8;</div>
+<div class="line"><a name="l02707"></a><span class="lineno"> 2707</span>&#160;        <span class="keywordflow">return</span> size;</div>
+<div class="line"><a name="l02708"></a><span class="lineno"> 2708</span>&#160;    }</div>
+<div class="line"><a name="l02709"></a><span class="lineno"> 2709</span>&#160; </div>
+<div class="line"><a name="l02710"></a><span class="lineno"> 2710</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_pixel_game_engine.html#a1ddca999be34411764bb12d2a15cc021">PixelGameEngine::DrawStringProp</a>(<span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vi2d</a>&amp; pos, <span class="keyword">const</span> std::string&amp; sText, Pixel col, uint32_t scale)</div>
+<div class="line"><a name="l02711"></a><span class="lineno"> 2711</span>&#160;    { <a class="code" href="classolc_1_1_pixel_game_engine.html#a1ddca999be34411764bb12d2a15cc021">DrawStringProp</a>(pos.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a>, pos.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a>, sText, col, scale); }</div>
+<div class="line"><a name="l02712"></a><span class="lineno"> 2712</span>&#160; </div>
+<div class="line"><a name="l02713"></a><span class="lineno"> 2713</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_pixel_game_engine.html#a1ddca999be34411764bb12d2a15cc021">PixelGameEngine::DrawStringProp</a>(int32_t x, int32_t y, <span class="keyword">const</span> std::string&amp; sText, Pixel col, uint32_t scale)</div>
+<div class="line"><a name="l02714"></a><span class="lineno"> 2714</span>&#160;    {</div>
+<div class="line"><a name="l02715"></a><span class="lineno"> 2715</span>&#160;        int32_t sx = 0;</div>
+<div class="line"><a name="l02716"></a><span class="lineno"> 2716</span>&#160;        int32_t sy = 0;</div>
+<div class="line"><a name="l02717"></a><span class="lineno"> 2717</span>&#160;        <a class="code" href="structolc_1_1_pixel.html#ae9012164940526ddb09b217dbbddfd65">Pixel::Mode</a> m = nPixelMode;</div>
+<div class="line"><a name="l02718"></a><span class="lineno"> 2718</span>&#160; </div>
+<div class="line"><a name="l02719"></a><span class="lineno"> 2719</span>&#160;        <span class="keywordflow">if</span> (m != <a class="code" href="structolc_1_1_pixel.html#ae9012164940526ddb09b217dbbddfd65aed57164e9f056c1af912b3069eb45deb">Pixel::CUSTOM</a>)</div>
+<div class="line"><a name="l02720"></a><span class="lineno"> 2720</span>&#160;        {</div>
+<div class="line"><a name="l02721"></a><span class="lineno"> 2721</span>&#160;            <span class="keywordflow">if</span> (col.a != 255)       <a class="code" href="classolc_1_1_pixel_game_engine.html#ae4a3d1aaa40761986389966ab927ef32">SetPixelMode</a>(<a class="code" href="structolc_1_1_pixel.html#ae9012164940526ddb09b217dbbddfd65a561bc0234492261a62a3191252692753">Pixel::ALPHA</a>);</div>
+<div class="line"><a name="l02722"></a><span class="lineno"> 2722</span>&#160;            <span class="keywordflow">else</span>                    <a class="code" href="classolc_1_1_pixel_game_engine.html#ae4a3d1aaa40761986389966ab927ef32">SetPixelMode</a>(<a class="code" href="structolc_1_1_pixel.html#ae9012164940526ddb09b217dbbddfd65a4062d4baa9669fb2e91f31a15061a9d6">Pixel::MASK</a>);</div>
+<div class="line"><a name="l02723"></a><span class="lineno"> 2723</span>&#160;        }</div>
+<div class="line"><a name="l02724"></a><span class="lineno"> 2724</span>&#160;        <span class="keywordflow">for</span> (<span class="keyword">auto</span> c : sText)</div>
+<div class="line"><a name="l02725"></a><span class="lineno"> 2725</span>&#160;        {</div>
+<div class="line"><a name="l02726"></a><span class="lineno"> 2726</span>&#160;            <span class="keywordflow">if</span> (c == <span class="charliteral">&#39;\n&#39;</span>)</div>
+<div class="line"><a name="l02727"></a><span class="lineno"> 2727</span>&#160;            {</div>
+<div class="line"><a name="l02728"></a><span class="lineno"> 2728</span>&#160;                sx = 0; sy += 8 * scale;</div>
+<div class="line"><a name="l02729"></a><span class="lineno"> 2729</span>&#160;            }</div>
+<div class="line"><a name="l02730"></a><span class="lineno"> 2730</span>&#160;            <span class="keywordflow">else</span></div>
+<div class="line"><a name="l02731"></a><span class="lineno"> 2731</span>&#160;            {</div>
+<div class="line"><a name="l02732"></a><span class="lineno"> 2732</span>&#160;                int32_t ox = (c - 32) % 16;</div>
+<div class="line"><a name="l02733"></a><span class="lineno"> 2733</span>&#160;                int32_t oy = (c - 32) / 16;</div>
+<div class="line"><a name="l02734"></a><span class="lineno"> 2734</span>&#160; </div>
+<div class="line"><a name="l02735"></a><span class="lineno"> 2735</span>&#160;                <span class="keywordflow">if</span> (scale &gt; 1)</div>
+<div class="line"><a name="l02736"></a><span class="lineno"> 2736</span>&#160;                {</div>
+<div class="line"><a name="l02737"></a><span class="lineno"> 2737</span>&#160;                    <span class="keywordflow">for</span> (int32_t i = 0; i &lt; vFontSpacing[c - 32].y; i++)</div>
+<div class="line"><a name="l02738"></a><span class="lineno"> 2738</span>&#160;                        <span class="keywordflow">for</span> (int32_t j = 0; j &lt; 8; j++)</div>
+<div class="line"><a name="l02739"></a><span class="lineno"> 2739</span>&#160;                            <span class="keywordflow">if</span> (fontSprite-&gt;<a class="code" href="classolc_1_1_sprite.html#a7e1f8169c9822f1ed94f0212d3f8d6f6">GetPixel</a>(i + ox * 8 + vFontSpacing[c - 32].x, j + oy * 8).<a class="code" href="structolc_1_1_pixel.html#a93ee3efde3d2b363e4e4813a490f60b4">r</a> &gt; 0)</div>
+<div class="line"><a name="l02740"></a><span class="lineno"> 2740</span>&#160;                                <span class="keywordflow">for</span> (int32_t is = 0; is &lt; int(scale); is++)</div>
+<div class="line"><a name="l02741"></a><span class="lineno"> 2741</span>&#160;                                    <span class="keywordflow">for</span> (int32_t js = 0; js &lt; int(scale); js++)</div>
+<div class="line"><a name="l02742"></a><span class="lineno"> 2742</span>&#160;                                        <a class="code" href="classolc_1_1_pixel_game_engine.html#a95ab046b4b0843565bddd0e009a25569">Draw</a>(x + sx + (i * scale) + is, y + sy + (j * scale) + js, col);</div>
+<div class="line"><a name="l02743"></a><span class="lineno"> 2743</span>&#160;                }</div>
+<div class="line"><a name="l02744"></a><span class="lineno"> 2744</span>&#160;                <span class="keywordflow">else</span></div>
+<div class="line"><a name="l02745"></a><span class="lineno"> 2745</span>&#160;                {</div>
+<div class="line"><a name="l02746"></a><span class="lineno"> 2746</span>&#160;                    <span class="keywordflow">for</span> (int32_t i = 0; i &lt; vFontSpacing[c - 32].y; i++)</div>
+<div class="line"><a name="l02747"></a><span class="lineno"> 2747</span>&#160;                        <span class="keywordflow">for</span> (int32_t j = 0; j &lt; 8; j++)</div>
+<div class="line"><a name="l02748"></a><span class="lineno"> 2748</span>&#160;                            <span class="keywordflow">if</span> (fontSprite-&gt;<a class="code" href="classolc_1_1_sprite.html#a7e1f8169c9822f1ed94f0212d3f8d6f6">GetPixel</a>(i + ox * 8 + vFontSpacing[c - 32].x, j + oy * 8).<a class="code" href="structolc_1_1_pixel.html#a93ee3efde3d2b363e4e4813a490f60b4">r</a> &gt; 0)</div>
+<div class="line"><a name="l02749"></a><span class="lineno"> 2749</span>&#160;                                <a class="code" href="classolc_1_1_pixel_game_engine.html#a95ab046b4b0843565bddd0e009a25569">Draw</a>(x + sx + i, y + sy + j, col);</div>
+<div class="line"><a name="l02750"></a><span class="lineno"> 2750</span>&#160;                }</div>
+<div class="line"><a name="l02751"></a><span class="lineno"> 2751</span>&#160;                sx += vFontSpacing[c - 32].y * scale;</div>
+<div class="line"><a name="l02752"></a><span class="lineno"> 2752</span>&#160;            }</div>
+<div class="line"><a name="l02753"></a><span class="lineno"> 2753</span>&#160;        }</div>
+<div class="line"><a name="l02754"></a><span class="lineno"> 2754</span>&#160;        <a class="code" href="classolc_1_1_pixel_game_engine.html#ae4a3d1aaa40761986389966ab927ef32">SetPixelMode</a>(m);</div>
+<div class="line"><a name="l02755"></a><span class="lineno"> 2755</span>&#160;    }</div>
+<div class="line"><a name="l02756"></a><span class="lineno"> 2756</span>&#160; </div>
+<div class="line"><a name="l02757"></a><span class="lineno"> 2757</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_pixel_game_engine.html#ae4a3d1aaa40761986389966ab927ef32">PixelGameEngine::SetPixelMode</a>(<a class="code" href="structolc_1_1_pixel.html#ae9012164940526ddb09b217dbbddfd65">Pixel::Mode</a> m)</div>
+<div class="line"><a name="l02758"></a><span class="lineno"> 2758</span>&#160;    { nPixelMode = m; }</div>
+<div class="line"><a name="l02759"></a><span class="lineno"> 2759</span>&#160; </div>
+<div class="line"><a name="l02760"></a><span class="lineno"> 2760</span>&#160;    <a class="code" href="structolc_1_1_pixel.html#ae9012164940526ddb09b217dbbddfd65">Pixel::Mode</a> <a class="code" href="classolc_1_1_pixel_game_engine.html#ad4f95a449dc09a2650ec771e6fa83049">PixelGameEngine::GetPixelMode</a>()</div>
+<div class="line"><a name="l02761"></a><span class="lineno"> 2761</span>&#160;    { <span class="keywordflow">return</span> nPixelMode; }</div>
+<div class="line"><a name="l02762"></a><span class="lineno"> 2762</span>&#160; </div>
+<div class="line"><a name="l02763"></a><span class="lineno"> 2763</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_pixel_game_engine.html#ae4a3d1aaa40761986389966ab927ef32">PixelGameEngine::SetPixelMode</a>(std::function&lt;<a class="code" href="structolc_1_1_pixel.html">olc::Pixel</a>(<span class="keyword">const</span> <span class="keywordtype">int</span> x, <span class="keyword">const</span> <span class="keywordtype">int</span> y, <span class="keyword">const</span> <a class="code" href="structolc_1_1_pixel.html">olc::Pixel</a>&amp;, <span class="keyword">const</span> <a class="code" href="structolc_1_1_pixel.html">olc::Pixel</a>&amp;)&gt; pixelMode)</div>
+<div class="line"><a name="l02764"></a><span class="lineno"> 2764</span>&#160;    {</div>
+<div class="line"><a name="l02765"></a><span class="lineno"> 2765</span>&#160;        funcPixelMode = pixelMode;</div>
+<div class="line"><a name="l02766"></a><span class="lineno"> 2766</span>&#160;        nPixelMode = Pixel::Mode::CUSTOM;</div>
+<div class="line"><a name="l02767"></a><span class="lineno"> 2767</span>&#160;    }</div>
+<div class="line"><a name="l02768"></a><span class="lineno"> 2768</span>&#160; </div>
+<div class="line"><a name="l02769"></a><span class="lineno"> 2769</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_pixel_game_engine.html#ab0726b7758bc1bf7f7de30369076b8e7">PixelGameEngine::SetPixelBlend</a>(<span class="keywordtype">float</span> fBlend)</div>
+<div class="line"><a name="l02770"></a><span class="lineno"> 2770</span>&#160;    {</div>
+<div class="line"><a name="l02771"></a><span class="lineno"> 2771</span>&#160;        fBlendFactor = fBlend;</div>
+<div class="line"><a name="l02772"></a><span class="lineno"> 2772</span>&#160;        <span class="keywordflow">if</span> (fBlendFactor &lt; 0.0f) fBlendFactor = 0.0f;</div>
+<div class="line"><a name="l02773"></a><span class="lineno"> 2773</span>&#160;        <span class="keywordflow">if</span> (fBlendFactor &gt; 1.0f) fBlendFactor = 1.0f;</div>
+<div class="line"><a name="l02774"></a><span class="lineno"> 2774</span>&#160;    }</div>
+<div class="line"><a name="l02775"></a><span class="lineno"> 2775</span>&#160; </div>
+<div class="line"><a name="l02776"></a><span class="lineno"> 2776</span>&#160;    <span class="comment">// User must override these functions as required. I have not made</span></div>
+<div class="line"><a name="l02777"></a><span class="lineno"> 2777</span>&#160;    <span class="comment">// them abstract because I do need a default behaviour to occur if</span></div>
+<div class="line"><a name="l02778"></a><span class="lineno"> 2778</span>&#160;    <span class="comment">// they are not overwritten</span></div>
+<div class="line"><a name="l02779"></a><span class="lineno"> 2779</span>&#160; </div>
+<div class="line"><a name="l02780"></a><span class="lineno"> 2780</span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="classolc_1_1_pixel_game_engine.html#a6a33b6ff7cd23dfd05b34416865fb5c3">PixelGameEngine::OnUserCreate</a>()</div>
+<div class="line"><a name="l02781"></a><span class="lineno"> 2781</span>&#160;    { <span class="keywordflow">return</span> <span class="keyword">false</span>; }</div>
+<div class="line"><a name="l02782"></a><span class="lineno"> 2782</span>&#160; </div>
+<div class="line"><a name="l02783"></a><span class="lineno"> 2783</span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="classolc_1_1_pixel_game_engine.html#af9379a3db341b0acb410ea543e30fdd1">PixelGameEngine::OnUserUpdate</a>(<span class="keywordtype">float</span> fElapsedTime)</div>
+<div class="line"><a name="l02784"></a><span class="lineno"> 2784</span>&#160;    { <a class="code" href="olc_pixel_game_engine_8h.html#a86d500a34c624c2cae56bc25a31b12f3">UNUSED</a>(fElapsedTime);  <span class="keywordflow">return</span> <span class="keyword">false</span>; }</div>
+<div class="line"><a name="l02785"></a><span class="lineno"> 2785</span>&#160; </div>
+<div class="line"><a name="l02786"></a><span class="lineno"> 2786</span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="classolc_1_1_pixel_game_engine.html#ad4fbf979865fb1f08250ea379f2de669">PixelGameEngine::OnUserDestroy</a>()</div>
+<div class="line"><a name="l02787"></a><span class="lineno"> 2787</span>&#160;    { <span class="keywordflow">return</span> <span class="keyword">true</span>; }</div>
+<div class="line"><a name="l02788"></a><span class="lineno"> 2788</span>&#160;    </div>
+<div class="line"><a name="l02789"></a><span class="lineno"> 2789</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_pixel_game_engine.html#af1cd38cf0df2e7c3ab53bee66ec63771">PixelGameEngine::olc_UpdateViewport</a>()</div>
+<div class="line"><a name="l02790"></a><span class="lineno"> 2790</span>&#160;    {</div>
+<div class="line"><a name="l02791"></a><span class="lineno"> 2791</span>&#160;        int32_t ww = vScreenSize.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a> * vPixelSize.x;</div>
+<div class="line"><a name="l02792"></a><span class="lineno"> 2792</span>&#160;        int32_t wh = vScreenSize.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a> * vPixelSize.y;</div>
+<div class="line"><a name="l02793"></a><span class="lineno"> 2793</span>&#160;        <span class="keywordtype">float</span> wasp = (float)ww / (<span class="keywordtype">float</span>)wh;</div>
+<div class="line"><a name="l02794"></a><span class="lineno"> 2794</span>&#160; </div>
+<div class="line"><a name="l02795"></a><span class="lineno"> 2795</span>&#160;        <span class="keywordflow">if</span> (bPixelCohesion)</div>
+<div class="line"><a name="l02796"></a><span class="lineno"> 2796</span>&#160;        {</div>
+<div class="line"><a name="l02797"></a><span class="lineno"> 2797</span>&#160;            vScreenPixelSize = (vWindowSize / vScreenSize);</div>
+<div class="line"><a name="l02798"></a><span class="lineno"> 2798</span>&#160;            vViewSize = (vWindowSize / vScreenSize) * vScreenSize;</div>
+<div class="line"><a name="l02799"></a><span class="lineno"> 2799</span>&#160;        }</div>
+<div class="line"><a name="l02800"></a><span class="lineno"> 2800</span>&#160;        <span class="keywordflow">else</span></div>
+<div class="line"><a name="l02801"></a><span class="lineno"> 2801</span>&#160;        {</div>
+<div class="line"><a name="l02802"></a><span class="lineno"> 2802</span>&#160;            vViewSize.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a> = (int32_t)vWindowSize.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a>;</div>
+<div class="line"><a name="l02803"></a><span class="lineno"> 2803</span>&#160;            vViewSize.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a> = (int32_t)((float)vViewSize.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a> / wasp);</div>
+<div class="line"><a name="l02804"></a><span class="lineno"> 2804</span>&#160; </div>
+<div class="line"><a name="l02805"></a><span class="lineno"> 2805</span>&#160;            <span class="keywordflow">if</span> (vViewSize.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a> &gt; vWindowSize.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a>)</div>
+<div class="line"><a name="l02806"></a><span class="lineno"> 2806</span>&#160;            {</div>
+<div class="line"><a name="l02807"></a><span class="lineno"> 2807</span>&#160;                vViewSize.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a> = vWindowSize.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a>;</div>
+<div class="line"><a name="l02808"></a><span class="lineno"> 2808</span>&#160;                vViewSize.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a> = (int32_t)((<span class="keywordtype">float</span>)vViewSize.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a> * wasp);</div>
+<div class="line"><a name="l02809"></a><span class="lineno"> 2809</span>&#160;            }</div>
+<div class="line"><a name="l02810"></a><span class="lineno"> 2810</span>&#160;        }</div>
+<div class="line"><a name="l02811"></a><span class="lineno"> 2811</span>&#160; </div>
+<div class="line"><a name="l02812"></a><span class="lineno"> 2812</span>&#160;        vViewPos = (vWindowSize - vViewSize) / 2;</div>
+<div class="line"><a name="l02813"></a><span class="lineno"> 2813</span>&#160;    }</div>
+<div class="line"><a name="l02814"></a><span class="lineno"> 2814</span>&#160; </div>
+<div class="line"><a name="l02815"></a><span class="lineno"> 2815</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_pixel_game_engine.html#a4f0dae00f21f8d71d4544d50593234c3">PixelGameEngine::olc_UpdateWindowSize</a>(int32_t x, int32_t y)</div>
+<div class="line"><a name="l02816"></a><span class="lineno"> 2816</span>&#160;    {</div>
+<div class="line"><a name="l02817"></a><span class="lineno"> 2817</span>&#160;        vWindowSize = { x, y };</div>
+<div class="line"><a name="l02818"></a><span class="lineno"> 2818</span>&#160;        <a class="code" href="classolc_1_1_pixel_game_engine.html#af1cd38cf0df2e7c3ab53bee66ec63771">olc_UpdateViewport</a>();</div>
+<div class="line"><a name="l02819"></a><span class="lineno"> 2819</span>&#160;    }</div>
+<div class="line"><a name="l02820"></a><span class="lineno"> 2820</span>&#160; </div>
+<div class="line"><a name="l02821"></a><span class="lineno"> 2821</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_pixel_game_engine.html#aa33ea5e40d4577e3c44fcf4a26cecadd">PixelGameEngine::olc_UpdateMouseWheel</a>(int32_t delta)</div>
+<div class="line"><a name="l02822"></a><span class="lineno"> 2822</span>&#160;    { nMouseWheelDeltaCache += delta; }</div>
+<div class="line"><a name="l02823"></a><span class="lineno"> 2823</span>&#160; </div>
+<div class="line"><a name="l02824"></a><span class="lineno"> 2824</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_pixel_game_engine.html#a6e10d8fae75e26dea03b0b447667a308">PixelGameEngine::olc_UpdateMouse</a>(int32_t x, int32_t y)</div>
+<div class="line"><a name="l02825"></a><span class="lineno"> 2825</span>&#160;    {</div>
+<div class="line"><a name="l02826"></a><span class="lineno"> 2826</span>&#160;        <span class="comment">// Mouse coords come in screen space</span></div>
+<div class="line"><a name="l02827"></a><span class="lineno"> 2827</span>&#160;        <span class="comment">// But leave in pixel space</span></div>
+<div class="line"><a name="l02828"></a><span class="lineno"> 2828</span>&#160;        bHasMouseFocus = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l02829"></a><span class="lineno"> 2829</span>&#160;        vMouseWindowPos = { x, y };</div>
+<div class="line"><a name="l02830"></a><span class="lineno"> 2830</span>&#160;        <span class="comment">// Full Screen mode may have a weird viewport we must clamp to</span></div>
+<div class="line"><a name="l02831"></a><span class="lineno"> 2831</span>&#160;        x -= vViewPos.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a>;</div>
+<div class="line"><a name="l02832"></a><span class="lineno"> 2832</span>&#160;        y -= vViewPos.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a>;</div>
+<div class="line"><a name="l02833"></a><span class="lineno"> 2833</span>&#160;        vMousePosCache.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a> = (int32_t)(((<span class="keywordtype">float</span>)x / (<span class="keywordtype">float</span>)(vWindowSize.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a> - (vViewPos.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a> * 2)) * (<span class="keywordtype">float</span>)vScreenSize.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a>));</div>
+<div class="line"><a name="l02834"></a><span class="lineno"> 2834</span>&#160;        vMousePosCache.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a> = (int32_t)(((<span class="keywordtype">float</span>)y / (float)(vWindowSize.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a> - (vViewPos.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a> * 2)) * (<span class="keywordtype">float</span>)vScreenSize.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a>));</div>
+<div class="line"><a name="l02835"></a><span class="lineno"> 2835</span>&#160;        <span class="keywordflow">if</span> (vMousePosCache.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a> &gt;= (int32_t)vScreenSize.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a>) vMousePosCache.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a> = vScreenSize.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a> - 1;</div>
+<div class="line"><a name="l02836"></a><span class="lineno"> 2836</span>&#160;        if (vMousePosCache.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a> &gt;= (int32_t)vScreenSize.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a>) vMousePosCache.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a> = vScreenSize.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a> - 1;</div>
+<div class="line"><a name="l02837"></a><span class="lineno"> 2837</span>&#160;        if (vMousePosCache.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a> &lt; 0) vMousePosCache.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a> = 0;</div>
+<div class="line"><a name="l02838"></a><span class="lineno"> 2838</span>&#160;        <span class="keywordflow">if</span> (vMousePosCache.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a> &lt; 0) vMousePosCache.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a> = 0;</div>
+<div class="line"><a name="l02839"></a><span class="lineno"> 2839</span>&#160;    }</div>
+<div class="line"><a name="l02840"></a><span class="lineno"> 2840</span>&#160; </div>
+<div class="line"><a name="l02841"></a><span class="lineno"> 2841</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_pixel_game_engine.html#a59645c08376a7d4e58673919f3bd0dfb">PixelGameEngine::olc_UpdateMouseState</a>(int32_t button, <span class="keywordtype">bool</span> state)</div>
+<div class="line"><a name="l02842"></a><span class="lineno"> 2842</span>&#160;    { pMouseNewState[button] = state; }</div>
+<div class="line"><a name="l02843"></a><span class="lineno"> 2843</span>&#160; </div>
+<div class="line"><a name="l02844"></a><span class="lineno"> 2844</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_pixel_game_engine.html#a61fde81846a9ef7f8fcf63080e6d350b">PixelGameEngine::olc_UpdateKeyState</a>(int32_t key, <span class="keywordtype">bool</span> state)</div>
+<div class="line"><a name="l02845"></a><span class="lineno"> 2845</span>&#160;    { pKeyNewState[key] = state; }</div>
+<div class="line"><a name="l02846"></a><span class="lineno"> 2846</span>&#160; </div>
+<div class="line"><a name="l02847"></a><span class="lineno"> 2847</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_pixel_game_engine.html#ab3150ba487188e64940c294998fa38d3">PixelGameEngine::olc_UpdateMouseFocus</a>(<span class="keywordtype">bool</span> state)</div>
+<div class="line"><a name="l02848"></a><span class="lineno"> 2848</span>&#160;    { bHasMouseFocus = state; }</div>
+<div class="line"><a name="l02849"></a><span class="lineno"> 2849</span>&#160; </div>
+<div class="line"><a name="l02850"></a><span class="lineno"> 2850</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_pixel_game_engine.html#a7343712504f23f86c8490646ffc50e7f">PixelGameEngine::olc_UpdateKeyFocus</a>(<span class="keywordtype">bool</span> state)</div>
+<div class="line"><a name="l02851"></a><span class="lineno"> 2851</span>&#160;    { bHasInputFocus = state; }</div>
+<div class="line"><a name="l02852"></a><span class="lineno"> 2852</span>&#160; </div>
+<div class="line"><a name="l02853"></a><span class="lineno"> 2853</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_pixel_game_engine.html#a417b6cd564ccad1d878ae51cfdd3be8e">PixelGameEngine::olc_Reanimate</a>()</div>
+<div class="line"><a name="l02854"></a><span class="lineno"> 2854</span>&#160;    { bAtomActive = <span class="keyword">true</span>; }</div>
+<div class="line"><a name="l02855"></a><span class="lineno"> 2855</span>&#160; </div>
+<div class="line"><a name="l02856"></a><span class="lineno"> 2856</span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="classolc_1_1_pixel_game_engine.html#a7b0f41bc4b4258a5c4fa1742b41d15e3">PixelGameEngine::olc_IsRunning</a>()</div>
+<div class="line"><a name="l02857"></a><span class="lineno"> 2857</span>&#160;    { <span class="keywordflow">return</span> bAtomActive; }</div>
+<div class="line"><a name="l02858"></a><span class="lineno"> 2858</span>&#160; </div>
+<div class="line"><a name="l02859"></a><span class="lineno"> 2859</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_pixel_game_engine.html#a2da1f2ebbc1a5fbdbf52890e6ac707b1">PixelGameEngine::olc_Terminate</a>()</div>
+<div class="line"><a name="l02860"></a><span class="lineno"> 2860</span>&#160;    { bAtomActive = <span class="keyword">false</span>; }</div>
+<div class="line"><a name="l02861"></a><span class="lineno"> 2861</span>&#160; </div>
+<div class="line"><a name="l02862"></a><span class="lineno"> 2862</span>&#160;    <span class="keywordtype">void</span> PixelGameEngine::EngineThread()</div>
+<div class="line"><a name="l02863"></a><span class="lineno"> 2863</span>&#160;    {</div>
+<div class="line"><a name="l02864"></a><span class="lineno"> 2864</span>&#160;        <span class="comment">// Allow platform to do stuff here if needed, since its now in the</span></div>
+<div class="line"><a name="l02865"></a><span class="lineno"> 2865</span>&#160;        <span class="comment">// context of this thread</span></div>
+<div class="line"><a name="l02866"></a><span class="lineno"> 2866</span>&#160;        <span class="keywordflow">if</span> (platform-&gt;ThreadStartUp() == <a class="code" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87baadc8ac6e9769db5bb290fbf5f8284dbf">olc::FAIL</a>) <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l02867"></a><span class="lineno"> 2867</span>&#160; </div>
+<div class="line"><a name="l02868"></a><span class="lineno"> 2868</span>&#160;        <span class="comment">// Do engine context specific initialisation</span></div>
+<div class="line"><a name="l02869"></a><span class="lineno"> 2869</span>&#160;        <a class="code" href="classolc_1_1_pixel_game_engine.html#aa19aafa028a7e2eaaf7b2235a9bd2256">olc_PrepareEngine</a>();</div>
+<div class="line"><a name="l02870"></a><span class="lineno"> 2870</span>&#160; </div>
+<div class="line"><a name="l02871"></a><span class="lineno"> 2871</span>&#160;        <span class="comment">// Create user resources as part of this thread</span></div>
+<div class="line"><a name="l02872"></a><span class="lineno"> 2872</span>&#160;        <span class="keywordflow">for</span> (<span class="keyword">auto</span>&amp; ext : vExtensions) ext-&gt;OnBeforeUserCreate();</div>
+<div class="line"><a name="l02873"></a><span class="lineno"> 2873</span>&#160;        <span class="keywordflow">if</span> (!<a class="code" href="classolc_1_1_pixel_game_engine.html#a6a33b6ff7cd23dfd05b34416865fb5c3">OnUserCreate</a>()) bAtomActive = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l02874"></a><span class="lineno"> 2874</span>&#160;        <span class="keywordflow">for</span> (<span class="keyword">auto</span>&amp; ext : vExtensions) ext-&gt;OnAfterUserCreate();</div>
+<div class="line"><a name="l02875"></a><span class="lineno"> 2875</span>&#160; </div>
+<div class="line"><a name="l02876"></a><span class="lineno"> 2876</span>&#160;        <span class="keywordflow">while</span> (bAtomActive)</div>
+<div class="line"><a name="l02877"></a><span class="lineno"> 2877</span>&#160;        {</div>
+<div class="line"><a name="l02878"></a><span class="lineno"> 2878</span>&#160;            <span class="comment">// Run as fast as possible</span></div>
+<div class="line"><a name="l02879"></a><span class="lineno"> 2879</span>&#160;            <span class="keywordflow">while</span> (bAtomActive) { <a class="code" href="classolc_1_1_pixel_game_engine.html#a0018131435f88bb5de406fd11ee54058">olc_CoreUpdate</a>(); }</div>
+<div class="line"><a name="l02880"></a><span class="lineno"> 2880</span>&#160; </div>
+<div class="line"><a name="l02881"></a><span class="lineno"> 2881</span>&#160;            <span class="comment">// Allow the user to free resources if they have overrided the destroy function</span></div>
+<div class="line"><a name="l02882"></a><span class="lineno"> 2882</span>&#160;            <span class="keywordflow">if</span> (!<a class="code" href="classolc_1_1_pixel_game_engine.html#ad4fbf979865fb1f08250ea379f2de669">OnUserDestroy</a>())</div>
+<div class="line"><a name="l02883"></a><span class="lineno"> 2883</span>&#160;            {</div>
+<div class="line"><a name="l02884"></a><span class="lineno"> 2884</span>&#160;                <span class="comment">// User denied destroy for some reason, so continue running</span></div>
+<div class="line"><a name="l02885"></a><span class="lineno"> 2885</span>&#160;                bAtomActive = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l02886"></a><span class="lineno"> 2886</span>&#160;            }</div>
+<div class="line"><a name="l02887"></a><span class="lineno"> 2887</span>&#160;        }</div>
+<div class="line"><a name="l02888"></a><span class="lineno"> 2888</span>&#160; </div>
+<div class="line"><a name="l02889"></a><span class="lineno"> 2889</span>&#160;        platform-&gt;ThreadCleanUp();</div>
+<div class="line"><a name="l02890"></a><span class="lineno"> 2890</span>&#160;    }</div>
+<div class="line"><a name="l02891"></a><span class="lineno"> 2891</span>&#160; </div>
+<div class="line"><a name="l02892"></a><span class="lineno"> 2892</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_pixel_game_engine.html#aa19aafa028a7e2eaaf7b2235a9bd2256">PixelGameEngine::olc_PrepareEngine</a>()</div>
+<div class="line"><a name="l02893"></a><span class="lineno"> 2893</span>&#160;    {</div>
+<div class="line"><a name="l02894"></a><span class="lineno"> 2894</span>&#160;        <span class="comment">// Start OpenGL, the context is owned by the game thread</span></div>
+<div class="line"><a name="l02895"></a><span class="lineno"> 2895</span>&#160;        <span class="keywordflow">if</span> (platform-&gt;CreateGraphics(bFullScreen, bEnableVSYNC, vViewPos, vViewSize) == <a class="code" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87baadc8ac6e9769db5bb290fbf5f8284dbf">olc::FAIL</a>) <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l02896"></a><span class="lineno"> 2896</span>&#160; </div>
+<div class="line"><a name="l02897"></a><span class="lineno"> 2897</span>&#160;        <span class="comment">// Construct default font sheet</span></div>
+<div class="line"><a name="l02898"></a><span class="lineno"> 2898</span>&#160;        <a class="code" href="classolc_1_1_pixel_game_engine.html#a117eedbe1e9366fe2bf402334beb9692">olc_ConstructFontSheet</a>();</div>
+<div class="line"><a name="l02899"></a><span class="lineno"> 2899</span>&#160; </div>
+<div class="line"><a name="l02900"></a><span class="lineno"> 2900</span>&#160;        <span class="comment">// Create Primary Layer &quot;0&quot;</span></div>
+<div class="line"><a name="l02901"></a><span class="lineno"> 2901</span>&#160;        <a class="code" href="classolc_1_1_pixel_game_engine.html#ae15ffa0503e2893aad7001aa2f5769b7">CreateLayer</a>();</div>
+<div class="line"><a name="l02902"></a><span class="lineno"> 2902</span>&#160;        vLayers[0].bUpdate = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l02903"></a><span class="lineno"> 2903</span>&#160;        vLayers[0].bShow = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l02904"></a><span class="lineno"> 2904</span>&#160;        <a class="code" href="classolc_1_1_pixel_game_engine.html#a70b6a145d7ab0c8857000a72ce4d4a70">SetDrawTarget</a>(<span class="keyword">nullptr</span>);</div>
+<div class="line"><a name="l02905"></a><span class="lineno"> 2905</span>&#160; </div>
+<div class="line"><a name="l02906"></a><span class="lineno"> 2906</span>&#160;        m_tp1 = std::chrono::system_clock::now();</div>
+<div class="line"><a name="l02907"></a><span class="lineno"> 2907</span>&#160;        m_tp2 = std::chrono::system_clock::now();</div>
+<div class="line"><a name="l02908"></a><span class="lineno"> 2908</span>&#160;    }</div>
+<div class="line"><a name="l02909"></a><span class="lineno"> 2909</span>&#160; </div>
+<div class="line"><a name="l02910"></a><span class="lineno"> 2910</span>&#160; </div>
+<div class="line"><a name="l02911"></a><span class="lineno"> 2911</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_pixel_game_engine.html#a0018131435f88bb5de406fd11ee54058">PixelGameEngine::olc_CoreUpdate</a>()</div>
+<div class="line"><a name="l02912"></a><span class="lineno"> 2912</span>&#160;    {</div>
+<div class="line"><a name="l02913"></a><span class="lineno"> 2913</span>&#160;        <span class="comment">// Handle Timing</span></div>
+<div class="line"><a name="l02914"></a><span class="lineno"> 2914</span>&#160;        m_tp2 = std::chrono::system_clock::now();</div>
+<div class="line"><a name="l02915"></a><span class="lineno"> 2915</span>&#160;        std::chrono::duration&lt;float&gt; elapsedTime = m_tp2 - m_tp1;</div>
+<div class="line"><a name="l02916"></a><span class="lineno"> 2916</span>&#160;        m_tp1 = m_tp2;</div>
+<div class="line"><a name="l02917"></a><span class="lineno"> 2917</span>&#160; </div>
+<div class="line"><a name="l02918"></a><span class="lineno"> 2918</span>&#160;        <span class="comment">// Our time per frame coefficient</span></div>
+<div class="line"><a name="l02919"></a><span class="lineno"> 2919</span>&#160;        <span class="keywordtype">float</span> fElapsedTime = elapsedTime.count();</div>
+<div class="line"><a name="l02920"></a><span class="lineno"> 2920</span>&#160;        fLastElapsed = fElapsedTime;</div>
+<div class="line"><a name="l02921"></a><span class="lineno"> 2921</span>&#160; </div>
+<div class="line"><a name="l02922"></a><span class="lineno"> 2922</span>&#160;        <span class="comment">// Some platforms will need to check for events</span></div>
+<div class="line"><a name="l02923"></a><span class="lineno"> 2923</span>&#160;        platform-&gt;HandleSystemEvent();</div>
+<div class="line"><a name="l02924"></a><span class="lineno"> 2924</span>&#160; </div>
+<div class="line"><a name="l02925"></a><span class="lineno"> 2925</span>&#160;        <span class="comment">// Compare hardware input states from previous frame</span></div>
+<div class="line"><a name="l02926"></a><span class="lineno"> 2926</span>&#160;        <span class="keyword">auto</span> ScanHardware = [&amp;](HWButton* pKeys, <span class="keywordtype">bool</span>* pStateOld, <span class="keywordtype">bool</span>* pStateNew, uint32_t nKeyCount)</div>
+<div class="line"><a name="l02927"></a><span class="lineno"> 2927</span>&#160;        {</div>
+<div class="line"><a name="l02928"></a><span class="lineno"> 2928</span>&#160;            <span class="keywordflow">for</span> (uint32_t i = 0; i &lt; nKeyCount; i++)</div>
+<div class="line"><a name="l02929"></a><span class="lineno"> 2929</span>&#160;            {</div>
+<div class="line"><a name="l02930"></a><span class="lineno"> 2930</span>&#160;                pKeys[i].bPressed = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l02931"></a><span class="lineno"> 2931</span>&#160;                pKeys[i].bReleased = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l02932"></a><span class="lineno"> 2932</span>&#160;                <span class="keywordflow">if</span> (pStateNew[i] != pStateOld[i])</div>
+<div class="line"><a name="l02933"></a><span class="lineno"> 2933</span>&#160;                {</div>
+<div class="line"><a name="l02934"></a><span class="lineno"> 2934</span>&#160;                    <span class="keywordflow">if</span> (pStateNew[i])</div>
+<div class="line"><a name="l02935"></a><span class="lineno"> 2935</span>&#160;                    {</div>
+<div class="line"><a name="l02936"></a><span class="lineno"> 2936</span>&#160;                        pKeys[i].bPressed = !pKeys[i].bHeld;</div>
+<div class="line"><a name="l02937"></a><span class="lineno"> 2937</span>&#160;                        pKeys[i].bHeld = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l02938"></a><span class="lineno"> 2938</span>&#160;                    }</div>
+<div class="line"><a name="l02939"></a><span class="lineno"> 2939</span>&#160;                    <span class="keywordflow">else</span></div>
+<div class="line"><a name="l02940"></a><span class="lineno"> 2940</span>&#160;                    {</div>
+<div class="line"><a name="l02941"></a><span class="lineno"> 2941</span>&#160;                        pKeys[i].bReleased = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l02942"></a><span class="lineno"> 2942</span>&#160;                        pKeys[i].bHeld = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l02943"></a><span class="lineno"> 2943</span>&#160;                    }</div>
+<div class="line"><a name="l02944"></a><span class="lineno"> 2944</span>&#160;                }</div>
+<div class="line"><a name="l02945"></a><span class="lineno"> 2945</span>&#160;                pStateOld[i] = pStateNew[i];</div>
+<div class="line"><a name="l02946"></a><span class="lineno"> 2946</span>&#160;            }</div>
+<div class="line"><a name="l02947"></a><span class="lineno"> 2947</span>&#160;        };</div>
+<div class="line"><a name="l02948"></a><span class="lineno"> 2948</span>&#160; </div>
+<div class="line"><a name="l02949"></a><span class="lineno"> 2949</span>&#160;        ScanHardware(pKeyboardState, pKeyOldState, pKeyNewState, 256);</div>
+<div class="line"><a name="l02950"></a><span class="lineno"> 2950</span>&#160;        ScanHardware(pMouseState, pMouseOldState, pMouseNewState, <a class="code" href="namespaceolc.html#abf7dfc35dd1d895f33d3635831953e38">nMouseButtons</a>);</div>
+<div class="line"><a name="l02951"></a><span class="lineno"> 2951</span>&#160; </div>
+<div class="line"><a name="l02952"></a><span class="lineno"> 2952</span>&#160;        <span class="comment">// Cache mouse coordinates so they remain consistent during frame</span></div>
+<div class="line"><a name="l02953"></a><span class="lineno"> 2953</span>&#160;        vMousePos = vMousePosCache;</div>
+<div class="line"><a name="l02954"></a><span class="lineno"> 2954</span>&#160;        nMouseWheelDelta = nMouseWheelDeltaCache;</div>
+<div class="line"><a name="l02955"></a><span class="lineno"> 2955</span>&#160;        nMouseWheelDeltaCache = 0;</div>
+<div class="line"><a name="l02956"></a><span class="lineno"> 2956</span>&#160; </div>
+<div class="line"><a name="l02957"></a><span class="lineno"> 2957</span>&#160;        <span class="comment">//  renderer-&gt;ClearBuffer(olc::BLACK, true);</span></div>
+<div class="line"><a name="l02958"></a><span class="lineno"> 2958</span>&#160; </div>
+<div class="line"><a name="l02959"></a><span class="lineno"> 2959</span>&#160;        <span class="comment">// Handle Frame Update</span></div>
+<div class="line"><a name="l02960"></a><span class="lineno"> 2960</span>&#160;        <span class="keywordflow">for</span> (<span class="keyword">auto</span>&amp; ext : vExtensions) ext-&gt;OnBeforeUserUpdate(fElapsedTime);</div>
+<div class="line"><a name="l02961"></a><span class="lineno"> 2961</span>&#160;        <span class="keywordflow">if</span> (!<a class="code" href="classolc_1_1_pixel_game_engine.html#af9379a3db341b0acb410ea543e30fdd1">OnUserUpdate</a>(fElapsedTime)) bAtomActive = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l02962"></a><span class="lineno"> 2962</span>&#160;        <span class="keywordflow">for</span> (<span class="keyword">auto</span>&amp; ext : vExtensions) ext-&gt;OnAfterUserUpdate(fElapsedTime);</div>
+<div class="line"><a name="l02963"></a><span class="lineno"> 2963</span>&#160; </div>
+<div class="line"><a name="l02964"></a><span class="lineno"> 2964</span>&#160;        <span class="comment">// Display Frame</span></div>
+<div class="line"><a name="l02965"></a><span class="lineno"> 2965</span>&#160;        renderer-&gt;UpdateViewport(vViewPos, vViewSize);</div>
+<div class="line"><a name="l02966"></a><span class="lineno"> 2966</span>&#160;        renderer-&gt;ClearBuffer(<a class="code" href="namespaceolc.html#a183de1c471cfd6f45980bc9c2c58ed9d">olc::BLACK</a>, <span class="keyword">true</span>);</div>
+<div class="line"><a name="l02967"></a><span class="lineno"> 2967</span>&#160; </div>
+<div class="line"><a name="l02968"></a><span class="lineno"> 2968</span>&#160;        <span class="comment">// Layer 0 must always exist</span></div>
+<div class="line"><a name="l02969"></a><span class="lineno"> 2969</span>&#160;        vLayers[0].bUpdate = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l02970"></a><span class="lineno"> 2970</span>&#160;        vLayers[0].bShow = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l02971"></a><span class="lineno"> 2971</span>&#160;        <a class="code" href="classolc_1_1_pixel_game_engine.html#a27ee96acff2c74d47f0cb78493aac756">SetDecalMode</a>(<a class="code" href="namespaceolc.html#aeda642f63378f868193c28e8613138caa1e23852820b9154316c7c06e2b7ba051">DecalMode::NORMAL</a>);</div>
+<div class="line"><a name="l02972"></a><span class="lineno"> 2972</span>&#160;        renderer-&gt;PrepareDrawing();</div>
+<div class="line"><a name="l02973"></a><span class="lineno"> 2973</span>&#160; </div>
+<div class="line"><a name="l02974"></a><span class="lineno"> 2974</span>&#160;        <span class="keywordflow">for</span> (<span class="keyword">auto</span> layer = vLayers.rbegin(); layer != vLayers.rend(); ++layer)</div>
+<div class="line"><a name="l02975"></a><span class="lineno"> 2975</span>&#160;        {</div>
+<div class="line"><a name="l02976"></a><span class="lineno"> 2976</span>&#160;            <span class="keywordflow">if</span> (layer-&gt;bShow)</div>
+<div class="line"><a name="l02977"></a><span class="lineno"> 2977</span>&#160;            {</div>
+<div class="line"><a name="l02978"></a><span class="lineno"> 2978</span>&#160;                <span class="keywordflow">if</span> (layer-&gt;funcHook == <span class="keyword">nullptr</span>)</div>
+<div class="line"><a name="l02979"></a><span class="lineno"> 2979</span>&#160;                {</div>
+<div class="line"><a name="l02980"></a><span class="lineno"> 2980</span>&#160;                    renderer-&gt;ApplyTexture(layer-&gt;nResID);</div>
+<div class="line"><a name="l02981"></a><span class="lineno"> 2981</span>&#160;                    <span class="keywordflow">if</span> (layer-&gt;bUpdate)</div>
+<div class="line"><a name="l02982"></a><span class="lineno"> 2982</span>&#160;                    {</div>
+<div class="line"><a name="l02983"></a><span class="lineno"> 2983</span>&#160;                        renderer-&gt;UpdateTexture(layer-&gt;nResID, layer-&gt;pDrawTarget);</div>
+<div class="line"><a name="l02984"></a><span class="lineno"> 2984</span>&#160;                        layer-&gt;bUpdate = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l02985"></a><span class="lineno"> 2985</span>&#160;                    }</div>
+<div class="line"><a name="l02986"></a><span class="lineno"> 2986</span>&#160; </div>
+<div class="line"><a name="l02987"></a><span class="lineno"> 2987</span>&#160;                    renderer-&gt;DrawLayerQuad(layer-&gt;vOffset, layer-&gt;vScale, layer-&gt;tint);</div>
+<div class="line"><a name="l02988"></a><span class="lineno"> 2988</span>&#160; </div>
+<div class="line"><a name="l02989"></a><span class="lineno"> 2989</span>&#160;                    <span class="comment">// Display Decals in order for this layer</span></div>
+<div class="line"><a name="l02990"></a><span class="lineno"> 2990</span>&#160;                    <span class="keywordflow">for</span> (<span class="keyword">auto</span>&amp; decal : layer-&gt;vecDecalInstance)</div>
+<div class="line"><a name="l02991"></a><span class="lineno"> 2991</span>&#160;                        renderer-&gt;DrawDecal(decal);</div>
+<div class="line"><a name="l02992"></a><span class="lineno"> 2992</span>&#160;                    layer-&gt;vecDecalInstance.clear();</div>
+<div class="line"><a name="l02993"></a><span class="lineno"> 2993</span>&#160;                }</div>
+<div class="line"><a name="l02994"></a><span class="lineno"> 2994</span>&#160;                <span class="keywordflow">else</span></div>
+<div class="line"><a name="l02995"></a><span class="lineno"> 2995</span>&#160;                {</div>
+<div class="line"><a name="l02996"></a><span class="lineno"> 2996</span>&#160;                    <span class="comment">// Mwa ha ha.... Have Fun!!!</span></div>
+<div class="line"><a name="l02997"></a><span class="lineno"> 2997</span>&#160;                    layer-&gt;funcHook();</div>
+<div class="line"><a name="l02998"></a><span class="lineno"> 2998</span>&#160;                }</div>
+<div class="line"><a name="l02999"></a><span class="lineno"> 2999</span>&#160;            }</div>
+<div class="line"><a name="l03000"></a><span class="lineno"> 3000</span>&#160;        }</div>
+<div class="line"><a name="l03001"></a><span class="lineno"> 3001</span>&#160; </div>
+<div class="line"><a name="l03002"></a><span class="lineno"> 3002</span>&#160;        <span class="comment">// Present Graphics to screen</span></div>
+<div class="line"><a name="l03003"></a><span class="lineno"> 3003</span>&#160;        renderer-&gt;DisplayFrame();</div>
+<div class="line"><a name="l03004"></a><span class="lineno"> 3004</span>&#160; </div>
+<div class="line"><a name="l03005"></a><span class="lineno"> 3005</span>&#160;        <span class="comment">// Update Title Bar</span></div>
+<div class="line"><a name="l03006"></a><span class="lineno"> 3006</span>&#160;        fFrameTimer += fElapsedTime;</div>
+<div class="line"><a name="l03007"></a><span class="lineno"> 3007</span>&#160;        nFrameCount++;</div>
+<div class="line"><a name="l03008"></a><span class="lineno"> 3008</span>&#160;        <span class="keywordflow">if</span> (fFrameTimer &gt;= 1.0f)</div>
+<div class="line"><a name="l03009"></a><span class="lineno"> 3009</span>&#160;        {</div>
+<div class="line"><a name="l03010"></a><span class="lineno"> 3010</span>&#160;            nLastFPS = nFrameCount;</div>
+<div class="line"><a name="l03011"></a><span class="lineno"> 3011</span>&#160;            fFrameTimer -= 1.0f;</div>
+<div class="line"><a name="l03012"></a><span class="lineno"> 3012</span>&#160;            std::string sTitle = <span class="stringliteral">&quot;OneLoneCoder.com - Pixel Game Engine - &quot;</span> + <a class="code" href="classolc_1_1_pixel_game_engine.html#a02d0f9c50770aa38aea1448f62d3604f">sAppName</a> + <span class="stringliteral">&quot; - FPS: &quot;</span> + std::to_string(nFrameCount);</div>
+<div class="line"><a name="l03013"></a><span class="lineno"> 3013</span>&#160;            platform-&gt;SetWindowTitle(sTitle);</div>
+<div class="line"><a name="l03014"></a><span class="lineno"> 3014</span>&#160;            nFrameCount = 0;</div>
+<div class="line"><a name="l03015"></a><span class="lineno"> 3015</span>&#160;        }</div>
+<div class="line"><a name="l03016"></a><span class="lineno"> 3016</span>&#160;    }</div>
+<div class="line"><a name="l03017"></a><span class="lineno"> 3017</span>&#160; </div>
+<div class="line"><a name="l03018"></a><span class="lineno"> 3018</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_pixel_game_engine.html#a117eedbe1e9366fe2bf402334beb9692">PixelGameEngine::olc_ConstructFontSheet</a>()</div>
+<div class="line"><a name="l03019"></a><span class="lineno"> 3019</span>&#160;    {</div>
+<div class="line"><a name="l03020"></a><span class="lineno"> 3020</span>&#160;        std::string data;</div>
+<div class="line"><a name="l03021"></a><span class="lineno"> 3021</span>&#160;        data += <span class="stringliteral">&quot;?Q`0001oOch0o01o@F40o0&lt;AGD4090LAGD&lt;090@A7ch0?00O7Q`0600&gt;00000000&quot;</span>;</div>
+<div class="line"><a name="l03022"></a><span class="lineno"> 3022</span>&#160;        data += <span class="stringliteral">&quot;O000000nOT0063Qo4d8&gt;?7a14Gno94AA4gno94AaOT0&gt;o3`oO400o7QN00000400&quot;</span>;</div>
+<div class="line"><a name="l03023"></a><span class="lineno"> 3023</span>&#160;        data += <span class="stringliteral">&quot;Of80001oOg&lt;7O7moBGT7O7lABET024@aBEd714AiOdl717a_=TH013Q&gt;00000000&quot;</span>;</div>
+<div class="line"><a name="l03024"></a><span class="lineno"> 3024</span>&#160;        data += <span class="stringliteral">&quot;720D000V?V5oB3Q_HdUoE7a9@DdDE4A9@DmoE4A;Hg]oM4Aj8S4D84@`00000000&quot;</span>;</div>
+<div class="line"><a name="l03025"></a><span class="lineno"> 3025</span>&#160;        data += <span class="stringliteral">&quot;OaPT1000Oa`^13P1@AI[?g`1@A=[OdAoHgljA4Ao?WlBA7l1710007l100000000&quot;</span>;</div>
+<div class="line"><a name="l03026"></a><span class="lineno"> 3026</span>&#160;        data += <span class="stringliteral">&quot;ObM6000oOfMV?3QoBDD`O7a0BDDH@5A0BDD&lt;@5A0BGeVO5ao@CQR?5Po00000000&quot;</span>;</div>
+<div class="line"><a name="l03027"></a><span class="lineno"> 3027</span>&#160;        data += <span class="stringliteral">&quot;Oc``000?Ogij70PO2D]??0Ph2DUM@7i`2DTg@7lh2GUj?0TO0C1870T?00000000&quot;</span>;</div>
+<div class="line"><a name="l03028"></a><span class="lineno"> 3028</span>&#160;        data += <span class="stringliteral">&quot;70&lt;4001o?P&lt;7?1QoHg43O;`h@GT0@:@LB@d0&gt;:@hN@L0@?aoN@&lt;0O7ao0000?000&quot;</span>;</div>
+<div class="line"><a name="l03029"></a><span class="lineno"> 3029</span>&#160;        data += <span class="stringliteral">&quot;OcH0001SOglLA7mg24TnK7ln24US&gt;0PL24U140PnOgl0&gt;7QgOcH0K71S0000A000&quot;</span>;</div>
+<div class="line"><a name="l03030"></a><span class="lineno"> 3030</span>&#160;        data += <span class="stringliteral">&quot;00H00000@Dm1S007@DUSg00?OdTnH7YhOfTL&lt;7Yh@Cl0700?@Ah0300700000000&quot;</span>;</div>
+<div class="line"><a name="l03031"></a><span class="lineno"> 3031</span>&#160;        data += <span class="stringliteral">&quot;&lt;008001QL00ZA41a@6HnI&lt;1i@FHLM81M@@0LG81?O`0nC?Y7?`0ZA7Y300080000&quot;</span>;</div>
+<div class="line"><a name="l03032"></a><span class="lineno"> 3032</span>&#160;        data += <span class="stringliteral">&quot;O`082000Oh0827mo6&gt;Hn?Wmo?6HnMb11MP08@C11H`08@FP0@@0004@000000000&quot;</span>;</div>
+<div class="line"><a name="l03033"></a><span class="lineno"> 3033</span>&#160;        data += <span class="stringliteral">&quot;00P00001Oab00003OcKP0006@6=PMgl&lt;@440MglH@000000`@000001P00000000&quot;</span>;</div>
+<div class="line"><a name="l03034"></a><span class="lineno"> 3034</span>&#160;        data += <span class="stringliteral">&quot;Ob@8@@00Ob@8@Ga13R@8Mga172@8?PAo3R@827QoOb@820@0O`0007`0000007P0&quot;</span>;</div>
+<div class="line"><a name="l03035"></a><span class="lineno"> 3035</span>&#160;        data += <span class="stringliteral">&quot;O`000P08Od400g`&lt;3V=P0G`673IP0`@3&gt;1`00P@6O`P00g`&lt;O`000GP800000000&quot;</span>;</div>
+<div class="line"><a name="l03036"></a><span class="lineno"> 3036</span>&#160;        data += <span class="stringliteral">&quot;?P9PL020O`&lt;`N3R0@E4HC7b0@ET&lt;ATB0@@l6C4B0O`H3N7b0?P01L3R000000020&quot;</span>;</div>
+<div class="line"><a name="l03037"></a><span class="lineno"> 3037</span>&#160; </div>
+<div class="line"><a name="l03038"></a><span class="lineno"> 3038</span>&#160;        fontSprite = <span class="keyword">new</span> <a class="code" href="classolc_1_1_sprite.html">olc::Sprite</a>(128, 48);</div>
+<div class="line"><a name="l03039"></a><span class="lineno"> 3039</span>&#160;        <span class="keywordtype">int</span> px = 0, py = 0;</div>
+<div class="line"><a name="l03040"></a><span class="lineno"> 3040</span>&#160;        <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> b = 0; b &lt; 1024; b += 4)</div>
+<div class="line"><a name="l03041"></a><span class="lineno"> 3041</span>&#160;        {</div>
+<div class="line"><a name="l03042"></a><span class="lineno"> 3042</span>&#160;            uint32_t sym1 = (uint32_t)data[b + 0] - 48;</div>
+<div class="line"><a name="l03043"></a><span class="lineno"> 3043</span>&#160;            uint32_t sym2 = (uint32_t)data[b + 1] - 48;</div>
+<div class="line"><a name="l03044"></a><span class="lineno"> 3044</span>&#160;            uint32_t sym3 = (uint32_t)data[b + 2] - 48;</div>
+<div class="line"><a name="l03045"></a><span class="lineno"> 3045</span>&#160;            uint32_t sym4 = (uint32_t)data[b + 3] - 48;</div>
+<div class="line"><a name="l03046"></a><span class="lineno"> 3046</span>&#160;            uint32_t r = sym1 &lt;&lt; 18 | sym2 &lt;&lt; 12 | sym3 &lt;&lt; 6 | sym4;</div>
+<div class="line"><a name="l03047"></a><span class="lineno"> 3047</span>&#160; </div>
+<div class="line"><a name="l03048"></a><span class="lineno"> 3048</span>&#160;            <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; 24; i++)</div>
+<div class="line"><a name="l03049"></a><span class="lineno"> 3049</span>&#160;            {</div>
+<div class="line"><a name="l03050"></a><span class="lineno"> 3050</span>&#160;                <span class="keywordtype">int</span> k = r &amp; (1 &lt;&lt; i) ? 255 : 0;</div>
+<div class="line"><a name="l03051"></a><span class="lineno"> 3051</span>&#160;                fontSprite-&gt;<a class="code" href="classolc_1_1_sprite.html#a294389e93a95c8307f1260d7cacaf9ba">SetPixel</a>(px, py, <a class="code" href="structolc_1_1_pixel.html">olc::Pixel</a>(k, k, k, k));</div>
+<div class="line"><a name="l03052"></a><span class="lineno"> 3052</span>&#160;                <span class="keywordflow">if</span> (++py == 48) { px++; py = 0; }</div>
+<div class="line"><a name="l03053"></a><span class="lineno"> 3053</span>&#160;            }</div>
+<div class="line"><a name="l03054"></a><span class="lineno"> 3054</span>&#160;        }</div>
+<div class="line"><a name="l03055"></a><span class="lineno"> 3055</span>&#160; </div>
+<div class="line"><a name="l03056"></a><span class="lineno"> 3056</span>&#160;        fontDecal = <span class="keyword">new</span> <a class="code" href="classolc_1_1_decal.html">olc::Decal</a>(fontSprite);</div>
+<div class="line"><a name="l03057"></a><span class="lineno"> 3057</span>&#160; </div>
+<div class="line"><a name="l03058"></a><span class="lineno"> 3058</span>&#160;        constexpr std::array&lt;uint8_t, 96&gt; vSpacing = { {</div>
+<div class="line"><a name="l03059"></a><span class="lineno"> 3059</span>&#160;            0x03,0x25,0x16,0x08,0x07,0x08,0x08,0x04,0x15,0x15,0x08,0x07,0x15,0x07,0x24,0x08,</div>
+<div class="line"><a name="l03060"></a><span class="lineno"> 3060</span>&#160;            0x08,0x17,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x24,0x15,0x06,0x07,0x16,0x17,</div>
+<div class="line"><a name="l03061"></a><span class="lineno"> 3061</span>&#160;            0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x17,0x08,0x08,0x17,0x08,0x08,0x08,</div>
+<div class="line"><a name="l03062"></a><span class="lineno"> 3062</span>&#160;            0x08,0x08,0x08,0x08,0x17,0x08,0x08,0x08,0x08,0x17,0x08,0x15,0x08,0x15,0x08,0x08,</div>
+<div class="line"><a name="l03063"></a><span class="lineno"> 3063</span>&#160;            0x24,0x18,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x33,0x17,0x17,0x33,0x18,0x17,0x17,</div>
+<div class="line"><a name="l03064"></a><span class="lineno"> 3064</span>&#160;            0x17,0x17,0x17,0x17,0x07,0x17,0x17,0x18,0x18,0x17,0x17,0x07,0x33,0x07,0x08,0x00, } };</div>
+<div class="line"><a name="l03065"></a><span class="lineno"> 3065</span>&#160; </div>
+<div class="line"><a name="l03066"></a><span class="lineno"> 3066</span>&#160;        <span class="keywordflow">for</span> (<span class="keyword">auto</span> c : vSpacing) vFontSpacing.push_back({ c &gt;&gt; 4, c &amp; 15 });</div>
+<div class="line"><a name="l03067"></a><span class="lineno"> 3067</span>&#160; </div>
+<div class="line"><a name="l03068"></a><span class="lineno"> 3068</span>&#160;    }</div>
+<div class="line"><a name="l03069"></a><span class="lineno"> 3069</span>&#160; </div>
+<div class="line"><a name="l03070"></a><span class="lineno"> 3070</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_pixel_game_engine.html#a49a2ead57239e1595cc555effd3e3a2b">PixelGameEngine::pgex_Register</a>(<a class="code" href="classolc_1_1_p_g_e_x.html">olc::PGEX</a>* pgex)</div>
+<div class="line"><a name="l03071"></a><span class="lineno"> 3071</span>&#160;    {</div>
+<div class="line"><a name="l03072"></a><span class="lineno"> 3072</span>&#160;        <span class="keywordflow">if</span> (std::find(vExtensions.begin(), vExtensions.end(), pgex) == vExtensions.end())</div>
+<div class="line"><a name="l03073"></a><span class="lineno"> 3073</span>&#160;            vExtensions.push_back(pgex);            </div>
+<div class="line"><a name="l03074"></a><span class="lineno"> 3074</span>&#160;    }</div>
+<div class="line"><a name="l03075"></a><span class="lineno"> 3075</span>&#160; </div>
+<div class="line"><a name="l03076"></a><span class="lineno"> 3076</span>&#160; </div>
+<div class="line"><a name="l03077"></a><span class="lineno"> 3077</span>&#160;    <a class="code" href="classolc_1_1_p_g_e_x.html#aae9dbde2ad7341482b9f911f23678d75">PGEX::PGEX</a>(<span class="keywordtype">bool</span> bHook) { <span class="keywordflow">if</span>(bHook) <a class="code" href="classolc_1_1_p_g_e_x.html#a032efdb84150a7cdd3cc9248860df316">pge</a>-&gt;<a class="code" href="classolc_1_1_pixel_game_engine.html#a49a2ead57239e1595cc555effd3e3a2b">pgex_Register</a>(<span class="keyword">this</span>); }</div>
+<div class="line"><a name="l03078"></a><span class="lineno"> 3078</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_p_g_e_x.html#a69c65b5d3a56f9a247e1bf15fd2e4035">PGEX::OnBeforeUserCreate</a>() {}</div>
+<div class="line"><a name="l03079"></a><span class="lineno"> 3079</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_p_g_e_x.html#a2a57a711518202708d2b0e586058348f">PGEX::OnAfterUserCreate</a>()  {}</div>
+<div class="line"><a name="l03080"></a><span class="lineno"> 3080</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_p_g_e_x.html#a2573df22f1637314b976811714dea3fb">PGEX::OnBeforeUserUpdate</a>(<span class="keywordtype">float</span>&amp; fElapsedTime) {}</div>
+<div class="line"><a name="l03081"></a><span class="lineno"> 3081</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_p_g_e_x.html#a4d2dd7d685fb1c7d00d97aa15e3376b4">PGEX::OnAfterUserUpdate</a>(<span class="keywordtype">float</span> fElapsedTime) {}</div>
+<div class="line"><a name="l03082"></a><span class="lineno"> 3082</span>&#160; </div>
+<div class="line"><a name="l03083"></a><span class="lineno"> 3083</span>&#160;    <span class="comment">// Need a couple of statics as these are singleton instances</span></div>
+<div class="line"><a name="l03084"></a><span class="lineno"> 3084</span>&#160;    <span class="comment">// read from multiple locations</span></div>
+<div class="line"><a name="l03085"></a><span class="lineno"> 3085</span>&#160;    std::atomic&lt;bool&gt; PixelGameEngine::bAtomActive{ <span class="keyword">false</span> };</div>
+<div class="line"><a name="l03086"></a><span class="lineno"> 3086</span>&#160;    <a class="code" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a>* <a class="code" href="classolc_1_1_p_g_e_x.html#a032efdb84150a7cdd3cc9248860df316">olc::PGEX::pge</a> = <span class="keyword">nullptr</span>;</div>
+<div class="line"><a name="l03087"></a><span class="lineno"> 3087</span>&#160;    <a class="code" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a>* <a class="code" href="classolc_1_1_platform.html#a43a4a5eaaf20384b9cef6aec6e75dbbd">olc::Platform::ptrPGE</a> = <span class="keyword">nullptr</span>;</div>
+<div class="line"><a name="l03088"></a><span class="lineno"> 3088</span>&#160;    <a class="code" href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a>* <a class="code" href="classolc_1_1_renderer.html#a89f800c14ab1b070408c17e2589e02a1">olc::Renderer::ptrPGE</a> = <span class="keyword">nullptr</span>;</div>
+<div class="line"><a name="l03089"></a><span class="lineno"> 3089</span>&#160;    std::unique_ptr&lt;ImageLoader&gt; <a class="code" href="classolc_1_1_sprite.html#a023da26661031ebf7a276cafd9a43902">olc::Sprite::loader</a> = <span class="keyword">nullptr</span>;</div>
+<div class="line"><a name="l03090"></a><span class="lineno"> 3090</span>&#160;};</div>
+<div class="line"><a name="l03091"></a><span class="lineno"> 3091</span>&#160;<span class="preprocessor">#pragma endregion </span></div>
+<div class="line"><a name="l03092"></a><span class="lineno"> 3092</span>&#160; </div>
+<div class="line"><a name="l03093"></a><span class="lineno"> 3093</span>&#160;<span class="comment">// O------------------------------------------------------------------------------O</span></div>
+<div class="line"><a name="l03094"></a><span class="lineno"> 3094</span>&#160;<span class="comment">// | olcPixelGameEngine Renderers - the draw-y bits                               |</span></div>
+<div class="line"><a name="l03095"></a><span class="lineno"> 3095</span>&#160;<span class="comment">// O------------------------------------------------------------------------------O</span></div>
+<div class="line"><a name="l03096"></a><span class="lineno"> 3096</span>&#160; </div>
+<div class="line"><a name="l03097"></a><span class="lineno"> 3097</span>&#160;<span class="preprocessor">#pragma region renderer_ogl10</span></div>
+<div class="line"><a name="l03098"></a><span class="lineno"> 3098</span>&#160;<span class="comment">// O------------------------------------------------------------------------------O</span></div>
+<div class="line"><a name="l03099"></a><span class="lineno"> 3099</span>&#160;<span class="comment">// | START RENDERER: OpenGL 1.0 (the original, the best...)                       |</span></div>
+<div class="line"><a name="l03100"></a><span class="lineno"> 3100</span>&#160;<span class="comment">// O------------------------------------------------------------------------------O</span></div>
+<div class="line"><a name="l03101"></a><span class="lineno"> 3101</span>&#160;<span class="preprocessor">#if defined(OLC_GFX_OPENGL10)</span></div>
+<div class="line"><a name="l03102"></a><span class="lineno"> 3102</span>&#160; </div>
+<div class="line"><a name="l03103"></a><span class="lineno"> 3103</span>&#160;<span class="preprocessor">#if defined(OLC_PLATFORM_WINAPI)</span></div>
+<div class="line"><a name="l03104"></a><span class="lineno"> 3104</span>&#160;<span class="preprocessor">    #include &lt;dwmapi.h&gt;</span></div>
+<div class="line"><a name="l03105"></a><span class="lineno"> 3105</span>&#160;<span class="preprocessor">    #include &lt;GL/gl.h&gt;</span></div>
+<div class="line"><a name="l03106"></a><span class="lineno"> 3106</span>&#160;<span class="preprocessor">    #if !defined(__MINGW32__)</span></div>
+<div class="line"><a name="l03107"></a><span class="lineno"> 3107</span>&#160;<span class="preprocessor">        #pragma comment(lib, &quot;Dwmapi.lib&quot;)</span></div>
+<div class="line"><a name="l03108"></a><span class="lineno"> 3108</span>&#160;<span class="preprocessor">    #endif</span></div>
+<div class="line"><a name="l03109"></a><span class="lineno"> 3109</span>&#160;    <span class="keyword">typedef</span> BOOL(WINAPI wglSwapInterval_t) (<span class="keywordtype">int</span> interval);</div>
+<div class="line"><a name="l03110"></a><span class="lineno"> 3110</span>&#160;    <span class="keyword">static</span> wglSwapInterval_t* wglSwapInterval = <span class="keyword">nullptr</span>;</div>
+<div class="line"><a name="l03111"></a><span class="lineno"> 3111</span>&#160;    <span class="keyword">typedef</span> HDC glDeviceContext_t;</div>
+<div class="line"><a name="l03112"></a><span class="lineno"> 3112</span>&#160;    <span class="keyword">typedef</span> HGLRC glRenderContext_t;</div>
+<div class="line"><a name="l03113"></a><span class="lineno"> 3113</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l03114"></a><span class="lineno"> 3114</span>&#160; </div>
+<div class="line"><a name="l03115"></a><span class="lineno"> 3115</span>&#160;<span class="preprocessor">#if defined(__linux__) || defined(__FreeBSD__)</span></div>
+<div class="line"><a name="l03116"></a><span class="lineno"> 3116</span>&#160;<span class="preprocessor">    #include &lt;GL/gl.h&gt;</span></div>
+<div class="line"><a name="l03117"></a><span class="lineno"> 3117</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l03118"></a><span class="lineno"> 3118</span>&#160; </div>
+<div class="line"><a name="l03119"></a><span class="lineno"> 3119</span>&#160;<span class="preprocessor">#if defined(OLC_PLATFORM_X11)</span></div>
+<div class="line"><a name="l03120"></a><span class="lineno"> 3120</span>&#160;    <span class="keyword">namespace </span>X11</div>
+<div class="line"><a name="l03121"></a><span class="lineno"> 3121</span>&#160;    {</div>
+<div class="line"><a name="l03122"></a><span class="lineno"> 3122</span>&#160;<span class="preprocessor">        #include &lt;GL/glx.h&gt;</span></div>
+<div class="line"><a name="l03123"></a><span class="lineno"> 3123</span>&#160;    }</div>
+<div class="line"><a name="l03124"></a><span class="lineno"> 3124</span>&#160;    <span class="keyword">typedef</span> int(glSwapInterval_t)(X11::Display* dpy, X11::GLXDrawable drawable, <span class="keywordtype">int</span> interval);</div>
+<div class="line"><a name="l03125"></a><span class="lineno"> 3125</span>&#160;    <span class="keyword">static</span> glSwapInterval_t* glSwapIntervalEXT;</div>
+<div class="line"><a name="l03126"></a><span class="lineno"> 3126</span>&#160;    <span class="keyword">typedef</span> X11::GLXContext glDeviceContext_t;</div>
+<div class="line"><a name="l03127"></a><span class="lineno"> 3127</span>&#160;    <span class="keyword">typedef</span> X11::GLXContext glRenderContext_t;</div>
+<div class="line"><a name="l03128"></a><span class="lineno"> 3128</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l03129"></a><span class="lineno"> 3129</span>&#160; </div>
+<div class="line"><a name="l03130"></a><span class="lineno"> 3130</span>&#160;<span class="preprocessor">#if defined(__APPLE__)</span></div>
+<div class="line"><a name="l03131"></a><span class="lineno"> 3131</span>&#160;<span class="preprocessor">    #define GL_SILENCE_DEPRECATION</span></div>
+<div class="line"><a name="l03132"></a><span class="lineno"> 3132</span>&#160;<span class="preprocessor">    #include &lt;OpenGL/OpenGL.h&gt;</span></div>
+<div class="line"><a name="l03133"></a><span class="lineno"> 3133</span>&#160;<span class="preprocessor">    #include &lt;OpenGL/gl.h&gt;</span></div>
+<div class="line"><a name="l03134"></a><span class="lineno"> 3134</span>&#160;<span class="preprocessor">    #include &lt;OpenGL/glu.h&gt;</span></div>
+<div class="line"><a name="l03135"></a><span class="lineno"> 3135</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l03136"></a><span class="lineno"> 3136</span>&#160; </div>
+<div class="line"><a name="l03137"></a><span class="lineno"> 3137</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespaceolc.html">olc</a></div>
+<div class="line"><a name="l03138"></a><span class="lineno"> 3138</span>&#160;{</div>
+<div class="line"><a name="l03139"></a><span class="lineno"> 3139</span>&#160;    <span class="keyword">class </span>Renderer_OGL10 : <span class="keyword">public</span> <a class="code" href="classolc_1_1_renderer.html">olc::Renderer</a></div>
+<div class="line"><a name="l03140"></a><span class="lineno"> 3140</span>&#160;    {</div>
+<div class="line"><a name="l03141"></a><span class="lineno"> 3141</span>&#160;    <span class="keyword">private</span>:</div>
+<div class="line"><a name="l03142"></a><span class="lineno"> 3142</span>&#160;<span class="preprocessor">#if defined(OLC_PLATFORM_GLUT)</span></div>
+<div class="line"><a name="l03143"></a><span class="lineno"> 3143</span>&#160;        <span class="keywordtype">bool</span> mFullScreen = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l03144"></a><span class="lineno"> 3144</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l03145"></a><span class="lineno"> 3145</span>&#160;        glDeviceContext_t glDeviceContext = 0;</div>
+<div class="line"><a name="l03146"></a><span class="lineno"> 3146</span>&#160;        glRenderContext_t glRenderContext = 0;</div>
+<div class="line"><a name="l03147"></a><span class="lineno"> 3147</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l03148"></a><span class="lineno"> 3148</span>&#160; </div>
+<div class="line"><a name="l03149"></a><span class="lineno"> 3149</span>&#160;        <span class="keywordtype">bool</span> bSync = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l03150"></a><span class="lineno"> 3150</span>&#160;        <a class="code" href="namespaceolc.html#aeda642f63378f868193c28e8613138ca">olc::DecalMode</a> nDecalMode = <a class="code" href="namespaceolc.html#aeda642f63378f868193c28e8613138ca">olc::DecalMode</a>(-1); <span class="comment">// Thanks Gusgo &amp; Bispoo</span></div>
+<div class="line"><a name="l03151"></a><span class="lineno"> 3151</span>&#160; </div>
+<div class="line"><a name="l03152"></a><span class="lineno"> 3152</span>&#160;<span class="preprocessor">#if defined(OLC_PLATFORM_X11)</span></div>
+<div class="line"><a name="l03153"></a><span class="lineno"> 3153</span>&#160;        X11::Display* olc_Display = <span class="keyword">nullptr</span>;</div>
+<div class="line"><a name="l03154"></a><span class="lineno"> 3154</span>&#160;        X11::Window* olc_Window = <span class="keyword">nullptr</span>;</div>
+<div class="line"><a name="l03155"></a><span class="lineno"> 3155</span>&#160;        X11::XVisualInfo* olc_VisualInfo = <span class="keyword">nullptr</span>;</div>
+<div class="line"><a name="l03156"></a><span class="lineno"> 3156</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l03157"></a><span class="lineno"> 3157</span>&#160; </div>
+<div class="line"><a name="l03158"></a><span class="lineno"> 3158</span>&#160;    <span class="keyword">public</span>:</div>
+<div class="line"><a name="l03159"></a><span class="lineno"> 3159</span>&#160;        <span class="keywordtype">void</span> PrepareDevice()<span class="keyword"> override</span></div>
+<div class="line"><a name="l03160"></a><span class="lineno"> 3160</span>&#160;<span class="keyword">        </span>{</div>
+<div class="line"><a name="l03161"></a><span class="lineno"> 3161</span>&#160;<span class="preprocessor">#if defined(OLC_PLATFORM_GLUT)</span></div>
+<div class="line"><a name="l03162"></a><span class="lineno"> 3162</span>&#160;            <span class="comment">//glutInit has to be called with main() arguments, make fake ones</span></div>
+<div class="line"><a name="l03163"></a><span class="lineno"> 3163</span>&#160;            <span class="keywordtype">int</span> argc = 0;</div>
+<div class="line"><a name="l03164"></a><span class="lineno"> 3164</span>&#160;            <span class="keywordtype">char</span>* argv[1] = { (<span class="keywordtype">char</span>*)<span class="stringliteral">&quot;&quot;</span> };</div>
+<div class="line"><a name="l03165"></a><span class="lineno"> 3165</span>&#160;            glutInit(&amp;argc, argv);</div>
+<div class="line"><a name="l03166"></a><span class="lineno"> 3166</span>&#160;            glutInitWindowPosition(0, 0);</div>
+<div class="line"><a name="l03167"></a><span class="lineno"> 3167</span>&#160;            glutInitWindowSize(512, 512);</div>
+<div class="line"><a name="l03168"></a><span class="lineno"> 3168</span>&#160;            glutInitDisplayMode(GLUT_DOUBLE | GLUT_DEPTH | GLUT_RGBA);</div>
+<div class="line"><a name="l03169"></a><span class="lineno"> 3169</span>&#160;            <span class="comment">// Creates the window and the OpenGL context for it</span></div>
+<div class="line"><a name="l03170"></a><span class="lineno"> 3170</span>&#160;            glutCreateWindow(<span class="stringliteral">&quot;OneLoneCoder.com - Pixel Game Engine&quot;</span>);</div>
+<div class="line"><a name="l03171"></a><span class="lineno"> 3171</span>&#160;            glEnable(GL_TEXTURE_2D); <span class="comment">// Turn on texturing</span></div>
+<div class="line"><a name="l03172"></a><span class="lineno"> 3172</span>&#160;            glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST);</div>
+<div class="line"><a name="l03173"></a><span class="lineno"> 3173</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l03174"></a><span class="lineno"> 3174</span>&#160;        }</div>
+<div class="line"><a name="l03175"></a><span class="lineno"> 3175</span>&#160; </div>
+<div class="line"><a name="l03176"></a><span class="lineno"> 3176</span>&#160;        <a class="code" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87b">olc::rcode</a> CreateDevice(std::vector&lt;void*&gt; params, <span class="keywordtype">bool</span> bFullScreen, <span class="keywordtype">bool</span> bVSYNC)<span class="keyword"> override</span></div>
+<div class="line"><a name="l03177"></a><span class="lineno"> 3177</span>&#160;<span class="keyword">        </span>{</div>
+<div class="line"><a name="l03178"></a><span class="lineno"> 3178</span>&#160;<span class="preprocessor">#if defined(OLC_PLATFORM_WINAPI)</span></div>
+<div class="line"><a name="l03179"></a><span class="lineno"> 3179</span>&#160;            <span class="comment">// Create Device Context</span></div>
+<div class="line"><a name="l03180"></a><span class="lineno"> 3180</span>&#160;            glDeviceContext = GetDC((HWND)(params[0]));</div>
+<div class="line"><a name="l03181"></a><span class="lineno"> 3181</span>&#160;            PIXELFORMATDESCRIPTOR pfd =</div>
+<div class="line"><a name="l03182"></a><span class="lineno"> 3182</span>&#160;            {</div>
+<div class="line"><a name="l03183"></a><span class="lineno"> 3183</span>&#160;                <span class="keyword">sizeof</span>(PIXELFORMATDESCRIPTOR), 1,</div>
+<div class="line"><a name="l03184"></a><span class="lineno"> 3184</span>&#160;                PFD_DRAW_TO_WINDOW | PFD_SUPPORT_OPENGL | PFD_DOUBLEBUFFER,</div>
+<div class="line"><a name="l03185"></a><span class="lineno"> 3185</span>&#160;                PFD_TYPE_RGBA, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,</div>
+<div class="line"><a name="l03186"></a><span class="lineno"> 3186</span>&#160;                PFD_MAIN_PLANE, 0, 0, 0, 0</div>
+<div class="line"><a name="l03187"></a><span class="lineno"> 3187</span>&#160;            };</div>
+<div class="line"><a name="l03188"></a><span class="lineno"> 3188</span>&#160; </div>
+<div class="line"><a name="l03189"></a><span class="lineno"> 3189</span>&#160;            <span class="keywordtype">int</span> pf = 0;</div>
+<div class="line"><a name="l03190"></a><span class="lineno"> 3190</span>&#160;            <span class="keywordflow">if</span> (!(pf = ChoosePixelFormat(glDeviceContext, &amp;pfd))) <span class="keywordflow">return</span> <a class="code" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87baadc8ac6e9769db5bb290fbf5f8284dbf">olc::FAIL</a>;</div>
+<div class="line"><a name="l03191"></a><span class="lineno"> 3191</span>&#160;            SetPixelFormat(glDeviceContext, pf, &amp;pfd);</div>
+<div class="line"><a name="l03192"></a><span class="lineno"> 3192</span>&#160; </div>
+<div class="line"><a name="l03193"></a><span class="lineno"> 3193</span>&#160;            <span class="keywordflow">if</span> (!(glRenderContext = wglCreateContext(glDeviceContext))) <span class="keywordflow">return</span> <a class="code" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87baadc8ac6e9769db5bb290fbf5f8284dbf">olc::FAIL</a>;</div>
+<div class="line"><a name="l03194"></a><span class="lineno"> 3194</span>&#160;            wglMakeCurrent(glDeviceContext, glRenderContext);</div>
+<div class="line"><a name="l03195"></a><span class="lineno"> 3195</span>&#160; </div>
+<div class="line"><a name="l03196"></a><span class="lineno"> 3196</span>&#160;            <span class="comment">// Remove Frame cap</span></div>
+<div class="line"><a name="l03197"></a><span class="lineno"> 3197</span>&#160;            wglSwapInterval = (wglSwapInterval_t*)wglGetProcAddress(<span class="stringliteral">&quot;wglSwapIntervalEXT&quot;</span>);</div>
+<div class="line"><a name="l03198"></a><span class="lineno"> 3198</span>&#160;            <span class="keywordflow">if</span> (wglSwapInterval &amp;&amp; !bVSYNC) wglSwapInterval(0);</div>
+<div class="line"><a name="l03199"></a><span class="lineno"> 3199</span>&#160;            bSync = bVSYNC;</div>
+<div class="line"><a name="l03200"></a><span class="lineno"> 3200</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l03201"></a><span class="lineno"> 3201</span>&#160; </div>
+<div class="line"><a name="l03202"></a><span class="lineno"> 3202</span>&#160;<span class="preprocessor">#if defined(OLC_PLATFORM_X11)</span></div>
+<div class="line"><a name="l03203"></a><span class="lineno"> 3203</span>&#160;            <span class="keyword">using namespace </span>X11;</div>
+<div class="line"><a name="l03204"></a><span class="lineno"> 3204</span>&#160;            <span class="comment">// Linux has tighter coupling between OpenGL and X11, so we store</span></div>
+<div class="line"><a name="l03205"></a><span class="lineno"> 3205</span>&#160;            <span class="comment">// various &quot;platform&quot; handles in the renderer</span></div>
+<div class="line"><a name="l03206"></a><span class="lineno"> 3206</span>&#160;            olc_Display = (X11::Display*)(params[0]);</div>
+<div class="line"><a name="l03207"></a><span class="lineno"> 3207</span>&#160;            olc_Window = (X11::Window*)(params[1]);</div>
+<div class="line"><a name="l03208"></a><span class="lineno"> 3208</span>&#160;            olc_VisualInfo = (X11::XVisualInfo*)(params[2]);</div>
+<div class="line"><a name="l03209"></a><span class="lineno"> 3209</span>&#160; </div>
+<div class="line"><a name="l03210"></a><span class="lineno"> 3210</span>&#160;            glDeviceContext = glXCreateContext(olc_Display, olc_VisualInfo, <span class="keyword">nullptr</span>, GL_TRUE);</div>
+<div class="line"><a name="l03211"></a><span class="lineno"> 3211</span>&#160;            glXMakeCurrent(olc_Display, *olc_Window, glDeviceContext);</div>
+<div class="line"><a name="l03212"></a><span class="lineno"> 3212</span>&#160; </div>
+<div class="line"><a name="l03213"></a><span class="lineno"> 3213</span>&#160;            XWindowAttributes gwa;</div>
+<div class="line"><a name="l03214"></a><span class="lineno"> 3214</span>&#160;            XGetWindowAttributes(olc_Display, *olc_Window, &amp;gwa);</div>
+<div class="line"><a name="l03215"></a><span class="lineno"> 3215</span>&#160;            glViewport(0, 0, gwa.width, gwa.height);</div>
+<div class="line"><a name="l03216"></a><span class="lineno"> 3216</span>&#160; </div>
+<div class="line"><a name="l03217"></a><span class="lineno"> 3217</span>&#160;            glSwapIntervalEXT = <span class="keyword">nullptr</span>;</div>
+<div class="line"><a name="l03218"></a><span class="lineno"> 3218</span>&#160;            glSwapIntervalEXT = (glSwapInterval_t*)glXGetProcAddress((<span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>*)<span class="stringliteral">&quot;glXSwapIntervalEXT&quot;</span>);</div>
+<div class="line"><a name="l03219"></a><span class="lineno"> 3219</span>&#160; </div>
+<div class="line"><a name="l03220"></a><span class="lineno"> 3220</span>&#160;            <span class="keywordflow">if</span> (glSwapIntervalEXT == <span class="keyword">nullptr</span> &amp;&amp; !bVSYNC)</div>
+<div class="line"><a name="l03221"></a><span class="lineno"> 3221</span>&#160;            {</div>
+<div class="line"><a name="l03222"></a><span class="lineno"> 3222</span>&#160;                printf(<span class="stringliteral">&quot;NOTE: Could not disable VSYNC, glXSwapIntervalEXT() was not found!\n&quot;</span>);</div>
+<div class="line"><a name="l03223"></a><span class="lineno"> 3223</span>&#160;                printf(<span class="stringliteral">&quot;      Don&#39;t worry though, things will still work, it&#39;s just the\n&quot;</span>);</div>
+<div class="line"><a name="l03224"></a><span class="lineno"> 3224</span>&#160;                printf(<span class="stringliteral">&quot;      frame rate will be capped to your monitors refresh rate - javidx9\n&quot;</span>);</div>
+<div class="line"><a name="l03225"></a><span class="lineno"> 3225</span>&#160;            }</div>
+<div class="line"><a name="l03226"></a><span class="lineno"> 3226</span>&#160; </div>
+<div class="line"><a name="l03227"></a><span class="lineno"> 3227</span>&#160;            <span class="keywordflow">if</span> (glSwapIntervalEXT != <span class="keyword">nullptr</span> &amp;&amp; !bVSYNC)</div>
+<div class="line"><a name="l03228"></a><span class="lineno"> 3228</span>&#160;                glSwapIntervalEXT(olc_Display, *olc_Window, 0);</div>
+<div class="line"><a name="l03229"></a><span class="lineno"> 3229</span>&#160;<span class="preprocessor">#endif      </span></div>
+<div class="line"><a name="l03230"></a><span class="lineno"> 3230</span>&#160; </div>
+<div class="line"><a name="l03231"></a><span class="lineno"> 3231</span>&#160;<span class="preprocessor">#if defined(OLC_PLATFORM_GLUT)</span></div>
+<div class="line"><a name="l03232"></a><span class="lineno"> 3232</span>&#160;            mFullScreen = bFullScreen;</div>
+<div class="line"><a name="l03233"></a><span class="lineno"> 3233</span>&#160;            <span class="keywordflow">if</span> (!bVSYNC)</div>
+<div class="line"><a name="l03234"></a><span class="lineno"> 3234</span>&#160;            {</div>
+<div class="line"><a name="l03235"></a><span class="lineno"> 3235</span>&#160;<span class="preprocessor">#if defined(__APPLE__)</span></div>
+<div class="line"><a name="l03236"></a><span class="lineno"> 3236</span>&#160;                GLint sync = 0;</div>
+<div class="line"><a name="l03237"></a><span class="lineno"> 3237</span>&#160;                CGLContextObj ctx = CGLGetCurrentContext();</div>
+<div class="line"><a name="l03238"></a><span class="lineno"> 3238</span>&#160;                <span class="keywordflow">if</span> (ctx) CGLSetParameter(ctx, kCGLCPSwapInterval, &amp;sync);</div>
+<div class="line"><a name="l03239"></a><span class="lineno"> 3239</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l03240"></a><span class="lineno"> 3240</span>&#160;            }</div>
+<div class="line"><a name="l03241"></a><span class="lineno"> 3241</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l03242"></a><span class="lineno"> 3242</span>&#160;            glEnable(GL_TEXTURE_2D); <span class="comment">// Turn on texturing</span></div>
+<div class="line"><a name="l03243"></a><span class="lineno"> 3243</span>&#160;            glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST);</div>
+<div class="line"><a name="l03244"></a><span class="lineno"> 3244</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l03245"></a><span class="lineno"> 3245</span>&#160;            <span class="keywordflow">return</span> <a class="code" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87ba0178b5f8abe39121e6f14d3c6c093a82">olc::rcode::OK</a>;</div>
+<div class="line"><a name="l03246"></a><span class="lineno"> 3246</span>&#160;        }</div>
+<div class="line"><a name="l03247"></a><span class="lineno"> 3247</span>&#160; </div>
+<div class="line"><a name="l03248"></a><span class="lineno"> 3248</span>&#160;        <a class="code" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87b">olc::rcode</a> DestroyDevice()<span class="keyword"> override</span></div>
+<div class="line"><a name="l03249"></a><span class="lineno"> 3249</span>&#160;<span class="keyword">        </span>{</div>
+<div class="line"><a name="l03250"></a><span class="lineno"> 3250</span>&#160;<span class="preprocessor">#if defined(OLC_PLATFORM_WINAPI)</span></div>
+<div class="line"><a name="l03251"></a><span class="lineno"> 3251</span>&#160;            wglDeleteContext(glRenderContext);</div>
+<div class="line"><a name="l03252"></a><span class="lineno"> 3252</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l03253"></a><span class="lineno"> 3253</span>&#160; </div>
+<div class="line"><a name="l03254"></a><span class="lineno"> 3254</span>&#160;<span class="preprocessor">#if defined(OLC_PLATFORM_X11)</span></div>
+<div class="line"><a name="l03255"></a><span class="lineno"> 3255</span>&#160;            glXMakeCurrent(olc_Display, None, NULL);</div>
+<div class="line"><a name="l03256"></a><span class="lineno"> 3256</span>&#160;            glXDestroyContext(olc_Display, glDeviceContext);</div>
+<div class="line"><a name="l03257"></a><span class="lineno"> 3257</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l03258"></a><span class="lineno"> 3258</span>&#160; </div>
+<div class="line"><a name="l03259"></a><span class="lineno"> 3259</span>&#160;<span class="preprocessor">#if defined(OLC_PLATFORM_GLUT)</span></div>
+<div class="line"><a name="l03260"></a><span class="lineno"> 3260</span>&#160;            glutDestroyWindow(glutGetWindow());</div>
+<div class="line"><a name="l03261"></a><span class="lineno"> 3261</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l03262"></a><span class="lineno"> 3262</span>&#160;            <span class="keywordflow">return</span> <a class="code" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87ba0178b5f8abe39121e6f14d3c6c093a82">olc::rcode::OK</a>;</div>
+<div class="line"><a name="l03263"></a><span class="lineno"> 3263</span>&#160;        }</div>
+<div class="line"><a name="l03264"></a><span class="lineno"> 3264</span>&#160; </div>
+<div class="line"><a name="l03265"></a><span class="lineno"> 3265</span>&#160;        <span class="keywordtype">void</span> DisplayFrame()<span class="keyword"> override</span></div>
+<div class="line"><a name="l03266"></a><span class="lineno"> 3266</span>&#160;<span class="keyword">        </span>{</div>
+<div class="line"><a name="l03267"></a><span class="lineno"> 3267</span>&#160;<span class="preprocessor">#if defined(OLC_PLATFORM_WINAPI)</span></div>
+<div class="line"><a name="l03268"></a><span class="lineno"> 3268</span>&#160;            SwapBuffers(glDeviceContext);</div>
+<div class="line"><a name="l03269"></a><span class="lineno"> 3269</span>&#160;            <span class="keywordflow">if</span> (bSync) DwmFlush(); <span class="comment">// Woooohooooooo!!!! SMOOOOOOOTH!</span></div>
+<div class="line"><a name="l03270"></a><span class="lineno"> 3270</span>&#160;<span class="preprocessor">#endif  </span></div>
+<div class="line"><a name="l03271"></a><span class="lineno"> 3271</span>&#160; </div>
+<div class="line"><a name="l03272"></a><span class="lineno"> 3272</span>&#160;<span class="preprocessor">#if defined(OLC_PLATFORM_X11)</span></div>
+<div class="line"><a name="l03273"></a><span class="lineno"> 3273</span>&#160;            X11::glXSwapBuffers(olc_Display, *olc_Window);</div>
+<div class="line"><a name="l03274"></a><span class="lineno"> 3274</span>&#160;<span class="preprocessor">#endif      </span></div>
+<div class="line"><a name="l03275"></a><span class="lineno"> 3275</span>&#160; </div>
+<div class="line"><a name="l03276"></a><span class="lineno"> 3276</span>&#160;<span class="preprocessor">#if defined(OLC_PLATFORM_GLUT)</span></div>
+<div class="line"><a name="l03277"></a><span class="lineno"> 3277</span>&#160;            glutSwapBuffers();</div>
+<div class="line"><a name="l03278"></a><span class="lineno"> 3278</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l03279"></a><span class="lineno"> 3279</span>&#160;        }</div>
+<div class="line"><a name="l03280"></a><span class="lineno"> 3280</span>&#160; </div>
+<div class="line"><a name="l03281"></a><span class="lineno"> 3281</span>&#160;        <span class="keywordtype">void</span> PrepareDrawing()<span class="keyword"> override</span></div>
+<div class="line"><a name="l03282"></a><span class="lineno"> 3282</span>&#160;<span class="keyword">        </span>{</div>
+<div class="line"><a name="l03283"></a><span class="lineno"> 3283</span>&#160;            glEnable(GL_BLEND);</div>
+<div class="line"><a name="l03284"></a><span class="lineno"> 3284</span>&#160;            nDecalMode = <a class="code" href="namespaceolc.html#aeda642f63378f868193c28e8613138caa1e23852820b9154316c7c06e2b7ba051">DecalMode::NORMAL</a>;</div>
+<div class="line"><a name="l03285"></a><span class="lineno"> 3285</span>&#160;            glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);</div>
+<div class="line"><a name="l03286"></a><span class="lineno"> 3286</span>&#160;        }</div>
+<div class="line"><a name="l03287"></a><span class="lineno"> 3287</span>&#160; </div>
+<div class="line"><a name="l03288"></a><span class="lineno"> 3288</span>&#160;        <span class="keywordtype">void</span> SetDecalMode(<span class="keyword">const</span> <a class="code" href="namespaceolc.html#aeda642f63378f868193c28e8613138ca">olc::DecalMode</a>&amp; mode)</div>
+<div class="line"><a name="l03289"></a><span class="lineno"> 3289</span>&#160;        {</div>
+<div class="line"><a name="l03290"></a><span class="lineno"> 3290</span>&#160;            <span class="keywordflow">if</span> (mode != nDecalMode)</div>
+<div class="line"><a name="l03291"></a><span class="lineno"> 3291</span>&#160;            {</div>
+<div class="line"><a name="l03292"></a><span class="lineno"> 3292</span>&#160;                <span class="keywordflow">switch</span> (mode)</div>
+<div class="line"><a name="l03293"></a><span class="lineno"> 3293</span>&#160;                {</div>
+<div class="line"><a name="l03294"></a><span class="lineno"> 3294</span>&#160;                <span class="keywordflow">case</span> <a class="code" href="namespaceolc.html#aeda642f63378f868193c28e8613138caa1e23852820b9154316c7c06e2b7ba051">olc::DecalMode::NORMAL</a>:</div>
+<div class="line"><a name="l03295"></a><span class="lineno"> 3295</span>&#160;                    glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);</div>
+<div class="line"><a name="l03296"></a><span class="lineno"> 3296</span>&#160;                    <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l03297"></a><span class="lineno"> 3297</span>&#160;                <span class="keywordflow">case</span> olc::DecalMode::ADDITIVE:</div>
+<div class="line"><a name="l03298"></a><span class="lineno"> 3298</span>&#160;                    glBlendFunc(GL_SRC_ALPHA, GL_ONE);</div>
+<div class="line"><a name="l03299"></a><span class="lineno"> 3299</span>&#160;                    <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l03300"></a><span class="lineno"> 3300</span>&#160;                <span class="keywordflow">case</span> olc::DecalMode::MULTIPLICATIVE:</div>
+<div class="line"><a name="l03301"></a><span class="lineno"> 3301</span>&#160;                    glBlendFunc(GL_DST_COLOR, GL_ONE_MINUS_SRC_ALPHA);</div>
+<div class="line"><a name="l03302"></a><span class="lineno"> 3302</span>&#160;                    <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l03303"></a><span class="lineno"> 3303</span>&#160;                <span class="keywordflow">case</span> olc::DecalMode::STENCIL:</div>
+<div class="line"><a name="l03304"></a><span class="lineno"> 3304</span>&#160;                    glBlendFunc(GL_ZERO, GL_SRC_ALPHA);</div>
+<div class="line"><a name="l03305"></a><span class="lineno"> 3305</span>&#160;                    <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l03306"></a><span class="lineno"> 3306</span>&#160;                <span class="keywordflow">case</span> olc::DecalMode::ILLUMINATE:</div>
+<div class="line"><a name="l03307"></a><span class="lineno"> 3307</span>&#160;                    glBlendFunc(GL_ONE_MINUS_SRC_ALPHA, GL_SRC_ALPHA);</div>
+<div class="line"><a name="l03308"></a><span class="lineno"> 3308</span>&#160;                    <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l03309"></a><span class="lineno"> 3309</span>&#160;                <span class="keywordflow">case</span> <a class="code" href="namespaceolc.html#aeda642f63378f868193c28e8613138caa1e23852820b9154316c7c06e2b7ba051">olc::DecalMode::WIREFRAME</a>:</div>
+<div class="line"><a name="l03310"></a><span class="lineno"> 3310</span>&#160;                    glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);</div>
+<div class="line"><a name="l03311"></a><span class="lineno"> 3311</span>&#160;                    <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l03312"></a><span class="lineno"> 3312</span>&#160;                }</div>
+<div class="line"><a name="l03313"></a><span class="lineno"> 3313</span>&#160; </div>
+<div class="line"><a name="l03314"></a><span class="lineno"> 3314</span>&#160;                nDecalMode = mode;</div>
+<div class="line"><a name="l03315"></a><span class="lineno"> 3315</span>&#160;            }</div>
+<div class="line"><a name="l03316"></a><span class="lineno"> 3316</span>&#160;        }</div>
+<div class="line"><a name="l03317"></a><span class="lineno"> 3317</span>&#160; </div>
+<div class="line"><a name="l03318"></a><span class="lineno"> 3318</span>&#160;        <span class="keywordtype">void</span> DrawLayerQuad(<span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; offset, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; scale, <span class="keyword">const</span> <a class="code" href="structolc_1_1_pixel.html">olc::Pixel</a> tint)<span class="keyword"> override</span></div>
+<div class="line"><a name="l03319"></a><span class="lineno"> 3319</span>&#160;<span class="keyword">        </span>{</div>
+<div class="line"><a name="l03320"></a><span class="lineno"> 3320</span>&#160;            glBegin(GL_QUADS);</div>
+<div class="line"><a name="l03321"></a><span class="lineno"> 3321</span>&#160;            glColor4ub(tint.<a class="code" href="structolc_1_1_pixel.html#a93ee3efde3d2b363e4e4813a490f60b4">r</a>, tint.<a class="code" href="structolc_1_1_pixel.html#a14cf5612284974c409f078944fe5f6ee">g</a>, tint.<a class="code" href="structolc_1_1_pixel.html#a8738f2cd490bd9c5288f37c8d19816be">b</a>, tint.<a class="code" href="structolc_1_1_pixel.html#a652a25d4bcab1f7bf627c3224842f0b1">a</a>);</div>
+<div class="line"><a name="l03322"></a><span class="lineno"> 3322</span>&#160;            glTexCoord2f(0.0f * scale.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a> + offset.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a>, 1.0f * scale.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a> + offset.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a>);</div>
+<div class="line"><a name="l03323"></a><span class="lineno"> 3323</span>&#160;            glVertex3f(-1.0f <span class="comment">/*+ vSubPixelOffset.x*/</span>, -1.0f <span class="comment">/*+ vSubPixelOffset.y*/</span>, 0.0f);</div>
+<div class="line"><a name="l03324"></a><span class="lineno"> 3324</span>&#160;            glTexCoord2f(0.0f * scale.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a> + offset.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a>, 0.0f * scale.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a> + offset.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a>);</div>
+<div class="line"><a name="l03325"></a><span class="lineno"> 3325</span>&#160;            glVertex3f(-1.0f <span class="comment">/*+ vSubPixelOffset.x*/</span>, 1.0f <span class="comment">/*+ vSubPixelOffset.y*/</span>, 0.0f);</div>
+<div class="line"><a name="l03326"></a><span class="lineno"> 3326</span>&#160;            glTexCoord2f(1.0f * scale.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a> + offset.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a>, 0.0f * scale.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a> + offset.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a>);</div>
+<div class="line"><a name="l03327"></a><span class="lineno"> 3327</span>&#160;            glVertex3f(1.0f <span class="comment">/*+ vSubPixelOffset.x*/</span>, 1.0f <span class="comment">/*+ vSubPixelOffset.y*/</span>, 0.0f);</div>
+<div class="line"><a name="l03328"></a><span class="lineno"> 3328</span>&#160;            glTexCoord2f(1.0f * scale.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a> + offset.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a>, 1.0f * scale.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a> + offset.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a>);</div>
+<div class="line"><a name="l03329"></a><span class="lineno"> 3329</span>&#160;            glVertex3f(1.0f <span class="comment">/*+ vSubPixelOffset.x*/</span>, -1.0f <span class="comment">/*+ vSubPixelOffset.y*/</span>, 0.0f);</div>
+<div class="line"><a name="l03330"></a><span class="lineno"> 3330</span>&#160;            glEnd();</div>
+<div class="line"><a name="l03331"></a><span class="lineno"> 3331</span>&#160;        }</div>
+<div class="line"><a name="l03332"></a><span class="lineno"> 3332</span>&#160; </div>
+<div class="line"><a name="l03333"></a><span class="lineno"> 3333</span>&#160;        <span class="keywordtype">void</span> DrawDecal(<span class="keyword">const</span> <a class="code" href="structolc_1_1_decal_instance.html">olc::DecalInstance</a>&amp; decal)<span class="keyword"> override</span></div>
+<div class="line"><a name="l03334"></a><span class="lineno"> 3334</span>&#160;<span class="keyword">        </span>{</div>
+<div class="line"><a name="l03335"></a><span class="lineno"> 3335</span>&#160;            SetDecalMode(decal.<a class="code" href="structolc_1_1_decal_instance.html#a3dcc0fc374fe00a5d6451a4ac13e6649">mode</a>);</div>
+<div class="line"><a name="l03336"></a><span class="lineno"> 3336</span>&#160; </div>
+<div class="line"><a name="l03337"></a><span class="lineno"> 3337</span>&#160;            <span class="keywordflow">if</span> (decal.<a class="code" href="structolc_1_1_decal_instance.html#ad01bc9806792469d91ee0b5736058e7e">decal</a> == <span class="keyword">nullptr</span>)</div>
+<div class="line"><a name="l03338"></a><span class="lineno"> 3338</span>&#160;                glBindTexture(GL_TEXTURE_2D, 0);</div>
+<div class="line"><a name="l03339"></a><span class="lineno"> 3339</span>&#160;            <span class="keywordflow">else</span></div>
+<div class="line"><a name="l03340"></a><span class="lineno"> 3340</span>&#160;                glBindTexture(GL_TEXTURE_2D, decal.<a class="code" href="structolc_1_1_decal_instance.html#ad01bc9806792469d91ee0b5736058e7e">decal</a>-&gt;<a class="code" href="classolc_1_1_decal.html#a7cc798e0327ea4118c648b10e2d57986">id</a>);</div>
+<div class="line"><a name="l03341"></a><span class="lineno"> 3341</span>&#160; </div>
+<div class="line"><a name="l03342"></a><span class="lineno"> 3342</span>&#160;            <span class="keywordflow">if</span> (nDecalMode == <a class="code" href="namespaceolc.html#aeda642f63378f868193c28e8613138caa1e23852820b9154316c7c06e2b7ba051">DecalMode::WIREFRAME</a>)</div>
+<div class="line"><a name="l03343"></a><span class="lineno"> 3343</span>&#160;                glBegin(GL_LINE_LOOP);</div>
+<div class="line"><a name="l03344"></a><span class="lineno"> 3344</span>&#160;            <span class="keywordflow">else</span></div>
+<div class="line"><a name="l03345"></a><span class="lineno"> 3345</span>&#160;                glBegin(GL_TRIANGLE_FAN);</div>
+<div class="line"><a name="l03346"></a><span class="lineno"> 3346</span>&#160; </div>
+<div class="line"><a name="l03347"></a><span class="lineno"> 3347</span>&#160;            <span class="keywordflow">for</span> (uint32_t n = 0; n &lt; decal.<a class="code" href="structolc_1_1_decal_instance.html#aa03e3326919eb0c889cdad3492c8a8f6">points</a>; n++)</div>
+<div class="line"><a name="l03348"></a><span class="lineno"> 3348</span>&#160;            {</div>
+<div class="line"><a name="l03349"></a><span class="lineno"> 3349</span>&#160;                glColor4ub(decal.<a class="code" href="structolc_1_1_decal_instance.html#a04f01880bf6d4045b6e1f70aff3e5c8f">tint</a>[n].r, decal.<a class="code" href="structolc_1_1_decal_instance.html#a04f01880bf6d4045b6e1f70aff3e5c8f">tint</a>[n].g, decal.<a class="code" href="structolc_1_1_decal_instance.html#a04f01880bf6d4045b6e1f70aff3e5c8f">tint</a>[n].b, decal.<a class="code" href="structolc_1_1_decal_instance.html#a04f01880bf6d4045b6e1f70aff3e5c8f">tint</a>[n].a);</div>
+<div class="line"><a name="l03350"></a><span class="lineno"> 3350</span>&#160;                glTexCoord4f(decal.<a class="code" href="structolc_1_1_decal_instance.html#a60337d982b4f35b3bb5b1d814fa0d09f">uv</a>[n].x, decal.<a class="code" href="structolc_1_1_decal_instance.html#a60337d982b4f35b3bb5b1d814fa0d09f">uv</a>[n].y, 0.0f, decal.<a class="code" href="structolc_1_1_decal_instance.html#a3475b1bb41f868f218c759972dec2f73">w</a>[n]);</div>
+<div class="line"><a name="l03351"></a><span class="lineno"> 3351</span>&#160;                glVertex2f(decal.<a class="code" href="structolc_1_1_decal_instance.html#a8dcf3a11a4f2c722e9b54c01643de08c">pos</a>[n].x, decal.<a class="code" href="structolc_1_1_decal_instance.html#a8dcf3a11a4f2c722e9b54c01643de08c">pos</a>[n].y);</div>
+<div class="line"><a name="l03352"></a><span class="lineno"> 3352</span>&#160;            }</div>
+<div class="line"><a name="l03353"></a><span class="lineno"> 3353</span>&#160;            glEnd();</div>
+<div class="line"><a name="l03354"></a><span class="lineno"> 3354</span>&#160;        }</div>
+<div class="line"><a name="l03355"></a><span class="lineno"> 3355</span>&#160; </div>
+<div class="line"><a name="l03356"></a><span class="lineno"> 3356</span>&#160;        uint32_t CreateTexture(<span class="keyword">const</span> uint32_t width, <span class="keyword">const</span> uint32_t height, <span class="keyword">const</span> <span class="keywordtype">bool</span> filtered, <span class="keyword">const</span> <span class="keywordtype">bool</span> clamp)<span class="keyword"> override</span></div>
+<div class="line"><a name="l03357"></a><span class="lineno"> 3357</span>&#160;<span class="keyword">        </span>{</div>
+<div class="line"><a name="l03358"></a><span class="lineno"> 3358</span>&#160;            <a class="code" href="olc_pixel_game_engine_8h.html#a86d500a34c624c2cae56bc25a31b12f3">UNUSED</a>(width);</div>
+<div class="line"><a name="l03359"></a><span class="lineno"> 3359</span>&#160;            <a class="code" href="olc_pixel_game_engine_8h.html#a86d500a34c624c2cae56bc25a31b12f3">UNUSED</a>(height);</div>
+<div class="line"><a name="l03360"></a><span class="lineno"> 3360</span>&#160;            uint32_t <span class="keywordtype">id</span> = 0;</div>
+<div class="line"><a name="l03361"></a><span class="lineno"> 3361</span>&#160;            glGenTextures(1, &amp;<span class="keywordtype">id</span>);</div>
+<div class="line"><a name="l03362"></a><span class="lineno"> 3362</span>&#160;            glBindTexture(GL_TEXTURE_2D, <span class="keywordtype">id</span>);</div>
+<div class="line"><a name="l03363"></a><span class="lineno"> 3363</span>&#160;            <span class="keywordflow">if</span> (filtered)</div>
+<div class="line"><a name="l03364"></a><span class="lineno"> 3364</span>&#160;            {</div>
+<div class="line"><a name="l03365"></a><span class="lineno"> 3365</span>&#160;                glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);</div>
+<div class="line"><a name="l03366"></a><span class="lineno"> 3366</span>&#160;                glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);</div>
+<div class="line"><a name="l03367"></a><span class="lineno"> 3367</span>&#160;            }</div>
+<div class="line"><a name="l03368"></a><span class="lineno"> 3368</span>&#160;            <span class="keywordflow">else</span></div>
+<div class="line"><a name="l03369"></a><span class="lineno"> 3369</span>&#160;            {</div>
+<div class="line"><a name="l03370"></a><span class="lineno"> 3370</span>&#160;                glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);</div>
+<div class="line"><a name="l03371"></a><span class="lineno"> 3371</span>&#160;                glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);</div>
+<div class="line"><a name="l03372"></a><span class="lineno"> 3372</span>&#160;            }</div>
+<div class="line"><a name="l03373"></a><span class="lineno"> 3373</span>&#160; </div>
+<div class="line"><a name="l03374"></a><span class="lineno"> 3374</span>&#160;            <span class="keywordflow">if</span> (clamp)</div>
+<div class="line"><a name="l03375"></a><span class="lineno"> 3375</span>&#160;            {</div>
+<div class="line"><a name="l03376"></a><span class="lineno"> 3376</span>&#160;                glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP);</div>
+<div class="line"><a name="l03377"></a><span class="lineno"> 3377</span>&#160;                glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP);</div>
+<div class="line"><a name="l03378"></a><span class="lineno"> 3378</span>&#160;            }</div>
+<div class="line"><a name="l03379"></a><span class="lineno"> 3379</span>&#160;            <span class="keywordflow">else</span></div>
+<div class="line"><a name="l03380"></a><span class="lineno"> 3380</span>&#160;            {</div>
+<div class="line"><a name="l03381"></a><span class="lineno"> 3381</span>&#160;                glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);</div>
+<div class="line"><a name="l03382"></a><span class="lineno"> 3382</span>&#160;                glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);</div>
+<div class="line"><a name="l03383"></a><span class="lineno"> 3383</span>&#160;            }</div>
+<div class="line"><a name="l03384"></a><span class="lineno"> 3384</span>&#160; </div>
+<div class="line"><a name="l03385"></a><span class="lineno"> 3385</span>&#160;            glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);</div>
+<div class="line"><a name="l03386"></a><span class="lineno"> 3386</span>&#160;            <span class="keywordflow">return</span> id;</div>
+<div class="line"><a name="l03387"></a><span class="lineno"> 3387</span>&#160;        }</div>
+<div class="line"><a name="l03388"></a><span class="lineno"> 3388</span>&#160; </div>
+<div class="line"><a name="l03389"></a><span class="lineno"> 3389</span>&#160;        uint32_t DeleteTexture(<span class="keyword">const</span> uint32_t <span class="keywordtype">id</span>)<span class="keyword"> override</span></div>
+<div class="line"><a name="l03390"></a><span class="lineno"> 3390</span>&#160;<span class="keyword">        </span>{</div>
+<div class="line"><a name="l03391"></a><span class="lineno"> 3391</span>&#160;            glDeleteTextures(1, &amp;<span class="keywordtype">id</span>);</div>
+<div class="line"><a name="l03392"></a><span class="lineno"> 3392</span>&#160;            <span class="keywordflow">return</span> id;</div>
+<div class="line"><a name="l03393"></a><span class="lineno"> 3393</span>&#160;        }</div>
+<div class="line"><a name="l03394"></a><span class="lineno"> 3394</span>&#160; </div>
+<div class="line"><a name="l03395"></a><span class="lineno"> 3395</span>&#160;        <span class="keywordtype">void</span> UpdateTexture(uint32_t <span class="keywordtype">id</span>, <a class="code" href="classolc_1_1_sprite.html">olc::Sprite</a>* spr)<span class="keyword"> override</span></div>
+<div class="line"><a name="l03396"></a><span class="lineno"> 3396</span>&#160;<span class="keyword">        </span>{</div>
+<div class="line"><a name="l03397"></a><span class="lineno"> 3397</span>&#160;            <a class="code" href="olc_pixel_game_engine_8h.html#a86d500a34c624c2cae56bc25a31b12f3">UNUSED</a>(<span class="keywordtype">id</span>);</div>
+<div class="line"><a name="l03398"></a><span class="lineno"> 3398</span>&#160;            glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, spr-&gt;<a class="code" href="classolc_1_1_sprite.html#af055800e63204ae372ca0812e6926230">width</a>, spr-&gt;<a class="code" href="classolc_1_1_sprite.html#ab05010cb1a5ff6c36267d0050d568d96">height</a>, 0, GL_RGBA, GL_UNSIGNED_BYTE, spr-&gt;<a class="code" href="classolc_1_1_sprite.html#ad8fcc6bbf8a785aa0bb9d00bf3cfdff2">GetData</a>());</div>
+<div class="line"><a name="l03399"></a><span class="lineno"> 3399</span>&#160;        }</div>
+<div class="line"><a name="l03400"></a><span class="lineno"> 3400</span>&#160; </div>
+<div class="line"><a name="l03401"></a><span class="lineno"> 3401</span>&#160;        <span class="keywordtype">void</span> ReadTexture(uint32_t <span class="keywordtype">id</span>, <a class="code" href="classolc_1_1_sprite.html">olc::Sprite</a>* spr)<span class="keyword"> override</span></div>
+<div class="line"><a name="l03402"></a><span class="lineno"> 3402</span>&#160;<span class="keyword">        </span>{</div>
+<div class="line"><a name="l03403"></a><span class="lineno"> 3403</span>&#160;            glReadPixels(0, 0, spr-&gt;<a class="code" href="classolc_1_1_sprite.html#af055800e63204ae372ca0812e6926230">width</a>, spr-&gt;<a class="code" href="classolc_1_1_sprite.html#ab05010cb1a5ff6c36267d0050d568d96">height</a>, GL_RGBA, GL_UNSIGNED_BYTE, spr-&gt;<a class="code" href="classolc_1_1_sprite.html#ad8fcc6bbf8a785aa0bb9d00bf3cfdff2">GetData</a>());</div>
+<div class="line"><a name="l03404"></a><span class="lineno"> 3404</span>&#160;        }</div>
+<div class="line"><a name="l03405"></a><span class="lineno"> 3405</span>&#160; </div>
+<div class="line"><a name="l03406"></a><span class="lineno"> 3406</span>&#160;        <span class="keywordtype">void</span> ApplyTexture(uint32_t <span class="keywordtype">id</span>)<span class="keyword"> override</span></div>
+<div class="line"><a name="l03407"></a><span class="lineno"> 3407</span>&#160;<span class="keyword">        </span>{</div>
+<div class="line"><a name="l03408"></a><span class="lineno"> 3408</span>&#160;            glBindTexture(GL_TEXTURE_2D, <span class="keywordtype">id</span>);</div>
+<div class="line"><a name="l03409"></a><span class="lineno"> 3409</span>&#160;        }</div>
+<div class="line"><a name="l03410"></a><span class="lineno"> 3410</span>&#160; </div>
+<div class="line"><a name="l03411"></a><span class="lineno"> 3411</span>&#160;        <span class="keywordtype">void</span> ClearBuffer(<a class="code" href="structolc_1_1_pixel.html">olc::Pixel</a> p, <span class="keywordtype">bool</span> bDepth)<span class="keyword"> override</span></div>
+<div class="line"><a name="l03412"></a><span class="lineno"> 3412</span>&#160;<span class="keyword">        </span>{</div>
+<div class="line"><a name="l03413"></a><span class="lineno"> 3413</span>&#160;            glClearColor(<span class="keywordtype">float</span>(p.<a class="code" href="structolc_1_1_pixel.html#a93ee3efde3d2b363e4e4813a490f60b4">r</a>) / 255.0f, <span class="keywordtype">float</span>(p.<a class="code" href="structolc_1_1_pixel.html#a14cf5612284974c409f078944fe5f6ee">g</a>) / 255.0f, <span class="keywordtype">float</span>(p.<a class="code" href="structolc_1_1_pixel.html#a8738f2cd490bd9c5288f37c8d19816be">b</a>) / 255.0f, <span class="keywordtype">float</span>(p.<a class="code" href="structolc_1_1_pixel.html#a652a25d4bcab1f7bf627c3224842f0b1">a</a>) / 255.0f);</div>
+<div class="line"><a name="l03414"></a><span class="lineno"> 3414</span>&#160;            glClear(GL_COLOR_BUFFER_BIT);</div>
+<div class="line"><a name="l03415"></a><span class="lineno"> 3415</span>&#160;            <span class="keywordflow">if</span> (bDepth) glClear(GL_DEPTH_BUFFER_BIT);</div>
+<div class="line"><a name="l03416"></a><span class="lineno"> 3416</span>&#160;        }</div>
+<div class="line"><a name="l03417"></a><span class="lineno"> 3417</span>&#160; </div>
+<div class="line"><a name="l03418"></a><span class="lineno"> 3418</span>&#160;        <span class="keywordtype">void</span> UpdateViewport(<span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vi2d</a>&amp; pos, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vi2d</a>&amp; size)<span class="keyword"> override</span></div>
+<div class="line"><a name="l03419"></a><span class="lineno"> 3419</span>&#160;<span class="keyword">        </span>{</div>
+<div class="line"><a name="l03420"></a><span class="lineno"> 3420</span>&#160;<span class="preprocessor">#if defined(OLC_PLATFORM_GLUT)</span></div>
+<div class="line"><a name="l03421"></a><span class="lineno"> 3421</span>&#160;            <span class="keywordflow">if</span> (!mFullScreen) glutReshapeWindow(size.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a>, size.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a>);</div>
+<div class="line"><a name="l03422"></a><span class="lineno"> 3422</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l03423"></a><span class="lineno"> 3423</span>&#160;            glViewport(pos.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a>, pos.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a>, size.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a>, size.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a>);</div>
+<div class="line"><a name="l03424"></a><span class="lineno"> 3424</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l03425"></a><span class="lineno"> 3425</span>&#160;        }</div>
+<div class="line"><a name="l03426"></a><span class="lineno"> 3426</span>&#160;    };</div>
+<div class="line"><a name="l03427"></a><span class="lineno"> 3427</span>&#160;}</div>
+<div class="line"><a name="l03428"></a><span class="lineno"> 3428</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l03429"></a><span class="lineno"> 3429</span>&#160;<span class="comment">// O------------------------------------------------------------------------------O</span></div>
+<div class="line"><a name="l03430"></a><span class="lineno"> 3430</span>&#160;<span class="comment">// | END RENDERER: OpenGL 1.0 (the original, the best...)                         |</span></div>
+<div class="line"><a name="l03431"></a><span class="lineno"> 3431</span>&#160;<span class="comment">// O------------------------------------------------------------------------------O</span></div>
+<div class="line"><a name="l03432"></a><span class="lineno"> 3432</span>&#160;<span class="preprocessor">#pragma endregion</span></div>
+<div class="line"><a name="l03433"></a><span class="lineno"> 3433</span>&#160; </div>
+<div class="line"><a name="l03434"></a><span class="lineno"> 3434</span>&#160;<span class="preprocessor">#pragma region renderer_ogl33</span></div>
+<div class="line"><a name="l03435"></a><span class="lineno"> 3435</span>&#160;<span class="comment">// O------------------------------------------------------------------------------O</span></div>
+<div class="line"><a name="l03436"></a><span class="lineno"> 3436</span>&#160;<span class="comment">// | START RENDERER: OpenGL 3.3 (3.0 es) (sh-sh-sh-shaders....)                   |</span></div>
+<div class="line"><a name="l03437"></a><span class="lineno"> 3437</span>&#160;<span class="comment">// O------------------------------------------------------------------------------O</span></div>
+<div class="line"><a name="l03438"></a><span class="lineno"> 3438</span>&#160;<span class="preprocessor">#if defined(OLC_GFX_OPENGL33)</span></div>
+<div class="line"><a name="l03439"></a><span class="lineno"> 3439</span>&#160; </div>
+<div class="line"><a name="l03440"></a><span class="lineno"> 3440</span>&#160;<span class="preprocessor">#if defined(OLC_PLATFORM_WINAPI)</span></div>
+<div class="line"><a name="l03441"></a><span class="lineno"> 3441</span>&#160;<span class="preprocessor">    #include &lt;dwmapi.h&gt;</span></div>
+<div class="line"><a name="l03442"></a><span class="lineno"> 3442</span>&#160;<span class="preprocessor">    #include &lt;gl/GL.h&gt;</span></div>
+<div class="line"><a name="l03443"></a><span class="lineno"> 3443</span>&#160;<span class="preprocessor">    #if !defined(__MINGW32__)</span></div>
+<div class="line"><a name="l03444"></a><span class="lineno"> 3444</span>&#160;<span class="preprocessor">        #pragma comment(lib, &quot;Dwmapi.lib&quot;)</span></div>
+<div class="line"><a name="l03445"></a><span class="lineno"> 3445</span>&#160;<span class="preprocessor">    #endif      </span></div>
+<div class="line"><a name="l03446"></a><span class="lineno"> 3446</span>&#160;    <span class="keyword">typedef</span> <span class="keywordtype">void</span> __stdcall locSwapInterval_t(GLsizei n);</div>
+<div class="line"><a name="l03447"></a><span class="lineno"> 3447</span>&#160;    <span class="keyword">typedef</span> HDC glDeviceContext_t;</div>
+<div class="line"><a name="l03448"></a><span class="lineno"> 3448</span>&#160;    <span class="keyword">typedef</span> HGLRC glRenderContext_t;</div>
+<div class="line"><a name="l03449"></a><span class="lineno"> 3449</span>&#160;<span class="preprocessor">    #define CALLSTYLE __stdcall</span></div>
+<div class="line"><a name="l03450"></a><span class="lineno"> 3450</span>&#160;<span class="preprocessor">    #define OGL_LOAD(t, n) (t*)wglGetProcAddress(#n)</span></div>
+<div class="line"><a name="l03451"></a><span class="lineno"> 3451</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l03452"></a><span class="lineno"> 3452</span>&#160; </div>
+<div class="line"><a name="l03453"></a><span class="lineno"> 3453</span>&#160;<span class="preprocessor">#if defined(__linux__) || defined(__FreeBSD__)</span></div>
+<div class="line"><a name="l03454"></a><span class="lineno"> 3454</span>&#160;<span class="preprocessor">    #include &lt;GL/gl.h&gt;</span></div>
+<div class="line"><a name="l03455"></a><span class="lineno"> 3455</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l03456"></a><span class="lineno"> 3456</span>&#160; </div>
+<div class="line"><a name="l03457"></a><span class="lineno"> 3457</span>&#160;<span class="preprocessor">#if defined(OLC_PLATFORM_X11)</span></div>
+<div class="line"><a name="l03458"></a><span class="lineno"> 3458</span>&#160;    <span class="keyword">namespace </span>X11</div>
+<div class="line"><a name="l03459"></a><span class="lineno"> 3459</span>&#160;    {</div>
+<div class="line"><a name="l03460"></a><span class="lineno"> 3460</span>&#160;<span class="preprocessor">        #include &lt;GL/glx.h&gt;</span></div>
+<div class="line"><a name="l03461"></a><span class="lineno"> 3461</span>&#160;    }</div>
+<div class="line"><a name="l03462"></a><span class="lineno"> 3462</span>&#160;    <span class="keyword">typedef</span> int(locSwapInterval_t)(X11::Display* dpy, X11::GLXDrawable drawable, <span class="keywordtype">int</span> interval);</div>
+<div class="line"><a name="l03463"></a><span class="lineno"> 3463</span>&#160;    <span class="keyword">typedef</span> X11::GLXContext glDeviceContext_t;</div>
+<div class="line"><a name="l03464"></a><span class="lineno"> 3464</span>&#160;    <span class="keyword">typedef</span> X11::GLXContext glRenderContext_t;</div>
+<div class="line"><a name="l03465"></a><span class="lineno"> 3465</span>&#160;<span class="preprocessor">    #define CALLSTYLE </span></div>
+<div class="line"><a name="l03466"></a><span class="lineno"> 3466</span>&#160;<span class="preprocessor">    #define OGL_LOAD(t, n) (t*)glXGetProcAddress((unsigned char*)#n);</span></div>
+<div class="line"><a name="l03467"></a><span class="lineno"> 3467</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l03468"></a><span class="lineno"> 3468</span>&#160; </div>
+<div class="line"><a name="l03469"></a><span class="lineno"> 3469</span>&#160;<span class="preprocessor">#if defined(__APPLE__)</span></div>
+<div class="line"><a name="l03470"></a><span class="lineno"> 3470</span>&#160;<span class="preprocessor">    #define GL_SILENCE_DEPRECATION</span></div>
+<div class="line"><a name="l03471"></a><span class="lineno"> 3471</span>&#160;<span class="preprocessor">    #include &lt;OpenGL/OpenGL.h&gt;</span></div>
+<div class="line"><a name="l03472"></a><span class="lineno"> 3472</span>&#160;<span class="preprocessor">    #include &lt;OpenGL/gl.h&gt;</span></div>
+<div class="line"><a name="l03473"></a><span class="lineno"> 3473</span>&#160;<span class="preprocessor">    #include &lt;OpenGL/glu.h&gt;</span></div>
+<div class="line"><a name="l03474"></a><span class="lineno"> 3474</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l03475"></a><span class="lineno"> 3475</span>&#160; </div>
+<div class="line"><a name="l03476"></a><span class="lineno"> 3476</span>&#160;<span class="preprocessor">#if defined(OLC_PLATFORM_EMSCRIPTEN)</span></div>
+<div class="line"><a name="l03477"></a><span class="lineno"> 3477</span>&#160;<span class="preprocessor">    #include &lt;EGL/egl.h&gt;</span></div>
+<div class="line"><a name="l03478"></a><span class="lineno"> 3478</span>&#160;<span class="preprocessor">    #include &lt;GLES2/gl2.h&gt;</span></div>
+<div class="line"><a name="l03479"></a><span class="lineno"> 3479</span>&#160;<span class="preprocessor">    #define GL_GLEXT_PROTOTYPES</span></div>
+<div class="line"><a name="l03480"></a><span class="lineno"> 3480</span>&#160;<span class="preprocessor">    #include &lt;GLES2/gl2ext.h&gt;</span></div>
+<div class="line"><a name="l03481"></a><span class="lineno"> 3481</span>&#160;<span class="preprocessor">    #include &lt;emscripten/emscripten.h&gt;</span></div>
+<div class="line"><a name="l03482"></a><span class="lineno"> 3482</span>&#160;<span class="preprocessor">    #define CALLSTYLE</span></div>
+<div class="line"><a name="l03483"></a><span class="lineno"> 3483</span>&#160;    <span class="keyword">typedef</span> EGLBoolean(locSwapInterval_t)(EGLDisplay display, EGLint interval);</div>
+<div class="line"><a name="l03484"></a><span class="lineno"> 3484</span>&#160;<span class="preprocessor">    #define GL_CLAMP GL_CLAMP_TO_EDGE</span></div>
+<div class="line"><a name="l03485"></a><span class="lineno"> 3485</span>&#160;<span class="preprocessor">    #define OGL_LOAD(t, n) n;</span></div>
+<div class="line"><a name="l03486"></a><span class="lineno"> 3486</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l03487"></a><span class="lineno"> 3487</span>&#160; </div>
+<div class="line"><a name="l03488"></a><span class="lineno"> 3488</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespaceolc.html">olc</a></div>
+<div class="line"><a name="l03489"></a><span class="lineno"> 3489</span>&#160;{</div>
+<div class="line"><a name="l03490"></a><span class="lineno"> 3490</span>&#160;    <span class="keyword">typedef</span> <span class="keywordtype">char</span> GLchar;</div>
+<div class="line"><a name="l03491"></a><span class="lineno"> 3491</span>&#160;    <span class="keyword">typedef</span> ptrdiff_t GLsizeiptr;</div>
+<div class="line"><a name="l03492"></a><span class="lineno"> 3492</span>&#160;    <span class="keyword">typedef</span> GLuint CALLSTYLE locCreateShader_t(GLenum type);</div>
+<div class="line"><a name="l03493"></a><span class="lineno"> 3493</span>&#160;    <span class="keyword">typedef</span> GLuint CALLSTYLE locCreateProgram_t(<span class="keywordtype">void</span>);</div>
+<div class="line"><a name="l03494"></a><span class="lineno"> 3494</span>&#160;    <span class="keyword">typedef</span> <span class="keywordtype">void</span> CALLSTYLE locDeleteShader_t(GLuint shader);</div>
+<div class="line"><a name="l03495"></a><span class="lineno"> 3495</span>&#160;<span class="preprocessor">#if defined(OLC_PLATFORM_EMSCRIPTEN)</span></div>
+<div class="line"><a name="l03496"></a><span class="lineno"> 3496</span>&#160;    <span class="keyword">typedef</span> <span class="keywordtype">void</span> CALLSTYLE locShaderSource_t(GLuint shader, GLsizei count, <span class="keyword">const</span> GLchar* <span class="keyword">const</span>* <span class="keywordtype">string</span>, <span class="keyword">const</span> GLint* length);</div>
+<div class="line"><a name="l03497"></a><span class="lineno"> 3497</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l03498"></a><span class="lineno"> 3498</span>&#160;    <span class="keyword">typedef</span> <span class="keywordtype">void</span> CALLSTYLE locShaderSource_t(GLuint shader, GLsizei count, <span class="keyword">const</span> GLchar** <span class="keywordtype">string</span>, <span class="keyword">const</span> GLint* length);</div>
+<div class="line"><a name="l03499"></a><span class="lineno"> 3499</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l03500"></a><span class="lineno"> 3500</span>&#160;    <span class="keyword">typedef</span> <span class="keywordtype">void</span> CALLSTYLE locCompileShader_t(GLuint shader);</div>
+<div class="line"><a name="l03501"></a><span class="lineno"> 3501</span>&#160;    <span class="keyword">typedef</span> <span class="keywordtype">void</span> CALLSTYLE locLinkProgram_t(GLuint program);</div>
+<div class="line"><a name="l03502"></a><span class="lineno"> 3502</span>&#160;    <span class="keyword">typedef</span> <span class="keywordtype">void</span> CALLSTYLE locDeleteProgram_t(GLuint program);</div>
+<div class="line"><a name="l03503"></a><span class="lineno"> 3503</span>&#160;    <span class="keyword">typedef</span> <span class="keywordtype">void</span> CALLSTYLE locAttachShader_t(GLuint program, GLuint shader);</div>
+<div class="line"><a name="l03504"></a><span class="lineno"> 3504</span>&#160;    <span class="keyword">typedef</span> <span class="keywordtype">void</span> CALLSTYLE locBindBuffer_t(GLenum target, GLuint buffer);</div>
+<div class="line"><a name="l03505"></a><span class="lineno"> 3505</span>&#160;    <span class="keyword">typedef</span> <span class="keywordtype">void</span> CALLSTYLE locBufferData_t(GLenum target, GLsizeiptr size, <span class="keyword">const</span> <span class="keywordtype">void</span>* data, GLenum usage);</div>
+<div class="line"><a name="l03506"></a><span class="lineno"> 3506</span>&#160;    <span class="keyword">typedef</span> <span class="keywordtype">void</span> CALLSTYLE locGenBuffers_t(GLsizei n, GLuint* buffers);</div>
+<div class="line"><a name="l03507"></a><span class="lineno"> 3507</span>&#160;    <span class="keyword">typedef</span> <span class="keywordtype">void</span> CALLSTYLE locVertexAttribPointer_t(GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, <span class="keyword">const</span> <span class="keywordtype">void</span>* pointer);</div>
+<div class="line"><a name="l03508"></a><span class="lineno"> 3508</span>&#160;    <span class="keyword">typedef</span> <span class="keywordtype">void</span> CALLSTYLE locEnableVertexAttribArray_t(GLuint index);</div>
+<div class="line"><a name="l03509"></a><span class="lineno"> 3509</span>&#160;    <span class="keyword">typedef</span> <span class="keywordtype">void</span> CALLSTYLE locUseProgram_t(GLuint program);</div>
+<div class="line"><a name="l03510"></a><span class="lineno"> 3510</span>&#160;    <span class="keyword">typedef</span> <span class="keywordtype">void</span> CALLSTYLE locBindVertexArray_t(GLuint array);</div>
+<div class="line"><a name="l03511"></a><span class="lineno"> 3511</span>&#160;    <span class="keyword">typedef</span> <span class="keywordtype">void</span> CALLSTYLE locGenVertexArrays_t(GLsizei n, GLuint* arrays);</div>
+<div class="line"><a name="l03512"></a><span class="lineno"> 3512</span>&#160;    <span class="keyword">typedef</span> <span class="keywordtype">void</span> CALLSTYLE locGetShaderInfoLog_t(GLuint shader, GLsizei bufSize, GLsizei* length, GLchar* infoLog);</div>
+<div class="line"><a name="l03513"></a><span class="lineno"> 3513</span>&#160; </div>
+<div class="line"><a name="l03514"></a><span class="lineno"> 3514</span>&#160;    constexpr <span class="keywordtype">size_t</span> OLC_MAX_VERTS = 128;</div>
+<div class="line"><a name="l03515"></a><span class="lineno"> 3515</span>&#160; </div>
+<div class="line"><a name="l03516"></a><span class="lineno"> 3516</span>&#160;    <span class="keyword">class </span>Renderer_OGL33 : <span class="keyword">public</span> <a class="code" href="classolc_1_1_renderer.html">olc::Renderer</a></div>
+<div class="line"><a name="l03517"></a><span class="lineno"> 3517</span>&#160;    {</div>
+<div class="line"><a name="l03518"></a><span class="lineno"> 3518</span>&#160;    <span class="keyword">private</span>:</div>
+<div class="line"><a name="l03519"></a><span class="lineno"> 3519</span>&#160;<span class="preprocessor">#if defined(OLC_PLATFORM_EMSCRIPTEN)</span></div>
+<div class="line"><a name="l03520"></a><span class="lineno"> 3520</span>&#160;        EGLDisplay olc_Display;</div>
+<div class="line"><a name="l03521"></a><span class="lineno"> 3521</span>&#160;        EGLConfig olc_Config;</div>
+<div class="line"><a name="l03522"></a><span class="lineno"> 3522</span>&#160;        EGLContext olc_Context;</div>
+<div class="line"><a name="l03523"></a><span class="lineno"> 3523</span>&#160;        EGLSurface olc_Surface;</div>
+<div class="line"><a name="l03524"></a><span class="lineno"> 3524</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l03525"></a><span class="lineno"> 3525</span>&#160; </div>
+<div class="line"><a name="l03526"></a><span class="lineno"> 3526</span>&#160;<span class="preprocessor">#if defined(OLC_PLATFORM_GLUT)</span></div>
+<div class="line"><a name="l03527"></a><span class="lineno"> 3527</span>&#160;        <span class="keywordtype">bool</span> mFullScreen = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l03528"></a><span class="lineno"> 3528</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l03529"></a><span class="lineno"> 3529</span>&#160;<span class="preprocessor">    #if !defined(OLC_PLATFORM_EMSCRIPTEN)</span></div>
+<div class="line"><a name="l03530"></a><span class="lineno"> 3530</span>&#160;        glDeviceContext_t glDeviceContext = 0;</div>
+<div class="line"><a name="l03531"></a><span class="lineno"> 3531</span>&#160;        glRenderContext_t glRenderContext = 0;</div>
+<div class="line"><a name="l03532"></a><span class="lineno"> 3532</span>&#160;<span class="preprocessor">    #endif</span></div>
+<div class="line"><a name="l03533"></a><span class="lineno"> 3533</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l03534"></a><span class="lineno"> 3534</span>&#160;        <span class="keywordtype">bool</span> bSync = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l03535"></a><span class="lineno"> 3535</span>&#160;        <a class="code" href="namespaceolc.html#aeda642f63378f868193c28e8613138ca">olc::DecalMode</a> nDecalMode = <a class="code" href="namespaceolc.html#aeda642f63378f868193c28e8613138ca">olc::DecalMode</a>(-1); <span class="comment">// Thanks Gusgo &amp; Bispoo</span></div>
+<div class="line"><a name="l03536"></a><span class="lineno"> 3536</span>&#160;<span class="preprocessor">#if defined(OLC_PLATFORM_X11)</span></div>
+<div class="line"><a name="l03537"></a><span class="lineno"> 3537</span>&#160;        X11::Display* olc_Display = <span class="keyword">nullptr</span>;</div>
+<div class="line"><a name="l03538"></a><span class="lineno"> 3538</span>&#160;        X11::Window* olc_Window = <span class="keyword">nullptr</span>;</div>
+<div class="line"><a name="l03539"></a><span class="lineno"> 3539</span>&#160;        X11::XVisualInfo* olc_VisualInfo = <span class="keyword">nullptr</span>;</div>
+<div class="line"><a name="l03540"></a><span class="lineno"> 3540</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l03541"></a><span class="lineno"> 3541</span>&#160; </div>
+<div class="line"><a name="l03542"></a><span class="lineno"> 3542</span>&#160;    <span class="keyword">private</span>:</div>
+<div class="line"><a name="l03543"></a><span class="lineno"> 3543</span>&#160;        locCreateShader_t* locCreateShader = <span class="keyword">nullptr</span>;</div>
+<div class="line"><a name="l03544"></a><span class="lineno"> 3544</span>&#160;        locShaderSource_t* locShaderSource = <span class="keyword">nullptr</span>;</div>
+<div class="line"><a name="l03545"></a><span class="lineno"> 3545</span>&#160;        locCompileShader_t* locCompileShader = <span class="keyword">nullptr</span>;</div>
+<div class="line"><a name="l03546"></a><span class="lineno"> 3546</span>&#160;        locDeleteShader_t* locDeleteShader = <span class="keyword">nullptr</span>;</div>
+<div class="line"><a name="l03547"></a><span class="lineno"> 3547</span>&#160;        locCreateProgram_t* locCreateProgram = <span class="keyword">nullptr</span>;</div>
+<div class="line"><a name="l03548"></a><span class="lineno"> 3548</span>&#160;        locDeleteProgram_t* locDeleteProgram = <span class="keyword">nullptr</span>;</div>
+<div class="line"><a name="l03549"></a><span class="lineno"> 3549</span>&#160;        locLinkProgram_t* locLinkProgram = <span class="keyword">nullptr</span>;</div>
+<div class="line"><a name="l03550"></a><span class="lineno"> 3550</span>&#160;        locAttachShader_t* locAttachShader = <span class="keyword">nullptr</span>;</div>
+<div class="line"><a name="l03551"></a><span class="lineno"> 3551</span>&#160;        locBindBuffer_t* locBindBuffer = <span class="keyword">nullptr</span>;</div>
+<div class="line"><a name="l03552"></a><span class="lineno"> 3552</span>&#160;        locBufferData_t* locBufferData = <span class="keyword">nullptr</span>;</div>
+<div class="line"><a name="l03553"></a><span class="lineno"> 3553</span>&#160;        locGenBuffers_t* locGenBuffers = <span class="keyword">nullptr</span>;</div>
+<div class="line"><a name="l03554"></a><span class="lineno"> 3554</span>&#160;        locVertexAttribPointer_t* locVertexAttribPointer = <span class="keyword">nullptr</span>;</div>
+<div class="line"><a name="l03555"></a><span class="lineno"> 3555</span>&#160;        locEnableVertexAttribArray_t* locEnableVertexAttribArray = <span class="keyword">nullptr</span>;</div>
+<div class="line"><a name="l03556"></a><span class="lineno"> 3556</span>&#160;        locUseProgram_t* locUseProgram = <span class="keyword">nullptr</span>;</div>
+<div class="line"><a name="l03557"></a><span class="lineno"> 3557</span>&#160;        locBindVertexArray_t* locBindVertexArray = <span class="keyword">nullptr</span>;</div>
+<div class="line"><a name="l03558"></a><span class="lineno"> 3558</span>&#160;        locGenVertexArrays_t* locGenVertexArrays = <span class="keyword">nullptr</span>;</div>
+<div class="line"><a name="l03559"></a><span class="lineno"> 3559</span>&#160;        locSwapInterval_t* locSwapInterval = <span class="keyword">nullptr</span>;</div>
+<div class="line"><a name="l03560"></a><span class="lineno"> 3560</span>&#160;        locGetShaderInfoLog_t* locGetShaderInfoLog = <span class="keyword">nullptr</span>;</div>
+<div class="line"><a name="l03561"></a><span class="lineno"> 3561</span>&#160; </div>
+<div class="line"><a name="l03562"></a><span class="lineno"> 3562</span>&#160;        uint32_t m_nFS = 0;</div>
+<div class="line"><a name="l03563"></a><span class="lineno"> 3563</span>&#160;        uint32_t m_nVS = 0;</div>
+<div class="line"><a name="l03564"></a><span class="lineno"> 3564</span>&#160;        uint32_t m_nQuadShader = 0;</div>
+<div class="line"><a name="l03565"></a><span class="lineno"> 3565</span>&#160;        uint32_t m_vbQuad = 0;</div>
+<div class="line"><a name="l03566"></a><span class="lineno"> 3566</span>&#160;        uint32_t m_vaQuad = 0;</div>
+<div class="line"><a name="l03567"></a><span class="lineno"> 3567</span>&#160; </div>
+<div class="line"><a name="l03568"></a><span class="lineno"> 3568</span>&#160;        <span class="keyword">struct </span>locVertex</div>
+<div class="line"><a name="l03569"></a><span class="lineno"> 3569</span>&#160;        {</div>
+<div class="line"><a name="l03570"></a><span class="lineno"> 3570</span>&#160;            <span class="keywordtype">float</span> pos[3];</div>
+<div class="line"><a name="l03571"></a><span class="lineno"> 3571</span>&#160;            <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a> tex;</div>
+<div class="line"><a name="l03572"></a><span class="lineno"> 3572</span>&#160;            <a class="code" href="structolc_1_1_pixel.html">olc::Pixel</a> col;</div>
+<div class="line"><a name="l03573"></a><span class="lineno"> 3573</span>&#160;        };</div>
+<div class="line"><a name="l03574"></a><span class="lineno"> 3574</span>&#160; </div>
+<div class="line"><a name="l03575"></a><span class="lineno"> 3575</span>&#160;        locVertex pVertexMem[OLC_MAX_VERTS];</div>
+<div class="line"><a name="l03576"></a><span class="lineno"> 3576</span>&#160; </div>
+<div class="line"><a name="l03577"></a><span class="lineno"> 3577</span>&#160;        <a class="code" href="classolc_1_1_renderable.html">olc::Renderable</a> rendBlankQuad;</div>
+<div class="line"><a name="l03578"></a><span class="lineno"> 3578</span>&#160; </div>
+<div class="line"><a name="l03579"></a><span class="lineno"> 3579</span>&#160;    <span class="keyword">public</span>:</div>
+<div class="line"><a name="l03580"></a><span class="lineno"> 3580</span>&#160;        <span class="keywordtype">void</span> PrepareDevice()<span class="keyword"> override</span></div>
+<div class="line"><a name="l03581"></a><span class="lineno"> 3581</span>&#160;<span class="keyword">        </span>{</div>
+<div class="line"><a name="l03582"></a><span class="lineno"> 3582</span>&#160;<span class="preprocessor">#if defined(OLC_PLATFORM_GLUT)</span></div>
+<div class="line"><a name="l03583"></a><span class="lineno"> 3583</span>&#160;            <span class="comment">//glutInit has to be called with main() arguments, make fake ones</span></div>
+<div class="line"><a name="l03584"></a><span class="lineno"> 3584</span>&#160;            <span class="keywordtype">int</span> argc = 0;</div>
+<div class="line"><a name="l03585"></a><span class="lineno"> 3585</span>&#160;            <span class="keywordtype">char</span>* argv[1] = { (<span class="keywordtype">char</span>*)<span class="stringliteral">&quot;&quot;</span> };</div>
+<div class="line"><a name="l03586"></a><span class="lineno"> 3586</span>&#160;            glutInit(&amp;argc, argv);</div>
+<div class="line"><a name="l03587"></a><span class="lineno"> 3587</span>&#160;            glutInitWindowPosition(0, 0);</div>
+<div class="line"><a name="l03588"></a><span class="lineno"> 3588</span>&#160;            glutInitWindowSize(512, 512);</div>
+<div class="line"><a name="l03589"></a><span class="lineno"> 3589</span>&#160;            glutInitDisplayMode(GLUT_DOUBLE | GLUT_DEPTH | GLUT_RGBA);</div>
+<div class="line"><a name="l03590"></a><span class="lineno"> 3590</span>&#160;            <span class="comment">// Creates the window and the OpenGL context for it</span></div>
+<div class="line"><a name="l03591"></a><span class="lineno"> 3591</span>&#160;            glutCreateWindow(<span class="stringliteral">&quot;OneLoneCoder.com - Pixel Game Engine&quot;</span>);</div>
+<div class="line"><a name="l03592"></a><span class="lineno"> 3592</span>&#160;            glEnable(GL_TEXTURE_2D); <span class="comment">// Turn on texturing</span></div>
+<div class="line"><a name="l03593"></a><span class="lineno"> 3593</span>&#160;            glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST);</div>
+<div class="line"><a name="l03594"></a><span class="lineno"> 3594</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l03595"></a><span class="lineno"> 3595</span>&#160;        }</div>
+<div class="line"><a name="l03596"></a><span class="lineno"> 3596</span>&#160; </div>
+<div class="line"><a name="l03597"></a><span class="lineno"> 3597</span>&#160;        <a class="code" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87b">olc::rcode</a> CreateDevice(std::vector&lt;void*&gt; params, <span class="keywordtype">bool</span> bFullScreen, <span class="keywordtype">bool</span> bVSYNC)<span class="keyword"> override</span></div>
+<div class="line"><a name="l03598"></a><span class="lineno"> 3598</span>&#160;<span class="keyword">        </span>{</div>
+<div class="line"><a name="l03599"></a><span class="lineno"> 3599</span>&#160;            <span class="comment">// Create OpenGL Context</span></div>
+<div class="line"><a name="l03600"></a><span class="lineno"> 3600</span>&#160;<span class="preprocessor">#if defined(OLC_PLATFORM_WINAPI)</span></div>
+<div class="line"><a name="l03601"></a><span class="lineno"> 3601</span>&#160;            <span class="comment">// Create Device Context</span></div>
+<div class="line"><a name="l03602"></a><span class="lineno"> 3602</span>&#160;            glDeviceContext = GetDC((HWND)(params[0]));</div>
+<div class="line"><a name="l03603"></a><span class="lineno"> 3603</span>&#160;            PIXELFORMATDESCRIPTOR pfd =</div>
+<div class="line"><a name="l03604"></a><span class="lineno"> 3604</span>&#160;            {</div>
+<div class="line"><a name="l03605"></a><span class="lineno"> 3605</span>&#160;                <span class="keyword">sizeof</span>(PIXELFORMATDESCRIPTOR), 1,</div>
+<div class="line"><a name="l03606"></a><span class="lineno"> 3606</span>&#160;                PFD_DRAW_TO_WINDOW | PFD_SUPPORT_OPENGL | PFD_DOUBLEBUFFER,</div>
+<div class="line"><a name="l03607"></a><span class="lineno"> 3607</span>&#160;                PFD_TYPE_RGBA, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,</div>
+<div class="line"><a name="l03608"></a><span class="lineno"> 3608</span>&#160;                PFD_MAIN_PLANE, 0, 0, 0, 0</div>
+<div class="line"><a name="l03609"></a><span class="lineno"> 3609</span>&#160;            };</div>
+<div class="line"><a name="l03610"></a><span class="lineno"> 3610</span>&#160; </div>
+<div class="line"><a name="l03611"></a><span class="lineno"> 3611</span>&#160;            <span class="keywordtype">int</span> pf = 0;</div>
+<div class="line"><a name="l03612"></a><span class="lineno"> 3612</span>&#160;            <span class="keywordflow">if</span> (!(pf = ChoosePixelFormat(glDeviceContext, &amp;pfd))) <span class="keywordflow">return</span> <a class="code" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87baadc8ac6e9769db5bb290fbf5f8284dbf">olc::FAIL</a>;</div>
+<div class="line"><a name="l03613"></a><span class="lineno"> 3613</span>&#160;            SetPixelFormat(glDeviceContext, pf, &amp;pfd);</div>
+<div class="line"><a name="l03614"></a><span class="lineno"> 3614</span>&#160; </div>
+<div class="line"><a name="l03615"></a><span class="lineno"> 3615</span>&#160;            <span class="keywordflow">if</span> (!(glRenderContext = wglCreateContext(glDeviceContext))) <span class="keywordflow">return</span> <a class="code" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87baadc8ac6e9769db5bb290fbf5f8284dbf">olc::FAIL</a>;</div>
+<div class="line"><a name="l03616"></a><span class="lineno"> 3616</span>&#160;            wglMakeCurrent(glDeviceContext, glRenderContext);</div>
+<div class="line"><a name="l03617"></a><span class="lineno"> 3617</span>&#160; </div>
+<div class="line"><a name="l03618"></a><span class="lineno"> 3618</span>&#160;            <span class="comment">// Set Vertical Sync</span></div>
+<div class="line"><a name="l03619"></a><span class="lineno"> 3619</span>&#160;            locSwapInterval = OGL_LOAD(locSwapInterval_t, <span class="stringliteral">&quot;wglSwapIntervalEXT&quot;</span>);</div>
+<div class="line"><a name="l03620"></a><span class="lineno"> 3620</span>&#160;            <span class="keywordflow">if</span> (locSwapInterval &amp;&amp; !bVSYNC) locSwapInterval(0);</div>
+<div class="line"><a name="l03621"></a><span class="lineno"> 3621</span>&#160;            bSync = bVSYNC;</div>
+<div class="line"><a name="l03622"></a><span class="lineno"> 3622</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l03623"></a><span class="lineno"> 3623</span>&#160; </div>
+<div class="line"><a name="l03624"></a><span class="lineno"> 3624</span>&#160;<span class="preprocessor">#if defined(OLC_PLATFORM_X11)</span></div>
+<div class="line"><a name="l03625"></a><span class="lineno"> 3625</span>&#160;            <span class="keyword">using namespace </span>X11;</div>
+<div class="line"><a name="l03626"></a><span class="lineno"> 3626</span>&#160;            <span class="comment">// Linux has tighter coupling between OpenGL and X11, so we store</span></div>
+<div class="line"><a name="l03627"></a><span class="lineno"> 3627</span>&#160;            <span class="comment">// various &quot;platform&quot; handles in the renderer</span></div>
+<div class="line"><a name="l03628"></a><span class="lineno"> 3628</span>&#160;            olc_Display = (X11::Display*)(params[0]);</div>
+<div class="line"><a name="l03629"></a><span class="lineno"> 3629</span>&#160;            olc_Window = (X11::Window*)(params[1]);</div>
+<div class="line"><a name="l03630"></a><span class="lineno"> 3630</span>&#160;            olc_VisualInfo = (X11::XVisualInfo*)(params[2]);</div>
+<div class="line"><a name="l03631"></a><span class="lineno"> 3631</span>&#160; </div>
+<div class="line"><a name="l03632"></a><span class="lineno"> 3632</span>&#160;            glDeviceContext = glXCreateContext(olc_Display, olc_VisualInfo, <span class="keyword">nullptr</span>, GL_TRUE);</div>
+<div class="line"><a name="l03633"></a><span class="lineno"> 3633</span>&#160;            glXMakeCurrent(olc_Display, *olc_Window, glDeviceContext);</div>
+<div class="line"><a name="l03634"></a><span class="lineno"> 3634</span>&#160; </div>
+<div class="line"><a name="l03635"></a><span class="lineno"> 3635</span>&#160;            XWindowAttributes gwa;</div>
+<div class="line"><a name="l03636"></a><span class="lineno"> 3636</span>&#160;            XGetWindowAttributes(olc_Display, *olc_Window, &amp;gwa);</div>
+<div class="line"><a name="l03637"></a><span class="lineno"> 3637</span>&#160;            glViewport(0, 0, gwa.width, gwa.height);</div>
+<div class="line"><a name="l03638"></a><span class="lineno"> 3638</span>&#160; </div>
+<div class="line"><a name="l03639"></a><span class="lineno"> 3639</span>&#160;            locSwapInterval = OGL_LOAD(locSwapInterval_t, <span class="stringliteral">&quot;glXSwapIntervalEXT&quot;</span>);</div>
+<div class="line"><a name="l03640"></a><span class="lineno"> 3640</span>&#160; </div>
+<div class="line"><a name="l03641"></a><span class="lineno"> 3641</span>&#160;            <span class="keywordflow">if</span> (locSwapInterval == <span class="keyword">nullptr</span> &amp;&amp; !bVSYNC)</div>
+<div class="line"><a name="l03642"></a><span class="lineno"> 3642</span>&#160;            {</div>
+<div class="line"><a name="l03643"></a><span class="lineno"> 3643</span>&#160;                printf(<span class="stringliteral">&quot;NOTE: Could not disable VSYNC, glXSwapIntervalEXT() was not found!\n&quot;</span>);</div>
+<div class="line"><a name="l03644"></a><span class="lineno"> 3644</span>&#160;                printf(<span class="stringliteral">&quot;      Don&#39;t worry though, things will still work, it&#39;s just the\n&quot;</span>);</div>
+<div class="line"><a name="l03645"></a><span class="lineno"> 3645</span>&#160;                printf(<span class="stringliteral">&quot;      frame rate will be capped to your monitors refresh rate - javidx9\n&quot;</span>);</div>
+<div class="line"><a name="l03646"></a><span class="lineno"> 3646</span>&#160;            }</div>
+<div class="line"><a name="l03647"></a><span class="lineno"> 3647</span>&#160; </div>
+<div class="line"><a name="l03648"></a><span class="lineno"> 3648</span>&#160;            <span class="keywordflow">if</span> (locSwapInterval != <span class="keyword">nullptr</span> &amp;&amp; !bVSYNC)</div>
+<div class="line"><a name="l03649"></a><span class="lineno"> 3649</span>&#160;                locSwapInterval(olc_Display, *olc_Window, 0);</div>
+<div class="line"><a name="l03650"></a><span class="lineno"> 3650</span>&#160;<span class="preprocessor">#endif      </span></div>
+<div class="line"><a name="l03651"></a><span class="lineno"> 3651</span>&#160; </div>
+<div class="line"><a name="l03652"></a><span class="lineno"> 3652</span>&#160;<span class="preprocessor">#if defined(OLC_PLATFORM_EMSCRIPTEN)</span></div>
+<div class="line"><a name="l03653"></a><span class="lineno"> 3653</span>&#160;            EGLint <span class="keyword">const</span> attribute_list[] = { EGL_RED_SIZE, 8, EGL_GREEN_SIZE, 8, EGL_BLUE_SIZE, 8, EGL_ALPHA_SIZE, 8, EGL_NONE };</div>
+<div class="line"><a name="l03654"></a><span class="lineno"> 3654</span>&#160;            EGLint <span class="keyword">const</span> context_config[] = { EGL_CONTEXT_CLIENT_VERSION , 2, EGL_NONE };</div>
+<div class="line"><a name="l03655"></a><span class="lineno"> 3655</span>&#160;            EGLint num_config;</div>
+<div class="line"><a name="l03656"></a><span class="lineno"> 3656</span>&#160; </div>
+<div class="line"><a name="l03657"></a><span class="lineno"> 3657</span>&#160;            olc_Display = eglGetDisplay(EGL_DEFAULT_DISPLAY);</div>
+<div class="line"><a name="l03658"></a><span class="lineno"> 3658</span>&#160;            eglInitialize(olc_Display, <span class="keyword">nullptr</span>, <span class="keyword">nullptr</span>);</div>
+<div class="line"><a name="l03659"></a><span class="lineno"> 3659</span>&#160;            eglChooseConfig(olc_Display, attribute_list, &amp;olc_Config, 1, &amp;num_config);</div>
+<div class="line"><a name="l03660"></a><span class="lineno"> 3660</span>&#160; </div>
+<div class="line"><a name="l03661"></a><span class="lineno"> 3661</span>&#160;            <span class="comment">/* create an EGL rendering context */</span></div>
+<div class="line"><a name="l03662"></a><span class="lineno"> 3662</span>&#160;            olc_Context = eglCreateContext(olc_Display, olc_Config, EGL_NO_CONTEXT, context_config);</div>
+<div class="line"><a name="l03663"></a><span class="lineno"> 3663</span>&#160;            olc_Surface = eglCreateWindowSurface(olc_Display, olc_Config, NULL, <span class="keyword">nullptr</span>);</div>
+<div class="line"><a name="l03664"></a><span class="lineno"> 3664</span>&#160;            eglMakeCurrent(olc_Display, olc_Surface, olc_Surface, olc_Context);</div>
+<div class="line"><a name="l03665"></a><span class="lineno"> 3665</span>&#160;            <span class="comment">//eglSwapInterval is currently a NOP, plement anyways in case it becomes supported</span></div>
+<div class="line"><a name="l03666"></a><span class="lineno"> 3666</span>&#160;            locSwapInterval = &amp;eglSwapInterval;</div>
+<div class="line"><a name="l03667"></a><span class="lineno"> 3667</span>&#160;            locSwapInterval(olc_Display, bVSYNC ? 1 : 0);</div>
+<div class="line"><a name="l03668"></a><span class="lineno"> 3668</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l03669"></a><span class="lineno"> 3669</span>&#160; </div>
+<div class="line"><a name="l03670"></a><span class="lineno"> 3670</span>&#160;<span class="preprocessor">#if defined(OLC_PLATFORM_GLUT)</span></div>
+<div class="line"><a name="l03671"></a><span class="lineno"> 3671</span>&#160;            mFullScreen = bFullScreen;</div>
+<div class="line"><a name="l03672"></a><span class="lineno"> 3672</span>&#160;            <span class="keywordflow">if</span> (!bVSYNC)</div>
+<div class="line"><a name="l03673"></a><span class="lineno"> 3673</span>&#160;            {</div>
+<div class="line"><a name="l03674"></a><span class="lineno"> 3674</span>&#160;<span class="preprocessor">#if defined(__APPLE__)</span></div>
+<div class="line"><a name="l03675"></a><span class="lineno"> 3675</span>&#160;                GLint sync = 0;</div>
+<div class="line"><a name="l03676"></a><span class="lineno"> 3676</span>&#160;                CGLContextObj ctx = CGLGetCurrentContext();</div>
+<div class="line"><a name="l03677"></a><span class="lineno"> 3677</span>&#160;                <span class="keywordflow">if</span> (ctx) CGLSetParameter(ctx, kCGLCPSwapInterval, &amp;sync);</div>
+<div class="line"><a name="l03678"></a><span class="lineno"> 3678</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l03679"></a><span class="lineno"> 3679</span>&#160;            }</div>
+<div class="line"><a name="l03680"></a><span class="lineno"> 3680</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l03681"></a><span class="lineno"> 3681</span>&#160;<span class="preprocessor">    #if !defined(OLC_PLATFORM_EMSCRIPTEN)</span></div>
+<div class="line"><a name="l03682"></a><span class="lineno"> 3682</span>&#160;            glEnable(GL_TEXTURE_2D); <span class="comment">// Turn on texturing</span></div>
+<div class="line"><a name="l03683"></a><span class="lineno"> 3683</span>&#160;            glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST);</div>
+<div class="line"><a name="l03684"></a><span class="lineno"> 3684</span>&#160;<span class="preprocessor">    #endif</span></div>
+<div class="line"><a name="l03685"></a><span class="lineno"> 3685</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l03686"></a><span class="lineno"> 3686</span>&#160;            <span class="comment">// Load External OpenGL Functions</span></div>
+<div class="line"><a name="l03687"></a><span class="lineno"> 3687</span>&#160;            locCreateShader = OGL_LOAD(locCreateShader_t, glCreateShader);</div>
+<div class="line"><a name="l03688"></a><span class="lineno"> 3688</span>&#160;            locCompileShader = OGL_LOAD(locCompileShader_t, glCompileShader);</div>
+<div class="line"><a name="l03689"></a><span class="lineno"> 3689</span>&#160;            locShaderSource = OGL_LOAD(locShaderSource_t, glShaderSource);</div>
+<div class="line"><a name="l03690"></a><span class="lineno"> 3690</span>&#160;            locDeleteShader = OGL_LOAD(locDeleteShader_t, glDeleteShader);</div>
+<div class="line"><a name="l03691"></a><span class="lineno"> 3691</span>&#160;            locCreateProgram = OGL_LOAD(locCreateProgram_t, glCreateProgram);</div>
+<div class="line"><a name="l03692"></a><span class="lineno"> 3692</span>&#160;            locDeleteProgram = OGL_LOAD(locDeleteProgram_t, glDeleteProgram);</div>
+<div class="line"><a name="l03693"></a><span class="lineno"> 3693</span>&#160;            locLinkProgram = OGL_LOAD(locLinkProgram_t, glLinkProgram);</div>
+<div class="line"><a name="l03694"></a><span class="lineno"> 3694</span>&#160;            locAttachShader = OGL_LOAD(locAttachShader_t, glAttachShader);</div>
+<div class="line"><a name="l03695"></a><span class="lineno"> 3695</span>&#160;            locBindBuffer = OGL_LOAD(locBindBuffer_t, glBindBuffer);</div>
+<div class="line"><a name="l03696"></a><span class="lineno"> 3696</span>&#160;            locBufferData = OGL_LOAD(locBufferData_t, glBufferData);</div>
+<div class="line"><a name="l03697"></a><span class="lineno"> 3697</span>&#160;            locGenBuffers = OGL_LOAD(locGenBuffers_t, glGenBuffers);</div>
+<div class="line"><a name="l03698"></a><span class="lineno"> 3698</span>&#160;            locVertexAttribPointer = OGL_LOAD(locVertexAttribPointer_t, glVertexAttribPointer);</div>
+<div class="line"><a name="l03699"></a><span class="lineno"> 3699</span>&#160;            locEnableVertexAttribArray = OGL_LOAD(locEnableVertexAttribArray_t, glEnableVertexAttribArray);</div>
+<div class="line"><a name="l03700"></a><span class="lineno"> 3700</span>&#160;            locUseProgram = OGL_LOAD(locUseProgram_t, glUseProgram);</div>
+<div class="line"><a name="l03701"></a><span class="lineno"> 3701</span>&#160;            locGetShaderInfoLog = OGL_LOAD(locGetShaderInfoLog_t, glGetShaderInfoLog);</div>
+<div class="line"><a name="l03702"></a><span class="lineno"> 3702</span>&#160;<span class="preprocessor">#if !defined(OLC_PLATFORM_EMSCRIPTEN)</span></div>
+<div class="line"><a name="l03703"></a><span class="lineno"> 3703</span>&#160;            locBindVertexArray = OGL_LOAD(locBindVertexArray_t, glBindVertexArray);</div>
+<div class="line"><a name="l03704"></a><span class="lineno"> 3704</span>&#160;            locGenVertexArrays = OGL_LOAD(locGenVertexArrays_t, glGenVertexArrays);</div>
+<div class="line"><a name="l03705"></a><span class="lineno"> 3705</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l03706"></a><span class="lineno"> 3706</span>&#160;            locBindVertexArray = glBindVertexArrayOES;</div>
+<div class="line"><a name="l03707"></a><span class="lineno"> 3707</span>&#160;            locGenVertexArrays = glGenVertexArraysOES;</div>
+<div class="line"><a name="l03708"></a><span class="lineno"> 3708</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l03709"></a><span class="lineno"> 3709</span>&#160; </div>
+<div class="line"><a name="l03710"></a><span class="lineno"> 3710</span>&#160;            <span class="comment">// Load &amp; Compile Quad Shader - assumes no errors</span></div>
+<div class="line"><a name="l03711"></a><span class="lineno"> 3711</span>&#160;            m_nFS = locCreateShader(0x8B30);</div>
+<div class="line"><a name="l03712"></a><span class="lineno"> 3712</span>&#160;            <span class="keyword">const</span> GLchar* strFS =</div>
+<div class="line"><a name="l03713"></a><span class="lineno"> 3713</span>&#160;<span class="preprocessor">#if defined(__arm__) || defined(OLC_PLATFORM_EMSCRIPTEN)</span></div>
+<div class="line"><a name="l03714"></a><span class="lineno"> 3714</span>&#160;                <span class="stringliteral">&quot;#version 300 es\n&quot;</span></div>
+<div class="line"><a name="l03715"></a><span class="lineno"> 3715</span>&#160;                <span class="stringliteral">&quot;precision mediump float;&quot;</span></div>
+<div class="line"><a name="l03716"></a><span class="lineno"> 3716</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l03717"></a><span class="lineno"> 3717</span>&#160;                <span class="stringliteral">&quot;#version 330 core\n&quot;</span></div>
+<div class="line"><a name="l03718"></a><span class="lineno"> 3718</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l03719"></a><span class="lineno"> 3719</span>&#160;                <span class="stringliteral">&quot;out vec4 pixel;\n&quot;</span><span class="stringliteral">&quot;in vec2 oTex;\n&quot;</span></div>
+<div class="line"><a name="l03720"></a><span class="lineno"> 3720</span>&#160;                <span class="stringliteral">&quot;in vec4 oCol;\n&quot;</span><span class="stringliteral">&quot;uniform sampler2D sprTex;\n&quot;</span><span class="stringliteral">&quot;void main(){pixel = texture(sprTex, oTex) * oCol;}&quot;</span>;</div>
+<div class="line"><a name="l03721"></a><span class="lineno"> 3721</span>&#160;            locShaderSource(m_nFS, 1, &amp;strFS, NULL);</div>
+<div class="line"><a name="l03722"></a><span class="lineno"> 3722</span>&#160;            locCompileShader(m_nFS);</div>
+<div class="line"><a name="l03723"></a><span class="lineno"> 3723</span>&#160; </div>
+<div class="line"><a name="l03724"></a><span class="lineno"> 3724</span>&#160;            m_nVS = locCreateShader(0x8B31);</div>
+<div class="line"><a name="l03725"></a><span class="lineno"> 3725</span>&#160;            <span class="keyword">const</span> GLchar* strVS =</div>
+<div class="line"><a name="l03726"></a><span class="lineno"> 3726</span>&#160;<span class="preprocessor">#if defined(__arm__) || defined(OLC_PLATFORM_EMSCRIPTEN)</span></div>
+<div class="line"><a name="l03727"></a><span class="lineno"> 3727</span>&#160;                <span class="stringliteral">&quot;#version 300 es\n&quot;</span></div>
+<div class="line"><a name="l03728"></a><span class="lineno"> 3728</span>&#160;                <span class="stringliteral">&quot;precision mediump float;&quot;</span></div>
+<div class="line"><a name="l03729"></a><span class="lineno"> 3729</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l03730"></a><span class="lineno"> 3730</span>&#160;                <span class="stringliteral">&quot;#version 330 core\n&quot;</span></div>
+<div class="line"><a name="l03731"></a><span class="lineno"> 3731</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l03732"></a><span class="lineno"> 3732</span>&#160;                <span class="stringliteral">&quot;layout(location = 0) in vec3 aPos;\n&quot;</span><span class="stringliteral">&quot;layout(location = 1) in vec2 aTex;\n&quot;</span></div>
+<div class="line"><a name="l03733"></a><span class="lineno"> 3733</span>&#160;                <span class="stringliteral">&quot;layout(location = 2) in vec4 aCol;\n&quot;</span><span class="stringliteral">&quot;out vec2 oTex;\n&quot;</span><span class="stringliteral">&quot;out vec4 oCol;\n&quot;</span></div>
+<div class="line"><a name="l03734"></a><span class="lineno"> 3734</span>&#160;                <span class="stringliteral">&quot;void main(){ float p = 1.0 / aPos.z; gl_Position = p * vec4(aPos.x, aPos.y, 0.0, 1.0); oTex = p * aTex; oCol = aCol;}&quot;</span>;</div>
+<div class="line"><a name="l03735"></a><span class="lineno"> 3735</span>&#160;            locShaderSource(m_nVS, 1, &amp;strVS, NULL);</div>
+<div class="line"><a name="l03736"></a><span class="lineno"> 3736</span>&#160;            locCompileShader(m_nVS);</div>
+<div class="line"><a name="l03737"></a><span class="lineno"> 3737</span>&#160; </div>
+<div class="line"><a name="l03738"></a><span class="lineno"> 3738</span>&#160;            m_nQuadShader = locCreateProgram();</div>
+<div class="line"><a name="l03739"></a><span class="lineno"> 3739</span>&#160;            locAttachShader(m_nQuadShader, m_nFS);</div>
+<div class="line"><a name="l03740"></a><span class="lineno"> 3740</span>&#160;            locAttachShader(m_nQuadShader, m_nVS);</div>
+<div class="line"><a name="l03741"></a><span class="lineno"> 3741</span>&#160;            locLinkProgram(m_nQuadShader);</div>
+<div class="line"><a name="l03742"></a><span class="lineno"> 3742</span>&#160; </div>
+<div class="line"><a name="l03743"></a><span class="lineno"> 3743</span>&#160;            <span class="comment">// Create Quad</span></div>
+<div class="line"><a name="l03744"></a><span class="lineno"> 3744</span>&#160;            locGenBuffers(1, &amp;m_vbQuad);</div>
+<div class="line"><a name="l03745"></a><span class="lineno"> 3745</span>&#160;            locGenVertexArrays(1, &amp;m_vaQuad);</div>
+<div class="line"><a name="l03746"></a><span class="lineno"> 3746</span>&#160;            locBindVertexArray(m_vaQuad);</div>
+<div class="line"><a name="l03747"></a><span class="lineno"> 3747</span>&#160;            locBindBuffer(0x8892, m_vbQuad);</div>
+<div class="line"><a name="l03748"></a><span class="lineno"> 3748</span>&#160; </div>
+<div class="line"><a name="l03749"></a><span class="lineno"> 3749</span>&#160;            locVertex verts[OLC_MAX_VERTS];</div>
+<div class="line"><a name="l03750"></a><span class="lineno"> 3750</span>&#160;            locBufferData(0x8892, <span class="keyword">sizeof</span>(locVertex) * OLC_MAX_VERTS, verts, 0x88E0);</div>
+<div class="line"><a name="l03751"></a><span class="lineno"> 3751</span>&#160;            locVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, <span class="keyword">sizeof</span>(locVertex), 0); locEnableVertexAttribArray(0);</div>
+<div class="line"><a name="l03752"></a><span class="lineno"> 3752</span>&#160;            locVertexAttribPointer(1, 2, GL_FLOAT, GL_FALSE, <span class="keyword">sizeof</span>(locVertex), (<span class="keywordtype">void</span>*)(3 * <span class="keyword">sizeof</span>(<span class="keywordtype">float</span>))); locEnableVertexAttribArray(1);</div>
+<div class="line"><a name="l03753"></a><span class="lineno"> 3753</span>&#160;            locVertexAttribPointer(2, 4, GL_UNSIGNED_BYTE, GL_TRUE, <span class="keyword">sizeof</span>(locVertex), (<span class="keywordtype">void</span>*)(5 * <span class="keyword">sizeof</span>(<span class="keywordtype">float</span>))); locEnableVertexAttribArray(2);</div>
+<div class="line"><a name="l03754"></a><span class="lineno"> 3754</span>&#160;            locBindBuffer(0x8892, 0);</div>
+<div class="line"><a name="l03755"></a><span class="lineno"> 3755</span>&#160;            locBindVertexArray(0);</div>
+<div class="line"><a name="l03756"></a><span class="lineno"> 3756</span>&#160; </div>
+<div class="line"><a name="l03757"></a><span class="lineno"> 3757</span>&#160;            <span class="comment">// Create blank texture for spriteless decals</span></div>
+<div class="line"><a name="l03758"></a><span class="lineno"> 3758</span>&#160;            rendBlankQuad.<a class="code" href="classolc_1_1_renderable.html#ab15a4441be7b48519d55296e416976fd">Create</a>(1, 1);</div>
+<div class="line"><a name="l03759"></a><span class="lineno"> 3759</span>&#160;            rendBlankQuad.<a class="code" href="classolc_1_1_renderable.html#a8128a49bae0a3b40a5681d92cc01f52a">Sprite</a>()-&gt;<a class="code" href="classolc_1_1_sprite.html#ad8fcc6bbf8a785aa0bb9d00bf3cfdff2">GetData</a>()[0] = <a class="code" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a>;</div>
+<div class="line"><a name="l03760"></a><span class="lineno"> 3760</span>&#160;            rendBlankQuad.<a class="code" href="classolc_1_1_renderable.html#af6e5a2d5a46fe4f475c67ca5ab1b1f5d">Decal</a>()-&gt;<a class="code" href="classolc_1_1_decal.html#aac5ad6844f98fb3a8bce2f36adf02429">Update</a>();</div>
+<div class="line"><a name="l03761"></a><span class="lineno"> 3761</span>&#160;            <span class="keywordflow">return</span> <a class="code" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87ba0178b5f8abe39121e6f14d3c6c093a82">olc::rcode::OK</a>;</div>
+<div class="line"><a name="l03762"></a><span class="lineno"> 3762</span>&#160;        }</div>
+<div class="line"><a name="l03763"></a><span class="lineno"> 3763</span>&#160; </div>
+<div class="line"><a name="l03764"></a><span class="lineno"> 3764</span>&#160;        <a class="code" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87b">olc::rcode</a> DestroyDevice()<span class="keyword"> override</span></div>
+<div class="line"><a name="l03765"></a><span class="lineno"> 3765</span>&#160;<span class="keyword">        </span>{</div>
+<div class="line"><a name="l03766"></a><span class="lineno"> 3766</span>&#160;<span class="preprocessor">#if defined(OLC_PLATFORM_WINAPI)</span></div>
+<div class="line"><a name="l03767"></a><span class="lineno"> 3767</span>&#160;            wglDeleteContext(glRenderContext);</div>
+<div class="line"><a name="l03768"></a><span class="lineno"> 3768</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l03769"></a><span class="lineno"> 3769</span>&#160; </div>
+<div class="line"><a name="l03770"></a><span class="lineno"> 3770</span>&#160;<span class="preprocessor">#if defined(OLC_PLATFORM_X11)</span></div>
+<div class="line"><a name="l03771"></a><span class="lineno"> 3771</span>&#160;            glXMakeCurrent(olc_Display, None, NULL);</div>
+<div class="line"><a name="l03772"></a><span class="lineno"> 3772</span>&#160;            glXDestroyContext(olc_Display, glDeviceContext);</div>
+<div class="line"><a name="l03773"></a><span class="lineno"> 3773</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l03774"></a><span class="lineno"> 3774</span>&#160; </div>
+<div class="line"><a name="l03775"></a><span class="lineno"> 3775</span>&#160;<span class="preprocessor">#if defined(OLC_PLATFORM_GLUT)</span></div>
+<div class="line"><a name="l03776"></a><span class="lineno"> 3776</span>&#160;            glutDestroyWindow(glutGetWindow());</div>
+<div class="line"><a name="l03777"></a><span class="lineno"> 3777</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l03778"></a><span class="lineno"> 3778</span>&#160; </div>
+<div class="line"><a name="l03779"></a><span class="lineno"> 3779</span>&#160;<span class="preprocessor">#if defined(OLC_PLATFORM_EMSCRIPTEN)</span></div>
+<div class="line"><a name="l03780"></a><span class="lineno"> 3780</span>&#160;            eglMakeCurrent(olc_Display, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT);</div>
+<div class="line"><a name="l03781"></a><span class="lineno"> 3781</span>&#160;            eglDestroyContext(olc_Display, olc_Context);</div>
+<div class="line"><a name="l03782"></a><span class="lineno"> 3782</span>&#160;            eglDestroySurface(olc_Display, olc_Surface);</div>
+<div class="line"><a name="l03783"></a><span class="lineno"> 3783</span>&#160;            eglTerminate(olc_Display);</div>
+<div class="line"><a name="l03784"></a><span class="lineno"> 3784</span>&#160;            olc_Display = EGL_NO_DISPLAY;</div>
+<div class="line"><a name="l03785"></a><span class="lineno"> 3785</span>&#160;            olc_Surface = EGL_NO_SURFACE;</div>
+<div class="line"><a name="l03786"></a><span class="lineno"> 3786</span>&#160;            olc_Context = EGL_NO_CONTEXT;</div>
+<div class="line"><a name="l03787"></a><span class="lineno"> 3787</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l03788"></a><span class="lineno"> 3788</span>&#160;            <span class="keywordflow">return</span> <a class="code" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87ba0178b5f8abe39121e6f14d3c6c093a82">olc::rcode::OK</a>;</div>
+<div class="line"><a name="l03789"></a><span class="lineno"> 3789</span>&#160;        }</div>
+<div class="line"><a name="l03790"></a><span class="lineno"> 3790</span>&#160; </div>
+<div class="line"><a name="l03791"></a><span class="lineno"> 3791</span>&#160;        <span class="keywordtype">void</span> DisplayFrame()<span class="keyword"> override</span></div>
+<div class="line"><a name="l03792"></a><span class="lineno"> 3792</span>&#160;<span class="keyword">        </span>{</div>
+<div class="line"><a name="l03793"></a><span class="lineno"> 3793</span>&#160;<span class="preprocessor">#if defined(OLC_PLATFORM_WINAPI)</span></div>
+<div class="line"><a name="l03794"></a><span class="lineno"> 3794</span>&#160;            SwapBuffers(glDeviceContext);</div>
+<div class="line"><a name="l03795"></a><span class="lineno"> 3795</span>&#160;            <span class="keywordflow">if</span> (bSync) DwmFlush(); <span class="comment">// Woooohooooooo!!!! SMOOOOOOOTH!</span></div>
+<div class="line"><a name="l03796"></a><span class="lineno"> 3796</span>&#160;<span class="preprocessor">#endif  </span></div>
+<div class="line"><a name="l03797"></a><span class="lineno"> 3797</span>&#160; </div>
+<div class="line"><a name="l03798"></a><span class="lineno"> 3798</span>&#160;<span class="preprocessor">#if defined(OLC_PLATFORM_X11)</span></div>
+<div class="line"><a name="l03799"></a><span class="lineno"> 3799</span>&#160;            X11::glXSwapBuffers(olc_Display, *olc_Window);</div>
+<div class="line"><a name="l03800"></a><span class="lineno"> 3800</span>&#160;<span class="preprocessor">#endif      </span></div>
+<div class="line"><a name="l03801"></a><span class="lineno"> 3801</span>&#160; </div>
+<div class="line"><a name="l03802"></a><span class="lineno"> 3802</span>&#160;<span class="preprocessor">#if defined(OLC_PLATFORM_GLUT)</span></div>
+<div class="line"><a name="l03803"></a><span class="lineno"> 3803</span>&#160;            glutSwapBuffers();</div>
+<div class="line"><a name="l03804"></a><span class="lineno"> 3804</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l03805"></a><span class="lineno"> 3805</span>&#160; </div>
+<div class="line"><a name="l03806"></a><span class="lineno"> 3806</span>&#160;<span class="preprocessor">#if defined(OLC_PLATFORM_EMSCRIPTEN)</span></div>
+<div class="line"><a name="l03807"></a><span class="lineno"> 3807</span>&#160;            eglSwapBuffers(olc_Display, olc_Surface);</div>
+<div class="line"><a name="l03808"></a><span class="lineno"> 3808</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l03809"></a><span class="lineno"> 3809</span>&#160;        }</div>
+<div class="line"><a name="l03810"></a><span class="lineno"> 3810</span>&#160; </div>
+<div class="line"><a name="l03811"></a><span class="lineno"> 3811</span>&#160;        <span class="keywordtype">void</span> PrepareDrawing()<span class="keyword"> override</span></div>
+<div class="line"><a name="l03812"></a><span class="lineno"> 3812</span>&#160;<span class="keyword">        </span>{</div>
+<div class="line"><a name="l03813"></a><span class="lineno"> 3813</span>&#160;            glEnable(GL_BLEND);</div>
+<div class="line"><a name="l03814"></a><span class="lineno"> 3814</span>&#160;            nDecalMode = <a class="code" href="namespaceolc.html#aeda642f63378f868193c28e8613138caa1e23852820b9154316c7c06e2b7ba051">DecalMode::NORMAL</a>;</div>
+<div class="line"><a name="l03815"></a><span class="lineno"> 3815</span>&#160;            glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);</div>
+<div class="line"><a name="l03816"></a><span class="lineno"> 3816</span>&#160;            locUseProgram(m_nQuadShader);</div>
+<div class="line"><a name="l03817"></a><span class="lineno"> 3817</span>&#160;            locBindVertexArray(m_vaQuad);</div>
+<div class="line"><a name="l03818"></a><span class="lineno"> 3818</span>&#160; </div>
+<div class="line"><a name="l03819"></a><span class="lineno"> 3819</span>&#160;<span class="preprocessor">#if defined(OLC_PLATFORM_EMSCRIPTEN)</span></div>
+<div class="line"><a name="l03820"></a><span class="lineno"> 3820</span>&#160;            locVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, <span class="keyword">sizeof</span>(locVertex), 0); locEnableVertexAttribArray(0);</div>
+<div class="line"><a name="l03821"></a><span class="lineno"> 3821</span>&#160;            locVertexAttribPointer(1, 2, GL_FLOAT, GL_FALSE, <span class="keyword">sizeof</span>(locVertex), (<span class="keywordtype">void</span>*)(3 * <span class="keyword">sizeof</span>(<span class="keywordtype">float</span>))); locEnableVertexAttribArray(1);</div>
+<div class="line"><a name="l03822"></a><span class="lineno"> 3822</span>&#160;            locVertexAttribPointer(2, 4, GL_UNSIGNED_BYTE, GL_TRUE, <span class="keyword">sizeof</span>(locVertex), (<span class="keywordtype">void</span>*)(5 * <span class="keyword">sizeof</span>(<span class="keywordtype">float</span>))); locEnableVertexAttribArray(2);</div>
+<div class="line"><a name="l03823"></a><span class="lineno"> 3823</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l03824"></a><span class="lineno"> 3824</span>&#160;        }</div>
+<div class="line"><a name="l03825"></a><span class="lineno"> 3825</span>&#160; </div>
+<div class="line"><a name="l03826"></a><span class="lineno"> 3826</span>&#160;        <span class="keywordtype">void</span> SetDecalMode(<span class="keyword">const</span> <a class="code" href="namespaceolc.html#aeda642f63378f868193c28e8613138ca">olc::DecalMode</a>&amp; mode)<span class="keyword"> override</span></div>
+<div class="line"><a name="l03827"></a><span class="lineno"> 3827</span>&#160;<span class="keyword">        </span>{</div>
+<div class="line"><a name="l03828"></a><span class="lineno"> 3828</span>&#160;            <span class="keywordflow">if</span> (mode != nDecalMode)</div>
+<div class="line"><a name="l03829"></a><span class="lineno"> 3829</span>&#160;            {</div>
+<div class="line"><a name="l03830"></a><span class="lineno"> 3830</span>&#160;                <span class="keywordflow">switch</span> (mode)</div>
+<div class="line"><a name="l03831"></a><span class="lineno"> 3831</span>&#160;                {</div>
+<div class="line"><a name="l03832"></a><span class="lineno"> 3832</span>&#160;                <span class="keywordflow">case</span> <a class="code" href="namespaceolc.html#aeda642f63378f868193c28e8613138caa1e23852820b9154316c7c06e2b7ba051">olc::DecalMode::NORMAL</a>: glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l03833"></a><span class="lineno"> 3833</span>&#160;                <span class="keywordflow">case</span> olc::DecalMode::ADDITIVE: glBlendFunc(GL_SRC_ALPHA, GL_ONE); <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l03834"></a><span class="lineno"> 3834</span>&#160;                <span class="keywordflow">case</span> olc::DecalMode::MULTIPLICATIVE: glBlendFunc(GL_DST_COLOR, GL_ONE_MINUS_SRC_ALPHA); <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l03835"></a><span class="lineno"> 3835</span>&#160;                <span class="keywordflow">case</span> olc::DecalMode::STENCIL: glBlendFunc(GL_ZERO, GL_SRC_ALPHA); <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l03836"></a><span class="lineno"> 3836</span>&#160;                <span class="keywordflow">case</span> olc::DecalMode::ILLUMINATE: glBlendFunc(GL_ONE_MINUS_SRC_ALPHA, GL_SRC_ALPHA); <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l03837"></a><span class="lineno"> 3837</span>&#160;                <span class="keywordflow">case</span> <a class="code" href="namespaceolc.html#aeda642f63378f868193c28e8613138caa1e23852820b9154316c7c06e2b7ba051">olc::DecalMode::WIREFRAME</a>: glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);  <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l03838"></a><span class="lineno"> 3838</span>&#160;                }</div>
+<div class="line"><a name="l03839"></a><span class="lineno"> 3839</span>&#160; </div>
+<div class="line"><a name="l03840"></a><span class="lineno"> 3840</span>&#160;                nDecalMode = mode;</div>
+<div class="line"><a name="l03841"></a><span class="lineno"> 3841</span>&#160;            }</div>
+<div class="line"><a name="l03842"></a><span class="lineno"> 3842</span>&#160;        }</div>
+<div class="line"><a name="l03843"></a><span class="lineno"> 3843</span>&#160; </div>
+<div class="line"><a name="l03844"></a><span class="lineno"> 3844</span>&#160;        <span class="keywordtype">void</span> DrawLayerQuad(<span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; offset, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vf2d</a>&amp; scale, <span class="keyword">const</span> <a class="code" href="structolc_1_1_pixel.html">olc::Pixel</a> tint)<span class="keyword"> override</span></div>
+<div class="line"><a name="l03845"></a><span class="lineno"> 3845</span>&#160;<span class="keyword">        </span>{</div>
+<div class="line"><a name="l03846"></a><span class="lineno"> 3846</span>&#160;            locBindBuffer(0x8892, m_vbQuad);</div>
+<div class="line"><a name="l03847"></a><span class="lineno"> 3847</span>&#160;            locVertex verts[4] = {</div>
+<div class="line"><a name="l03848"></a><span class="lineno"> 3848</span>&#160;                {{-1.0f, -1.0f, 1.0}, {0.0f * scale.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a> + offset.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a>, 1.0f * scale.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a> + offset.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a>}, tint},</div>
+<div class="line"><a name="l03849"></a><span class="lineno"> 3849</span>&#160;                {{+1.0f, -1.0f, 1.0}, {1.0f * scale.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a> + offset.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a>, 1.0f * scale.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a> + offset.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a>}, tint},</div>
+<div class="line"><a name="l03850"></a><span class="lineno"> 3850</span>&#160;                {{-1.0f, +1.0f, 1.0}, {0.0f * scale.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a> + offset.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a>, 0.0f * scale.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a> + offset.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a>}, tint},</div>
+<div class="line"><a name="l03851"></a><span class="lineno"> 3851</span>&#160;                {{+1.0f, +1.0f, 1.0}, {1.0f * scale.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a> + offset.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a>, 0.0f * scale.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a> + offset.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a>}, tint},</div>
+<div class="line"><a name="l03852"></a><span class="lineno"> 3852</span>&#160;            };</div>
+<div class="line"><a name="l03853"></a><span class="lineno"> 3853</span>&#160; </div>
+<div class="line"><a name="l03854"></a><span class="lineno"> 3854</span>&#160;            locBufferData(0x8892, <span class="keyword">sizeof</span>(locVertex) * 4, verts, 0x88E0);</div>
+<div class="line"><a name="l03855"></a><span class="lineno"> 3855</span>&#160;            glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);</div>
+<div class="line"><a name="l03856"></a><span class="lineno"> 3856</span>&#160;        }</div>
+<div class="line"><a name="l03857"></a><span class="lineno"> 3857</span>&#160; </div>
+<div class="line"><a name="l03858"></a><span class="lineno"> 3858</span>&#160;        <span class="keywordtype">void</span> DrawDecal(<span class="keyword">const</span> <a class="code" href="structolc_1_1_decal_instance.html">olc::DecalInstance</a>&amp; decal)<span class="keyword"> override</span></div>
+<div class="line"><a name="l03859"></a><span class="lineno"> 3859</span>&#160;<span class="keyword">        </span>{</div>
+<div class="line"><a name="l03860"></a><span class="lineno"> 3860</span>&#160;            SetDecalMode(decal.<a class="code" href="structolc_1_1_decal_instance.html#a3dcc0fc374fe00a5d6451a4ac13e6649">mode</a>);</div>
+<div class="line"><a name="l03861"></a><span class="lineno"> 3861</span>&#160;            <span class="keywordflow">if</span> (decal.<a class="code" href="structolc_1_1_decal_instance.html#ad01bc9806792469d91ee0b5736058e7e">decal</a> == <span class="keyword">nullptr</span>)</div>
+<div class="line"><a name="l03862"></a><span class="lineno"> 3862</span>&#160;                glBindTexture(GL_TEXTURE_2D, rendBlankQuad.<a class="code" href="classolc_1_1_renderable.html#af6e5a2d5a46fe4f475c67ca5ab1b1f5d">Decal</a>()-&gt;<a class="code" href="classolc_1_1_decal.html#a7cc798e0327ea4118c648b10e2d57986">id</a>);</div>
+<div class="line"><a name="l03863"></a><span class="lineno"> 3863</span>&#160;            <span class="keywordflow">else</span></div>
+<div class="line"><a name="l03864"></a><span class="lineno"> 3864</span>&#160;                glBindTexture(GL_TEXTURE_2D, decal.<a class="code" href="structolc_1_1_decal_instance.html#ad01bc9806792469d91ee0b5736058e7e">decal</a>-&gt;<a class="code" href="classolc_1_1_decal.html#a7cc798e0327ea4118c648b10e2d57986">id</a>);</div>
+<div class="line"><a name="l03865"></a><span class="lineno"> 3865</span>&#160; </div>
+<div class="line"><a name="l03866"></a><span class="lineno"> 3866</span>&#160;            locBindBuffer(0x8892, m_vbQuad);</div>
+<div class="line"><a name="l03867"></a><span class="lineno"> 3867</span>&#160; </div>
+<div class="line"><a name="l03868"></a><span class="lineno"> 3868</span>&#160;            <span class="keywordflow">for</span> (uint32_t i = 0; i &lt; decal.<a class="code" href="structolc_1_1_decal_instance.html#aa03e3326919eb0c889cdad3492c8a8f6">points</a>; i++)</div>
+<div class="line"><a name="l03869"></a><span class="lineno"> 3869</span>&#160;                pVertexMem[i] = { { decal.<a class="code" href="structolc_1_1_decal_instance.html#a8dcf3a11a4f2c722e9b54c01643de08c">pos</a>[i].x, decal.<a class="code" href="structolc_1_1_decal_instance.html#a8dcf3a11a4f2c722e9b54c01643de08c">pos</a>[i].y, decal.<a class="code" href="structolc_1_1_decal_instance.html#a3475b1bb41f868f218c759972dec2f73">w</a>[i] }, { decal.<a class="code" href="structolc_1_1_decal_instance.html#a60337d982b4f35b3bb5b1d814fa0d09f">uv</a>[i].x, decal.<a class="code" href="structolc_1_1_decal_instance.html#a60337d982b4f35b3bb5b1d814fa0d09f">uv</a>[i].y }, decal.<a class="code" href="structolc_1_1_decal_instance.html#a04f01880bf6d4045b6e1f70aff3e5c8f">tint</a>[i] };</div>
+<div class="line"><a name="l03870"></a><span class="lineno"> 3870</span>&#160; </div>
+<div class="line"><a name="l03871"></a><span class="lineno"> 3871</span>&#160;            locBufferData(0x8892, <span class="keyword">sizeof</span>(locVertex) * decal.<a class="code" href="structolc_1_1_decal_instance.html#aa03e3326919eb0c889cdad3492c8a8f6">points</a>, pVertexMem, 0x88E0);</div>
+<div class="line"><a name="l03872"></a><span class="lineno"> 3872</span>&#160; </div>
+<div class="line"><a name="l03873"></a><span class="lineno"> 3873</span>&#160;            <span class="keywordflow">if</span> (nDecalMode == <a class="code" href="namespaceolc.html#aeda642f63378f868193c28e8613138caa1e23852820b9154316c7c06e2b7ba051">DecalMode::WIREFRAME</a>)</div>
+<div class="line"><a name="l03874"></a><span class="lineno"> 3874</span>&#160;                glDrawArrays(GL_LINE_LOOP, 0, decal.<a class="code" href="structolc_1_1_decal_instance.html#aa03e3326919eb0c889cdad3492c8a8f6">points</a>);</div>
+<div class="line"><a name="l03875"></a><span class="lineno"> 3875</span>&#160;            <span class="keywordflow">else</span></div>
+<div class="line"><a name="l03876"></a><span class="lineno"> 3876</span>&#160;                glDrawArrays(GL_TRIANGLE_FAN, 0, decal.<a class="code" href="structolc_1_1_decal_instance.html#aa03e3326919eb0c889cdad3492c8a8f6">points</a>);</div>
+<div class="line"><a name="l03877"></a><span class="lineno"> 3877</span>&#160;        }</div>
+<div class="line"><a name="l03878"></a><span class="lineno"> 3878</span>&#160; </div>
+<div class="line"><a name="l03879"></a><span class="lineno"> 3879</span>&#160;        uint32_t CreateTexture(<span class="keyword">const</span> uint32_t width, <span class="keyword">const</span> uint32_t height, <span class="keyword">const</span> <span class="keywordtype">bool</span> filtered, <span class="keyword">const</span> <span class="keywordtype">bool</span> clamp)<span class="keyword"> override</span></div>
+<div class="line"><a name="l03880"></a><span class="lineno"> 3880</span>&#160;<span class="keyword">        </span>{</div>
+<div class="line"><a name="l03881"></a><span class="lineno"> 3881</span>&#160;            <a class="code" href="olc_pixel_game_engine_8h.html#a86d500a34c624c2cae56bc25a31b12f3">UNUSED</a>(width);</div>
+<div class="line"><a name="l03882"></a><span class="lineno"> 3882</span>&#160;            <a class="code" href="olc_pixel_game_engine_8h.html#a86d500a34c624c2cae56bc25a31b12f3">UNUSED</a>(height);</div>
+<div class="line"><a name="l03883"></a><span class="lineno"> 3883</span>&#160;            uint32_t <span class="keywordtype">id</span> = 0;</div>
+<div class="line"><a name="l03884"></a><span class="lineno"> 3884</span>&#160;            glGenTextures(1, &amp;<span class="keywordtype">id</span>);</div>
+<div class="line"><a name="l03885"></a><span class="lineno"> 3885</span>&#160;            glBindTexture(GL_TEXTURE_2D, <span class="keywordtype">id</span>);</div>
+<div class="line"><a name="l03886"></a><span class="lineno"> 3886</span>&#160; </div>
+<div class="line"><a name="l03887"></a><span class="lineno"> 3887</span>&#160;            <span class="keywordflow">if</span> (filtered)</div>
+<div class="line"><a name="l03888"></a><span class="lineno"> 3888</span>&#160;            {</div>
+<div class="line"><a name="l03889"></a><span class="lineno"> 3889</span>&#160;                glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);</div>
+<div class="line"><a name="l03890"></a><span class="lineno"> 3890</span>&#160;                glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);</div>
+<div class="line"><a name="l03891"></a><span class="lineno"> 3891</span>&#160;            }</div>
+<div class="line"><a name="l03892"></a><span class="lineno"> 3892</span>&#160;            <span class="keywordflow">else</span></div>
+<div class="line"><a name="l03893"></a><span class="lineno"> 3893</span>&#160;            {</div>
+<div class="line"><a name="l03894"></a><span class="lineno"> 3894</span>&#160;                glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);</div>
+<div class="line"><a name="l03895"></a><span class="lineno"> 3895</span>&#160;                glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);</div>
+<div class="line"><a name="l03896"></a><span class="lineno"> 3896</span>&#160;            }</div>
+<div class="line"><a name="l03897"></a><span class="lineno"> 3897</span>&#160; </div>
+<div class="line"><a name="l03898"></a><span class="lineno"> 3898</span>&#160;            <span class="keywordflow">if</span> (clamp)</div>
+<div class="line"><a name="l03899"></a><span class="lineno"> 3899</span>&#160;            {</div>
+<div class="line"><a name="l03900"></a><span class="lineno"> 3900</span>&#160;                glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP);</div>
+<div class="line"><a name="l03901"></a><span class="lineno"> 3901</span>&#160;                glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP);</div>
+<div class="line"><a name="l03902"></a><span class="lineno"> 3902</span>&#160;            }</div>
+<div class="line"><a name="l03903"></a><span class="lineno"> 3903</span>&#160;            <span class="keywordflow">else</span></div>
+<div class="line"><a name="l03904"></a><span class="lineno"> 3904</span>&#160;            {</div>
+<div class="line"><a name="l03905"></a><span class="lineno"> 3905</span>&#160;                glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);</div>
+<div class="line"><a name="l03906"></a><span class="lineno"> 3906</span>&#160;                glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);</div>
+<div class="line"><a name="l03907"></a><span class="lineno"> 3907</span>&#160;            }</div>
+<div class="line"><a name="l03908"></a><span class="lineno"> 3908</span>&#160;<span class="preprocessor">#if !defined(OLC_PLATFORM_EMSCRIPTEN)</span></div>
+<div class="line"><a name="l03909"></a><span class="lineno"> 3909</span>&#160;            glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);</div>
+<div class="line"><a name="l03910"></a><span class="lineno"> 3910</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l03911"></a><span class="lineno"> 3911</span>&#160;            <span class="keywordflow">return</span> id;</div>
+<div class="line"><a name="l03912"></a><span class="lineno"> 3912</span>&#160;        }</div>
+<div class="line"><a name="l03913"></a><span class="lineno"> 3913</span>&#160; </div>
+<div class="line"><a name="l03914"></a><span class="lineno"> 3914</span>&#160;        uint32_t DeleteTexture(<span class="keyword">const</span> uint32_t <span class="keywordtype">id</span>)<span class="keyword"> override</span></div>
+<div class="line"><a name="l03915"></a><span class="lineno"> 3915</span>&#160;<span class="keyword">        </span>{</div>
+<div class="line"><a name="l03916"></a><span class="lineno"> 3916</span>&#160;            glDeleteTextures(1, &amp;<span class="keywordtype">id</span>);</div>
+<div class="line"><a name="l03917"></a><span class="lineno"> 3917</span>&#160;            <span class="keywordflow">return</span> id;</div>
+<div class="line"><a name="l03918"></a><span class="lineno"> 3918</span>&#160;        }</div>
+<div class="line"><a name="l03919"></a><span class="lineno"> 3919</span>&#160; </div>
+<div class="line"><a name="l03920"></a><span class="lineno"> 3920</span>&#160;        <span class="keywordtype">void</span> UpdateTexture(uint32_t <span class="keywordtype">id</span>, <a class="code" href="classolc_1_1_sprite.html">olc::Sprite</a>* spr)<span class="keyword"> override</span></div>
+<div class="line"><a name="l03921"></a><span class="lineno"> 3921</span>&#160;<span class="keyword">        </span>{</div>
+<div class="line"><a name="l03922"></a><span class="lineno"> 3922</span>&#160;            <a class="code" href="olc_pixel_game_engine_8h.html#a86d500a34c624c2cae56bc25a31b12f3">UNUSED</a>(<span class="keywordtype">id</span>);</div>
+<div class="line"><a name="l03923"></a><span class="lineno"> 3923</span>&#160;            glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, spr-&gt;<a class="code" href="classolc_1_1_sprite.html#af055800e63204ae372ca0812e6926230">width</a>, spr-&gt;<a class="code" href="classolc_1_1_sprite.html#ab05010cb1a5ff6c36267d0050d568d96">height</a>, 0, GL_RGBA, GL_UNSIGNED_BYTE, spr-&gt;<a class="code" href="classolc_1_1_sprite.html#ad8fcc6bbf8a785aa0bb9d00bf3cfdff2">GetData</a>());</div>
+<div class="line"><a name="l03924"></a><span class="lineno"> 3924</span>&#160;        }</div>
+<div class="line"><a name="l03925"></a><span class="lineno"> 3925</span>&#160; </div>
+<div class="line"><a name="l03926"></a><span class="lineno"> 3926</span>&#160;        <span class="keywordtype">void</span> ReadTexture(uint32_t <span class="keywordtype">id</span>, <a class="code" href="classolc_1_1_sprite.html">olc::Sprite</a>* spr)<span class="keyword"> override</span></div>
+<div class="line"><a name="l03927"></a><span class="lineno"> 3927</span>&#160;<span class="keyword">        </span>{</div>
+<div class="line"><a name="l03928"></a><span class="lineno"> 3928</span>&#160;            glReadPixels(0, 0, spr-&gt;<a class="code" href="classolc_1_1_sprite.html#af055800e63204ae372ca0812e6926230">width</a>, spr-&gt;<a class="code" href="classolc_1_1_sprite.html#ab05010cb1a5ff6c36267d0050d568d96">height</a>, GL_RGBA, GL_UNSIGNED_BYTE, spr-&gt;<a class="code" href="classolc_1_1_sprite.html#ad8fcc6bbf8a785aa0bb9d00bf3cfdff2">GetData</a>());</div>
+<div class="line"><a name="l03929"></a><span class="lineno"> 3929</span>&#160;        }</div>
+<div class="line"><a name="l03930"></a><span class="lineno"> 3930</span>&#160; </div>
+<div class="line"><a name="l03931"></a><span class="lineno"> 3931</span>&#160;        <span class="keywordtype">void</span> ApplyTexture(uint32_t <span class="keywordtype">id</span>)<span class="keyword"> override</span></div>
+<div class="line"><a name="l03932"></a><span class="lineno"> 3932</span>&#160;<span class="keyword">        </span>{</div>
+<div class="line"><a name="l03933"></a><span class="lineno"> 3933</span>&#160;            glBindTexture(GL_TEXTURE_2D, <span class="keywordtype">id</span>);</div>
+<div class="line"><a name="l03934"></a><span class="lineno"> 3934</span>&#160;        }</div>
+<div class="line"><a name="l03935"></a><span class="lineno"> 3935</span>&#160; </div>
+<div class="line"><a name="l03936"></a><span class="lineno"> 3936</span>&#160;        <span class="keywordtype">void</span> ClearBuffer(<a class="code" href="structolc_1_1_pixel.html">olc::Pixel</a> p, <span class="keywordtype">bool</span> bDepth)<span class="keyword"> override</span></div>
+<div class="line"><a name="l03937"></a><span class="lineno"> 3937</span>&#160;<span class="keyword">        </span>{</div>
+<div class="line"><a name="l03938"></a><span class="lineno"> 3938</span>&#160;            glClearColor(<span class="keywordtype">float</span>(p.<a class="code" href="structolc_1_1_pixel.html#a93ee3efde3d2b363e4e4813a490f60b4">r</a>) / 255.0f, <span class="keywordtype">float</span>(p.<a class="code" href="structolc_1_1_pixel.html#a14cf5612284974c409f078944fe5f6ee">g</a>) / 255.0f, <span class="keywordtype">float</span>(p.<a class="code" href="structolc_1_1_pixel.html#a8738f2cd490bd9c5288f37c8d19816be">b</a>) / 255.0f, <span class="keywordtype">float</span>(p.<a class="code" href="structolc_1_1_pixel.html#a652a25d4bcab1f7bf627c3224842f0b1">a</a>) / 255.0f);</div>
+<div class="line"><a name="l03939"></a><span class="lineno"> 3939</span>&#160;            glClear(GL_COLOR_BUFFER_BIT);</div>
+<div class="line"><a name="l03940"></a><span class="lineno"> 3940</span>&#160;            <span class="keywordflow">if</span> (bDepth) glClear(GL_DEPTH_BUFFER_BIT);</div>
+<div class="line"><a name="l03941"></a><span class="lineno"> 3941</span>&#160;        }</div>
+<div class="line"><a name="l03942"></a><span class="lineno"> 3942</span>&#160; </div>
+<div class="line"><a name="l03943"></a><span class="lineno"> 3943</span>&#160;        <span class="keywordtype">void</span> UpdateViewport(<span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vi2d</a>&amp; pos, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vi2d</a>&amp; size)<span class="keyword"> override</span></div>
+<div class="line"><a name="l03944"></a><span class="lineno"> 3944</span>&#160;<span class="keyword">        </span>{</div>
+<div class="line"><a name="l03945"></a><span class="lineno"> 3945</span>&#160;<span class="preprocessor">#if defined(OLC_PLATFORM_GLUT)</span></div>
+<div class="line"><a name="l03946"></a><span class="lineno"> 3946</span>&#160;            <span class="keywordflow">if</span> (!mFullScreen) glutReshapeWindow(size.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a>, size.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a>);</div>
+<div class="line"><a name="l03947"></a><span class="lineno"> 3947</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l03948"></a><span class="lineno"> 3948</span>&#160;            glViewport(pos.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a>, pos.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a>, size.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a>, size.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a>);</div>
+<div class="line"><a name="l03949"></a><span class="lineno"> 3949</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l03950"></a><span class="lineno"> 3950</span>&#160;        }</div>
+<div class="line"><a name="l03951"></a><span class="lineno"> 3951</span>&#160;    };</div>
+<div class="line"><a name="l03952"></a><span class="lineno"> 3952</span>&#160;}</div>
+<div class="line"><a name="l03953"></a><span class="lineno"> 3953</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l03954"></a><span class="lineno"> 3954</span>&#160;<span class="comment">// O------------------------------------------------------------------------------O</span></div>
+<div class="line"><a name="l03955"></a><span class="lineno"> 3955</span>&#160;<span class="comment">// | END RENDERER: OpenGL 3.3 (3.0 es) (sh-sh-sh-shaders....)                     |</span></div>
+<div class="line"><a name="l03956"></a><span class="lineno"> 3956</span>&#160;<span class="comment">// O------------------------------------------------------------------------------O</span></div>
+<div class="line"><a name="l03957"></a><span class="lineno"> 3957</span>&#160;<span class="preprocessor">#pragma endregion</span></div>
+<div class="line"><a name="l03958"></a><span class="lineno"> 3958</span>&#160; </div>
+<div class="line"><a name="l03959"></a><span class="lineno"> 3959</span>&#160;<span class="comment">// O------------------------------------------------------------------------------O</span></div>
+<div class="line"><a name="l03960"></a><span class="lineno"> 3960</span>&#160;<span class="comment">// | olcPixelGameEngine Image loaders                                             |</span></div>
+<div class="line"><a name="l03961"></a><span class="lineno"> 3961</span>&#160;<span class="comment">// O------------------------------------------------------------------------------O</span></div>
+<div class="line"><a name="l03962"></a><span class="lineno"> 3962</span>&#160; </div>
+<div class="line"><a name="l03963"></a><span class="lineno"> 3963</span>&#160;<span class="preprocessor">#pragma region image_gdi</span></div>
+<div class="line"><a name="l03964"></a><span class="lineno"> 3964</span>&#160;<span class="comment">// O------------------------------------------------------------------------------O</span></div>
+<div class="line"><a name="l03965"></a><span class="lineno"> 3965</span>&#160;<span class="comment">// | START IMAGE LOADER: GDI+, Windows Only, always exists, a little slow         |</span></div>
+<div class="line"><a name="l03966"></a><span class="lineno"> 3966</span>&#160;<span class="comment">// O------------------------------------------------------------------------------O</span></div>
+<div class="line"><a name="l03967"></a><span class="lineno"> 3967</span>&#160;<span class="preprocessor">#if defined(OLC_IMAGE_GDI)</span></div>
+<div class="line"><a name="l03968"></a><span class="lineno"> 3968</span>&#160; </div>
+<div class="line"><a name="l03969"></a><span class="lineno"> 3969</span>&#160;<span class="preprocessor">#define min(a, b) ((a &lt; b) ? a : b)</span></div>
+<div class="line"><a name="l03970"></a><span class="lineno"> 3970</span>&#160;<span class="preprocessor">#define max(a, b) ((a &gt; b) ? a : b)</span></div>
+<div class="line"><a name="l03971"></a><span class="lineno"> 3971</span>&#160;<span class="preprocessor">#include &lt;objidl.h&gt;</span></div>
+<div class="line"><a name="l03972"></a><span class="lineno"> 3972</span>&#160;<span class="preprocessor">#include &lt;gdiplus.h&gt;</span></div>
+<div class="line"><a name="l03973"></a><span class="lineno"> 3973</span>&#160;<span class="preprocessor">#if defined(__MINGW32__) // Thanks Gusgo &amp; Dandistine, but c&#39;mon mingw!! wtf?!</span></div>
+<div class="line"><a name="l03974"></a><span class="lineno"> 3974</span>&#160;<span class="preprocessor">    #include &lt;gdiplus/gdiplusinit.h&gt;</span></div>
+<div class="line"><a name="l03975"></a><span class="lineno"> 3975</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l03976"></a><span class="lineno"> 3976</span>&#160;<span class="preprocessor">    #include &lt;gdiplusinit.h&gt;</span></div>
+<div class="line"><a name="l03977"></a><span class="lineno"> 3977</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l03978"></a><span class="lineno"> 3978</span>&#160;<span class="preprocessor">#include &lt;shlwapi.h&gt;</span></div>
+<div class="line"><a name="l03979"></a><span class="lineno"> 3979</span>&#160;<span class="preprocessor">#undef min</span></div>
+<div class="line"><a name="l03980"></a><span class="lineno"> 3980</span>&#160;<span class="preprocessor">#undef max</span></div>
+<div class="line"><a name="l03981"></a><span class="lineno"> 3981</span>&#160; </div>
+<div class="line"><a name="l03982"></a><span class="lineno"> 3982</span>&#160;<span class="preprocessor">#if !defined(__MINGW32__)</span></div>
+<div class="line"><a name="l03983"></a><span class="lineno"> 3983</span>&#160;<span class="preprocessor">    #pragma comment(lib, &quot;gdiplus.lib&quot;)</span></div>
+<div class="line"><a name="l03984"></a><span class="lineno"> 3984</span>&#160;<span class="preprocessor">    #pragma comment(lib, &quot;Shlwapi.lib&quot;)</span></div>
+<div class="line"><a name="l03985"></a><span class="lineno"> 3985</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l03986"></a><span class="lineno"> 3986</span>&#160; </div>
+<div class="line"><a name="l03987"></a><span class="lineno"> 3987</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespaceolc.html">olc</a></div>
+<div class="line"><a name="l03988"></a><span class="lineno"> 3988</span>&#160;{</div>
+<div class="line"><a name="l03989"></a><span class="lineno"> 3989</span>&#160;    <span class="comment">// Thanks @MaGetzUb for this, which allows sprites to be defined</span></div>
+<div class="line"><a name="l03990"></a><span class="lineno"> 3990</span>&#160;    <span class="comment">// at construction, by initialising the GDI subsystem</span></div>
+<div class="line"><a name="l03991"></a><span class="lineno"> 3991</span>&#160;    <span class="keyword">static</span> <span class="keyword">class </span>GDIPlusStartup</div>
+<div class="line"><a name="l03992"></a><span class="lineno"> 3992</span>&#160;    {</div>
+<div class="line"><a name="l03993"></a><span class="lineno"> 3993</span>&#160;    <span class="keyword">public</span>:</div>
+<div class="line"><a name="l03994"></a><span class="lineno"> 3994</span>&#160;        GDIPlusStartup()</div>
+<div class="line"><a name="l03995"></a><span class="lineno"> 3995</span>&#160;        {           </div>
+<div class="line"><a name="l03996"></a><span class="lineno"> 3996</span>&#160;            Gdiplus::GdiplusStartupInput startupInput;</div>
+<div class="line"><a name="l03997"></a><span class="lineno"> 3997</span>&#160;            GdiplusStartup(&amp;token, &amp;startupInput, NULL);</div>
+<div class="line"><a name="l03998"></a><span class="lineno"> 3998</span>&#160;        }</div>
+<div class="line"><a name="l03999"></a><span class="lineno"> 3999</span>&#160; </div>
+<div class="line"><a name="l04000"></a><span class="lineno"> 4000</span>&#160;        ULONG_PTR   token;</div>
+<div class="line"><a name="l04001"></a><span class="lineno"> 4001</span>&#160;        </div>
+<div class="line"><a name="l04002"></a><span class="lineno"> 4002</span>&#160;        ~GDIPlusStartup()</div>
+<div class="line"><a name="l04003"></a><span class="lineno"> 4003</span>&#160;        {</div>
+<div class="line"><a name="l04004"></a><span class="lineno"> 4004</span>&#160;            <span class="comment">// Well, MarcusTU thought this was important :D</span></div>
+<div class="line"><a name="l04005"></a><span class="lineno"> 4005</span>&#160;            Gdiplus::GdiplusShutdown(token);</div>
+<div class="line"><a name="l04006"></a><span class="lineno"> 4006</span>&#160;        }</div>
+<div class="line"><a name="l04007"></a><span class="lineno"> 4007</span>&#160;    } gdistartup;</div>
+<div class="line"><a name="l04008"></a><span class="lineno"> 4008</span>&#160; </div>
+<div class="line"><a name="l04009"></a><span class="lineno"> 4009</span>&#160;    <span class="keyword">class </span>ImageLoader_GDIPlus : <span class="keyword">public</span> <a class="code" href="classolc_1_1_image_loader.html">olc::ImageLoader</a></div>
+<div class="line"><a name="l04010"></a><span class="lineno"> 4010</span>&#160;    {</div>
+<div class="line"><a name="l04011"></a><span class="lineno"> 4011</span>&#160;    <span class="keyword">private</span>:</div>
+<div class="line"><a name="l04012"></a><span class="lineno"> 4012</span>&#160;        std::wstring ConvertS2W(std::string s)</div>
+<div class="line"><a name="l04013"></a><span class="lineno"> 4013</span>&#160;        {</div>
+<div class="line"><a name="l04014"></a><span class="lineno"> 4014</span>&#160;<span class="preprocessor">#ifdef __MINGW32__</span></div>
+<div class="line"><a name="l04015"></a><span class="lineno"> 4015</span>&#160;            <span class="keywordtype">wchar_t</span>* buffer = <span class="keyword">new</span> <span class="keywordtype">wchar_t</span>[s.length() + 1];</div>
+<div class="line"><a name="l04016"></a><span class="lineno"> 4016</span>&#160;            mbstowcs(buffer, s.c_str(), s.length());</div>
+<div class="line"><a name="l04017"></a><span class="lineno"> 4017</span>&#160;            buffer[s.length()] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a4d809048542b770e810d48919c8f8500">L</a><span class="charliteral">&#39;\0&#39;</span>;</div>
+<div class="line"><a name="l04018"></a><span class="lineno"> 4018</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l04019"></a><span class="lineno"> 4019</span>&#160;            <span class="keywordtype">int</span> count = MultiByteToWideChar(CP_UTF8, 0, s.c_str(), -1, NULL, 0);</div>
+<div class="line"><a name="l04020"></a><span class="lineno"> 4020</span>&#160;            <span class="keywordtype">wchar_t</span>* buffer = <span class="keyword">new</span> <span class="keywordtype">wchar_t</span>[count];</div>
+<div class="line"><a name="l04021"></a><span class="lineno"> 4021</span>&#160;            MultiByteToWideChar(CP_UTF8, 0, s.c_str(), -1, buffer, count);</div>
+<div class="line"><a name="l04022"></a><span class="lineno"> 4022</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l04023"></a><span class="lineno"> 4023</span>&#160;            std::wstring w(buffer);</div>
+<div class="line"><a name="l04024"></a><span class="lineno"> 4024</span>&#160;            <span class="keyword">delete</span>[] buffer;</div>
+<div class="line"><a name="l04025"></a><span class="lineno"> 4025</span>&#160;            <span class="keywordflow">return</span> w;</div>
+<div class="line"><a name="l04026"></a><span class="lineno"> 4026</span>&#160;        }</div>
+<div class="line"><a name="l04027"></a><span class="lineno"> 4027</span>&#160; </div>
+<div class="line"><a name="l04028"></a><span class="lineno"> 4028</span>&#160;    <span class="keyword">public</span>:</div>
+<div class="line"><a name="l04029"></a><span class="lineno"> 4029</span>&#160;        ImageLoader_GDIPlus() : ImageLoader()</div>
+<div class="line"><a name="l04030"></a><span class="lineno"> 4030</span>&#160;        {}</div>
+<div class="line"><a name="l04031"></a><span class="lineno"> 4031</span>&#160; </div>
+<div class="line"><a name="l04032"></a><span class="lineno"> 4032</span>&#160;        <a class="code" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87b">olc::rcode</a> LoadImageResource(<a class="code" href="classolc_1_1_sprite.html">olc::Sprite</a>* spr, <span class="keyword">const</span> std::string&amp; sImageFile, <a class="code" href="classolc_1_1_resource_pack.html">olc::ResourcePack</a>* pack)<span class="keyword"> override</span></div>
+<div class="line"><a name="l04033"></a><span class="lineno"> 4033</span>&#160;<span class="keyword">        </span>{</div>
+<div class="line"><a name="l04034"></a><span class="lineno"> 4034</span>&#160;            <span class="comment">// clear out existing sprite</span></div>
+<div class="line"><a name="l04035"></a><span class="lineno"> 4035</span>&#160;            spr-&gt;<a class="code" href="classolc_1_1_sprite.html#adb41a2041dfe14de9605dabcd905db60">pColData</a>.clear();</div>
+<div class="line"><a name="l04036"></a><span class="lineno"> 4036</span>&#160; </div>
+<div class="line"><a name="l04037"></a><span class="lineno"> 4037</span>&#160;            <span class="comment">// Open file</span></div>
+<div class="line"><a name="l04038"></a><span class="lineno"> 4038</span>&#160;            <a class="code" href="olc_pixel_game_engine_8h.html#a86d500a34c624c2cae56bc25a31b12f3">UNUSED</a>(pack);</div>
+<div class="line"><a name="l04039"></a><span class="lineno"> 4039</span>&#160;            Gdiplus::Bitmap* bmp = <span class="keyword">nullptr</span>;</div>
+<div class="line"><a name="l04040"></a><span class="lineno"> 4040</span>&#160;            <span class="keywordflow">if</span> (pack != <span class="keyword">nullptr</span>)</div>
+<div class="line"><a name="l04041"></a><span class="lineno"> 4041</span>&#160;            {</div>
+<div class="line"><a name="l04042"></a><span class="lineno"> 4042</span>&#160;                <span class="comment">// Load sprite from input stream</span></div>
+<div class="line"><a name="l04043"></a><span class="lineno"> 4043</span>&#160;                ResourceBuffer rb = pack-&gt;<a class="code" href="classolc_1_1_resource_pack.html#accb89668e145dc59e0740925b1b91987">GetFileBuffer</a>(sImageFile);</div>
+<div class="line"><a name="l04044"></a><span class="lineno"> 4044</span>&#160;                bmp = Gdiplus::Bitmap::FromStream(SHCreateMemStream((BYTE*)rb.vMemory.data(), UINT(rb.vMemory.size())));</div>
+<div class="line"><a name="l04045"></a><span class="lineno"> 4045</span>&#160;            }</div>
+<div class="line"><a name="l04046"></a><span class="lineno"> 4046</span>&#160;            <span class="keywordflow">else</span></div>
+<div class="line"><a name="l04047"></a><span class="lineno"> 4047</span>&#160;            {</div>
+<div class="line"><a name="l04048"></a><span class="lineno"> 4048</span>&#160;                <span class="comment">// Check file exists</span></div>
+<div class="line"><a name="l04049"></a><span class="lineno"> 4049</span>&#160;                <span class="keywordflow">if</span> (!_gfs::exists(sImageFile)) <span class="keywordflow">return</span> <a class="code" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87babfe0b9ad99c942b01b1ee61404f559b5">olc::rcode::NO_FILE</a>;</div>
+<div class="line"><a name="l04050"></a><span class="lineno"> 4050</span>&#160; </div>
+<div class="line"><a name="l04051"></a><span class="lineno"> 4051</span>&#160;                <span class="comment">// Load sprite from file</span></div>
+<div class="line"><a name="l04052"></a><span class="lineno"> 4052</span>&#160;                bmp = Gdiplus::Bitmap::FromFile(ConvertS2W(sImageFile).c_str());</div>
+<div class="line"><a name="l04053"></a><span class="lineno"> 4053</span>&#160;            }</div>
+<div class="line"><a name="l04054"></a><span class="lineno"> 4054</span>&#160; </div>
+<div class="line"><a name="l04055"></a><span class="lineno"> 4055</span>&#160;            <span class="keywordflow">if</span> (bmp-&gt;GetLastStatus() != Gdiplus::Ok) <span class="keywordflow">return</span> <a class="code" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87baadc8ac6e9769db5bb290fbf5f8284dbf">olc::rcode::FAIL</a>;</div>
+<div class="line"><a name="l04056"></a><span class="lineno"> 4056</span>&#160;            spr-&gt;<a class="code" href="classolc_1_1_sprite.html#af055800e63204ae372ca0812e6926230">width</a> = bmp-&gt;GetWidth();</div>
+<div class="line"><a name="l04057"></a><span class="lineno"> 4057</span>&#160;            spr-&gt;<a class="code" href="classolc_1_1_sprite.html#ab05010cb1a5ff6c36267d0050d568d96">height</a> = bmp-&gt;GetHeight();</div>
+<div class="line"><a name="l04058"></a><span class="lineno"> 4058</span>&#160; </div>
+<div class="line"><a name="l04059"></a><span class="lineno"> 4059</span>&#160;            spr-&gt;<a class="code" href="classolc_1_1_sprite.html#adb41a2041dfe14de9605dabcd905db60">pColData</a>.resize(spr-&gt;<a class="code" href="classolc_1_1_sprite.html#af055800e63204ae372ca0812e6926230">width</a> * spr-&gt;<a class="code" href="classolc_1_1_sprite.html#ab05010cb1a5ff6c36267d0050d568d96">height</a>);</div>
+<div class="line"><a name="l04060"></a><span class="lineno"> 4060</span>&#160; </div>
+<div class="line"><a name="l04061"></a><span class="lineno"> 4061</span>&#160;            <span class="keywordflow">for</span> (<span class="keywordtype">int</span> y = 0; y &lt; spr-&gt;<a class="code" href="classolc_1_1_sprite.html#ab05010cb1a5ff6c36267d0050d568d96">height</a>; y++)</div>
+<div class="line"><a name="l04062"></a><span class="lineno"> 4062</span>&#160;                <span class="keywordflow">for</span> (<span class="keywordtype">int</span> x = 0; x &lt; spr-&gt;<a class="code" href="classolc_1_1_sprite.html#af055800e63204ae372ca0812e6926230">width</a>; x++)</div>
+<div class="line"><a name="l04063"></a><span class="lineno"> 4063</span>&#160;                {</div>
+<div class="line"><a name="l04064"></a><span class="lineno"> 4064</span>&#160;                    Gdiplus::Color c;</div>
+<div class="line"><a name="l04065"></a><span class="lineno"> 4065</span>&#160;                    bmp-&gt;GetPixel(x, y, &amp;c);</div>
+<div class="line"><a name="l04066"></a><span class="lineno"> 4066</span>&#160;                    spr-&gt;<a class="code" href="classolc_1_1_sprite.html#a294389e93a95c8307f1260d7cacaf9ba">SetPixel</a>(x, y, <a class="code" href="structolc_1_1_pixel.html">olc::Pixel</a>(c.GetRed(), c.GetGreen(), c.GetBlue(), c.GetAlpha()));</div>
+<div class="line"><a name="l04067"></a><span class="lineno"> 4067</span>&#160;                }</div>
+<div class="line"><a name="l04068"></a><span class="lineno"> 4068</span>&#160;            <span class="keyword">delete</span> bmp;</div>
+<div class="line"><a name="l04069"></a><span class="lineno"> 4069</span>&#160;            <span class="keywordflow">return</span> <a class="code" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87ba0178b5f8abe39121e6f14d3c6c093a82">olc::rcode::OK</a>;</div>
+<div class="line"><a name="l04070"></a><span class="lineno"> 4070</span>&#160;        }</div>
+<div class="line"><a name="l04071"></a><span class="lineno"> 4071</span>&#160; </div>
+<div class="line"><a name="l04072"></a><span class="lineno"> 4072</span>&#160;        <a class="code" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87b">olc::rcode</a> SaveImageResource(<a class="code" href="classolc_1_1_sprite.html">olc::Sprite</a>* spr, <span class="keyword">const</span> std::string&amp; sImageFile)<span class="keyword"> override</span></div>
+<div class="line"><a name="l04073"></a><span class="lineno"> 4073</span>&#160;<span class="keyword">        </span>{</div>
+<div class="line"><a name="l04074"></a><span class="lineno"> 4074</span>&#160;            <span class="keywordflow">return</span> <a class="code" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87ba0178b5f8abe39121e6f14d3c6c093a82">olc::rcode::OK</a>;</div>
+<div class="line"><a name="l04075"></a><span class="lineno"> 4075</span>&#160;        }</div>
+<div class="line"><a name="l04076"></a><span class="lineno"> 4076</span>&#160;    };</div>
+<div class="line"><a name="l04077"></a><span class="lineno"> 4077</span>&#160;}</div>
+<div class="line"><a name="l04078"></a><span class="lineno"> 4078</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l04079"></a><span class="lineno"> 4079</span>&#160;<span class="comment">// O------------------------------------------------------------------------------O</span></div>
+<div class="line"><a name="l04080"></a><span class="lineno"> 4080</span>&#160;<span class="comment">// | END IMAGE LOADER: GDI+                                                       |</span></div>
+<div class="line"><a name="l04081"></a><span class="lineno"> 4081</span>&#160;<span class="comment">// O------------------------------------------------------------------------------O</span></div>
+<div class="line"><a name="l04082"></a><span class="lineno"> 4082</span>&#160;<span class="preprocessor">#pragma endregion</span></div>
+<div class="line"><a name="l04083"></a><span class="lineno"> 4083</span>&#160; </div>
+<div class="line"><a name="l04084"></a><span class="lineno"> 4084</span>&#160;<span class="preprocessor">#pragma region image_libpng</span></div>
+<div class="line"><a name="l04085"></a><span class="lineno"> 4085</span>&#160;<span class="comment">// O------------------------------------------------------------------------------O</span></div>
+<div class="line"><a name="l04086"></a><span class="lineno"> 4086</span>&#160;<span class="comment">// | START IMAGE LOADER: libpng, default on linux, requires -lpng  (libpng-dev)   |</span></div>
+<div class="line"><a name="l04087"></a><span class="lineno"> 4087</span>&#160;<span class="comment">// O------------------------------------------------------------------------------O</span></div>
+<div class="line"><a name="l04088"></a><span class="lineno"> 4088</span>&#160;<span class="preprocessor">#if defined(OLC_IMAGE_LIBPNG)</span></div>
+<div class="line"><a name="l04089"></a><span class="lineno"> 4089</span>&#160;<span class="preprocessor">#include &lt;png.h&gt;</span></div>
+<div class="line"><a name="l04090"></a><span class="lineno"> 4090</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespaceolc.html">olc</a></div>
+<div class="line"><a name="l04091"></a><span class="lineno"> 4091</span>&#160;{</div>
+<div class="line"><a name="l04092"></a><span class="lineno"> 4092</span>&#160;    <span class="keywordtype">void</span> pngReadStream(png_structp pngPtr, png_bytep data, png_size_t length)</div>
+<div class="line"><a name="l04093"></a><span class="lineno"> 4093</span>&#160;    {</div>
+<div class="line"><a name="l04094"></a><span class="lineno"> 4094</span>&#160;        png_voidp a = png_get_io_ptr(pngPtr);</div>
+<div class="line"><a name="l04095"></a><span class="lineno"> 4095</span>&#160;        ((std::istream*)a)-&gt;read((<span class="keywordtype">char</span>*)data, length);</div>
+<div class="line"><a name="l04096"></a><span class="lineno"> 4096</span>&#160;    }</div>
+<div class="line"><a name="l04097"></a><span class="lineno"> 4097</span>&#160; </div>
+<div class="line"><a name="l04098"></a><span class="lineno"> 4098</span>&#160;    <span class="keyword">class </span>ImageLoader_LibPNG : <span class="keyword">public</span> <a class="code" href="classolc_1_1_image_loader.html">olc::ImageLoader</a></div>
+<div class="line"><a name="l04099"></a><span class="lineno"> 4099</span>&#160;    {</div>
+<div class="line"><a name="l04100"></a><span class="lineno"> 4100</span>&#160;    <span class="keyword">public</span>:</div>
+<div class="line"><a name="l04101"></a><span class="lineno"> 4101</span>&#160;        ImageLoader_LibPNG() : ImageLoader()</div>
+<div class="line"><a name="l04102"></a><span class="lineno"> 4102</span>&#160;        {}</div>
+<div class="line"><a name="l04103"></a><span class="lineno"> 4103</span>&#160; </div>
+<div class="line"><a name="l04104"></a><span class="lineno"> 4104</span>&#160;        <a class="code" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87b">olc::rcode</a> LoadImageResource(<a class="code" href="classolc_1_1_sprite.html">olc::Sprite</a>* spr, <span class="keyword">const</span> std::string&amp; sImageFile, <a class="code" href="classolc_1_1_resource_pack.html">olc::ResourcePack</a>* pack)<span class="keyword"> override</span></div>
+<div class="line"><a name="l04105"></a><span class="lineno"> 4105</span>&#160;<span class="keyword">        </span>{</div>
+<div class="line"><a name="l04106"></a><span class="lineno"> 4106</span>&#160;            <a class="code" href="olc_pixel_game_engine_8h.html#a86d500a34c624c2cae56bc25a31b12f3">UNUSED</a>(pack);</div>
+<div class="line"><a name="l04107"></a><span class="lineno"> 4107</span>&#160; </div>
+<div class="line"><a name="l04108"></a><span class="lineno"> 4108</span>&#160;            <span class="comment">// clear out existing sprite</span></div>
+<div class="line"><a name="l04109"></a><span class="lineno"> 4109</span>&#160;            spr-&gt;<a class="code" href="classolc_1_1_sprite.html#adb41a2041dfe14de9605dabcd905db60">pColData</a>.clear();</div>
+<div class="line"><a name="l04110"></a><span class="lineno"> 4110</span>&#160; </div>
+<div class="line"><a name="l04112"></a><span class="lineno"> 4112</span>&#160;            <span class="comment">// Use libpng, Thanks to Guillaume Cottenceau</span></div>
+<div class="line"><a name="l04113"></a><span class="lineno"> 4113</span>&#160;            <span class="comment">// https://gist.github.com/niw/5963798</span></div>
+<div class="line"><a name="l04114"></a><span class="lineno"> 4114</span>&#160;            <span class="comment">// Also reading png from streams</span></div>
+<div class="line"><a name="l04115"></a><span class="lineno"> 4115</span>&#160;            <span class="comment">// http://www.piko3d.net/tutorials/libpng-tutorial-loading-png-files-from-streams/</span></div>
+<div class="line"><a name="l04116"></a><span class="lineno"> 4116</span>&#160;            png_structp png;</div>
+<div class="line"><a name="l04117"></a><span class="lineno"> 4117</span>&#160;            png_infop info;</div>
+<div class="line"><a name="l04118"></a><span class="lineno"> 4118</span>&#160; </div>
+<div class="line"><a name="l04119"></a><span class="lineno"> 4119</span>&#160;            <span class="keyword">auto</span> loadPNG = [&amp;]()</div>
+<div class="line"><a name="l04120"></a><span class="lineno"> 4120</span>&#160;            {</div>
+<div class="line"><a name="l04121"></a><span class="lineno"> 4121</span>&#160;                png_read_info(png, info);</div>
+<div class="line"><a name="l04122"></a><span class="lineno"> 4122</span>&#160;                png_byte color_type;</div>
+<div class="line"><a name="l04123"></a><span class="lineno"> 4123</span>&#160;                png_byte bit_depth;</div>
+<div class="line"><a name="l04124"></a><span class="lineno"> 4124</span>&#160;                png_bytep* row_pointers;</div>
+<div class="line"><a name="l04125"></a><span class="lineno"> 4125</span>&#160;                spr-&gt;<a class="code" href="classolc_1_1_sprite.html#af055800e63204ae372ca0812e6926230">width</a> = png_get_image_width(png, info);</div>
+<div class="line"><a name="l04126"></a><span class="lineno"> 4126</span>&#160;                spr-&gt;<a class="code" href="classolc_1_1_sprite.html#ab05010cb1a5ff6c36267d0050d568d96">height</a> = png_get_image_height(png, info);</div>
+<div class="line"><a name="l04127"></a><span class="lineno"> 4127</span>&#160;                color_type = png_get_color_type(png, info);</div>
+<div class="line"><a name="l04128"></a><span class="lineno"> 4128</span>&#160;                bit_depth = png_get_bit_depth(png, info);</div>
+<div class="line"><a name="l04129"></a><span class="lineno"> 4129</span>&#160;                <span class="keywordflow">if</span> (bit_depth == 16) png_set_strip_16(png);</div>
+<div class="line"><a name="l04130"></a><span class="lineno"> 4130</span>&#160;                <span class="keywordflow">if</span> (color_type == PNG_COLOR_TYPE_PALETTE) png_set_palette_to_rgb(png);</div>
+<div class="line"><a name="l04131"></a><span class="lineno"> 4131</span>&#160;                <span class="keywordflow">if</span> (color_type == PNG_COLOR_TYPE_GRAY &amp;&amp; bit_depth &lt; 8) png_set_expand_gray_1_2_4_to_8(png);</div>
+<div class="line"><a name="l04132"></a><span class="lineno"> 4132</span>&#160;                <span class="keywordflow">if</span> (png_get_valid(png, info, PNG_INFO_tRNS)) png_set_tRNS_to_alpha(png);</div>
+<div class="line"><a name="l04133"></a><span class="lineno"> 4133</span>&#160;                <span class="keywordflow">if</span> (color_type == PNG_COLOR_TYPE_RGB || color_type == PNG_COLOR_TYPE_GRAY || color_type == PNG_COLOR_TYPE_PALETTE)</div>
+<div class="line"><a name="l04134"></a><span class="lineno"> 4134</span>&#160;                    png_set_filler(png, 0xFF, PNG_FILLER_AFTER);</div>
+<div class="line"><a name="l04135"></a><span class="lineno"> 4135</span>&#160;                <span class="keywordflow">if</span> (color_type == PNG_COLOR_TYPE_GRAY || color_type == PNG_COLOR_TYPE_GRAY_ALPHA)</div>
+<div class="line"><a name="l04136"></a><span class="lineno"> 4136</span>&#160;                    png_set_gray_to_rgb(png);</div>
+<div class="line"><a name="l04137"></a><span class="lineno"> 4137</span>&#160;                png_read_update_info(png, info);</div>
+<div class="line"><a name="l04138"></a><span class="lineno"> 4138</span>&#160;                row_pointers = (png_bytep*)malloc(<span class="keyword">sizeof</span>(png_bytep) * spr-&gt;<a class="code" href="classolc_1_1_sprite.html#ab05010cb1a5ff6c36267d0050d568d96">height</a>);</div>
+<div class="line"><a name="l04139"></a><span class="lineno"> 4139</span>&#160;                <span class="keywordflow">for</span> (<span class="keywordtype">int</span> y = 0; y &lt; spr-&gt;<a class="code" href="classolc_1_1_sprite.html#ab05010cb1a5ff6c36267d0050d568d96">height</a>; y++) {</div>
+<div class="line"><a name="l04140"></a><span class="lineno"> 4140</span>&#160;                    row_pointers[y] = (png_byte*)malloc(png_get_rowbytes(png, info));</div>
+<div class="line"><a name="l04141"></a><span class="lineno"> 4141</span>&#160;                }</div>
+<div class="line"><a name="l04142"></a><span class="lineno"> 4142</span>&#160;                png_read_image(png, row_pointers);</div>
+<div class="line"><a name="l04144"></a><span class="lineno"> 4144</span>&#160;                <span class="comment">// Create sprite array</span></div>
+<div class="line"><a name="l04145"></a><span class="lineno"> 4145</span>&#160;                spr-&gt;<a class="code" href="classolc_1_1_sprite.html#adb41a2041dfe14de9605dabcd905db60">pColData</a>.resize(spr-&gt;<a class="code" href="classolc_1_1_sprite.html#af055800e63204ae372ca0812e6926230">width</a> * spr-&gt;<a class="code" href="classolc_1_1_sprite.html#ab05010cb1a5ff6c36267d0050d568d96">height</a>);</div>
+<div class="line"><a name="l04146"></a><span class="lineno"> 4146</span>&#160;                <span class="comment">// Iterate through image rows, converting into sprite format</span></div>
+<div class="line"><a name="l04147"></a><span class="lineno"> 4147</span>&#160;                <span class="keywordflow">for</span> (<span class="keywordtype">int</span> y = 0; y &lt; spr-&gt;<a class="code" href="classolc_1_1_sprite.html#ab05010cb1a5ff6c36267d0050d568d96">height</a>; y++)</div>
+<div class="line"><a name="l04148"></a><span class="lineno"> 4148</span>&#160;                {</div>
+<div class="line"><a name="l04149"></a><span class="lineno"> 4149</span>&#160;                    png_bytep row = row_pointers[y];</div>
+<div class="line"><a name="l04150"></a><span class="lineno"> 4150</span>&#160;                    <span class="keywordflow">for</span> (<span class="keywordtype">int</span> x = 0; x &lt; spr-&gt;<a class="code" href="classolc_1_1_sprite.html#af055800e63204ae372ca0812e6926230">width</a>; x++)</div>
+<div class="line"><a name="l04151"></a><span class="lineno"> 4151</span>&#160;                    {</div>
+<div class="line"><a name="l04152"></a><span class="lineno"> 4152</span>&#160;                        png_bytep px = &amp;(row[x * 4]);</div>
+<div class="line"><a name="l04153"></a><span class="lineno"> 4153</span>&#160;                        spr-&gt;<a class="code" href="classolc_1_1_sprite.html#a294389e93a95c8307f1260d7cacaf9ba">SetPixel</a>(x, y, Pixel(px[0], px[1], px[2], px[3]));</div>
+<div class="line"><a name="l04154"></a><span class="lineno"> 4154</span>&#160;                    }</div>
+<div class="line"><a name="l04155"></a><span class="lineno"> 4155</span>&#160;                }</div>
+<div class="line"><a name="l04156"></a><span class="lineno"> 4156</span>&#160; </div>
+<div class="line"><a name="l04157"></a><span class="lineno"> 4157</span>&#160;                <span class="keywordflow">for</span> (<span class="keywordtype">int</span> y = 0; y &lt; spr-&gt;<a class="code" href="classolc_1_1_sprite.html#ab05010cb1a5ff6c36267d0050d568d96">height</a>; y++) <span class="comment">// Thanks maksym33</span></div>
+<div class="line"><a name="l04158"></a><span class="lineno"> 4158</span>&#160;                    free(row_pointers[y]);</div>
+<div class="line"><a name="l04159"></a><span class="lineno"> 4159</span>&#160;                free(row_pointers);</div>
+<div class="line"><a name="l04160"></a><span class="lineno"> 4160</span>&#160;                png_destroy_read_struct(&amp;png, &amp;info, <span class="keyword">nullptr</span>);</div>
+<div class="line"><a name="l04161"></a><span class="lineno"> 4161</span>&#160;            };</div>
+<div class="line"><a name="l04162"></a><span class="lineno"> 4162</span>&#160; </div>
+<div class="line"><a name="l04163"></a><span class="lineno"> 4163</span>&#160;            png = png_create_read_struct(PNG_LIBPNG_VER_STRING, NULL, NULL, NULL);</div>
+<div class="line"><a name="l04164"></a><span class="lineno"> 4164</span>&#160;            <span class="keywordflow">if</span> (!png) <span class="keywordflow">goto</span> fail_load;</div>
+<div class="line"><a name="l04165"></a><span class="lineno"> 4165</span>&#160; </div>
+<div class="line"><a name="l04166"></a><span class="lineno"> 4166</span>&#160;            info = png_create_info_struct(png);</div>
+<div class="line"><a name="l04167"></a><span class="lineno"> 4167</span>&#160;            <span class="keywordflow">if</span> (!info) <span class="keywordflow">goto</span> fail_load;</div>
+<div class="line"><a name="l04168"></a><span class="lineno"> 4168</span>&#160; </div>
+<div class="line"><a name="l04169"></a><span class="lineno"> 4169</span>&#160;            <span class="keywordflow">if</span> (setjmp(png_jmpbuf(png))) <span class="keywordflow">goto</span> fail_load;</div>
+<div class="line"><a name="l04170"></a><span class="lineno"> 4170</span>&#160; </div>
+<div class="line"><a name="l04171"></a><span class="lineno"> 4171</span>&#160;            <span class="keywordflow">if</span> (pack == <span class="keyword">nullptr</span>)</div>
+<div class="line"><a name="l04172"></a><span class="lineno"> 4172</span>&#160;            {</div>
+<div class="line"><a name="l04173"></a><span class="lineno"> 4173</span>&#160;                FILE* f = fopen(sImageFile.c_str(), <span class="stringliteral">&quot;rb&quot;</span>);</div>
+<div class="line"><a name="l04174"></a><span class="lineno"> 4174</span>&#160;                <span class="keywordflow">if</span> (!f) <span class="keywordflow">return</span> <a class="code" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87babfe0b9ad99c942b01b1ee61404f559b5">olc::rcode::NO_FILE</a>;</div>
+<div class="line"><a name="l04175"></a><span class="lineno"> 4175</span>&#160;                png_init_io(png, f);</div>
+<div class="line"><a name="l04176"></a><span class="lineno"> 4176</span>&#160;                loadPNG();</div>
+<div class="line"><a name="l04177"></a><span class="lineno"> 4177</span>&#160;                fclose(f);</div>
+<div class="line"><a name="l04178"></a><span class="lineno"> 4178</span>&#160;            }</div>
+<div class="line"><a name="l04179"></a><span class="lineno"> 4179</span>&#160;            <span class="keywordflow">else</span></div>
+<div class="line"><a name="l04180"></a><span class="lineno"> 4180</span>&#160;            {</div>
+<div class="line"><a name="l04181"></a><span class="lineno"> 4181</span>&#160;                ResourceBuffer rb = pack-&gt;<a class="code" href="classolc_1_1_resource_pack.html#accb89668e145dc59e0740925b1b91987">GetFileBuffer</a>(sImageFile);</div>
+<div class="line"><a name="l04182"></a><span class="lineno"> 4182</span>&#160;                std::istream is(&amp;rb);</div>
+<div class="line"><a name="l04183"></a><span class="lineno"> 4183</span>&#160;                png_set_read_fn(png, (png_voidp)&amp;is, pngReadStream);</div>
+<div class="line"><a name="l04184"></a><span class="lineno"> 4184</span>&#160;                loadPNG();</div>
+<div class="line"><a name="l04185"></a><span class="lineno"> 4185</span>&#160;            }</div>
+<div class="line"><a name="l04186"></a><span class="lineno"> 4186</span>&#160; </div>
+<div class="line"><a name="l04187"></a><span class="lineno"> 4187</span>&#160;            <span class="keywordflow">return</span> <a class="code" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87ba0178b5f8abe39121e6f14d3c6c093a82">olc::rcode::OK</a>;</div>
+<div class="line"><a name="l04188"></a><span class="lineno"> 4188</span>&#160; </div>
+<div class="line"><a name="l04189"></a><span class="lineno"> 4189</span>&#160;        fail_load:</div>
+<div class="line"><a name="l04190"></a><span class="lineno"> 4190</span>&#160;            spr-&gt;<a class="code" href="classolc_1_1_sprite.html#af055800e63204ae372ca0812e6926230">width</a> = 0;</div>
+<div class="line"><a name="l04191"></a><span class="lineno"> 4191</span>&#160;            spr-&gt;<a class="code" href="classolc_1_1_sprite.html#ab05010cb1a5ff6c36267d0050d568d96">height</a> = 0;</div>
+<div class="line"><a name="l04192"></a><span class="lineno"> 4192</span>&#160;            spr-&gt;<a class="code" href="classolc_1_1_sprite.html#adb41a2041dfe14de9605dabcd905db60">pColData</a>.clear();</div>
+<div class="line"><a name="l04193"></a><span class="lineno"> 4193</span>&#160;            <span class="keywordflow">return</span> <a class="code" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87baadc8ac6e9769db5bb290fbf5f8284dbf">olc::rcode::FAIL</a>;</div>
+<div class="line"><a name="l04194"></a><span class="lineno"> 4194</span>&#160;        }</div>
+<div class="line"><a name="l04195"></a><span class="lineno"> 4195</span>&#160; </div>
+<div class="line"><a name="l04196"></a><span class="lineno"> 4196</span>&#160;        <a class="code" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87b">olc::rcode</a> SaveImageResource(<a class="code" href="classolc_1_1_sprite.html">olc::Sprite</a>* spr, <span class="keyword">const</span> std::string&amp; sImageFile)<span class="keyword"> override</span></div>
+<div class="line"><a name="l04197"></a><span class="lineno"> 4197</span>&#160;<span class="keyword">        </span>{</div>
+<div class="line"><a name="l04198"></a><span class="lineno"> 4198</span>&#160;            <span class="keywordflow">return</span> <a class="code" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87ba0178b5f8abe39121e6f14d3c6c093a82">olc::rcode::OK</a>;</div>
+<div class="line"><a name="l04199"></a><span class="lineno"> 4199</span>&#160;        }</div>
+<div class="line"><a name="l04200"></a><span class="lineno"> 4200</span>&#160;    };</div>
+<div class="line"><a name="l04201"></a><span class="lineno"> 4201</span>&#160;}</div>
+<div class="line"><a name="l04202"></a><span class="lineno"> 4202</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l04203"></a><span class="lineno"> 4203</span>&#160;<span class="comment">// O------------------------------------------------------------------------------O</span></div>
+<div class="line"><a name="l04204"></a><span class="lineno"> 4204</span>&#160;<span class="comment">// | END IMAGE LOADER:                                                            |</span></div>
+<div class="line"><a name="l04205"></a><span class="lineno"> 4205</span>&#160;<span class="comment">// O------------------------------------------------------------------------------O</span></div>
+<div class="line"><a name="l04206"></a><span class="lineno"> 4206</span>&#160;<span class="preprocessor">#pragma endregion</span></div>
+<div class="line"><a name="l04207"></a><span class="lineno"> 4207</span>&#160; </div>
+<div class="line"><a name="l04208"></a><span class="lineno"> 4208</span>&#160;<span class="preprocessor">#pragma region image_stb</span></div>
+<div class="line"><a name="l04209"></a><span class="lineno"> 4209</span>&#160;<span class="comment">// O------------------------------------------------------------------------------O</span></div>
+<div class="line"><a name="l04210"></a><span class="lineno"> 4210</span>&#160;<span class="comment">// | START IMAGE LOADER: stb_image.h, all systems, very fast                      |</span></div>
+<div class="line"><a name="l04211"></a><span class="lineno"> 4211</span>&#160;<span class="comment">// O------------------------------------------------------------------------------O</span></div>
+<div class="line"><a name="l04212"></a><span class="lineno"> 4212</span>&#160;<span class="comment">// Thanks to Sean Barrett - https://github.com/nothings/stb/blob/master/stb_image.h</span></div>
+<div class="line"><a name="l04213"></a><span class="lineno"> 4213</span>&#160;<span class="comment">// MIT License - Copyright(c) 2017 Sean Barrett</span></div>
+<div class="line"><a name="l04214"></a><span class="lineno"> 4214</span>&#160; </div>
+<div class="line"><a name="l04215"></a><span class="lineno"> 4215</span>&#160;<span class="comment">// Note you need to download the above file into your project folder, and</span></div>
+<div class="line"><a name="l04216"></a><span class="lineno"> 4216</span>&#160;<span class="comment">// #define OLC_IMAGE_STB </span></div>
+<div class="line"><a name="l04217"></a><span class="lineno"> 4217</span>&#160;<span class="comment">// #define OLC_PGE_APPLICATION</span></div>
+<div class="line"><a name="l04218"></a><span class="lineno"> 4218</span>&#160;<span class="comment">// #include &quot;olcPixelGameEngine.h&quot;</span></div>
+<div class="line"><a name="l04219"></a><span class="lineno"> 4219</span>&#160; </div>
+<div class="line"><a name="l04220"></a><span class="lineno"> 4220</span>&#160;<span class="preprocessor">#if defined(OLC_IMAGE_STB)</span></div>
+<div class="line"><a name="l04221"></a><span class="lineno"> 4221</span>&#160;<span class="preprocessor">#define STB_IMAGE_IMPLEMENTATION</span></div>
+<div class="line"><a name="l04222"></a><span class="lineno"> 4222</span>&#160;<span class="preprocessor">#include &quot;stb_image.h&quot;</span></div>
+<div class="line"><a name="l04223"></a><span class="lineno"> 4223</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespaceolc.html">olc</a></div>
+<div class="line"><a name="l04224"></a><span class="lineno"> 4224</span>&#160;{</div>
+<div class="line"><a name="l04225"></a><span class="lineno"> 4225</span>&#160;    <span class="keyword">class </span>ImageLoader_STB : <span class="keyword">public</span> <a class="code" href="classolc_1_1_image_loader.html">olc::ImageLoader</a></div>
+<div class="line"><a name="l04226"></a><span class="lineno"> 4226</span>&#160;    {</div>
+<div class="line"><a name="l04227"></a><span class="lineno"> 4227</span>&#160;    <span class="keyword">public</span>:</div>
+<div class="line"><a name="l04228"></a><span class="lineno"> 4228</span>&#160;        ImageLoader_STB() : ImageLoader()</div>
+<div class="line"><a name="l04229"></a><span class="lineno"> 4229</span>&#160;        {}</div>
+<div class="line"><a name="l04230"></a><span class="lineno"> 4230</span>&#160; </div>
+<div class="line"><a name="l04231"></a><span class="lineno"> 4231</span>&#160;        <a class="code" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87b">olc::rcode</a> LoadImageResource(<a class="code" href="classolc_1_1_sprite.html">olc::Sprite</a>* spr, <span class="keyword">const</span> std::string&amp; sImageFile, <a class="code" href="classolc_1_1_resource_pack.html">olc::ResourcePack</a>* pack)<span class="keyword"> override</span></div>
+<div class="line"><a name="l04232"></a><span class="lineno"> 4232</span>&#160;<span class="keyword">        </span>{</div>
+<div class="line"><a name="l04233"></a><span class="lineno"> 4233</span>&#160;            <a class="code" href="olc_pixel_game_engine_8h.html#a86d500a34c624c2cae56bc25a31b12f3">UNUSED</a>(pack);</div>
+<div class="line"><a name="l04234"></a><span class="lineno"> 4234</span>&#160;            <span class="comment">// clear out existing sprite</span></div>
+<div class="line"><a name="l04235"></a><span class="lineno"> 4235</span>&#160;            spr-&gt;<a class="code" href="classolc_1_1_sprite.html#adb41a2041dfe14de9605dabcd905db60">pColData</a>.clear();</div>
+<div class="line"><a name="l04236"></a><span class="lineno"> 4236</span>&#160;            <span class="comment">// Open file</span></div>
+<div class="line"><a name="l04237"></a><span class="lineno"> 4237</span>&#160;            stbi_uc* bytes = <span class="keyword">nullptr</span>;</div>
+<div class="line"><a name="l04238"></a><span class="lineno"> 4238</span>&#160;            <span class="keywordtype">int</span> w = 0, h = 0, cmp = 0;</div>
+<div class="line"><a name="l04239"></a><span class="lineno"> 4239</span>&#160;            <span class="keywordflow">if</span> (pack != <span class="keyword">nullptr</span>)</div>
+<div class="line"><a name="l04240"></a><span class="lineno"> 4240</span>&#160;            {</div>
+<div class="line"><a name="l04241"></a><span class="lineno"> 4241</span>&#160;                ResourceBuffer rb = pack-&gt;<a class="code" href="classolc_1_1_resource_pack.html#accb89668e145dc59e0740925b1b91987">GetFileBuffer</a>(sImageFile);</div>
+<div class="line"><a name="l04242"></a><span class="lineno"> 4242</span>&#160;                bytes = stbi_load_from_memory((<span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>*)rb.vMemory.data(), rb.vMemory.size(), &amp;w, &amp;h, &amp;cmp, 4);</div>
+<div class="line"><a name="l04243"></a><span class="lineno"> 4243</span>&#160;            }</div>
+<div class="line"><a name="l04244"></a><span class="lineno"> 4244</span>&#160;            <span class="keywordflow">else</span></div>
+<div class="line"><a name="l04245"></a><span class="lineno"> 4245</span>&#160;            {</div>
+<div class="line"><a name="l04246"></a><span class="lineno"> 4246</span>&#160;                <span class="comment">// Check file exists</span></div>
+<div class="line"><a name="l04247"></a><span class="lineno"> 4247</span>&#160;                <span class="keywordflow">if</span> (!_gfs::exists(sImageFile)) <span class="keywordflow">return</span> <a class="code" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87babfe0b9ad99c942b01b1ee61404f559b5">olc::rcode::NO_FILE</a>;</div>
+<div class="line"><a name="l04248"></a><span class="lineno"> 4248</span>&#160;                bytes = stbi_load(sImageFile.c_str(), &amp;w, &amp;h, &amp;cmp, 4);</div>
+<div class="line"><a name="l04249"></a><span class="lineno"> 4249</span>&#160;            }</div>
+<div class="line"><a name="l04250"></a><span class="lineno"> 4250</span>&#160; </div>
+<div class="line"><a name="l04251"></a><span class="lineno"> 4251</span>&#160;            <span class="keywordflow">if</span> (!bytes) <span class="keywordflow">return</span> <a class="code" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87baadc8ac6e9769db5bb290fbf5f8284dbf">olc::rcode::FAIL</a>;</div>
+<div class="line"><a name="l04252"></a><span class="lineno"> 4252</span>&#160;            spr-&gt;<a class="code" href="classolc_1_1_sprite.html#af055800e63204ae372ca0812e6926230">width</a> = w; spr-&gt;<a class="code" href="classolc_1_1_sprite.html#ab05010cb1a5ff6c36267d0050d568d96">height</a> = h;</div>
+<div class="line"><a name="l04253"></a><span class="lineno"> 4253</span>&#160;            spr-&gt;<a class="code" href="classolc_1_1_sprite.html#adb41a2041dfe14de9605dabcd905db60">pColData</a>.resize(spr-&gt;<a class="code" href="classolc_1_1_sprite.html#af055800e63204ae372ca0812e6926230">width</a> * spr-&gt;<a class="code" href="classolc_1_1_sprite.html#ab05010cb1a5ff6c36267d0050d568d96">height</a>);</div>
+<div class="line"><a name="l04254"></a><span class="lineno"> 4254</span>&#160;            std::memcpy(spr-&gt;<a class="code" href="classolc_1_1_sprite.html#adb41a2041dfe14de9605dabcd905db60">pColData</a>.data(), bytes, spr-&gt;<a class="code" href="classolc_1_1_sprite.html#af055800e63204ae372ca0812e6926230">width</a> * spr-&gt;<a class="code" href="classolc_1_1_sprite.html#ab05010cb1a5ff6c36267d0050d568d96">height</a> * 4);</div>
+<div class="line"><a name="l04255"></a><span class="lineno"> 4255</span>&#160;            <span class="keyword">delete</span>[] bytes;</div>
+<div class="line"><a name="l04256"></a><span class="lineno"> 4256</span>&#160;            <span class="keywordflow">return</span> <a class="code" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87ba0178b5f8abe39121e6f14d3c6c093a82">olc::rcode::OK</a>;</div>
+<div class="line"><a name="l04257"></a><span class="lineno"> 4257</span>&#160;        }</div>
+<div class="line"><a name="l04258"></a><span class="lineno"> 4258</span>&#160; </div>
+<div class="line"><a name="l04259"></a><span class="lineno"> 4259</span>&#160;        <a class="code" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87b">olc::rcode</a> SaveImageResource(<a class="code" href="classolc_1_1_sprite.html">olc::Sprite</a>* spr, <span class="keyword">const</span> std::string&amp; sImageFile)<span class="keyword"> override</span></div>
+<div class="line"><a name="l04260"></a><span class="lineno"> 4260</span>&#160;<span class="keyword">        </span>{</div>
+<div class="line"><a name="l04261"></a><span class="lineno"> 4261</span>&#160;            <span class="keywordflow">return</span> <a class="code" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87ba0178b5f8abe39121e6f14d3c6c093a82">olc::rcode::OK</a>;</div>
+<div class="line"><a name="l04262"></a><span class="lineno"> 4262</span>&#160;        }</div>
+<div class="line"><a name="l04263"></a><span class="lineno"> 4263</span>&#160;    };</div>
+<div class="line"><a name="l04264"></a><span class="lineno"> 4264</span>&#160;}</div>
+<div class="line"><a name="l04265"></a><span class="lineno"> 4265</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l04266"></a><span class="lineno"> 4266</span>&#160;<span class="comment">// O------------------------------------------------------------------------------O</span></div>
+<div class="line"><a name="l04267"></a><span class="lineno"> 4267</span>&#160;<span class="comment">// | START IMAGE LOADER: stb_image.h                                              |</span></div>
+<div class="line"><a name="l04268"></a><span class="lineno"> 4268</span>&#160;<span class="comment">// O------------------------------------------------------------------------------O</span></div>
+<div class="line"><a name="l04269"></a><span class="lineno"> 4269</span>&#160;<span class="preprocessor">#pragma endregion</span></div>
+<div class="line"><a name="l04270"></a><span class="lineno"> 4270</span>&#160; </div>
+<div class="line"><a name="l04271"></a><span class="lineno"> 4271</span>&#160;<span class="comment">// O------------------------------------------------------------------------------O</span></div>
+<div class="line"><a name="l04272"></a><span class="lineno"> 4272</span>&#160;<span class="comment">// | olcPixelGameEngine Platforms                                                 |</span></div>
+<div class="line"><a name="l04273"></a><span class="lineno"> 4273</span>&#160;<span class="comment">// O------------------------------------------------------------------------------O</span></div>
+<div class="line"><a name="l04274"></a><span class="lineno"> 4274</span>&#160; </div>
+<div class="line"><a name="l04275"></a><span class="lineno"> 4275</span>&#160;<span class="preprocessor">#pragma region platform_windows</span></div>
+<div class="line"><a name="l04276"></a><span class="lineno"> 4276</span>&#160;<span class="comment">// O------------------------------------------------------------------------------O</span></div>
+<div class="line"><a name="l04277"></a><span class="lineno"> 4277</span>&#160;<span class="comment">// | START PLATFORM: MICROSOFT WINDOWS XP, VISTA, 7, 8, 10                        |</span></div>
+<div class="line"><a name="l04278"></a><span class="lineno"> 4278</span>&#160;<span class="comment">// O------------------------------------------------------------------------------O</span></div>
+<div class="line"><a name="l04279"></a><span class="lineno"> 4279</span>&#160;<span class="preprocessor">#if defined(OLC_PLATFORM_WINAPI)</span></div>
+<div class="line"><a name="l04280"></a><span class="lineno"> 4280</span>&#160; </div>
+<div class="line"><a name="l04281"></a><span class="lineno"> 4281</span>&#160;<span class="preprocessor">#if defined(_WIN32) &amp;&amp; !defined(__MINGW32__)</span></div>
+<div class="line"><a name="l04282"></a><span class="lineno"> 4282</span>&#160;<span class="preprocessor">    #pragma comment(lib, &quot;user32.lib&quot;)      // Visual Studio Only</span></div>
+<div class="line"><a name="l04283"></a><span class="lineno"> 4283</span>&#160;<span class="preprocessor">    #pragma comment(lib, &quot;gdi32.lib&quot;)       // For other Windows Compilers please add</span></div>
+<div class="line"><a name="l04284"></a><span class="lineno"> 4284</span>&#160;<span class="preprocessor">    #pragma comment(lib, &quot;opengl32.lib&quot;)    // these libs to your linker input</span></div>
+<div class="line"><a name="l04285"></a><span class="lineno"> 4285</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l04286"></a><span class="lineno"> 4286</span>&#160; </div>
+<div class="line"><a name="l04287"></a><span class="lineno"> 4287</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespaceolc.html">olc</a></div>
+<div class="line"><a name="l04288"></a><span class="lineno"> 4288</span>&#160;{</div>
+<div class="line"><a name="l04289"></a><span class="lineno"> 4289</span>&#160;    <span class="keyword">class </span>Platform_Windows : <span class="keyword">public</span> <a class="code" href="classolc_1_1_platform.html">olc::Platform</a></div>
+<div class="line"><a name="l04290"></a><span class="lineno"> 4290</span>&#160;    {</div>
+<div class="line"><a name="l04291"></a><span class="lineno"> 4291</span>&#160;    <span class="keyword">private</span>:</div>
+<div class="line"><a name="l04292"></a><span class="lineno"> 4292</span>&#160;        HWND olc_hWnd = <span class="keyword">nullptr</span>;</div>
+<div class="line"><a name="l04293"></a><span class="lineno"> 4293</span>&#160;        std::wstring wsAppName;</div>
+<div class="line"><a name="l04294"></a><span class="lineno"> 4294</span>&#160; </div>
+<div class="line"><a name="l04295"></a><span class="lineno"> 4295</span>&#160;        std::wstring ConvertS2W(std::string s)</div>
+<div class="line"><a name="l04296"></a><span class="lineno"> 4296</span>&#160;        {</div>
+<div class="line"><a name="l04297"></a><span class="lineno"> 4297</span>&#160;<span class="preprocessor">#ifdef __MINGW32__</span></div>
+<div class="line"><a name="l04298"></a><span class="lineno"> 4298</span>&#160;            <span class="keywordtype">wchar_t</span>* buffer = <span class="keyword">new</span> <span class="keywordtype">wchar_t</span>[s.length() + 1];</div>
+<div class="line"><a name="l04299"></a><span class="lineno"> 4299</span>&#160;            mbstowcs(buffer, s.c_str(), s.length());</div>
+<div class="line"><a name="l04300"></a><span class="lineno"> 4300</span>&#160;            buffer[s.length()] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a4d809048542b770e810d48919c8f8500">L</a><span class="charliteral">&#39;\0&#39;</span>;</div>
+<div class="line"><a name="l04301"></a><span class="lineno"> 4301</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l04302"></a><span class="lineno"> 4302</span>&#160;            <span class="keywordtype">int</span> count = MultiByteToWideChar(CP_UTF8, 0, s.c_str(), -1, NULL, 0);</div>
+<div class="line"><a name="l04303"></a><span class="lineno"> 4303</span>&#160;            <span class="keywordtype">wchar_t</span>* buffer = <span class="keyword">new</span> <span class="keywordtype">wchar_t</span>[count];</div>
+<div class="line"><a name="l04304"></a><span class="lineno"> 4304</span>&#160;            MultiByteToWideChar(CP_UTF8, 0, s.c_str(), -1, buffer, count);</div>
+<div class="line"><a name="l04305"></a><span class="lineno"> 4305</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l04306"></a><span class="lineno"> 4306</span>&#160;            std::wstring w(buffer);</div>
+<div class="line"><a name="l04307"></a><span class="lineno"> 4307</span>&#160;            <span class="keyword">delete</span>[] buffer;</div>
+<div class="line"><a name="l04308"></a><span class="lineno"> 4308</span>&#160;            <span class="keywordflow">return</span> w;</div>
+<div class="line"><a name="l04309"></a><span class="lineno"> 4309</span>&#160;        }</div>
+<div class="line"><a name="l04310"></a><span class="lineno"> 4310</span>&#160; </div>
+<div class="line"><a name="l04311"></a><span class="lineno"> 4311</span>&#160;    <span class="keyword">public</span>:</div>
+<div class="line"><a name="l04312"></a><span class="lineno"> 4312</span>&#160;        <span class="keyword">virtual</span> <a class="code" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87b">olc::rcode</a> ApplicationStartUp()<span class="keyword"> override </span>{ <span class="keywordflow">return</span> <a class="code" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87ba0178b5f8abe39121e6f14d3c6c093a82">olc::rcode::OK</a>; }</div>
+<div class="line"><a name="l04313"></a><span class="lineno"> 4313</span>&#160;        <span class="keyword">virtual</span> <a class="code" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87b">olc::rcode</a> ApplicationCleanUp()<span class="keyword"> override </span>{ <span class="keywordflow">return</span> <a class="code" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87ba0178b5f8abe39121e6f14d3c6c093a82">olc::rcode::OK</a>; }</div>
+<div class="line"><a name="l04314"></a><span class="lineno"> 4314</span>&#160;        <span class="keyword">virtual</span> <a class="code" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87b">olc::rcode</a> ThreadStartUp()<span class="keyword"> override </span>{ <span class="keywordflow">return</span> <a class="code" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87ba0178b5f8abe39121e6f14d3c6c093a82">olc::rcode::OK</a>; }</div>
+<div class="line"><a name="l04315"></a><span class="lineno"> 4315</span>&#160; </div>
+<div class="line"><a name="l04316"></a><span class="lineno"> 4316</span>&#160;        <span class="keyword">virtual</span> <a class="code" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87b">olc::rcode</a> ThreadCleanUp()<span class="keyword"> override</span></div>
+<div class="line"><a name="l04317"></a><span class="lineno"> 4317</span>&#160;<span class="keyword">        </span>{</div>
+<div class="line"><a name="l04318"></a><span class="lineno"> 4318</span>&#160;            renderer-&gt;DestroyDevice();</div>
+<div class="line"><a name="l04319"></a><span class="lineno"> 4319</span>&#160;            PostMessage(olc_hWnd, WM_DESTROY, 0, 0);</div>
+<div class="line"><a name="l04320"></a><span class="lineno"> 4320</span>&#160;            <span class="keywordflow">return</span> <a class="code" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87ba0178b5f8abe39121e6f14d3c6c093a82">olc::OK</a>;</div>
+<div class="line"><a name="l04321"></a><span class="lineno"> 4321</span>&#160;        }</div>
+<div class="line"><a name="l04322"></a><span class="lineno"> 4322</span>&#160; </div>
+<div class="line"><a name="l04323"></a><span class="lineno"> 4323</span>&#160;        <span class="keyword">virtual</span> <a class="code" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87b">olc::rcode</a> CreateGraphics(<span class="keywordtype">bool</span> bFullScreen, <span class="keywordtype">bool</span> bEnableVSYNC, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vi2d</a>&amp; vViewPos, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vi2d</a>&amp; vViewSize)<span class="keyword"> override</span></div>
+<div class="line"><a name="l04324"></a><span class="lineno"> 4324</span>&#160;<span class="keyword">        </span>{</div>
+<div class="line"><a name="l04325"></a><span class="lineno"> 4325</span>&#160;            <span class="keywordflow">if</span> (renderer-&gt;CreateDevice({ olc_hWnd }, bFullScreen, bEnableVSYNC) == <a class="code" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87ba0178b5f8abe39121e6f14d3c6c093a82">olc::rcode::OK</a>)</div>
+<div class="line"><a name="l04326"></a><span class="lineno"> 4326</span>&#160;            {</div>
+<div class="line"><a name="l04327"></a><span class="lineno"> 4327</span>&#160;                renderer-&gt;UpdateViewport(vViewPos, vViewSize);</div>
+<div class="line"><a name="l04328"></a><span class="lineno"> 4328</span>&#160;                <span class="keywordflow">return</span> <a class="code" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87ba0178b5f8abe39121e6f14d3c6c093a82">olc::rcode::OK</a>;</div>
+<div class="line"><a name="l04329"></a><span class="lineno"> 4329</span>&#160;            }</div>
+<div class="line"><a name="l04330"></a><span class="lineno"> 4330</span>&#160;            <span class="keywordflow">else</span></div>
+<div class="line"><a name="l04331"></a><span class="lineno"> 4331</span>&#160;                <span class="keywordflow">return</span> <a class="code" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87baadc8ac6e9769db5bb290fbf5f8284dbf">olc::rcode::FAIL</a>;</div>
+<div class="line"><a name="l04332"></a><span class="lineno"> 4332</span>&#160;        }</div>
+<div class="line"><a name="l04333"></a><span class="lineno"> 4333</span>&#160; </div>
+<div class="line"><a name="l04334"></a><span class="lineno"> 4334</span>&#160;        <span class="keyword">virtual</span> <a class="code" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87b">olc::rcode</a> CreateWindowPane(<span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vi2d</a>&amp; vWindowPos, <a class="code" href="structolc_1_1v2d__generic.html">olc::vi2d</a>&amp; vWindowSize, <span class="keywordtype">bool</span> bFullScreen)<span class="keyword"> override</span></div>
+<div class="line"><a name="l04335"></a><span class="lineno"> 4335</span>&#160;<span class="keyword">        </span>{</div>
+<div class="line"><a name="l04336"></a><span class="lineno"> 4336</span>&#160;            WNDCLASS wc;</div>
+<div class="line"><a name="l04337"></a><span class="lineno"> 4337</span>&#160;            wc.hIcon = LoadIcon(NULL, IDI_APPLICATION);</div>
+<div class="line"><a name="l04338"></a><span class="lineno"> 4338</span>&#160;            wc.hCursor = LoadCursor(NULL, IDC_ARROW);</div>
+<div class="line"><a name="l04339"></a><span class="lineno"> 4339</span>&#160;            wc.style = CS_HREDRAW | CS_VREDRAW | CS_OWNDC;</div>
+<div class="line"><a name="l04340"></a><span class="lineno"> 4340</span>&#160;            wc.hInstance = GetModuleHandle(<span class="keyword">nullptr</span>);</div>
+<div class="line"><a name="l04341"></a><span class="lineno"> 4341</span>&#160;            wc.lpfnWndProc = olc_WindowEvent;</div>
+<div class="line"><a name="l04342"></a><span class="lineno"> 4342</span>&#160;            wc.cbClsExtra = 0;</div>
+<div class="line"><a name="l04343"></a><span class="lineno"> 4343</span>&#160;            wc.cbWndExtra = 0;</div>
+<div class="line"><a name="l04344"></a><span class="lineno"> 4344</span>&#160;            wc.lpszMenuName = <span class="keyword">nullptr</span>;</div>
+<div class="line"><a name="l04345"></a><span class="lineno"> 4345</span>&#160;            wc.hbrBackground = <span class="keyword">nullptr</span>;</div>
+<div class="line"><a name="l04346"></a><span class="lineno"> 4346</span>&#160;            wc.lpszClassName = <a class="code" href="olc_pixel_game_engine_8h.html#ac02283d1990a8623a332f7f7f2230a1f">olcT</a>(<span class="stringliteral">&quot;OLC_PIXEL_GAME_ENGINE&quot;</span>);</div>
+<div class="line"><a name="l04347"></a><span class="lineno"> 4347</span>&#160;            RegisterClass(&amp;wc);</div>
+<div class="line"><a name="l04348"></a><span class="lineno"> 4348</span>&#160; </div>
+<div class="line"><a name="l04349"></a><span class="lineno"> 4349</span>&#160;            <span class="comment">// Define window furniture</span></div>
+<div class="line"><a name="l04350"></a><span class="lineno"> 4350</span>&#160;            DWORD dwExStyle = WS_EX_APPWINDOW | WS_EX_WINDOWEDGE;</div>
+<div class="line"><a name="l04351"></a><span class="lineno"> 4351</span>&#160;            DWORD dwStyle = WS_CAPTION | WS_SYSMENU | WS_VISIBLE | WS_THICKFRAME;</div>
+<div class="line"><a name="l04352"></a><span class="lineno"> 4352</span>&#160; </div>
+<div class="line"><a name="l04353"></a><span class="lineno"> 4353</span>&#160;            <a class="code" href="structolc_1_1v2d__generic.html">olc::vi2d</a> vTopLeft = vWindowPos;</div>
+<div class="line"><a name="l04354"></a><span class="lineno"> 4354</span>&#160; </div>
+<div class="line"><a name="l04355"></a><span class="lineno"> 4355</span>&#160;            <span class="comment">// Handle Fullscreen</span></div>
+<div class="line"><a name="l04356"></a><span class="lineno"> 4356</span>&#160;            <span class="keywordflow">if</span> (bFullScreen)</div>
+<div class="line"><a name="l04357"></a><span class="lineno"> 4357</span>&#160;            {</div>
+<div class="line"><a name="l04358"></a><span class="lineno"> 4358</span>&#160;                dwExStyle = 0;</div>
+<div class="line"><a name="l04359"></a><span class="lineno"> 4359</span>&#160;                dwStyle = WS_VISIBLE | WS_POPUP;</div>
+<div class="line"><a name="l04360"></a><span class="lineno"> 4360</span>&#160;                HMONITOR hmon = MonitorFromWindow(olc_hWnd, MONITOR_DEFAULTTONEAREST);</div>
+<div class="line"><a name="l04361"></a><span class="lineno"> 4361</span>&#160;                MONITORINFO mi = { <span class="keyword">sizeof</span>(mi) };</div>
+<div class="line"><a name="l04362"></a><span class="lineno"> 4362</span>&#160;                <span class="keywordflow">if</span> (!GetMonitorInfo(hmon, &amp;mi)) <span class="keywordflow">return</span> <a class="code" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87baadc8ac6e9769db5bb290fbf5f8284dbf">olc::rcode::FAIL</a>;</div>
+<div class="line"><a name="l04363"></a><span class="lineno"> 4363</span>&#160;                vWindowSize = { mi.rcMonitor.right, mi.rcMonitor.bottom };</div>
+<div class="line"><a name="l04364"></a><span class="lineno"> 4364</span>&#160;                vTopLeft.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a> = 0;</div>
+<div class="line"><a name="l04365"></a><span class="lineno"> 4365</span>&#160;                vTopLeft.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a> = 0;</div>
+<div class="line"><a name="l04366"></a><span class="lineno"> 4366</span>&#160;            }</div>
+<div class="line"><a name="l04367"></a><span class="lineno"> 4367</span>&#160; </div>
+<div class="line"><a name="l04368"></a><span class="lineno"> 4368</span>&#160;            <span class="comment">// Keep client size as requested</span></div>
+<div class="line"><a name="l04369"></a><span class="lineno"> 4369</span>&#160;            RECT rWndRect = { 0, 0, vWindowSize.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a>, vWindowSize.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a> };</div>
+<div class="line"><a name="l04370"></a><span class="lineno"> 4370</span>&#160;            AdjustWindowRectEx(&amp;rWndRect, dwStyle, FALSE, dwExStyle);</div>
+<div class="line"><a name="l04371"></a><span class="lineno"> 4371</span>&#160;            <span class="keywordtype">int</span> width = rWndRect.right - rWndRect.left;</div>
+<div class="line"><a name="l04372"></a><span class="lineno"> 4372</span>&#160;            <span class="keywordtype">int</span> height = rWndRect.bottom - rWndRect.top;</div>
+<div class="line"><a name="l04373"></a><span class="lineno"> 4373</span>&#160; </div>
+<div class="line"><a name="l04374"></a><span class="lineno"> 4374</span>&#160;            olc_hWnd = CreateWindowEx(dwExStyle, <a class="code" href="olc_pixel_game_engine_8h.html#ac02283d1990a8623a332f7f7f2230a1f">olcT</a>(<span class="stringliteral">&quot;OLC_PIXEL_GAME_ENGINE&quot;</span>), <a class="code" href="olc_pixel_game_engine_8h.html#ac02283d1990a8623a332f7f7f2230a1f">olcT</a>(<span class="stringliteral">&quot;&quot;</span>), dwStyle,</div>
+<div class="line"><a name="l04375"></a><span class="lineno"> 4375</span>&#160;                vTopLeft.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a>, vTopLeft.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a>, width, height, NULL, NULL, GetModuleHandle(<span class="keyword">nullptr</span>), <span class="keyword">this</span>);</div>
+<div class="line"><a name="l04376"></a><span class="lineno"> 4376</span>&#160; </div>
+<div class="line"><a name="l04377"></a><span class="lineno"> 4377</span>&#160;            <span class="comment">// Create Keyboard Mapping</span></div>
+<div class="line"><a name="l04378"></a><span class="lineno"> 4378</span>&#160;            mapKeys[0x00] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a569010ded143bbdfd1b2dc8e82327b45">Key::NONE</a>;</div>
+<div class="line"><a name="l04379"></a><span class="lineno"> 4379</span>&#160;            mapKeys[0x41] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a3e1af6612f2964145f438bb63073098d">Key::A</a>; mapKeys[0x42] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a8baf1c6fa76f36bae92c12df88f4c84d">Key::B</a>; mapKeys[0x43] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7aaa5fe91e0948a39a142504c1f9067549">Key::C</a>; mapKeys[0x44] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a7323455add036f066f8b23546f0c37bb">Key::D</a>; mapKeys[0x45] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ad29058aa6514f4f9dcdefdba93adc8ec">Key::E</a>;</div>
+<div class="line"><a name="l04380"></a><span class="lineno"> 4380</span>&#160;            mapKeys[0x46] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a614698cb99af6a9effa5d7ce88b2c674">Key::F</a>; mapKeys[0x47] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a1a7a9ef9ded3ee4bb7b7e4fbc69ae4b8">Key::G</a>; mapKeys[0x48] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a224c0773e09bdb7fb13683fbb4eeee1a">Key::H</a>; mapKeys[0x49] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ac242ddce5db0d462674ead1db3956a19">Key::I</a>; mapKeys[0x4A] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a476769e330b87f2fb75aaa684c2f6373">Key::J</a>;</div>
+<div class="line"><a name="l04381"></a><span class="lineno"> 4381</span>&#160;            mapKeys[0x4B] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a136309f07b14d70a8561a69ca563bab7">Key::K</a>; mapKeys[0x4C] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a4d809048542b770e810d48919c8f8500">Key::L</a>; mapKeys[0x4D] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7afda4a6ac36e1870cd31522ac4e40a113">Key::M</a>; mapKeys[0x4E] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ab9b5b3e2b7e4f47de4a8d84e03cd5911">Key::N</a>; mapKeys[0x4F] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a7f95c3a8701b46a2cca143078d7e3aea">Key::O</a>;</div>
+<div class="line"><a name="l04382"></a><span class="lineno"> 4382</span>&#160;            mapKeys[0x50] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a2af805290f6ef4b2de028b868debe170">Key::P</a>; mapKeys[0x51] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a6d49ec75b05a97e8714ac8c244ad29a8">Key::Q</a>; mapKeys[0x52] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a7417555746b2b1026b8ba65912817111">Key::R</a>; mapKeys[0x53] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a050dfda2928d980787eeebcaaa4e6fa7">Key::S</a>; mapKeys[0x54] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0">Key::T</a>;</div>
+<div class="line"><a name="l04383"></a><span class="lineno"> 4383</span>&#160;            mapKeys[0x55] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a62c2493e1585db2af15cb70ac979fb09">Key::U</a>; mapKeys[0x56] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a170eaa7913d25c0ff02712bd93d7bf81">Key::V</a>; mapKeys[0x57] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ac1ae605c94e2d813c718148311c101d1">Key::W</a>; mapKeys[0x58] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a259dcb71eab0ee6c477f792543f43ec5">Key::X</a>; mapKeys[0x59] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a6207f4e5a37e546fa3881817046587b9">Key::Y</a>;</div>
+<div class="line"><a name="l04384"></a><span class="lineno"> 4384</span>&#160;            mapKeys[0x5A] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a7c408b7a6694f74ac270013753b13aaa">Key::Z</a>;</div>
+<div class="line"><a name="l04385"></a><span class="lineno"> 4385</span>&#160; </div>
+<div class="line"><a name="l04386"></a><span class="lineno"> 4386</span>&#160;            mapKeys[VK_F1] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a17a119da4c7fd21cd061972ac8f8029a">Key::F1</a>; mapKeys[VK_F2] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a207c1404adcacfadf941ffc681485026">Key::F2</a>; mapKeys[VK_F3] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a573a484680114e221c1a3ecd8307d61a">Key::F3</a>; mapKeys[VK_F4] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a3c808be2b8b226138090bb3884bdc52b">Key::F4</a>;</div>
+<div class="line"><a name="l04387"></a><span class="lineno"> 4387</span>&#160;            mapKeys[VK_F5] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ab9dd7de33e89c10afa7947bc5ff6fdea">Key::F5</a>; mapKeys[VK_F6] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a12e4309f479cd3e34476ef3be7986847">Key::F6</a>; mapKeys[VK_F7] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ac955ad4fdd41f4d3600b29da016fdf36">Key::F7</a>; mapKeys[VK_F8] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ab9ff66b449c18ecdb5b83a2e055e393b">Key::F8</a>;</div>
+<div class="line"><a name="l04388"></a><span class="lineno"> 4388</span>&#160;            mapKeys[VK_F9] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a2f2949bdd6d44b3c918531ebc30d8186">Key::F9</a>; mapKeys[VK_F10] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7abe90f6618beb39117690b93a5c9d8ccb">Key::F10</a>; mapKeys[VK_F11] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7aba366840d455651d4cedc7f7ee4c770b">Key::F11</a>; mapKeys[VK_F12] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a9bc869632cc0095b7d8e456efd571969">Key::F12</a>;</div>
+<div class="line"><a name="l04389"></a><span class="lineno"> 4389</span>&#160; </div>
+<div class="line"><a name="l04390"></a><span class="lineno"> 4390</span>&#160;            mapKeys[VK_DOWN] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a506f2ec576fcd3a8fabd37461bba83f8">Key::DOWN</a>; mapKeys[VK_LEFT] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a4da01be8126ba4113717cc6385ad22d2">Key::LEFT</a>; mapKeys[VK_RIGHT] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a58e7b18972e446a03ce5ce915bc2d34d">Key::RIGHT</a>; mapKeys[VK_UP] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a2b35f0b03e615b828187a990935344c4">Key::UP</a>;</div>
+<div class="line"><a name="l04391"></a><span class="lineno"> 4391</span>&#160;            mapKeys[VK_RETURN] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a31321cae06dfe0989acbbe94c5272b33">Key::ENTER</a>; <span class="comment">//mapKeys[VK_RETURN] = Key::RETURN;</span></div>
+<div class="line"><a name="l04392"></a><span class="lineno"> 4392</span>&#160; </div>
+<div class="line"><a name="l04393"></a><span class="lineno"> 4393</span>&#160;            mapKeys[VK_BACK] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a390af039d8a8c4ab71787f001f810521">Key::BACK</a>; mapKeys[VK_ESCAPE] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ac58fbe549b8c1a668c42a17d9e572b0f">Key::ESCAPE</a>; mapKeys[VK_RETURN] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a31321cae06dfe0989acbbe94c5272b33">Key::ENTER</a>; mapKeys[VK_PAUSE] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a0bc227b9b4a43118d7500e8195806d74">Key::PAUSE</a>;</div>
+<div class="line"><a name="l04394"></a><span class="lineno"> 4394</span>&#160;            mapKeys[VK_SCROLL] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a44cf52f457ad06d45cd947c72c291ccc">Key::SCROLL</a>; mapKeys[VK_TAB] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7aef93738bc8d89f07932dd1a603b021bd">Key::TAB</a>; mapKeys[VK_DELETE] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a5a979509d792ab38404b7a2aca12c981">Key::DEL</a>; mapKeys[VK_HOME] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a29419f86c551b623c828f9530f301389">Key::HOME</a>;</div>
+<div class="line"><a name="l04395"></a><span class="lineno"> 4395</span>&#160;            mapKeys[VK_END] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a53394a407c13bf8192b2946607d27a0f">Key::END</a>; mapKeys[VK_PRIOR] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a0bab26868b97eab537e7cad879d4b9a3">Key::PGUP</a>; mapKeys[VK_NEXT] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7aae334e3943922c2b16842afc5306a1e9">Key::PGDN</a>; mapKeys[VK_INSERT] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a691b8388214af88a7794c43d31fbe16a">Key::INS</a>;</div>
+<div class="line"><a name="l04396"></a><span class="lineno"> 4396</span>&#160;            mapKeys[VK_SHIFT] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a4cd994e0e2285e9b52e129f74c84aa0b">Key::SHIFT</a>; mapKeys[VK_CONTROL] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ae7e6e69075c36b0e44309aae888b86dc">Key::CTRL</a>;</div>
+<div class="line"><a name="l04397"></a><span class="lineno"> 4397</span>&#160;            mapKeys[VK_SPACE] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a925d9a708542cd050a0b4f87bd7ba297">Key::SPACE</a>;</div>
+<div class="line"><a name="l04398"></a><span class="lineno"> 4398</span>&#160; </div>
+<div class="line"><a name="l04399"></a><span class="lineno"> 4399</span>&#160;            mapKeys[0x30] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a2dd03c94eccd6d1259d4b2b51b7f85a7">Key::K0</a>; mapKeys[0x31] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a353892e1e3473d0a6d3427dd86080506">Key::K1</a>; mapKeys[0x32] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ab3b331dc3158175e2c567f7ebdf9fa75">Key::K2</a>; mapKeys[0x33] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7aba2ad21d300fb113ff4e82665800cf75">Key::K3</a>; mapKeys[0x34] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7aadd3a981032ec5fc07440dd0dbd1a3b3">Key::K4</a>;</div>
+<div class="line"><a name="l04400"></a><span class="lineno"> 4400</span>&#160;            mapKeys[0x35] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a353906757178b0d48008b62cdca75332">Key::K5</a>; mapKeys[0x36] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a81afecef4b483614604bfc5341d8a2d5">Key::K6</a>; mapKeys[0x37] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a89291a8afb7ac7b481090dc97f643263">Key::K7</a>; mapKeys[0x38] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a636f4e49257a6476ad0aab590318672f">Key::K8</a>; mapKeys[0x39] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a949dddf48734610228c20566a33912bc">Key::K9</a>;</div>
+<div class="line"><a name="l04401"></a><span class="lineno"> 4401</span>&#160; </div>
+<div class="line"><a name="l04402"></a><span class="lineno"> 4402</span>&#160;            mapKeys[VK_NUMPAD0] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a16054c3b1419b9679d95ac70ef262666">Key::NP0</a>; mapKeys[VK_NUMPAD1] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a96c49dba90b7ecdfcf88e18c2842a964">Key::NP1</a>; mapKeys[VK_NUMPAD2] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a7ca6517890a3566dbf758618f9c7690f">Key::NP2</a>; mapKeys[VK_NUMPAD3] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7aab84341adb43a72b48030189f9919360">Key::NP3</a>; mapKeys[VK_NUMPAD4] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a443551e4895cf1d2be984eba0bd7098e">Key::NP4</a>;</div>
+<div class="line"><a name="l04403"></a><span class="lineno"> 4403</span>&#160;            mapKeys[VK_NUMPAD5] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a0ba7e1a6dbc9d1291a40172a09bb49a4">Key::NP5</a>; mapKeys[VK_NUMPAD6] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ad6aae0ca10843b8046ee0186af4e42f9">Key::NP6</a>; mapKeys[VK_NUMPAD7] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7afee25adbffa6e8fc092d52193195182f">Key::NP7</a>; mapKeys[VK_NUMPAD8] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a468bb1704a74fc6e42d28e7bee8ecb51">Key::NP8</a>; mapKeys[VK_NUMPAD9] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a53987c7c18a4a4479c4e1ff7f65c414e">Key::NP9</a>;</div>
+<div class="line"><a name="l04404"></a><span class="lineno"> 4404</span>&#160;            mapKeys[VK_MULTIPLY] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ae2ce826d1d0de6429f9f28a19d11edfb">Key::NP_MUL</a>; mapKeys[VK_ADD] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7af15830fd3562b144e15a9d8abeb6c118">Key::NP_ADD</a>; mapKeys[VK_DIVIDE] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7aee5afd77eb82eb3111195ee300ff3714">Key::NP_DIV</a>; mapKeys[VK_SUBTRACT] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7aade223a1643f8d607eb44fff1bbaae8e">Key::NP_SUB</a>; mapKeys[VK_DECIMAL] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a2c21f93f355bf0a6baa7e205acd86b50">Key::NP_DECIMAL</a>;</div>
+<div class="line"><a name="l04405"></a><span class="lineno"> 4405</span>&#160; </div>
+<div class="line"><a name="l04406"></a><span class="lineno"> 4406</span>&#160;            <span class="comment">// Thanks scripticuk</span></div>
+<div class="line"><a name="l04407"></a><span class="lineno"> 4407</span>&#160;            mapKeys[VK_OEM_1] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a3a044efaf7d74df21e84a29063006eae">Key::OEM_1</a>;         <span class="comment">// On US and UK keyboards this is the &#39;;:&#39; key</span></div>
+<div class="line"><a name="l04408"></a><span class="lineno"> 4408</span>&#160;            mapKeys[VK_OEM_2] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ad29833dd46d756ecf0e9d477d0845450">Key::OEM_2</a>;         <span class="comment">// On US and UK keyboards this is the &#39;/?&#39; key</span></div>
+<div class="line"><a name="l04409"></a><span class="lineno"> 4409</span>&#160;            mapKeys[VK_OEM_3] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7abb25924adf005b39efaef185f332a3ad">Key::OEM_3</a>;         <span class="comment">// On US keyboard this is the &#39;~&#39; key</span></div>
+<div class="line"><a name="l04410"></a><span class="lineno"> 4410</span>&#160;            mapKeys[VK_OEM_4] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7aa09e2508e2f2fd372d3e37ebdfce6814">Key::OEM_4</a>;         <span class="comment">// On US and UK keyboards this is the &#39;[{&#39; key</span></div>
+<div class="line"><a name="l04411"></a><span class="lineno"> 4411</span>&#160;            mapKeys[VK_OEM_5] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ad7e69e28cedaf91718aa4801d5a3bdb7">Key::OEM_5</a>;         <span class="comment">// On US keyboard this is &#39;\|&#39; key.</span></div>
+<div class="line"><a name="l04412"></a><span class="lineno"> 4412</span>&#160;            mapKeys[VK_OEM_6] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7af2cec59ecc924be0b636e5b767abf29f">Key::OEM_6</a>;         <span class="comment">// On US and UK keyboards this is the &#39;]}&#39; key</span></div>
+<div class="line"><a name="l04413"></a><span class="lineno"> 4413</span>&#160;            mapKeys[VK_OEM_7] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a3dada7cdf09fb367c10c650e9bce7bfa">Key::OEM_7</a>;         <span class="comment">// On US keyboard this is the single/double quote key. On UK, this is the single quote/@ symbol key</span></div>
+<div class="line"><a name="l04414"></a><span class="lineno"> 4414</span>&#160;            mapKeys[VK_OEM_8] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ab719317cfd8ac665e8cc2f420f74b46a">Key::OEM_8</a>;         <span class="comment">// miscellaneous characters. Varies by keyboard</span></div>
+<div class="line"><a name="l04415"></a><span class="lineno"> 4415</span>&#160;            mapKeys[VK_OEM_PLUS] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7aa82c0ef0b75db6208407e90f6f77f002">Key::EQUALS</a>;     <span class="comment">// the &#39;+&#39; key on any keyboard</span></div>
+<div class="line"><a name="l04416"></a><span class="lineno"> 4416</span>&#160;            mapKeys[VK_OEM_COMMA] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ae2fab0c220f54cd28729c9340951ecb4">Key::COMMA</a>;     <span class="comment">// the comma key on any keyboard</span></div>
+<div class="line"><a name="l04417"></a><span class="lineno"> 4417</span>&#160;            mapKeys[VK_OEM_MINUS] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a4b3a1d83a513de0e2c3c8ba2a8a5fd2d">Key::MINUS</a>;     <span class="comment">// the minus key on any keyboard</span></div>
+<div class="line"><a name="l04418"></a><span class="lineno"> 4418</span>&#160;            mapKeys[VK_OEM_PERIOD] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a1adffcecf8c735b404ac6eedf220ae5a">Key::PERIOD</a>;   <span class="comment">// the period key on any keyboard</span></div>
+<div class="line"><a name="l04419"></a><span class="lineno"> 4419</span>&#160;            mapKeys[VK_CAPITAL] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a523c88e17275650861203e32067dde01">Key::CAPS_LOCK</a>;</div>
+<div class="line"><a name="l04420"></a><span class="lineno"> 4420</span>&#160;            <span class="keywordflow">return</span> <a class="code" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87ba0178b5f8abe39121e6f14d3c6c093a82">olc::OK</a>;</div>
+<div class="line"><a name="l04421"></a><span class="lineno"> 4421</span>&#160;        }</div>
+<div class="line"><a name="l04422"></a><span class="lineno"> 4422</span>&#160; </div>
+<div class="line"><a name="l04423"></a><span class="lineno"> 4423</span>&#160;        <span class="keyword">virtual</span> <a class="code" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87b">olc::rcode</a> SetWindowTitle(<span class="keyword">const</span> std::string&amp; s)<span class="keyword"> override</span></div>
+<div class="line"><a name="l04424"></a><span class="lineno"> 4424</span>&#160;<span class="keyword">        </span>{</div>
+<div class="line"><a name="l04425"></a><span class="lineno"> 4425</span>&#160;<span class="preprocessor">#ifdef UNICODE</span></div>
+<div class="line"><a name="l04426"></a><span class="lineno"> 4426</span>&#160;            SetWindowText(olc_hWnd, ConvertS2W(s).c_str());</div>
+<div class="line"><a name="l04427"></a><span class="lineno"> 4427</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l04428"></a><span class="lineno"> 4428</span>&#160;            SetWindowText(olc_hWnd, s.c_str());</div>
+<div class="line"><a name="l04429"></a><span class="lineno"> 4429</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l04430"></a><span class="lineno"> 4430</span>&#160;            <span class="keywordflow">return</span> <a class="code" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87ba0178b5f8abe39121e6f14d3c6c093a82">olc::OK</a>;</div>
+<div class="line"><a name="l04431"></a><span class="lineno"> 4431</span>&#160;        }</div>
+<div class="line"><a name="l04432"></a><span class="lineno"> 4432</span>&#160; </div>
+<div class="line"><a name="l04433"></a><span class="lineno"> 4433</span>&#160;        <span class="keyword">virtual</span> <a class="code" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87b">olc::rcode</a> StartSystemEventLoop()<span class="keyword"> override</span></div>
+<div class="line"><a name="l04434"></a><span class="lineno"> 4434</span>&#160;<span class="keyword">        </span>{</div>
+<div class="line"><a name="l04435"></a><span class="lineno"> 4435</span>&#160;            MSG msg;</div>
+<div class="line"><a name="l04436"></a><span class="lineno"> 4436</span>&#160;            <span class="keywordflow">while</span> (GetMessage(&amp;msg, NULL, 0, 0) &gt; 0)</div>
+<div class="line"><a name="l04437"></a><span class="lineno"> 4437</span>&#160;            {</div>
+<div class="line"><a name="l04438"></a><span class="lineno"> 4438</span>&#160;                TranslateMessage(&amp;msg);</div>
+<div class="line"><a name="l04439"></a><span class="lineno"> 4439</span>&#160;                DispatchMessage(&amp;msg);</div>
+<div class="line"><a name="l04440"></a><span class="lineno"> 4440</span>&#160;            }</div>
+<div class="line"><a name="l04441"></a><span class="lineno"> 4441</span>&#160;            <span class="keywordflow">return</span> <a class="code" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87ba0178b5f8abe39121e6f14d3c6c093a82">olc::OK</a>;</div>
+<div class="line"><a name="l04442"></a><span class="lineno"> 4442</span>&#160;        }</div>
+<div class="line"><a name="l04443"></a><span class="lineno"> 4443</span>&#160; </div>
+<div class="line"><a name="l04444"></a><span class="lineno"> 4444</span>&#160;        <span class="keyword">virtual</span> <a class="code" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87b">olc::rcode</a> HandleSystemEvent()<span class="keyword"> override </span>{ <span class="keywordflow">return</span> <a class="code" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87baadc8ac6e9769db5bb290fbf5f8284dbf">olc::rcode::FAIL</a>; }</div>
+<div class="line"><a name="l04445"></a><span class="lineno"> 4445</span>&#160; </div>
+<div class="line"><a name="l04446"></a><span class="lineno"> 4446</span>&#160;        <span class="comment">// Windows Event Handler - this is statically connected to the windows event system</span></div>
+<div class="line"><a name="l04447"></a><span class="lineno"> 4447</span>&#160;        <span class="keyword">static</span> LRESULT CALLBACK olc_WindowEvent(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)</div>
+<div class="line"><a name="l04448"></a><span class="lineno"> 4448</span>&#160;        {</div>
+<div class="line"><a name="l04449"></a><span class="lineno"> 4449</span>&#160;            <span class="keywordflow">switch</span> (uMsg)</div>
+<div class="line"><a name="l04450"></a><span class="lineno"> 4450</span>&#160;            {</div>
+<div class="line"><a name="l04451"></a><span class="lineno"> 4451</span>&#160;            <span class="keywordflow">case</span> WM_MOUSEMOVE:</div>
+<div class="line"><a name="l04452"></a><span class="lineno"> 4452</span>&#160;            {</div>
+<div class="line"><a name="l04453"></a><span class="lineno"> 4453</span>&#160;                <span class="comment">// Thanks @ForAbby (Discord)</span></div>
+<div class="line"><a name="l04454"></a><span class="lineno"> 4454</span>&#160;                uint16_t x = lParam &amp; 0xFFFF; uint16_t y = (lParam &gt;&gt; 16) &amp; 0xFFFF;</div>
+<div class="line"><a name="l04455"></a><span class="lineno"> 4455</span>&#160;                int16_t ix = *(int16_t*)&amp;x;   int16_t iy = *(int16_t*)&amp;y;</div>
+<div class="line"><a name="l04456"></a><span class="lineno"> 4456</span>&#160;                ptrPGE-&gt;olc_UpdateMouse(ix, iy);</div>
+<div class="line"><a name="l04457"></a><span class="lineno"> 4457</span>&#160;                <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a name="l04458"></a><span class="lineno"> 4458</span>&#160;            }</div>
+<div class="line"><a name="l04459"></a><span class="lineno"> 4459</span>&#160;            <span class="keywordflow">case</span> WM_SIZE:       ptrPGE-&gt;olc_UpdateWindowSize(lParam &amp; 0xFFFF, (lParam &gt;&gt; 16) &amp; 0xFFFF); <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a name="l04460"></a><span class="lineno"> 4460</span>&#160;            <span class="keywordflow">case</span> WM_MOUSEWHEEL: ptrPGE-&gt;olc_UpdateMouseWheel(GET_WHEEL_DELTA_WPARAM(wParam));           <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a name="l04461"></a><span class="lineno"> 4461</span>&#160;            <span class="keywordflow">case</span> WM_MOUSELEAVE: ptrPGE-&gt;olc_UpdateMouseFocus(<span class="keyword">false</span>);                                    <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a name="l04462"></a><span class="lineno"> 4462</span>&#160;            <span class="keywordflow">case</span> WM_SETFOCUS:   ptrPGE-&gt;olc_UpdateKeyFocus(<span class="keyword">true</span>);                                       <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a name="l04463"></a><span class="lineno"> 4463</span>&#160;            <span class="keywordflow">case</span> WM_KILLFOCUS:  ptrPGE-&gt;olc_UpdateKeyFocus(<span class="keyword">false</span>);                                      <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a name="l04464"></a><span class="lineno"> 4464</span>&#160;            <span class="keywordflow">case</span> WM_KEYDOWN:    ptrPGE-&gt;olc_UpdateKeyState(mapKeys[wParam], <span class="keyword">true</span>);                      <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a name="l04465"></a><span class="lineno"> 4465</span>&#160;            <span class="keywordflow">case</span> WM_KEYUP:      ptrPGE-&gt;olc_UpdateKeyState(mapKeys[wParam], <span class="keyword">false</span>);                     <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a name="l04466"></a><span class="lineno"> 4466</span>&#160;            <span class="keywordflow">case</span> WM_SYSKEYDOWN: ptrPGE-&gt;olc_UpdateKeyState(mapKeys[wParam], <span class="keyword">true</span>);                      <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a name="l04467"></a><span class="lineno"> 4467</span>&#160;            <span class="keywordflow">case</span> WM_SYSKEYUP:   ptrPGE-&gt;olc_UpdateKeyState(mapKeys[wParam], <span class="keyword">false</span>);                     <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a name="l04468"></a><span class="lineno"> 4468</span>&#160;            <span class="keywordflow">case</span> WM_LBUTTONDOWN:ptrPGE-&gt;olc_UpdateMouseState(0, <span class="keyword">true</span>);                                  <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a name="l04469"></a><span class="lineno"> 4469</span>&#160;            <span class="keywordflow">case</span> WM_LBUTTONUP:  ptrPGE-&gt;olc_UpdateMouseState(0, <span class="keyword">false</span>);                                 <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a name="l04470"></a><span class="lineno"> 4470</span>&#160;            <span class="keywordflow">case</span> WM_RBUTTONDOWN:ptrPGE-&gt;olc_UpdateMouseState(1, <span class="keyword">true</span>);                                  <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a name="l04471"></a><span class="lineno"> 4471</span>&#160;            <span class="keywordflow">case</span> WM_RBUTTONUP:  ptrPGE-&gt;olc_UpdateMouseState(1, <span class="keyword">false</span>);                                 <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a name="l04472"></a><span class="lineno"> 4472</span>&#160;            <span class="keywordflow">case</span> WM_MBUTTONDOWN:ptrPGE-&gt;olc_UpdateMouseState(2, <span class="keyword">true</span>);                                  <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a name="l04473"></a><span class="lineno"> 4473</span>&#160;            <span class="keywordflow">case</span> WM_MBUTTONUP:  ptrPGE-&gt;olc_UpdateMouseState(2, <span class="keyword">false</span>);                                 <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a name="l04474"></a><span class="lineno"> 4474</span>&#160;            <span class="keywordflow">case</span> WM_CLOSE:      ptrPGE-&gt;olc_Terminate();                                                <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a name="l04475"></a><span class="lineno"> 4475</span>&#160;            <span class="keywordflow">case</span> WM_DESTROY:    PostQuitMessage(0); DestroyWindow(hWnd);                                <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a name="l04476"></a><span class="lineno"> 4476</span>&#160;            }</div>
+<div class="line"><a name="l04477"></a><span class="lineno"> 4477</span>&#160;            <span class="keywordflow">return</span> DefWindowProc(hWnd, uMsg, wParam, lParam);</div>
+<div class="line"><a name="l04478"></a><span class="lineno"> 4478</span>&#160;        }</div>
+<div class="line"><a name="l04479"></a><span class="lineno"> 4479</span>&#160;    };</div>
+<div class="line"><a name="l04480"></a><span class="lineno"> 4480</span>&#160;}</div>
+<div class="line"><a name="l04481"></a><span class="lineno"> 4481</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l04482"></a><span class="lineno"> 4482</span>&#160;<span class="comment">// O------------------------------------------------------------------------------O</span></div>
+<div class="line"><a name="l04483"></a><span class="lineno"> 4483</span>&#160;<span class="comment">// | END PLATFORM: MICROSOFT WINDOWS XP, VISTA, 7, 8, 10                          |</span></div>
+<div class="line"><a name="l04484"></a><span class="lineno"> 4484</span>&#160;<span class="comment">// O------------------------------------------------------------------------------O</span></div>
+<div class="line"><a name="l04485"></a><span class="lineno"> 4485</span>&#160;<span class="preprocessor">#pragma endregion </span></div>
+<div class="line"><a name="l04486"></a><span class="lineno"> 4486</span>&#160; </div>
+<div class="line"><a name="l04487"></a><span class="lineno"> 4487</span>&#160;<span class="preprocessor">#pragma region platform_linux</span></div>
+<div class="line"><a name="l04488"></a><span class="lineno"> 4488</span>&#160;<span class="comment">// O------------------------------------------------------------------------------O</span></div>
+<div class="line"><a name="l04489"></a><span class="lineno"> 4489</span>&#160;<span class="comment">// | START PLATFORM: LINUX                                                        |</span></div>
+<div class="line"><a name="l04490"></a><span class="lineno"> 4490</span>&#160;<span class="comment">// O------------------------------------------------------------------------------O</span></div>
+<div class="line"><a name="l04491"></a><span class="lineno"> 4491</span>&#160;<span class="preprocessor">#if defined(OLC_PLATFORM_X11)</span></div>
+<div class="line"><a name="l04492"></a><span class="lineno"> 4492</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespaceolc.html">olc</a></div>
+<div class="line"><a name="l04493"></a><span class="lineno"> 4493</span>&#160;{</div>
+<div class="line"><a name="l04494"></a><span class="lineno"> 4494</span>&#160;    <span class="keyword">class </span>Platform_Linux : <span class="keyword">public</span> <a class="code" href="classolc_1_1_platform.html">olc::Platform</a></div>
+<div class="line"><a name="l04495"></a><span class="lineno"> 4495</span>&#160;    {</div>
+<div class="line"><a name="l04496"></a><span class="lineno"> 4496</span>&#160;    <span class="keyword">private</span>:</div>
+<div class="line"><a name="l04497"></a><span class="lineno"> 4497</span>&#160;        X11::Display* olc_Display = <span class="keyword">nullptr</span>;</div>
+<div class="line"><a name="l04498"></a><span class="lineno"> 4498</span>&#160;        X11::Window                  olc_WindowRoot;</div>
+<div class="line"><a name="l04499"></a><span class="lineno"> 4499</span>&#160;        X11::Window                  olc_Window;</div>
+<div class="line"><a name="l04500"></a><span class="lineno"> 4500</span>&#160;        X11::XVisualInfo* olc_VisualInfo;</div>
+<div class="line"><a name="l04501"></a><span class="lineno"> 4501</span>&#160;        X11::Colormap                olc_ColourMap;</div>
+<div class="line"><a name="l04502"></a><span class="lineno"> 4502</span>&#160;        X11::XSetWindowAttributes    olc_SetWindowAttribs;</div>
+<div class="line"><a name="l04503"></a><span class="lineno"> 4503</span>&#160; </div>
+<div class="line"><a name="l04504"></a><span class="lineno"> 4504</span>&#160;    <span class="keyword">public</span>:</div>
+<div class="line"><a name="l04505"></a><span class="lineno"> 4505</span>&#160;        <span class="keyword">virtual</span> <a class="code" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87b">olc::rcode</a> ApplicationStartUp()<span class="keyword"> override</span></div>
+<div class="line"><a name="l04506"></a><span class="lineno"> 4506</span>&#160;<span class="keyword">        </span>{</div>
+<div class="line"><a name="l04507"></a><span class="lineno"> 4507</span>&#160;            <span class="keywordflow">return</span> <a class="code" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87ba0178b5f8abe39121e6f14d3c6c093a82">olc::rcode::OK</a>;</div>
+<div class="line"><a name="l04508"></a><span class="lineno"> 4508</span>&#160;        }</div>
+<div class="line"><a name="l04509"></a><span class="lineno"> 4509</span>&#160; </div>
+<div class="line"><a name="l04510"></a><span class="lineno"> 4510</span>&#160;        <span class="keyword">virtual</span> <a class="code" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87b">olc::rcode</a> ApplicationCleanUp()<span class="keyword"> override</span></div>
+<div class="line"><a name="l04511"></a><span class="lineno"> 4511</span>&#160;<span class="keyword">        </span>{</div>
+<div class="line"><a name="l04512"></a><span class="lineno"> 4512</span>&#160;            XDestroyWindow(olc_Display, olc_Window);</div>
+<div class="line"><a name="l04513"></a><span class="lineno"> 4513</span>&#160;            <span class="keywordflow">return</span> <a class="code" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87ba0178b5f8abe39121e6f14d3c6c093a82">olc::rcode::OK</a>;</div>
+<div class="line"><a name="l04514"></a><span class="lineno"> 4514</span>&#160;        }</div>
+<div class="line"><a name="l04515"></a><span class="lineno"> 4515</span>&#160; </div>
+<div class="line"><a name="l04516"></a><span class="lineno"> 4516</span>&#160;        <span class="keyword">virtual</span> <a class="code" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87b">olc::rcode</a> ThreadStartUp()<span class="keyword"> override</span></div>
+<div class="line"><a name="l04517"></a><span class="lineno"> 4517</span>&#160;<span class="keyword">        </span>{</div>
+<div class="line"><a name="l04518"></a><span class="lineno"> 4518</span>&#160;            <span class="keywordflow">return</span> <a class="code" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87ba0178b5f8abe39121e6f14d3c6c093a82">olc::rcode::OK</a>;</div>
+<div class="line"><a name="l04519"></a><span class="lineno"> 4519</span>&#160;        }</div>
+<div class="line"><a name="l04520"></a><span class="lineno"> 4520</span>&#160; </div>
+<div class="line"><a name="l04521"></a><span class="lineno"> 4521</span>&#160;        <span class="keyword">virtual</span> <a class="code" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87b">olc::rcode</a> ThreadCleanUp()<span class="keyword"> override</span></div>
+<div class="line"><a name="l04522"></a><span class="lineno"> 4522</span>&#160;<span class="keyword">        </span>{</div>
+<div class="line"><a name="l04523"></a><span class="lineno"> 4523</span>&#160;            renderer-&gt;DestroyDevice();</div>
+<div class="line"><a name="l04524"></a><span class="lineno"> 4524</span>&#160;            <span class="keywordflow">return</span> <a class="code" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87ba0178b5f8abe39121e6f14d3c6c093a82">olc::OK</a>;</div>
+<div class="line"><a name="l04525"></a><span class="lineno"> 4525</span>&#160;        }</div>
+<div class="line"><a name="l04526"></a><span class="lineno"> 4526</span>&#160; </div>
+<div class="line"><a name="l04527"></a><span class="lineno"> 4527</span>&#160;        <span class="keyword">virtual</span> <a class="code" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87b">olc::rcode</a> CreateGraphics(<span class="keywordtype">bool</span> bFullScreen, <span class="keywordtype">bool</span> bEnableVSYNC, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vi2d</a>&amp; vViewPos, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vi2d</a>&amp; vViewSize)<span class="keyword"> override</span></div>
+<div class="line"><a name="l04528"></a><span class="lineno"> 4528</span>&#160;<span class="keyword">        </span>{</div>
+<div class="line"><a name="l04529"></a><span class="lineno"> 4529</span>&#160;            <span class="keywordflow">if</span> (renderer-&gt;CreateDevice({ olc_Display, &amp;olc_Window, olc_VisualInfo }, bFullScreen, bEnableVSYNC) == <a class="code" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87ba0178b5f8abe39121e6f14d3c6c093a82">olc::rcode::OK</a>)</div>
+<div class="line"><a name="l04530"></a><span class="lineno"> 4530</span>&#160;            {</div>
+<div class="line"><a name="l04531"></a><span class="lineno"> 4531</span>&#160;                renderer-&gt;UpdateViewport(vViewPos, vViewSize);</div>
+<div class="line"><a name="l04532"></a><span class="lineno"> 4532</span>&#160;                <span class="keywordflow">return</span> <a class="code" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87ba0178b5f8abe39121e6f14d3c6c093a82">olc::rcode::OK</a>;</div>
+<div class="line"><a name="l04533"></a><span class="lineno"> 4533</span>&#160;            }</div>
+<div class="line"><a name="l04534"></a><span class="lineno"> 4534</span>&#160;            <span class="keywordflow">else</span></div>
+<div class="line"><a name="l04535"></a><span class="lineno"> 4535</span>&#160;                <span class="keywordflow">return</span> <a class="code" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87baadc8ac6e9769db5bb290fbf5f8284dbf">olc::rcode::FAIL</a>;</div>
+<div class="line"><a name="l04536"></a><span class="lineno"> 4536</span>&#160;        }</div>
+<div class="line"><a name="l04537"></a><span class="lineno"> 4537</span>&#160; </div>
+<div class="line"><a name="l04538"></a><span class="lineno"> 4538</span>&#160;        <span class="keyword">virtual</span> <a class="code" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87b">olc::rcode</a> CreateWindowPane(<span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vi2d</a>&amp; vWindowPos, <a class="code" href="structolc_1_1v2d__generic.html">olc::vi2d</a>&amp; vWindowSize, <span class="keywordtype">bool</span> bFullScreen)<span class="keyword"> override</span></div>
+<div class="line"><a name="l04539"></a><span class="lineno"> 4539</span>&#160;<span class="keyword">        </span>{</div>
+<div class="line"><a name="l04540"></a><span class="lineno"> 4540</span>&#160;            <span class="keyword">using namespace </span>X11;</div>
+<div class="line"><a name="l04541"></a><span class="lineno"> 4541</span>&#160;            XInitThreads();</div>
+<div class="line"><a name="l04542"></a><span class="lineno"> 4542</span>&#160; </div>
+<div class="line"><a name="l04543"></a><span class="lineno"> 4543</span>&#160;            <span class="comment">// Grab the deafult display and window</span></div>
+<div class="line"><a name="l04544"></a><span class="lineno"> 4544</span>&#160;            olc_Display = XOpenDisplay(NULL);</div>
+<div class="line"><a name="l04545"></a><span class="lineno"> 4545</span>&#160;            olc_WindowRoot = DefaultRootWindow(olc_Display);</div>
+<div class="line"><a name="l04546"></a><span class="lineno"> 4546</span>&#160; </div>
+<div class="line"><a name="l04547"></a><span class="lineno"> 4547</span>&#160;            <span class="comment">// Based on the display capabilities, configure the appearance of the window</span></div>
+<div class="line"><a name="l04548"></a><span class="lineno"> 4548</span>&#160;            GLint olc_GLAttribs[] = { GLX_RGBA, GLX_DEPTH_SIZE, 24, GLX_DOUBLEBUFFER, None };</div>
+<div class="line"><a name="l04549"></a><span class="lineno"> 4549</span>&#160;            olc_VisualInfo = glXChooseVisual(olc_Display, 0, olc_GLAttribs);</div>
+<div class="line"><a name="l04550"></a><span class="lineno"> 4550</span>&#160;            olc_ColourMap = XCreateColormap(olc_Display, olc_WindowRoot, olc_VisualInfo-&gt;visual, AllocNone);</div>
+<div class="line"><a name="l04551"></a><span class="lineno"> 4551</span>&#160;            olc_SetWindowAttribs.colormap = olc_ColourMap;</div>
+<div class="line"><a name="l04552"></a><span class="lineno"> 4552</span>&#160; </div>
+<div class="line"><a name="l04553"></a><span class="lineno"> 4553</span>&#160;            <span class="comment">// Register which events we are interested in receiving</span></div>
+<div class="line"><a name="l04554"></a><span class="lineno"> 4554</span>&#160;            olc_SetWindowAttribs.event_mask = ExposureMask | KeyPressMask | KeyReleaseMask |</div>
+<div class="line"><a name="l04555"></a><span class="lineno"> 4555</span>&#160;                ButtonPressMask | ButtonReleaseMask | PointerMotionMask | FocusChangeMask | StructureNotifyMask;</div>
+<div class="line"><a name="l04556"></a><span class="lineno"> 4556</span>&#160; </div>
+<div class="line"><a name="l04557"></a><span class="lineno"> 4557</span>&#160;            <span class="comment">// Create the window</span></div>
+<div class="line"><a name="l04558"></a><span class="lineno"> 4558</span>&#160;            olc_Window = XCreateWindow(olc_Display, olc_WindowRoot, vWindowPos.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a>, vWindowPos.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a>,</div>
+<div class="line"><a name="l04559"></a><span class="lineno"> 4559</span>&#160;                vWindowSize.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a>, vWindowSize.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a>,</div>
+<div class="line"><a name="l04560"></a><span class="lineno"> 4560</span>&#160;                0, olc_VisualInfo-&gt;depth, InputOutput, olc_VisualInfo-&gt;visual,</div>
+<div class="line"><a name="l04561"></a><span class="lineno"> 4561</span>&#160;                CWColormap | CWEventMask, &amp;olc_SetWindowAttribs);</div>
+<div class="line"><a name="l04562"></a><span class="lineno"> 4562</span>&#160; </div>
+<div class="line"><a name="l04563"></a><span class="lineno"> 4563</span>&#160;            Atom wmDelete = XInternAtom(olc_Display, <span class="stringliteral">&quot;WM_DELETE_WINDOW&quot;</span>, <span class="keyword">true</span>);</div>
+<div class="line"><a name="l04564"></a><span class="lineno"> 4564</span>&#160;            XSetWMProtocols(olc_Display, olc_Window, &amp;wmDelete, 1);</div>
+<div class="line"><a name="l04565"></a><span class="lineno"> 4565</span>&#160; </div>
+<div class="line"><a name="l04566"></a><span class="lineno"> 4566</span>&#160;            XMapWindow(olc_Display, olc_Window);</div>
+<div class="line"><a name="l04567"></a><span class="lineno"> 4567</span>&#160;            XStoreName(olc_Display, olc_Window, <span class="stringliteral">&quot;OneLoneCoder.com - Pixel Game Engine&quot;</span>);</div>
+<div class="line"><a name="l04568"></a><span class="lineno"> 4568</span>&#160; </div>
+<div class="line"><a name="l04569"></a><span class="lineno"> 4569</span>&#160;            <span class="keywordflow">if</span> (bFullScreen) <span class="comment">// Thanks DragonEye, again :D</span></div>
+<div class="line"><a name="l04570"></a><span class="lineno"> 4570</span>&#160;            {</div>
+<div class="line"><a name="l04571"></a><span class="lineno"> 4571</span>&#160;                Atom wm_state;</div>
+<div class="line"><a name="l04572"></a><span class="lineno"> 4572</span>&#160;                Atom fullscreen;</div>
+<div class="line"><a name="l04573"></a><span class="lineno"> 4573</span>&#160;                wm_state = XInternAtom(olc_Display, <span class="stringliteral">&quot;_NET_WM_STATE&quot;</span>, False);</div>
+<div class="line"><a name="l04574"></a><span class="lineno"> 4574</span>&#160;                fullscreen = XInternAtom(olc_Display, <span class="stringliteral">&quot;_NET_WM_STATE_FULLSCREEN&quot;</span>, False);</div>
+<div class="line"><a name="l04575"></a><span class="lineno"> 4575</span>&#160;                XEvent xev{ 0 };</div>
+<div class="line"><a name="l04576"></a><span class="lineno"> 4576</span>&#160;                xev.type = ClientMessage;</div>
+<div class="line"><a name="l04577"></a><span class="lineno"> 4577</span>&#160;                xev.xclient.window = olc_Window;</div>
+<div class="line"><a name="l04578"></a><span class="lineno"> 4578</span>&#160;                xev.xclient.message_type = wm_state;</div>
+<div class="line"><a name="l04579"></a><span class="lineno"> 4579</span>&#160;                xev.xclient.format = 32;</div>
+<div class="line"><a name="l04580"></a><span class="lineno"> 4580</span>&#160;                xev.xclient.data.l[0] = (bFullScreen ? 1 : 0);   <span class="comment">// the action (0: off, 1: on, 2: toggle)</span></div>
+<div class="line"><a name="l04581"></a><span class="lineno"> 4581</span>&#160;                xev.xclient.data.l[1] = fullscreen;             <span class="comment">// first property to alter</span></div>
+<div class="line"><a name="l04582"></a><span class="lineno"> 4582</span>&#160;                xev.xclient.data.l[2] = 0;                      <span class="comment">// second property to alter</span></div>
+<div class="line"><a name="l04583"></a><span class="lineno"> 4583</span>&#160;                xev.xclient.data.l[3] = 0;                      <span class="comment">// source indication</span></div>
+<div class="line"><a name="l04584"></a><span class="lineno"> 4584</span>&#160;                XMapWindow(olc_Display, olc_Window);</div>
+<div class="line"><a name="l04585"></a><span class="lineno"> 4585</span>&#160;                XSendEvent(olc_Display, DefaultRootWindow(olc_Display), False,</div>
+<div class="line"><a name="l04586"></a><span class="lineno"> 4586</span>&#160;                    SubstructureRedirectMask | SubstructureNotifyMask, &amp;xev);</div>
+<div class="line"><a name="l04587"></a><span class="lineno"> 4587</span>&#160;                XFlush(olc_Display);</div>
+<div class="line"><a name="l04588"></a><span class="lineno"> 4588</span>&#160;                XWindowAttributes gwa;</div>
+<div class="line"><a name="l04589"></a><span class="lineno"> 4589</span>&#160;                XGetWindowAttributes(olc_Display, olc_Window, &amp;gwa);</div>
+<div class="line"><a name="l04590"></a><span class="lineno"> 4590</span>&#160;                vWindowSize.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a> = gwa.width;</div>
+<div class="line"><a name="l04591"></a><span class="lineno"> 4591</span>&#160;                vWindowSize.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a> = gwa.height;</div>
+<div class="line"><a name="l04592"></a><span class="lineno"> 4592</span>&#160;            }</div>
+<div class="line"><a name="l04593"></a><span class="lineno"> 4593</span>&#160; </div>
+<div class="line"><a name="l04594"></a><span class="lineno"> 4594</span>&#160;            <span class="comment">// Create Keyboard Mapping</span></div>
+<div class="line"><a name="l04595"></a><span class="lineno"> 4595</span>&#160;            mapKeys[0x00] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a569010ded143bbdfd1b2dc8e82327b45">Key::NONE</a>;</div>
+<div class="line"><a name="l04596"></a><span class="lineno"> 4596</span>&#160;            mapKeys[0x61] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a3e1af6612f2964145f438bb63073098d">Key::A</a>; mapKeys[0x62] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a8baf1c6fa76f36bae92c12df88f4c84d">Key::B</a>; mapKeys[0x63] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7aaa5fe91e0948a39a142504c1f9067549">Key::C</a>; mapKeys[0x64] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a7323455add036f066f8b23546f0c37bb">Key::D</a>; mapKeys[0x65] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ad29058aa6514f4f9dcdefdba93adc8ec">Key::E</a>;</div>
+<div class="line"><a name="l04597"></a><span class="lineno"> 4597</span>&#160;            mapKeys[0x66] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a614698cb99af6a9effa5d7ce88b2c674">Key::F</a>; mapKeys[0x67] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a1a7a9ef9ded3ee4bb7b7e4fbc69ae4b8">Key::G</a>; mapKeys[0x68] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a224c0773e09bdb7fb13683fbb4eeee1a">Key::H</a>; mapKeys[0x69] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ac242ddce5db0d462674ead1db3956a19">Key::I</a>; mapKeys[0x6A] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a476769e330b87f2fb75aaa684c2f6373">Key::J</a>;</div>
+<div class="line"><a name="l04598"></a><span class="lineno"> 4598</span>&#160;            mapKeys[0x6B] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a136309f07b14d70a8561a69ca563bab7">Key::K</a>; mapKeys[0x6C] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a4d809048542b770e810d48919c8f8500">Key::L</a>; mapKeys[0x6D] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7afda4a6ac36e1870cd31522ac4e40a113">Key::M</a>; mapKeys[0x6E] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ab9b5b3e2b7e4f47de4a8d84e03cd5911">Key::N</a>; mapKeys[0x6F] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a7f95c3a8701b46a2cca143078d7e3aea">Key::O</a>;</div>
+<div class="line"><a name="l04599"></a><span class="lineno"> 4599</span>&#160;            mapKeys[0x70] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a2af805290f6ef4b2de028b868debe170">Key::P</a>; mapKeys[0x71] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a6d49ec75b05a97e8714ac8c244ad29a8">Key::Q</a>; mapKeys[0x72] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a7417555746b2b1026b8ba65912817111">Key::R</a>; mapKeys[0x73] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a050dfda2928d980787eeebcaaa4e6fa7">Key::S</a>; mapKeys[0x74] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0">Key::T</a>;</div>
+<div class="line"><a name="l04600"></a><span class="lineno"> 4600</span>&#160;            mapKeys[0x75] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a62c2493e1585db2af15cb70ac979fb09">Key::U</a>; mapKeys[0x76] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a170eaa7913d25c0ff02712bd93d7bf81">Key::V</a>; mapKeys[0x77] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ac1ae605c94e2d813c718148311c101d1">Key::W</a>; mapKeys[0x78] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a259dcb71eab0ee6c477f792543f43ec5">Key::X</a>; mapKeys[0x79] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a6207f4e5a37e546fa3881817046587b9">Key::Y</a>;</div>
+<div class="line"><a name="l04601"></a><span class="lineno"> 4601</span>&#160;            mapKeys[0x7A] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a7c408b7a6694f74ac270013753b13aaa">Key::Z</a>;</div>
+<div class="line"><a name="l04602"></a><span class="lineno"> 4602</span>&#160; </div>
+<div class="line"><a name="l04603"></a><span class="lineno"> 4603</span>&#160;            mapKeys[XK_F1] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a17a119da4c7fd21cd061972ac8f8029a">Key::F1</a>; mapKeys[XK_F2] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a207c1404adcacfadf941ffc681485026">Key::F2</a>; mapKeys[XK_F3] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a573a484680114e221c1a3ecd8307d61a">Key::F3</a>; mapKeys[XK_F4] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a3c808be2b8b226138090bb3884bdc52b">Key::F4</a>;</div>
+<div class="line"><a name="l04604"></a><span class="lineno"> 4604</span>&#160;            mapKeys[XK_F5] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ab9dd7de33e89c10afa7947bc5ff6fdea">Key::F5</a>; mapKeys[XK_F6] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a12e4309f479cd3e34476ef3be7986847">Key::F6</a>; mapKeys[XK_F7] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ac955ad4fdd41f4d3600b29da016fdf36">Key::F7</a>; mapKeys[XK_F8] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ab9ff66b449c18ecdb5b83a2e055e393b">Key::F8</a>;</div>
+<div class="line"><a name="l04605"></a><span class="lineno"> 4605</span>&#160;            mapKeys[XK_F9] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a2f2949bdd6d44b3c918531ebc30d8186">Key::F9</a>; mapKeys[XK_F10] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7abe90f6618beb39117690b93a5c9d8ccb">Key::F10</a>; mapKeys[XK_F11] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7aba366840d455651d4cedc7f7ee4c770b">Key::F11</a>; mapKeys[XK_F12] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a9bc869632cc0095b7d8e456efd571969">Key::F12</a>;</div>
+<div class="line"><a name="l04606"></a><span class="lineno"> 4606</span>&#160; </div>
+<div class="line"><a name="l04607"></a><span class="lineno"> 4607</span>&#160;            mapKeys[XK_Down] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a506f2ec576fcd3a8fabd37461bba83f8">Key::DOWN</a>; mapKeys[XK_Left] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a4da01be8126ba4113717cc6385ad22d2">Key::LEFT</a>; mapKeys[XK_Right] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a58e7b18972e446a03ce5ce915bc2d34d">Key::RIGHT</a>; mapKeys[XK_Up] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a2b35f0b03e615b828187a990935344c4">Key::UP</a>;</div>
+<div class="line"><a name="l04608"></a><span class="lineno"> 4608</span>&#160;            mapKeys[XK_KP_Enter] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a31321cae06dfe0989acbbe94c5272b33">Key::ENTER</a>; mapKeys[XK_Return] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a31321cae06dfe0989acbbe94c5272b33">Key::ENTER</a>;</div>
+<div class="line"><a name="l04609"></a><span class="lineno"> 4609</span>&#160; </div>
+<div class="line"><a name="l04610"></a><span class="lineno"> 4610</span>&#160;            mapKeys[XK_BackSpace] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a390af039d8a8c4ab71787f001f810521">Key::BACK</a>; mapKeys[XK_Escape] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ac58fbe549b8c1a668c42a17d9e572b0f">Key::ESCAPE</a>; mapKeys[XK_Linefeed] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a31321cae06dfe0989acbbe94c5272b33">Key::ENTER</a>; mapKeys[XK_Pause] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a0bc227b9b4a43118d7500e8195806d74">Key::PAUSE</a>;</div>
+<div class="line"><a name="l04611"></a><span class="lineno"> 4611</span>&#160;            mapKeys[XK_Scroll_Lock] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a44cf52f457ad06d45cd947c72c291ccc">Key::SCROLL</a>; mapKeys[XK_Tab] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7aef93738bc8d89f07932dd1a603b021bd">Key::TAB</a>; mapKeys[XK_Delete] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a5a979509d792ab38404b7a2aca12c981">Key::DEL</a>; mapKeys[XK_Home] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a29419f86c551b623c828f9530f301389">Key::HOME</a>;</div>
+<div class="line"><a name="l04612"></a><span class="lineno"> 4612</span>&#160;            mapKeys[XK_End] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a53394a407c13bf8192b2946607d27a0f">Key::END</a>; mapKeys[XK_Page_Up] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a0bab26868b97eab537e7cad879d4b9a3">Key::PGUP</a>; mapKeys[XK_Page_Down] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7aae334e3943922c2b16842afc5306a1e9">Key::PGDN</a>; mapKeys[XK_Insert] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a691b8388214af88a7794c43d31fbe16a">Key::INS</a>;</div>
+<div class="line"><a name="l04613"></a><span class="lineno"> 4613</span>&#160;            mapKeys[XK_Shift_L] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a4cd994e0e2285e9b52e129f74c84aa0b">Key::SHIFT</a>; mapKeys[XK_Shift_R] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a4cd994e0e2285e9b52e129f74c84aa0b">Key::SHIFT</a>; mapKeys[XK_Control_L] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ae7e6e69075c36b0e44309aae888b86dc">Key::CTRL</a>; mapKeys[XK_Control_R] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ae7e6e69075c36b0e44309aae888b86dc">Key::CTRL</a>;</div>
+<div class="line"><a name="l04614"></a><span class="lineno"> 4614</span>&#160;            mapKeys[XK_space] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a925d9a708542cd050a0b4f87bd7ba297">Key::SPACE</a>; mapKeys[XK_period] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a1adffcecf8c735b404ac6eedf220ae5a">Key::PERIOD</a>;</div>
+<div class="line"><a name="l04615"></a><span class="lineno"> 4615</span>&#160; </div>
+<div class="line"><a name="l04616"></a><span class="lineno"> 4616</span>&#160;            mapKeys[XK_0] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a2dd03c94eccd6d1259d4b2b51b7f85a7">Key::K0</a>; mapKeys[XK_1] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a353892e1e3473d0a6d3427dd86080506">Key::K1</a>; mapKeys[XK_2] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ab3b331dc3158175e2c567f7ebdf9fa75">Key::K2</a>; mapKeys[XK_3] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7aba2ad21d300fb113ff4e82665800cf75">Key::K3</a>; mapKeys[XK_4] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7aadd3a981032ec5fc07440dd0dbd1a3b3">Key::K4</a>;</div>
+<div class="line"><a name="l04617"></a><span class="lineno"> 4617</span>&#160;            mapKeys[XK_5] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a353906757178b0d48008b62cdca75332">Key::K5</a>; mapKeys[XK_6] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a81afecef4b483614604bfc5341d8a2d5">Key::K6</a>; mapKeys[XK_7] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a89291a8afb7ac7b481090dc97f643263">Key::K7</a>; mapKeys[XK_8] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a636f4e49257a6476ad0aab590318672f">Key::K8</a>; mapKeys[XK_9] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a949dddf48734610228c20566a33912bc">Key::K9</a>;</div>
+<div class="line"><a name="l04618"></a><span class="lineno"> 4618</span>&#160; </div>
+<div class="line"><a name="l04619"></a><span class="lineno"> 4619</span>&#160;            mapKeys[XK_KP_0] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a16054c3b1419b9679d95ac70ef262666">Key::NP0</a>; mapKeys[XK_KP_1] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a96c49dba90b7ecdfcf88e18c2842a964">Key::NP1</a>; mapKeys[XK_KP_2] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a7ca6517890a3566dbf758618f9c7690f">Key::NP2</a>; mapKeys[XK_KP_3] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7aab84341adb43a72b48030189f9919360">Key::NP3</a>; mapKeys[XK_KP_4] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a443551e4895cf1d2be984eba0bd7098e">Key::NP4</a>;</div>
+<div class="line"><a name="l04620"></a><span class="lineno"> 4620</span>&#160;            mapKeys[XK_KP_5] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a0ba7e1a6dbc9d1291a40172a09bb49a4">Key::NP5</a>; mapKeys[XK_KP_6] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ad6aae0ca10843b8046ee0186af4e42f9">Key::NP6</a>; mapKeys[XK_KP_7] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7afee25adbffa6e8fc092d52193195182f">Key::NP7</a>; mapKeys[XK_KP_8] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a468bb1704a74fc6e42d28e7bee8ecb51">Key::NP8</a>; mapKeys[XK_KP_9] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a53987c7c18a4a4479c4e1ff7f65c414e">Key::NP9</a>;</div>
+<div class="line"><a name="l04621"></a><span class="lineno"> 4621</span>&#160;            mapKeys[XK_KP_Multiply] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ae2ce826d1d0de6429f9f28a19d11edfb">Key::NP_MUL</a>; mapKeys[XK_KP_Add] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7af15830fd3562b144e15a9d8abeb6c118">Key::NP_ADD</a>; mapKeys[XK_KP_Divide] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7aee5afd77eb82eb3111195ee300ff3714">Key::NP_DIV</a>; mapKeys[XK_KP_Subtract] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7aade223a1643f8d607eb44fff1bbaae8e">Key::NP_SUB</a>; mapKeys[XK_KP_Decimal] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a2c21f93f355bf0a6baa7e205acd86b50">Key::NP_DECIMAL</a>;</div>
+<div class="line"><a name="l04622"></a><span class="lineno"> 4622</span>&#160; </div>
+<div class="line"><a name="l04623"></a><span class="lineno"> 4623</span>&#160;            <span class="comment">// These keys vary depending on the keyboard. I&#39;ve included comments for US and UK keyboard layouts</span></div>
+<div class="line"><a name="l04624"></a><span class="lineno"> 4624</span>&#160;            mapKeys[XK_semicolon] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a3a044efaf7d74df21e84a29063006eae">Key::OEM_1</a>;     <span class="comment">// On US and UK keyboards this is the &#39;;:&#39; key</span></div>
+<div class="line"><a name="l04625"></a><span class="lineno"> 4625</span>&#160;            mapKeys[XK_slash] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ad29833dd46d756ecf0e9d477d0845450">Key::OEM_2</a>;         <span class="comment">// On US and UK keyboards this is the &#39;/?&#39; key</span></div>
+<div class="line"><a name="l04626"></a><span class="lineno"> 4626</span>&#160;            mapKeys[XK_asciitilde] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7abb25924adf005b39efaef185f332a3ad">Key::OEM_3</a>;    <span class="comment">// On US keyboard this is the &#39;~&#39; key</span></div>
+<div class="line"><a name="l04627"></a><span class="lineno"> 4627</span>&#160;            mapKeys[XK_bracketleft] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7aa09e2508e2f2fd372d3e37ebdfce6814">Key::OEM_4</a>;   <span class="comment">// On US and UK keyboards this is the &#39;[{&#39; key</span></div>
+<div class="line"><a name="l04628"></a><span class="lineno"> 4628</span>&#160;            mapKeys[XK_backslash] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ad7e69e28cedaf91718aa4801d5a3bdb7">Key::OEM_5</a>;     <span class="comment">// On US keyboard this is &#39;\|&#39; key.</span></div>
+<div class="line"><a name="l04629"></a><span class="lineno"> 4629</span>&#160;            mapKeys[XK_bracketright] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7af2cec59ecc924be0b636e5b767abf29f">Key::OEM_6</a>;  <span class="comment">// On US and UK keyboards this is the &#39;]}&#39; key</span></div>
+<div class="line"><a name="l04630"></a><span class="lineno"> 4630</span>&#160;            mapKeys[XK_apostrophe] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a3dada7cdf09fb367c10c650e9bce7bfa">Key::OEM_7</a>;    <span class="comment">// On US keyboard this is the single/double quote key. On UK, this is the single quote/@ symbol key</span></div>
+<div class="line"><a name="l04631"></a><span class="lineno"> 4631</span>&#160;            mapKeys[XK_numbersign] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ab719317cfd8ac665e8cc2f420f74b46a">Key::OEM_8</a>;    <span class="comment">// miscellaneous characters. Varies by keyboard. I believe this to be the &#39;#~&#39; key on UK keyboards</span></div>
+<div class="line"><a name="l04632"></a><span class="lineno"> 4632</span>&#160;            mapKeys[XK_equal] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7aa82c0ef0b75db6208407e90f6f77f002">Key::EQUALS</a>;        <span class="comment">// the &#39;+&#39; key on any keyboard</span></div>
+<div class="line"><a name="l04633"></a><span class="lineno"> 4633</span>&#160;            mapKeys[XK_comma] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ae2fab0c220f54cd28729c9340951ecb4">Key::COMMA</a>;         <span class="comment">// the comma key on any keyboard</span></div>
+<div class="line"><a name="l04634"></a><span class="lineno"> 4634</span>&#160;            mapKeys[XK_minus] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a4b3a1d83a513de0e2c3c8ba2a8a5fd2d">Key::MINUS</a>;         <span class="comment">// the minus key on any keyboard            </span></div>
+<div class="line"><a name="l04635"></a><span class="lineno"> 4635</span>&#160; </div>
+<div class="line"><a name="l04636"></a><span class="lineno"> 4636</span>&#160;            mapKeys[XK_Caps_Lock] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a523c88e17275650861203e32067dde01">Key::CAPS_LOCK</a>;</div>
+<div class="line"><a name="l04637"></a><span class="lineno"> 4637</span>&#160; </div>
+<div class="line"><a name="l04638"></a><span class="lineno"> 4638</span>&#160;            <span class="keywordflow">return</span> <a class="code" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87ba0178b5f8abe39121e6f14d3c6c093a82">olc::OK</a>;</div>
+<div class="line"><a name="l04639"></a><span class="lineno"> 4639</span>&#160;        }</div>
+<div class="line"><a name="l04640"></a><span class="lineno"> 4640</span>&#160; </div>
+<div class="line"><a name="l04641"></a><span class="lineno"> 4641</span>&#160;        <span class="keyword">virtual</span> <a class="code" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87b">olc::rcode</a> SetWindowTitle(<span class="keyword">const</span> std::string&amp; s)<span class="keyword"> override</span></div>
+<div class="line"><a name="l04642"></a><span class="lineno"> 4642</span>&#160;<span class="keyword">        </span>{</div>
+<div class="line"><a name="l04643"></a><span class="lineno"> 4643</span>&#160;            X11::XStoreName(olc_Display, olc_Window, s.c_str());</div>
+<div class="line"><a name="l04644"></a><span class="lineno"> 4644</span>&#160;            <span class="keywordflow">return</span> <a class="code" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87ba0178b5f8abe39121e6f14d3c6c093a82">olc::OK</a>;</div>
+<div class="line"><a name="l04645"></a><span class="lineno"> 4645</span>&#160;        }</div>
+<div class="line"><a name="l04646"></a><span class="lineno"> 4646</span>&#160; </div>
+<div class="line"><a name="l04647"></a><span class="lineno"> 4647</span>&#160;        <span class="keyword">virtual</span> <a class="code" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87b">olc::rcode</a> StartSystemEventLoop()<span class="keyword"> override</span></div>
+<div class="line"><a name="l04648"></a><span class="lineno"> 4648</span>&#160;<span class="keyword">        </span>{</div>
+<div class="line"><a name="l04649"></a><span class="lineno"> 4649</span>&#160;            <span class="keywordflow">return</span> <a class="code" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87ba0178b5f8abe39121e6f14d3c6c093a82">olc::OK</a>;</div>
+<div class="line"><a name="l04650"></a><span class="lineno"> 4650</span>&#160;        }</div>
+<div class="line"><a name="l04651"></a><span class="lineno"> 4651</span>&#160; </div>
+<div class="line"><a name="l04652"></a><span class="lineno"> 4652</span>&#160;        <span class="keyword">virtual</span> <a class="code" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87b">olc::rcode</a> HandleSystemEvent()<span class="keyword"> override</span></div>
+<div class="line"><a name="l04653"></a><span class="lineno"> 4653</span>&#160;<span class="keyword">        </span>{</div>
+<div class="line"><a name="l04654"></a><span class="lineno"> 4654</span>&#160;            <span class="keyword">using namespace </span>X11;</div>
+<div class="line"><a name="l04655"></a><span class="lineno"> 4655</span>&#160;            <span class="comment">// Handle Xlib Message Loop - we do this in the</span></div>
+<div class="line"><a name="l04656"></a><span class="lineno"> 4656</span>&#160;            <span class="comment">// same thread that OpenGL was created so we dont</span></div>
+<div class="line"><a name="l04657"></a><span class="lineno"> 4657</span>&#160;            <span class="comment">// need to worry too much about multithreading with X11</span></div>
+<div class="line"><a name="l04658"></a><span class="lineno"> 4658</span>&#160;            XEvent xev;</div>
+<div class="line"><a name="l04659"></a><span class="lineno"> 4659</span>&#160;            <span class="keywordflow">while</span> (XPending(olc_Display))</div>
+<div class="line"><a name="l04660"></a><span class="lineno"> 4660</span>&#160;            {</div>
+<div class="line"><a name="l04661"></a><span class="lineno"> 4661</span>&#160;                XNextEvent(olc_Display, &amp;xev);</div>
+<div class="line"><a name="l04662"></a><span class="lineno"> 4662</span>&#160;                <span class="keywordflow">if</span> (xev.type == Expose)</div>
+<div class="line"><a name="l04663"></a><span class="lineno"> 4663</span>&#160;                {</div>
+<div class="line"><a name="l04664"></a><span class="lineno"> 4664</span>&#160;                    XWindowAttributes gwa;</div>
+<div class="line"><a name="l04665"></a><span class="lineno"> 4665</span>&#160;                    XGetWindowAttributes(olc_Display, olc_Window, &amp;gwa);</div>
+<div class="line"><a name="l04666"></a><span class="lineno"> 4666</span>&#160;                    ptrPGE-&gt;olc_UpdateWindowSize(gwa.width, gwa.height);</div>
+<div class="line"><a name="l04667"></a><span class="lineno"> 4667</span>&#160;                }</div>
+<div class="line"><a name="l04668"></a><span class="lineno"> 4668</span>&#160;                <span class="keywordflow">else</span> <span class="keywordflow">if</span> (xev.type == ConfigureNotify)</div>
+<div class="line"><a name="l04669"></a><span class="lineno"> 4669</span>&#160;                {</div>
+<div class="line"><a name="l04670"></a><span class="lineno"> 4670</span>&#160;                    XConfigureEvent xce = xev.xconfigure;</div>
+<div class="line"><a name="l04671"></a><span class="lineno"> 4671</span>&#160;                    ptrPGE-&gt;olc_UpdateWindowSize(xce.width, xce.height);</div>
+<div class="line"><a name="l04672"></a><span class="lineno"> 4672</span>&#160;                }</div>
+<div class="line"><a name="l04673"></a><span class="lineno"> 4673</span>&#160;                <span class="keywordflow">else</span> <span class="keywordflow">if</span> (xev.type == KeyPress)</div>
+<div class="line"><a name="l04674"></a><span class="lineno"> 4674</span>&#160;                {</div>
+<div class="line"><a name="l04675"></a><span class="lineno"> 4675</span>&#160;                    KeySym sym = XLookupKeysym(&amp;xev.xkey, 0);</div>
+<div class="line"><a name="l04676"></a><span class="lineno"> 4676</span>&#160;                    ptrPGE-&gt;olc_UpdateKeyState(mapKeys[sym], <span class="keyword">true</span>);</div>
+<div class="line"><a name="l04677"></a><span class="lineno"> 4677</span>&#160;                    XKeyEvent* e = (XKeyEvent*)&amp;xev; <span class="comment">// Because DragonEye loves numpads</span></div>
+<div class="line"><a name="l04678"></a><span class="lineno"> 4678</span>&#160;                    XLookupString(e, NULL, 0, &amp;sym, NULL);</div>
+<div class="line"><a name="l04679"></a><span class="lineno"> 4679</span>&#160;                    ptrPGE-&gt;olc_UpdateKeyState(mapKeys[sym], <span class="keyword">true</span>);</div>
+<div class="line"><a name="l04680"></a><span class="lineno"> 4680</span>&#160;                }</div>
+<div class="line"><a name="l04681"></a><span class="lineno"> 4681</span>&#160;                <span class="keywordflow">else</span> <span class="keywordflow">if</span> (xev.type == KeyRelease)</div>
+<div class="line"><a name="l04682"></a><span class="lineno"> 4682</span>&#160;                {</div>
+<div class="line"><a name="l04683"></a><span class="lineno"> 4683</span>&#160;                    KeySym sym = XLookupKeysym(&amp;xev.xkey, 0);</div>
+<div class="line"><a name="l04684"></a><span class="lineno"> 4684</span>&#160;                    ptrPGE-&gt;olc_UpdateKeyState(mapKeys[sym], <span class="keyword">false</span>);</div>
+<div class="line"><a name="l04685"></a><span class="lineno"> 4685</span>&#160;                    XKeyEvent* e = (XKeyEvent*)&amp;xev;</div>
+<div class="line"><a name="l04686"></a><span class="lineno"> 4686</span>&#160;                    XLookupString(e, NULL, 0, &amp;sym, NULL);</div>
+<div class="line"><a name="l04687"></a><span class="lineno"> 4687</span>&#160;                    ptrPGE-&gt;olc_UpdateKeyState(mapKeys[sym], <span class="keyword">false</span>);</div>
+<div class="line"><a name="l04688"></a><span class="lineno"> 4688</span>&#160;                }</div>
+<div class="line"><a name="l04689"></a><span class="lineno"> 4689</span>&#160;                <span class="keywordflow">else</span> <span class="keywordflow">if</span> (xev.type == ButtonPress)</div>
+<div class="line"><a name="l04690"></a><span class="lineno"> 4690</span>&#160;                {</div>
+<div class="line"><a name="l04691"></a><span class="lineno"> 4691</span>&#160;                    <span class="keywordflow">switch</span> (xev.xbutton.button)</div>
+<div class="line"><a name="l04692"></a><span class="lineno"> 4692</span>&#160;                    {</div>
+<div class="line"><a name="l04693"></a><span class="lineno"> 4693</span>&#160;                    <span class="keywordflow">case</span> 1: ptrPGE-&gt;olc_UpdateMouseState(0, <span class="keyword">true</span>); <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l04694"></a><span class="lineno"> 4694</span>&#160;                    <span class="keywordflow">case</span> 2: ptrPGE-&gt;olc_UpdateMouseState(2, <span class="keyword">true</span>); <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l04695"></a><span class="lineno"> 4695</span>&#160;                    <span class="keywordflow">case</span> 3: ptrPGE-&gt;olc_UpdateMouseState(1, <span class="keyword">true</span>); <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l04696"></a><span class="lineno"> 4696</span>&#160;                    <span class="keywordflow">case</span> 4: ptrPGE-&gt;olc_UpdateMouseWheel(120); <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l04697"></a><span class="lineno"> 4697</span>&#160;                    <span class="keywordflow">case</span> 5: ptrPGE-&gt;olc_UpdateMouseWheel(-120); <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l04698"></a><span class="lineno"> 4698</span>&#160;                    <span class="keywordflow">default</span>: <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l04699"></a><span class="lineno"> 4699</span>&#160;                    }</div>
+<div class="line"><a name="l04700"></a><span class="lineno"> 4700</span>&#160;                }</div>
+<div class="line"><a name="l04701"></a><span class="lineno"> 4701</span>&#160;                <span class="keywordflow">else</span> <span class="keywordflow">if</span> (xev.type == ButtonRelease)</div>
+<div class="line"><a name="l04702"></a><span class="lineno"> 4702</span>&#160;                {</div>
+<div class="line"><a name="l04703"></a><span class="lineno"> 4703</span>&#160;                    <span class="keywordflow">switch</span> (xev.xbutton.button)</div>
+<div class="line"><a name="l04704"></a><span class="lineno"> 4704</span>&#160;                    {</div>
+<div class="line"><a name="l04705"></a><span class="lineno"> 4705</span>&#160;                    <span class="keywordflow">case</span> 1: ptrPGE-&gt;olc_UpdateMouseState(0, <span class="keyword">false</span>); <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l04706"></a><span class="lineno"> 4706</span>&#160;                    <span class="keywordflow">case</span> 2: ptrPGE-&gt;olc_UpdateMouseState(2, <span class="keyword">false</span>); <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l04707"></a><span class="lineno"> 4707</span>&#160;                    <span class="keywordflow">case</span> 3: ptrPGE-&gt;olc_UpdateMouseState(1, <span class="keyword">false</span>); <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l04708"></a><span class="lineno"> 4708</span>&#160;                    <span class="keywordflow">default</span>: <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l04709"></a><span class="lineno"> 4709</span>&#160;                    }</div>
+<div class="line"><a name="l04710"></a><span class="lineno"> 4710</span>&#160;                }</div>
+<div class="line"><a name="l04711"></a><span class="lineno"> 4711</span>&#160;                <span class="keywordflow">else</span> <span class="keywordflow">if</span> (xev.type == MotionNotify)</div>
+<div class="line"><a name="l04712"></a><span class="lineno"> 4712</span>&#160;                {</div>
+<div class="line"><a name="l04713"></a><span class="lineno"> 4713</span>&#160;                    ptrPGE-&gt;olc_UpdateMouse(xev.xmotion.x, xev.xmotion.y);</div>
+<div class="line"><a name="l04714"></a><span class="lineno"> 4714</span>&#160;                }</div>
+<div class="line"><a name="l04715"></a><span class="lineno"> 4715</span>&#160;                <span class="keywordflow">else</span> <span class="keywordflow">if</span> (xev.type == FocusIn)</div>
+<div class="line"><a name="l04716"></a><span class="lineno"> 4716</span>&#160;                {</div>
+<div class="line"><a name="l04717"></a><span class="lineno"> 4717</span>&#160;                    ptrPGE-&gt;olc_UpdateKeyFocus(<span class="keyword">true</span>);</div>
+<div class="line"><a name="l04718"></a><span class="lineno"> 4718</span>&#160;                }</div>
+<div class="line"><a name="l04719"></a><span class="lineno"> 4719</span>&#160;                <span class="keywordflow">else</span> <span class="keywordflow">if</span> (xev.type == FocusOut)</div>
+<div class="line"><a name="l04720"></a><span class="lineno"> 4720</span>&#160;                {</div>
+<div class="line"><a name="l04721"></a><span class="lineno"> 4721</span>&#160;                    ptrPGE-&gt;olc_UpdateKeyFocus(<span class="keyword">false</span>);</div>
+<div class="line"><a name="l04722"></a><span class="lineno"> 4722</span>&#160;                }</div>
+<div class="line"><a name="l04723"></a><span class="lineno"> 4723</span>&#160;                <span class="keywordflow">else</span> <span class="keywordflow">if</span> (xev.type == ClientMessage)</div>
+<div class="line"><a name="l04724"></a><span class="lineno"> 4724</span>&#160;                {</div>
+<div class="line"><a name="l04725"></a><span class="lineno"> 4725</span>&#160;                    ptrPGE-&gt;olc_Terminate();</div>
+<div class="line"><a name="l04726"></a><span class="lineno"> 4726</span>&#160;                }</div>
+<div class="line"><a name="l04727"></a><span class="lineno"> 4727</span>&#160;            }</div>
+<div class="line"><a name="l04728"></a><span class="lineno"> 4728</span>&#160;            <span class="keywordflow">return</span> <a class="code" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87ba0178b5f8abe39121e6f14d3c6c093a82">olc::OK</a>;</div>
+<div class="line"><a name="l04729"></a><span class="lineno"> 4729</span>&#160;        }</div>
+<div class="line"><a name="l04730"></a><span class="lineno"> 4730</span>&#160;    };</div>
+<div class="line"><a name="l04731"></a><span class="lineno"> 4731</span>&#160;}</div>
+<div class="line"><a name="l04732"></a><span class="lineno"> 4732</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l04733"></a><span class="lineno"> 4733</span>&#160;<span class="comment">// O------------------------------------------------------------------------------O</span></div>
+<div class="line"><a name="l04734"></a><span class="lineno"> 4734</span>&#160;<span class="comment">// | END PLATFORM: LINUX                                                          |</span></div>
+<div class="line"><a name="l04735"></a><span class="lineno"> 4735</span>&#160;<span class="comment">// O------------------------------------------------------------------------------O</span></div>
+<div class="line"><a name="l04736"></a><span class="lineno"> 4736</span>&#160;<span class="preprocessor">#pragma endregion</span></div>
+<div class="line"><a name="l04737"></a><span class="lineno"> 4737</span>&#160; </div>
+<div class="line"><a name="l04738"></a><span class="lineno"> 4738</span>&#160;<span class="preprocessor">#pragma region platform_glut</span></div>
+<div class="line"><a name="l04739"></a><span class="lineno"> 4739</span>&#160;<span class="comment">// O------------------------------------------------------------------------------O</span></div>
+<div class="line"><a name="l04740"></a><span class="lineno"> 4740</span>&#160;<span class="comment">// | START PLATFORM: GLUT (used to make it simple for Apple)                      |</span></div>
+<div class="line"><a name="l04741"></a><span class="lineno"> 4741</span>&#160;<span class="comment">// O------------------------------------------------------------------------------O</span></div>
+<div class="line"><a name="l04742"></a><span class="lineno"> 4742</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l04743"></a><span class="lineno"> 4743</span>&#160;<span class="comment">// VERY IMPORTANT!!! The Apple port was originally created by @Mumflr (discord)</span></div>
+<div class="line"><a name="l04744"></a><span class="lineno"> 4744</span>&#160;<span class="comment">// and the repo for the development of this project can be found here:</span></div>
+<div class="line"><a name="l04745"></a><span class="lineno"> 4745</span>&#160;<span class="comment">// https://github.com/MumflrFumperdink/olcPGEMac which contains maccy goodness</span></div>
+<div class="line"><a name="l04746"></a><span class="lineno"> 4746</span>&#160;<span class="comment">// and support on how to setup your build environment.</span></div>
+<div class="line"><a name="l04747"></a><span class="lineno"> 4747</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l04748"></a><span class="lineno"> 4748</span>&#160;<span class="comment">// &quot;MASSIVE MASSIVE THANKS TO MUMFLR&quot; - Javidx9</span></div>
+<div class="line"><a name="l04749"></a><span class="lineno"> 4749</span>&#160;<span class="preprocessor">#if defined(OLC_PLATFORM_GLUT)</span></div>
+<div class="line"><a name="l04750"></a><span class="lineno"> 4750</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespaceolc.html">olc</a> {</div>
+<div class="line"><a name="l04751"></a><span class="lineno"> 4751</span>&#160; </div>
+<div class="line"><a name="l04752"></a><span class="lineno"> 4752</span>&#160;    <span class="keyword">class </span>Platform_GLUT : <span class="keyword">public</span> <a class="code" href="classolc_1_1_platform.html">olc::Platform</a></div>
+<div class="line"><a name="l04753"></a><span class="lineno"> 4753</span>&#160;    {</div>
+<div class="line"><a name="l04754"></a><span class="lineno"> 4754</span>&#160;    <span class="keyword">public</span>:</div>
+<div class="line"><a name="l04755"></a><span class="lineno"> 4755</span>&#160;        <span class="keyword">static</span> std::atomic&lt;bool&gt;* bActiveRef;</div>
+<div class="line"><a name="l04756"></a><span class="lineno"> 4756</span>&#160; </div>
+<div class="line"><a name="l04757"></a><span class="lineno"> 4757</span>&#160;        <span class="keyword">virtual</span> <a class="code" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87b">olc::rcode</a> ApplicationStartUp()<span class="keyword"> override </span>{</div>
+<div class="line"><a name="l04758"></a><span class="lineno"> 4758</span>&#160;            <span class="keywordflow">return</span> <a class="code" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87ba0178b5f8abe39121e6f14d3c6c093a82">olc::rcode::OK</a>;</div>
+<div class="line"><a name="l04759"></a><span class="lineno"> 4759</span>&#160;        }</div>
+<div class="line"><a name="l04760"></a><span class="lineno"> 4760</span>&#160; </div>
+<div class="line"><a name="l04761"></a><span class="lineno"> 4761</span>&#160;        <span class="keyword">virtual</span> <a class="code" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87b">olc::rcode</a> ApplicationCleanUp()<span class="keyword"> override</span></div>
+<div class="line"><a name="l04762"></a><span class="lineno"> 4762</span>&#160;<span class="keyword">        </span>{</div>
+<div class="line"><a name="l04763"></a><span class="lineno"> 4763</span>&#160;            <span class="keywordflow">return</span> <a class="code" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87ba0178b5f8abe39121e6f14d3c6c093a82">olc::rcode::OK</a>;</div>
+<div class="line"><a name="l04764"></a><span class="lineno"> 4764</span>&#160;        }</div>
+<div class="line"><a name="l04765"></a><span class="lineno"> 4765</span>&#160; </div>
+<div class="line"><a name="l04766"></a><span class="lineno"> 4766</span>&#160;        <span class="keyword">virtual</span> <a class="code" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87b">olc::rcode</a> ThreadStartUp()<span class="keyword"> override</span></div>
+<div class="line"><a name="l04767"></a><span class="lineno"> 4767</span>&#160;<span class="keyword">        </span>{</div>
+<div class="line"><a name="l04768"></a><span class="lineno"> 4768</span>&#160;            <span class="keywordflow">return</span> <a class="code" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87ba0178b5f8abe39121e6f14d3c6c093a82">olc::rcode::OK</a>;</div>
+<div class="line"><a name="l04769"></a><span class="lineno"> 4769</span>&#160;        }</div>
+<div class="line"><a name="l04770"></a><span class="lineno"> 4770</span>&#160; </div>
+<div class="line"><a name="l04771"></a><span class="lineno"> 4771</span>&#160;        <span class="keyword">virtual</span> <a class="code" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87b">olc::rcode</a> ThreadCleanUp()<span class="keyword"> override</span></div>
+<div class="line"><a name="l04772"></a><span class="lineno"> 4772</span>&#160;<span class="keyword">        </span>{</div>
+<div class="line"><a name="l04773"></a><span class="lineno"> 4773</span>&#160;            renderer-&gt;DestroyDevice();</div>
+<div class="line"><a name="l04774"></a><span class="lineno"> 4774</span>&#160;            <span class="keywordflow">return</span> <a class="code" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87ba0178b5f8abe39121e6f14d3c6c093a82">olc::OK</a>;</div>
+<div class="line"><a name="l04775"></a><span class="lineno"> 4775</span>&#160;        }</div>
+<div class="line"><a name="l04776"></a><span class="lineno"> 4776</span>&#160; </div>
+<div class="line"><a name="l04777"></a><span class="lineno"> 4777</span>&#160;        <span class="keyword">virtual</span> <a class="code" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87b">olc::rcode</a> CreateGraphics(<span class="keywordtype">bool</span> bFullScreen, <span class="keywordtype">bool</span> bEnableVSYNC, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vi2d</a>&amp; vViewPos, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vi2d</a>&amp; vViewSize)<span class="keyword"> override</span></div>
+<div class="line"><a name="l04778"></a><span class="lineno"> 4778</span>&#160;<span class="keyword">        </span>{</div>
+<div class="line"><a name="l04779"></a><span class="lineno"> 4779</span>&#160;            <span class="keywordflow">if</span> (renderer-&gt;CreateDevice({}, bFullScreen, bEnableVSYNC) == <a class="code" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87ba0178b5f8abe39121e6f14d3c6c093a82">olc::rcode::OK</a>)</div>
+<div class="line"><a name="l04780"></a><span class="lineno"> 4780</span>&#160;            {</div>
+<div class="line"><a name="l04781"></a><span class="lineno"> 4781</span>&#160;                renderer-&gt;UpdateViewport(vViewPos, vViewSize);</div>
+<div class="line"><a name="l04782"></a><span class="lineno"> 4782</span>&#160;                <span class="keywordflow">return</span> <a class="code" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87ba0178b5f8abe39121e6f14d3c6c093a82">olc::rcode::OK</a>;</div>
+<div class="line"><a name="l04783"></a><span class="lineno"> 4783</span>&#160;            }</div>
+<div class="line"><a name="l04784"></a><span class="lineno"> 4784</span>&#160;            <span class="keywordflow">else</span></div>
+<div class="line"><a name="l04785"></a><span class="lineno"> 4785</span>&#160;                <span class="keywordflow">return</span> <a class="code" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87baadc8ac6e9769db5bb290fbf5f8284dbf">olc::rcode::FAIL</a>;</div>
+<div class="line"><a name="l04786"></a><span class="lineno"> 4786</span>&#160;        }</div>
+<div class="line"><a name="l04787"></a><span class="lineno"> 4787</span>&#160; </div>
+<div class="line"><a name="l04788"></a><span class="lineno"> 4788</span>&#160;        <span class="keyword">static</span> <span class="keywordtype">void</span> ExitMainLoop() {</div>
+<div class="line"><a name="l04789"></a><span class="lineno"> 4789</span>&#160;            <span class="keywordflow">if</span> (!ptrPGE-&gt;OnUserDestroy()) {</div>
+<div class="line"><a name="l04790"></a><span class="lineno"> 4790</span>&#160;                *bActiveRef = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l04791"></a><span class="lineno"> 4791</span>&#160;                <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l04792"></a><span class="lineno"> 4792</span>&#160;            }</div>
+<div class="line"><a name="l04793"></a><span class="lineno"> 4793</span>&#160;            platform-&gt;ThreadCleanUp();</div>
+<div class="line"><a name="l04794"></a><span class="lineno"> 4794</span>&#160;            platform-&gt;ApplicationCleanUp();</div>
+<div class="line"><a name="l04795"></a><span class="lineno"> 4795</span>&#160;            exit(0);</div>
+<div class="line"><a name="l04796"></a><span class="lineno"> 4796</span>&#160;        }</div>
+<div class="line"><a name="l04797"></a><span class="lineno"> 4797</span>&#160; </div>
+<div class="line"><a name="l04798"></a><span class="lineno"> 4798</span>&#160;        <span class="keyword">static</span> <span class="keywordtype">void</span> ThreadFunct() {</div>
+<div class="line"><a name="l04799"></a><span class="lineno"> 4799</span>&#160;            <span class="keywordflow">if</span> (!*bActiveRef) {</div>
+<div class="line"><a name="l04800"></a><span class="lineno"> 4800</span>&#160;                ExitMainLoop();</div>
+<div class="line"><a name="l04801"></a><span class="lineno"> 4801</span>&#160;                <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l04802"></a><span class="lineno"> 4802</span>&#160;            }</div>
+<div class="line"><a name="l04803"></a><span class="lineno"> 4803</span>&#160;            glutPostRedisplay();</div>
+<div class="line"><a name="l04804"></a><span class="lineno"> 4804</span>&#160;        }</div>
+<div class="line"><a name="l04805"></a><span class="lineno"> 4805</span>&#160; </div>
+<div class="line"><a name="l04806"></a><span class="lineno"> 4806</span>&#160;        <span class="keyword">static</span> <span class="keywordtype">void</span> DrawFunct() {</div>
+<div class="line"><a name="l04807"></a><span class="lineno"> 4807</span>&#160;            ptrPGE-&gt;olc_CoreUpdate();</div>
+<div class="line"><a name="l04808"></a><span class="lineno"> 4808</span>&#160;        }</div>
+<div class="line"><a name="l04809"></a><span class="lineno"> 4809</span>&#160; </div>
+<div class="line"><a name="l04810"></a><span class="lineno"> 4810</span>&#160;        <span class="keyword">virtual</span> <a class="code" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87b">olc::rcode</a> CreateWindowPane(<span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vi2d</a>&amp; vWindowPos, <a class="code" href="structolc_1_1v2d__generic.html">olc::vi2d</a>&amp; vWindowSize, <span class="keywordtype">bool</span> bFullScreen)<span class="keyword"> override</span></div>
+<div class="line"><a name="l04811"></a><span class="lineno"> 4811</span>&#160;<span class="keyword">        </span>{</div>
+<div class="line"><a name="l04812"></a><span class="lineno"> 4812</span>&#160;            renderer-&gt;PrepareDevice();</div>
+<div class="line"><a name="l04813"></a><span class="lineno"> 4813</span>&#160; </div>
+<div class="line"><a name="l04814"></a><span class="lineno"> 4814</span>&#160; </div>
+<div class="line"><a name="l04815"></a><span class="lineno"> 4815</span>&#160;            <span class="keywordflow">if</span> (bFullScreen)</div>
+<div class="line"><a name="l04816"></a><span class="lineno"> 4816</span>&#160;            {</div>
+<div class="line"><a name="l04817"></a><span class="lineno"> 4817</span>&#160;                vWindowSize.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a> = glutGet(GLUT_SCREEN_WIDTH);</div>
+<div class="line"><a name="l04818"></a><span class="lineno"> 4818</span>&#160;                vWindowSize.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a> = glutGet(GLUT_SCREEN_HEIGHT);</div>
+<div class="line"><a name="l04819"></a><span class="lineno"> 4819</span>&#160;                glutFullScreen();</div>
+<div class="line"><a name="l04820"></a><span class="lineno"> 4820</span>&#160;            }</div>
+<div class="line"><a name="l04821"></a><span class="lineno"> 4821</span>&#160; </div>
+<div class="line"><a name="l04822"></a><span class="lineno"> 4822</span>&#160;            <span class="keywordflow">if</span> (vWindowSize.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a> &gt; glutGet(GLUT_SCREEN_WIDTH) || vWindowSize.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a> &gt; glutGet(GLUT_SCREEN_HEIGHT)) {</div>
+<div class="line"><a name="l04823"></a><span class="lineno"> 4823</span>&#160;                perror(<span class="stringliteral">&quot;ERROR: The specified window dimensions do not fit on your screen\n&quot;</span>);</div>
+<div class="line"><a name="l04824"></a><span class="lineno"> 4824</span>&#160;                <span class="keywordflow">return</span> <a class="code" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87baadc8ac6e9769db5bb290fbf5f8284dbf">olc::FAIL</a>;</div>
+<div class="line"><a name="l04825"></a><span class="lineno"> 4825</span>&#160;            }</div>
+<div class="line"><a name="l04826"></a><span class="lineno"> 4826</span>&#160; </div>
+<div class="line"><a name="l04827"></a><span class="lineno"> 4827</span>&#160;            <span class="comment">// Create Keyboard Mapping</span></div>
+<div class="line"><a name="l04828"></a><span class="lineno"> 4828</span>&#160;            mapKeys[0x00] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a569010ded143bbdfd1b2dc8e82327b45">Key::NONE</a>;</div>
+<div class="line"><a name="l04829"></a><span class="lineno"> 4829</span>&#160;            mapKeys[<span class="charliteral">&#39;A&#39;</span>] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a3e1af6612f2964145f438bb63073098d">Key::A</a>; mapKeys[<span class="charliteral">&#39;B&#39;</span>] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a8baf1c6fa76f36bae92c12df88f4c84d">Key::B</a>; mapKeys[<span class="charliteral">&#39;C&#39;</span>] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7aaa5fe91e0948a39a142504c1f9067549">Key::C</a>; mapKeys[<span class="charliteral">&#39;D&#39;</span>] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a7323455add036f066f8b23546f0c37bb">Key::D</a>; mapKeys[<span class="charliteral">&#39;E&#39;</span>] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ad29058aa6514f4f9dcdefdba93adc8ec">Key::E</a>;</div>
+<div class="line"><a name="l04830"></a><span class="lineno"> 4830</span>&#160;            mapKeys[<span class="charliteral">&#39;F&#39;</span>] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a614698cb99af6a9effa5d7ce88b2c674">Key::F</a>; mapKeys[<span class="charliteral">&#39;G&#39;</span>] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a1a7a9ef9ded3ee4bb7b7e4fbc69ae4b8">Key::G</a>; mapKeys[<span class="charliteral">&#39;H&#39;</span>] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a224c0773e09bdb7fb13683fbb4eeee1a">Key::H</a>; mapKeys[<span class="charliteral">&#39;I&#39;</span>] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ac242ddce5db0d462674ead1db3956a19">Key::I</a>; mapKeys[<span class="charliteral">&#39;J&#39;</span>] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a476769e330b87f2fb75aaa684c2f6373">Key::J</a>;</div>
+<div class="line"><a name="l04831"></a><span class="lineno"> 4831</span>&#160;            mapKeys[<span class="charliteral">&#39;K&#39;</span>] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a136309f07b14d70a8561a69ca563bab7">Key::K</a>; mapKeys[<span class="charliteral">&#39;L&#39;</span>] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a4d809048542b770e810d48919c8f8500">Key::L</a>; mapKeys[<span class="charliteral">&#39;M&#39;</span>] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7afda4a6ac36e1870cd31522ac4e40a113">Key::M</a>; mapKeys[<span class="charliteral">&#39;N&#39;</span>] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ab9b5b3e2b7e4f47de4a8d84e03cd5911">Key::N</a>; mapKeys[<span class="charliteral">&#39;O&#39;</span>] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a7f95c3a8701b46a2cca143078d7e3aea">Key::O</a>;</div>
+<div class="line"><a name="l04832"></a><span class="lineno"> 4832</span>&#160;            mapKeys[<span class="charliteral">&#39;P&#39;</span>] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a2af805290f6ef4b2de028b868debe170">Key::P</a>; mapKeys[<span class="charliteral">&#39;Q&#39;</span>] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a6d49ec75b05a97e8714ac8c244ad29a8">Key::Q</a>; mapKeys[<span class="charliteral">&#39;R&#39;</span>] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a7417555746b2b1026b8ba65912817111">Key::R</a>; mapKeys[<span class="charliteral">&#39;S&#39;</span>] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a050dfda2928d980787eeebcaaa4e6fa7">Key::S</a>; mapKeys[<span class="charliteral">&#39;T&#39;</span>] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0">Key::T</a>;</div>
+<div class="line"><a name="l04833"></a><span class="lineno"> 4833</span>&#160;            mapKeys[<span class="charliteral">&#39;U&#39;</span>] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a62c2493e1585db2af15cb70ac979fb09">Key::U</a>; mapKeys[<span class="charliteral">&#39;V&#39;</span>] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a170eaa7913d25c0ff02712bd93d7bf81">Key::V</a>; mapKeys[<span class="charliteral">&#39;W&#39;</span>] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ac1ae605c94e2d813c718148311c101d1">Key::W</a>; mapKeys[<span class="charliteral">&#39;X&#39;</span>] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a259dcb71eab0ee6c477f792543f43ec5">Key::X</a>; mapKeys[<span class="charliteral">&#39;Y&#39;</span>] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a6207f4e5a37e546fa3881817046587b9">Key::Y</a>;</div>
+<div class="line"><a name="l04834"></a><span class="lineno"> 4834</span>&#160;            mapKeys[<span class="charliteral">&#39;Z&#39;</span>] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a7c408b7a6694f74ac270013753b13aaa">Key::Z</a>;</div>
+<div class="line"><a name="l04835"></a><span class="lineno"> 4835</span>&#160; </div>
+<div class="line"><a name="l04836"></a><span class="lineno"> 4836</span>&#160;            mapKeys[GLUT_KEY_F1] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a17a119da4c7fd21cd061972ac8f8029a">Key::F1</a>; mapKeys[GLUT_KEY_F2] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a207c1404adcacfadf941ffc681485026">Key::F2</a>; mapKeys[GLUT_KEY_F3] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a573a484680114e221c1a3ecd8307d61a">Key::F3</a>; mapKeys[GLUT_KEY_F4] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a3c808be2b8b226138090bb3884bdc52b">Key::F4</a>;</div>
+<div class="line"><a name="l04837"></a><span class="lineno"> 4837</span>&#160;            mapKeys[GLUT_KEY_F5] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ab9dd7de33e89c10afa7947bc5ff6fdea">Key::F5</a>; mapKeys[GLUT_KEY_F6] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a12e4309f479cd3e34476ef3be7986847">Key::F6</a>; mapKeys[GLUT_KEY_F7] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ac955ad4fdd41f4d3600b29da016fdf36">Key::F7</a>; mapKeys[GLUT_KEY_F8] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ab9ff66b449c18ecdb5b83a2e055e393b">Key::F8</a>;</div>
+<div class="line"><a name="l04838"></a><span class="lineno"> 4838</span>&#160;            mapKeys[GLUT_KEY_F9] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a2f2949bdd6d44b3c918531ebc30d8186">Key::F9</a>; mapKeys[GLUT_KEY_F10] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7abe90f6618beb39117690b93a5c9d8ccb">Key::F10</a>; mapKeys[GLUT_KEY_F11] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7aba366840d455651d4cedc7f7ee4c770b">Key::F11</a>; mapKeys[GLUT_KEY_F12] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a9bc869632cc0095b7d8e456efd571969">Key::F12</a>;</div>
+<div class="line"><a name="l04839"></a><span class="lineno"> 4839</span>&#160; </div>
+<div class="line"><a name="l04840"></a><span class="lineno"> 4840</span>&#160;            mapKeys[GLUT_KEY_DOWN] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a506f2ec576fcd3a8fabd37461bba83f8">Key::DOWN</a>; mapKeys[GLUT_KEY_LEFT] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a4da01be8126ba4113717cc6385ad22d2">Key::LEFT</a>; mapKeys[GLUT_KEY_RIGHT] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a58e7b18972e446a03ce5ce915bc2d34d">Key::RIGHT</a>; mapKeys[GLUT_KEY_UP] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a2b35f0b03e615b828187a990935344c4">Key::UP</a>;</div>
+<div class="line"><a name="l04841"></a><span class="lineno"> 4841</span>&#160;            mapKeys[13] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a31321cae06dfe0989acbbe94c5272b33">Key::ENTER</a>;</div>
+<div class="line"><a name="l04842"></a><span class="lineno"> 4842</span>&#160; </div>
+<div class="line"><a name="l04843"></a><span class="lineno"> 4843</span>&#160;            mapKeys[127] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a390af039d8a8c4ab71787f001f810521">Key::BACK</a>; mapKeys[27] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ac58fbe549b8c1a668c42a17d9e572b0f">Key::ESCAPE</a>;</div>
+<div class="line"><a name="l04844"></a><span class="lineno"> 4844</span>&#160;            mapKeys[9] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7aef93738bc8d89f07932dd1a603b021bd">Key::TAB</a>;  mapKeys[GLUT_KEY_HOME] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a29419f86c551b623c828f9530f301389">Key::HOME</a>;</div>
+<div class="line"><a name="l04845"></a><span class="lineno"> 4845</span>&#160;            mapKeys[GLUT_KEY_END] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a53394a407c13bf8192b2946607d27a0f">Key::END</a>; mapKeys[GLUT_KEY_PAGE_UP] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a0bab26868b97eab537e7cad879d4b9a3">Key::PGUP</a>; mapKeys[GLUT_KEY_PAGE_DOWN] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7aae334e3943922c2b16842afc5306a1e9">Key::PGDN</a>;    mapKeys[GLUT_KEY_INSERT] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a691b8388214af88a7794c43d31fbe16a">Key::INS</a>;</div>
+<div class="line"><a name="l04846"></a><span class="lineno"> 4846</span>&#160;            mapKeys[32] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a925d9a708542cd050a0b4f87bd7ba297">Key::SPACE</a>; mapKeys[46] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a1adffcecf8c735b404ac6eedf220ae5a">Key::PERIOD</a>;</div>
+<div class="line"><a name="l04847"></a><span class="lineno"> 4847</span>&#160; </div>
+<div class="line"><a name="l04848"></a><span class="lineno"> 4848</span>&#160;            mapKeys[48] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a2dd03c94eccd6d1259d4b2b51b7f85a7">Key::K0</a>; mapKeys[49] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a353892e1e3473d0a6d3427dd86080506">Key::K1</a>; mapKeys[50] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ab3b331dc3158175e2c567f7ebdf9fa75">Key::K2</a>; mapKeys[51] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7aba2ad21d300fb113ff4e82665800cf75">Key::K3</a>; mapKeys[52] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7aadd3a981032ec5fc07440dd0dbd1a3b3">Key::K4</a>;</div>
+<div class="line"><a name="l04849"></a><span class="lineno"> 4849</span>&#160;            mapKeys[53] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a353906757178b0d48008b62cdca75332">Key::K5</a>; mapKeys[54] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a81afecef4b483614604bfc5341d8a2d5">Key::K6</a>; mapKeys[55] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a89291a8afb7ac7b481090dc97f643263">Key::K7</a>; mapKeys[56] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a636f4e49257a6476ad0aab590318672f">Key::K8</a>; mapKeys[57] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a949dddf48734610228c20566a33912bc">Key::K9</a>;</div>
+<div class="line"><a name="l04850"></a><span class="lineno"> 4850</span>&#160; </div>
+<div class="line"><a name="l04851"></a><span class="lineno"> 4851</span>&#160;            <span class="comment">// NOTE: MISSING KEYS :O</span></div>
+<div class="line"><a name="l04852"></a><span class="lineno"> 4852</span>&#160; </div>
+<div class="line"><a name="l04853"></a><span class="lineno"> 4853</span>&#160;            glutKeyboardFunc([](<span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> key, <span class="keywordtype">int</span> x, <span class="keywordtype">int</span> y) -&gt; <span class="keywordtype">void</span> {</div>
+<div class="line"><a name="l04854"></a><span class="lineno"> 4854</span>&#160;                <span class="keywordflow">switch</span> (glutGetModifiers()) {</div>
+<div class="line"><a name="l04855"></a><span class="lineno"> 4855</span>&#160;                <span class="keywordflow">case</span> 0: <span class="comment">//This is when there are no modifiers</span></div>
+<div class="line"><a name="l04856"></a><span class="lineno"> 4856</span>&#160;                    <span class="keywordflow">if</span> (<span class="charliteral">&#39;a&#39;</span> &lt;= key &amp;&amp; key &lt;= <span class="charliteral">&#39;z&#39;</span>) key -= 32;</div>
+<div class="line"><a name="l04857"></a><span class="lineno"> 4857</span>&#160;                    <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l04858"></a><span class="lineno"> 4858</span>&#160;                <span class="keywordflow">case</span> GLUT_ACTIVE_SHIFT:</div>
+<div class="line"><a name="l04859"></a><span class="lineno"> 4859</span>&#160;                    ptrPGE-&gt;olc_UpdateKeyState(<a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a4cd994e0e2285e9b52e129f74c84aa0b">Key::SHIFT</a>, <span class="keyword">true</span>);</div>
+<div class="line"><a name="l04860"></a><span class="lineno"> 4860</span>&#160;                    <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l04861"></a><span class="lineno"> 4861</span>&#160;                <span class="keywordflow">case</span> GLUT_ACTIVE_CTRL:</div>
+<div class="line"><a name="l04862"></a><span class="lineno"> 4862</span>&#160;                    <span class="keywordflow">if</span> (<span class="charliteral">&#39;a&#39;</span> &lt;= key &amp;&amp; key &lt;= <span class="charliteral">&#39;z&#39;</span>) key -= 32;</div>
+<div class="line"><a name="l04863"></a><span class="lineno"> 4863</span>&#160;                    ptrPGE-&gt;olc_UpdateKeyState(<a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ae7e6e69075c36b0e44309aae888b86dc">Key::CTRL</a>, <span class="keyword">true</span>);</div>
+<div class="line"><a name="l04864"></a><span class="lineno"> 4864</span>&#160;                    <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l04865"></a><span class="lineno"> 4865</span>&#160;                <span class="keywordflow">case</span> GLUT_ACTIVE_ALT:</div>
+<div class="line"><a name="l04866"></a><span class="lineno"> 4866</span>&#160;                    <span class="keywordflow">if</span> (<span class="charliteral">&#39;a&#39;</span> &lt;= key &amp;&amp; key &lt;= <span class="charliteral">&#39;z&#39;</span>) key -= 32;</div>
+<div class="line"><a name="l04867"></a><span class="lineno"> 4867</span>&#160;                    <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l04868"></a><span class="lineno"> 4868</span>&#160;                }</div>
+<div class="line"><a name="l04869"></a><span class="lineno"> 4869</span>&#160; </div>
+<div class="line"><a name="l04870"></a><span class="lineno"> 4870</span>&#160;                <span class="keywordflow">if</span> (mapKeys[key])</div>
+<div class="line"><a name="l04871"></a><span class="lineno"> 4871</span>&#160;                    ptrPGE-&gt;olc_UpdateKeyState(mapKeys[key], <span class="keyword">true</span>);</div>
+<div class="line"><a name="l04872"></a><span class="lineno"> 4872</span>&#160;                });</div>
+<div class="line"><a name="l04873"></a><span class="lineno"> 4873</span>&#160; </div>
+<div class="line"><a name="l04874"></a><span class="lineno"> 4874</span>&#160;            glutKeyboardUpFunc([](<span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> key, <span class="keywordtype">int</span> x, <span class="keywordtype">int</span> y) -&gt; <span class="keywordtype">void</span> {</div>
+<div class="line"><a name="l04875"></a><span class="lineno"> 4875</span>&#160;                <span class="keywordflow">switch</span> (glutGetModifiers()) {</div>
+<div class="line"><a name="l04876"></a><span class="lineno"> 4876</span>&#160;                <span class="keywordflow">case</span> 0: <span class="comment">//This is when there are no modifiers</span></div>
+<div class="line"><a name="l04877"></a><span class="lineno"> 4877</span>&#160;                    <span class="keywordflow">if</span> (<span class="charliteral">&#39;a&#39;</span> &lt;= key &amp;&amp; key &lt;= <span class="charliteral">&#39;z&#39;</span>) key -= 32;</div>
+<div class="line"><a name="l04878"></a><span class="lineno"> 4878</span>&#160;                    <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l04879"></a><span class="lineno"> 4879</span>&#160;                <span class="keywordflow">case</span> GLUT_ACTIVE_SHIFT:</div>
+<div class="line"><a name="l04880"></a><span class="lineno"> 4880</span>&#160;                    ptrPGE-&gt;olc_UpdateKeyState(<a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a4cd994e0e2285e9b52e129f74c84aa0b">Key::SHIFT</a>, <span class="keyword">false</span>);</div>
+<div class="line"><a name="l04881"></a><span class="lineno"> 4881</span>&#160;                    <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l04882"></a><span class="lineno"> 4882</span>&#160;                <span class="keywordflow">case</span> GLUT_ACTIVE_CTRL:</div>
+<div class="line"><a name="l04883"></a><span class="lineno"> 4883</span>&#160;                    <span class="keywordflow">if</span> (<span class="charliteral">&#39;a&#39;</span> &lt;= key &amp;&amp; key &lt;= <span class="charliteral">&#39;z&#39;</span>) key -= 32;</div>
+<div class="line"><a name="l04884"></a><span class="lineno"> 4884</span>&#160;                    ptrPGE-&gt;olc_UpdateKeyState(<a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ae7e6e69075c36b0e44309aae888b86dc">Key::CTRL</a>, <span class="keyword">false</span>);</div>
+<div class="line"><a name="l04885"></a><span class="lineno"> 4885</span>&#160;                    <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l04886"></a><span class="lineno"> 4886</span>&#160;                <span class="keywordflow">case</span> GLUT_ACTIVE_ALT:</div>
+<div class="line"><a name="l04887"></a><span class="lineno"> 4887</span>&#160;                    <span class="keywordflow">if</span> (<span class="charliteral">&#39;a&#39;</span> &lt;= key &amp;&amp; key &lt;= <span class="charliteral">&#39;z&#39;</span>) key -= 32;</div>
+<div class="line"><a name="l04888"></a><span class="lineno"> 4888</span>&#160;                    <span class="comment">//No ALT in PGE</span></div>
+<div class="line"><a name="l04889"></a><span class="lineno"> 4889</span>&#160;                    <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l04890"></a><span class="lineno"> 4890</span>&#160;                }</div>
+<div class="line"><a name="l04891"></a><span class="lineno"> 4891</span>&#160; </div>
+<div class="line"><a name="l04892"></a><span class="lineno"> 4892</span>&#160;                <span class="keywordflow">if</span> (mapKeys[key])</div>
+<div class="line"><a name="l04893"></a><span class="lineno"> 4893</span>&#160;                    ptrPGE-&gt;olc_UpdateKeyState(mapKeys[key], <span class="keyword">false</span>);</div>
+<div class="line"><a name="l04894"></a><span class="lineno"> 4894</span>&#160;                });</div>
+<div class="line"><a name="l04895"></a><span class="lineno"> 4895</span>&#160; </div>
+<div class="line"><a name="l04896"></a><span class="lineno"> 4896</span>&#160;            <span class="comment">//Special keys</span></div>
+<div class="line"><a name="l04897"></a><span class="lineno"> 4897</span>&#160;            glutSpecialFunc([](<span class="keywordtype">int</span> key, <span class="keywordtype">int</span> x, <span class="keywordtype">int</span> y) -&gt; <span class="keywordtype">void</span> {</div>
+<div class="line"><a name="l04898"></a><span class="lineno"> 4898</span>&#160;                <span class="keywordflow">if</span> (mapKeys[key])</div>
+<div class="line"><a name="l04899"></a><span class="lineno"> 4899</span>&#160;                    ptrPGE-&gt;olc_UpdateKeyState(mapKeys[key], <span class="keyword">true</span>);</div>
+<div class="line"><a name="l04900"></a><span class="lineno"> 4900</span>&#160;                });</div>
+<div class="line"><a name="l04901"></a><span class="lineno"> 4901</span>&#160; </div>
+<div class="line"><a name="l04902"></a><span class="lineno"> 4902</span>&#160;            glutSpecialUpFunc([](<span class="keywordtype">int</span> key, <span class="keywordtype">int</span> x, <span class="keywordtype">int</span> y) -&gt; <span class="keywordtype">void</span> {</div>
+<div class="line"><a name="l04903"></a><span class="lineno"> 4903</span>&#160;                <span class="keywordflow">if</span> (mapKeys[key])</div>
+<div class="line"><a name="l04904"></a><span class="lineno"> 4904</span>&#160;                    ptrPGE-&gt;olc_UpdateKeyState(mapKeys[key], <span class="keyword">false</span>);</div>
+<div class="line"><a name="l04905"></a><span class="lineno"> 4905</span>&#160;                });</div>
+<div class="line"><a name="l04906"></a><span class="lineno"> 4906</span>&#160; </div>
+<div class="line"><a name="l04907"></a><span class="lineno"> 4907</span>&#160;            glutMouseFunc([](<span class="keywordtype">int</span> button, <span class="keywordtype">int</span> state, <span class="keywordtype">int</span> x, <span class="keywordtype">int</span> y) -&gt; <span class="keywordtype">void</span> {</div>
+<div class="line"><a name="l04908"></a><span class="lineno"> 4908</span>&#160;                <span class="keywordflow">switch</span> (button) {</div>
+<div class="line"><a name="l04909"></a><span class="lineno"> 4909</span>&#160;                <span class="keywordflow">case</span> GLUT_LEFT_BUTTON:</div>
+<div class="line"><a name="l04910"></a><span class="lineno"> 4910</span>&#160;                    <span class="keywordflow">if</span> (state == GLUT_UP) ptrPGE-&gt;olc_UpdateMouseState(0, <span class="keyword">false</span>);</div>
+<div class="line"><a name="l04911"></a><span class="lineno"> 4911</span>&#160;                    <span class="keywordflow">else</span> if (state == GLUT_DOWN) ptrPGE-&gt;olc_UpdateMouseState(0, <span class="keyword">true</span>);</div>
+<div class="line"><a name="l04912"></a><span class="lineno"> 4912</span>&#160;                    <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l04913"></a><span class="lineno"> 4913</span>&#160;                <span class="keywordflow">case</span> GLUT_MIDDLE_BUTTON:</div>
+<div class="line"><a name="l04914"></a><span class="lineno"> 4914</span>&#160;                    if (state == GLUT_UP) ptrPGE-&gt;olc_UpdateMouseState(2, <span class="keyword">false</span>);</div>
+<div class="line"><a name="l04915"></a><span class="lineno"> 4915</span>&#160;                    <span class="keywordflow">else</span> if (state == GLUT_DOWN) ptrPGE-&gt;olc_UpdateMouseState(2, <span class="keyword">true</span>);</div>
+<div class="line"><a name="l04916"></a><span class="lineno"> 4916</span>&#160;                    <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l04917"></a><span class="lineno"> 4917</span>&#160;                <span class="keywordflow">case</span> GLUT_RIGHT_BUTTON:</div>
+<div class="line"><a name="l04918"></a><span class="lineno"> 4918</span>&#160;                    if (state == GLUT_UP) ptrPGE-&gt;olc_UpdateMouseState(1, <span class="keyword">false</span>);</div>
+<div class="line"><a name="l04919"></a><span class="lineno"> 4919</span>&#160;                    <span class="keywordflow">else</span> if (state == GLUT_DOWN) ptrPGE-&gt;olc_UpdateMouseState(1, <span class="keyword">true</span>);</div>
+<div class="line"><a name="l04920"></a><span class="lineno"> 4920</span>&#160;                    <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l04921"></a><span class="lineno"> 4921</span>&#160;                }</div>
+<div class="line"><a name="l04922"></a><span class="lineno"> 4922</span>&#160;                });</div>
+<div class="line"><a name="l04923"></a><span class="lineno"> 4923</span>&#160; </div>
+<div class="line"><a name="l04924"></a><span class="lineno"> 4924</span>&#160;            <span class="keyword">auto</span> mouseMoveCall = [](<span class="keywordtype">int</span> x, <span class="keywordtype">int</span> y) -&gt; <span class="keywordtype">void</span> {</div>
+<div class="line"><a name="l04925"></a><span class="lineno"> 4925</span>&#160;                ptrPGE-&gt;olc_UpdateMouse(x, y);</div>
+<div class="line"><a name="l04926"></a><span class="lineno"> 4926</span>&#160;            };</div>
+<div class="line"><a name="l04927"></a><span class="lineno"> 4927</span>&#160; </div>
+<div class="line"><a name="l04928"></a><span class="lineno"> 4928</span>&#160;            glutMotionFunc(mouseMoveCall);</div>
+<div class="line"><a name="l04929"></a><span class="lineno"> 4929</span>&#160;            glutPassiveMotionFunc(mouseMoveCall);</div>
+<div class="line"><a name="l04930"></a><span class="lineno"> 4930</span>&#160; </div>
+<div class="line"><a name="l04931"></a><span class="lineno"> 4931</span>&#160;            glutEntryFunc([](<span class="keywordtype">int</span> state) -&gt; <span class="keywordtype">void</span> {</div>
+<div class="line"><a name="l04932"></a><span class="lineno"> 4932</span>&#160;                <span class="keywordflow">if</span> (state == GLUT_ENTERED) ptrPGE-&gt;olc_UpdateKeyFocus(<span class="keyword">true</span>);</div>
+<div class="line"><a name="l04933"></a><span class="lineno"> 4933</span>&#160;                <span class="keywordflow">else</span> if (state == GLUT_LEFT) ptrPGE-&gt;olc_UpdateKeyFocus(<span class="keyword">false</span>);</div>
+<div class="line"><a name="l04934"></a><span class="lineno"> 4934</span>&#160;                });</div>
+<div class="line"><a name="l04935"></a><span class="lineno"> 4935</span>&#160; </div>
+<div class="line"><a name="l04936"></a><span class="lineno"> 4936</span>&#160;            glutDisplayFunc(DrawFunct);</div>
+<div class="line"><a name="l04937"></a><span class="lineno"> 4937</span>&#160;            glutIdleFunc(ThreadFunct);</div>
+<div class="line"><a name="l04938"></a><span class="lineno"> 4938</span>&#160; </div>
+<div class="line"><a name="l04939"></a><span class="lineno"> 4939</span>&#160;            <span class="keywordflow">return</span> <a class="code" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87ba0178b5f8abe39121e6f14d3c6c093a82">olc::OK</a>;</div>
+<div class="line"><a name="l04940"></a><span class="lineno"> 4940</span>&#160;        }</div>
+<div class="line"><a name="l04941"></a><span class="lineno"> 4941</span>&#160; </div>
+<div class="line"><a name="l04942"></a><span class="lineno"> 4942</span>&#160;        <span class="keyword">virtual</span> <a class="code" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87b">olc::rcode</a> SetWindowTitle(<span class="keyword">const</span> std::string&amp; s)<span class="keyword"> override</span></div>
+<div class="line"><a name="l04943"></a><span class="lineno"> 4943</span>&#160;<span class="keyword">        </span>{</div>
+<div class="line"><a name="l04944"></a><span class="lineno"> 4944</span>&#160;            glutSetWindowTitle(s.c_str());</div>
+<div class="line"><a name="l04945"></a><span class="lineno"> 4945</span>&#160;            <span class="keywordflow">return</span> <a class="code" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87ba0178b5f8abe39121e6f14d3c6c093a82">olc::OK</a>;</div>
+<div class="line"><a name="l04946"></a><span class="lineno"> 4946</span>&#160;        }</div>
+<div class="line"><a name="l04947"></a><span class="lineno"> 4947</span>&#160; </div>
+<div class="line"><a name="l04948"></a><span class="lineno"> 4948</span>&#160;        <span class="keyword">virtual</span> <a class="code" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87b">olc::rcode</a> StartSystemEventLoop()<span class="keyword"> override </span>{</div>
+<div class="line"><a name="l04949"></a><span class="lineno"> 4949</span>&#160;            glutMainLoop();</div>
+<div class="line"><a name="l04950"></a><span class="lineno"> 4950</span>&#160;            <span class="keywordflow">return</span> <a class="code" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87ba0178b5f8abe39121e6f14d3c6c093a82">olc::OK</a>;</div>
+<div class="line"><a name="l04951"></a><span class="lineno"> 4951</span>&#160;        }</div>
+<div class="line"><a name="l04952"></a><span class="lineno"> 4952</span>&#160; </div>
+<div class="line"><a name="l04953"></a><span class="lineno"> 4953</span>&#160;        <span class="keyword">virtual</span> <a class="code" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87b">olc::rcode</a> HandleSystemEvent()<span class="keyword"> override</span></div>
+<div class="line"><a name="l04954"></a><span class="lineno"> 4954</span>&#160;<span class="keyword">        </span>{</div>
+<div class="line"><a name="l04955"></a><span class="lineno"> 4955</span>&#160;            <span class="keywordflow">return</span> <a class="code" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87ba0178b5f8abe39121e6f14d3c6c093a82">olc::OK</a>;</div>
+<div class="line"><a name="l04956"></a><span class="lineno"> 4956</span>&#160;        }</div>
+<div class="line"><a name="l04957"></a><span class="lineno"> 4957</span>&#160;    };</div>
+<div class="line"><a name="l04958"></a><span class="lineno"> 4958</span>&#160; </div>
+<div class="line"><a name="l04959"></a><span class="lineno"> 4959</span>&#160;    std::atomic&lt;bool&gt;* Platform_GLUT::bActiveRef{ <span class="keyword">nullptr</span> };</div>
+<div class="line"><a name="l04960"></a><span class="lineno"> 4960</span>&#160; </div>
+<div class="line"><a name="l04961"></a><span class="lineno"> 4961</span>&#160;    <span class="comment">//Custom Start</span></div>
+<div class="line"><a name="l04962"></a><span class="lineno"> 4962</span>&#160;    <a class="code" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87b">olc::rcode</a> <a class="code" href="classolc_1_1_pixel_game_engine.html#a8e8848aa1c743a1ec2cdaa14c87e5cde">PixelGameEngine::Start</a>()</div>
+<div class="line"><a name="l04963"></a><span class="lineno"> 4963</span>&#160;    {</div>
+<div class="line"><a name="l04964"></a><span class="lineno"> 4964</span>&#160;        <span class="keywordflow">if</span> (platform-&gt;ApplicationStartUp() != <a class="code" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87ba0178b5f8abe39121e6f14d3c6c093a82">olc::OK</a>) <span class="keywordflow">return</span> <a class="code" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87baadc8ac6e9769db5bb290fbf5f8284dbf">olc::FAIL</a>;</div>
+<div class="line"><a name="l04965"></a><span class="lineno"> 4965</span>&#160; </div>
+<div class="line"><a name="l04966"></a><span class="lineno"> 4966</span>&#160;        <span class="comment">// Construct the window</span></div>
+<div class="line"><a name="l04967"></a><span class="lineno"> 4967</span>&#160;        <span class="keywordflow">if</span> (platform-&gt;CreateWindowPane({ 30,30 }, vWindowSize, bFullScreen) != <a class="code" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87ba0178b5f8abe39121e6f14d3c6c093a82">olc::OK</a>) <span class="keywordflow">return</span> <a class="code" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87baadc8ac6e9769db5bb290fbf5f8284dbf">olc::FAIL</a>;</div>
+<div class="line"><a name="l04968"></a><span class="lineno"> 4968</span>&#160;        olc_UpdateWindowSize(vWindowSize.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a>, vWindowSize.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a>);</div>
+<div class="line"><a name="l04969"></a><span class="lineno"> 4969</span>&#160; </div>
+<div class="line"><a name="l04970"></a><span class="lineno"> 4970</span>&#160; </div>
+<div class="line"><a name="l04971"></a><span class="lineno"> 4971</span>&#160;        <span class="keywordflow">if</span> (platform-&gt;ThreadStartUp() == <a class="code" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87baadc8ac6e9769db5bb290fbf5f8284dbf">olc::FAIL</a>)  <span class="keywordflow">return</span> <a class="code" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87baadc8ac6e9769db5bb290fbf5f8284dbf">olc::FAIL</a>;</div>
+<div class="line"><a name="l04972"></a><span class="lineno"> 4972</span>&#160; </div>
+<div class="line"><a name="l04973"></a><span class="lineno"> 4973</span>&#160;        olc_PrepareEngine();</div>
+<div class="line"><a name="l04974"></a><span class="lineno"> 4974</span>&#160; </div>
+<div class="line"><a name="l04975"></a><span class="lineno"> 4975</span>&#160;        <span class="keywordflow">if</span> (!OnUserCreate()) <span class="keywordflow">return</span> <a class="code" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87baadc8ac6e9769db5bb290fbf5f8284dbf">olc::FAIL</a>;</div>
+<div class="line"><a name="l04976"></a><span class="lineno"> 4976</span>&#160; </div>
+<div class="line"><a name="l04977"></a><span class="lineno"> 4977</span>&#160;        Platform_GLUT::bActiveRef = &amp;bAtomActive;</div>
+<div class="line"><a name="l04978"></a><span class="lineno"> 4978</span>&#160; </div>
+<div class="line"><a name="l04979"></a><span class="lineno"> 4979</span>&#160;        glutWMCloseFunc(Platform_GLUT::ExitMainLoop);</div>
+<div class="line"><a name="l04980"></a><span class="lineno"> 4980</span>&#160; </div>
+<div class="line"><a name="l04981"></a><span class="lineno"> 4981</span>&#160;        bAtomActive = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l04982"></a><span class="lineno"> 4982</span>&#160; </div>
+<div class="line"><a name="l04983"></a><span class="lineno"> 4983</span>&#160;        platform-&gt;StartSystemEventLoop();</div>
+<div class="line"><a name="l04984"></a><span class="lineno"> 4984</span>&#160; </div>
+<div class="line"><a name="l04985"></a><span class="lineno"> 4985</span>&#160;        <span class="comment">//This code will not even be run but why not</span></div>
+<div class="line"><a name="l04986"></a><span class="lineno"> 4986</span>&#160;        <span class="keywordflow">if</span> (platform-&gt;ApplicationCleanUp() != <a class="code" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87ba0178b5f8abe39121e6f14d3c6c093a82">olc::OK</a>) <span class="keywordflow">return</span> <a class="code" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87baadc8ac6e9769db5bb290fbf5f8284dbf">olc::FAIL</a>;</div>
+<div class="line"><a name="l04987"></a><span class="lineno"> 4987</span>&#160; </div>
+<div class="line"><a name="l04988"></a><span class="lineno"> 4988</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87ba0178b5f8abe39121e6f14d3c6c093a82">olc::OK</a>;</div>
+<div class="line"><a name="l04989"></a><span class="lineno"> 4989</span>&#160;    }</div>
+<div class="line"><a name="l04990"></a><span class="lineno"> 4990</span>&#160;}</div>
+<div class="line"><a name="l04991"></a><span class="lineno"> 4991</span>&#160; </div>
+<div class="line"><a name="l04992"></a><span class="lineno"> 4992</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l04993"></a><span class="lineno"> 4993</span>&#160;<span class="comment">// O------------------------------------------------------------------------------O</span></div>
+<div class="line"><a name="l04994"></a><span class="lineno"> 4994</span>&#160;<span class="comment">// | END PLATFORM: GLUT                                                           |</span></div>
+<div class="line"><a name="l04995"></a><span class="lineno"> 4995</span>&#160;<span class="comment">// O------------------------------------------------------------------------------O</span></div>
+<div class="line"><a name="l04996"></a><span class="lineno"> 4996</span>&#160;<span class="preprocessor">#pragma endregion </span></div>
+<div class="line"><a name="l04997"></a><span class="lineno"> 4997</span>&#160; </div>
+<div class="line"><a name="l04998"></a><span class="lineno"> 4998</span>&#160; </div>
+<div class="line"><a name="l04999"></a><span class="lineno"> 4999</span>&#160;<span class="preprocessor">#pragma region platform_emscripten</span></div>
+<div class="line"><a name="l05000"></a><span class="lineno"> 5000</span>&#160;<span class="comment">// O------------------------------------------------------------------------------O</span></div>
+<div class="line"><a name="l05001"></a><span class="lineno"> 5001</span>&#160;<span class="comment">// | START PLATFORM: Emscripten - Totally Game Changing...                        |</span></div>
+<div class="line"><a name="l05002"></a><span class="lineno"> 5002</span>&#160;<span class="comment">// O------------------------------------------------------------------------------O</span></div>
+<div class="line"><a name="l05003"></a><span class="lineno"> 5003</span>&#160; </div>
+<div class="line"><a name="l05004"></a><span class="lineno"> 5004</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l05005"></a><span class="lineno"> 5005</span>&#160;<span class="comment">//  Firstly a big mega thank you to members of the OLC Community for sorting this </span></div>
+<div class="line"><a name="l05006"></a><span class="lineno"> 5006</span>&#160;<span class="comment">//  out. Making a browser compatible version has been a priority for quite some</span></div>
+<div class="line"><a name="l05007"></a><span class="lineno"> 5007</span>&#160;<span class="comment">//  time, but I lacked the expertise to do it. This awesome feature is possible</span></div>
+<div class="line"><a name="l05008"></a><span class="lineno"> 5008</span>&#160;<span class="comment">//  because a group of former strangers got together and formed friendships over</span></div>
+<div class="line"><a name="l05009"></a><span class="lineno"> 5009</span>&#160;<span class="comment">//  their shared passion for code. If anything demonstrates how powerful helping</span></div>
+<div class="line"><a name="l05010"></a><span class="lineno"> 5010</span>&#160;<span class="comment">//  each other can be, it&#39;s this. - Javidx9</span></div>
+<div class="line"><a name="l05011"></a><span class="lineno"> 5011</span>&#160; </div>
+<div class="line"><a name="l05012"></a><span class="lineno"> 5012</span>&#160;<span class="comment">//  Emscripten Platform: MaGetzUb, Moros1138, Slavka, Dandistine, Gorbit99, Bispoo</span></div>
+<div class="line"><a name="l05013"></a><span class="lineno"> 5013</span>&#160;<span class="comment">//                 also: Ishidex, Gusgo99, SlicEnDicE, Alexio</span></div>
+<div class="line"><a name="l05014"></a><span class="lineno"> 5014</span>&#160; </div>
+<div class="line"><a name="l05015"></a><span class="lineno"> 5015</span>&#160; </div>
+<div class="line"><a name="l05016"></a><span class="lineno"> 5016</span>&#160;<span class="preprocessor">#if defined(OLC_PLATFORM_EMSCRIPTEN)</span></div>
+<div class="line"><a name="l05017"></a><span class="lineno"> 5017</span>&#160; </div>
+<div class="line"><a name="l05018"></a><span class="lineno"> 5018</span>&#160;<span class="preprocessor">#include &lt;emscripten/html5.h&gt;</span></div>
+<div class="line"><a name="l05019"></a><span class="lineno"> 5019</span>&#160;<span class="preprocessor">#include &lt;emscripten/key_codes.h&gt;</span></div>
+<div class="line"><a name="l05020"></a><span class="lineno"> 5020</span>&#160; </div>
+<div class="line"><a name="l05021"></a><span class="lineno"> 5021</span>&#160;<span class="keyword">extern</span> <span class="stringliteral">&quot;C&quot;</span> </div>
+<div class="line"><a name="l05022"></a><span class="lineno"> 5022</span>&#160;{</div>
+<div class="line"><a name="l05023"></a><span class="lineno"> 5023</span>&#160;    EMSCRIPTEN_KEEPALIVE <span class="keyword">inline</span> <span class="keywordtype">int</span> olc_OnPageUnload()</div>
+<div class="line"><a name="l05024"></a><span class="lineno"> 5024</span>&#160;    { olc::platform-&gt;ApplicationCleanUp(); <span class="keywordflow">return</span> 0; }</div>
+<div class="line"><a name="l05025"></a><span class="lineno"> 5025</span>&#160;}</div>
+<div class="line"><a name="l05026"></a><span class="lineno"> 5026</span>&#160; </div>
+<div class="line"><a name="l05027"></a><span class="lineno"> 5027</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespaceolc.html">olc</a></div>
+<div class="line"><a name="l05028"></a><span class="lineno"> 5028</span>&#160;{</div>
+<div class="line"><a name="l05029"></a><span class="lineno"> 5029</span>&#160;    <span class="keyword">class </span>Platform_Emscripten : <span class="keyword">public</span> <a class="code" href="classolc_1_1_platform.html">olc::Platform</a></div>
+<div class="line"><a name="l05030"></a><span class="lineno"> 5030</span>&#160;    {</div>
+<div class="line"><a name="l05031"></a><span class="lineno"> 5031</span>&#160;    <span class="keyword">public</span>:</div>
+<div class="line"><a name="l05032"></a><span class="lineno"> 5032</span>&#160; </div>
+<div class="line"><a name="l05033"></a><span class="lineno"> 5033</span>&#160;        <span class="keyword">virtual</span> <a class="code" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87b">olc::rcode</a> ApplicationStartUp()<span class="keyword"> override </span></div>
+<div class="line"><a name="l05034"></a><span class="lineno"> 5034</span>&#160;<span class="keyword">        </span>{ <span class="keywordflow">return</span> <a class="code" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87ba0178b5f8abe39121e6f14d3c6c093a82">olc::rcode::OK</a>; }</div>
+<div class="line"><a name="l05035"></a><span class="lineno"> 5035</span>&#160; </div>
+<div class="line"><a name="l05036"></a><span class="lineno"> 5036</span>&#160;        <span class="keyword">virtual</span> <a class="code" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87b">olc::rcode</a> ApplicationCleanUp()<span class="keyword"> override </span></div>
+<div class="line"><a name="l05037"></a><span class="lineno"> 5037</span>&#160;<span class="keyword">        </span>{ ThreadCleanUp(); <span class="keywordflow">return</span> <a class="code" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87ba0178b5f8abe39121e6f14d3c6c093a82">olc::rcode::OK</a>; }</div>
+<div class="line"><a name="l05038"></a><span class="lineno"> 5038</span>&#160; </div>
+<div class="line"><a name="l05039"></a><span class="lineno"> 5039</span>&#160;        <span class="keyword">virtual</span> <a class="code" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87b">olc::rcode</a> ThreadStartUp()<span class="keyword"> override</span></div>
+<div class="line"><a name="l05040"></a><span class="lineno"> 5040</span>&#160;<span class="keyword">        </span>{ <span class="keywordflow">return</span> <a class="code" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87ba0178b5f8abe39121e6f14d3c6c093a82">olc::rcode::OK</a>; }</div>
+<div class="line"><a name="l05041"></a><span class="lineno"> 5041</span>&#160; </div>
+<div class="line"><a name="l05042"></a><span class="lineno"> 5042</span>&#160;        <span class="keyword">virtual</span> <a class="code" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87b">olc::rcode</a> ThreadCleanUp()<span class="keyword"> override</span></div>
+<div class="line"><a name="l05043"></a><span class="lineno"> 5043</span>&#160;<span class="keyword">        </span>{ renderer-&gt;DestroyDevice(); <span class="keywordflow">return</span> <a class="code" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87ba0178b5f8abe39121e6f14d3c6c093a82">olc::OK</a>; }</div>
+<div class="line"><a name="l05044"></a><span class="lineno"> 5044</span>&#160; </div>
+<div class="line"><a name="l05045"></a><span class="lineno"> 5045</span>&#160;        <span class="keyword">virtual</span> <a class="code" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87b">olc::rcode</a> CreateGraphics(<span class="keywordtype">bool</span> bFullScreen, <span class="keywordtype">bool</span> bEnableVSYNC, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vi2d</a>&amp; vViewPos, <span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vi2d</a>&amp; vViewSize)<span class="keyword"> override</span></div>
+<div class="line"><a name="l05046"></a><span class="lineno"> 5046</span>&#160;<span class="keyword">        </span>{</div>
+<div class="line"><a name="l05047"></a><span class="lineno"> 5047</span>&#160;            <span class="keywordflow">if</span> (renderer-&gt;CreateDevice({}, bFullScreen, bEnableVSYNC) == <a class="code" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87ba0178b5f8abe39121e6f14d3c6c093a82">olc::rcode::OK</a>)</div>
+<div class="line"><a name="l05048"></a><span class="lineno"> 5048</span>&#160;            {</div>
+<div class="line"><a name="l05049"></a><span class="lineno"> 5049</span>&#160;                renderer-&gt;UpdateViewport(vViewPos, vViewSize);</div>
+<div class="line"><a name="l05050"></a><span class="lineno"> 5050</span>&#160;                <span class="keywordflow">return</span> <a class="code" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87ba0178b5f8abe39121e6f14d3c6c093a82">olc::rcode::OK</a>;</div>
+<div class="line"><a name="l05051"></a><span class="lineno"> 5051</span>&#160;            }</div>
+<div class="line"><a name="l05052"></a><span class="lineno"> 5052</span>&#160;            <span class="keywordflow">else</span></div>
+<div class="line"><a name="l05053"></a><span class="lineno"> 5053</span>&#160;                <span class="keywordflow">return</span> <a class="code" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87baadc8ac6e9769db5bb290fbf5f8284dbf">olc::rcode::FAIL</a>;</div>
+<div class="line"><a name="l05054"></a><span class="lineno"> 5054</span>&#160;        }</div>
+<div class="line"><a name="l05055"></a><span class="lineno"> 5055</span>&#160; </div>
+<div class="line"><a name="l05056"></a><span class="lineno"> 5056</span>&#160;        <span class="keyword">virtual</span> <a class="code" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87b">olc::rcode</a> CreateWindowPane(<span class="keyword">const</span> <a class="code" href="structolc_1_1v2d__generic.html">olc::vi2d</a>&amp; vWindowPos, <a class="code" href="structolc_1_1v2d__generic.html">olc::vi2d</a>&amp; vWindowSize, <span class="keywordtype">bool</span> bFullScreen)<span class="keyword"> override</span></div>
+<div class="line"><a name="l05057"></a><span class="lineno"> 5057</span>&#160;<span class="keyword">        </span>{</div>
+<div class="line"><a name="l05058"></a><span class="lineno"> 5058</span>&#160;            emscripten_set_canvas_element_size(<span class="stringliteral">&quot;#canvas&quot;</span>, vWindowSize.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a>, vWindowSize.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a>);</div>
+<div class="line"><a name="l05059"></a><span class="lineno"> 5059</span>&#160; </div>
+<div class="line"><a name="l05060"></a><span class="lineno"> 5060</span>&#160;            mapKeys[DOM_PK_UNKNOWN] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a569010ded143bbdfd1b2dc8e82327b45">Key::NONE</a>;</div>
+<div class="line"><a name="l05061"></a><span class="lineno"> 5061</span>&#160;            mapKeys[DOM_PK_A] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a3e1af6612f2964145f438bb63073098d">Key::A</a>; mapKeys[DOM_PK_B] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a8baf1c6fa76f36bae92c12df88f4c84d">Key::B</a>; mapKeys[DOM_PK_C] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7aaa5fe91e0948a39a142504c1f9067549">Key::C</a>; mapKeys[DOM_PK_D] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a7323455add036f066f8b23546f0c37bb">Key::D</a>;</div>
+<div class="line"><a name="l05062"></a><span class="lineno"> 5062</span>&#160;            mapKeys[DOM_PK_E] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ad29058aa6514f4f9dcdefdba93adc8ec">Key::E</a>; mapKeys[DOM_PK_F] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a614698cb99af6a9effa5d7ce88b2c674">Key::F</a>; mapKeys[DOM_PK_G] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a1a7a9ef9ded3ee4bb7b7e4fbc69ae4b8">Key::G</a>; mapKeys[DOM_PK_H] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a224c0773e09bdb7fb13683fbb4eeee1a">Key::H</a>;</div>
+<div class="line"><a name="l05063"></a><span class="lineno"> 5063</span>&#160;            mapKeys[DOM_PK_I] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ac242ddce5db0d462674ead1db3956a19">Key::I</a>; mapKeys[DOM_PK_J] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a476769e330b87f2fb75aaa684c2f6373">Key::J</a>; mapKeys[DOM_PK_K] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a136309f07b14d70a8561a69ca563bab7">Key::K</a>; mapKeys[DOM_PK_L] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a4d809048542b770e810d48919c8f8500">Key::L</a>;</div>
+<div class="line"><a name="l05064"></a><span class="lineno"> 5064</span>&#160;            mapKeys[DOM_PK_M] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7afda4a6ac36e1870cd31522ac4e40a113">Key::M</a>; mapKeys[DOM_PK_N] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ab9b5b3e2b7e4f47de4a8d84e03cd5911">Key::N</a>; mapKeys[DOM_PK_O] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a7f95c3a8701b46a2cca143078d7e3aea">Key::O</a>; mapKeys[DOM_PK_P] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a2af805290f6ef4b2de028b868debe170">Key::P</a>;</div>
+<div class="line"><a name="l05065"></a><span class="lineno"> 5065</span>&#160;            mapKeys[DOM_PK_Q] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a6d49ec75b05a97e8714ac8c244ad29a8">Key::Q</a>; mapKeys[DOM_PK_R] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a7417555746b2b1026b8ba65912817111">Key::R</a>; mapKeys[DOM_PK_S] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a050dfda2928d980787eeebcaaa4e6fa7">Key::S</a>; mapKeys[DOM_PK_T] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0">Key::T</a>;</div>
+<div class="line"><a name="l05066"></a><span class="lineno"> 5066</span>&#160;            mapKeys[DOM_PK_U] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a62c2493e1585db2af15cb70ac979fb09">Key::U</a>; mapKeys[DOM_PK_V] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a170eaa7913d25c0ff02712bd93d7bf81">Key::V</a>; mapKeys[DOM_PK_W] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ac1ae605c94e2d813c718148311c101d1">Key::W</a>; mapKeys[DOM_PK_X] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a259dcb71eab0ee6c477f792543f43ec5">Key::X</a>;</div>
+<div class="line"><a name="l05067"></a><span class="lineno"> 5067</span>&#160;            mapKeys[DOM_PK_Y] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a6207f4e5a37e546fa3881817046587b9">Key::Y</a>; mapKeys[DOM_PK_Z] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a7c408b7a6694f74ac270013753b13aaa">Key::Z</a>;</div>
+<div class="line"><a name="l05068"></a><span class="lineno"> 5068</span>&#160;            mapKeys[DOM_PK_0] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a2dd03c94eccd6d1259d4b2b51b7f85a7">Key::K0</a>; mapKeys[DOM_PK_1] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a353892e1e3473d0a6d3427dd86080506">Key::K1</a>; mapKeys[DOM_PK_2] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ab3b331dc3158175e2c567f7ebdf9fa75">Key::K2</a>;</div>
+<div class="line"><a name="l05069"></a><span class="lineno"> 5069</span>&#160;            mapKeys[DOM_PK_3] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7aba2ad21d300fb113ff4e82665800cf75">Key::K3</a>; mapKeys[DOM_PK_4] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7aadd3a981032ec5fc07440dd0dbd1a3b3">Key::K4</a>; mapKeys[DOM_PK_5] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a353906757178b0d48008b62cdca75332">Key::K5</a>;</div>
+<div class="line"><a name="l05070"></a><span class="lineno"> 5070</span>&#160;            mapKeys[DOM_PK_6] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a81afecef4b483614604bfc5341d8a2d5">Key::K6</a>; mapKeys[DOM_PK_7] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a89291a8afb7ac7b481090dc97f643263">Key::K7</a>; mapKeys[DOM_PK_8] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a636f4e49257a6476ad0aab590318672f">Key::K8</a>;</div>
+<div class="line"><a name="l05071"></a><span class="lineno"> 5071</span>&#160;            mapKeys[DOM_PK_9] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a949dddf48734610228c20566a33912bc">Key::K9</a>;</div>
+<div class="line"><a name="l05072"></a><span class="lineno"> 5072</span>&#160;            mapKeys[DOM_PK_F1] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a17a119da4c7fd21cd061972ac8f8029a">Key::F1</a>; mapKeys[DOM_PK_F2] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a207c1404adcacfadf941ffc681485026">Key::F2</a>; mapKeys[DOM_PK_F3] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a573a484680114e221c1a3ecd8307d61a">Key::F3</a>; mapKeys[DOM_PK_F4] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a3c808be2b8b226138090bb3884bdc52b">Key::F4</a>;</div>
+<div class="line"><a name="l05073"></a><span class="lineno"> 5073</span>&#160;            mapKeys[DOM_PK_F5] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ab9dd7de33e89c10afa7947bc5ff6fdea">Key::F5</a>; mapKeys[DOM_PK_F6] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a12e4309f479cd3e34476ef3be7986847">Key::F6</a>; mapKeys[DOM_PK_F7] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ac955ad4fdd41f4d3600b29da016fdf36">Key::F7</a>; mapKeys[DOM_PK_F8] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ab9ff66b449c18ecdb5b83a2e055e393b">Key::F8</a>;</div>
+<div class="line"><a name="l05074"></a><span class="lineno"> 5074</span>&#160;            mapKeys[DOM_PK_F9] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a2f2949bdd6d44b3c918531ebc30d8186">Key::F9</a>; mapKeys[DOM_PK_F10] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7abe90f6618beb39117690b93a5c9d8ccb">Key::F10</a>; mapKeys[DOM_PK_F11] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7aba366840d455651d4cedc7f7ee4c770b">Key::F11</a>; mapKeys[DOM_PK_F12] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a9bc869632cc0095b7d8e456efd571969">Key::F12</a>;</div>
+<div class="line"><a name="l05075"></a><span class="lineno"> 5075</span>&#160;            mapKeys[DOM_PK_ARROW_UP] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a2b35f0b03e615b828187a990935344c4">Key::UP</a>; mapKeys[DOM_PK_ARROW_DOWN] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a506f2ec576fcd3a8fabd37461bba83f8">Key::DOWN</a>;</div>
+<div class="line"><a name="l05076"></a><span class="lineno"> 5076</span>&#160;            mapKeys[DOM_PK_ARROW_LEFT] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a4da01be8126ba4113717cc6385ad22d2">Key::LEFT</a>; mapKeys[DOM_PK_ARROW_RIGHT] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a58e7b18972e446a03ce5ce915bc2d34d">Key::RIGHT</a>;</div>
+<div class="line"><a name="l05077"></a><span class="lineno"> 5077</span>&#160;            mapKeys[DOM_PK_SPACE] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a925d9a708542cd050a0b4f87bd7ba297">Key::SPACE</a>; mapKeys[DOM_PK_TAB] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7aef93738bc8d89f07932dd1a603b021bd">Key::TAB</a>;</div>
+<div class="line"><a name="l05078"></a><span class="lineno"> 5078</span>&#160;            mapKeys[DOM_PK_SHIFT_LEFT] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a4cd994e0e2285e9b52e129f74c84aa0b">Key::SHIFT</a>; mapKeys[DOM_PK_SHIFT_RIGHT] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a4cd994e0e2285e9b52e129f74c84aa0b">Key::SHIFT</a>;</div>
+<div class="line"><a name="l05079"></a><span class="lineno"> 5079</span>&#160;            mapKeys[DOM_PK_CONTROL_LEFT] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ae7e6e69075c36b0e44309aae888b86dc">Key::CTRL</a>; mapKeys[DOM_PK_CONTROL_RIGHT] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ae7e6e69075c36b0e44309aae888b86dc">Key::CTRL</a>;</div>
+<div class="line"><a name="l05080"></a><span class="lineno"> 5080</span>&#160;            mapKeys[DOM_PK_INSERT] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a691b8388214af88a7794c43d31fbe16a">Key::INS</a>; mapKeys[DOM_PK_DELETE] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a5a979509d792ab38404b7a2aca12c981">Key::DEL</a>; mapKeys[DOM_PK_HOME] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a29419f86c551b623c828f9530f301389">Key::HOME</a>;</div>
+<div class="line"><a name="l05081"></a><span class="lineno"> 5081</span>&#160;            mapKeys[DOM_PK_END] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a53394a407c13bf8192b2946607d27a0f">Key::END</a>; mapKeys[DOM_PK_PAGE_UP] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a0bab26868b97eab537e7cad879d4b9a3">Key::PGUP</a>; mapKeys[DOM_PK_PAGE_DOWN] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7aae334e3943922c2b16842afc5306a1e9">Key::PGDN</a>;</div>
+<div class="line"><a name="l05082"></a><span class="lineno"> 5082</span>&#160;            mapKeys[DOM_PK_BACKSPACE] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a390af039d8a8c4ab71787f001f810521">Key::BACK</a>; mapKeys[DOM_PK_ESCAPE] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ac58fbe549b8c1a668c42a17d9e572b0f">Key::ESCAPE</a>;</div>
+<div class="line"><a name="l05083"></a><span class="lineno"> 5083</span>&#160;            mapKeys[DOM_PK_ENTER] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a31321cae06dfe0989acbbe94c5272b33">Key::ENTER</a>; mapKeys[DOM_PK_NUMPAD_EQUAL] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7aa82c0ef0b75db6208407e90f6f77f002">Key::EQUALS</a>;</div>
+<div class="line"><a name="l05084"></a><span class="lineno"> 5084</span>&#160;            mapKeys[DOM_PK_NUMPAD_ENTER] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a31321cae06dfe0989acbbe94c5272b33">Key::ENTER</a>; mapKeys[DOM_PK_PAUSE] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a0bc227b9b4a43118d7500e8195806d74">Key::PAUSE</a>;</div>
+<div class="line"><a name="l05085"></a><span class="lineno"> 5085</span>&#160;            mapKeys[DOM_PK_SCROLL_LOCK] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a44cf52f457ad06d45cd947c72c291ccc">Key::SCROLL</a>;</div>
+<div class="line"><a name="l05086"></a><span class="lineno"> 5086</span>&#160;            mapKeys[DOM_PK_NUMPAD_0] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a16054c3b1419b9679d95ac70ef262666">Key::NP0</a>; mapKeys[DOM_PK_NUMPAD_1] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a96c49dba90b7ecdfcf88e18c2842a964">Key::NP1</a>; mapKeys[DOM_PK_NUMPAD_2] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a7ca6517890a3566dbf758618f9c7690f">Key::NP2</a>;</div>
+<div class="line"><a name="l05087"></a><span class="lineno"> 5087</span>&#160;            mapKeys[DOM_PK_NUMPAD_3] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7aab84341adb43a72b48030189f9919360">Key::NP3</a>; mapKeys[DOM_PK_NUMPAD_4] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a443551e4895cf1d2be984eba0bd7098e">Key::NP4</a>; mapKeys[DOM_PK_NUMPAD_5] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a0ba7e1a6dbc9d1291a40172a09bb49a4">Key::NP5</a>;</div>
+<div class="line"><a name="l05088"></a><span class="lineno"> 5088</span>&#160;            mapKeys[DOM_PK_NUMPAD_6] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ad6aae0ca10843b8046ee0186af4e42f9">Key::NP6</a>; mapKeys[DOM_PK_NUMPAD_7] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7afee25adbffa6e8fc092d52193195182f">Key::NP7</a>; mapKeys[DOM_PK_NUMPAD_8] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a468bb1704a74fc6e42d28e7bee8ecb51">Key::NP8</a>;</div>
+<div class="line"><a name="l05089"></a><span class="lineno"> 5089</span>&#160;            mapKeys[DOM_PK_NUMPAD_9] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a53987c7c18a4a4479c4e1ff7f65c414e">Key::NP9</a>;</div>
+<div class="line"><a name="l05090"></a><span class="lineno"> 5090</span>&#160;            mapKeys[DOM_PK_NUMPAD_MULTIPLY] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ae2ce826d1d0de6429f9f28a19d11edfb">Key::NP_MUL</a>; mapKeys[DOM_PK_NUMPAD_DIVIDE] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7aee5afd77eb82eb3111195ee300ff3714">Key::NP_DIV</a>;</div>
+<div class="line"><a name="l05091"></a><span class="lineno"> 5091</span>&#160;            mapKeys[DOM_PK_NUMPAD_ADD] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7af15830fd3562b144e15a9d8abeb6c118">Key::NP_ADD</a>; mapKeys[DOM_PK_NUMPAD_SUBTRACT] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7aade223a1643f8d607eb44fff1bbaae8e">Key::NP_SUB</a>;</div>
+<div class="line"><a name="l05092"></a><span class="lineno"> 5092</span>&#160;            mapKeys[DOM_PK_NUMPAD_DECIMAL] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a2c21f93f355bf0a6baa7e205acd86b50">Key::NP_DECIMAL</a>;</div>
+<div class="line"><a name="l05093"></a><span class="lineno"> 5093</span>&#160;            mapKeys[DOM_PK_PERIOD] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a1adffcecf8c735b404ac6eedf220ae5a">Key::PERIOD</a>; mapKeys[DOM_PK_EQUAL] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7aa82c0ef0b75db6208407e90f6f77f002">Key::EQUALS</a>;</div>
+<div class="line"><a name="l05094"></a><span class="lineno"> 5094</span>&#160;            mapKeys[DOM_PK_COMMA] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ae2fab0c220f54cd28729c9340951ecb4">Key::COMMA</a>; mapKeys[DOM_PK_MINUS] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a4b3a1d83a513de0e2c3c8ba2a8a5fd2d">Key::MINUS</a>;</div>
+<div class="line"><a name="l05095"></a><span class="lineno"> 5095</span>&#160;            mapKeys[DOM_PK_CAPS_LOCK] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a523c88e17275650861203e32067dde01">Key::CAPS_LOCK</a>;</div>
+<div class="line"><a name="l05096"></a><span class="lineno"> 5096</span>&#160;            mapKeys[DOM_PK_SEMICOLON] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a3a044efaf7d74df21e84a29063006eae">Key::OEM_1</a>; mapKeys[DOM_PK_SLASH] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ad29833dd46d756ecf0e9d477d0845450">Key::OEM_2</a>; mapKeys[DOM_PK_BACKQUOTE] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7abb25924adf005b39efaef185f332a3ad">Key::OEM_3</a>;</div>
+<div class="line"><a name="l05097"></a><span class="lineno"> 5097</span>&#160;            mapKeys[DOM_PK_BRACKET_LEFT] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7aa09e2508e2f2fd372d3e37ebdfce6814">Key::OEM_4</a>; mapKeys[DOM_PK_BACKSLASH] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ad7e69e28cedaf91718aa4801d5a3bdb7">Key::OEM_5</a>; mapKeys[DOM_PK_BRACKET_RIGHT] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7af2cec59ecc924be0b636e5b767abf29f">Key::OEM_6</a>;</div>
+<div class="line"><a name="l05098"></a><span class="lineno"> 5098</span>&#160;            mapKeys[DOM_PK_QUOTE] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a3dada7cdf09fb367c10c650e9bce7bfa">Key::OEM_7</a>; mapKeys[DOM_PK_BACKSLASH] = <a class="code" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ab719317cfd8ac665e8cc2f420f74b46a">Key::OEM_8</a>;</div>
+<div class="line"><a name="l05099"></a><span class="lineno"> 5099</span>&#160; </div>
+<div class="line"><a name="l05100"></a><span class="lineno"> 5100</span>&#160;            <span class="comment">// Keyboard Callbacks</span></div>
+<div class="line"><a name="l05101"></a><span class="lineno"> 5101</span>&#160;            emscripten_set_keydown_callback(<span class="stringliteral">&quot;#canvas&quot;</span>, 0, 1, keyboard_callback);</div>
+<div class="line"><a name="l05102"></a><span class="lineno"> 5102</span>&#160;            emscripten_set_keyup_callback(<span class="stringliteral">&quot;#canvas&quot;</span>, 0, 1, keyboard_callback);</div>
+<div class="line"><a name="l05103"></a><span class="lineno"> 5103</span>&#160; </div>
+<div class="line"><a name="l05104"></a><span class="lineno"> 5104</span>&#160;            <span class="comment">// Mouse Callbacks</span></div>
+<div class="line"><a name="l05105"></a><span class="lineno"> 5105</span>&#160;            emscripten_set_wheel_callback(<span class="stringliteral">&quot;#canvas&quot;</span>, 0, 1, wheel_callback);</div>
+<div class="line"><a name="l05106"></a><span class="lineno"> 5106</span>&#160;            emscripten_set_mousedown_callback(<span class="stringliteral">&quot;#canvas&quot;</span>, 0, 1, mouse_callback);</div>
+<div class="line"><a name="l05107"></a><span class="lineno"> 5107</span>&#160;            emscripten_set_mouseup_callback(<span class="stringliteral">&quot;#canvas&quot;</span>, 0, 1, mouse_callback);</div>
+<div class="line"><a name="l05108"></a><span class="lineno"> 5108</span>&#160;            emscripten_set_mousemove_callback(<span class="stringliteral">&quot;#canvas&quot;</span>, 0, 1, mouse_callback);</div>
+<div class="line"><a name="l05109"></a><span class="lineno"> 5109</span>&#160; </div>
+<div class="line"><a name="l05110"></a><span class="lineno"> 5110</span>&#160;            <span class="comment">// Touch Callbacks</span></div>
+<div class="line"><a name="l05111"></a><span class="lineno"> 5111</span>&#160;            emscripten_set_touchstart_callback(<span class="stringliteral">&quot;#canvas&quot;</span>, 0, 1, touch_callback);</div>
+<div class="line"><a name="l05112"></a><span class="lineno"> 5112</span>&#160;            emscripten_set_touchmove_callback(<span class="stringliteral">&quot;#canvas&quot;</span>, 0, 1, touch_callback);</div>
+<div class="line"><a name="l05113"></a><span class="lineno"> 5113</span>&#160;            emscripten_set_touchend_callback(<span class="stringliteral">&quot;#canvas&quot;</span>, 0, 1, touch_callback);</div>
+<div class="line"><a name="l05114"></a><span class="lineno"> 5114</span>&#160; </div>
+<div class="line"><a name="l05115"></a><span class="lineno"> 5115</span>&#160;            <span class="comment">// Canvas Focus Callbacks</span></div>
+<div class="line"><a name="l05116"></a><span class="lineno"> 5116</span>&#160;            emscripten_set_blur_callback(<span class="stringliteral">&quot;#canvas&quot;</span>, 0, 1, focus_callback);</div>
+<div class="line"><a name="l05117"></a><span class="lineno"> 5117</span>&#160;            emscripten_set_focus_callback(<span class="stringliteral">&quot;#canvas&quot;</span>, 0, 1, focus_callback);</div>
+<div class="line"><a name="l05118"></a><span class="lineno"> 5118</span>&#160;            </div>
+<div class="line"><a name="l05119"></a><span class="lineno"> 5119</span>&#160;<span class="preprocessor">#pragma warning disable format</span></div>
+<div class="line"><a name="l05120"></a><span class="lineno"> 5120</span>&#160;            EM_ASM( window.onunload = Module._olc_OnPageUnload; );</div>
+<div class="line"><a name="l05121"></a><span class="lineno"> 5121</span>&#160; </div>
+<div class="line"><a name="l05122"></a><span class="lineno"> 5122</span>&#160;            <span class="comment">// IMPORTANT! - Sorry About This...</span></div>
+<div class="line"><a name="l05123"></a><span class="lineno"> 5123</span>&#160;            <span class="comment">//</span></div>
+<div class="line"><a name="l05124"></a><span class="lineno"> 5124</span>&#160;            <span class="comment">//  In order to handle certain browser based events, such as resizing and</span></div>
+<div class="line"><a name="l05125"></a><span class="lineno"> 5125</span>&#160;            <span class="comment">//  going to full screen, we have to effectively inject code into the container</span></div>
+<div class="line"><a name="l05126"></a><span class="lineno"> 5126</span>&#160;            <span class="comment">//  running the PGE. Yes, I vomited about 11 times too when the others were</span></div>
+<div class="line"><a name="l05127"></a><span class="lineno"> 5127</span>&#160;            <span class="comment">//  convincing me this is the future. Well, this isnt the future, and if it</span></div>
+<div class="line"><a name="l05128"></a><span class="lineno"> 5128</span>&#160;            <span class="comment">//  were to be, I want no part of what must be a miserable distopian free</span></div>
+<div class="line"><a name="l05129"></a><span class="lineno"> 5129</span>&#160;            <span class="comment">//  for all of anarchic code injection to get rudimentary events like &quot;Resize()&quot;.</span></div>
+<div class="line"><a name="l05130"></a><span class="lineno"> 5130</span>&#160;            <span class="comment">//</span></div>
+<div class="line"><a name="l05131"></a><span class="lineno"> 5131</span>&#160;            <span class="comment">//  Wake up people! Of course theres a spoon. There has to be to keep feeding</span></div>
+<div class="line"><a name="l05132"></a><span class="lineno"> 5132</span>&#160;            <span class="comment">//  the giant web baby.</span></div>
+<div class="line"><a name="l05133"></a><span class="lineno"> 5133</span>&#160;            </div>
+<div class="line"><a name="l05134"></a><span class="lineno"> 5134</span>&#160; </div>
+<div class="line"><a name="l05135"></a><span class="lineno"> 5135</span>&#160;            <span class="comment">// Fullscreen and Resize Observers</span></div>
+<div class="line"><a name="l05136"></a><span class="lineno"> 5136</span>&#160;            EM_ASM({</div>
+<div class="line"><a name="l05137"></a><span class="lineno"> 5137</span>&#160; </div>
+<div class="line"><a name="l05138"></a><span class="lineno"> 5138</span>&#160;            <span class="comment">// cache for reuse</span></div>
+<div class="line"><a name="l05139"></a><span class="lineno"> 5139</span>&#160;            Module._olc_EmscriptenShellCss = <span class="stringliteral">&quot;width: 100%; height: 70vh; margin-left: auto; margin-right: auto;&quot;</span>;</div>
+<div class="line"><a name="l05140"></a><span class="lineno"> 5140</span>&#160; </div>
+<div class="line"><a name="l05141"></a><span class="lineno"> 5141</span>&#160;            <span class="comment">// width / height = aspect ratio</span></div>
+<div class="line"><a name="l05142"></a><span class="lineno"> 5142</span>&#160;            Module._olc_WindowAspectRatio = $0 / $1;</div>
+<div class="line"><a name="l05143"></a><span class="lineno"> 5143</span>&#160;            Module.canvas.parentNode.addEventListener(<span class="stringliteral">&quot;resize&quot;</span>, (e) =&gt;  {</div>
+<div class="line"><a name="l05144"></a><span class="lineno"> 5144</span>&#160;                </div>
+<div class="line"><a name="l05145"></a><span class="lineno"> 5145</span>&#160;                <span class="keywordflow">if</span> (e.defaultPrevented) { e.stopPropagation();  return; }</div>
+<div class="line"><a name="l05146"></a><span class="lineno"> 5146</span>&#160;                var viewWidth = e.detail.width;</div>
+<div class="line"><a name="l05147"></a><span class="lineno"> 5147</span>&#160;                var viewHeight = e.detail.width / Module._olc_WindowAspectRatio;</div>
+<div class="line"><a name="l05148"></a><span class="lineno"> 5148</span>&#160;                if (viewHeight &gt; e.detail.height)</div>
+<div class="line"><a name="l05149"></a><span class="lineno"> 5149</span>&#160;                {</div>
+<div class="line"><a name="l05150"></a><span class="lineno"> 5150</span>&#160;                    viewHeight = e.detail.height;</div>
+<div class="line"><a name="l05151"></a><span class="lineno"> 5151</span>&#160;                    viewWidth = e.detail.height * Module._olc_WindowAspectRatio;</div>
+<div class="line"><a name="l05152"></a><span class="lineno"> 5152</span>&#160;                }</div>
+<div class="line"><a name="l05153"></a><span class="lineno"> 5153</span>&#160;                    </div>
+<div class="line"><a name="l05154"></a><span class="lineno"> 5154</span>&#160;                if (Module.canvas.parentNode.className == <span class="stringliteral">&#39;emscripten_border&#39;</span>)</div>
+<div class="line"><a name="l05155"></a><span class="lineno"> 5155</span>&#160;                    Module.canvas.parentNode.style.cssText = Module._olc_EmscriptenShellCss + <span class="stringliteral">&quot; width: &quot;</span> + viewWidth.toString() + <span class="stringliteral">&quot;px; height: &quot;</span> + viewHeight.toString() + <span class="stringliteral">&quot;px;&quot;</span>;</div>
+<div class="line"><a name="l05156"></a><span class="lineno"> 5156</span>&#160; </div>
+<div class="line"><a name="l05157"></a><span class="lineno"> 5157</span>&#160;                Module.canvas.setAttribute(<span class="stringliteral">&quot;width&quot;</span>, viewWidth);</div>
+<div class="line"><a name="l05158"></a><span class="lineno"> 5158</span>&#160;                Module.canvas.setAttribute(<span class="stringliteral">&quot;height&quot;</span>, viewHeight);</div>
+<div class="line"><a name="l05159"></a><span class="lineno"> 5159</span>&#160; </div>
+<div class="line"><a name="l05160"></a><span class="lineno"> 5160</span>&#160;                if (document.fullscreenElement != <span class="keyword">null</span>)</div>
+<div class="line"><a name="l05161"></a><span class="lineno"> 5161</span>&#160;                {                       </div>
+<div class="line"><a name="l05162"></a><span class="lineno"> 5162</span>&#160;                    var top = (e.detail.height - viewHeight) / 2;</div>
+<div class="line"><a name="l05163"></a><span class="lineno"> 5163</span>&#160;                    var left = (e.detail.width - viewWidth) / 2;</div>
+<div class="line"><a name="l05164"></a><span class="lineno"> 5164</span>&#160;                    Module.canvas.style.position = <span class="stringliteral">&quot;fixed&quot;</span>;</div>
+<div class="line"><a name="l05165"></a><span class="lineno"> 5165</span>&#160;                    Module.canvas.style.top = top.toString() + <span class="stringliteral">&quot;px&quot;</span>;</div>
+<div class="line"><a name="l05166"></a><span class="lineno"> 5166</span>&#160;                    Module.canvas.style.left = left.toString() + <span class="stringliteral">&quot;px&quot;</span>;</div>
+<div class="line"><a name="l05167"></a><span class="lineno"> 5167</span>&#160;                    Module.canvas.style.width = <span class="stringliteral">&quot;&quot;</span>;</div>
+<div class="line"><a name="l05168"></a><span class="lineno"> 5168</span>&#160;                    Module.canvas.style.height = <span class="stringliteral">&quot;&quot;</span>;</div>
+<div class="line"><a name="l05169"></a><span class="lineno"> 5169</span>&#160;                }</div>
+<div class="line"><a name="l05170"></a><span class="lineno"> 5170</span>&#160; </div>
+<div class="line"><a name="l05171"></a><span class="lineno"> 5171</span>&#160;                <span class="comment">// trigger PGE update</span></div>
+<div class="line"><a name="l05172"></a><span class="lineno"> 5172</span>&#160;                Module._olc_PGE_UpdateWindowSize(viewWidth, viewHeight);</div>
+<div class="line"><a name="l05173"></a><span class="lineno"> 5173</span>&#160;                <span class="comment">// this is really only needed when enter/exiting fullscreen</span></div>
+<div class="line"><a name="l05174"></a><span class="lineno"> 5174</span>&#160;                Module.canvas.focus();</div>
+<div class="line"><a name="l05175"></a><span class="lineno"> 5175</span>&#160;                <span class="comment">// prevent this event from ever affecting the document beyond this element</span></div>
+<div class="line"><a name="l05176"></a><span class="lineno"> 5176</span>&#160;                e.stopPropagation();</div>
+<div class="line"><a name="l05177"></a><span class="lineno"> 5177</span>&#160;            });</div>
+<div class="line"><a name="l05178"></a><span class="lineno"> 5178</span>&#160; </div>
+<div class="line"><a name="l05179"></a><span class="lineno"> 5179</span>&#160;            <span class="comment">// helper function to prevent repeating the same code everywhere</span></div>
+<div class="line"><a name="l05180"></a><span class="lineno"> 5180</span>&#160;            Module._olc_ResizeCanvas = () =&gt;</div>
+<div class="line"><a name="l05181"></a><span class="lineno"> 5181</span>&#160;            {</div>
+<div class="line"><a name="l05182"></a><span class="lineno"> 5182</span>&#160;                <span class="comment">// yes, we still have to wait, sigh..</span></div>
+<div class="line"><a name="l05183"></a><span class="lineno"> 5183</span>&#160;                setTimeout(() =&gt; </div>
+<div class="line"><a name="l05184"></a><span class="lineno"> 5184</span>&#160;                {</div>
+<div class="line"><a name="l05185"></a><span class="lineno"> 5185</span>&#160;                    <span class="comment">// if default template, stretch width as well</span></div>
+<div class="line"><a name="l05186"></a><span class="lineno"> 5186</span>&#160;                    <span class="keywordflow">if</span> (Module.canvas.parentNode.className == <span class="stringliteral">&#39;emscripten_border&#39;</span>)</div>
+<div class="line"><a name="l05187"></a><span class="lineno"> 5187</span>&#160;                        Module.canvas.parentNode.style.cssText = Module._olc_EmscriptenShellCss;</div>
+<div class="line"><a name="l05188"></a><span class="lineno"> 5188</span>&#160; </div>
+<div class="line"><a name="l05189"></a><span class="lineno"> 5189</span>&#160;                    <span class="comment">// override it&#39;s styling so we can get it&#39;s stretched size</span></div>
+<div class="line"><a name="l05190"></a><span class="lineno"> 5190</span>&#160;                    Module.canvas.style.cssText = <span class="stringliteral">&quot;width: 100%; height: 100%; outline: none;&quot;</span>;</div>
+<div class="line"><a name="l05191"></a><span class="lineno"> 5191</span>&#160; </div>
+<div class="line"><a name="l05192"></a><span class="lineno"> 5192</span>&#160;                    <span class="comment">// setup custom resize event</span></div>
+<div class="line"><a name="l05193"></a><span class="lineno"> 5193</span>&#160;                    var resizeEvent = <span class="keyword">new</span> CustomEvent(<span class="stringliteral">&#39;resize&#39;</span>, </div>
+<div class="line"><a name="l05194"></a><span class="lineno"> 5194</span>&#160;                    {</div>
+<div class="line"><a name="l05195"></a><span class="lineno"> 5195</span>&#160;                        detail: {</div>
+<div class="line"><a name="l05196"></a><span class="lineno"> 5196</span>&#160;                            width: Module.canvas.clientWidth,</div>
+<div class="line"><a name="l05197"></a><span class="lineno"> 5197</span>&#160;                            height : Module.canvas.clientHeight</div>
+<div class="line"><a name="l05198"></a><span class="lineno"> 5198</span>&#160;                        },</div>
+<div class="line"><a name="l05199"></a><span class="lineno"> 5199</span>&#160;                        bubbles : <span class="keyword">true</span>,</div>
+<div class="line"><a name="l05200"></a><span class="lineno"> 5200</span>&#160;                        cancelable : <span class="keyword">true</span></div>
+<div class="line"><a name="l05201"></a><span class="lineno"> 5201</span>&#160;                    });</div>
+<div class="line"><a name="l05202"></a><span class="lineno"> 5202</span>&#160; </div>
+<div class="line"><a name="l05203"></a><span class="lineno"> 5203</span>&#160;                    <span class="comment">// trigger custom resize event on canvas element</span></div>
+<div class="line"><a name="l05204"></a><span class="lineno"> 5204</span>&#160;                    Module.canvas.dispatchEvent(resizeEvent);</div>
+<div class="line"><a name="l05205"></a><span class="lineno"> 5205</span>&#160;                }, 50);</div>
+<div class="line"><a name="l05206"></a><span class="lineno"> 5206</span>&#160;            };</div>
+<div class="line"><a name="l05207"></a><span class="lineno"> 5207</span>&#160; </div>
+<div class="line"><a name="l05208"></a><span class="lineno"> 5208</span>&#160; </div>
+<div class="line"><a name="l05209"></a><span class="lineno"> 5209</span>&#160;            <span class="comment">// Disable Refresh Gesture on mobile</span></div>
+<div class="line"><a name="l05210"></a><span class="lineno"> 5210</span>&#160;            document.body.style.cssText += <span class="stringliteral">&quot; overscroll-behavior-y: contain;&quot;</span>;</div>
+<div class="line"><a name="l05211"></a><span class="lineno"> 5211</span>&#160; </div>
+<div class="line"><a name="l05212"></a><span class="lineno"> 5212</span>&#160;            <span class="keywordflow">if</span> (Module.canvas.parentNode.className == <span class="stringliteral">&#39;emscripten_border&#39;</span>)</div>
+<div class="line"><a name="l05213"></a><span class="lineno"> 5213</span>&#160;            {</div>
+<div class="line"><a name="l05214"></a><span class="lineno"> 5214</span>&#160;                <span class="comment">// force body to have no margin in emscripten&#39;s minimal shell</span></div>
+<div class="line"><a name="l05215"></a><span class="lineno"> 5215</span>&#160;                document.body.style.margin = <span class="stringliteral">&quot;0&quot;</span>;</div>
+<div class="line"><a name="l05216"></a><span class="lineno"> 5216</span>&#160;                Module.canvas.parentNode.style.cssText = Module._olc_EmscriptenShellCss;</div>
+<div class="line"><a name="l05217"></a><span class="lineno"> 5217</span>&#160;            }</div>
+<div class="line"><a name="l05218"></a><span class="lineno"> 5218</span>&#160; </div>
+<div class="line"><a name="l05219"></a><span class="lineno"> 5219</span>&#160;            Module._olc_ResizeCanvas();</div>
+<div class="line"><a name="l05220"></a><span class="lineno"> 5220</span>&#160; </div>
+<div class="line"><a name="l05221"></a><span class="lineno"> 5221</span>&#160;            <span class="comment">// observe and react to resizing of the container element</span></div>
+<div class="line"><a name="l05222"></a><span class="lineno"> 5222</span>&#160;            var resizeObserver = <span class="keyword">new</span> ResizeObserver((entries) =&gt; {Module._olc_ResizeCanvas();}).observe(Module.canvas.parentNode);</div>
+<div class="line"><a name="l05223"></a><span class="lineno"> 5223</span>&#160; </div>
+<div class="line"><a name="l05224"></a><span class="lineno"> 5224</span>&#160;            <span class="comment">// observe and react to changes that occur when entering/exiting fullscreen</span></div>
+<div class="line"><a name="l05225"></a><span class="lineno"> 5225</span>&#160;            var mutationObserver = <span class="keyword">new</span> MutationObserver((mutationsList, observer) =&gt; </div>
+<div class="line"><a name="l05226"></a><span class="lineno"> 5226</span>&#160;            {</div>
+<div class="line"><a name="l05227"></a><span class="lineno"> 5227</span>&#160;                <span class="comment">// a change has occurred, let&#39;s check them out!</span></div>
+<div class="line"><a name="l05228"></a><span class="lineno"> 5228</span>&#160;                <span class="keywordflow">for</span> (var i = 0; i &lt; mutationsList.length; i++)</div>
+<div class="line"><a name="l05229"></a><span class="lineno"> 5229</span>&#160;                {</div>
+<div class="line"><a name="l05230"></a><span class="lineno"> 5230</span>&#160;                    <span class="comment">// cycle through all of the newly added elements</span></div>
+<div class="line"><a name="l05231"></a><span class="lineno"> 5231</span>&#160;                    <span class="keywordflow">for</span> (var j = 0; j &lt; mutationsList[i].addedNodes.length; j++)</div>
+<div class="line"><a name="l05232"></a><span class="lineno"> 5232</span>&#160;                    {</div>
+<div class="line"><a name="l05233"></a><span class="lineno"> 5233</span>&#160;                        <span class="comment">// if this element is a our canvas, trigger resize</span></div>
+<div class="line"><a name="l05234"></a><span class="lineno"> 5234</span>&#160;                        <span class="keywordflow">if</span> (mutationsList[i].addedNodes[j].<span class="keywordtype">id</span> == <span class="stringliteral">&#39;canvas&#39;</span>)</div>
+<div class="line"><a name="l05235"></a><span class="lineno"> 5235</span>&#160;                            Module._olc_ResizeCanvas();</div>
+<div class="line"><a name="l05236"></a><span class="lineno"> 5236</span>&#160;                    }</div>
+<div class="line"><a name="l05237"></a><span class="lineno"> 5237</span>&#160;                }</div>
+<div class="line"><a name="l05238"></a><span class="lineno"> 5238</span>&#160;            }).observe(Module.canvas.parentNode, </div>
+<div class="line"><a name="l05239"></a><span class="lineno"> 5239</span>&#160;            {</div>
+<div class="line"><a name="l05240"></a><span class="lineno"> 5240</span>&#160;                attributes: false,</div>
+<div class="line"><a name="l05241"></a><span class="lineno"> 5241</span>&#160;                childList : true,</div>
+<div class="line"><a name="l05242"></a><span class="lineno"> 5242</span>&#160;                subtree : false</div>
+<div class="line"><a name="l05243"></a><span class="lineno"> 5243</span>&#160;            });</div>
+<div class="line"><a name="l05244"></a><span class="lineno"> 5244</span>&#160; </div>
+<div class="line"><a name="l05245"></a><span class="lineno"> 5245</span>&#160;            <span class="comment">// add resize listener on window</span></div>
+<div class="line"><a name="l05246"></a><span class="lineno"> 5246</span>&#160;            window.addEventListener(<span class="stringliteral">&quot;resize&quot;</span>, (e) =&gt; { Module._olc_ResizeCanvas(); });</div>
+<div class="line"><a name="l05247"></a><span class="lineno"> 5247</span>&#160; </div>
+<div class="line"><a name="l05248"></a><span class="lineno"> 5248</span>&#160;            }, vWindowSize.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a>, vWindowSize.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a>); <span class="comment">// Fullscreen and Resize Observers</span></div>
+<div class="line"><a name="l05249"></a><span class="lineno"> 5249</span>&#160;<span class="preprocessor">#pragma warning restore format</span></div>
+<div class="line"><a name="l05250"></a><span class="lineno"> 5250</span>&#160;            <span class="keywordflow">return</span> <a class="code" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87ba0178b5f8abe39121e6f14d3c6c093a82">olc::rcode::OK</a>;</div>
+<div class="line"><a name="l05251"></a><span class="lineno"> 5251</span>&#160;        }</div>
+<div class="line"><a name="l05252"></a><span class="lineno"> 5252</span>&#160; </div>
+<div class="line"><a name="l05253"></a><span class="lineno"> 5253</span>&#160;        <span class="comment">// Interface PGE&#39;s UpdateWindowSize, for use in Javascript</span></div>
+<div class="line"><a name="l05254"></a><span class="lineno"> 5254</span>&#160;        <span class="keywordtype">void</span> UpdateWindowSize(<span class="keywordtype">int</span> width, <span class="keywordtype">int</span> height)</div>
+<div class="line"><a name="l05255"></a><span class="lineno"> 5255</span>&#160;        {</div>
+<div class="line"><a name="l05256"></a><span class="lineno"> 5256</span>&#160;            ptrPGE-&gt;olc_UpdateWindowSize(width, height);</div>
+<div class="line"><a name="l05257"></a><span class="lineno"> 5257</span>&#160;        }</div>
+<div class="line"><a name="l05258"></a><span class="lineno"> 5258</span>&#160; </div>
+<div class="line"><a name="l05259"></a><span class="lineno"> 5259</span>&#160;        <span class="comment">//TY Gorbit</span></div>
+<div class="line"><a name="l05260"></a><span class="lineno"> 5260</span>&#160;        <span class="keyword">static</span> EM_BOOL focus_callback(<span class="keywordtype">int</span> eventType, <span class="keyword">const</span> EmscriptenFocusEvent* focusEvent, <span class="keywordtype">void</span>* userData) </div>
+<div class="line"><a name="l05261"></a><span class="lineno"> 5261</span>&#160;        {</div>
+<div class="line"><a name="l05262"></a><span class="lineno"> 5262</span>&#160;            <span class="keywordflow">if</span> (eventType == EMSCRIPTEN_EVENT_BLUR)</div>
+<div class="line"><a name="l05263"></a><span class="lineno"> 5263</span>&#160;            {</div>
+<div class="line"><a name="l05264"></a><span class="lineno"> 5264</span>&#160;                ptrPGE-&gt;olc_UpdateKeyFocus(<span class="keyword">false</span>);</div>
+<div class="line"><a name="l05265"></a><span class="lineno"> 5265</span>&#160;                ptrPGE-&gt;olc_UpdateMouseFocus(<span class="keyword">false</span>);</div>
+<div class="line"><a name="l05266"></a><span class="lineno"> 5266</span>&#160;            }</div>
+<div class="line"><a name="l05267"></a><span class="lineno"> 5267</span>&#160;            <span class="keywordflow">else</span> <span class="keywordflow">if</span> (eventType == EMSCRIPTEN_EVENT_FOCUS)</div>
+<div class="line"><a name="l05268"></a><span class="lineno"> 5268</span>&#160;            {</div>
+<div class="line"><a name="l05269"></a><span class="lineno"> 5269</span>&#160;                ptrPGE-&gt;olc_UpdateKeyFocus(<span class="keyword">true</span>);</div>
+<div class="line"><a name="l05270"></a><span class="lineno"> 5270</span>&#160;                ptrPGE-&gt;olc_UpdateMouseFocus(<span class="keyword">true</span>);</div>
+<div class="line"><a name="l05271"></a><span class="lineno"> 5271</span>&#160;            }</div>
+<div class="line"><a name="l05272"></a><span class="lineno"> 5272</span>&#160; </div>
+<div class="line"><a name="l05273"></a><span class="lineno"> 5273</span>&#160;            <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a name="l05274"></a><span class="lineno"> 5274</span>&#160;        }</div>
+<div class="line"><a name="l05275"></a><span class="lineno"> 5275</span>&#160; </div>
+<div class="line"><a name="l05276"></a><span class="lineno"> 5276</span>&#160;        <span class="comment">//TY Moros</span></div>
+<div class="line"><a name="l05277"></a><span class="lineno"> 5277</span>&#160;        <span class="keyword">static</span> EM_BOOL keyboard_callback(<span class="keywordtype">int</span> eventType, <span class="keyword">const</span> EmscriptenKeyboardEvent* e, <span class="keywordtype">void</span>* userData)</div>
+<div class="line"><a name="l05278"></a><span class="lineno"> 5278</span>&#160;        {</div>
+<div class="line"><a name="l05279"></a><span class="lineno"> 5279</span>&#160;            <span class="keywordflow">if</span> (eventType == EMSCRIPTEN_EVENT_KEYDOWN)</div>
+<div class="line"><a name="l05280"></a><span class="lineno"> 5280</span>&#160;                ptrPGE-&gt;olc_UpdateKeyState(mapKeys[emscripten_compute_dom_pk_code(e-&gt;code)], <span class="keyword">true</span>);</div>
+<div class="line"><a name="l05281"></a><span class="lineno"> 5281</span>&#160; </div>
+<div class="line"><a name="l05282"></a><span class="lineno"> 5282</span>&#160;            <span class="comment">// THANK GOD!! for this compute function. And thanks Dandistine for pointing it out!</span></div>
+<div class="line"><a name="l05283"></a><span class="lineno"> 5283</span>&#160;            <span class="keywordflow">if</span> (eventType == EMSCRIPTEN_EVENT_KEYUP)</div>
+<div class="line"><a name="l05284"></a><span class="lineno"> 5284</span>&#160;                ptrPGE-&gt;olc_UpdateKeyState(mapKeys[emscripten_compute_dom_pk_code(e-&gt;code)], <span class="keyword">false</span>);</div>
+<div class="line"><a name="l05285"></a><span class="lineno"> 5285</span>&#160; </div>
+<div class="line"><a name="l05286"></a><span class="lineno"> 5286</span>&#160;            <span class="comment">//Consume keyboard events so that keys like F1 and F5 don&#39;t do weird things</span></div>
+<div class="line"><a name="l05287"></a><span class="lineno"> 5287</span>&#160;            <span class="keywordflow">return</span> EM_TRUE;</div>
+<div class="line"><a name="l05288"></a><span class="lineno"> 5288</span>&#160;        }</div>
+<div class="line"><a name="l05289"></a><span class="lineno"> 5289</span>&#160; </div>
+<div class="line"><a name="l05290"></a><span class="lineno"> 5290</span>&#160;        <span class="comment">//TY Moros</span></div>
+<div class="line"><a name="l05291"></a><span class="lineno"> 5291</span>&#160;        <span class="keyword">static</span> EM_BOOL wheel_callback(<span class="keywordtype">int</span> eventType, <span class="keyword">const</span> EmscriptenWheelEvent* e, <span class="keywordtype">void</span>* userData)</div>
+<div class="line"><a name="l05292"></a><span class="lineno"> 5292</span>&#160;        {</div>
+<div class="line"><a name="l05293"></a><span class="lineno"> 5293</span>&#160;            <span class="keywordflow">if</span> (eventType == EMSCRIPTEN_EVENT_WHEEL)</div>
+<div class="line"><a name="l05294"></a><span class="lineno"> 5294</span>&#160;                ptrPGE-&gt;olc_UpdateMouseWheel(-1 * e-&gt;deltaY);</div>
+<div class="line"><a name="l05295"></a><span class="lineno"> 5295</span>&#160; </div>
+<div class="line"><a name="l05296"></a><span class="lineno"> 5296</span>&#160;            <span class="keywordflow">return</span> EM_TRUE;</div>
+<div class="line"><a name="l05297"></a><span class="lineno"> 5297</span>&#160;        }</div>
+<div class="line"><a name="l05298"></a><span class="lineno"> 5298</span>&#160; </div>
+<div class="line"><a name="l05299"></a><span class="lineno"> 5299</span>&#160;        <span class="comment">//TY Bispoo</span></div>
+<div class="line"><a name="l05300"></a><span class="lineno"> 5300</span>&#160;        <span class="keyword">static</span> EM_BOOL touch_callback(<span class="keywordtype">int</span> eventType, <span class="keyword">const</span> EmscriptenTouchEvent* e, <span class="keywordtype">void</span>* userData)</div>
+<div class="line"><a name="l05301"></a><span class="lineno"> 5301</span>&#160;        {</div>
+<div class="line"><a name="l05302"></a><span class="lineno"> 5302</span>&#160;            <span class="comment">// Move</span></div>
+<div class="line"><a name="l05303"></a><span class="lineno"> 5303</span>&#160;            <span class="keywordflow">if</span> (eventType == EMSCRIPTEN_EVENT_TOUCHMOVE)</div>
+<div class="line"><a name="l05304"></a><span class="lineno"> 5304</span>&#160;            {</div>
+<div class="line"><a name="l05305"></a><span class="lineno"> 5305</span>&#160;                ptrPGE-&gt;olc_UpdateMouse(e-&gt;touches-&gt;targetX, e-&gt;touches-&gt;targetY);</div>
+<div class="line"><a name="l05306"></a><span class="lineno"> 5306</span>&#160;            }</div>
+<div class="line"><a name="l05307"></a><span class="lineno"> 5307</span>&#160; </div>
+<div class="line"><a name="l05308"></a><span class="lineno"> 5308</span>&#160;            <span class="comment">// Start</span></div>
+<div class="line"><a name="l05309"></a><span class="lineno"> 5309</span>&#160;            <span class="keywordflow">if</span> (eventType == EMSCRIPTEN_EVENT_TOUCHSTART)</div>
+<div class="line"><a name="l05310"></a><span class="lineno"> 5310</span>&#160;            {</div>
+<div class="line"><a name="l05311"></a><span class="lineno"> 5311</span>&#160;                ptrPGE-&gt;olc_UpdateMouse(e-&gt;touches-&gt;targetX, e-&gt;touches-&gt;targetY);</div>
+<div class="line"><a name="l05312"></a><span class="lineno"> 5312</span>&#160;                ptrPGE-&gt;olc_UpdateMouseState(0, <span class="keyword">true</span>);</div>
+<div class="line"><a name="l05313"></a><span class="lineno"> 5313</span>&#160;            }</div>
+<div class="line"><a name="l05314"></a><span class="lineno"> 5314</span>&#160; </div>
+<div class="line"><a name="l05315"></a><span class="lineno"> 5315</span>&#160;            <span class="comment">// End</span></div>
+<div class="line"><a name="l05316"></a><span class="lineno"> 5316</span>&#160;            <span class="keywordflow">if</span> (eventType == EMSCRIPTEN_EVENT_TOUCHEND)</div>
+<div class="line"><a name="l05317"></a><span class="lineno"> 5317</span>&#160;            {</div>
+<div class="line"><a name="l05318"></a><span class="lineno"> 5318</span>&#160;                ptrPGE-&gt;olc_UpdateMouseState(0, <span class="keyword">false</span>);</div>
+<div class="line"><a name="l05319"></a><span class="lineno"> 5319</span>&#160;            }</div>
+<div class="line"><a name="l05320"></a><span class="lineno"> 5320</span>&#160; </div>
+<div class="line"><a name="l05321"></a><span class="lineno"> 5321</span>&#160;            <span class="keywordflow">return</span> EM_TRUE;</div>
+<div class="line"><a name="l05322"></a><span class="lineno"> 5322</span>&#160;        }</div>
+<div class="line"><a name="l05323"></a><span class="lineno"> 5323</span>&#160; </div>
+<div class="line"><a name="l05324"></a><span class="lineno"> 5324</span>&#160;        <span class="comment">//TY Moros</span></div>
+<div class="line"><a name="l05325"></a><span class="lineno"> 5325</span>&#160;        <span class="keyword">static</span> EM_BOOL mouse_callback(<span class="keywordtype">int</span> eventType, <span class="keyword">const</span> EmscriptenMouseEvent* e, <span class="keywordtype">void</span>* userData)</div>
+<div class="line"><a name="l05326"></a><span class="lineno"> 5326</span>&#160;        {</div>
+<div class="line"><a name="l05327"></a><span class="lineno"> 5327</span>&#160;            <span class="comment">//Mouse Movement</span></div>
+<div class="line"><a name="l05328"></a><span class="lineno"> 5328</span>&#160;            <span class="keywordflow">if</span> (eventType == EMSCRIPTEN_EVENT_MOUSEMOVE)</div>
+<div class="line"><a name="l05329"></a><span class="lineno"> 5329</span>&#160;                ptrPGE-&gt;olc_UpdateMouse(e-&gt;targetX, e-&gt;targetY);</div>
+<div class="line"><a name="l05330"></a><span class="lineno"> 5330</span>&#160; </div>
+<div class="line"><a name="l05331"></a><span class="lineno"> 5331</span>&#160; </div>
+<div class="line"><a name="l05332"></a><span class="lineno"> 5332</span>&#160;            <span class="comment">//Mouse button press</span></div>
+<div class="line"><a name="l05333"></a><span class="lineno"> 5333</span>&#160;            <span class="keywordflow">if</span> (e-&gt;button == 0) <span class="comment">// left click</span></div>
+<div class="line"><a name="l05334"></a><span class="lineno"> 5334</span>&#160;            {</div>
+<div class="line"><a name="l05335"></a><span class="lineno"> 5335</span>&#160;                <span class="keywordflow">if</span> (eventType == EMSCRIPTEN_EVENT_MOUSEDOWN)</div>
+<div class="line"><a name="l05336"></a><span class="lineno"> 5336</span>&#160;                    ptrPGE-&gt;olc_UpdateMouseState(0, <span class="keyword">true</span>);</div>
+<div class="line"><a name="l05337"></a><span class="lineno"> 5337</span>&#160;                <span class="keywordflow">else</span> <span class="keywordflow">if</span> (eventType == EMSCRIPTEN_EVENT_MOUSEUP)</div>
+<div class="line"><a name="l05338"></a><span class="lineno"> 5338</span>&#160;                    ptrPGE-&gt;olc_UpdateMouseState(0, <span class="keyword">false</span>);</div>
+<div class="line"><a name="l05339"></a><span class="lineno"> 5339</span>&#160;            }</div>
+<div class="line"><a name="l05340"></a><span class="lineno"> 5340</span>&#160; </div>
+<div class="line"><a name="l05341"></a><span class="lineno"> 5341</span>&#160;            <span class="keywordflow">if</span> (e-&gt;button == 2) <span class="comment">// right click</span></div>
+<div class="line"><a name="l05342"></a><span class="lineno"> 5342</span>&#160;            {</div>
+<div class="line"><a name="l05343"></a><span class="lineno"> 5343</span>&#160;                <span class="keywordflow">if</span> (eventType == EMSCRIPTEN_EVENT_MOUSEDOWN)</div>
+<div class="line"><a name="l05344"></a><span class="lineno"> 5344</span>&#160;                    ptrPGE-&gt;olc_UpdateMouseState(1, <span class="keyword">true</span>);</div>
+<div class="line"><a name="l05345"></a><span class="lineno"> 5345</span>&#160;                <span class="keywordflow">else</span> <span class="keywordflow">if</span> (eventType == EMSCRIPTEN_EVENT_MOUSEUP)</div>
+<div class="line"><a name="l05346"></a><span class="lineno"> 5346</span>&#160;                    ptrPGE-&gt;olc_UpdateMouseState(1, <span class="keyword">false</span>);</div>
+<div class="line"><a name="l05347"></a><span class="lineno"> 5347</span>&#160; </div>
+<div class="line"><a name="l05348"></a><span class="lineno"> 5348</span>&#160;            }</div>
+<div class="line"><a name="l05349"></a><span class="lineno"> 5349</span>&#160; </div>
+<div class="line"><a name="l05350"></a><span class="lineno"> 5350</span>&#160;            <span class="keywordflow">if</span> (e-&gt;button == 1) <span class="comment">// middle click</span></div>
+<div class="line"><a name="l05351"></a><span class="lineno"> 5351</span>&#160;            {</div>
+<div class="line"><a name="l05352"></a><span class="lineno"> 5352</span>&#160;                <span class="keywordflow">if</span> (eventType == EMSCRIPTEN_EVENT_MOUSEDOWN)</div>
+<div class="line"><a name="l05353"></a><span class="lineno"> 5353</span>&#160;                    ptrPGE-&gt;olc_UpdateMouseState(2, <span class="keyword">true</span>);</div>
+<div class="line"><a name="l05354"></a><span class="lineno"> 5354</span>&#160;                <span class="keywordflow">else</span> <span class="keywordflow">if</span> (eventType == EMSCRIPTEN_EVENT_MOUSEUP)</div>
+<div class="line"><a name="l05355"></a><span class="lineno"> 5355</span>&#160;                    ptrPGE-&gt;olc_UpdateMouseState(2, <span class="keyword">false</span>);</div>
+<div class="line"><a name="l05356"></a><span class="lineno"> 5356</span>&#160; </div>
+<div class="line"><a name="l05357"></a><span class="lineno"> 5357</span>&#160;                <span class="comment">//at the moment only middle mouse needs to consume events.</span></div>
+<div class="line"><a name="l05358"></a><span class="lineno"> 5358</span>&#160;                <span class="keywordflow">return</span> EM_TRUE;</div>
+<div class="line"><a name="l05359"></a><span class="lineno"> 5359</span>&#160;            }</div>
+<div class="line"><a name="l05360"></a><span class="lineno"> 5360</span>&#160; </div>
+<div class="line"><a name="l05361"></a><span class="lineno"> 5361</span>&#160;            <span class="keywordflow">return</span> EM_FALSE;</div>
+<div class="line"><a name="l05362"></a><span class="lineno"> 5362</span>&#160;        }</div>
+<div class="line"><a name="l05363"></a><span class="lineno"> 5363</span>&#160; </div>
+<div class="line"><a name="l05364"></a><span class="lineno"> 5364</span>&#160; </div>
+<div class="line"><a name="l05365"></a><span class="lineno"> 5365</span>&#160;        <span class="keyword">virtual</span> <a class="code" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87b">olc::rcode</a> SetWindowTitle(<span class="keyword">const</span> std::string&amp; s)<span class="keyword"> override</span></div>
+<div class="line"><a name="l05366"></a><span class="lineno"> 5366</span>&#160;<span class="keyword">        </span>{ emscripten_set_window_title(s.c_str()); <span class="keywordflow">return</span> <a class="code" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87ba0178b5f8abe39121e6f14d3c6c093a82">olc::OK</a>; }</div>
+<div class="line"><a name="l05367"></a><span class="lineno"> 5367</span>&#160; </div>
+<div class="line"><a name="l05368"></a><span class="lineno"> 5368</span>&#160;        <span class="keyword">virtual</span> <a class="code" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87b">olc::rcode</a> StartSystemEventLoop()<span class="keyword"> override </span></div>
+<div class="line"><a name="l05369"></a><span class="lineno"> 5369</span>&#160;<span class="keyword">        </span>{ <span class="keywordflow">return</span> <a class="code" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87ba0178b5f8abe39121e6f14d3c6c093a82">olc::OK</a>; }</div>
+<div class="line"><a name="l05370"></a><span class="lineno"> 5370</span>&#160; </div>
+<div class="line"><a name="l05371"></a><span class="lineno"> 5371</span>&#160;        <span class="keyword">virtual</span> <a class="code" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87b">olc::rcode</a> HandleSystemEvent()<span class="keyword"> override</span></div>
+<div class="line"><a name="l05372"></a><span class="lineno"> 5372</span>&#160;<span class="keyword">        </span>{ <span class="keywordflow">return</span> <a class="code" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87ba0178b5f8abe39121e6f14d3c6c093a82">olc::OK</a>; }</div>
+<div class="line"><a name="l05373"></a><span class="lineno"> 5373</span>&#160; </div>
+<div class="line"><a name="l05374"></a><span class="lineno"> 5374</span>&#160;        <span class="keyword">static</span> <span class="keywordtype">void</span> MainLoop()</div>
+<div class="line"><a name="l05375"></a><span class="lineno"> 5375</span>&#160;        {</div>
+<div class="line"><a name="l05376"></a><span class="lineno"> 5376</span>&#160;            <a class="code" href="classolc_1_1_platform.html#a43a4a5eaaf20384b9cef6aec6e75dbbd">olc::Platform::ptrPGE</a>-&gt;<a class="code" href="classolc_1_1_pixel_game_engine.html#a0018131435f88bb5de406fd11ee54058">olc_CoreUpdate</a>();</div>
+<div class="line"><a name="l05377"></a><span class="lineno"> 5377</span>&#160;            <span class="keywordflow">if</span> (!ptrPGE-&gt;olc_IsRunning())</div>
+<div class="line"><a name="l05378"></a><span class="lineno"> 5378</span>&#160;            {</div>
+<div class="line"><a name="l05379"></a><span class="lineno"> 5379</span>&#160;                <span class="keywordflow">if</span> (ptrPGE-&gt;OnUserDestroy())</div>
+<div class="line"><a name="l05380"></a><span class="lineno"> 5380</span>&#160;                {</div>
+<div class="line"><a name="l05381"></a><span class="lineno"> 5381</span>&#160;                    emscripten_cancel_main_loop();</div>
+<div class="line"><a name="l05382"></a><span class="lineno"> 5382</span>&#160;                    platform-&gt;ApplicationCleanUp();</div>
+<div class="line"><a name="l05383"></a><span class="lineno"> 5383</span>&#160;                }</div>
+<div class="line"><a name="l05384"></a><span class="lineno"> 5384</span>&#160;                <span class="keywordflow">else</span></div>
+<div class="line"><a name="l05385"></a><span class="lineno"> 5385</span>&#160;                {</div>
+<div class="line"><a name="l05386"></a><span class="lineno"> 5386</span>&#160;                    ptrPGE-&gt;olc_Reanimate();</div>
+<div class="line"><a name="l05387"></a><span class="lineno"> 5387</span>&#160;                }</div>
+<div class="line"><a name="l05388"></a><span class="lineno"> 5388</span>&#160;            }</div>
+<div class="line"><a name="l05389"></a><span class="lineno"> 5389</span>&#160;        }</div>
+<div class="line"><a name="l05390"></a><span class="lineno"> 5390</span>&#160;    };</div>
+<div class="line"><a name="l05391"></a><span class="lineno"> 5391</span>&#160; </div>
+<div class="line"><a name="l05392"></a><span class="lineno"> 5392</span>&#160;    <span class="comment">//Emscripten needs a special Start function</span></div>
+<div class="line"><a name="l05393"></a><span class="lineno"> 5393</span>&#160;    <span class="comment">//Much of this is usually done in EngineThread, but that isn&#39;t used here</span></div>
+<div class="line"><a name="l05394"></a><span class="lineno"> 5394</span>&#160;    <a class="code" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87b">olc::rcode</a> <a class="code" href="classolc_1_1_pixel_game_engine.html#a8e8848aa1c743a1ec2cdaa14c87e5cde">PixelGameEngine::Start</a>()</div>
+<div class="line"><a name="l05395"></a><span class="lineno"> 5395</span>&#160;    {</div>
+<div class="line"><a name="l05396"></a><span class="lineno"> 5396</span>&#160;        <span class="keywordflow">if</span> (platform-&gt;ApplicationStartUp() != <a class="code" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87ba0178b5f8abe39121e6f14d3c6c093a82">olc::OK</a>) <span class="keywordflow">return</span> <a class="code" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87baadc8ac6e9769db5bb290fbf5f8284dbf">olc::FAIL</a>;</div>
+<div class="line"><a name="l05397"></a><span class="lineno"> 5397</span>&#160; </div>
+<div class="line"><a name="l05398"></a><span class="lineno"> 5398</span>&#160;        <span class="comment">// Construct the window</span></div>
+<div class="line"><a name="l05399"></a><span class="lineno"> 5399</span>&#160;        <span class="keywordflow">if</span> (platform-&gt;CreateWindowPane({ 30,30 }, vWindowSize, bFullScreen) != <a class="code" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87ba0178b5f8abe39121e6f14d3c6c093a82">olc::OK</a>) <span class="keywordflow">return</span> <a class="code" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87baadc8ac6e9769db5bb290fbf5f8284dbf">olc::FAIL</a>;</div>
+<div class="line"><a name="l05400"></a><span class="lineno"> 5400</span>&#160;        olc_UpdateWindowSize(vWindowSize.<a class="code" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a>, vWindowSize.<a class="code" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a>);</div>
+<div class="line"><a name="l05401"></a><span class="lineno"> 5401</span>&#160; </div>
+<div class="line"><a name="l05402"></a><span class="lineno"> 5402</span>&#160;        <span class="comment">// Some implementations may form an event loop here</span></div>
+<div class="line"><a name="l05403"></a><span class="lineno"> 5403</span>&#160;        <span class="keywordflow">if</span> (platform-&gt;ThreadStartUp() == <a class="code" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87baadc8ac6e9769db5bb290fbf5f8284dbf">olc::FAIL</a>) <span class="keywordflow">return</span> <a class="code" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87baadc8ac6e9769db5bb290fbf5f8284dbf">olc::FAIL</a>;</div>
+<div class="line"><a name="l05404"></a><span class="lineno"> 5404</span>&#160; </div>
+<div class="line"><a name="l05405"></a><span class="lineno"> 5405</span>&#160;        <span class="comment">// Do engine context specific initialisation</span></div>
+<div class="line"><a name="l05406"></a><span class="lineno"> 5406</span>&#160;        olc_PrepareEngine();</div>
+<div class="line"><a name="l05407"></a><span class="lineno"> 5407</span>&#160; </div>
+<div class="line"><a name="l05408"></a><span class="lineno"> 5408</span>&#160;        <span class="comment">// Consider the &quot;thread&quot; started</span></div>
+<div class="line"><a name="l05409"></a><span class="lineno"> 5409</span>&#160;        bAtomActive = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l05410"></a><span class="lineno"> 5410</span>&#160; </div>
+<div class="line"><a name="l05411"></a><span class="lineno"> 5411</span>&#160;        <span class="comment">// Create user resources as part of this thread</span></div>
+<div class="line"><a name="l05412"></a><span class="lineno"> 5412</span>&#160;        <span class="keywordflow">for</span> (<span class="keyword">auto</span>&amp; ext : vExtensions) ext-&gt;OnBeforeUserCreate();</div>
+<div class="line"><a name="l05413"></a><span class="lineno"> 5413</span>&#160;        <span class="keywordflow">if</span> (!OnUserCreate()) bAtomActive = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l05414"></a><span class="lineno"> 5414</span>&#160;        <span class="keywordflow">for</span> (<span class="keyword">auto</span>&amp; ext : vExtensions) ext-&gt;OnAfterUserCreate();</div>
+<div class="line"><a name="l05415"></a><span class="lineno"> 5415</span>&#160; </div>
+<div class="line"><a name="l05416"></a><span class="lineno"> 5416</span>&#160;        platform-&gt;StartSystemEventLoop();</div>
+<div class="line"><a name="l05417"></a><span class="lineno"> 5417</span>&#160; </div>
+<div class="line"><a name="l05418"></a><span class="lineno"> 5418</span>&#160;        <span class="comment">//This causes a heap memory corruption in Emscripten for some reason</span></div>
+<div class="line"><a name="l05419"></a><span class="lineno"> 5419</span>&#160;        <span class="comment">//Platform_Emscripten::bActiveRef = &amp;bAtomActive;</span></div>
+<div class="line"><a name="l05420"></a><span class="lineno"> 5420</span>&#160;        emscripten_set_main_loop(&amp;Platform_Emscripten::MainLoop, 0, 1);</div>
+<div class="line"><a name="l05421"></a><span class="lineno"> 5421</span>&#160; </div>
+<div class="line"><a name="l05422"></a><span class="lineno"> 5422</span>&#160;        <span class="comment">// Wait for thread to be exited</span></div>
+<div class="line"><a name="l05423"></a><span class="lineno"> 5423</span>&#160;        <span class="keywordflow">if</span> (platform-&gt;ApplicationCleanUp() != <a class="code" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87ba0178b5f8abe39121e6f14d3c6c093a82">olc::OK</a>) <span class="keywordflow">return</span> <a class="code" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87baadc8ac6e9769db5bb290fbf5f8284dbf">olc::FAIL</a>;</div>
+<div class="line"><a name="l05424"></a><span class="lineno"> 5424</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87ba0178b5f8abe39121e6f14d3c6c093a82">olc::OK</a>;</div>
+<div class="line"><a name="l05425"></a><span class="lineno"> 5425</span>&#160;    }</div>
+<div class="line"><a name="l05426"></a><span class="lineno"> 5426</span>&#160;}</div>
+<div class="line"><a name="l05427"></a><span class="lineno"> 5427</span>&#160; </div>
+<div class="line"><a name="l05428"></a><span class="lineno"> 5428</span>&#160;<span class="keyword">extern</span> <span class="stringliteral">&quot;C&quot;</span> </div>
+<div class="line"><a name="l05429"></a><span class="lineno"> 5429</span>&#160;{</div>
+<div class="line"><a name="l05430"></a><span class="lineno"> 5430</span>&#160;    EMSCRIPTEN_KEEPALIVE <span class="keyword">inline</span> <span class="keywordtype">void</span> olc_PGE_UpdateWindowSize(<span class="keywordtype">int</span> width, <span class="keywordtype">int</span> height)</div>
+<div class="line"><a name="l05431"></a><span class="lineno"> 5431</span>&#160;    {</div>
+<div class="line"><a name="l05432"></a><span class="lineno"> 5432</span>&#160;        emscripten_set_canvas_element_size(<span class="stringliteral">&quot;#canvas&quot;</span>, width, height);</div>
+<div class="line"><a name="l05433"></a><span class="lineno"> 5433</span>&#160;        <span class="comment">// Thanks slavka</span></div>
+<div class="line"><a name="l05434"></a><span class="lineno"> 5434</span>&#160;        ((olc::Platform_Emscripten*)olc::platform.get())-&gt;UpdateWindowSize(width, height);</div>
+<div class="line"><a name="l05435"></a><span class="lineno"> 5435</span>&#160;    }</div>
+<div class="line"><a name="l05436"></a><span class="lineno"> 5436</span>&#160;}</div>
+<div class="line"><a name="l05437"></a><span class="lineno"> 5437</span>&#160; </div>
+<div class="line"><a name="l05438"></a><span class="lineno"> 5438</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l05439"></a><span class="lineno"> 5439</span>&#160;<span class="comment">// O------------------------------------------------------------------------------O</span></div>
+<div class="line"><a name="l05440"></a><span class="lineno"> 5440</span>&#160;<span class="comment">// | END PLATFORM: Emscripten                                                     |</span></div>
+<div class="line"><a name="l05441"></a><span class="lineno"> 5441</span>&#160;<span class="comment">// O------------------------------------------------------------------------------O</span></div>
+<div class="line"><a name="l05442"></a><span class="lineno"> 5442</span>&#160;<span class="preprocessor">#pragma endregion</span></div>
+<div class="line"><a name="l05443"></a><span class="lineno"> 5443</span>&#160; </div>
+<div class="line"><a name="l05444"></a><span class="lineno"> 5444</span>&#160; </div>
+<div class="line"><a name="l05445"></a><span class="lineno"> 5445</span>&#160;<span class="comment">// O------------------------------------------------------------------------------O</span></div>
+<div class="line"><a name="l05446"></a><span class="lineno"> 5446</span>&#160;<span class="comment">// | olcPixelGameEngine Auto-Configuration                                        |</span></div>
+<div class="line"><a name="l05447"></a><span class="lineno"> 5447</span>&#160;<span class="comment">// O------------------------------------------------------------------------------O</span></div>
+<div class="line"><a name="l05448"></a><span class="lineno"> 5448</span>&#160;<span class="preprocessor">#pragma region pge_config</span></div>
+<div class="line"><a name="l05449"></a><span class="lineno"> 5449</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespaceolc.html">olc</a></div>
+<div class="line"><a name="l05450"></a><span class="lineno"> 5450</span>&#160;{</div>
+<div class="line"><a name="l05451"></a><span class="lineno"> 5451</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classolc_1_1_pixel_game_engine.html#a7afa0b57c65bd5d9a54c602afd4fe756">PixelGameEngine::olc_ConfigureSystem</a>()</div>
+<div class="line"><a name="l05452"></a><span class="lineno"> 5452</span>&#160;    {</div>
+<div class="line"><a name="l05453"></a><span class="lineno"> 5453</span>&#160; </div>
+<div class="line"><a name="l05454"></a><span class="lineno"> 5454</span>&#160;<span class="preprocessor">#if defined(OLC_IMAGE_GDI)</span></div>
+<div class="line"><a name="l05455"></a><span class="lineno"> 5455</span>&#160;        <a class="code" href="classolc_1_1_sprite.html#a023da26661031ebf7a276cafd9a43902">olc::Sprite::loader</a> = std::make_unique&lt;olc::ImageLoader_GDIPlus&gt;();</div>
+<div class="line"><a name="l05456"></a><span class="lineno"> 5456</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l05457"></a><span class="lineno"> 5457</span>&#160; </div>
+<div class="line"><a name="l05458"></a><span class="lineno"> 5458</span>&#160;<span class="preprocessor">#if defined(OLC_IMAGE_LIBPNG)</span></div>
+<div class="line"><a name="l05459"></a><span class="lineno"> 5459</span>&#160;        <a class="code" href="classolc_1_1_sprite.html#a023da26661031ebf7a276cafd9a43902">olc::Sprite::loader</a> = std::make_unique&lt;olc::ImageLoader_LibPNG&gt;();</div>
+<div class="line"><a name="l05460"></a><span class="lineno"> 5460</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l05461"></a><span class="lineno"> 5461</span>&#160; </div>
+<div class="line"><a name="l05462"></a><span class="lineno"> 5462</span>&#160;<span class="preprocessor">#if defined(OLC_IMAGE_STB)</span></div>
+<div class="line"><a name="l05463"></a><span class="lineno"> 5463</span>&#160;        <a class="code" href="classolc_1_1_sprite.html#a023da26661031ebf7a276cafd9a43902">olc::Sprite::loader</a> = std::make_unique&lt;olc::ImageLoader_STB&gt;();</div>
+<div class="line"><a name="l05464"></a><span class="lineno"> 5464</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l05465"></a><span class="lineno"> 5465</span>&#160; </div>
+<div class="line"><a name="l05466"></a><span class="lineno"> 5466</span>&#160;<span class="preprocessor">#if defined(OLC_IMAGE_CUSTOM_EX)</span></div>
+<div class="line"><a name="l05467"></a><span class="lineno"> 5467</span>&#160;        <a class="code" href="classolc_1_1_sprite.html#a023da26661031ebf7a276cafd9a43902">olc::Sprite::loader</a> = std::make_unique&lt;OLC_IMAGE_CUSTOM_EX&gt;();</div>
+<div class="line"><a name="l05468"></a><span class="lineno"> 5468</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l05469"></a><span class="lineno"> 5469</span>&#160; </div>
+<div class="line"><a name="l05470"></a><span class="lineno"> 5470</span>&#160; </div>
+<div class="line"><a name="l05471"></a><span class="lineno"> 5471</span>&#160; </div>
+<div class="line"><a name="l05472"></a><span class="lineno"> 5472</span>&#160; </div>
+<div class="line"><a name="l05473"></a><span class="lineno"> 5473</span>&#160;<span class="preprocessor">#if defined(OLC_PLATFORM_WINAPI)</span></div>
+<div class="line"><a name="l05474"></a><span class="lineno"> 5474</span>&#160;        platform = std::make_unique&lt;olc::Platform_Windows&gt;();</div>
+<div class="line"><a name="l05475"></a><span class="lineno"> 5475</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l05476"></a><span class="lineno"> 5476</span>&#160; </div>
+<div class="line"><a name="l05477"></a><span class="lineno"> 5477</span>&#160;<span class="preprocessor">#if defined(OLC_PLATFORM_X11)</span></div>
+<div class="line"><a name="l05478"></a><span class="lineno"> 5478</span>&#160;        platform = std::make_unique&lt;olc::Platform_Linux&gt;();</div>
+<div class="line"><a name="l05479"></a><span class="lineno"> 5479</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l05480"></a><span class="lineno"> 5480</span>&#160; </div>
+<div class="line"><a name="l05481"></a><span class="lineno"> 5481</span>&#160;<span class="preprocessor">#if defined(OLC_PLATFORM_GLUT)</span></div>
+<div class="line"><a name="l05482"></a><span class="lineno"> 5482</span>&#160;        platform = std::make_unique&lt;olc::Platform_GLUT&gt;();</div>
+<div class="line"><a name="l05483"></a><span class="lineno"> 5483</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l05484"></a><span class="lineno"> 5484</span>&#160; </div>
+<div class="line"><a name="l05485"></a><span class="lineno"> 5485</span>&#160;<span class="preprocessor">#if defined(OLC_PLATFORM_EMSCRIPTEN)</span></div>
+<div class="line"><a name="l05486"></a><span class="lineno"> 5486</span>&#160;        platform = std::make_unique&lt;olc::Platform_Emscripten&gt;();</div>
+<div class="line"><a name="l05487"></a><span class="lineno"> 5487</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l05488"></a><span class="lineno"> 5488</span>&#160; </div>
+<div class="line"><a name="l05489"></a><span class="lineno"> 5489</span>&#160;<span class="preprocessor">#if defined(OLC_PLATFORM_CUSTOM_EX)</span></div>
+<div class="line"><a name="l05490"></a><span class="lineno"> 5490</span>&#160;        platform = std::make_unique&lt;OLC_PLATFORM_CUSTOM_EX&gt;();</div>
+<div class="line"><a name="l05491"></a><span class="lineno"> 5491</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l05492"></a><span class="lineno"> 5492</span>&#160; </div>
+<div class="line"><a name="l05493"></a><span class="lineno"> 5493</span>&#160; </div>
+<div class="line"><a name="l05494"></a><span class="lineno"> 5494</span>&#160; </div>
+<div class="line"><a name="l05495"></a><span class="lineno"> 5495</span>&#160;<span class="preprocessor">#if defined(OLC_GFX_OPENGL10)</span></div>
+<div class="line"><a name="l05496"></a><span class="lineno"> 5496</span>&#160;        renderer = std::make_unique&lt;olc::Renderer_OGL10&gt;();</div>
+<div class="line"><a name="l05497"></a><span class="lineno"> 5497</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l05498"></a><span class="lineno"> 5498</span>&#160; </div>
+<div class="line"><a name="l05499"></a><span class="lineno"> 5499</span>&#160;<span class="preprocessor">#if defined(OLC_GFX_OPENGL33)</span></div>
+<div class="line"><a name="l05500"></a><span class="lineno"> 5500</span>&#160;        renderer = std::make_unique&lt;olc::Renderer_OGL33&gt;();</div>
+<div class="line"><a name="l05501"></a><span class="lineno"> 5501</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l05502"></a><span class="lineno"> 5502</span>&#160; </div>
+<div class="line"><a name="l05503"></a><span class="lineno"> 5503</span>&#160;<span class="preprocessor">#if defined(OLC_GFX_OPENGLES2)</span></div>
+<div class="line"><a name="l05504"></a><span class="lineno"> 5504</span>&#160;        renderer = std::make_unique&lt;olc::Renderer_OGLES2&gt;();</div>
+<div class="line"><a name="l05505"></a><span class="lineno"> 5505</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l05506"></a><span class="lineno"> 5506</span>&#160; </div>
+<div class="line"><a name="l05507"></a><span class="lineno"> 5507</span>&#160;<span class="preprocessor">#if defined(OLC_GFX_DIRECTX10)</span></div>
+<div class="line"><a name="l05508"></a><span class="lineno"> 5508</span>&#160;        renderer = std::make_unique&lt;olc::Renderer_DX10&gt;();</div>
+<div class="line"><a name="l05509"></a><span class="lineno"> 5509</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l05510"></a><span class="lineno"> 5510</span>&#160; </div>
+<div class="line"><a name="l05511"></a><span class="lineno"> 5511</span>&#160;<span class="preprocessor">#if defined(OLC_GFX_DIRECTX11)</span></div>
+<div class="line"><a name="l05512"></a><span class="lineno"> 5512</span>&#160;        renderer = std::make_unique&lt;olc::Renderer_DX11&gt;();</div>
+<div class="line"><a name="l05513"></a><span class="lineno"> 5513</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l05514"></a><span class="lineno"> 5514</span>&#160; </div>
+<div class="line"><a name="l05515"></a><span class="lineno"> 5515</span>&#160;<span class="preprocessor">#if defined(OLC_GFX_CUSTOM_EX)</span></div>
+<div class="line"><a name="l05516"></a><span class="lineno"> 5516</span>&#160;        renderer = std::make_unique&lt;OLC_RENDERER_CUSTOM_EX&gt;();</div>
+<div class="line"><a name="l05517"></a><span class="lineno"> 5517</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l05518"></a><span class="lineno"> 5518</span>&#160; </div>
+<div class="line"><a name="l05519"></a><span class="lineno"> 5519</span>&#160;        <span class="comment">// Associate components with PGE instance</span></div>
+<div class="line"><a name="l05520"></a><span class="lineno"> 5520</span>&#160;        platform-&gt;ptrPGE = <span class="keyword">this</span>;</div>
+<div class="line"><a name="l05521"></a><span class="lineno"> 5521</span>&#160;        renderer-&gt;ptrPGE = <span class="keyword">this</span>;</div>
+<div class="line"><a name="l05522"></a><span class="lineno"> 5522</span>&#160;    }</div>
+<div class="line"><a name="l05523"></a><span class="lineno"> 5523</span>&#160;}</div>
+<div class="line"><a name="l05524"></a><span class="lineno"> 5524</span>&#160; </div>
+<div class="line"><a name="l05525"></a><span class="lineno"> 5525</span>&#160;<span class="preprocessor">#pragma endregion</span></div>
+<div class="line"><a name="l05526"></a><span class="lineno"> 5526</span>&#160; </div>
+<div class="line"><a name="l05527"></a><span class="lineno"> 5527</span>&#160;<span class="preprocessor">#endif // End OLC_PGE_APPLICATION</span></div>
+<div class="line"><a name="l05528"></a><span class="lineno"> 5528</span>&#160; </div>
+<div class="line"><a name="l05529"></a><span class="lineno"> 5529</span>&#160;<span class="comment">// O------------------------------------------------------------------------------O</span></div>
+<div class="line"><a name="l05530"></a><span class="lineno"> 5530</span>&#160;<span class="comment">// | END OF OLC_PGE_APPLICATION                                                   |</span></div>
+<div class="line"><a name="l05531"></a><span class="lineno"> 5531</span>&#160;<span class="comment">// O------------------------------------------------------------------------------O</span></div>
+<div class="line"><a name="l05532"></a><span class="lineno"> 5532</span>&#160; </div>
+</div><!-- fragment --></div><!-- contents -->
+<div class="ttc" id="astructolc_1_1_layer_desc_html_a24f921523245fce959bb1cd0f55faeff"><div class="ttname"><a href="structolc_1_1_layer_desc.html#a24f921523245fce959bb1cd0f55faeff">olc::LayerDesc::pDrawTarget</a></div><div class="ttdeci">olc::Sprite * pDrawTarget</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00800">olcPixelGameEngine.h:800</a></div></div>
+<div class="ttc" id="anamespaceolc_html_aa26a067cf0db83f0b1dd587036a64be7ab3b331dc3158175e2c567f7ebdf9fa75"><div class="ttname"><a href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ab3b331dc3158175e2c567f7ebdf9fa75">olc::K2</a></div><div class="ttdeci">@ K2</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00552">olcPixelGameEngine.h:552</a></div></div>
+<div class="ttc" id="anamespaceolc_html_a3d40e9b1c005602550230690b55ae87ba0178b5f8abe39121e6f14d3c6c093a82"><div class="ttname"><a href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87ba0178b5f8abe39121e6f14d3c6c093a82">olc::OK</a></div><div class="ttdeci">@ OK</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00497">olcPixelGameEngine.h:497</a></div></div>
+<div class="ttc" id="anamespaceolc_html_aa26a067cf0db83f0b1dd587036a64be7ad6aae0ca10843b8046ee0186af4e42f9"><div class="ttname"><a href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ad6aae0ca10843b8046ee0186af4e42f9">olc::NP6</a></div><div class="ttdeci">@ NP6</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00557">olcPixelGameEngine.h:557</a></div></div>
+<div class="ttc" id="astructolc_1_1v2d__generic_html_affe50148d448ff75c298da3a1fd45323"><div class="ttname"><a href="structolc_1_1v2d__generic.html#affe50148d448ff75c298da3a1fd45323">olc::v2d_generic::floor</a></div><div class="ttdeci">v2d_generic floor() const</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00594">olcPixelGameEngine.h:594</a></div></div>
+<div class="ttc" id="astructolc_1_1_h_w_button_html_a6d872a5aeb23aba39103b95093c63cb7"><div class="ttname"><a href="structolc_1_1_h_w_button.html#a6d872a5aeb23aba39103b95093c63cb7">olc::HWButton::bHeld</a></div><div class="ttdeci">bool bHeld</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00571">olcPixelGameEngine.h:571</a></div></div>
+<div class="ttc" id="aclassolc_1_1_sprite_html_a594abc52842c29e4a5417adf57fb877e"><div class="ttname"><a href="classolc_1_1_sprite.html#a594abc52842c29e4a5417adf57fb877e">olc::Sprite::~Sprite</a></div><div class="ttdeci">~Sprite()</div></div>
+<div class="ttc" id="aclassolc_1_1_pixel_game_engine_html_afe9d685732305246c3fcb361ae3c4bc6"><div class="ttname"><a href="classolc_1_1_pixel_game_engine.html#afe9d685732305246c3fcb361ae3c4bc6">olc::PixelGameEngine::PixelGameEngine</a></div><div class="ttdeci">PixelGameEngine()</div></div>
+<div class="ttc" id="anamespaceolc_html_aeda642f63378f868193c28e8613138caa1e23852820b9154316c7c06e2b7ba051"><div class="ttname"><a href="namespaceolc.html#aeda642f63378f868193c28e8613138caa1e23852820b9154316c7c06e2b7ba051">olc::DecalMode::NORMAL</a></div><div class="ttdeci">@ NORMAL</div></div>
+<div class="ttc" id="anamespaceolc_html_aa26a067cf0db83f0b1dd587036a64be7ae2fab0c220f54cd28729c9340951ecb4"><div class="ttname"><a href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ae2fab0c220f54cd28729c9340951ecb4">olc::COMMA</a></div><div class="ttdeci">@ COMMA</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00559">olcPixelGameEngine.h:559</a></div></div>
+<div class="ttc" id="aclassolc_1_1_pixel_game_engine_html_ac8536bf173a396cf78f952ab66fe6156"><div class="ttname"><a href="classolc_1_1_pixel_game_engine.html#ac8536bf173a396cf78f952ab66fe6156">olc::PixelGameEngine::DrawRect</a></div><div class="ttdeci">void DrawRect(const olc::vi2d &amp;pos, const olc::vi2d &amp;size, Pixel p=olc::WHITE)</div></div>
+<div class="ttc" id="aclassolc_1_1_platform_html"><div class="ttname"><a href="classolc_1_1_platform.html">olc::Platform</a></div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00829">olcPixelGameEngine.h:830</a></div></div>
+<div class="ttc" id="astructolc_1_1v2d__generic_html_a7897de7e3e5f2a0e6ba1d2aef2015fce"><div class="ttname"><a href="structolc_1_1v2d__generic.html#a7897de7e3e5f2a0e6ba1d2aef2015fce">olc::v2d_generic::v2d_generic</a></div><div class="ttdeci">v2d_generic(const v2d_generic &amp;v)</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00588">olcPixelGameEngine.h:588</a></div></div>
+<div class="ttc" id="anamespaceolc_html_aa26a067cf0db83f0b1dd587036a64be7a6d49ec75b05a97e8714ac8c244ad29a8"><div class="ttname"><a href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a6d49ec75b05a97e8714ac8c244ad29a8">olc::Q</a></div><div class="ttdeci">@ Q</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00551">olcPixelGameEngine.h:551</a></div></div>
+<div class="ttc" id="aclassolc_1_1_pixel_game_engine_html_a5174456bbdaace7cde233889f7ad6d72"><div class="ttname"><a href="classolc_1_1_pixel_game_engine.html#a5174456bbdaace7cde233889f7ad6d72">olc::PixelGameEngine::DrawWarpedDecal</a></div><div class="ttdeci">void DrawWarpedDecal(olc::Decal *decal, const std::array&lt; olc::vf2d, 4 &gt; &amp;pos, const olc::Pixel &amp;tint=olc::WHITE)</div></div>
+<div class="ttc" id="astructolc_1_1v2d__generic_html"><div class="ttname"><a href="structolc_1_1v2d__generic.html">olc::v2d_generic</a></div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00582">olcPixelGameEngine.h:583</a></div></div>
+<div class="ttc" id="aclassolc_1_1_renderable_html"><div class="ttname"><a href="classolc_1_1_renderable.html">olc::Renderable</a></div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00764">olcPixelGameEngine.h:765</a></div></div>
+<div class="ttc" id="anamespaceolc_html_aee6a06b446368ac58033b5ae4f4c6ca2"><div class="ttname"><a href="namespaceolc.html#aee6a06b446368ac58033b5ae4f4c6ca2">olc::VERY_DARK_CYAN</a></div><div class="ttdeci">static const Pixel VERY_DARK_CYAN(0, 64, 64)</div></div>
+<div class="ttc" id="astructolc_1_1_layer_desc_html_aeb19896b6a82e301769bfd9d5aa053b6"><div class="ttname"><a href="structolc_1_1_layer_desc.html#aeb19896b6a82e301769bfd9d5aa053b6">olc::LayerDesc::bShow</a></div><div class="ttdeci">bool bShow</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00798">olcPixelGameEngine.h:798</a></div></div>
+<div class="ttc" id="aclassolc_1_1_renderer_html"><div class="ttname"><a href="classolc_1_1_renderer.html">olc::Renderer</a></div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00807">olcPixelGameEngine.h:808</a></div></div>
+<div class="ttc" id="aclassolc_1_1_pixel_game_engine_html_af1a9cf3b38dda2071b7ec18868ee1ccd"><div class="ttname"><a href="classolc_1_1_pixel_game_engine.html#af1a9cf3b38dda2071b7ec18868ee1ccd">olc::PixelGameEngine::Construct</a></div><div class="ttdeci">olc::rcode Construct(int32_t screen_w, int32_t screen_h, int32_t pixel_w, int32_t pixel_h, bool full_screen=false, bool vsync=false, bool cohesion=false)</div></div>
+<div class="ttc" id="anamespaceolc_html_aa26a067cf0db83f0b1dd587036a64be7a12e4309f479cd3e34476ef3be7986847"><div class="ttname"><a href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a12e4309f479cd3e34476ef3be7986847">olc::F6</a></div><div class="ttdeci">@ F6</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00553">olcPixelGameEngine.h:553</a></div></div>
+<div class="ttc" id="aclassolc_1_1_p_g_e_x_html_aae9dbde2ad7341482b9f911f23678d75"><div class="ttname"><a href="classolc_1_1_p_g_e_x.html#aae9dbde2ad7341482b9f911f23678d75">olc::PGEX::PGEX</a></div><div class="ttdeci">PGEX(bool bHook=false)</div></div>
+<div class="ttc" id="aclassolc_1_1_platform_html_af58e24a992339020fa1ebf58a224b209"><div class="ttname"><a href="classolc_1_1_platform.html#af58e24a992339020fa1ebf58a224b209">olc::Platform::StartSystemEventLoop</a></div><div class="ttdeci">virtual olc::rcode StartSystemEventLoop()=0</div></div>
+<div class="ttc" id="aclassolc_1_1_sprite_html_a6959a2d94d6c02b7918aec5ce9b1a371"><div class="ttname"><a href="classolc_1_1_sprite.html#a6959a2d94d6c02b7918aec5ce9b1a371">olc::Sprite::LoadFromPGESprFile</a></div><div class="ttdeci">olc::rcode LoadFromPGESprFile(const std::string &amp;sImageFile, olc::ResourcePack *pack=nullptr)</div></div>
+<div class="ttc" id="aclassolc_1_1_pixel_game_engine_html_ab9af9b6726271e83dd7e4b24583b4236"><div class="ttname"><a href="classolc_1_1_pixel_game_engine.html#ab9af9b6726271e83dd7e4b24583b4236">olc::PixelGameEngine::DrawRotatedDecal</a></div><div class="ttdeci">void DrawRotatedDecal(const olc::vf2d &amp;pos, olc::Decal *decal, const float fAngle, const olc::vf2d &amp;center={ 0.0f, 0.0f }, const olc::vf2d &amp;scale={ 1.0f, 1.0f }, const olc::Pixel &amp;tint=olc::WHITE)</div></div>
+<div class="ttc" id="anamespaceolc_html_aa26a067cf0db83f0b1dd587036a64be7a81afecef4b483614604bfc5341d8a2d5"><div class="ttname"><a href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a81afecef4b483614604bfc5341d8a2d5">olc::K6</a></div><div class="ttdeci">@ K6</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00552">olcPixelGameEngine.h:552</a></div></div>
+<div class="ttc" id="astructolc_1_1v2d__generic_html_a5a9c94207b2163c69a39190c320fcbdf"><div class="ttname"><a href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">olc::v2d_generic::y</a></div><div class="ttdeci">T y</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00585">olcPixelGameEngine.h:585</a></div></div>
+<div class="ttc" id="anamespaceolc_html_aa26a067cf0db83f0b1dd587036a64be7a58e7b18972e446a03ce5ce915bc2d34d"><div class="ttname"><a href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a58e7b18972e446a03ce5ce915bc2d34d">olc::RIGHT</a></div><div class="ttdeci">@ RIGHT</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00554">olcPixelGameEngine.h:554</a></div></div>
+<div class="ttc" id="aclassolc_1_1_decal_html_aac5ad6844f98fb3a8bce2f36adf02429"><div class="ttname"><a href="classolc_1_1_decal.html#aac5ad6844f98fb3a8bce2f36adf02429">olc::Decal::Update</a></div><div class="ttdeci">void Update()</div></div>
+<div class="ttc" id="aclassolc_1_1_pixel_game_engine_html_ab777dd885946b2dba5e8bef894c6868c"><div class="ttname"><a href="classolc_1_1_pixel_game_engine.html#ab777dd885946b2dba5e8bef894c6868c">olc::PixelGameEngine::DrawPartialSprite</a></div><div class="ttdeci">void DrawPartialSprite(int32_t x, int32_t y, Sprite *sprite, int32_t ox, int32_t oy, int32_t w, int32_t h, uint32_t scale=1, uint8_t flip=olc::Sprite::NONE)</div></div>
+<div class="ttc" id="anamespaceolc_html_ac192218acb2f30c4c3748485dd5e4ba0"><div class="ttname"><a href="namespaceolc.html#ac192218acb2f30c4c3748485dd5e4ba0">olc::DARK_GREEN</a></div><div class="ttdeci">static const Pixel DARK_GREEN(0, 128, 0)</div></div>
+<div class="ttc" id="astructolc_1_1_decal_instance_html_aa03e3326919eb0c889cdad3492c8a8f6"><div class="ttname"><a href="structolc_1_1_decal_instance.html#aa03e3326919eb0c889cdad3492c8a8f6">olc::DecalInstance::points</a></div><div class="ttdeci">uint32_t points</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00791">olcPixelGameEngine.h:791</a></div></div>
+<div class="ttc" id="aclassolc_1_1_pixel_game_engine_html_a40a88ddb3800e59121f05b06fd64dbfd"><div class="ttname"><a href="classolc_1_1_pixel_game_engine.html#a40a88ddb3800e59121f05b06fd64dbfd">olc::PixelGameEngine::SetLayerCustomRenderFunction</a></div><div class="ttdeci">void SetLayerCustomRenderFunction(uint8_t layer, std::function&lt; void()&gt; f)</div></div>
+<div class="ttc" id="anamespaceolc_html_aa26a067cf0db83f0b1dd587036a64be7a4da01be8126ba4113717cc6385ad22d2"><div class="ttname"><a href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a4da01be8126ba4113717cc6385ad22d2">olc::LEFT</a></div><div class="ttdeci">@ LEFT</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00554">olcPixelGameEngine.h:554</a></div></div>
+<div class="ttc" id="aclassolc_1_1_sprite_html_a1f1b2a3f1fd932a6a14faa622a2918bf"><div class="ttname"><a href="classolc_1_1_sprite.html#a1f1b2a3f1fd932a6a14faa622a2918bf">olc::Sprite::SaveToPGESprFile</a></div><div class="ttdeci">olc::rcode SaveToPGESprFile(const std::string &amp;sImageFile)</div></div>
+<div class="ttc" id="anamespaceolc_html_ac940e7f6502cbced06f26b4d13349166"><div class="ttname"><a href="namespaceolc.html#ac940e7f6502cbced06f26b4d13349166">olc::BLANK</a></div><div class="ttdeci">static const Pixel BLANK(0, 0, 0, 0)</div></div>
+<div class="ttc" id="anamespaceolc_html_aa26a067cf0db83f0b1dd587036a64be7a0ba7e1a6dbc9d1291a40172a09bb49a4"><div class="ttname"><a href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a0ba7e1a6dbc9d1291a40172a09bb49a4">olc::NP5</a></div><div class="ttdeci">@ NP5</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00557">olcPixelGameEngine.h:557</a></div></div>
+<div class="ttc" id="anamespaceolc_html_aa26a067cf0db83f0b1dd587036a64be7a53394a407c13bf8192b2946607d27a0f"><div class="ttname"><a href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a53394a407c13bf8192b2946607d27a0f">olc::END</a></div><div class="ttdeci">@ END</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00555">olcPixelGameEngine.h:555</a></div></div>
+<div class="ttc" id="anamespaceolc_html_aa26a067cf0db83f0b1dd587036a64be7aaa5fe91e0948a39a142504c1f9067549"><div class="ttname"><a href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7aaa5fe91e0948a39a142504c1f9067549">olc::C</a></div><div class="ttdeci">@ C</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00551">olcPixelGameEngine.h:551</a></div></div>
+<div class="ttc" id="aclassolc_1_1_sprite_html_a5b0190890ed98560125b2ae4db9a7d9f"><div class="ttname"><a href="classolc_1_1_sprite.html#a5b0190890ed98560125b2ae4db9a7d9f">olc::Sprite::Sprite</a></div><div class="ttdeci">Sprite(const olc::Sprite &amp;)=delete</div></div>
+<div class="ttc" id="aclassolc_1_1_sprite_html_adc277c0342733a4aa8dcdc9152326fec"><div class="ttname"><a href="classolc_1_1_sprite.html#adc277c0342733a4aa8dcdc9152326fec">olc::Sprite::LoadFromFile</a></div><div class="ttdeci">olc::rcode LoadFromFile(const std::string &amp;sImageFile, olc::ResourcePack *pack=nullptr)</div></div>
+<div class="ttc" id="anamespaceolc_html_aa26a067cf0db83f0b1dd587036a64be7a136309f07b14d70a8561a69ca563bab7"><div class="ttname"><a href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a136309f07b14d70a8561a69ca563bab7">olc::K</a></div><div class="ttdeci">@ K</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00551">olcPixelGameEngine.h:551</a></div></div>
+<div class="ttc" id="aclassolc_1_1_pixel_game_engine_html_a2da1f2ebbc1a5fbdbf52890e6ac707b1"><div class="ttname"><a href="classolc_1_1_pixel_game_engine.html#a2da1f2ebbc1a5fbdbf52890e6ac707b1">olc::PixelGameEngine::olc_Terminate</a></div><div class="ttdeci">void olc_Terminate()</div></div>
+<div class="ttc" id="aclassolc_1_1_pixel_game_engine_html_a27ee96acff2c74d47f0cb78493aac756"><div class="ttname"><a href="classolc_1_1_pixel_game_engine.html#a27ee96acff2c74d47f0cb78493aac756">olc::PixelGameEngine::SetDecalMode</a></div><div class="ttdeci">void SetDecalMode(const olc::DecalMode &amp;mode)</div></div>
+<div class="ttc" id="aclassolc_1_1_sprite_html_ab9182b86e829467f454c7ef630ebc9fb"><div class="ttname"><a href="classolc_1_1_sprite.html#ab9182b86e829467f454c7ef630ebc9fb">olc::Sprite::modeSample</a></div><div class="ttdeci">Mode modeSample</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00728">olcPixelGameEngine.h:728</a></div></div>
+<div class="ttc" id="anamespaceolc_html_aa26a067cf0db83f0b1dd587036a64be7a468bb1704a74fc6e42d28e7bee8ecb51"><div class="ttname"><a href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a468bb1704a74fc6e42d28e7bee8ecb51">olc::NP8</a></div><div class="ttdeci">@ NP8</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00557">olcPixelGameEngine.h:557</a></div></div>
+<div class="ttc" id="anamespaceolc_html_a2831a8757172243381b08adf69e91e0a"><div class="ttname"><a href="namespaceolc.html#a2831a8757172243381b08adf69e91e0a">olc::operator&lt;</a></div><div class="ttdeci">bool operator&lt;(const v2d_generic&lt; T &gt; &amp;lhs, const v2d_generic&lt; U &gt; &amp;rhs)</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00639">olcPixelGameEngine.h:639</a></div></div>
+<div class="ttc" id="anamespaceolc_html_aa26a067cf0db83f0b1dd587036a64be7a0bab26868b97eab537e7cad879d4b9a3"><div class="ttname"><a href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a0bab26868b97eab537e7cad879d4b9a3">olc::PGUP</a></div><div class="ttdeci">@ PGUP</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00555">olcPixelGameEngine.h:555</a></div></div>
+<div class="ttc" id="aclassolc_1_1_pixel_game_engine_html_a65098b403a403c45041599893429b550"><div class="ttname"><a href="classolc_1_1_pixel_game_engine.html#a65098b403a403c45041599893429b550">olc::PixelGameEngine::DrawWarpedDecal</a></div><div class="ttdeci">void DrawWarpedDecal(olc::Decal *decal, const olc::vf2d(&amp;pos)[4], const olc::Pixel &amp;tint=olc::WHITE)</div></div>
+<div class="ttc" id="aclassolc_1_1_pixel_game_engine_html_a7b0f41bc4b4258a5c4fa1742b41d15e3"><div class="ttname"><a href="classolc_1_1_pixel_game_engine.html#a7b0f41bc4b4258a5c4fa1742b41d15e3">olc::PixelGameEngine::olc_IsRunning</a></div><div class="ttdeci">bool olc_IsRunning()</div></div>
+<div class="ttc" id="aclassolc_1_1_pixel_game_engine_html_a091224d5937210726d25c8cdeb4a951e"><div class="ttname"><a href="classolc_1_1_pixel_game_engine.html#a091224d5937210726d25c8cdeb4a951e">olc::PixelGameEngine::FillTriangle</a></div><div class="ttdeci">void FillTriangle(const olc::vi2d &amp;pos1, const olc::vi2d &amp;pos2, const olc::vi2d &amp;pos3, Pixel p=olc::WHITE)</div></div>
+<div class="ttc" id="anamespaceolc_html_aeda642f63378f868193c28e8613138ca"><div class="ttname"><a href="namespaceolc.html#aeda642f63378f868193c28e8613138ca">olc::DecalMode</a></div><div class="ttdeci">DecalMode</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00751">olcPixelGameEngine.h:752</a></div></div>
+<div class="ttc" id="aclassolc_1_1_sprite_html_ab05010cb1a5ff6c36267d0050d568d96"><div class="ttname"><a href="classolc_1_1_sprite.html#ab05010cb1a5ff6c36267d0050d568d96">olc::Sprite::height</a></div><div class="ttdeci">int32_t height</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00712">olcPixelGameEngine.h:712</a></div></div>
+<div class="ttc" id="aclassolc_1_1_pixel_game_engine_html_a7d7c04245161782d5f5c48d3d62ff7a7"><div class="ttname"><a href="classolc_1_1_pixel_game_engine.html#a7d7c04245161782d5f5c48d3d62ff7a7">olc::PixelGameEngine::SetLayerTint</a></div><div class="ttdeci">void SetLayerTint(uint8_t layer, const olc::Pixel &amp;tint)</div></div>
+<div class="ttc" id="aclassolc_1_1_pixel_game_engine_html_aac31baad6daf55b926f6add9c44a5591"><div class="ttname"><a href="classolc_1_1_pixel_game_engine.html#aac31baad6daf55b926f6add9c44a5591">olc::PixelGameEngine::GetLayers</a></div><div class="ttdeci">std::vector&lt; LayerDesc &gt; &amp; GetLayers()</div></div>
+<div class="ttc" id="anamespaceolc_html_ad4579f7eb75a257d76bb657a268f0a8d"><div class="ttname"><a href="namespaceolc.html#ad4579f7eb75a257d76bb657a268f0a8d">olc::RED</a></div><div class="ttdeci">static const Pixel RED(255, 0, 0)</div></div>
+<div class="ttc" id="anamespaceolc_html_a7208a6ce62e94eca5b0ba80f7c2f5e30"><div class="ttname"><a href="namespaceolc.html#a7208a6ce62e94eca5b0ba80f7c2f5e30">olc::DARK_GREY</a></div><div class="ttdeci">static const Pixel DARK_GREY(128, 128, 128)</div></div>
+<div class="ttc" id="anamespaceolc_html_aa26a067cf0db83f0b1dd587036a64be7"><div class="ttname"><a href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7">olc::Key</a></div><div class="ttdeci">Key</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00548">olcPixelGameEngine.h:549</a></div></div>
+<div class="ttc" id="anamespaceolc_html_adb87819740ea9625f84c821fffb16429"><div class="ttname"><a href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a></div><div class="ttdeci">v2d_generic&lt; float &gt; vf2d</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00646">olcPixelGameEngine.h:646</a></div></div>
+<div class="ttc" id="aclassolc_1_1_pixel_game_engine_html_a26d7073d87bb19f15d5ade6bb58e8e2d"><div class="ttname"><a href="classolc_1_1_pixel_game_engine.html#a26d7073d87bb19f15d5ade6bb58e8e2d">olc::PixelGameEngine::DrawExplicitDecal</a></div><div class="ttdeci">void DrawExplicitDecal(olc::Decal *decal, const olc::vf2d *pos, const olc::vf2d *uv, const olc::Pixel *col, uint32_t elements=4)</div></div>
+<div class="ttc" id="anamespaceolc_html_aa26a067cf0db83f0b1dd587036a64be7aee5afd77eb82eb3111195ee300ff3714"><div class="ttname"><a href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7aee5afd77eb82eb3111195ee300ff3714">olc::NP_DIV</a></div><div class="ttdeci">@ NP_DIV</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00558">olcPixelGameEngine.h:558</a></div></div>
+<div class="ttc" id="aclassolc_1_1_sprite_html_a78b7f14903f9f0bb536b66c37f3139cfa1128b229a2ab5d7b344aeefd329252a1"><div class="ttname"><a href="classolc_1_1_sprite.html#a78b7f14903f9f0bb536b66c37f3139cfa1128b229a2ab5d7b344aeefd329252a1">olc::Sprite::NORMAL</a></div><div class="ttdeci">@ NORMAL</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00713">olcPixelGameEngine.h:713</a></div></div>
+<div class="ttc" id="aclassolc_1_1_p_g_e_x_html_a69c65b5d3a56f9a247e1bf15fd2e4035"><div class="ttname"><a href="classolc_1_1_p_g_e_x.html#a69c65b5d3a56f9a247e1bf15fd2e4035">olc::PGEX::OnBeforeUserCreate</a></div><div class="ttdeci">virtual void OnBeforeUserCreate()</div></div>
+<div class="ttc" id="anamespaceolc_html_aa26a067cf0db83f0b1dd587036a64be7a4b3a1d83a513de0e2c3c8ba2a8a5fd2d"><div class="ttname"><a href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a4b3a1d83a513de0e2c3c8ba2a8a5fd2d">olc::MINUS</a></div><div class="ttdeci">@ MINUS</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00559">olcPixelGameEngine.h:559</a></div></div>
+<div class="ttc" id="aclassolc_1_1_pixel_game_engine_html_a78be0709345710435fdaef7bc14f5fb3"><div class="ttname"><a href="classolc_1_1_pixel_game_engine.html#a78be0709345710435fdaef7bc14f5fb3">olc::PixelGameEngine::DrawPartialWarpedDecal</a></div><div class="ttdeci">void DrawPartialWarpedDecal(olc::Decal *decal, const olc::vf2d(&amp;pos)[4], const olc::vf2d &amp;source_pos, const olc::vf2d &amp;source_size, const olc::Pixel &amp;tint=olc::WHITE)</div></div>
+<div class="ttc" id="anamespaceolc_html_a2069e5cf447f5dd311c680c9463f9c42"><div class="ttname"><a href="namespaceolc.html#a2069e5cf447f5dd311c680c9463f9c42">olc::PixelLerp</a></div><div class="ttdeci">Pixel PixelLerp(const olc::Pixel &amp;p1, const olc::Pixel &amp;p2, float t)</div></div>
+<div class="ttc" id="anamespaceolc_html_aa26a067cf0db83f0b1dd587036a64be7a353906757178b0d48008b62cdca75332"><div class="ttname"><a href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a353906757178b0d48008b62cdca75332">olc::K5</a></div><div class="ttdeci">@ K5</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00552">olcPixelGameEngine.h:552</a></div></div>
+<div class="ttc" id="anamespaceolc_html_aa26a067cf0db83f0b1dd587036a64be7abb25924adf005b39efaef185f332a3ad"><div class="ttname"><a href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7abb25924adf005b39efaef185f332a3ad">olc::OEM_3</a></div><div class="ttdeci">@ OEM_3</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00560">olcPixelGameEngine.h:560</a></div></div>
+<div class="ttc" id="astructolc_1_1_h_w_button_html_a2576b36bdf00033f78fa1cdcabfa2a00"><div class="ttname"><a href="structolc_1_1_h_w_button.html#a2576b36bdf00033f78fa1cdcabfa2a00">olc::HWButton::bReleased</a></div><div class="ttdeci">bool bReleased</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00570">olcPixelGameEngine.h:570</a></div></div>
+<div class="ttc" id="astructolc_1_1v2d__generic_html_ace104acaa0ef181acb36fe75d0aed683"><div class="ttname"><a href="structolc_1_1v2d__generic.html#ace104acaa0ef181acb36fe75d0aed683">olc::v2d_generic::operator==</a></div><div class="ttdeci">bool operator==(const v2d_generic &amp;rhs) const</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00614">olcPixelGameEngine.h:614</a></div></div>
+<div class="ttc" id="anamespaceolc_html_aa26a067cf0db83f0b1dd587036a64be7a3a044efaf7d74df21e84a29063006eae"><div class="ttname"><a href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a3a044efaf7d74df21e84a29063006eae">olc::OEM_1</a></div><div class="ttdeci">@ OEM_1</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00560">olcPixelGameEngine.h:560</a></div></div>
+<div class="ttc" id="anamespaceolc_html_ac6e041f71287438da8b9145758c4fe63"><div class="ttname"><a href="namespaceolc.html#ac6e041f71287438da8b9145758c4fe63">olc::DARK_BLUE</a></div><div class="ttdeci">static const Pixel DARK_BLUE(0, 0, 128)</div></div>
+<div class="ttc" id="astructolc_1_1_pixel_html_a8a1daba449fb823a4535a6089fe880ab"><div class="ttname"><a href="structolc_1_1_pixel.html#a8a1daba449fb823a4535a6089fe880ab">olc::Pixel::inv</a></div><div class="ttdeci">Pixel inv() const</div></div>
+<div class="ttc" id="aclassolc_1_1_sprite_html_ad0d1976d2060997f5cd99eb284a5dc24a6ad338b4e63faacfbed68b020c3a0c0c"><div class="ttname"><a href="classolc_1_1_sprite.html#ad0d1976d2060997f5cd99eb284a5dc24a6ad338b4e63faacfbed68b020c3a0c0c">olc::Sprite::NONE</a></div><div class="ttdeci">@ NONE</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00714">olcPixelGameEngine.h:714</a></div></div>
+<div class="ttc" id="anamespaceolc_html_aa26a067cf0db83f0b1dd587036a64be7ac58fbe549b8c1a668c42a17d9e572b0f"><div class="ttname"><a href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ac58fbe549b8c1a668c42a17d9e572b0f">olc::ESCAPE</a></div><div class="ttdeci">@ ESCAPE</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00556">olcPixelGameEngine.h:556</a></div></div>
+<div class="ttc" id="aclassolc_1_1_pixel_game_engine_html_ab282eddb9b8fe14d01311c8613f79e84"><div class="ttname"><a href="classolc_1_1_pixel_game_engine.html#ab282eddb9b8fe14d01311c8613f79e84">olc::PixelGameEngine::GetTextSizeProp</a></div><div class="ttdeci">olc::vi2d GetTextSizeProp(const std::string &amp;s)</div></div>
+<div class="ttc" id="anamespaceolc_html_aa26a067cf0db83f0b1dd587036a64be7abe90f6618beb39117690b93a5c9d8ccb"><div class="ttname"><a href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7abe90f6618beb39117690b93a5c9d8ccb">olc::F10</a></div><div class="ttdeci">@ F10</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00553">olcPixelGameEngine.h:553</a></div></div>
+<div class="ttc" id="anamespaceolc_html_a379f9d3a40edb1700299c031cd0b6a08"><div class="ttname"><a href="namespaceolc.html#a379f9d3a40edb1700299c031cd0b6a08">olc::DARK_YELLOW</a></div><div class="ttdeci">static const Pixel DARK_YELLOW(128, 128, 0)</div></div>
+<div class="ttc" id="astructolc_1_1v2d__generic_html_a88a794a4e9ec632f215afbeb04b354c8"><div class="ttname"><a href="structolc_1_1v2d__generic.html#a88a794a4e9ec632f215afbeb04b354c8">olc::v2d_generic::str</a></div><div class="ttdeci">const std::string str() const</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00616">olcPixelGameEngine.h:616</a></div></div>
+<div class="ttc" id="anamespaceolc_html_aa26a067cf0db83f0b1dd587036a64be7a89291a8afb7ac7b481090dc97f643263"><div class="ttname"><a href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a89291a8afb7ac7b481090dc97f643263">olc::K7</a></div><div class="ttdeci">@ K7</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00552">olcPixelGameEngine.h:552</a></div></div>
+<div class="ttc" id="astructolc_1_1v2d__generic_html_a70a7c59a5b9b9fac0de8a823633abb08"><div class="ttname"><a href="structolc_1_1v2d__generic.html#a70a7c59a5b9b9fac0de8a823633abb08">olc::v2d_generic::operator+</a></div><div class="ttdeci">v2d_generic operator+() const</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00612">olcPixelGameEngine.h:612</a></div></div>
+<div class="ttc" id="anamespaceolc_html_ac9f9fa9267428312fd81237a4cc5c8e5"><div class="ttname"><a href="namespaceolc.html#ac9f9fa9267428312fd81237a4cc5c8e5">olc::vu2d</a></div><div class="ttdeci">v2d_generic&lt; uint32_t &gt; vu2d</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00645">olcPixelGameEngine.h:645</a></div></div>
+<div class="ttc" id="aclassolc_1_1_sprite_html_ac4307f400438dad18b0720cc034bec0b"><div class="ttname"><a href="classolc_1_1_sprite.html#ac4307f400438dad18b0720cc034bec0b">olc::Sprite::Duplicate</a></div><div class="ttdeci">olc::Sprite * Duplicate(const olc::vi2d &amp;vPos, const olc::vi2d &amp;vSize)</div></div>
+<div class="ttc" id="aclassolc_1_1_decal_html_a4a3b893edbce4d416453f57c11754092"><div class="ttname"><a href="classolc_1_1_decal.html#a4a3b893edbce4d416453f57c11754092">olc::Decal::UpdateSprite</a></div><div class="ttdeci">void UpdateSprite()</div></div>
+<div class="ttc" id="anamespaceolc_html_a43ffa41e9a4a260b86da82b823e6a252"><div class="ttname"><a href="namespaceolc.html#a43ffa41e9a4a260b86da82b823e6a252">olc::CYAN</a></div><div class="ttdeci">static const Pixel CYAN(0, 255, 255)</div></div>
+<div class="ttc" id="aclassolc_1_1_pixel_game_engine_html_a423d90134c297f7b9f1834a136071b19"><div class="ttname"><a href="classolc_1_1_pixel_game_engine.html#a423d90134c297f7b9f1834a136071b19">olc::PixelGameEngine::~PixelGameEngine</a></div><div class="ttdeci">virtual ~PixelGameEngine()</div></div>
+<div class="ttc" id="anamespaceolc_html_aa26a067cf0db83f0b1dd587036a64be7a7f95c3a8701b46a2cca143078d7e3aea"><div class="ttname"><a href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a7f95c3a8701b46a2cca143078d7e3aea">olc::O</a></div><div class="ttdeci">@ O</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00551">olcPixelGameEngine.h:551</a></div></div>
+<div class="ttc" id="aclassolc_1_1_pixel_game_engine_html_a9aa31ae4e1735efa72f3ea17fb51b2ef"><div class="ttname"><a href="classolc_1_1_pixel_game_engine.html#a9aa31ae4e1735efa72f3ea17fb51b2ef">olc::PixelGameEngine::SetPixelMode</a></div><div class="ttdeci">void SetPixelMode(std::function&lt; olc::Pixel(const int x, const int y, const olc::Pixel &amp;pSource, const olc::Pixel &amp;pDest)&gt; pixelMode)</div></div>
+<div class="ttc" id="aclassolc_1_1_pixel_game_engine_html_ac24457d32db7d8acf0661c6de57be7a8"><div class="ttname"><a href="classolc_1_1_pixel_game_engine.html#ac24457d32db7d8acf0661c6de57be7a8">olc::PixelGameEngine::DrawLine</a></div><div class="ttdeci">void DrawLine(const olc::vi2d &amp;pos1, const olc::vi2d &amp;pos2, Pixel p=olc::WHITE, uint32_t pattern=0xFFFFFFFF)</div></div>
+<div class="ttc" id="anamespaceolc_html_aa26a067cf0db83f0b1dd587036a64be7aa09e2508e2f2fd372d3e37ebdfce6814"><div class="ttname"><a href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7aa09e2508e2f2fd372d3e37ebdfce6814">olc::OEM_4</a></div><div class="ttdeci">@ OEM_4</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00560">olcPixelGameEngine.h:560</a></div></div>
+<div class="ttc" id="aclassolc_1_1_platform_html_ace0ea54aaa50143628b5fd41851b578f"><div class="ttname"><a href="classolc_1_1_platform.html#ace0ea54aaa50143628b5fd41851b578f">olc::Platform::ThreadStartUp</a></div><div class="ttdeci">virtual olc::rcode ThreadStartUp()=0</div></div>
+<div class="ttc" id="astructolc_1_1_decal_instance_html_a8dcf3a11a4f2c722e9b54c01643de08c"><div class="ttname"><a href="structolc_1_1_decal_instance.html#a8dcf3a11a4f2c722e9b54c01643de08c">olc::DecalInstance::pos</a></div><div class="ttdeci">std::vector&lt; olc::vf2d &gt; pos</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00786">olcPixelGameEngine.h:786</a></div></div>
+<div class="ttc" id="anamespaceolc_html_aa26a067cf0db83f0b1dd587036a64be7a44cf52f457ad06d45cd947c72c291ccc"><div class="ttname"><a href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a44cf52f457ad06d45cd947c72c291ccc">olc::SCROLL</a></div><div class="ttdeci">@ SCROLL</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00556">olcPixelGameEngine.h:556</a></div></div>
+<div class="ttc" id="aclassolc_1_1_renderable_html_ace5d212d903d86bc9789f1af0f92096c"><div class="ttname"><a href="classolc_1_1_renderable.html#ace5d212d903d86bc9789f1af0f92096c">olc::Renderable::Load</a></div><div class="ttdeci">olc::rcode Load(const std::string &amp;sFile, ResourcePack *pack=nullptr, bool filter=false, bool clamp=true)</div></div>
+<div class="ttc" id="astructolc_1_1_pixel_html_aa9cb31c80e2822ccc726526be5801ae2"><div class="ttname"><a href="structolc_1_1_pixel.html#aa9cb31c80e2822ccc726526be5801ae2">olc::Pixel::n</a></div><div class="ttdeci">uint32_t n</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00506">olcPixelGameEngine.h:506</a></div></div>
+<div class="ttc" id="anamespaceolc_html_aa26a067cf0db83f0b1dd587036a64be7a3dada7cdf09fb367c10c650e9bce7bfa"><div class="ttname"><a href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a3dada7cdf09fb367c10c650e9bce7bfa">olc::OEM_7</a></div><div class="ttdeci">@ OEM_7</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00560">olcPixelGameEngine.h:560</a></div></div>
+<div class="ttc" id="astructolc_1_1v2d__generic_html_a2c6ce2738720f5e098c7d0bf17f33807"><div class="ttname"><a href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">olc::v2d_generic::x</a></div><div class="ttdeci">T x</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00584">olcPixelGameEngine.h:584</a></div></div>
+<div class="ttc" id="astructolc_1_1_pixel_html_ae9012164940526ddb09b217dbbddfd65a4062d4baa9669fb2e91f31a15061a9d6"><div class="ttname"><a href="structolc_1_1_pixel.html#ae9012164940526ddb09b217dbbddfd65a4062d4baa9669fb2e91f31a15061a9d6">olc::Pixel::MASK</a></div><div class="ttdeci">@ MASK</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00510">olcPixelGameEngine.h:510</a></div></div>
+<div class="ttc" id="anamespaceolc_html_aa26a067cf0db83f0b1dd587036a64be7ac955ad4fdd41f4d3600b29da016fdf36"><div class="ttname"><a href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ac955ad4fdd41f4d3600b29da016fdf36">olc::F7</a></div><div class="ttdeci">@ F7</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00553">olcPixelGameEngine.h:553</a></div></div>
+<div class="ttc" id="aclassolc_1_1_sprite_html_a78f4fcf41780cfc547f21e5a0dea03a2"><div class="ttname"><a href="classolc_1_1_sprite.html#a78f4fcf41780cfc547f21e5a0dea03a2">olc::Sprite::SetSampleMode</a></div><div class="ttdeci">void SetSampleMode(olc::Sprite::Mode mode=olc::Sprite::Mode::NORMAL)</div></div>
+<div class="ttc" id="astructolc_1_1v2d__generic_html_ad2e96c716c487677bbde6966464fc482"><div class="ttname"><a href="structolc_1_1v2d__generic.html#ad2e96c716c487677bbde6966464fc482">olc::v2d_generic::dot</a></div><div class="ttdeci">T dot(const v2d_generic &amp;rhs) const</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00598">olcPixelGameEngine.h:598</a></div></div>
+<div class="ttc" id="aclassolc_1_1_resource_pack_html_af6b1fec791c3c85b51b565db63a1aa9a"><div class="ttname"><a href="classolc_1_1_resource_pack.html#af6b1fec791c3c85b51b565db63a1aa9a">olc::ResourcePack::SavePack</a></div><div class="ttdeci">bool SavePack(const std::string &amp;sFile, const std::string &amp;sKey)</div></div>
+<div class="ttc" id="aclassolc_1_1_renderable_html_affef9fb6b4810e59a7d14410f351ba37"><div class="ttname"><a href="classolc_1_1_renderable.html#affef9fb6b4810e59a7d14410f351ba37">olc::Renderable::Renderable</a></div><div class="ttdeci">Renderable()=default</div></div>
+<div class="ttc" id="aclassolc_1_1_pixel_game_engine_html_aa33ea5e40d4577e3c44fcf4a26cecadd"><div class="ttname"><a href="classolc_1_1_pixel_game_engine.html#aa33ea5e40d4577e3c44fcf4a26cecadd">olc::PixelGameEngine::olc_UpdateMouseWheel</a></div><div class="ttdeci">void olc_UpdateMouseWheel(int32_t delta)</div></div>
+<div class="ttc" id="aclassolc_1_1_renderer_html_a1512e2939b94f6fdb58bbf152ac0e4e5"><div class="ttname"><a href="classolc_1_1_renderer.html#a1512e2939b94f6fdb58bbf152ac0e4e5">olc::Renderer::UpdateTexture</a></div><div class="ttdeci">virtual void UpdateTexture(uint32_t id, olc::Sprite *spr)=0</div></div>
+<div class="ttc" id="anamespaceolc_html_aa26a067cf0db83f0b1dd587036a64be7a170eaa7913d25c0ff02712bd93d7bf81"><div class="ttname"><a href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a170eaa7913d25c0ff02712bd93d7bf81">olc::V</a></div><div class="ttdeci">@ V</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00551">olcPixelGameEngine.h:551</a></div></div>
+<div class="ttc" id="aclassolc_1_1_pixel_game_engine_html_a2ec1d2a1f3777338fb4388c620344a34"><div class="ttname"><a href="classolc_1_1_pixel_game_engine.html#a2ec1d2a1f3777338fb4388c620344a34">olc::PixelGameEngine::GetMouseX</a></div><div class="ttdeci">int32_t GetMouseX() const</div></div>
+<div class="ttc" id="astructolc_1_1_h_w_button_html"><div class="ttname"><a href="structolc_1_1_h_w_button.html">olc::HWButton</a></div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00567">olcPixelGameEngine.h:568</a></div></div>
+<div class="ttc" id="aclassolc_1_1_pixel_game_engine_html_aeb70b40809815fab4e1017e25c7ab161"><div class="ttname"><a href="classolc_1_1_pixel_game_engine.html#aeb70b40809815fab4e1017e25c7ab161">olc::PixelGameEngine::Clear</a></div><div class="ttdeci">void Clear(Pixel p)</div></div>
+<div class="ttc" id="aclassolc_1_1_sprite_html_ad0d1976d2060997f5cd99eb284a5dc24a2ff5b18e468156f629a10c5b515d78cd"><div class="ttname"><a href="classolc_1_1_sprite.html#ad0d1976d2060997f5cd99eb284a5dc24a2ff5b18e468156f629a10c5b515d78cd">olc::Sprite::HORIZ</a></div><div class="ttdeci">@ HORIZ</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00714">olcPixelGameEngine.h:714</a></div></div>
+<div class="ttc" id="anamespaceolc_html_aa26a067cf0db83f0b1dd587036a64be7a62c2493e1585db2af15cb70ac979fb09"><div class="ttname"><a href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a62c2493e1585db2af15cb70ac979fb09">olc::U</a></div><div class="ttdeci">@ U</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00551">olcPixelGameEngine.h:551</a></div></div>
+<div class="ttc" id="aclassolc_1_1_resource_pack_html_a56eebc321c66215d15df1390b1080c66"><div class="ttname"><a href="classolc_1_1_resource_pack.html#a56eebc321c66215d15df1390b1080c66">olc::ResourcePack::AddFile</a></div><div class="ttdeci">bool AddFile(const std::string &amp;sFile)</div></div>
+<div class="ttc" id="aclassolc_1_1_pixel_game_engine_html_a7343712504f23f86c8490646ffc50e7f"><div class="ttname"><a href="classolc_1_1_pixel_game_engine.html#a7343712504f23f86c8490646ffc50e7f">olc::PixelGameEngine::olc_UpdateKeyFocus</a></div><div class="ttdeci">void olc_UpdateKeyFocus(bool state)</div></div>
+<div class="ttc" id="anamespaceolc_html_aa26a067cf0db83f0b1dd587036a64be7a29419f86c551b623c828f9530f301389"><div class="ttname"><a href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a29419f86c551b623c828f9530f301389">olc::HOME</a></div><div class="ttdeci">@ HOME</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00555">olcPixelGameEngine.h:555</a></div></div>
+<div class="ttc" id="anamespaceolc_html_aa26a067cf0db83f0b1dd587036a64be7a1adffcecf8c735b404ac6eedf220ae5a"><div class="ttname"><a href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a1adffcecf8c735b404ac6eedf220ae5a">olc::PERIOD</a></div><div class="ttdeci">@ PERIOD</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00558">olcPixelGameEngine.h:558</a></div></div>
+<div class="ttc" id="anamespaceolc_html"><div class="ttname"><a href="namespaceolc.html">olc</a></div><div class="ttdef"><b>Definition:</b> <a href="olc_p_g_e_x___transformed_view_8h_source.html#l00077">olcPGEX_TransformedView.h:78</a></div></div>
+<div class="ttc" id="aclassolc_1_1_p_g_e_x_html_a4d2dd7d685fb1c7d00d97aa15e3376b4"><div class="ttname"><a href="classolc_1_1_p_g_e_x.html#a4d2dd7d685fb1c7d00d97aa15e3376b4">olc::PGEX::OnAfterUserUpdate</a></div><div class="ttdeci">virtual void OnAfterUserUpdate(float fElapsedTime)</div></div>
+<div class="ttc" id="aclassolc_1_1_sprite_html_a5e28024237453fb56c32f37d6996443d"><div class="ttname"><a href="classolc_1_1_sprite.html#a5e28024237453fb56c32f37d6996443d">olc::Sprite::SampleBL</a></div><div class="ttdeci">Pixel SampleBL(float u, float v) const</div></div>
+<div class="ttc" id="aclassolc_1_1_renderer_html_a04c56d76c76ab50f5f06b9b537e9d98d"><div class="ttname"><a href="classolc_1_1_renderer.html#a04c56d76c76ab50f5f06b9b537e9d98d">olc::Renderer::PrepareDrawing</a></div><div class="ttdeci">virtual void PrepareDrawing()=0</div></div>
+<div class="ttc" id="astructolc_1_1_pixel_html_a058f58406ca54ab73075f5e42125a65a"><div class="ttname"><a href="structolc_1_1_pixel.html#a058f58406ca54ab73075f5e42125a65a">olc::Pixel::operator-=</a></div><div class="ttdeci">Pixel &amp; operator-=(const Pixel &amp;p)</div></div>
+<div class="ttc" id="astructolc_1_1_pixel_html_a14cf5612284974c409f078944fe5f6ee"><div class="ttname"><a href="structolc_1_1_pixel.html#a14cf5612284974c409f078944fe5f6ee">olc::Pixel::g</a></div><div class="ttdeci">uint8_t g</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00507">olcPixelGameEngine.h:507</a></div></div>
+<div class="ttc" id="anamespaceolc_html_aa26a067cf0db83f0b1dd587036a64be7a259dcb71eab0ee6c477f792543f43ec5"><div class="ttname"><a href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a259dcb71eab0ee6c477f792543f43ec5">olc::X</a></div><div class="ttdeci">@ X</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00551">olcPixelGameEngine.h:551</a></div></div>
+<div class="ttc" id="aclassolc_1_1_renderer_html_aeac898aaf282d09a9cd848303de57bea"><div class="ttname"><a href="classolc_1_1_renderer.html#aeac898aaf282d09a9cd848303de57bea">olc::Renderer::CreateTexture</a></div><div class="ttdeci">virtual uint32_t CreateTexture(const uint32_t width, const uint32_t height, const bool filtered=false, const bool clamp=true)=0</div></div>
+<div class="ttc" id="aclassolc_1_1_pixel_game_engine_html_a49a2ead57239e1595cc555effd3e3a2b"><div class="ttname"><a href="classolc_1_1_pixel_game_engine.html#a49a2ead57239e1595cc555effd3e3a2b">olc::PixelGameEngine::pgex_Register</a></div><div class="ttdeci">void pgex_Register(olc::PGEX *pgex)</div></div>
+<div class="ttc" id="aclassolc_1_1_decal_html_a5c993dab5be43270dce30b44f1d3e50b"><div class="ttname"><a href="classolc_1_1_decal.html#a5c993dab5be43270dce30b44f1d3e50b">olc::Decal::~Decal</a></div><div class="ttdeci">virtual ~Decal()</div></div>
+<div class="ttc" id="anamespaceolc_html_aa26a067cf0db83f0b1dd587036a64be7a2c21f93f355bf0a6baa7e205acd86b50"><div class="ttname"><a href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a2c21f93f355bf0a6baa7e205acd86b50">olc::NP_DECIMAL</a></div><div class="ttdeci">@ NP_DECIMAL</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00558">olcPixelGameEngine.h:558</a></div></div>
+<div class="ttc" id="anamespaceolc_html_aa26a067cf0db83f0b1dd587036a64be7a691b8388214af88a7794c43d31fbe16a"><div class="ttname"><a href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a691b8388214af88a7794c43d31fbe16a">olc::INS</a></div><div class="ttdeci">@ INS</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00555">olcPixelGameEngine.h:555</a></div></div>
+<div class="ttc" id="anamespaceolc_html_aa26a067cf0db83f0b1dd587036a64be7aa82c0ef0b75db6208407e90f6f77f002"><div class="ttname"><a href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7aa82c0ef0b75db6208407e90f6f77f002">olc::EQUALS</a></div><div class="ttdeci">@ EQUALS</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00559">olcPixelGameEngine.h:559</a></div></div>
+<div class="ttc" id="aclassolc_1_1_sprite_html_ad8fcc6bbf8a785aa0bb9d00bf3cfdff2"><div class="ttname"><a href="classolc_1_1_sprite.html#ad8fcc6bbf8a785aa0bb9d00bf3cfdff2">olc::Sprite::GetData</a></div><div class="ttdeci">Pixel * GetData()</div></div>
+<div class="ttc" id="anamespaceolc_html_a183de1c471cfd6f45980bc9c2c58ed9d"><div class="ttname"><a href="namespaceolc.html#a183de1c471cfd6f45980bc9c2c58ed9d">olc::BLACK</a></div><div class="ttdeci">static const Pixel BLACK(0, 0, 0)</div></div>
+<div class="ttc" id="anamespaceolc_html_aa26a067cf0db83f0b1dd587036a64be7aae334e3943922c2b16842afc5306a1e9"><div class="ttname"><a href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7aae334e3943922c2b16842afc5306a1e9">olc::PGDN</a></div><div class="ttdeci">@ PGDN</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00555">olcPixelGameEngine.h:555</a></div></div>
+<div class="ttc" id="astructolc_1_1_pixel_html_a542d8daf20eb48a0539d671ffed9168f"><div class="ttname"><a href="structolc_1_1_pixel.html#a542d8daf20eb48a0539d671ffed9168f">olc::Pixel::Pixel</a></div><div class="ttdeci">Pixel(uint8_t red, uint8_t green, uint8_t blue, uint8_t alpha=nDefaultAlpha)</div></div>
+<div class="ttc" id="anamespaceolc_html_aa26a067cf0db83f0b1dd587036a64be7a31321cae06dfe0989acbbe94c5272b33"><div class="ttname"><a href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a31321cae06dfe0989acbbe94c5272b33">olc::ENTER</a></div><div class="ttdeci">@ ENTER</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00556">olcPixelGameEngine.h:556</a></div></div>
+<div class="ttc" id="astructolc_1_1v2d__generic_html_aba35d326b62454a5fbdeea4220438784"><div class="ttname"><a href="structolc_1_1v2d__generic.html#aba35d326b62454a5fbdeea4220438784">olc::v2d_generic::v2d_generic</a></div><div class="ttdeci">v2d_generic()</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00586">olcPixelGameEngine.h:586</a></div></div>
+<div class="ttc" id="anamespaceolc_html_aa26a067cf0db83f0b1dd587036a64be7a476769e330b87f2fb75aaa684c2f6373"><div class="ttname"><a href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a476769e330b87f2fb75aaa684c2f6373">olc::J</a></div><div class="ttdeci">@ J</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00551">olcPixelGameEngine.h:551</a></div></div>
+<div class="ttc" id="astructolc_1_1_pixel_html_a75ef9e180289d861dfa6687faa248345"><div class="ttname"><a href="structolc_1_1_pixel.html#a75ef9e180289d861dfa6687faa248345">olc::Pixel::Pixel</a></div><div class="ttdeci">Pixel()</div></div>
+<div class="ttc" id="anamespaceolc_html_a32b98884f548bf731eab3225557ebe8c"><div class="ttname"><a href="namespaceolc.html#a32b98884f548bf731eab3225557ebe8c">olc::GREEN</a></div><div class="ttdeci">static const Pixel GREEN(0, 255, 0)</div></div>
+<div class="ttc" id="aclassolc_1_1_p_g_e_x_html_a2a57a711518202708d2b0e586058348f"><div class="ttname"><a href="classolc_1_1_p_g_e_x.html#a2a57a711518202708d2b0e586058348f">olc::PGEX::OnAfterUserCreate</a></div><div class="ttdeci">virtual void OnAfterUserCreate()</div></div>
+<div class="ttc" id="anamespaceolc_html_aa26a067cf0db83f0b1dd587036a64be7a207c1404adcacfadf941ffc681485026"><div class="ttname"><a href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a207c1404adcacfadf941ffc681485026">olc::F2</a></div><div class="ttdeci">@ F2</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00553">olcPixelGameEngine.h:553</a></div></div>
+<div class="ttc" id="aclassolc_1_1_pixel_game_engine_html_ab0726b7758bc1bf7f7de30369076b8e7"><div class="ttname"><a href="classolc_1_1_pixel_game_engine.html#ab0726b7758bc1bf7f7de30369076b8e7">olc::PixelGameEngine::SetPixelBlend</a></div><div class="ttdeci">void SetPixelBlend(float fBlend)</div></div>
+<div class="ttc" id="anamespaceolc_html_aa26a067cf0db83f0b1dd587036a64be7ab9ff66b449c18ecdb5b83a2e055e393b"><div class="ttname"><a href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ab9ff66b449c18ecdb5b83a2e055e393b">olc::F8</a></div><div class="ttdeci">@ F8</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00553">olcPixelGameEngine.h:553</a></div></div>
+<div class="ttc" id="aclassolc_1_1_renderer_html_ac567df937350bffb2eae3e647ccc10d5"><div class="ttname"><a href="classolc_1_1_renderer.html#ac567df937350bffb2eae3e647ccc10d5">olc::Renderer::DrawDecal</a></div><div class="ttdeci">virtual void DrawDecal(const olc::DecalInstance &amp;decal)=0</div></div>
+<div class="ttc" id="anamespaceolc_html_aa26a067cf0db83f0b1dd587036a64be7a573a484680114e221c1a3ecd8307d61a"><div class="ttname"><a href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a573a484680114e221c1a3ecd8307d61a">olc::F3</a></div><div class="ttdeci">@ F3</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00553">olcPixelGameEngine.h:553</a></div></div>
+<div class="ttc" id="astructolc_1_1_h_w_button_html_a0c379d6a109299fc0a1c872ebbb2f4d9"><div class="ttname"><a href="structolc_1_1_h_w_button.html#a0c379d6a109299fc0a1c872ebbb2f4d9">olc::HWButton::bPressed</a></div><div class="ttdeci">bool bPressed</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00569">olcPixelGameEngine.h:569</a></div></div>
+<div class="ttc" id="anamespaceolc_html_adede7d1156ab9d8ffdc3e9048f0f364b"><div class="ttname"><a href="namespaceolc.html#adede7d1156ab9d8ffdc3e9048f0f364b">olc::nDefaultAlpha</a></div><div class="ttdeci">constexpr uint8_t nDefaultAlpha</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00495">olcPixelGameEngine.h:495</a></div></div>
+<div class="ttc" id="aclassolc_1_1_pixel_game_engine_html_ab3150ba487188e64940c294998fa38d3"><div class="ttname"><a href="classolc_1_1_pixel_game_engine.html#ab3150ba487188e64940c294998fa38d3">olc::PixelGameEngine::olc_UpdateMouseFocus</a></div><div class="ttdeci">void olc_UpdateMouseFocus(bool state)</div></div>
+<div class="ttc" id="astructolc_1_1v2d__generic_html_a1fe55d8bc22dbb400583cb68cc9e3e36"><div class="ttname"><a href="structolc_1_1v2d__generic.html#a1fe55d8bc22dbb400583cb68cc9e3e36">olc::v2d_generic::max</a></div><div class="ttdeci">v2d_generic max(const v2d_generic &amp;v) const</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00596">olcPixelGameEngine.h:596</a></div></div>
+<div class="ttc" id="anamespaceolc_html_aa26a067cf0db83f0b1dd587036a64be7a523c88e17275650861203e32067dde01"><div class="ttname"><a href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a523c88e17275650861203e32067dde01">olc::CAPS_LOCK</a></div><div class="ttdeci">@ CAPS_LOCK</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00561">olcPixelGameEngine.h:561</a></div></div>
+<div class="ttc" id="anamespaceolc_html_aa26a067cf0db83f0b1dd587036a64be7aef93738bc8d89f07932dd1a603b021bd"><div class="ttname"><a href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7aef93738bc8d89f07932dd1a603b021bd">olc::TAB</a></div><div class="ttdeci">@ TAB</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00555">olcPixelGameEngine.h:555</a></div></div>
+<div class="ttc" id="astructolc_1_1v2d__generic_html_a88a5aa098b5ada7667a7900a0bc9bba2"><div class="ttname"><a href="structolc_1_1v2d__generic.html#a88a5aa098b5ada7667a7900a0bc9bba2">olc::v2d_generic::operator/=</a></div><div class="ttdeci">v2d_generic &amp; operator/=(const T &amp;rhs)</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00609">olcPixelGameEngine.h:609</a></div></div>
+<div class="ttc" id="anamespaceolc_html_aa26a067cf0db83f0b1dd587036a64be7ac1ae605c94e2d813c718148311c101d1"><div class="ttname"><a href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ac1ae605c94e2d813c718148311c101d1">olc::W</a></div><div class="ttdeci">@ W</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00551">olcPixelGameEngine.h:551</a></div></div>
+<div class="ttc" id="aclassolc_1_1_platform_html_a43a4a5eaaf20384b9cef6aec6e75dbbd"><div class="ttname"><a href="classolc_1_1_platform.html#a43a4a5eaaf20384b9cef6aec6e75dbbd">olc::Platform::ptrPGE</a></div><div class="ttdeci">static olc::PixelGameEngine * ptrPGE</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00842">olcPixelGameEngine.h:842</a></div></div>
+<div class="ttc" id="anamespaceolc_html_adc292fdc3c4d2a03e8c6bbad1853b727"><div class="ttname"><a href="namespaceolc.html#adc292fdc3c4d2a03e8c6bbad1853b727">olc::MAGENTA</a></div><div class="ttdeci">static const Pixel MAGENTA(255, 0, 255)</div></div>
+<div class="ttc" id="aclassolc_1_1_renderer_html_a28c87db87f8fd9b0f356db5d01499992"><div class="ttname"><a href="classolc_1_1_renderer.html#a28c87db87f8fd9b0f356db5d01499992">olc::Renderer::CreateDevice</a></div><div class="ttdeci">virtual olc::rcode CreateDevice(std::vector&lt; void * &gt; params, bool bFullScreen, bool bVSYNC)=0</div></div>
+<div class="ttc" id="aclassolc_1_1_sprite_html_a294389e93a95c8307f1260d7cacaf9ba"><div class="ttname"><a href="classolc_1_1_sprite.html#a294389e93a95c8307f1260d7cacaf9ba">olc::Sprite::SetPixel</a></div><div class="ttdeci">bool SetPixel(int32_t x, int32_t y, Pixel p)</div></div>
+<div class="ttc" id="anamespaceolc_html_a3d40e9b1c005602550230690b55ae87b"><div class="ttname"><a href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87b">olc::rcode</a></div><div class="ttdeci">rcode</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00497">olcPixelGameEngine.h:497</a></div></div>
+<div class="ttc" id="aclassolc_1_1_renderable_html_ab15a4441be7b48519d55296e416976fd"><div class="ttname"><a href="classolc_1_1_renderable.html#ab15a4441be7b48519d55296e416976fd">olc::Renderable::Create</a></div><div class="ttdeci">void Create(uint32_t width, uint32_t height, bool filter=false, bool clamp=true)</div></div>
+<div class="ttc" id="anamespaceolc_html_aa26a067cf0db83f0b1dd587036a64be7a2b35f0b03e615b828187a990935344c4"><div class="ttname"><a href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a2b35f0b03e615b828187a990935344c4">olc::UP</a></div><div class="ttdeci">@ UP</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00554">olcPixelGameEngine.h:554</a></div></div>
+<div class="ttc" id="aclassolc_1_1_decal_html_ade1e337e839cd254603e4d061c219cc5"><div class="ttname"><a href="classolc_1_1_decal.html#ade1e337e839cd254603e4d061c219cc5">olc::Decal::Decal</a></div><div class="ttdeci">Decal(const uint32_t nExistingTextureResource, olc::Sprite *spr)</div></div>
+<div class="ttc" id="astructolc_1_1_pixel_html_a652a25d4bcab1f7bf627c3224842f0b1"><div class="ttname"><a href="structolc_1_1_pixel.html#a652a25d4bcab1f7bf627c3224842f0b1">olc::Pixel::a</a></div><div class="ttdeci">uint8_t a</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00507">olcPixelGameEngine.h:507</a></div></div>
+<div class="ttc" id="aclassolc_1_1_pixel_game_engine_html_a59645c08376a7d4e58673919f3bd0dfb"><div class="ttname"><a href="classolc_1_1_pixel_game_engine.html#a59645c08376a7d4e58673919f3bd0dfb">olc::PixelGameEngine::olc_UpdateMouseState</a></div><div class="ttdeci">void olc_UpdateMouseState(int32_t button, bool state)</div></div>
+<div class="ttc" id="aclassolc_1_1_pixel_game_engine_html_aee10e917aeb1ce4625561d71126e0a7d"><div class="ttname"><a href="classolc_1_1_pixel_game_engine.html#aee10e917aeb1ce4625561d71126e0a7d">olc::PixelGameEngine::GetWindowSize</a></div><div class="ttdeci">const olc::vi2d &amp; GetWindowSize() const</div></div>
+<div class="ttc" id="aclassolc_1_1_renderer_html_aec8e86eb7a104fb0bc8f9fe51318f1a0"><div class="ttname"><a href="classolc_1_1_renderer.html#aec8e86eb7a104fb0bc8f9fe51318f1a0">olc::Renderer::DeleteTexture</a></div><div class="ttdeci">virtual uint32_t DeleteTexture(const uint32_t id)=0</div></div>
+<div class="ttc" id="aclassolc_1_1_pixel_game_engine_html_a5b676590555cab61db67804417c6f25f"><div class="ttname"><a href="classolc_1_1_pixel_game_engine.html#a5b676590555cab61db67804417c6f25f">olc::PixelGameEngine::DrawDecal</a></div><div class="ttdeci">void DrawDecal(const olc::vf2d &amp;pos, olc::Decal *decal, const olc::vf2d &amp;scale={ 1.0f, 1.0f }, const olc::Pixel &amp;tint=olc::WHITE)</div></div>
+<div class="ttc" id="aclassolc_1_1_renderer_html_a877048a1bcf3decfe544804f0e4e1ad9"><div class="ttname"><a href="classolc_1_1_renderer.html#a877048a1bcf3decfe544804f0e4e1ad9">olc::Renderer::~Renderer</a></div><div class="ttdeci">virtual ~Renderer()=default</div></div>
+<div class="ttc" id="astructolc_1_1v2d__generic_html_a9c62f12d51859a5a487c5a0c2d00b09a"><div class="ttname"><a href="structolc_1_1v2d__generic.html#a9c62f12d51859a5a487c5a0c2d00b09a">olc::v2d_generic::norm</a></div><div class="ttdeci">v2d_generic norm() const</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00592">olcPixelGameEngine.h:592</a></div></div>
+<div class="ttc" id="anamespaceolc_html_aa26a067cf0db83f0b1dd587036a64be7a96c49dba90b7ecdfcf88e18c2842a964"><div class="ttname"><a href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a96c49dba90b7ecdfcf88e18c2842a964">olc::NP1</a></div><div class="ttdeci">@ NP1</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00557">olcPixelGameEngine.h:557</a></div></div>
+<div class="ttc" id="astructolc_1_1_decal_instance_html_ad01bc9806792469d91ee0b5736058e7e"><div class="ttname"><a href="structolc_1_1_decal_instance.html#ad01bc9806792469d91ee0b5736058e7e">olc::DecalInstance::decal</a></div><div class="ttdeci">olc::Decal * decal</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00785">olcPixelGameEngine.h:785</a></div></div>
+<div class="ttc" id="astructolc_1_1_layer_desc_html_af6027ed5757afe2c8c0cd50620d7311f"><div class="ttname"><a href="structolc_1_1_layer_desc.html#af6027ed5757afe2c8c0cd50620d7311f">olc::LayerDesc::tint</a></div><div class="ttdeci">olc::Pixel tint</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00803">olcPixelGameEngine.h:803</a></div></div>
+<div class="ttc" id="astructolc_1_1v2d__generic_html_a1febe5d22672d7d0121526577bf3b535"><div class="ttname"><a href="structolc_1_1v2d__generic.html#a1febe5d22672d7d0121526577bf3b535">olc::v2d_generic::cross</a></div><div class="ttdeci">T cross(const v2d_generic &amp;rhs) const</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00599">olcPixelGameEngine.h:599</a></div></div>
+<div class="ttc" id="astructolc_1_1v2d__generic_html_a2fc62e52adae5f9e4138adf073afddb0"><div class="ttname"><a href="structolc_1_1v2d__generic.html#a2fc62e52adae5f9e4138adf073afddb0">olc::v2d_generic::v2d_generic</a></div><div class="ttdeci">v2d_generic(T _x, T _y)</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00587">olcPixelGameEngine.h:587</a></div></div>
+<div class="ttc" id="anamespaceolc_html_aa26a067cf0db83f0b1dd587036a64be7a636f4e49257a6476ad0aab590318672f"><div class="ttname"><a href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a636f4e49257a6476ad0aab590318672f">olc::K8</a></div><div class="ttdeci">@ K8</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00552">olcPixelGameEngine.h:552</a></div></div>
+<div class="ttc" id="aclassolc_1_1_resource_pack_html_a7e48d44ecdac3d4a2eec7bb5a5eb1ec5"><div class="ttname"><a href="classolc_1_1_resource_pack.html#a7e48d44ecdac3d4a2eec7bb5a5eb1ec5">olc::ResourcePack::~ResourcePack</a></div><div class="ttdeci">~ResourcePack()</div></div>
+<div class="ttc" id="anamespaceolc_html_aa26a067cf0db83f0b1dd587036a64be7a1a7a9ef9ded3ee4bb7b7e4fbc69ae4b8"><div class="ttname"><a href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a1a7a9ef9ded3ee4bb7b7e4fbc69ae4b8">olc::G</a></div><div class="ttdeci">@ G</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00551">olcPixelGameEngine.h:551</a></div></div>
+<div class="ttc" id="astructolc_1_1_pixel_html_a9e52ebcc91b8460859a606b7bf763b82"><div class="ttname"><a href="structolc_1_1_pixel.html#a9e52ebcc91b8460859a606b7bf763b82">olc::Pixel::operator=</a></div><div class="ttdeci">Pixel &amp; operator=(const Pixel &amp;v)=default</div></div>
+<div class="ttc" id="astructolc_1_1_decal_instance_html_a3475b1bb41f868f218c759972dec2f73"><div class="ttname"><a href="structolc_1_1_decal_instance.html#a3475b1bb41f868f218c759972dec2f73">olc::DecalInstance::w</a></div><div class="ttdeci">std::vector&lt; float &gt; w</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00788">olcPixelGameEngine.h:788</a></div></div>
+<div class="ttc" id="anamespaceolc_html_abf7dfc35dd1d895f33d3635831953e38"><div class="ttname"><a href="namespaceolc.html#abf7dfc35dd1d895f33d3635831953e38">olc::nMouseButtons</a></div><div class="ttdeci">constexpr uint8_t nMouseButtons</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00494">olcPixelGameEngine.h:494</a></div></div>
+<div class="ttc" id="anamespaceolc_html_abad91f58a178a173f76ce7d9f9aa99c4"><div class="ttname"><a href="namespaceolc.html#abad91f58a178a173f76ce7d9f9aa99c4">olc::DARK_MAGENTA</a></div><div class="ttdeci">static const Pixel DARK_MAGENTA(128, 0, 128)</div></div>
+<div class="ttc" id="astructolc_1_1_layer_desc_html_a1657be3b96c8fbb85fe113ae695fece9"><div class="ttname"><a href="structolc_1_1_layer_desc.html#a1657be3b96c8fbb85fe113ae695fece9">olc::LayerDesc::vOffset</a></div><div class="ttdeci">olc::vf2d vOffset</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00796">olcPixelGameEngine.h:796</a></div></div>
+<div class="ttc" id="aclassolc_1_1_pixel_game_engine_html_a483f56606fbbf3ab4850554491a853bd"><div class="ttname"><a href="classolc_1_1_pixel_game_engine.html#a483f56606fbbf3ab4850554491a853bd">olc::PixelGameEngine::FillCircle</a></div><div class="ttdeci">void FillCircle(int32_t x, int32_t y, int32_t radius, Pixel p=olc::WHITE)</div></div>
+<div class="ttc" id="anamespaceolc_html_aa26a067cf0db83f0b1dd587036a64be7a614698cb99af6a9effa5d7ce88b2c674"><div class="ttname"><a href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a614698cb99af6a9effa5d7ce88b2c674">olc::F</a></div><div class="ttdeci">@ F</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00551">olcPixelGameEngine.h:551</a></div></div>
+<div class="ttc" id="astructolc_1_1_pixel_html_abace0545af22380831ffbc8bd1a66419"><div class="ttname"><a href="structolc_1_1_pixel.html#abace0545af22380831ffbc8bd1a66419">olc::Pixel::operator*=</a></div><div class="ttdeci">Pixel &amp; operator*=(const float i)</div></div>
+<div class="ttc" id="aclassolc_1_1_pixel_game_engine_html_ad4f95a449dc09a2650ec771e6fa83049"><div class="ttname"><a href="classolc_1_1_pixel_game_engine.html#ad4f95a449dc09a2650ec771e6fa83049">olc::PixelGameEngine::GetPixelMode</a></div><div class="ttdeci">Pixel::Mode GetPixelMode()</div></div>
+<div class="ttc" id="anamespaceolc_html_aa26a067cf0db83f0b1dd587036a64be7a7417555746b2b1026b8ba65912817111"><div class="ttname"><a href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a7417555746b2b1026b8ba65912817111">olc::R</a></div><div class="ttdeci">@ R</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00551">olcPixelGameEngine.h:551</a></div></div>
+<div class="ttc" id="astructolc_1_1_pixel_html_ae9012164940526ddb09b217dbbddfd65"><div class="ttname"><a href="structolc_1_1_pixel.html#ae9012164940526ddb09b217dbbddfd65">olc::Pixel::Mode</a></div><div class="ttdeci">Mode</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00510">olcPixelGameEngine.h:510</a></div></div>
+<div class="ttc" id="anamespaceolc_html_aa26a067cf0db83f0b1dd587036a64be7ad29833dd46d756ecf0e9d477d0845450"><div class="ttname"><a href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ad29833dd46d756ecf0e9d477d0845450">olc::OEM_2</a></div><div class="ttdeci">@ OEM_2</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00560">olcPixelGameEngine.h:560</a></div></div>
+<div class="ttc" id="anamespaceolc_html_a6c9728f6dba8b58406bb0e10979b6ccf"><div class="ttname"><a href="namespaceolc.html#a6c9728f6dba8b58406bb0e10979b6ccf">olc::YELLOW</a></div><div class="ttdeci">static const Pixel YELLOW(255, 255, 0)</div></div>
+<div class="ttc" id="aclassolc_1_1_sprite_html_a1a05e4ffd8d8b24b99ab511279b342cf"><div class="ttname"><a href="classolc_1_1_sprite.html#a1a05e4ffd8d8b24b99ab511279b342cf">olc::Sprite::GetPixel</a></div><div class="ttdeci">Pixel GetPixel(const olc::vi2d &amp;a) const</div></div>
+<div class="ttc" id="anamespaceolc_html_aa26a067cf0db83f0b1dd587036a64be7a506f2ec576fcd3a8fabd37461bba83f8"><div class="ttname"><a href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a506f2ec576fcd3a8fabd37461bba83f8">olc::DOWN</a></div><div class="ttdeci">@ DOWN</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00554">olcPixelGameEngine.h:554</a></div></div>
+<div class="ttc" id="aclassolc_1_1_pixel_game_engine_html_a169b1c8ca3116ac2338785b8ffe87954"><div class="ttname"><a href="classolc_1_1_pixel_game_engine.html#a169b1c8ca3116ac2338785b8ffe87954">olc::PixelGameEngine::FillCircle</a></div><div class="ttdeci">void FillCircle(const olc::vi2d &amp;pos, int32_t radius, Pixel p=olc::WHITE)</div></div>
+<div class="ttc" id="aclassolc_1_1_pixel_game_engine_html_a5bae460b03f2837e39fdee3a0bbb6f99"><div class="ttname"><a href="classolc_1_1_pixel_game_engine.html#a5bae460b03f2837e39fdee3a0bbb6f99">olc::PixelGameEngine::DrawSprite</a></div><div class="ttdeci">void DrawSprite(int32_t x, int32_t y, Sprite *sprite, uint32_t scale=1, uint8_t flip=olc::Sprite::NONE)</div></div>
+<div class="ttc" id="aclassolc_1_1_sprite_html_ae7b8af09a29793ab16b7b813c8b0d26d"><div class="ttname"><a href="classolc_1_1_sprite.html#ae7b8af09a29793ab16b7b813c8b0d26d">olc::Sprite::SetPixel</a></div><div class="ttdeci">bool SetPixel(const olc::vi2d &amp;a, Pixel p)</div></div>
+<div class="ttc" id="astructolc_1_1v2d__generic_html_a35c81946f320da79fa5a33e595873252"><div class="ttname"><a href="structolc_1_1v2d__generic.html#a35c81946f320da79fa5a33e595873252">olc::v2d_generic::operator*=</a></div><div class="ttdeci">v2d_generic &amp; operator*=(const T &amp;rhs)</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00608">olcPixelGameEngine.h:608</a></div></div>
+<div class="ttc" id="anamespaceolc_html_a3c42697361e8a28424bcf8415aba3564"><div class="ttname"><a href="namespaceolc.html#a3c42697361e8a28424bcf8415aba3564">olc::vi2d</a></div><div class="ttdeci">v2d_generic&lt; int32_t &gt; vi2d</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00644">olcPixelGameEngine.h:644</a></div></div>
+<div class="ttc" id="astructolc_1_1v2d__generic_html_aec7b204ad597ee0edc9a444ff3a242eb"><div class="ttname"><a href="structolc_1_1v2d__generic.html#aec7b204ad597ee0edc9a444ff3a242eb">olc::v2d_generic::min</a></div><div class="ttdeci">v2d_generic min(const v2d_generic &amp;v) const</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00597">olcPixelGameEngine.h:597</a></div></div>
+<div class="ttc" id="anamespaceolc_html_aa26a067cf0db83f0b1dd587036a64be7a8baf1c6fa76f36bae92c12df88f4c84d"><div class="ttname"><a href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a8baf1c6fa76f36bae92c12df88f4c84d">olc::B</a></div><div class="ttdeci">@ B</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00551">olcPixelGameEngine.h:551</a></div></div>
+<div class="ttc" id="aclassolc_1_1_pixel_game_engine_html_a7afa0b57c65bd5d9a54c602afd4fe756"><div class="ttname"><a href="classolc_1_1_pixel_game_engine.html#a7afa0b57c65bd5d9a54c602afd4fe756">olc::PixelGameEngine::olc_ConfigureSystem</a></div><div class="ttdeci">virtual void olc_ConfigureSystem()</div></div>
+<div class="ttc" id="aclassolc_1_1_pixel_game_engine_html_a721fb4cfac75f76c6d5832415fccbe61"><div class="ttname"><a href="classolc_1_1_pixel_game_engine.html#a721fb4cfac75f76c6d5832415fccbe61">olc::PixelGameEngine::GetPixelSize</a></div><div class="ttdeci">const olc::vi2d &amp; GetPixelSize() const</div></div>
+<div class="ttc" id="aclassolc_1_1_platform_html_a65e6f9763726056f6a9d37395b8ed023"><div class="ttname"><a href="classolc_1_1_platform.html#a65e6f9763726056f6a9d37395b8ed023">olc::Platform::ApplicationStartUp</a></div><div class="ttdeci">virtual olc::rcode ApplicationStartUp()=0</div></div>
+<div class="ttc" id="aclassolc_1_1_decal_html_aff06190e3ca17446d373d5a93a3636c7"><div class="ttname"><a href="classolc_1_1_decal.html#aff06190e3ca17446d373d5a93a3636c7">olc::Decal::vUVScale</a></div><div class="ttdeci">olc::vf2d vUVScale</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00748">olcPixelGameEngine.h:748</a></div></div>
+<div class="ttc" id="aclassolc_1_1_pixel_game_engine_html_a61fde81846a9ef7f8fcf63080e6d350b"><div class="ttname"><a href="classolc_1_1_pixel_game_engine.html#a61fde81846a9ef7f8fcf63080e6d350b">olc::PixelGameEngine::olc_UpdateKeyState</a></div><div class="ttdeci">void olc_UpdateKeyState(int32_t key, bool state)</div></div>
+<div class="ttc" id="astructolc_1_1v2d__generic_html_a9eff196e75aeffcd96bffb64de04219d"><div class="ttname"><a href="structolc_1_1v2d__generic.html#a9eff196e75aeffcd96bffb64de04219d">olc::v2d_generic::operator-</a></div><div class="ttdeci">v2d_generic operator-() const</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00613">olcPixelGameEngine.h:613</a></div></div>
+<div class="ttc" id="aclassolc_1_1_pixel_game_engine_html_a6a33b6ff7cd23dfd05b34416865fb5c3"><div class="ttname"><a href="classolc_1_1_pixel_game_engine.html#a6a33b6ff7cd23dfd05b34416865fb5c3">olc::PixelGameEngine::OnUserCreate</a></div><div class="ttdeci">virtual bool OnUserCreate()</div></div>
+<div class="ttc" id="astructolc_1_1_pixel_html_ae9012164940526ddb09b217dbbddfd65aed57164e9f056c1af912b3069eb45deb"><div class="ttname"><a href="structolc_1_1_pixel.html#ae9012164940526ddb09b217dbbddfd65aed57164e9f056c1af912b3069eb45deb">olc::Pixel::CUSTOM</a></div><div class="ttdeci">@ CUSTOM</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00510">olcPixelGameEngine.h:510</a></div></div>
+<div class="ttc" id="aclassolc_1_1_pixel_game_engine_html_a6e10d8fae75e26dea03b0b447667a308"><div class="ttname"><a href="classolc_1_1_pixel_game_engine.html#a6e10d8fae75e26dea03b0b447667a308">olc::PixelGameEngine::olc_UpdateMouse</a></div><div class="ttdeci">void olc_UpdateMouse(int32_t x, int32_t y)</div></div>
+<div class="ttc" id="aclassolc_1_1_renderable_html_af6e5a2d5a46fe4f475c67ca5ab1b1f5d"><div class="ttname"><a href="classolc_1_1_renderable.html#af6e5a2d5a46fe4f475c67ca5ab1b1f5d">olc::Renderable::Decal</a></div><div class="ttdeci">olc::Decal * Decal() const</div></div>
+<div class="ttc" id="anamespaceolc_html_aa26a067cf0db83f0b1dd587036a64be7afee25adbffa6e8fc092d52193195182f"><div class="ttname"><a href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7afee25adbffa6e8fc092d52193195182f">olc::NP7</a></div><div class="ttdeci">@ NP7</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00557">olcPixelGameEngine.h:557</a></div></div>
+<div class="ttc" id="aclassolc_1_1_pixel_game_engine_html_a02a26bca44e04f075f517bdae6ac0e9d"><div class="ttname"><a href="classolc_1_1_pixel_game_engine.html#a02a26bca44e04f075f517bdae6ac0e9d">olc::PixelGameEngine::FillRectDecal</a></div><div class="ttdeci">void FillRectDecal(const olc::vf2d &amp;pos, const olc::vf2d &amp;size, const olc::Pixel col=olc::WHITE)</div></div>
+<div class="ttc" id="aclassolc_1_1_p_g_e_x_html"><div class="ttname"><a href="classolc_1_1_p_g_e_x.html">olc::PGEX</a></div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l01118">olcPixelGameEngine.h:1119</a></div></div>
+<div class="ttc" id="aclassolc_1_1_pixel_game_engine_html_aa70121ffb85733f8ea2e7e5d0b4b311b"><div class="ttname"><a href="classolc_1_1_pixel_game_engine.html#aa70121ffb85733f8ea2e7e5d0b4b311b">olc::PixelGameEngine::GetTextSize</a></div><div class="ttdeci">olc::vi2d GetTextSize(const std::string &amp;s)</div></div>
+<div class="ttc" id="aclassolc_1_1_platform_html_a0e4e37ccc06ae7f3251b7a53ce839c13"><div class="ttname"><a href="classolc_1_1_platform.html#a0e4e37ccc06ae7f3251b7a53ce839c13">olc::Platform::ThreadCleanUp</a></div><div class="ttdeci">virtual olc::rcode ThreadCleanUp()=0</div></div>
+<div class="ttc" id="aclassolc_1_1_pixel_game_engine_html_aa3b458d05eab503d9918cfd2d383a45c"><div class="ttname"><a href="classolc_1_1_pixel_game_engine.html#aa3b458d05eab503d9918cfd2d383a45c">olc::PixelGameEngine::ScreenWidth</a></div><div class="ttdeci">int32_t ScreenWidth() const</div></div>
+<div class="ttc" id="aclassolc_1_1_renderer_html_aebfc5a561c54b88f16a0b3d855eedaa1"><div class="ttname"><a href="classolc_1_1_renderer.html#aebfc5a561c54b88f16a0b3d855eedaa1">olc::Renderer::SetDecalMode</a></div><div class="ttdeci">virtual void SetDecalMode(const olc::DecalMode &amp;mode)=0</div></div>
+<div class="ttc" id="astructolc_1_1_resource_buffer_html_abd18994c20cc7992ff7ccb07af9914e7"><div class="ttname"><a href="structolc_1_1_resource_buffer.html#abd18994c20cc7992ff7ccb07af9914e7">olc::ResourceBuffer::ResourceBuffer</a></div><div class="ttdeci">ResourceBuffer(std::ifstream &amp;ifs, uint32_t offset, uint32_t size)</div></div>
+<div class="ttc" id="anamespaceolc_html_aa26a067cf0db83f0b1dd587036a64be7aba2ad21d300fb113ff4e82665800cf75"><div class="ttname"><a href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7aba2ad21d300fb113ff4e82665800cf75">olc::K3</a></div><div class="ttdeci">@ K3</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00552">olcPixelGameEngine.h:552</a></div></div>
+<div class="ttc" id="astructolc_1_1_pixel_html_a15a61beedc23ca678a954567274e24de"><div class="ttname"><a href="structolc_1_1_pixel.html#a15a61beedc23ca678a954567274e24de">olc::Pixel::operator*</a></div><div class="ttdeci">Pixel operator*(const float i) const</div></div>
+<div class="ttc" id="aclassolc_1_1_pixel_game_engine_html_a89d27938d71d49b42a20307444147697"><div class="ttname"><a href="classolc_1_1_pixel_game_engine.html#a89d27938d71d49b42a20307444147697">olc::PixelGameEngine::GetFPS</a></div><div class="ttdeci">uint32_t GetFPS() const</div></div>
+<div class="ttc" id="astructolc_1_1v2d__generic_html_adff36d90ca79f24401a31cbde706bf8c"><div class="ttname"><a href="structolc_1_1v2d__generic.html#adff36d90ca79f24401a31cbde706bf8c">olc::v2d_generic::operator=</a></div><div class="ttdeci">v2d_generic &amp; operator=(const v2d_generic &amp;v)=default</div></div>
+<div class="ttc" id="aclassolc_1_1_pixel_game_engine_html_a02d0f9c50770aa38aea1448f62d3604f"><div class="ttname"><a href="classolc_1_1_pixel_game_engine.html#a02d0f9c50770aa38aea1448f62d3604f">olc::PixelGameEngine::sAppName</a></div><div class="ttdeci">std::string sAppName</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l01024">olcPixelGameEngine.h:1024</a></div></div>
+<div class="ttc" id="astructolc_1_1_pixel_html_a6b82561c110de5447ca4d59c3162d06c"><div class="ttname"><a href="structolc_1_1_pixel.html#a6b82561c110de5447ca4d59c3162d06c">olc::Pixel::operator==</a></div><div class="ttdeci">bool operator==(const Pixel &amp;p) const</div></div>
+<div class="ttc" id="aclassolc_1_1_pixel_game_engine_html_a7392273f15fc09b3659b112564aa0dfa"><div class="ttname"><a href="classolc_1_1_pixel_game_engine.html#a7392273f15fc09b3659b112564aa0dfa">olc::PixelGameEngine::DrawStringPropDecal</a></div><div class="ttdeci">void DrawStringPropDecal(const olc::vf2d &amp;pos, const std::string &amp;sText, const Pixel col=olc::WHITE, const olc::vf2d &amp;scale={ 1.0f, 1.0f })</div></div>
+<div class="ttc" id="aclassolc_1_1_p_g_e_x_html_a2573df22f1637314b976811714dea3fb"><div class="ttname"><a href="classolc_1_1_p_g_e_x.html#a2573df22f1637314b976811714dea3fb">olc::PGEX::OnBeforeUserUpdate</a></div><div class="ttdeci">virtual void OnBeforeUserUpdate(float &amp;fElapsedTime)</div></div>
+<div class="ttc" id="aclassolc_1_1_platform_html_abbc05f4b3aea3513919b05fdb15bfbbc"><div class="ttname"><a href="classolc_1_1_platform.html#abbc05f4b3aea3513919b05fdb15bfbbc">olc::Platform::HandleSystemEvent</a></div><div class="ttdeci">virtual olc::rcode HandleSystemEvent()=0</div></div>
+<div class="ttc" id="aclassolc_1_1_pixel_game_engine_html_a70b6a145d7ab0c8857000a72ce4d4a70"><div class="ttname"><a href="classolc_1_1_pixel_game_engine.html#a70b6a145d7ab0c8857000a72ce4d4a70">olc::PixelGameEngine::SetDrawTarget</a></div><div class="ttdeci">void SetDrawTarget(Sprite *target)</div></div>
+<div class="ttc" id="aclassolc_1_1_pixel_game_engine_html_af1cd38cf0df2e7c3ab53bee66ec63771"><div class="ttname"><a href="classolc_1_1_pixel_game_engine.html#af1cd38cf0df2e7c3ab53bee66ec63771">olc::PixelGameEngine::olc_UpdateViewport</a></div><div class="ttdeci">void olc_UpdateViewport()</div></div>
+<div class="ttc" id="aclassolc_1_1_pixel_game_engine_html_a0e1ddc993ef65dfe00f2bbcf59e535ad"><div class="ttname"><a href="classolc_1_1_pixel_game_engine.html#a0e1ddc993ef65dfe00f2bbcf59e535ad">olc::PixelGameEngine::SetLayerOffset</a></div><div class="ttdeci">void SetLayerOffset(uint8_t layer, const olc::vf2d &amp;offset)</div></div>
+<div class="ttc" id="anamespaceolc_html_aa26a067cf0db83f0b1dd587036a64be7ad29058aa6514f4f9dcdefdba93adc8ec"><div class="ttname"><a href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ad29058aa6514f4f9dcdefdba93adc8ec">olc::E</a></div><div class="ttdeci">@ E</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00551">olcPixelGameEngine.h:551</a></div></div>
+<div class="ttc" id="anamespaceolc_html_a3d40e9b1c005602550230690b55ae87baadc8ac6e9769db5bb290fbf5f8284dbf"><div class="ttname"><a href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87baadc8ac6e9769db5bb290fbf5f8284dbf">olc::FAIL</a></div><div class="ttdeci">@ FAIL</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00497">olcPixelGameEngine.h:497</a></div></div>
+<div class="ttc" id="aclassolc_1_1_renderer_html_a3eccca504615e72d1f40acd03ffce89f"><div class="ttname"><a href="classolc_1_1_renderer.html#a3eccca504615e72d1f40acd03ffce89f">olc::Renderer::DrawLayerQuad</a></div><div class="ttdeci">virtual void DrawLayerQuad(const olc::vf2d &amp;offset, const olc::vf2d &amp;scale, const olc::Pixel tint)=0</div></div>
+<div class="ttc" id="anamespaceolc_html_aa26a067cf0db83f0b1dd587036a64be7a53987c7c18a4a4479c4e1ff7f65c414e"><div class="ttname"><a href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a53987c7c18a4a4479c4e1ff7f65c414e">olc::NP9</a></div><div class="ttdeci">@ NP9</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00557">olcPixelGameEngine.h:557</a></div></div>
+<div class="ttc" id="aclassolc_1_1_pixel_game_engine_html_a1ddca999be34411764bb12d2a15cc021"><div class="ttname"><a href="classolc_1_1_pixel_game_engine.html#a1ddca999be34411764bb12d2a15cc021">olc::PixelGameEngine::DrawStringProp</a></div><div class="ttdeci">void DrawStringProp(int32_t x, int32_t y, const std::string &amp;sText, Pixel col=olc::WHITE, uint32_t scale=1)</div></div>
+<div class="ttc" id="anamespaceolc_html_a8265396ef812918ca95d2e7aa39c14cc"><div class="ttname"><a href="namespaceolc.html#a8265396ef812918ca95d2e7aa39c14cc">olc::DARK_RED</a></div><div class="ttdeci">static const Pixel DARK_RED(128, 0, 0)</div></div>
+<div class="ttc" id="aclassolc_1_1_p_g_e_x_html_a032efdb84150a7cdd3cc9248860df316"><div class="ttname"><a href="classolc_1_1_p_g_e_x.html#a032efdb84150a7cdd3cc9248860df316">olc::PGEX::pge</a></div><div class="ttdeci">static PixelGameEngine * pge</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l01131">olcPixelGameEngine.h:1131</a></div></div>
+<div class="ttc" id="anamespaceolc_html_a93de271d8b3cbd5aec73a085e6a6ec7a"><div class="ttname"><a href="namespaceolc.html#a93de271d8b3cbd5aec73a085e6a6ec7a">olc::VERY_DARK_GREY</a></div><div class="ttdeci">static const Pixel VERY_DARK_GREY(64, 64, 64)</div></div>
+<div class="ttc" id="aclassolc_1_1_decal_html_a5479fee995f05355026dafd8cadcac88"><div class="ttname"><a href="classolc_1_1_decal.html#a5479fee995f05355026dafd8cadcac88">olc::Decal::Decal</a></div><div class="ttdeci">Decal(olc::Sprite *spr, bool filter=false, bool clamp=true)</div></div>
+<div class="ttc" id="anamespaceolc_html_aa26a067cf0db83f0b1dd587036a64be7aba366840d455651d4cedc7f7ee4c770b"><div class="ttname"><a href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7aba366840d455651d4cedc7f7ee4c770b">olc::F11</a></div><div class="ttdeci">@ F11</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00553">olcPixelGameEngine.h:553</a></div></div>
+<div class="ttc" id="anamespaceolc_html_a6448f6127e1003cd9287161c5c4d52e0"><div class="ttname"><a href="namespaceolc.html#a6448f6127e1003cd9287161c5c4d52e0">olc::operator/</a></div><div class="ttdeci">v2d_generic&lt; T &gt; operator/(const float &amp;lhs, const v2d_generic&lt; T &gt; &amp;rhs)</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00631">olcPixelGameEngine.h:631</a></div></div>
+<div class="ttc" id="aclassolc_1_1_sprite_html_af055800e63204ae372ca0812e6926230"><div class="ttname"><a href="classolc_1_1_sprite.html#af055800e63204ae372ca0812e6926230">olc::Sprite::width</a></div><div class="ttdeci">int32_t width</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00711">olcPixelGameEngine.h:711</a></div></div>
+<div class="ttc" id="astructolc_1_1_layer_desc_html"><div class="ttname"><a href="structolc_1_1_layer_desc.html">olc::LayerDesc</a></div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00794">olcPixelGameEngine.h:795</a></div></div>
+<div class="ttc" id="anamespaceolc_html_aa26a067cf0db83f0b1dd587036a64be7a925d9a708542cd050a0b4f87bd7ba297"><div class="ttname"><a href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a925d9a708542cd050a0b4f87bd7ba297">olc::SPACE</a></div><div class="ttdeci">@ SPACE</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00555">olcPixelGameEngine.h:555</a></div></div>
+<div class="ttc" id="anamespaceolc_html_aa26a067cf0db83f0b1dd587036a64be7ae2ce826d1d0de6429f9f28a19d11edfb"><div class="ttname"><a href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ae2ce826d1d0de6429f9f28a19d11edfb">olc::NP_MUL</a></div><div class="ttdeci">@ NP_MUL</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00558">olcPixelGameEngine.h:558</a></div></div>
+<div class="ttc" id="aclassolc_1_1_image_loader_html_ac08c7387037c748a38598b6442974d81"><div class="ttname"><a href="classolc_1_1_image_loader.html#ac08c7387037c748a38598b6442974d81">olc::ImageLoader::LoadImageResource</a></div><div class="ttdeci">virtual olc::rcode LoadImageResource(olc::Sprite *spr, const std::string &amp;sImageFile, olc::ResourcePack *pack)=0</div></div>
+<div class="ttc" id="aclassolc_1_1_pixel_game_engine_html_af881473291c52d849dbef155e359b27c"><div class="ttname"><a href="classolc_1_1_pixel_game_engine.html#af881473291c52d849dbef155e359b27c">olc::PixelGameEngine::GetElapsedTime</a></div><div class="ttdeci">float GetElapsedTime() const</div></div>
+<div class="ttc" id="anamespaceolc_html_aa26a067cf0db83f0b1dd587036a64be7ad7e69e28cedaf91718aa4801d5a3bdb7"><div class="ttname"><a href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ad7e69e28cedaf91718aa4801d5a3bdb7">olc::OEM_5</a></div><div class="ttdeci">@ OEM_5</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00560">olcPixelGameEngine.h:560</a></div></div>
+<div class="ttc" id="anamespaceolc_html_aa26a067cf0db83f0b1dd587036a64be7aade223a1643f8d607eb44fff1bbaae8e"><div class="ttname"><a href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7aade223a1643f8d607eb44fff1bbaae8e">olc::NP_SUB</a></div><div class="ttdeci">@ NP_SUB</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00558">olcPixelGameEngine.h:558</a></div></div>
+<div class="ttc" id="aclassolc_1_1_pixel_game_engine_html_aed9a3f6bd349e091728a329ee42932bf"><div class="ttname"><a href="classolc_1_1_pixel_game_engine.html#aed9a3f6bd349e091728a329ee42932bf">olc::PixelGameEngine::ClearBuffer</a></div><div class="ttdeci">void ClearBuffer(Pixel p, bool bDepth=true)</div></div>
+<div class="ttc" id="aclassolc_1_1_pixel_game_engine_html_aecfcfec384cf4eb56ab89f92df4ff288"><div class="ttname"><a href="classolc_1_1_pixel_game_engine.html#aecfcfec384cf4eb56ab89f92df4ff288">olc::PixelGameEngine::DrawPartialSprite</a></div><div class="ttdeci">void DrawPartialSprite(const olc::vi2d &amp;pos, Sprite *sprite, const olc::vi2d &amp;sourcepos, const olc::vi2d &amp;size, uint32_t scale=1, uint8_t flip=olc::Sprite::NONE)</div></div>
+<div class="ttc" id="anamespaceolc_html_aa26a067cf0db83f0b1dd587036a64be7a4d809048542b770e810d48919c8f8500"><div class="ttname"><a href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a4d809048542b770e810d48919c8f8500">olc::L</a></div><div class="ttdeci">@ L</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00551">olcPixelGameEngine.h:551</a></div></div>
+<div class="ttc" id="aclassolc_1_1_platform_html_aec7a14ba9007d3c421481baa49e55669"><div class="ttname"><a href="classolc_1_1_platform.html#aec7a14ba9007d3c421481baa49e55669">olc::Platform::ApplicationCleanUp</a></div><div class="ttdeci">virtual olc::rcode ApplicationCleanUp()=0</div></div>
+<div class="ttc" id="anamespaceolc_html_a48fb6375b9a7c0a0d44feaa879e7ebb7"><div class="ttname"><a href="namespaceolc.html#a48fb6375b9a7c0a0d44feaa879e7ebb7">olc::VERY_DARK_BLUE</a></div><div class="ttdeci">static const Pixel VERY_DARK_BLUE(0, 0, 64)</div></div>
+<div class="ttc" id="anamespaceolc_html_aa26a067cf0db83f0b1dd587036a64be7a569010ded143bbdfd1b2dc8e82327b45"><div class="ttname"><a href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a569010ded143bbdfd1b2dc8e82327b45">olc::NONE</a></div><div class="ttdeci">@ NONE</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00550">olcPixelGameEngine.h:550</a></div></div>
+<div class="ttc" id="aclassolc_1_1_pixel_game_engine_html_af11fb390dbc5a3168c26fe911690dcbe"><div class="ttname"><a href="classolc_1_1_pixel_game_engine.html#af11fb390dbc5a3168c26fe911690dcbe">olc::PixelGameEngine::GetMousePos</a></div><div class="ttdeci">const olc::vi2d &amp; GetMousePos() const</div></div>
+<div class="ttc" id="aclassolc_1_1_pixel_game_engine_html_af8fbe005b4069ed1de8e0347b72ebc30"><div class="ttname"><a href="classolc_1_1_pixel_game_engine.html#af8fbe005b4069ed1de8e0347b72ebc30">olc::PixelGameEngine::SetLayerScale</a></div><div class="ttdeci">void SetLayerScale(uint8_t layer, const olc::vf2d &amp;scale)</div></div>
+<div class="ttc" id="aclassolc_1_1_pixel_game_engine_html_a8e8848aa1c743a1ec2cdaa14c87e5cde"><div class="ttname"><a href="classolc_1_1_pixel_game_engine.html#a8e8848aa1c743a1ec2cdaa14c87e5cde">olc::PixelGameEngine::Start</a></div><div class="ttdeci">olc::rcode Start()</div></div>
+<div class="ttc" id="anamespaceolc_html_aa26a067cf0db83f0b1dd587036a64be7a5a979509d792ab38404b7a2aca12c981"><div class="ttname"><a href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a5a979509d792ab38404b7a2aca12c981">olc::DEL</a></div><div class="ttdeci">@ DEL</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00555">olcPixelGameEngine.h:555</a></div></div>
+<div class="ttc" id="aclassolc_1_1_pixel_game_engine_html_ad31abffe6c4d0b864b8f7762c33b7a7d"><div class="ttname"><a href="classolc_1_1_pixel_game_engine.html#ad31abffe6c4d0b864b8f7762c33b7a7d">olc::PixelGameEngine::FillTriangle</a></div><div class="ttdeci">void FillTriangle(int32_t x1, int32_t y1, int32_t x2, int32_t y2, int32_t x3, int32_t y3, Pixel p=olc::WHITE)</div></div>
+<div class="ttc" id="aclassolc_1_1_resource_pack_html_a4421c33c022ad042d29ef81f29f5b355"><div class="ttname"><a href="classolc_1_1_resource_pack.html#a4421c33c022ad042d29ef81f29f5b355">olc::ResourcePack::Loaded</a></div><div class="ttdeci">bool Loaded()</div></div>
+<div class="ttc" id="anamespaceolc_html_a0cb5b54cc54cf0c92741da285010e1e5"><div class="ttname"><a href="namespaceolc.html#a0cb5b54cc54cf0c92741da285010e1e5">olc::operator*</a></div><div class="ttdeci">v2d_generic&lt; T &gt; operator*(const float &amp;lhs, const v2d_generic&lt; T &gt; &amp;rhs)</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00625">olcPixelGameEngine.h:625</a></div></div>
+<div class="ttc" id="astructolc_1_1v2d__generic_html_ac57326846384068beaaddec0674b65d2"><div class="ttname"><a href="structolc_1_1v2d__generic.html#ac57326846384068beaaddec0674b65d2">olc::v2d_generic::operator+=</a></div><div class="ttdeci">v2d_generic &amp; operator+=(const v2d_generic &amp;rhs)</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00606">olcPixelGameEngine.h:606</a></div></div>
+<div class="ttc" id="aclassolc_1_1_pixel_game_engine_html_a2bddba9e808a8702f6af354007302c16"><div class="ttname"><a href="classolc_1_1_pixel_game_engine.html#a2bddba9e808a8702f6af354007302c16">olc::PixelGameEngine::DrawTriangle</a></div><div class="ttdeci">void DrawTriangle(int32_t x1, int32_t y1, int32_t x2, int32_t y2, int32_t x3, int32_t y3, Pixel p=olc::WHITE)</div></div>
+<div class="ttc" id="anamespaceolc_html_aa26a067cf0db83f0b1dd587036a64be7a050dfda2928d980787eeebcaaa4e6fa7"><div class="ttname"><a href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a050dfda2928d980787eeebcaaa4e6fa7">olc::S</a></div><div class="ttdeci">@ S</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00551">olcPixelGameEngine.h:551</a></div></div>
+<div class="ttc" id="astructolc_1_1_pixel_html_acb54675f2c61b989de500f8e6e56a9f6"><div class="ttname"><a href="structolc_1_1_pixel.html#acb54675f2c61b989de500f8e6e56a9f6">olc::Pixel::operator+</a></div><div class="ttdeci">Pixel operator+(const Pixel &amp;p) const</div></div>
+<div class="ttc" id="aclassolc_1_1_renderer_html_a3a59a195cc380f89e5f9cc98b6fda2c7"><div class="ttname"><a href="classolc_1_1_renderer.html#a3a59a195cc380f89e5f9cc98b6fda2c7">olc::Renderer::DestroyDevice</a></div><div class="ttdeci">virtual olc::rcode DestroyDevice()=0</div></div>
+<div class="ttc" id="anamespaceolc_html_a3d40e9b1c005602550230690b55ae87babfe0b9ad99c942b01b1ee61404f559b5"><div class="ttname"><a href="namespaceolc.html#a3d40e9b1c005602550230690b55ae87babfe0b9ad99c942b01b1ee61404f559b5">olc::NO_FILE</a></div><div class="ttdeci">@ NO_FILE</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00497">olcPixelGameEngine.h:497</a></div></div>
+<div class="ttc" id="anamespaceolc_html_aa26a067cf0db83f0b1dd587036a64be7a949dddf48734610228c20566a33912bc"><div class="ttname"><a href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a949dddf48734610228c20566a33912bc">olc::K9</a></div><div class="ttdeci">@ K9</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00552">olcPixelGameEngine.h:552</a></div></div>
+<div class="ttc" id="anamespaceolc_html_a82b6404acf7ac86f237179fc5f9a859f"><div class="ttname"><a href="namespaceolc.html#a82b6404acf7ac86f237179fc5f9a859f">olc::VERY_DARK_RED</a></div><div class="ttdeci">static const Pixel VERY_DARK_RED(64, 0, 0)</div></div>
+<div class="ttc" id="aclassolc_1_1_pixel_game_engine_html_a54b5141da371af51541874dd68e4e6a2"><div class="ttname"><a href="classolc_1_1_pixel_game_engine.html#a54b5141da371af51541874dd68e4e6a2">olc::PixelGameEngine::GetWindowMouse</a></div><div class="ttdeci">const olc::vi2d &amp; GetWindowMouse() const</div></div>
+<div class="ttc" id="aclassolc_1_1_pixel_game_engine_html_a1e3453e2a118596fa04a961f66c6fd46"><div class="ttname"><a href="classolc_1_1_pixel_game_engine.html#a1e3453e2a118596fa04a961f66c6fd46">olc::PixelGameEngine::EnableLayer</a></div><div class="ttdeci">void EnableLayer(uint8_t layer, bool b)</div></div>
+<div class="ttc" id="astructolc_1_1_resource_buffer_html_a413e818311737396d14838a00df05303"><div class="ttname"><a href="structolc_1_1_resource_buffer.html#a413e818311737396d14838a00df05303">olc::ResourceBuffer::vMemory</a></div><div class="ttdeci">std::vector&lt; char &gt; vMemory</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00661">olcPixelGameEngine.h:661</a></div></div>
+<div class="ttc" id="astructolc_1_1v2d__generic_html_a65efb6611304b590a2cb45781b1c34cc"><div class="ttname"><a href="structolc_1_1v2d__generic.html#a65efb6611304b590a2cb45781b1c34cc">olc::v2d_generic::ceil</a></div><div class="ttdeci">v2d_generic ceil() const</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00595">olcPixelGameEngine.h:595</a></div></div>
+<div class="ttc" id="astructolc_1_1_pixel_html_ad6ddaba5806de8b26fea03fa6f7b0edf"><div class="ttname"><a href="structolc_1_1_pixel.html#ad6ddaba5806de8b26fea03fa6f7b0edf">olc::Pixel::Pixel</a></div><div class="ttdeci">Pixel(uint32_t p)</div></div>
+<div class="ttc" id="aclassolc_1_1_pixel_game_engine_html_ae225f7027e20fe0f45a8190a992981cc"><div class="ttname"><a href="classolc_1_1_pixel_game_engine.html#ae225f7027e20fe0f45a8190a992981cc">olc::PixelGameEngine::FillRect</a></div><div class="ttdeci">void FillRect(const olc::vi2d &amp;pos, const olc::vi2d &amp;size, Pixel p=olc::WHITE)</div></div>
+<div class="ttc" id="aclassolc_1_1_resource_pack_html"><div class="ttname"><a href="classolc_1_1_resource_pack.html">olc::ResourcePack</a></div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00664">olcPixelGameEngine.h:665</a></div></div>
+<div class="ttc" id="aclassolc_1_1_decal_html_a7cc798e0327ea4118c648b10e2d57986"><div class="ttname"><a href="classolc_1_1_decal.html#a7cc798e0327ea4118c648b10e2d57986">olc::Decal::id</a></div><div class="ttdeci">int32_t id</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00746">olcPixelGameEngine.h:746</a></div></div>
+<div class="ttc" id="astructolc_1_1v2d__generic_html_a6b83d7375119637fdf65233cf6dae947"><div class="ttname"><a href="structolc_1_1v2d__generic.html#a6b83d7375119637fdf65233cf6dae947">olc::v2d_generic::mag2</a></div><div class="ttdeci">T mag2() const</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00591">olcPixelGameEngine.h:591</a></div></div>
+<div class="ttc" id="aclassolc_1_1_renderer_html_aa0e93a7d9ff6f25e9b154b2c8c86d44d"><div class="ttname"><a href="classolc_1_1_renderer.html#aa0e93a7d9ff6f25e9b154b2c8c86d44d">olc::Renderer::ReadTexture</a></div><div class="ttdeci">virtual void ReadTexture(uint32_t id, olc::Sprite *spr)=0</div></div>
+<div class="ttc" id="aclassolc_1_1_pixel_game_engine_html_a5602d50220bd7edbd77fc67eaa981ce5"><div class="ttname"><a href="classolc_1_1_pixel_game_engine.html#a5602d50220bd7edbd77fc67eaa981ce5">olc::PixelGameEngine::GetScreenPixelSize</a></div><div class="ttdeci">const olc::vi2d &amp; GetScreenPixelSize() const</div></div>
+<div class="ttc" id="astructolc_1_1_decal_instance_html_a60337d982b4f35b3bb5b1d814fa0d09f"><div class="ttname"><a href="structolc_1_1_decal_instance.html#a60337d982b4f35b3bb5b1d814fa0d09f">olc::DecalInstance::uv</a></div><div class="ttdeci">std::vector&lt; olc::vf2d &gt; uv</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00787">olcPixelGameEngine.h:787</a></div></div>
+<div class="ttc" id="anamespaceolc_html_aa26a067cf0db83f0b1dd587036a64be7a6207f4e5a37e546fa3881817046587b9"><div class="ttname"><a href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a6207f4e5a37e546fa3881817046587b9">olc::Y</a></div><div class="ttdeci">@ Y</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00551">olcPixelGameEngine.h:551</a></div></div>
+<div class="ttc" id="aclassolc_1_1_sprite_html_a023da26661031ebf7a276cafd9a43902"><div class="ttname"><a href="classolc_1_1_sprite.html#a023da26661031ebf7a276cafd9a43902">olc::Sprite::loader</a></div><div class="ttdeci">static std::unique_ptr&lt; olc::ImageLoader &gt; loader</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00730">olcPixelGameEngine.h:730</a></div></div>
+<div class="ttc" id="aclassolc_1_1_pixel_game_engine_html_a45d918f65f5fee13e654878d8271326b"><div class="ttname"><a href="classolc_1_1_pixel_game_engine.html#a45d918f65f5fee13e654878d8271326b">olc::PixelGameEngine::GetDrawTargetWidth</a></div><div class="ttdeci">int32_t GetDrawTargetWidth() const</div></div>
+<div class="ttc" id="aclassolc_1_1_platform_html_a2e951cdc0d8fd9bb68f05b33f1fd0450"><div class="ttname"><a href="classolc_1_1_platform.html#a2e951cdc0d8fd9bb68f05b33f1fd0450">olc::Platform::CreateGraphics</a></div><div class="ttdeci">virtual olc::rcode CreateGraphics(bool bFullScreen, bool bEnableVSYNC, const olc::vi2d &amp;vViewPos, const olc::vi2d &amp;vViewSize)=0</div></div>
+<div class="ttc" id="astructolc_1_1_layer_desc_html_a3ed4e651cce6277ab5b75ab1a9b05765"><div class="ttname"><a href="structolc_1_1_layer_desc.html#a3ed4e651cce6277ab5b75ab1a9b05765">olc::LayerDesc::funcHook</a></div><div class="ttdeci">std::function&lt; void()&gt; funcHook</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00804">olcPixelGameEngine.h:804</a></div></div>
+<div class="ttc" id="aclassolc_1_1_pixel_game_engine_html_abdf9f5d70c9e24ab9358a8dd07474105"><div class="ttname"><a href="classolc_1_1_pixel_game_engine.html#abdf9f5d70c9e24ab9358a8dd07474105">olc::PixelGameEngine::GetMouse</a></div><div class="ttdeci">HWButton GetMouse(uint32_t b) const</div></div>
+<div class="ttc" id="anamespaceolc_html_a150fed0369958dc77d3207298588bc94"><div class="ttname"><a href="namespaceolc.html#a150fed0369958dc77d3207298588bc94">olc::VERY_DARK_MAGENTA</a></div><div class="ttdeci">static const Pixel VERY_DARK_MAGENTA(64, 0, 64)</div></div>
+<div class="ttc" id="astructolc_1_1_layer_desc_html_ab9701d17eb84ab32e93211277cacc763"><div class="ttname"><a href="structolc_1_1_layer_desc.html#ab9701d17eb84ab32e93211277cacc763">olc::LayerDesc::vScale</a></div><div class="ttdeci">olc::vf2d vScale</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00797">olcPixelGameEngine.h:797</a></div></div>
+<div class="ttc" id="aclassolc_1_1_pixel_game_engine_html_ae4a3d1aaa40761986389966ab927ef32"><div class="ttname"><a href="classolc_1_1_pixel_game_engine.html#ae4a3d1aaa40761986389966ab927ef32">olc::PixelGameEngine::SetPixelMode</a></div><div class="ttdeci">void SetPixelMode(Pixel::Mode m)</div></div>
+<div class="ttc" id="aclassolc_1_1_pixel_game_engine_html_a131877968123c843374f079814503d22"><div class="ttname"><a href="classolc_1_1_pixel_game_engine.html#a131877968123c843374f079814503d22">olc::PixelGameEngine::DrawLine</a></div><div class="ttdeci">void DrawLine(int32_t x1, int32_t y1, int32_t x2, int32_t y2, Pixel p=olc::WHITE, uint32_t pattern=0xFFFFFFFF)</div></div>
+<div class="ttc" id="aclassolc_1_1_pixel_game_engine_html_a417b6cd564ccad1d878ae51cfdd3be8e"><div class="ttname"><a href="classolc_1_1_pixel_game_engine.html#a417b6cd564ccad1d878ae51cfdd3be8e">olc::PixelGameEngine::olc_Reanimate</a></div><div class="ttdeci">void olc_Reanimate()</div></div>
+<div class="ttc" id="astructolc_1_1_pixel_html_a7fdcfa79f91368e834cc2ec66d9de769"><div class="ttname"><a href="structolc_1_1_pixel.html#a7fdcfa79f91368e834cc2ec66d9de769">olc::Pixel::operator/</a></div><div class="ttdeci">Pixel operator/(const float i) const</div></div>
+<div class="ttc" id="anamespaceolc_html_aa26a067cf0db83f0b1dd587036a64be7a2f2949bdd6d44b3c918531ebc30d8186"><div class="ttname"><a href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a2f2949bdd6d44b3c918531ebc30d8186">olc::F9</a></div><div class="ttdeci">@ F9</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00553">olcPixelGameEngine.h:553</a></div></div>
+<div class="ttc" id="aclassolc_1_1_pixel_game_engine_html_aad3107bbad34e5792a9a35629e1fdbd0"><div class="ttname"><a href="classolc_1_1_pixel_game_engine.html#aad3107bbad34e5792a9a35629e1fdbd0">olc::PixelGameEngine::DrawPartialRotatedDecal</a></div><div class="ttdeci">void DrawPartialRotatedDecal(const olc::vf2d &amp;pos, olc::Decal *decal, const float fAngle, const olc::vf2d &amp;center, const olc::vf2d &amp;source_pos, const olc::vf2d &amp;source_size, const olc::vf2d &amp;scale={ 1.0f, 1.0f }, const olc::Pixel &amp;tint=olc::WHITE)</div></div>
+<div class="ttc" id="anamespaceolc_html_aa26a067cf0db83f0b1dd587036a64be7af2cec59ecc924be0b636e5b767abf29f"><div class="ttname"><a href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7af2cec59ecc924be0b636e5b767abf29f">olc::OEM_6</a></div><div class="ttdeci">@ OEM_6</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00560">olcPixelGameEngine.h:560</a></div></div>
+<div class="ttc" id="aolc_pixel_game_engine_8h_html_ac02283d1990a8623a332f7f7f2230a1f"><div class="ttname"><a href="olc_pixel_game_engine_8h.html#ac02283d1990a8623a332f7f7f2230a1f">olcT</a></div><div class="ttdeci">#define olcT(s)</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00383">olcPixelGameEngine.h:383</a></div></div>
+<div class="ttc" id="aclassolc_1_1_pixel_game_engine_html_a0018131435f88bb5de406fd11ee54058"><div class="ttname"><a href="classolc_1_1_pixel_game_engine.html#a0018131435f88bb5de406fd11ee54058">olc::PixelGameEngine::olc_CoreUpdate</a></div><div class="ttdeci">void olc_CoreUpdate()</div></div>
+<div class="ttc" id="aclassolc_1_1_pixel_game_engine_html_aa19aafa028a7e2eaaf7b2235a9bd2256"><div class="ttname"><a href="classolc_1_1_pixel_game_engine.html#aa19aafa028a7e2eaaf7b2235a9bd2256">olc::PixelGameEngine::olc_PrepareEngine</a></div><div class="ttdeci">void olc_PrepareEngine()</div></div>
+<div class="ttc" id="anamespaceolc_html_aa26a067cf0db83f0b1dd587036a64be7a9bc869632cc0095b7d8e456efd571969"><div class="ttname"><a href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a9bc869632cc0095b7d8e456efd571969">olc::F12</a></div><div class="ttdeci">@ F12</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00553">olcPixelGameEngine.h:553</a></div></div>
+<div class="ttc" id="anamespaceolc_html_aa26a067cf0db83f0b1dd587036a64be7a224c0773e09bdb7fb13683fbb4eeee1a"><div class="ttname"><a href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a224c0773e09bdb7fb13683fbb4eeee1a">olc::H</a></div><div class="ttdeci">@ H</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00551">olcPixelGameEngine.h:551</a></div></div>
+<div class="ttc" id="astructolc_1_1v2d__generic_html_abd9af6a38bc73471874665f508ff10b6"><div class="ttname"><a href="structolc_1_1v2d__generic.html#abd9af6a38bc73471874665f508ff10b6">olc::v2d_generic::operator!=</a></div><div class="ttdeci">bool operator!=(const v2d_generic &amp;rhs) const</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00615">olcPixelGameEngine.h:615</a></div></div>
+<div class="ttc" id="anamespaceolc_html_a10bbdc57cc3fecc7b80ba428eb7494d0"><div class="ttname"><a href="namespaceolc.html#a10bbdc57cc3fecc7b80ba428eb7494d0">olc::nDefaultPixel</a></div><div class="ttdeci">constexpr uint32_t nDefaultPixel</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00496">olcPixelGameEngine.h:496</a></div></div>
+<div class="ttc" id="anamespaceolc_html_aa26a067cf0db83f0b1dd587036a64be7af15830fd3562b144e15a9d8abeb6c118"><div class="ttname"><a href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7af15830fd3562b144e15a9d8abeb6c118">olc::NP_ADD</a></div><div class="ttdeci">@ NP_ADD</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00558">olcPixelGameEngine.h:558</a></div></div>
+<div class="ttc" id="aclassolc_1_1_resource_pack_html_af5b7f93e4fb4e8b899da50985b689083"><div class="ttname"><a href="classolc_1_1_resource_pack.html#af5b7f93e4fb4e8b899da50985b689083">olc::ResourcePack::ResourcePack</a></div><div class="ttdeci">ResourcePack()</div></div>
+<div class="ttc" id="anamespaceolc_html_aa26a067cf0db83f0b1dd587036a64be7ab9dd7de33e89c10afa7947bc5ff6fdea"><div class="ttname"><a href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ab9dd7de33e89c10afa7947bc5ff6fdea">olc::F5</a></div><div class="ttdeci">@ F5</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00553">olcPixelGameEngine.h:553</a></div></div>
+<div class="ttc" id="anamespaceolc_html_aa26a067cf0db83f0b1dd587036a64be7aab84341adb43a72b48030189f9919360"><div class="ttname"><a href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7aab84341adb43a72b48030189f9919360">olc::NP3</a></div><div class="ttdeci">@ NP3</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00557">olcPixelGameEngine.h:557</a></div></div>
+<div class="ttc" id="astructolc_1_1_pixel_html_a93ee3efde3d2b363e4e4813a490f60b4"><div class="ttname"><a href="structolc_1_1_pixel.html#a93ee3efde3d2b363e4e4813a490f60b4">olc::Pixel::r</a></div><div class="ttdeci">uint8_t r</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00507">olcPixelGameEngine.h:507</a></div></div>
+<div class="ttc" id="astructolc_1_1_pixel_html_ae9012164940526ddb09b217dbbddfd65a561bc0234492261a62a3191252692753"><div class="ttname"><a href="structolc_1_1_pixel.html#ae9012164940526ddb09b217dbbddfd65a561bc0234492261a62a3191252692753">olc::Pixel::ALPHA</a></div><div class="ttdeci">@ ALPHA</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00510">olcPixelGameEngine.h:510</a></div></div>
+<div class="ttc" id="aclassolc_1_1_pixel_game_engine_html"><div class="ttname"><a href="classolc_1_1_pixel_game_engine.html">olc::PixelGameEngine</a></div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00855">olcPixelGameEngine.h:856</a></div></div>
+<div class="ttc" id="aclassolc_1_1_pixel_game_engine_html_a11d9ed8762b81e0bd6bbe4349255b1e8"><div class="ttname"><a href="classolc_1_1_pixel_game_engine.html#a11d9ed8762b81e0bd6bbe4349255b1e8">olc::PixelGameEngine::GradientFillRectDecal</a></div><div class="ttdeci">void GradientFillRectDecal(const olc::vf2d &amp;pos, const olc::vf2d &amp;size, const olc::Pixel colTL, const olc::Pixel colBL, const olc::Pixel colBR, const olc::Pixel colTR)</div></div>
+<div class="ttc" id="aclassolc_1_1_sprite_html_a78b7f14903f9f0bb536b66c37f3139cfa3185e8dea4ea5a89d7ea66716c67a175"><div class="ttname"><a href="classolc_1_1_sprite.html#a78b7f14903f9f0bb536b66c37f3139cfa3185e8dea4ea5a89d7ea66716c67a175">olc::Sprite::PERIODIC</a></div><div class="ttdeci">@ PERIODIC</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00713">olcPixelGameEngine.h:713</a></div></div>
+<div class="ttc" id="anamespaceolc_html_aa26a067cf0db83f0b1dd587036a64be7a35430b793d6fae00ed8b060cb0accf32"><div class="ttname"><a href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a35430b793d6fae00ed8b060cb0accf32">olc::ENUM_END</a></div><div class="ttdeci">@ ENUM_END</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00562">olcPixelGameEngine.h:561</a></div></div>
+<div class="ttc" id="aclassolc_1_1_pixel_game_engine_html_a117eedbe1e9366fe2bf402334beb9692"><div class="ttname"><a href="classolc_1_1_pixel_game_engine.html#a117eedbe1e9366fe2bf402334beb9692">olc::PixelGameEngine::olc_ConstructFontSheet</a></div><div class="ttdeci">void olc_ConstructFontSheet()</div></div>
+<div class="ttc" id="aclassolc_1_1_pixel_game_engine_html_a161ef8177257c371741d12cbc4818cf6"><div class="ttname"><a href="classolc_1_1_pixel_game_engine.html#a161ef8177257c371741d12cbc4818cf6">olc::PixelGameEngine::DrawStringProp</a></div><div class="ttdeci">void DrawStringProp(const olc::vi2d &amp;pos, const std::string &amp;sText, Pixel col=olc::WHITE, uint32_t scale=1)</div></div>
+<div class="ttc" id="anamespaceolc_html_aa26a067cf0db83f0b1dd587036a64be7ab719317cfd8ac665e8cc2f420f74b46a"><div class="ttname"><a href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ab719317cfd8ac665e8cc2f420f74b46a">olc::OEM_8</a></div><div class="ttdeci">@ OEM_8</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00560">olcPixelGameEngine.h:560</a></div></div>
+<div class="ttc" id="aclassolc_1_1_resource_pack_html_a3168eef974448f8119e93af97272df27"><div class="ttname"><a href="classolc_1_1_resource_pack.html#a3168eef974448f8119e93af97272df27">olc::ResourcePack::LoadPack</a></div><div class="ttdeci">bool LoadPack(const std::string &amp;sFile, const std::string &amp;sKey)</div></div>
+<div class="ttc" id="aclassolc_1_1_pixel_game_engine_html_a27cb4cb68d5e1ca7df8014d66221269e"><div class="ttname"><a href="classolc_1_1_pixel_game_engine.html#a27cb4cb68d5e1ca7df8014d66221269e">olc::PixelGameEngine::GetKey</a></div><div class="ttdeci">HWButton GetKey(Key k) const</div></div>
+<div class="ttc" id="aclassolc_1_1_pixel_game_engine_html_a8dde80c07547240f5e72b4f2fcd89668"><div class="ttname"><a href="classolc_1_1_pixel_game_engine.html#a8dde80c07547240f5e72b4f2fcd89668">olc::PixelGameEngine::GetMouseY</a></div><div class="ttdeci">int32_t GetMouseY() const</div></div>
+<div class="ttc" id="aclassolc_1_1_pixel_game_engine_html_ae15ffa0503e2893aad7001aa2f5769b7"><div class="ttname"><a href="classolc_1_1_pixel_game_engine.html#ae15ffa0503e2893aad7001aa2f5769b7">olc::PixelGameEngine::CreateLayer</a></div><div class="ttdeci">uint32_t CreateLayer()</div></div>
+<div class="ttc" id="anamespaceolc_html_aa26a067cf0db83f0b1dd587036a64be7a0bc227b9b4a43118d7500e8195806d74"><div class="ttname"><a href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a0bc227b9b4a43118d7500e8195806d74">olc::PAUSE</a></div><div class="ttdeci">@ PAUSE</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00556">olcPixelGameEngine.h:556</a></div></div>
+<div class="ttc" id="aclassolc_1_1_pixel_game_engine_html_abd403468f57f7665d56e202da8de8e76"><div class="ttname"><a href="classolc_1_1_pixel_game_engine.html#abd403468f57f7665d56e202da8de8e76">olc::PixelGameEngine::SetScreenSize</a></div><div class="ttdeci">void SetScreenSize(int w, int h)</div></div>
+<div class="ttc" id="aclassolc_1_1_pixel_game_engine_html_a40a7754338ea7b388ffa2383958d1f0b"><div class="ttname"><a href="classolc_1_1_pixel_game_engine.html#a40a7754338ea7b388ffa2383958d1f0b">olc::PixelGameEngine::DrawPolygonDecal</a></div><div class="ttdeci">void DrawPolygonDecal(olc::Decal *decal, const std::vector&lt; olc::vf2d &gt; &amp;pos, const std::vector&lt; olc::vf2d &gt; &amp;uv, const olc::Pixel tint=olc::WHITE)</div></div>
+<div class="ttc" id="anamespaceolc_html_aa26a067cf0db83f0b1dd587036a64be7a7c408b7a6694f74ac270013753b13aaa"><div class="ttname"><a href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a7c408b7a6694f74ac270013753b13aaa">olc::Z</a></div><div class="ttdeci">@ Z</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00551">olcPixelGameEngine.h:551</a></div></div>
+<div class="ttc" id="astructolc_1_1v2d__generic_html_a1f1138ee06adae0eaffe900b0437b896"><div class="ttname"><a href="structolc_1_1v2d__generic.html#a1f1138ee06adae0eaffe900b0437b896">olc::v2d_generic::operator/</a></div><div class="ttdeci">v2d_generic operator/(const T &amp;rhs) const</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00604">olcPixelGameEngine.h:604</a></div></div>
+<div class="ttc" id="anamespaceolc_html_ae3de4726bf87f2d74693e62d76816db1"><div class="ttname"><a href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a></div><div class="ttdeci">static const Pixel WHITE(255, 255, 255)</div></div>
+<div class="ttc" id="astructolc_1_1_pixel_html_a1ac8b9d37f4c368b62b21b52df1f5937"><div class="ttname"><a href="structolc_1_1_pixel.html#a1ac8b9d37f4c368b62b21b52df1f5937">olc::Pixel::operator-</a></div><div class="ttdeci">Pixel operator-(const Pixel &amp;p) const</div></div>
+<div class="ttc" id="anamespaceolc_html_aa26a067cf0db83f0b1dd587036a64be7a390af039d8a8c4ab71787f001f810521"><div class="ttname"><a href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a390af039d8a8c4ab71787f001f810521">olc::BACK</a></div><div class="ttdeci">@ BACK</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00556">olcPixelGameEngine.h:556</a></div></div>
+<div class="ttc" id="aclassolc_1_1_pixel_game_engine_html_a92192402b5d499ab8b230dfb9393f3b7"><div class="ttname"><a href="classolc_1_1_pixel_game_engine.html#a92192402b5d499ab8b230dfb9393f3b7">olc::PixelGameEngine::IsFocused</a></div><div class="ttdeci">bool IsFocused() const</div></div>
+<div class="ttc" id="aclassolc_1_1_image_loader_html"><div class="ttname"><a href="classolc_1_1_image_loader.html">olc::ImageLoader</a></div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00683">olcPixelGameEngine.h:684</a></div></div>
+<div class="ttc" id="aclassolc_1_1_pixel_game_engine_html_a5993da382c8e661655386a41ae874270"><div class="ttname"><a href="classolc_1_1_pixel_game_engine.html#a5993da382c8e661655386a41ae874270">olc::PixelGameEngine::DrawPartialWarpedDecal</a></div><div class="ttdeci">void DrawPartialWarpedDecal(olc::Decal *decal, const olc::vf2d *pos, const olc::vf2d &amp;source_pos, const olc::vf2d &amp;source_size, const olc::Pixel &amp;tint=olc::WHITE)</div></div>
+<div class="ttc" id="aclassolc_1_1_pixel_game_engine_html_ae6cc4bd274522bf9ac36054eda6c95ac"><div class="ttname"><a href="classolc_1_1_pixel_game_engine.html#ae6cc4bd274522bf9ac36054eda6c95ac">olc::PixelGameEngine::DrawWarpedDecal</a></div><div class="ttdeci">void DrawWarpedDecal(olc::Decal *decal, const olc::vf2d *pos, const olc::Pixel &amp;tint=olc::WHITE)</div></div>
+<div class="ttc" id="anamespaceolc_html_aa26a067cf0db83f0b1dd587036a64be7a4f04a0bac23ee4f7b875d0328f29df27"><div class="ttname"><a href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a4f04a0bac23ee4f7b875d0328f29df27">olc::RETURN</a></div><div class="ttdeci">@ RETURN</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00556">olcPixelGameEngine.h:556</a></div></div>
+<div class="ttc" id="aclassolc_1_1_platform_html_a352f636fdc2e30bddac2db85238b166b"><div class="ttname"><a href="classolc_1_1_platform.html#a352f636fdc2e30bddac2db85238b166b">olc::Platform::~Platform</a></div><div class="ttdeci">virtual ~Platform()=default</div></div>
+<div class="ttc" id="anamespaceolc_html_aa26a067cf0db83f0b1dd587036a64be7a3e1af6612f2964145f438bb63073098d"><div class="ttname"><a href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a3e1af6612f2964145f438bb63073098d">olc::A</a></div><div class="ttdeci">@ A</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00551">olcPixelGameEngine.h:551</a></div></div>
+<div class="ttc" id="anamespaceolc_html_aa26a067cf0db83f0b1dd587036a64be7a353892e1e3473d0a6d3427dd86080506"><div class="ttname"><a href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a353892e1e3473d0a6d3427dd86080506">olc::K1</a></div><div class="ttdeci">@ K1</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00552">olcPixelGameEngine.h:552</a></div></div>
+<div class="ttc" id="aclassolc_1_1_platform_html_ab9ea28ecd660730810463dd6c68b73fd"><div class="ttname"><a href="classolc_1_1_platform.html#ab9ea28ecd660730810463dd6c68b73fd">olc::Platform::SetWindowTitle</a></div><div class="ttdeci">virtual olc::rcode SetWindowTitle(const std::string &amp;s)=0</div></div>
+<div class="ttc" id="anamespaceolc_html_aa26a067cf0db83f0b1dd587036a64be7a443551e4895cf1d2be984eba0bd7098e"><div class="ttname"><a href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a443551e4895cf1d2be984eba0bd7098e">olc::NP4</a></div><div class="ttdeci">@ NP4</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00557">olcPixelGameEngine.h:557</a></div></div>
+<div class="ttc" id="astructolc_1_1_pixel_html_a8738f2cd490bd9c5288f37c8d19816be"><div class="ttname"><a href="structolc_1_1_pixel.html#a8738f2cd490bd9c5288f37c8d19816be">olc::Pixel::b</a></div><div class="ttdeci">uint8_t b</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00507">olcPixelGameEngine.h:507</a></div></div>
+<div class="ttc" id="aclassolc_1_1_sprite_html_a0b9399ba5d6df0b481ab16d8c4a28ded"><div class="ttname"><a href="classolc_1_1_sprite.html#a0b9399ba5d6df0b481ab16d8c4a28ded">olc::Sprite::Duplicate</a></div><div class="ttdeci">olc::Sprite * Duplicate()</div></div>
+<div class="ttc" id="anamespaceolc_html_a131df56f1dd5cb0906cd02f9df49b17d"><div class="ttname"><a href="namespaceolc.html#a131df56f1dd5cb0906cd02f9df49b17d">olc::VERY_DARK_YELLOW</a></div><div class="ttdeci">static const Pixel VERY_DARK_YELLOW(64, 64, 0)</div></div>
+<div class="ttc" id="aclassolc_1_1_pixel_game_engine_html_a9fed21eddcebeb743472d8b9eb1e3ece"><div class="ttname"><a href="classolc_1_1_pixel_game_engine.html#a9fed21eddcebeb743472d8b9eb1e3ece">olc::PixelGameEngine::SetLayerOffset</a></div><div class="ttdeci">void SetLayerOffset(uint8_t layer, float x, float y)</div></div>
+<div class="ttc" id="anamespaceolc_html_ac1e1d3e39e0b78e9767142c9daeba4ee"><div class="ttname"><a href="namespaceolc.html#ac1e1d3e39e0b78e9767142c9daeba4ee">olc::BLUE</a></div><div class="ttdeci">static const Pixel BLUE(0, 0, 255)</div></div>
+<div class="ttc" id="anamespaceolc_html_aa26a067cf0db83f0b1dd587036a64be7a4cd994e0e2285e9b52e129f74c84aa0b"><div class="ttname"><a href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a4cd994e0e2285e9b52e129f74c84aa0b">olc::SHIFT</a></div><div class="ttdeci">@ SHIFT</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00555">olcPixelGameEngine.h:555</a></div></div>
+<div class="ttc" id="anamespaceolc_html_aa26a067cf0db83f0b1dd587036a64be7ae7e6e69075c36b0e44309aae888b86dc"><div class="ttname"><a href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ae7e6e69075c36b0e44309aae888b86dc">olc::CTRL</a></div><div class="ttdeci">@ CTRL</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00555">olcPixelGameEngine.h:555</a></div></div>
+<div class="ttc" id="astructolc_1_1_layer_desc_html_a5239ecc59495acca81a03e8783d9b873"><div class="ttname"><a href="structolc_1_1_layer_desc.html#a5239ecc59495acca81a03e8783d9b873">olc::LayerDesc::bUpdate</a></div><div class="ttdeci">bool bUpdate</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00799">olcPixelGameEngine.h:799</a></div></div>
+<div class="ttc" id="anamespaceolc_html_aa26a067cf0db83f0b1dd587036a64be7a2dd03c94eccd6d1259d4b2b51b7f85a7"><div class="ttname"><a href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a2dd03c94eccd6d1259d4b2b51b7f85a7">olc::K0</a></div><div class="ttdeci">@ K0</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00552">olcPixelGameEngine.h:552</a></div></div>
+<div class="ttc" id="aclassolc_1_1_resource_pack_html_accb89668e145dc59e0740925b1b91987"><div class="ttname"><a href="classolc_1_1_resource_pack.html#accb89668e145dc59e0740925b1b91987">olc::ResourcePack::GetFileBuffer</a></div><div class="ttdeci">ResourceBuffer GetFileBuffer(const std::string &amp;sFile)</div></div>
+<div class="ttc" id="aclassolc_1_1_pixel_game_engine_html_a6b5e218bb4360f27a470f9e821721331"><div class="ttname"><a href="classolc_1_1_pixel_game_engine.html#a6b5e218bb4360f27a470f9e821721331">olc::PixelGameEngine::FillRect</a></div><div class="ttdeci">void FillRect(int32_t x, int32_t y, int32_t w, int32_t h, Pixel p=olc::WHITE)</div></div>
+<div class="ttc" id="aclassolc_1_1_sprite_html_ad0d1976d2060997f5cd99eb284a5dc24a7d2b99d18b574e41332e569d141914c5"><div class="ttname"><a href="classolc_1_1_sprite.html#ad0d1976d2060997f5cd99eb284a5dc24a7d2b99d18b574e41332e569d141914c5">olc::Sprite::VERT</a></div><div class="ttdeci">@ VERT</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00714">olcPixelGameEngine.h:714</a></div></div>
+<div class="ttc" id="anamespaceolc_html_aa26a067cf0db83f0b1dd587036a64be7a17a119da4c7fd21cd061972ac8f8029a"><div class="ttname"><a href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a17a119da4c7fd21cd061972ac8f8029a">olc::F1</a></div><div class="ttdeci">@ F1</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00553">olcPixelGameEngine.h:553</a></div></div>
+<div class="ttc" id="aclassolc_1_1_renderer_html_a921406bc341efd881ca510c64cebdc26"><div class="ttname"><a href="classolc_1_1_renderer.html#a921406bc341efd881ca510c64cebdc26">olc::Renderer::ClearBuffer</a></div><div class="ttdeci">virtual void ClearBuffer(olc::Pixel p, bool bDepth)=0</div></div>
+<div class="ttc" id="aclassolc_1_1_renderable_html_a8128a49bae0a3b40a5681d92cc01f52a"><div class="ttname"><a href="classolc_1_1_renderable.html#a8128a49bae0a3b40a5681d92cc01f52a">olc::Renderable::Sprite</a></div><div class="ttdeci">olc::Sprite * Sprite() const</div></div>
+<div class="ttc" id="astructolc_1_1_pixel_html_ae9012164940526ddb09b217dbbddfd65a8abacc164c972b4684c2a76efd381018"><div class="ttname"><a href="structolc_1_1_pixel.html#ae9012164940526ddb09b217dbbddfd65a8abacc164c972b4684c2a76efd381018">olc::Pixel::NORMAL</a></div><div class="ttdeci">@ NORMAL</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00510">olcPixelGameEngine.h:510</a></div></div>
+<div class="ttc" id="astructolc_1_1_pixel_html"><div class="ttname"><a href="structolc_1_1_pixel.html">olc::Pixel</a></div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00502">olcPixelGameEngine.h:503</a></div></div>
+<div class="ttc" id="aclassolc_1_1_image_loader_html_a7aa358a572ec995b530ca5b54829f044"><div class="ttname"><a href="classolc_1_1_image_loader.html#a7aa358a572ec995b530ca5b54829f044">olc::ImageLoader::ImageLoader</a></div><div class="ttdeci">ImageLoader()=default</div></div>
+<div class="ttc" id="astructolc_1_1_decal_instance_html"><div class="ttname"><a href="structolc_1_1_decal_instance.html">olc::DecalInstance</a></div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00783">olcPixelGameEngine.h:784</a></div></div>
+<div class="ttc" id="anamespaceolc_html_aa26a067cf0db83f0b1dd587036a64be7a2af805290f6ef4b2de028b868debe170"><div class="ttname"><a href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a2af805290f6ef4b2de028b868debe170">olc::P</a></div><div class="ttdeci">@ P</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00551">olcPixelGameEngine.h:551</a></div></div>
+<div class="ttc" id="aclassolc_1_1_pixel_game_engine_html_aaccd68c61d88b13ffe1e93493f2a5b35"><div class="ttname"><a href="classolc_1_1_pixel_game_engine.html#aaccd68c61d88b13ffe1e93493f2a5b35">olc::PixelGameEngine::DrawPartialWarpedDecal</a></div><div class="ttdeci">void DrawPartialWarpedDecal(olc::Decal *decal, const std::array&lt; olc::vf2d, 4 &gt; &amp;pos, const olc::vf2d &amp;source_pos, const olc::vf2d &amp;source_size, const olc::Pixel &amp;tint=olc::WHITE)</div></div>
+<div class="ttc" id="anamespaceolc_html_a51aaa7b75138a3323048a77457735d33"><div class="ttname"><a href="namespaceolc.html#a51aaa7b75138a3323048a77457735d33">olc::vd2d</a></div><div class="ttdeci">v2d_generic&lt; double &gt; vd2d</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00647">olcPixelGameEngine.h:647</a></div></div>
+<div class="ttc" id="aclassolc_1_1_pixel_game_engine_html_a0016377c9188719462724f523b3a6334"><div class="ttname"><a href="classolc_1_1_pixel_game_engine.html#a0016377c9188719462724f523b3a6334">olc::PixelGameEngine::DrawCircle</a></div><div class="ttdeci">void DrawCircle(const olc::vi2d &amp;pos, int32_t radius, Pixel p=olc::WHITE, uint8_t mask=0xFF)</div></div>
+<div class="ttc" id="astructolc_1_1v2d__generic_html_afeb5dac5960ca80197ad7ce455ed190c"><div class="ttname"><a href="structolc_1_1v2d__generic.html#afeb5dac5960ca80197ad7ce455ed190c">olc::v2d_generic::operator&lt;&lt;</a></div><div class="ttdeci">friend std::ostream &amp; operator&lt;&lt;(std::ostream &amp;os, const v2d_generic &amp;rhs)</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00617">olcPixelGameEngine.h:617</a></div></div>
+<div class="ttc" id="astructolc_1_1_pixel_html_afd73fb0548d7232923f0ce707171e0da"><div class="ttname"><a href="structolc_1_1_pixel.html#afd73fb0548d7232923f0ce707171e0da">olc::Pixel::operator/=</a></div><div class="ttdeci">Pixel &amp; operator/=(const float i)</div></div>
+<div class="ttc" id="astructolc_1_1_layer_desc_html_a9433153aabd3d3530043f71a2ad63b1a"><div class="ttname"><a href="structolc_1_1_layer_desc.html#a9433153aabd3d3530043f71a2ad63b1a">olc::LayerDesc::nResID</a></div><div class="ttdeci">uint32_t nResID</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00801">olcPixelGameEngine.h:801</a></div></div>
+<div class="ttc" id="aclassolc_1_1_sprite_html"><div class="ttname"><a href="classolc_1_1_sprite.html">olc::Sprite</a></div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00696">olcPixelGameEngine.h:697</a></div></div>
+<div class="ttc" id="aclassolc_1_1_pixel_game_engine_html_a9640286e4a7cd03c6f545b1df7373269"><div class="ttname"><a href="classolc_1_1_pixel_game_engine.html#a9640286e4a7cd03c6f545b1df7373269">olc::PixelGameEngine::GetMouseWheel</a></div><div class="ttdeci">int32_t GetMouseWheel() const</div></div>
+<div class="ttc" id="aclassolc_1_1_sprite_html_ad0d1976d2060997f5cd99eb284a5dc24"><div class="ttname"><a href="classolc_1_1_sprite.html#ad0d1976d2060997f5cd99eb284a5dc24">olc::Sprite::Flip</a></div><div class="ttdeci">Flip</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00714">olcPixelGameEngine.h:714</a></div></div>
+<div class="ttc" id="aclassolc_1_1_sprite_html_aaf231565550d294ef20bf31364562ec3"><div class="ttname"><a href="classolc_1_1_sprite.html#aaf231565550d294ef20bf31364562ec3">olc::Sprite::Sprite</a></div><div class="ttdeci">Sprite()</div></div>
+<div class="ttc" id="aclassolc_1_1_pixel_game_engine_html_ad7bd70d2c3d0bc5bbb0991fa4695a4e9"><div class="ttname"><a href="classolc_1_1_pixel_game_engine.html#ad7bd70d2c3d0bc5bbb0991fa4695a4e9">olc::PixelGameEngine::Draw</a></div><div class="ttdeci">bool Draw(const olc::vi2d &amp;pos, Pixel p=olc::WHITE)</div></div>
+<div class="ttc" id="aclassolc_1_1_renderer_html_a89f800c14ab1b070408c17e2589e02a1"><div class="ttname"><a href="classolc_1_1_renderer.html#a89f800c14ab1b070408c17e2589e02a1">olc::Renderer::ptrPGE</a></div><div class="ttdeci">static olc::PixelGameEngine * ptrPGE</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00826">olcPixelGameEngine.h:826</a></div></div>
+<div class="ttc" id="aclassolc_1_1_sprite_html_a78b7f14903f9f0bb536b66c37f3139cf"><div class="ttname"><a href="classolc_1_1_sprite.html#a78b7f14903f9f0bb536b66c37f3139cf">olc::Sprite::Mode</a></div><div class="ttdeci">Mode</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00713">olcPixelGameEngine.h:713</a></div></div>
+<div class="ttc" id="aclassolc_1_1_pixel_game_engine_html_abab955edc6d1ec6023a7806509582f52"><div class="ttname"><a href="classolc_1_1_pixel_game_engine.html#abab955edc6d1ec6023a7806509582f52">olc::PixelGameEngine::GetFontSprite</a></div><div class="ttdeci">olc::Sprite * GetFontSprite()</div></div>
+<div class="ttc" id="aclassolc_1_1_pixel_game_engine_html_adcf00714f6f13ed5ad256e2102084177"><div class="ttname"><a href="classolc_1_1_pixel_game_engine.html#adcf00714f6f13ed5ad256e2102084177">olc::PixelGameEngine::DrawSprite</a></div><div class="ttdeci">void DrawSprite(const olc::vi2d &amp;pos, Sprite *sprite, uint32_t scale=1, uint8_t flip=olc::Sprite::NONE)</div></div>
+<div class="ttc" id="aclassolc_1_1_pixel_game_engine_html_a8bae37cf84b215e9e0416f058241aeba"><div class="ttname"><a href="classolc_1_1_pixel_game_engine.html#a8bae37cf84b215e9e0416f058241aeba">olc::PixelGameEngine::DrawPartialDecal</a></div><div class="ttdeci">void DrawPartialDecal(const olc::vf2d &amp;pos, olc::Decal *decal, const olc::vf2d &amp;source_pos, const olc::vf2d &amp;source_size, const olc::vf2d &amp;scale={ 1.0f, 1.0f }, const olc::Pixel &amp;tint=olc::WHITE)</div></div>
+<div class="ttc" id="aclassolc_1_1_pixel_game_engine_html_abbbee4578ffa6b844c04c1af363052af"><div class="ttname"><a href="classolc_1_1_pixel_game_engine.html#abbbee4578ffa6b844c04c1af363052af">olc::PixelGameEngine::ScreenHeight</a></div><div class="ttdeci">int32_t ScreenHeight() const</div></div>
+<div class="ttc" id="anamespaceolc_html_aa26a067cf0db83f0b1dd587036a64be7a3c808be2b8b226138090bb3884bdc52b"><div class="ttname"><a href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a3c808be2b8b226138090bb3884bdc52b">olc::F4</a></div><div class="ttdeci">@ F4</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00553">olcPixelGameEngine.h:553</a></div></div>
+<div class="ttc" id="astructolc_1_1_pixel_html_a39dc75f9f15c040c2d2715c66b13f4e0"><div class="ttname"><a href="structolc_1_1_pixel.html#a39dc75f9f15c040c2d2715c66b13f4e0">olc::Pixel::operator+=</a></div><div class="ttdeci">Pixel &amp; operator+=(const Pixel &amp;p)</div></div>
+<div class="ttc" id="aclassolc_1_1_pixel_game_engine_html_a4ee3dbff01900d71e62bfe499b1c83c3"><div class="ttname"><a href="classolc_1_1_pixel_game_engine.html#a4ee3dbff01900d71e62bfe499b1c83c3">olc::PixelGameEngine::GetDrawTargetHeight</a></div><div class="ttdeci">int32_t GetDrawTargetHeight() const</div></div>
+<div class="ttc" id="aclassolc_1_1_pixel_game_engine_html_af9379a3db341b0acb410ea543e30fdd1"><div class="ttname"><a href="classolc_1_1_pixel_game_engine.html#af9379a3db341b0acb410ea543e30fdd1">olc::PixelGameEngine::OnUserUpdate</a></div><div class="ttdeci">virtual bool OnUserUpdate(float fElapsedTime)</div></div>
+<div class="ttc" id="anamespaceolc_html_aa26a067cf0db83f0b1dd587036a64be7ac242ddce5db0d462674ead1db3956a19"><div class="ttname"><a href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ac242ddce5db0d462674ead1db3956a19">olc::I</a></div><div class="ttdeci">@ I</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00551">olcPixelGameEngine.h:551</a></div></div>
+<div class="ttc" id="aclassolc_1_1_renderer_html_a660f3ca709b2a2fcec1d1cba1a4cfd18"><div class="ttname"><a href="classolc_1_1_renderer.html#a660f3ca709b2a2fcec1d1cba1a4cfd18">olc::Renderer::DisplayFrame</a></div><div class="ttdeci">virtual void DisplayFrame()=0</div></div>
+<div class="ttc" id="aclassolc_1_1_sprite_html_a7e1f8169c9822f1ed94f0212d3f8d6f6"><div class="ttname"><a href="classolc_1_1_sprite.html#a7e1f8169c9822f1ed94f0212d3f8d6f6">olc::Sprite::GetPixel</a></div><div class="ttdeci">Pixel GetPixel(int32_t x, int32_t y) const</div></div>
+<div class="ttc" id="astructolc_1_1_pixel_html_aeeaecb16a243ce3be52cd9261fdf2b23"><div class="ttname"><a href="structolc_1_1_pixel.html#aeeaecb16a243ce3be52cd9261fdf2b23">olc::Pixel::operator!=</a></div><div class="ttdeci">bool operator!=(const Pixel &amp;p) const</div></div>
+<div class="ttc" id="aclassolc_1_1_pixel_game_engine_html_a689d1828a93292702070b97fb14f5644"><div class="ttname"><a href="classolc_1_1_pixel_game_engine.html#a689d1828a93292702070b97fb14f5644">olc::PixelGameEngine::DrawStringDecal</a></div><div class="ttdeci">void DrawStringDecal(const olc::vf2d &amp;pos, const std::string &amp;sText, const Pixel col=olc::WHITE, const olc::vf2d &amp;scale={ 1.0f, 1.0f })</div></div>
+<div class="ttc" id="aclassolc_1_1_pixel_game_engine_html_a4f0dae00f21f8d71d4544d50593234c3"><div class="ttname"><a href="classolc_1_1_pixel_game_engine.html#a4f0dae00f21f8d71d4544d50593234c3">olc::PixelGameEngine::olc_UpdateWindowSize</a></div><div class="ttdeci">void olc_UpdateWindowSize(int32_t x, int32_t y)</div></div>
+<div class="ttc" id="astructolc_1_1_layer_desc_html_ac6cd952e0ebbd7cde19060b4e3896875"><div class="ttname"><a href="structolc_1_1_layer_desc.html#ac6cd952e0ebbd7cde19060b4e3896875">olc::LayerDesc::vecDecalInstance</a></div><div class="ttdeci">std::vector&lt; DecalInstance &gt; vecDecalInstance</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00802">olcPixelGameEngine.h:802</a></div></div>
+<div class="ttc" id="anamespaceolc_html_aa0824f5fdd85c58712495a7bc0de191e"><div class="ttname"><a href="namespaceolc.html#aa0824f5fdd85c58712495a7bc0de191e">olc::DARK_CYAN</a></div><div class="ttdeci">static const Pixel DARK_CYAN(0, 128, 128)</div></div>
+<div class="ttc" id="anamespaceolc_html_aa26a067cf0db83f0b1dd587036a64be7a16054c3b1419b9679d95ac70ef262666"><div class="ttname"><a href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a16054c3b1419b9679d95ac70ef262666">olc::NP0</a></div><div class="ttdeci">@ NP0</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00557">olcPixelGameEngine.h:557</a></div></div>
+<div class="ttc" id="aclassolc_1_1_renderer_html_abc873336dd8f9079dc26f92ce0f95748"><div class="ttname"><a href="classolc_1_1_renderer.html#abc873336dd8f9079dc26f92ce0f95748">olc::Renderer::UpdateViewport</a></div><div class="ttdeci">virtual void UpdateViewport(const olc::vi2d &amp;pos, const olc::vi2d &amp;size)=0</div></div>
+<div class="ttc" id="astructolc_1_1v2d__generic_html_af3e8b94c4921f8d81b4112b319bd7f6d"><div class="ttname"><a href="structolc_1_1v2d__generic.html#af3e8b94c4921f8d81b4112b319bd7f6d">olc::v2d_generic::operator-=</a></div><div class="ttdeci">v2d_generic &amp; operator-=(const v2d_generic &amp;rhs)</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00607">olcPixelGameEngine.h:607</a></div></div>
+<div class="ttc" id="aclassolc_1_1_sprite_html_adb41a2041dfe14de9605dabcd905db60"><div class="ttname"><a href="classolc_1_1_sprite.html#adb41a2041dfe14de9605dabcd905db60">olc::Sprite::pColData</a></div><div class="ttdeci">std::vector&lt; olc::Pixel &gt; pColData</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00727">olcPixelGameEngine.h:727</a></div></div>
+<div class="ttc" id="aclassolc_1_1_decal_html_a93a1e2ae28aa587978e2a66b6328d66a"><div class="ttname"><a href="classolc_1_1_decal.html#a93a1e2ae28aa587978e2a66b6328d66a">olc::Decal::sprite</a></div><div class="ttdeci">olc::Sprite * sprite</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00747">olcPixelGameEngine.h:747</a></div></div>
+<div class="ttc" id="aclassolc_1_1_sprite_html_a902192f81ab42420921992a7288aab48"><div class="ttname"><a href="classolc_1_1_sprite.html#a902192f81ab42420921992a7288aab48">olc::Sprite::Sample</a></div><div class="ttdeci">Pixel Sample(float x, float y) const</div></div>
+<div class="ttc" id="anamespaceolc_html_aa26a067cf0db83f0b1dd587036a64be7ab9b5b3e2b7e4f47de4a8d84e03cd5911"><div class="ttname"><a href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ab9b5b3e2b7e4f47de4a8d84e03cd5911">olc::N</a></div><div class="ttdeci">@ N</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00551">olcPixelGameEngine.h:551</a></div></div>
+<div class="ttc" id="anamespaceolc_html_aa26a067cf0db83f0b1dd587036a64be7aadd3a981032ec5fc07440dd0dbd1a3b3"><div class="ttname"><a href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7aadd3a981032ec5fc07440dd0dbd1a3b3">olc::K4</a></div><div class="ttdeci">@ K4</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00552">olcPixelGameEngine.h:552</a></div></div>
+<div class="ttc" id="anamespaceolc_html_aa26a067cf0db83f0b1dd587036a64be7a7323455add036f066f8b23546f0c37bb"><div class="ttname"><a href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a7323455add036f066f8b23546f0c37bb">olc::D</a></div><div class="ttdeci">@ D</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00551">olcPixelGameEngine.h:551</a></div></div>
+<div class="ttc" id="aclassolc_1_1_sprite_html_ad8ce71f2399a2721aff9234390a18b8e"><div class="ttname"><a href="classolc_1_1_sprite.html#ad8ce71f2399a2721aff9234390a18b8e">olc::Sprite::Sprite</a></div><div class="ttdeci">Sprite(const std::string &amp;sImageFile, olc::ResourcePack *pack=nullptr)</div></div>
+<div class="ttc" id="anamespaceolc_html_a34519a6f9006c6c4854bbe762d490900"><div class="ttname"><a href="namespaceolc.html#a34519a6f9006c6c4854bbe762d490900">olc::operator&gt;</a></div><div class="ttdeci">bool operator&gt;(const v2d_generic&lt; T &gt; &amp;lhs, const v2d_generic&lt; U &gt; &amp;rhs)</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00641">olcPixelGameEngine.h:641</a></div></div>
+<div class="ttc" id="aclassolc_1_1_pixel_game_engine_html_a5842c1087a70c95a7ff96d53f28b7bab"><div class="ttname"><a href="classolc_1_1_pixel_game_engine.html#a5842c1087a70c95a7ff96d53f28b7bab">olc::PixelGameEngine::SetDrawTarget</a></div><div class="ttdeci">void SetDrawTarget(uint8_t layer)</div></div>
+<div class="ttc" id="aclassolc_1_1_pixel_game_engine_html_ae099b13b38e5b02ffd31ad34a703cee5"><div class="ttname"><a href="classolc_1_1_pixel_game_engine.html#ae099b13b38e5b02ffd31ad34a703cee5">olc::PixelGameEngine::DrawString</a></div><div class="ttdeci">void DrawString(const olc::vi2d &amp;pos, const std::string &amp;sText, Pixel col=olc::WHITE, uint32_t scale=1)</div></div>
+<div class="ttc" id="astructolc_1_1_resource_buffer_html"><div class="ttname"><a href="structolc_1_1_resource_buffer.html">olc::ResourceBuffer</a></div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00658">olcPixelGameEngine.h:659</a></div></div>
+<div class="ttc" id="aclassolc_1_1_pixel_game_engine_html_ad4fbf979865fb1f08250ea379f2de669"><div class="ttname"><a href="classolc_1_1_pixel_game_engine.html#ad4fbf979865fb1f08250ea379f2de669">olc::PixelGameEngine::OnUserDestroy</a></div><div class="ttdeci">virtual bool OnUserDestroy()</div></div>
+<div class="ttc" id="anamespaceolc_html_a06c9f23f2e370e7afe71788427a820fd"><div class="ttname"><a href="namespaceolc.html#a06c9f23f2e370e7afe71788427a820fd">olc::PixelF</a></div><div class="ttdeci">Pixel PixelF(float red, float green, float blue, float alpha=1.0f)</div></div>
+<div class="ttc" id="aclassolc_1_1_pixel_game_engine_html_a5fd95bd9571bc3ed3fd5d7d110e48cff"><div class="ttname"><a href="classolc_1_1_pixel_game_engine.html#a5fd95bd9571bc3ed3fd5d7d110e48cff">olc::PixelGameEngine::GetDrawTarget</a></div><div class="ttdeci">olc::Sprite * GetDrawTarget() const</div></div>
+<div class="ttc" id="aclassolc_1_1_image_loader_html_a680c0395200ceab209fb96c21cd8b883"><div class="ttname"><a href="classolc_1_1_image_loader.html#a680c0395200ceab209fb96c21cd8b883">olc::ImageLoader::~ImageLoader</a></div><div class="ttdeci">virtual ~ImageLoader()=default</div></div>
+<div class="ttc" id="anamespaceolc_html_aa26a067cf0db83f0b1dd587036a64be7a7ca6517890a3566dbf758618f9c7690f"><div class="ttname"><a href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a7ca6517890a3566dbf758618f9c7690f">olc::NP2</a></div><div class="ttdeci">@ NP2</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00557">olcPixelGameEngine.h:557</a></div></div>
+<div class="ttc" id="astructolc_1_1v2d__generic_html_a8275a944d309dc4b58f60cbc2925a7cc"><div class="ttname"><a href="structolc_1_1v2d__generic.html#a8275a944d309dc4b58f60cbc2925a7cc">olc::v2d_generic::perp</a></div><div class="ttdeci">v2d_generic perp() const</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00593">olcPixelGameEngine.h:593</a></div></div>
+<div class="ttc" id="astructolc_1_1v2d__generic_html_ab06016810fe727fa826e43e44e02008b"><div class="ttname"><a href="structolc_1_1v2d__generic.html#ab06016810fe727fa826e43e44e02008b">olc::v2d_generic::mag</a></div><div class="ttdeci">T mag() const</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00590">olcPixelGameEngine.h:590</a></div></div>
+<div class="ttc" id="aclassolc_1_1_pixel_game_engine_html_a2ce3e34fd633acdc22b8dc2c8d25f86c"><div class="ttname"><a href="classolc_1_1_pixel_game_engine.html#a2ce3e34fd633acdc22b8dc2c8d25f86c">olc::PixelGameEngine::DrawCircle</a></div><div class="ttdeci">void DrawCircle(int32_t x, int32_t y, int32_t radius, Pixel p=olc::WHITE, uint8_t mask=0xFF)</div></div>
+<div class="ttc" id="astructolc_1_1v2d__generic_html_a542487700e63b2e30940d64b75c3d3db"><div class="ttname"><a href="structolc_1_1v2d__generic.html#a542487700e63b2e30940d64b75c3d3db">olc::v2d_generic::operator*</a></div><div class="ttdeci">v2d_generic operator*(const T &amp;rhs) const</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00602">olcPixelGameEngine.h:602</a></div></div>
+<div class="ttc" id="aclassolc_1_1_pixel_game_engine_html_a409825b0147e25c0d4c05fb0aa1f6273"><div class="ttname"><a href="classolc_1_1_pixel_game_engine.html#a409825b0147e25c0d4c05fb0aa1f6273">olc::PixelGameEngine::SetLayerScale</a></div><div class="ttdeci">void SetLayerScale(uint8_t layer, float x, float y)</div></div>
+<div class="ttc" id="aclassolc_1_1_image_loader_html_addedde73c3a76c668a2954db36695f08"><div class="ttname"><a href="classolc_1_1_image_loader.html#addedde73c3a76c668a2954db36695f08">olc::ImageLoader::SaveImageResource</a></div><div class="ttdeci">virtual olc::rcode SaveImageResource(olc::Sprite *spr, const std::string &amp;sImageFile)=0</div></div>
+<div class="ttc" id="anamespaceolc_html_a29c85b49a3c9cbd0b251e80e3bc57140"><div class="ttname"><a href="namespaceolc.html#a29c85b49a3c9cbd0b251e80e3bc57140">olc::VERY_DARK_GREEN</a></div><div class="ttdeci">static const Pixel VERY_DARK_GREEN(0, 64, 0)</div></div>
+<div class="ttc" id="anamespaceolc_html_aa26a067cf0db83f0b1dd587036a64be7afda4a6ac36e1870cd31522ac4e40a113"><div class="ttname"><a href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7afda4a6ac36e1870cd31522ac4e40a113">olc::M</a></div><div class="ttdeci">@ M</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00551">olcPixelGameEngine.h:551</a></div></div>
+<div class="ttc" id="aclassolc_1_1_renderer_html_a0a87094df3c911860a0eec9a8bb3b060"><div class="ttname"><a href="classolc_1_1_renderer.html#a0a87094df3c911860a0eec9a8bb3b060">olc::Renderer::ApplyTexture</a></div><div class="ttdeci">virtual void ApplyTexture(uint32_t id)=0</div></div>
+<div class="ttc" id="aclassolc_1_1_pixel_game_engine_html_ac29d79dedde0b2187f9f9ccbbc33fd0b"><div class="ttname"><a href="classolc_1_1_pixel_game_engine.html#ac29d79dedde0b2187f9f9ccbbc33fd0b">olc::PixelGameEngine::DrawString</a></div><div class="ttdeci">void DrawString(int32_t x, int32_t y, const std::string &amp;sText, Pixel col=olc::WHITE, uint32_t scale=1)</div></div>
+<div class="ttc" id="aolc_pixel_game_engine_8h_html_a86d500a34c624c2cae56bc25a31b12f3"><div class="ttname"><a href="olc_pixel_game_engine_8h.html#a86d500a34c624c2cae56bc25a31b12f3">UNUSED</a></div><div class="ttdeci">#define UNUSED(x)</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00386">olcPixelGameEngine.h:386</a></div></div>
+<div class="ttc" id="aclassolc_1_1_sprite_html_a3e452a040fc2680228b1e6a7b6b9890e"><div class="ttname"><a href="classolc_1_1_sprite.html#a3e452a040fc2680228b1e6a7b6b9890e">olc::Sprite::Sprite</a></div><div class="ttdeci">Sprite(int32_t w, int32_t h)</div></div>
+<div class="ttc" id="aclassolc_1_1_pixel_game_engine_html_aafe21db2127f56670b5f5f089adced71"><div class="ttname"><a href="classolc_1_1_pixel_game_engine.html#aafe21db2127f56670b5f5f089adced71">olc::PixelGameEngine::DrawTriangle</a></div><div class="ttdeci">void DrawTriangle(const olc::vi2d &amp;pos1, const olc::vi2d &amp;pos2, const olc::vi2d &amp;pos3, Pixel p=olc::WHITE)</div></div>
+<div class="ttc" id="aclassolc_1_1_pixel_game_engine_html_a220f523e520e317f5656c4d3df777163"><div class="ttname"><a href="classolc_1_1_pixel_game_engine.html#a220f523e520e317f5656c4d3df777163">olc::PixelGameEngine::DrawRect</a></div><div class="ttdeci">void DrawRect(int32_t x, int32_t y, int32_t w, int32_t h, Pixel p=olc::WHITE)</div></div>
+<div class="ttc" id="astructolc_1_1_decal_instance_html_a04f01880bf6d4045b6e1f70aff3e5c8f"><div class="ttname"><a href="structolc_1_1_decal_instance.html#a04f01880bf6d4045b6e1f70aff3e5c8f">olc::DecalInstance::tint</a></div><div class="ttdeci">std::vector&lt; olc::Pixel &gt; tint</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00789">olcPixelGameEngine.h:789</a></div></div>
+<div class="ttc" id="aclassolc_1_1_pixel_game_engine_html_a95ab046b4b0843565bddd0e009a25569"><div class="ttname"><a href="classolc_1_1_pixel_game_engine.html#a95ab046b4b0843565bddd0e009a25569">olc::PixelGameEngine::Draw</a></div><div class="ttdeci">virtual bool Draw(int32_t x, int32_t y, Pixel p=olc::WHITE)</div></div>
+<div class="ttc" id="aclassolc_1_1_pixel_game_engine_html_a1b757070353b8f9238c229e42d33bbb5"><div class="ttname"><a href="classolc_1_1_pixel_game_engine.html#a1b757070353b8f9238c229e42d33bbb5">olc::PixelGameEngine::DrawPartialDecal</a></div><div class="ttdeci">void DrawPartialDecal(const olc::vf2d &amp;pos, const olc::vf2d &amp;size, olc::Decal *decal, const olc::vf2d &amp;source_pos, const olc::vf2d &amp;source_size, const olc::Pixel &amp;tint=olc::WHITE)</div></div>
+<div class="ttc" id="aclassolc_1_1_platform_html_a4966327ca7d5ff2b855b3a4eaf0f88f2"><div class="ttname"><a href="classolc_1_1_platform.html#a4966327ca7d5ff2b855b3a4eaf0f88f2">olc::Platform::CreateWindowPane</a></div><div class="ttdeci">virtual olc::rcode CreateWindowPane(const olc::vi2d &amp;vWindowPos, olc::vi2d &amp;vWindowSize, bool bFullScreen)=0</div></div>
+<div class="ttc" id="aclassolc_1_1_renderer_html_a7d97cab172e59d23a2587f636c9b12b7"><div class="ttname"><a href="classolc_1_1_renderer.html#a7d97cab172e59d23a2587f636c9b12b7">olc::Renderer::PrepareDevice</a></div><div class="ttdeci">virtual void PrepareDevice()=0</div></div>
+<div class="ttc" id="aclassolc_1_1_decal_html"><div class="ttname"><a href="classolc_1_1_decal.html">olc::Decal</a></div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00736">olcPixelGameEngine.h:737</a></div></div>
+<div class="ttc" id="anamespaceolc_html_aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0"><div class="ttname"><a href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0">olc::T</a></div><div class="ttdeci">@ T</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00551">olcPixelGameEngine.h:551</a></div></div>
+<div class="ttc" id="astructolc_1_1_decal_instance_html_a3dcc0fc374fe00a5d6451a4ac13e6649"><div class="ttname"><a href="structolc_1_1_decal_instance.html#a3dcc0fc374fe00a5d6451a4ac13e6649">olc::DecalInstance::mode</a></div><div class="ttdeci">olc::DecalMode mode</div><div class="ttdef"><b>Definition:</b> <a href="olc_pixel_game_engine_8h_source.html#l00790">olcPixelGameEngine.h:790</a></div></div>
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/open.png b/doxy/html/open.png
new file mode 100644
index 0000000000000000000000000000000000000000..30f75c7efe2dd0c9e956e35b69777a02751f048b
Binary files /dev/null and b/doxy/html/open.png differ
diff --git a/doxy/html/pages.html b/doxy/html/pages.html
new file mode 100644
index 0000000000000000000000000000000000000000..656df555e20d6cb88123dee539dcc416ef02a213
--- /dev/null
+++ b/doxy/html/pages.html
@@ -0,0 +1,81 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: Related Pages</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="headertitle">
+<div class="title">Related Pages</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock">Here is a list of all related documentation pages:</div><div class="directory">
+<table class="directory">
+<tr id="row_0_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a class="el" href="md__c___users_kosmx__documents__git_hub_2d-game__r_e_a_d_m_e.html" target="_self">:D</a></td><td class="desc"></td></tr>
+<tr id="row_1_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a class="el" href="md__c___users_kosmx__documents__git_hub_2d-game__text.html" target="_self">Text</a></td><td class="desc"></td></tr>
+</table>
+</div><!-- directory -->
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/resource1_8h.html b/doxy/html/resource1_8h.html
new file mode 100644
index 0000000000000000000000000000000000000000..a0d9194cff3e06f9393c1af9ec746669369a4d68
--- /dev/null
+++ b/doxy/html/resource1_8h.html
@@ -0,0 +1,77 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: C:/Users/kosmx/Documents/GitHub/2d-game/resource1.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">C:/Users/kosmx/Documents/GitHub/2d-game/resource1.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p><a href="resource1_8h_source.html">Go to the source code of this file.</a></p>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/resource1_8h_source.html b/doxy/html/resource1_8h_source.html
new file mode 100644
index 0000000000000000000000000000000000000000..362061adc44035ddcf8a27b720d53b2116a0a755
--- /dev/null
+++ b/doxy/html/resource1_8h_source.html
@@ -0,0 +1,89 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: C:/Users/kosmx/Documents/GitHub/2d-game/resource1.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="headertitle">
+<div class="title">C:/Users/kosmx/Documents/GitHub/2d-game/resource1.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="resource1_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">//{{NO_DEPENDENCIES}}</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment">// Microsoft Visual C++ generated include file.</span></div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment">// Used by 2d-game1.rc</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160; </div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment">// Next default values for new objects</span></div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment">// </span></div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="preprocessor">#ifdef APSTUDIO_INVOKED</span></div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="preprocessor">#ifndef APSTUDIO_READONLY_SYMBOLS</span></div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="preprocessor">#define _APS_NEXT_RESOURCE_VALUE        101</span></div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="preprocessor">#define _APS_NEXT_COMMAND_VALUE         40001</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="preprocessor">#define _APS_NEXT_CONTROL_VALUE         1001</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="preprocessor">#define _APS_NEXT_SYMED_VALUE           101</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="preprocessor">#endif</span></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/resource_8h.html b/doxy/html/resource_8h.html
new file mode 100644
index 0000000000000000000000000000000000000000..bfe56cf035e1bb2d4c1483e9c7548d1220583c66
--- /dev/null
+++ b/doxy/html/resource_8h.html
@@ -0,0 +1,77 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: C:/Users/kosmx/Documents/GitHub/2d-game/resource.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">C:/Users/kosmx/Documents/GitHub/2d-game/resource.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p><a href="resource_8h_source.html">Go to the source code of this file.</a></p>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/resource_8h_source.html b/doxy/html/resource_8h_source.html
new file mode 100644
index 0000000000000000000000000000000000000000..9dab080900de5bc53a00e1b9b33f491185abbc99
--- /dev/null
+++ b/doxy/html/resource_8h_source.html
@@ -0,0 +1,89 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: C:/Users/kosmx/Documents/GitHub/2d-game/resource.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="headertitle">
+<div class="title">C:/Users/kosmx/Documents/GitHub/2d-game/resource.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="resource_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">//{{NO_DEPENDENCIES}}</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment">// Microsoft Visual C++ generated include file.</span></div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment">// Used by 2d-game.rc</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160; </div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment">// Next default values for new objects</span></div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment">// </span></div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="preprocessor">#ifdef APSTUDIO_INVOKED</span></div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="preprocessor">#ifndef APSTUDIO_READONLY_SYMBOLS</span></div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="preprocessor">#define _APS_NEXT_RESOURCE_VALUE        101</span></div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="preprocessor">#define _APS_NEXT_COMMAND_VALUE         40001</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="preprocessor">#define _APS_NEXT_CONTROL_VALUE         1001</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="preprocessor">#define _APS_NEXT_SYMED_VALUE           101</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="preprocessor">#endif</span></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/search/all_0.html b/doxy/html/search/all_0.html
new file mode 100644
index 0000000000000000000000000000000000000000..a34319f3095081cfc50008dc8dda02588cd44eb5
--- /dev/null
+++ b/doxy/html/search/all_0.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_0.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doxy/html/search/all_0.js b/doxy/html/search/all_0.js
new file mode 100644
index 0000000000000000000000000000000000000000..405f935caccb9e9f232dcfe9c8805944339eb8c2
--- /dev/null
+++ b/doxy/html/search/all_0.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+  ['_5fsilence_5fexperimental_5ffilesystem_5fdeprecation_5fwarning_0',['_SILENCE_EXPERIMENTAL_FILESYSTEM_DEPRECATION_WARNING',['../olc_pixel_game_engine_8h.html#aab6af62131aad81d17d3b4afd9db334f',1,'olcPixelGameEngine.h']]]
+];
diff --git a/doxy/html/search/all_1.html b/doxy/html/search/all_1.html
new file mode 100644
index 0000000000000000000000000000000000000000..51aff6f69cae8c3b53c814e6022909de43eff7cb
--- /dev/null
+++ b/doxy/html/search/all_1.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_1.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doxy/html/search/all_1.js b/doxy/html/search/all_1.js
new file mode 100644
index 0000000000000000000000000000000000000000..9a80f6d282e78ae56eeb95451627200526c5dd6e
--- /dev/null
+++ b/doxy/html/search/all_1.js
@@ -0,0 +1,14 @@
+var searchData=
+[
+  ['a_1',['a',['../structolc_1_1_pixel.html#a652a25d4bcab1f7bf627c3224842f0b1',1,'olc::Pixel::a()'],['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a3e1af6612f2964145f438bb63073098d',1,'olc::A()']]],
+  ['abstracttexture_2ecpp_2',['AbstractTexture.cpp',['../_abstract_texture_8cpp.html',1,'']]],
+  ['addentity_3',['addEntity',['../class_game_client.html#ac1df0a856bd945976c06b3977167d4c7',1,'GameClient']]],
+  ['addfile_4',['AddFile',['../classolc_1_1_resource_pack.html#a56eebc321c66215d15df1390b1080c66',1,'olc::ResourcePack']]],
+  ['additive_5',['ADDITIVE',['../namespaceolc.html#aeda642f63378f868193c28e8613138caa8d8c2c7c04ebe2b70bca10a3060ca491',1,'olc']]],
+  ['addweapon_6',['addWeapon',['../classentities_1_1_entity_with_a_i.html#af1e954b2ecf51732759a28e00dc2614c',1,'entities::EntityWithAI']]],
+  ['alpha_7',['ALPHA',['../structolc_1_1_pixel.html#ae9012164940526ddb09b217dbbddfd65a561bc0234492261a62a3191252692753',1,'olc::Pixel']]],
+  ['applicationcleanup_8',['ApplicationCleanUp',['../classolc_1_1_platform.html#aec7a14ba9007d3c421481baa49e55669',1,'olc::Platform']]],
+  ['applicationstartup_9',['ApplicationStartUp',['../classolc_1_1_platform.html#a65e6f9763726056f6a9d37395b8ed023',1,'olc::Platform']]],
+  ['applytexture_10',['ApplyTexture',['../classolc_1_1_renderer.html#a0a87094df3c911860a0eec9a8bb3b060',1,'olc::Renderer']]],
+  ['attackoffset_11',['attackOffset',['../classweapons_1_1_typical_melee_weapon.html#af33a1ff938b8068aaab0bd0ac943ca83',1,'weapons::TypicalMeleeWeapon']]]
+];
diff --git a/doxy/html/search/all_10.html b/doxy/html/search/all_10.html
new file mode 100644
index 0000000000000000000000000000000000000000..e6ca18b469ca6af9fbecd9f7ba3e92fb8fbc616a
--- /dev/null
+++ b/doxy/html/search/all_10.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_10.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doxy/html/search/all_10.js b/doxy/html/search/all_10.js
new file mode 100644
index 0000000000000000000000000000000000000000..c4c1f7f05361bae8d01b06470e58db01f34c11fe
--- /dev/null
+++ b/doxy/html/search/all_10.js
@@ -0,0 +1,41 @@
+var searchData=
+[
+  ['p_401',['P',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a2af805290f6ef4b2de028b868debe170',1,'olc']]],
+  ['paladintexture_402',['PaladinTexture',['../classrender_1_1_character_texture.html#aa83fc0221f1d435820cd794cdb1b126e',1,'render::CharacterTexture']]],
+  ['pause_403',['PAUSE',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a0bc227b9b4a43118d7500e8195806d74',1,'olc']]],
+  ['pcoldata_404',['pColData',['../classolc_1_1_sprite.html#adb41a2041dfe14de9605dabcd905db60',1,'olc::Sprite']]],
+  ['pdrawtarget_405',['pDrawTarget',['../structolc_1_1_layer_desc.html#a24f921523245fce959bb1cd0f55faeff',1,'olc::LayerDesc']]],
+  ['period_406',['PERIOD',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a1adffcecf8c735b404ac6eedf220ae5a',1,'olc']]],
+  ['periodic_407',['PERIODIC',['../classolc_1_1_sprite.html#a78b7f14903f9f0bb536b66c37f3139cfa3185e8dea4ea5a89d7ea66716c67a175',1,'olc::Sprite']]],
+  ['perp_408',['perp',['../structolc_1_1v2d__generic.html#a8275a944d309dc4b58f60cbc2925a7cc',1,'olc::v2d_generic']]],
+  ['pgdn_409',['PGDN',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7aae334e3943922c2b16842afc5306a1e9',1,'olc']]],
+  ['pge_410',['pge',['../classolc_1_1_p_g_e_x.html#a032efdb84150a7cdd3cc9248860df316',1,'olc::PGEX']]],
+  ['pge_5fver_411',['PGE_VER',['../olc_pixel_game_engine_8h.html#a6301d810e4f45704594786997b2261ea',1,'olcPixelGameEngine.h']]],
+  ['pgex_412',['PGEX',['../classolc_1_1_p_g_e_x.html',1,'olc::PGEX'],['../classolc_1_1_pixel_game_engine.html#a98fcee28f1a645fe0a29f6b6e6a5d7bb',1,'olc::PixelGameEngine::PGEX()'],['../classolc_1_1_p_g_e_x.html#aae9dbde2ad7341482b9f911f23678d75',1,'olc::PGEX::PGEX()']]],
+  ['pgex_5fregister_413',['pgex_Register',['../classolc_1_1_pixel_game_engine.html#a49a2ead57239e1595cc555effd3e3a2b',1,'olc::PixelGameEngine']]],
+  ['pgup_414',['PGUP',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a0bab26868b97eab537e7cad879d4b9a3',1,'olc']]],
+  ['photomachine_415',['photoMachine',['../namespaceweapons_1_1textures.html#ac65344c207a89b29b15e56e01fc3e16a',1,'weapons::textures']]],
+  ['pickaxe_416',['pickaxe',['../namespaceweapons_1_1textures.html#a25cf2019ff68d29442fa3554a5862c1e',1,'weapons::textures']]],
+  ['pistol_417',['Pistol',['../classweapons_1_1_pistol.html',1,'weapons::Pistol'],['../classweapons_1_1_ranged_weapon.html#a2c916fa61105c656187e1f6f41fa4fab',1,'weapons::RangedWeapon::pistol()'],['../classweapons_1_1_pistol.html#acc8c02692de7d84e5060da436b96ed86',1,'weapons::Pistol::Pistol()'],['../namespaceweapons_1_1textures.html#a8a733a84e93619430cfdaa2306a6a7ec',1,'weapons::textures::pistol()']]],
+  ['pistol_2ecpp_418',['Pistol.cpp',['../_pistol_8cpp.html',1,'']]],
+  ['pistol_2eh_419',['Pistol.h',['../_pistol_8h.html',1,'']]],
+  ['pixel_420',['Pixel',['../structolc_1_1_pixel.html',1,'olc::Pixel'],['../structolc_1_1_pixel.html#a75ef9e180289d861dfa6687faa248345',1,'olc::Pixel::Pixel()'],['../structolc_1_1_pixel.html#a542d8daf20eb48a0539d671ffed9168f',1,'olc::Pixel::Pixel(uint8_t red, uint8_t green, uint8_t blue, uint8_t alpha=nDefaultAlpha)'],['../structolc_1_1_pixel.html#ad6ddaba5806de8b26fea03fa6f7b0edf',1,'olc::Pixel::Pixel(uint32_t p)']]],
+  ['pixelf_421',['PixelF',['../namespaceolc.html#a06c9f23f2e370e7afe71788427a820fd',1,'olc']]],
+  ['pixelgameengine_422',['PixelGameEngine',['../classolc_1_1_pixel_game_engine.html',1,'olc::PixelGameEngine'],['../classolc_1_1_pixel_game_engine.html#afe9d685732305246c3fcb361ae3c4bc6',1,'olc::PixelGameEngine::PixelGameEngine()']]],
+  ['pixellerp_423',['PixelLerp',['../namespaceolc.html#a2069e5cf447f5dd311c680c9463f9c42',1,'olc']]],
+  ['platform_424',['Platform',['../classolc_1_1_platform.html',1,'olc']]],
+  ['playerentity_425',['PlayerEntity',['../classentities_1_1_player_entity.html',1,'entities::PlayerEntity'],['../classentities_1_1_player_entity.html#ace0cf1f8c711b21afef3965eb3b380a1',1,'entities::PlayerEntity::PlayerEntity()']]],
+  ['playerentity_2ecpp_426',['PlayerEntity.cpp',['../_player_entity_8cpp.html',1,'']]],
+  ['playerentity_2eh_427',['PlayerEntity.h',['../_player_entity_8h.html',1,'']]],
+  ['points_428',['points',['../structolc_1_1_decal_instance.html#aa03e3326919eb0c889cdad3492c8a8f6',1,'olc::DecalInstance']]],
+  ['pos_429',['pos',['../classentities_1_1_entity.html#a04f9c2febe8d435138a07eb2f48ba96b',1,'entities::Entity::pos()'],['../structolc_1_1_decal_instance.html#a8dcf3a11a4f2c722e9b54c01643de08c',1,'olc::DecalInstance::pos()']]],
+  ['predicatedistance_430',['predicateDistance',['../classweapons_1_1_melee_weapon_1_1predicate_distance.html',1,'weapons::MeleeWeapon']]],
+  ['preparedevice_431',['PrepareDevice',['../classolc_1_1_renderer.html#a7d97cab172e59d23a2587f636c9b12b7',1,'olc::Renderer']]],
+  ['preparedrawing_432',['PrepareDrawing',['../classolc_1_1_renderer.html#a04c56d76c76ab50f5f06b9b537e9d98d',1,'olc::Renderer']]],
+  ['projectile_433',['projectile',['../classentities_1_1_projectile_entity.html#aedd28853ca6fd6f1b8fa45dbe6b90c63',1,'entities::ProjectileEntity']]],
+  ['projectileentity_434',['ProjectileEntity',['../classentities_1_1_projectile_entity.html',1,'entities::ProjectileEntity'],['../classentities_1_1_projectile_entity.html#ad42e2a1181110d2fa3acbec7eef3424e',1,'entities::ProjectileEntity::ProjectileEntity()']]],
+  ['projectileentity_2ecpp_435',['ProjectileEntity.cpp',['../_projectile_entity_8cpp.html',1,'']]],
+  ['projectileentity_2eh_436',['ProjectileEntity.h',['../_projectile_entity_8h.html',1,'']]],
+  ['projectilespeed_437',['projectileSpeed',['../classweapons_1_1_ranged_weapon.html#a299d09c213670d80f7215e2310c92889',1,'weapons::RangedWeapon']]],
+  ['ptrpge_438',['ptrPGE',['../classolc_1_1_renderer.html#a89f800c14ab1b070408c17e2589e02a1',1,'olc::Renderer::ptrPGE()'],['../classolc_1_1_platform.html#a43a4a5eaaf20384b9cef6aec6e75dbbd',1,'olc::Platform::ptrPGE()']]]
+];
diff --git a/doxy/html/search/all_11.html b/doxy/html/search/all_11.html
new file mode 100644
index 0000000000000000000000000000000000000000..7cf685f148901c0a55f87c4766faa35192f4c456
--- /dev/null
+++ b/doxy/html/search/all_11.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_11.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doxy/html/search/all_11.js b/doxy/html/search/all_11.js
new file mode 100644
index 0000000000000000000000000000000000000000..2da0f8b07359a5d301eb742f77b4ea7e29829790
--- /dev/null
+++ b/doxy/html/search/all_11.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+  ['q_439',['Q',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a6d49ec75b05a97e8714ac8c244ad29a8',1,'olc']]]
+];
diff --git a/doxy/html/search/all_12.html b/doxy/html/search/all_12.html
new file mode 100644
index 0000000000000000000000000000000000000000..b8bb4910ec9f36f696a9f803ef6d2de8fdb72f6c
--- /dev/null
+++ b/doxy/html/search/all_12.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_12.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doxy/html/search/all_12.js b/doxy/html/search/all_12.js
new file mode 100644
index 0000000000000000000000000000000000000000..6adb4b2669594eb0dd822b625f97bf9c38c4d0c0
--- /dev/null
+++ b/doxy/html/search/all_12.js
@@ -0,0 +1,31 @@
+var searchData=
+[
+  ['r_440',['r',['../structolc_1_1_pixel.html#a93ee3efde3d2b363e4e4813a490f60b4',1,'olc::Pixel::r()'],['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a7417555746b2b1026b8ba65912817111',1,'olc::R()']]],
+  ['rangedweapon_441',['RangedWeapon',['../classweapons_1_1_ranged_weapon.html',1,'weapons::RangedWeapon'],['../classweapons_1_1_ranged_weapon.html#add8afffc63175911e5f81b3ce43d135f',1,'weapons::RangedWeapon::RangedWeapon()']]],
+  ['rangedweapon_2ecpp_442',['RangedWeapon.cpp',['../_ranged_weapon_8cpp.html',1,'']]],
+  ['rangedweapon_2eh_443',['RangedWeapon.h',['../_ranged_weapon_8h.html',1,'']]],
+  ['rcode_444',['rcode',['../namespaceolc.html#a3d40e9b1c005602550230690b55ae87b',1,'olc']]],
+  ['readme_2emd_445',['README.md',['../_r_e_a_d_m_e_8md.html',1,'']]],
+  ['readtexture_446',['ReadTexture',['../classolc_1_1_renderer.html#aa0e93a7d9ff6f25e9b154b2c8c86d44d',1,'olc::Renderer']]],
+  ['red_447',['RED',['../namespaceolc.html#ad4579f7eb75a257d76bb657a268f0a8d',1,'olc']]],
+  ['removeif_448',['removeIf',['../class_dynamic_array.html#a9db6489676b4560684be1ba03233fca0',1,'DynamicArray']]],
+  ['render_449',['render',['../namespacerender.html',1,'render'],['../classentities_1_1_character_entity.html#aeb6069f0f07d0914faf0f94c0cc33def',1,'entities::CharacterEntity::render()'],['../classrender_1_1_character_texture.html#a16ced1889ccaf7ca4c913ec1475c2f9a',1,'render::CharacterTexture::render()'],['../classentities_1_1_entity.html#abcc4364b5b7250f0364f3550a618b3ab',1,'entities::Entity::render()'],['../classentities_1_1_explosive_projectile.html#a86148b27403d275c1513f22bb3f47892',1,'entities::ExplosiveProjectile::render()'],['../classweapons_1_1_glitch_texture.html#a5484c864f917e54fb6041b7d0d33ef42',1,'weapons::GlitchTexture::render()'],['../classrender_1_1_i_texture.html#aedf64dab92f17e22a807635493196913',1,'render::ITexture::render()'],['../classrender_1_1_lazy_sprite.html#a3e2884ba94b5f6bbe9061c5a44ca6a23',1,'render::LazySprite::render()'],['../classrender_1_1_simple_sprite.html#aaed7cf3094f69387291a2d287d7753a5',1,'render::SimpleSprite::render()'],['../classrender_1_1_wall_texture.html#a03239c7168e114906cb20f3d39815344',1,'render::WallTexture::render()']]],
+  ['renderable_450',['Renderable',['../classolc_1_1_renderable.html',1,'olc::Renderable'],['../classolc_1_1_renderable.html#affef9fb6b4810e59a7d14410f351ba37',1,'olc::Renderable::Renderable()']]],
+  ['rendercentered_451',['renderCentered',['../classrender_1_1_lazy_sprite.html#a1e0b32f06c67b96eed8da12747aa4f0a',1,'render::LazySprite']]],
+  ['renderer_452',['Renderer',['../classolc_1_1_renderer.html',1,'olc']]],
+  ['renderexception_453',['RenderException',['../class_render_exception.html',1,'']]],
+  ['renderexception_2ecpp_454',['RenderException.cpp',['../_render_exception_8cpp.html',1,'']]],
+  ['renderexception_2eh_455',['RenderException.h',['../_render_exception_8h.html',1,'']]],
+  ['resource_2eh_456',['resource.h',['../resource_8h.html',1,'']]],
+  ['resource1_2eh_457',['resource1.h',['../resource1_8h.html',1,'']]],
+  ['resourcebuffer_458',['ResourceBuffer',['../structolc_1_1_resource_buffer.html',1,'olc::ResourceBuffer'],['../structolc_1_1_resource_buffer.html#abd18994c20cc7992ff7ccb07af9914e7',1,'olc::ResourceBuffer::ResourceBuffer()']]],
+  ['resourcemanager_459',['ResourceManager',['../classrender_1_1_resource_manager.html',1,'render']]],
+  ['resourcemanager_2ecpp_460',['ResourceManager.cpp',['../_resource_manager_8cpp.html',1,'']]],
+  ['resourcemanager_2eh_461',['ResourceManager.h',['../_resource_manager_8h.html',1,'']]],
+  ['resourcename_462',['resourceName',['../classrender_1_1_lazy_sprite.html#a67a794671efc86ea29921c0e5934377e',1,'render::LazySprite']]],
+  ['resourcepack_463',['ResourcePack',['../classolc_1_1_resource_pack.html',1,'olc::ResourcePack'],['../classolc_1_1_resource_pack.html#af5b7f93e4fb4e8b899da50985b689083',1,'olc::ResourcePack::ResourcePack()']]],
+  ['return_464',['RETURN',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a4f04a0bac23ee4f7b875d0328f29df27',1,'olc']]],
+  ['rifle_465',['rifle',['../namespaceweapons_1_1textures.html#a7ae588b12d703b44d1de1abb05d9f672',1,'weapons::textures']]],
+  ['right_466',['RIGHT',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a58e7b18972e446a03ce5ce915bc2d34d',1,'olc']]],
+  ['rougetexture_467',['RougeTexture',['../classrender_1_1_character_texture.html#a48e57b7a2864c6adb791b91a24b5daea',1,'render::CharacterTexture']]]
+];
diff --git a/doxy/html/search/all_13.html b/doxy/html/search/all_13.html
new file mode 100644
index 0000000000000000000000000000000000000000..bb149d4e2c7d2807bbadbb5d8c34acd62dc2b708
--- /dev/null
+++ b/doxy/html/search/all_13.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_13.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doxy/html/search/all_13.js b/doxy/html/search/all_13.js
new file mode 100644
index 0000000000000000000000000000000000000000..2f1acdd5829b39c01fd2dcce56cef32437c166ec
--- /dev/null
+++ b/doxy/html/search/all_13.js
@@ -0,0 +1,65 @@
+var searchData=
+[
+  ['s_468',['S',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a050dfda2928d980787eeebcaaa4e6fa7',1,'olc']]],
+  ['sample_469',['Sample',['../classolc_1_1_sprite.html#a902192f81ab42420921992a7288aab48',1,'olc::Sprite']]],
+  ['samplebl_470',['SampleBL',['../classolc_1_1_sprite.html#a5e28024237453fb56c32f37d6996443d',1,'olc::Sprite']]],
+  ['sappname_471',['sAppName',['../classolc_1_1_pixel_game_engine.html#a02d0f9c50770aa38aea1448f62d3604f',1,'olc::PixelGameEngine']]],
+  ['saveimageresource_472',['SaveImageResource',['../classolc_1_1_image_loader.html#addedde73c3a76c668a2954db36695f08',1,'olc::ImageLoader']]],
+  ['savepack_473',['SavePack',['../classolc_1_1_resource_pack.html#af6b1fec791c3c85b51b565db63a1aa9a',1,'olc::ResourcePack']]],
+  ['savetopgesprfile_474',['SaveToPGESprFile',['../classolc_1_1_sprite.html#a1f1b2a3f1fd932a6a14faa622a2918bf',1,'olc::Sprite']]],
+  ['scaletoscreen_475',['ScaleToScreen',['../classolc_1_1_transformed_view.html#a8be86d8036bf635287debfcf2509e4c5',1,'olc::TransformedView']]],
+  ['scaletoworld_476',['ScaleToWorld',['../classolc_1_1_transformed_view.html#a09492f689459319994da4c9d0e0c2dc4',1,'olc::TransformedView']]],
+  ['screenheight_477',['ScreenHeight',['../classolc_1_1_pixel_game_engine.html#abbbee4578ffa6b844c04c1af363052af',1,'olc::PixelGameEngine']]],
+  ['screenmovescale_478',['screenMoveScale',['../main_game_8cpp.html#a7f4c2bc4db6ed1d3f59d20429bcca8db',1,'mainGame.cpp']]],
+  ['screentoworld_479',['ScreenToWorld',['../classolc_1_1_transformed_view.html#a0f18594e00e7865fe4376761f9e20812',1,'olc::TransformedView']]],
+  ['screenwidth_480',['ScreenWidth',['../classolc_1_1_pixel_game_engine.html#aa3b458d05eab503d9918cfd2d383a45c',1,'olc::PixelGameEngine']]],
+  ['scroll_481',['SCROLL',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a44cf52f457ad06d45cd947c72c291ccc',1,'olc']]],
+  ['scythe_482',['scythe',['../namespaceweapons_1_1textures.html#ac492d02548352205657c28cd311d997b',1,'weapons::textures']]],
+  ['setdebugmode_483',['setDebugMode',['../class_game_client.html#a9af9a685c31d428921b0cf5976a63c14',1,'GameClient']]],
+  ['setdecalmode_484',['SetDecalMode',['../classolc_1_1_renderer.html#aebfc5a561c54b88f16a0b3d855eedaa1',1,'olc::Renderer::SetDecalMode()'],['../classolc_1_1_pixel_game_engine.html#a27ee96acff2c74d47f0cb78493aac756',1,'olc::PixelGameEngine::SetDecalMode()']]],
+  ['setdrawtarget_485',['SetDrawTarget',['../classolc_1_1_pixel_game_engine.html#a70b6a145d7ab0c8857000a72ce4d4a70',1,'olc::PixelGameEngine::SetDrawTarget(Sprite *target)'],['../classolc_1_1_pixel_game_engine.html#a5842c1087a70c95a7ff96d53f28b7bab',1,'olc::PixelGameEngine::SetDrawTarget(uint8_t layer)']]],
+  ['setlayercustomrenderfunction_486',['SetLayerCustomRenderFunction',['../classolc_1_1_pixel_game_engine.html#a40a88ddb3800e59121f05b06fd64dbfd',1,'olc::PixelGameEngine']]],
+  ['setlayeroffset_487',['SetLayerOffset',['../classolc_1_1_pixel_game_engine.html#a0e1ddc993ef65dfe00f2bbcf59e535ad',1,'olc::PixelGameEngine::SetLayerOffset(uint8_t layer, const olc::vf2d &amp;offset)'],['../classolc_1_1_pixel_game_engine.html#a9fed21eddcebeb743472d8b9eb1e3ece',1,'olc::PixelGameEngine::SetLayerOffset(uint8_t layer, float x, float y)']]],
+  ['setlayerscale_488',['SetLayerScale',['../classolc_1_1_pixel_game_engine.html#af8fbe005b4069ed1de8e0347b72ebc30',1,'olc::PixelGameEngine::SetLayerScale(uint8_t layer, const olc::vf2d &amp;scale)'],['../classolc_1_1_pixel_game_engine.html#a409825b0147e25c0d4c05fb0aa1f6273',1,'olc::PixelGameEngine::SetLayerScale(uint8_t layer, float x, float y)']]],
+  ['setlayertint_489',['SetLayerTint',['../classolc_1_1_pixel_game_engine.html#a7d7c04245161782d5f5c48d3d62ff7a7',1,'olc::PixelGameEngine']]],
+  ['setpickup_490',['setPickUp',['../classweapons_1_1_weapon.html#ace9c44751879af7382585c3338d4bc47',1,'weapons::Weapon']]],
+  ['setpixel_491',['SetPixel',['../classolc_1_1_sprite.html#a294389e93a95c8307f1260d7cacaf9ba',1,'olc::Sprite::SetPixel(int32_t x, int32_t y, Pixel p)'],['../classolc_1_1_sprite.html#ae7b8af09a29793ab16b7b813c8b0d26d',1,'olc::Sprite::SetPixel(const olc::vi2d &amp;a, Pixel p)']]],
+  ['setpixelblend_492',['SetPixelBlend',['../classolc_1_1_pixel_game_engine.html#ab0726b7758bc1bf7f7de30369076b8e7',1,'olc::PixelGameEngine']]],
+  ['setpixelmode_493',['SetPixelMode',['../classolc_1_1_pixel_game_engine.html#ae4a3d1aaa40761986389966ab927ef32',1,'olc::PixelGameEngine::SetPixelMode(Pixel::Mode m)'],['../classolc_1_1_pixel_game_engine.html#a9aa31ae4e1735efa72f3ea17fb51b2ef',1,'olc::PixelGameEngine::SetPixelMode(std::function&lt; olc::Pixel(const int x, const int y, const olc::Pixel &amp;pSource, const olc::Pixel &amp;pDest)&gt; pixelMode)']]],
+  ['setpos_494',['setPos',['../classweapons_1_1_weapon.html#a34c39bfa9cdb2d7483bc340300e8a2d9',1,'weapons::Weapon']]],
+  ['setrangex_495',['SetRangeX',['../classolc_1_1_tile_transformed_view.html#ace1a6e5c3df96cd43582e02ca4b94dac',1,'olc::TileTransformedView']]],
+  ['setrangey_496',['SetRangeY',['../classolc_1_1_tile_transformed_view.html#a660fcd24db414be714ae53ba131296a7',1,'olc::TileTransformedView']]],
+  ['setsamplemode_497',['SetSampleMode',['../classolc_1_1_sprite.html#a78f4fcf41780cfc547f21e5a0dea03a2',1,'olc::Sprite']]],
+  ['setscreensize_498',['SetScreenSize',['../classolc_1_1_pixel_game_engine.html#abd403468f57f7665d56e202da8de8e76',1,'olc::PixelGameEngine']]],
+  ['setvelocity_499',['setVelocity',['../classentities_1_1_projectile_entity.html#ad88aa7e53b9a6671dab6132a8d58dbb5',1,'entities::ProjectileEntity']]],
+  ['setviewarea_500',['SetViewArea',['../classolc_1_1_transformed_view.html#ac7295e90921832fef16779172cc9e4ff',1,'olc::TransformedView']]],
+  ['setwindowtitle_501',['SetWindowTitle',['../classolc_1_1_platform.html#ab9ea28ecd660730810463dd6c68b73fd',1,'olc::Platform']]],
+  ['setworldoffset_502',['SetWorldOffset',['../classolc_1_1_transformed_view.html#aee86c84a719f8b5c3143e2a0b89e8024',1,'olc::TransformedView']]],
+  ['setworldscale_503',['SetWorldScale',['../classolc_1_1_transformed_view.html#a971e25ee6978c271127f766aba69b285',1,'olc::TransformedView']]],
+  ['setzoom_504',['SetZoom',['../classolc_1_1_transformed_view.html#a89fd4d642cf37d1e6f1674b870b142d8',1,'olc::TransformedView']]],
+  ['shift_505',['SHIFT',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a4cd994e0e2285e9b52e129f74c84aa0b',1,'olc']]],
+  ['shovel_506',['shovel',['../namespaceweapons_1_1textures.html#affedf59c6526368e5358afc383f15022',1,'weapons::textures']]],
+  ['simplegreenwalltexture_507',['simpleGreenWallTexture',['../classentities_1_1_wall_entity.html#a3006e4856a24086bdd28b7b353b159ff',1,'entities::WallEntity']]],
+  ['simplesprite_508',['SimpleSprite',['../classrender_1_1_simple_sprite.html',1,'render::SimpleSprite'],['../classrender_1_1_simple_sprite.html#af16d9ee29214a89a6ebe404a73ea5cad',1,'render::SimpleSprite::SimpleSprite()']]],
+  ['simplesprite_2ecpp_509',['SimpleSprite.cpp',['../_simple_sprite_8cpp.html',1,'']]],
+  ['simplesprite_2eh_510',['SimpleSprite.h',['../_simple_sprite_8h.html',1,'']]],
+  ['simplewalltexture_511',['simpleWallTexture',['../classentities_1_1_wall_entity.html#a73c32014a207a92fc1a837f0dda83eb8',1,'entities::WallEntity']]],
+  ['space_512',['SPACE',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a925d9a708542cd050a0b4f87bd7ba297',1,'olc']]],
+  ['spawnprojectile_513',['spawnProjectile',['../classweapons_1_1_glitch_gun.html#a9268757aeb63315254d6a13df8ed0ba4',1,'weapons::GlitchGun::spawnProjectile()'],['../classweapons_1_1_pistol.html#a37f81949e55c373d7cf1f35cb59c1c25',1,'weapons::Pistol::spawnProjectile()'],['../classweapons_1_1_ranged_weapon.html#a6b6b8265efc6ecf60e36ab261fe6f360',1,'weapons::RangedWeapon::spawnProjectile()']]],
+  ['spear_514',['spear',['../namespaceweapons_1_1textures.html#a9734b7f6d13a24af2d62e74e6cd9dfde',1,'weapons::textures']]],
+  ['speed_515',['speed',['../classentities_1_1_living_entity.html#ad8b574e93d1fa34cdd119be6f0391acb',1,'entities::LivingEntity']]],
+  ['spoon_516',['spoon',['../classweapons_1_1_typical_melee_weapon.html#a1988a389241e423445c7b0f6ff2ed23f',1,'weapons::TypicalMeleeWeapon']]],
+  ['sprite_517',['Sprite',['../classolc_1_1_sprite.html',1,'olc::Sprite'],['../classolc_1_1_sprite.html#aaf231565550d294ef20bf31364562ec3',1,'olc::Sprite::Sprite()'],['../classolc_1_1_sprite.html#ad8ce71f2399a2721aff9234390a18b8e',1,'olc::Sprite::Sprite(const std::string &amp;sImageFile, olc::ResourcePack *pack=nullptr)'],['../classolc_1_1_sprite.html#a3e452a040fc2680228b1e6a7b6b9890e',1,'olc::Sprite::Sprite(int32_t w, int32_t h)'],['../classolc_1_1_sprite.html#a5b0190890ed98560125b2ae4db9a7d9f',1,'olc::Sprite::Sprite(const olc::Sprite &amp;)=delete'],['../classolc_1_1_renderable.html#a8128a49bae0a3b40a5681d92cc01f52a',1,'olc::Renderable::Sprite()'],['../classolc_1_1_decal.html#a93a1e2ae28aa587978e2a66b6328d66a',1,'olc::Decal::sprite()']]],
+  ['spritemanager_518',['SpriteManager',['../classrender_1_1_sprite_manager.html',1,'render::SpriteManager'],['../classrender_1_1_sprite_manager.html#ad65313b397c85d87f307fbb931907afb',1,'render::SpriteManager::SpriteManager()']]],
+  ['squareroomgenerator_519',['SquareRoomGenerator',['../class_square_room_generator.html',1,'']]],
+  ['squareroomgenerator_2ecpp_520',['SquareRoomGenerator.cpp',['../_square_room_generator_8cpp.html',1,'']]],
+  ['squareroomgenerator_2eh_521',['SquareRoomGenerator.h',['../_square_room_generator_8h.html',1,'']]],
+  ['start_522',['Start',['../classolc_1_1_pixel_game_engine.html#a8e8848aa1c743a1ec2cdaa14c87e5cde',1,'olc::PixelGameEngine']]],
+  ['startpan_523',['StartPan',['../classolc_1_1_transformed_view.html#a4dc2bd0de3686978fdf8630d23a727c3',1,'olc::TransformedView']]],
+  ['startsystemeventloop_524',['StartSystemEventLoop',['../classolc_1_1_platform.html#af58e24a992339020fa1ebf58a224b209',1,'olc::Platform']]],
+  ['stencil_525',['STENCIL',['../namespaceolc.html#aeda642f63378f868193c28e8613138caa301b25ea9a653329b5d5d727f92514c4',1,'olc']]],
+  ['str_526',['str',['../structolc_1_1v2d__generic.html#a88a794a4e9ec632f215afbeb04b354c8',1,'olc::v2d_generic']]],
+  ['sword_527',['sword',['../classweapons_1_1_typical_melee_weapon.html#a1eed0cf1fc89f495ccad84dd4acac0eb',1,'weapons::TypicalMeleeWeapon']]],
+  ['sword1_528',['sword1',['../namespaceweapons_1_1textures.html#a2a490d5d835f3ea3a9b07d2a9efb1c36',1,'weapons::textures']]],
+  ['sword2_529',['sword2',['../namespaceweapons_1_1textures.html#a05b20bd98c55bfbfcf4c2e7e0b08ebaf',1,'weapons::textures']]]
+];
diff --git a/doxy/html/search/all_14.html b/doxy/html/search/all_14.html
new file mode 100644
index 0000000000000000000000000000000000000000..08e1d0bcf4839411d6abfc32a0d3f6d2ae4cfef0
--- /dev/null
+++ b/doxy/html/search/all_14.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_14.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doxy/html/search/all_14.js b/doxy/html/search/all_14.js
new file mode 100644
index 0000000000000000000000000000000000000000..6390651d3b9cb9953beff39b654061718ca11c5f
--- /dev/null
+++ b/doxy/html/search/all_14.js
@@ -0,0 +1,20 @@
+var searchData=
+[
+  ['text_530',['Text',['../md__c___users_kosmx__documents__git_hub_2d-game__text.html',1,'']]],
+  ['t_531',['T',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0',1,'olc']]],
+  ['tab_532',['TAB',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7aef93738bc8d89f07932dd1a603b021bd',1,'olc']]],
+  ['testgenerator_533',['TestGenerator',['../class_test_generator.html',1,'']]],
+  ['testgenerator_2ecpp_534',['TestGenerator.cpp',['../_test_generator_8cpp.html',1,'']]],
+  ['testgenerator_2eh_535',['TestGenerator.h',['../_test_generator_8h.html',1,'']]],
+  ['text_2emd_536',['Text.md',['../_text_8md.html',1,'']]],
+  ['texture_537',['texture',['../classentities_1_1_character_entity.html#a295a77ffb22dd1a7b30164ab04ecf400',1,'entities::CharacterEntity']]],
+  ['threadcleanup_538',['ThreadCleanUp',['../classolc_1_1_platform.html#a0e4e37ccc06ae7f3251b7a53ce839c13',1,'olc::Platform']]],
+  ['threadstartup_539',['ThreadStartUp',['../classolc_1_1_platform.html#ace0ea54aaa50143628b5fd41851b578f',1,'olc::Platform']]],
+  ['tick_540',['tick',['../classentities_1_1_character_entity.html#ae7cdddc6dca655e7bf8c2f48424c5208',1,'entities::CharacterEntity::tick()'],['../classentities_1_1_entity.html#a0440674bf90ae83d9a26aa4b0ac8309e',1,'entities::Entity::tick()'],['../classentities_1_1_entity_with_a_i.html#a92708b14b042c03fa9a8673192867e72',1,'entities::EntityWithAI::tick()'],['../classentities_1_1_explosive_projectile.html#a3aa22ab3467caa20a8c7b3cc818b157d',1,'entities::ExplosiveProjectile::tick()'],['../classentities_1_1_living_entity.html#af13cb8c3fabd2960746e21cd7dabe4d6',1,'entities::LivingEntity::tick()'],['../classentities_1_1_player_entity.html#a9f5c7033ca46daf217c73cb5edbb0d68',1,'entities::PlayerEntity::tick()'],['../classentities_1_1_projectile_entity.html#a761f27885de02515edaf252e8a4162b5',1,'entities::ProjectileEntity::tick()'],['../classweapons_1_1_weapon.html#a92ae1db47ca866d828f8b09c6de5a3f6',1,'weapons::Weapon::tick()']]],
+  ['tiletransformedview_541',['TileTransformedView',['../classolc_1_1_tile_transformed_view.html',1,'olc::TileTransformedView'],['../classolc_1_1_tile_transformed_view.html#a4ecc47c57596ad966120894db8d6ad59',1,'olc::TileTransformedView::TileTransformedView()=default'],['../classolc_1_1_tile_transformed_view.html#ac38d47324d7370b5259894d814b879f8',1,'olc::TileTransformedView::TileTransformedView(const olc::vi2d &amp;vViewArea, const olc::vi2d &amp;vTileSize)']]],
+  ['tint_542',['tint',['../structolc_1_1_decal_instance.html#a04f01880bf6d4045b6e1f70aff3e5c8f',1,'olc::DecalInstance::tint()'],['../structolc_1_1_layer_desc.html#af6027ed5757afe2c8c0cd50620d7311f',1,'olc::LayerDesc::tint()']]],
+  ['transformedview_543',['TransformedView',['../classolc_1_1_transformed_view.html',1,'olc::TransformedView'],['../classolc_1_1_transformed_view.html#a1f4ed7eb880b0f0edc0b86be4b33b04e',1,'olc::TransformedView::TransformedView()']]],
+  ['typicalmeleeweapon_544',['TypicalMeleeWeapon',['../classweapons_1_1_typical_melee_weapon.html',1,'weapons::TypicalMeleeWeapon'],['../classweapons_1_1_typical_melee_weapon.html#a939cbdc05adab9adf58301cce00e3f8b',1,'weapons::TypicalMeleeWeapon::TypicalMeleeWeapon()']]],
+  ['typicalmeleeweapon_2ecpp_545',['TypicalMeleeWeapon.cpp',['../_typical_melee_weapon_8cpp.html',1,'']]],
+  ['typicalmeleeweapon_2eh_546',['TypicalMeleeWeapon.h',['../_typical_melee_weapon_8h.html',1,'']]]
+];
diff --git a/doxy/html/search/all_15.html b/doxy/html/search/all_15.html
new file mode 100644
index 0000000000000000000000000000000000000000..e438c039ec64565d78f7286a38275f7b3dad351b
--- /dev/null
+++ b/doxy/html/search/all_15.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_15.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doxy/html/search/all_15.js b/doxy/html/search/all_15.js
new file mode 100644
index 0000000000000000000000000000000000000000..22627deae8f7a4862197e1815a3978b531f26a05
--- /dev/null
+++ b/doxy/html/search/all_15.js
@@ -0,0 +1,16 @@
+var searchData=
+[
+  ['u_547',['U',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a62c2493e1585db2af15cb70ac979fb09',1,'olc']]],
+  ['unused_548',['UNUSED',['../olc_pixel_game_engine_8h.html#a86d500a34c624c2cae56bc25a31b12f3',1,'olcPixelGameEngine.h']]],
+  ['up_549',['UP',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a2b35f0b03e615b828187a990935344c4',1,'olc']]],
+  ['update_550',['update',['../classweapons_1_1_e_m_gun.html#a0bb30401aa36e2205c011ea0fcf40303',1,'weapons::EMGun::update()'],['../classweapons_1_1_glitch_gun.html#a6687147e8005e96f12806862f73a6cd8',1,'weapons::GlitchGun::update()'],['../classweapons_1_1_weapon.html#a1cbf391f196bd151f3e3f1ae1e316088',1,'weapons::Weapon::update()'],['../classolc_1_1_decal.html#aac5ad6844f98fb3a8bce2f36adf02429',1,'olc::Decal::Update()']]],
+  ['updateneighbours_551',['updateNeighbours',['../classentities_1_1_wall_entity.html#a8d65d65453803e731cd9aa112d1f0447',1,'entities::WallEntity']]],
+  ['updatepan_552',['UpdatePan',['../classolc_1_1_transformed_view.html#a4baf2b53892749ff380833991161b9c4',1,'olc::TransformedView']]],
+  ['updatesprite_553',['UpdateSprite',['../classolc_1_1_decal.html#a4a3b893edbce4d416453f57c11754092',1,'olc::Decal']]],
+  ['updatetexture_554',['UpdateTexture',['../classolc_1_1_renderer.html#a1512e2939b94f6fdb58bbf152ac0e4e5',1,'olc::Renderer']]],
+  ['updateviewport_555',['UpdateViewport',['../classolc_1_1_renderer.html#abc873336dd8f9079dc26f92ce0f95748',1,'olc::Renderer']]],
+  ['use_556',['use',['../classweapons_1_1_e_m_gun.html#a8034852a4a5957c3d3bc00ca5f7df6e4',1,'weapons::EMGun::use()'],['../classweapons_1_1_melee_weapon.html#ac1b9a6718cbf78cea0b9e5e0b8dcc64e',1,'weapons::MeleeWeapon::use()'],['../classweapons_1_1_ranged_weapon.html#a0e8915ad79021eb8fd79a1a3d7b1c92c',1,'weapons::RangedWeapon::use()'],['../classweapons_1_1_weapon.html#a8c6f12ac9ed871ebd0394f6b5c447868',1,'weapons::Weapon::use()']]],
+  ['use_5fexperimental_5ffs_557',['USE_EXPERIMENTAL_FS',['../olc_pixel_game_engine_8h.html#a7f7123ffe9352ede10ecc711ae8901d3',1,'olcPixelGameEngine.h']]],
+  ['user_558',['user',['../classentities_1_1_projectile_entity.html#ab01d1aa4b66b21481d07f7777bfb2ca3',1,'entities::ProjectileEntity']]],
+  ['uv_559',['uv',['../structolc_1_1_decal_instance.html#a60337d982b4f35b3bb5b1d814fa0d09f',1,'olc::DecalInstance']]]
+];
diff --git a/doxy/html/search/all_16.html b/doxy/html/search/all_16.html
new file mode 100644
index 0000000000000000000000000000000000000000..cd0301f125c4d3937cf228acec0a59f2aec3019a
--- /dev/null
+++ b/doxy/html/search/all_16.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_16.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doxy/html/search/all_16.js b/doxy/html/search/all_16.js
new file mode 100644
index 0000000000000000000000000000000000000000..f3d43d388095d7984f7236b7dd7a8d712ef5b06f
--- /dev/null
+++ b/doxy/html/search/all_16.js
@@ -0,0 +1,25 @@
+var searchData=
+[
+  ['v_560',['V',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a170eaa7913d25c0ff02712bd93d7bf81',1,'olc']]],
+  ['v2d_5fgeneric_561',['v2d_generic',['../structolc_1_1v2d__generic.html',1,'olc::v2d_generic&lt; T &gt;'],['../structolc_1_1v2d__generic.html#aba35d326b62454a5fbdeea4220438784',1,'olc::v2d_generic::v2d_generic()'],['../structolc_1_1v2d__generic.html#a2fc62e52adae5f9e4138adf073afddb0',1,'olc::v2d_generic::v2d_generic(T _x, T _y)'],['../structolc_1_1v2d__generic.html#a7897de7e3e5f2a0e6ba1d2aef2015fce',1,'olc::v2d_generic::v2d_generic(const v2d_generic &amp;v)']]],
+  ['v2d_5fgeneric_3c_20float_20_3e_562',['v2d_generic&lt; float &gt;',['../structolc_1_1v2d__generic.html',1,'olc']]],
+  ['v2d_5fgeneric_3c_20int32_5ft_20_3e_563',['v2d_generic&lt; int32_t &gt;',['../structolc_1_1v2d__generic.html',1,'olc']]],
+  ['vd2d_564',['vd2d',['../namespaceolc.html#a51aaa7b75138a3323048a77457735d33',1,'olc']]],
+  ['vecdecalinstance_565',['vecDecalInstance',['../structolc_1_1_layer_desc.html#ac6cd952e0ebbd7cde19060b4e3896875',1,'olc::LayerDesc']]],
+  ['velocity_566',['velocity',['../classentities_1_1_projectile_entity.html#a29cb43b58d34f32f18986185bf8691f8',1,'entities::ProjectileEntity']]],
+  ['vert_567',['VERT',['../classolc_1_1_sprite.html#ad0d1976d2060997f5cd99eb284a5dc24a7d2b99d18b574e41332e569d141914c5',1,'olc::Sprite']]],
+  ['very_5fdark_5fblue_568',['VERY_DARK_BLUE',['../namespaceolc.html#a48fb6375b9a7c0a0d44feaa879e7ebb7',1,'olc']]],
+  ['very_5fdark_5fcyan_569',['VERY_DARK_CYAN',['../namespaceolc.html#aee6a06b446368ac58033b5ae4f4c6ca2',1,'olc']]],
+  ['very_5fdark_5fgreen_570',['VERY_DARK_GREEN',['../namespaceolc.html#a29c85b49a3c9cbd0b251e80e3bc57140',1,'olc']]],
+  ['very_5fdark_5fgrey_571',['VERY_DARK_GREY',['../namespaceolc.html#a93de271d8b3cbd5aec73a085e6a6ec7a',1,'olc']]],
+  ['very_5fdark_5fmagenta_572',['VERY_DARK_MAGENTA',['../namespaceolc.html#a150fed0369958dc77d3207298588bc94',1,'olc']]],
+  ['very_5fdark_5fred_573',['VERY_DARK_RED',['../namespaceolc.html#a82b6404acf7ac86f237179fc5f9a859f',1,'olc']]],
+  ['very_5fdark_5fyellow_574',['VERY_DARK_YELLOW',['../namespaceolc.html#a131df56f1dd5cb0906cd02f9df49b17d',1,'olc']]],
+  ['vf2d_575',['vf2d',['../namespaceolc.html#adb87819740ea9625f84c821fffb16429',1,'olc']]],
+  ['vi2d_576',['vi2d',['../namespaceolc.html#a3c42697361e8a28424bcf8415aba3564',1,'olc']]],
+  ['vmemory_577',['vMemory',['../structolc_1_1_resource_buffer.html#a413e818311737396d14838a00df05303',1,'olc::ResourceBuffer']]],
+  ['voffset_578',['vOffset',['../structolc_1_1_layer_desc.html#a1657be3b96c8fbb85fe113ae695fece9',1,'olc::LayerDesc']]],
+  ['vscale_579',['vScale',['../structolc_1_1_layer_desc.html#ab9701d17eb84ab32e93211277cacc763',1,'olc::LayerDesc']]],
+  ['vu2d_580',['vu2d',['../namespaceolc.html#ac9f9fa9267428312fd81237a4cc5c8e5',1,'olc']]],
+  ['vuvscale_581',['vUVScale',['../classolc_1_1_decal.html#aff06190e3ca17446d373d5a93a3636c7',1,'olc::Decal']]]
+];
diff --git a/doxy/html/search/all_17.html b/doxy/html/search/all_17.html
new file mode 100644
index 0000000000000000000000000000000000000000..1a6a5bd66b55dc1603deb071dd4a884609d1b7f5
--- /dev/null
+++ b/doxy/html/search/all_17.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_17.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doxy/html/search/all_17.js b/doxy/html/search/all_17.js
new file mode 100644
index 0000000000000000000000000000000000000000..0fe8acc8964e73a30dd982fb7d49170e4ed22060
--- /dev/null
+++ b/doxy/html/search/all_17.js
@@ -0,0 +1,23 @@
+var searchData=
+[
+  ['textures_582',['textures',['../namespaceweapons_1_1textures.html',1,'weapons']]],
+  ['w_583',['w',['../structolc_1_1_decal_instance.html#a3475b1bb41f868f218c759972dec2f73',1,'olc::DecalInstance::w()'],['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ac1ae605c94e2d813c718148311c101d1',1,'olc::W()']]],
+  ['wallentity_584',['WallEntity',['../classentities_1_1_wall_entity.html',1,'entities::WallEntity'],['../classentities_1_1_wall_entity.html#a109600cce4cd0514d320c14b4f8f4813',1,'entities::WallEntity::WallEntity()']]],
+  ['wallentity_2ecpp_585',['WallEntity.cpp',['../_wall_entity_8cpp.html',1,'']]],
+  ['wallentity_2eh_586',['WallEntity.h',['../_wall_entity_8h.html',1,'']]],
+  ['walltexture_587',['WallTexture',['../classrender_1_1_wall_texture.html',1,'render::WallTexture'],['../classrender_1_1_wall_texture.html#af0420c11949bbc21421cc21765bd8920',1,'render::WallTexture::WallTexture()']]],
+  ['walltexture_2ecpp_588',['WallTexture.cpp',['../_wall_texture_8cpp.html',1,'']]],
+  ['walltexture_2eh_589',['WallTexture.h',['../_wall_texture_8h.html',1,'']]],
+  ['warriortexture_590',['WarriorTexture',['../classrender_1_1_character_texture.html#a63149d0abd6b6c3fffac01f6bae855eb',1,'render::CharacterTexture']]],
+  ['weapon_591',['Weapon',['../classweapons_1_1_weapon.html',1,'weapons::Weapon'],['../classweapons_1_1_weapon.html#a28f7b716212ae6b4606cff82501e00a2',1,'weapons::Weapon::Weapon()']]],
+  ['weapon_2ecpp_592',['Weapon.cpp',['../_weapon_8cpp.html',1,'']]],
+  ['weapon_2eh_593',['Weapon.h',['../_weapon_8h.html',1,'']]],
+  ['weapons_594',['weapons',['../namespaceweapons.html',1,'']]],
+  ['weapontextures_2ecpp_595',['WeaponTextures.cpp',['../_weapon_textures_8cpp.html',1,'']]],
+  ['weapontextures_2eh_596',['WeaponTextures.h',['../_weapon_textures_8h.html',1,'']]],
+  ['white_597',['WHITE',['../namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1',1,'olc']]],
+  ['width_598',['width',['../classolc_1_1_sprite.html#af055800e63204ae372ca0812e6926230',1,'olc::Sprite']]],
+  ['wireframe_599',['WIREFRAME',['../namespaceolc.html#aeda642f63378f868193c28e8613138caa43ea8c7cefb63ec314b4df5628cba577',1,'olc']]],
+  ['worldtoscreen_600',['WorldToScreen',['../classolc_1_1_transformed_view.html#a18b18c9718c642ca912d44a133ffde1d',1,'olc::TransformedView']]],
+  ['worldtoscreenscale_601',['worldToScreenScale',['../main_game_8cpp.html#ab553cccbcdbb19b4f2c3a1a727eeb867',1,'mainGame.cpp']]]
+];
diff --git a/doxy/html/search/all_18.html b/doxy/html/search/all_18.html
new file mode 100644
index 0000000000000000000000000000000000000000..ccd5eded695e02c0375bc4b18e46386509c84ed0
--- /dev/null
+++ b/doxy/html/search/all_18.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_18.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doxy/html/search/all_18.js b/doxy/html/search/all_18.js
new file mode 100644
index 0000000000000000000000000000000000000000..2e443d7baebd22700cda1fb9fd2436be82f12cd6
--- /dev/null
+++ b/doxy/html/search/all_18.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+  ['x_602',['x',['../structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807',1,'olc::v2d_generic::x()'],['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a259dcb71eab0ee6c477f792543f43ec5',1,'olc::X()']]]
+];
diff --git a/doxy/html/search/all_19.html b/doxy/html/search/all_19.html
new file mode 100644
index 0000000000000000000000000000000000000000..e402eb7378db4b348dfec84c1c55b14390264a38
--- /dev/null
+++ b/doxy/html/search/all_19.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_19.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doxy/html/search/all_19.js b/doxy/html/search/all_19.js
new file mode 100644
index 0000000000000000000000000000000000000000..daacbdf9c9e4e0847084ac22bc89fe3041b8eaa0
--- /dev/null
+++ b/doxy/html/search/all_19.js
@@ -0,0 +1,5 @@
+var searchData=
+[
+  ['y_603',['y',['../structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf',1,'olc::v2d_generic::y()'],['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a6207f4e5a37e546fa3881817046587b9',1,'olc::Y()']]],
+  ['yellow_604',['YELLOW',['../namespaceolc.html#a6c9728f6dba8b58406bb0e10979b6ccf',1,'olc']]]
+];
diff --git a/doxy/html/search/all_1a.html b/doxy/html/search/all_1a.html
new file mode 100644
index 0000000000000000000000000000000000000000..4a3a2c6d64f51dd2f93c290a7b2513000d70a43d
--- /dev/null
+++ b/doxy/html/search/all_1a.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_1a.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doxy/html/search/all_1a.js b/doxy/html/search/all_1a.js
new file mode 100644
index 0000000000000000000000000000000000000000..0a4c194230d5a7f55ce0e83ca394c07d5cc4dcaa
--- /dev/null
+++ b/doxy/html/search/all_1a.js
@@ -0,0 +1,5 @@
+var searchData=
+[
+  ['z_605',['Z',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a7c408b7a6694f74ac270013753b13aaa',1,'olc']]],
+  ['zoomatscreenpos_606',['ZoomAtScreenPos',['../classolc_1_1_transformed_view.html#a84a8b9030ac97afa9b6099dea5865b9c',1,'olc::TransformedView']]]
+];
diff --git a/doxy/html/search/all_1b.html b/doxy/html/search/all_1b.html
new file mode 100644
index 0000000000000000000000000000000000000000..5627254aebff4fbb8062cd81e73a42a58e4991e2
--- /dev/null
+++ b/doxy/html/search/all_1b.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_1b.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doxy/html/search/all_1b.js b/doxy/html/search/all_1b.js
new file mode 100644
index 0000000000000000000000000000000000000000..0393bd188e9ace342b42ecbff31ead18ee6106c3
--- /dev/null
+++ b/doxy/html/search/all_1b.js
@@ -0,0 +1,13 @@
+var searchData=
+[
+  ['_7edecal_607',['~Decal',['../classolc_1_1_decal.html#a5c993dab5be43270dce30b44f1d3e50b',1,'olc::Decal']]],
+  ['_7eentity_608',['~Entity',['../classentities_1_1_entity.html#a64d968c160dee2fdfca68aff2e49946b',1,'entities::Entity']]],
+  ['_7eimageloader_609',['~ImageLoader',['../classolc_1_1_image_loader.html#a680c0395200ceab209fb96c21cd8b883',1,'olc::ImageLoader']]],
+  ['_7eitexture_610',['~ITexture',['../classrender_1_1_i_texture.html#a2dcbcad96404d6a0ff64e8053ccde162',1,'render::ITexture']]],
+  ['_7epixelgameengine_611',['~PixelGameEngine',['../classolc_1_1_pixel_game_engine.html#a423d90134c297f7b9f1834a136071b19',1,'olc::PixelGameEngine']]],
+  ['_7eplatform_612',['~Platform',['../classolc_1_1_platform.html#a352f636fdc2e30bddac2db85238b166b',1,'olc::Platform']]],
+  ['_7erenderer_613',['~Renderer',['../classolc_1_1_renderer.html#a877048a1bcf3decfe544804f0e4e1ad9',1,'olc::Renderer']]],
+  ['_7eresourcemanager_614',['~ResourceManager',['../classrender_1_1_resource_manager.html#a718ece71d629e1fd5b4b3afc967d4381',1,'render::ResourceManager']]],
+  ['_7eresourcepack_615',['~ResourcePack',['../classolc_1_1_resource_pack.html#a7e48d44ecdac3d4a2eec7bb5a5eb1ec5',1,'olc::ResourcePack']]],
+  ['_7esprite_616',['~Sprite',['../classolc_1_1_sprite.html#a594abc52842c29e4a5417adf57fb877e',1,'olc::Sprite']]]
+];
diff --git a/doxy/html/search/all_2.html b/doxy/html/search/all_2.html
new file mode 100644
index 0000000000000000000000000000000000000000..1f81f6645eaa41cc0d6caf0b46512858b3b065f4
--- /dev/null
+++ b/doxy/html/search/all_2.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_2.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doxy/html/search/all_2.js b/doxy/html/search/all_2.js
new file mode 100644
index 0000000000000000000000000000000000000000..e950f01a338d7c1c15bb0506b2fd2d8db2e815bf
--- /dev/null
+++ b/doxy/html/search/all_2.js
@@ -0,0 +1,17 @@
+var searchData=
+[
+  ['b_12',['b',['../structolc_1_1_pixel.html#a8738f2cd490bd9c5288f37c8d19816be',1,'olc::Pixel::b()'],['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a8baf1c6fa76f36bae92c12df88f4c84d',1,'olc::B()']]],
+  ['back_13',['BACK',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a390af039d8a8c4ab71787f001f810521',1,'olc']]],
+  ['basedamage_14',['baseDamage',['../classweapons_1_1_weapon.html#a27456b08c51df0759ae0155b9f79e336',1,'weapons::Weapon']]],
+  ['begin_15',['begin',['../class_dynamic_array.html#a3b4f5925657f9e8dfd71bcc5973399ee',1,'DynamicArray']]],
+  ['bheld_16',['bHeld',['../structolc_1_1_h_w_button.html#a6d872a5aeb23aba39103b95093c63cb7',1,'olc::HWButton']]],
+  ['black_17',['BLACK',['../namespaceolc.html#a183de1c471cfd6f45980bc9c2c58ed9d',1,'olc']]],
+  ['blank_18',['BLANK',['../namespaceolc.html#ac940e7f6502cbced06f26b4d13349166',1,'olc']]],
+  ['blue_19',['BLUE',['../namespaceolc.html#ac1e1d3e39e0b78e9767142c9daeba4ee',1,'olc']]],
+  ['bounce_20',['bounce',['../classentities_1_1_projectile_entity.html#ab3eb63e6fdf0ca5c4b81ebbc02e7f513',1,'entities::ProjectileEntity']]],
+  ['bow_21',['bow',['../namespaceweapons_1_1textures.html#ae84acdfc1384af6d4e1f64c1883a8784',1,'weapons::textures']]],
+  ['bpressed_22',['bPressed',['../structolc_1_1_h_w_button.html#a0c379d6a109299fc0a1c872ebbb2f4d9',1,'olc::HWButton']]],
+  ['breleased_23',['bReleased',['../structolc_1_1_h_w_button.html#a2576b36bdf00033f78fa1cdcabfa2a00',1,'olc::HWButton']]],
+  ['bshow_24',['bShow',['../structolc_1_1_layer_desc.html#aeb19896b6a82e301769bfd9d5aa053b6',1,'olc::LayerDesc']]],
+  ['bupdate_25',['bUpdate',['../structolc_1_1_layer_desc.html#a5239ecc59495acca81a03e8783d9b873',1,'olc::LayerDesc']]]
+];
diff --git a/doxy/html/search/all_3.html b/doxy/html/search/all_3.html
new file mode 100644
index 0000000000000000000000000000000000000000..2e31ab9110e15dca1aa1211204b9de5d1435c57d
--- /dev/null
+++ b/doxy/html/search/all_3.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_3.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doxy/html/search/all_3.js b/doxy/html/search/all_3.js
new file mode 100644
index 0000000000000000000000000000000000000000..2ede1d79f227191f51c85558ec094edc165047c1
--- /dev/null
+++ b/doxy/html/search/all_3.js
@@ -0,0 +1,32 @@
+var searchData=
+[
+  ['c_26',['C',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7aaa5fe91e0948a39a142504c1f9067549',1,'olc']]],
+  ['canberemoved_27',['canBeRemoved',['../classentities_1_1_entity.html#a59426fe1b7dcefe96a0a748250724ff6',1,'entities::Entity::canBeRemoved()'],['../classentities_1_1_explosive_projectile.html#a8b075196a23aed5116e885709b64d583',1,'entities::ExplosiveProjectile::canBeRemoved()'],['../classweapons_1_1_weapon.html#aaf97827d27191b7b437ef1be96d6ac2c',1,'weapons::Weapon::canBeRemoved()']]],
+  ['caps_5flock_28',['CAPS_LOCK',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a523c88e17275650861203e32067dde01',1,'olc']]],
+  ['ceil_29',['ceil',['../structolc_1_1v2d__generic.html#a65efb6611304b590a2cb45781b1c34cc',1,'olc::v2d_generic']]],
+  ['characterentity_30',['CharacterEntity',['../classentities_1_1_character_entity.html',1,'entities::CharacterEntity'],['../classentities_1_1_character_entity.html#aa7c43269834b07ef51355a874be373e8',1,'entities::CharacterEntity::CharacterEntity()']]],
+  ['characterentity_2ecpp_31',['CharacterEntity.cpp',['../_character_entity_8cpp.html',1,'']]],
+  ['characterentity_2eh_32',['CharacterEntity.h',['../_character_entity_8h.html',1,'']]],
+  ['charactertexture_33',['CharacterTexture',['../classrender_1_1_character_texture.html',1,'render::CharacterTexture'],['../classrender_1_1_character_texture.html#a0e5cb130b98e46c9de43e274ca206d1b',1,'render::CharacterTexture::CharacterTexture()']]],
+  ['charactertexture_2ecpp_34',['CharacterTexture.cpp',['../_character_texture_8cpp.html',1,'']]],
+  ['charactertexture_2eh_35',['CharacterTexture.h',['../_character_texture_8h.html',1,'']]],
+  ['clear_36',['Clear',['../classolc_1_1_pixel_game_engine.html#aeb70b40809815fab4e1017e25c7ab161',1,'olc::PixelGameEngine']]],
+  ['clearbuffer_37',['ClearBuffer',['../classolc_1_1_renderer.html#a921406bc341efd881ca510c64cebdc26',1,'olc::Renderer::ClearBuffer()'],['../classolc_1_1_pixel_game_engine.html#aed9a3f6bd349e091728a329ee42932bf',1,'olc::PixelGameEngine::ClearBuffer()']]],
+  ['collisionoffset_38',['collisionOffset',['../classentities_1_1_living_entity.html#a07a7d7f7e43f2140e3e6337322f78224',1,'entities::LivingEntity']]],
+  ['comma_39',['COMMA',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ae2fab0c220f54cd28729c9340951ecb4',1,'olc']]],
+  ['construct_40',['Construct',['../classolc_1_1_pixel_game_engine.html#af1a9cf3b38dda2071b7ec18868ee1ccd',1,'olc::PixelGameEngine']]],
+  ['cooldown_41',['cooldown',['../classweapons_1_1_weapon.html#aa3529d6c0160f61132fc7bb1b9284a02',1,'weapons::Weapon']]],
+  ['cooldowntime_42',['cooldownTime',['../classweapons_1_1_weapon.html#aa3d78dae766eee8279326026dbb46f1f',1,'weapons::Weapon']]],
+  ['create_43',['Create',['../classolc_1_1_renderable.html#ab15a4441be7b48519d55296e416976fd',1,'olc::Renderable']]],
+  ['createdevice_44',['CreateDevice',['../classolc_1_1_renderer.html#a28c87db87f8fd9b0f356db5d01499992',1,'olc::Renderer']]],
+  ['creategraphics_45',['CreateGraphics',['../classolc_1_1_platform.html#a2e951cdc0d8fd9bb68f05b33f1fd0450',1,'olc::Platform']]],
+  ['createinstance_46',['createInstance',['../classrender_1_1_resource_manager.html#abdb364e2b932233c873a98a1b5c03d2a',1,'render::ResourceManager']]],
+  ['createlayer_47',['CreateLayer',['../classolc_1_1_pixel_game_engine.html#ae15ffa0503e2893aad7001aa2f5769b7',1,'olc::PixelGameEngine']]],
+  ['createtexture_48',['CreateTexture',['../classolc_1_1_renderer.html#aeac898aaf282d09a9cd848303de57bea',1,'olc::Renderer']]],
+  ['createwindowpane_49',['CreateWindowPane',['../classolc_1_1_platform.html#a4966327ca7d5ff2b855b3a4eaf0f88f2',1,'olc::Platform']]],
+  ['cross_50',['cross',['../structolc_1_1v2d__generic.html#a1febe5d22672d7d0121526577bf3b535',1,'olc::v2d_generic']]],
+  ['crystalbow_51',['crystalBow',['../namespaceweapons_1_1textures.html#a2f33f64b881c4028086431f8ba0fe1c5',1,'weapons::textures']]],
+  ['ctrl_52',['CTRL',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ae7e6e69075c36b0e44309aae888b86dc',1,'olc']]],
+  ['custom_53',['CUSTOM',['../structolc_1_1_pixel.html#ae9012164940526ddb09b217dbbddfd65aed57164e9f056c1af912b3069eb45deb',1,'olc::Pixel']]],
+  ['cyan_54',['CYAN',['../namespaceolc.html#a43ffa41e9a4a260b86da82b823e6a252',1,'olc']]]
+];
diff --git a/doxy/html/search/all_4.html b/doxy/html/search/all_4.html
new file mode 100644
index 0000000000000000000000000000000000000000..0540c1633667640a85c5293a40f55989a1d78781
--- /dev/null
+++ b/doxy/html/search/all_4.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_4.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doxy/html/search/all_4.js b/doxy/html/search/all_4.js
new file mode 100644
index 0000000000000000000000000000000000000000..04de20c258c75d76bf86612b5c94caad22dbfc86
--- /dev/null
+++ b/doxy/html/search/all_4.js
@@ -0,0 +1,54 @@
+var searchData=
+[
+  ['d_55',['D',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a7323455add036f066f8b23546f0c37bb',1,'olc']]],
+  ['damage_56',['damage',['../classentities_1_1_entity.html#af7fc9949fc50b1b31abb36a3d51b0597',1,'entities::Entity::damage()'],['../classentities_1_1_entity_with_a_i.html#a49a1c8a8ec1a318f65007d54173c3d37',1,'entities::EntityWithAI::damage()'],['../classentities_1_1_living_entity.html#a28d31eff59137171da3e23a8e3ef9c1c',1,'entities::LivingEntity::damage()'],['../classentities_1_1_player_entity.html#ab654524e0ad7ba5a9b1b590794d347f2',1,'entities::PlayerEntity::damage()'],['../classentities_1_1_projectile_entity.html#a723e706e6421504ce9c6d70d77561215',1,'entities::ProjectileEntity::damage()'],['../classweapons_1_1_typical_melee_weapon.html#a00287ced5e67a7f91423596fac46606b',1,'weapons::TypicalMeleeWeapon::damage()'],['../classentities_1_1_wall_entity.html#a0cd908003450361a7c08d2c7c83d21dc',1,'entities::WallEntity::damage()'],['../classweapons_1_1_weapon.html#a397c372ffe2838f7c9c1ce67c06e55a9',1,'weapons::Weapon::damage()']]],
+  ['damageentity_57',['damageEntity',['../classweapons_1_1_melee_weapon.html#a6938e2705c6353b4b2782e8a4186de17',1,'weapons::MeleeWeapon']]],
+  ['damageif_58',['damageIf',['../classweapons_1_1_melee_weapon.html#a59a5b959539d2c71605c1b6fbec3111b',1,'weapons::MeleeWeapon']]],
+  ['damagevalue_59',['damageValue',['../classentities_1_1_projectile_entity.html#ad4325b9194e4c76e68f27857226eefd8',1,'entities::ProjectileEntity']]],
+  ['dark_5fblue_60',['DARK_BLUE',['../namespaceolc.html#ac6e041f71287438da8b9145758c4fe63',1,'olc']]],
+  ['dark_5fcyan_61',['DARK_CYAN',['../namespaceolc.html#aa0824f5fdd85c58712495a7bc0de191e',1,'olc']]],
+  ['dark_5fgreen_62',['DARK_GREEN',['../namespaceolc.html#ac192218acb2f30c4c3748485dd5e4ba0',1,'olc']]],
+  ['dark_5fgrey_63',['DARK_GREY',['../namespaceolc.html#a7208a6ce62e94eca5b0ba80f7c2f5e30',1,'olc']]],
+  ['dark_5fmagenta_64',['DARK_MAGENTA',['../namespaceolc.html#abad91f58a178a173f76ce7d9f9aa99c4',1,'olc']]],
+  ['dark_5fred_65',['DARK_RED',['../namespaceolc.html#a8265396ef812918ca95d2e7aa39c14cc',1,'olc']]],
+  ['dark_5fyellow_66',['DARK_YELLOW',['../namespaceolc.html#a379f9d3a40edb1700299c031cd0b6a08',1,'olc']]],
+  ['decal_67',['Decal',['../classolc_1_1_decal.html',1,'olc::Decal'],['../structolc_1_1_decal_instance.html#ad01bc9806792469d91ee0b5736058e7e',1,'olc::DecalInstance::decal()'],['../classolc_1_1_decal.html#a5479fee995f05355026dafd8cadcac88',1,'olc::Decal::Decal(olc::Sprite *spr, bool filter=false, bool clamp=true)'],['../classolc_1_1_decal.html#ade1e337e839cd254603e4d061c219cc5',1,'olc::Decal::Decal(const uint32_t nExistingTextureResource, olc::Sprite *spr)'],['../classolc_1_1_renderable.html#af6e5a2d5a46fe4f475c67ca5ab1b1f5d',1,'olc::Renderable::Decal()']]],
+  ['decalinstance_68',['DecalInstance',['../structolc_1_1_decal_instance.html',1,'olc']]],
+  ['decalmode_69',['DecalMode',['../namespaceolc.html#aeda642f63378f868193c28e8613138ca',1,'olc']]],
+  ['del_70',['DEL',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a5a979509d792ab38404b7a2aca12c981',1,'olc']]],
+  ['deletetexture_71',['DeleteTexture',['../classolc_1_1_renderer.html#aec8e86eb7a104fb0bc8f9fe51318f1a0',1,'olc::Renderer']]],
+  ['destroydevice_72',['DestroyDevice',['../classolc_1_1_renderer.html#a3a59a195cc380f89e5f9cc98b6fda2c7',1,'olc::Renderer']]],
+  ['displayframe_73',['DisplayFrame',['../classolc_1_1_renderer.html#a660f3ca709b2a2fcec1d1cba1a4cfd18',1,'olc::Renderer']]],
+  ['dot_74',['dot',['../structolc_1_1v2d__generic.html#ad2e96c716c487677bbde6966464fc482',1,'olc::v2d_generic']]],
+  ['down_75',['DOWN',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a506f2ec576fcd3a8fabd37461bba83f8',1,'olc']]],
+  ['draw_76',['Draw',['../classolc_1_1_transformed_view.html#a09a214f47f9e4f5e85a8d3bd224ab9b1',1,'olc::TransformedView::Draw(float x, float y, olc::Pixel p=olc::WHITE)'],['../classolc_1_1_transformed_view.html#a2509ea7aa54013b9b0caa7a265818511',1,'olc::TransformedView::Draw(const olc::vf2d &amp;pos, olc::Pixel p=olc::WHITE)'],['../classolc_1_1_pixel_game_engine.html#a95ab046b4b0843565bddd0e009a25569',1,'olc::PixelGameEngine::Draw(int32_t x, int32_t y, Pixel p=olc::WHITE)'],['../classolc_1_1_pixel_game_engine.html#ad7bd70d2c3d0bc5bbb0991fa4695a4e9',1,'olc::PixelGameEngine::Draw(const olc::vi2d &amp;pos, Pixel p=olc::WHITE)']]],
+  ['drawcircle_77',['DrawCircle',['../classolc_1_1_transformed_view.html#abbf0590764bbacdd35a4d0adc6e69b84',1,'olc::TransformedView::DrawCircle(float x, float y, float radius, olc::Pixel p=olc::WHITE, uint8_t mask=0xFF)'],['../classolc_1_1_transformed_view.html#aa7edb61f256624bad3e5d5847f0eef88',1,'olc::TransformedView::DrawCircle(const olc::vf2d &amp;pos, float radius, olc::Pixel p=olc::WHITE, uint8_t mask=0xFF)'],['../classolc_1_1_pixel_game_engine.html#a2ce3e34fd633acdc22b8dc2c8d25f86c',1,'olc::PixelGameEngine::DrawCircle(int32_t x, int32_t y, int32_t radius, Pixel p=olc::WHITE, uint8_t mask=0xFF)'],['../classolc_1_1_pixel_game_engine.html#a0016377c9188719462724f523b3a6334',1,'olc::PixelGameEngine::DrawCircle(const olc::vi2d &amp;pos, int32_t radius, Pixel p=olc::WHITE, uint8_t mask=0xFF)']]],
+  ['drawdecal_78',['DrawDecal',['../classolc_1_1_transformed_view.html#a8bad23f424184f2e15f32deb7f179160',1,'olc::TransformedView::DrawDecal()'],['../classolc_1_1_renderer.html#ac567df937350bffb2eae3e647ccc10d5',1,'olc::Renderer::DrawDecal()'],['../classolc_1_1_pixel_game_engine.html#a5b676590555cab61db67804417c6f25f',1,'olc::PixelGameEngine::DrawDecal()']]],
+  ['drawexplicitdecal_79',['DrawExplicitDecal',['../classolc_1_1_transformed_view.html#ac133c5f498e18dc4bcf6a087c7f8b356',1,'olc::TransformedView::DrawExplicitDecal()'],['../classolc_1_1_pixel_game_engine.html#a26d7073d87bb19f15d5ade6bb58e8e2d',1,'olc::PixelGameEngine::DrawExplicitDecal()']]],
+  ['drawlayerquad_80',['DrawLayerQuad',['../classolc_1_1_renderer.html#a3eccca504615e72d1f40acd03ffce89f',1,'olc::Renderer']]],
+  ['drawline_81',['DrawLine',['../classolc_1_1_transformed_view.html#a2564b30474cab1de208a9b220ddbc181',1,'olc::TransformedView::DrawLine(float x1, float y1, float x2, float y2, olc::Pixel p=olc::WHITE, uint32_t pattern=0xFFFFFFFF)'],['../classolc_1_1_transformed_view.html#a60a961188fe9a5cb60258c1b4d8cf498',1,'olc::TransformedView::DrawLine(const olc::vf2d &amp;pos1, const olc::vf2d &amp;pos2, olc::Pixel p=olc::WHITE, uint32_t pattern=0xFFFFFFFF)'],['../classolc_1_1_pixel_game_engine.html#a131877968123c843374f079814503d22',1,'olc::PixelGameEngine::DrawLine(int32_t x1, int32_t y1, int32_t x2, int32_t y2, Pixel p=olc::WHITE, uint32_t pattern=0xFFFFFFFF)'],['../classolc_1_1_pixel_game_engine.html#ac24457d32db7d8acf0661c6de57be7a8',1,'olc::PixelGameEngine::DrawLine(const olc::vi2d &amp;pos1, const olc::vi2d &amp;pos2, Pixel p=olc::WHITE, uint32_t pattern=0xFFFFFFFF)']]],
+  ['drawpartialdecal_82',['DrawPartialDecal',['../classolc_1_1_transformed_view.html#a1daefdb27499350eb3927c79ec60bca5',1,'olc::TransformedView::DrawPartialDecal(const olc::vf2d &amp;pos, olc::Decal *decal, const olc::vf2d &amp;source_pos, const olc::vf2d &amp;source_size, const olc::vf2d &amp;scale={ 1.0f, 1.0f }, const olc::Pixel &amp;tint=olc::WHITE)'],['../classolc_1_1_transformed_view.html#a03ef78202a55d896cd86eb16f39b8847',1,'olc::TransformedView::DrawPartialDecal(const olc::vf2d &amp;pos, const olc::vf2d &amp;size, olc::Decal *decal, const olc::vf2d &amp;source_pos, const olc::vf2d &amp;source_size, const olc::Pixel &amp;tint=olc::WHITE)'],['../classolc_1_1_pixel_game_engine.html#a8bae37cf84b215e9e0416f058241aeba',1,'olc::PixelGameEngine::DrawPartialDecal(const olc::vf2d &amp;pos, olc::Decal *decal, const olc::vf2d &amp;source_pos, const olc::vf2d &amp;source_size, const olc::vf2d &amp;scale={ 1.0f, 1.0f }, const olc::Pixel &amp;tint=olc::WHITE)'],['../classolc_1_1_pixel_game_engine.html#a1b757070353b8f9238c229e42d33bbb5',1,'olc::PixelGameEngine::DrawPartialDecal(const olc::vf2d &amp;pos, const olc::vf2d &amp;size, olc::Decal *decal, const olc::vf2d &amp;source_pos, const olc::vf2d &amp;source_size, const olc::Pixel &amp;tint=olc::WHITE)']]],
+  ['drawpartialrotateddecal_83',['DrawPartialRotatedDecal',['../classolc_1_1_transformed_view.html#a3f2574c761a0045641fd2f5f9b194184',1,'olc::TransformedView::DrawPartialRotatedDecal()'],['../classolc_1_1_pixel_game_engine.html#aad3107bbad34e5792a9a35629e1fdbd0',1,'olc::PixelGameEngine::DrawPartialRotatedDecal()']]],
+  ['drawpartialsprite_84',['DrawPartialSprite',['../classolc_1_1_transformed_view.html#a829557257985bb738baad577ed0ed7a0',1,'olc::TransformedView::DrawPartialSprite(float x, float y, Sprite *sprite, int32_t ox, int32_t oy, int32_t w, int32_t h, float scalex=1, float scaley=1, uint8_t flip=olc::Sprite::NONE)'],['../classolc_1_1_transformed_view.html#a0c6e1fb72399ec97e0dc093a2da80d50',1,'olc::TransformedView::DrawPartialSprite(const olc::vf2d &amp;pos, Sprite *sprite, const olc::vi2d &amp;sourcepos, const olc::vi2d &amp;size, const olc::vf2d &amp;scale={ 1.0f, 1.0f }, uint8_t flip=olc::Sprite::NONE)'],['../classolc_1_1_pixel_game_engine.html#ab777dd885946b2dba5e8bef894c6868c',1,'olc::PixelGameEngine::DrawPartialSprite(int32_t x, int32_t y, Sprite *sprite, int32_t ox, int32_t oy, int32_t w, int32_t h, uint32_t scale=1, uint8_t flip=olc::Sprite::NONE)'],['../classolc_1_1_pixel_game_engine.html#aecfcfec384cf4eb56ab89f92df4ff288',1,'olc::PixelGameEngine::DrawPartialSprite(const olc::vi2d &amp;pos, Sprite *sprite, const olc::vi2d &amp;sourcepos, const olc::vi2d &amp;size, uint32_t scale=1, uint8_t flip=olc::Sprite::NONE)']]],
+  ['drawpartialwarpeddecal_85',['DrawPartialWarpedDecal',['../classolc_1_1_transformed_view.html#a17bf0d6a35728abe95993ef5475aa767',1,'olc::TransformedView::DrawPartialWarpedDecal(olc::Decal *decal, const olc::vf2d(&amp;pos)[4], const olc::vf2d &amp;source_pos, const olc::vf2d &amp;source_size, const olc::Pixel &amp;tint=olc::WHITE)'],['../classolc_1_1_transformed_view.html#a88045b492c61288a7e5ca1eb164ad2fb',1,'olc::TransformedView::DrawPartialWarpedDecal(olc::Decal *decal, const olc::vf2d *pos, const olc::vf2d &amp;source_pos, const olc::vf2d &amp;source_size, const olc::Pixel &amp;tint=olc::WHITE)'],['../classolc_1_1_transformed_view.html#a624730b2582152c4cc49d457bc140859',1,'olc::TransformedView::DrawPartialWarpedDecal(olc::Decal *decal, const std::array&lt; olc::vf2d, 4 &gt; &amp;pos, const olc::vf2d &amp;source_pos, const olc::vf2d &amp;source_size, const olc::Pixel &amp;tint=olc::WHITE)'],['../classolc_1_1_pixel_game_engine.html#a78be0709345710435fdaef7bc14f5fb3',1,'olc::PixelGameEngine::DrawPartialWarpedDecal(olc::Decal *decal, const olc::vf2d(&amp;pos)[4], const olc::vf2d &amp;source_pos, const olc::vf2d &amp;source_size, const olc::Pixel &amp;tint=olc::WHITE)'],['../classolc_1_1_pixel_game_engine.html#a5993da382c8e661655386a41ae874270',1,'olc::PixelGameEngine::DrawPartialWarpedDecal(olc::Decal *decal, const olc::vf2d *pos, const olc::vf2d &amp;source_pos, const olc::vf2d &amp;source_size, const olc::Pixel &amp;tint=olc::WHITE)'],['../classolc_1_1_pixel_game_engine.html#aaccd68c61d88b13ffe1e93493f2a5b35',1,'olc::PixelGameEngine::DrawPartialWarpedDecal(olc::Decal *decal, const std::array&lt; olc::vf2d, 4 &gt; &amp;pos, const olc::vf2d &amp;source_pos, const olc::vf2d &amp;source_size, const olc::Pixel &amp;tint=olc::WHITE)']]],
+  ['drawpolygondecal_86',['DrawPolygonDecal',['../classolc_1_1_transformed_view.html#a0555577738d2edacb8b8e701d90804d7',1,'olc::TransformedView::DrawPolygonDecal()'],['../classolc_1_1_pixel_game_engine.html#a40a7754338ea7b388ffa2383958d1f0b',1,'olc::PixelGameEngine::DrawPolygonDecal()']]],
+  ['drawrect_87',['DrawRect',['../classolc_1_1_transformed_view.html#ab1578748552d35bff05e63dcfc79cfb9',1,'olc::TransformedView::DrawRect(float x, float y, float w, float h, olc::Pixel p=olc::WHITE)'],['../classolc_1_1_transformed_view.html#a2ce6891b49d600eacb32eef88f07b2e0',1,'olc::TransformedView::DrawRect(const olc::vf2d &amp;pos, const olc::vf2d &amp;size, olc::Pixel p=olc::WHITE)'],['../classolc_1_1_pixel_game_engine.html#a220f523e520e317f5656c4d3df777163',1,'olc::PixelGameEngine::DrawRect(int32_t x, int32_t y, int32_t w, int32_t h, Pixel p=olc::WHITE)'],['../classolc_1_1_pixel_game_engine.html#ac8536bf173a396cf78f952ab66fe6156',1,'olc::PixelGameEngine::DrawRect(const olc::vi2d &amp;pos, const olc::vi2d &amp;size, Pixel p=olc::WHITE)']]],
+  ['drawrotateddecal_88',['DrawRotatedDecal',['../classolc_1_1_transformed_view.html#a0d11f6c9ddf0cda25a7b6a79c39c61d6',1,'olc::TransformedView::DrawRotatedDecal()'],['../classolc_1_1_pixel_game_engine.html#ab9af9b6726271e83dd7e4b24583b4236',1,'olc::PixelGameEngine::DrawRotatedDecal()']]],
+  ['drawsprite_89',['DrawSprite',['../classolc_1_1_transformed_view.html#a0814eafdbf34c4570c08722998b3c936',1,'olc::TransformedView::DrawSprite(float x, float y, olc::Sprite *sprite, float scalex=1, float scaley=1, uint8_t flip=olc::Sprite::NONE)'],['../classolc_1_1_transformed_view.html#a44f1c98c6c6720338d7b6dcc9117cb03',1,'olc::TransformedView::DrawSprite(const olc::vf2d &amp;pos, olc::Sprite *sprite, const olc::vf2d &amp;scale={ 1.0f, 1.0f }, uint8_t flip=olc::Sprite::NONE)'],['../classolc_1_1_pixel_game_engine.html#a5bae460b03f2837e39fdee3a0bbb6f99',1,'olc::PixelGameEngine::DrawSprite(int32_t x, int32_t y, Sprite *sprite, uint32_t scale=1, uint8_t flip=olc::Sprite::NONE)'],['../classolc_1_1_pixel_game_engine.html#adcf00714f6f13ed5ad256e2102084177',1,'olc::PixelGameEngine::DrawSprite(const olc::vi2d &amp;pos, Sprite *sprite, uint32_t scale=1, uint8_t flip=olc::Sprite::NONE)']]],
+  ['drawstring_90',['DrawString',['../classolc_1_1_transformed_view.html#acf22577cab34db667d05eae0e38000e0',1,'olc::TransformedView::DrawString(float x, float y, const std::string &amp;sText, Pixel col, const olc::vf2d &amp;scale)'],['../classolc_1_1_transformed_view.html#ab8e4acce21674331d91910c7056c59a3',1,'olc::TransformedView::DrawString(const olc::vf2d &amp;pos, const std::string &amp;sText, const Pixel col, const olc::vf2d &amp;scale)'],['../classolc_1_1_pixel_game_engine.html#ac29d79dedde0b2187f9f9ccbbc33fd0b',1,'olc::PixelGameEngine::DrawString(int32_t x, int32_t y, const std::string &amp;sText, Pixel col=olc::WHITE, uint32_t scale=1)'],['../classolc_1_1_pixel_game_engine.html#ae099b13b38e5b02ffd31ad34a703cee5',1,'olc::PixelGameEngine::DrawString(const olc::vi2d &amp;pos, const std::string &amp;sText, Pixel col=olc::WHITE, uint32_t scale=1)']]],
+  ['drawstringdecal_91',['DrawStringDecal',['../classolc_1_1_transformed_view.html#a903ad811f1e3f99d8c6e35f1a1aaf9bf',1,'olc::TransformedView::DrawStringDecal()'],['../classolc_1_1_pixel_game_engine.html#a689d1828a93292702070b97fb14f5644',1,'olc::PixelGameEngine::DrawStringDecal()']]],
+  ['drawstringprop_92',['DrawStringProp',['../classolc_1_1_pixel_game_engine.html#a1ddca999be34411764bb12d2a15cc021',1,'olc::PixelGameEngine::DrawStringProp(int32_t x, int32_t y, const std::string &amp;sText, Pixel col=olc::WHITE, uint32_t scale=1)'],['../classolc_1_1_pixel_game_engine.html#a161ef8177257c371741d12cbc4818cf6',1,'olc::PixelGameEngine::DrawStringProp(const olc::vi2d &amp;pos, const std::string &amp;sText, Pixel col=olc::WHITE, uint32_t scale=1)']]],
+  ['drawstringpropdecal_93',['DrawStringPropDecal',['../classolc_1_1_transformed_view.html#afde48a1dc4946bfb3718c19bdf62b328',1,'olc::TransformedView::DrawStringPropDecal()'],['../classolc_1_1_pixel_game_engine.html#a7392273f15fc09b3659b112564aa0dfa',1,'olc::PixelGameEngine::DrawStringPropDecal()']]],
+  ['drawtriangle_94',['DrawTriangle',['../classolc_1_1_transformed_view.html#a6c818747c7fa97445fbb40c9f222e865',1,'olc::TransformedView::DrawTriangle(float x1, float y1, float x2, float y2, float x3, float y3, olc::Pixel p=olc::WHITE)'],['../classolc_1_1_transformed_view.html#a45a659d55d124e87e956e842963637fa',1,'olc::TransformedView::DrawTriangle(const olc::vf2d &amp;pos1, const olc::vf2d &amp;pos2, const olc::vf2d &amp;pos3, olc::Pixel p=olc::WHITE)'],['../classolc_1_1_pixel_game_engine.html#a2bddba9e808a8702f6af354007302c16',1,'olc::PixelGameEngine::DrawTriangle(int32_t x1, int32_t y1, int32_t x2, int32_t y2, int32_t x3, int32_t y3, Pixel p=olc::WHITE)'],['../classolc_1_1_pixel_game_engine.html#aafe21db2127f56670b5f5f089adced71',1,'olc::PixelGameEngine::DrawTriangle(const olc::vi2d &amp;pos1, const olc::vi2d &amp;pos2, const olc::vi2d &amp;pos3, Pixel p=olc::WHITE)']]],
+  ['drawwarpeddecal_95',['DrawWarpedDecal',['../classolc_1_1_transformed_view.html#a2c0e827b1182696275583059a1a72412',1,'olc::TransformedView::DrawWarpedDecal(olc::Decal *decal, const olc::vf2d(&amp;pos)[4], const olc::Pixel &amp;tint=olc::WHITE)'],['../classolc_1_1_transformed_view.html#a250badf6257c666f0e0a07ed3d86ad9e',1,'olc::TransformedView::DrawWarpedDecal(olc::Decal *decal, const olc::vf2d *pos, const olc::Pixel &amp;tint=olc::WHITE)'],['../classolc_1_1_transformed_view.html#a615fda4662913d6a1fc2764025c28efc',1,'olc::TransformedView::DrawWarpedDecal(olc::Decal *decal, const std::array&lt; olc::vf2d, 4 &gt; &amp;pos, const olc::Pixel &amp;tint=olc::WHITE)'],['../classolc_1_1_pixel_game_engine.html#a65098b403a403c45041599893429b550',1,'olc::PixelGameEngine::DrawWarpedDecal(olc::Decal *decal, const olc::vf2d(&amp;pos)[4], const olc::Pixel &amp;tint=olc::WHITE)'],['../classolc_1_1_pixel_game_engine.html#ae6cc4bd274522bf9ac36054eda6c95ac',1,'olc::PixelGameEngine::DrawWarpedDecal(olc::Decal *decal, const olc::vf2d *pos, const olc::Pixel &amp;tint=olc::WHITE)'],['../classolc_1_1_pixel_game_engine.html#a5174456bbdaace7cde233889f7ad6d72',1,'olc::PixelGameEngine::DrawWarpedDecal(olc::Decal *decal, const std::array&lt; olc::vf2d, 4 &gt; &amp;pos, const olc::Pixel &amp;tint=olc::WHITE)']]],
+  ['dummyentity_96',['DummyEntity',['../classentities_1_1_dummy_entity.html',1,'entities::DummyEntity'],['../classentities_1_1_dummy_entity.html#aa68ec40dca291f94607c943d7d50c34b',1,'entities::DummyEntity::DummyEntity()']]],
+  ['dummyentity_2ecpp_97',['DummyEntity.cpp',['../_dummy_entity_8cpp.html',1,'']]],
+  ['dummyentity_2eh_98',['DummyEntity.h',['../_dummy_entity_8h.html',1,'']]],
+  ['dungeongenerator_99',['DungeonGenerator',['../class_dungeon_generator.html',1,'']]],
+  ['dungeongenerator_2ecpp_100',['DungeonGenerator.cpp',['../_dungeon_generator_8cpp.html',1,'']]],
+  ['dungeongenerator_2eh_101',['DungeonGenerator.h',['../_dungeon_generator_8h.html',1,'']]],
+  ['duplicate_102',['Duplicate',['../classolc_1_1_sprite.html#a0b9399ba5d6df0b481ab16d8c4a28ded',1,'olc::Sprite::Duplicate()'],['../classolc_1_1_sprite.html#ac4307f400438dad18b0720cc034bec0b',1,'olc::Sprite::Duplicate(const olc::vi2d &amp;vPos, const olc::vi2d &amp;vSize)']]],
+  ['dynamicarray_103',['DynamicArray',['../class_dynamic_array.html',1,'DynamicArray&lt; T &gt;'],['../class_dynamic_array.html#a7d42e6eaa66bab7c43f193e78d2d56a9',1,'DynamicArray::DynamicArray()']]],
+  ['dynamicarray_2ehpp_104',['DynamicArray.hpp',['../_dynamic_array_8hpp.html',1,'']]],
+  ['dynamicarray_3c_20std_3a_3ashared_5fptr_3c_20entities_3a_3aentity_20_3e_20_3e_105',['DynamicArray&lt; std::shared_ptr&lt; entities::Entity &gt; &gt;',['../class_dynamic_array.html',1,'']]]
+];
diff --git a/doxy/html/search/all_5.html b/doxy/html/search/all_5.html
new file mode 100644
index 0000000000000000000000000000000000000000..ebec30bfa22fc621c1ce2eb27563587ed8af689f
--- /dev/null
+++ b/doxy/html/search/all_5.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_5.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doxy/html/search/all_5.js b/doxy/html/search/all_5.js
new file mode 100644
index 0000000000000000000000000000000000000000..b77dc4b187c7b77081d7da91a9307dda3dda56fd
--- /dev/null
+++ b/doxy/html/search/all_5.js
@@ -0,0 +1,27 @@
+var searchData=
+[
+  ['e_106',['E',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ad29058aa6514f4f9dcdefdba93adc8ec',1,'olc']]],
+  ['emgun_107',['EMGun',['../classweapons_1_1_e_m_gun.html',1,'weapons::EMGun'],['../classweapons_1_1_ranged_weapon.html#acf33d7619066026e823986ec5ec51a97',1,'weapons::RangedWeapon::emgun()'],['../classweapons_1_1_e_m_gun.html#a39114a620affbf0d80d616cf4baf7e17',1,'weapons::EMGun::EMGun()']]],
+  ['emgun_2ecpp_108',['EMGun.cpp',['../_e_m_gun_8cpp.html',1,'']]],
+  ['emgun_2eh_109',['EMGun.h',['../_e_m_gun_8h.html',1,'']]],
+  ['enablelayer_110',['EnableLayer',['../classolc_1_1_pixel_game_engine.html#a1e3453e2a118596fa04a961f66c6fd46',1,'olc::PixelGameEngine']]],
+  ['end_111',['end',['../class_dynamic_array.html#ac316f2e7a1938687031cb5cc34df34cc',1,'DynamicArray::end()'],['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a53394a407c13bf8192b2946607d27a0f',1,'olc::END()']]],
+  ['endpan_112',['EndPan',['../classolc_1_1_transformed_view.html#a3edd680172e1ae5b710290ab58d617e0',1,'olc::TransformedView']]],
+  ['engineertexture_113',['EngineerTexture',['../classrender_1_1_character_texture.html#a86b8570b892ad9e076b0dcc98e0190c3',1,'render::CharacterTexture']]],
+  ['enter_114',['ENTER',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a31321cae06dfe0989acbbe94c5272b33',1,'olc']]],
+  ['entities_115',['entities',['../namespaceentities.html',1,'']]],
+  ['entity_116',['Entity',['../classentities_1_1_entity.html',1,'entities::Entity'],['../classentities_1_1_entity.html#a539ddef34b718b6068df421f316f4a6d',1,'entities::Entity::Entity()']]],
+  ['entity_2ecpp_117',['Entity.cpp',['../_entity_8cpp.html',1,'']]],
+  ['entity_2eh_118',['Entity.h',['../_entity_8h.html',1,'']]],
+  ['entitycollection_2ehpp_119',['EntityCollection.hpp',['../_entity_collection_8hpp.html',1,'']]],
+  ['entitywithai_120',['EntityWithAI',['../classentities_1_1_entity_with_a_i.html',1,'entities::EntityWithAI'],['../classentities_1_1_entity_with_a_i.html#aa8bfaebef1ce596fbd8d70b36362135b',1,'entities::EntityWithAI::EntityWithAI()']]],
+  ['entitywithai_2ecpp_121',['EntityWithAI.cpp',['../_entity_with_a_i_8cpp.html',1,'']]],
+  ['entitywithai_2eh_122',['EntityWithAI.h',['../_entity_with_a_i_8h.html',1,'']]],
+  ['enum_5fend_123',['ENUM_END',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a35430b793d6fae00ed8b060cb0accf32',1,'olc']]],
+  ['equals_124',['EQUALS',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7aa82c0ef0b75db6208407e90f6f77f002',1,'olc']]],
+  ['escape_125',['ESCAPE',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ac58fbe549b8c1a668c42a17d9e572b0f',1,'olc']]],
+  ['explosionradius_126',['explosionRadius',['../_explosive_projectile_8cpp.html#a5eca5e4f5f408cb99671021a490cfac4',1,'ExplosiveProjectile.cpp']]],
+  ['explosiveprojectile_127',['ExplosiveProjectile',['../classentities_1_1_explosive_projectile.html',1,'entities::ExplosiveProjectile'],['../classentities_1_1_explosive_projectile.html#ae80625e2530015d21b963ec219be758e',1,'entities::ExplosiveProjectile::ExplosiveProjectile()']]],
+  ['explosiveprojectile_2ecpp_128',['ExplosiveProjectile.cpp',['../_explosive_projectile_8cpp.html',1,'']]],
+  ['explosiveprojectile_2eh_129',['ExplosiveProjectile.h',['../_explosive_projectile_8h.html',1,'']]]
+];
diff --git a/doxy/html/search/all_6.html b/doxy/html/search/all_6.html
new file mode 100644
index 0000000000000000000000000000000000000000..31cbd052ed6a57125164ff3f3bc6270e9b8af261
--- /dev/null
+++ b/doxy/html/search/all_6.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_6.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doxy/html/search/all_6.js b/doxy/html/search/all_6.js
new file mode 100644
index 0000000000000000000000000000000000000000..baf1117b0d7c0edb67455896aee773591b616c64
--- /dev/null
+++ b/doxy/html/search/all_6.js
@@ -0,0 +1,25 @@
+var searchData=
+[
+  ['f_130',['F',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a614698cb99af6a9effa5d7ce88b2c674',1,'olc']]],
+  ['f1_131',['F1',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a17a119da4c7fd21cd061972ac8f8029a',1,'olc']]],
+  ['f10_132',['F10',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7abe90f6618beb39117690b93a5c9d8ccb',1,'olc']]],
+  ['f11_133',['F11',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7aba366840d455651d4cedc7f7ee4c770b',1,'olc']]],
+  ['f12_134',['F12',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a9bc869632cc0095b7d8e456efd571969',1,'olc']]],
+  ['f2_135',['F2',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a207c1404adcacfadf941ffc681485026',1,'olc']]],
+  ['f3_136',['F3',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a573a484680114e221c1a3ecd8307d61a',1,'olc']]],
+  ['f4_137',['F4',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a3c808be2b8b226138090bb3884bdc52b',1,'olc']]],
+  ['f5_138',['F5',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ab9dd7de33e89c10afa7947bc5ff6fdea',1,'olc']]],
+  ['f6_139',['F6',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a12e4309f479cd3e34476ef3be7986847',1,'olc']]],
+  ['f7_140',['F7',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ac955ad4fdd41f4d3600b29da016fdf36',1,'olc']]],
+  ['f8_141',['F8',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ab9ff66b449c18ecdb5b83a2e055e393b',1,'olc']]],
+  ['f9_142',['F9',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a2f2949bdd6d44b3c918531ebc30d8186',1,'olc']]],
+  ['fail_143',['FAIL',['../namespaceolc.html#a3d40e9b1c005602550230690b55ae87baadc8ac6e9769db5bb290fbf5f8284dbf',1,'olc']]],
+  ['fillcircle_144',['FillCircle',['../classolc_1_1_transformed_view.html#afd3f4dffe3a2fffaed2fd6c84e40ce23',1,'olc::TransformedView::FillCircle(float x, float y, float radius, olc::Pixel p=olc::WHITE)'],['../classolc_1_1_transformed_view.html#a8d8559f74de40982e41f9cab0577b3b9',1,'olc::TransformedView::FillCircle(const olc::vf2d &amp;pos, float radius, olc::Pixel p=olc::WHITE)'],['../classolc_1_1_pixel_game_engine.html#a483f56606fbbf3ab4850554491a853bd',1,'olc::PixelGameEngine::FillCircle(int32_t x, int32_t y, int32_t radius, Pixel p=olc::WHITE)'],['../classolc_1_1_pixel_game_engine.html#a169b1c8ca3116ac2338785b8ffe87954',1,'olc::PixelGameEngine::FillCircle(const olc::vi2d &amp;pos, int32_t radius, Pixel p=olc::WHITE)']]],
+  ['fillrect_145',['FillRect',['../classolc_1_1_transformed_view.html#a2f12ada82c7262a2e29572cfded60f02',1,'olc::TransformedView::FillRect(float x, float y, float w, float h, olc::Pixel p=olc::WHITE)'],['../classolc_1_1_transformed_view.html#abc3071fe6fa5f9ca4c5fe227a335df54',1,'olc::TransformedView::FillRect(const olc::vf2d &amp;pos, const olc::vf2d &amp;size, olc::Pixel p=olc::WHITE)'],['../classolc_1_1_pixel_game_engine.html#a6b5e218bb4360f27a470f9e821721331',1,'olc::PixelGameEngine::FillRect(int32_t x, int32_t y, int32_t w, int32_t h, Pixel p=olc::WHITE)'],['../classolc_1_1_pixel_game_engine.html#ae225f7027e20fe0f45a8190a992981cc',1,'olc::PixelGameEngine::FillRect(const olc::vi2d &amp;pos, const olc::vi2d &amp;size, Pixel p=olc::WHITE)']]],
+  ['fillrectdecal_146',['FillRectDecal',['../classolc_1_1_transformed_view.html#a82f6eeb19d315324c160aa78fd2ead70',1,'olc::TransformedView::FillRectDecal()'],['../classolc_1_1_pixel_game_engine.html#a02a26bca44e04f075f517bdae6ac0e9d',1,'olc::PixelGameEngine::FillRectDecal()']]],
+  ['filltriangle_147',['FillTriangle',['../classolc_1_1_transformed_view.html#a5cba545151923f38fd5d87b2c130a894',1,'olc::TransformedView::FillTriangle(float x1, float y1, float x2, float y2, float x3, float y3, olc::Pixel p=olc::WHITE)'],['../classolc_1_1_transformed_view.html#a023149966b61d7f233898c2b4372d018',1,'olc::TransformedView::FillTriangle(const olc::vf2d &amp;pos1, const olc::vf2d &amp;pos2, const olc::vf2d &amp;pos3, olc::Pixel p=olc::WHITE)'],['../classolc_1_1_pixel_game_engine.html#ad31abffe6c4d0b864b8f7762c33b7a7d',1,'olc::PixelGameEngine::FillTriangle(int32_t x1, int32_t y1, int32_t x2, int32_t y2, int32_t x3, int32_t y3, Pixel p=olc::WHITE)'],['../classolc_1_1_pixel_game_engine.html#a091224d5937210726d25c8cdeb4a951e',1,'olc::PixelGameEngine::FillTriangle(const olc::vi2d &amp;pos1, const olc::vi2d &amp;pos2, const olc::vi2d &amp;pos3, Pixel p=olc::WHITE)']]],
+  ['finalizeadd_148',['finalizeAdd',['../class_dynamic_array.html#a180959557f211bf3fcdf5e26b7cb67ab',1,'DynamicArray']]],
+  ['flip_149',['Flip',['../classolc_1_1_sprite.html#ad0d1976d2060997f5cd99eb284a5dc24',1,'olc::Sprite']]],
+  ['floor_150',['floor',['../structolc_1_1v2d__generic.html#affe50148d448ff75c298da3a1fd45323',1,'olc::v2d_generic']]],
+  ['funchook_151',['funcHook',['../structolc_1_1_layer_desc.html#a3ed4e651cce6277ab5b75ab1a9b05765',1,'olc::LayerDesc']]]
+];
diff --git a/doxy/html/search/all_7.html b/doxy/html/search/all_7.html
new file mode 100644
index 0000000000000000000000000000000000000000..18c555de264a7eaab630641f00b2f666e2d8e641
--- /dev/null
+++ b/doxy/html/search/all_7.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_7.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doxy/html/search/all_7.js b/doxy/html/search/all_7.js
new file mode 100644
index 0000000000000000000000000000000000000000..e459c5c07000c56197e33f1dbc8a20277a35a788
--- /dev/null
+++ b/doxy/html/search/all_7.js
@@ -0,0 +1,71 @@
+var searchData=
+[
+  ['g_152',['g',['../structolc_1_1_pixel.html#a14cf5612284974c409f078944fe5f6ee',1,'olc::Pixel::g()'],['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a1a7a9ef9ded3ee4bb7b7e4fbc69ae4b8',1,'olc::G()']]],
+  ['game_2ecpp_153',['game.cpp',['../game_8cpp.html',1,'']]],
+  ['gameclient_154',['GameClient',['../class_game_client.html',1,'GameClient'],['../class_game_client.html#a1324a20c121e201e69391dfe7a08e546',1,'GameClient::GameClient()']]],
+  ['gameexception_155',['GameException',['../class_game_exception.html',1,'GameException'],['../class_game_exception.html#a076a7dd5228356c8d54dd0922d1c3048',1,'GameException::GameException()']]],
+  ['gameexception_2ecpp_156',['GameException.cpp',['../_game_exception_8cpp.html',1,'']]],
+  ['gameexception_2eh_157',['GameException.h',['../_game_exception_8h.html',1,'']]],
+  ['generate_158',['generate',['../class_dungeon_generator.html#add8fcec4f013307d734616106110a1ea',1,'DungeonGenerator::generate()'],['../class_square_room_generator.html#a5b9952abf9af7a8fc4241f3f9e93a616',1,'SquareRoomGenerator::generate()'],['../class_test_generator.html#aaacdd82f39d99e1dcbc847b674f245e1',1,'TestGenerator::generate()']]],
+  ['getanimphase_159',['getAnimPhase',['../classentities_1_1_living_entity.html#a657626746aaed854f45ac3bb6d6c2a2f',1,'entities::LivingEntity']]],
+  ['getbottomrighttile_160',['GetBottomRightTile',['../classolc_1_1_tile_transformed_view.html#af681fe11952b2a791a388c79054adc1f',1,'olc::TileTransformedView']]],
+  ['getcollision_161',['getCollision',['../classentities_1_1_entity.html#a94d18db8d502d677b6f4215dc1e1d820',1,'entities::Entity']]],
+  ['getcooldownbar_162',['getCooldownBar',['../classweapons_1_1_weapon.html#a9626ba57d509b1ee0fbe7f900d5181c6',1,'weapons::Weapon']]],
+  ['getdamage_163',['getDamage',['../classweapons_1_1_melee_weapon.html#a2636c0b628f8fa52d269bb2dab0b21bd',1,'weapons::MeleeWeapon::getDamage()'],['../classentities_1_1_projectile_entity.html#a463a54543d8412feddf3be0aa7ab532a',1,'entities::ProjectileEntity::getDamage()']]],
+  ['getdata_164',['GetData',['../classolc_1_1_sprite.html#ad8fcc6bbf8a785aa0bb9d00bf3cfdff2',1,'olc::Sprite']]],
+  ['getdecal_165',['getDecal',['../classrender_1_1_lazy_sprite.html#aea6cdfcf5295c8a2c4b3f4a51ee0bc28',1,'render::LazySprite::getDecal()'],['../classrender_1_1_resource_manager.html#a58cd141c758a19c7a04b33742de422f8',1,'render::ResourceManager::getDecal()'],['../classrender_1_1_sprite_manager.html#ad40363b5fa66e08aec13f332c5964d6b',1,'render::SpriteManager::getDecal()']]],
+  ['getdirection_166',['getDirection',['../classentities_1_1_living_entity.html#a27f39311f1139c96967b28cbaf752bd2',1,'entities::LivingEntity']]],
+  ['getdrawtarget_167',['GetDrawTarget',['../classolc_1_1_pixel_game_engine.html#a5fd95bd9571bc3ed3fd5d7d110e48cff',1,'olc::PixelGameEngine']]],
+  ['getdrawtargetheight_168',['GetDrawTargetHeight',['../classolc_1_1_pixel_game_engine.html#a4ee3dbff01900d71e62bfe499b1c83c3',1,'olc::PixelGameEngine']]],
+  ['getdrawtargetwidth_169',['GetDrawTargetWidth',['../classolc_1_1_pixel_game_engine.html#a45d918f65f5fee13e654878d8271326b',1,'olc::PixelGameEngine']]],
+  ['getelapsedtime_170',['GetElapsedTime',['../classolc_1_1_pixel_game_engine.html#af881473291c52d849dbef155e359b27c',1,'olc::PixelGameEngine']]],
+  ['getentities_171',['getEntities',['../class_game_client.html#a6984da0365fd19c81dbc8907b598bf49',1,'GameClient']]],
+  ['getfilebuffer_172',['GetFileBuffer',['../classolc_1_1_resource_pack.html#accb89668e145dc59e0740925b1b91987',1,'olc::ResourcePack']]],
+  ['getfontsprite_173',['GetFontSprite',['../classolc_1_1_pixel_game_engine.html#abab955edc6d1ec6023a7806509582f52',1,'olc::PixelGameEngine']]],
+  ['getfps_174',['GetFPS',['../classolc_1_1_pixel_game_engine.html#a89d27938d71d49b42a20307444147697',1,'olc::PixelGameEngine']]],
+  ['gethealthstatus_175',['getHealthStatus',['../classentities_1_1_player_entity.html#ab4a5cd2af67538f73832668a2cd32c9f',1,'entities::PlayerEntity']]],
+  ['gethitboxsize_176',['getHitBoxSize',['../classentities_1_1_entity.html#a9cd7ba81ddbd978b8f43e9f10e97492f',1,'entities::Entity::getHitBoxSize()'],['../classentities_1_1_living_entity.html#aa965d3922663b974dd14cc5f8004ed65',1,'entities::LivingEntity::getHitBoxSize()'],['../classentities_1_1_projectile_entity.html#ae38525094695db8ab564c5ae27711bb4',1,'entities::ProjectileEntity::getHitBoxSize()'],['../classweapons_1_1_typical_melee_weapon.html#ab60f5d99ae206d9064381b0c70b9a7a2',1,'weapons::TypicalMeleeWeapon::getHitBoxSize()'],['../classentities_1_1_wall_entity.html#afd4863a311190a59cdf7574798ac3f2d',1,'entities::WallEntity::getHitBoxSize()'],['../classweapons_1_1_weapon.html#a862bd61cf947a91809b423304885cf66',1,'weapons::Weapon::getHitBoxSize()']]],
+  ['gethitoffset_177',['getHitOffset',['../classweapons_1_1_melee_weapon.html#ac6a6b662df60c1927531fddf9a93ebaa',1,'weapons::MeleeWeapon::getHitOffset()'],['../classweapons_1_1_typical_melee_weapon.html#a74cb37d45c599296e443858b73cd1d97',1,'weapons::TypicalMeleeWeapon::getHitOffset()']]],
+  ['getinstance_178',['getInstance',['../class_game_client.html#adfcb979db6333b335dee4e6d785aabcf',1,'GameClient']]],
+  ['getkey_179',['GetKey',['../classolc_1_1_pixel_game_engine.html#a27cb4cb68d5e1ca7df8014d66221269e',1,'olc::PixelGameEngine']]],
+  ['getlayers_180',['GetLayers',['../classolc_1_1_pixel_game_engine.html#aac31baad6daf55b926f6add9c44a5591',1,'olc::PixelGameEngine']]],
+  ['getmouse_181',['GetMouse',['../classolc_1_1_pixel_game_engine.html#abdf9f5d70c9e24ab9358a8dd07474105',1,'olc::PixelGameEngine']]],
+  ['getmousepos_182',['GetMousePos',['../classolc_1_1_pixel_game_engine.html#af11fb390dbc5a3168c26fe911690dcbe',1,'olc::PixelGameEngine']]],
+  ['getmousewheel_183',['GetMouseWheel',['../classolc_1_1_pixel_game_engine.html#a9640286e4a7cd03c6f545b1df7373269',1,'olc::PixelGameEngine']]],
+  ['getmousex_184',['GetMouseX',['../classolc_1_1_pixel_game_engine.html#a2ec1d2a1f3777338fb4388c620344a34',1,'olc::PixelGameEngine']]],
+  ['getmousey_185',['GetMouseY',['../classolc_1_1_pixel_game_engine.html#a8dde80c07547240f5e72b4f2fcd89668',1,'olc::PixelGameEngine']]],
+  ['getname_186',['getName',['../classentities_1_1_entity.html#a8c4b0c1eb69a673619e4c8943ef34f86',1,'entities::Entity']]],
+  ['getneighbourid_187',['getNeighbourID',['../classentities_1_1_wall_entity.html#af799f9675cdf4acadfcf9d9616d36e1b',1,'entities::WallEntity']]],
+  ['getpixel_188',['GetPixel',['../classolc_1_1_sprite.html#a7e1f8169c9822f1ed94f0212d3f8d6f6',1,'olc::Sprite::GetPixel(int32_t x, int32_t y) const'],['../classolc_1_1_sprite.html#a1a05e4ffd8d8b24b99ab511279b342cf',1,'olc::Sprite::GetPixel(const olc::vi2d &amp;a) const']]],
+  ['getpixelmode_189',['GetPixelMode',['../classolc_1_1_pixel_game_engine.html#ad4f95a449dc09a2650ec771e6fa83049',1,'olc::PixelGameEngine']]],
+  ['getpixelsize_190',['GetPixelSize',['../classolc_1_1_pixel_game_engine.html#a721fb4cfac75f76c6d5832415fccbe61',1,'olc::PixelGameEngine']]],
+  ['getplayerentity_191',['getPlayerEntity',['../class_game_client.html#acc1e0f1d4836be4a8556289cfdfd4049',1,'GameClient']]],
+  ['getpos_192',['getPos',['../classentities_1_1_entity.html#a799a692b988248dd23d207b95e7fe2b7',1,'entities::Entity']]],
+  ['getpredicator_193',['getPredicator',['../classweapons_1_1_melee_weapon.html#af14b624f27592421fc117c4fa81aba1b',1,'weapons::MeleeWeapon::getPredicator()'],['../classweapons_1_1_typical_melee_weapon.html#ad367f50efc891a92b0f22f2404f39c5e',1,'weapons::TypicalMeleeWeapon::getPredicator()']]],
+  ['getscene_194',['getScene',['../class_game_client.html#a01a0c559c6cfe63557fa4b5d7aa9e72c',1,'GameClient']]],
+  ['getscreenpixelsize_195',['GetScreenPixelSize',['../classolc_1_1_pixel_game_engine.html#a5602d50220bd7edbd77fc67eaa981ce5',1,'olc::PixelGameEngine']]],
+  ['getsecondarybar_196',['getSecondaryBar',['../classweapons_1_1_e_m_gun.html#a1d2c920f4fddd40d39dba5d4dddf496f',1,'weapons::EMGun::getSecondaryBar()'],['../classweapons_1_1_weapon.html#a3f84544c15d6220252c6175fdfe5c61d',1,'weapons::Weapon::getSecondaryBar()']]],
+  ['getsize_197',['getSize',['../class_dynamic_array.html#acbec0bb643ebec934cf5e9dfc1ecf01e',1,'DynamicArray::getSize()'],['../classentities_1_1_entity.html#ac60e9beb5a45fc65120e9779e680c04b',1,'entities::Entity::getSize()']]],
+  ['getsprite_198',['getSprite',['../classrender_1_1_resource_manager.html#a4ac8358921fdda1f37bf4564855f6fce',1,'render::ResourceManager']]],
+  ['gettextsize_199',['GetTextSize',['../classolc_1_1_pixel_game_engine.html#aa70121ffb85733f8ea2e7e5d0b4b311b',1,'olc::PixelGameEngine']]],
+  ['gettextsizeprop_200',['GetTextSizeProp',['../classolc_1_1_pixel_game_engine.html#ab282eddb9b8fe14d01311c8613f79e84',1,'olc::PixelGameEngine']]],
+  ['gettexture_201',['getTexture',['../classentities_1_1_character_entity.html#afdae03f49fd5d47d0837ed660e37038f',1,'entities::CharacterEntity::getTexture()'],['../classentities_1_1_entity.html#af01b796fb472ef3139aea41aeed36c76',1,'entities::Entity::getTexture()'],['../classentities_1_1_projectile_entity.html#a7e67fe629e1ef7115fd2a0cae8b1efc0',1,'entities::ProjectileEntity::getTexture()'],['../classentities_1_1_wall_entity.html#a4b6c55275f06a30dac07c2dc5452e602',1,'entities::WallEntity::getTexture()']]],
+  ['gettileoffset_202',['GetTileOffset',['../classolc_1_1_tile_transformed_view.html#afd338a68b965309beeefa3f239a0680b',1,'olc::TileTransformedView']]],
+  ['gettileunderscreenpos_203',['GetTileUnderScreenPos',['../classolc_1_1_tile_transformed_view.html#a1a963a55248ff021b76ecc8e92a555e6',1,'olc::TileTransformedView']]],
+  ['gettoplefttile_204',['GetTopLeftTile',['../classolc_1_1_tile_transformed_view.html#a9230a04b74c812551768b324a07bf2a3',1,'olc::TileTransformedView']]],
+  ['getvisibletiles_205',['GetVisibleTiles',['../classolc_1_1_tile_transformed_view.html#abc2e3898f7bb8209d84095cc5c16843b',1,'olc::TileTransformedView']]],
+  ['getweapon_206',['getWeapon',['../classentities_1_1_character_entity.html#a7926bfbac4481203c1bd8920fcb2c432',1,'entities::CharacterEntity::getWeapon()'],['../classentities_1_1_entity_with_a_i.html#a66937315f0a16d70c29359e89415d222',1,'entities::EntityWithAI::getWeapon()'],['../classentities_1_1_player_entity.html#a6b0fdc757c8e1d95012a31dab836f20a',1,'entities::PlayerEntity::getWeapon() override'],['../classentities_1_1_player_entity.html#a1759d4f054b70c3c57f0f66c03fe09bb',1,'entities::PlayerEntity::getWeapon() const']]],
+  ['getwindowmouse_207',['GetWindowMouse',['../classolc_1_1_pixel_game_engine.html#a54b5141da371af51541874dd68e4e6a2',1,'olc::PixelGameEngine']]],
+  ['getwindowsize_208',['GetWindowSize',['../classolc_1_1_pixel_game_engine.html#aee10e917aeb1ce4625561d71126e0a7d',1,'olc::PixelGameEngine']]],
+  ['getworldbr_209',['GetWorldBR',['../classolc_1_1_transformed_view.html#a5240bf2a7285559be13c80f3ce2a97a3',1,'olc::TransformedView']]],
+  ['getworldoffset_210',['GetWorldOffset',['../classolc_1_1_transformed_view.html#a88152a5f5b9fbb3df0f6d965ef4c4fe4',1,'olc::TransformedView']]],
+  ['getworldscale_211',['GetWorldScale',['../classolc_1_1_transformed_view.html#a4f6ba5d2c58b720677f4287743713f65',1,'olc::TransformedView']]],
+  ['getworldtl_212',['GetWorldTL',['../classolc_1_1_transformed_view.html#ac75bd045f9fbc5d8cd901ecdd216fcb5',1,'olc::TransformedView']]],
+  ['getworldvisiblearea_213',['GetWorldVisibleArea',['../classolc_1_1_transformed_view.html#a7f7815582a087a163199bb29f1c4c0ae',1,'olc::TransformedView']]],
+  ['glitchgun_214',['GlitchGun',['../classweapons_1_1_glitch_gun.html',1,'weapons::GlitchGun'],['../classweapons_1_1_glitch_gun.html#ac8935765613bfe258bc6985441159702',1,'weapons::GlitchGun::GlitchGun()'],['../namespaceweapons_1_1textures.html#ad763a6f6186015fe93af0a1e5088f026',1,'weapons::textures::glitchGun()']]],
+  ['glitchgun_2ecpp_215',['GlitchGun.cpp',['../_glitch_gun_8cpp.html',1,'']]],
+  ['glitchgun_2eh_216',['GlitchGun.h',['../_glitch_gun_8h.html',1,'']]],
+  ['glitchtexture_217',['GlitchTexture',['../classweapons_1_1_glitch_texture.html',1,'weapons::GlitchTexture'],['../classweapons_1_1_glitch_texture.html#a613747d0865e988631cb0f0213c54640',1,'weapons::GlitchTexture::GlitchTexture()']]],
+  ['gradientfillrectdecal_218',['GradientFillRectDecal',['../classolc_1_1_transformed_view.html#a220b8b9184eb25a6bb2c3271d5417025',1,'olc::TransformedView::GradientFillRectDecal()'],['../classolc_1_1_pixel_game_engine.html#a11d9ed8762b81e0bd6bbe4349255b1e8',1,'olc::PixelGameEngine::GradientFillRectDecal()']]],
+  ['green_219',['GREEN',['../namespaceolc.html#a32b98884f548bf731eab3225557ebe8c',1,'olc']]]
+];
diff --git a/doxy/html/search/all_8.html b/doxy/html/search/all_8.html
new file mode 100644
index 0000000000000000000000000000000000000000..0f9eb416d3d4fd623c0d60b4a99b4851ded23a93
--- /dev/null
+++ b/doxy/html/search/all_8.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_8.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doxy/html/search/all_8.js b/doxy/html/search/all_8.js
new file mode 100644
index 0000000000000000000000000000000000000000..78b4af6df5f349ac2af9bd179988ebc33c515e62
--- /dev/null
+++ b/doxy/html/search/all_8.js
@@ -0,0 +1,10 @@
+var searchData=
+[
+  ['h_220',['H',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a224c0773e09bdb7fb13683fbb4eeee1a',1,'olc']]],
+  ['handlesystemevent_221',['HandleSystemEvent',['../classolc_1_1_platform.html#abbc05f4b3aea3513919b05fdb15bfbbc',1,'olc::Platform']]],
+  ['health_222',['health',['../classentities_1_1_living_entity.html#a78282129a711906b7973c4ecb37b8434',1,'entities::LivingEntity']]],
+  ['height_223',['height',['../classolc_1_1_sprite.html#ab05010cb1a5ff6c36267d0050d568d96',1,'olc::Sprite']]],
+  ['home_224',['HOME',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a29419f86c551b623c828f9530f301389',1,'olc']]],
+  ['horiz_225',['HORIZ',['../classolc_1_1_sprite.html#ad0d1976d2060997f5cd99eb284a5dc24a2ff5b18e468156f629a10c5b515d78cd',1,'olc::Sprite']]],
+  ['hwbutton_226',['HWButton',['../structolc_1_1_h_w_button.html',1,'olc']]]
+];
diff --git a/doxy/html/search/all_9.html b/doxy/html/search/all_9.html
new file mode 100644
index 0000000000000000000000000000000000000000..d27c0f7c2dc2358a4b17b16aa2591020e9acdd9b
--- /dev/null
+++ b/doxy/html/search/all_9.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_9.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doxy/html/search/all_9.js b/doxy/html/search/all_9.js
new file mode 100644
index 0000000000000000000000000000000000000000..f654f33b322f7f7fc5cd2deb7e469dbefd4040d2
--- /dev/null
+++ b/doxy/html/search/all_9.js
@@ -0,0 +1,22 @@
+var searchData=
+[
+  ['i_227',['I',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ac242ddce5db0d462674ead1db3956a19',1,'olc']]],
+  ['id_228',['id',['../classolc_1_1_decal.html#a7cc798e0327ea4118c648b10e2d57986',1,'olc::Decal']]],
+  ['ignoredistance_229',['ignoreDistance',['../_entity_8cpp.html#abbe123cdd88a2c284df8426f38efafca',1,'Entity.cpp']]],
+  ['illuminate_230',['ILLUMINATE',['../namespaceolc.html#aeda642f63378f868193c28e8613138caab892134232b911680f88a64a24883f7d',1,'olc']]],
+  ['imageloader_231',['ImageLoader',['../classolc_1_1_image_loader.html',1,'olc::ImageLoader'],['../classolc_1_1_image_loader.html#a7aa358a572ec995b530ca5b54829f044',1,'olc::ImageLoader::ImageLoader()']]],
+  ['init_232',['init',['../classentities_1_1_entity.html#afd80ddceccb36b87d0d80dcc7f88fc3b',1,'entities::Entity::init()'],['../classentities_1_1_wall_entity.html#ad66ed8002d8082035bd3b7df07ff45b5',1,'entities::WallEntity::init()']]],
+  ['initialise_233',['Initialise',['../classolc_1_1_transformed_view.html#a799473b80691228b87a818f80847ca76',1,'olc::TransformedView']]],
+  ['ins_234',['INS',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a691b8388214af88a7794c43d31fbe16a',1,'olc']]],
+  ['inv_235',['inv',['../structolc_1_1_pixel.html#a8a1daba449fb823a4535a6089fe880ab',1,'olc::Pixel']]],
+  ['is_5falive_236',['is_alive',['../classentities_1_1_entity.html#aedac7bb35b729e4a02c582b9f4369ab8',1,'entities::Entity']]],
+  ['is_5finitialized_237',['is_initialized',['../classentities_1_1_entity.html#a1453bca3376a185aa54135dd4958b244',1,'entities::Entity']]],
+  ['isalive_238',['isAlive',['../classentities_1_1_entity.html#ab0ee90a84f2163b600e603f24cff046f',1,'entities::Entity']]],
+  ['isfocused_239',['IsFocused',['../classolc_1_1_pixel_game_engine.html#a92192402b5d499ab8b230dfb9393f3b7',1,'olc::PixelGameEngine']]],
+  ['isinitialized_240',['isInitialized',['../classentities_1_1_entity.html#ab010066d52a02c63908f70ff6ef7d873',1,'entities::Entity']]],
+  ['ispickedup_241',['isPickedUp',['../classweapons_1_1_weapon.html#aba025076ad5e6fae2f9b9d40f4ef815d',1,'weapons::Weapon']]],
+  ['ispointvisible_242',['IsPointVisible',['../classolc_1_1_transformed_view.html#a664ea0cbd54bbff17ea419ebfac1e359',1,'olc::TransformedView']]],
+  ['isrectvisible_243',['IsRectVisible',['../classolc_1_1_transformed_view.html#aecadbbdf84343ec0a2f0e2e8c9017f0e',1,'olc::TransformedView']]],
+  ['itexture_244',['ITexture',['../classrender_1_1_i_texture.html',1,'render']]],
+  ['itexture_2eh_245',['ITexture.h',['../_i_texture_8h.html',1,'']]]
+];
diff --git a/doxy/html/search/all_a.html b/doxy/html/search/all_a.html
new file mode 100644
index 0000000000000000000000000000000000000000..2c8b75b32d6be04f6bf89ab194b2cb02ad3784af
--- /dev/null
+++ b/doxy/html/search/all_a.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_a.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doxy/html/search/all_a.js b/doxy/html/search/all_a.js
new file mode 100644
index 0000000000000000000000000000000000000000..5fe39ec1ab581875917deed72cc2fbcb37757f39
--- /dev/null
+++ b/doxy/html/search/all_a.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+  ['j_246',['J',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a476769e330b87f2fb75aaa684c2f6373',1,'olc']]]
+];
diff --git a/doxy/html/search/all_b.html b/doxy/html/search/all_b.html
new file mode 100644
index 0000000000000000000000000000000000000000..9a220b1273d8f34121390546cae5f91b5027f14d
--- /dev/null
+++ b/doxy/html/search/all_b.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_b.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doxy/html/search/all_b.js b/doxy/html/search/all_b.js
new file mode 100644
index 0000000000000000000000000000000000000000..8843e46f4db5832d3bbd4dae2c2b2e56c167dccf
--- /dev/null
+++ b/doxy/html/search/all_b.js
@@ -0,0 +1,15 @@
+var searchData=
+[
+  ['k_247',['K',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a136309f07b14d70a8561a69ca563bab7',1,'olc']]],
+  ['k0_248',['K0',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a2dd03c94eccd6d1259d4b2b51b7f85a7',1,'olc']]],
+  ['k1_249',['K1',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a353892e1e3473d0a6d3427dd86080506',1,'olc']]],
+  ['k2_250',['K2',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ab3b331dc3158175e2c567f7ebdf9fa75',1,'olc']]],
+  ['k3_251',['K3',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7aba2ad21d300fb113ff4e82665800cf75',1,'olc']]],
+  ['k4_252',['K4',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7aadd3a981032ec5fc07440dd0dbd1a3b3',1,'olc']]],
+  ['k5_253',['K5',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a353906757178b0d48008b62cdca75332',1,'olc']]],
+  ['k6_254',['K6',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a81afecef4b483614604bfc5341d8a2d5',1,'olc']]],
+  ['k7_255',['K7',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a89291a8afb7ac7b481090dc97f643263',1,'olc']]],
+  ['k8_256',['K8',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a636f4e49257a6476ad0aab590318672f',1,'olc']]],
+  ['k9_257',['K9',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a949dddf48734610228c20566a33912bc',1,'olc']]],
+  ['key_258',['Key',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7',1,'olc']]]
+];
diff --git a/doxy/html/search/all_c.html b/doxy/html/search/all_c.html
new file mode 100644
index 0000000000000000000000000000000000000000..ec92b718941f4c396bb91b1a855b993b65d356f3
--- /dev/null
+++ b/doxy/html/search/all_c.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_c.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doxy/html/search/all_c.js b/doxy/html/search/all_c.js
new file mode 100644
index 0000000000000000000000000000000000000000..f6dea99eb114e6891e30982bf6bc5464dd152886
--- /dev/null
+++ b/doxy/html/search/all_c.js
@@ -0,0 +1,20 @@
+var searchData=
+[
+  ['l_259',['L',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a4d809048542b770e810d48919c8f8500',1,'olc']]],
+  ['layerdesc_260',['LayerDesc',['../structolc_1_1_layer_desc.html',1,'olc']]],
+  ['lazysprite_261',['LazySprite',['../classrender_1_1_lazy_sprite.html',1,'render::LazySprite'],['../classrender_1_1_lazy_sprite.html#a28a8d429dc27035aa9a09151aa150b0a',1,'render::LazySprite::LazySprite()']]],
+  ['lazysprite_2ecpp_262',['LazySprite.cpp',['../_lazy_sprite_8cpp.html',1,'']]],
+  ['lazysprite_2eh_263',['LazySprite.h',['../_lazy_sprite_8h.html',1,'']]],
+  ['left_264',['LEFT',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a4da01be8126ba4113717cc6385ad22d2',1,'olc']]],
+  ['livingentity_265',['LivingEntity',['../classentities_1_1_living_entity.html',1,'entities::LivingEntity'],['../classentities_1_1_living_entity.html#a08837d43e7338c4ceff9acfbbbffd94b',1,'entities::LivingEntity::LivingEntity()']]],
+  ['livingentity_2ecpp_266',['LivingEntity.cpp',['../_living_entity_8cpp.html',1,'']]],
+  ['livingentity_2eh_267',['LivingEntity.h',['../_living_entity_8h.html',1,'']]],
+  ['load_268',['Load',['../classolc_1_1_renderable.html#ace5d212d903d86bc9789f1af0f92096c',1,'olc::Renderable']]],
+  ['loaded_269',['Loaded',['../classolc_1_1_resource_pack.html#a4421c33c022ad042d29ef81f29f5b355',1,'olc::ResourcePack']]],
+  ['loader_270',['loader',['../classolc_1_1_sprite.html#a023da26661031ebf7a276cafd9a43902',1,'olc::Sprite']]],
+  ['loadfromfile_271',['LoadFromFile',['../classolc_1_1_sprite.html#adc277c0342733a4aa8dcdc9152326fec',1,'olc::Sprite']]],
+  ['loadfrompgesprfile_272',['LoadFromPGESprFile',['../classolc_1_1_sprite.html#a6959a2d94d6c02b7918aec5ce9b1a371',1,'olc::Sprite']]],
+  ['loadimageresource_273',['LoadImageResource',['../classolc_1_1_image_loader.html#ac08c7387037c748a38598b6442974d81',1,'olc::ImageLoader']]],
+  ['loadpack_274',['LoadPack',['../classolc_1_1_resource_pack.html#a3168eef974448f8119e93af97272df27',1,'olc::ResourcePack']]],
+  ['longsword_275',['longSword',['../classweapons_1_1_typical_melee_weapon.html#ae623cc428bd32ef113d48d6ca15cf4c2',1,'weapons::TypicalMeleeWeapon']]]
+];
diff --git a/doxy/html/search/all_d.html b/doxy/html/search/all_d.html
new file mode 100644
index 0000000000000000000000000000000000000000..606caba19e0c4fa3e4691f7a522105af7d144521
--- /dev/null
+++ b/doxy/html/search/all_d.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_d.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doxy/html/search/all_d.js b/doxy/html/search/all_d.js
new file mode 100644
index 0000000000000000000000000000000000000000..46b74ed724eb63cc73b3441208cbebd1ddf54876
--- /dev/null
+++ b/doxy/html/search/all_d.js
@@ -0,0 +1,39 @@
+var searchData=
+[
+  ['m_276',['M',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7afda4a6ac36e1870cd31522ac4e40a113',1,'olc']]],
+  ['m_5fbpanning_277',['m_bPanning',['../classolc_1_1_transformed_view.html#a2c19ec65e54f43500cce003f878c8ed5',1,'olc::TransformedView']]],
+  ['m_5fvpixelscale_278',['m_vPixelScale',['../classolc_1_1_transformed_view.html#a94a7fd3ad136ec70040bbff1c7133418',1,'olc::TransformedView']]],
+  ['m_5fvrecippixel_279',['m_vRecipPixel',['../classolc_1_1_transformed_view.html#ae1b7b82332f0979caa99e003827624cb',1,'olc::TransformedView']]],
+  ['m_5fvstartpan_280',['m_vStartPan',['../classolc_1_1_transformed_view.html#a4f7569cc3d27120b485077789b86aa44',1,'olc::TransformedView']]],
+  ['m_5fvviewarea_281',['m_vViewArea',['../classolc_1_1_transformed_view.html#a0a2936aac23f1621ff1d618c7155de1c',1,'olc::TransformedView']]],
+  ['m_5fvworldoffset_282',['m_vWorldOffset',['../classolc_1_1_transformed_view.html#a2e77497521f72e59ae7ecb56dc5d3f37',1,'olc::TransformedView']]],
+  ['m_5fvworldscale_283',['m_vWorldScale',['../classolc_1_1_transformed_view.html#a652909b48a4d8960c36d1ce4262cc95a',1,'olc::TransformedView']]],
+  ['mag_284',['mag',['../structolc_1_1v2d__generic.html#ab06016810fe727fa826e43e44e02008b',1,'olc::v2d_generic']]],
+  ['mag2_285',['mag2',['../structolc_1_1v2d__generic.html#a6b83d7375119637fdf65233cf6dae947',1,'olc::v2d_generic']]],
+  ['magenta_286',['MAGENTA',['../namespaceolc.html#adc292fdc3c4d2a03e8c6bbad1853b727',1,'olc']]],
+  ['magetexture_287',['MageTexture',['../classrender_1_1_character_texture.html#a29faf07d6f3edb7d05ad4811613a9ded',1,'render::CharacterTexture']]],
+  ['main_288',['main',['../class_game_client.html#a81ce304348a420752ee080480d2b3095',1,'GameClient::main()'],['../game_8cpp.html#a0ddf1224851353fc92bfbff6f499fa97',1,'main():&#160;game.cpp']]],
+  ['maingame_2ecpp_289',['mainGame.cpp',['../main_game_8cpp.html',1,'']]],
+  ['maingame_2eh_290',['mainGame.h',['../main_game_8h.html',1,'']]],
+  ['mask_291',['MASK',['../structolc_1_1_pixel.html#ae9012164940526ddb09b217dbbddfd65a4062d4baa9669fb2e91f31a15061a9d6',1,'olc::Pixel']]],
+  ['max_292',['max',['../structolc_1_1v2d__generic.html#a1fe55d8bc22dbb400583cb68cc9e3e36',1,'olc::v2d_generic']]],
+  ['maxattackcooldown_293',['maxAttackCooldown',['../_entity_with_a_i_8cpp.html#a57be3a52c6744615f203955322706cfc',1,'EntityWithAI.cpp']]],
+  ['maxdistance_294',['maxDistance',['../classweapons_1_1_melee_weapon_1_1predicate_distance.html#a3d53f314c59a28ad09a209299c6f04dc',1,'weapons::MeleeWeapon::predicateDistance']]],
+  ['maxprojectileage_295',['maxProjectileAge',['../_projectile_entity_8cpp.html#a3e9bff6f87d6a4caeac7578a37192511',1,'ProjectileEntity.cpp']]],
+  ['maxrange_296',['maxRange',['../classweapons_1_1_typical_melee_weapon.html#a7822572a76104d2cd2d0a21cdfa754d7',1,'weapons::TypicalMeleeWeapon']]],
+  ['maxsize_297',['maxSize',['../_square_room_generator_8cpp.html#af598d998387dbc59923042b09ff6a63a',1,'SquareRoomGenerator.cpp']]],
+  ['maxtimedelta_298',['maxTimeDelta',['../main_game_8cpp.html#aa8c13326fceadba77254d2971649a3ab',1,'mainGame.cpp']]],
+  ['maxweaponpickuprange_299',['maxWeaponPickupRange',['../_player_entity_8cpp.html#a3c781e763876e55aa6ab889f192e17ca',1,'PlayerEntity.cpp']]],
+  ['meleeweapon_300',['MeleeWeapon',['../classweapons_1_1_melee_weapon.html',1,'weapons::MeleeWeapon'],['../classweapons_1_1_melee_weapon.html#a719614055440a5e7cfaf943dab856bb1',1,'weapons::MeleeWeapon::MeleeWeapon()']]],
+  ['meleeweapon_2ecpp_301',['MeleeWeapon.cpp',['../_melee_weapon_8cpp.html',1,'']]],
+  ['meleeweapon_2eh_302',['MeleeWeapon.h',['../_melee_weapon_8h.html',1,'']]],
+  ['min_303',['min',['../structolc_1_1v2d__generic.html#aec7b204ad597ee0edc9a444ff3a242eb',1,'olc::v2d_generic']]],
+  ['mindistance_304',['minDistance',['../classweapons_1_1_melee_weapon_1_1predicate_distance.html#ad75b973371de19453068e729b275af89',1,'weapons::MeleeWeapon::predicateDistance']]],
+  ['minigun_305',['minigun',['../namespaceweapons_1_1textures.html#a51f0963cb1171938daa3a1e894e5305b',1,'weapons::textures']]],
+  ['minsize_306',['minSize',['../_square_room_generator_8cpp.html#a03e2392026add58812e6bad00bee5b84',1,'SquareRoomGenerator.cpp']]],
+  ['minus_307',['MINUS',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a4b3a1d83a513de0e2c3c8ba2a8a5fd2d',1,'olc']]],
+  ['mode_308',['Mode',['../structolc_1_1_pixel.html#ae9012164940526ddb09b217dbbddfd65',1,'olc::Pixel::Mode()'],['../classolc_1_1_sprite.html#a78b7f14903f9f0bb536b66c37f3139cf',1,'olc::Sprite::Mode()'],['../structolc_1_1_decal_instance.html#a3dcc0fc374fe00a5d6451a4ac13e6649',1,'olc::DecalInstance::mode()']]],
+  ['modesample_309',['modeSample',['../classolc_1_1_sprite.html#ab9182b86e829467f454c7ef630ebc9fb',1,'olc::Sprite']]],
+  ['moveworldoffset_310',['MoveWorldOffset',['../classolc_1_1_transformed_view.html#a154b34bc81f6e0c67579d2d2ee40b2d1',1,'olc::TransformedView']]],
+  ['multiplicative_311',['MULTIPLICATIVE',['../namespaceolc.html#aeda642f63378f868193c28e8613138caa418ef46700a2836c0d6218e2b46bf564',1,'olc']]]
+];
diff --git a/doxy/html/search/all_e.html b/doxy/html/search/all_e.html
new file mode 100644
index 0000000000000000000000000000000000000000..310da244c4769f82cabf6f15e2434e3c4767968c
--- /dev/null
+++ b/doxy/html/search/all_e.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_e.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doxy/html/search/all_e.js b/doxy/html/search/all_e.js
new file mode 100644
index 0000000000000000000000000000000000000000..55c715d504aedec04dc87ba759c24a1aa692b5c3
--- /dev/null
+++ b/doxy/html/search/all_e.js
@@ -0,0 +1,28 @@
+var searchData=
+[
+  ['n_312',['n',['../structolc_1_1_pixel.html#aa9cb31c80e2822ccc726526be5801ae2',1,'olc::Pixel::n()'],['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ab9b5b3e2b7e4f47de4a8d84e03cd5911',1,'olc::N()']]],
+  ['name_313',['name',['../classweapons_1_1_weapon.html#a3dab7574419aed48f2a0f2d54cfcd825',1,'weapons::Weapon']]],
+  ['ndefaultalpha_314',['nDefaultAlpha',['../namespaceolc.html#adede7d1156ab9d8ffdc3e9048f0f364b',1,'olc']]],
+  ['ndefaultpixel_315',['nDefaultPixel',['../namespaceolc.html#a10bbdc57cc3fecc7b80ba428eb7494d0',1,'olc']]],
+  ['nmousebuttons_316',['nMouseButtons',['../namespaceolc.html#abf7dfc35dd1d895f33d3635831953e38',1,'olc']]],
+  ['no_5ffile_317',['NO_FILE',['../namespaceolc.html#a3d40e9b1c005602550230690b55ae87babfe0b9ad99c942b01b1ee61404f559b5',1,'olc']]],
+  ['none_318',['NONE',['../classolc_1_1_sprite.html#ad0d1976d2060997f5cd99eb284a5dc24a6ad338b4e63faacfbed68b020c3a0c0c',1,'olc::Sprite::NONE()'],['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a569010ded143bbdfd1b2dc8e82327b45',1,'olc::NONE()']]],
+  ['norm_319',['norm',['../structolc_1_1v2d__generic.html#a9c62f12d51859a5a487c5a0c2d00b09a',1,'olc::v2d_generic']]],
+  ['normal_320',['NORMAL',['../structolc_1_1_pixel.html#ae9012164940526ddb09b217dbbddfd65a8abacc164c972b4684c2a76efd381018',1,'olc::Pixel::NORMAL()'],['../classolc_1_1_sprite.html#a78b7f14903f9f0bb536b66c37f3139cfa1128b229a2ab5d7b344aeefd329252a1',1,'olc::Sprite::NORMAL()'],['../namespaceolc.html#aeda642f63378f868193c28e8613138caa1e23852820b9154316c7c06e2b7ba051',1,'olc::NORMAL()']]],
+  ['np0_321',['NP0',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a16054c3b1419b9679d95ac70ef262666',1,'olc']]],
+  ['np1_322',['NP1',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a96c49dba90b7ecdfcf88e18c2842a964',1,'olc']]],
+  ['np2_323',['NP2',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a7ca6517890a3566dbf758618f9c7690f',1,'olc']]],
+  ['np3_324',['NP3',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7aab84341adb43a72b48030189f9919360',1,'olc']]],
+  ['np4_325',['NP4',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a443551e4895cf1d2be984eba0bd7098e',1,'olc']]],
+  ['np5_326',['NP5',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a0ba7e1a6dbc9d1291a40172a09bb49a4',1,'olc']]],
+  ['np6_327',['NP6',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ad6aae0ca10843b8046ee0186af4e42f9',1,'olc']]],
+  ['np7_328',['NP7',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7afee25adbffa6e8fc092d52193195182f',1,'olc']]],
+  ['np8_329',['NP8',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a468bb1704a74fc6e42d28e7bee8ecb51',1,'olc']]],
+  ['np9_330',['NP9',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a53987c7c18a4a4479c4e1ff7f65c414e',1,'olc']]],
+  ['np_5fadd_331',['NP_ADD',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7af15830fd3562b144e15a9d8abeb6c118',1,'olc']]],
+  ['np_5fdecimal_332',['NP_DECIMAL',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a2c21f93f355bf0a6baa7e205acd86b50',1,'olc']]],
+  ['np_5fdiv_333',['NP_DIV',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7aee5afd77eb82eb3111195ee300ff3714',1,'olc']]],
+  ['np_5fmul_334',['NP_MUL',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ae2ce826d1d0de6429f9f28a19d11edfb',1,'olc']]],
+  ['np_5fsub_335',['NP_SUB',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7aade223a1643f8d607eb44fff1bbaae8e',1,'olc']]],
+  ['nresid_336',['nResID',['../structolc_1_1_layer_desc.html#a9433153aabd3d3530043f71a2ad63b1a',1,'olc::LayerDesc']]]
+];
diff --git a/doxy/html/search/all_f.html b/doxy/html/search/all_f.html
new file mode 100644
index 0000000000000000000000000000000000000000..de78f8117dc92c98599438dd4c4fdfb39cb5079d
--- /dev/null
+++ b/doxy/html/search/all_f.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_f.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doxy/html/search/all_f.js b/doxy/html/search/all_f.js
new file mode 100644
index 0000000000000000000000000000000000000000..78a358b26e8005ce74b1a5473061134ff5bce49e
--- /dev/null
+++ b/doxy/html/search/all_f.js
@@ -0,0 +1,67 @@
+var searchData=
+[
+  ['o_337',['O',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a7f95c3a8701b46a2cca143078d7e3aea',1,'olc']]],
+  ['oem_5f1_338',['OEM_1',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a3a044efaf7d74df21e84a29063006eae',1,'olc']]],
+  ['oem_5f2_339',['OEM_2',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ad29833dd46d756ecf0e9d477d0845450',1,'olc']]],
+  ['oem_5f3_340',['OEM_3',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7abb25924adf005b39efaef185f332a3ad',1,'olc']]],
+  ['oem_5f4_341',['OEM_4',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7aa09e2508e2f2fd372d3e37ebdfce6814',1,'olc']]],
+  ['oem_5f5_342',['OEM_5',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ad7e69e28cedaf91718aa4801d5a3bdb7',1,'olc']]],
+  ['oem_5f6_343',['OEM_6',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7af2cec59ecc924be0b636e5b767abf29f',1,'olc']]],
+  ['oem_5f7_344',['OEM_7',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a3dada7cdf09fb367c10c650e9bce7bfa',1,'olc']]],
+  ['oem_5f8_345',['OEM_8',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ab719317cfd8ac665e8cc2f420f74b46a',1,'olc']]],
+  ['offsetmap_346',['offsetMap',['../classrender_1_1_wall_texture.html#a8246fdde3751baf778392ce6f4577a8d',1,'render::WallTexture']]],
+  ['ok_347',['OK',['../namespaceolc.html#a3d40e9b1c005602550230690b55ae87ba0178b5f8abe39121e6f14d3c6c093a82',1,'olc']]],
+  ['olc_348',['olc',['../namespaceolc.html',1,'']]],
+  ['olc_2eh_349',['olc.h',['../olc_8h.html',1,'']]],
+  ['olc_5fconfiguresystem_350',['olc_ConfigureSystem',['../classolc_1_1_pixel_game_engine.html#a7afa0b57c65bd5d9a54c602afd4fe756',1,'olc::PixelGameEngine']]],
+  ['olc_5fconstructfontsheet_351',['olc_ConstructFontSheet',['../classolc_1_1_pixel_game_engine.html#a117eedbe1e9366fe2bf402334beb9692',1,'olc::PixelGameEngine']]],
+  ['olc_5fcoreupdate_352',['olc_CoreUpdate',['../classolc_1_1_pixel_game_engine.html#a0018131435f88bb5de406fd11ee54058',1,'olc::PixelGameEngine']]],
+  ['olc_5fgfx_5fopengl10_353',['OLC_GFX_OPENGL10',['../olc_pixel_game_engine_8h.html#a3778ec518130e256bc0f11a7b8ba82bc',1,'olcPixelGameEngine.h']]],
+  ['olc_5fisrunning_354',['olc_IsRunning',['../classolc_1_1_pixel_game_engine.html#a7b0f41bc4b4258a5c4fa1742b41d15e3',1,'olc::PixelGameEngine']]],
+  ['olc_5fpge_5fapplication_355',['OLC_PGE_APPLICATION',['../game_8cpp.html#a1263ab7caa5c273b04d3fcfac6814370',1,'game.cpp']]],
+  ['olc_5fpgex_5ftransformedview_356',['OLC_PGEX_TRANSFORMEDVIEW',['../game_8cpp.html#addb987782a88225c5c14f86c3db1cbb0',1,'game.cpp']]],
+  ['olc_5fpgex_5ftransformedview_5fh_357',['OLC_PGEX_TRANSFORMEDVIEW_H',['../olc_p_g_e_x___transformed_view_8h.html#a47f1ada970406eff596ebe181debec3d',1,'olcPGEX_TransformedView.h']]],
+  ['olc_5fprepareengine_358',['olc_PrepareEngine',['../classolc_1_1_pixel_game_engine.html#aa19aafa028a7e2eaaf7b2235a9bd2256',1,'olc::PixelGameEngine']]],
+  ['olc_5freanimate_359',['olc_Reanimate',['../classolc_1_1_pixel_game_engine.html#a417b6cd564ccad1d878ae51cfdd3be8e',1,'olc::PixelGameEngine']]],
+  ['olc_5fterminate_360',['olc_Terminate',['../classolc_1_1_pixel_game_engine.html#a2da1f2ebbc1a5fbdbf52890e6ac707b1',1,'olc::PixelGameEngine']]],
+  ['olc_5fupdatekeyfocus_361',['olc_UpdateKeyFocus',['../classolc_1_1_pixel_game_engine.html#a7343712504f23f86c8490646ffc50e7f',1,'olc::PixelGameEngine']]],
+  ['olc_5fupdatekeystate_362',['olc_UpdateKeyState',['../classolc_1_1_pixel_game_engine.html#a61fde81846a9ef7f8fcf63080e6d350b',1,'olc::PixelGameEngine']]],
+  ['olc_5fupdatemouse_363',['olc_UpdateMouse',['../classolc_1_1_pixel_game_engine.html#a6e10d8fae75e26dea03b0b447667a308',1,'olc::PixelGameEngine']]],
+  ['olc_5fupdatemousefocus_364',['olc_UpdateMouseFocus',['../classolc_1_1_pixel_game_engine.html#ab3150ba487188e64940c294998fa38d3',1,'olc::PixelGameEngine']]],
+  ['olc_5fupdatemousestate_365',['olc_UpdateMouseState',['../classolc_1_1_pixel_game_engine.html#a59645c08376a7d4e58673919f3bd0dfb',1,'olc::PixelGameEngine']]],
+  ['olc_5fupdatemousewheel_366',['olc_UpdateMouseWheel',['../classolc_1_1_pixel_game_engine.html#aa33ea5e40d4577e3c44fcf4a26cecadd',1,'olc::PixelGameEngine']]],
+  ['olc_5fupdateviewport_367',['olc_UpdateViewport',['../classolc_1_1_pixel_game_engine.html#af1cd38cf0df2e7c3ab53bee66ec63771',1,'olc::PixelGameEngine']]],
+  ['olc_5fupdatewindowsize_368',['olc_UpdateWindowSize',['../classolc_1_1_pixel_game_engine.html#a4f0dae00f21f8d71d4544d50593234c3',1,'olc::PixelGameEngine']]],
+  ['olcpgex_5ftransformedview_2eh_369',['olcPGEX_TransformedView.h',['../olc_p_g_e_x___transformed_view_8h.html',1,'']]],
+  ['olcpixelgameengine_2eh_370',['olcPixelGameEngine.h',['../olc_pixel_game_engine_8h.html',1,'']]],
+  ['olct_371',['olcT',['../olc_pixel_game_engine_8h.html#ac02283d1990a8623a332f7f7f2230a1f',1,'olcPixelGameEngine.h']]],
+  ['onafterusercreate_372',['OnAfterUserCreate',['../classolc_1_1_p_g_e_x.html#a2a57a711518202708d2b0e586058348f',1,'olc::PGEX']]],
+  ['onafteruserupdate_373',['OnAfterUserUpdate',['../classolc_1_1_p_g_e_x.html#a4d2dd7d685fb1c7d00d97aa15e3376b4',1,'olc::PGEX']]],
+  ['onbeforeusercreate_374',['OnBeforeUserCreate',['../classolc_1_1_p_g_e_x.html#a69c65b5d3a56f9a247e1bf15fd2e4035',1,'olc::PGEX']]],
+  ['onbeforeuserupdate_375',['OnBeforeUserUpdate',['../classolc_1_1_p_g_e_x.html#a2573df22f1637314b976811714dea3fb',1,'olc::PGEX']]],
+  ['oncollide_376',['onCollide',['../classentities_1_1_explosive_projectile.html#a7e0d880f0dfeb6570dc724a0739b1331',1,'entities::ExplosiveProjectile::onCollide()'],['../classentities_1_1_projectile_entity.html#a865c1a9527f67a3e5402a4fcf8baac98',1,'entities::ProjectileEntity::onCollide()']]],
+  ['onusercreate_377',['OnUserCreate',['../class_game_client.html#a698bb8a4ba91211dc4fcaa4079d8d070',1,'GameClient::OnUserCreate()'],['../classolc_1_1_pixel_game_engine.html#a6a33b6ff7cd23dfd05b34416865fb5c3',1,'olc::PixelGameEngine::OnUserCreate()']]],
+  ['onuserdestroy_378',['OnUserDestroy',['../classolc_1_1_pixel_game_engine.html#ad4fbf979865fb1f08250ea379f2de669',1,'olc::PixelGameEngine']]],
+  ['onuserupdate_379',['OnUserUpdate',['../class_game_client.html#ab6e2efe37e67de64062bca35d8a11e2e',1,'GameClient::OnUserUpdate()'],['../classolc_1_1_pixel_game_engine.html#af9379a3db341b0acb410ea543e30fdd1',1,'olc::PixelGameEngine::OnUserUpdate()']]],
+  ['operator_20v2d_5fgeneric_3c_20double_20_3e_380',['operator v2d_generic&lt; double &gt;',['../structolc_1_1v2d__generic.html#a5b722f332f64d260741ef8322cca5cce',1,'olc::v2d_generic']]],
+  ['operator_20v2d_5fgeneric_3c_20float_20_3e_381',['operator v2d_generic&lt; float &gt;',['../structolc_1_1v2d__generic.html#a7fd9786ec8121d50addc3dd624ca21eb',1,'olc::v2d_generic']]],
+  ['operator_20v2d_5fgeneric_3c_20int32_5ft_20_3e_382',['operator v2d_generic&lt; int32_t &gt;',['../structolc_1_1v2d__generic.html#a2bf267ac209cca361df72649a5aac92c',1,'olc::v2d_generic']]],
+  ['operator_20wallentity_20_2a_383',['operator WallEntity *',['../classentities_1_1_entity.html#ad0a172ff99a7e73aaaee3658d5e3ae08',1,'entities::Entity']]],
+  ['operator_21_3d_384',['operator!=',['../structolc_1_1_pixel.html#aeeaecb16a243ce3be52cd9261fdf2b23',1,'olc::Pixel::operator!=()'],['../structolc_1_1v2d__generic.html#abd9af6a38bc73471874665f508ff10b6',1,'olc::v2d_generic::operator!=()']]],
+  ['operator_28_29_385',['operator()',['../classweapons_1_1_melee_weapon_1_1predicate_distance.html#abfe04e14018aab1af891302df42255eb',1,'weapons::MeleeWeapon::predicateDistance']]],
+  ['operator_2a_386',['operator*',['../structolc_1_1_pixel.html#a15a61beedc23ca678a954567274e24de',1,'olc::Pixel::operator*()'],['../structolc_1_1v2d__generic.html#a542487700e63b2e30940d64b75c3d3db',1,'olc::v2d_generic::operator*(const T &amp;rhs) const'],['../structolc_1_1v2d__generic.html#a78e7362a3b955735c0389c6a5c7b32f0',1,'olc::v2d_generic::operator*(const v2d_generic &amp;rhs) const'],['../namespaceolc.html#a0cb5b54cc54cf0c92741da285010e1e5',1,'olc::operator*(const float &amp;lhs, const v2d_generic&lt; T &gt; &amp;rhs)'],['../namespaceolc.html#a9a03952e9e6c1c40c2512560ac182382',1,'olc::operator*(const double &amp;lhs, const v2d_generic&lt; T &gt; &amp;rhs)'],['../namespaceolc.html#ab04d4eba2afcfda14b1045bace972a76',1,'olc::operator*(const int &amp;lhs, const v2d_generic&lt; T &gt; &amp;rhs)']]],
+  ['operator_2a_3d_387',['operator*=',['../structolc_1_1_pixel.html#abace0545af22380831ffbc8bd1a66419',1,'olc::Pixel::operator*=()'],['../structolc_1_1v2d__generic.html#a35c81946f320da79fa5a33e595873252',1,'olc::v2d_generic::operator*=(const T &amp;rhs)'],['../structolc_1_1v2d__generic.html#a2a0fb49722257578bfc148a273b4c1c5',1,'olc::v2d_generic::operator*=(const v2d_generic &amp;rhs)']]],
+  ['operator_2b_388',['operator+',['../structolc_1_1_pixel.html#acb54675f2c61b989de500f8e6e56a9f6',1,'olc::Pixel::operator+()'],['../structolc_1_1v2d__generic.html#a5ae3f55fd12af9bf44a2837ad76ea7dd',1,'olc::v2d_generic::operator+(const v2d_generic &amp;rhs) const'],['../structolc_1_1v2d__generic.html#a70a7c59a5b9b9fac0de8a823633abb08',1,'olc::v2d_generic::operator+() const']]],
+  ['operator_2b_3d_389',['operator+=',['../class_dynamic_array.html#a9f3bb8f56ad0cb35f890ebae426c7a61',1,'DynamicArray::operator+=()'],['../class_game_client.html#abf4100b1ee69f4f300346424139f8d93',1,'GameClient::operator+=()'],['../structolc_1_1_pixel.html#a39dc75f9f15c040c2d2715c66b13f4e0',1,'olc::Pixel::operator+=()'],['../structolc_1_1v2d__generic.html#ac57326846384068beaaddec0674b65d2',1,'olc::v2d_generic::operator+=()'],['../_entity_8cpp.html#a84cbcaa4d8a9e6ac00abf777323fb212',1,'operator+=(TransformedView &amp;scene, entities::Entity &amp;entity):&#160;Entity.cpp'],['../_entity_8cpp.html#a31a0b92a35aadc02f58f7ab817fada44',1,'operator+=(TransformedView &amp;scene, std::shared_ptr&lt; entities::Entity &gt; &amp;entity):&#160;Entity.cpp'],['../_entity_8h.html#afba80426f5df447305cca8887a8ff92d',1,'operator+=(olc::TransformedView &amp;, entities::Entity &amp;):&#160;Entity.cpp'],['../_entity_8h.html#a2ed5201a4cd62b1183dd0a5b20f268cc',1,'operator+=(olc::TransformedView &amp;, std::shared_ptr&lt; entities::Entity &gt; &amp;):&#160;Entity.cpp']]],
+  ['operator_2d_390',['operator-',['../structolc_1_1_pixel.html#a1ac8b9d37f4c368b62b21b52df1f5937',1,'olc::Pixel::operator-()'],['../structolc_1_1v2d__generic.html#a64e053d62d2826193f6a058ee120c6e2',1,'olc::v2d_generic::operator-(const v2d_generic &amp;rhs) const'],['../structolc_1_1v2d__generic.html#a9eff196e75aeffcd96bffb64de04219d',1,'olc::v2d_generic::operator-() const']]],
+  ['operator_2d_3d_391',['operator-=',['../structolc_1_1_pixel.html#a058f58406ca54ab73075f5e42125a65a',1,'olc::Pixel::operator-=()'],['../structolc_1_1v2d__generic.html#af3e8b94c4921f8d81b4112b319bd7f6d',1,'olc::v2d_generic::operator-=()']]],
+  ['operator_2f_392',['operator/',['../structolc_1_1_pixel.html#a7fdcfa79f91368e834cc2ec66d9de769',1,'olc::Pixel::operator/()'],['../structolc_1_1v2d__generic.html#a1f1138ee06adae0eaffe900b0437b896',1,'olc::v2d_generic::operator/(const T &amp;rhs) const'],['../structolc_1_1v2d__generic.html#adcf0004e01ba1d8c813cdcb6525eb1c6',1,'olc::v2d_generic::operator/(const v2d_generic &amp;rhs) const'],['../namespaceolc.html#a6448f6127e1003cd9287161c5c4d52e0',1,'olc::operator/(const float &amp;lhs, const v2d_generic&lt; T &gt; &amp;rhs)'],['../namespaceolc.html#a879e763a12d6fbc6b4d3e2aac7b4c85a',1,'olc::operator/(const double &amp;lhs, const v2d_generic&lt; T &gt; &amp;rhs)'],['../namespaceolc.html#a302501c3eb64a99ffa93feac2cc46115',1,'olc::operator/(const int &amp;lhs, const v2d_generic&lt; T &gt; &amp;rhs)']]],
+  ['operator_2f_3d_393',['operator/=',['../structolc_1_1_pixel.html#afd73fb0548d7232923f0ce707171e0da',1,'olc::Pixel::operator/=()'],['../structolc_1_1v2d__generic.html#a88a5aa098b5ada7667a7900a0bc9bba2',1,'olc::v2d_generic::operator/=(const T &amp;rhs)'],['../structolc_1_1v2d__generic.html#a8e035b45f69db29e4cac698658ad4de1',1,'olc::v2d_generic::operator/=(const v2d_generic &amp;rhs)']]],
+  ['operator_3c_394',['operator&lt;',['../namespaceolc.html#a2831a8757172243381b08adf69e91e0a',1,'olc']]],
+  ['operator_3c_3c_395',['operator&lt;&lt;',['../structolc_1_1v2d__generic.html#afeb5dac5960ca80197ad7ce455ed190c',1,'olc::v2d_generic']]],
+  ['operator_3d_396',['operator=',['../structolc_1_1_pixel.html#a9e52ebcc91b8460859a606b7bf763b82',1,'olc::Pixel::operator=()'],['../structolc_1_1v2d__generic.html#adff36d90ca79f24401a31cbde706bf8c',1,'olc::v2d_generic::operator=()']]],
+  ['operator_3d_3d_397',['operator==',['../structolc_1_1_pixel.html#a6b82561c110de5447ca4d59c3162d06c',1,'olc::Pixel::operator==()'],['../structolc_1_1v2d__generic.html#ace104acaa0ef181acb36fe75d0aed683',1,'olc::v2d_generic::operator==()']]],
+  ['operator_3e_398',['operator&gt;',['../namespaceolc.html#a34519a6f9006c6c4854bbe762d490900',1,'olc']]],
+  ['operator_5b_5d_399',['operator[]',['../classrender_1_1_resource_manager.html#aec5833434ea7432806785ae0ce1e1d91',1,'render::ResourceManager']]],
+  ['pixelgameengine_400',['PixelGameEngine',['../classolc_1_1_p_g_e_x.html#a3770265094ef2f9700ae97b8ee0fe282',1,'olc::PGEX']]]
+];
diff --git a/doxy/html/search/classes_0.html b/doxy/html/search/classes_0.html
new file mode 100644
index 0000000000000000000000000000000000000000..7e0afc8447c2c41e467814a7bac405daea91856b
--- /dev/null
+++ b/doxy/html/search/classes_0.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="classes_0.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doxy/html/search/classes_0.js b/doxy/html/search/classes_0.js
new file mode 100644
index 0000000000000000000000000000000000000000..ff00e2352764ea7b972c672b7c87287a1ac26005
--- /dev/null
+++ b/doxy/html/search/classes_0.js
@@ -0,0 +1,5 @@
+var searchData=
+[
+  ['characterentity_617',['CharacterEntity',['../classentities_1_1_character_entity.html',1,'entities']]],
+  ['charactertexture_618',['CharacterTexture',['../classrender_1_1_character_texture.html',1,'render']]]
+];
diff --git a/doxy/html/search/classes_1.html b/doxy/html/search/classes_1.html
new file mode 100644
index 0000000000000000000000000000000000000000..b27354fbe149b3a6c98a4dbd59f7b2cc21ea4c71
--- /dev/null
+++ b/doxy/html/search/classes_1.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="classes_1.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doxy/html/search/classes_1.js b/doxy/html/search/classes_1.js
new file mode 100644
index 0000000000000000000000000000000000000000..57f52cf848a4cbdce1a331905d6ec1fe8950092e
--- /dev/null
+++ b/doxy/html/search/classes_1.js
@@ -0,0 +1,9 @@
+var searchData=
+[
+  ['decal_619',['Decal',['../classolc_1_1_decal.html',1,'olc']]],
+  ['decalinstance_620',['DecalInstance',['../structolc_1_1_decal_instance.html',1,'olc']]],
+  ['dummyentity_621',['DummyEntity',['../classentities_1_1_dummy_entity.html',1,'entities']]],
+  ['dungeongenerator_622',['DungeonGenerator',['../class_dungeon_generator.html',1,'']]],
+  ['dynamicarray_623',['DynamicArray',['../class_dynamic_array.html',1,'']]],
+  ['dynamicarray_3c_20std_3a_3ashared_5fptr_3c_20entities_3a_3aentity_20_3e_20_3e_624',['DynamicArray&lt; std::shared_ptr&lt; entities::Entity &gt; &gt;',['../class_dynamic_array.html',1,'']]]
+];
diff --git a/doxy/html/search/classes_2.html b/doxy/html/search/classes_2.html
new file mode 100644
index 0000000000000000000000000000000000000000..5d005980e71feb475d0d0098f918f31e032c9084
--- /dev/null
+++ b/doxy/html/search/classes_2.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="classes_2.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doxy/html/search/classes_2.js b/doxy/html/search/classes_2.js
new file mode 100644
index 0000000000000000000000000000000000000000..f0098ed849726d25eeda88d0f200f56bd58532d5
--- /dev/null
+++ b/doxy/html/search/classes_2.js
@@ -0,0 +1,7 @@
+var searchData=
+[
+  ['emgun_625',['EMGun',['../classweapons_1_1_e_m_gun.html',1,'weapons']]],
+  ['entity_626',['Entity',['../classentities_1_1_entity.html',1,'entities']]],
+  ['entitywithai_627',['EntityWithAI',['../classentities_1_1_entity_with_a_i.html',1,'entities']]],
+  ['explosiveprojectile_628',['ExplosiveProjectile',['../classentities_1_1_explosive_projectile.html',1,'entities']]]
+];
diff --git a/doxy/html/search/classes_3.html b/doxy/html/search/classes_3.html
new file mode 100644
index 0000000000000000000000000000000000000000..fd173aea64f32000967e55dc4b337ba93ef4f859
--- /dev/null
+++ b/doxy/html/search/classes_3.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="classes_3.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doxy/html/search/classes_3.js b/doxy/html/search/classes_3.js
new file mode 100644
index 0000000000000000000000000000000000000000..5c6d41f309e02b6b9f179fd8a080bf76c6ef7f3f
--- /dev/null
+++ b/doxy/html/search/classes_3.js
@@ -0,0 +1,7 @@
+var searchData=
+[
+  ['gameclient_629',['GameClient',['../class_game_client.html',1,'']]],
+  ['gameexception_630',['GameException',['../class_game_exception.html',1,'']]],
+  ['glitchgun_631',['GlitchGun',['../classweapons_1_1_glitch_gun.html',1,'weapons']]],
+  ['glitchtexture_632',['GlitchTexture',['../classweapons_1_1_glitch_texture.html',1,'weapons']]]
+];
diff --git a/doxy/html/search/classes_4.html b/doxy/html/search/classes_4.html
new file mode 100644
index 0000000000000000000000000000000000000000..5414d88dc376561821dfbfd6846bb751f9be9593
--- /dev/null
+++ b/doxy/html/search/classes_4.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="classes_4.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doxy/html/search/classes_4.js b/doxy/html/search/classes_4.js
new file mode 100644
index 0000000000000000000000000000000000000000..9dc361df66ad0d2a61356965005cfabc463de605
--- /dev/null
+++ b/doxy/html/search/classes_4.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+  ['hwbutton_633',['HWButton',['../structolc_1_1_h_w_button.html',1,'olc']]]
+];
diff --git a/doxy/html/search/classes_5.html b/doxy/html/search/classes_5.html
new file mode 100644
index 0000000000000000000000000000000000000000..31c340e78d192493a2602e412623fc81799c7641
--- /dev/null
+++ b/doxy/html/search/classes_5.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="classes_5.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doxy/html/search/classes_5.js b/doxy/html/search/classes_5.js
new file mode 100644
index 0000000000000000000000000000000000000000..61f412e2d2ab2711442d6f25da0783277867c10b
--- /dev/null
+++ b/doxy/html/search/classes_5.js
@@ -0,0 +1,5 @@
+var searchData=
+[
+  ['imageloader_634',['ImageLoader',['../classolc_1_1_image_loader.html',1,'olc']]],
+  ['itexture_635',['ITexture',['../classrender_1_1_i_texture.html',1,'render']]]
+];
diff --git a/doxy/html/search/classes_6.html b/doxy/html/search/classes_6.html
new file mode 100644
index 0000000000000000000000000000000000000000..df33297b1a4132e2d354ae53bfcd26efc823a8e4
--- /dev/null
+++ b/doxy/html/search/classes_6.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="classes_6.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doxy/html/search/classes_6.js b/doxy/html/search/classes_6.js
new file mode 100644
index 0000000000000000000000000000000000000000..8f9d804fde9124fdeefd4c9fb0fcec7c9f728bfb
--- /dev/null
+++ b/doxy/html/search/classes_6.js
@@ -0,0 +1,6 @@
+var searchData=
+[
+  ['layerdesc_636',['LayerDesc',['../structolc_1_1_layer_desc.html',1,'olc']]],
+  ['lazysprite_637',['LazySprite',['../classrender_1_1_lazy_sprite.html',1,'render']]],
+  ['livingentity_638',['LivingEntity',['../classentities_1_1_living_entity.html',1,'entities']]]
+];
diff --git a/doxy/html/search/classes_7.html b/doxy/html/search/classes_7.html
new file mode 100644
index 0000000000000000000000000000000000000000..01628373f19658228353f3ea858d9c15d95d9d36
--- /dev/null
+++ b/doxy/html/search/classes_7.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="classes_7.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doxy/html/search/classes_7.js b/doxy/html/search/classes_7.js
new file mode 100644
index 0000000000000000000000000000000000000000..8e737c8a6c5ab974cc6d34151d55c2987c897252
--- /dev/null
+++ b/doxy/html/search/classes_7.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+  ['meleeweapon_639',['MeleeWeapon',['../classweapons_1_1_melee_weapon.html',1,'weapons']]]
+];
diff --git a/doxy/html/search/classes_8.html b/doxy/html/search/classes_8.html
new file mode 100644
index 0000000000000000000000000000000000000000..4760d7426fbce3cee6993f73e69c8f25f4616f83
--- /dev/null
+++ b/doxy/html/search/classes_8.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="classes_8.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doxy/html/search/classes_8.js b/doxy/html/search/classes_8.js
new file mode 100644
index 0000000000000000000000000000000000000000..8ce4b63ee50b54d0ac31b2fec2791ede8835f482
--- /dev/null
+++ b/doxy/html/search/classes_8.js
@@ -0,0 +1,11 @@
+var searchData=
+[
+  ['pgex_640',['PGEX',['../classolc_1_1_p_g_e_x.html',1,'olc']]],
+  ['pistol_641',['Pistol',['../classweapons_1_1_pistol.html',1,'weapons']]],
+  ['pixel_642',['Pixel',['../structolc_1_1_pixel.html',1,'olc']]],
+  ['pixelgameengine_643',['PixelGameEngine',['../classolc_1_1_pixel_game_engine.html',1,'olc']]],
+  ['platform_644',['Platform',['../classolc_1_1_platform.html',1,'olc']]],
+  ['playerentity_645',['PlayerEntity',['../classentities_1_1_player_entity.html',1,'entities']]],
+  ['predicatedistance_646',['predicateDistance',['../classweapons_1_1_melee_weapon_1_1predicate_distance.html',1,'weapons::MeleeWeapon']]],
+  ['projectileentity_647',['ProjectileEntity',['../classentities_1_1_projectile_entity.html',1,'entities']]]
+];
diff --git a/doxy/html/search/classes_9.html b/doxy/html/search/classes_9.html
new file mode 100644
index 0000000000000000000000000000000000000000..964374e1027f6ea9d1dda579310422bd396dc54c
--- /dev/null
+++ b/doxy/html/search/classes_9.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="classes_9.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doxy/html/search/classes_9.js b/doxy/html/search/classes_9.js
new file mode 100644
index 0000000000000000000000000000000000000000..1fa071fe3e5572cd19387e6324ba3591f0ee388c
--- /dev/null
+++ b/doxy/html/search/classes_9.js
@@ -0,0 +1,10 @@
+var searchData=
+[
+  ['rangedweapon_648',['RangedWeapon',['../classweapons_1_1_ranged_weapon.html',1,'weapons']]],
+  ['renderable_649',['Renderable',['../classolc_1_1_renderable.html',1,'olc']]],
+  ['renderer_650',['Renderer',['../classolc_1_1_renderer.html',1,'olc']]],
+  ['renderexception_651',['RenderException',['../class_render_exception.html',1,'']]],
+  ['resourcebuffer_652',['ResourceBuffer',['../structolc_1_1_resource_buffer.html',1,'olc']]],
+  ['resourcemanager_653',['ResourceManager',['../classrender_1_1_resource_manager.html',1,'render']]],
+  ['resourcepack_654',['ResourcePack',['../classolc_1_1_resource_pack.html',1,'olc']]]
+];
diff --git a/doxy/html/search/classes_a.html b/doxy/html/search/classes_a.html
new file mode 100644
index 0000000000000000000000000000000000000000..1b9b5946d6d7dfcab6ffb9b9693cec1244005f96
--- /dev/null
+++ b/doxy/html/search/classes_a.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="classes_a.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doxy/html/search/classes_a.js b/doxy/html/search/classes_a.js
new file mode 100644
index 0000000000000000000000000000000000000000..d7cb64854677e4bba86c0b5a02926b931ff04ebf
--- /dev/null
+++ b/doxy/html/search/classes_a.js
@@ -0,0 +1,7 @@
+var searchData=
+[
+  ['simplesprite_655',['SimpleSprite',['../classrender_1_1_simple_sprite.html',1,'render']]],
+  ['sprite_656',['Sprite',['../classolc_1_1_sprite.html',1,'olc']]],
+  ['spritemanager_657',['SpriteManager',['../classrender_1_1_sprite_manager.html',1,'render']]],
+  ['squareroomgenerator_658',['SquareRoomGenerator',['../class_square_room_generator.html',1,'']]]
+];
diff --git a/doxy/html/search/classes_b.html b/doxy/html/search/classes_b.html
new file mode 100644
index 0000000000000000000000000000000000000000..dfb2b0a55e2a6cab4e3110865799ba0b0698965d
--- /dev/null
+++ b/doxy/html/search/classes_b.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="classes_b.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doxy/html/search/classes_b.js b/doxy/html/search/classes_b.js
new file mode 100644
index 0000000000000000000000000000000000000000..b663672353c8ffd6e44c90250d08ea662f1a0473
--- /dev/null
+++ b/doxy/html/search/classes_b.js
@@ -0,0 +1,7 @@
+var searchData=
+[
+  ['testgenerator_659',['TestGenerator',['../class_test_generator.html',1,'']]],
+  ['tiletransformedview_660',['TileTransformedView',['../classolc_1_1_tile_transformed_view.html',1,'olc']]],
+  ['transformedview_661',['TransformedView',['../classolc_1_1_transformed_view.html',1,'olc']]],
+  ['typicalmeleeweapon_662',['TypicalMeleeWeapon',['../classweapons_1_1_typical_melee_weapon.html',1,'weapons']]]
+];
diff --git a/doxy/html/search/classes_c.html b/doxy/html/search/classes_c.html
new file mode 100644
index 0000000000000000000000000000000000000000..c080bf715138fe1f960857ceb9a3d1640cdac648
--- /dev/null
+++ b/doxy/html/search/classes_c.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="classes_c.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doxy/html/search/classes_c.js b/doxy/html/search/classes_c.js
new file mode 100644
index 0000000000000000000000000000000000000000..c787452002f2802cdf3ab74ec76aa40b93c4484e
--- /dev/null
+++ b/doxy/html/search/classes_c.js
@@ -0,0 +1,6 @@
+var searchData=
+[
+  ['v2d_5fgeneric_663',['v2d_generic',['../structolc_1_1v2d__generic.html',1,'olc']]],
+  ['v2d_5fgeneric_3c_20float_20_3e_664',['v2d_generic&lt; float &gt;',['../structolc_1_1v2d__generic.html',1,'olc']]],
+  ['v2d_5fgeneric_3c_20int32_5ft_20_3e_665',['v2d_generic&lt; int32_t &gt;',['../structolc_1_1v2d__generic.html',1,'olc']]]
+];
diff --git a/doxy/html/search/classes_d.html b/doxy/html/search/classes_d.html
new file mode 100644
index 0000000000000000000000000000000000000000..dfd670fc82c61d12c48b00e2bea8878fdeaa20c0
--- /dev/null
+++ b/doxy/html/search/classes_d.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="classes_d.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doxy/html/search/classes_d.js b/doxy/html/search/classes_d.js
new file mode 100644
index 0000000000000000000000000000000000000000..51dcc4eae5da4eca3456c2f89b8089ddc90b73d1
--- /dev/null
+++ b/doxy/html/search/classes_d.js
@@ -0,0 +1,6 @@
+var searchData=
+[
+  ['wallentity_666',['WallEntity',['../classentities_1_1_wall_entity.html',1,'entities']]],
+  ['walltexture_667',['WallTexture',['../classrender_1_1_wall_texture.html',1,'render']]],
+  ['weapon_668',['Weapon',['../classweapons_1_1_weapon.html',1,'weapons']]]
+];
diff --git a/doxy/html/search/close.svg b/doxy/html/search/close.svg
new file mode 100644
index 0000000000000000000000000000000000000000..a933eea1a26b0c7ada7cd0053522238923996df1
--- /dev/null
+++ b/doxy/html/search/close.svg
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   viewBox="0 0 11 11"
+   height="11"
+   width="11"
+   id="svg2"
+   version="1.1">
+  <metadata
+     id="metadata8">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <defs
+     id="defs6" />
+  <path
+     id="path12"
+     d="M 5.5 0.5 A 5 5 0 0 0 0.5 5.5 A 5 5 0 0 0 5.5 10.5 A 5 5 0 0 0 10.5 5.5 A 5 5 0 0 0 5.5 0.5 z M 3.5820312 3 A 0.58291923 0.58291923 0 0 1 4 3.1757812 L 5.5 4.6757812 L 7 3.1757812 A 0.58291923 0.58291923 0 0 1 7.4003906 3 A 0.58291923 0.58291923 0 0 1 7.8242188 4 L 6.3242188 5.5 L 7.8242188 7 A 0.58291923 0.58291923 0 1 1 7 7.8242188 L 5.5 6.3242188 L 4 7.8242188 A 0.58291923 0.58291923 0 1 1 3.1757812 7 L 4.6757812 5.5 L 3.1757812 4 A 0.58291923 0.58291923 0 0 1 3.5820312 3 z "
+     style="stroke-width:1.09870648;fill:#bababa;fill-opacity:1" />
+</svg>
diff --git a/doxy/html/search/defines_0.html b/doxy/html/search/defines_0.html
new file mode 100644
index 0000000000000000000000000000000000000000..0ede6c4b3eaafe22acf32736a66d15864066fbe0
--- /dev/null
+++ b/doxy/html/search/defines_0.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="defines_0.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doxy/html/search/defines_0.js b/doxy/html/search/defines_0.js
new file mode 100644
index 0000000000000000000000000000000000000000..569e5dc1f97eebeb5c11c5eb8eac3463da21e334
--- /dev/null
+++ b/doxy/html/search/defines_0.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+  ['_5fsilence_5fexperimental_5ffilesystem_5fdeprecation_5fwarning_1278',['_SILENCE_EXPERIMENTAL_FILESYSTEM_DEPRECATION_WARNING',['../olc_pixel_game_engine_8h.html#aab6af62131aad81d17d3b4afd9db334f',1,'olcPixelGameEngine.h']]]
+];
diff --git a/doxy/html/search/defines_1.html b/doxy/html/search/defines_1.html
new file mode 100644
index 0000000000000000000000000000000000000000..259a51af6cd816283a45e6ce9703008e8d7aa62d
--- /dev/null
+++ b/doxy/html/search/defines_1.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="defines_1.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doxy/html/search/defines_1.js b/doxy/html/search/defines_1.js
new file mode 100644
index 0000000000000000000000000000000000000000..3591a748a999c3d765d52f56ba2fdd5933e6eb0f
--- /dev/null
+++ b/doxy/html/search/defines_1.js
@@ -0,0 +1,8 @@
+var searchData=
+[
+  ['olc_5fgfx_5fopengl10_1279',['OLC_GFX_OPENGL10',['../olc_pixel_game_engine_8h.html#a3778ec518130e256bc0f11a7b8ba82bc',1,'olcPixelGameEngine.h']]],
+  ['olc_5fpge_5fapplication_1280',['OLC_PGE_APPLICATION',['../game_8cpp.html#a1263ab7caa5c273b04d3fcfac6814370',1,'game.cpp']]],
+  ['olc_5fpgex_5ftransformedview_1281',['OLC_PGEX_TRANSFORMEDVIEW',['../game_8cpp.html#addb987782a88225c5c14f86c3db1cbb0',1,'game.cpp']]],
+  ['olc_5fpgex_5ftransformedview_5fh_1282',['OLC_PGEX_TRANSFORMEDVIEW_H',['../olc_p_g_e_x___transformed_view_8h.html#a47f1ada970406eff596ebe181debec3d',1,'olcPGEX_TransformedView.h']]],
+  ['olct_1283',['olcT',['../olc_pixel_game_engine_8h.html#ac02283d1990a8623a332f7f7f2230a1f',1,'olcPixelGameEngine.h']]]
+];
diff --git a/doxy/html/search/defines_2.html b/doxy/html/search/defines_2.html
new file mode 100644
index 0000000000000000000000000000000000000000..731dc4c9ac59b418b9422e76da7577618a0497fc
--- /dev/null
+++ b/doxy/html/search/defines_2.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="defines_2.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doxy/html/search/defines_2.js b/doxy/html/search/defines_2.js
new file mode 100644
index 0000000000000000000000000000000000000000..e00e8672fde379b894bd9f7bae76c2bf9d02a2f7
--- /dev/null
+++ b/doxy/html/search/defines_2.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+  ['pge_5fver_1284',['PGE_VER',['../olc_pixel_game_engine_8h.html#a6301d810e4f45704594786997b2261ea',1,'olcPixelGameEngine.h']]]
+];
diff --git a/doxy/html/search/defines_3.html b/doxy/html/search/defines_3.html
new file mode 100644
index 0000000000000000000000000000000000000000..1d84c785842829195bbaa180ca7d51f46fa8e6c5
--- /dev/null
+++ b/doxy/html/search/defines_3.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="defines_3.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doxy/html/search/defines_3.js b/doxy/html/search/defines_3.js
new file mode 100644
index 0000000000000000000000000000000000000000..0cc589a812eaa6ddad39f0343dc64dcd9d4e4900
--- /dev/null
+++ b/doxy/html/search/defines_3.js
@@ -0,0 +1,5 @@
+var searchData=
+[
+  ['unused_1285',['UNUSED',['../olc_pixel_game_engine_8h.html#a86d500a34c624c2cae56bc25a31b12f3',1,'olcPixelGameEngine.h']]],
+  ['use_5fexperimental_5ffs_1286',['USE_EXPERIMENTAL_FS',['../olc_pixel_game_engine_8h.html#a7f7123ffe9352ede10ecc711ae8901d3',1,'olcPixelGameEngine.h']]]
+];
diff --git a/doxy/html/search/enums_0.html b/doxy/html/search/enums_0.html
new file mode 100644
index 0000000000000000000000000000000000000000..9035e6aa12120a30f95607d9ce87aa3c4f99607d
--- /dev/null
+++ b/doxy/html/search/enums_0.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="enums_0.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doxy/html/search/enums_0.js b/doxy/html/search/enums_0.js
new file mode 100644
index 0000000000000000000000000000000000000000..b5c6fa6d5cf874da198d543ab998b83c021f6f1d
--- /dev/null
+++ b/doxy/html/search/enums_0.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+  ['decalmode_1156',['DecalMode',['../namespaceolc.html#aeda642f63378f868193c28e8613138ca',1,'olc']]]
+];
diff --git a/doxy/html/search/enums_1.html b/doxy/html/search/enums_1.html
new file mode 100644
index 0000000000000000000000000000000000000000..ae1c6f74e2adbb0ee0f84930f08d4115fa868839
--- /dev/null
+++ b/doxy/html/search/enums_1.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="enums_1.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doxy/html/search/enums_1.js b/doxy/html/search/enums_1.js
new file mode 100644
index 0000000000000000000000000000000000000000..7a28f69c28cd0a54db3777ccca821cb72f8d04d6
--- /dev/null
+++ b/doxy/html/search/enums_1.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+  ['flip_1157',['Flip',['../classolc_1_1_sprite.html#ad0d1976d2060997f5cd99eb284a5dc24',1,'olc::Sprite']]]
+];
diff --git a/doxy/html/search/enums_2.html b/doxy/html/search/enums_2.html
new file mode 100644
index 0000000000000000000000000000000000000000..3c310ad982086ab94dc9e3cf9251c1c5f7afbc79
--- /dev/null
+++ b/doxy/html/search/enums_2.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="enums_2.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doxy/html/search/enums_2.js b/doxy/html/search/enums_2.js
new file mode 100644
index 0000000000000000000000000000000000000000..92dc747ac6145c9dcdbcae66b5b7d0c04d448332
--- /dev/null
+++ b/doxy/html/search/enums_2.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+  ['key_1158',['Key',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7',1,'olc']]]
+];
diff --git a/doxy/html/search/enums_3.html b/doxy/html/search/enums_3.html
new file mode 100644
index 0000000000000000000000000000000000000000..bdf445fa414e18ca16b68d4ceb973ee7c21b0974
--- /dev/null
+++ b/doxy/html/search/enums_3.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="enums_3.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doxy/html/search/enums_3.js b/doxy/html/search/enums_3.js
new file mode 100644
index 0000000000000000000000000000000000000000..1764f00c604ff036ef40eeea64269ec991c5d70b
--- /dev/null
+++ b/doxy/html/search/enums_3.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+  ['mode_1159',['Mode',['../structolc_1_1_pixel.html#ae9012164940526ddb09b217dbbddfd65',1,'olc::Pixel::Mode()'],['../classolc_1_1_sprite.html#a78b7f14903f9f0bb536b66c37f3139cf',1,'olc::Sprite::Mode()']]]
+];
diff --git a/doxy/html/search/enums_4.html b/doxy/html/search/enums_4.html
new file mode 100644
index 0000000000000000000000000000000000000000..56322c052d6d72fa4505b8dfffae1db1fb85021f
--- /dev/null
+++ b/doxy/html/search/enums_4.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="enums_4.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doxy/html/search/enums_4.js b/doxy/html/search/enums_4.js
new file mode 100644
index 0000000000000000000000000000000000000000..10f8ead796cddc6484dfa4864d9d9bee97b9c531
--- /dev/null
+++ b/doxy/html/search/enums_4.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+  ['rcode_1160',['rcode',['../namespaceolc.html#a3d40e9b1c005602550230690b55ae87b',1,'olc']]]
+];
diff --git a/doxy/html/search/enumvalues_0.html b/doxy/html/search/enumvalues_0.html
new file mode 100644
index 0000000000000000000000000000000000000000..c2cd472acd31260a65ec7a97c007a704b5cace24
--- /dev/null
+++ b/doxy/html/search/enumvalues_0.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="enumvalues_0.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doxy/html/search/enumvalues_0.js b/doxy/html/search/enumvalues_0.js
new file mode 100644
index 0000000000000000000000000000000000000000..7b54e69f016e09c754019979d8e50671fae13d0f
--- /dev/null
+++ b/doxy/html/search/enumvalues_0.js
@@ -0,0 +1,6 @@
+var searchData=
+[
+  ['a_1161',['A',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a3e1af6612f2964145f438bb63073098d',1,'olc']]],
+  ['additive_1162',['ADDITIVE',['../namespaceolc.html#aeda642f63378f868193c28e8613138caa8d8c2c7c04ebe2b70bca10a3060ca491',1,'olc']]],
+  ['alpha_1163',['ALPHA',['../structolc_1_1_pixel.html#ae9012164940526ddb09b217dbbddfd65a561bc0234492261a62a3191252692753',1,'olc::Pixel']]]
+];
diff --git a/doxy/html/search/enumvalues_1.html b/doxy/html/search/enumvalues_1.html
new file mode 100644
index 0000000000000000000000000000000000000000..fb0ff68ad143788f764fb9a183361efb36599909
--- /dev/null
+++ b/doxy/html/search/enumvalues_1.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="enumvalues_1.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doxy/html/search/enumvalues_1.js b/doxy/html/search/enumvalues_1.js
new file mode 100644
index 0000000000000000000000000000000000000000..2f9991b1b3d4c3915cd29c7a8c19ad5f5d3d9172
--- /dev/null
+++ b/doxy/html/search/enumvalues_1.js
@@ -0,0 +1,5 @@
+var searchData=
+[
+  ['b_1164',['B',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a8baf1c6fa76f36bae92c12df88f4c84d',1,'olc']]],
+  ['back_1165',['BACK',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a390af039d8a8c4ab71787f001f810521',1,'olc']]]
+];
diff --git a/doxy/html/search/enumvalues_10.html b/doxy/html/search/enumvalues_10.html
new file mode 100644
index 0000000000000000000000000000000000000000..309790049234920d46ce4d2e970ef328c2532ff8
--- /dev/null
+++ b/doxy/html/search/enumvalues_10.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="enumvalues_10.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doxy/html/search/enumvalues_10.js b/doxy/html/search/enumvalues_10.js
new file mode 100644
index 0000000000000000000000000000000000000000..efff94c24f8e9506f7310da98df1912e9cb84ef8
--- /dev/null
+++ b/doxy/html/search/enumvalues_10.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+  ['q_1254',['Q',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a6d49ec75b05a97e8714ac8c244ad29a8',1,'olc']]]
+];
diff --git a/doxy/html/search/enumvalues_11.html b/doxy/html/search/enumvalues_11.html
new file mode 100644
index 0000000000000000000000000000000000000000..63e7412e16231f6320a96850330b8f1d075ae63e
--- /dev/null
+++ b/doxy/html/search/enumvalues_11.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="enumvalues_11.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doxy/html/search/enumvalues_11.js b/doxy/html/search/enumvalues_11.js
new file mode 100644
index 0000000000000000000000000000000000000000..231f099906d340b1f6d413193f00dbb6d4fcef20
--- /dev/null
+++ b/doxy/html/search/enumvalues_11.js
@@ -0,0 +1,6 @@
+var searchData=
+[
+  ['r_1255',['R',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a7417555746b2b1026b8ba65912817111',1,'olc']]],
+  ['return_1256',['RETURN',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a4f04a0bac23ee4f7b875d0328f29df27',1,'olc']]],
+  ['right_1257',['RIGHT',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a58e7b18972e446a03ce5ce915bc2d34d',1,'olc']]]
+];
diff --git a/doxy/html/search/enumvalues_12.html b/doxy/html/search/enumvalues_12.html
new file mode 100644
index 0000000000000000000000000000000000000000..b88be1d11802dd80c778a68aca21f84c1e281100
--- /dev/null
+++ b/doxy/html/search/enumvalues_12.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="enumvalues_12.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doxy/html/search/enumvalues_12.js b/doxy/html/search/enumvalues_12.js
new file mode 100644
index 0000000000000000000000000000000000000000..0df8e5bb98ab4d97a4f5807c7c285e669489cd26
--- /dev/null
+++ b/doxy/html/search/enumvalues_12.js
@@ -0,0 +1,8 @@
+var searchData=
+[
+  ['s_1258',['S',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a050dfda2928d980787eeebcaaa4e6fa7',1,'olc']]],
+  ['scroll_1259',['SCROLL',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a44cf52f457ad06d45cd947c72c291ccc',1,'olc']]],
+  ['shift_1260',['SHIFT',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a4cd994e0e2285e9b52e129f74c84aa0b',1,'olc']]],
+  ['space_1261',['SPACE',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a925d9a708542cd050a0b4f87bd7ba297',1,'olc']]],
+  ['stencil_1262',['STENCIL',['../namespaceolc.html#aeda642f63378f868193c28e8613138caa301b25ea9a653329b5d5d727f92514c4',1,'olc']]]
+];
diff --git a/doxy/html/search/enumvalues_13.html b/doxy/html/search/enumvalues_13.html
new file mode 100644
index 0000000000000000000000000000000000000000..77b0a40b439b9a70d363c35532ccf1f529bafb26
--- /dev/null
+++ b/doxy/html/search/enumvalues_13.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="enumvalues_13.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doxy/html/search/enumvalues_13.js b/doxy/html/search/enumvalues_13.js
new file mode 100644
index 0000000000000000000000000000000000000000..d7722ec3579d46633a88269b3474920037babf64
--- /dev/null
+++ b/doxy/html/search/enumvalues_13.js
@@ -0,0 +1,5 @@
+var searchData=
+[
+  ['t_1263',['T',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0',1,'olc']]],
+  ['tab_1264',['TAB',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7aef93738bc8d89f07932dd1a603b021bd',1,'olc']]]
+];
diff --git a/doxy/html/search/enumvalues_14.html b/doxy/html/search/enumvalues_14.html
new file mode 100644
index 0000000000000000000000000000000000000000..906d7bc9cd11c25f070a646ea638fd24eca82e02
--- /dev/null
+++ b/doxy/html/search/enumvalues_14.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="enumvalues_14.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doxy/html/search/enumvalues_14.js b/doxy/html/search/enumvalues_14.js
new file mode 100644
index 0000000000000000000000000000000000000000..f2a1fe80cf79964fa4b96ac9466196af1aee153f
--- /dev/null
+++ b/doxy/html/search/enumvalues_14.js
@@ -0,0 +1,5 @@
+var searchData=
+[
+  ['u_1265',['U',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a62c2493e1585db2af15cb70ac979fb09',1,'olc']]],
+  ['up_1266',['UP',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a2b35f0b03e615b828187a990935344c4',1,'olc']]]
+];
diff --git a/doxy/html/search/enumvalues_15.html b/doxy/html/search/enumvalues_15.html
new file mode 100644
index 0000000000000000000000000000000000000000..26ea2d97ef2247eceb8acb5800ac5fc1619516cd
--- /dev/null
+++ b/doxy/html/search/enumvalues_15.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="enumvalues_15.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doxy/html/search/enumvalues_15.js b/doxy/html/search/enumvalues_15.js
new file mode 100644
index 0000000000000000000000000000000000000000..ac1988b999e4092583f7d911628e40fb168fd7b0
--- /dev/null
+++ b/doxy/html/search/enumvalues_15.js
@@ -0,0 +1,5 @@
+var searchData=
+[
+  ['v_1267',['V',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a170eaa7913d25c0ff02712bd93d7bf81',1,'olc']]],
+  ['vert_1268',['VERT',['../classolc_1_1_sprite.html#ad0d1976d2060997f5cd99eb284a5dc24a7d2b99d18b574e41332e569d141914c5',1,'olc::Sprite']]]
+];
diff --git a/doxy/html/search/enumvalues_16.html b/doxy/html/search/enumvalues_16.html
new file mode 100644
index 0000000000000000000000000000000000000000..9d46a483d1252b3009078f000d156e640086a20b
--- /dev/null
+++ b/doxy/html/search/enumvalues_16.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="enumvalues_16.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doxy/html/search/enumvalues_16.js b/doxy/html/search/enumvalues_16.js
new file mode 100644
index 0000000000000000000000000000000000000000..cd09755de75a4482970886f0b6d5e2b226ab3dd1
--- /dev/null
+++ b/doxy/html/search/enumvalues_16.js
@@ -0,0 +1,5 @@
+var searchData=
+[
+  ['w_1269',['W',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ac1ae605c94e2d813c718148311c101d1',1,'olc']]],
+  ['wireframe_1270',['WIREFRAME',['../namespaceolc.html#aeda642f63378f868193c28e8613138caa43ea8c7cefb63ec314b4df5628cba577',1,'olc']]]
+];
diff --git a/doxy/html/search/enumvalues_17.html b/doxy/html/search/enumvalues_17.html
new file mode 100644
index 0000000000000000000000000000000000000000..eef605de3c4cf1d82ea1dd336b3b32ab8799e18b
--- /dev/null
+++ b/doxy/html/search/enumvalues_17.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="enumvalues_17.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doxy/html/search/enumvalues_17.js b/doxy/html/search/enumvalues_17.js
new file mode 100644
index 0000000000000000000000000000000000000000..d597749b5c12defa19a42339f56e32f2aad2695a
--- /dev/null
+++ b/doxy/html/search/enumvalues_17.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+  ['x_1271',['X',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a259dcb71eab0ee6c477f792543f43ec5',1,'olc']]]
+];
diff --git a/doxy/html/search/enumvalues_18.html b/doxy/html/search/enumvalues_18.html
new file mode 100644
index 0000000000000000000000000000000000000000..a2e882a6c6a5070c3b5eddeaf4c4e04ab81809e5
--- /dev/null
+++ b/doxy/html/search/enumvalues_18.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="enumvalues_18.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doxy/html/search/enumvalues_18.js b/doxy/html/search/enumvalues_18.js
new file mode 100644
index 0000000000000000000000000000000000000000..8672a34cd3f98e67fae9a6620bf52ccf164fd375
--- /dev/null
+++ b/doxy/html/search/enumvalues_18.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+  ['y_1272',['Y',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a6207f4e5a37e546fa3881817046587b9',1,'olc']]]
+];
diff --git a/doxy/html/search/enumvalues_19.html b/doxy/html/search/enumvalues_19.html
new file mode 100644
index 0000000000000000000000000000000000000000..a3d00128c5e5d7227d6876d8046837d43541c741
--- /dev/null
+++ b/doxy/html/search/enumvalues_19.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="enumvalues_19.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doxy/html/search/enumvalues_19.js b/doxy/html/search/enumvalues_19.js
new file mode 100644
index 0000000000000000000000000000000000000000..b64ae662d6bf0d08315938f0030a2188ff4dd5ca
--- /dev/null
+++ b/doxy/html/search/enumvalues_19.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+  ['z_1273',['Z',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a7c408b7a6694f74ac270013753b13aaa',1,'olc']]]
+];
diff --git a/doxy/html/search/enumvalues_2.html b/doxy/html/search/enumvalues_2.html
new file mode 100644
index 0000000000000000000000000000000000000000..17b826033ed73d085fd5706b986d1cb9b48aade4
--- /dev/null
+++ b/doxy/html/search/enumvalues_2.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="enumvalues_2.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doxy/html/search/enumvalues_2.js b/doxy/html/search/enumvalues_2.js
new file mode 100644
index 0000000000000000000000000000000000000000..8858561d6df2437a2583b0a8d84fa80138e6277f
--- /dev/null
+++ b/doxy/html/search/enumvalues_2.js
@@ -0,0 +1,8 @@
+var searchData=
+[
+  ['c_1166',['C',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7aaa5fe91e0948a39a142504c1f9067549',1,'olc']]],
+  ['caps_5flock_1167',['CAPS_LOCK',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a523c88e17275650861203e32067dde01',1,'olc']]],
+  ['comma_1168',['COMMA',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ae2fab0c220f54cd28729c9340951ecb4',1,'olc']]],
+  ['ctrl_1169',['CTRL',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ae7e6e69075c36b0e44309aae888b86dc',1,'olc']]],
+  ['custom_1170',['CUSTOM',['../structolc_1_1_pixel.html#ae9012164940526ddb09b217dbbddfd65aed57164e9f056c1af912b3069eb45deb',1,'olc::Pixel']]]
+];
diff --git a/doxy/html/search/enumvalues_3.html b/doxy/html/search/enumvalues_3.html
new file mode 100644
index 0000000000000000000000000000000000000000..872076060bd0652c19b44626d70161b2df0a0e39
--- /dev/null
+++ b/doxy/html/search/enumvalues_3.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="enumvalues_3.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doxy/html/search/enumvalues_3.js b/doxy/html/search/enumvalues_3.js
new file mode 100644
index 0000000000000000000000000000000000000000..271030e28f36089643642ab3515b708b0e026709
--- /dev/null
+++ b/doxy/html/search/enumvalues_3.js
@@ -0,0 +1,6 @@
+var searchData=
+[
+  ['d_1171',['D',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a7323455add036f066f8b23546f0c37bb',1,'olc']]],
+  ['del_1172',['DEL',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a5a979509d792ab38404b7a2aca12c981',1,'olc']]],
+  ['down_1173',['DOWN',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a506f2ec576fcd3a8fabd37461bba83f8',1,'olc']]]
+];
diff --git a/doxy/html/search/enumvalues_4.html b/doxy/html/search/enumvalues_4.html
new file mode 100644
index 0000000000000000000000000000000000000000..f1a8897fb11bf868ff229d2d49fe96f4be420617
--- /dev/null
+++ b/doxy/html/search/enumvalues_4.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="enumvalues_4.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doxy/html/search/enumvalues_4.js b/doxy/html/search/enumvalues_4.js
new file mode 100644
index 0000000000000000000000000000000000000000..5448f4d9433c90e86b6204988b3a765a70577c11
--- /dev/null
+++ b/doxy/html/search/enumvalues_4.js
@@ -0,0 +1,9 @@
+var searchData=
+[
+  ['e_1174',['E',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ad29058aa6514f4f9dcdefdba93adc8ec',1,'olc']]],
+  ['end_1175',['END',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a53394a407c13bf8192b2946607d27a0f',1,'olc']]],
+  ['enter_1176',['ENTER',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a31321cae06dfe0989acbbe94c5272b33',1,'olc']]],
+  ['enum_5fend_1177',['ENUM_END',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a35430b793d6fae00ed8b060cb0accf32',1,'olc']]],
+  ['equals_1178',['EQUALS',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7aa82c0ef0b75db6208407e90f6f77f002',1,'olc']]],
+  ['escape_1179',['ESCAPE',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ac58fbe549b8c1a668c42a17d9e572b0f',1,'olc']]]
+];
diff --git a/doxy/html/search/enumvalues_5.html b/doxy/html/search/enumvalues_5.html
new file mode 100644
index 0000000000000000000000000000000000000000..396f936c19b1c9127de16d883c2f165571cb63ee
--- /dev/null
+++ b/doxy/html/search/enumvalues_5.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="enumvalues_5.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doxy/html/search/enumvalues_5.js b/doxy/html/search/enumvalues_5.js
new file mode 100644
index 0000000000000000000000000000000000000000..aee2b9221f34ba6ab62512668c6f77ff6cc075c9
--- /dev/null
+++ b/doxy/html/search/enumvalues_5.js
@@ -0,0 +1,17 @@
+var searchData=
+[
+  ['f_1180',['F',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a614698cb99af6a9effa5d7ce88b2c674',1,'olc']]],
+  ['f1_1181',['F1',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a17a119da4c7fd21cd061972ac8f8029a',1,'olc']]],
+  ['f10_1182',['F10',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7abe90f6618beb39117690b93a5c9d8ccb',1,'olc']]],
+  ['f11_1183',['F11',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7aba366840d455651d4cedc7f7ee4c770b',1,'olc']]],
+  ['f12_1184',['F12',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a9bc869632cc0095b7d8e456efd571969',1,'olc']]],
+  ['f2_1185',['F2',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a207c1404adcacfadf941ffc681485026',1,'olc']]],
+  ['f3_1186',['F3',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a573a484680114e221c1a3ecd8307d61a',1,'olc']]],
+  ['f4_1187',['F4',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a3c808be2b8b226138090bb3884bdc52b',1,'olc']]],
+  ['f5_1188',['F5',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ab9dd7de33e89c10afa7947bc5ff6fdea',1,'olc']]],
+  ['f6_1189',['F6',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a12e4309f479cd3e34476ef3be7986847',1,'olc']]],
+  ['f7_1190',['F7',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ac955ad4fdd41f4d3600b29da016fdf36',1,'olc']]],
+  ['f8_1191',['F8',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ab9ff66b449c18ecdb5b83a2e055e393b',1,'olc']]],
+  ['f9_1192',['F9',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a2f2949bdd6d44b3c918531ebc30d8186',1,'olc']]],
+  ['fail_1193',['FAIL',['../namespaceolc.html#a3d40e9b1c005602550230690b55ae87baadc8ac6e9769db5bb290fbf5f8284dbf',1,'olc']]]
+];
diff --git a/doxy/html/search/enumvalues_6.html b/doxy/html/search/enumvalues_6.html
new file mode 100644
index 0000000000000000000000000000000000000000..a1f80294818e5a111cde627b0d1a40e34dfe3be8
--- /dev/null
+++ b/doxy/html/search/enumvalues_6.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="enumvalues_6.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doxy/html/search/enumvalues_6.js b/doxy/html/search/enumvalues_6.js
new file mode 100644
index 0000000000000000000000000000000000000000..5cfda39ad398dc25e22e67e3ab2adf4a9985d93b
--- /dev/null
+++ b/doxy/html/search/enumvalues_6.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+  ['g_1194',['G',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a1a7a9ef9ded3ee4bb7b7e4fbc69ae4b8',1,'olc']]]
+];
diff --git a/doxy/html/search/enumvalues_7.html b/doxy/html/search/enumvalues_7.html
new file mode 100644
index 0000000000000000000000000000000000000000..88b51765aa21007e4b9f5a12be79308784060bf5
--- /dev/null
+++ b/doxy/html/search/enumvalues_7.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="enumvalues_7.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doxy/html/search/enumvalues_7.js b/doxy/html/search/enumvalues_7.js
new file mode 100644
index 0000000000000000000000000000000000000000..932319e2c39af79ff9287cbea7baa57e5340d8f1
--- /dev/null
+++ b/doxy/html/search/enumvalues_7.js
@@ -0,0 +1,6 @@
+var searchData=
+[
+  ['h_1195',['H',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a224c0773e09bdb7fb13683fbb4eeee1a',1,'olc']]],
+  ['home_1196',['HOME',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a29419f86c551b623c828f9530f301389',1,'olc']]],
+  ['horiz_1197',['HORIZ',['../classolc_1_1_sprite.html#ad0d1976d2060997f5cd99eb284a5dc24a2ff5b18e468156f629a10c5b515d78cd',1,'olc::Sprite']]]
+];
diff --git a/doxy/html/search/enumvalues_8.html b/doxy/html/search/enumvalues_8.html
new file mode 100644
index 0000000000000000000000000000000000000000..c7206fa7e25028eb3c7aad8b23cbc40c6e78c836
--- /dev/null
+++ b/doxy/html/search/enumvalues_8.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="enumvalues_8.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doxy/html/search/enumvalues_8.js b/doxy/html/search/enumvalues_8.js
new file mode 100644
index 0000000000000000000000000000000000000000..9a6729b8d897a90ce48bc41815fc2d1165fa4d6c
--- /dev/null
+++ b/doxy/html/search/enumvalues_8.js
@@ -0,0 +1,6 @@
+var searchData=
+[
+  ['i_1198',['I',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ac242ddce5db0d462674ead1db3956a19',1,'olc']]],
+  ['illuminate_1199',['ILLUMINATE',['../namespaceolc.html#aeda642f63378f868193c28e8613138caab892134232b911680f88a64a24883f7d',1,'olc']]],
+  ['ins_1200',['INS',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a691b8388214af88a7794c43d31fbe16a',1,'olc']]]
+];
diff --git a/doxy/html/search/enumvalues_9.html b/doxy/html/search/enumvalues_9.html
new file mode 100644
index 0000000000000000000000000000000000000000..8c3600477198087ebd864463c0c8987093b066fd
--- /dev/null
+++ b/doxy/html/search/enumvalues_9.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="enumvalues_9.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doxy/html/search/enumvalues_9.js b/doxy/html/search/enumvalues_9.js
new file mode 100644
index 0000000000000000000000000000000000000000..0801619fee4b610cbb0f30521968c759e5f9b140
--- /dev/null
+++ b/doxy/html/search/enumvalues_9.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+  ['j_1201',['J',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a476769e330b87f2fb75aaa684c2f6373',1,'olc']]]
+];
diff --git a/doxy/html/search/enumvalues_a.html b/doxy/html/search/enumvalues_a.html
new file mode 100644
index 0000000000000000000000000000000000000000..a706e4dfe30e5fdfc8bf82939f7f272d47a1910f
--- /dev/null
+++ b/doxy/html/search/enumvalues_a.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="enumvalues_a.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doxy/html/search/enumvalues_a.js b/doxy/html/search/enumvalues_a.js
new file mode 100644
index 0000000000000000000000000000000000000000..008aee78593083a77e8c1431d90e74f4a69a66bd
--- /dev/null
+++ b/doxy/html/search/enumvalues_a.js
@@ -0,0 +1,14 @@
+var searchData=
+[
+  ['k_1202',['K',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a136309f07b14d70a8561a69ca563bab7',1,'olc']]],
+  ['k0_1203',['K0',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a2dd03c94eccd6d1259d4b2b51b7f85a7',1,'olc']]],
+  ['k1_1204',['K1',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a353892e1e3473d0a6d3427dd86080506',1,'olc']]],
+  ['k2_1205',['K2',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ab3b331dc3158175e2c567f7ebdf9fa75',1,'olc']]],
+  ['k3_1206',['K3',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7aba2ad21d300fb113ff4e82665800cf75',1,'olc']]],
+  ['k4_1207',['K4',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7aadd3a981032ec5fc07440dd0dbd1a3b3',1,'olc']]],
+  ['k5_1208',['K5',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a353906757178b0d48008b62cdca75332',1,'olc']]],
+  ['k6_1209',['K6',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a81afecef4b483614604bfc5341d8a2d5',1,'olc']]],
+  ['k7_1210',['K7',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a89291a8afb7ac7b481090dc97f643263',1,'olc']]],
+  ['k8_1211',['K8',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a636f4e49257a6476ad0aab590318672f',1,'olc']]],
+  ['k9_1212',['K9',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a949dddf48734610228c20566a33912bc',1,'olc']]]
+];
diff --git a/doxy/html/search/enumvalues_b.html b/doxy/html/search/enumvalues_b.html
new file mode 100644
index 0000000000000000000000000000000000000000..28482d8039fc51cf16c5ea017049d04a96e048c1
--- /dev/null
+++ b/doxy/html/search/enumvalues_b.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="enumvalues_b.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doxy/html/search/enumvalues_b.js b/doxy/html/search/enumvalues_b.js
new file mode 100644
index 0000000000000000000000000000000000000000..9bad21195055d4d4b687b696d172a526967116d9
--- /dev/null
+++ b/doxy/html/search/enumvalues_b.js
@@ -0,0 +1,5 @@
+var searchData=
+[
+  ['l_1213',['L',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a4d809048542b770e810d48919c8f8500',1,'olc']]],
+  ['left_1214',['LEFT',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a4da01be8126ba4113717cc6385ad22d2',1,'olc']]]
+];
diff --git a/doxy/html/search/enumvalues_c.html b/doxy/html/search/enumvalues_c.html
new file mode 100644
index 0000000000000000000000000000000000000000..7934e8e39f1fb7306a041e7316e7215ef4681890
--- /dev/null
+++ b/doxy/html/search/enumvalues_c.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="enumvalues_c.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doxy/html/search/enumvalues_c.js b/doxy/html/search/enumvalues_c.js
new file mode 100644
index 0000000000000000000000000000000000000000..82919d76048ac6d989756e4fa3cb4412e4b348da
--- /dev/null
+++ b/doxy/html/search/enumvalues_c.js
@@ -0,0 +1,7 @@
+var searchData=
+[
+  ['m_1215',['M',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7afda4a6ac36e1870cd31522ac4e40a113',1,'olc']]],
+  ['mask_1216',['MASK',['../structolc_1_1_pixel.html#ae9012164940526ddb09b217dbbddfd65a4062d4baa9669fb2e91f31a15061a9d6',1,'olc::Pixel']]],
+  ['minus_1217',['MINUS',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a4b3a1d83a513de0e2c3c8ba2a8a5fd2d',1,'olc']]],
+  ['multiplicative_1218',['MULTIPLICATIVE',['../namespaceolc.html#aeda642f63378f868193c28e8613138caa418ef46700a2836c0d6218e2b46bf564',1,'olc']]]
+];
diff --git a/doxy/html/search/enumvalues_d.html b/doxy/html/search/enumvalues_d.html
new file mode 100644
index 0000000000000000000000000000000000000000..f4e3cd0215906554ea848c31aed71790f49f9234
--- /dev/null
+++ b/doxy/html/search/enumvalues_d.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="enumvalues_d.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doxy/html/search/enumvalues_d.js b/doxy/html/search/enumvalues_d.js
new file mode 100644
index 0000000000000000000000000000000000000000..88551bebb98eb371b7301d8a2ca8536c5840aee0
--- /dev/null
+++ b/doxy/html/search/enumvalues_d.js
@@ -0,0 +1,22 @@
+var searchData=
+[
+  ['n_1219',['N',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ab9b5b3e2b7e4f47de4a8d84e03cd5911',1,'olc']]],
+  ['no_5ffile_1220',['NO_FILE',['../namespaceolc.html#a3d40e9b1c005602550230690b55ae87babfe0b9ad99c942b01b1ee61404f559b5',1,'olc']]],
+  ['none_1221',['NONE',['../classolc_1_1_sprite.html#ad0d1976d2060997f5cd99eb284a5dc24a6ad338b4e63faacfbed68b020c3a0c0c',1,'olc::Sprite::NONE()'],['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a569010ded143bbdfd1b2dc8e82327b45',1,'olc::NONE()']]],
+  ['normal_1222',['NORMAL',['../structolc_1_1_pixel.html#ae9012164940526ddb09b217dbbddfd65a8abacc164c972b4684c2a76efd381018',1,'olc::Pixel::NORMAL()'],['../classolc_1_1_sprite.html#a78b7f14903f9f0bb536b66c37f3139cfa1128b229a2ab5d7b344aeefd329252a1',1,'olc::Sprite::NORMAL()'],['../namespaceolc.html#aeda642f63378f868193c28e8613138caa1e23852820b9154316c7c06e2b7ba051',1,'olc::NORMAL()']]],
+  ['np0_1223',['NP0',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a16054c3b1419b9679d95ac70ef262666',1,'olc']]],
+  ['np1_1224',['NP1',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a96c49dba90b7ecdfcf88e18c2842a964',1,'olc']]],
+  ['np2_1225',['NP2',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a7ca6517890a3566dbf758618f9c7690f',1,'olc']]],
+  ['np3_1226',['NP3',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7aab84341adb43a72b48030189f9919360',1,'olc']]],
+  ['np4_1227',['NP4',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a443551e4895cf1d2be984eba0bd7098e',1,'olc']]],
+  ['np5_1228',['NP5',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a0ba7e1a6dbc9d1291a40172a09bb49a4',1,'olc']]],
+  ['np6_1229',['NP6',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ad6aae0ca10843b8046ee0186af4e42f9',1,'olc']]],
+  ['np7_1230',['NP7',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7afee25adbffa6e8fc092d52193195182f',1,'olc']]],
+  ['np8_1231',['NP8',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a468bb1704a74fc6e42d28e7bee8ecb51',1,'olc']]],
+  ['np9_1232',['NP9',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a53987c7c18a4a4479c4e1ff7f65c414e',1,'olc']]],
+  ['np_5fadd_1233',['NP_ADD',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7af15830fd3562b144e15a9d8abeb6c118',1,'olc']]],
+  ['np_5fdecimal_1234',['NP_DECIMAL',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a2c21f93f355bf0a6baa7e205acd86b50',1,'olc']]],
+  ['np_5fdiv_1235',['NP_DIV',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7aee5afd77eb82eb3111195ee300ff3714',1,'olc']]],
+  ['np_5fmul_1236',['NP_MUL',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ae2ce826d1d0de6429f9f28a19d11edfb',1,'olc']]],
+  ['np_5fsub_1237',['NP_SUB',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7aade223a1643f8d607eb44fff1bbaae8e',1,'olc']]]
+];
diff --git a/doxy/html/search/enumvalues_e.html b/doxy/html/search/enumvalues_e.html
new file mode 100644
index 0000000000000000000000000000000000000000..d8117df5aad5e9699632f22848af53e9680753b7
--- /dev/null
+++ b/doxy/html/search/enumvalues_e.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="enumvalues_e.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doxy/html/search/enumvalues_e.js b/doxy/html/search/enumvalues_e.js
new file mode 100644
index 0000000000000000000000000000000000000000..8c936f622f4a9ca0e7406d8a5840fd5925fb9f09
--- /dev/null
+++ b/doxy/html/search/enumvalues_e.js
@@ -0,0 +1,13 @@
+var searchData=
+[
+  ['o_1238',['O',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a7f95c3a8701b46a2cca143078d7e3aea',1,'olc']]],
+  ['oem_5f1_1239',['OEM_1',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a3a044efaf7d74df21e84a29063006eae',1,'olc']]],
+  ['oem_5f2_1240',['OEM_2',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ad29833dd46d756ecf0e9d477d0845450',1,'olc']]],
+  ['oem_5f3_1241',['OEM_3',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7abb25924adf005b39efaef185f332a3ad',1,'olc']]],
+  ['oem_5f4_1242',['OEM_4',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7aa09e2508e2f2fd372d3e37ebdfce6814',1,'olc']]],
+  ['oem_5f5_1243',['OEM_5',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ad7e69e28cedaf91718aa4801d5a3bdb7',1,'olc']]],
+  ['oem_5f6_1244',['OEM_6',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7af2cec59ecc924be0b636e5b767abf29f',1,'olc']]],
+  ['oem_5f7_1245',['OEM_7',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a3dada7cdf09fb367c10c650e9bce7bfa',1,'olc']]],
+  ['oem_5f8_1246',['OEM_8',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7ab719317cfd8ac665e8cc2f420f74b46a',1,'olc']]],
+  ['ok_1247',['OK',['../namespaceolc.html#a3d40e9b1c005602550230690b55ae87ba0178b5f8abe39121e6f14d3c6c093a82',1,'olc']]]
+];
diff --git a/doxy/html/search/enumvalues_f.html b/doxy/html/search/enumvalues_f.html
new file mode 100644
index 0000000000000000000000000000000000000000..825a1bf60ee58146f8e172c633cb4149e51250bb
--- /dev/null
+++ b/doxy/html/search/enumvalues_f.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="enumvalues_f.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doxy/html/search/enumvalues_f.js b/doxy/html/search/enumvalues_f.js
new file mode 100644
index 0000000000000000000000000000000000000000..05d3699107f0427556f2ce0d506c16f45e76feb1
--- /dev/null
+++ b/doxy/html/search/enumvalues_f.js
@@ -0,0 +1,9 @@
+var searchData=
+[
+  ['p_1248',['P',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a2af805290f6ef4b2de028b868debe170',1,'olc']]],
+  ['pause_1249',['PAUSE',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a0bc227b9b4a43118d7500e8195806d74',1,'olc']]],
+  ['period_1250',['PERIOD',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a1adffcecf8c735b404ac6eedf220ae5a',1,'olc']]],
+  ['periodic_1251',['PERIODIC',['../classolc_1_1_sprite.html#a78b7f14903f9f0bb536b66c37f3139cfa3185e8dea4ea5a89d7ea66716c67a175',1,'olc::Sprite']]],
+  ['pgdn_1252',['PGDN',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7aae334e3943922c2b16842afc5306a1e9',1,'olc']]],
+  ['pgup_1253',['PGUP',['../namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a0bab26868b97eab537e7cad879d4b9a3',1,'olc']]]
+];
diff --git a/doxy/html/search/files_0.html b/doxy/html/search/files_0.html
new file mode 100644
index 0000000000000000000000000000000000000000..76b64f5bb4603ad2fb3f78c4f962dc8b58f0351a
--- /dev/null
+++ b/doxy/html/search/files_0.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="files_0.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doxy/html/search/files_0.js b/doxy/html/search/files_0.js
new file mode 100644
index 0000000000000000000000000000000000000000..408960739a5fa91b973492c00378565121bb80f5
--- /dev/null
+++ b/doxy/html/search/files_0.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+  ['abstracttexture_2ecpp_674',['AbstractTexture.cpp',['../_abstract_texture_8cpp.html',1,'']]]
+];
diff --git a/doxy/html/search/files_1.html b/doxy/html/search/files_1.html
new file mode 100644
index 0000000000000000000000000000000000000000..c8edef8f37e1b952468d8226005027126a0b4e11
--- /dev/null
+++ b/doxy/html/search/files_1.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="files_1.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doxy/html/search/files_1.js b/doxy/html/search/files_1.js
new file mode 100644
index 0000000000000000000000000000000000000000..9868bfe660d968725b5d2c05af3524b965d44869
--- /dev/null
+++ b/doxy/html/search/files_1.js
@@ -0,0 +1,7 @@
+var searchData=
+[
+  ['characterentity_2ecpp_675',['CharacterEntity.cpp',['../_character_entity_8cpp.html',1,'']]],
+  ['characterentity_2eh_676',['CharacterEntity.h',['../_character_entity_8h.html',1,'']]],
+  ['charactertexture_2ecpp_677',['CharacterTexture.cpp',['../_character_texture_8cpp.html',1,'']]],
+  ['charactertexture_2eh_678',['CharacterTexture.h',['../_character_texture_8h.html',1,'']]]
+];
diff --git a/doxy/html/search/files_2.html b/doxy/html/search/files_2.html
new file mode 100644
index 0000000000000000000000000000000000000000..75b0173f185f0362a478d566e17370691ba36af6
--- /dev/null
+++ b/doxy/html/search/files_2.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="files_2.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doxy/html/search/files_2.js b/doxy/html/search/files_2.js
new file mode 100644
index 0000000000000000000000000000000000000000..e5bc8e0a8765b8185010dd06846f8e678a1d0e07
--- /dev/null
+++ b/doxy/html/search/files_2.js
@@ -0,0 +1,8 @@
+var searchData=
+[
+  ['dummyentity_2ecpp_679',['DummyEntity.cpp',['../_dummy_entity_8cpp.html',1,'']]],
+  ['dummyentity_2eh_680',['DummyEntity.h',['../_dummy_entity_8h.html',1,'']]],
+  ['dungeongenerator_2ecpp_681',['DungeonGenerator.cpp',['../_dungeon_generator_8cpp.html',1,'']]],
+  ['dungeongenerator_2eh_682',['DungeonGenerator.h',['../_dungeon_generator_8h.html',1,'']]],
+  ['dynamicarray_2ehpp_683',['DynamicArray.hpp',['../_dynamic_array_8hpp.html',1,'']]]
+];
diff --git a/doxy/html/search/files_3.html b/doxy/html/search/files_3.html
new file mode 100644
index 0000000000000000000000000000000000000000..27b624343ebd4dd764d5240aaedf3be6eaae4a00
--- /dev/null
+++ b/doxy/html/search/files_3.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="files_3.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doxy/html/search/files_3.js b/doxy/html/search/files_3.js
new file mode 100644
index 0000000000000000000000000000000000000000..623020cbe3442f9e7903c412689802956c818d57
--- /dev/null
+++ b/doxy/html/search/files_3.js
@@ -0,0 +1,12 @@
+var searchData=
+[
+  ['emgun_2ecpp_684',['EMGun.cpp',['../_e_m_gun_8cpp.html',1,'']]],
+  ['emgun_2eh_685',['EMGun.h',['../_e_m_gun_8h.html',1,'']]],
+  ['entity_2ecpp_686',['Entity.cpp',['../_entity_8cpp.html',1,'']]],
+  ['entity_2eh_687',['Entity.h',['../_entity_8h.html',1,'']]],
+  ['entitycollection_2ehpp_688',['EntityCollection.hpp',['../_entity_collection_8hpp.html',1,'']]],
+  ['entitywithai_2ecpp_689',['EntityWithAI.cpp',['../_entity_with_a_i_8cpp.html',1,'']]],
+  ['entitywithai_2eh_690',['EntityWithAI.h',['../_entity_with_a_i_8h.html',1,'']]],
+  ['explosiveprojectile_2ecpp_691',['ExplosiveProjectile.cpp',['../_explosive_projectile_8cpp.html',1,'']]],
+  ['explosiveprojectile_2eh_692',['ExplosiveProjectile.h',['../_explosive_projectile_8h.html',1,'']]]
+];
diff --git a/doxy/html/search/files_4.html b/doxy/html/search/files_4.html
new file mode 100644
index 0000000000000000000000000000000000000000..5f8b9663698e42e67349c7ea1947745da46d8a17
--- /dev/null
+++ b/doxy/html/search/files_4.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="files_4.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doxy/html/search/files_4.js b/doxy/html/search/files_4.js
new file mode 100644
index 0000000000000000000000000000000000000000..55167a6779a11b41352903147b3d2a81bf6712ce
--- /dev/null
+++ b/doxy/html/search/files_4.js
@@ -0,0 +1,8 @@
+var searchData=
+[
+  ['game_2ecpp_693',['game.cpp',['../game_8cpp.html',1,'']]],
+  ['gameexception_2ecpp_694',['GameException.cpp',['../_game_exception_8cpp.html',1,'']]],
+  ['gameexception_2eh_695',['GameException.h',['../_game_exception_8h.html',1,'']]],
+  ['glitchgun_2ecpp_696',['GlitchGun.cpp',['../_glitch_gun_8cpp.html',1,'']]],
+  ['glitchgun_2eh_697',['GlitchGun.h',['../_glitch_gun_8h.html',1,'']]]
+];
diff --git a/doxy/html/search/files_5.html b/doxy/html/search/files_5.html
new file mode 100644
index 0000000000000000000000000000000000000000..f3f578bcd2a7333812a03846d8d222cd8dec411f
--- /dev/null
+++ b/doxy/html/search/files_5.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="files_5.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doxy/html/search/files_5.js b/doxy/html/search/files_5.js
new file mode 100644
index 0000000000000000000000000000000000000000..4fb489bee40784838dd07d957f0d350c75c4bc8a
--- /dev/null
+++ b/doxy/html/search/files_5.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+  ['itexture_2eh_698',['ITexture.h',['../_i_texture_8h.html',1,'']]]
+];
diff --git a/doxy/html/search/files_6.html b/doxy/html/search/files_6.html
new file mode 100644
index 0000000000000000000000000000000000000000..6d02253e03ea20bece56140faa251fb51e413220
--- /dev/null
+++ b/doxy/html/search/files_6.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="files_6.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doxy/html/search/files_6.js b/doxy/html/search/files_6.js
new file mode 100644
index 0000000000000000000000000000000000000000..d55676cb9a8b237c1e19d362faf5d69abc7632f8
--- /dev/null
+++ b/doxy/html/search/files_6.js
@@ -0,0 +1,7 @@
+var searchData=
+[
+  ['lazysprite_2ecpp_699',['LazySprite.cpp',['../_lazy_sprite_8cpp.html',1,'']]],
+  ['lazysprite_2eh_700',['LazySprite.h',['../_lazy_sprite_8h.html',1,'']]],
+  ['livingentity_2ecpp_701',['LivingEntity.cpp',['../_living_entity_8cpp.html',1,'']]],
+  ['livingentity_2eh_702',['LivingEntity.h',['../_living_entity_8h.html',1,'']]]
+];
diff --git a/doxy/html/search/files_7.html b/doxy/html/search/files_7.html
new file mode 100644
index 0000000000000000000000000000000000000000..788a1ee85f1666bc13a4c9c37c7c649c564d6a50
--- /dev/null
+++ b/doxy/html/search/files_7.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="files_7.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doxy/html/search/files_7.js b/doxy/html/search/files_7.js
new file mode 100644
index 0000000000000000000000000000000000000000..f469891fd35e99e8fd1ae956de406ed7432bce57
--- /dev/null
+++ b/doxy/html/search/files_7.js
@@ -0,0 +1,7 @@
+var searchData=
+[
+  ['maingame_2ecpp_703',['mainGame.cpp',['../main_game_8cpp.html',1,'']]],
+  ['maingame_2eh_704',['mainGame.h',['../main_game_8h.html',1,'']]],
+  ['meleeweapon_2ecpp_705',['MeleeWeapon.cpp',['../_melee_weapon_8cpp.html',1,'']]],
+  ['meleeweapon_2eh_706',['MeleeWeapon.h',['../_melee_weapon_8h.html',1,'']]]
+];
diff --git a/doxy/html/search/files_8.html b/doxy/html/search/files_8.html
new file mode 100644
index 0000000000000000000000000000000000000000..7e72895d0fce5f22dad50344ff942b960b78110b
--- /dev/null
+++ b/doxy/html/search/files_8.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="files_8.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doxy/html/search/files_8.js b/doxy/html/search/files_8.js
new file mode 100644
index 0000000000000000000000000000000000000000..51db7e6f72c91981ec73d7fe760c9211a5c9954b
--- /dev/null
+++ b/doxy/html/search/files_8.js
@@ -0,0 +1,6 @@
+var searchData=
+[
+  ['olc_2eh_707',['olc.h',['../olc_8h.html',1,'']]],
+  ['olcpgex_5ftransformedview_2eh_708',['olcPGEX_TransformedView.h',['../olc_p_g_e_x___transformed_view_8h.html',1,'']]],
+  ['olcpixelgameengine_2eh_709',['olcPixelGameEngine.h',['../olc_pixel_game_engine_8h.html',1,'']]]
+];
diff --git a/doxy/html/search/files_9.html b/doxy/html/search/files_9.html
new file mode 100644
index 0000000000000000000000000000000000000000..e5352dbb8674184d9d26b1ddd0d03101fd5d651d
--- /dev/null
+++ b/doxy/html/search/files_9.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="files_9.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doxy/html/search/files_9.js b/doxy/html/search/files_9.js
new file mode 100644
index 0000000000000000000000000000000000000000..712c4fc620110551e23b76da620756e6338c239b
--- /dev/null
+++ b/doxy/html/search/files_9.js
@@ -0,0 +1,9 @@
+var searchData=
+[
+  ['pistol_2ecpp_710',['Pistol.cpp',['../_pistol_8cpp.html',1,'']]],
+  ['pistol_2eh_711',['Pistol.h',['../_pistol_8h.html',1,'']]],
+  ['playerentity_2ecpp_712',['PlayerEntity.cpp',['../_player_entity_8cpp.html',1,'']]],
+  ['playerentity_2eh_713',['PlayerEntity.h',['../_player_entity_8h.html',1,'']]],
+  ['projectileentity_2ecpp_714',['ProjectileEntity.cpp',['../_projectile_entity_8cpp.html',1,'']]],
+  ['projectileentity_2eh_715',['ProjectileEntity.h',['../_projectile_entity_8h.html',1,'']]]
+];
diff --git a/doxy/html/search/files_a.html b/doxy/html/search/files_a.html
new file mode 100644
index 0000000000000000000000000000000000000000..4963ca2783a10d10a45932d5f0b6993412fcb61d
--- /dev/null
+++ b/doxy/html/search/files_a.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="files_a.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doxy/html/search/files_a.js b/doxy/html/search/files_a.js
new file mode 100644
index 0000000000000000000000000000000000000000..17a89f56def7b8ddb050a3cf4d0e4bb739cc1068
--- /dev/null
+++ b/doxy/html/search/files_a.js
@@ -0,0 +1,12 @@
+var searchData=
+[
+  ['rangedweapon_2ecpp_716',['RangedWeapon.cpp',['../_ranged_weapon_8cpp.html',1,'']]],
+  ['rangedweapon_2eh_717',['RangedWeapon.h',['../_ranged_weapon_8h.html',1,'']]],
+  ['readme_2emd_718',['README.md',['../_r_e_a_d_m_e_8md.html',1,'']]],
+  ['renderexception_2ecpp_719',['RenderException.cpp',['../_render_exception_8cpp.html',1,'']]],
+  ['renderexception_2eh_720',['RenderException.h',['../_render_exception_8h.html',1,'']]],
+  ['resource_2eh_721',['resource.h',['../resource_8h.html',1,'']]],
+  ['resource1_2eh_722',['resource1.h',['../resource1_8h.html',1,'']]],
+  ['resourcemanager_2ecpp_723',['ResourceManager.cpp',['../_resource_manager_8cpp.html',1,'']]],
+  ['resourcemanager_2eh_724',['ResourceManager.h',['../_resource_manager_8h.html',1,'']]]
+];
diff --git a/doxy/html/search/files_b.html b/doxy/html/search/files_b.html
new file mode 100644
index 0000000000000000000000000000000000000000..b64c148ea1e38bfc4b75e3c5bde6ca0f49f5276d
--- /dev/null
+++ b/doxy/html/search/files_b.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="files_b.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doxy/html/search/files_b.js b/doxy/html/search/files_b.js
new file mode 100644
index 0000000000000000000000000000000000000000..3dbf7722f5dd0162f40623aeba68cf766a860780
--- /dev/null
+++ b/doxy/html/search/files_b.js
@@ -0,0 +1,7 @@
+var searchData=
+[
+  ['simplesprite_2ecpp_725',['SimpleSprite.cpp',['../_simple_sprite_8cpp.html',1,'']]],
+  ['simplesprite_2eh_726',['SimpleSprite.h',['../_simple_sprite_8h.html',1,'']]],
+  ['squareroomgenerator_2ecpp_727',['SquareRoomGenerator.cpp',['../_square_room_generator_8cpp.html',1,'']]],
+  ['squareroomgenerator_2eh_728',['SquareRoomGenerator.h',['../_square_room_generator_8h.html',1,'']]]
+];
diff --git a/doxy/html/search/files_c.html b/doxy/html/search/files_c.html
new file mode 100644
index 0000000000000000000000000000000000000000..07c3b8970a451150ed8ae3810e4f1b135c2f971f
--- /dev/null
+++ b/doxy/html/search/files_c.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="files_c.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doxy/html/search/files_c.js b/doxy/html/search/files_c.js
new file mode 100644
index 0000000000000000000000000000000000000000..474992d221ebee4eed5f4c561917473096a9f149
--- /dev/null
+++ b/doxy/html/search/files_c.js
@@ -0,0 +1,8 @@
+var searchData=
+[
+  ['testgenerator_2ecpp_729',['TestGenerator.cpp',['../_test_generator_8cpp.html',1,'']]],
+  ['testgenerator_2eh_730',['TestGenerator.h',['../_test_generator_8h.html',1,'']]],
+  ['text_2emd_731',['Text.md',['../_text_8md.html',1,'']]],
+  ['typicalmeleeweapon_2ecpp_732',['TypicalMeleeWeapon.cpp',['../_typical_melee_weapon_8cpp.html',1,'']]],
+  ['typicalmeleeweapon_2eh_733',['TypicalMeleeWeapon.h',['../_typical_melee_weapon_8h.html',1,'']]]
+];
diff --git a/doxy/html/search/files_d.html b/doxy/html/search/files_d.html
new file mode 100644
index 0000000000000000000000000000000000000000..c2d38ee109f754f2d465f84b6259e6409a7449b9
--- /dev/null
+++ b/doxy/html/search/files_d.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="files_d.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doxy/html/search/files_d.js b/doxy/html/search/files_d.js
new file mode 100644
index 0000000000000000000000000000000000000000..fe906dca0eaf312a61538093e4af5d5d0e298d79
--- /dev/null
+++ b/doxy/html/search/files_d.js
@@ -0,0 +1,11 @@
+var searchData=
+[
+  ['wallentity_2ecpp_734',['WallEntity.cpp',['../_wall_entity_8cpp.html',1,'']]],
+  ['wallentity_2eh_735',['WallEntity.h',['../_wall_entity_8h.html',1,'']]],
+  ['walltexture_2ecpp_736',['WallTexture.cpp',['../_wall_texture_8cpp.html',1,'']]],
+  ['walltexture_2eh_737',['WallTexture.h',['../_wall_texture_8h.html',1,'']]],
+  ['weapon_2ecpp_738',['Weapon.cpp',['../_weapon_8cpp.html',1,'']]],
+  ['weapon_2eh_739',['Weapon.h',['../_weapon_8h.html',1,'']]],
+  ['weapontextures_2ecpp_740',['WeaponTextures.cpp',['../_weapon_textures_8cpp.html',1,'']]],
+  ['weapontextures_2eh_741',['WeaponTextures.h',['../_weapon_textures_8h.html',1,'']]]
+];
diff --git a/doxy/html/search/functions_0.html b/doxy/html/search/functions_0.html
new file mode 100644
index 0000000000000000000000000000000000000000..f04535ae67847d65edeaf03627670fa47e4daf36
--- /dev/null
+++ b/doxy/html/search/functions_0.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="functions_0.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doxy/html/search/functions_0.js b/doxy/html/search/functions_0.js
new file mode 100644
index 0000000000000000000000000000000000000000..424898e31a183c9223ec7d5ef7f21f9823baece6
--- /dev/null
+++ b/doxy/html/search/functions_0.js
@@ -0,0 +1,9 @@
+var searchData=
+[
+  ['addentity_742',['addEntity',['../class_game_client.html#ac1df0a856bd945976c06b3977167d4c7',1,'GameClient']]],
+  ['addfile_743',['AddFile',['../classolc_1_1_resource_pack.html#a56eebc321c66215d15df1390b1080c66',1,'olc::ResourcePack']]],
+  ['addweapon_744',['addWeapon',['../classentities_1_1_entity_with_a_i.html#af1e954b2ecf51732759a28e00dc2614c',1,'entities::EntityWithAI']]],
+  ['applicationcleanup_745',['ApplicationCleanUp',['../classolc_1_1_platform.html#aec7a14ba9007d3c421481baa49e55669',1,'olc::Platform']]],
+  ['applicationstartup_746',['ApplicationStartUp',['../classolc_1_1_platform.html#a65e6f9763726056f6a9d37395b8ed023',1,'olc::Platform']]],
+  ['applytexture_747',['ApplyTexture',['../classolc_1_1_renderer.html#a0a87094df3c911860a0eec9a8bb3b060',1,'olc::Renderer']]]
+];
diff --git a/doxy/html/search/functions_1.html b/doxy/html/search/functions_1.html
new file mode 100644
index 0000000000000000000000000000000000000000..6e827eb631ae8e300943dda94b5066a900dab3d2
--- /dev/null
+++ b/doxy/html/search/functions_1.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="functions_1.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doxy/html/search/functions_1.js b/doxy/html/search/functions_1.js
new file mode 100644
index 0000000000000000000000000000000000000000..8563bccac68c7298061f4baac3b0bb6cdbd8dc32
--- /dev/null
+++ b/doxy/html/search/functions_1.js
@@ -0,0 +1,9 @@
+var searchData=
+[
+  ['begin_748',['begin',['../class_dynamic_array.html#a3b4f5925657f9e8dfd71bcc5973399ee',1,'DynamicArray']]],
+  ['black_749',['BLACK',['../namespaceolc.html#a183de1c471cfd6f45980bc9c2c58ed9d',1,'olc']]],
+  ['blank_750',['BLANK',['../namespaceolc.html#ac940e7f6502cbced06f26b4d13349166',1,'olc']]],
+  ['blue_751',['BLUE',['../namespaceolc.html#ac1e1d3e39e0b78e9767142c9daeba4ee',1,'olc']]],
+  ['bounce_752',['bounce',['../classentities_1_1_projectile_entity.html#ab3eb63e6fdf0ca5c4b81ebbc02e7f513',1,'entities::ProjectileEntity']]],
+  ['bow_753',['bow',['../namespaceweapons_1_1textures.html#ae84acdfc1384af6d4e1f64c1883a8784',1,'weapons::textures']]]
+];
diff --git a/doxy/html/search/functions_10.html b/doxy/html/search/functions_10.html
new file mode 100644
index 0000000000000000000000000000000000000000..09511eca06ae29d8bf561429e89fe3d04d7a2417
--- /dev/null
+++ b/doxy/html/search/functions_10.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="functions_10.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doxy/html/search/functions_10.js b/doxy/html/search/functions_10.js
new file mode 100644
index 0000000000000000000000000000000000000000..5f8b42e76bfb544eda95efb46d646b01533326e6
--- /dev/null
+++ b/doxy/html/search/functions_10.js
@@ -0,0 +1,9 @@
+var searchData=
+[
+  ['threadcleanup_1024',['ThreadCleanUp',['../classolc_1_1_platform.html#a0e4e37ccc06ae7f3251b7a53ce839c13',1,'olc::Platform']]],
+  ['threadstartup_1025',['ThreadStartUp',['../classolc_1_1_platform.html#ace0ea54aaa50143628b5fd41851b578f',1,'olc::Platform']]],
+  ['tick_1026',['tick',['../classentities_1_1_character_entity.html#ae7cdddc6dca655e7bf8c2f48424c5208',1,'entities::CharacterEntity::tick()'],['../classentities_1_1_entity.html#a0440674bf90ae83d9a26aa4b0ac8309e',1,'entities::Entity::tick()'],['../classentities_1_1_entity_with_a_i.html#a92708b14b042c03fa9a8673192867e72',1,'entities::EntityWithAI::tick()'],['../classentities_1_1_explosive_projectile.html#a3aa22ab3467caa20a8c7b3cc818b157d',1,'entities::ExplosiveProjectile::tick()'],['../classentities_1_1_living_entity.html#af13cb8c3fabd2960746e21cd7dabe4d6',1,'entities::LivingEntity::tick()'],['../classentities_1_1_player_entity.html#a9f5c7033ca46daf217c73cb5edbb0d68',1,'entities::PlayerEntity::tick()'],['../classentities_1_1_projectile_entity.html#a761f27885de02515edaf252e8a4162b5',1,'entities::ProjectileEntity::tick()'],['../classweapons_1_1_weapon.html#a92ae1db47ca866d828f8b09c6de5a3f6',1,'weapons::Weapon::tick()']]],
+  ['tiletransformedview_1027',['TileTransformedView',['../classolc_1_1_tile_transformed_view.html#a4ecc47c57596ad966120894db8d6ad59',1,'olc::TileTransformedView::TileTransformedView()=default'],['../classolc_1_1_tile_transformed_view.html#ac38d47324d7370b5259894d814b879f8',1,'olc::TileTransformedView::TileTransformedView(const olc::vi2d &amp;vViewArea, const olc::vi2d &amp;vTileSize)']]],
+  ['transformedview_1028',['TransformedView',['../classolc_1_1_transformed_view.html#a1f4ed7eb880b0f0edc0b86be4b33b04e',1,'olc::TransformedView']]],
+  ['typicalmeleeweapon_1029',['TypicalMeleeWeapon',['../classweapons_1_1_typical_melee_weapon.html#a939cbdc05adab9adf58301cce00e3f8b',1,'weapons::TypicalMeleeWeapon']]]
+];
diff --git a/doxy/html/search/functions_11.html b/doxy/html/search/functions_11.html
new file mode 100644
index 0000000000000000000000000000000000000000..066bc66461eaba5c5e97695eb979b5a36aec01a9
--- /dev/null
+++ b/doxy/html/search/functions_11.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="functions_11.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doxy/html/search/functions_11.js b/doxy/html/search/functions_11.js
new file mode 100644
index 0000000000000000000000000000000000000000..f75bb5becf0d0c786c7c3e4a6b75791989ab8fee
--- /dev/null
+++ b/doxy/html/search/functions_11.js
@@ -0,0 +1,10 @@
+var searchData=
+[
+  ['update_1030',['update',['../classweapons_1_1_e_m_gun.html#a0bb30401aa36e2205c011ea0fcf40303',1,'weapons::EMGun::update()'],['../classweapons_1_1_glitch_gun.html#a6687147e8005e96f12806862f73a6cd8',1,'weapons::GlitchGun::update()'],['../classweapons_1_1_weapon.html#a1cbf391f196bd151f3e3f1ae1e316088',1,'weapons::Weapon::update()'],['../classolc_1_1_decal.html#aac5ad6844f98fb3a8bce2f36adf02429',1,'olc::Decal::Update()']]],
+  ['updateneighbours_1031',['updateNeighbours',['../classentities_1_1_wall_entity.html#a8d65d65453803e731cd9aa112d1f0447',1,'entities::WallEntity']]],
+  ['updatepan_1032',['UpdatePan',['../classolc_1_1_transformed_view.html#a4baf2b53892749ff380833991161b9c4',1,'olc::TransformedView']]],
+  ['updatesprite_1033',['UpdateSprite',['../classolc_1_1_decal.html#a4a3b893edbce4d416453f57c11754092',1,'olc::Decal']]],
+  ['updatetexture_1034',['UpdateTexture',['../classolc_1_1_renderer.html#a1512e2939b94f6fdb58bbf152ac0e4e5',1,'olc::Renderer']]],
+  ['updateviewport_1035',['UpdateViewport',['../classolc_1_1_renderer.html#abc873336dd8f9079dc26f92ce0f95748',1,'olc::Renderer']]],
+  ['use_1036',['use',['../classweapons_1_1_e_m_gun.html#a8034852a4a5957c3d3bc00ca5f7df6e4',1,'weapons::EMGun::use()'],['../classweapons_1_1_melee_weapon.html#ac1b9a6718cbf78cea0b9e5e0b8dcc64e',1,'weapons::MeleeWeapon::use()'],['../classweapons_1_1_ranged_weapon.html#a0e8915ad79021eb8fd79a1a3d7b1c92c',1,'weapons::RangedWeapon::use()'],['../classweapons_1_1_weapon.html#a8c6f12ac9ed871ebd0394f6b5c447868',1,'weapons::Weapon::use()']]]
+];
diff --git a/doxy/html/search/functions_12.html b/doxy/html/search/functions_12.html
new file mode 100644
index 0000000000000000000000000000000000000000..7f384f4a3d40e7897edd798efaa8508f59e3a022
--- /dev/null
+++ b/doxy/html/search/functions_12.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="functions_12.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doxy/html/search/functions_12.js b/doxy/html/search/functions_12.js
new file mode 100644
index 0000000000000000000000000000000000000000..24f4b2b70f67b7da44a602a4197c469f1983234a
--- /dev/null
+++ b/doxy/html/search/functions_12.js
@@ -0,0 +1,11 @@
+var searchData=
+[
+  ['v2d_5fgeneric_1037',['v2d_generic',['../structolc_1_1v2d__generic.html#aba35d326b62454a5fbdeea4220438784',1,'olc::v2d_generic::v2d_generic()'],['../structolc_1_1v2d__generic.html#a2fc62e52adae5f9e4138adf073afddb0',1,'olc::v2d_generic::v2d_generic(T _x, T _y)'],['../structolc_1_1v2d__generic.html#a7897de7e3e5f2a0e6ba1d2aef2015fce',1,'olc::v2d_generic::v2d_generic(const v2d_generic &amp;v)']]],
+  ['very_5fdark_5fblue_1038',['VERY_DARK_BLUE',['../namespaceolc.html#a48fb6375b9a7c0a0d44feaa879e7ebb7',1,'olc']]],
+  ['very_5fdark_5fcyan_1039',['VERY_DARK_CYAN',['../namespaceolc.html#aee6a06b446368ac58033b5ae4f4c6ca2',1,'olc']]],
+  ['very_5fdark_5fgreen_1040',['VERY_DARK_GREEN',['../namespaceolc.html#a29c85b49a3c9cbd0b251e80e3bc57140',1,'olc']]],
+  ['very_5fdark_5fgrey_1041',['VERY_DARK_GREY',['../namespaceolc.html#a93de271d8b3cbd5aec73a085e6a6ec7a',1,'olc']]],
+  ['very_5fdark_5fmagenta_1042',['VERY_DARK_MAGENTA',['../namespaceolc.html#a150fed0369958dc77d3207298588bc94',1,'olc']]],
+  ['very_5fdark_5fred_1043',['VERY_DARK_RED',['../namespaceolc.html#a82b6404acf7ac86f237179fc5f9a859f',1,'olc']]],
+  ['very_5fdark_5fyellow_1044',['VERY_DARK_YELLOW',['../namespaceolc.html#a131df56f1dd5cb0906cd02f9df49b17d',1,'olc']]]
+];
diff --git a/doxy/html/search/functions_13.html b/doxy/html/search/functions_13.html
new file mode 100644
index 0000000000000000000000000000000000000000..9a4107ff54f6a7bf7543916c12e5299325e58c7a
--- /dev/null
+++ b/doxy/html/search/functions_13.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="functions_13.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doxy/html/search/functions_13.js b/doxy/html/search/functions_13.js
new file mode 100644
index 0000000000000000000000000000000000000000..83e92b646975dc4d988685a0638253ba4b6b77b7
--- /dev/null
+++ b/doxy/html/search/functions_13.js
@@ -0,0 +1,8 @@
+var searchData=
+[
+  ['wallentity_1045',['WallEntity',['../classentities_1_1_wall_entity.html#a109600cce4cd0514d320c14b4f8f4813',1,'entities::WallEntity']]],
+  ['walltexture_1046',['WallTexture',['../classrender_1_1_wall_texture.html#af0420c11949bbc21421cc21765bd8920',1,'render::WallTexture']]],
+  ['weapon_1047',['Weapon',['../classweapons_1_1_weapon.html#a28f7b716212ae6b4606cff82501e00a2',1,'weapons::Weapon']]],
+  ['white_1048',['WHITE',['../namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1',1,'olc']]],
+  ['worldtoscreen_1049',['WorldToScreen',['../classolc_1_1_transformed_view.html#a18b18c9718c642ca912d44a133ffde1d',1,'olc::TransformedView']]]
+];
diff --git a/doxy/html/search/functions_14.html b/doxy/html/search/functions_14.html
new file mode 100644
index 0000000000000000000000000000000000000000..2412ba08f30aa065c9511038a87700fed58605e5
--- /dev/null
+++ b/doxy/html/search/functions_14.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="functions_14.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doxy/html/search/functions_14.js b/doxy/html/search/functions_14.js
new file mode 100644
index 0000000000000000000000000000000000000000..c6dbe1bd743f1841402ba2fac4fc5fe5b1b0cb3b
--- /dev/null
+++ b/doxy/html/search/functions_14.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+  ['yellow_1050',['YELLOW',['../namespaceolc.html#a6c9728f6dba8b58406bb0e10979b6ccf',1,'olc']]]
+];
diff --git a/doxy/html/search/functions_15.html b/doxy/html/search/functions_15.html
new file mode 100644
index 0000000000000000000000000000000000000000..8a393ca1a635b6ce00e5036614e71ac52997a8ff
--- /dev/null
+++ b/doxy/html/search/functions_15.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="functions_15.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doxy/html/search/functions_15.js b/doxy/html/search/functions_15.js
new file mode 100644
index 0000000000000000000000000000000000000000..590e9eb280a965c4c413b7a97674642f51d1ef64
--- /dev/null
+++ b/doxy/html/search/functions_15.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+  ['zoomatscreenpos_1051',['ZoomAtScreenPos',['../classolc_1_1_transformed_view.html#a84a8b9030ac97afa9b6099dea5865b9c',1,'olc::TransformedView']]]
+];
diff --git a/doxy/html/search/functions_16.html b/doxy/html/search/functions_16.html
new file mode 100644
index 0000000000000000000000000000000000000000..2ff36bdb5526c1cad0b043bfbe18a99ecd29e0ab
--- /dev/null
+++ b/doxy/html/search/functions_16.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="functions_16.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doxy/html/search/functions_16.js b/doxy/html/search/functions_16.js
new file mode 100644
index 0000000000000000000000000000000000000000..bc72f6accf20ea3ecbe7d1651162e3d5812fa3e4
--- /dev/null
+++ b/doxy/html/search/functions_16.js
@@ -0,0 +1,13 @@
+var searchData=
+[
+  ['_7edecal_1052',['~Decal',['../classolc_1_1_decal.html#a5c993dab5be43270dce30b44f1d3e50b',1,'olc::Decal']]],
+  ['_7eentity_1053',['~Entity',['../classentities_1_1_entity.html#a64d968c160dee2fdfca68aff2e49946b',1,'entities::Entity']]],
+  ['_7eimageloader_1054',['~ImageLoader',['../classolc_1_1_image_loader.html#a680c0395200ceab209fb96c21cd8b883',1,'olc::ImageLoader']]],
+  ['_7eitexture_1055',['~ITexture',['../classrender_1_1_i_texture.html#a2dcbcad96404d6a0ff64e8053ccde162',1,'render::ITexture']]],
+  ['_7epixelgameengine_1056',['~PixelGameEngine',['../classolc_1_1_pixel_game_engine.html#a423d90134c297f7b9f1834a136071b19',1,'olc::PixelGameEngine']]],
+  ['_7eplatform_1057',['~Platform',['../classolc_1_1_platform.html#a352f636fdc2e30bddac2db85238b166b',1,'olc::Platform']]],
+  ['_7erenderer_1058',['~Renderer',['../classolc_1_1_renderer.html#a877048a1bcf3decfe544804f0e4e1ad9',1,'olc::Renderer']]],
+  ['_7eresourcemanager_1059',['~ResourceManager',['../classrender_1_1_resource_manager.html#a718ece71d629e1fd5b4b3afc967d4381',1,'render::ResourceManager']]],
+  ['_7eresourcepack_1060',['~ResourcePack',['../classolc_1_1_resource_pack.html#a7e48d44ecdac3d4a2eec7bb5a5eb1ec5',1,'olc::ResourcePack']]],
+  ['_7esprite_1061',['~Sprite',['../classolc_1_1_sprite.html#a594abc52842c29e4a5417adf57fb877e',1,'olc::Sprite']]]
+];
diff --git a/doxy/html/search/functions_2.html b/doxy/html/search/functions_2.html
new file mode 100644
index 0000000000000000000000000000000000000000..184e9da4dc440a9cc54adc7fcf77fb3048074122
--- /dev/null
+++ b/doxy/html/search/functions_2.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="functions_2.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doxy/html/search/functions_2.js b/doxy/html/search/functions_2.js
new file mode 100644
index 0000000000000000000000000000000000000000..41df0ed1ee42ecc74aa2274cca5d9be0fb99f0f3
--- /dev/null
+++ b/doxy/html/search/functions_2.js
@@ -0,0 +1,21 @@
+var searchData=
+[
+  ['canberemoved_754',['canBeRemoved',['../classentities_1_1_entity.html#a59426fe1b7dcefe96a0a748250724ff6',1,'entities::Entity::canBeRemoved()'],['../classentities_1_1_explosive_projectile.html#a8b075196a23aed5116e885709b64d583',1,'entities::ExplosiveProjectile::canBeRemoved()'],['../classweapons_1_1_weapon.html#aaf97827d27191b7b437ef1be96d6ac2c',1,'weapons::Weapon::canBeRemoved()']]],
+  ['ceil_755',['ceil',['../structolc_1_1v2d__generic.html#a65efb6611304b590a2cb45781b1c34cc',1,'olc::v2d_generic']]],
+  ['characterentity_756',['CharacterEntity',['../classentities_1_1_character_entity.html#aa7c43269834b07ef51355a874be373e8',1,'entities::CharacterEntity']]],
+  ['charactertexture_757',['CharacterTexture',['../classrender_1_1_character_texture.html#a0e5cb130b98e46c9de43e274ca206d1b',1,'render::CharacterTexture']]],
+  ['clear_758',['Clear',['../classolc_1_1_pixel_game_engine.html#aeb70b40809815fab4e1017e25c7ab161',1,'olc::PixelGameEngine']]],
+  ['clearbuffer_759',['ClearBuffer',['../classolc_1_1_renderer.html#a921406bc341efd881ca510c64cebdc26',1,'olc::Renderer::ClearBuffer()'],['../classolc_1_1_pixel_game_engine.html#aed9a3f6bd349e091728a329ee42932bf',1,'olc::PixelGameEngine::ClearBuffer()']]],
+  ['collisionoffset_760',['collisionOffset',['../classentities_1_1_living_entity.html#a07a7d7f7e43f2140e3e6337322f78224',1,'entities::LivingEntity']]],
+  ['construct_761',['Construct',['../classolc_1_1_pixel_game_engine.html#af1a9cf3b38dda2071b7ec18868ee1ccd',1,'olc::PixelGameEngine']]],
+  ['create_762',['Create',['../classolc_1_1_renderable.html#ab15a4441be7b48519d55296e416976fd',1,'olc::Renderable']]],
+  ['createdevice_763',['CreateDevice',['../classolc_1_1_renderer.html#a28c87db87f8fd9b0f356db5d01499992',1,'olc::Renderer']]],
+  ['creategraphics_764',['CreateGraphics',['../classolc_1_1_platform.html#a2e951cdc0d8fd9bb68f05b33f1fd0450',1,'olc::Platform']]],
+  ['createinstance_765',['createInstance',['../classrender_1_1_resource_manager.html#abdb364e2b932233c873a98a1b5c03d2a',1,'render::ResourceManager']]],
+  ['createlayer_766',['CreateLayer',['../classolc_1_1_pixel_game_engine.html#ae15ffa0503e2893aad7001aa2f5769b7',1,'olc::PixelGameEngine']]],
+  ['createtexture_767',['CreateTexture',['../classolc_1_1_renderer.html#aeac898aaf282d09a9cd848303de57bea',1,'olc::Renderer']]],
+  ['createwindowpane_768',['CreateWindowPane',['../classolc_1_1_platform.html#a4966327ca7d5ff2b855b3a4eaf0f88f2',1,'olc::Platform']]],
+  ['cross_769',['cross',['../structolc_1_1v2d__generic.html#a1febe5d22672d7d0121526577bf3b535',1,'olc::v2d_generic']]],
+  ['crystalbow_770',['crystalBow',['../namespaceweapons_1_1textures.html#a2f33f64b881c4028086431f8ba0fe1c5',1,'weapons::textures']]],
+  ['cyan_771',['CYAN',['../namespaceolc.html#a43ffa41e9a4a260b86da82b823e6a252',1,'olc']]]
+];
diff --git a/doxy/html/search/functions_3.html b/doxy/html/search/functions_3.html
new file mode 100644
index 0000000000000000000000000000000000000000..31ac9f8e283930b306732b394a93e12a76beb00c
--- /dev/null
+++ b/doxy/html/search/functions_3.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="functions_3.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doxy/html/search/functions_3.js b/doxy/html/search/functions_3.js
new file mode 100644
index 0000000000000000000000000000000000000000..834d29949aec36f500ce4f3dfad19fcab5ef4860
--- /dev/null
+++ b/doxy/html/search/functions_3.js
@@ -0,0 +1,41 @@
+var searchData=
+[
+  ['damage_772',['damage',['../classentities_1_1_entity.html#af7fc9949fc50b1b31abb36a3d51b0597',1,'entities::Entity::damage()'],['../classentities_1_1_entity_with_a_i.html#a49a1c8a8ec1a318f65007d54173c3d37',1,'entities::EntityWithAI::damage()'],['../classentities_1_1_living_entity.html#a28d31eff59137171da3e23a8e3ef9c1c',1,'entities::LivingEntity::damage()'],['../classentities_1_1_player_entity.html#ab654524e0ad7ba5a9b1b590794d347f2',1,'entities::PlayerEntity::damage()'],['../classentities_1_1_projectile_entity.html#a723e706e6421504ce9c6d70d77561215',1,'entities::ProjectileEntity::damage()'],['../classweapons_1_1_typical_melee_weapon.html#a00287ced5e67a7f91423596fac46606b',1,'weapons::TypicalMeleeWeapon::damage()'],['../classentities_1_1_wall_entity.html#a0cd908003450361a7c08d2c7c83d21dc',1,'entities::WallEntity::damage()'],['../classweapons_1_1_weapon.html#a397c372ffe2838f7c9c1ce67c06e55a9',1,'weapons::Weapon::damage()']]],
+  ['damageentity_773',['damageEntity',['../classweapons_1_1_melee_weapon.html#a6938e2705c6353b4b2782e8a4186de17',1,'weapons::MeleeWeapon']]],
+  ['damageif_774',['damageIf',['../classweapons_1_1_melee_weapon.html#a59a5b959539d2c71605c1b6fbec3111b',1,'weapons::MeleeWeapon']]],
+  ['dark_5fblue_775',['DARK_BLUE',['../namespaceolc.html#ac6e041f71287438da8b9145758c4fe63',1,'olc']]],
+  ['dark_5fcyan_776',['DARK_CYAN',['../namespaceolc.html#aa0824f5fdd85c58712495a7bc0de191e',1,'olc']]],
+  ['dark_5fgreen_777',['DARK_GREEN',['../namespaceolc.html#ac192218acb2f30c4c3748485dd5e4ba0',1,'olc']]],
+  ['dark_5fgrey_778',['DARK_GREY',['../namespaceolc.html#a7208a6ce62e94eca5b0ba80f7c2f5e30',1,'olc']]],
+  ['dark_5fmagenta_779',['DARK_MAGENTA',['../namespaceolc.html#abad91f58a178a173f76ce7d9f9aa99c4',1,'olc']]],
+  ['dark_5fred_780',['DARK_RED',['../namespaceolc.html#a8265396ef812918ca95d2e7aa39c14cc',1,'olc']]],
+  ['dark_5fyellow_781',['DARK_YELLOW',['../namespaceolc.html#a379f9d3a40edb1700299c031cd0b6a08',1,'olc']]],
+  ['decal_782',['Decal',['../classolc_1_1_decal.html#a5479fee995f05355026dafd8cadcac88',1,'olc::Decal::Decal(olc::Sprite *spr, bool filter=false, bool clamp=true)'],['../classolc_1_1_decal.html#ade1e337e839cd254603e4d061c219cc5',1,'olc::Decal::Decal(const uint32_t nExistingTextureResource, olc::Sprite *spr)'],['../classolc_1_1_renderable.html#af6e5a2d5a46fe4f475c67ca5ab1b1f5d',1,'olc::Renderable::Decal()']]],
+  ['deletetexture_783',['DeleteTexture',['../classolc_1_1_renderer.html#aec8e86eb7a104fb0bc8f9fe51318f1a0',1,'olc::Renderer']]],
+  ['destroydevice_784',['DestroyDevice',['../classolc_1_1_renderer.html#a3a59a195cc380f89e5f9cc98b6fda2c7',1,'olc::Renderer']]],
+  ['displayframe_785',['DisplayFrame',['../classolc_1_1_renderer.html#a660f3ca709b2a2fcec1d1cba1a4cfd18',1,'olc::Renderer']]],
+  ['dot_786',['dot',['../structolc_1_1v2d__generic.html#ad2e96c716c487677bbde6966464fc482',1,'olc::v2d_generic']]],
+  ['draw_787',['Draw',['../classolc_1_1_transformed_view.html#a09a214f47f9e4f5e85a8d3bd224ab9b1',1,'olc::TransformedView::Draw(float x, float y, olc::Pixel p=olc::WHITE)'],['../classolc_1_1_transformed_view.html#a2509ea7aa54013b9b0caa7a265818511',1,'olc::TransformedView::Draw(const olc::vf2d &amp;pos, olc::Pixel p=olc::WHITE)'],['../classolc_1_1_pixel_game_engine.html#a95ab046b4b0843565bddd0e009a25569',1,'olc::PixelGameEngine::Draw(int32_t x, int32_t y, Pixel p=olc::WHITE)'],['../classolc_1_1_pixel_game_engine.html#ad7bd70d2c3d0bc5bbb0991fa4695a4e9',1,'olc::PixelGameEngine::Draw(const olc::vi2d &amp;pos, Pixel p=olc::WHITE)']]],
+  ['drawcircle_788',['DrawCircle',['../classolc_1_1_transformed_view.html#abbf0590764bbacdd35a4d0adc6e69b84',1,'olc::TransformedView::DrawCircle(float x, float y, float radius, olc::Pixel p=olc::WHITE, uint8_t mask=0xFF)'],['../classolc_1_1_transformed_view.html#aa7edb61f256624bad3e5d5847f0eef88',1,'olc::TransformedView::DrawCircle(const olc::vf2d &amp;pos, float radius, olc::Pixel p=olc::WHITE, uint8_t mask=0xFF)'],['../classolc_1_1_pixel_game_engine.html#a2ce3e34fd633acdc22b8dc2c8d25f86c',1,'olc::PixelGameEngine::DrawCircle(int32_t x, int32_t y, int32_t radius, Pixel p=olc::WHITE, uint8_t mask=0xFF)'],['../classolc_1_1_pixel_game_engine.html#a0016377c9188719462724f523b3a6334',1,'olc::PixelGameEngine::DrawCircle(const olc::vi2d &amp;pos, int32_t radius, Pixel p=olc::WHITE, uint8_t mask=0xFF)']]],
+  ['drawdecal_789',['DrawDecal',['../classolc_1_1_transformed_view.html#a8bad23f424184f2e15f32deb7f179160',1,'olc::TransformedView::DrawDecal()'],['../classolc_1_1_renderer.html#ac567df937350bffb2eae3e647ccc10d5',1,'olc::Renderer::DrawDecal()'],['../classolc_1_1_pixel_game_engine.html#a5b676590555cab61db67804417c6f25f',1,'olc::PixelGameEngine::DrawDecal()']]],
+  ['drawexplicitdecal_790',['DrawExplicitDecal',['../classolc_1_1_transformed_view.html#ac133c5f498e18dc4bcf6a087c7f8b356',1,'olc::TransformedView::DrawExplicitDecal()'],['../classolc_1_1_pixel_game_engine.html#a26d7073d87bb19f15d5ade6bb58e8e2d',1,'olc::PixelGameEngine::DrawExplicitDecal()']]],
+  ['drawlayerquad_791',['DrawLayerQuad',['../classolc_1_1_renderer.html#a3eccca504615e72d1f40acd03ffce89f',1,'olc::Renderer']]],
+  ['drawline_792',['DrawLine',['../classolc_1_1_transformed_view.html#a2564b30474cab1de208a9b220ddbc181',1,'olc::TransformedView::DrawLine(float x1, float y1, float x2, float y2, olc::Pixel p=olc::WHITE, uint32_t pattern=0xFFFFFFFF)'],['../classolc_1_1_transformed_view.html#a60a961188fe9a5cb60258c1b4d8cf498',1,'olc::TransformedView::DrawLine(const olc::vf2d &amp;pos1, const olc::vf2d &amp;pos2, olc::Pixel p=olc::WHITE, uint32_t pattern=0xFFFFFFFF)'],['../classolc_1_1_pixel_game_engine.html#a131877968123c843374f079814503d22',1,'olc::PixelGameEngine::DrawLine(int32_t x1, int32_t y1, int32_t x2, int32_t y2, Pixel p=olc::WHITE, uint32_t pattern=0xFFFFFFFF)'],['../classolc_1_1_pixel_game_engine.html#ac24457d32db7d8acf0661c6de57be7a8',1,'olc::PixelGameEngine::DrawLine(const olc::vi2d &amp;pos1, const olc::vi2d &amp;pos2, Pixel p=olc::WHITE, uint32_t pattern=0xFFFFFFFF)']]],
+  ['drawpartialdecal_793',['DrawPartialDecal',['../classolc_1_1_transformed_view.html#a1daefdb27499350eb3927c79ec60bca5',1,'olc::TransformedView::DrawPartialDecal(const olc::vf2d &amp;pos, olc::Decal *decal, const olc::vf2d &amp;source_pos, const olc::vf2d &amp;source_size, const olc::vf2d &amp;scale={ 1.0f, 1.0f }, const olc::Pixel &amp;tint=olc::WHITE)'],['../classolc_1_1_transformed_view.html#a03ef78202a55d896cd86eb16f39b8847',1,'olc::TransformedView::DrawPartialDecal(const olc::vf2d &amp;pos, const olc::vf2d &amp;size, olc::Decal *decal, const olc::vf2d &amp;source_pos, const olc::vf2d &amp;source_size, const olc::Pixel &amp;tint=olc::WHITE)'],['../classolc_1_1_pixel_game_engine.html#a8bae37cf84b215e9e0416f058241aeba',1,'olc::PixelGameEngine::DrawPartialDecal(const olc::vf2d &amp;pos, olc::Decal *decal, const olc::vf2d &amp;source_pos, const olc::vf2d &amp;source_size, const olc::vf2d &amp;scale={ 1.0f, 1.0f }, const olc::Pixel &amp;tint=olc::WHITE)'],['../classolc_1_1_pixel_game_engine.html#a1b757070353b8f9238c229e42d33bbb5',1,'olc::PixelGameEngine::DrawPartialDecal(const olc::vf2d &amp;pos, const olc::vf2d &amp;size, olc::Decal *decal, const olc::vf2d &amp;source_pos, const olc::vf2d &amp;source_size, const olc::Pixel &amp;tint=olc::WHITE)']]],
+  ['drawpartialrotateddecal_794',['DrawPartialRotatedDecal',['../classolc_1_1_transformed_view.html#a3f2574c761a0045641fd2f5f9b194184',1,'olc::TransformedView::DrawPartialRotatedDecal()'],['../classolc_1_1_pixel_game_engine.html#aad3107bbad34e5792a9a35629e1fdbd0',1,'olc::PixelGameEngine::DrawPartialRotatedDecal()']]],
+  ['drawpartialsprite_795',['DrawPartialSprite',['../classolc_1_1_transformed_view.html#a829557257985bb738baad577ed0ed7a0',1,'olc::TransformedView::DrawPartialSprite(float x, float y, Sprite *sprite, int32_t ox, int32_t oy, int32_t w, int32_t h, float scalex=1, float scaley=1, uint8_t flip=olc::Sprite::NONE)'],['../classolc_1_1_transformed_view.html#a0c6e1fb72399ec97e0dc093a2da80d50',1,'olc::TransformedView::DrawPartialSprite(const olc::vf2d &amp;pos, Sprite *sprite, const olc::vi2d &amp;sourcepos, const olc::vi2d &amp;size, const olc::vf2d &amp;scale={ 1.0f, 1.0f }, uint8_t flip=olc::Sprite::NONE)'],['../classolc_1_1_pixel_game_engine.html#ab777dd885946b2dba5e8bef894c6868c',1,'olc::PixelGameEngine::DrawPartialSprite(int32_t x, int32_t y, Sprite *sprite, int32_t ox, int32_t oy, int32_t w, int32_t h, uint32_t scale=1, uint8_t flip=olc::Sprite::NONE)'],['../classolc_1_1_pixel_game_engine.html#aecfcfec384cf4eb56ab89f92df4ff288',1,'olc::PixelGameEngine::DrawPartialSprite(const olc::vi2d &amp;pos, Sprite *sprite, const olc::vi2d &amp;sourcepos, const olc::vi2d &amp;size, uint32_t scale=1, uint8_t flip=olc::Sprite::NONE)']]],
+  ['drawpartialwarpeddecal_796',['DrawPartialWarpedDecal',['../classolc_1_1_transformed_view.html#a17bf0d6a35728abe95993ef5475aa767',1,'olc::TransformedView::DrawPartialWarpedDecal(olc::Decal *decal, const olc::vf2d(&amp;pos)[4], const olc::vf2d &amp;source_pos, const olc::vf2d &amp;source_size, const olc::Pixel &amp;tint=olc::WHITE)'],['../classolc_1_1_transformed_view.html#a88045b492c61288a7e5ca1eb164ad2fb',1,'olc::TransformedView::DrawPartialWarpedDecal(olc::Decal *decal, const olc::vf2d *pos, const olc::vf2d &amp;source_pos, const olc::vf2d &amp;source_size, const olc::Pixel &amp;tint=olc::WHITE)'],['../classolc_1_1_transformed_view.html#a624730b2582152c4cc49d457bc140859',1,'olc::TransformedView::DrawPartialWarpedDecal(olc::Decal *decal, const std::array&lt; olc::vf2d, 4 &gt; &amp;pos, const olc::vf2d &amp;source_pos, const olc::vf2d &amp;source_size, const olc::Pixel &amp;tint=olc::WHITE)'],['../classolc_1_1_pixel_game_engine.html#a78be0709345710435fdaef7bc14f5fb3',1,'olc::PixelGameEngine::DrawPartialWarpedDecal(olc::Decal *decal, const olc::vf2d(&amp;pos)[4], const olc::vf2d &amp;source_pos, const olc::vf2d &amp;source_size, const olc::Pixel &amp;tint=olc::WHITE)'],['../classolc_1_1_pixel_game_engine.html#a5993da382c8e661655386a41ae874270',1,'olc::PixelGameEngine::DrawPartialWarpedDecal(olc::Decal *decal, const olc::vf2d *pos, const olc::vf2d &amp;source_pos, const olc::vf2d &amp;source_size, const olc::Pixel &amp;tint=olc::WHITE)'],['../classolc_1_1_pixel_game_engine.html#aaccd68c61d88b13ffe1e93493f2a5b35',1,'olc::PixelGameEngine::DrawPartialWarpedDecal(olc::Decal *decal, const std::array&lt; olc::vf2d, 4 &gt; &amp;pos, const olc::vf2d &amp;source_pos, const olc::vf2d &amp;source_size, const olc::Pixel &amp;tint=olc::WHITE)']]],
+  ['drawpolygondecal_797',['DrawPolygonDecal',['../classolc_1_1_transformed_view.html#a0555577738d2edacb8b8e701d90804d7',1,'olc::TransformedView::DrawPolygonDecal()'],['../classolc_1_1_pixel_game_engine.html#a40a7754338ea7b388ffa2383958d1f0b',1,'olc::PixelGameEngine::DrawPolygonDecal()']]],
+  ['drawrect_798',['DrawRect',['../classolc_1_1_transformed_view.html#ab1578748552d35bff05e63dcfc79cfb9',1,'olc::TransformedView::DrawRect(float x, float y, float w, float h, olc::Pixel p=olc::WHITE)'],['../classolc_1_1_transformed_view.html#a2ce6891b49d600eacb32eef88f07b2e0',1,'olc::TransformedView::DrawRect(const olc::vf2d &amp;pos, const olc::vf2d &amp;size, olc::Pixel p=olc::WHITE)'],['../classolc_1_1_pixel_game_engine.html#a220f523e520e317f5656c4d3df777163',1,'olc::PixelGameEngine::DrawRect(int32_t x, int32_t y, int32_t w, int32_t h, Pixel p=olc::WHITE)'],['../classolc_1_1_pixel_game_engine.html#ac8536bf173a396cf78f952ab66fe6156',1,'olc::PixelGameEngine::DrawRect(const olc::vi2d &amp;pos, const olc::vi2d &amp;size, Pixel p=olc::WHITE)']]],
+  ['drawrotateddecal_799',['DrawRotatedDecal',['../classolc_1_1_transformed_view.html#a0d11f6c9ddf0cda25a7b6a79c39c61d6',1,'olc::TransformedView::DrawRotatedDecal()'],['../classolc_1_1_pixel_game_engine.html#ab9af9b6726271e83dd7e4b24583b4236',1,'olc::PixelGameEngine::DrawRotatedDecal()']]],
+  ['drawsprite_800',['DrawSprite',['../classolc_1_1_transformed_view.html#a0814eafdbf34c4570c08722998b3c936',1,'olc::TransformedView::DrawSprite(float x, float y, olc::Sprite *sprite, float scalex=1, float scaley=1, uint8_t flip=olc::Sprite::NONE)'],['../classolc_1_1_transformed_view.html#a44f1c98c6c6720338d7b6dcc9117cb03',1,'olc::TransformedView::DrawSprite(const olc::vf2d &amp;pos, olc::Sprite *sprite, const olc::vf2d &amp;scale={ 1.0f, 1.0f }, uint8_t flip=olc::Sprite::NONE)'],['../classolc_1_1_pixel_game_engine.html#a5bae460b03f2837e39fdee3a0bbb6f99',1,'olc::PixelGameEngine::DrawSprite(int32_t x, int32_t y, Sprite *sprite, uint32_t scale=1, uint8_t flip=olc::Sprite::NONE)'],['../classolc_1_1_pixel_game_engine.html#adcf00714f6f13ed5ad256e2102084177',1,'olc::PixelGameEngine::DrawSprite(const olc::vi2d &amp;pos, Sprite *sprite, uint32_t scale=1, uint8_t flip=olc::Sprite::NONE)']]],
+  ['drawstring_801',['DrawString',['../classolc_1_1_transformed_view.html#acf22577cab34db667d05eae0e38000e0',1,'olc::TransformedView::DrawString(float x, float y, const std::string &amp;sText, Pixel col, const olc::vf2d &amp;scale)'],['../classolc_1_1_transformed_view.html#ab8e4acce21674331d91910c7056c59a3',1,'olc::TransformedView::DrawString(const olc::vf2d &amp;pos, const std::string &amp;sText, const Pixel col, const olc::vf2d &amp;scale)'],['../classolc_1_1_pixel_game_engine.html#ac29d79dedde0b2187f9f9ccbbc33fd0b',1,'olc::PixelGameEngine::DrawString(int32_t x, int32_t y, const std::string &amp;sText, Pixel col=olc::WHITE, uint32_t scale=1)'],['../classolc_1_1_pixel_game_engine.html#ae099b13b38e5b02ffd31ad34a703cee5',1,'olc::PixelGameEngine::DrawString(const olc::vi2d &amp;pos, const std::string &amp;sText, Pixel col=olc::WHITE, uint32_t scale=1)']]],
+  ['drawstringdecal_802',['DrawStringDecal',['../classolc_1_1_transformed_view.html#a903ad811f1e3f99d8c6e35f1a1aaf9bf',1,'olc::TransformedView::DrawStringDecal()'],['../classolc_1_1_pixel_game_engine.html#a689d1828a93292702070b97fb14f5644',1,'olc::PixelGameEngine::DrawStringDecal()']]],
+  ['drawstringprop_803',['DrawStringProp',['../classolc_1_1_pixel_game_engine.html#a1ddca999be34411764bb12d2a15cc021',1,'olc::PixelGameEngine::DrawStringProp(int32_t x, int32_t y, const std::string &amp;sText, Pixel col=olc::WHITE, uint32_t scale=1)'],['../classolc_1_1_pixel_game_engine.html#a161ef8177257c371741d12cbc4818cf6',1,'olc::PixelGameEngine::DrawStringProp(const olc::vi2d &amp;pos, const std::string &amp;sText, Pixel col=olc::WHITE, uint32_t scale=1)']]],
+  ['drawstringpropdecal_804',['DrawStringPropDecal',['../classolc_1_1_transformed_view.html#afde48a1dc4946bfb3718c19bdf62b328',1,'olc::TransformedView::DrawStringPropDecal()'],['../classolc_1_1_pixel_game_engine.html#a7392273f15fc09b3659b112564aa0dfa',1,'olc::PixelGameEngine::DrawStringPropDecal()']]],
+  ['drawtriangle_805',['DrawTriangle',['../classolc_1_1_transformed_view.html#a6c818747c7fa97445fbb40c9f222e865',1,'olc::TransformedView::DrawTriangle(float x1, float y1, float x2, float y2, float x3, float y3, olc::Pixel p=olc::WHITE)'],['../classolc_1_1_transformed_view.html#a45a659d55d124e87e956e842963637fa',1,'olc::TransformedView::DrawTriangle(const olc::vf2d &amp;pos1, const olc::vf2d &amp;pos2, const olc::vf2d &amp;pos3, olc::Pixel p=olc::WHITE)'],['../classolc_1_1_pixel_game_engine.html#a2bddba9e808a8702f6af354007302c16',1,'olc::PixelGameEngine::DrawTriangle(int32_t x1, int32_t y1, int32_t x2, int32_t y2, int32_t x3, int32_t y3, Pixel p=olc::WHITE)'],['../classolc_1_1_pixel_game_engine.html#aafe21db2127f56670b5f5f089adced71',1,'olc::PixelGameEngine::DrawTriangle(const olc::vi2d &amp;pos1, const olc::vi2d &amp;pos2, const olc::vi2d &amp;pos3, Pixel p=olc::WHITE)']]],
+  ['drawwarpeddecal_806',['DrawWarpedDecal',['../classolc_1_1_transformed_view.html#a2c0e827b1182696275583059a1a72412',1,'olc::TransformedView::DrawWarpedDecal(olc::Decal *decal, const olc::vf2d(&amp;pos)[4], const olc::Pixel &amp;tint=olc::WHITE)'],['../classolc_1_1_transformed_view.html#a250badf6257c666f0e0a07ed3d86ad9e',1,'olc::TransformedView::DrawWarpedDecal(olc::Decal *decal, const olc::vf2d *pos, const olc::Pixel &amp;tint=olc::WHITE)'],['../classolc_1_1_transformed_view.html#a615fda4662913d6a1fc2764025c28efc',1,'olc::TransformedView::DrawWarpedDecal(olc::Decal *decal, const std::array&lt; olc::vf2d, 4 &gt; &amp;pos, const olc::Pixel &amp;tint=olc::WHITE)'],['../classolc_1_1_pixel_game_engine.html#a65098b403a403c45041599893429b550',1,'olc::PixelGameEngine::DrawWarpedDecal(olc::Decal *decal, const olc::vf2d(&amp;pos)[4], const olc::Pixel &amp;tint=olc::WHITE)'],['../classolc_1_1_pixel_game_engine.html#ae6cc4bd274522bf9ac36054eda6c95ac',1,'olc::PixelGameEngine::DrawWarpedDecal(olc::Decal *decal, const olc::vf2d *pos, const olc::Pixel &amp;tint=olc::WHITE)'],['../classolc_1_1_pixel_game_engine.html#a5174456bbdaace7cde233889f7ad6d72',1,'olc::PixelGameEngine::DrawWarpedDecal(olc::Decal *decal, const std::array&lt; olc::vf2d, 4 &gt; &amp;pos, const olc::Pixel &amp;tint=olc::WHITE)']]],
+  ['dummyentity_807',['DummyEntity',['../classentities_1_1_dummy_entity.html#aa68ec40dca291f94607c943d7d50c34b',1,'entities::DummyEntity']]],
+  ['duplicate_808',['Duplicate',['../classolc_1_1_sprite.html#a0b9399ba5d6df0b481ab16d8c4a28ded',1,'olc::Sprite::Duplicate()'],['../classolc_1_1_sprite.html#ac4307f400438dad18b0720cc034bec0b',1,'olc::Sprite::Duplicate(const olc::vi2d &amp;vPos, const olc::vi2d &amp;vSize)']]],
+  ['dynamicarray_809',['DynamicArray',['../class_dynamic_array.html#a7d42e6eaa66bab7c43f193e78d2d56a9',1,'DynamicArray']]]
+];
diff --git a/doxy/html/search/functions_4.html b/doxy/html/search/functions_4.html
new file mode 100644
index 0000000000000000000000000000000000000000..306d41f80337df7faf1917b02b7955c1d20f018c
--- /dev/null
+++ b/doxy/html/search/functions_4.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="functions_4.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doxy/html/search/functions_4.js b/doxy/html/search/functions_4.js
new file mode 100644
index 0000000000000000000000000000000000000000..2d1e99eedccd6d7f2eed945a85c4eeb57b0dbe2c
--- /dev/null
+++ b/doxy/html/search/functions_4.js
@@ -0,0 +1,10 @@
+var searchData=
+[
+  ['emgun_810',['EMGun',['../classweapons_1_1_e_m_gun.html#a39114a620affbf0d80d616cf4baf7e17',1,'weapons::EMGun']]],
+  ['enablelayer_811',['EnableLayer',['../classolc_1_1_pixel_game_engine.html#a1e3453e2a118596fa04a961f66c6fd46',1,'olc::PixelGameEngine']]],
+  ['end_812',['end',['../class_dynamic_array.html#ac316f2e7a1938687031cb5cc34df34cc',1,'DynamicArray']]],
+  ['endpan_813',['EndPan',['../classolc_1_1_transformed_view.html#a3edd680172e1ae5b710290ab58d617e0',1,'olc::TransformedView']]],
+  ['entity_814',['Entity',['../classentities_1_1_entity.html#a539ddef34b718b6068df421f316f4a6d',1,'entities::Entity']]],
+  ['entitywithai_815',['EntityWithAI',['../classentities_1_1_entity_with_a_i.html#aa8bfaebef1ce596fbd8d70b36362135b',1,'entities::EntityWithAI']]],
+  ['explosiveprojectile_816',['ExplosiveProjectile',['../classentities_1_1_explosive_projectile.html#ae80625e2530015d21b963ec219be758e',1,'entities::ExplosiveProjectile']]]
+];
diff --git a/doxy/html/search/functions_5.html b/doxy/html/search/functions_5.html
new file mode 100644
index 0000000000000000000000000000000000000000..27bbb7027bc18d57e22862796db693a4e4f80fda
--- /dev/null
+++ b/doxy/html/search/functions_5.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="functions_5.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doxy/html/search/functions_5.js b/doxy/html/search/functions_5.js
new file mode 100644
index 0000000000000000000000000000000000000000..9b4a29d943100ca500469511c9e673160bd4cfca
--- /dev/null
+++ b/doxy/html/search/functions_5.js
@@ -0,0 +1,9 @@
+var searchData=
+[
+  ['fillcircle_817',['FillCircle',['../classolc_1_1_transformed_view.html#afd3f4dffe3a2fffaed2fd6c84e40ce23',1,'olc::TransformedView::FillCircle(float x, float y, float radius, olc::Pixel p=olc::WHITE)'],['../classolc_1_1_transformed_view.html#a8d8559f74de40982e41f9cab0577b3b9',1,'olc::TransformedView::FillCircle(const olc::vf2d &amp;pos, float radius, olc::Pixel p=olc::WHITE)'],['../classolc_1_1_pixel_game_engine.html#a483f56606fbbf3ab4850554491a853bd',1,'olc::PixelGameEngine::FillCircle(int32_t x, int32_t y, int32_t radius, Pixel p=olc::WHITE)'],['../classolc_1_1_pixel_game_engine.html#a169b1c8ca3116ac2338785b8ffe87954',1,'olc::PixelGameEngine::FillCircle(const olc::vi2d &amp;pos, int32_t radius, Pixel p=olc::WHITE)']]],
+  ['fillrect_818',['FillRect',['../classolc_1_1_transformed_view.html#a2f12ada82c7262a2e29572cfded60f02',1,'olc::TransformedView::FillRect(float x, float y, float w, float h, olc::Pixel p=olc::WHITE)'],['../classolc_1_1_transformed_view.html#abc3071fe6fa5f9ca4c5fe227a335df54',1,'olc::TransformedView::FillRect(const olc::vf2d &amp;pos, const olc::vf2d &amp;size, olc::Pixel p=olc::WHITE)'],['../classolc_1_1_pixel_game_engine.html#a6b5e218bb4360f27a470f9e821721331',1,'olc::PixelGameEngine::FillRect(int32_t x, int32_t y, int32_t w, int32_t h, Pixel p=olc::WHITE)'],['../classolc_1_1_pixel_game_engine.html#ae225f7027e20fe0f45a8190a992981cc',1,'olc::PixelGameEngine::FillRect(const olc::vi2d &amp;pos, const olc::vi2d &amp;size, Pixel p=olc::WHITE)']]],
+  ['fillrectdecal_819',['FillRectDecal',['../classolc_1_1_transformed_view.html#a82f6eeb19d315324c160aa78fd2ead70',1,'olc::TransformedView::FillRectDecal()'],['../classolc_1_1_pixel_game_engine.html#a02a26bca44e04f075f517bdae6ac0e9d',1,'olc::PixelGameEngine::FillRectDecal()']]],
+  ['filltriangle_820',['FillTriangle',['../classolc_1_1_transformed_view.html#a5cba545151923f38fd5d87b2c130a894',1,'olc::TransformedView::FillTriangle(float x1, float y1, float x2, float y2, float x3, float y3, olc::Pixel p=olc::WHITE)'],['../classolc_1_1_transformed_view.html#a023149966b61d7f233898c2b4372d018',1,'olc::TransformedView::FillTriangle(const olc::vf2d &amp;pos1, const olc::vf2d &amp;pos2, const olc::vf2d &amp;pos3, olc::Pixel p=olc::WHITE)'],['../classolc_1_1_pixel_game_engine.html#ad31abffe6c4d0b864b8f7762c33b7a7d',1,'olc::PixelGameEngine::FillTriangle(int32_t x1, int32_t y1, int32_t x2, int32_t y2, int32_t x3, int32_t y3, Pixel p=olc::WHITE)'],['../classolc_1_1_pixel_game_engine.html#a091224d5937210726d25c8cdeb4a951e',1,'olc::PixelGameEngine::FillTriangle(const olc::vi2d &amp;pos1, const olc::vi2d &amp;pos2, const olc::vi2d &amp;pos3, Pixel p=olc::WHITE)']]],
+  ['finalizeadd_821',['finalizeAdd',['../class_dynamic_array.html#a180959557f211bf3fcdf5e26b7cb67ab',1,'DynamicArray']]],
+  ['floor_822',['floor',['../structolc_1_1v2d__generic.html#affe50148d448ff75c298da3a1fd45323',1,'olc::v2d_generic']]]
+];
diff --git a/doxy/html/search/functions_6.html b/doxy/html/search/functions_6.html
new file mode 100644
index 0000000000000000000000000000000000000000..84606c04a4dc747619196f38d3fbc014507201c0
--- /dev/null
+++ b/doxy/html/search/functions_6.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="functions_6.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doxy/html/search/functions_6.js b/doxy/html/search/functions_6.js
new file mode 100644
index 0000000000000000000000000000000000000000..49752c232cb847ef9ecaac936e2719a2b0068249
--- /dev/null
+++ b/doxy/html/search/functions_6.js
@@ -0,0 +1,65 @@
+var searchData=
+[
+  ['gameclient_823',['GameClient',['../class_game_client.html#a1324a20c121e201e69391dfe7a08e546',1,'GameClient']]],
+  ['gameexception_824',['GameException',['../class_game_exception.html#a076a7dd5228356c8d54dd0922d1c3048',1,'GameException']]],
+  ['generate_825',['generate',['../class_dungeon_generator.html#add8fcec4f013307d734616106110a1ea',1,'DungeonGenerator::generate()'],['../class_square_room_generator.html#a5b9952abf9af7a8fc4241f3f9e93a616',1,'SquareRoomGenerator::generate()'],['../class_test_generator.html#aaacdd82f39d99e1dcbc847b674f245e1',1,'TestGenerator::generate()']]],
+  ['getanimphase_826',['getAnimPhase',['../classentities_1_1_living_entity.html#a657626746aaed854f45ac3bb6d6c2a2f',1,'entities::LivingEntity']]],
+  ['getbottomrighttile_827',['GetBottomRightTile',['../classolc_1_1_tile_transformed_view.html#af681fe11952b2a791a388c79054adc1f',1,'olc::TileTransformedView']]],
+  ['getcollision_828',['getCollision',['../classentities_1_1_entity.html#a94d18db8d502d677b6f4215dc1e1d820',1,'entities::Entity']]],
+  ['getcooldownbar_829',['getCooldownBar',['../classweapons_1_1_weapon.html#a9626ba57d509b1ee0fbe7f900d5181c6',1,'weapons::Weapon']]],
+  ['getdamage_830',['getDamage',['../classweapons_1_1_melee_weapon.html#a2636c0b628f8fa52d269bb2dab0b21bd',1,'weapons::MeleeWeapon::getDamage()'],['../classentities_1_1_projectile_entity.html#a463a54543d8412feddf3be0aa7ab532a',1,'entities::ProjectileEntity::getDamage()']]],
+  ['getdata_831',['GetData',['../classolc_1_1_sprite.html#ad8fcc6bbf8a785aa0bb9d00bf3cfdff2',1,'olc::Sprite']]],
+  ['getdecal_832',['getDecal',['../classrender_1_1_lazy_sprite.html#aea6cdfcf5295c8a2c4b3f4a51ee0bc28',1,'render::LazySprite::getDecal()'],['../classrender_1_1_resource_manager.html#a58cd141c758a19c7a04b33742de422f8',1,'render::ResourceManager::getDecal()'],['../classrender_1_1_sprite_manager.html#ad40363b5fa66e08aec13f332c5964d6b',1,'render::SpriteManager::getDecal()']]],
+  ['getdirection_833',['getDirection',['../classentities_1_1_living_entity.html#a27f39311f1139c96967b28cbaf752bd2',1,'entities::LivingEntity']]],
+  ['getdrawtarget_834',['GetDrawTarget',['../classolc_1_1_pixel_game_engine.html#a5fd95bd9571bc3ed3fd5d7d110e48cff',1,'olc::PixelGameEngine']]],
+  ['getdrawtargetheight_835',['GetDrawTargetHeight',['../classolc_1_1_pixel_game_engine.html#a4ee3dbff01900d71e62bfe499b1c83c3',1,'olc::PixelGameEngine']]],
+  ['getdrawtargetwidth_836',['GetDrawTargetWidth',['../classolc_1_1_pixel_game_engine.html#a45d918f65f5fee13e654878d8271326b',1,'olc::PixelGameEngine']]],
+  ['getelapsedtime_837',['GetElapsedTime',['../classolc_1_1_pixel_game_engine.html#af881473291c52d849dbef155e359b27c',1,'olc::PixelGameEngine']]],
+  ['getentities_838',['getEntities',['../class_game_client.html#a6984da0365fd19c81dbc8907b598bf49',1,'GameClient']]],
+  ['getfilebuffer_839',['GetFileBuffer',['../classolc_1_1_resource_pack.html#accb89668e145dc59e0740925b1b91987',1,'olc::ResourcePack']]],
+  ['getfontsprite_840',['GetFontSprite',['../classolc_1_1_pixel_game_engine.html#abab955edc6d1ec6023a7806509582f52',1,'olc::PixelGameEngine']]],
+  ['getfps_841',['GetFPS',['../classolc_1_1_pixel_game_engine.html#a89d27938d71d49b42a20307444147697',1,'olc::PixelGameEngine']]],
+  ['gethealthstatus_842',['getHealthStatus',['../classentities_1_1_player_entity.html#ab4a5cd2af67538f73832668a2cd32c9f',1,'entities::PlayerEntity']]],
+  ['gethitboxsize_843',['getHitBoxSize',['../classentities_1_1_entity.html#a9cd7ba81ddbd978b8f43e9f10e97492f',1,'entities::Entity::getHitBoxSize()'],['../classentities_1_1_living_entity.html#aa965d3922663b974dd14cc5f8004ed65',1,'entities::LivingEntity::getHitBoxSize()'],['../classentities_1_1_projectile_entity.html#ae38525094695db8ab564c5ae27711bb4',1,'entities::ProjectileEntity::getHitBoxSize()'],['../classweapons_1_1_typical_melee_weapon.html#ab60f5d99ae206d9064381b0c70b9a7a2',1,'weapons::TypicalMeleeWeapon::getHitBoxSize()'],['../classentities_1_1_wall_entity.html#afd4863a311190a59cdf7574798ac3f2d',1,'entities::WallEntity::getHitBoxSize()'],['../classweapons_1_1_weapon.html#a862bd61cf947a91809b423304885cf66',1,'weapons::Weapon::getHitBoxSize()']]],
+  ['gethitoffset_844',['getHitOffset',['../classweapons_1_1_melee_weapon.html#ac6a6b662df60c1927531fddf9a93ebaa',1,'weapons::MeleeWeapon::getHitOffset()'],['../classweapons_1_1_typical_melee_weapon.html#a74cb37d45c599296e443858b73cd1d97',1,'weapons::TypicalMeleeWeapon::getHitOffset()']]],
+  ['getinstance_845',['getInstance',['../class_game_client.html#adfcb979db6333b335dee4e6d785aabcf',1,'GameClient']]],
+  ['getkey_846',['GetKey',['../classolc_1_1_pixel_game_engine.html#a27cb4cb68d5e1ca7df8014d66221269e',1,'olc::PixelGameEngine']]],
+  ['getlayers_847',['GetLayers',['../classolc_1_1_pixel_game_engine.html#aac31baad6daf55b926f6add9c44a5591',1,'olc::PixelGameEngine']]],
+  ['getmouse_848',['GetMouse',['../classolc_1_1_pixel_game_engine.html#abdf9f5d70c9e24ab9358a8dd07474105',1,'olc::PixelGameEngine']]],
+  ['getmousepos_849',['GetMousePos',['../classolc_1_1_pixel_game_engine.html#af11fb390dbc5a3168c26fe911690dcbe',1,'olc::PixelGameEngine']]],
+  ['getmousewheel_850',['GetMouseWheel',['../classolc_1_1_pixel_game_engine.html#a9640286e4a7cd03c6f545b1df7373269',1,'olc::PixelGameEngine']]],
+  ['getmousex_851',['GetMouseX',['../classolc_1_1_pixel_game_engine.html#a2ec1d2a1f3777338fb4388c620344a34',1,'olc::PixelGameEngine']]],
+  ['getmousey_852',['GetMouseY',['../classolc_1_1_pixel_game_engine.html#a8dde80c07547240f5e72b4f2fcd89668',1,'olc::PixelGameEngine']]],
+  ['getname_853',['getName',['../classentities_1_1_entity.html#a8c4b0c1eb69a673619e4c8943ef34f86',1,'entities::Entity']]],
+  ['getneighbourid_854',['getNeighbourID',['../classentities_1_1_wall_entity.html#af799f9675cdf4acadfcf9d9616d36e1b',1,'entities::WallEntity']]],
+  ['getpixel_855',['GetPixel',['../classolc_1_1_sprite.html#a7e1f8169c9822f1ed94f0212d3f8d6f6',1,'olc::Sprite::GetPixel(int32_t x, int32_t y) const'],['../classolc_1_1_sprite.html#a1a05e4ffd8d8b24b99ab511279b342cf',1,'olc::Sprite::GetPixel(const olc::vi2d &amp;a) const']]],
+  ['getpixelmode_856',['GetPixelMode',['../classolc_1_1_pixel_game_engine.html#ad4f95a449dc09a2650ec771e6fa83049',1,'olc::PixelGameEngine']]],
+  ['getpixelsize_857',['GetPixelSize',['../classolc_1_1_pixel_game_engine.html#a721fb4cfac75f76c6d5832415fccbe61',1,'olc::PixelGameEngine']]],
+  ['getplayerentity_858',['getPlayerEntity',['../class_game_client.html#acc1e0f1d4836be4a8556289cfdfd4049',1,'GameClient']]],
+  ['getpos_859',['getPos',['../classentities_1_1_entity.html#a799a692b988248dd23d207b95e7fe2b7',1,'entities::Entity']]],
+  ['getpredicator_860',['getPredicator',['../classweapons_1_1_melee_weapon.html#af14b624f27592421fc117c4fa81aba1b',1,'weapons::MeleeWeapon::getPredicator()'],['../classweapons_1_1_typical_melee_weapon.html#ad367f50efc891a92b0f22f2404f39c5e',1,'weapons::TypicalMeleeWeapon::getPredicator()']]],
+  ['getscene_861',['getScene',['../class_game_client.html#a01a0c559c6cfe63557fa4b5d7aa9e72c',1,'GameClient']]],
+  ['getscreenpixelsize_862',['GetScreenPixelSize',['../classolc_1_1_pixel_game_engine.html#a5602d50220bd7edbd77fc67eaa981ce5',1,'olc::PixelGameEngine']]],
+  ['getsecondarybar_863',['getSecondaryBar',['../classweapons_1_1_e_m_gun.html#a1d2c920f4fddd40d39dba5d4dddf496f',1,'weapons::EMGun::getSecondaryBar()'],['../classweapons_1_1_weapon.html#a3f84544c15d6220252c6175fdfe5c61d',1,'weapons::Weapon::getSecondaryBar()']]],
+  ['getsize_864',['getSize',['../class_dynamic_array.html#acbec0bb643ebec934cf5e9dfc1ecf01e',1,'DynamicArray::getSize()'],['../classentities_1_1_entity.html#ac60e9beb5a45fc65120e9779e680c04b',1,'entities::Entity::getSize()']]],
+  ['getsprite_865',['getSprite',['../classrender_1_1_resource_manager.html#a4ac8358921fdda1f37bf4564855f6fce',1,'render::ResourceManager']]],
+  ['gettextsize_866',['GetTextSize',['../classolc_1_1_pixel_game_engine.html#aa70121ffb85733f8ea2e7e5d0b4b311b',1,'olc::PixelGameEngine']]],
+  ['gettextsizeprop_867',['GetTextSizeProp',['../classolc_1_1_pixel_game_engine.html#ab282eddb9b8fe14d01311c8613f79e84',1,'olc::PixelGameEngine']]],
+  ['gettexture_868',['getTexture',['../classentities_1_1_character_entity.html#afdae03f49fd5d47d0837ed660e37038f',1,'entities::CharacterEntity::getTexture()'],['../classentities_1_1_entity.html#af01b796fb472ef3139aea41aeed36c76',1,'entities::Entity::getTexture()'],['../classentities_1_1_projectile_entity.html#a7e67fe629e1ef7115fd2a0cae8b1efc0',1,'entities::ProjectileEntity::getTexture()'],['../classentities_1_1_wall_entity.html#a4b6c55275f06a30dac07c2dc5452e602',1,'entities::WallEntity::getTexture()']]],
+  ['gettileoffset_869',['GetTileOffset',['../classolc_1_1_tile_transformed_view.html#afd338a68b965309beeefa3f239a0680b',1,'olc::TileTransformedView']]],
+  ['gettileunderscreenpos_870',['GetTileUnderScreenPos',['../classolc_1_1_tile_transformed_view.html#a1a963a55248ff021b76ecc8e92a555e6',1,'olc::TileTransformedView']]],
+  ['gettoplefttile_871',['GetTopLeftTile',['../classolc_1_1_tile_transformed_view.html#a9230a04b74c812551768b324a07bf2a3',1,'olc::TileTransformedView']]],
+  ['getvisibletiles_872',['GetVisibleTiles',['../classolc_1_1_tile_transformed_view.html#abc2e3898f7bb8209d84095cc5c16843b',1,'olc::TileTransformedView']]],
+  ['getweapon_873',['getWeapon',['../classentities_1_1_character_entity.html#a7926bfbac4481203c1bd8920fcb2c432',1,'entities::CharacterEntity::getWeapon()'],['../classentities_1_1_entity_with_a_i.html#a66937315f0a16d70c29359e89415d222',1,'entities::EntityWithAI::getWeapon()'],['../classentities_1_1_player_entity.html#a6b0fdc757c8e1d95012a31dab836f20a',1,'entities::PlayerEntity::getWeapon() override'],['../classentities_1_1_player_entity.html#a1759d4f054b70c3c57f0f66c03fe09bb',1,'entities::PlayerEntity::getWeapon() const']]],
+  ['getwindowmouse_874',['GetWindowMouse',['../classolc_1_1_pixel_game_engine.html#a54b5141da371af51541874dd68e4e6a2',1,'olc::PixelGameEngine']]],
+  ['getwindowsize_875',['GetWindowSize',['../classolc_1_1_pixel_game_engine.html#aee10e917aeb1ce4625561d71126e0a7d',1,'olc::PixelGameEngine']]],
+  ['getworldbr_876',['GetWorldBR',['../classolc_1_1_transformed_view.html#a5240bf2a7285559be13c80f3ce2a97a3',1,'olc::TransformedView']]],
+  ['getworldoffset_877',['GetWorldOffset',['../classolc_1_1_transformed_view.html#a88152a5f5b9fbb3df0f6d965ef4c4fe4',1,'olc::TransformedView']]],
+  ['getworldscale_878',['GetWorldScale',['../classolc_1_1_transformed_view.html#a4f6ba5d2c58b720677f4287743713f65',1,'olc::TransformedView']]],
+  ['getworldtl_879',['GetWorldTL',['../classolc_1_1_transformed_view.html#ac75bd045f9fbc5d8cd901ecdd216fcb5',1,'olc::TransformedView']]],
+  ['getworldvisiblearea_880',['GetWorldVisibleArea',['../classolc_1_1_transformed_view.html#a7f7815582a087a163199bb29f1c4c0ae',1,'olc::TransformedView']]],
+  ['glitchgun_881',['GlitchGun',['../classweapons_1_1_glitch_gun.html#ac8935765613bfe258bc6985441159702',1,'weapons::GlitchGun::GlitchGun()'],['../namespaceweapons_1_1textures.html#ad763a6f6186015fe93af0a1e5088f026',1,'weapons::textures::glitchGun()']]],
+  ['glitchtexture_882',['GlitchTexture',['../classweapons_1_1_glitch_texture.html#a613747d0865e988631cb0f0213c54640',1,'weapons::GlitchTexture']]],
+  ['gradientfillrectdecal_883',['GradientFillRectDecal',['../classolc_1_1_transformed_view.html#a220b8b9184eb25a6bb2c3271d5417025',1,'olc::TransformedView::GradientFillRectDecal()'],['../classolc_1_1_pixel_game_engine.html#a11d9ed8762b81e0bd6bbe4349255b1e8',1,'olc::PixelGameEngine::GradientFillRectDecal()']]],
+  ['green_884',['GREEN',['../namespaceolc.html#a32b98884f548bf731eab3225557ebe8c',1,'olc']]]
+];
diff --git a/doxy/html/search/functions_7.html b/doxy/html/search/functions_7.html
new file mode 100644
index 0000000000000000000000000000000000000000..cdfdabefb78fd4e02e27a723cd7001c528034fb5
--- /dev/null
+++ b/doxy/html/search/functions_7.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="functions_7.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doxy/html/search/functions_7.js b/doxy/html/search/functions_7.js
new file mode 100644
index 0000000000000000000000000000000000000000..7d9cf3bfea69454f8659b8805d71936c704706fa
--- /dev/null
+++ b/doxy/html/search/functions_7.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+  ['handlesystemevent_885',['HandleSystemEvent',['../classolc_1_1_platform.html#abbc05f4b3aea3513919b05fdb15bfbbc',1,'olc::Platform']]]
+];
diff --git a/doxy/html/search/functions_8.html b/doxy/html/search/functions_8.html
new file mode 100644
index 0000000000000000000000000000000000000000..4f9f4e152b153b06172cc36fb7367f69f2275d13
--- /dev/null
+++ b/doxy/html/search/functions_8.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="functions_8.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doxy/html/search/functions_8.js b/doxy/html/search/functions_8.js
new file mode 100644
index 0000000000000000000000000000000000000000..5bcc882a95d2699329d42b779af8ff4f89ce39aa
--- /dev/null
+++ b/doxy/html/search/functions_8.js
@@ -0,0 +1,12 @@
+var searchData=
+[
+  ['imageloader_886',['ImageLoader',['../classolc_1_1_image_loader.html#a7aa358a572ec995b530ca5b54829f044',1,'olc::ImageLoader']]],
+  ['init_887',['init',['../classentities_1_1_entity.html#afd80ddceccb36b87d0d80dcc7f88fc3b',1,'entities::Entity::init()'],['../classentities_1_1_wall_entity.html#ad66ed8002d8082035bd3b7df07ff45b5',1,'entities::WallEntity::init()']]],
+  ['initialise_888',['Initialise',['../classolc_1_1_transformed_view.html#a799473b80691228b87a818f80847ca76',1,'olc::TransformedView']]],
+  ['inv_889',['inv',['../structolc_1_1_pixel.html#a8a1daba449fb823a4535a6089fe880ab',1,'olc::Pixel']]],
+  ['isalive_890',['isAlive',['../classentities_1_1_entity.html#ab0ee90a84f2163b600e603f24cff046f',1,'entities::Entity']]],
+  ['isfocused_891',['IsFocused',['../classolc_1_1_pixel_game_engine.html#a92192402b5d499ab8b230dfb9393f3b7',1,'olc::PixelGameEngine']]],
+  ['isinitialized_892',['isInitialized',['../classentities_1_1_entity.html#ab010066d52a02c63908f70ff6ef7d873',1,'entities::Entity']]],
+  ['ispointvisible_893',['IsPointVisible',['../classolc_1_1_transformed_view.html#a664ea0cbd54bbff17ea419ebfac1e359',1,'olc::TransformedView']]],
+  ['isrectvisible_894',['IsRectVisible',['../classolc_1_1_transformed_view.html#aecadbbdf84343ec0a2f0e2e8c9017f0e',1,'olc::TransformedView']]]
+];
diff --git a/doxy/html/search/functions_9.html b/doxy/html/search/functions_9.html
new file mode 100644
index 0000000000000000000000000000000000000000..5463d03bbbab5b592e5608a3545bf9be05447ba0
--- /dev/null
+++ b/doxy/html/search/functions_9.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="functions_9.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doxy/html/search/functions_9.js b/doxy/html/search/functions_9.js
new file mode 100644
index 0000000000000000000000000000000000000000..e15ee9522ca132465fcf88e32537359a6b00ca7b
--- /dev/null
+++ b/doxy/html/search/functions_9.js
@@ -0,0 +1,11 @@
+var searchData=
+[
+  ['lazysprite_895',['LazySprite',['../classrender_1_1_lazy_sprite.html#a28a8d429dc27035aa9a09151aa150b0a',1,'render::LazySprite']]],
+  ['livingentity_896',['LivingEntity',['../classentities_1_1_living_entity.html#a08837d43e7338c4ceff9acfbbbffd94b',1,'entities::LivingEntity']]],
+  ['load_897',['Load',['../classolc_1_1_renderable.html#ace5d212d903d86bc9789f1af0f92096c',1,'olc::Renderable']]],
+  ['loaded_898',['Loaded',['../classolc_1_1_resource_pack.html#a4421c33c022ad042d29ef81f29f5b355',1,'olc::ResourcePack']]],
+  ['loadfromfile_899',['LoadFromFile',['../classolc_1_1_sprite.html#adc277c0342733a4aa8dcdc9152326fec',1,'olc::Sprite']]],
+  ['loadfrompgesprfile_900',['LoadFromPGESprFile',['../classolc_1_1_sprite.html#a6959a2d94d6c02b7918aec5ce9b1a371',1,'olc::Sprite']]],
+  ['loadimageresource_901',['LoadImageResource',['../classolc_1_1_image_loader.html#ac08c7387037c748a38598b6442974d81',1,'olc::ImageLoader']]],
+  ['loadpack_902',['LoadPack',['../classolc_1_1_resource_pack.html#a3168eef974448f8119e93af97272df27',1,'olc::ResourcePack']]]
+];
diff --git a/doxy/html/search/functions_a.html b/doxy/html/search/functions_a.html
new file mode 100644
index 0000000000000000000000000000000000000000..800adebee03fbd5946cba2a97bc980982353f475
--- /dev/null
+++ b/doxy/html/search/functions_a.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="functions_a.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doxy/html/search/functions_a.js b/doxy/html/search/functions_a.js
new file mode 100644
index 0000000000000000000000000000000000000000..74ae5ffc778b825aaa6c0e96c8eea9d964e1b5b1
--- /dev/null
+++ b/doxy/html/search/functions_a.js
@@ -0,0 +1,12 @@
+var searchData=
+[
+  ['mag_903',['mag',['../structolc_1_1v2d__generic.html#ab06016810fe727fa826e43e44e02008b',1,'olc::v2d_generic']]],
+  ['mag2_904',['mag2',['../structolc_1_1v2d__generic.html#a6b83d7375119637fdf65233cf6dae947',1,'olc::v2d_generic']]],
+  ['magenta_905',['MAGENTA',['../namespaceolc.html#adc292fdc3c4d2a03e8c6bbad1853b727',1,'olc']]],
+  ['main_906',['main',['../game_8cpp.html#a0ddf1224851353fc92bfbff6f499fa97',1,'game.cpp']]],
+  ['max_907',['max',['../structolc_1_1v2d__generic.html#a1fe55d8bc22dbb400583cb68cc9e3e36',1,'olc::v2d_generic']]],
+  ['meleeweapon_908',['MeleeWeapon',['../classweapons_1_1_melee_weapon.html#a719614055440a5e7cfaf943dab856bb1',1,'weapons::MeleeWeapon']]],
+  ['min_909',['min',['../structolc_1_1v2d__generic.html#aec7b204ad597ee0edc9a444ff3a242eb',1,'olc::v2d_generic']]],
+  ['minigun_910',['minigun',['../namespaceweapons_1_1textures.html#a51f0963cb1171938daa3a1e894e5305b',1,'weapons::textures']]],
+  ['moveworldoffset_911',['MoveWorldOffset',['../classolc_1_1_transformed_view.html#a154b34bc81f6e0c67579d2d2ee40b2d1',1,'olc::TransformedView']]]
+];
diff --git a/doxy/html/search/functions_b.html b/doxy/html/search/functions_b.html
new file mode 100644
index 0000000000000000000000000000000000000000..69397a0b0f27c8dae8a4bc529965b30f1d342ca1
--- /dev/null
+++ b/doxy/html/search/functions_b.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="functions_b.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doxy/html/search/functions_b.js b/doxy/html/search/functions_b.js
new file mode 100644
index 0000000000000000000000000000000000000000..dee01cabbde522d1e5e95d001eda40056db2328b
--- /dev/null
+++ b/doxy/html/search/functions_b.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+  ['norm_912',['norm',['../structolc_1_1v2d__generic.html#a9c62f12d51859a5a487c5a0c2d00b09a',1,'olc::v2d_generic']]]
+];
diff --git a/doxy/html/search/functions_c.html b/doxy/html/search/functions_c.html
new file mode 100644
index 0000000000000000000000000000000000000000..a5c4feec4a0763058033af1b872170643501b73e
--- /dev/null
+++ b/doxy/html/search/functions_c.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="functions_c.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doxy/html/search/functions_c.js b/doxy/html/search/functions_c.js
new file mode 100644
index 0000000000000000000000000000000000000000..1d45c7df128307f15c292824e17ce57307406df8
--- /dev/null
+++ b/doxy/html/search/functions_c.js
@@ -0,0 +1,45 @@
+var searchData=
+[
+  ['olc_5fconfiguresystem_913',['olc_ConfigureSystem',['../classolc_1_1_pixel_game_engine.html#a7afa0b57c65bd5d9a54c602afd4fe756',1,'olc::PixelGameEngine']]],
+  ['olc_5fconstructfontsheet_914',['olc_ConstructFontSheet',['../classolc_1_1_pixel_game_engine.html#a117eedbe1e9366fe2bf402334beb9692',1,'olc::PixelGameEngine']]],
+  ['olc_5fcoreupdate_915',['olc_CoreUpdate',['../classolc_1_1_pixel_game_engine.html#a0018131435f88bb5de406fd11ee54058',1,'olc::PixelGameEngine']]],
+  ['olc_5fisrunning_916',['olc_IsRunning',['../classolc_1_1_pixel_game_engine.html#a7b0f41bc4b4258a5c4fa1742b41d15e3',1,'olc::PixelGameEngine']]],
+  ['olc_5fprepareengine_917',['olc_PrepareEngine',['../classolc_1_1_pixel_game_engine.html#aa19aafa028a7e2eaaf7b2235a9bd2256',1,'olc::PixelGameEngine']]],
+  ['olc_5freanimate_918',['olc_Reanimate',['../classolc_1_1_pixel_game_engine.html#a417b6cd564ccad1d878ae51cfdd3be8e',1,'olc::PixelGameEngine']]],
+  ['olc_5fterminate_919',['olc_Terminate',['../classolc_1_1_pixel_game_engine.html#a2da1f2ebbc1a5fbdbf52890e6ac707b1',1,'olc::PixelGameEngine']]],
+  ['olc_5fupdatekeyfocus_920',['olc_UpdateKeyFocus',['../classolc_1_1_pixel_game_engine.html#a7343712504f23f86c8490646ffc50e7f',1,'olc::PixelGameEngine']]],
+  ['olc_5fupdatekeystate_921',['olc_UpdateKeyState',['../classolc_1_1_pixel_game_engine.html#a61fde81846a9ef7f8fcf63080e6d350b',1,'olc::PixelGameEngine']]],
+  ['olc_5fupdatemouse_922',['olc_UpdateMouse',['../classolc_1_1_pixel_game_engine.html#a6e10d8fae75e26dea03b0b447667a308',1,'olc::PixelGameEngine']]],
+  ['olc_5fupdatemousefocus_923',['olc_UpdateMouseFocus',['../classolc_1_1_pixel_game_engine.html#ab3150ba487188e64940c294998fa38d3',1,'olc::PixelGameEngine']]],
+  ['olc_5fupdatemousestate_924',['olc_UpdateMouseState',['../classolc_1_1_pixel_game_engine.html#a59645c08376a7d4e58673919f3bd0dfb',1,'olc::PixelGameEngine']]],
+  ['olc_5fupdatemousewheel_925',['olc_UpdateMouseWheel',['../classolc_1_1_pixel_game_engine.html#aa33ea5e40d4577e3c44fcf4a26cecadd',1,'olc::PixelGameEngine']]],
+  ['olc_5fupdateviewport_926',['olc_UpdateViewport',['../classolc_1_1_pixel_game_engine.html#af1cd38cf0df2e7c3ab53bee66ec63771',1,'olc::PixelGameEngine']]],
+  ['olc_5fupdatewindowsize_927',['olc_UpdateWindowSize',['../classolc_1_1_pixel_game_engine.html#a4f0dae00f21f8d71d4544d50593234c3',1,'olc::PixelGameEngine']]],
+  ['onafterusercreate_928',['OnAfterUserCreate',['../classolc_1_1_p_g_e_x.html#a2a57a711518202708d2b0e586058348f',1,'olc::PGEX']]],
+  ['onafteruserupdate_929',['OnAfterUserUpdate',['../classolc_1_1_p_g_e_x.html#a4d2dd7d685fb1c7d00d97aa15e3376b4',1,'olc::PGEX']]],
+  ['onbeforeusercreate_930',['OnBeforeUserCreate',['../classolc_1_1_p_g_e_x.html#a69c65b5d3a56f9a247e1bf15fd2e4035',1,'olc::PGEX']]],
+  ['onbeforeuserupdate_931',['OnBeforeUserUpdate',['../classolc_1_1_p_g_e_x.html#a2573df22f1637314b976811714dea3fb',1,'olc::PGEX']]],
+  ['oncollide_932',['onCollide',['../classentities_1_1_explosive_projectile.html#a7e0d880f0dfeb6570dc724a0739b1331',1,'entities::ExplosiveProjectile::onCollide()'],['../classentities_1_1_projectile_entity.html#a865c1a9527f67a3e5402a4fcf8baac98',1,'entities::ProjectileEntity::onCollide()']]],
+  ['onusercreate_933',['OnUserCreate',['../class_game_client.html#a698bb8a4ba91211dc4fcaa4079d8d070',1,'GameClient::OnUserCreate()'],['../classolc_1_1_pixel_game_engine.html#a6a33b6ff7cd23dfd05b34416865fb5c3',1,'olc::PixelGameEngine::OnUserCreate()']]],
+  ['onuserdestroy_934',['OnUserDestroy',['../classolc_1_1_pixel_game_engine.html#ad4fbf979865fb1f08250ea379f2de669',1,'olc::PixelGameEngine']]],
+  ['onuserupdate_935',['OnUserUpdate',['../class_game_client.html#ab6e2efe37e67de64062bca35d8a11e2e',1,'GameClient::OnUserUpdate()'],['../classolc_1_1_pixel_game_engine.html#af9379a3db341b0acb410ea543e30fdd1',1,'olc::PixelGameEngine::OnUserUpdate()']]],
+  ['operator_20v2d_5fgeneric_3c_20double_20_3e_936',['operator v2d_generic&lt; double &gt;',['../structolc_1_1v2d__generic.html#a5b722f332f64d260741ef8322cca5cce',1,'olc::v2d_generic']]],
+  ['operator_20v2d_5fgeneric_3c_20float_20_3e_937',['operator v2d_generic&lt; float &gt;',['../structolc_1_1v2d__generic.html#a7fd9786ec8121d50addc3dd624ca21eb',1,'olc::v2d_generic']]],
+  ['operator_20v2d_5fgeneric_3c_20int32_5ft_20_3e_938',['operator v2d_generic&lt; int32_t &gt;',['../structolc_1_1v2d__generic.html#a2bf267ac209cca361df72649a5aac92c',1,'olc::v2d_generic']]],
+  ['operator_20wallentity_20_2a_939',['operator WallEntity *',['../classentities_1_1_entity.html#ad0a172ff99a7e73aaaee3658d5e3ae08',1,'entities::Entity']]],
+  ['operator_21_3d_940',['operator!=',['../structolc_1_1_pixel.html#aeeaecb16a243ce3be52cd9261fdf2b23',1,'olc::Pixel::operator!=()'],['../structolc_1_1v2d__generic.html#abd9af6a38bc73471874665f508ff10b6',1,'olc::v2d_generic::operator!=()']]],
+  ['operator_28_29_941',['operator()',['../classweapons_1_1_melee_weapon_1_1predicate_distance.html#abfe04e14018aab1af891302df42255eb',1,'weapons::MeleeWeapon::predicateDistance']]],
+  ['operator_2a_942',['operator*',['../structolc_1_1_pixel.html#a15a61beedc23ca678a954567274e24de',1,'olc::Pixel::operator*()'],['../structolc_1_1v2d__generic.html#a542487700e63b2e30940d64b75c3d3db',1,'olc::v2d_generic::operator*(const T &amp;rhs) const'],['../structolc_1_1v2d__generic.html#a78e7362a3b955735c0389c6a5c7b32f0',1,'olc::v2d_generic::operator*(const v2d_generic &amp;rhs) const'],['../namespaceolc.html#a0cb5b54cc54cf0c92741da285010e1e5',1,'olc::operator*(const float &amp;lhs, const v2d_generic&lt; T &gt; &amp;rhs)'],['../namespaceolc.html#a9a03952e9e6c1c40c2512560ac182382',1,'olc::operator*(const double &amp;lhs, const v2d_generic&lt; T &gt; &amp;rhs)'],['../namespaceolc.html#ab04d4eba2afcfda14b1045bace972a76',1,'olc::operator*(const int &amp;lhs, const v2d_generic&lt; T &gt; &amp;rhs)']]],
+  ['operator_2a_3d_943',['operator*=',['../structolc_1_1_pixel.html#abace0545af22380831ffbc8bd1a66419',1,'olc::Pixel::operator*=()'],['../structolc_1_1v2d__generic.html#a35c81946f320da79fa5a33e595873252',1,'olc::v2d_generic::operator*=(const T &amp;rhs)'],['../structolc_1_1v2d__generic.html#a2a0fb49722257578bfc148a273b4c1c5',1,'olc::v2d_generic::operator*=(const v2d_generic &amp;rhs)']]],
+  ['operator_2b_944',['operator+',['../structolc_1_1_pixel.html#acb54675f2c61b989de500f8e6e56a9f6',1,'olc::Pixel::operator+()'],['../structolc_1_1v2d__generic.html#a5ae3f55fd12af9bf44a2837ad76ea7dd',1,'olc::v2d_generic::operator+(const v2d_generic &amp;rhs) const'],['../structolc_1_1v2d__generic.html#a70a7c59a5b9b9fac0de8a823633abb08',1,'olc::v2d_generic::operator+() const']]],
+  ['operator_2b_3d_945',['operator+=',['../class_dynamic_array.html#a9f3bb8f56ad0cb35f890ebae426c7a61',1,'DynamicArray::operator+=()'],['../class_game_client.html#abf4100b1ee69f4f300346424139f8d93',1,'GameClient::operator+=()'],['../structolc_1_1_pixel.html#a39dc75f9f15c040c2d2715c66b13f4e0',1,'olc::Pixel::operator+=()'],['../structolc_1_1v2d__generic.html#ac57326846384068beaaddec0674b65d2',1,'olc::v2d_generic::operator+=()'],['../_entity_8cpp.html#a84cbcaa4d8a9e6ac00abf777323fb212',1,'operator+=(TransformedView &amp;scene, entities::Entity &amp;entity):&#160;Entity.cpp'],['../_entity_8cpp.html#a31a0b92a35aadc02f58f7ab817fada44',1,'operator+=(TransformedView &amp;scene, std::shared_ptr&lt; entities::Entity &gt; &amp;entity):&#160;Entity.cpp'],['../_entity_8h.html#afba80426f5df447305cca8887a8ff92d',1,'operator+=(olc::TransformedView &amp;, entities::Entity &amp;):&#160;Entity.cpp'],['../_entity_8h.html#a2ed5201a4cd62b1183dd0a5b20f268cc',1,'operator+=(olc::TransformedView &amp;, std::shared_ptr&lt; entities::Entity &gt; &amp;):&#160;Entity.cpp']]],
+  ['operator_2d_946',['operator-',['../structolc_1_1_pixel.html#a1ac8b9d37f4c368b62b21b52df1f5937',1,'olc::Pixel::operator-()'],['../structolc_1_1v2d__generic.html#a64e053d62d2826193f6a058ee120c6e2',1,'olc::v2d_generic::operator-(const v2d_generic &amp;rhs) const'],['../structolc_1_1v2d__generic.html#a9eff196e75aeffcd96bffb64de04219d',1,'olc::v2d_generic::operator-() const']]],
+  ['operator_2d_3d_947',['operator-=',['../structolc_1_1_pixel.html#a058f58406ca54ab73075f5e42125a65a',1,'olc::Pixel::operator-=()'],['../structolc_1_1v2d__generic.html#af3e8b94c4921f8d81b4112b319bd7f6d',1,'olc::v2d_generic::operator-=()']]],
+  ['operator_2f_948',['operator/',['../structolc_1_1_pixel.html#a7fdcfa79f91368e834cc2ec66d9de769',1,'olc::Pixel::operator/()'],['../structolc_1_1v2d__generic.html#a1f1138ee06adae0eaffe900b0437b896',1,'olc::v2d_generic::operator/(const T &amp;rhs) const'],['../structolc_1_1v2d__generic.html#adcf0004e01ba1d8c813cdcb6525eb1c6',1,'olc::v2d_generic::operator/(const v2d_generic &amp;rhs) const'],['../namespaceolc.html#a6448f6127e1003cd9287161c5c4d52e0',1,'olc::operator/(const float &amp;lhs, const v2d_generic&lt; T &gt; &amp;rhs)'],['../namespaceolc.html#a879e763a12d6fbc6b4d3e2aac7b4c85a',1,'olc::operator/(const double &amp;lhs, const v2d_generic&lt; T &gt; &amp;rhs)'],['../namespaceolc.html#a302501c3eb64a99ffa93feac2cc46115',1,'olc::operator/(const int &amp;lhs, const v2d_generic&lt; T &gt; &amp;rhs)']]],
+  ['operator_2f_3d_949',['operator/=',['../structolc_1_1_pixel.html#afd73fb0548d7232923f0ce707171e0da',1,'olc::Pixel::operator/=()'],['../structolc_1_1v2d__generic.html#a88a5aa098b5ada7667a7900a0bc9bba2',1,'olc::v2d_generic::operator/=(const T &amp;rhs)'],['../structolc_1_1v2d__generic.html#a8e035b45f69db29e4cac698658ad4de1',1,'olc::v2d_generic::operator/=(const v2d_generic &amp;rhs)']]],
+  ['operator_3c_950',['operator&lt;',['../namespaceolc.html#a2831a8757172243381b08adf69e91e0a',1,'olc']]],
+  ['operator_3d_951',['operator=',['../structolc_1_1_pixel.html#a9e52ebcc91b8460859a606b7bf763b82',1,'olc::Pixel::operator=()'],['../structolc_1_1v2d__generic.html#adff36d90ca79f24401a31cbde706bf8c',1,'olc::v2d_generic::operator=()']]],
+  ['operator_3d_3d_952',['operator==',['../structolc_1_1_pixel.html#a6b82561c110de5447ca4d59c3162d06c',1,'olc::Pixel::operator==()'],['../structolc_1_1v2d__generic.html#ace104acaa0ef181acb36fe75d0aed683',1,'olc::v2d_generic::operator==()']]],
+  ['operator_3e_953',['operator&gt;',['../namespaceolc.html#a34519a6f9006c6c4854bbe762d490900',1,'olc']]],
+  ['operator_5b_5d_954',['operator[]',['../classrender_1_1_resource_manager.html#aec5833434ea7432806785ae0ce1e1d91',1,'render::ResourceManager']]]
+];
diff --git a/doxy/html/search/functions_d.html b/doxy/html/search/functions_d.html
new file mode 100644
index 0000000000000000000000000000000000000000..2bfe2453d2923ce4e17c3e84a7272506ec708c8a
--- /dev/null
+++ b/doxy/html/search/functions_d.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="functions_d.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doxy/html/search/functions_d.js b/doxy/html/search/functions_d.js
new file mode 100644
index 0000000000000000000000000000000000000000..e706d622bb5d6b1b8ef42019b1a05464541330d9
--- /dev/null
+++ b/doxy/html/search/functions_d.js
@@ -0,0 +1,17 @@
+var searchData=
+[
+  ['perp_955',['perp',['../structolc_1_1v2d__generic.html#a8275a944d309dc4b58f60cbc2925a7cc',1,'olc::v2d_generic']]],
+  ['pgex_956',['PGEX',['../classolc_1_1_p_g_e_x.html#aae9dbde2ad7341482b9f911f23678d75',1,'olc::PGEX']]],
+  ['pgex_5fregister_957',['pgex_Register',['../classolc_1_1_pixel_game_engine.html#a49a2ead57239e1595cc555effd3e3a2b',1,'olc::PixelGameEngine']]],
+  ['photomachine_958',['photoMachine',['../namespaceweapons_1_1textures.html#ac65344c207a89b29b15e56e01fc3e16a',1,'weapons::textures']]],
+  ['pickaxe_959',['pickaxe',['../namespaceweapons_1_1textures.html#a25cf2019ff68d29442fa3554a5862c1e',1,'weapons::textures']]],
+  ['pistol_960',['Pistol',['../classweapons_1_1_pistol.html#acc8c02692de7d84e5060da436b96ed86',1,'weapons::Pistol::Pistol()'],['../namespaceweapons_1_1textures.html#a8a733a84e93619430cfdaa2306a6a7ec',1,'weapons::textures::pistol()']]],
+  ['pixel_961',['Pixel',['../structolc_1_1_pixel.html#a75ef9e180289d861dfa6687faa248345',1,'olc::Pixel::Pixel()'],['../structolc_1_1_pixel.html#a542d8daf20eb48a0539d671ffed9168f',1,'olc::Pixel::Pixel(uint8_t red, uint8_t green, uint8_t blue, uint8_t alpha=nDefaultAlpha)'],['../structolc_1_1_pixel.html#ad6ddaba5806de8b26fea03fa6f7b0edf',1,'olc::Pixel::Pixel(uint32_t p)']]],
+  ['pixelf_962',['PixelF',['../namespaceolc.html#a06c9f23f2e370e7afe71788427a820fd',1,'olc']]],
+  ['pixelgameengine_963',['PixelGameEngine',['../classolc_1_1_pixel_game_engine.html#afe9d685732305246c3fcb361ae3c4bc6',1,'olc::PixelGameEngine']]],
+  ['pixellerp_964',['PixelLerp',['../namespaceolc.html#a2069e5cf447f5dd311c680c9463f9c42',1,'olc']]],
+  ['playerentity_965',['PlayerEntity',['../classentities_1_1_player_entity.html#ace0cf1f8c711b21afef3965eb3b380a1',1,'entities::PlayerEntity']]],
+  ['preparedevice_966',['PrepareDevice',['../classolc_1_1_renderer.html#a7d97cab172e59d23a2587f636c9b12b7',1,'olc::Renderer']]],
+  ['preparedrawing_967',['PrepareDrawing',['../classolc_1_1_renderer.html#a04c56d76c76ab50f5f06b9b537e9d98d',1,'olc::Renderer']]],
+  ['projectileentity_968',['ProjectileEntity',['../classentities_1_1_projectile_entity.html#ad42e2a1181110d2fa3acbec7eef3424e',1,'entities::ProjectileEntity']]]
+];
diff --git a/doxy/html/search/functions_e.html b/doxy/html/search/functions_e.html
new file mode 100644
index 0000000000000000000000000000000000000000..0a6b52e3f5251dd06d1cd50de3aa8c5643c90cb3
--- /dev/null
+++ b/doxy/html/search/functions_e.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="functions_e.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doxy/html/search/functions_e.js b/doxy/html/search/functions_e.js
new file mode 100644
index 0000000000000000000000000000000000000000..f0c54a86b37cd0a2b211ad467d76707204c5993b
--- /dev/null
+++ b/doxy/html/search/functions_e.js
@@ -0,0 +1,13 @@
+var searchData=
+[
+  ['rangedweapon_969',['RangedWeapon',['../classweapons_1_1_ranged_weapon.html#add8afffc63175911e5f81b3ce43d135f',1,'weapons::RangedWeapon']]],
+  ['readtexture_970',['ReadTexture',['../classolc_1_1_renderer.html#aa0e93a7d9ff6f25e9b154b2c8c86d44d',1,'olc::Renderer']]],
+  ['red_971',['RED',['../namespaceolc.html#ad4579f7eb75a257d76bb657a268f0a8d',1,'olc']]],
+  ['removeif_972',['removeIf',['../class_dynamic_array.html#a9db6489676b4560684be1ba03233fca0',1,'DynamicArray']]],
+  ['render_973',['render',['../classentities_1_1_character_entity.html#aeb6069f0f07d0914faf0f94c0cc33def',1,'entities::CharacterEntity::render()'],['../classrender_1_1_character_texture.html#a16ced1889ccaf7ca4c913ec1475c2f9a',1,'render::CharacterTexture::render()'],['../classentities_1_1_entity.html#abcc4364b5b7250f0364f3550a618b3ab',1,'entities::Entity::render()'],['../classentities_1_1_explosive_projectile.html#a86148b27403d275c1513f22bb3f47892',1,'entities::ExplosiveProjectile::render()'],['../classweapons_1_1_glitch_texture.html#a5484c864f917e54fb6041b7d0d33ef42',1,'weapons::GlitchTexture::render()'],['../classrender_1_1_i_texture.html#aedf64dab92f17e22a807635493196913',1,'render::ITexture::render()'],['../classrender_1_1_lazy_sprite.html#a3e2884ba94b5f6bbe9061c5a44ca6a23',1,'render::LazySprite::render()'],['../classrender_1_1_simple_sprite.html#aaed7cf3094f69387291a2d287d7753a5',1,'render::SimpleSprite::render()'],['../classrender_1_1_wall_texture.html#a03239c7168e114906cb20f3d39815344',1,'render::WallTexture::render()']]],
+  ['renderable_974',['Renderable',['../classolc_1_1_renderable.html#affef9fb6b4810e59a7d14410f351ba37',1,'olc::Renderable']]],
+  ['rendercentered_975',['renderCentered',['../classrender_1_1_lazy_sprite.html#a1e0b32f06c67b96eed8da12747aa4f0a',1,'render::LazySprite']]],
+  ['resourcebuffer_976',['ResourceBuffer',['../structolc_1_1_resource_buffer.html#abd18994c20cc7992ff7ccb07af9914e7',1,'olc::ResourceBuffer']]],
+  ['resourcepack_977',['ResourcePack',['../classolc_1_1_resource_pack.html#af5b7f93e4fb4e8b899da50985b689083',1,'olc::ResourcePack']]],
+  ['rifle_978',['rifle',['../namespaceweapons_1_1textures.html#a7ae588b12d703b44d1de1abb05d9f672',1,'weapons::textures']]]
+];
diff --git a/doxy/html/search/functions_f.html b/doxy/html/search/functions_f.html
new file mode 100644
index 0000000000000000000000000000000000000000..f4027d63be74e875b3a1fa983da248b95f17ff6f
--- /dev/null
+++ b/doxy/html/search/functions_f.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="functions_f.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doxy/html/search/functions_f.js b/doxy/html/search/functions_f.js
new file mode 100644
index 0000000000000000000000000000000000000000..5e30996388d07c260364cfda60e0caf240eb5072
--- /dev/null
+++ b/doxy/html/search/functions_f.js
@@ -0,0 +1,48 @@
+var searchData=
+[
+  ['sample_979',['Sample',['../classolc_1_1_sprite.html#a902192f81ab42420921992a7288aab48',1,'olc::Sprite']]],
+  ['samplebl_980',['SampleBL',['../classolc_1_1_sprite.html#a5e28024237453fb56c32f37d6996443d',1,'olc::Sprite']]],
+  ['saveimageresource_981',['SaveImageResource',['../classolc_1_1_image_loader.html#addedde73c3a76c668a2954db36695f08',1,'olc::ImageLoader']]],
+  ['savepack_982',['SavePack',['../classolc_1_1_resource_pack.html#af6b1fec791c3c85b51b565db63a1aa9a',1,'olc::ResourcePack']]],
+  ['savetopgesprfile_983',['SaveToPGESprFile',['../classolc_1_1_sprite.html#a1f1b2a3f1fd932a6a14faa622a2918bf',1,'olc::Sprite']]],
+  ['scaletoscreen_984',['ScaleToScreen',['../classolc_1_1_transformed_view.html#a8be86d8036bf635287debfcf2509e4c5',1,'olc::TransformedView']]],
+  ['scaletoworld_985',['ScaleToWorld',['../classolc_1_1_transformed_view.html#a09492f689459319994da4c9d0e0c2dc4',1,'olc::TransformedView']]],
+  ['screenheight_986',['ScreenHeight',['../classolc_1_1_pixel_game_engine.html#abbbee4578ffa6b844c04c1af363052af',1,'olc::PixelGameEngine']]],
+  ['screentoworld_987',['ScreenToWorld',['../classolc_1_1_transformed_view.html#a0f18594e00e7865fe4376761f9e20812',1,'olc::TransformedView']]],
+  ['screenwidth_988',['ScreenWidth',['../classolc_1_1_pixel_game_engine.html#aa3b458d05eab503d9918cfd2d383a45c',1,'olc::PixelGameEngine']]],
+  ['scythe_989',['scythe',['../namespaceweapons_1_1textures.html#ac492d02548352205657c28cd311d997b',1,'weapons::textures']]],
+  ['setdebugmode_990',['setDebugMode',['../class_game_client.html#a9af9a685c31d428921b0cf5976a63c14',1,'GameClient']]],
+  ['setdecalmode_991',['SetDecalMode',['../classolc_1_1_renderer.html#aebfc5a561c54b88f16a0b3d855eedaa1',1,'olc::Renderer::SetDecalMode()'],['../classolc_1_1_pixel_game_engine.html#a27ee96acff2c74d47f0cb78493aac756',1,'olc::PixelGameEngine::SetDecalMode()']]],
+  ['setdrawtarget_992',['SetDrawTarget',['../classolc_1_1_pixel_game_engine.html#a70b6a145d7ab0c8857000a72ce4d4a70',1,'olc::PixelGameEngine::SetDrawTarget(Sprite *target)'],['../classolc_1_1_pixel_game_engine.html#a5842c1087a70c95a7ff96d53f28b7bab',1,'olc::PixelGameEngine::SetDrawTarget(uint8_t layer)']]],
+  ['setlayercustomrenderfunction_993',['SetLayerCustomRenderFunction',['../classolc_1_1_pixel_game_engine.html#a40a88ddb3800e59121f05b06fd64dbfd',1,'olc::PixelGameEngine']]],
+  ['setlayeroffset_994',['SetLayerOffset',['../classolc_1_1_pixel_game_engine.html#a0e1ddc993ef65dfe00f2bbcf59e535ad',1,'olc::PixelGameEngine::SetLayerOffset(uint8_t layer, const olc::vf2d &amp;offset)'],['../classolc_1_1_pixel_game_engine.html#a9fed21eddcebeb743472d8b9eb1e3ece',1,'olc::PixelGameEngine::SetLayerOffset(uint8_t layer, float x, float y)']]],
+  ['setlayerscale_995',['SetLayerScale',['../classolc_1_1_pixel_game_engine.html#af8fbe005b4069ed1de8e0347b72ebc30',1,'olc::PixelGameEngine::SetLayerScale(uint8_t layer, const olc::vf2d &amp;scale)'],['../classolc_1_1_pixel_game_engine.html#a409825b0147e25c0d4c05fb0aa1f6273',1,'olc::PixelGameEngine::SetLayerScale(uint8_t layer, float x, float y)']]],
+  ['setlayertint_996',['SetLayerTint',['../classolc_1_1_pixel_game_engine.html#a7d7c04245161782d5f5c48d3d62ff7a7',1,'olc::PixelGameEngine']]],
+  ['setpickup_997',['setPickUp',['../classweapons_1_1_weapon.html#ace9c44751879af7382585c3338d4bc47',1,'weapons::Weapon']]],
+  ['setpixel_998',['SetPixel',['../classolc_1_1_sprite.html#a294389e93a95c8307f1260d7cacaf9ba',1,'olc::Sprite::SetPixel(int32_t x, int32_t y, Pixel p)'],['../classolc_1_1_sprite.html#ae7b8af09a29793ab16b7b813c8b0d26d',1,'olc::Sprite::SetPixel(const olc::vi2d &amp;a, Pixel p)']]],
+  ['setpixelblend_999',['SetPixelBlend',['../classolc_1_1_pixel_game_engine.html#ab0726b7758bc1bf7f7de30369076b8e7',1,'olc::PixelGameEngine']]],
+  ['setpixelmode_1000',['SetPixelMode',['../classolc_1_1_pixel_game_engine.html#ae4a3d1aaa40761986389966ab927ef32',1,'olc::PixelGameEngine::SetPixelMode(Pixel::Mode m)'],['../classolc_1_1_pixel_game_engine.html#a9aa31ae4e1735efa72f3ea17fb51b2ef',1,'olc::PixelGameEngine::SetPixelMode(std::function&lt; olc::Pixel(const int x, const int y, const olc::Pixel &amp;pSource, const olc::Pixel &amp;pDest)&gt; pixelMode)']]],
+  ['setpos_1001',['setPos',['../classweapons_1_1_weapon.html#a34c39bfa9cdb2d7483bc340300e8a2d9',1,'weapons::Weapon']]],
+  ['setrangex_1002',['SetRangeX',['../classolc_1_1_tile_transformed_view.html#ace1a6e5c3df96cd43582e02ca4b94dac',1,'olc::TileTransformedView']]],
+  ['setrangey_1003',['SetRangeY',['../classolc_1_1_tile_transformed_view.html#a660fcd24db414be714ae53ba131296a7',1,'olc::TileTransformedView']]],
+  ['setsamplemode_1004',['SetSampleMode',['../classolc_1_1_sprite.html#a78f4fcf41780cfc547f21e5a0dea03a2',1,'olc::Sprite']]],
+  ['setscreensize_1005',['SetScreenSize',['../classolc_1_1_pixel_game_engine.html#abd403468f57f7665d56e202da8de8e76',1,'olc::PixelGameEngine']]],
+  ['setvelocity_1006',['setVelocity',['../classentities_1_1_projectile_entity.html#ad88aa7e53b9a6671dab6132a8d58dbb5',1,'entities::ProjectileEntity']]],
+  ['setviewarea_1007',['SetViewArea',['../classolc_1_1_transformed_view.html#ac7295e90921832fef16779172cc9e4ff',1,'olc::TransformedView']]],
+  ['setwindowtitle_1008',['SetWindowTitle',['../classolc_1_1_platform.html#ab9ea28ecd660730810463dd6c68b73fd',1,'olc::Platform']]],
+  ['setworldoffset_1009',['SetWorldOffset',['../classolc_1_1_transformed_view.html#aee86c84a719f8b5c3143e2a0b89e8024',1,'olc::TransformedView']]],
+  ['setworldscale_1010',['SetWorldScale',['../classolc_1_1_transformed_view.html#a971e25ee6978c271127f766aba69b285',1,'olc::TransformedView']]],
+  ['setzoom_1011',['SetZoom',['../classolc_1_1_transformed_view.html#a89fd4d642cf37d1e6f1674b870b142d8',1,'olc::TransformedView']]],
+  ['shovel_1012',['shovel',['../namespaceweapons_1_1textures.html#affedf59c6526368e5358afc383f15022',1,'weapons::textures']]],
+  ['simplesprite_1013',['SimpleSprite',['../classrender_1_1_simple_sprite.html#af16d9ee29214a89a6ebe404a73ea5cad',1,'render::SimpleSprite']]],
+  ['spawnprojectile_1014',['spawnProjectile',['../classweapons_1_1_glitch_gun.html#a9268757aeb63315254d6a13df8ed0ba4',1,'weapons::GlitchGun::spawnProjectile()'],['../classweapons_1_1_pistol.html#a37f81949e55c373d7cf1f35cb59c1c25',1,'weapons::Pistol::spawnProjectile()'],['../classweapons_1_1_ranged_weapon.html#a6b6b8265efc6ecf60e36ab261fe6f360',1,'weapons::RangedWeapon::spawnProjectile()']]],
+  ['spear_1015',['spear',['../namespaceweapons_1_1textures.html#a9734b7f6d13a24af2d62e74e6cd9dfde',1,'weapons::textures']]],
+  ['sprite_1016',['Sprite',['../classolc_1_1_sprite.html#aaf231565550d294ef20bf31364562ec3',1,'olc::Sprite::Sprite()'],['../classolc_1_1_sprite.html#ad8ce71f2399a2721aff9234390a18b8e',1,'olc::Sprite::Sprite(const std::string &amp;sImageFile, olc::ResourcePack *pack=nullptr)'],['../classolc_1_1_sprite.html#a3e452a040fc2680228b1e6a7b6b9890e',1,'olc::Sprite::Sprite(int32_t w, int32_t h)'],['../classolc_1_1_sprite.html#a5b0190890ed98560125b2ae4db9a7d9f',1,'olc::Sprite::Sprite(const olc::Sprite &amp;)=delete'],['../classolc_1_1_renderable.html#a8128a49bae0a3b40a5681d92cc01f52a',1,'olc::Renderable::Sprite()']]],
+  ['spritemanager_1017',['SpriteManager',['../classrender_1_1_sprite_manager.html#ad65313b397c85d87f307fbb931907afb',1,'render::SpriteManager']]],
+  ['start_1018',['Start',['../classolc_1_1_pixel_game_engine.html#a8e8848aa1c743a1ec2cdaa14c87e5cde',1,'olc::PixelGameEngine']]],
+  ['startpan_1019',['StartPan',['../classolc_1_1_transformed_view.html#a4dc2bd0de3686978fdf8630d23a727c3',1,'olc::TransformedView']]],
+  ['startsystemeventloop_1020',['StartSystemEventLoop',['../classolc_1_1_platform.html#af58e24a992339020fa1ebf58a224b209',1,'olc::Platform']]],
+  ['str_1021',['str',['../structolc_1_1v2d__generic.html#a88a794a4e9ec632f215afbeb04b354c8',1,'olc::v2d_generic']]],
+  ['sword1_1022',['sword1',['../namespaceweapons_1_1textures.html#a2a490d5d835f3ea3a9b07d2a9efb1c36',1,'weapons::textures']]],
+  ['sword2_1023',['sword2',['../namespaceweapons_1_1textures.html#a05b20bd98c55bfbfcf4c2e7e0b08ebaf',1,'weapons::textures']]]
+];
diff --git a/doxy/html/search/mag_sel.svg b/doxy/html/search/mag_sel.svg
new file mode 100644
index 0000000000000000000000000000000000000000..03626f64a02be69e427a4a9f29a99052ccd235a1
--- /dev/null
+++ b/doxy/html/search/mag_sel.svg
@@ -0,0 +1,74 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   version="1.1"
+   id="svg2"
+   width="20"
+   height="19"
+   viewBox="0 0 20 19"
+   sodipodi:docname="mag_sel.svg"
+   inkscape:version="0.92.5 (2060ec1f9f, 2020-04-08)">
+  <metadata
+     id="metadata8">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <defs
+     id="defs6" />
+  <sodipodi:namedview
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1"
+     objecttolerance="10"
+     gridtolerance="10"
+     guidetolerance="10"
+     inkscape:pageopacity="0"
+     inkscape:pageshadow="2"
+     inkscape:window-width="1920"
+     inkscape:window-height="2096"
+     id="namedview4"
+     showgrid="false"
+     fit-margin-top="0"
+     fit-margin-left="0"
+     fit-margin-right="0"
+     fit-margin-bottom="0"
+     inkscape:zoom="32"
+     inkscape:cx="5.9792688"
+     inkscape:cy="1.1436277"
+     inkscape:window-x="1920"
+     inkscape:window-y="27"
+     inkscape:window-maximized="0"
+     inkscape:current-layer="svg2" />
+  <circle
+     style="fill:#000000;fill-opacity:0;stroke:#656565;stroke-width:1.4;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
+     id="path4611"
+     cx="5.5"
+     cy="8.5"
+     r="3.5" />
+  <path
+     style="fill:#656565;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+     d="M 11,7 13.5,10 16,7 Z"
+     id="path4609"
+     inkscape:connector-curvature="0"
+     sodipodi:nodetypes="cccc" />
+  <path
+     style="fill:none;stroke:#656565;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+     d="m 8.1085854,11.109059 2.7823556,2.782356"
+     id="path4630"
+     inkscape:connector-curvature="0" />
+</svg>
diff --git a/doxy/html/search/namespaces_0.html b/doxy/html/search/namespaces_0.html
new file mode 100644
index 0000000000000000000000000000000000000000..2e82aa6c36c3f2a7182bc91d48cc3108d906cb4d
--- /dev/null
+++ b/doxy/html/search/namespaces_0.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="namespaces_0.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doxy/html/search/namespaces_0.js b/doxy/html/search/namespaces_0.js
new file mode 100644
index 0000000000000000000000000000000000000000..1eb71ab263e7e6298dec05959bb4fd73abccd188
--- /dev/null
+++ b/doxy/html/search/namespaces_0.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+  ['entities_669',['entities',['../namespaceentities.html',1,'']]]
+];
diff --git a/doxy/html/search/namespaces_1.html b/doxy/html/search/namespaces_1.html
new file mode 100644
index 0000000000000000000000000000000000000000..32706d482de41543b00a4923e2e14810b0a1c4ed
--- /dev/null
+++ b/doxy/html/search/namespaces_1.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="namespaces_1.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doxy/html/search/namespaces_1.js b/doxy/html/search/namespaces_1.js
new file mode 100644
index 0000000000000000000000000000000000000000..f00c460e69f271d18bbe59a4b6ab8fcfa095ed97
--- /dev/null
+++ b/doxy/html/search/namespaces_1.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+  ['olc_670',['olc',['../namespaceolc.html',1,'']]]
+];
diff --git a/doxy/html/search/namespaces_2.html b/doxy/html/search/namespaces_2.html
new file mode 100644
index 0000000000000000000000000000000000000000..4c0da6323dd2b07bc181bee56dfa6a9a0f9e6ce2
--- /dev/null
+++ b/doxy/html/search/namespaces_2.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="namespaces_2.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doxy/html/search/namespaces_2.js b/doxy/html/search/namespaces_2.js
new file mode 100644
index 0000000000000000000000000000000000000000..a6b49c26f6af40bc5701232c051f551758bae3f5
--- /dev/null
+++ b/doxy/html/search/namespaces_2.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+  ['render_671',['render',['../namespacerender.html',1,'']]]
+];
diff --git a/doxy/html/search/namespaces_3.html b/doxy/html/search/namespaces_3.html
new file mode 100644
index 0000000000000000000000000000000000000000..960d1aeddb01ee061abd93fe0808f6bddf4c3994
--- /dev/null
+++ b/doxy/html/search/namespaces_3.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="namespaces_3.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doxy/html/search/namespaces_3.js b/doxy/html/search/namespaces_3.js
new file mode 100644
index 0000000000000000000000000000000000000000..626d1f98b4571cd9a9116477ab366db826a3ca1e
--- /dev/null
+++ b/doxy/html/search/namespaces_3.js
@@ -0,0 +1,5 @@
+var searchData=
+[
+  ['textures_672',['textures',['../namespaceweapons_1_1textures.html',1,'weapons']]],
+  ['weapons_673',['weapons',['../namespaceweapons.html',1,'']]]
+];
diff --git a/doxy/html/search/nomatches.html b/doxy/html/search/nomatches.html
new file mode 100644
index 0000000000000000000000000000000000000000..4377320895b9a5b98e140ebf2f76ec09158d1156
--- /dev/null
+++ b/doxy/html/search/nomatches.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="NoMatches">No Matches</div>
+</div>
+</body>
+</html>
diff --git a/doxy/html/search/pages_0.html b/doxy/html/search/pages_0.html
new file mode 100644
index 0000000000000000000000000000000000000000..a281c4b03c33991728df2aa86dda72b08aaf0473
--- /dev/null
+++ b/doxy/html/search/pages_0.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="pages_0.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doxy/html/search/pages_0.js b/doxy/html/search/pages_0.js
new file mode 100644
index 0000000000000000000000000000000000000000..eb7117bff563ef8e9846f513a5c587af517cbec4
--- /dev/null
+++ b/doxy/html/search/pages_0.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+  ['text_1287',['Text',['../md__c___users_kosmx__documents__git_hub_2d-game__text.html',1,'']]]
+];
diff --git a/doxy/html/search/related_0.html b/doxy/html/search/related_0.html
new file mode 100644
index 0000000000000000000000000000000000000000..31d0eccb1b3482bbf969cc43842e4a1c77966722
--- /dev/null
+++ b/doxy/html/search/related_0.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="related_0.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doxy/html/search/related_0.js b/doxy/html/search/related_0.js
new file mode 100644
index 0000000000000000000000000000000000000000..b95fa8543eb2aabb6a9c104e0a8f2d3d80f4be4b
--- /dev/null
+++ b/doxy/html/search/related_0.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+  ['main_1274',['main',['../class_game_client.html#a81ce304348a420752ee080480d2b3095',1,'GameClient']]]
+];
diff --git a/doxy/html/search/related_1.html b/doxy/html/search/related_1.html
new file mode 100644
index 0000000000000000000000000000000000000000..2c6c4d2c4fbc5a15590af0d31c919f19806246ae
--- /dev/null
+++ b/doxy/html/search/related_1.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="related_1.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doxy/html/search/related_1.js b/doxy/html/search/related_1.js
new file mode 100644
index 0000000000000000000000000000000000000000..c7d0e0cb8641d8c2c4348e3d715fa752adbb4e68
--- /dev/null
+++ b/doxy/html/search/related_1.js
@@ -0,0 +1,5 @@
+var searchData=
+[
+  ['operator_3c_3c_1275',['operator&lt;&lt;',['../structolc_1_1v2d__generic.html#afeb5dac5960ca80197ad7ce455ed190c',1,'olc::v2d_generic']]],
+  ['pixelgameengine_1276',['PixelGameEngine',['../classolc_1_1_p_g_e_x.html#a3770265094ef2f9700ae97b8ee0fe282',1,'olc::PGEX']]]
+];
diff --git a/doxy/html/search/related_2.html b/doxy/html/search/related_2.html
new file mode 100644
index 0000000000000000000000000000000000000000..b466cd11f44c4d816b7b4617ed167103ab2b425b
--- /dev/null
+++ b/doxy/html/search/related_2.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="related_2.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doxy/html/search/related_2.js b/doxy/html/search/related_2.js
new file mode 100644
index 0000000000000000000000000000000000000000..5193936a5777f0fce00cd711d2bca70ad229279b
--- /dev/null
+++ b/doxy/html/search/related_2.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+  ['pgex_1277',['PGEX',['../classolc_1_1_pixel_game_engine.html#a98fcee28f1a645fe0a29f6b6e6a5d7bb',1,'olc::PixelGameEngine']]]
+];
diff --git a/doxy/html/search/search.css b/doxy/html/search/search.css
new file mode 100644
index 0000000000000000000000000000000000000000..933cf0880822844d43d990898f29ea2784606e19
--- /dev/null
+++ b/doxy/html/search/search.css
@@ -0,0 +1,255 @@
+/*---------------- Search Box */
+
+#MSearchBox {
+    white-space : nowrap;
+    background: white;
+    border-radius: 0.65em;
+    box-shadow: inset 0.5px 0.5px 3px 0px #555;
+    z-index: 102;
+}
+
+#MSearchBox .left {
+    display: inline-block;
+    vertical-align: middle;
+    height: 1.4em;
+}
+
+#MSearchSelect {
+    display: inline-block;
+    vertical-align: middle;
+    height: 1.4em;
+    padding: 0 0 0 0.3em;
+    margin: 0;
+}
+
+#MSearchField {
+    display: inline-block;
+    vertical-align: middle;
+    width: 7.5em;
+    height: 1.1em;
+    margin: 0 0.15em;
+    padding: 0;
+    line-height: 1em;
+    border:none;
+    color: #909090;
+    outline: none;
+    font-family: Arial, Verdana, sans-serif;
+    -webkit-border-radius: 0px;
+    border-radius: 0px;
+    background: none;
+}
+
+
+#MSearchBox .right {
+    display: inline-block;
+    vertical-align: middle;
+    width: 1.4em;
+    height: 1.4em;
+}
+
+#MSearchClose {
+    display: none;
+    font-size: inherit;
+    background : none;
+    border: none;
+    margin: 0;
+    padding: 0;
+    outline: none;
+
+}
+
+#MSearchCloseImg {
+    height: 1.4em;
+    padding: 0.3em;
+    margin: 0;
+}
+
+.MSearchBoxActive #MSearchField {
+    color: #000000;
+}
+
+#main-menu > li:last-child {
+    /* This <li> object is the parent of the search bar */
+    display: flex;
+    justify-content: center;
+    align-items: center;
+    height: 36px;
+    margin-right: 1em;
+}
+
+/*---------------- Search filter selection */
+
+#MSearchSelectWindow {
+    display: none;
+    position: absolute;
+    left: 0; top: 0;
+    border: 1px solid #90A5CE;
+    background-color: #F9FAFC;
+    z-index: 10001;
+    padding-top: 4px;
+    padding-bottom: 4px;
+    -moz-border-radius: 4px;
+    -webkit-border-top-left-radius: 4px;
+    -webkit-border-top-right-radius: 4px;
+    -webkit-border-bottom-left-radius: 4px;
+    -webkit-border-bottom-right-radius: 4px;
+    -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
+}
+
+.SelectItem {
+    font: 8pt Arial, Verdana, sans-serif;
+    padding-left:  2px;
+    padding-right: 12px;
+    border: 0px;
+}
+
+span.SelectionMark {
+    margin-right: 4px;
+    font-family: monospace;
+    outline-style: none;
+    text-decoration: none;
+}
+
+a.SelectItem {
+    display: block;
+    outline-style: none;
+    color: #000000; 
+    text-decoration: none;
+    padding-left:   6px;
+    padding-right: 12px;
+}
+
+a.SelectItem:focus,
+a.SelectItem:active {
+    color: #000000; 
+    outline-style: none;
+    text-decoration: none;
+}
+
+a.SelectItem:hover {
+    color: #FFFFFF;
+    background-color: #3D578C;
+    outline-style: none;
+    text-decoration: none;
+    cursor: pointer;
+    display: block;
+}
+
+/*---------------- Search results window */
+
+iframe#MSearchResults {
+    width: 60ex;
+    height: 15em;
+}
+
+#MSearchResultsWindow {
+    display: none;
+    position: absolute;
+    left: 0; top: 0;
+    border: 1px solid #000;
+    background-color: #EEF1F7;
+    z-index:10000;
+}
+
+/* ----------------------------------- */
+
+
+#SRIndex {
+    clear:both; 
+    padding-bottom: 15px;
+}
+
+.SREntry {
+    font-size: 10pt;
+    padding-left: 1ex;
+}
+
+.SRPage .SREntry {
+    font-size: 8pt;
+    padding: 1px 5px;
+}
+
+body.SRPage {
+    margin: 5px 2px;
+}
+
+.SRChildren {
+    padding-left: 3ex; padding-bottom: .5em 
+}
+
+.SRPage .SRChildren {
+    display: none;
+}
+
+.SRSymbol {
+    font-weight: bold; 
+    color: #425E97;
+    font-family: Arial, Verdana, sans-serif;
+    text-decoration: none;
+    outline: none;
+}
+
+a.SRScope {
+    display: block;
+    color: #425E97; 
+    font-family: Arial, Verdana, sans-serif;
+    text-decoration: none;
+    outline: none;
+}
+
+a.SRSymbol:focus, a.SRSymbol:active,
+a.SRScope:focus, a.SRScope:active {
+    text-decoration: underline;
+}
+
+span.SRScope {
+    padding-left: 4px;
+}
+
+.SRPage .SRStatus {
+    padding: 2px 5px;
+    font-size: 8pt;
+    font-style: italic;
+}
+
+.SRResult {
+    display: none;
+}
+
+DIV.searchresults {
+    margin-left: 10px;
+    margin-right: 10px;
+}
+
+/*---------------- External search page results */
+
+.searchresult {
+    background-color: #F0F3F8;
+}
+
+.pages b {
+   color: white;
+   padding: 5px 5px 3px 5px;
+   background-image: url("../tab_a.png");
+   background-repeat: repeat-x;
+   text-shadow: 0 1px 1px #000000;
+}
+
+.pages {
+    line-height: 17px;
+    margin-left: 4px;
+    text-decoration: none;
+}
+
+.hl {
+    font-weight: bold;
+}
+
+#searchresults {
+    margin-bottom: 20px;
+}
+
+.searchpages {
+    margin-top: 10px;
+}
+
diff --git a/doxy/html/search/search.js b/doxy/html/search/search.js
new file mode 100644
index 0000000000000000000000000000000000000000..92b609464afbf6a4fb3eb1a005600f607ef3fe2b
--- /dev/null
+++ b/doxy/html/search/search.js
@@ -0,0 +1,814 @@
+/*
+ @licstart  The following is the entire license notice for the JavaScript code in this file.
+
+ The MIT License (MIT)
+
+ Copyright (C) 1997-2020 by Dimitri van Heesch
+
+ Permission is hereby granted, free of charge, to any person obtaining a copy of this software
+ and associated documentation files (the "Software"), to deal in the Software without restriction,
+ including without limitation the rights to use, copy, modify, merge, publish, distribute,
+ sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
+ furnished to do so, subject to the following conditions:
+
+ The above copyright notice and this permission notice shall be included in all copies or
+ substantial portions of the Software.
+
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
+ BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+ DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+ @licend  The above is the entire license notice for the JavaScript code in this file
+ */
+function convertToId(search)
+{
+  var result = '';
+  for (i=0;i<search.length;i++)
+  {
+    var c = search.charAt(i);
+    var cn = c.charCodeAt(0);
+    if (c.match(/[a-z0-9\u0080-\uFFFF]/))
+    {
+      result+=c;
+    }
+    else if (cn<16)
+    {
+      result+="_0"+cn.toString(16);
+    }
+    else
+    {
+      result+="_"+cn.toString(16);
+    }
+  }
+  return result;
+}
+
+function getXPos(item)
+{
+  var x = 0;
+  if (item.offsetWidth)
+  {
+    while (item && item!=document.body)
+    {
+      x   += item.offsetLeft;
+      item = item.offsetParent;
+    }
+  }
+  return x;
+}
+
+function getYPos(item)
+{
+  var y = 0;
+  if (item.offsetWidth)
+  {
+     while (item && item!=document.body)
+     {
+       y   += item.offsetTop;
+       item = item.offsetParent;
+     }
+  }
+  return y;
+}
+
+/* A class handling everything associated with the search panel.
+
+   Parameters:
+   name - The name of the global variable that will be
+          storing this instance.  Is needed to be able to set timeouts.
+   resultPath - path to use for external files
+*/
+function SearchBox(name, resultsPath, inFrame, label)
+{
+  if (!name || !resultsPath) {  alert("Missing parameters to SearchBox."); }
+
+  // ---------- Instance variables
+  this.name                  = name;
+  this.resultsPath           = resultsPath;
+  this.keyTimeout            = 0;
+  this.keyTimeoutLength      = 500;
+  this.closeSelectionTimeout = 300;
+  this.lastSearchValue       = "";
+  this.lastResultsPage       = "";
+  this.hideTimeout           = 0;
+  this.searchIndex           = 0;
+  this.searchActive          = false;
+  this.insideFrame           = inFrame;
+  this.searchLabel           = label;
+
+  // ----------- DOM Elements
+
+  this.DOMSearchField = function()
+  {  return document.getElementById("MSearchField");  }
+
+  this.DOMSearchSelect = function()
+  {  return document.getElementById("MSearchSelect");  }
+
+  this.DOMSearchSelectWindow = function()
+  {  return document.getElementById("MSearchSelectWindow");  }
+
+  this.DOMPopupSearchResults = function()
+  {  return document.getElementById("MSearchResults");  }
+
+  this.DOMPopupSearchResultsWindow = function()
+  {  return document.getElementById("MSearchResultsWindow");  }
+
+  this.DOMSearchClose = function()
+  {  return document.getElementById("MSearchClose"); }
+
+  this.DOMSearchBox = function()
+  {  return document.getElementById("MSearchBox");  }
+
+  // ------------ Event Handlers
+
+  // Called when focus is added or removed from the search field.
+  this.OnSearchFieldFocus = function(isActive)
+  {
+    this.Activate(isActive);
+  }
+
+  this.OnSearchSelectShow = function()
+  {
+    var searchSelectWindow = this.DOMSearchSelectWindow();
+    var searchField        = this.DOMSearchSelect();
+
+    if (this.insideFrame)
+    {
+      var left = getXPos(searchField);
+      var top  = getYPos(searchField);
+      left += searchField.offsetWidth + 6;
+      top += searchField.offsetHeight;
+
+      // show search selection popup
+      searchSelectWindow.style.display='block';
+      left -= searchSelectWindow.offsetWidth;
+      searchSelectWindow.style.left =  left + 'px';
+      searchSelectWindow.style.top  =  top  + 'px';
+    }
+    else
+    {
+      var left = getXPos(searchField);
+      var top  = getYPos(searchField);
+      top += searchField.offsetHeight;
+
+      // show search selection popup
+      searchSelectWindow.style.display='block';
+      searchSelectWindow.style.left =  left + 'px';
+      searchSelectWindow.style.top  =  top  + 'px';
+    }
+
+    // stop selection hide timer
+    if (this.hideTimeout)
+    {
+      clearTimeout(this.hideTimeout);
+      this.hideTimeout=0;
+    }
+    return false; // to avoid "image drag" default event
+  }
+
+  this.OnSearchSelectHide = function()
+  {
+    this.hideTimeout = setTimeout(this.name +".CloseSelectionWindow()",
+                                  this.closeSelectionTimeout);
+  }
+
+  // Called when the content of the search field is changed.
+  this.OnSearchFieldChange = function(evt)
+  {
+    if (this.keyTimeout) // kill running timer
+    {
+      clearTimeout(this.keyTimeout);
+      this.keyTimeout = 0;
+    }
+
+    var e  = (evt) ? evt : window.event; // for IE
+    if (e.keyCode==40 || e.keyCode==13)
+    {
+      if (e.shiftKey==1)
+      {
+        this.OnSearchSelectShow();
+        var win=this.DOMSearchSelectWindow();
+        for (i=0;i<win.childNodes.length;i++)
+        {
+          var child = win.childNodes[i]; // get span within a
+          if (child.className=='SelectItem')
+          {
+            child.focus();
+            return;
+          }
+        }
+        return;
+      }
+      else
+      {
+        window.frames.MSearchResults.postMessage("take_focus", "*");
+      }
+    }
+    else if (e.keyCode==27) // Escape out of the search field
+    {
+      this.DOMSearchField().blur();
+      this.DOMPopupSearchResultsWindow().style.display = 'none';
+      this.DOMSearchClose().style.display = 'none';
+      this.lastSearchValue = '';
+      this.Activate(false);
+      return;
+    }
+
+    // strip whitespaces
+    var searchValue = this.DOMSearchField().value.replace(/ +/g, "");
+
+    if (searchValue != this.lastSearchValue) // search value has changed
+    {
+      if (searchValue != "") // non-empty search
+      {
+        // set timer for search update
+        this.keyTimeout = setTimeout(this.name + '.Search()',
+                                     this.keyTimeoutLength);
+      }
+      else // empty search field
+      {
+        this.DOMPopupSearchResultsWindow().style.display = 'none';
+        this.DOMSearchClose().style.display = 'none';
+        this.lastSearchValue = '';
+      }
+    }
+  }
+
+  this.SelectItemCount = function(id)
+  {
+    var count=0;
+    var win=this.DOMSearchSelectWindow();
+    for (i=0;i<win.childNodes.length;i++)
+    {
+      var child = win.childNodes[i]; // get span within a
+      if (child.className=='SelectItem')
+      {
+        count++;
+      }
+    }
+    return count;
+  }
+
+  this.SelectItemSet = function(id)
+  {
+    var i,j=0;
+    var win=this.DOMSearchSelectWindow();
+    for (i=0;i<win.childNodes.length;i++)
+    {
+      var child = win.childNodes[i]; // get span within a
+      if (child.className=='SelectItem')
+      {
+        var node = child.firstChild;
+        if (j==id)
+        {
+          node.innerHTML='&#8226;';
+        }
+        else
+        {
+          node.innerHTML='&#160;';
+        }
+        j++;
+      }
+    }
+  }
+
+  // Called when an search filter selection is made.
+  // set item with index id as the active item
+  this.OnSelectItem = function(id)
+  {
+    this.searchIndex = id;
+    this.SelectItemSet(id);
+    var searchValue = this.DOMSearchField().value.replace(/ +/g, "");
+    if (searchValue!="" && this.searchActive) // something was found -> do a search
+    {
+      this.Search();
+    }
+  }
+
+  this.OnSearchSelectKey = function(evt)
+  {
+    var e = (evt) ? evt : window.event; // for IE
+    if (e.keyCode==40 && this.searchIndex<this.SelectItemCount()) // Down
+    {
+      this.searchIndex++;
+      this.OnSelectItem(this.searchIndex);
+    }
+    else if (e.keyCode==38 && this.searchIndex>0) // Up
+    {
+      this.searchIndex--;
+      this.OnSelectItem(this.searchIndex);
+    }
+    else if (e.keyCode==13 || e.keyCode==27)
+    {
+      this.OnSelectItem(this.searchIndex);
+      this.CloseSelectionWindow();
+      this.DOMSearchField().focus();
+    }
+    return false;
+  }
+
+  // --------- Actions
+
+  // Closes the results window.
+  this.CloseResultsWindow = function()
+  {
+    this.DOMPopupSearchResultsWindow().style.display = 'none';
+    this.DOMSearchClose().style.display = 'none';
+    this.Activate(false);
+  }
+
+  this.CloseSelectionWindow = function()
+  {
+    this.DOMSearchSelectWindow().style.display = 'none';
+  }
+
+  // Performs a search.
+  this.Search = function()
+  {
+    this.keyTimeout = 0;
+
+    // strip leading whitespace
+    var searchValue = this.DOMSearchField().value.replace(/^ +/, "");
+
+    var code = searchValue.toLowerCase().charCodeAt(0);
+    var idxChar = searchValue.substr(0, 1).toLowerCase();
+    if ( 0xD800 <= code && code <= 0xDBFF && searchValue > 1) // surrogate pair
+    {
+      idxChar = searchValue.substr(0, 2);
+    }
+
+    var resultsPage;
+    var resultsPageWithSearch;
+    var hasResultsPage;
+
+    var idx = indexSectionsWithContent[this.searchIndex].indexOf(idxChar);
+    if (idx!=-1)
+    {
+       var hexCode=idx.toString(16);
+       resultsPage = this.resultsPath + '/' + indexSectionNames[this.searchIndex] + '_' + hexCode + '.html';
+       resultsPageWithSearch = resultsPage+'?'+escape(searchValue);
+       hasResultsPage = true;
+    }
+    else // nothing available for this search term
+    {
+       resultsPage = this.resultsPath + '/nomatches.html';
+       resultsPageWithSearch = resultsPage;
+       hasResultsPage = false;
+    }
+
+    window.frames.MSearchResults.location = resultsPageWithSearch;
+    var domPopupSearchResultsWindow = this.DOMPopupSearchResultsWindow();
+
+    if (domPopupSearchResultsWindow.style.display!='block')
+    {
+       var domSearchBox = this.DOMSearchBox();
+       this.DOMSearchClose().style.display = 'inline-block';
+       if (this.insideFrame)
+       {
+         var domPopupSearchResults = this.DOMPopupSearchResults();
+         domPopupSearchResultsWindow.style.position = 'relative';
+         domPopupSearchResultsWindow.style.display  = 'block';
+         var width = document.body.clientWidth - 8; // the -8 is for IE :-(
+         domPopupSearchResultsWindow.style.width    = width + 'px';
+         domPopupSearchResults.style.width          = width + 'px';
+       }
+       else
+       {
+         var domPopupSearchResults = this.DOMPopupSearchResults();
+         var left = getXPos(domSearchBox) + 150; // domSearchBox.offsetWidth;
+         var top  = getYPos(domSearchBox) + 20;  // domSearchBox.offsetHeight + 1;
+         domPopupSearchResultsWindow.style.display = 'block';
+         left -= domPopupSearchResults.offsetWidth;
+         domPopupSearchResultsWindow.style.top     = top  + 'px';
+         domPopupSearchResultsWindow.style.left    = left + 'px';
+       }
+    }
+
+    this.lastSearchValue = searchValue;
+    this.lastResultsPage = resultsPage;
+  }
+
+  // -------- Activation Functions
+
+  // Activates or deactivates the search panel, resetting things to
+  // their default values if necessary.
+  this.Activate = function(isActive)
+  {
+    if (isActive || // open it
+        this.DOMPopupSearchResultsWindow().style.display == 'block'
+       )
+    {
+      this.DOMSearchBox().className = 'MSearchBoxActive';
+
+      var searchField = this.DOMSearchField();
+
+      if (searchField.value == this.searchLabel) // clear "Search" term upon entry
+      {
+        searchField.value = '';
+        this.searchActive = true;
+      }
+    }
+    else if (!isActive) // directly remove the panel
+    {
+      this.DOMSearchBox().className = 'MSearchBoxInactive';
+      this.DOMSearchField().value   = this.searchLabel;
+      this.searchActive             = false;
+      this.lastSearchValue          = ''
+      this.lastResultsPage          = '';
+    }
+  }
+}
+
+// -----------------------------------------------------------------------
+
+// The class that handles everything on the search results page.
+function SearchResults(name)
+{
+    // The number of matches from the last run of <Search()>.
+    this.lastMatchCount = 0;
+    this.lastKey = 0;
+    this.repeatOn = false;
+
+    // Toggles the visibility of the passed element ID.
+    this.FindChildElement = function(id)
+    {
+      var parentElement = document.getElementById(id);
+      var element = parentElement.firstChild;
+
+      while (element && element!=parentElement)
+      {
+        if (element.nodeName == 'DIV' && element.className == 'SRChildren')
+        {
+          return element;
+        }
+
+        if (element.nodeName == 'DIV' && element.hasChildNodes())
+        {
+           element = element.firstChild;
+        }
+        else if (element.nextSibling)
+        {
+           element = element.nextSibling;
+        }
+        else
+        {
+          do
+          {
+            element = element.parentNode;
+          }
+          while (element && element!=parentElement && !element.nextSibling);
+
+          if (element && element!=parentElement)
+          {
+            element = element.nextSibling;
+          }
+        }
+      }
+    }
+
+    this.Toggle = function(id)
+    {
+      var element = this.FindChildElement(id);
+      if (element)
+      {
+        if (element.style.display == 'block')
+        {
+          element.style.display = 'none';
+        }
+        else
+        {
+          element.style.display = 'block';
+        }
+      }
+    }
+
+    // Searches for the passed string.  If there is no parameter,
+    // it takes it from the URL query.
+    //
+    // Always returns true, since other documents may try to call it
+    // and that may or may not be possible.
+    this.Search = function(search)
+    {
+      if (!search) // get search word from URL
+      {
+        search = window.location.search;
+        search = search.substring(1);  // Remove the leading '?'
+        search = unescape(search);
+      }
+
+      search = search.replace(/^ +/, ""); // strip leading spaces
+      search = search.replace(/ +$/, ""); // strip trailing spaces
+      search = search.toLowerCase();
+      search = convertToId(search);
+
+      var resultRows = document.getElementsByTagName("div");
+      var matches = 0;
+
+      var i = 0;
+      while (i < resultRows.length)
+      {
+        var row = resultRows.item(i);
+        if (row.className == "SRResult")
+        {
+          var rowMatchName = row.id.toLowerCase();
+          rowMatchName = rowMatchName.replace(/^sr\d*_/, ''); // strip 'sr123_'
+
+          if (search.length<=rowMatchName.length &&
+             rowMatchName.substr(0, search.length)==search)
+          {
+            row.style.display = 'block';
+            matches++;
+          }
+          else
+          {
+            row.style.display = 'none';
+          }
+        }
+        i++;
+      }
+      document.getElementById("Searching").style.display='none';
+      if (matches == 0) // no results
+      {
+        document.getElementById("NoMatches").style.display='block';
+      }
+      else // at least one result
+      {
+        document.getElementById("NoMatches").style.display='none';
+      }
+      this.lastMatchCount = matches;
+      return true;
+    }
+
+    // return the first item with index index or higher that is visible
+    this.NavNext = function(index)
+    {
+      var focusItem;
+      while (1)
+      {
+        var focusName = 'Item'+index;
+        focusItem = document.getElementById(focusName);
+        if (focusItem && focusItem.parentNode.parentNode.style.display=='block')
+        {
+          break;
+        }
+        else if (!focusItem) // last element
+        {
+          break;
+        }
+        focusItem=null;
+        index++;
+      }
+      return focusItem;
+    }
+
+    this.NavPrev = function(index)
+    {
+      var focusItem;
+      while (1)
+      {
+        var focusName = 'Item'+index;
+        focusItem = document.getElementById(focusName);
+        if (focusItem && focusItem.parentNode.parentNode.style.display=='block')
+        {
+          break;
+        }
+        else if (!focusItem) // last element
+        {
+          break;
+        }
+        focusItem=null;
+        index--;
+      }
+      return focusItem;
+    }
+
+    this.ProcessKeys = function(e)
+    {
+      if (e.type == "keydown")
+      {
+        this.repeatOn = false;
+        this.lastKey = e.keyCode;
+      }
+      else if (e.type == "keypress")
+      {
+        if (!this.repeatOn)
+        {
+          if (this.lastKey) this.repeatOn = true;
+          return false; // ignore first keypress after keydown
+        }
+      }
+      else if (e.type == "keyup")
+      {
+        this.lastKey = 0;
+        this.repeatOn = false;
+      }
+      return this.lastKey!=0;
+    }
+
+    this.Nav = function(evt,itemIndex)
+    {
+      var e  = (evt) ? evt : window.event; // for IE
+      if (e.keyCode==13) return true;
+      if (!this.ProcessKeys(e)) return false;
+
+      if (this.lastKey==38) // Up
+      {
+        var newIndex = itemIndex-1;
+        var focusItem = this.NavPrev(newIndex);
+        if (focusItem)
+        {
+          var child = this.FindChildElement(focusItem.parentNode.parentNode.id);
+          if (child && child.style.display == 'block') // children visible
+          {
+            var n=0;
+            var tmpElem;
+            while (1) // search for last child
+            {
+              tmpElem = document.getElementById('Item'+newIndex+'_c'+n);
+              if (tmpElem)
+              {
+                focusItem = tmpElem;
+              }
+              else // found it!
+              {
+                break;
+              }
+              n++;
+            }
+          }
+        }
+        if (focusItem)
+        {
+          focusItem.focus();
+        }
+        else // return focus to search field
+        {
+           parent.document.getElementById("MSearchField").focus();
+        }
+      }
+      else if (this.lastKey==40) // Down
+      {
+        var newIndex = itemIndex+1;
+        var focusItem;
+        var item = document.getElementById('Item'+itemIndex);
+        var elem = this.FindChildElement(item.parentNode.parentNode.id);
+        if (elem && elem.style.display == 'block') // children visible
+        {
+          focusItem = document.getElementById('Item'+itemIndex+'_c0');
+        }
+        if (!focusItem) focusItem = this.NavNext(newIndex);
+        if (focusItem)  focusItem.focus();
+      }
+      else if (this.lastKey==39) // Right
+      {
+        var item = document.getElementById('Item'+itemIndex);
+        var elem = this.FindChildElement(item.parentNode.parentNode.id);
+        if (elem) elem.style.display = 'block';
+      }
+      else if (this.lastKey==37) // Left
+      {
+        var item = document.getElementById('Item'+itemIndex);
+        var elem = this.FindChildElement(item.parentNode.parentNode.id);
+        if (elem) elem.style.display = 'none';
+      }
+      else if (this.lastKey==27) // Escape
+      {
+        parent.searchBox.CloseResultsWindow();
+        parent.document.getElementById("MSearchField").focus();
+      }
+      else if (this.lastKey==13) // Enter
+      {
+        return true;
+      }
+      return false;
+    }
+
+    this.NavChild = function(evt,itemIndex,childIndex)
+    {
+      var e  = (evt) ? evt : window.event; // for IE
+      if (e.keyCode==13) return true;
+      if (!this.ProcessKeys(e)) return false;
+
+      if (this.lastKey==38) // Up
+      {
+        if (childIndex>0)
+        {
+          var newIndex = childIndex-1;
+          document.getElementById('Item'+itemIndex+'_c'+newIndex).focus();
+        }
+        else // already at first child, jump to parent
+        {
+          document.getElementById('Item'+itemIndex).focus();
+        }
+      }
+      else if (this.lastKey==40) // Down
+      {
+        var newIndex = childIndex+1;
+        var elem = document.getElementById('Item'+itemIndex+'_c'+newIndex);
+        if (!elem) // last child, jump to parent next parent
+        {
+          elem = this.NavNext(itemIndex+1);
+        }
+        if (elem)
+        {
+          elem.focus();
+        }
+      }
+      else if (this.lastKey==27) // Escape
+      {
+        parent.searchBox.CloseResultsWindow();
+        parent.document.getElementById("MSearchField").focus();
+      }
+      else if (this.lastKey==13) // Enter
+      {
+        return true;
+      }
+      return false;
+    }
+}
+
+function setKeyActions(elem,action)
+{
+  elem.setAttribute('onkeydown',action);
+  elem.setAttribute('onkeypress',action);
+  elem.setAttribute('onkeyup',action);
+}
+
+function setClassAttr(elem,attr)
+{
+  elem.setAttribute('class',attr);
+  elem.setAttribute('className',attr);
+}
+
+function createResults()
+{
+  var results = document.getElementById("SRResults");
+  for (var e=0; e<searchData.length; e++)
+  {
+    var id = searchData[e][0];
+    var srResult = document.createElement('div');
+    srResult.setAttribute('id','SR_'+id);
+    setClassAttr(srResult,'SRResult');
+    var srEntry = document.createElement('div');
+    setClassAttr(srEntry,'SREntry');
+    var srLink = document.createElement('a');
+    srLink.setAttribute('id','Item'+e);
+    setKeyActions(srLink,'return searchResults.Nav(event,'+e+')');
+    setClassAttr(srLink,'SRSymbol');
+    srLink.innerHTML = searchData[e][1][0];
+    srEntry.appendChild(srLink);
+    if (searchData[e][1].length==2) // single result
+    {
+      srLink.setAttribute('href',searchData[e][1][1][0]);
+      if (searchData[e][1][1][1])
+      {
+       srLink.setAttribute('target','_parent');
+      }
+      var srScope = document.createElement('span');
+      setClassAttr(srScope,'SRScope');
+      srScope.innerHTML = searchData[e][1][1][2];
+      srEntry.appendChild(srScope);
+    }
+    else // multiple results
+    {
+      srLink.setAttribute('href','javascript:searchResults.Toggle("SR_'+id+'")');
+      var srChildren = document.createElement('div');
+      setClassAttr(srChildren,'SRChildren');
+      for (var c=0; c<searchData[e][1].length-1; c++)
+      {
+        var srChild = document.createElement('a');
+        srChild.setAttribute('id','Item'+e+'_c'+c);
+        setKeyActions(srChild,'return searchResults.NavChild(event,'+e+','+c+')');
+        setClassAttr(srChild,'SRScope');
+        srChild.setAttribute('href',searchData[e][1][c+1][0]);
+        if (searchData[e][1][c+1][1])
+        {
+         srChild.setAttribute('target','_parent');
+        }
+        srChild.innerHTML = searchData[e][1][c+1][2];
+        srChildren.appendChild(srChild);
+      }
+      srEntry.appendChild(srChildren);
+    }
+    srResult.appendChild(srEntry);
+    results.appendChild(srResult);
+  }
+}
+
+function init_search()
+{
+  var results = document.getElementById("MSearchSelectWindow");
+  for (var key in indexSectionLabels)
+  {
+    var link = document.createElement('a');
+    link.setAttribute('class','SelectItem');
+    link.setAttribute('onclick','searchBox.OnSelectItem('+key+')');
+    link.href='javascript:void(0)';
+    link.innerHTML='<span class="SelectionMark">&#160;</span>'+indexSectionLabels[key];
+    results.appendChild(link);
+  }
+  searchBox.OnSelectItem(0);
+}
+/* @license-end */
diff --git a/doxy/html/search/search_l.png b/doxy/html/search/search_l.png
new file mode 100644
index 0000000000000000000000000000000000000000..fd5f7daa41a4c79b4ae9bea5aa7bdfb94e14084b
Binary files /dev/null and b/doxy/html/search/search_l.png differ
diff --git a/doxy/html/search/search_m.png b/doxy/html/search/search_m.png
new file mode 100644
index 0000000000000000000000000000000000000000..b429a16ba641960da1e52e5da85dc80fd82635c8
Binary files /dev/null and b/doxy/html/search/search_m.png differ
diff --git a/doxy/html/search/search_r.png b/doxy/html/search/search_r.png
new file mode 100644
index 0000000000000000000000000000000000000000..1af5d21ee13e070d7600f1c4657fde843b953a69
Binary files /dev/null and b/doxy/html/search/search_r.png differ
diff --git a/doxy/html/search/searchdata.js b/doxy/html/search/searchdata.js
new file mode 100644
index 0000000000000000000000000000000000000000..16f4f35d90df05dc74d5e72de79f227a04c01fe8
--- /dev/null
+++ b/doxy/html/search/searchdata.js
@@ -0,0 +1,48 @@
+var indexSectionsWithContent =
+{
+  0: "_abcdefghijklmnopqrstuvwxyz~",
+  1: "cdeghilmprstvw",
+  2: "eorw",
+  3: "acdegilmoprstw",
+  4: "abcdefghilmnoprstuvwyz~",
+  5: "abcdefghilmnoprstuvwxy",
+  6: "v",
+  7: "dfkmr",
+  8: "abcdefghijklmnopqrstuvwxyz",
+  9: "mop",
+  10: "_opu",
+  11: "t"
+};
+
+var indexSectionNames =
+{
+  0: "all",
+  1: "classes",
+  2: "namespaces",
+  3: "files",
+  4: "functions",
+  5: "variables",
+  6: "typedefs",
+  7: "enums",
+  8: "enumvalues",
+  9: "related",
+  10: "defines",
+  11: "pages"
+};
+
+var indexSectionLabels =
+{
+  0: "All",
+  1: "Classes",
+  2: "Namespaces",
+  3: "Files",
+  4: "Functions",
+  5: "Variables",
+  6: "Typedefs",
+  7: "Enumerations",
+  8: "Enumerator",
+  9: "Friends",
+  10: "Macros",
+  11: "Pages"
+};
+
diff --git a/doxy/html/search/typedefs_0.html b/doxy/html/search/typedefs_0.html
new file mode 100644
index 0000000000000000000000000000000000000000..b66f0a7b911dfcf60b99e47cff62c6df5b9387b1
--- /dev/null
+++ b/doxy/html/search/typedefs_0.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="typedefs_0.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doxy/html/search/typedefs_0.js b/doxy/html/search/typedefs_0.js
new file mode 100644
index 0000000000000000000000000000000000000000..4b9137ace83258477aca389ffaac20b6271efb2c
--- /dev/null
+++ b/doxy/html/search/typedefs_0.js
@@ -0,0 +1,7 @@
+var searchData=
+[
+  ['vd2d_1152',['vd2d',['../namespaceolc.html#a51aaa7b75138a3323048a77457735d33',1,'olc']]],
+  ['vf2d_1153',['vf2d',['../namespaceolc.html#adb87819740ea9625f84c821fffb16429',1,'olc']]],
+  ['vi2d_1154',['vi2d',['../namespaceolc.html#a3c42697361e8a28424bcf8415aba3564',1,'olc']]],
+  ['vu2d_1155',['vu2d',['../namespaceolc.html#ac9f9fa9267428312fd81237a4cc5c8e5',1,'olc']]]
+];
diff --git a/doxy/html/search/variables_0.html b/doxy/html/search/variables_0.html
new file mode 100644
index 0000000000000000000000000000000000000000..2edd1114bd19559313505a1710a88dabc44e93c1
--- /dev/null
+++ b/doxy/html/search/variables_0.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="variables_0.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doxy/html/search/variables_0.js b/doxy/html/search/variables_0.js
new file mode 100644
index 0000000000000000000000000000000000000000..4687fb9b41dc1ca9ef2152df310ed3a438cf73d0
--- /dev/null
+++ b/doxy/html/search/variables_0.js
@@ -0,0 +1,5 @@
+var searchData=
+[
+  ['a_1062',['a',['../structolc_1_1_pixel.html#a652a25d4bcab1f7bf627c3224842f0b1',1,'olc::Pixel']]],
+  ['attackoffset_1063',['attackOffset',['../classweapons_1_1_typical_melee_weapon.html#af33a1ff938b8068aaab0bd0ac943ca83',1,'weapons::TypicalMeleeWeapon']]]
+];
diff --git a/doxy/html/search/variables_1.html b/doxy/html/search/variables_1.html
new file mode 100644
index 0000000000000000000000000000000000000000..98b95a99c0f190e1c3e2700cae4c8b1a3a7c00e0
--- /dev/null
+++ b/doxy/html/search/variables_1.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="variables_1.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doxy/html/search/variables_1.js b/doxy/html/search/variables_1.js
new file mode 100644
index 0000000000000000000000000000000000000000..15cec451ea388b7ae6bf1a1449fd26a7e384415c
--- /dev/null
+++ b/doxy/html/search/variables_1.js
@@ -0,0 +1,10 @@
+var searchData=
+[
+  ['b_1064',['b',['../structolc_1_1_pixel.html#a8738f2cd490bd9c5288f37c8d19816be',1,'olc::Pixel']]],
+  ['basedamage_1065',['baseDamage',['../classweapons_1_1_weapon.html#a27456b08c51df0759ae0155b9f79e336',1,'weapons::Weapon']]],
+  ['bheld_1066',['bHeld',['../structolc_1_1_h_w_button.html#a6d872a5aeb23aba39103b95093c63cb7',1,'olc::HWButton']]],
+  ['bpressed_1067',['bPressed',['../structolc_1_1_h_w_button.html#a0c379d6a109299fc0a1c872ebbb2f4d9',1,'olc::HWButton']]],
+  ['breleased_1068',['bReleased',['../structolc_1_1_h_w_button.html#a2576b36bdf00033f78fa1cdcabfa2a00',1,'olc::HWButton']]],
+  ['bshow_1069',['bShow',['../structolc_1_1_layer_desc.html#aeb19896b6a82e301769bfd9d5aa053b6',1,'olc::LayerDesc']]],
+  ['bupdate_1070',['bUpdate',['../structolc_1_1_layer_desc.html#a5239ecc59495acca81a03e8783d9b873',1,'olc::LayerDesc']]]
+];
diff --git a/doxy/html/search/variables_10.html b/doxy/html/search/variables_10.html
new file mode 100644
index 0000000000000000000000000000000000000000..61d3e5c430d4b26aa90fcf3709ece356ca6796ec
--- /dev/null
+++ b/doxy/html/search/variables_10.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="variables_10.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doxy/html/search/variables_10.js b/doxy/html/search/variables_10.js
new file mode 100644
index 0000000000000000000000000000000000000000..e9739cb8abb59af2ce896e2b1a71413038c4aa12
--- /dev/null
+++ b/doxy/html/search/variables_10.js
@@ -0,0 +1,5 @@
+var searchData=
+[
+  ['texture_1136',['texture',['../classentities_1_1_character_entity.html#a295a77ffb22dd1a7b30164ab04ecf400',1,'entities::CharacterEntity']]],
+  ['tint_1137',['tint',['../structolc_1_1_decal_instance.html#a04f01880bf6d4045b6e1f70aff3e5c8f',1,'olc::DecalInstance::tint()'],['../structolc_1_1_layer_desc.html#af6027ed5757afe2c8c0cd50620d7311f',1,'olc::LayerDesc::tint()']]]
+];
diff --git a/doxy/html/search/variables_11.html b/doxy/html/search/variables_11.html
new file mode 100644
index 0000000000000000000000000000000000000000..459b71db09668e3552964db168b17673bc7cb708
--- /dev/null
+++ b/doxy/html/search/variables_11.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="variables_11.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doxy/html/search/variables_11.js b/doxy/html/search/variables_11.js
new file mode 100644
index 0000000000000000000000000000000000000000..bfdd4f3ab88e93ce6deaf9dbf09c833d7d27f745
--- /dev/null
+++ b/doxy/html/search/variables_11.js
@@ -0,0 +1,5 @@
+var searchData=
+[
+  ['user_1138',['user',['../classentities_1_1_projectile_entity.html#ab01d1aa4b66b21481d07f7777bfb2ca3',1,'entities::ProjectileEntity']]],
+  ['uv_1139',['uv',['../structolc_1_1_decal_instance.html#a60337d982b4f35b3bb5b1d814fa0d09f',1,'olc::DecalInstance']]]
+];
diff --git a/doxy/html/search/variables_12.html b/doxy/html/search/variables_12.html
new file mode 100644
index 0000000000000000000000000000000000000000..18778ecf8c2110beadf0fb39ff2822a2d2c54b77
--- /dev/null
+++ b/doxy/html/search/variables_12.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="variables_12.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doxy/html/search/variables_12.js b/doxy/html/search/variables_12.js
new file mode 100644
index 0000000000000000000000000000000000000000..286ca7faeaa6a380ba91a57e5010051729d1f247
--- /dev/null
+++ b/doxy/html/search/variables_12.js
@@ -0,0 +1,9 @@
+var searchData=
+[
+  ['vecdecalinstance_1140',['vecDecalInstance',['../structolc_1_1_layer_desc.html#ac6cd952e0ebbd7cde19060b4e3896875',1,'olc::LayerDesc']]],
+  ['velocity_1141',['velocity',['../classentities_1_1_projectile_entity.html#a29cb43b58d34f32f18986185bf8691f8',1,'entities::ProjectileEntity']]],
+  ['vmemory_1142',['vMemory',['../structolc_1_1_resource_buffer.html#a413e818311737396d14838a00df05303',1,'olc::ResourceBuffer']]],
+  ['voffset_1143',['vOffset',['../structolc_1_1_layer_desc.html#a1657be3b96c8fbb85fe113ae695fece9',1,'olc::LayerDesc']]],
+  ['vscale_1144',['vScale',['../structolc_1_1_layer_desc.html#ab9701d17eb84ab32e93211277cacc763',1,'olc::LayerDesc']]],
+  ['vuvscale_1145',['vUVScale',['../classolc_1_1_decal.html#aff06190e3ca17446d373d5a93a3636c7',1,'olc::Decal']]]
+];
diff --git a/doxy/html/search/variables_13.html b/doxy/html/search/variables_13.html
new file mode 100644
index 0000000000000000000000000000000000000000..9591b855b0fa91abf78db728b94c262177015325
--- /dev/null
+++ b/doxy/html/search/variables_13.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="variables_13.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doxy/html/search/variables_13.js b/doxy/html/search/variables_13.js
new file mode 100644
index 0000000000000000000000000000000000000000..8116a42350cda9d147c773ef22ffdce59b52e498
--- /dev/null
+++ b/doxy/html/search/variables_13.js
@@ -0,0 +1,7 @@
+var searchData=
+[
+  ['w_1146',['w',['../structolc_1_1_decal_instance.html#a3475b1bb41f868f218c759972dec2f73',1,'olc::DecalInstance']]],
+  ['warriortexture_1147',['WarriorTexture',['../classrender_1_1_character_texture.html#a63149d0abd6b6c3fffac01f6bae855eb',1,'render::CharacterTexture']]],
+  ['width_1148',['width',['../classolc_1_1_sprite.html#af055800e63204ae372ca0812e6926230',1,'olc::Sprite']]],
+  ['worldtoscreenscale_1149',['worldToScreenScale',['../main_game_8cpp.html#ab553cccbcdbb19b4f2c3a1a727eeb867',1,'mainGame.cpp']]]
+];
diff --git a/doxy/html/search/variables_14.html b/doxy/html/search/variables_14.html
new file mode 100644
index 0000000000000000000000000000000000000000..2a4fe113ab9f4a59d5c90397bdcd75836492c6f2
--- /dev/null
+++ b/doxy/html/search/variables_14.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="variables_14.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doxy/html/search/variables_14.js b/doxy/html/search/variables_14.js
new file mode 100644
index 0000000000000000000000000000000000000000..8f067e40dc3363aadfd7f5ee05f486e3d545d33d
--- /dev/null
+++ b/doxy/html/search/variables_14.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+  ['x_1150',['x',['../structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807',1,'olc::v2d_generic']]]
+];
diff --git a/doxy/html/search/variables_15.html b/doxy/html/search/variables_15.html
new file mode 100644
index 0000000000000000000000000000000000000000..0927a79c2d790e611649e12fbf5764e7444c95ed
--- /dev/null
+++ b/doxy/html/search/variables_15.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="variables_15.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doxy/html/search/variables_15.js b/doxy/html/search/variables_15.js
new file mode 100644
index 0000000000000000000000000000000000000000..80156fa5c5c95de4f430ccccc25db4060bfca32a
--- /dev/null
+++ b/doxy/html/search/variables_15.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+  ['y_1151',['y',['../structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf',1,'olc::v2d_generic']]]
+];
diff --git a/doxy/html/search/variables_2.html b/doxy/html/search/variables_2.html
new file mode 100644
index 0000000000000000000000000000000000000000..3e0c5910a879ee6b642af03848536f9f3a23f8ea
--- /dev/null
+++ b/doxy/html/search/variables_2.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="variables_2.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doxy/html/search/variables_2.js b/doxy/html/search/variables_2.js
new file mode 100644
index 0000000000000000000000000000000000000000..5ab18037f8d3ca580a3861b391559b71e2e4b50e
--- /dev/null
+++ b/doxy/html/search/variables_2.js
@@ -0,0 +1,5 @@
+var searchData=
+[
+  ['cooldown_1071',['cooldown',['../classweapons_1_1_weapon.html#aa3529d6c0160f61132fc7bb1b9284a02',1,'weapons::Weapon']]],
+  ['cooldowntime_1072',['cooldownTime',['../classweapons_1_1_weapon.html#aa3d78dae766eee8279326026dbb46f1f',1,'weapons::Weapon']]]
+];
diff --git a/doxy/html/search/variables_3.html b/doxy/html/search/variables_3.html
new file mode 100644
index 0000000000000000000000000000000000000000..7867da33244458a9c006d85aee69162109aa886a
--- /dev/null
+++ b/doxy/html/search/variables_3.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="variables_3.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doxy/html/search/variables_3.js b/doxy/html/search/variables_3.js
new file mode 100644
index 0000000000000000000000000000000000000000..11465afbc0bbe022c76b5540d300d2af528c2e56
--- /dev/null
+++ b/doxy/html/search/variables_3.js
@@ -0,0 +1,5 @@
+var searchData=
+[
+  ['damagevalue_1073',['damageValue',['../classentities_1_1_projectile_entity.html#ad4325b9194e4c76e68f27857226eefd8',1,'entities::ProjectileEntity']]],
+  ['decal_1074',['decal',['../structolc_1_1_decal_instance.html#ad01bc9806792469d91ee0b5736058e7e',1,'olc::DecalInstance']]]
+];
diff --git a/doxy/html/search/variables_4.html b/doxy/html/search/variables_4.html
new file mode 100644
index 0000000000000000000000000000000000000000..732dee2e2f51097522ae08acbfc6284062d05e9c
--- /dev/null
+++ b/doxy/html/search/variables_4.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="variables_4.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doxy/html/search/variables_4.js b/doxy/html/search/variables_4.js
new file mode 100644
index 0000000000000000000000000000000000000000..738b54f86c25e4b411ca7294850df0bc6fc744a7
--- /dev/null
+++ b/doxy/html/search/variables_4.js
@@ -0,0 +1,6 @@
+var searchData=
+[
+  ['emgun_1075',['emgun',['../classweapons_1_1_ranged_weapon.html#acf33d7619066026e823986ec5ec51a97',1,'weapons::RangedWeapon']]],
+  ['engineertexture_1076',['EngineerTexture',['../classrender_1_1_character_texture.html#a86b8570b892ad9e076b0dcc98e0190c3',1,'render::CharacterTexture']]],
+  ['explosionradius_1077',['explosionRadius',['../_explosive_projectile_8cpp.html#a5eca5e4f5f408cb99671021a490cfac4',1,'ExplosiveProjectile.cpp']]]
+];
diff --git a/doxy/html/search/variables_5.html b/doxy/html/search/variables_5.html
new file mode 100644
index 0000000000000000000000000000000000000000..ad9b545638c95e1d98a2b5f42fc3bc16e10b9753
--- /dev/null
+++ b/doxy/html/search/variables_5.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="variables_5.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doxy/html/search/variables_5.js b/doxy/html/search/variables_5.js
new file mode 100644
index 0000000000000000000000000000000000000000..ff0d08dbbdaddbe8bae0f86ebb6e3e7015e84518
--- /dev/null
+++ b/doxy/html/search/variables_5.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+  ['funchook_1078',['funcHook',['../structolc_1_1_layer_desc.html#a3ed4e651cce6277ab5b75ab1a9b05765',1,'olc::LayerDesc']]]
+];
diff --git a/doxy/html/search/variables_6.html b/doxy/html/search/variables_6.html
new file mode 100644
index 0000000000000000000000000000000000000000..1cf2da1954a891fbf5838582fe897b9d9a8ed24a
--- /dev/null
+++ b/doxy/html/search/variables_6.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="variables_6.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doxy/html/search/variables_6.js b/doxy/html/search/variables_6.js
new file mode 100644
index 0000000000000000000000000000000000000000..7ea935f00801867bca0c3d3f40f36ecb29d955f1
--- /dev/null
+++ b/doxy/html/search/variables_6.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+  ['g_1079',['g',['../structolc_1_1_pixel.html#a14cf5612284974c409f078944fe5f6ee',1,'olc::Pixel']]]
+];
diff --git a/doxy/html/search/variables_7.html b/doxy/html/search/variables_7.html
new file mode 100644
index 0000000000000000000000000000000000000000..ab2db0b895f5438ea38482d31485f72cfbc84ef0
--- /dev/null
+++ b/doxy/html/search/variables_7.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="variables_7.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doxy/html/search/variables_7.js b/doxy/html/search/variables_7.js
new file mode 100644
index 0000000000000000000000000000000000000000..c35c747b756ea34c4098e224233837d42da52739
--- /dev/null
+++ b/doxy/html/search/variables_7.js
@@ -0,0 +1,5 @@
+var searchData=
+[
+  ['health_1080',['health',['../classentities_1_1_living_entity.html#a78282129a711906b7973c4ecb37b8434',1,'entities::LivingEntity']]],
+  ['height_1081',['height',['../classolc_1_1_sprite.html#ab05010cb1a5ff6c36267d0050d568d96',1,'olc::Sprite']]]
+];
diff --git a/doxy/html/search/variables_8.html b/doxy/html/search/variables_8.html
new file mode 100644
index 0000000000000000000000000000000000000000..baec040fc24ce8824d289b17a188984be6da475c
--- /dev/null
+++ b/doxy/html/search/variables_8.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="variables_8.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doxy/html/search/variables_8.js b/doxy/html/search/variables_8.js
new file mode 100644
index 0000000000000000000000000000000000000000..463651bf92c960cd3ee0ed4b0112586ad580dc99
--- /dev/null
+++ b/doxy/html/search/variables_8.js
@@ -0,0 +1,8 @@
+var searchData=
+[
+  ['id_1082',['id',['../classolc_1_1_decal.html#a7cc798e0327ea4118c648b10e2d57986',1,'olc::Decal']]],
+  ['ignoredistance_1083',['ignoreDistance',['../_entity_8cpp.html#abbe123cdd88a2c284df8426f38efafca',1,'Entity.cpp']]],
+  ['is_5falive_1084',['is_alive',['../classentities_1_1_entity.html#aedac7bb35b729e4a02c582b9f4369ab8',1,'entities::Entity']]],
+  ['is_5finitialized_1085',['is_initialized',['../classentities_1_1_entity.html#a1453bca3376a185aa54135dd4958b244',1,'entities::Entity']]],
+  ['ispickedup_1086',['isPickedUp',['../classweapons_1_1_weapon.html#aba025076ad5e6fae2f9b9d40f4ef815d',1,'weapons::Weapon']]]
+];
diff --git a/doxy/html/search/variables_9.html b/doxy/html/search/variables_9.html
new file mode 100644
index 0000000000000000000000000000000000000000..df2fea0f99e5027b7a3a3c01d8d6de59696734b5
--- /dev/null
+++ b/doxy/html/search/variables_9.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="variables_9.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doxy/html/search/variables_9.js b/doxy/html/search/variables_9.js
new file mode 100644
index 0000000000000000000000000000000000000000..b4049762a9e5eea47b69ba9fea23bd9133c9bc49
--- /dev/null
+++ b/doxy/html/search/variables_9.js
@@ -0,0 +1,5 @@
+var searchData=
+[
+  ['loader_1087',['loader',['../classolc_1_1_sprite.html#a023da26661031ebf7a276cafd9a43902',1,'olc::Sprite']]],
+  ['longsword_1088',['longSword',['../classweapons_1_1_typical_melee_weapon.html#ae623cc428bd32ef113d48d6ca15cf4c2',1,'weapons::TypicalMeleeWeapon']]]
+];
diff --git a/doxy/html/search/variables_a.html b/doxy/html/search/variables_a.html
new file mode 100644
index 0000000000000000000000000000000000000000..c7491ab899928b7d53b96053c645abdabbc845ad
--- /dev/null
+++ b/doxy/html/search/variables_a.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="variables_a.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doxy/html/search/variables_a.js b/doxy/html/search/variables_a.js
new file mode 100644
index 0000000000000000000000000000000000000000..f7a09249e43e7a7ab2522a40e829e9923c83a213
--- /dev/null
+++ b/doxy/html/search/variables_a.js
@@ -0,0 +1,22 @@
+var searchData=
+[
+  ['m_5fbpanning_1089',['m_bPanning',['../classolc_1_1_transformed_view.html#a2c19ec65e54f43500cce003f878c8ed5',1,'olc::TransformedView']]],
+  ['m_5fvpixelscale_1090',['m_vPixelScale',['../classolc_1_1_transformed_view.html#a94a7fd3ad136ec70040bbff1c7133418',1,'olc::TransformedView']]],
+  ['m_5fvrecippixel_1091',['m_vRecipPixel',['../classolc_1_1_transformed_view.html#ae1b7b82332f0979caa99e003827624cb',1,'olc::TransformedView']]],
+  ['m_5fvstartpan_1092',['m_vStartPan',['../classolc_1_1_transformed_view.html#a4f7569cc3d27120b485077789b86aa44',1,'olc::TransformedView']]],
+  ['m_5fvviewarea_1093',['m_vViewArea',['../classolc_1_1_transformed_view.html#a0a2936aac23f1621ff1d618c7155de1c',1,'olc::TransformedView']]],
+  ['m_5fvworldoffset_1094',['m_vWorldOffset',['../classolc_1_1_transformed_view.html#a2e77497521f72e59ae7ecb56dc5d3f37',1,'olc::TransformedView']]],
+  ['m_5fvworldscale_1095',['m_vWorldScale',['../classolc_1_1_transformed_view.html#a652909b48a4d8960c36d1ce4262cc95a',1,'olc::TransformedView']]],
+  ['magetexture_1096',['MageTexture',['../classrender_1_1_character_texture.html#a29faf07d6f3edb7d05ad4811613a9ded',1,'render::CharacterTexture']]],
+  ['maxattackcooldown_1097',['maxAttackCooldown',['../_entity_with_a_i_8cpp.html#a57be3a52c6744615f203955322706cfc',1,'EntityWithAI.cpp']]],
+  ['maxdistance_1098',['maxDistance',['../classweapons_1_1_melee_weapon_1_1predicate_distance.html#a3d53f314c59a28ad09a209299c6f04dc',1,'weapons::MeleeWeapon::predicateDistance']]],
+  ['maxprojectileage_1099',['maxProjectileAge',['../_projectile_entity_8cpp.html#a3e9bff6f87d6a4caeac7578a37192511',1,'ProjectileEntity.cpp']]],
+  ['maxrange_1100',['maxRange',['../classweapons_1_1_typical_melee_weapon.html#a7822572a76104d2cd2d0a21cdfa754d7',1,'weapons::TypicalMeleeWeapon']]],
+  ['maxsize_1101',['maxSize',['../_square_room_generator_8cpp.html#af598d998387dbc59923042b09ff6a63a',1,'SquareRoomGenerator.cpp']]],
+  ['maxtimedelta_1102',['maxTimeDelta',['../main_game_8cpp.html#aa8c13326fceadba77254d2971649a3ab',1,'mainGame.cpp']]],
+  ['maxweaponpickuprange_1103',['maxWeaponPickupRange',['../_player_entity_8cpp.html#a3c781e763876e55aa6ab889f192e17ca',1,'PlayerEntity.cpp']]],
+  ['mindistance_1104',['minDistance',['../classweapons_1_1_melee_weapon_1_1predicate_distance.html#ad75b973371de19453068e729b275af89',1,'weapons::MeleeWeapon::predicateDistance']]],
+  ['minsize_1105',['minSize',['../_square_room_generator_8cpp.html#a03e2392026add58812e6bad00bee5b84',1,'SquareRoomGenerator.cpp']]],
+  ['mode_1106',['mode',['../structolc_1_1_decal_instance.html#a3dcc0fc374fe00a5d6451a4ac13e6649',1,'olc::DecalInstance']]],
+  ['modesample_1107',['modeSample',['../classolc_1_1_sprite.html#ab9182b86e829467f454c7ef630ebc9fb',1,'olc::Sprite']]]
+];
diff --git a/doxy/html/search/variables_b.html b/doxy/html/search/variables_b.html
new file mode 100644
index 0000000000000000000000000000000000000000..371f07a2c6e436bd7304118f03519b7b7d1def4e
--- /dev/null
+++ b/doxy/html/search/variables_b.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="variables_b.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doxy/html/search/variables_b.js b/doxy/html/search/variables_b.js
new file mode 100644
index 0000000000000000000000000000000000000000..5adbe358b3d9a3bf45f9a5495210332bb8b4c70e
--- /dev/null
+++ b/doxy/html/search/variables_b.js
@@ -0,0 +1,9 @@
+var searchData=
+[
+  ['n_1108',['n',['../structolc_1_1_pixel.html#aa9cb31c80e2822ccc726526be5801ae2',1,'olc::Pixel']]],
+  ['name_1109',['name',['../classweapons_1_1_weapon.html#a3dab7574419aed48f2a0f2d54cfcd825',1,'weapons::Weapon']]],
+  ['ndefaultalpha_1110',['nDefaultAlpha',['../namespaceolc.html#adede7d1156ab9d8ffdc3e9048f0f364b',1,'olc']]],
+  ['ndefaultpixel_1111',['nDefaultPixel',['../namespaceolc.html#a10bbdc57cc3fecc7b80ba428eb7494d0',1,'olc']]],
+  ['nmousebuttons_1112',['nMouseButtons',['../namespaceolc.html#abf7dfc35dd1d895f33d3635831953e38',1,'olc']]],
+  ['nresid_1113',['nResID',['../structolc_1_1_layer_desc.html#a9433153aabd3d3530043f71a2ad63b1a',1,'olc::LayerDesc']]]
+];
diff --git a/doxy/html/search/variables_c.html b/doxy/html/search/variables_c.html
new file mode 100644
index 0000000000000000000000000000000000000000..c89b8de98ae446f3dcd77c1c4317401e932c315f
--- /dev/null
+++ b/doxy/html/search/variables_c.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="variables_c.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doxy/html/search/variables_c.js b/doxy/html/search/variables_c.js
new file mode 100644
index 0000000000000000000000000000000000000000..db916bd93ec9ae7bfb3526b44a3d492b54a4d438
--- /dev/null
+++ b/doxy/html/search/variables_c.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+  ['offsetmap_1114',['offsetMap',['../classrender_1_1_wall_texture.html#a8246fdde3751baf778392ce6f4577a8d',1,'render::WallTexture']]]
+];
diff --git a/doxy/html/search/variables_d.html b/doxy/html/search/variables_d.html
new file mode 100644
index 0000000000000000000000000000000000000000..a73000dcbdd18d2308fb676069a66315ddafc9ef
--- /dev/null
+++ b/doxy/html/search/variables_d.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="variables_d.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doxy/html/search/variables_d.js b/doxy/html/search/variables_d.js
new file mode 100644
index 0000000000000000000000000000000000000000..350fe21ddf43354e9e7f7598d3961596900cea83
--- /dev/null
+++ b/doxy/html/search/variables_d.js
@@ -0,0 +1,13 @@
+var searchData=
+[
+  ['paladintexture_1115',['PaladinTexture',['../classrender_1_1_character_texture.html#aa83fc0221f1d435820cd794cdb1b126e',1,'render::CharacterTexture']]],
+  ['pcoldata_1116',['pColData',['../classolc_1_1_sprite.html#adb41a2041dfe14de9605dabcd905db60',1,'olc::Sprite']]],
+  ['pdrawtarget_1117',['pDrawTarget',['../structolc_1_1_layer_desc.html#a24f921523245fce959bb1cd0f55faeff',1,'olc::LayerDesc']]],
+  ['pge_1118',['pge',['../classolc_1_1_p_g_e_x.html#a032efdb84150a7cdd3cc9248860df316',1,'olc::PGEX']]],
+  ['pistol_1119',['pistol',['../classweapons_1_1_ranged_weapon.html#a2c916fa61105c656187e1f6f41fa4fab',1,'weapons::RangedWeapon']]],
+  ['points_1120',['points',['../structolc_1_1_decal_instance.html#aa03e3326919eb0c889cdad3492c8a8f6',1,'olc::DecalInstance']]],
+  ['pos_1121',['pos',['../classentities_1_1_entity.html#a04f9c2febe8d435138a07eb2f48ba96b',1,'entities::Entity::pos()'],['../structolc_1_1_decal_instance.html#a8dcf3a11a4f2c722e9b54c01643de08c',1,'olc::DecalInstance::pos()']]],
+  ['projectile_1122',['projectile',['../classentities_1_1_projectile_entity.html#aedd28853ca6fd6f1b8fa45dbe6b90c63',1,'entities::ProjectileEntity']]],
+  ['projectilespeed_1123',['projectileSpeed',['../classweapons_1_1_ranged_weapon.html#a299d09c213670d80f7215e2310c92889',1,'weapons::RangedWeapon']]],
+  ['ptrpge_1124',['ptrPGE',['../classolc_1_1_renderer.html#a89f800c14ab1b070408c17e2589e02a1',1,'olc::Renderer::ptrPGE()'],['../classolc_1_1_platform.html#a43a4a5eaaf20384b9cef6aec6e75dbbd',1,'olc::Platform::ptrPGE()']]]
+];
diff --git a/doxy/html/search/variables_e.html b/doxy/html/search/variables_e.html
new file mode 100644
index 0000000000000000000000000000000000000000..50f6bea9a1b95285c2c8b5ac0b3d2400d8591ae3
--- /dev/null
+++ b/doxy/html/search/variables_e.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="variables_e.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doxy/html/search/variables_e.js b/doxy/html/search/variables_e.js
new file mode 100644
index 0000000000000000000000000000000000000000..f0d12f74e7da4501de3ede3fb5982995632b31cf
--- /dev/null
+++ b/doxy/html/search/variables_e.js
@@ -0,0 +1,6 @@
+var searchData=
+[
+  ['r_1125',['r',['../structolc_1_1_pixel.html#a93ee3efde3d2b363e4e4813a490f60b4',1,'olc::Pixel']]],
+  ['resourcename_1126',['resourceName',['../classrender_1_1_lazy_sprite.html#a67a794671efc86ea29921c0e5934377e',1,'render::LazySprite']]],
+  ['rougetexture_1127',['RougeTexture',['../classrender_1_1_character_texture.html#a48e57b7a2864c6adb791b91a24b5daea',1,'render::CharacterTexture']]]
+];
diff --git a/doxy/html/search/variables_f.html b/doxy/html/search/variables_f.html
new file mode 100644
index 0000000000000000000000000000000000000000..cabd42aa20418402a65376e41b3da4f299a8b7ce
--- /dev/null
+++ b/doxy/html/search/variables_f.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="variables_f.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+window.addEventListener("message", function(event) {
+  if (event.data == "take_focus") {
+    var elem = searchResults.NavNext(0);
+    if (elem) elem.focus();
+  }
+});
+/* @license-end */
+--></script>
+</div>
+</body>
+</html>
diff --git a/doxy/html/search/variables_f.js b/doxy/html/search/variables_f.js
new file mode 100644
index 0000000000000000000000000000000000000000..f809265fdeac00fabf63ebec0a444664d6d1148a
--- /dev/null
+++ b/doxy/html/search/variables_f.js
@@ -0,0 +1,11 @@
+var searchData=
+[
+  ['sappname_1128',['sAppName',['../classolc_1_1_pixel_game_engine.html#a02d0f9c50770aa38aea1448f62d3604f',1,'olc::PixelGameEngine']]],
+  ['screenmovescale_1129',['screenMoveScale',['../main_game_8cpp.html#a7f4c2bc4db6ed1d3f59d20429bcca8db',1,'mainGame.cpp']]],
+  ['simplegreenwalltexture_1130',['simpleGreenWallTexture',['../classentities_1_1_wall_entity.html#a3006e4856a24086bdd28b7b353b159ff',1,'entities::WallEntity']]],
+  ['simplewalltexture_1131',['simpleWallTexture',['../classentities_1_1_wall_entity.html#a73c32014a207a92fc1a837f0dda83eb8',1,'entities::WallEntity']]],
+  ['speed_1132',['speed',['../classentities_1_1_living_entity.html#ad8b574e93d1fa34cdd119be6f0391acb',1,'entities::LivingEntity']]],
+  ['spoon_1133',['spoon',['../classweapons_1_1_typical_melee_weapon.html#a1988a389241e423445c7b0f6ff2ed23f',1,'weapons::TypicalMeleeWeapon']]],
+  ['sprite_1134',['sprite',['../classolc_1_1_decal.html#a93a1e2ae28aa587978e2a66b6328d66a',1,'olc::Decal']]],
+  ['sword_1135',['sword',['../classweapons_1_1_typical_melee_weapon.html#a1eed0cf1fc89f495ccad84dd4acac0eb',1,'weapons::TypicalMeleeWeapon']]]
+];
diff --git a/doxy/html/splitbar.png b/doxy/html/splitbar.png
new file mode 100644
index 0000000000000000000000000000000000000000..fe895f2c58179b471a22d8320b39a4bd7312ec8e
Binary files /dev/null and b/doxy/html/splitbar.png differ
diff --git a/doxy/html/structolc_1_1_decal_instance-members.html b/doxy/html/structolc_1_1_decal_instance-members.html
new file mode 100644
index 0000000000000000000000000000000000000000..95ec181a87488630c1760b989b9024e8ececa9bc
--- /dev/null
+++ b/doxy/html/structolc_1_1_decal_instance-members.html
@@ -0,0 +1,89 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="namespaceolc.html">olc</a></li><li class="navelem"><a class="el" href="structolc_1_1_decal_instance.html">DecalInstance</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">olc::DecalInstance Member List</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="structolc_1_1_decal_instance.html">olc::DecalInstance</a>, including all inherited members.</p>
+<table class="directory">
+  <tr class="even"><td class="entry"><a class="el" href="structolc_1_1_decal_instance.html#ad01bc9806792469d91ee0b5736058e7e">decal</a></td><td class="entry"><a class="el" href="structolc_1_1_decal_instance.html">olc::DecalInstance</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="structolc_1_1_decal_instance.html#a3dcc0fc374fe00a5d6451a4ac13e6649">mode</a></td><td class="entry"><a class="el" href="structolc_1_1_decal_instance.html">olc::DecalInstance</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="structolc_1_1_decal_instance.html#aa03e3326919eb0c889cdad3492c8a8f6">points</a></td><td class="entry"><a class="el" href="structolc_1_1_decal_instance.html">olc::DecalInstance</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="structolc_1_1_decal_instance.html#a8dcf3a11a4f2c722e9b54c01643de08c">pos</a></td><td class="entry"><a class="el" href="structolc_1_1_decal_instance.html">olc::DecalInstance</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="structolc_1_1_decal_instance.html#a04f01880bf6d4045b6e1f70aff3e5c8f">tint</a></td><td class="entry"><a class="el" href="structolc_1_1_decal_instance.html">olc::DecalInstance</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="structolc_1_1_decal_instance.html#a60337d982b4f35b3bb5b1d814fa0d09f">uv</a></td><td class="entry"><a class="el" href="structolc_1_1_decal_instance.html">olc::DecalInstance</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="structolc_1_1_decal_instance.html#a3475b1bb41f868f218c759972dec2f73">w</a></td><td class="entry"><a class="el" href="structolc_1_1_decal_instance.html">olc::DecalInstance</a></td><td class="entry"></td></tr>
+</table></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/structolc_1_1_decal_instance.html b/doxy/html/structolc_1_1_decal_instance.html
new file mode 100644
index 0000000000000000000000000000000000000000..a40b620707f722f7541a6615236300835df74075
--- /dev/null
+++ b/doxy/html/structolc_1_1_decal_instance.html
@@ -0,0 +1,221 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: olc::DecalInstance Struct Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="namespaceolc.html">olc</a></li><li class="navelem"><a class="el" href="structolc_1_1_decal_instance.html">DecalInstance</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#pub-attribs">Public Attributes</a> &#124;
+<a href="structolc_1_1_decal_instance-members.html">List of all members</a>  </div>
+  <div class="headertitle">
+<div class="title">olc::DecalInstance Struct Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p><code>#include &lt;<a class="el" href="olc_pixel_game_engine_8h_source.html">olcPixelGameEngine.h</a>&gt;</code></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+Public Attributes</h2></td></tr>
+<tr class="memitem:ad01bc9806792469d91ee0b5736058e7e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classolc_1_1_decal.html">olc::Decal</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structolc_1_1_decal_instance.html#ad01bc9806792469d91ee0b5736058e7e">decal</a> = nullptr</td></tr>
+<tr class="separator:ad01bc9806792469d91ee0b5736058e7e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8dcf3a11a4f2c722e9b54c01643de08c"><td class="memItemLeft" align="right" valign="top">std::vector&lt; <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structolc_1_1_decal_instance.html#a8dcf3a11a4f2c722e9b54c01643de08c">pos</a></td></tr>
+<tr class="separator:a8dcf3a11a4f2c722e9b54c01643de08c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a60337d982b4f35b3bb5b1d814fa0d09f"><td class="memItemLeft" align="right" valign="top">std::vector&lt; <a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structolc_1_1_decal_instance.html#a60337d982b4f35b3bb5b1d814fa0d09f">uv</a></td></tr>
+<tr class="separator:a60337d982b4f35b3bb5b1d814fa0d09f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3475b1bb41f868f218c759972dec2f73"><td class="memItemLeft" align="right" valign="top">std::vector&lt; float &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structolc_1_1_decal_instance.html#a3475b1bb41f868f218c759972dec2f73">w</a></td></tr>
+<tr class="separator:a3475b1bb41f868f218c759972dec2f73"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a04f01880bf6d4045b6e1f70aff3e5c8f"><td class="memItemLeft" align="right" valign="top">std::vector&lt; <a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structolc_1_1_decal_instance.html#a04f01880bf6d4045b6e1f70aff3e5c8f">tint</a></td></tr>
+<tr class="separator:a04f01880bf6d4045b6e1f70aff3e5c8f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3dcc0fc374fe00a5d6451a4ac13e6649"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceolc.html#aeda642f63378f868193c28e8613138ca">olc::DecalMode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structolc_1_1_decal_instance.html#a3dcc0fc374fe00a5d6451a4ac13e6649">mode</a> = <a class="el" href="namespaceolc.html#aeda642f63378f868193c28e8613138caa1e23852820b9154316c7c06e2b7ba051">olc::DecalMode::NORMAL</a></td></tr>
+<tr class="separator:a3dcc0fc374fe00a5d6451a4ac13e6649"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa03e3326919eb0c889cdad3492c8a8f6"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structolc_1_1_decal_instance.html#aa03e3326919eb0c889cdad3492c8a8f6">points</a> = 0</td></tr>
+<tr class="separator:aa03e3326919eb0c889cdad3492c8a8f6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock">
+<p class="definition">Definition at line <a class="el" href="olc_pixel_game_engine_8h_source.html#l00783">783</a> of file <a class="el" href="olc_pixel_game_engine_8h_source.html">olcPixelGameEngine.h</a>.</p>
+</div><h2 class="groupheader">Member Data Documentation</h2>
+<a id="ad01bc9806792469d91ee0b5736058e7e"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ad01bc9806792469d91ee0b5736058e7e">&#9670;&nbsp;</a></span>decal</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classolc_1_1_decal.html">olc::Decal</a>* olc::DecalInstance::decal = nullptr</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="olc_pixel_game_engine_8h_source.html#l00785">785</a> of file <a class="el" href="olc_pixel_game_engine_8h_source.html">olcPixelGameEngine.h</a>.</p>
+
+</div>
+</div>
+<a id="a3dcc0fc374fe00a5d6451a4ac13e6649"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a3dcc0fc374fe00a5d6451a4ac13e6649">&#9670;&nbsp;</a></span>mode</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="namespaceolc.html#aeda642f63378f868193c28e8613138ca">olc::DecalMode</a> olc::DecalInstance::mode = <a class="el" href="namespaceolc.html#aeda642f63378f868193c28e8613138caa1e23852820b9154316c7c06e2b7ba051">olc::DecalMode::NORMAL</a></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="olc_pixel_game_engine_8h_source.html#l00790">790</a> of file <a class="el" href="olc_pixel_game_engine_8h_source.html">olcPixelGameEngine.h</a>.</p>
+
+</div>
+</div>
+<a id="aa03e3326919eb0c889cdad3492c8a8f6"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aa03e3326919eb0c889cdad3492c8a8f6">&#9670;&nbsp;</a></span>points</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">uint32_t olc::DecalInstance::points = 0</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="olc_pixel_game_engine_8h_source.html#l00791">791</a> of file <a class="el" href="olc_pixel_game_engine_8h_source.html">olcPixelGameEngine.h</a>.</p>
+
+</div>
+</div>
+<a id="a8dcf3a11a4f2c722e9b54c01643de08c"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a8dcf3a11a4f2c722e9b54c01643de08c">&#9670;&nbsp;</a></span>pos</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">std::vector&lt;<a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a>&gt; olc::DecalInstance::pos</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="olc_pixel_game_engine_8h_source.html#l00786">786</a> of file <a class="el" href="olc_pixel_game_engine_8h_source.html">olcPixelGameEngine.h</a>.</p>
+
+</div>
+</div>
+<a id="a04f01880bf6d4045b6e1f70aff3e5c8f"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a04f01880bf6d4045b6e1f70aff3e5c8f">&#9670;&nbsp;</a></span>tint</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">std::vector&lt;<a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a>&gt; olc::DecalInstance::tint</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="olc_pixel_game_engine_8h_source.html#l00789">789</a> of file <a class="el" href="olc_pixel_game_engine_8h_source.html">olcPixelGameEngine.h</a>.</p>
+
+</div>
+</div>
+<a id="a60337d982b4f35b3bb5b1d814fa0d09f"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a60337d982b4f35b3bb5b1d814fa0d09f">&#9670;&nbsp;</a></span>uv</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">std::vector&lt;<a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a>&gt; olc::DecalInstance::uv</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="olc_pixel_game_engine_8h_source.html#l00787">787</a> of file <a class="el" href="olc_pixel_game_engine_8h_source.html">olcPixelGameEngine.h</a>.</p>
+
+</div>
+</div>
+<a id="a3475b1bb41f868f218c759972dec2f73"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a3475b1bb41f868f218c759972dec2f73">&#9670;&nbsp;</a></span>w</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">std::vector&lt;float&gt; olc::DecalInstance::w</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="olc_pixel_game_engine_8h_source.html#l00788">788</a> of file <a class="el" href="olc_pixel_game_engine_8h_source.html">olcPixelGameEngine.h</a>.</p>
+
+</div>
+</div>
+<hr/>The documentation for this struct was generated from the following file:<ul>
+<li>C:/Users/kosmx/Documents/GitHub/2d-game/<a class="el" href="olc_pixel_game_engine_8h_source.html">olcPixelGameEngine.h</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/structolc_1_1_h_w_button-members.html b/doxy/html/structolc_1_1_h_w_button-members.html
new file mode 100644
index 0000000000000000000000000000000000000000..f842f1b9d76c4e4a2445d3a60867a955243de38b
--- /dev/null
+++ b/doxy/html/structolc_1_1_h_w_button-members.html
@@ -0,0 +1,85 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="namespaceolc.html">olc</a></li><li class="navelem"><a class="el" href="structolc_1_1_h_w_button.html">HWButton</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">olc::HWButton Member List</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="structolc_1_1_h_w_button.html">olc::HWButton</a>, including all inherited members.</p>
+<table class="directory">
+  <tr class="even"><td class="entry"><a class="el" href="structolc_1_1_h_w_button.html#a6d872a5aeb23aba39103b95093c63cb7">bHeld</a></td><td class="entry"><a class="el" href="structolc_1_1_h_w_button.html">olc::HWButton</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="structolc_1_1_h_w_button.html#a0c379d6a109299fc0a1c872ebbb2f4d9">bPressed</a></td><td class="entry"><a class="el" href="structolc_1_1_h_w_button.html">olc::HWButton</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="structolc_1_1_h_w_button.html#a2576b36bdf00033f78fa1cdcabfa2a00">bReleased</a></td><td class="entry"><a class="el" href="structolc_1_1_h_w_button.html">olc::HWButton</a></td><td class="entry"></td></tr>
+</table></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/structolc_1_1_h_w_button.html b/doxy/html/structolc_1_1_h_w_button.html
new file mode 100644
index 0000000000000000000000000000000000000000..0a8733e8e98f523a32e78e47e101586c2a49e17f
--- /dev/null
+++ b/doxy/html/structolc_1_1_h_w_button.html
@@ -0,0 +1,149 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: olc::HWButton Struct Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="namespaceolc.html">olc</a></li><li class="navelem"><a class="el" href="structolc_1_1_h_w_button.html">HWButton</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#pub-attribs">Public Attributes</a> &#124;
+<a href="structolc_1_1_h_w_button-members.html">List of all members</a>  </div>
+  <div class="headertitle">
+<div class="title">olc::HWButton Struct Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p><code>#include &lt;<a class="el" href="olc_pixel_game_engine_8h_source.html">olcPixelGameEngine.h</a>&gt;</code></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+Public Attributes</h2></td></tr>
+<tr class="memitem:a0c379d6a109299fc0a1c872ebbb2f4d9"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structolc_1_1_h_w_button.html#a0c379d6a109299fc0a1c872ebbb2f4d9">bPressed</a> = false</td></tr>
+<tr class="separator:a0c379d6a109299fc0a1c872ebbb2f4d9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2576b36bdf00033f78fa1cdcabfa2a00"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structolc_1_1_h_w_button.html#a2576b36bdf00033f78fa1cdcabfa2a00">bReleased</a> = false</td></tr>
+<tr class="separator:a2576b36bdf00033f78fa1cdcabfa2a00"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6d872a5aeb23aba39103b95093c63cb7"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structolc_1_1_h_w_button.html#a6d872a5aeb23aba39103b95093c63cb7">bHeld</a> = false</td></tr>
+<tr class="separator:a6d872a5aeb23aba39103b95093c63cb7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock">
+<p class="definition">Definition at line <a class="el" href="olc_pixel_game_engine_8h_source.html#l00567">567</a> of file <a class="el" href="olc_pixel_game_engine_8h_source.html">olcPixelGameEngine.h</a>.</p>
+</div><h2 class="groupheader">Member Data Documentation</h2>
+<a id="a6d872a5aeb23aba39103b95093c63cb7"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a6d872a5aeb23aba39103b95093c63cb7">&#9670;&nbsp;</a></span>bHeld</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">bool olc::HWButton::bHeld = false</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="olc_pixel_game_engine_8h_source.html#l00571">571</a> of file <a class="el" href="olc_pixel_game_engine_8h_source.html">olcPixelGameEngine.h</a>.</p>
+
+</div>
+</div>
+<a id="a0c379d6a109299fc0a1c872ebbb2f4d9"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a0c379d6a109299fc0a1c872ebbb2f4d9">&#9670;&nbsp;</a></span>bPressed</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">bool olc::HWButton::bPressed = false</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="olc_pixel_game_engine_8h_source.html#l00569">569</a> of file <a class="el" href="olc_pixel_game_engine_8h_source.html">olcPixelGameEngine.h</a>.</p>
+
+</div>
+</div>
+<a id="a2576b36bdf00033f78fa1cdcabfa2a00"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a2576b36bdf00033f78fa1cdcabfa2a00">&#9670;&nbsp;</a></span>bReleased</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">bool olc::HWButton::bReleased = false</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="olc_pixel_game_engine_8h_source.html#l00570">570</a> of file <a class="el" href="olc_pixel_game_engine_8h_source.html">olcPixelGameEngine.h</a>.</p>
+
+</div>
+</div>
+<hr/>The documentation for this struct was generated from the following file:<ul>
+<li>C:/Users/kosmx/Documents/GitHub/2d-game/<a class="el" href="olc_pixel_game_engine_8h_source.html">olcPixelGameEngine.h</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/structolc_1_1_layer_desc-members.html b/doxy/html/structolc_1_1_layer_desc-members.html
new file mode 100644
index 0000000000000000000000000000000000000000..ec8c49b5af51d3213516a0631ca2534b48204739
--- /dev/null
+++ b/doxy/html/structolc_1_1_layer_desc-members.html
@@ -0,0 +1,91 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="namespaceolc.html">olc</a></li><li class="navelem"><a class="el" href="structolc_1_1_layer_desc.html">LayerDesc</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">olc::LayerDesc Member List</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="structolc_1_1_layer_desc.html">olc::LayerDesc</a>, including all inherited members.</p>
+<table class="directory">
+  <tr class="even"><td class="entry"><a class="el" href="structolc_1_1_layer_desc.html#aeb19896b6a82e301769bfd9d5aa053b6">bShow</a></td><td class="entry"><a class="el" href="structolc_1_1_layer_desc.html">olc::LayerDesc</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="structolc_1_1_layer_desc.html#a5239ecc59495acca81a03e8783d9b873">bUpdate</a></td><td class="entry"><a class="el" href="structolc_1_1_layer_desc.html">olc::LayerDesc</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="structolc_1_1_layer_desc.html#a3ed4e651cce6277ab5b75ab1a9b05765">funcHook</a></td><td class="entry"><a class="el" href="structolc_1_1_layer_desc.html">olc::LayerDesc</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="structolc_1_1_layer_desc.html#a9433153aabd3d3530043f71a2ad63b1a">nResID</a></td><td class="entry"><a class="el" href="structolc_1_1_layer_desc.html">olc::LayerDesc</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="structolc_1_1_layer_desc.html#a24f921523245fce959bb1cd0f55faeff">pDrawTarget</a></td><td class="entry"><a class="el" href="structolc_1_1_layer_desc.html">olc::LayerDesc</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="structolc_1_1_layer_desc.html#af6027ed5757afe2c8c0cd50620d7311f">tint</a></td><td class="entry"><a class="el" href="structolc_1_1_layer_desc.html">olc::LayerDesc</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="structolc_1_1_layer_desc.html#ac6cd952e0ebbd7cde19060b4e3896875">vecDecalInstance</a></td><td class="entry"><a class="el" href="structolc_1_1_layer_desc.html">olc::LayerDesc</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="structolc_1_1_layer_desc.html#a1657be3b96c8fbb85fe113ae695fece9">vOffset</a></td><td class="entry"><a class="el" href="structolc_1_1_layer_desc.html">olc::LayerDesc</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="structolc_1_1_layer_desc.html#ab9701d17eb84ab32e93211277cacc763">vScale</a></td><td class="entry"><a class="el" href="structolc_1_1_layer_desc.html">olc::LayerDesc</a></td><td class="entry"></td></tr>
+</table></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/structolc_1_1_layer_desc.html b/doxy/html/structolc_1_1_layer_desc.html
new file mode 100644
index 0000000000000000000000000000000000000000..95738e8ad53f7f4afa52aaeb570ceda7b966bb12
--- /dev/null
+++ b/doxy/html/structolc_1_1_layer_desc.html
@@ -0,0 +1,257 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: olc::LayerDesc Struct Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="namespaceolc.html">olc</a></li><li class="navelem"><a class="el" href="structolc_1_1_layer_desc.html">LayerDesc</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#pub-attribs">Public Attributes</a> &#124;
+<a href="structolc_1_1_layer_desc-members.html">List of all members</a>  </div>
+  <div class="headertitle">
+<div class="title">olc::LayerDesc Struct Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p><code>#include &lt;<a class="el" href="olc_pixel_game_engine_8h_source.html">olcPixelGameEngine.h</a>&gt;</code></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+Public Attributes</h2></td></tr>
+<tr class="memitem:a1657be3b96c8fbb85fe113ae695fece9"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structolc_1_1_layer_desc.html#a1657be3b96c8fbb85fe113ae695fece9">vOffset</a> = { 0, 0 }</td></tr>
+<tr class="separator:a1657be3b96c8fbb85fe113ae695fece9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab9701d17eb84ab32e93211277cacc763"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structolc_1_1_layer_desc.html#ab9701d17eb84ab32e93211277cacc763">vScale</a> = { 1, 1 }</td></tr>
+<tr class="separator:ab9701d17eb84ab32e93211277cacc763"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aeb19896b6a82e301769bfd9d5aa053b6"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structolc_1_1_layer_desc.html#aeb19896b6a82e301769bfd9d5aa053b6">bShow</a> = false</td></tr>
+<tr class="separator:aeb19896b6a82e301769bfd9d5aa053b6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5239ecc59495acca81a03e8783d9b873"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structolc_1_1_layer_desc.html#a5239ecc59495acca81a03e8783d9b873">bUpdate</a> = false</td></tr>
+<tr class="separator:a5239ecc59495acca81a03e8783d9b873"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a24f921523245fce959bb1cd0f55faeff"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classolc_1_1_sprite.html">olc::Sprite</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structolc_1_1_layer_desc.html#a24f921523245fce959bb1cd0f55faeff">pDrawTarget</a> = nullptr</td></tr>
+<tr class="separator:a24f921523245fce959bb1cd0f55faeff"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9433153aabd3d3530043f71a2ad63b1a"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structolc_1_1_layer_desc.html#a9433153aabd3d3530043f71a2ad63b1a">nResID</a> = 0</td></tr>
+<tr class="separator:a9433153aabd3d3530043f71a2ad63b1a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac6cd952e0ebbd7cde19060b4e3896875"><td class="memItemLeft" align="right" valign="top">std::vector&lt; <a class="el" href="structolc_1_1_decal_instance.html">DecalInstance</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structolc_1_1_layer_desc.html#ac6cd952e0ebbd7cde19060b4e3896875">vecDecalInstance</a></td></tr>
+<tr class="separator:ac6cd952e0ebbd7cde19060b4e3896875"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af6027ed5757afe2c8c0cd50620d7311f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structolc_1_1_layer_desc.html#af6027ed5757afe2c8c0cd50620d7311f">tint</a> = <a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a></td></tr>
+<tr class="separator:af6027ed5757afe2c8c0cd50620d7311f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3ed4e651cce6277ab5b75ab1a9b05765"><td class="memItemLeft" align="right" valign="top">std::function&lt; void()&gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structolc_1_1_layer_desc.html#a3ed4e651cce6277ab5b75ab1a9b05765">funcHook</a> = nullptr</td></tr>
+<tr class="separator:a3ed4e651cce6277ab5b75ab1a9b05765"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock">
+<p class="definition">Definition at line <a class="el" href="olc_pixel_game_engine_8h_source.html#l00794">794</a> of file <a class="el" href="olc_pixel_game_engine_8h_source.html">olcPixelGameEngine.h</a>.</p>
+</div><h2 class="groupheader">Member Data Documentation</h2>
+<a id="aeb19896b6a82e301769bfd9d5aa053b6"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aeb19896b6a82e301769bfd9d5aa053b6">&#9670;&nbsp;</a></span>bShow</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">bool olc::LayerDesc::bShow = false</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="olc_pixel_game_engine_8h_source.html#l00798">798</a> of file <a class="el" href="olc_pixel_game_engine_8h_source.html">olcPixelGameEngine.h</a>.</p>
+
+</div>
+</div>
+<a id="a5239ecc59495acca81a03e8783d9b873"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a5239ecc59495acca81a03e8783d9b873">&#9670;&nbsp;</a></span>bUpdate</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">bool olc::LayerDesc::bUpdate = false</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="olc_pixel_game_engine_8h_source.html#l00799">799</a> of file <a class="el" href="olc_pixel_game_engine_8h_source.html">olcPixelGameEngine.h</a>.</p>
+
+</div>
+</div>
+<a id="a3ed4e651cce6277ab5b75ab1a9b05765"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a3ed4e651cce6277ab5b75ab1a9b05765">&#9670;&nbsp;</a></span>funcHook</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">std::function&lt;void()&gt; olc::LayerDesc::funcHook = nullptr</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="olc_pixel_game_engine_8h_source.html#l00804">804</a> of file <a class="el" href="olc_pixel_game_engine_8h_source.html">olcPixelGameEngine.h</a>.</p>
+
+</div>
+</div>
+<a id="a9433153aabd3d3530043f71a2ad63b1a"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a9433153aabd3d3530043f71a2ad63b1a">&#9670;&nbsp;</a></span>nResID</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">uint32_t olc::LayerDesc::nResID = 0</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="olc_pixel_game_engine_8h_source.html#l00801">801</a> of file <a class="el" href="olc_pixel_game_engine_8h_source.html">olcPixelGameEngine.h</a>.</p>
+
+</div>
+</div>
+<a id="a24f921523245fce959bb1cd0f55faeff"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a24f921523245fce959bb1cd0f55faeff">&#9670;&nbsp;</a></span>pDrawTarget</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classolc_1_1_sprite.html">olc::Sprite</a>* olc::LayerDesc::pDrawTarget = nullptr</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="olc_pixel_game_engine_8h_source.html#l00800">800</a> of file <a class="el" href="olc_pixel_game_engine_8h_source.html">olcPixelGameEngine.h</a>.</p>
+
+</div>
+</div>
+<a id="af6027ed5757afe2c8c0cd50620d7311f"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#af6027ed5757afe2c8c0cd50620d7311f">&#9670;&nbsp;</a></span>tint</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a> olc::LayerDesc::tint = <a class="el" href="namespaceolc.html#ae3de4726bf87f2d74693e62d76816db1">olc::WHITE</a></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="olc_pixel_game_engine_8h_source.html#l00803">803</a> of file <a class="el" href="olc_pixel_game_engine_8h_source.html">olcPixelGameEngine.h</a>.</p>
+
+</div>
+</div>
+<a id="ac6cd952e0ebbd7cde19060b4e3896875"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ac6cd952e0ebbd7cde19060b4e3896875">&#9670;&nbsp;</a></span>vecDecalInstance</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">std::vector&lt;<a class="el" href="structolc_1_1_decal_instance.html">DecalInstance</a>&gt; olc::LayerDesc::vecDecalInstance</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="olc_pixel_game_engine_8h_source.html#l00802">802</a> of file <a class="el" href="olc_pixel_game_engine_8h_source.html">olcPixelGameEngine.h</a>.</p>
+
+</div>
+</div>
+<a id="a1657be3b96c8fbb85fe113ae695fece9"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a1657be3b96c8fbb85fe113ae695fece9">&#9670;&nbsp;</a></span>vOffset</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> olc::LayerDesc::vOffset = { 0, 0 }</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="olc_pixel_game_engine_8h_source.html#l00796">796</a> of file <a class="el" href="olc_pixel_game_engine_8h_source.html">olcPixelGameEngine.h</a>.</p>
+
+</div>
+</div>
+<a id="ab9701d17eb84ab32e93211277cacc763"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ab9701d17eb84ab32e93211277cacc763">&#9670;&nbsp;</a></span>vScale</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="namespaceolc.html#adb87819740ea9625f84c821fffb16429">olc::vf2d</a> olc::LayerDesc::vScale = { 1, 1 }</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="olc_pixel_game_engine_8h_source.html#l00797">797</a> of file <a class="el" href="olc_pixel_game_engine_8h_source.html">olcPixelGameEngine.h</a>.</p>
+
+</div>
+</div>
+<hr/>The documentation for this struct was generated from the following file:<ul>
+<li>C:/Users/kosmx/Documents/GitHub/2d-game/<a class="el" href="olc_pixel_game_engine_8h_source.html">olcPixelGameEngine.h</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/structolc_1_1_pixel-members.html b/doxy/html/structolc_1_1_pixel-members.html
new file mode 100644
index 0000000000000000000000000000000000000000..d07e81096484023d262e5afb619bc8d5a8d1b8d1
--- /dev/null
+++ b/doxy/html/structolc_1_1_pixel-members.html
@@ -0,0 +1,107 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="namespaceolc.html">olc</a></li><li class="navelem"><a class="el" href="structolc_1_1_pixel.html">Pixel</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">olc::Pixel Member List</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a>, including all inherited members.</p>
+<table class="directory">
+  <tr class="even"><td class="entry"><a class="el" href="structolc_1_1_pixel.html#a652a25d4bcab1f7bf627c3224842f0b1">a</a></td><td class="entry"><a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="structolc_1_1_pixel.html#ae9012164940526ddb09b217dbbddfd65a561bc0234492261a62a3191252692753">ALPHA</a> enum value</td><td class="entry"><a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="structolc_1_1_pixel.html#a8738f2cd490bd9c5288f37c8d19816be">b</a></td><td class="entry"><a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="structolc_1_1_pixel.html#ae9012164940526ddb09b217dbbddfd65aed57164e9f056c1af912b3069eb45deb">CUSTOM</a> enum value</td><td class="entry"><a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="structolc_1_1_pixel.html#a14cf5612284974c409f078944fe5f6ee">g</a></td><td class="entry"><a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="structolc_1_1_pixel.html#a8a1daba449fb823a4535a6089fe880ab">inv</a>() const</td><td class="entry"><a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="structolc_1_1_pixel.html#ae9012164940526ddb09b217dbbddfd65a4062d4baa9669fb2e91f31a15061a9d6">MASK</a> enum value</td><td class="entry"><a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="structolc_1_1_pixel.html#ae9012164940526ddb09b217dbbddfd65">Mode</a> enum name</td><td class="entry"><a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="structolc_1_1_pixel.html#aa9cb31c80e2822ccc726526be5801ae2">n</a></td><td class="entry"><a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="structolc_1_1_pixel.html#ae9012164940526ddb09b217dbbddfd65a8abacc164c972b4684c2a76efd381018">NORMAL</a> enum value</td><td class="entry"><a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="structolc_1_1_pixel.html#aeeaecb16a243ce3be52cd9261fdf2b23">operator!=</a>(const Pixel &amp;p) const</td><td class="entry"><a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="structolc_1_1_pixel.html#a15a61beedc23ca678a954567274e24de">operator*</a>(const float i) const</td><td class="entry"><a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="structolc_1_1_pixel.html#abace0545af22380831ffbc8bd1a66419">operator*=</a>(const float i)</td><td class="entry"><a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="structolc_1_1_pixel.html#acb54675f2c61b989de500f8e6e56a9f6">operator+</a>(const Pixel &amp;p) const</td><td class="entry"><a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="structolc_1_1_pixel.html#a39dc75f9f15c040c2d2715c66b13f4e0">operator+=</a>(const Pixel &amp;p)</td><td class="entry"><a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="structolc_1_1_pixel.html#a1ac8b9d37f4c368b62b21b52df1f5937">operator-</a>(const Pixel &amp;p) const</td><td class="entry"><a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="structolc_1_1_pixel.html#a058f58406ca54ab73075f5e42125a65a">operator-=</a>(const Pixel &amp;p)</td><td class="entry"><a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="structolc_1_1_pixel.html#a7fdcfa79f91368e834cc2ec66d9de769">operator/</a>(const float i) const</td><td class="entry"><a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="structolc_1_1_pixel.html#afd73fb0548d7232923f0ce707171e0da">operator/=</a>(const float i)</td><td class="entry"><a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="structolc_1_1_pixel.html#a9e52ebcc91b8460859a606b7bf763b82">operator=</a>(const Pixel &amp;v)=default</td><td class="entry"><a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="structolc_1_1_pixel.html#a6b82561c110de5447ca4d59c3162d06c">operator==</a>(const Pixel &amp;p) const</td><td class="entry"><a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="structolc_1_1_pixel.html#a75ef9e180289d861dfa6687faa248345">Pixel</a>()</td><td class="entry"><a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="structolc_1_1_pixel.html#a542d8daf20eb48a0539d671ffed9168f">Pixel</a>(uint8_t red, uint8_t green, uint8_t blue, uint8_t alpha=nDefaultAlpha)</td><td class="entry"><a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="structolc_1_1_pixel.html#ad6ddaba5806de8b26fea03fa6f7b0edf">Pixel</a>(uint32_t p)</td><td class="entry"><a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="structolc_1_1_pixel.html#a93ee3efde3d2b363e4e4813a490f60b4">r</a></td><td class="entry"><a class="el" href="structolc_1_1_pixel.html">olc::Pixel</a></td><td class="entry"></td></tr>
+</table></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/structolc_1_1_pixel.html b/doxy/html/structolc_1_1_pixel.html
new file mode 100644
index 0000000000000000000000000000000000000000..24af9db57828b1c77801ce8f1f30f1542bbacdd0
--- /dev/null
+++ b/doxy/html/structolc_1_1_pixel.html
@@ -0,0 +1,572 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: olc::Pixel Struct Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="namespaceolc.html">olc</a></li><li class="navelem"><a class="el" href="structolc_1_1_pixel.html">Pixel</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#pub-types">Public Types</a> &#124;
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="#pub-attribs">Public Attributes</a> &#124;
+<a href="structolc_1_1_pixel-members.html">List of all members</a>  </div>
+  <div class="headertitle">
+<div class="title">olc::Pixel Struct Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p><code>#include &lt;<a class="el" href="olc_pixel_game_engine_8h_source.html">olcPixelGameEngine.h</a>&gt;</code></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
+Public Types</h2></td></tr>
+<tr class="memitem:ae9012164940526ddb09b217dbbddfd65"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structolc_1_1_pixel.html#ae9012164940526ddb09b217dbbddfd65">Mode</a> { <a class="el" href="structolc_1_1_pixel.html#ae9012164940526ddb09b217dbbddfd65a8abacc164c972b4684c2a76efd381018">NORMAL</a>, 
+<a class="el" href="structolc_1_1_pixel.html#ae9012164940526ddb09b217dbbddfd65a4062d4baa9669fb2e91f31a15061a9d6">MASK</a>, 
+<a class="el" href="structolc_1_1_pixel.html#ae9012164940526ddb09b217dbbddfd65a561bc0234492261a62a3191252692753">ALPHA</a>, 
+<a class="el" href="structolc_1_1_pixel.html#ae9012164940526ddb09b217dbbddfd65aed57164e9f056c1af912b3069eb45deb">CUSTOM</a>
+ }</td></tr>
+<tr class="separator:ae9012164940526ddb09b217dbbddfd65"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr class="memitem:a75ef9e180289d861dfa6687faa248345"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structolc_1_1_pixel.html#a75ef9e180289d861dfa6687faa248345">Pixel</a> ()</td></tr>
+<tr class="separator:a75ef9e180289d861dfa6687faa248345"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a542d8daf20eb48a0539d671ffed9168f"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structolc_1_1_pixel.html#a542d8daf20eb48a0539d671ffed9168f">Pixel</a> (uint8_t red, uint8_t green, uint8_t blue, uint8_t alpha=<a class="el" href="namespaceolc.html#adede7d1156ab9d8ffdc3e9048f0f364b">nDefaultAlpha</a>)</td></tr>
+<tr class="separator:a542d8daf20eb48a0539d671ffed9168f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad6ddaba5806de8b26fea03fa6f7b0edf"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structolc_1_1_pixel.html#ad6ddaba5806de8b26fea03fa6f7b0edf">Pixel</a> (uint32_t p)</td></tr>
+<tr class="separator:ad6ddaba5806de8b26fea03fa6f7b0edf"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9e52ebcc91b8460859a606b7bf763b82"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structolc_1_1_pixel.html">Pixel</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structolc_1_1_pixel.html#a9e52ebcc91b8460859a606b7bf763b82">operator=</a> (const <a class="el" href="structolc_1_1_pixel.html">Pixel</a> &amp;v)=default</td></tr>
+<tr class="separator:a9e52ebcc91b8460859a606b7bf763b82"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6b82561c110de5447ca4d59c3162d06c"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structolc_1_1_pixel.html#a6b82561c110de5447ca4d59c3162d06c">operator==</a> (const <a class="el" href="structolc_1_1_pixel.html">Pixel</a> &amp;p) const</td></tr>
+<tr class="separator:a6b82561c110de5447ca4d59c3162d06c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aeeaecb16a243ce3be52cd9261fdf2b23"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structolc_1_1_pixel.html#aeeaecb16a243ce3be52cd9261fdf2b23">operator!=</a> (const <a class="el" href="structolc_1_1_pixel.html">Pixel</a> &amp;p) const</td></tr>
+<tr class="separator:aeeaecb16a243ce3be52cd9261fdf2b23"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a15a61beedc23ca678a954567274e24de"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structolc_1_1_pixel.html">Pixel</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structolc_1_1_pixel.html#a15a61beedc23ca678a954567274e24de">operator*</a> (const float i) const</td></tr>
+<tr class="separator:a15a61beedc23ca678a954567274e24de"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7fdcfa79f91368e834cc2ec66d9de769"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structolc_1_1_pixel.html">Pixel</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structolc_1_1_pixel.html#a7fdcfa79f91368e834cc2ec66d9de769">operator/</a> (const float i) const</td></tr>
+<tr class="separator:a7fdcfa79f91368e834cc2ec66d9de769"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abace0545af22380831ffbc8bd1a66419"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structolc_1_1_pixel.html">Pixel</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structolc_1_1_pixel.html#abace0545af22380831ffbc8bd1a66419">operator*=</a> (const float i)</td></tr>
+<tr class="separator:abace0545af22380831ffbc8bd1a66419"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afd73fb0548d7232923f0ce707171e0da"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structolc_1_1_pixel.html">Pixel</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structolc_1_1_pixel.html#afd73fb0548d7232923f0ce707171e0da">operator/=</a> (const float i)</td></tr>
+<tr class="separator:afd73fb0548d7232923f0ce707171e0da"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:acb54675f2c61b989de500f8e6e56a9f6"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structolc_1_1_pixel.html">Pixel</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structolc_1_1_pixel.html#acb54675f2c61b989de500f8e6e56a9f6">operator+</a> (const <a class="el" href="structolc_1_1_pixel.html">Pixel</a> &amp;p) const</td></tr>
+<tr class="separator:acb54675f2c61b989de500f8e6e56a9f6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1ac8b9d37f4c368b62b21b52df1f5937"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structolc_1_1_pixel.html">Pixel</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structolc_1_1_pixel.html#a1ac8b9d37f4c368b62b21b52df1f5937">operator-</a> (const <a class="el" href="structolc_1_1_pixel.html">Pixel</a> &amp;p) const</td></tr>
+<tr class="separator:a1ac8b9d37f4c368b62b21b52df1f5937"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a39dc75f9f15c040c2d2715c66b13f4e0"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structolc_1_1_pixel.html">Pixel</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structolc_1_1_pixel.html#a39dc75f9f15c040c2d2715c66b13f4e0">operator+=</a> (const <a class="el" href="structolc_1_1_pixel.html">Pixel</a> &amp;p)</td></tr>
+<tr class="separator:a39dc75f9f15c040c2d2715c66b13f4e0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a058f58406ca54ab73075f5e42125a65a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structolc_1_1_pixel.html">Pixel</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structolc_1_1_pixel.html#a058f58406ca54ab73075f5e42125a65a">operator-=</a> (const <a class="el" href="structolc_1_1_pixel.html">Pixel</a> &amp;p)</td></tr>
+<tr class="separator:a058f58406ca54ab73075f5e42125a65a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8a1daba449fb823a4535a6089fe880ab"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structolc_1_1_pixel.html">Pixel</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structolc_1_1_pixel.html#a8a1daba449fb823a4535a6089fe880ab">inv</a> () const</td></tr>
+<tr class="separator:a8a1daba449fb823a4535a6089fe880ab"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+Public Attributes</h2></td></tr>
+<tr class="memitem:a408e0e762857ed2e3a21f103c132f274"><td class="memItemLeft" >union {</td></tr>
+<tr class="memitem:a44feb1d6d697749fa0f1d19e7d5e14d0"><td class="memItemLeft" >&#160;&#160;&#160;uint32_t&#160;&#160;&#160;<a class="el" href="structolc_1_1_pixel.html#aa9cb31c80e2822ccc726526be5801ae2">n</a> = <a class="el" href="namespaceolc.html#a10bbdc57cc3fecc7b80ba428eb7494d0">nDefaultPixel</a></td></tr>
+<tr class="separator:a44feb1d6d697749fa0f1d19e7d5e14d0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a28dc7517f330635d41ac19eb491c66e8"><td class="memItemLeft" >&#160;&#160;&#160;struct {</td></tr>
+<tr class="memitem:a4bf61eab90a81ed53ec19c1edb203776"><td class="memItemLeft" >&#160;&#160;&#160;&#160;&#160;&#160;uint8_t&#160;&#160;&#160;<a class="el" href="structolc_1_1_pixel.html#a93ee3efde3d2b363e4e4813a490f60b4">r</a></td></tr>
+<tr class="separator:a4bf61eab90a81ed53ec19c1edb203776"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad1f6241d3477dbf09383d6c318a2c4fe"><td class="memItemLeft" >&#160;&#160;&#160;&#160;&#160;&#160;uint8_t&#160;&#160;&#160;<a class="el" href="structolc_1_1_pixel.html#a14cf5612284974c409f078944fe5f6ee">g</a></td></tr>
+<tr class="separator:ad1f6241d3477dbf09383d6c318a2c4fe"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9f4993707e1802cb07c3377a00e1449a"><td class="memItemLeft" >&#160;&#160;&#160;&#160;&#160;&#160;uint8_t&#160;&#160;&#160;<a class="el" href="structolc_1_1_pixel.html#a8738f2cd490bd9c5288f37c8d19816be">b</a></td></tr>
+<tr class="separator:a9f4993707e1802cb07c3377a00e1449a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab5268fc211efe65db95efc9d760ca217"><td class="memItemLeft" >&#160;&#160;&#160;&#160;&#160;&#160;uint8_t&#160;&#160;&#160;<a class="el" href="structolc_1_1_pixel.html#a652a25d4bcab1f7bf627c3224842f0b1">a</a></td></tr>
+<tr class="separator:ab5268fc211efe65db95efc9d760ca217"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a28dc7517f330635d41ac19eb491c66e8"><td class="memItemLeft" valign="top">&#160;&#160;&#160;}&#160;</td><td class="memItemRight" valign="bottom"></td></tr>
+<tr class="separator:a28dc7517f330635d41ac19eb491c66e8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a408e0e762857ed2e3a21f103c132f274"><td class="memItemLeft" valign="top">};&#160;</td><td class="memItemRight" valign="bottom"></td></tr>
+<tr class="separator:a408e0e762857ed2e3a21f103c132f274"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock">
+<p class="definition">Definition at line <a class="el" href="olc_pixel_game_engine_8h_source.html#l00502">502</a> of file <a class="el" href="olc_pixel_game_engine_8h_source.html">olcPixelGameEngine.h</a>.</p>
+</div><h2 class="groupheader">Member Enumeration Documentation</h2>
+<a id="ae9012164940526ddb09b217dbbddfd65"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ae9012164940526ddb09b217dbbddfd65">&#9670;&nbsp;</a></span>Mode</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">enum <a class="el" href="structolc_1_1_pixel.html#ae9012164940526ddb09b217dbbddfd65">olc::Pixel::Mode</a></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<table class="fieldtable">
+<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="ae9012164940526ddb09b217dbbddfd65a8abacc164c972b4684c2a76efd381018"></a>NORMAL&#160;</td><td class="fielddoc"></td></tr>
+<tr><td class="fieldname"><a id="ae9012164940526ddb09b217dbbddfd65a4062d4baa9669fb2e91f31a15061a9d6"></a>MASK&#160;</td><td class="fielddoc"></td></tr>
+<tr><td class="fieldname"><a id="ae9012164940526ddb09b217dbbddfd65a561bc0234492261a62a3191252692753"></a>ALPHA&#160;</td><td class="fielddoc"></td></tr>
+<tr><td class="fieldname"><a id="ae9012164940526ddb09b217dbbddfd65aed57164e9f056c1af912b3069eb45deb"></a>CUSTOM&#160;</td><td class="fielddoc"></td></tr>
+</table>
+
+<p class="definition">Definition at line <a class="el" href="olc_pixel_game_engine_8h_source.html#l00510">510</a> of file <a class="el" href="olc_pixel_game_engine_8h_source.html">olcPixelGameEngine.h</a>.</p>
+
+</div>
+</div>
+<h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
+<a id="a75ef9e180289d861dfa6687faa248345"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a75ef9e180289d861dfa6687faa248345">&#9670;&nbsp;</a></span>Pixel() <span class="overload">[1/3]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">olc::Pixel::Pixel </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a542d8daf20eb48a0539d671ffed9168f"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a542d8daf20eb48a0539d671ffed9168f">&#9670;&nbsp;</a></span>Pixel() <span class="overload">[2/3]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">olc::Pixel::Pixel </td>
+          <td>(</td>
+          <td class="paramtype">uint8_t&#160;</td>
+          <td class="paramname"><em>red</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">uint8_t&#160;</td>
+          <td class="paramname"><em>green</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">uint8_t&#160;</td>
+          <td class="paramname"><em>blue</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">uint8_t&#160;</td>
+          <td class="paramname"><em>alpha</em> = <code><a class="el" href="namespaceolc.html#adede7d1156ab9d8ffdc3e9048f0f364b">nDefaultAlpha</a></code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="ad6ddaba5806de8b26fea03fa6f7b0edf"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ad6ddaba5806de8b26fea03fa6f7b0edf">&#9670;&nbsp;</a></span>Pixel() <span class="overload">[3/3]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">olc::Pixel::Pixel </td>
+          <td>(</td>
+          <td class="paramtype">uint32_t&#160;</td>
+          <td class="paramname"><em>p</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<h2 class="groupheader">Member Function Documentation</h2>
+<a id="a8a1daba449fb823a4535a6089fe880ab"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a8a1daba449fb823a4535a6089fe880ab">&#9670;&nbsp;</a></span>inv()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structolc_1_1_pixel.html">Pixel</a> olc::Pixel::inv </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td> const</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="aeeaecb16a243ce3be52cd9261fdf2b23"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aeeaecb16a243ce3be52cd9261fdf2b23">&#9670;&nbsp;</a></span>operator!=()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">bool olc::Pixel::operator!= </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="structolc_1_1_pixel.html">Pixel</a> &amp;&#160;</td>
+          <td class="paramname"><em>p</em></td><td>)</td>
+          <td> const</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a15a61beedc23ca678a954567274e24de"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a15a61beedc23ca678a954567274e24de">&#9670;&nbsp;</a></span>operator*()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structolc_1_1_pixel.html">Pixel</a> olc::Pixel::operator* </td>
+          <td>(</td>
+          <td class="paramtype">const float&#160;</td>
+          <td class="paramname"><em>i</em></td><td>)</td>
+          <td> const</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="abace0545af22380831ffbc8bd1a66419"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#abace0545af22380831ffbc8bd1a66419">&#9670;&nbsp;</a></span>operator*=()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structolc_1_1_pixel.html">Pixel</a>&amp; olc::Pixel::operator*= </td>
+          <td>(</td>
+          <td class="paramtype">const float&#160;</td>
+          <td class="paramname"><em>i</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="acb54675f2c61b989de500f8e6e56a9f6"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#acb54675f2c61b989de500f8e6e56a9f6">&#9670;&nbsp;</a></span>operator+()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structolc_1_1_pixel.html">Pixel</a> olc::Pixel::operator+ </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="structolc_1_1_pixel.html">Pixel</a> &amp;&#160;</td>
+          <td class="paramname"><em>p</em></td><td>)</td>
+          <td> const</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a39dc75f9f15c040c2d2715c66b13f4e0"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a39dc75f9f15c040c2d2715c66b13f4e0">&#9670;&nbsp;</a></span>operator+=()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structolc_1_1_pixel.html">Pixel</a>&amp; olc::Pixel::operator+= </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="structolc_1_1_pixel.html">Pixel</a> &amp;&#160;</td>
+          <td class="paramname"><em>p</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a1ac8b9d37f4c368b62b21b52df1f5937"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a1ac8b9d37f4c368b62b21b52df1f5937">&#9670;&nbsp;</a></span>operator-()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structolc_1_1_pixel.html">Pixel</a> olc::Pixel::operator- </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="structolc_1_1_pixel.html">Pixel</a> &amp;&#160;</td>
+          <td class="paramname"><em>p</em></td><td>)</td>
+          <td> const</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a058f58406ca54ab73075f5e42125a65a"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a058f58406ca54ab73075f5e42125a65a">&#9670;&nbsp;</a></span>operator-=()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structolc_1_1_pixel.html">Pixel</a>&amp; olc::Pixel::operator-= </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="structolc_1_1_pixel.html">Pixel</a> &amp;&#160;</td>
+          <td class="paramname"><em>p</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a7fdcfa79f91368e834cc2ec66d9de769"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a7fdcfa79f91368e834cc2ec66d9de769">&#9670;&nbsp;</a></span>operator/()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structolc_1_1_pixel.html">Pixel</a> olc::Pixel::operator/ </td>
+          <td>(</td>
+          <td class="paramtype">const float&#160;</td>
+          <td class="paramname"><em>i</em></td><td>)</td>
+          <td> const</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="afd73fb0548d7232923f0ce707171e0da"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#afd73fb0548d7232923f0ce707171e0da">&#9670;&nbsp;</a></span>operator/=()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structolc_1_1_pixel.html">Pixel</a>&amp; olc::Pixel::operator/= </td>
+          <td>(</td>
+          <td class="paramtype">const float&#160;</td>
+          <td class="paramname"><em>i</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a9e52ebcc91b8460859a606b7bf763b82"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a9e52ebcc91b8460859a606b7bf763b82">&#9670;&nbsp;</a></span>operator=()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structolc_1_1_pixel.html">Pixel</a>&amp; olc::Pixel::operator= </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="structolc_1_1_pixel.html">Pixel</a> &amp;&#160;</td>
+          <td class="paramname"><em>v</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">default</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a6b82561c110de5447ca4d59c3162d06c"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a6b82561c110de5447ca4d59c3162d06c">&#9670;&nbsp;</a></span>operator==()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">bool olc::Pixel::operator== </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="structolc_1_1_pixel.html">Pixel</a> &amp;&#160;</td>
+          <td class="paramname"><em>p</em></td><td>)</td>
+          <td> const</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<h2 class="groupheader">Member Data Documentation</h2>
+<a id="a408e0e762857ed2e3a21f103c132f274"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a408e0e762857ed2e3a21f103c132f274">&#9670;&nbsp;</a></span>@1</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">union { ... } </td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a652a25d4bcab1f7bf627c3224842f0b1"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a652a25d4bcab1f7bf627c3224842f0b1">&#9670;&nbsp;</a></span>a</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">uint8_t olc::Pixel::a</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="olc_pixel_game_engine_8h_source.html#l00507">507</a> of file <a class="el" href="olc_pixel_game_engine_8h_source.html">olcPixelGameEngine.h</a>.</p>
+
+</div>
+</div>
+<a id="a8738f2cd490bd9c5288f37c8d19816be"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a8738f2cd490bd9c5288f37c8d19816be">&#9670;&nbsp;</a></span>b</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">uint8_t olc::Pixel::b</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="olc_pixel_game_engine_8h_source.html#l00507">507</a> of file <a class="el" href="olc_pixel_game_engine_8h_source.html">olcPixelGameEngine.h</a>.</p>
+
+</div>
+</div>
+<a id="a14cf5612284974c409f078944fe5f6ee"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a14cf5612284974c409f078944fe5f6ee">&#9670;&nbsp;</a></span>g</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">uint8_t olc::Pixel::g</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="olc_pixel_game_engine_8h_source.html#l00507">507</a> of file <a class="el" href="olc_pixel_game_engine_8h_source.html">olcPixelGameEngine.h</a>.</p>
+
+</div>
+</div>
+<a id="aa9cb31c80e2822ccc726526be5801ae2"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aa9cb31c80e2822ccc726526be5801ae2">&#9670;&nbsp;</a></span>n</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">uint32_t olc::Pixel::n = <a class="el" href="namespaceolc.html#a10bbdc57cc3fecc7b80ba428eb7494d0">nDefaultPixel</a></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="olc_pixel_game_engine_8h_source.html#l00506">506</a> of file <a class="el" href="olc_pixel_game_engine_8h_source.html">olcPixelGameEngine.h</a>.</p>
+
+</div>
+</div>
+<a id="a93ee3efde3d2b363e4e4813a490f60b4"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a93ee3efde3d2b363e4e4813a490f60b4">&#9670;&nbsp;</a></span>r</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">uint8_t olc::Pixel::r</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="olc_pixel_game_engine_8h_source.html#l00507">507</a> of file <a class="el" href="olc_pixel_game_engine_8h_source.html">olcPixelGameEngine.h</a>.</p>
+
+</div>
+</div>
+<hr/>The documentation for this struct was generated from the following file:<ul>
+<li>C:/Users/kosmx/Documents/GitHub/2d-game/<a class="el" href="olc_pixel_game_engine_8h_source.html">olcPixelGameEngine.h</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/structolc_1_1_resource_buffer-members.html b/doxy/html/structolc_1_1_resource_buffer-members.html
new file mode 100644
index 0000000000000000000000000000000000000000..bb0199a52b905cc5185262fbd1e8ed5c2ce4e749
--- /dev/null
+++ b/doxy/html/structolc_1_1_resource_buffer-members.html
@@ -0,0 +1,84 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="namespaceolc.html">olc</a></li><li class="navelem"><a class="el" href="structolc_1_1_resource_buffer.html">ResourceBuffer</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">olc::ResourceBuffer Member List</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="structolc_1_1_resource_buffer.html">olc::ResourceBuffer</a>, including all inherited members.</p>
+<table class="directory">
+  <tr class="even"><td class="entry"><a class="el" href="structolc_1_1_resource_buffer.html#abd18994c20cc7992ff7ccb07af9914e7">ResourceBuffer</a>(std::ifstream &amp;ifs, uint32_t offset, uint32_t size)</td><td class="entry"><a class="el" href="structolc_1_1_resource_buffer.html">olc::ResourceBuffer</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="structolc_1_1_resource_buffer.html#a413e818311737396d14838a00df05303">vMemory</a></td><td class="entry"><a class="el" href="structolc_1_1_resource_buffer.html">olc::ResourceBuffer</a></td><td class="entry"></td></tr>
+</table></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/structolc_1_1_resource_buffer.html b/doxy/html/structolc_1_1_resource_buffer.html
new file mode 100644
index 0000000000000000000000000000000000000000..3634c25f2681d83f81234370daa01c8b7d544200
--- /dev/null
+++ b/doxy/html/structolc_1_1_resource_buffer.html
@@ -0,0 +1,160 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: olc::ResourceBuffer Struct Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="namespaceolc.html">olc</a></li><li class="navelem"><a class="el" href="structolc_1_1_resource_buffer.html">ResourceBuffer</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="#pub-attribs">Public Attributes</a> &#124;
+<a href="structolc_1_1_resource_buffer-members.html">List of all members</a>  </div>
+  <div class="headertitle">
+<div class="title">olc::ResourceBuffer Struct Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p><code>#include &lt;<a class="el" href="olc_pixel_game_engine_8h_source.html">olcPixelGameEngine.h</a>&gt;</code></p>
+<div class="dynheader">
+Inheritance diagram for olc::ResourceBuffer:</div>
+<div class="dyncontent">
+ <div class="center">
+  <img src="structolc_1_1_resource_buffer.png" alt=""/>
+ </div></div>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr class="memitem:abd18994c20cc7992ff7ccb07af9914e7"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structolc_1_1_resource_buffer.html#abd18994c20cc7992ff7ccb07af9914e7">ResourceBuffer</a> (std::ifstream &amp;ifs, uint32_t offset, uint32_t size)</td></tr>
+<tr class="separator:abd18994c20cc7992ff7ccb07af9914e7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+Public Attributes</h2></td></tr>
+<tr class="memitem:a413e818311737396d14838a00df05303"><td class="memItemLeft" align="right" valign="top">std::vector&lt; char &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structolc_1_1_resource_buffer.html#a413e818311737396d14838a00df05303">vMemory</a></td></tr>
+<tr class="separator:a413e818311737396d14838a00df05303"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock">
+<p class="definition">Definition at line <a class="el" href="olc_pixel_game_engine_8h_source.html#l00658">658</a> of file <a class="el" href="olc_pixel_game_engine_8h_source.html">olcPixelGameEngine.h</a>.</p>
+</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
+<a id="abd18994c20cc7992ff7ccb07af9914e7"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#abd18994c20cc7992ff7ccb07af9914e7">&#9670;&nbsp;</a></span>ResourceBuffer()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">olc::ResourceBuffer::ResourceBuffer </td>
+          <td>(</td>
+          <td class="paramtype">std::ifstream &amp;&#160;</td>
+          <td class="paramname"><em>ifs</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">uint32_t&#160;</td>
+          <td class="paramname"><em>offset</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">uint32_t&#160;</td>
+          <td class="paramname"><em>size</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<h2 class="groupheader">Member Data Documentation</h2>
+<a id="a413e818311737396d14838a00df05303"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a413e818311737396d14838a00df05303">&#9670;&nbsp;</a></span>vMemory</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">std::vector&lt;char&gt; olc::ResourceBuffer::vMemory</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="olc_pixel_game_engine_8h_source.html#l00661">661</a> of file <a class="el" href="olc_pixel_game_engine_8h_source.html">olcPixelGameEngine.h</a>.</p>
+
+</div>
+</div>
+<hr/>The documentation for this struct was generated from the following file:<ul>
+<li>C:/Users/kosmx/Documents/GitHub/2d-game/<a class="el" href="olc_pixel_game_engine_8h_source.html">olcPixelGameEngine.h</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/structolc_1_1_resource_buffer.png b/doxy/html/structolc_1_1_resource_buffer.png
new file mode 100644
index 0000000000000000000000000000000000000000..3cfcb4760c2845f3080d473b44779ba3b096d5ba
Binary files /dev/null and b/doxy/html/structolc_1_1_resource_buffer.png differ
diff --git a/doxy/html/structolc_1_1v2d__generic-members.html b/doxy/html/structolc_1_1v2d__generic-members.html
new file mode 100644
index 0000000000000000000000000000000000000000..2b59d511a42a8b179d7173e0e3b6ef0b1bfe5e03
--- /dev/null
+++ b/doxy/html/structolc_1_1v2d__generic-members.html
@@ -0,0 +1,119 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="namespaceolc.html">olc</a></li><li class="navelem"><a class="el" href="structolc_1_1v2d__generic.html">v2d_generic</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">olc::v2d_generic&lt; T &gt; Member List</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="structolc_1_1v2d__generic.html">olc::v2d_generic&lt; T &gt;</a>, including all inherited members.</p>
+<table class="directory">
+  <tr class="even"><td class="entry"><a class="el" href="structolc_1_1v2d__generic.html#a65efb6611304b590a2cb45781b1c34cc">ceil</a>() const</td><td class="entry"><a class="el" href="structolc_1_1v2d__generic.html">olc::v2d_generic&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr><td class="entry"><a class="el" href="structolc_1_1v2d__generic.html#a1febe5d22672d7d0121526577bf3b535">cross</a>(const v2d_generic &amp;rhs) const</td><td class="entry"><a class="el" href="structolc_1_1v2d__generic.html">olc::v2d_generic&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="structolc_1_1v2d__generic.html#ad2e96c716c487677bbde6966464fc482">dot</a>(const v2d_generic &amp;rhs) const</td><td class="entry"><a class="el" href="structolc_1_1v2d__generic.html">olc::v2d_generic&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr><td class="entry"><a class="el" href="structolc_1_1v2d__generic.html#affe50148d448ff75c298da3a1fd45323">floor</a>() const</td><td class="entry"><a class="el" href="structolc_1_1v2d__generic.html">olc::v2d_generic&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="structolc_1_1v2d__generic.html#ab06016810fe727fa826e43e44e02008b">mag</a>() const</td><td class="entry"><a class="el" href="structolc_1_1v2d__generic.html">olc::v2d_generic&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr><td class="entry"><a class="el" href="structolc_1_1v2d__generic.html#a6b83d7375119637fdf65233cf6dae947">mag2</a>() const</td><td class="entry"><a class="el" href="structolc_1_1v2d__generic.html">olc::v2d_generic&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="structolc_1_1v2d__generic.html#a1fe55d8bc22dbb400583cb68cc9e3e36">max</a>(const v2d_generic &amp;v) const</td><td class="entry"><a class="el" href="structolc_1_1v2d__generic.html">olc::v2d_generic&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr><td class="entry"><a class="el" href="structolc_1_1v2d__generic.html#aec7b204ad597ee0edc9a444ff3a242eb">min</a>(const v2d_generic &amp;v) const</td><td class="entry"><a class="el" href="structolc_1_1v2d__generic.html">olc::v2d_generic&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="structolc_1_1v2d__generic.html#a9c62f12d51859a5a487c5a0c2d00b09a">norm</a>() const</td><td class="entry"><a class="el" href="structolc_1_1v2d__generic.html">olc::v2d_generic&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr><td class="entry"><a class="el" href="structolc_1_1v2d__generic.html#a5b722f332f64d260741ef8322cca5cce">operator v2d_generic&lt; double &gt;</a>() const</td><td class="entry"><a class="el" href="structolc_1_1v2d__generic.html">olc::v2d_generic&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="structolc_1_1v2d__generic.html#a7fd9786ec8121d50addc3dd624ca21eb">operator v2d_generic&lt; float &gt;</a>() const</td><td class="entry"><a class="el" href="structolc_1_1v2d__generic.html">olc::v2d_generic&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr><td class="entry"><a class="el" href="structolc_1_1v2d__generic.html#a2bf267ac209cca361df72649a5aac92c">operator v2d_generic&lt; int32_t &gt;</a>() const</td><td class="entry"><a class="el" href="structolc_1_1v2d__generic.html">olc::v2d_generic&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="structolc_1_1v2d__generic.html#abd9af6a38bc73471874665f508ff10b6">operator!=</a>(const v2d_generic &amp;rhs) const</td><td class="entry"><a class="el" href="structolc_1_1v2d__generic.html">olc::v2d_generic&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr><td class="entry"><a class="el" href="structolc_1_1v2d__generic.html#a542487700e63b2e30940d64b75c3d3db">operator*</a>(const T &amp;rhs) const</td><td class="entry"><a class="el" href="structolc_1_1v2d__generic.html">olc::v2d_generic&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="structolc_1_1v2d__generic.html#a78e7362a3b955735c0389c6a5c7b32f0">operator*</a>(const v2d_generic &amp;rhs) const</td><td class="entry"><a class="el" href="structolc_1_1v2d__generic.html">olc::v2d_generic&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr><td class="entry"><a class="el" href="structolc_1_1v2d__generic.html#a35c81946f320da79fa5a33e595873252">operator*=</a>(const T &amp;rhs)</td><td class="entry"><a class="el" href="structolc_1_1v2d__generic.html">olc::v2d_generic&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="structolc_1_1v2d__generic.html#a2a0fb49722257578bfc148a273b4c1c5">operator*=</a>(const v2d_generic &amp;rhs)</td><td class="entry"><a class="el" href="structolc_1_1v2d__generic.html">olc::v2d_generic&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr><td class="entry"><a class="el" href="structolc_1_1v2d__generic.html#a5ae3f55fd12af9bf44a2837ad76ea7dd">operator+</a>(const v2d_generic &amp;rhs) const</td><td class="entry"><a class="el" href="structolc_1_1v2d__generic.html">olc::v2d_generic&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="structolc_1_1v2d__generic.html#a70a7c59a5b9b9fac0de8a823633abb08">operator+</a>() const</td><td class="entry"><a class="el" href="structolc_1_1v2d__generic.html">olc::v2d_generic&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr><td class="entry"><a class="el" href="structolc_1_1v2d__generic.html#ac57326846384068beaaddec0674b65d2">operator+=</a>(const v2d_generic &amp;rhs)</td><td class="entry"><a class="el" href="structolc_1_1v2d__generic.html">olc::v2d_generic&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="structolc_1_1v2d__generic.html#a64e053d62d2826193f6a058ee120c6e2">operator-</a>(const v2d_generic &amp;rhs) const</td><td class="entry"><a class="el" href="structolc_1_1v2d__generic.html">olc::v2d_generic&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr><td class="entry"><a class="el" href="structolc_1_1v2d__generic.html#a9eff196e75aeffcd96bffb64de04219d">operator-</a>() const</td><td class="entry"><a class="el" href="structolc_1_1v2d__generic.html">olc::v2d_generic&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="structolc_1_1v2d__generic.html#af3e8b94c4921f8d81b4112b319bd7f6d">operator-=</a>(const v2d_generic &amp;rhs)</td><td class="entry"><a class="el" href="structolc_1_1v2d__generic.html">olc::v2d_generic&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr><td class="entry"><a class="el" href="structolc_1_1v2d__generic.html#a1f1138ee06adae0eaffe900b0437b896">operator/</a>(const T &amp;rhs) const</td><td class="entry"><a class="el" href="structolc_1_1v2d__generic.html">olc::v2d_generic&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="structolc_1_1v2d__generic.html#adcf0004e01ba1d8c813cdcb6525eb1c6">operator/</a>(const v2d_generic &amp;rhs) const</td><td class="entry"><a class="el" href="structolc_1_1v2d__generic.html">olc::v2d_generic&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr><td class="entry"><a class="el" href="structolc_1_1v2d__generic.html#a88a5aa098b5ada7667a7900a0bc9bba2">operator/=</a>(const T &amp;rhs)</td><td class="entry"><a class="el" href="structolc_1_1v2d__generic.html">olc::v2d_generic&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="structolc_1_1v2d__generic.html#a8e035b45f69db29e4cac698658ad4de1">operator/=</a>(const v2d_generic &amp;rhs)</td><td class="entry"><a class="el" href="structolc_1_1v2d__generic.html">olc::v2d_generic&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr><td class="entry"><a class="el" href="structolc_1_1v2d__generic.html#afeb5dac5960ca80197ad7ce455ed190c">operator&lt;&lt;</a>(std::ostream &amp;os, const v2d_generic &amp;rhs)</td><td class="entry"><a class="el" href="structolc_1_1v2d__generic.html">olc::v2d_generic&lt; T &gt;</a></td><td class="entry"><span class="mlabel">friend</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="structolc_1_1v2d__generic.html#adff36d90ca79f24401a31cbde706bf8c">operator=</a>(const v2d_generic &amp;v)=default</td><td class="entry"><a class="el" href="structolc_1_1v2d__generic.html">olc::v2d_generic&lt; T &gt;</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="structolc_1_1v2d__generic.html#ace104acaa0ef181acb36fe75d0aed683">operator==</a>(const v2d_generic &amp;rhs) const</td><td class="entry"><a class="el" href="structolc_1_1v2d__generic.html">olc::v2d_generic&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="structolc_1_1v2d__generic.html#a8275a944d309dc4b58f60cbc2925a7cc">perp</a>() const</td><td class="entry"><a class="el" href="structolc_1_1v2d__generic.html">olc::v2d_generic&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr><td class="entry"><a class="el" href="structolc_1_1v2d__generic.html#a88a794a4e9ec632f215afbeb04b354c8">str</a>() const</td><td class="entry"><a class="el" href="structolc_1_1v2d__generic.html">olc::v2d_generic&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="structolc_1_1v2d__generic.html#aba35d326b62454a5fbdeea4220438784">v2d_generic</a>()</td><td class="entry"><a class="el" href="structolc_1_1v2d__generic.html">olc::v2d_generic&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr><td class="entry"><a class="el" href="structolc_1_1v2d__generic.html#a2fc62e52adae5f9e4138adf073afddb0">v2d_generic</a>(T _x, T _y)</td><td class="entry"><a class="el" href="structolc_1_1v2d__generic.html">olc::v2d_generic&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="structolc_1_1v2d__generic.html#a7897de7e3e5f2a0e6ba1d2aef2015fce">v2d_generic</a>(const v2d_generic &amp;v)</td><td class="entry"><a class="el" href="structolc_1_1v2d__generic.html">olc::v2d_generic&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr><td class="entry"><a class="el" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a></td><td class="entry"><a class="el" href="structolc_1_1v2d__generic.html">olc::v2d_generic&lt; T &gt;</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a></td><td class="entry"><a class="el" href="structolc_1_1v2d__generic.html">olc::v2d_generic&lt; T &gt;</a></td><td class="entry"></td></tr>
+</table></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/structolc_1_1v2d__generic.html b/doxy/html/structolc_1_1v2d__generic.html
new file mode 100644
index 0000000000000000000000000000000000000000..2649d53816655a2cc351de722c8b1cd5d3d67658
--- /dev/null
+++ b/doxy/html/structolc_1_1v2d__generic.html
@@ -0,0 +1,1274 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.20"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>2D-game: olc::v2d_generic&lt; T &gt; Struct Template Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">2D-game
+   </div>
+   <div id="projectbrief">It&#39;s not a bug, it&#39;s an undocumented feature</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.20 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="namespaceolc.html">olc</a></li><li class="navelem"><a class="el" href="structolc_1_1v2d__generic.html">v2d_generic</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="#pub-attribs">Public Attributes</a> &#124;
+<a href="#friends">Friends</a> &#124;
+<a href="structolc_1_1v2d__generic-members.html">List of all members</a>  </div>
+  <div class="headertitle">
+<div class="title">olc::v2d_generic&lt; T &gt; Struct Template Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p><code>#include &lt;<a class="el" href="olc_pixel_game_engine_8h_source.html">olcPixelGameEngine.h</a>&gt;</code></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr class="memitem:aba35d326b62454a5fbdeea4220438784"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structolc_1_1v2d__generic.html#aba35d326b62454a5fbdeea4220438784">v2d_generic</a> ()</td></tr>
+<tr class="separator:aba35d326b62454a5fbdeea4220438784"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2fc62e52adae5f9e4138adf073afddb0"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structolc_1_1v2d__generic.html#a2fc62e52adae5f9e4138adf073afddb0">v2d_generic</a> (<a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0">T</a> _x, <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0">T</a> _y)</td></tr>
+<tr class="separator:a2fc62e52adae5f9e4138adf073afddb0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7897de7e3e5f2a0e6ba1d2aef2015fce"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structolc_1_1v2d__generic.html#a7897de7e3e5f2a0e6ba1d2aef2015fce">v2d_generic</a> (const <a class="el" href="structolc_1_1v2d__generic.html">v2d_generic</a> &amp;v)</td></tr>
+<tr class="separator:a7897de7e3e5f2a0e6ba1d2aef2015fce"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:adff36d90ca79f24401a31cbde706bf8c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structolc_1_1v2d__generic.html">v2d_generic</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structolc_1_1v2d__generic.html#adff36d90ca79f24401a31cbde706bf8c">operator=</a> (const <a class="el" href="structolc_1_1v2d__generic.html">v2d_generic</a> &amp;v)=default</td></tr>
+<tr class="separator:adff36d90ca79f24401a31cbde706bf8c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab06016810fe727fa826e43e44e02008b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0">T</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structolc_1_1v2d__generic.html#ab06016810fe727fa826e43e44e02008b">mag</a> () const</td></tr>
+<tr class="separator:ab06016810fe727fa826e43e44e02008b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6b83d7375119637fdf65233cf6dae947"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0">T</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structolc_1_1v2d__generic.html#a6b83d7375119637fdf65233cf6dae947">mag2</a> () const</td></tr>
+<tr class="separator:a6b83d7375119637fdf65233cf6dae947"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9c62f12d51859a5a487c5a0c2d00b09a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structolc_1_1v2d__generic.html">v2d_generic</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structolc_1_1v2d__generic.html#a9c62f12d51859a5a487c5a0c2d00b09a">norm</a> () const</td></tr>
+<tr class="separator:a9c62f12d51859a5a487c5a0c2d00b09a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8275a944d309dc4b58f60cbc2925a7cc"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structolc_1_1v2d__generic.html">v2d_generic</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structolc_1_1v2d__generic.html#a8275a944d309dc4b58f60cbc2925a7cc">perp</a> () const</td></tr>
+<tr class="separator:a8275a944d309dc4b58f60cbc2925a7cc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:affe50148d448ff75c298da3a1fd45323"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structolc_1_1v2d__generic.html">v2d_generic</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structolc_1_1v2d__generic.html#affe50148d448ff75c298da3a1fd45323">floor</a> () const</td></tr>
+<tr class="separator:affe50148d448ff75c298da3a1fd45323"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a65efb6611304b590a2cb45781b1c34cc"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structolc_1_1v2d__generic.html">v2d_generic</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structolc_1_1v2d__generic.html#a65efb6611304b590a2cb45781b1c34cc">ceil</a> () const</td></tr>
+<tr class="separator:a65efb6611304b590a2cb45781b1c34cc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1fe55d8bc22dbb400583cb68cc9e3e36"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structolc_1_1v2d__generic.html">v2d_generic</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structolc_1_1v2d__generic.html#a1fe55d8bc22dbb400583cb68cc9e3e36">max</a> (const <a class="el" href="structolc_1_1v2d__generic.html">v2d_generic</a> &amp;v) const</td></tr>
+<tr class="separator:a1fe55d8bc22dbb400583cb68cc9e3e36"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aec7b204ad597ee0edc9a444ff3a242eb"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structolc_1_1v2d__generic.html">v2d_generic</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structolc_1_1v2d__generic.html#aec7b204ad597ee0edc9a444ff3a242eb">min</a> (const <a class="el" href="structolc_1_1v2d__generic.html">v2d_generic</a> &amp;v) const</td></tr>
+<tr class="separator:aec7b204ad597ee0edc9a444ff3a242eb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad2e96c716c487677bbde6966464fc482"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0">T</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structolc_1_1v2d__generic.html#ad2e96c716c487677bbde6966464fc482">dot</a> (const <a class="el" href="structolc_1_1v2d__generic.html">v2d_generic</a> &amp;rhs) const</td></tr>
+<tr class="separator:ad2e96c716c487677bbde6966464fc482"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1febe5d22672d7d0121526577bf3b535"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0">T</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structolc_1_1v2d__generic.html#a1febe5d22672d7d0121526577bf3b535">cross</a> (const <a class="el" href="structolc_1_1v2d__generic.html">v2d_generic</a> &amp;rhs) const</td></tr>
+<tr class="separator:a1febe5d22672d7d0121526577bf3b535"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5ae3f55fd12af9bf44a2837ad76ea7dd"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structolc_1_1v2d__generic.html">v2d_generic</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structolc_1_1v2d__generic.html#a5ae3f55fd12af9bf44a2837ad76ea7dd">operator+</a> (const <a class="el" href="structolc_1_1v2d__generic.html">v2d_generic</a> &amp;rhs) const</td></tr>
+<tr class="separator:a5ae3f55fd12af9bf44a2837ad76ea7dd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a64e053d62d2826193f6a058ee120c6e2"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structolc_1_1v2d__generic.html">v2d_generic</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structolc_1_1v2d__generic.html#a64e053d62d2826193f6a058ee120c6e2">operator-</a> (const <a class="el" href="structolc_1_1v2d__generic.html">v2d_generic</a> &amp;rhs) const</td></tr>
+<tr class="separator:a64e053d62d2826193f6a058ee120c6e2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a542487700e63b2e30940d64b75c3d3db"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structolc_1_1v2d__generic.html">v2d_generic</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structolc_1_1v2d__generic.html#a542487700e63b2e30940d64b75c3d3db">operator*</a> (const <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0">T</a> &amp;rhs) const</td></tr>
+<tr class="separator:a542487700e63b2e30940d64b75c3d3db"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a78e7362a3b955735c0389c6a5c7b32f0"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structolc_1_1v2d__generic.html">v2d_generic</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structolc_1_1v2d__generic.html#a78e7362a3b955735c0389c6a5c7b32f0">operator*</a> (const <a class="el" href="structolc_1_1v2d__generic.html">v2d_generic</a> &amp;rhs) const</td></tr>
+<tr class="separator:a78e7362a3b955735c0389c6a5c7b32f0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1f1138ee06adae0eaffe900b0437b896"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structolc_1_1v2d__generic.html">v2d_generic</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structolc_1_1v2d__generic.html#a1f1138ee06adae0eaffe900b0437b896">operator/</a> (const <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0">T</a> &amp;rhs) const</td></tr>
+<tr class="separator:a1f1138ee06adae0eaffe900b0437b896"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:adcf0004e01ba1d8c813cdcb6525eb1c6"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structolc_1_1v2d__generic.html">v2d_generic</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structolc_1_1v2d__generic.html#adcf0004e01ba1d8c813cdcb6525eb1c6">operator/</a> (const <a class="el" href="structolc_1_1v2d__generic.html">v2d_generic</a> &amp;rhs) const</td></tr>
+<tr class="separator:adcf0004e01ba1d8c813cdcb6525eb1c6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac57326846384068beaaddec0674b65d2"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structolc_1_1v2d__generic.html">v2d_generic</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structolc_1_1v2d__generic.html#ac57326846384068beaaddec0674b65d2">operator+=</a> (const <a class="el" href="structolc_1_1v2d__generic.html">v2d_generic</a> &amp;rhs)</td></tr>
+<tr class="separator:ac57326846384068beaaddec0674b65d2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af3e8b94c4921f8d81b4112b319bd7f6d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structolc_1_1v2d__generic.html">v2d_generic</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structolc_1_1v2d__generic.html#af3e8b94c4921f8d81b4112b319bd7f6d">operator-=</a> (const <a class="el" href="structolc_1_1v2d__generic.html">v2d_generic</a> &amp;rhs)</td></tr>
+<tr class="separator:af3e8b94c4921f8d81b4112b319bd7f6d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a35c81946f320da79fa5a33e595873252"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structolc_1_1v2d__generic.html">v2d_generic</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structolc_1_1v2d__generic.html#a35c81946f320da79fa5a33e595873252">operator*=</a> (const <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0">T</a> &amp;rhs)</td></tr>
+<tr class="separator:a35c81946f320da79fa5a33e595873252"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a88a5aa098b5ada7667a7900a0bc9bba2"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structolc_1_1v2d__generic.html">v2d_generic</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structolc_1_1v2d__generic.html#a88a5aa098b5ada7667a7900a0bc9bba2">operator/=</a> (const <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0">T</a> &amp;rhs)</td></tr>
+<tr class="separator:a88a5aa098b5ada7667a7900a0bc9bba2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2a0fb49722257578bfc148a273b4c1c5"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structolc_1_1v2d__generic.html">v2d_generic</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structolc_1_1v2d__generic.html#a2a0fb49722257578bfc148a273b4c1c5">operator*=</a> (const <a class="el" href="structolc_1_1v2d__generic.html">v2d_generic</a> &amp;rhs)</td></tr>
+<tr class="separator:a2a0fb49722257578bfc148a273b4c1c5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8e035b45f69db29e4cac698658ad4de1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structolc_1_1v2d__generic.html">v2d_generic</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structolc_1_1v2d__generic.html#a8e035b45f69db29e4cac698658ad4de1">operator/=</a> (const <a class="el" href="structolc_1_1v2d__generic.html">v2d_generic</a> &amp;rhs)</td></tr>
+<tr class="separator:a8e035b45f69db29e4cac698658ad4de1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a70a7c59a5b9b9fac0de8a823633abb08"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structolc_1_1v2d__generic.html">v2d_generic</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structolc_1_1v2d__generic.html#a70a7c59a5b9b9fac0de8a823633abb08">operator+</a> () const</td></tr>
+<tr class="separator:a70a7c59a5b9b9fac0de8a823633abb08"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9eff196e75aeffcd96bffb64de04219d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structolc_1_1v2d__generic.html">v2d_generic</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structolc_1_1v2d__generic.html#a9eff196e75aeffcd96bffb64de04219d">operator-</a> () const</td></tr>
+<tr class="separator:a9eff196e75aeffcd96bffb64de04219d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ace104acaa0ef181acb36fe75d0aed683"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structolc_1_1v2d__generic.html#ace104acaa0ef181acb36fe75d0aed683">operator==</a> (const <a class="el" href="structolc_1_1v2d__generic.html">v2d_generic</a> &amp;rhs) const</td></tr>
+<tr class="separator:ace104acaa0ef181acb36fe75d0aed683"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abd9af6a38bc73471874665f508ff10b6"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structolc_1_1v2d__generic.html#abd9af6a38bc73471874665f508ff10b6">operator!=</a> (const <a class="el" href="structolc_1_1v2d__generic.html">v2d_generic</a> &amp;rhs) const</td></tr>
+<tr class="separator:abd9af6a38bc73471874665f508ff10b6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a88a794a4e9ec632f215afbeb04b354c8"><td class="memItemLeft" align="right" valign="top">const std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structolc_1_1v2d__generic.html#a88a794a4e9ec632f215afbeb04b354c8">str</a> () const</td></tr>
+<tr class="separator:a88a794a4e9ec632f215afbeb04b354c8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2bf267ac209cca361df72649a5aac92c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structolc_1_1v2d__generic.html#a2bf267ac209cca361df72649a5aac92c">operator v2d_generic&lt; int32_t &gt;</a> () const</td></tr>
+<tr class="separator:a2bf267ac209cca361df72649a5aac92c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7fd9786ec8121d50addc3dd624ca21eb"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structolc_1_1v2d__generic.html#a7fd9786ec8121d50addc3dd624ca21eb">operator v2d_generic&lt; float &gt;</a> () const</td></tr>
+<tr class="separator:a7fd9786ec8121d50addc3dd624ca21eb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5b722f332f64d260741ef8322cca5cce"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structolc_1_1v2d__generic.html#a5b722f332f64d260741ef8322cca5cce">operator v2d_generic&lt; double &gt;</a> () const</td></tr>
+<tr class="separator:a5b722f332f64d260741ef8322cca5cce"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+Public Attributes</h2></td></tr>
+<tr class="memitem:a2c6ce2738720f5e098c7d0bf17f33807"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0">T</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structolc_1_1v2d__generic.html#a2c6ce2738720f5e098c7d0bf17f33807">x</a> = 0</td></tr>
+<tr class="separator:a2c6ce2738720f5e098c7d0bf17f33807"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5a9c94207b2163c69a39190c320fcbdf"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0">T</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structolc_1_1v2d__generic.html#a5a9c94207b2163c69a39190c320fcbdf">y</a> = 0</td></tr>
+<tr class="separator:a5a9c94207b2163c69a39190c320fcbdf"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="friends"></a>
+Friends</h2></td></tr>
+<tr class="memitem:afeb5dac5960ca80197ad7ce455ed190c"><td class="memItemLeft" align="right" valign="top">std::ostream &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structolc_1_1v2d__generic.html#afeb5dac5960ca80197ad7ce455ed190c">operator&lt;&lt;</a> (std::ostream &amp;os, const <a class="el" href="structolc_1_1v2d__generic.html">v2d_generic</a> &amp;rhs)</td></tr>
+<tr class="separator:afeb5dac5960ca80197ad7ce455ed190c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><h3>template&lt;class T&gt;<br />
+struct olc::v2d_generic&lt; T &gt;</h3>
+
+
+<p class="definition">Definition at line <a class="el" href="olc_pixel_game_engine_8h_source.html#l00582">582</a> of file <a class="el" href="olc_pixel_game_engine_8h_source.html">olcPixelGameEngine.h</a>.</p>
+</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
+<a id="aba35d326b62454a5fbdeea4220438784"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aba35d326b62454a5fbdeea4220438784">&#9670;&nbsp;</a></span>v2d_generic() <span class="overload">[1/3]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;class T &gt; </div>
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structolc_1_1v2d__generic.html">olc::v2d_generic</a>&lt; <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0">T</a> &gt;::<a class="el" href="structolc_1_1v2d__generic.html">v2d_generic</a> </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="olc_pixel_game_engine_8h_source.html#l00586">586</a> of file <a class="el" href="olc_pixel_game_engine_8h_source.html">olcPixelGameEngine.h</a>.</p>
+
+</div>
+</div>
+<a id="a2fc62e52adae5f9e4138adf073afddb0"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a2fc62e52adae5f9e4138adf073afddb0">&#9670;&nbsp;</a></span>v2d_generic() <span class="overload">[2/3]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;class T &gt; </div>
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structolc_1_1v2d__generic.html">olc::v2d_generic</a>&lt; <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0">T</a> &gt;::<a class="el" href="structolc_1_1v2d__generic.html">v2d_generic</a> </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0">T</a>&#160;</td>
+          <td class="paramname"><em>_x</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0">T</a>&#160;</td>
+          <td class="paramname"><em>_y</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="olc_pixel_game_engine_8h_source.html#l00587">587</a> of file <a class="el" href="olc_pixel_game_engine_8h_source.html">olcPixelGameEngine.h</a>.</p>
+
+</div>
+</div>
+<a id="a7897de7e3e5f2a0e6ba1d2aef2015fce"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a7897de7e3e5f2a0e6ba1d2aef2015fce">&#9670;&nbsp;</a></span>v2d_generic() <span class="overload">[3/3]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;class T &gt; </div>
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structolc_1_1v2d__generic.html">olc::v2d_generic</a>&lt; <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0">T</a> &gt;::<a class="el" href="structolc_1_1v2d__generic.html">v2d_generic</a> </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="structolc_1_1v2d__generic.html">v2d_generic</a>&lt; <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0">T</a> &gt; &amp;&#160;</td>
+          <td class="paramname"><em>v</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="olc_pixel_game_engine_8h_source.html#l00588">588</a> of file <a class="el" href="olc_pixel_game_engine_8h_source.html">olcPixelGameEngine.h</a>.</p>
+
+</div>
+</div>
+<h2 class="groupheader">Member Function Documentation</h2>
+<a id="a65efb6611304b590a2cb45781b1c34cc"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a65efb6611304b590a2cb45781b1c34cc">&#9670;&nbsp;</a></span>ceil()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;class T &gt; </div>
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structolc_1_1v2d__generic.html">v2d_generic</a> <a class="el" href="structolc_1_1v2d__generic.html">olc::v2d_generic</a>&lt; <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0">T</a> &gt;::ceil </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td> const</td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="olc_pixel_game_engine_8h_source.html#l00595">595</a> of file <a class="el" href="olc_pixel_game_engine_8h_source.html">olcPixelGameEngine.h</a>.</p>
+
+</div>
+</div>
+<a id="a1febe5d22672d7d0121526577bf3b535"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a1febe5d22672d7d0121526577bf3b535">&#9670;&nbsp;</a></span>cross()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;class T &gt; </div>
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0">T</a> <a class="el" href="structolc_1_1v2d__generic.html">olc::v2d_generic</a>&lt; <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0">T</a> &gt;::cross </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="structolc_1_1v2d__generic.html">v2d_generic</a>&lt; <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0">T</a> &gt; &amp;&#160;</td>
+          <td class="paramname"><em>rhs</em></td><td>)</td>
+          <td> const</td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="olc_pixel_game_engine_8h_source.html#l00599">599</a> of file <a class="el" href="olc_pixel_game_engine_8h_source.html">olcPixelGameEngine.h</a>.</p>
+
+</div>
+</div>
+<a id="ad2e96c716c487677bbde6966464fc482"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ad2e96c716c487677bbde6966464fc482">&#9670;&nbsp;</a></span>dot()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;class T &gt; </div>
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0">T</a> <a class="el" href="structolc_1_1v2d__generic.html">olc::v2d_generic</a>&lt; <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0">T</a> &gt;::dot </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="structolc_1_1v2d__generic.html">v2d_generic</a>&lt; <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0">T</a> &gt; &amp;&#160;</td>
+          <td class="paramname"><em>rhs</em></td><td>)</td>
+          <td> const</td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="olc_pixel_game_engine_8h_source.html#l00598">598</a> of file <a class="el" href="olc_pixel_game_engine_8h_source.html">olcPixelGameEngine.h</a>.</p>
+
+</div>
+</div>
+<a id="affe50148d448ff75c298da3a1fd45323"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#affe50148d448ff75c298da3a1fd45323">&#9670;&nbsp;</a></span>floor()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;class T &gt; </div>
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structolc_1_1v2d__generic.html">v2d_generic</a> <a class="el" href="structolc_1_1v2d__generic.html">olc::v2d_generic</a>&lt; <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0">T</a> &gt;::floor </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td> const</td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="olc_pixel_game_engine_8h_source.html#l00594">594</a> of file <a class="el" href="olc_pixel_game_engine_8h_source.html">olcPixelGameEngine.h</a>.</p>
+
+</div>
+</div>
+<a id="ab06016810fe727fa826e43e44e02008b"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ab06016810fe727fa826e43e44e02008b">&#9670;&nbsp;</a></span>mag()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;class T &gt; </div>
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0">T</a> <a class="el" href="structolc_1_1v2d__generic.html">olc::v2d_generic</a>&lt; <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0">T</a> &gt;::mag </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td> const</td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="olc_pixel_game_engine_8h_source.html#l00590">590</a> of file <a class="el" href="olc_pixel_game_engine_8h_source.html">olcPixelGameEngine.h</a>.</p>
+
+</div>
+</div>
+<a id="a6b83d7375119637fdf65233cf6dae947"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a6b83d7375119637fdf65233cf6dae947">&#9670;&nbsp;</a></span>mag2()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;class T &gt; </div>
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0">T</a> <a class="el" href="structolc_1_1v2d__generic.html">olc::v2d_generic</a>&lt; <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0">T</a> &gt;::mag2 </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td> const</td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="olc_pixel_game_engine_8h_source.html#l00591">591</a> of file <a class="el" href="olc_pixel_game_engine_8h_source.html">olcPixelGameEngine.h</a>.</p>
+
+</div>
+</div>
+<a id="a1fe55d8bc22dbb400583cb68cc9e3e36"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a1fe55d8bc22dbb400583cb68cc9e3e36">&#9670;&nbsp;</a></span>max()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;class T &gt; </div>
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structolc_1_1v2d__generic.html">v2d_generic</a> <a class="el" href="structolc_1_1v2d__generic.html">olc::v2d_generic</a>&lt; <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0">T</a> &gt;::max </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="structolc_1_1v2d__generic.html">v2d_generic</a>&lt; <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0">T</a> &gt; &amp;&#160;</td>
+          <td class="paramname"><em>v</em></td><td>)</td>
+          <td> const</td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="olc_pixel_game_engine_8h_source.html#l00596">596</a> of file <a class="el" href="olc_pixel_game_engine_8h_source.html">olcPixelGameEngine.h</a>.</p>
+
+</div>
+</div>
+<a id="aec7b204ad597ee0edc9a444ff3a242eb"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aec7b204ad597ee0edc9a444ff3a242eb">&#9670;&nbsp;</a></span>min()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;class T &gt; </div>
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structolc_1_1v2d__generic.html">v2d_generic</a> <a class="el" href="structolc_1_1v2d__generic.html">olc::v2d_generic</a>&lt; <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0">T</a> &gt;::min </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="structolc_1_1v2d__generic.html">v2d_generic</a>&lt; <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0">T</a> &gt; &amp;&#160;</td>
+          <td class="paramname"><em>v</em></td><td>)</td>
+          <td> const</td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="olc_pixel_game_engine_8h_source.html#l00597">597</a> of file <a class="el" href="olc_pixel_game_engine_8h_source.html">olcPixelGameEngine.h</a>.</p>
+
+</div>
+</div>
+<a id="a9c62f12d51859a5a487c5a0c2d00b09a"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a9c62f12d51859a5a487c5a0c2d00b09a">&#9670;&nbsp;</a></span>norm()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;class T &gt; </div>
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structolc_1_1v2d__generic.html">v2d_generic</a> <a class="el" href="structolc_1_1v2d__generic.html">olc::v2d_generic</a>&lt; <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0">T</a> &gt;::norm </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td> const</td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="olc_pixel_game_engine_8h_source.html#l00592">592</a> of file <a class="el" href="olc_pixel_game_engine_8h_source.html">olcPixelGameEngine.h</a>.</p>
+
+</div>
+</div>
+<a id="a5b722f332f64d260741ef8322cca5cce"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a5b722f332f64d260741ef8322cca5cce">&#9670;&nbsp;</a></span>operator v2d_generic&lt; double &gt;()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;class T &gt; </div>
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structolc_1_1v2d__generic.html">olc::v2d_generic</a>&lt; <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0">T</a> &gt;::operator <a class="el" href="structolc_1_1v2d__generic.html">v2d_generic</a>&lt; double &gt; </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td> const</td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="olc_pixel_game_engine_8h_source.html#l00620">620</a> of file <a class="el" href="olc_pixel_game_engine_8h_source.html">olcPixelGameEngine.h</a>.</p>
+
+</div>
+</div>
+<a id="a7fd9786ec8121d50addc3dd624ca21eb"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a7fd9786ec8121d50addc3dd624ca21eb">&#9670;&nbsp;</a></span>operator v2d_generic&lt; float &gt;()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;class T &gt; </div>
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structolc_1_1v2d__generic.html">olc::v2d_generic</a>&lt; <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0">T</a> &gt;::operator <a class="el" href="structolc_1_1v2d__generic.html">v2d_generic</a>&lt; float &gt; </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td> const</td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="olc_pixel_game_engine_8h_source.html#l00619">619</a> of file <a class="el" href="olc_pixel_game_engine_8h_source.html">olcPixelGameEngine.h</a>.</p>
+
+</div>
+</div>
+<a id="a2bf267ac209cca361df72649a5aac92c"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a2bf267ac209cca361df72649a5aac92c">&#9670;&nbsp;</a></span>operator v2d_generic&lt; int32_t &gt;()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;class T &gt; </div>
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structolc_1_1v2d__generic.html">olc::v2d_generic</a>&lt; <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0">T</a> &gt;::operator <a class="el" href="structolc_1_1v2d__generic.html">v2d_generic</a>&lt; int32_t &gt; </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td> const</td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="olc_pixel_game_engine_8h_source.html#l00618">618</a> of file <a class="el" href="olc_pixel_game_engine_8h_source.html">olcPixelGameEngine.h</a>.</p>
+
+</div>
+</div>
+<a id="abd9af6a38bc73471874665f508ff10b6"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#abd9af6a38bc73471874665f508ff10b6">&#9670;&nbsp;</a></span>operator!=()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;class T &gt; </div>
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">bool <a class="el" href="structolc_1_1v2d__generic.html">olc::v2d_generic</a>&lt; <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0">T</a> &gt;::operator!= </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="structolc_1_1v2d__generic.html">v2d_generic</a>&lt; <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0">T</a> &gt; &amp;&#160;</td>
+          <td class="paramname"><em>rhs</em></td><td>)</td>
+          <td> const</td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="olc_pixel_game_engine_8h_source.html#l00615">615</a> of file <a class="el" href="olc_pixel_game_engine_8h_source.html">olcPixelGameEngine.h</a>.</p>
+
+</div>
+</div>
+<a id="a542487700e63b2e30940d64b75c3d3db"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a542487700e63b2e30940d64b75c3d3db">&#9670;&nbsp;</a></span>operator*() <span class="overload">[1/2]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;class T &gt; </div>
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structolc_1_1v2d__generic.html">v2d_generic</a> <a class="el" href="structolc_1_1v2d__generic.html">olc::v2d_generic</a>&lt; <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0">T</a> &gt;::operator* </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0">T</a> &amp;&#160;</td>
+          <td class="paramname"><em>rhs</em></td><td>)</td>
+          <td> const</td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="olc_pixel_game_engine_8h_source.html#l00602">602</a> of file <a class="el" href="olc_pixel_game_engine_8h_source.html">olcPixelGameEngine.h</a>.</p>
+
+</div>
+</div>
+<a id="a78e7362a3b955735c0389c6a5c7b32f0"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a78e7362a3b955735c0389c6a5c7b32f0">&#9670;&nbsp;</a></span>operator*() <span class="overload">[2/2]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;class T &gt; </div>
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structolc_1_1v2d__generic.html">v2d_generic</a> <a class="el" href="structolc_1_1v2d__generic.html">olc::v2d_generic</a>&lt; <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0">T</a> &gt;::operator* </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="structolc_1_1v2d__generic.html">v2d_generic</a>&lt; <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0">T</a> &gt; &amp;&#160;</td>
+          <td class="paramname"><em>rhs</em></td><td>)</td>
+          <td> const</td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="olc_pixel_game_engine_8h_source.html#l00603">603</a> of file <a class="el" href="olc_pixel_game_engine_8h_source.html">olcPixelGameEngine.h</a>.</p>
+
+</div>
+</div>
+<a id="a35c81946f320da79fa5a33e595873252"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a35c81946f320da79fa5a33e595873252">&#9670;&nbsp;</a></span>operator*=() <span class="overload">[1/2]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;class T &gt; </div>
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structolc_1_1v2d__generic.html">v2d_generic</a>&amp; <a class="el" href="structolc_1_1v2d__generic.html">olc::v2d_generic</a>&lt; <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0">T</a> &gt;::operator*= </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0">T</a> &amp;&#160;</td>
+          <td class="paramname"><em>rhs</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="olc_pixel_game_engine_8h_source.html#l00608">608</a> of file <a class="el" href="olc_pixel_game_engine_8h_source.html">olcPixelGameEngine.h</a>.</p>
+
+</div>
+</div>
+<a id="a2a0fb49722257578bfc148a273b4c1c5"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a2a0fb49722257578bfc148a273b4c1c5">&#9670;&nbsp;</a></span>operator*=() <span class="overload">[2/2]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;class T &gt; </div>
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structolc_1_1v2d__generic.html">v2d_generic</a>&amp; <a class="el" href="structolc_1_1v2d__generic.html">olc::v2d_generic</a>&lt; <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0">T</a> &gt;::operator*= </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="structolc_1_1v2d__generic.html">v2d_generic</a>&lt; <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0">T</a> &gt; &amp;&#160;</td>
+          <td class="paramname"><em>rhs</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="olc_pixel_game_engine_8h_source.html#l00610">610</a> of file <a class="el" href="olc_pixel_game_engine_8h_source.html">olcPixelGameEngine.h</a>.</p>
+
+</div>
+</div>
+<a id="a70a7c59a5b9b9fac0de8a823633abb08"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a70a7c59a5b9b9fac0de8a823633abb08">&#9670;&nbsp;</a></span>operator+() <span class="overload">[1/2]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;class T &gt; </div>
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structolc_1_1v2d__generic.html">v2d_generic</a> <a class="el" href="structolc_1_1v2d__generic.html">olc::v2d_generic</a>&lt; <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0">T</a> &gt;::operator+ </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td> const</td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="olc_pixel_game_engine_8h_source.html#l00612">612</a> of file <a class="el" href="olc_pixel_game_engine_8h_source.html">olcPixelGameEngine.h</a>.</p>
+
+</div>
+</div>
+<a id="a5ae3f55fd12af9bf44a2837ad76ea7dd"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a5ae3f55fd12af9bf44a2837ad76ea7dd">&#9670;&nbsp;</a></span>operator+() <span class="overload">[2/2]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;class T &gt; </div>
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structolc_1_1v2d__generic.html">v2d_generic</a> <a class="el" href="structolc_1_1v2d__generic.html">olc::v2d_generic</a>&lt; <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0">T</a> &gt;::operator+ </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="structolc_1_1v2d__generic.html">v2d_generic</a>&lt; <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0">T</a> &gt; &amp;&#160;</td>
+          <td class="paramname"><em>rhs</em></td><td>)</td>
+          <td> const</td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="olc_pixel_game_engine_8h_source.html#l00600">600</a> of file <a class="el" href="olc_pixel_game_engine_8h_source.html">olcPixelGameEngine.h</a>.</p>
+
+</div>
+</div>
+<a id="ac57326846384068beaaddec0674b65d2"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ac57326846384068beaaddec0674b65d2">&#9670;&nbsp;</a></span>operator+=()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;class T &gt; </div>
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structolc_1_1v2d__generic.html">v2d_generic</a>&amp; <a class="el" href="structolc_1_1v2d__generic.html">olc::v2d_generic</a>&lt; <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0">T</a> &gt;::operator+= </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="structolc_1_1v2d__generic.html">v2d_generic</a>&lt; <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0">T</a> &gt; &amp;&#160;</td>
+          <td class="paramname"><em>rhs</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="olc_pixel_game_engine_8h_source.html#l00606">606</a> of file <a class="el" href="olc_pixel_game_engine_8h_source.html">olcPixelGameEngine.h</a>.</p>
+
+</div>
+</div>
+<a id="a9eff196e75aeffcd96bffb64de04219d"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a9eff196e75aeffcd96bffb64de04219d">&#9670;&nbsp;</a></span>operator-() <span class="overload">[1/2]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;class T &gt; </div>
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structolc_1_1v2d__generic.html">v2d_generic</a> <a class="el" href="structolc_1_1v2d__generic.html">olc::v2d_generic</a>&lt; <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0">T</a> &gt;::operator- </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td> const</td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="olc_pixel_game_engine_8h_source.html#l00613">613</a> of file <a class="el" href="olc_pixel_game_engine_8h_source.html">olcPixelGameEngine.h</a>.</p>
+
+</div>
+</div>
+<a id="a64e053d62d2826193f6a058ee120c6e2"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a64e053d62d2826193f6a058ee120c6e2">&#9670;&nbsp;</a></span>operator-() <span class="overload">[2/2]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;class T &gt; </div>
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structolc_1_1v2d__generic.html">v2d_generic</a> <a class="el" href="structolc_1_1v2d__generic.html">olc::v2d_generic</a>&lt; <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0">T</a> &gt;::operator- </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="structolc_1_1v2d__generic.html">v2d_generic</a>&lt; <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0">T</a> &gt; &amp;&#160;</td>
+          <td class="paramname"><em>rhs</em></td><td>)</td>
+          <td> const</td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="olc_pixel_game_engine_8h_source.html#l00601">601</a> of file <a class="el" href="olc_pixel_game_engine_8h_source.html">olcPixelGameEngine.h</a>.</p>
+
+</div>
+</div>
+<a id="af3e8b94c4921f8d81b4112b319bd7f6d"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#af3e8b94c4921f8d81b4112b319bd7f6d">&#9670;&nbsp;</a></span>operator-=()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;class T &gt; </div>
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structolc_1_1v2d__generic.html">v2d_generic</a>&amp; <a class="el" href="structolc_1_1v2d__generic.html">olc::v2d_generic</a>&lt; <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0">T</a> &gt;::operator-= </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="structolc_1_1v2d__generic.html">v2d_generic</a>&lt; <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0">T</a> &gt; &amp;&#160;</td>
+          <td class="paramname"><em>rhs</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="olc_pixel_game_engine_8h_source.html#l00607">607</a> of file <a class="el" href="olc_pixel_game_engine_8h_source.html">olcPixelGameEngine.h</a>.</p>
+
+</div>
+</div>
+<a id="a1f1138ee06adae0eaffe900b0437b896"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a1f1138ee06adae0eaffe900b0437b896">&#9670;&nbsp;</a></span>operator/() <span class="overload">[1/2]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;class T &gt; </div>
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structolc_1_1v2d__generic.html">v2d_generic</a> <a class="el" href="structolc_1_1v2d__generic.html">olc::v2d_generic</a>&lt; <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0">T</a> &gt;::operator/ </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0">T</a> &amp;&#160;</td>
+          <td class="paramname"><em>rhs</em></td><td>)</td>
+          <td> const</td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="olc_pixel_game_engine_8h_source.html#l00604">604</a> of file <a class="el" href="olc_pixel_game_engine_8h_source.html">olcPixelGameEngine.h</a>.</p>
+
+</div>
+</div>
+<a id="adcf0004e01ba1d8c813cdcb6525eb1c6"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#adcf0004e01ba1d8c813cdcb6525eb1c6">&#9670;&nbsp;</a></span>operator/() <span class="overload">[2/2]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;class T &gt; </div>
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structolc_1_1v2d__generic.html">v2d_generic</a> <a class="el" href="structolc_1_1v2d__generic.html">olc::v2d_generic</a>&lt; <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0">T</a> &gt;::operator/ </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="structolc_1_1v2d__generic.html">v2d_generic</a>&lt; <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0">T</a> &gt; &amp;&#160;</td>
+          <td class="paramname"><em>rhs</em></td><td>)</td>
+          <td> const</td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="olc_pixel_game_engine_8h_source.html#l00605">605</a> of file <a class="el" href="olc_pixel_game_engine_8h_source.html">olcPixelGameEngine.h</a>.</p>
+
+</div>
+</div>
+<a id="a88a5aa098b5ada7667a7900a0bc9bba2"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a88a5aa098b5ada7667a7900a0bc9bba2">&#9670;&nbsp;</a></span>operator/=() <span class="overload">[1/2]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;class T &gt; </div>
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structolc_1_1v2d__generic.html">v2d_generic</a>&amp; <a class="el" href="structolc_1_1v2d__generic.html">olc::v2d_generic</a>&lt; <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0">T</a> &gt;::operator/= </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0">T</a> &amp;&#160;</td>
+          <td class="paramname"><em>rhs</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="olc_pixel_game_engine_8h_source.html#l00609">609</a> of file <a class="el" href="olc_pixel_game_engine_8h_source.html">olcPixelGameEngine.h</a>.</p>
+
+</div>
+</div>
+<a id="a8e035b45f69db29e4cac698658ad4de1"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a8e035b45f69db29e4cac698658ad4de1">&#9670;&nbsp;</a></span>operator/=() <span class="overload">[2/2]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;class T &gt; </div>
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structolc_1_1v2d__generic.html">v2d_generic</a>&amp; <a class="el" href="structolc_1_1v2d__generic.html">olc::v2d_generic</a>&lt; <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0">T</a> &gt;::operator/= </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="structolc_1_1v2d__generic.html">v2d_generic</a>&lt; <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0">T</a> &gt; &amp;&#160;</td>
+          <td class="paramname"><em>rhs</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="olc_pixel_game_engine_8h_source.html#l00611">611</a> of file <a class="el" href="olc_pixel_game_engine_8h_source.html">olcPixelGameEngine.h</a>.</p>
+
+</div>
+</div>
+<a id="adff36d90ca79f24401a31cbde706bf8c"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#adff36d90ca79f24401a31cbde706bf8c">&#9670;&nbsp;</a></span>operator=()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;class T &gt; </div>
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structolc_1_1v2d__generic.html">v2d_generic</a>&amp; <a class="el" href="structolc_1_1v2d__generic.html">olc::v2d_generic</a>&lt; <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0">T</a> &gt;::operator= </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="structolc_1_1v2d__generic.html">v2d_generic</a>&lt; <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0">T</a> &gt; &amp;&#160;</td>
+          <td class="paramname"><em>v</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">default</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="ace104acaa0ef181acb36fe75d0aed683"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ace104acaa0ef181acb36fe75d0aed683">&#9670;&nbsp;</a></span>operator==()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;class T &gt; </div>
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">bool <a class="el" href="structolc_1_1v2d__generic.html">olc::v2d_generic</a>&lt; <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0">T</a> &gt;::operator== </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="structolc_1_1v2d__generic.html">v2d_generic</a>&lt; <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0">T</a> &gt; &amp;&#160;</td>
+          <td class="paramname"><em>rhs</em></td><td>)</td>
+          <td> const</td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="olc_pixel_game_engine_8h_source.html#l00614">614</a> of file <a class="el" href="olc_pixel_game_engine_8h_source.html">olcPixelGameEngine.h</a>.</p>
+
+</div>
+</div>
+<a id="a8275a944d309dc4b58f60cbc2925a7cc"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a8275a944d309dc4b58f60cbc2925a7cc">&#9670;&nbsp;</a></span>perp()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;class T &gt; </div>
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structolc_1_1v2d__generic.html">v2d_generic</a> <a class="el" href="structolc_1_1v2d__generic.html">olc::v2d_generic</a>&lt; <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0">T</a> &gt;::perp </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td> const</td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="olc_pixel_game_engine_8h_source.html#l00593">593</a> of file <a class="el" href="olc_pixel_game_engine_8h_source.html">olcPixelGameEngine.h</a>.</p>
+
+</div>
+</div>
+<a id="a88a794a4e9ec632f215afbeb04b354c8"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a88a794a4e9ec632f215afbeb04b354c8">&#9670;&nbsp;</a></span>str()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;class T &gt; </div>
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">const std::string <a class="el" href="structolc_1_1v2d__generic.html">olc::v2d_generic</a>&lt; <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0">T</a> &gt;::str </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td> const</td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="olc_pixel_game_engine_8h_source.html#l00616">616</a> of file <a class="el" href="olc_pixel_game_engine_8h_source.html">olcPixelGameEngine.h</a>.</p>
+
+</div>
+</div>
+<h2 class="groupheader">Friends And Related Function Documentation</h2>
+<a id="afeb5dac5960ca80197ad7ce455ed190c"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#afeb5dac5960ca80197ad7ce455ed190c">&#9670;&nbsp;</a></span>operator&lt;&lt;</h2>
+
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;class T &gt; </div>
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">std::ostream&amp; operator&lt;&lt; </td>
+          <td>(</td>
+          <td class="paramtype">std::ostream &amp;&#160;</td>
+          <td class="paramname"><em>os</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structolc_1_1v2d__generic.html">v2d_generic</a>&lt; <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0">T</a> &gt; &amp;&#160;</td>
+          <td class="paramname"><em>rhs</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">friend</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="olc_pixel_game_engine_8h_source.html#l00617">617</a> of file <a class="el" href="olc_pixel_game_engine_8h_source.html">olcPixelGameEngine.h</a>.</p>
+
+</div>
+</div>
+<h2 class="groupheader">Member Data Documentation</h2>
+<a id="a2c6ce2738720f5e098c7d0bf17f33807"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a2c6ce2738720f5e098c7d0bf17f33807">&#9670;&nbsp;</a></span>x</h2>
+
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;class T &gt; </div>
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0">T</a> <a class="el" href="structolc_1_1v2d__generic.html">olc::v2d_generic</a>&lt; <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0">T</a> &gt;::x = 0</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="olc_pixel_game_engine_8h_source.html#l00584">584</a> of file <a class="el" href="olc_pixel_game_engine_8h_source.html">olcPixelGameEngine.h</a>.</p>
+
+</div>
+</div>
+<a id="a5a9c94207b2163c69a39190c320fcbdf"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a5a9c94207b2163c69a39190c320fcbdf">&#9670;&nbsp;</a></span>y</h2>
+
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;class T &gt; </div>
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0">T</a> <a class="el" href="structolc_1_1v2d__generic.html">olc::v2d_generic</a>&lt; <a class="el" href="namespaceolc.html#aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0">T</a> &gt;::y = 0</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="olc_pixel_game_engine_8h_source.html#l00585">585</a> of file <a class="el" href="olc_pixel_game_engine_8h_source.html">olcPixelGameEngine.h</a>.</p>
+
+</div>
+</div>
+<hr/>The documentation for this struct was generated from the following file:<ul>
+<li>C:/Users/kosmx/Documents/GitHub/2d-game/<a class="el" href="olc_pixel_game_engine_8h_source.html">olcPixelGameEngine.h</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
+</small></address>
+</body>
+</html>
diff --git a/doxy/html/sync_off.png b/doxy/html/sync_off.png
new file mode 100644
index 0000000000000000000000000000000000000000..3b443fc62892114406e3d399421b2a881b897acc
Binary files /dev/null and b/doxy/html/sync_off.png differ
diff --git a/doxy/html/sync_on.png b/doxy/html/sync_on.png
new file mode 100644
index 0000000000000000000000000000000000000000..e08320fb64e6fa33b573005ed6d8fe294e19db76
Binary files /dev/null and b/doxy/html/sync_on.png differ
diff --git a/doxy/html/tab_a.png b/doxy/html/tab_a.png
new file mode 100644
index 0000000000000000000000000000000000000000..3b725c41c5a527a3a3e40097077d0e206a681247
Binary files /dev/null and b/doxy/html/tab_a.png differ
diff --git a/doxy/html/tab_b.png b/doxy/html/tab_b.png
new file mode 100644
index 0000000000000000000000000000000000000000..e2b4a8638cb3496a016eaed9e16ffc12846dea18
Binary files /dev/null and b/doxy/html/tab_b.png differ
diff --git a/doxy/html/tab_h.png b/doxy/html/tab_h.png
new file mode 100644
index 0000000000000000000000000000000000000000..fd5cb705488e60fcf30f56fcc951dee74f3b095b
Binary files /dev/null and b/doxy/html/tab_h.png differ
diff --git a/doxy/html/tab_s.png b/doxy/html/tab_s.png
new file mode 100644
index 0000000000000000000000000000000000000000..ab478c95b67371d700a20869f7de1ddd73522d50
Binary files /dev/null and b/doxy/html/tab_s.png differ
diff --git a/doxy/html/tabs.css b/doxy/html/tabs.css
new file mode 100644
index 0000000000000000000000000000000000000000..85a0cd5b5857b5fc94039256cd05e133b7e3bd9d
--- /dev/null
+++ b/doxy/html/tabs.css
@@ -0,0 +1 @@
+.sm{position:relative;z-index:9999}.sm,.sm ul,.sm li{display:block;list-style:none;margin:0;padding:0;line-height:normal;direction:ltr;text-align:left;-webkit-tap-highlight-color:rgba(0,0,0,0)}.sm-rtl,.sm-rtl ul,.sm-rtl li{direction:rtl;text-align:right}.sm>li>h1,.sm>li>h2,.sm>li>h3,.sm>li>h4,.sm>li>h5,.sm>li>h6{margin:0;padding:0}.sm ul{display:none}.sm li,.sm a{position:relative}.sm a{display:block}.sm a.disabled{cursor:not-allowed}.sm:after{content:"\00a0";display:block;height:0;font:0/0 serif;clear:both;visibility:hidden;overflow:hidden}.sm,.sm *,.sm *:before,.sm *:after{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.sm-dox{background-image:url("tab_b.png")}.sm-dox a,.sm-dox a:focus,.sm-dox a:hover,.sm-dox a:active{padding:0 12px;padding-right:43px;font-family:"Lucida Grande","Geneva","Helvetica",Arial,sans-serif;font-size:13px;font-weight:bold;line-height:36px;text-decoration:none;text-shadow:0 1px 1px rgba(255,255,255,0.9);color:#283a5d;outline:0}.sm-dox a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox a.current{color:#d23600}.sm-dox a.disabled{color:#bbb}.sm-dox a span.sub-arrow{position:absolute;top:50%;margin-top:-14px;left:auto;right:3px;width:28px;height:28px;overflow:hidden;font:bold 12px/28px monospace!important;text-align:center;text-shadow:none;background:rgba(255,255,255,0.5);-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox a.highlighted span.sub-arrow:before{display:block;content:'-'}.sm-dox>li:first-child>a,.sm-dox>li:first-child>:not(ul) a{-moz-border-radius:5px 5px 0 0;-webkit-border-radius:5px;border-radius:5px 5px 0 0}.sm-dox>li:last-child>a,.sm-dox>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul{-moz-border-radius:0 0 5px 5px;-webkit-border-radius:0;border-radius:0 0 5px 5px}.sm-dox>li:last-child>a.highlighted,.sm-dox>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted{-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox ul{background:rgba(162,162,162,0.1)}.sm-dox ul a,.sm-dox ul a:focus,.sm-dox ul a:hover,.sm-dox ul a:active{font-size:12px;border-left:8px solid transparent;line-height:36px;text-shadow:none;background-color:white;background-image:none}.sm-dox ul a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox ul ul a,.sm-dox ul ul a:hover,.sm-dox ul ul a:focus,.sm-dox ul ul a:active{border-left:16px solid transparent}.sm-dox ul ul ul a,.sm-dox ul ul ul a:hover,.sm-dox ul ul ul a:focus,.sm-dox ul ul ul a:active{border-left:24px solid transparent}.sm-dox ul ul ul ul a,.sm-dox ul ul ul ul a:hover,.sm-dox ul ul ul ul a:focus,.sm-dox ul ul ul ul a:active{border-left:32px solid transparent}.sm-dox ul ul ul ul ul a,.sm-dox ul ul ul ul ul a:hover,.sm-dox ul ul ul ul ul a:focus,.sm-dox ul ul ul ul ul a:active{border-left:40px solid transparent}@media(min-width:768px){.sm-dox ul{position:absolute;width:12em}.sm-dox li{float:left}.sm-dox.sm-rtl li{float:right}.sm-dox ul li,.sm-dox.sm-rtl ul li,.sm-dox.sm-vertical li{float:none}.sm-dox a{white-space:nowrap}.sm-dox ul a,.sm-dox.sm-vertical a{white-space:normal}.sm-dox .sm-nowrap>li>a,.sm-dox .sm-nowrap>li>:not(ul) a{white-space:nowrap}.sm-dox{padding:0 10px;background-image:url("tab_b.png");line-height:36px}.sm-dox a span.sub-arrow{top:50%;margin-top:-2px;right:12px;width:0;height:0;border-width:4px;border-style:solid dashed dashed dashed;border-color:#283a5d transparent transparent transparent;background:transparent;-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox a,.sm-dox a:focus,.sm-dox a:active,.sm-dox a:hover,.sm-dox a.highlighted{padding:0 12px;background-image:url("tab_s.png");background-repeat:no-repeat;background-position:right;-moz-border-radius:0!important;-webkit-border-radius:0;border-radius:0!important}.sm-dox a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox a:hover span.sub-arrow{border-color:white transparent transparent transparent}.sm-dox a.has-submenu{padding-right:24px}.sm-dox li{border-top:0}.sm-dox>li>ul:before,.sm-dox>li>ul:after{content:'';position:absolute;top:-18px;left:30px;width:0;height:0;overflow:hidden;border-width:9px;border-style:dashed dashed solid dashed;border-color:transparent transparent #bbb transparent}.sm-dox>li>ul:after{top:-16px;left:31px;border-width:8px;border-color:transparent transparent #fff transparent}.sm-dox ul{border:1px solid #bbb;padding:5px 0;background:#fff;-moz-border-radius:5px!important;-webkit-border-radius:5px;border-radius:5px!important;-moz-box-shadow:0 5px 9px rgba(0,0,0,0.2);-webkit-box-shadow:0 5px 9px rgba(0,0,0,0.2);box-shadow:0 5px 9px rgba(0,0,0,0.2)}.sm-dox ul a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-color:transparent transparent transparent #555;border-style:dashed dashed dashed solid}.sm-dox ul a,.sm-dox ul a:hover,.sm-dox ul a:focus,.sm-dox ul a:active,.sm-dox ul a.highlighted{color:#555;background-image:none;border:0!important;color:#555;background-image:none}.sm-dox ul a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox ul a:hover span.sub-arrow{border-color:transparent transparent transparent white}.sm-dox span.scroll-up,.sm-dox span.scroll-down{position:absolute;display:none;visibility:hidden;overflow:hidden;background:#fff;height:36px}.sm-dox span.scroll-up:hover,.sm-dox span.scroll-down:hover{background:#eee}.sm-dox span.scroll-up:hover span.scroll-up-arrow,.sm-dox span.scroll-up:hover span.scroll-down-arrow{border-color:transparent transparent #d23600 transparent}.sm-dox span.scroll-down:hover span.scroll-down-arrow{border-color:#d23600 transparent transparent transparent}.sm-dox span.scroll-up-arrow,.sm-dox span.scroll-down-arrow{position:absolute;top:0;left:50%;margin-left:-6px;width:0;height:0;overflow:hidden;border-width:6px;border-style:dashed dashed solid dashed;border-color:transparent transparent #555 transparent}.sm-dox span.scroll-down-arrow{top:8px;border-style:solid dashed dashed dashed;border-color:#555 transparent transparent transparent}.sm-dox.sm-rtl a.has-submenu{padding-right:12px;padding-left:24px}.sm-dox.sm-rtl a span.sub-arrow{right:auto;left:12px}.sm-dox.sm-rtl.sm-vertical a.has-submenu{padding:10px 20px}.sm-dox.sm-rtl.sm-vertical a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-rtl>li>ul:before{left:auto;right:30px}.sm-dox.sm-rtl>li>ul:after{left:auto;right:31px}.sm-dox.sm-rtl ul a.has-submenu{padding:10px 20px!important}.sm-dox.sm-rtl ul a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-vertical{padding:10px 0;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox.sm-vertical a{padding:10px 20px}.sm-dox.sm-vertical a:hover,.sm-dox.sm-vertical a:focus,.sm-dox.sm-vertical a:active,.sm-dox.sm-vertical a.highlighted{background:#fff}.sm-dox.sm-vertical a.disabled{background-image:url("tab_b.png")}.sm-dox.sm-vertical a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-style:dashed dashed dashed solid;border-color:transparent transparent transparent #555}.sm-dox.sm-vertical>li>ul:before,.sm-dox.sm-vertical>li>ul:after{display:none}.sm-dox.sm-vertical ul a{padding:10px 20px}.sm-dox.sm-vertical ul a:hover,.sm-dox.sm-vertical ul a:focus,.sm-dox.sm-vertical ul a:active,.sm-dox.sm-vertical ul a.highlighted{background:#eee}.sm-dox.sm-vertical ul a.disabled{background:#fff}}
\ No newline at end of file
diff --git a/doxy/latex/Makefile b/doxy/latex/Makefile
new file mode 100644
index 0000000000000000000000000000000000000000..877c9cccd14099ff90d6a2588e6ce4690d5ee5b9
--- /dev/null
+++ b/doxy/latex/Makefile
@@ -0,0 +1,23 @@
+LATEX_CMD=pdflatex
+
+all: refman.pdf
+
+pdf: refman.pdf
+
+refman.pdf: clean refman.tex
+	$(LATEX_CMD) refman
+	makeindex refman.idx
+	$(LATEX_CMD) refman
+	latex_count=8 ; \
+	while egrep -s 'Rerun (LaTeX|to get cross-references right)' refman.log && [ $$latex_count -gt 0 ] ;\
+	    do \
+	      echo "Rerunning latex...." ;\
+	      $(LATEX_CMD) refman ;\
+	      latex_count=`expr $$latex_count - 1` ;\
+	    done
+	makeindex refman.idx
+	$(LATEX_CMD) refman
+
+
+clean:
+	rm -f *.ps *.dvi *.aux *.toc *.idx *.ind *.ilg *.log *.out *.brf *.blg *.bbl refman.pdf
diff --git a/doxy/latex/_abstract_texture_8cpp.tex b/doxy/latex/_abstract_texture_8cpp.tex
new file mode 100644
index 0000000000000000000000000000000000000000..7ea3b98a65ecbe5738385b315072f64d71d21b6e
--- /dev/null
+++ b/doxy/latex/_abstract_texture_8cpp.tex
@@ -0,0 +1,2 @@
+\hypertarget{_abstract_texture_8cpp}{}\doxysection{C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\+Abstract\+Texture.cpp File Reference}
+\label{_abstract_texture_8cpp}\index{C:/Users/kosmx/Documents/GitHub/2d-\/game/AbstractTexture.cpp@{C:/Users/kosmx/Documents/GitHub/2d-\/game/AbstractTexture.cpp}}
diff --git a/doxy/latex/_character_entity_8cpp.tex b/doxy/latex/_character_entity_8cpp.tex
new file mode 100644
index 0000000000000000000000000000000000000000..1292545b275e353d40343fb56dd6960eab6dded7
--- /dev/null
+++ b/doxy/latex/_character_entity_8cpp.tex
@@ -0,0 +1,9 @@
+\hypertarget{_character_entity_8cpp}{}\doxysection{C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\+Character\+Entity.cpp File Reference}
+\label{_character_entity_8cpp}\index{C:/Users/kosmx/Documents/GitHub/2d-\/game/CharacterEntity.cpp@{C:/Users/kosmx/Documents/GitHub/2d-\/game/CharacterEntity.cpp}}
+{\ttfamily \#include \char`\"{}Character\+Entity.\+h\char`\"{}}\newline
+{\ttfamily \#include \char`\"{}Weapon.\+h\char`\"{}}\newline
+\doxysubsection*{Namespaces}
+\begin{DoxyCompactItemize}
+\item 
+ \mbox{\hyperlink{namespaceentities}{entities}}
+\end{DoxyCompactItemize}
diff --git a/doxy/latex/_character_entity_8h.tex b/doxy/latex/_character_entity_8h.tex
new file mode 100644
index 0000000000000000000000000000000000000000..faa1a1bbd9c763c94f6a999ea95e1428266e368d
--- /dev/null
+++ b/doxy/latex/_character_entity_8h.tex
@@ -0,0 +1,15 @@
+\hypertarget{_character_entity_8h}{}\doxysection{C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\+Character\+Entity.h File Reference}
+\label{_character_entity_8h}\index{C:/Users/kosmx/Documents/GitHub/2d-\/game/CharacterEntity.h@{C:/Users/kosmx/Documents/GitHub/2d-\/game/CharacterEntity.h}}
+{\ttfamily \#include \char`\"{}Living\+Entity.\+h\char`\"{}}\newline
+\doxysubsection*{Classes}
+\begin{DoxyCompactItemize}
+\item 
+class \mbox{\hyperlink{classentities_1_1_character_entity}{entities\+::\+Character\+Entity}}
+\begin{DoxyCompactList}\small\item\em A player or an enemy. \end{DoxyCompactList}\end{DoxyCompactItemize}
+\doxysubsection*{Namespaces}
+\begin{DoxyCompactItemize}
+\item 
+ \mbox{\hyperlink{namespaceweapons}{weapons}}
+\item 
+ \mbox{\hyperlink{namespaceentities}{entities}}
+\end{DoxyCompactItemize}
diff --git a/doxy/latex/_character_texture_8cpp.tex b/doxy/latex/_character_texture_8cpp.tex
new file mode 100644
index 0000000000000000000000000000000000000000..2f4bcf8edc99b508137bd943c4d48d83e07f0321
--- /dev/null
+++ b/doxy/latex/_character_texture_8cpp.tex
@@ -0,0 +1,11 @@
+\hypertarget{_character_texture_8cpp}{}\doxysection{C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\+Character\+Texture.cpp File Reference}
+\label{_character_texture_8cpp}\index{C:/Users/kosmx/Documents/GitHub/2d-\/game/CharacterTexture.cpp@{C:/Users/kosmx/Documents/GitHub/2d-\/game/CharacterTexture.cpp}}
+{\ttfamily \#include \char`\"{}Character\+Texture.\+h\char`\"{}}\newline
+{\ttfamily \#include \char`\"{}Entity.\+h\char`\"{}}\newline
+{\ttfamily \#include \char`\"{}Game\+Exception.\+h\char`\"{}}\newline
+{\ttfamily \#include \char`\"{}Living\+Entity.\+h\char`\"{}}\newline
+\doxysubsection*{Namespaces}
+\begin{DoxyCompactItemize}
+\item 
+ \mbox{\hyperlink{namespacerender}{render}}
+\end{DoxyCompactItemize}
diff --git a/doxy/latex/_character_texture_8h.tex b/doxy/latex/_character_texture_8h.tex
new file mode 100644
index 0000000000000000000000000000000000000000..13fbae57c6a0e25a3ed4a4542c6922cdb4d0e707
--- /dev/null
+++ b/doxy/latex/_character_texture_8h.tex
@@ -0,0 +1,13 @@
+\hypertarget{_character_texture_8h}{}\doxysection{C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\+Character\+Texture.h File Reference}
+\label{_character_texture_8h}\index{C:/Users/kosmx/Documents/GitHub/2d-\/game/CharacterTexture.h@{C:/Users/kosmx/Documents/GitHub/2d-\/game/CharacterTexture.h}}
+{\ttfamily \#include \char`\"{}I\+Texture.\+h\char`\"{}}\newline
+\doxysubsection*{Classes}
+\begin{DoxyCompactItemize}
+\item 
+class \mbox{\hyperlink{classrender_1_1_character_texture}{render\+::\+Character\+Texture}}
+\begin{DoxyCompactList}\small\item\em Texture for Character\+Entities. \end{DoxyCompactList}\end{DoxyCompactItemize}
+\doxysubsection*{Namespaces}
+\begin{DoxyCompactItemize}
+\item 
+ \mbox{\hyperlink{namespacerender}{render}}
+\end{DoxyCompactItemize}
diff --git a/doxy/latex/_dummy_entity_8cpp.tex b/doxy/latex/_dummy_entity_8cpp.tex
new file mode 100644
index 0000000000000000000000000000000000000000..f627379ff40bd2a5972d525301266a41810d0ab9
--- /dev/null
+++ b/doxy/latex/_dummy_entity_8cpp.tex
@@ -0,0 +1,8 @@
+\hypertarget{_dummy_entity_8cpp}{}\doxysection{C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\+Dummy\+Entity.cpp File Reference}
+\label{_dummy_entity_8cpp}\index{C:/Users/kosmx/Documents/GitHub/2d-\/game/DummyEntity.cpp@{C:/Users/kosmx/Documents/GitHub/2d-\/game/DummyEntity.cpp}}
+{\ttfamily \#include \char`\"{}Dummy\+Entity.\+h\char`\"{}}\newline
+\doxysubsection*{Namespaces}
+\begin{DoxyCompactItemize}
+\item 
+ \mbox{\hyperlink{namespaceentities}{entities}}
+\end{DoxyCompactItemize}
diff --git a/doxy/latex/_dummy_entity_8h.tex b/doxy/latex/_dummy_entity_8h.tex
new file mode 100644
index 0000000000000000000000000000000000000000..c5938b3c1489ce8a35cc41443e7d1bd4a9def51f
--- /dev/null
+++ b/doxy/latex/_dummy_entity_8h.tex
@@ -0,0 +1,13 @@
+\hypertarget{_dummy_entity_8h}{}\doxysection{C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\+Dummy\+Entity.h File Reference}
+\label{_dummy_entity_8h}\index{C:/Users/kosmx/Documents/GitHub/2d-\/game/DummyEntity.h@{C:/Users/kosmx/Documents/GitHub/2d-\/game/DummyEntity.h}}
+{\ttfamily \#include \char`\"{}Character\+Entity.\+h\char`\"{}}\newline
+\doxysubsection*{Classes}
+\begin{DoxyCompactItemize}
+\item 
+class \mbox{\hyperlink{classentities_1_1_dummy_entity}{entities\+::\+Dummy\+Entity}}
+\begin{DoxyCompactList}\small\item\em A test/dummy entity. it can\textquotesingle{}t do anything... no, it can die. \end{DoxyCompactList}\end{DoxyCompactItemize}
+\doxysubsection*{Namespaces}
+\begin{DoxyCompactItemize}
+\item 
+ \mbox{\hyperlink{namespaceentities}{entities}}
+\end{DoxyCompactItemize}
diff --git a/doxy/latex/_dungeon_generator_8cpp.tex b/doxy/latex/_dungeon_generator_8cpp.tex
new file mode 100644
index 0000000000000000000000000000000000000000..760aba6909b661c52493d82204dbe6faaac339f5
--- /dev/null
+++ b/doxy/latex/_dungeon_generator_8cpp.tex
@@ -0,0 +1,3 @@
+\hypertarget{_dungeon_generator_8cpp}{}\doxysection{C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\+Dungeon\+Generator.cpp File Reference}
+\label{_dungeon_generator_8cpp}\index{C:/Users/kosmx/Documents/GitHub/2d-\/game/DungeonGenerator.cpp@{C:/Users/kosmx/Documents/GitHub/2d-\/game/DungeonGenerator.cpp}}
+{\ttfamily \#include \char`\"{}Dungeon\+Generator.\+h\char`\"{}}\newline
diff --git a/doxy/latex/_dungeon_generator_8h.tex b/doxy/latex/_dungeon_generator_8h.tex
new file mode 100644
index 0000000000000000000000000000000000000000..43d96fee0d82213aa62164df33dde3882aee5dec
--- /dev/null
+++ b/doxy/latex/_dungeon_generator_8h.tex
@@ -0,0 +1,13 @@
+\hypertarget{_dungeon_generator_8h}{}\doxysection{C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\+Dungeon\+Generator.h File Reference}
+\label{_dungeon_generator_8h}\index{C:/Users/kosmx/Documents/GitHub/2d-\/game/DungeonGenerator.h@{C:/Users/kosmx/Documents/GitHub/2d-\/game/DungeonGenerator.h}}
+{\ttfamily \#include $<$memory$>$}\newline
+\doxysubsection*{Classes}
+\begin{DoxyCompactItemize}
+\item 
+class \mbox{\hyperlink{class_dungeon_generator}{Dungeon\+Generator}}
+\begin{DoxyCompactList}\small\item\em Generate random dungeons... \end{DoxyCompactList}\end{DoxyCompactItemize}
+\doxysubsection*{Namespaces}
+\begin{DoxyCompactItemize}
+\item 
+ \mbox{\hyperlink{namespaceentities}{entities}}
+\end{DoxyCompactItemize}
diff --git a/doxy/latex/_dynamic_array_8hpp.tex b/doxy/latex/_dynamic_array_8hpp.tex
new file mode 100644
index 0000000000000000000000000000000000000000..33a46d5d22ef010f34fc2048d8730507a749d8b8
--- /dev/null
+++ b/doxy/latex/_dynamic_array_8hpp.tex
@@ -0,0 +1,8 @@
+\hypertarget{_dynamic_array_8hpp}{}\doxysection{C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\+Dynamic\+Array.hpp File Reference}
+\label{_dynamic_array_8hpp}\index{C:/Users/kosmx/Documents/GitHub/2d-\/game/DynamicArray.hpp@{C:/Users/kosmx/Documents/GitHub/2d-\/game/DynamicArray.hpp}}
+{\ttfamily \#include $<$list$>$}\newline
+\doxysubsection*{Classes}
+\begin{DoxyCompactItemize}
+\item 
+class \mbox{\hyperlink{class_dynamic_array}{Dynamic\+Array$<$ T $>$}}
+\begin{DoxyCompactList}\small\item\em Dynamic array, to store entities, have a buffer, to don\textquotesingle{}t tick newly added entities too early. \end{DoxyCompactList}\end{DoxyCompactItemize}
diff --git a/doxy/latex/_e_m_gun_8cpp.tex b/doxy/latex/_e_m_gun_8cpp.tex
new file mode 100644
index 0000000000000000000000000000000000000000..348df21689ae40703229463cc593db4ba0bffc54
--- /dev/null
+++ b/doxy/latex/_e_m_gun_8cpp.tex
@@ -0,0 +1,9 @@
+\hypertarget{_e_m_gun_8cpp}{}\doxysection{C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\+E\+M\+Gun.cpp File Reference}
+\label{_e_m_gun_8cpp}\index{C:/Users/kosmx/Documents/GitHub/2d-\/game/EMGun.cpp@{C:/Users/kosmx/Documents/GitHub/2d-\/game/EMGun.cpp}}
+{\ttfamily \#include \char`\"{}E\+M\+Gun.\+h\char`\"{}}\newline
+{\ttfamily \#include $<$random$>$}\newline
+\doxysubsection*{Namespaces}
+\begin{DoxyCompactItemize}
+\item 
+ \mbox{\hyperlink{namespaceweapons}{weapons}}
+\end{DoxyCompactItemize}
diff --git a/doxy/latex/_e_m_gun_8h.tex b/doxy/latex/_e_m_gun_8h.tex
new file mode 100644
index 0000000000000000000000000000000000000000..a2e5217b994139dbbdb60cddb2ad1aecfa1a8b8b
--- /dev/null
+++ b/doxy/latex/_e_m_gun_8h.tex
@@ -0,0 +1,13 @@
+\hypertarget{_e_m_gun_8h}{}\doxysection{C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\+E\+M\+Gun.h File Reference}
+\label{_e_m_gun_8h}\index{C:/Users/kosmx/Documents/GitHub/2d-\/game/EMGun.h@{C:/Users/kosmx/Documents/GitHub/2d-\/game/EMGun.h}}
+{\ttfamily \#include \char`\"{}Pistol.\+h\char`\"{}}\newline
+\doxysubsection*{Classes}
+\begin{DoxyCompactItemize}
+\item 
+class \mbox{\hyperlink{classweapons_1_1_e_m_gun}{weapons\+::\+E\+M\+Gun}}
+\begin{DoxyCompactList}\small\item\em \mbox{\hyperlink{classweapons_1_1_weapon}{Weapon}} with energy level. \end{DoxyCompactList}\end{DoxyCompactItemize}
+\doxysubsection*{Namespaces}
+\begin{DoxyCompactItemize}
+\item 
+ \mbox{\hyperlink{namespaceweapons}{weapons}}
+\end{DoxyCompactItemize}
diff --git a/doxy/latex/_entity_8cpp.tex b/doxy/latex/_entity_8cpp.tex
new file mode 100644
index 0000000000000000000000000000000000000000..559eed68038b262d91e431c4f5495cd753662398
--- /dev/null
+++ b/doxy/latex/_entity_8cpp.tex
@@ -0,0 +1,57 @@
+\hypertarget{_entity_8cpp}{}\doxysection{C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\+Entity.cpp File Reference}
+\label{_entity_8cpp}\index{C:/Users/kosmx/Documents/GitHub/2d-\/game/Entity.cpp@{C:/Users/kosmx/Documents/GitHub/2d-\/game/Entity.cpp}}
+{\ttfamily \#include \char`\"{}Entity.\+h\char`\"{}}\newline
+{\ttfamily \#include $<$sstream$>$}\newline
+\doxysubsection*{Namespaces}
+\begin{DoxyCompactItemize}
+\item 
+ \mbox{\hyperlink{namespaceentities}{entities}}
+\end{DoxyCompactItemize}
+\doxysubsection*{Functions}
+\begin{DoxyCompactItemize}
+\item 
+\mbox{\hyperlink{classolc_1_1_transformed_view}{Transformed\+View}} \& \mbox{\hyperlink{_entity_8cpp_a84cbcaa4d8a9e6ac00abf777323fb212}{operator+=}} (\mbox{\hyperlink{classolc_1_1_transformed_view}{Transformed\+View}} \&scene, \mbox{\hyperlink{classentities_1_1_entity}{entities\+::\+Entity}} \&entity)
+\item 
+\mbox{\hyperlink{classolc_1_1_transformed_view}{Transformed\+View}} \& \mbox{\hyperlink{_entity_8cpp_a31a0b92a35aadc02f58f7ab817fada44}{operator+=}} (\mbox{\hyperlink{classolc_1_1_transformed_view}{Transformed\+View}} \&scene, std\+::shared\+\_\+ptr$<$ \mbox{\hyperlink{classentities_1_1_entity}{entities\+::\+Entity}} $>$ \&entity)
+\end{DoxyCompactItemize}
+\doxysubsection*{Variables}
+\begin{DoxyCompactItemize}
+\item 
+const float \mbox{\hyperlink{_entity_8cpp_abbe123cdd88a2c284df8426f38efafca}{ignore\+Distance}} = 0.\+1f
+\end{DoxyCompactItemize}
+
+
+\doxysubsection{Function Documentation}
+\mbox{\Hypertarget{_entity_8cpp_a84cbcaa4d8a9e6ac00abf777323fb212}\label{_entity_8cpp_a84cbcaa4d8a9e6ac00abf777323fb212}} 
+\index{Entity.cpp@{Entity.cpp}!operator+=@{operator+=}}
+\index{operator+=@{operator+=}!Entity.cpp@{Entity.cpp}}
+\doxysubsubsection{\texorpdfstring{operator+=()}{operator+=()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
+{\footnotesize\ttfamily \mbox{\hyperlink{classolc_1_1_transformed_view}{Transformed\+View}}\& operator+= (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{classolc_1_1_transformed_view}{olc\+::\+Transformed\+View}} \&}]{,  }\item[{\mbox{\hyperlink{classentities_1_1_entity}{entities\+::\+Entity}} \&}]{ }\end{DoxyParamCaption})}
+
+I literally add entities to the scene \+:D 
+
+Definition at line 82 of file Entity.\+cpp.
+
+\mbox{\Hypertarget{_entity_8cpp_a31a0b92a35aadc02f58f7ab817fada44}\label{_entity_8cpp_a31a0b92a35aadc02f58f7ab817fada44}} 
+\index{Entity.cpp@{Entity.cpp}!operator+=@{operator+=}}
+\index{operator+=@{operator+=}!Entity.cpp@{Entity.cpp}}
+\doxysubsubsection{\texorpdfstring{operator+=()}{operator+=()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
+{\footnotesize\ttfamily \mbox{\hyperlink{classolc_1_1_transformed_view}{Transformed\+View}}\& operator+= (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{classolc_1_1_transformed_view}{Transformed\+View}} \&}]{scene,  }\item[{std\+::shared\+\_\+ptr$<$ \mbox{\hyperlink{classentities_1_1_entity}{entities\+::\+Entity}} $>$ \&}]{entity }\end{DoxyParamCaption})}
+
+
+
+Definition at line 87 of file Entity.\+cpp.
+
+
+
+\doxysubsection{Variable Documentation}
+\mbox{\Hypertarget{_entity_8cpp_abbe123cdd88a2c284df8426f38efafca}\label{_entity_8cpp_abbe123cdd88a2c284df8426f38efafca}} 
+\index{Entity.cpp@{Entity.cpp}!ignoreDistance@{ignoreDistance}}
+\index{ignoreDistance@{ignoreDistance}!Entity.cpp@{Entity.cpp}}
+\doxysubsubsection{\texorpdfstring{ignoreDistance}{ignoreDistance}}
+{\footnotesize\ttfamily const float ignore\+Distance = 0.\+1f}
+
+
+
+Definition at line 8 of file Entity.\+cpp.
+
diff --git a/doxy/latex/_entity_8h.tex b/doxy/latex/_entity_8h.tex
new file mode 100644
index 0000000000000000000000000000000000000000..3767f9fe981a6098677eeb6fbe6ce0e01de008ff
--- /dev/null
+++ b/doxy/latex/_entity_8h.tex
@@ -0,0 +1,44 @@
+\hypertarget{_entity_8h}{}\doxysection{C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\+Entity.h File Reference}
+\label{_entity_8h}\index{C:/Users/kosmx/Documents/GitHub/2d-\/game/Entity.h@{C:/Users/kosmx/Documents/GitHub/2d-\/game/Entity.h}}
+{\ttfamily \#include \char`\"{}olc.\+h\char`\"{}}\newline
+{\ttfamily \#include \char`\"{}I\+Texture.\+h\char`\"{}}\newline
+\doxysubsection*{Classes}
+\begin{DoxyCompactItemize}
+\item 
+class \mbox{\hyperlink{classentities_1_1_entity}{entities\+::\+Entity}}
+\begin{DoxyCompactList}\small\item\em Every object, what can be on the map. \end{DoxyCompactList}\end{DoxyCompactItemize}
+\doxysubsection*{Namespaces}
+\begin{DoxyCompactItemize}
+\item 
+ \mbox{\hyperlink{namespaceentities}{entities}}
+\end{DoxyCompactItemize}
+\doxysubsection*{Functions}
+\begin{DoxyCompactItemize}
+\item 
+\mbox{\hyperlink{classolc_1_1_transformed_view}{olc\+::\+Transformed\+View}} \& \mbox{\hyperlink{_entity_8h_afba80426f5df447305cca8887a8ff92d}{operator+=}} (\mbox{\hyperlink{classolc_1_1_transformed_view}{olc\+::\+Transformed\+View}} \&, \mbox{\hyperlink{classentities_1_1_entity}{entities\+::\+Entity}} \&)
+\item 
+\mbox{\hyperlink{classolc_1_1_transformed_view}{olc\+::\+Transformed\+View}} \& \mbox{\hyperlink{_entity_8h_a2ed5201a4cd62b1183dd0a5b20f268cc}{operator+=}} (\mbox{\hyperlink{classolc_1_1_transformed_view}{olc\+::\+Transformed\+View}} \&, std\+::shared\+\_\+ptr$<$ \mbox{\hyperlink{classentities_1_1_entity}{entities\+::\+Entity}} $>$ \&)
+\end{DoxyCompactItemize}
+
+
+\doxysubsection{Function Documentation}
+\mbox{\Hypertarget{_entity_8h_afba80426f5df447305cca8887a8ff92d}\label{_entity_8h_afba80426f5df447305cca8887a8ff92d}} 
+\index{Entity.h@{Entity.h}!operator+=@{operator+=}}
+\index{operator+=@{operator+=}!Entity.h@{Entity.h}}
+\doxysubsubsection{\texorpdfstring{operator+=()}{operator+=()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
+{\footnotesize\ttfamily \mbox{\hyperlink{classolc_1_1_transformed_view}{olc\+::\+Transformed\+View}}\& operator+= (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{classolc_1_1_transformed_view}{olc\+::\+Transformed\+View}} \&}]{,  }\item[{\mbox{\hyperlink{classentities_1_1_entity}{entities\+::\+Entity}} \&}]{ }\end{DoxyParamCaption})}
+
+I literally add entities to the scene \+:D 
+
+Definition at line 82 of file Entity.\+cpp.
+
+\mbox{\Hypertarget{_entity_8h_a2ed5201a4cd62b1183dd0a5b20f268cc}\label{_entity_8h_a2ed5201a4cd62b1183dd0a5b20f268cc}} 
+\index{Entity.h@{Entity.h}!operator+=@{operator+=}}
+\index{operator+=@{operator+=}!Entity.h@{Entity.h}}
+\doxysubsubsection{\texorpdfstring{operator+=()}{operator+=()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
+{\footnotesize\ttfamily \mbox{\hyperlink{classolc_1_1_transformed_view}{olc\+::\+Transformed\+View}}\& operator+= (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{classolc_1_1_transformed_view}{olc\+::\+Transformed\+View}} \&}]{,  }\item[{std\+::shared\+\_\+ptr$<$ \mbox{\hyperlink{classentities_1_1_entity}{entities\+::\+Entity}} $>$ \&}]{ }\end{DoxyParamCaption})}
+
+
+
+Definition at line 87 of file Entity.\+cpp.
+
diff --git a/doxy/latex/_entity_collection_8hpp.tex b/doxy/latex/_entity_collection_8hpp.tex
new file mode 100644
index 0000000000000000000000000000000000000000..5cc59c16a37b4ceb3ca49f489ec2e8de87309423
--- /dev/null
+++ b/doxy/latex/_entity_collection_8hpp.tex
@@ -0,0 +1,2 @@
+\hypertarget{_entity_collection_8hpp}{}\doxysection{C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\+Entity\+Collection.hpp File Reference}
+\label{_entity_collection_8hpp}\index{C:/Users/kosmx/Documents/GitHub/2d-\/game/EntityCollection.hpp@{C:/Users/kosmx/Documents/GitHub/2d-\/game/EntityCollection.hpp}}
diff --git a/doxy/latex/_entity_with_a_i_8cpp.tex b/doxy/latex/_entity_with_a_i_8cpp.tex
new file mode 100644
index 0000000000000000000000000000000000000000..73c407302e2ed7f5c72b54e575f4acd157f7e631
--- /dev/null
+++ b/doxy/latex/_entity_with_a_i_8cpp.tex
@@ -0,0 +1,29 @@
+\hypertarget{_entity_with_a_i_8cpp}{}\doxysection{C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\+Entity\+With\+AI.cpp File Reference}
+\label{_entity_with_a_i_8cpp}\index{C:/Users/kosmx/Documents/GitHub/2d-\/game/EntityWithAI.cpp@{C:/Users/kosmx/Documents/GitHub/2d-\/game/EntityWithAI.cpp}}
+{\ttfamily \#include \char`\"{}Entity\+With\+A\+I.\+h\char`\"{}}\newline
+{\ttfamily \#include \char`\"{}main\+Game.\+h\char`\"{}}\newline
+{\ttfamily \#include \char`\"{}Weapon.\+h\char`\"{}}\newline
+{\ttfamily \#include \char`\"{}Ranged\+Weapon.\+h\char`\"{}}\newline
+\doxysubsection*{Namespaces}
+\begin{DoxyCompactItemize}
+\item 
+ \mbox{\hyperlink{namespaceentities}{entities}}
+\end{DoxyCompactItemize}
+\doxysubsection*{Variables}
+\begin{DoxyCompactItemize}
+\item 
+const float \mbox{\hyperlink{_entity_with_a_i_8cpp_a57be3a52c6744615f203955322706cfc}{max\+Attack\+Cooldown}} = 1.\+2f
+\end{DoxyCompactItemize}
+
+
+\doxysubsection{Variable Documentation}
+\mbox{\Hypertarget{_entity_with_a_i_8cpp_a57be3a52c6744615f203955322706cfc}\label{_entity_with_a_i_8cpp_a57be3a52c6744615f203955322706cfc}} 
+\index{EntityWithAI.cpp@{EntityWithAI.cpp}!maxAttackCooldown@{maxAttackCooldown}}
+\index{maxAttackCooldown@{maxAttackCooldown}!EntityWithAI.cpp@{EntityWithAI.cpp}}
+\doxysubsubsection{\texorpdfstring{maxAttackCooldown}{maxAttackCooldown}}
+{\footnotesize\ttfamily const float max\+Attack\+Cooldown = 1.\+2f}
+
+
+
+Definition at line 10 of file Entity\+With\+A\+I.\+cpp.
+
diff --git a/doxy/latex/_entity_with_a_i_8h.tex b/doxy/latex/_entity_with_a_i_8h.tex
new file mode 100644
index 0000000000000000000000000000000000000000..794c9a33677e11c8cd60670f4a99f1357dbf0617
--- /dev/null
+++ b/doxy/latex/_entity_with_a_i_8h.tex
@@ -0,0 +1,13 @@
+\hypertarget{_entity_with_a_i_8h}{}\doxysection{C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\+Entity\+With\+AI.h File Reference}
+\label{_entity_with_a_i_8h}\index{C:/Users/kosmx/Documents/GitHub/2d-\/game/EntityWithAI.h@{C:/Users/kosmx/Documents/GitHub/2d-\/game/EntityWithAI.h}}
+{\ttfamily \#include \char`\"{}Character\+Entity.\+h\char`\"{}}\newline
+\doxysubsection*{Classes}
+\begin{DoxyCompactItemize}
+\item 
+class \mbox{\hyperlink{classentities_1_1_entity_with_a_i}{entities\+::\+Entity\+With\+AI}}
+\begin{DoxyCompactList}\small\item\em The enemies. go after the player, and try to kill it. \end{DoxyCompactList}\end{DoxyCompactItemize}
+\doxysubsection*{Namespaces}
+\begin{DoxyCompactItemize}
+\item 
+ \mbox{\hyperlink{namespaceentities}{entities}}
+\end{DoxyCompactItemize}
diff --git a/doxy/latex/_explosive_projectile_8cpp.tex b/doxy/latex/_explosive_projectile_8cpp.tex
new file mode 100644
index 0000000000000000000000000000000000000000..0766499945158cd9125e020302a2ad8f9fb52785
--- /dev/null
+++ b/doxy/latex/_explosive_projectile_8cpp.tex
@@ -0,0 +1,27 @@
+\hypertarget{_explosive_projectile_8cpp}{}\doxysection{C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\+Explosive\+Projectile.cpp File Reference}
+\label{_explosive_projectile_8cpp}\index{C:/Users/kosmx/Documents/GitHub/2d-\/game/ExplosiveProjectile.cpp@{C:/Users/kosmx/Documents/GitHub/2d-\/game/ExplosiveProjectile.cpp}}
+{\ttfamily \#include \char`\"{}Explosive\+Projectile.\+h\char`\"{}}\newline
+{\ttfamily \#include \char`\"{}main\+Game.\+h\char`\"{}}\newline
+\doxysubsection*{Namespaces}
+\begin{DoxyCompactItemize}
+\item 
+ \mbox{\hyperlink{namespaceentities}{entities}}
+\end{DoxyCompactItemize}
+\doxysubsection*{Variables}
+\begin{DoxyCompactItemize}
+\item 
+const float \mbox{\hyperlink{_explosive_projectile_8cpp_a5eca5e4f5f408cb99671021a490cfac4}{explosion\+Radius}} = 2.\+5
+\end{DoxyCompactItemize}
+
+
+\doxysubsection{Variable Documentation}
+\mbox{\Hypertarget{_explosive_projectile_8cpp_a5eca5e4f5f408cb99671021a490cfac4}\label{_explosive_projectile_8cpp_a5eca5e4f5f408cb99671021a490cfac4}} 
+\index{ExplosiveProjectile.cpp@{ExplosiveProjectile.cpp}!explosionRadius@{explosionRadius}}
+\index{explosionRadius@{explosionRadius}!ExplosiveProjectile.cpp@{ExplosiveProjectile.cpp}}
+\doxysubsubsection{\texorpdfstring{explosionRadius}{explosionRadius}}
+{\footnotesize\ttfamily const float explosion\+Radius = 2.\+5}
+
+
+
+Definition at line 6 of file Explosive\+Projectile.\+cpp.
+
diff --git a/doxy/latex/_explosive_projectile_8h.tex b/doxy/latex/_explosive_projectile_8h.tex
new file mode 100644
index 0000000000000000000000000000000000000000..b166d7a7e831290293eb93d1141eb55e3ae8df01
--- /dev/null
+++ b/doxy/latex/_explosive_projectile_8h.tex
@@ -0,0 +1,13 @@
+\hypertarget{_explosive_projectile_8h}{}\doxysection{C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\+Explosive\+Projectile.h File Reference}
+\label{_explosive_projectile_8h}\index{C:/Users/kosmx/Documents/GitHub/2d-\/game/ExplosiveProjectile.h@{C:/Users/kosmx/Documents/GitHub/2d-\/game/ExplosiveProjectile.h}}
+{\ttfamily \#include \char`\"{}Projectile\+Entity.\+h\char`\"{}}\newline
+\doxysubsection*{Classes}
+\begin{DoxyCompactItemize}
+\item 
+class \mbox{\hyperlink{classentities_1_1_explosive_projectile}{entities\+::\+Explosive\+Projectile}}
+\begin{DoxyCompactList}\small\item\em A projectile, that explodes. \end{DoxyCompactList}\end{DoxyCompactItemize}
+\doxysubsection*{Namespaces}
+\begin{DoxyCompactItemize}
+\item 
+ \mbox{\hyperlink{namespaceentities}{entities}}
+\end{DoxyCompactItemize}
diff --git a/doxy/latex/_game_exception_8cpp.tex b/doxy/latex/_game_exception_8cpp.tex
new file mode 100644
index 0000000000000000000000000000000000000000..b55b56995a2f6c1df6b2b00383e96fec11c961f5
--- /dev/null
+++ b/doxy/latex/_game_exception_8cpp.tex
@@ -0,0 +1,5 @@
+\hypertarget{_game_exception_8cpp}{}\doxysection{C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\+Game\+Exception.cpp File Reference}
+\label{_game_exception_8cpp}\index{C:/Users/kosmx/Documents/GitHub/2d-\/game/GameException.cpp@{C:/Users/kosmx/Documents/GitHub/2d-\/game/GameException.cpp}}
+{\ttfamily \#include \char`\"{}Game\+Exception.\+h\char`\"{}}\newline
+{\ttfamily \#include $<$iostream$>$}\newline
+{\ttfamily \#include \char`\"{}main\+Game.\+h\char`\"{}}\newline
diff --git a/doxy/latex/_game_exception_8h.tex b/doxy/latex/_game_exception_8h.tex
new file mode 100644
index 0000000000000000000000000000000000000000..4f0fe40602e7d9755b3fd2bc9d61856f84fe3c70
--- /dev/null
+++ b/doxy/latex/_game_exception_8h.tex
@@ -0,0 +1,13 @@
+\hypertarget{_game_exception_8h}{}\doxysection{C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\+Game\+Exception.h File Reference}
+\label{_game_exception_8h}\index{C:/Users/kosmx/Documents/GitHub/2d-\/game/GameException.h@{C:/Users/kosmx/Documents/GitHub/2d-\/game/GameException.h}}
+{\ttfamily \#include $<$stdexcept$>$}\newline
+\doxysubsection*{Classes}
+\begin{DoxyCompactItemize}
+\item 
+class \mbox{\hyperlink{class_game_exception}{Game\+Exception}}
+\end{DoxyCompactItemize}
+\doxysubsection*{Namespaces}
+\begin{DoxyCompactItemize}
+\item 
+ \mbox{\hyperlink{namespaceentities}{entities}}
+\end{DoxyCompactItemize}
diff --git a/doxy/latex/_glitch_gun_8cpp.tex b/doxy/latex/_glitch_gun_8cpp.tex
new file mode 100644
index 0000000000000000000000000000000000000000..5cb4c7b415bab2d3282c7a6b154aee79505a8793
--- /dev/null
+++ b/doxy/latex/_glitch_gun_8cpp.tex
@@ -0,0 +1,10 @@
+\hypertarget{_glitch_gun_8cpp}{}\doxysection{C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\+Glitch\+Gun.cpp File Reference}
+\label{_glitch_gun_8cpp}\index{C:/Users/kosmx/Documents/GitHub/2d-\/game/GlitchGun.cpp@{C:/Users/kosmx/Documents/GitHub/2d-\/game/GlitchGun.cpp}}
+{\ttfamily \#include \char`\"{}Glitch\+Gun.\+h\char`\"{}}\newline
+{\ttfamily \#include \char`\"{}Explosive\+Projectile.\+h\char`\"{}}\newline
+{\ttfamily \#include \char`\"{}main\+Game.\+h\char`\"{}}\newline
+\doxysubsection*{Namespaces}
+\begin{DoxyCompactItemize}
+\item 
+ \mbox{\hyperlink{namespaceweapons}{weapons}}
+\end{DoxyCompactItemize}
diff --git a/doxy/latex/_glitch_gun_8h.tex b/doxy/latex/_glitch_gun_8h.tex
new file mode 100644
index 0000000000000000000000000000000000000000..38d36335cb85630a74a93d6a4fd9952a9c96d52a
--- /dev/null
+++ b/doxy/latex/_glitch_gun_8h.tex
@@ -0,0 +1,15 @@
+\hypertarget{_glitch_gun_8h}{}\doxysection{C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\+Glitch\+Gun.h File Reference}
+\label{_glitch_gun_8h}\index{C:/Users/kosmx/Documents/GitHub/2d-\/game/GlitchGun.h@{C:/Users/kosmx/Documents/GitHub/2d-\/game/GlitchGun.h}}
+{\ttfamily \#include \char`\"{}E\+M\+Gun.\+h\char`\"{}}\newline
+\doxysubsection*{Classes}
+\begin{DoxyCompactItemize}
+\item 
+class \mbox{\hyperlink{classweapons_1_1_glitch_texture}{weapons\+::\+Glitch\+Texture}}
+\begin{DoxyCompactList}\small\item\em Texture for the bug weapon. \end{DoxyCompactList}\item 
+class \mbox{\hyperlink{classweapons_1_1_glitch_gun}{weapons\+::\+Glitch\+Gun}}
+\begin{DoxyCompactList}\small\item\em T\+O\+DO make the bug weapon more buggy. \end{DoxyCompactList}\end{DoxyCompactItemize}
+\doxysubsection*{Namespaces}
+\begin{DoxyCompactItemize}
+\item 
+ \mbox{\hyperlink{namespaceweapons}{weapons}}
+\end{DoxyCompactItemize}
diff --git a/doxy/latex/_i_texture_8h.tex b/doxy/latex/_i_texture_8h.tex
new file mode 100644
index 0000000000000000000000000000000000000000..aaeda30c7ce57b669be043697b0c6d7826c6db0c
--- /dev/null
+++ b/doxy/latex/_i_texture_8h.tex
@@ -0,0 +1,16 @@
+\hypertarget{_i_texture_8h}{}\doxysection{C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\+I\+Texture.h File Reference}
+\label{_i_texture_8h}\index{C:/Users/kosmx/Documents/GitHub/2d-\/game/ITexture.h@{C:/Users/kosmx/Documents/GitHub/2d-\/game/ITexture.h}}
+{\ttfamily \#include \char`\"{}olc\+P\+G\+E\+X\+\_\+\+Transformed\+View.\+h\char`\"{}}\newline
+{\ttfamily \#include \char`\"{}Lazy\+Sprite.\+h\char`\"{}}\newline
+\doxysubsection*{Classes}
+\begin{DoxyCompactItemize}
+\item 
+class \mbox{\hyperlink{classrender_1_1_i_texture}{render\+::\+I\+Texture}}
+\begin{DoxyCompactList}\small\item\em Every texture, what can render an entity. \end{DoxyCompactList}\end{DoxyCompactItemize}
+\doxysubsection*{Namespaces}
+\begin{DoxyCompactItemize}
+\item 
+ \mbox{\hyperlink{namespaceentities}{entities}}
+\item 
+ \mbox{\hyperlink{namespacerender}{render}}
+\end{DoxyCompactItemize}
diff --git a/doxy/latex/_lazy_sprite_8cpp.tex b/doxy/latex/_lazy_sprite_8cpp.tex
new file mode 100644
index 0000000000000000000000000000000000000000..06d86f72de0d1018fa009615719d410ddeb6d18a
--- /dev/null
+++ b/doxy/latex/_lazy_sprite_8cpp.tex
@@ -0,0 +1,10 @@
+\hypertarget{_lazy_sprite_8cpp}{}\doxysection{C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\+Lazy\+Sprite.cpp File Reference}
+\label{_lazy_sprite_8cpp}\index{C:/Users/kosmx/Documents/GitHub/2d-\/game/LazySprite.cpp@{C:/Users/kosmx/Documents/GitHub/2d-\/game/LazySprite.cpp}}
+{\ttfamily \#include \char`\"{}Lazy\+Sprite.\+h\char`\"{}}\newline
+{\ttfamily \#include \char`\"{}olc\+P\+G\+E\+X\+\_\+\+Transformed\+View.\+h\char`\"{}}\newline
+{\ttfamily \#include \char`\"{}Resource\+Manager.\+h\char`\"{}}\newline
+\doxysubsection*{Namespaces}
+\begin{DoxyCompactItemize}
+\item 
+ \mbox{\hyperlink{namespacerender}{render}}
+\end{DoxyCompactItemize}
diff --git a/doxy/latex/_lazy_sprite_8h.tex b/doxy/latex/_lazy_sprite_8h.tex
new file mode 100644
index 0000000000000000000000000000000000000000..099c9924def46d748a94a7c59e9597e75b40a3f5
--- /dev/null
+++ b/doxy/latex/_lazy_sprite_8h.tex
@@ -0,0 +1,15 @@
+\hypertarget{_lazy_sprite_8h}{}\doxysection{C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\+Lazy\+Sprite.h File Reference}
+\label{_lazy_sprite_8h}\index{C:/Users/kosmx/Documents/GitHub/2d-\/game/LazySprite.h@{C:/Users/kosmx/Documents/GitHub/2d-\/game/LazySprite.h}}
+{\ttfamily \#include $<$string$>$}\newline
+{\ttfamily \#include \char`\"{}olc\+Pixel\+Game\+Engine.\+h\char`\"{}}\newline
+{\ttfamily \#include \char`\"{}olc\+P\+G\+E\+X\+\_\+\+Transformed\+View.\+h\char`\"{}}\newline
+\doxysubsection*{Classes}
+\begin{DoxyCompactItemize}
+\item 
+class \mbox{\hyperlink{classrender_1_1_lazy_sprite}{render\+::\+Lazy\+Sprite}}
+\begin{DoxyCompactList}\small\item\em Refer to one texture, not animated, not modifiable, just a simple image. Lazy loading means, it will load it only, when you\textquotesingle{}re trying to use it. \end{DoxyCompactList}\end{DoxyCompactItemize}
+\doxysubsection*{Namespaces}
+\begin{DoxyCompactItemize}
+\item 
+ \mbox{\hyperlink{namespacerender}{render}}
+\end{DoxyCompactItemize}
diff --git a/doxy/latex/_living_entity_8cpp.tex b/doxy/latex/_living_entity_8cpp.tex
new file mode 100644
index 0000000000000000000000000000000000000000..2f2346e81b2a57bca2247bde980bdc4d1f6ae49d
--- /dev/null
+++ b/doxy/latex/_living_entity_8cpp.tex
@@ -0,0 +1,10 @@
+\hypertarget{_living_entity_8cpp}{}\doxysection{C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\+Living\+Entity.cpp File Reference}
+\label{_living_entity_8cpp}\index{C:/Users/kosmx/Documents/GitHub/2d-\/game/LivingEntity.cpp@{C:/Users/kosmx/Documents/GitHub/2d-\/game/LivingEntity.cpp}}
+{\ttfamily \#include \char`\"{}Living\+Entity.\+h\char`\"{}}\newline
+{\ttfamily \#include \char`\"{}main\+Game.\+h\char`\"{}}\newline
+{\ttfamily \#include \char`\"{}Wall\+Entity.\+h\char`\"{}}\newline
+\doxysubsection*{Namespaces}
+\begin{DoxyCompactItemize}
+\item 
+ \mbox{\hyperlink{namespaceentities}{entities}}
+\end{DoxyCompactItemize}
diff --git a/doxy/latex/_living_entity_8h.tex b/doxy/latex/_living_entity_8h.tex
new file mode 100644
index 0000000000000000000000000000000000000000..1cdc1ac5d0425b18608ae7f9fb2e8a14a5d1d0e9
--- /dev/null
+++ b/doxy/latex/_living_entity_8h.tex
@@ -0,0 +1,13 @@
+\hypertarget{_living_entity_8h}{}\doxysection{C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\+Living\+Entity.h File Reference}
+\label{_living_entity_8h}\index{C:/Users/kosmx/Documents/GitHub/2d-\/game/LivingEntity.h@{C:/Users/kosmx/Documents/GitHub/2d-\/game/LivingEntity.h}}
+{\ttfamily \#include \char`\"{}Entity.\+h\char`\"{}}\newline
+\doxysubsection*{Classes}
+\begin{DoxyCompactItemize}
+\item 
+class \mbox{\hyperlink{classentities_1_1_living_entity}{entities\+::\+Living\+Entity}}
+\begin{DoxyCompactList}\small\item\em Any moving animal or player. \end{DoxyCompactList}\end{DoxyCompactItemize}
+\doxysubsection*{Namespaces}
+\begin{DoxyCompactItemize}
+\item 
+ \mbox{\hyperlink{namespaceentities}{entities}}
+\end{DoxyCompactItemize}
diff --git a/doxy/latex/_melee_weapon_8cpp.tex b/doxy/latex/_melee_weapon_8cpp.tex
new file mode 100644
index 0000000000000000000000000000000000000000..c34068895afe4ad796aba520089a39bad31d2564
--- /dev/null
+++ b/doxy/latex/_melee_weapon_8cpp.tex
@@ -0,0 +1,9 @@
+\hypertarget{_melee_weapon_8cpp}{}\doxysection{C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\+Melee\+Weapon.cpp File Reference}
+\label{_melee_weapon_8cpp}\index{C:/Users/kosmx/Documents/GitHub/2d-\/game/MeleeWeapon.cpp@{C:/Users/kosmx/Documents/GitHub/2d-\/game/MeleeWeapon.cpp}}
+{\ttfamily \#include \char`\"{}Melee\+Weapon.\+h\char`\"{}}\newline
+{\ttfamily \#include \char`\"{}main\+Game.\+h\char`\"{}}\newline
+\doxysubsection*{Namespaces}
+\begin{DoxyCompactItemize}
+\item 
+ \mbox{\hyperlink{namespaceweapons}{weapons}}
+\end{DoxyCompactItemize}
diff --git a/doxy/latex/_melee_weapon_8h.tex b/doxy/latex/_melee_weapon_8h.tex
new file mode 100644
index 0000000000000000000000000000000000000000..b4dcab65a7bd59f91084d7bfb522cba3eaac7255
--- /dev/null
+++ b/doxy/latex/_melee_weapon_8h.tex
@@ -0,0 +1,16 @@
+\hypertarget{_melee_weapon_8h}{}\doxysection{C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\+Melee\+Weapon.h File Reference}
+\label{_melee_weapon_8h}\index{C:/Users/kosmx/Documents/GitHub/2d-\/game/MeleeWeapon.h@{C:/Users/kosmx/Documents/GitHub/2d-\/game/MeleeWeapon.h}}
+{\ttfamily \#include \char`\"{}Weapon.\+h\char`\"{}}\newline
+{\ttfamily \#include $<$functional$>$}\newline
+\doxysubsection*{Classes}
+\begin{DoxyCompactItemize}
+\item 
+class \mbox{\hyperlink{classweapons_1_1_melee_weapon}{weapons\+::\+Melee\+Weapon}}
+\begin{DoxyCompactList}\small\item\em A melee weapon, like a spoon. \end{DoxyCompactList}\item 
+class \mbox{\hyperlink{classweapons_1_1_melee_weapon_1_1predicate_distance}{weapons\+::\+Melee\+Weapon\+::predicate\+Distance}}
+\begin{DoxyCompactList}\small\item\em Functor to predicate entity distance. You can also use lambda, if you want. \end{DoxyCompactList}\end{DoxyCompactItemize}
+\doxysubsection*{Namespaces}
+\begin{DoxyCompactItemize}
+\item 
+ \mbox{\hyperlink{namespaceweapons}{weapons}}
+\end{DoxyCompactItemize}
diff --git a/doxy/latex/_pistol_8cpp.tex b/doxy/latex/_pistol_8cpp.tex
new file mode 100644
index 0000000000000000000000000000000000000000..156eaffc2d479dfb51b9bede83d597fcb234efb4
--- /dev/null
+++ b/doxy/latex/_pistol_8cpp.tex
@@ -0,0 +1,10 @@
+\hypertarget{_pistol_8cpp}{}\doxysection{C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\+Pistol.cpp File Reference}
+\label{_pistol_8cpp}\index{C:/Users/kosmx/Documents/GitHub/2d-\/game/Pistol.cpp@{C:/Users/kosmx/Documents/GitHub/2d-\/game/Pistol.cpp}}
+{\ttfamily \#include \char`\"{}Pistol.\+h\char`\"{}}\newline
+{\ttfamily \#include \char`\"{}main\+Game.\+h\char`\"{}}\newline
+{\ttfamily \#include \char`\"{}Projectile\+Entity.\+h\char`\"{}}\newline
+\doxysubsection*{Namespaces}
+\begin{DoxyCompactItemize}
+\item 
+ \mbox{\hyperlink{namespaceweapons}{weapons}}
+\end{DoxyCompactItemize}
diff --git a/doxy/latex/_pistol_8h.tex b/doxy/latex/_pistol_8h.tex
new file mode 100644
index 0000000000000000000000000000000000000000..5735d5de4345bbfeaba4fd2d63147cb5cd4a8e7a
--- /dev/null
+++ b/doxy/latex/_pistol_8h.tex
@@ -0,0 +1,13 @@
+\hypertarget{_pistol_8h}{}\doxysection{C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\+Pistol.h File Reference}
+\label{_pistol_8h}\index{C:/Users/kosmx/Documents/GitHub/2d-\/game/Pistol.h@{C:/Users/kosmx/Documents/GitHub/2d-\/game/Pistol.h}}
+{\ttfamily \#include \char`\"{}Ranged\+Weapon.\+h\char`\"{}}\newline
+\doxysubsection*{Classes}
+\begin{DoxyCompactItemize}
+\item 
+class \mbox{\hyperlink{classweapons_1_1_pistol}{weapons\+::\+Pistol}}
+\begin{DoxyCompactList}\small\item\em Just a pistol, nothing too dangerous. \end{DoxyCompactList}\end{DoxyCompactItemize}
+\doxysubsection*{Namespaces}
+\begin{DoxyCompactItemize}
+\item 
+ \mbox{\hyperlink{namespaceweapons}{weapons}}
+\end{DoxyCompactItemize}
diff --git a/doxy/latex/_player_entity_8cpp.tex b/doxy/latex/_player_entity_8cpp.tex
new file mode 100644
index 0000000000000000000000000000000000000000..667df89abe3bc485fdc65e1f6e44415ceee4308d
--- /dev/null
+++ b/doxy/latex/_player_entity_8cpp.tex
@@ -0,0 +1,28 @@
+\hypertarget{_player_entity_8cpp}{}\doxysection{C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\+Player\+Entity.cpp File Reference}
+\label{_player_entity_8cpp}\index{C:/Users/kosmx/Documents/GitHub/2d-\/game/PlayerEntity.cpp@{C:/Users/kosmx/Documents/GitHub/2d-\/game/PlayerEntity.cpp}}
+{\ttfamily \#include \char`\"{}Player\+Entity.\+h\char`\"{}}\newline
+{\ttfamily \#include \char`\"{}main\+Game.\+h\char`\"{}}\newline
+{\ttfamily \#include \char`\"{}Weapon.\+h\char`\"{}}\newline
+\doxysubsection*{Namespaces}
+\begin{DoxyCompactItemize}
+\item 
+ \mbox{\hyperlink{namespaceentities}{entities}}
+\end{DoxyCompactItemize}
+\doxysubsection*{Variables}
+\begin{DoxyCompactItemize}
+\item 
+const float \mbox{\hyperlink{_player_entity_8cpp_a3c781e763876e55aa6ab889f192e17ca}{max\+Weapon\+Pickup\+Range}} = 1
+\end{DoxyCompactItemize}
+
+
+\doxysubsection{Variable Documentation}
+\mbox{\Hypertarget{_player_entity_8cpp_a3c781e763876e55aa6ab889f192e17ca}\label{_player_entity_8cpp_a3c781e763876e55aa6ab889f192e17ca}} 
+\index{PlayerEntity.cpp@{PlayerEntity.cpp}!maxWeaponPickupRange@{maxWeaponPickupRange}}
+\index{maxWeaponPickupRange@{maxWeaponPickupRange}!PlayerEntity.cpp@{PlayerEntity.cpp}}
+\doxysubsubsection{\texorpdfstring{maxWeaponPickupRange}{maxWeaponPickupRange}}
+{\footnotesize\ttfamily const float max\+Weapon\+Pickup\+Range = 1}
+
+
+
+Definition at line 8 of file Player\+Entity.\+cpp.
+
diff --git a/doxy/latex/_player_entity_8h.tex b/doxy/latex/_player_entity_8h.tex
new file mode 100644
index 0000000000000000000000000000000000000000..2b10f1bc1eaff57ec941ca093f94471ecbcf1466
--- /dev/null
+++ b/doxy/latex/_player_entity_8h.tex
@@ -0,0 +1,14 @@
+\hypertarget{_player_entity_8h}{}\doxysection{C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\+Player\+Entity.h File Reference}
+\label{_player_entity_8h}\index{C:/Users/kosmx/Documents/GitHub/2d-\/game/PlayerEntity.h@{C:/Users/kosmx/Documents/GitHub/2d-\/game/PlayerEntity.h}}
+{\ttfamily \#include \char`\"{}Character\+Entity.\+h\char`\"{}}\newline
+{\ttfamily \#include $<$vector$>$}\newline
+\doxysubsection*{Classes}
+\begin{DoxyCompactItemize}
+\item 
+class \mbox{\hyperlink{classentities_1_1_player_entity}{entities\+::\+Player\+Entity}}
+\begin{DoxyCompactList}\small\item\em You, or the player. \end{DoxyCompactList}\end{DoxyCompactItemize}
+\doxysubsection*{Namespaces}
+\begin{DoxyCompactItemize}
+\item 
+ \mbox{\hyperlink{namespaceentities}{entities}}
+\end{DoxyCompactItemize}
diff --git a/doxy/latex/_projectile_entity_8cpp.tex b/doxy/latex/_projectile_entity_8cpp.tex
new file mode 100644
index 0000000000000000000000000000000000000000..cecfb304bb083ae4600166245671c3b5dd8fe7d1
--- /dev/null
+++ b/doxy/latex/_projectile_entity_8cpp.tex
@@ -0,0 +1,28 @@
+\hypertarget{_projectile_entity_8cpp}{}\doxysection{C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\+Projectile\+Entity.cpp File Reference}
+\label{_projectile_entity_8cpp}\index{C:/Users/kosmx/Documents/GitHub/2d-\/game/ProjectileEntity.cpp@{C:/Users/kosmx/Documents/GitHub/2d-\/game/ProjectileEntity.cpp}}
+{\ttfamily \#include \char`\"{}Projectile\+Entity.\+h\char`\"{}}\newline
+{\ttfamily \#include \char`\"{}Living\+Entity.\+h\char`\"{}}\newline
+{\ttfamily \#include \char`\"{}main\+Game.\+h\char`\"{}}\newline
+\doxysubsection*{Namespaces}
+\begin{DoxyCompactItemize}
+\item 
+ \mbox{\hyperlink{namespaceentities}{entities}}
+\end{DoxyCompactItemize}
+\doxysubsection*{Variables}
+\begin{DoxyCompactItemize}
+\item 
+const float \mbox{\hyperlink{_projectile_entity_8cpp_a3e9bff6f87d6a4caeac7578a37192511}{max\+Projectile\+Age}} = 16.f
+\end{DoxyCompactItemize}
+
+
+\doxysubsection{Variable Documentation}
+\mbox{\Hypertarget{_projectile_entity_8cpp_a3e9bff6f87d6a4caeac7578a37192511}\label{_projectile_entity_8cpp_a3e9bff6f87d6a4caeac7578a37192511}} 
+\index{ProjectileEntity.cpp@{ProjectileEntity.cpp}!maxProjectileAge@{maxProjectileAge}}
+\index{maxProjectileAge@{maxProjectileAge}!ProjectileEntity.cpp@{ProjectileEntity.cpp}}
+\doxysubsubsection{\texorpdfstring{maxProjectileAge}{maxProjectileAge}}
+{\footnotesize\ttfamily const float max\+Projectile\+Age = 16.f}
+
+
+
+Definition at line 6 of file Projectile\+Entity.\+cpp.
+
diff --git a/doxy/latex/_projectile_entity_8h.tex b/doxy/latex/_projectile_entity_8h.tex
new file mode 100644
index 0000000000000000000000000000000000000000..35cf1127fb17414ac8c23d51f6acfc838ee4570a
--- /dev/null
+++ b/doxy/latex/_projectile_entity_8h.tex
@@ -0,0 +1,14 @@
+\hypertarget{_projectile_entity_8h}{}\doxysection{C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\+Projectile\+Entity.h File Reference}
+\label{_projectile_entity_8h}\index{C:/Users/kosmx/Documents/GitHub/2d-\/game/ProjectileEntity.h@{C:/Users/kosmx/Documents/GitHub/2d-\/game/ProjectileEntity.h}}
+{\ttfamily \#include \char`\"{}Entity.\+h\char`\"{}}\newline
+{\ttfamily \#include \char`\"{}Simple\+Sprite.\+h\char`\"{}}\newline
+\doxysubsection*{Classes}
+\begin{DoxyCompactItemize}
+\item 
+class \mbox{\hyperlink{classentities_1_1_projectile_entity}{entities\+::\+Projectile\+Entity}}
+\begin{DoxyCompactList}\small\item\em A projectile, a bullet. \end{DoxyCompactList}\end{DoxyCompactItemize}
+\doxysubsection*{Namespaces}
+\begin{DoxyCompactItemize}
+\item 
+ \mbox{\hyperlink{namespaceentities}{entities}}
+\end{DoxyCompactItemize}
diff --git a/doxy/latex/_r_e_a_d_m_e_8md.tex b/doxy/latex/_r_e_a_d_m_e_8md.tex
new file mode 100644
index 0000000000000000000000000000000000000000..8534baa0ff6963669003f3af1c7124419fcd7e66
--- /dev/null
+++ b/doxy/latex/_r_e_a_d_m_e_8md.tex
@@ -0,0 +1,2 @@
+\hypertarget{_r_e_a_d_m_e_8md}{}\doxysection{C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\+R\+E\+A\+D\+ME.md File Reference}
+\label{_r_e_a_d_m_e_8md}\index{C:/Users/kosmx/Documents/GitHub/2d-\/game/README.md@{C:/Users/kosmx/Documents/GitHub/2d-\/game/README.md}}
diff --git a/doxy/latex/_ranged_weapon_8cpp.tex b/doxy/latex/_ranged_weapon_8cpp.tex
new file mode 100644
index 0000000000000000000000000000000000000000..07fd8c1b5d21592f78e6ac2c476cb669ba699411
--- /dev/null
+++ b/doxy/latex/_ranged_weapon_8cpp.tex
@@ -0,0 +1,11 @@
+\hypertarget{_ranged_weapon_8cpp}{}\doxysection{C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\+Ranged\+Weapon.cpp File Reference}
+\label{_ranged_weapon_8cpp}\index{C:/Users/kosmx/Documents/GitHub/2d-\/game/RangedWeapon.cpp@{C:/Users/kosmx/Documents/GitHub/2d-\/game/RangedWeapon.cpp}}
+{\ttfamily \#include \char`\"{}Ranged\+Weapon.\+h\char`\"{}}\newline
+{\ttfamily \#include \char`\"{}Pistol.\+h\char`\"{}}\newline
+{\ttfamily \#include \char`\"{}Weapon\+Textures.\+h\char`\"{}}\newline
+{\ttfamily \#include \char`\"{}E\+M\+Gun.\+h\char`\"{}}\newline
+\doxysubsection*{Namespaces}
+\begin{DoxyCompactItemize}
+\item 
+ \mbox{\hyperlink{namespaceweapons}{weapons}}
+\end{DoxyCompactItemize}
diff --git a/doxy/latex/_ranged_weapon_8h.tex b/doxy/latex/_ranged_weapon_8h.tex
new file mode 100644
index 0000000000000000000000000000000000000000..b8230c598bf5a1582bb1502c0f2e063895f7da95
--- /dev/null
+++ b/doxy/latex/_ranged_weapon_8h.tex
@@ -0,0 +1,13 @@
+\hypertarget{_ranged_weapon_8h}{}\doxysection{C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\+Ranged\+Weapon.h File Reference}
+\label{_ranged_weapon_8h}\index{C:/Users/kosmx/Documents/GitHub/2d-\/game/RangedWeapon.h@{C:/Users/kosmx/Documents/GitHub/2d-\/game/RangedWeapon.h}}
+{\ttfamily \#include \char`\"{}Weapon.\+h\char`\"{}}\newline
+\doxysubsection*{Classes}
+\begin{DoxyCompactItemize}
+\item 
+class \mbox{\hyperlink{classweapons_1_1_ranged_weapon}{weapons\+::\+Ranged\+Weapon}}
+\begin{DoxyCompactList}\small\item\em Any weapon, what does shoot. not melee. \end{DoxyCompactList}\end{DoxyCompactItemize}
+\doxysubsection*{Namespaces}
+\begin{DoxyCompactItemize}
+\item 
+ \mbox{\hyperlink{namespaceweapons}{weapons}}
+\end{DoxyCompactItemize}
diff --git a/doxy/latex/_render_exception_8cpp.tex b/doxy/latex/_render_exception_8cpp.tex
new file mode 100644
index 0000000000000000000000000000000000000000..3f4c19e5c1e5e73e6a09fa02d76568120e11662a
--- /dev/null
+++ b/doxy/latex/_render_exception_8cpp.tex
@@ -0,0 +1,3 @@
+\hypertarget{_render_exception_8cpp}{}\doxysection{C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\+Render\+Exception.cpp File Reference}
+\label{_render_exception_8cpp}\index{C:/Users/kosmx/Documents/GitHub/2d-\/game/RenderException.cpp@{C:/Users/kosmx/Documents/GitHub/2d-\/game/RenderException.cpp}}
+{\ttfamily \#include \char`\"{}Render\+Exception.\+h\char`\"{}}\newline
diff --git a/doxy/latex/_render_exception_8h.tex b/doxy/latex/_render_exception_8h.tex
new file mode 100644
index 0000000000000000000000000000000000000000..35350d16aed81ffcca5b0b82bedb29110fa7e7f4
--- /dev/null
+++ b/doxy/latex/_render_exception_8h.tex
@@ -0,0 +1,7 @@
+\hypertarget{_render_exception_8h}{}\doxysection{C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\+Render\+Exception.h File Reference}
+\label{_render_exception_8h}\index{C:/Users/kosmx/Documents/GitHub/2d-\/game/RenderException.h@{C:/Users/kosmx/Documents/GitHub/2d-\/game/RenderException.h}}
+\doxysubsection*{Classes}
+\begin{DoxyCompactItemize}
+\item 
+class \mbox{\hyperlink{class_render_exception}{Render\+Exception}}
+\end{DoxyCompactItemize}
diff --git a/doxy/latex/_resource_manager_8cpp.tex b/doxy/latex/_resource_manager_8cpp.tex
new file mode 100644
index 0000000000000000000000000000000000000000..2aba6433efce77015e1617de5f8ab7c1024f03b1
--- /dev/null
+++ b/doxy/latex/_resource_manager_8cpp.tex
@@ -0,0 +1,8 @@
+\hypertarget{_resource_manager_8cpp}{}\doxysection{C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\+Resource\+Manager.cpp File Reference}
+\label{_resource_manager_8cpp}\index{C:/Users/kosmx/Documents/GitHub/2d-\/game/ResourceManager.cpp@{C:/Users/kosmx/Documents/GitHub/2d-\/game/ResourceManager.cpp}}
+{\ttfamily \#include \char`\"{}Resource\+Manager.\+h\char`\"{}}\newline
+\doxysubsection*{Namespaces}
+\begin{DoxyCompactItemize}
+\item 
+ \mbox{\hyperlink{namespacerender}{render}}
+\end{DoxyCompactItemize}
diff --git a/doxy/latex/_resource_manager_8h.tex b/doxy/latex/_resource_manager_8h.tex
new file mode 100644
index 0000000000000000000000000000000000000000..334ebc8a7a29b74368f8749790bb26b9af78d9e2
--- /dev/null
+++ b/doxy/latex/_resource_manager_8h.tex
@@ -0,0 +1,16 @@
+\hypertarget{_resource_manager_8h}{}\doxysection{C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\+Resource\+Manager.h File Reference}
+\label{_resource_manager_8h}\index{C:/Users/kosmx/Documents/GitHub/2d-\/game/ResourceManager.h@{C:/Users/kosmx/Documents/GitHub/2d-\/game/ResourceManager.h}}
+{\ttfamily \#include $<$string$>$}\newline
+{\ttfamily \#include \char`\"{}olc\+Pixel\+Game\+Engine.\+h\char`\"{}}\newline
+\doxysubsection*{Classes}
+\begin{DoxyCompactItemize}
+\item 
+class \mbox{\hyperlink{classrender_1_1_resource_manager}{render\+::\+Resource\+Manager}}
+\begin{DoxyCompactList}\small\item\em Load every sprite only once, act as a set for loaded textures. \end{DoxyCompactList}\item 
+class \mbox{\hyperlink{classrender_1_1_sprite_manager}{render\+::\+Sprite\+Manager}}
+\end{DoxyCompactItemize}
+\doxysubsection*{Namespaces}
+\begin{DoxyCompactItemize}
+\item 
+ \mbox{\hyperlink{namespacerender}{render}}
+\end{DoxyCompactItemize}
diff --git a/doxy/latex/_simple_sprite_8cpp.tex b/doxy/latex/_simple_sprite_8cpp.tex
new file mode 100644
index 0000000000000000000000000000000000000000..813fa6ee7fe9cd17b4002317be082a618dbd634d
--- /dev/null
+++ b/doxy/latex/_simple_sprite_8cpp.tex
@@ -0,0 +1,4 @@
+\hypertarget{_simple_sprite_8cpp}{}\doxysection{C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\+Simple\+Sprite.cpp File Reference}
+\label{_simple_sprite_8cpp}\index{C:/Users/kosmx/Documents/GitHub/2d-\/game/SimpleSprite.cpp@{C:/Users/kosmx/Documents/GitHub/2d-\/game/SimpleSprite.cpp}}
+{\ttfamily \#include \char`\"{}Simple\+Sprite.\+h\char`\"{}}\newline
+{\ttfamily \#include \char`\"{}Entity.\+h\char`\"{}}\newline
diff --git a/doxy/latex/_simple_sprite_8h.tex b/doxy/latex/_simple_sprite_8h.tex
new file mode 100644
index 0000000000000000000000000000000000000000..b7cf5d34ac01e735c7b28f6590a4a4e211ffb2d2
--- /dev/null
+++ b/doxy/latex/_simple_sprite_8h.tex
@@ -0,0 +1,15 @@
+\hypertarget{_simple_sprite_8h}{}\doxysection{C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\+Simple\+Sprite.h File Reference}
+\label{_simple_sprite_8h}\index{C:/Users/kosmx/Documents/GitHub/2d-\/game/SimpleSprite.h@{C:/Users/kosmx/Documents/GitHub/2d-\/game/SimpleSprite.h}}
+{\ttfamily \#include \char`\"{}I\+Texture.\+h\char`\"{}}\newline
+{\ttfamily \#include $<$string$>$}\newline
+{\ttfamily \#include \char`\"{}Lazy\+Sprite.\+h\char`\"{}}\newline
+\doxysubsection*{Classes}
+\begin{DoxyCompactItemize}
+\item 
+class \mbox{\hyperlink{classrender_1_1_simple_sprite}{render\+::\+Simple\+Sprite}}
+\begin{DoxyCompactList}\small\item\em Simplest useable texture. \end{DoxyCompactList}\end{DoxyCompactItemize}
+\doxysubsection*{Namespaces}
+\begin{DoxyCompactItemize}
+\item 
+ \mbox{\hyperlink{namespacerender}{render}}
+\end{DoxyCompactItemize}
diff --git a/doxy/latex/_square_room_generator_8cpp.tex b/doxy/latex/_square_room_generator_8cpp.tex
new file mode 100644
index 0000000000000000000000000000000000000000..8902280369193e9c094873af0de7bb04335c828d
--- /dev/null
+++ b/doxy/latex/_square_room_generator_8cpp.tex
@@ -0,0 +1,42 @@
+\hypertarget{_square_room_generator_8cpp}{}\doxysection{C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\+Square\+Room\+Generator.cpp File Reference}
+\label{_square_room_generator_8cpp}\index{C:/Users/kosmx/Documents/GitHub/2d-\/game/SquareRoomGenerator.cpp@{C:/Users/kosmx/Documents/GitHub/2d-\/game/SquareRoomGenerator.cpp}}
+{\ttfamily \#include \char`\"{}Square\+Room\+Generator.\+h\char`\"{}}\newline
+{\ttfamily \#include \char`\"{}olc.\+h\char`\"{}}\newline
+{\ttfamily \#include \char`\"{}Player\+Entity.\+h\char`\"{}}\newline
+{\ttfamily \#include \char`\"{}Glitch\+Gun.\+h\char`\"{}}\newline
+{\ttfamily \#include \char`\"{}Typical\+Melee\+Weapon.\+h\char`\"{}}\newline
+{\ttfamily \#include \char`\"{}Wall\+Entity.\+h\char`\"{}}\newline
+{\ttfamily \#include $<$random$>$}\newline
+{\ttfamily \#include \char`\"{}Character\+Texture.\+h\char`\"{}}\newline
+{\ttfamily \#include \char`\"{}main\+Game.\+h\char`\"{}}\newline
+{\ttfamily \#include \char`\"{}Entity\+With\+A\+I.\+h\char`\"{}}\newline
+\doxysubsection*{Variables}
+\begin{DoxyCompactItemize}
+\item 
+const int \mbox{\hyperlink{_square_room_generator_8cpp_af598d998387dbc59923042b09ff6a63a}{max\+Size}} = 64
+\item 
+const int \mbox{\hyperlink{_square_room_generator_8cpp_a03e2392026add58812e6bad00bee5b84}{min\+Size}} = 32
+\end{DoxyCompactItemize}
+
+
+\doxysubsection{Variable Documentation}
+\mbox{\Hypertarget{_square_room_generator_8cpp_af598d998387dbc59923042b09ff6a63a}\label{_square_room_generator_8cpp_af598d998387dbc59923042b09ff6a63a}} 
+\index{SquareRoomGenerator.cpp@{SquareRoomGenerator.cpp}!maxSize@{maxSize}}
+\index{maxSize@{maxSize}!SquareRoomGenerator.cpp@{SquareRoomGenerator.cpp}}
+\doxysubsubsection{\texorpdfstring{maxSize}{maxSize}}
+{\footnotesize\ttfamily const int max\+Size = 64}
+
+
+
+Definition at line 14 of file Square\+Room\+Generator.\+cpp.
+
+\mbox{\Hypertarget{_square_room_generator_8cpp_a03e2392026add58812e6bad00bee5b84}\label{_square_room_generator_8cpp_a03e2392026add58812e6bad00bee5b84}} 
+\index{SquareRoomGenerator.cpp@{SquareRoomGenerator.cpp}!minSize@{minSize}}
+\index{minSize@{minSize}!SquareRoomGenerator.cpp@{SquareRoomGenerator.cpp}}
+\doxysubsubsection{\texorpdfstring{minSize}{minSize}}
+{\footnotesize\ttfamily const int min\+Size = 32}
+
+
+
+Definition at line 15 of file Square\+Room\+Generator.\+cpp.
+
diff --git a/doxy/latex/_square_room_generator_8h.tex b/doxy/latex/_square_room_generator_8h.tex
new file mode 100644
index 0000000000000000000000000000000000000000..7c22e5afe79cfdc25f91d1afee33331fe93a589e
--- /dev/null
+++ b/doxy/latex/_square_room_generator_8h.tex
@@ -0,0 +1,8 @@
+\hypertarget{_square_room_generator_8h}{}\doxysection{C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\+Square\+Room\+Generator.h File Reference}
+\label{_square_room_generator_8h}\index{C:/Users/kosmx/Documents/GitHub/2d-\/game/SquareRoomGenerator.h@{C:/Users/kosmx/Documents/GitHub/2d-\/game/SquareRoomGenerator.h}}
+{\ttfamily \#include \char`\"{}Dungeon\+Generator.\+h\char`\"{}}\newline
+\doxysubsection*{Classes}
+\begin{DoxyCompactItemize}
+\item 
+class \mbox{\hyperlink{class_square_room_generator}{Square\+Room\+Generator}}
+\begin{DoxyCompactList}\small\item\em Generates a weird square dungeon, filled with stupid enemies and weapons. \end{DoxyCompactList}\end{DoxyCompactItemize}
diff --git a/doxy/latex/_test_generator_8cpp.tex b/doxy/latex/_test_generator_8cpp.tex
new file mode 100644
index 0000000000000000000000000000000000000000..f305b9008811569a5f74c281e4d61c81339009c1
--- /dev/null
+++ b/doxy/latex/_test_generator_8cpp.tex
@@ -0,0 +1,12 @@
+\hypertarget{_test_generator_8cpp}{}\doxysection{C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\+Test\+Generator.cpp File Reference}
+\label{_test_generator_8cpp}\index{C:/Users/kosmx/Documents/GitHub/2d-\/game/TestGenerator.cpp@{C:/Users/kosmx/Documents/GitHub/2d-\/game/TestGenerator.cpp}}
+{\ttfamily \#include \char`\"{}Test\+Generator.\+h\char`\"{}}\newline
+{\ttfamily \#include \char`\"{}Wall\+Entity.\+h\char`\"{}}\newline
+{\ttfamily \#include \char`\"{}main\+Game.\+h\char`\"{}}\newline
+{\ttfamily \#include \char`\"{}Player\+Entity.\+h\char`\"{}}\newline
+{\ttfamily \#include \char`\"{}Character\+Texture.\+h\char`\"{}}\newline
+{\ttfamily \#include \char`\"{}Dummy\+Entity.\+h\char`\"{}}\newline
+{\ttfamily \#include \char`\"{}Typical\+Melee\+Weapon.\+h\char`\"{}}\newline
+{\ttfamily \#include \char`\"{}E\+M\+Gun.\+h\char`\"{}}\newline
+{\ttfamily \#include \char`\"{}Glitch\+Gun.\+h\char`\"{}}\newline
+{\ttfamily \#include \char`\"{}Entity\+With\+A\+I.\+h\char`\"{}}\newline
diff --git a/doxy/latex/_test_generator_8h.tex b/doxy/latex/_test_generator_8h.tex
new file mode 100644
index 0000000000000000000000000000000000000000..8447619402e3ff5b28cf22ae9756adfdd9fab462
--- /dev/null
+++ b/doxy/latex/_test_generator_8h.tex
@@ -0,0 +1,8 @@
+\hypertarget{_test_generator_8h}{}\doxysection{C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\+Test\+Generator.h File Reference}
+\label{_test_generator_8h}\index{C:/Users/kosmx/Documents/GitHub/2d-\/game/TestGenerator.h@{C:/Users/kosmx/Documents/GitHub/2d-\/game/TestGenerator.h}}
+{\ttfamily \#include \char`\"{}Dungeon\+Generator.\+h\char`\"{}}\newline
+\doxysubsection*{Classes}
+\begin{DoxyCompactItemize}
+\item 
+class \mbox{\hyperlink{class_test_generator}{Test\+Generator}}
+\begin{DoxyCompactList}\small\item\em Used for testing, doesn\textquotesingle{}t random. \end{DoxyCompactList}\end{DoxyCompactItemize}
diff --git a/doxy/latex/_text_8md.tex b/doxy/latex/_text_8md.tex
new file mode 100644
index 0000000000000000000000000000000000000000..e74d89d104f676cb7078704569d4bf42e449400f
--- /dev/null
+++ b/doxy/latex/_text_8md.tex
@@ -0,0 +1,2 @@
+\hypertarget{_text_8md}{}\doxysection{C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\+Text.md File Reference}
+\label{_text_8md}\index{C:/Users/kosmx/Documents/GitHub/2d-\/game/Text.md@{C:/Users/kosmx/Documents/GitHub/2d-\/game/Text.md}}
diff --git a/doxy/latex/_typical_melee_weapon_8cpp.tex b/doxy/latex/_typical_melee_weapon_8cpp.tex
new file mode 100644
index 0000000000000000000000000000000000000000..a7d744a4c071679d89ef45d4b88723a538985a27
--- /dev/null
+++ b/doxy/latex/_typical_melee_weapon_8cpp.tex
@@ -0,0 +1,9 @@
+\hypertarget{_typical_melee_weapon_8cpp}{}\doxysection{C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\+Typical\+Melee\+Weapon.cpp File Reference}
+\label{_typical_melee_weapon_8cpp}\index{C:/Users/kosmx/Documents/GitHub/2d-\/game/TypicalMeleeWeapon.cpp@{C:/Users/kosmx/Documents/GitHub/2d-\/game/TypicalMeleeWeapon.cpp}}
+{\ttfamily \#include \char`\"{}Typical\+Melee\+Weapon.\+h\char`\"{}}\newline
+{\ttfamily \#include \char`\"{}Weapon\+Textures.\+h\char`\"{}}\newline
+\doxysubsection*{Namespaces}
+\begin{DoxyCompactItemize}
+\item 
+ \mbox{\hyperlink{namespaceweapons}{weapons}}
+\end{DoxyCompactItemize}
diff --git a/doxy/latex/_typical_melee_weapon_8h.tex b/doxy/latex/_typical_melee_weapon_8h.tex
new file mode 100644
index 0000000000000000000000000000000000000000..55b54cc9ce6ae2e76cdd1ccc9b3326843b437ed5
--- /dev/null
+++ b/doxy/latex/_typical_melee_weapon_8h.tex
@@ -0,0 +1,13 @@
+\hypertarget{_typical_melee_weapon_8h}{}\doxysection{C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\+Typical\+Melee\+Weapon.h File Reference}
+\label{_typical_melee_weapon_8h}\index{C:/Users/kosmx/Documents/GitHub/2d-\/game/TypicalMeleeWeapon.h@{C:/Users/kosmx/Documents/GitHub/2d-\/game/TypicalMeleeWeapon.h}}
+{\ttfamily \#include \char`\"{}Melee\+Weapon.\+h\char`\"{}}\newline
+\doxysubsection*{Classes}
+\begin{DoxyCompactItemize}
+\item 
+class \mbox{\hyperlink{classweapons_1_1_typical_melee_weapon}{weapons\+::\+Typical\+Melee\+Weapon}}
+\begin{DoxyCompactList}\small\item\em A typical melee weapon. I want to do not typical melee weapons too. \end{DoxyCompactList}\end{DoxyCompactItemize}
+\doxysubsection*{Namespaces}
+\begin{DoxyCompactItemize}
+\item 
+ \mbox{\hyperlink{namespaceweapons}{weapons}}
+\end{DoxyCompactItemize}
diff --git a/doxy/latex/_wall_entity_8cpp.tex b/doxy/latex/_wall_entity_8cpp.tex
new file mode 100644
index 0000000000000000000000000000000000000000..3814370af0be9490809dd38cd0c0c83c0631608f
--- /dev/null
+++ b/doxy/latex/_wall_entity_8cpp.tex
@@ -0,0 +1,9 @@
+\hypertarget{_wall_entity_8cpp}{}\doxysection{C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\+Wall\+Entity.cpp File Reference}
+\label{_wall_entity_8cpp}\index{C:/Users/kosmx/Documents/GitHub/2d-\/game/WallEntity.cpp@{C:/Users/kosmx/Documents/GitHub/2d-\/game/WallEntity.cpp}}
+{\ttfamily \#include \char`\"{}Wall\+Entity.\+h\char`\"{}}\newline
+{\ttfamily \#include \char`\"{}main\+Game.\+h\char`\"{}}\newline
+\doxysubsection*{Namespaces}
+\begin{DoxyCompactItemize}
+\item 
+ \mbox{\hyperlink{namespaceentities}{entities}}
+\end{DoxyCompactItemize}
diff --git a/doxy/latex/_wall_entity_8h.tex b/doxy/latex/_wall_entity_8h.tex
new file mode 100644
index 0000000000000000000000000000000000000000..81c541af01f615590becdba8251803f7b3e4be59
--- /dev/null
+++ b/doxy/latex/_wall_entity_8h.tex
@@ -0,0 +1,14 @@
+\hypertarget{_wall_entity_8h}{}\doxysection{C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\+Wall\+Entity.h File Reference}
+\label{_wall_entity_8h}\index{C:/Users/kosmx/Documents/GitHub/2d-\/game/WallEntity.h@{C:/Users/kosmx/Documents/GitHub/2d-\/game/WallEntity.h}}
+{\ttfamily \#include \char`\"{}Entity.\+h\char`\"{}}\newline
+{\ttfamily \#include \char`\"{}Wall\+Texture.\+h\char`\"{}}\newline
+\doxysubsection*{Classes}
+\begin{DoxyCompactItemize}
+\item 
+class \mbox{\hyperlink{classentities_1_1_wall_entity}{entities\+::\+Wall\+Entity}}
+\begin{DoxyCompactList}\small\item\em Just a stupid wall, it doesn\textquotesingle{}t do much, can\textquotesingle{}t be killed... \end{DoxyCompactList}\end{DoxyCompactItemize}
+\doxysubsection*{Namespaces}
+\begin{DoxyCompactItemize}
+\item 
+ \mbox{\hyperlink{namespaceentities}{entities}}
+\end{DoxyCompactItemize}
diff --git a/doxy/latex/_wall_texture_8cpp.tex b/doxy/latex/_wall_texture_8cpp.tex
new file mode 100644
index 0000000000000000000000000000000000000000..168b05f80065361d55ce6bfb7b82b208a51ba6bd
--- /dev/null
+++ b/doxy/latex/_wall_texture_8cpp.tex
@@ -0,0 +1,10 @@
+\hypertarget{_wall_texture_8cpp}{}\doxysection{C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\+Wall\+Texture.cpp File Reference}
+\label{_wall_texture_8cpp}\index{C:/Users/kosmx/Documents/GitHub/2d-\/game/WallTexture.cpp@{C:/Users/kosmx/Documents/GitHub/2d-\/game/WallTexture.cpp}}
+{\ttfamily \#include \char`\"{}Wall\+Texture.\+h\char`\"{}}\newline
+{\ttfamily \#include \char`\"{}Wall\+Entity.\+h\char`\"{}}\newline
+{\ttfamily \#include \char`\"{}Game\+Exception.\+h\char`\"{}}\newline
+\doxysubsection*{Namespaces}
+\begin{DoxyCompactItemize}
+\item 
+ \mbox{\hyperlink{namespacerender}{render}}
+\end{DoxyCompactItemize}
diff --git a/doxy/latex/_wall_texture_8h.tex b/doxy/latex/_wall_texture_8h.tex
new file mode 100644
index 0000000000000000000000000000000000000000..30581d8c1691aff9b3919b41b7b609f9304e2c97
--- /dev/null
+++ b/doxy/latex/_wall_texture_8h.tex
@@ -0,0 +1,14 @@
+\hypertarget{_wall_texture_8h}{}\doxysection{C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\+Wall\+Texture.h File Reference}
+\label{_wall_texture_8h}\index{C:/Users/kosmx/Documents/GitHub/2d-\/game/WallTexture.h@{C:/Users/kosmx/Documents/GitHub/2d-\/game/WallTexture.h}}
+{\ttfamily \#include \char`\"{}I\+Texture.\+h\char`\"{}}\newline
+{\ttfamily \#include $<$map$>$}\newline
+\doxysubsection*{Classes}
+\begin{DoxyCompactItemize}
+\item 
+class \mbox{\hyperlink{classrender_1_1_wall_texture}{render\+::\+Wall\+Texture}}
+\begin{DoxyCompactList}\small\item\em Texture to render walls, with 16 possible states. \end{DoxyCompactList}\end{DoxyCompactItemize}
+\doxysubsection*{Namespaces}
+\begin{DoxyCompactItemize}
+\item 
+ \mbox{\hyperlink{namespacerender}{render}}
+\end{DoxyCompactItemize}
diff --git a/doxy/latex/_weapon_8cpp.tex b/doxy/latex/_weapon_8cpp.tex
new file mode 100644
index 0000000000000000000000000000000000000000..288747233f7847d85beb50ee371db33f1d43b833
--- /dev/null
+++ b/doxy/latex/_weapon_8cpp.tex
@@ -0,0 +1,8 @@
+\hypertarget{_weapon_8cpp}{}\doxysection{C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\+Weapon.cpp File Reference}
+\label{_weapon_8cpp}\index{C:/Users/kosmx/Documents/GitHub/2d-\/game/Weapon.cpp@{C:/Users/kosmx/Documents/GitHub/2d-\/game/Weapon.cpp}}
+{\ttfamily \#include \char`\"{}Weapon.\+h\char`\"{}}\newline
+\doxysubsection*{Namespaces}
+\begin{DoxyCompactItemize}
+\item 
+ \mbox{\hyperlink{namespaceweapons}{weapons}}
+\end{DoxyCompactItemize}
diff --git a/doxy/latex/_weapon_8h.tex b/doxy/latex/_weapon_8h.tex
new file mode 100644
index 0000000000000000000000000000000000000000..567cd1e26a5dd7ce88ad8a457dfaac5d6583c814
--- /dev/null
+++ b/doxy/latex/_weapon_8h.tex
@@ -0,0 +1,13 @@
+\hypertarget{_weapon_8h}{}\doxysection{C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\+Weapon.h File Reference}
+\label{_weapon_8h}\index{C:/Users/kosmx/Documents/GitHub/2d-\/game/Weapon.h@{C:/Users/kosmx/Documents/GitHub/2d-\/game/Weapon.h}}
+{\ttfamily \#include \char`\"{}Entity.\+h\char`\"{}}\newline
+\doxysubsection*{Classes}
+\begin{DoxyCompactItemize}
+\item 
+class \mbox{\hyperlink{classweapons_1_1_weapon}{weapons\+::\+Weapon}}
+\begin{DoxyCompactList}\small\item\em You can throw it to the ground, this is why it\textquotesingle{}s an entity. But it will be possible to use it. and shoot enemies, or projectiles. \end{DoxyCompactList}\end{DoxyCompactItemize}
+\doxysubsection*{Namespaces}
+\begin{DoxyCompactItemize}
+\item 
+ \mbox{\hyperlink{namespaceweapons}{weapons}}
+\end{DoxyCompactItemize}
diff --git a/doxy/latex/_weapon_textures_8cpp.tex b/doxy/latex/_weapon_textures_8cpp.tex
new file mode 100644
index 0000000000000000000000000000000000000000..c4c2e0e8d25b5117c5cf36c90be53a26f99f22ae
--- /dev/null
+++ b/doxy/latex/_weapon_textures_8cpp.tex
@@ -0,0 +1,3 @@
+\hypertarget{_weapon_textures_8cpp}{}\doxysection{C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\+Weapon\+Textures.cpp File Reference}
+\label{_weapon_textures_8cpp}\index{C:/Users/kosmx/Documents/GitHub/2d-\/game/WeaponTextures.cpp@{C:/Users/kosmx/Documents/GitHub/2d-\/game/WeaponTextures.cpp}}
+{\ttfamily \#include \char`\"{}Weapon\+Textures.\+h\char`\"{}}\newline
diff --git a/doxy/latex/_weapon_textures_8h.tex b/doxy/latex/_weapon_textures_8h.tex
new file mode 100644
index 0000000000000000000000000000000000000000..6b9fbf0eb9f5e137f68f34a66cb0afed6bd99dbe
--- /dev/null
+++ b/doxy/latex/_weapon_textures_8h.tex
@@ -0,0 +1,39 @@
+\hypertarget{_weapon_textures_8h}{}\doxysection{C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\+Weapon\+Textures.h File Reference}
+\label{_weapon_textures_8h}\index{C:/Users/kosmx/Documents/GitHub/2d-\/game/WeaponTextures.h@{C:/Users/kosmx/Documents/GitHub/2d-\/game/WeaponTextures.h}}
+{\ttfamily \#include \char`\"{}Simple\+Sprite.\+h\char`\"{}}\newline
+\doxysubsection*{Namespaces}
+\begin{DoxyCompactItemize}
+\item 
+ \mbox{\hyperlink{namespaceweapons}{weapons}}
+\item 
+ \mbox{\hyperlink{namespaceweapons_1_1textures}{weapons\+::textures}}
+\begin{DoxyCompactList}\small\item\em Textures for common weapons... \end{DoxyCompactList}\end{DoxyCompactItemize}
+\doxysubsection*{Functions}
+\begin{DoxyCompactItemize}
+\item 
+\mbox{\hyperlink{classrender_1_1_simple_sprite}{render\+::\+Simple\+Sprite}} \mbox{\hyperlink{namespaceweapons_1_1textures_a2a490d5d835f3ea3a9b07d2a9efb1c36}{weapons\+::textures\+::sword1}} (\char`\"{}Items/Long\+Wep.\+png\char`\"{}, \{ 0, 16 \})
+\item 
+\mbox{\hyperlink{classrender_1_1_simple_sprite}{render\+::\+Simple\+Sprite}} \mbox{\hyperlink{namespaceweapons_1_1textures_a05b20bd98c55bfbfcf4c2e7e0b08ebaf}{weapons\+::textures\+::sword2}} (\char`\"{}Items/Long\+Wep.\+png\char`\"{}, \{ 32, 16 \})
+\item 
+\mbox{\hyperlink{classrender_1_1_simple_sprite}{render\+::\+Simple\+Sprite}} \mbox{\hyperlink{namespaceweapons_1_1textures_a9734b7f6d13a24af2d62e74e6cd9dfde}{weapons\+::textures\+::spear}} (\char`\"{}Items/Long\+Wep.\+png\char`\"{}, \{ 0, 32 \})
+\item 
+\mbox{\hyperlink{classrender_1_1_simple_sprite}{render\+::\+Simple\+Sprite}} \mbox{\hyperlink{namespaceweapons_1_1textures_ac492d02548352205657c28cd311d997b}{weapons\+::textures\+::scythe}} (\char`\"{}Items/Long\+Wep.\+png\char`\"{}, \{ 16 $\ast$3, 16 $\ast$4 \})
+\item 
+\mbox{\hyperlink{classrender_1_1_simple_sprite}{render\+::\+Simple\+Sprite}} \mbox{\hyperlink{namespaceweapons_1_1textures_affedf59c6526368e5358afc383f15022}{weapons\+::textures\+::shovel}} (\char`\"{}Items/Long\+Wep.\+png\char`\"{}, \{ 16 $\ast$4, 16 $\ast$4 \})
+\item 
+\mbox{\hyperlink{classrender_1_1_simple_sprite}{render\+::\+Simple\+Sprite}} \mbox{\hyperlink{namespaceweapons_1_1textures_a25cf2019ff68d29442fa3554a5862c1e}{weapons\+::textures\+::pickaxe}} (\char`\"{}Items/Short\+Wep.\+png\char`\"{}, \{ 16 $\ast$2, 16 $\ast$3 \})
+\item 
+\mbox{\hyperlink{classrender_1_1_simple_sprite}{render\+::\+Simple\+Sprite}} \mbox{\hyperlink{namespaceweapons_1_1textures_ae84acdfc1384af6d4e1f64c1883a8784}{weapons\+::textures\+::bow}} (\char`\"{}Items/Ammo.\+png\char`\"{}, \{ 0, 16 \})
+\item 
+\mbox{\hyperlink{classrender_1_1_simple_sprite}{render\+::\+Simple\+Sprite}} \mbox{\hyperlink{namespaceweapons_1_1textures_a2f33f64b881c4028086431f8ba0fe1c5}{weapons\+::textures\+::crystal\+Bow}} (\char`\"{}Items/Ammo.\+png\char`\"{}, \{ 48, 16 \})
+\item 
+\mbox{\hyperlink{classrender_1_1_simple_sprite}{render\+::\+Simple\+Sprite}} \mbox{\hyperlink{namespaceweapons_1_1textures_a7ae588b12d703b44d1de1abb05d9f672}{weapons\+::textures\+::rifle}} (\char`\"{}Items/Ammo.\+png\char`\"{}, \{ 16, 64 \})
+\item 
+\mbox{\hyperlink{classrender_1_1_simple_sprite}{render\+::\+Simple\+Sprite}} \mbox{\hyperlink{namespaceweapons_1_1textures_ac65344c207a89b29b15e56e01fc3e16a}{weapons\+::textures\+::photo\+Machine}} (\char`\"{}Items/Light.\+png\char`\"{}, \{ 16 $\ast$6, 0 \})
+\item 
+\mbox{\hyperlink{classrender_1_1_simple_sprite}{render\+::\+Simple\+Sprite}} \mbox{\hyperlink{namespaceweapons_1_1textures_a8a733a84e93619430cfdaa2306a6a7ec}{weapons\+::textures\+::pistol}} (\char`\"{}From\+Macskusz111/pistol.\+png\char`\"{})
+\item 
+\mbox{\hyperlink{classrender_1_1_simple_sprite}{render\+::\+Simple\+Sprite}} \mbox{\hyperlink{namespaceweapons_1_1textures_a51f0963cb1171938daa3a1e894e5305b}{weapons\+::textures\+::minigun}} (\char`\"{}From\+Macskusz111/gun1.\+png\char`\"{})
+\item 
+\mbox{\hyperlink{classrender_1_1_simple_sprite}{render\+::\+Simple\+Sprite}} \mbox{\hyperlink{namespaceweapons_1_1textures_ad763a6f6186015fe93af0a1e5088f026}{weapons\+::textures\+::glitch\+Gun}} (\char`\"{}From\+Macskusz111/bug.\+png\char`\"{})
+\end{DoxyCompactItemize}
diff --git a/doxy/latex/annotated.tex b/doxy/latex/annotated.tex
new file mode 100644
index 0000000000000000000000000000000000000000..95f52bea4d765a16054d6ff017bcbd5c22cf00c5
--- /dev/null
+++ b/doxy/latex/annotated.tex
@@ -0,0 +1,52 @@
+\doxysection{Class List}
+Here are the classes, structs, unions and interfaces with brief descriptions\+:\begin{DoxyCompactList}
+\item\contentsline{section}{\mbox{\hyperlink{classentities_1_1_character_entity}{entities\+::\+Character\+Entity}} \\*A player or an enemy }{\pageref{classentities_1_1_character_entity}}{}
+\item\contentsline{section}{\mbox{\hyperlink{classrender_1_1_character_texture}{render\+::\+Character\+Texture}} \\*Texture for Character\+Entities }{\pageref{classrender_1_1_character_texture}}{}
+\item\contentsline{section}{\mbox{\hyperlink{classolc_1_1_decal}{olc\+::\+Decal}} }{\pageref{classolc_1_1_decal}}{}
+\item\contentsline{section}{\mbox{\hyperlink{structolc_1_1_decal_instance}{olc\+::\+Decal\+Instance}} }{\pageref{structolc_1_1_decal_instance}}{}
+\item\contentsline{section}{\mbox{\hyperlink{classentities_1_1_dummy_entity}{entities\+::\+Dummy\+Entity}} \\*A test/dummy entity. it can\textquotesingle{}t do anything... no, it can die }{\pageref{classentities_1_1_dummy_entity}}{}
+\item\contentsline{section}{\mbox{\hyperlink{class_dungeon_generator}{Dungeon\+Generator}} \\*Generate random dungeons.. }{\pageref{class_dungeon_generator}}{}
+\item\contentsline{section}{\mbox{\hyperlink{class_dynamic_array}{Dynamic\+Array$<$ T $>$}} \\*Dynamic array, to store entities, have a buffer, to don\textquotesingle{}t tick newly added entities too early }{\pageref{class_dynamic_array}}{}
+\item\contentsline{section}{\mbox{\hyperlink{classweapons_1_1_e_m_gun}{weapons\+::\+E\+M\+Gun}} \\*\mbox{\hyperlink{classweapons_1_1_weapon}{Weapon}} with energy level }{\pageref{classweapons_1_1_e_m_gun}}{}
+\item\contentsline{section}{\mbox{\hyperlink{classentities_1_1_entity}{entities\+::\+Entity}} \\*Every object, what can be on the map }{\pageref{classentities_1_1_entity}}{}
+\item\contentsline{section}{\mbox{\hyperlink{classentities_1_1_entity_with_a_i}{entities\+::\+Entity\+With\+AI}} \\*The enemies. go after the player, and try to kill it }{\pageref{classentities_1_1_entity_with_a_i}}{}
+\item\contentsline{section}{\mbox{\hyperlink{classentities_1_1_explosive_projectile}{entities\+::\+Explosive\+Projectile}} \\*A projectile, that explodes }{\pageref{classentities_1_1_explosive_projectile}}{}
+\item\contentsline{section}{\mbox{\hyperlink{class_game_client}{Game\+Client}} \\*The game main class itself. manages the entities, adjust the screen.. }{\pageref{class_game_client}}{}
+\item\contentsline{section}{\mbox{\hyperlink{class_game_exception}{Game\+Exception}} }{\pageref{class_game_exception}}{}
+\item\contentsline{section}{\mbox{\hyperlink{classweapons_1_1_glitch_gun}{weapons\+::\+Glitch\+Gun}} \\*T\+O\+DO make the bug weapon more buggy }{\pageref{classweapons_1_1_glitch_gun}}{}
+\item\contentsline{section}{\mbox{\hyperlink{classweapons_1_1_glitch_texture}{weapons\+::\+Glitch\+Texture}} \\*Texture for the bug weapon }{\pageref{classweapons_1_1_glitch_texture}}{}
+\item\contentsline{section}{\mbox{\hyperlink{structolc_1_1_h_w_button}{olc\+::\+H\+W\+Button}} }{\pageref{structolc_1_1_h_w_button}}{}
+\item\contentsline{section}{\mbox{\hyperlink{classolc_1_1_image_loader}{olc\+::\+Image\+Loader}} }{\pageref{classolc_1_1_image_loader}}{}
+\item\contentsline{section}{\mbox{\hyperlink{classrender_1_1_i_texture}{render\+::\+I\+Texture}} \\*Every texture, what can render an entity }{\pageref{classrender_1_1_i_texture}}{}
+\item\contentsline{section}{\mbox{\hyperlink{structolc_1_1_layer_desc}{olc\+::\+Layer\+Desc}} }{\pageref{structolc_1_1_layer_desc}}{}
+\item\contentsline{section}{\mbox{\hyperlink{classrender_1_1_lazy_sprite}{render\+::\+Lazy\+Sprite}} \\*Refer to one texture, not animated, not modifiable, just a simple image. Lazy loading means, it will load it only, when you\textquotesingle{}re trying to use it }{\pageref{classrender_1_1_lazy_sprite}}{}
+\item\contentsline{section}{\mbox{\hyperlink{classentities_1_1_living_entity}{entities\+::\+Living\+Entity}} \\*Any moving animal or player }{\pageref{classentities_1_1_living_entity}}{}
+\item\contentsline{section}{\mbox{\hyperlink{classweapons_1_1_melee_weapon}{weapons\+::\+Melee\+Weapon}} \\*A melee weapon, like a spoon }{\pageref{classweapons_1_1_melee_weapon}}{}
+\item\contentsline{section}{\mbox{\hyperlink{classolc_1_1_p_g_e_x}{olc\+::\+P\+G\+EX}} }{\pageref{classolc_1_1_p_g_e_x}}{}
+\item\contentsline{section}{\mbox{\hyperlink{classweapons_1_1_pistol}{weapons\+::\+Pistol}} \\*Just a pistol, nothing too dangerous }{\pageref{classweapons_1_1_pistol}}{}
+\item\contentsline{section}{\mbox{\hyperlink{structolc_1_1_pixel}{olc\+::\+Pixel}} }{\pageref{structolc_1_1_pixel}}{}
+\item\contentsline{section}{\mbox{\hyperlink{classolc_1_1_pixel_game_engine}{olc\+::\+Pixel\+Game\+Engine}} }{\pageref{classolc_1_1_pixel_game_engine}}{}
+\item\contentsline{section}{\mbox{\hyperlink{classolc_1_1_platform}{olc\+::\+Platform}} }{\pageref{classolc_1_1_platform}}{}
+\item\contentsline{section}{\mbox{\hyperlink{classentities_1_1_player_entity}{entities\+::\+Player\+Entity}} \\*You, or the player }{\pageref{classentities_1_1_player_entity}}{}
+\item\contentsline{section}{\mbox{\hyperlink{classweapons_1_1_melee_weapon_1_1predicate_distance}{weapons\+::\+Melee\+Weapon\+::predicate\+Distance}} \\*Functor to predicate entity distance. You can also use lambda, if you want }{\pageref{classweapons_1_1_melee_weapon_1_1predicate_distance}}{}
+\item\contentsline{section}{\mbox{\hyperlink{classentities_1_1_projectile_entity}{entities\+::\+Projectile\+Entity}} \\*A projectile, a bullet }{\pageref{classentities_1_1_projectile_entity}}{}
+\item\contentsline{section}{\mbox{\hyperlink{classweapons_1_1_ranged_weapon}{weapons\+::\+Ranged\+Weapon}} \\*Any weapon, what does shoot. not melee }{\pageref{classweapons_1_1_ranged_weapon}}{}
+\item\contentsline{section}{\mbox{\hyperlink{classolc_1_1_renderable}{olc\+::\+Renderable}} }{\pageref{classolc_1_1_renderable}}{}
+\item\contentsline{section}{\mbox{\hyperlink{classolc_1_1_renderer}{olc\+::\+Renderer}} }{\pageref{classolc_1_1_renderer}}{}
+\item\contentsline{section}{\mbox{\hyperlink{class_render_exception}{Render\+Exception}} }{\pageref{class_render_exception}}{}
+\item\contentsline{section}{\mbox{\hyperlink{structolc_1_1_resource_buffer}{olc\+::\+Resource\+Buffer}} }{\pageref{structolc_1_1_resource_buffer}}{}
+\item\contentsline{section}{\mbox{\hyperlink{classrender_1_1_resource_manager}{render\+::\+Resource\+Manager}} \\*Load every sprite only once, act as a set for loaded textures }{\pageref{classrender_1_1_resource_manager}}{}
+\item\contentsline{section}{\mbox{\hyperlink{classolc_1_1_resource_pack}{olc\+::\+Resource\+Pack}} }{\pageref{classolc_1_1_resource_pack}}{}
+\item\contentsline{section}{\mbox{\hyperlink{classrender_1_1_simple_sprite}{render\+::\+Simple\+Sprite}} \\*Simplest useable texture }{\pageref{classrender_1_1_simple_sprite}}{}
+\item\contentsline{section}{\mbox{\hyperlink{classolc_1_1_sprite}{olc\+::\+Sprite}} }{\pageref{classolc_1_1_sprite}}{}
+\item\contentsline{section}{\mbox{\hyperlink{classrender_1_1_sprite_manager}{render\+::\+Sprite\+Manager}} }{\pageref{classrender_1_1_sprite_manager}}{}
+\item\contentsline{section}{\mbox{\hyperlink{class_square_room_generator}{Square\+Room\+Generator}} \\*Generates a weird square dungeon, filled with stupid enemies and weapons }{\pageref{class_square_room_generator}}{}
+\item\contentsline{section}{\mbox{\hyperlink{class_test_generator}{Test\+Generator}} \\*Used for testing, doesn\textquotesingle{}t random }{\pageref{class_test_generator}}{}
+\item\contentsline{section}{\mbox{\hyperlink{classolc_1_1_tile_transformed_view}{olc\+::\+Tile\+Transformed\+View}} }{\pageref{classolc_1_1_tile_transformed_view}}{}
+\item\contentsline{section}{\mbox{\hyperlink{classolc_1_1_transformed_view}{olc\+::\+Transformed\+View}} }{\pageref{classolc_1_1_transformed_view}}{}
+\item\contentsline{section}{\mbox{\hyperlink{classweapons_1_1_typical_melee_weapon}{weapons\+::\+Typical\+Melee\+Weapon}} \\*A typical melee weapon. I want to do not typical melee weapons too }{\pageref{classweapons_1_1_typical_melee_weapon}}{}
+\item\contentsline{section}{\mbox{\hyperlink{structolc_1_1v2d__generic}{olc\+::v2d\+\_\+generic$<$ T $>$}} }{\pageref{structolc_1_1v2d__generic}}{}
+\item\contentsline{section}{\mbox{\hyperlink{classentities_1_1_wall_entity}{entities\+::\+Wall\+Entity}} \\*Just a stupid wall, it doesn\textquotesingle{}t do much, can\textquotesingle{}t be killed.. }{\pageref{classentities_1_1_wall_entity}}{}
+\item\contentsline{section}{\mbox{\hyperlink{classrender_1_1_wall_texture}{render\+::\+Wall\+Texture}} \\*Texture to render walls, with 16 possible states }{\pageref{classrender_1_1_wall_texture}}{}
+\item\contentsline{section}{\mbox{\hyperlink{classweapons_1_1_weapon}{weapons\+::\+Weapon}} \\*You can throw it to the ground, this is why it\textquotesingle{}s an entity. But it will be possible to use it. and shoot enemies, or projectiles }{\pageref{classweapons_1_1_weapon}}{}
+\end{DoxyCompactList}
diff --git a/doxy/latex/class_dungeon_generator.eps b/doxy/latex/class_dungeon_generator.eps
new file mode 100644
index 0000000000000000000000000000000000000000..deac52c41b7111ef65b9a83ac3a481d14d07634b
--- /dev/null
+++ b/doxy/latex/class_dungeon_generator.eps
@@ -0,0 +1,203 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: ClassName
+%%Creator: Doxygen
+%%CreationDate: Time
+%%For: 
+%Magnification: 1.00
+%%Orientation: Portrait
+%%BoundingBox: 0 0 500 135.135132
+%%Pages: 0
+%%BeginSetup
+%%EndSetup
+%%EndComments
+
+% ----- variables -----
+
+/boxwidth 0 def
+/boxheight 40 def
+/fontheight 24 def
+/marginwidth 10 def
+/distx 20 def
+/disty 40 def
+/boundaspect 3.700000 def  % aspect ratio of the BoundingBox (width/height)
+/boundx 500 def
+/boundy boundx boundaspect div def
+/xspacing 0 def
+/yspacing 0 def
+/rows 2 def
+/cols 2 def
+/scalefactor 0 def
+/boxfont /Times-Roman findfont fontheight scalefont def
+
+% ----- procedures -----
+
+/dotted { [1 4] 0 setdash } def
+/dashed { [5] 0 setdash } def
+/solid  { [] 0 setdash } def
+
+/max % result = MAX(arg1,arg2)
+{
+  /a exch def
+  /b exch def
+  a b gt {a} {b} ifelse
+} def
+
+/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)
+{
+  0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max
+} def
+
+/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))
+{
+  /str exch def
+  /boxwidth boxwidth str stringwidth pop max def
+} def
+
+/box % draws a box with text 'arg1' at grid pos (arg2,arg3)
+{ gsave
+  2 setlinewidth
+  newpath
+  exch xspacing mul xoffset add
+  exch yspacing mul
+  moveto
+  boxwidth 0 rlineto 
+  0 boxheight rlineto 
+  boxwidth neg 0 rlineto 
+  0 boxheight neg rlineto 
+  closepath
+  dup stringwidth pop neg boxwidth add 2 div
+  boxheight fontheight 2 div sub 2 div
+  rmoveto show stroke
+  grestore
+} def  
+
+/mark
+{ newpath
+  exch xspacing mul xoffset add boxwidth add
+  exch yspacing mul
+  moveto
+  0 boxheight 4 div rlineto
+  boxheight neg 4 div boxheight neg 4 div rlineto
+  closepath
+  eofill
+  stroke
+} def
+
+/arrow
+{ newpath
+  moveto
+  3 -8 rlineto
+  -6 0 rlineto
+  3 8 rlineto
+  closepath
+  eofill
+  stroke
+} def
+
+/out % draws an output connector for the block at (arg1,arg2)
+{
+  newpath
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul boxheight add
+  /y exch def
+  /x exch def
+  x y moveto
+  0 disty 2 div rlineto 
+  stroke
+  1 eq { x y disty 2 div add arrow } if
+} def
+
+/in % draws an input connector for the block at (arg1,arg2)
+{
+  newpath
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul disty 2 div sub
+  /y exch def
+  /x exch def
+  x y moveto
+  0 disty 2 div rlineto
+  stroke
+  1 eq { x y disty 2 div add arrow } if
+} def
+
+/hedge
+{
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul boxheight 2 div sub
+  /y exch def
+  /x exch def
+  newpath
+  x y moveto
+  boxwidth 2 div distx add 0 rlineto
+  stroke
+  1 eq
+  { newpath x boxwidth 2 div distx add add y moveto
+    -8 3 rlineto
+    0 -6 rlineto
+    8 3 rlineto
+    closepath
+    eofill
+    stroke
+  } if
+} def
+
+/vedge
+{
+  /ye exch def
+  /ys exch def
+  /xs exch def
+  newpath
+  xs xspacing mul xoffset add boxwidth 2 div add dup
+  ys yspacing mul boxheight 2 div sub
+  moveto
+  ye yspacing mul boxheight 2 div sub
+  lineto
+  stroke
+} def
+
+/conn % connections the blocks from col 'arg1' to 'arg2' of row 'arg3'
+{
+  /ys exch def
+  /xe exch def
+  /xs exch def
+  newpath
+  xs xspacing mul xoffset add boxwidth 2 div add
+  ys yspacing mul disty 2 div sub
+  moveto
+  xspacing xe xs sub mul 0
+  rlineto
+  stroke
+} def
+
+% ----- main ------
+
+boxfont setfont
+1 boundaspect scale
+(DungeonGenerator) cw
+(SquareRoomGenerator) cw
+(TestGenerator) cw
+/boxwidth boxwidth marginwidth 2 mul add def
+/xspacing boxwidth distx add def
+/yspacing boxheight disty add def
+/scalefactor 
+  boxwidth cols mul distx cols 1 sub mul add
+  boxheight rows mul disty rows 1 sub mul add boundaspect mul 
+  max def
+boundx scalefactor div boundy scalefactor div scale
+
+% ----- classes -----
+
+ (DungeonGenerator) 0.500000 1.000000 box
+ (SquareRoomGenerator) 0.000000 0.000000 box
+ (TestGenerator) 1.000000 0.000000 box
+
+% ----- relations -----
+
+solid
+1 0.500000 0.250000 out
+solid
+0.000000 1.000000 1.000000 conn
+solid
+0 0.000000 0.750000 in
+solid
+0 1.000000 0.750000 in
diff --git a/doxy/latex/class_dungeon_generator.tex b/doxy/latex/class_dungeon_generator.tex
new file mode 100644
index 0000000000000000000000000000000000000000..43a13f513ce62be63ccc6644afeac6998a6cab9b
--- /dev/null
+++ b/doxy/latex/class_dungeon_generator.tex
@@ -0,0 +1,47 @@
+\hypertarget{class_dungeon_generator}{}\doxysection{Dungeon\+Generator Class Reference}
+\label{class_dungeon_generator}\index{DungeonGenerator@{DungeonGenerator}}
+
+
+Generate random dungeons...  
+
+
+
+
+{\ttfamily \#include $<$Dungeon\+Generator.\+h$>$}
+
+Inheritance diagram for Dungeon\+Generator\+:\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[height=2.000000cm]{class_dungeon_generator}
+\end{center}
+\end{figure}
+\doxysubsection*{Public Member Functions}
+\begin{DoxyCompactItemize}
+\item 
+virtual std\+::shared\+\_\+ptr$<$ \mbox{\hyperlink{classentities_1_1_player_entity}{entities\+::\+Player\+Entity}} $>$ \mbox{\hyperlink{class_dungeon_generator_add8fcec4f013307d734616106110a1ea}{generate}} (\mbox{\hyperlink{class_game_client}{Game\+Client}} \&client)=0
+\end{DoxyCompactItemize}
+
+
+\doxysubsection{Detailed Description}
+Generate random dungeons... 
+
+Definition at line 13 of file Dungeon\+Generator.\+h.
+
+
+
+\doxysubsection{Member Function Documentation}
+\mbox{\Hypertarget{class_dungeon_generator_add8fcec4f013307d734616106110a1ea}\label{class_dungeon_generator_add8fcec4f013307d734616106110a1ea}} 
+\index{DungeonGenerator@{DungeonGenerator}!generate@{generate}}
+\index{generate@{generate}!DungeonGenerator@{DungeonGenerator}}
+\doxysubsubsection{\texorpdfstring{generate()}{generate()}}
+{\footnotesize\ttfamily virtual std\+::shared\+\_\+ptr$<$\mbox{\hyperlink{classentities_1_1_player_entity}{entities\+::\+Player\+Entity}}$>$ Dungeon\+Generator\+::generate (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{class_game_client}{Game\+Client}} \&}]{client }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [pure virtual]}}
+
+
+
+Implemented in \mbox{\hyperlink{class_test_generator_aaacdd82f39d99e1dcbc847b674f245e1}{Test\+Generator}}, and \mbox{\hyperlink{class_square_room_generator_a5b9952abf9af7a8fc4241f3f9e93a616}{Square\+Room\+Generator}}.
+
+
+
+The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize}
+\item 
+C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\mbox{\hyperlink{_dungeon_generator_8h}{Dungeon\+Generator.\+h}}\end{DoxyCompactItemize}
diff --git a/doxy/latex/class_dynamic_array.tex b/doxy/latex/class_dynamic_array.tex
new file mode 100644
index 0000000000000000000000000000000000000000..87dc3929742908a322846d6f2e608f70ab1d1c41
--- /dev/null
+++ b/doxy/latex/class_dynamic_array.tex
@@ -0,0 +1,129 @@
+\hypertarget{class_dynamic_array}{}\doxysection{Dynamic\+Array$<$ T $>$ Class Template Reference}
+\label{class_dynamic_array}\index{DynamicArray$<$ T $>$@{DynamicArray$<$ T $>$}}
+
+
+Dynamic array, to store entities, have a buffer, to don\textquotesingle{}t tick newly added entities too early.  
+
+
+
+
+{\ttfamily \#include $<$Dynamic\+Array.\+hpp$>$}
+
+\doxysubsection*{Public Member Functions}
+\begin{DoxyCompactItemize}
+\item 
+\mbox{\hyperlink{class_dynamic_array_a7d42e6eaa66bab7c43f193e78d2d56a9}{Dynamic\+Array}} ()
+\item 
+\mbox{\hyperlink{class_dynamic_array}{Dynamic\+Array}}$<$ T $>$ \& \mbox{\hyperlink{class_dynamic_array_a9f3bb8f56ad0cb35f890ebae426c7a61}{operator+=}} (T \&entry)
+\item 
+auto \mbox{\hyperlink{class_dynamic_array_a180959557f211bf3fcdf5e26b7cb67ab}{finalize\+Add}} ()
+\item 
+void \mbox{\hyperlink{class_dynamic_array_a9db6489676b4560684be1ba03233fca0}{remove\+If}} (bool($\ast$l)(const T \&))
+\item 
+auto \mbox{\hyperlink{class_dynamic_array_a3b4f5925657f9e8dfd71bcc5973399ee}{begin}} ()
+\item 
+auto \mbox{\hyperlink{class_dynamic_array_ac316f2e7a1938687031cb5cc34df34cc}{end}} ()
+\item 
+int \mbox{\hyperlink{class_dynamic_array_acbec0bb643ebec934cf5e9dfc1ecf01e}{get\+Size}} () const
+\end{DoxyCompactItemize}
+
+
+\doxysubsection{Detailed Description}
+\subsubsection*{template$<$typename T$>$\newline
+class Dynamic\+Array$<$ T $>$}
+
+Dynamic array, to store entities, have a buffer, to don\textquotesingle{}t tick newly added entities too early. 
+
+Definition at line 14 of file Dynamic\+Array.\+hpp.
+
+
+
+\doxysubsection{Constructor \& Destructor Documentation}
+\mbox{\Hypertarget{class_dynamic_array_a7d42e6eaa66bab7c43f193e78d2d56a9}\label{class_dynamic_array_a7d42e6eaa66bab7c43f193e78d2d56a9}} 
+\index{DynamicArray$<$ T $>$@{DynamicArray$<$ T $>$}!DynamicArray@{DynamicArray}}
+\index{DynamicArray@{DynamicArray}!DynamicArray$<$ T $>$@{DynamicArray$<$ T $>$}}
+\doxysubsubsection{\texorpdfstring{DynamicArray()}{DynamicArray()}}
+{\footnotesize\ttfamily template$<$typename T $>$ \\
+\mbox{\hyperlink{class_dynamic_array}{Dynamic\+Array}}$<$ T $>$\+::\mbox{\hyperlink{class_dynamic_array}{Dynamic\+Array}} (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
+
+
+
+Definition at line 22 of file Dynamic\+Array.\+hpp.
+
+
+
+\doxysubsection{Member Function Documentation}
+\mbox{\Hypertarget{class_dynamic_array_a3b4f5925657f9e8dfd71bcc5973399ee}\label{class_dynamic_array_a3b4f5925657f9e8dfd71bcc5973399ee}} 
+\index{DynamicArray$<$ T $>$@{DynamicArray$<$ T $>$}!begin@{begin}}
+\index{begin@{begin}!DynamicArray$<$ T $>$@{DynamicArray$<$ T $>$}}
+\doxysubsubsection{\texorpdfstring{begin()}{begin()}}
+{\footnotesize\ttfamily template$<$typename T $>$ \\
+auto \mbox{\hyperlink{class_dynamic_array}{Dynamic\+Array}}$<$ T $>$\+::begin (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
+
+
+
+Definition at line 49 of file Dynamic\+Array.\+hpp.
+
+\mbox{\Hypertarget{class_dynamic_array_ac316f2e7a1938687031cb5cc34df34cc}\label{class_dynamic_array_ac316f2e7a1938687031cb5cc34df34cc}} 
+\index{DynamicArray$<$ T $>$@{DynamicArray$<$ T $>$}!end@{end}}
+\index{end@{end}!DynamicArray$<$ T $>$@{DynamicArray$<$ T $>$}}
+\doxysubsubsection{\texorpdfstring{end()}{end()}}
+{\footnotesize\ttfamily template$<$typename T $>$ \\
+auto \mbox{\hyperlink{class_dynamic_array}{Dynamic\+Array}}$<$ T $>$\+::end (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
+
+
+
+Definition at line 53 of file Dynamic\+Array.\+hpp.
+
+\mbox{\Hypertarget{class_dynamic_array_a180959557f211bf3fcdf5e26b7cb67ab}\label{class_dynamic_array_a180959557f211bf3fcdf5e26b7cb67ab}} 
+\index{DynamicArray$<$ T $>$@{DynamicArray$<$ T $>$}!finalizeAdd@{finalizeAdd}}
+\index{finalizeAdd@{finalizeAdd}!DynamicArray$<$ T $>$@{DynamicArray$<$ T $>$}}
+\doxysubsubsection{\texorpdfstring{finalizeAdd()}{finalizeAdd()}}
+{\footnotesize\ttfamily template$<$typename T $>$ \\
+auto \mbox{\hyperlink{class_dynamic_array}{Dynamic\+Array}}$<$ T $>$\+::finalize\+Add (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
+
+\begin{DoxyReturn}{Returns}
+an iterator pointing to the first, newly added element. 
+\end{DoxyReturn}
+
+
+Definition at line 33 of file Dynamic\+Array.\+hpp.
+
+\mbox{\Hypertarget{class_dynamic_array_acbec0bb643ebec934cf5e9dfc1ecf01e}\label{class_dynamic_array_acbec0bb643ebec934cf5e9dfc1ecf01e}} 
+\index{DynamicArray$<$ T $>$@{DynamicArray$<$ T $>$}!getSize@{getSize}}
+\index{getSize@{getSize}!DynamicArray$<$ T $>$@{DynamicArray$<$ T $>$}}
+\doxysubsubsection{\texorpdfstring{getSize()}{getSize()}}
+{\footnotesize\ttfamily template$<$typename T $>$ \\
+int \mbox{\hyperlink{class_dynamic_array}{Dynamic\+Array}}$<$ T $>$\+::get\+Size (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}
+
+
+
+Definition at line 57 of file Dynamic\+Array.\+hpp.
+
+\mbox{\Hypertarget{class_dynamic_array_a9f3bb8f56ad0cb35f890ebae426c7a61}\label{class_dynamic_array_a9f3bb8f56ad0cb35f890ebae426c7a61}} 
+\index{DynamicArray$<$ T $>$@{DynamicArray$<$ T $>$}!operator+=@{operator+=}}
+\index{operator+=@{operator+=}!DynamicArray$<$ T $>$@{DynamicArray$<$ T $>$}}
+\doxysubsubsection{\texorpdfstring{operator+=()}{operator+=()}}
+{\footnotesize\ttfamily template$<$typename T $>$ \\
+\mbox{\hyperlink{class_dynamic_array}{Dynamic\+Array}}$<$T$>$\& \mbox{\hyperlink{class_dynamic_array}{Dynamic\+Array}}$<$ T $>$\+::operator+= (\begin{DoxyParamCaption}\item[{T \&}]{entry }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
+
+
+
+Definition at line 24 of file Dynamic\+Array.\+hpp.
+
+\mbox{\Hypertarget{class_dynamic_array_a9db6489676b4560684be1ba03233fca0}\label{class_dynamic_array_a9db6489676b4560684be1ba03233fca0}} 
+\index{DynamicArray$<$ T $>$@{DynamicArray$<$ T $>$}!removeIf@{removeIf}}
+\index{removeIf@{removeIf}!DynamicArray$<$ T $>$@{DynamicArray$<$ T $>$}}
+\doxysubsubsection{\texorpdfstring{removeIf()}{removeIf()}}
+{\footnotesize\ttfamily template$<$typename T $>$ \\
+void \mbox{\hyperlink{class_dynamic_array}{Dynamic\+Array}}$<$ T $>$\+::remove\+If (\begin{DoxyParamCaption}\item[{bool($\ast$)(const T \&)}]{l }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
+
+
+
+Definition at line 43 of file Dynamic\+Array.\+hpp.
+
+
+
+The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize}
+\item 
+C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\mbox{\hyperlink{_dynamic_array_8hpp}{Dynamic\+Array.\+hpp}}\end{DoxyCompactItemize}
diff --git a/doxy/latex/class_game_client.eps b/doxy/latex/class_game_client.eps
new file mode 100644
index 0000000000000000000000000000000000000000..4711926a1c98ea3fb8058da6a025f074a4e68d55
--- /dev/null
+++ b/doxy/latex/class_game_client.eps
@@ -0,0 +1,197 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: ClassName
+%%Creator: Doxygen
+%%CreationDate: Time
+%%For: 
+%Magnification: 1.00
+%%Orientation: Portrait
+%%BoundingBox: 0 0 500 283.687958
+%%Pages: 0
+%%BeginSetup
+%%EndSetup
+%%EndComments
+
+% ----- variables -----
+
+/boxwidth 0 def
+/boxheight 40 def
+/fontheight 24 def
+/marginwidth 10 def
+/distx 20 def
+/disty 40 def
+/boundaspect 1.762500 def  % aspect ratio of the BoundingBox (width/height)
+/boundx 500 def
+/boundy boundx boundaspect div def
+/xspacing 0 def
+/yspacing 0 def
+/rows 2 def
+/cols 1 def
+/scalefactor 0 def
+/boxfont /Times-Roman findfont fontheight scalefont def
+
+% ----- procedures -----
+
+/dotted { [1 4] 0 setdash } def
+/dashed { [5] 0 setdash } def
+/solid  { [] 0 setdash } def
+
+/max % result = MAX(arg1,arg2)
+{
+  /a exch def
+  /b exch def
+  a b gt {a} {b} ifelse
+} def
+
+/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)
+{
+  0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max
+} def
+
+/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))
+{
+  /str exch def
+  /boxwidth boxwidth str stringwidth pop max def
+} def
+
+/box % draws a box with text 'arg1' at grid pos (arg2,arg3)
+{ gsave
+  2 setlinewidth
+  newpath
+  exch xspacing mul xoffset add
+  exch yspacing mul
+  moveto
+  boxwidth 0 rlineto 
+  0 boxheight rlineto 
+  boxwidth neg 0 rlineto 
+  0 boxheight neg rlineto 
+  closepath
+  dup stringwidth pop neg boxwidth add 2 div
+  boxheight fontheight 2 div sub 2 div
+  rmoveto show stroke
+  grestore
+} def  
+
+/mark
+{ newpath
+  exch xspacing mul xoffset add boxwidth add
+  exch yspacing mul
+  moveto
+  0 boxheight 4 div rlineto
+  boxheight neg 4 div boxheight neg 4 div rlineto
+  closepath
+  eofill
+  stroke
+} def
+
+/arrow
+{ newpath
+  moveto
+  3 -8 rlineto
+  -6 0 rlineto
+  3 8 rlineto
+  closepath
+  eofill
+  stroke
+} def
+
+/out % draws an output connector for the block at (arg1,arg2)
+{
+  newpath
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul boxheight add
+  /y exch def
+  /x exch def
+  x y moveto
+  0 disty 2 div rlineto 
+  stroke
+  1 eq { x y disty 2 div add arrow } if
+} def
+
+/in % draws an input connector for the block at (arg1,arg2)
+{
+  newpath
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul disty 2 div sub
+  /y exch def
+  /x exch def
+  x y moveto
+  0 disty 2 div rlineto
+  stroke
+  1 eq { x y disty 2 div add arrow } if
+} def
+
+/hedge
+{
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul boxheight 2 div sub
+  /y exch def
+  /x exch def
+  newpath
+  x y moveto
+  boxwidth 2 div distx add 0 rlineto
+  stroke
+  1 eq
+  { newpath x boxwidth 2 div distx add add y moveto
+    -8 3 rlineto
+    0 -6 rlineto
+    8 3 rlineto
+    closepath
+    eofill
+    stroke
+  } if
+} def
+
+/vedge
+{
+  /ye exch def
+  /ys exch def
+  /xs exch def
+  newpath
+  xs xspacing mul xoffset add boxwidth 2 div add dup
+  ys yspacing mul boxheight 2 div sub
+  moveto
+  ye yspacing mul boxheight 2 div sub
+  lineto
+  stroke
+} def
+
+/conn % connections the blocks from col 'arg1' to 'arg2' of row 'arg3'
+{
+  /ys exch def
+  /xe exch def
+  /xs exch def
+  newpath
+  xs xspacing mul xoffset add boxwidth 2 div add
+  ys yspacing mul disty 2 div sub
+  moveto
+  xspacing xe xs sub mul 0
+  rlineto
+  stroke
+} def
+
+% ----- main ------
+
+boxfont setfont
+1 boundaspect scale
+(GameClient) cw
+(olc::PixelGameEngine) cw
+/boxwidth boxwidth marginwidth 2 mul add def
+/xspacing boxwidth distx add def
+/yspacing boxheight disty add def
+/scalefactor 
+  boxwidth cols mul distx cols 1 sub mul add
+  boxheight rows mul disty rows 1 sub mul add boundaspect mul 
+  max def
+boundx scalefactor div boundy scalefactor div scale
+
+% ----- classes -----
+
+ (GameClient) 0.000000 0.000000 box
+ (olc::PixelGameEngine) 0.000000 1.000000 box
+
+% ----- relations -----
+
+solid
+0 0.000000 0.000000 out
+solid
+1 0.000000 1.000000 in
diff --git a/doxy/latex/class_game_client.tex b/doxy/latex/class_game_client.tex
new file mode 100644
index 0000000000000000000000000000000000000000..3bc7583d2e70dfb22cd0f96036086fce56579f88
--- /dev/null
+++ b/doxy/latex/class_game_client.tex
@@ -0,0 +1,252 @@
+\hypertarget{class_game_client}{}\doxysection{Game\+Client Class Reference}
+\label{class_game_client}\index{GameClient@{GameClient}}
+
+
+The game main class itself. manages the entities, adjust the screen...  
+
+
+
+
+{\ttfamily \#include $<$main\+Game.\+h$>$}
+
+Inheritance diagram for Game\+Client\+:\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[height=2.000000cm]{class_game_client}
+\end{center}
+\end{figure}
+\doxysubsection*{Public Member Functions}
+\begin{DoxyCompactItemize}
+\item 
+\mbox{\hyperlink{class_game_client_a1324a20c121e201e69391dfe7a08e546}{Game\+Client}} (bool debug=false)
+\item 
+\mbox{\hyperlink{class_dynamic_array}{Dynamic\+Array}}$<$ std\+::shared\+\_\+ptr$<$ \mbox{\hyperlink{classentities_1_1_entity}{entities\+::\+Entity}} $>$ $>$ \& \mbox{\hyperlink{class_game_client_a6984da0365fd19c81dbc8907b598bf49}{get\+Entities}} ()
+\item 
+bool \mbox{\hyperlink{class_game_client_a698bb8a4ba91211dc4fcaa4079d8d070}{On\+User\+Create}} () override
+\begin{DoxyCompactList}\small\item\em Create a new game instance. \end{DoxyCompactList}\item 
+bool \mbox{\hyperlink{class_game_client_ab6e2efe37e67de64062bca35d8a11e2e}{On\+User\+Update}} (float f\+Elapsed\+Time) override
+\begin{DoxyCompactList}\small\item\em Update the game. \end{DoxyCompactList}\item 
+void \mbox{\hyperlink{class_game_client_a9af9a685c31d428921b0cf5976a63c14}{set\+Debug\+Mode}} (bool bl=true)
+\begin{DoxyCompactList}\small\item\em turn on debug, caused by an exception \end{DoxyCompactList}\item 
+void \mbox{\hyperlink{class_game_client_ac1df0a856bd945976c06b3977167d4c7}{add\+Entity}} (std\+::shared\+\_\+ptr$<$ \mbox{\hyperlink{classentities_1_1_entity}{entities\+::\+Entity}} $>$ \&entity)
+\begin{DoxyCompactList}\small\item\em Add a new entity to the world. you can also use +=. \end{DoxyCompactList}\item 
+const \mbox{\hyperlink{classolc_1_1_transformed_view}{olc\+::\+Transformed\+View}} \& \mbox{\hyperlink{class_game_client_a01a0c559c6cfe63557fa4b5d7aa9e72c}{get\+Scene}} ()
+\begin{DoxyCompactList}\small\item\em Get the screen details. needed in fire direction calculation. \end{DoxyCompactList}\item 
+\mbox{\hyperlink{class_game_client}{Game\+Client}} \& \mbox{\hyperlink{class_game_client_abf4100b1ee69f4f300346424139f8d93}{operator+=}} (std\+::shared\+\_\+ptr$<$ \mbox{\hyperlink{classentities_1_1_entity}{entities\+::\+Entity}} $>$ entity)
+\begin{DoxyCompactList}\small\item\em Add an entity to the world. \end{DoxyCompactList}\item 
+std\+::shared\+\_\+ptr$<$ \mbox{\hyperlink{classentities_1_1_player_entity}{entities\+::\+Player\+Entity}} $>$ \mbox{\hyperlink{class_game_client_acc1e0f1d4836be4a8556289cfdfd4049}{get\+Player\+Entity}} ()
+\begin{DoxyCompactList}\small\item\em Get the main player. \end{DoxyCompactList}\end{DoxyCompactItemize}
+\doxysubsection*{Static Public Member Functions}
+\begin{DoxyCompactItemize}
+\item 
+static \mbox{\hyperlink{class_game_client}{Game\+Client}} \& \mbox{\hyperlink{class_game_client_adfcb979db6333b335dee4e6d785aabcf}{get\+Instance}} ()
+\end{DoxyCompactItemize}
+\doxysubsection*{Friends}
+\begin{DoxyCompactItemize}
+\item 
+int \mbox{\hyperlink{class_game_client_a81ce304348a420752ee080480d2b3095}{main}} (int, char $\ast$\mbox{[}$\,$\mbox{]})
+\end{DoxyCompactItemize}
+\doxysubsection*{Additional Inherited Members}
+
+
+\doxysubsection{Detailed Description}
+The game main class itself. manages the entities, adjust the screen... 
+
+Definition at line 11 of file main\+Game.\+h.
+
+
+
+\doxysubsection{Constructor \& Destructor Documentation}
+\mbox{\Hypertarget{class_game_client_a1324a20c121e201e69391dfe7a08e546}\label{class_game_client_a1324a20c121e201e69391dfe7a08e546}} 
+\index{GameClient@{GameClient}!GameClient@{GameClient}}
+\index{GameClient@{GameClient}!GameClient@{GameClient}}
+\doxysubsubsection{\texorpdfstring{GameClient()}{GameClient()}}
+{\footnotesize\ttfamily Game\+Client\+::\+Game\+Client (\begin{DoxyParamCaption}\item[{bool}]{debug = {\ttfamily false} }\end{DoxyParamCaption})}
+
+
+
+Definition at line 23 of file main\+Game.\+cpp.
+
+
+
+\doxysubsection{Member Function Documentation}
+\mbox{\Hypertarget{class_game_client_ac1df0a856bd945976c06b3977167d4c7}\label{class_game_client_ac1df0a856bd945976c06b3977167d4c7}} 
+\index{GameClient@{GameClient}!addEntity@{addEntity}}
+\index{addEntity@{addEntity}!GameClient@{GameClient}}
+\doxysubsubsection{\texorpdfstring{addEntity()}{addEntity()}}
+{\footnotesize\ttfamily void Game\+Client\+::add\+Entity (\begin{DoxyParamCaption}\item[{std\+::shared\+\_\+ptr$<$ \mbox{\hyperlink{classentities_1_1_entity}{entities\+::\+Entity}} $>$ \&}]{entity }\end{DoxyParamCaption})}
+
+
+
+Add a new entity to the world. you can also use +=. 
+
+
+\begin{DoxyParams}{Parameters}
+{\em entity} & entity \\
+\hline
+\end{DoxyParams}
+
+
+Definition at line 140 of file main\+Game.\+cpp.
+
+\mbox{\Hypertarget{class_game_client_a6984da0365fd19c81dbc8907b598bf49}\label{class_game_client_a6984da0365fd19c81dbc8907b598bf49}} 
+\index{GameClient@{GameClient}!getEntities@{getEntities}}
+\index{getEntities@{getEntities}!GameClient@{GameClient}}
+\doxysubsubsection{\texorpdfstring{getEntities()}{getEntities()}}
+{\footnotesize\ttfamily \mbox{\hyperlink{class_dynamic_array}{Dynamic\+Array}}$<$ std\+::shared\+\_\+ptr$<$ \mbox{\hyperlink{classentities_1_1_entity}{Entity}} $>$ $>$ \& Game\+Client\+::get\+Entities (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}
+
+
+
+Definition at line 29 of file main\+Game.\+cpp.
+
+\mbox{\Hypertarget{class_game_client_adfcb979db6333b335dee4e6d785aabcf}\label{class_game_client_adfcb979db6333b335dee4e6d785aabcf}} 
+\index{GameClient@{GameClient}!getInstance@{getInstance}}
+\index{getInstance@{getInstance}!GameClient@{GameClient}}
+\doxysubsubsection{\texorpdfstring{getInstance()}{getInstance()}}
+{\footnotesize\ttfamily \mbox{\hyperlink{class_game_client}{Game\+Client}} \& Game\+Client\+::get\+Instance (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}
+
+
+
+Definition at line 40 of file main\+Game.\+cpp.
+
+\mbox{\Hypertarget{class_game_client_acc1e0f1d4836be4a8556289cfdfd4049}\label{class_game_client_acc1e0f1d4836be4a8556289cfdfd4049}} 
+\index{GameClient@{GameClient}!getPlayerEntity@{getPlayerEntity}}
+\index{getPlayerEntity@{getPlayerEntity}!GameClient@{GameClient}}
+\doxysubsubsection{\texorpdfstring{getPlayerEntity()}{getPlayerEntity()}}
+{\footnotesize\ttfamily std\+::shared\+\_\+ptr$<$ \mbox{\hyperlink{classentities_1_1_player_entity}{entities\+::\+Player\+Entity}} $>$ Game\+Client\+::get\+Player\+Entity (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}
+
+
+
+Get the main player. 
+
+\begin{DoxyReturn}{Returns}
+the Player\+Entity 
+\end{DoxyReturn}
+
+
+Definition at line 156 of file main\+Game.\+cpp.
+
+\mbox{\Hypertarget{class_game_client_a01a0c559c6cfe63557fa4b5d7aa9e72c}\label{class_game_client_a01a0c559c6cfe63557fa4b5d7aa9e72c}} 
+\index{GameClient@{GameClient}!getScene@{getScene}}
+\index{getScene@{getScene}!GameClient@{GameClient}}
+\doxysubsubsection{\texorpdfstring{getScene()}{getScene()}}
+{\footnotesize\ttfamily const \mbox{\hyperlink{classolc_1_1_transformed_view}{olc\+::\+Transformed\+View}} \& Game\+Client\+::get\+Scene (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}
+
+
+
+Get the screen details. needed in fire direction calculation. 
+
+\begin{DoxyReturn}{Returns}
+the scene 
+\end{DoxyReturn}
+
+
+Definition at line 145 of file main\+Game.\+cpp.
+
+\mbox{\Hypertarget{class_game_client_a698bb8a4ba91211dc4fcaa4079d8d070}\label{class_game_client_a698bb8a4ba91211dc4fcaa4079d8d070}} 
+\index{GameClient@{GameClient}!OnUserCreate@{OnUserCreate}}
+\index{OnUserCreate@{OnUserCreate}!GameClient@{GameClient}}
+\doxysubsubsection{\texorpdfstring{OnUserCreate()}{OnUserCreate()}}
+{\footnotesize\ttfamily bool Game\+Client\+::\+On\+User\+Create (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [override]}, {\ttfamily [virtual]}}
+
+
+
+Create a new game instance. 
+
+\begin{DoxyReturn}{Returns}
+
+\end{DoxyReturn}
+
+
+Reimplemented from \mbox{\hyperlink{classolc_1_1_pixel_game_engine_a6a33b6ff7cd23dfd05b34416865fb5c3}{olc\+::\+Pixel\+Game\+Engine}}.
+
+
+
+Definition at line 45 of file main\+Game.\+cpp.
+
+\mbox{\Hypertarget{class_game_client_ab6e2efe37e67de64062bca35d8a11e2e}\label{class_game_client_ab6e2efe37e67de64062bca35d8a11e2e}} 
+\index{GameClient@{GameClient}!OnUserUpdate@{OnUserUpdate}}
+\index{OnUserUpdate@{OnUserUpdate}!GameClient@{GameClient}}
+\doxysubsubsection{\texorpdfstring{OnUserUpdate()}{OnUserUpdate()}}
+{\footnotesize\ttfamily bool Game\+Client\+::\+On\+User\+Update (\begin{DoxyParamCaption}\item[{float}]{f\+Elapsed\+Time }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [override]}, {\ttfamily [virtual]}}
+
+
+
+Update the game. 
+
+
+\begin{DoxyParams}{Parameters}
+{\em f\+Elapsed\+Time} & the length of the last tick \\
+\hline
+\end{DoxyParams}
+\begin{DoxyReturn}{Returns}
+false, if the game can quit 
+\end{DoxyReturn}
+
+
+Reimplemented from \mbox{\hyperlink{classolc_1_1_pixel_game_engine_af9379a3db341b0acb410ea543e30fdd1}{olc\+::\+Pixel\+Game\+Engine}}.
+
+
+
+Definition at line 89 of file main\+Game.\+cpp.
+
+\mbox{\Hypertarget{class_game_client_abf4100b1ee69f4f300346424139f8d93}\label{class_game_client_abf4100b1ee69f4f300346424139f8d93}} 
+\index{GameClient@{GameClient}!operator+=@{operator+=}}
+\index{operator+=@{operator+=}!GameClient@{GameClient}}
+\doxysubsubsection{\texorpdfstring{operator+=()}{operator+=()}}
+{\footnotesize\ttfamily \mbox{\hyperlink{class_game_client}{Game\+Client}} \& Game\+Client\+::operator+= (\begin{DoxyParamCaption}\item[{std\+::shared\+\_\+ptr$<$ \mbox{\hyperlink{classentities_1_1_entity}{entities\+::\+Entity}} $>$}]{entity }\end{DoxyParamCaption})}
+
+
+
+Add an entity to the world. 
+
+
+\begin{DoxyParams}{Parameters}
+{\em entity} & the entity \\
+\hline
+\end{DoxyParams}
+\begin{DoxyReturn}{Returns}
+\mbox{\hyperlink{class_game_client}{Game\+Client}} 
+\end{DoxyReturn}
+
+
+Definition at line 150 of file main\+Game.\+cpp.
+
+\mbox{\Hypertarget{class_game_client_a9af9a685c31d428921b0cf5976a63c14}\label{class_game_client_a9af9a685c31d428921b0cf5976a63c14}} 
+\index{GameClient@{GameClient}!setDebugMode@{setDebugMode}}
+\index{setDebugMode@{setDebugMode}!GameClient@{GameClient}}
+\doxysubsubsection{\texorpdfstring{setDebugMode()}{setDebugMode()}}
+{\footnotesize\ttfamily void Game\+Client\+::set\+Debug\+Mode (\begin{DoxyParamCaption}\item[{bool}]{bl = {\ttfamily true} }\end{DoxyParamCaption})}
+
+
+
+turn on debug, caused by an exception 
+
+
+\begin{DoxyParams}{Parameters}
+{\em bl} & true \\
+\hline
+\end{DoxyParams}
+
+
+Definition at line 135 of file main\+Game.\+cpp.
+
+
+
+\doxysubsection{Friends And Related Function Documentation}
+\mbox{\Hypertarget{class_game_client_a81ce304348a420752ee080480d2b3095}\label{class_game_client_a81ce304348a420752ee080480d2b3095}} 
+\index{GameClient@{GameClient}!main@{main}}
+\index{main@{main}!GameClient@{GameClient}}
+\doxysubsubsection{\texorpdfstring{main}{main}}
+{\footnotesize\ttfamily int main (\begin{DoxyParamCaption}\item[{int}]{argc,  }\item[{char $\ast$}]{argv\mbox{[}$\,$\mbox{]} }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [friend]}}
+
+
+
+Definition at line 13 of file game.\+cpp.
+
+
+
+The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize}
+\item 
+C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\mbox{\hyperlink{main_game_8h}{main\+Game.\+h}}\item 
+C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\mbox{\hyperlink{main_game_8cpp}{main\+Game.\+cpp}}\end{DoxyCompactItemize}
diff --git a/doxy/latex/class_game_exception.eps b/doxy/latex/class_game_exception.eps
new file mode 100644
index 0000000000000000000000000000000000000000..603e353096b4ee1bca9ab5c2dcbdc7db778793d3
--- /dev/null
+++ b/doxy/latex/class_game_exception.eps
@@ -0,0 +1,197 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: ClassName
+%%Creator: Doxygen
+%%CreationDate: Time
+%%For: 
+%Magnification: 1.00
+%%Orientation: Portrait
+%%BoundingBox: 0 0 500 373.831787
+%%Pages: 0
+%%BeginSetup
+%%EndSetup
+%%EndComments
+
+% ----- variables -----
+
+/boxwidth 0 def
+/boxheight 40 def
+/fontheight 24 def
+/marginwidth 10 def
+/distx 20 def
+/disty 40 def
+/boundaspect 1.337500 def  % aspect ratio of the BoundingBox (width/height)
+/boundx 500 def
+/boundy boundx boundaspect div def
+/xspacing 0 def
+/yspacing 0 def
+/rows 2 def
+/cols 1 def
+/scalefactor 0 def
+/boxfont /Times-Roman findfont fontheight scalefont def
+
+% ----- procedures -----
+
+/dotted { [1 4] 0 setdash } def
+/dashed { [5] 0 setdash } def
+/solid  { [] 0 setdash } def
+
+/max % result = MAX(arg1,arg2)
+{
+  /a exch def
+  /b exch def
+  a b gt {a} {b} ifelse
+} def
+
+/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)
+{
+  0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max
+} def
+
+/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))
+{
+  /str exch def
+  /boxwidth boxwidth str stringwidth pop max def
+} def
+
+/box % draws a box with text 'arg1' at grid pos (arg2,arg3)
+{ gsave
+  2 setlinewidth
+  newpath
+  exch xspacing mul xoffset add
+  exch yspacing mul
+  moveto
+  boxwidth 0 rlineto 
+  0 boxheight rlineto 
+  boxwidth neg 0 rlineto 
+  0 boxheight neg rlineto 
+  closepath
+  dup stringwidth pop neg boxwidth add 2 div
+  boxheight fontheight 2 div sub 2 div
+  rmoveto show stroke
+  grestore
+} def  
+
+/mark
+{ newpath
+  exch xspacing mul xoffset add boxwidth add
+  exch yspacing mul
+  moveto
+  0 boxheight 4 div rlineto
+  boxheight neg 4 div boxheight neg 4 div rlineto
+  closepath
+  eofill
+  stroke
+} def
+
+/arrow
+{ newpath
+  moveto
+  3 -8 rlineto
+  -6 0 rlineto
+  3 8 rlineto
+  closepath
+  eofill
+  stroke
+} def
+
+/out % draws an output connector for the block at (arg1,arg2)
+{
+  newpath
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul boxheight add
+  /y exch def
+  /x exch def
+  x y moveto
+  0 disty 2 div rlineto 
+  stroke
+  1 eq { x y disty 2 div add arrow } if
+} def
+
+/in % draws an input connector for the block at (arg1,arg2)
+{
+  newpath
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul disty 2 div sub
+  /y exch def
+  /x exch def
+  x y moveto
+  0 disty 2 div rlineto
+  stroke
+  1 eq { x y disty 2 div add arrow } if
+} def
+
+/hedge
+{
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul boxheight 2 div sub
+  /y exch def
+  /x exch def
+  newpath
+  x y moveto
+  boxwidth 2 div distx add 0 rlineto
+  stroke
+  1 eq
+  { newpath x boxwidth 2 div distx add add y moveto
+    -8 3 rlineto
+    0 -6 rlineto
+    8 3 rlineto
+    closepath
+    eofill
+    stroke
+  } if
+} def
+
+/vedge
+{
+  /ye exch def
+  /ys exch def
+  /xs exch def
+  newpath
+  xs xspacing mul xoffset add boxwidth 2 div add dup
+  ys yspacing mul boxheight 2 div sub
+  moveto
+  ye yspacing mul boxheight 2 div sub
+  lineto
+  stroke
+} def
+
+/conn % connections the blocks from col 'arg1' to 'arg2' of row 'arg3'
+{
+  /ys exch def
+  /xe exch def
+  /xs exch def
+  newpath
+  xs xspacing mul xoffset add boxwidth 2 div add
+  ys yspacing mul disty 2 div sub
+  moveto
+  xspacing xe xs sub mul 0
+  rlineto
+  stroke
+} def
+
+% ----- main ------
+
+boxfont setfont
+1 boundaspect scale
+(GameException) cw
+(runtime_error) cw
+/boxwidth boxwidth marginwidth 2 mul add def
+/xspacing boxwidth distx add def
+/yspacing boxheight disty add def
+/scalefactor 
+  boxwidth cols mul distx cols 1 sub mul add
+  boxheight rows mul disty rows 1 sub mul add boundaspect mul 
+  max def
+boundx scalefactor div boundy scalefactor div scale
+
+% ----- classes -----
+
+ (GameException) 0.000000 0.000000 box
+ (runtime_error) 0.000000 1.000000 box
+
+% ----- relations -----
+
+solid
+0 0.000000 0.000000 out
+solid
+1 0.000000 1.000000 in
diff --git a/doxy/latex/class_game_exception.tex b/doxy/latex/class_game_exception.tex
new file mode 100644
index 0000000000000000000000000000000000000000..0213574e64ddaa1c92b4d721ecfb742b0832f0b7
--- /dev/null
+++ b/doxy/latex/class_game_exception.tex
@@ -0,0 +1,43 @@
+\hypertarget{class_game_exception}{}\doxysection{Game\+Exception Class Reference}
+\label{class_game_exception}\index{GameException@{GameException}}
+
+
+{\ttfamily \#include $<$Game\+Exception.\+h$>$}
+
+Inheritance diagram for Game\+Exception\+:\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[height=2.000000cm]{class_game_exception}
+\end{center}
+\end{figure}
+\doxysubsection*{Public Member Functions}
+\begin{DoxyCompactItemize}
+\item 
+\mbox{\hyperlink{class_game_exception_a076a7dd5228356c8d54dd0922d1c3048}{Game\+Exception}} (const std\+::string \&description, \mbox{\hyperlink{classentities_1_1_entity}{entities\+::\+Entity}} \&entity)
+\end{DoxyCompactItemize}
+
+
+\doxysubsection{Detailed Description}
+
+
+Definition at line 9 of file Game\+Exception.\+h.
+
+
+
+\doxysubsection{Constructor \& Destructor Documentation}
+\mbox{\Hypertarget{class_game_exception_a076a7dd5228356c8d54dd0922d1c3048}\label{class_game_exception_a076a7dd5228356c8d54dd0922d1c3048}} 
+\index{GameException@{GameException}!GameException@{GameException}}
+\index{GameException@{GameException}!GameException@{GameException}}
+\doxysubsubsection{\texorpdfstring{GameException()}{GameException()}}
+{\footnotesize\ttfamily Game\+Exception\+::\+Game\+Exception (\begin{DoxyParamCaption}\item[{const std\+::string \&}]{description,  }\item[{\mbox{\hyperlink{classentities_1_1_entity}{entities\+::\+Entity}} \&}]{entity }\end{DoxyParamCaption})}
+
+
+
+Definition at line 6 of file Game\+Exception.\+cpp.
+
+
+
+The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize}
+\item 
+C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\mbox{\hyperlink{_game_exception_8h}{Game\+Exception.\+h}}\item 
+C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\mbox{\hyperlink{_game_exception_8cpp}{Game\+Exception.\+cpp}}\end{DoxyCompactItemize}
diff --git a/doxy/latex/class_render_exception.tex b/doxy/latex/class_render_exception.tex
new file mode 100644
index 0000000000000000000000000000000000000000..1713de4df6406cce08ac997ac88fea86e70056de
--- /dev/null
+++ b/doxy/latex/class_render_exception.tex
@@ -0,0 +1,18 @@
+\hypertarget{class_render_exception}{}\doxysection{Render\+Exception Class Reference}
+\label{class_render_exception}\index{RenderException@{RenderException}}
+
+
+{\ttfamily \#include $<$Render\+Exception.\+h$>$}
+
+
+
+\doxysubsection{Detailed Description}
+
+
+Definition at line 2 of file Render\+Exception.\+h.
+
+
+
+The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize}
+\item 
+C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\mbox{\hyperlink{_render_exception_8h}{Render\+Exception.\+h}}\end{DoxyCompactItemize}
diff --git a/doxy/latex/class_square_room_generator.eps b/doxy/latex/class_square_room_generator.eps
new file mode 100644
index 0000000000000000000000000000000000000000..b41e894fcaf0ead7da189b5309b4c03f3be715b9
--- /dev/null
+++ b/doxy/latex/class_square_room_generator.eps
@@ -0,0 +1,197 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: ClassName
+%%Creator: Doxygen
+%%CreationDate: Time
+%%For: 
+%Magnification: 1.00
+%%Orientation: Portrait
+%%BoundingBox: 0 0 500 270.270264
+%%Pages: 0
+%%BeginSetup
+%%EndSetup
+%%EndComments
+
+% ----- variables -----
+
+/boxwidth 0 def
+/boxheight 40 def
+/fontheight 24 def
+/marginwidth 10 def
+/distx 20 def
+/disty 40 def
+/boundaspect 1.850000 def  % aspect ratio of the BoundingBox (width/height)
+/boundx 500 def
+/boundy boundx boundaspect div def
+/xspacing 0 def
+/yspacing 0 def
+/rows 2 def
+/cols 1 def
+/scalefactor 0 def
+/boxfont /Times-Roman findfont fontheight scalefont def
+
+% ----- procedures -----
+
+/dotted { [1 4] 0 setdash } def
+/dashed { [5] 0 setdash } def
+/solid  { [] 0 setdash } def
+
+/max % result = MAX(arg1,arg2)
+{
+  /a exch def
+  /b exch def
+  a b gt {a} {b} ifelse
+} def
+
+/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)
+{
+  0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max
+} def
+
+/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))
+{
+  /str exch def
+  /boxwidth boxwidth str stringwidth pop max def
+} def
+
+/box % draws a box with text 'arg1' at grid pos (arg2,arg3)
+{ gsave
+  2 setlinewidth
+  newpath
+  exch xspacing mul xoffset add
+  exch yspacing mul
+  moveto
+  boxwidth 0 rlineto 
+  0 boxheight rlineto 
+  boxwidth neg 0 rlineto 
+  0 boxheight neg rlineto 
+  closepath
+  dup stringwidth pop neg boxwidth add 2 div
+  boxheight fontheight 2 div sub 2 div
+  rmoveto show stroke
+  grestore
+} def  
+
+/mark
+{ newpath
+  exch xspacing mul xoffset add boxwidth add
+  exch yspacing mul
+  moveto
+  0 boxheight 4 div rlineto
+  boxheight neg 4 div boxheight neg 4 div rlineto
+  closepath
+  eofill
+  stroke
+} def
+
+/arrow
+{ newpath
+  moveto
+  3 -8 rlineto
+  -6 0 rlineto
+  3 8 rlineto
+  closepath
+  eofill
+  stroke
+} def
+
+/out % draws an output connector for the block at (arg1,arg2)
+{
+  newpath
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul boxheight add
+  /y exch def
+  /x exch def
+  x y moveto
+  0 disty 2 div rlineto 
+  stroke
+  1 eq { x y disty 2 div add arrow } if
+} def
+
+/in % draws an input connector for the block at (arg1,arg2)
+{
+  newpath
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul disty 2 div sub
+  /y exch def
+  /x exch def
+  x y moveto
+  0 disty 2 div rlineto
+  stroke
+  1 eq { x y disty 2 div add arrow } if
+} def
+
+/hedge
+{
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul boxheight 2 div sub
+  /y exch def
+  /x exch def
+  newpath
+  x y moveto
+  boxwidth 2 div distx add 0 rlineto
+  stroke
+  1 eq
+  { newpath x boxwidth 2 div distx add add y moveto
+    -8 3 rlineto
+    0 -6 rlineto
+    8 3 rlineto
+    closepath
+    eofill
+    stroke
+  } if
+} def
+
+/vedge
+{
+  /ye exch def
+  /ys exch def
+  /xs exch def
+  newpath
+  xs xspacing mul xoffset add boxwidth 2 div add dup
+  ys yspacing mul boxheight 2 div sub
+  moveto
+  ye yspacing mul boxheight 2 div sub
+  lineto
+  stroke
+} def
+
+/conn % connections the blocks from col 'arg1' to 'arg2' of row 'arg3'
+{
+  /ys exch def
+  /xe exch def
+  /xs exch def
+  newpath
+  xs xspacing mul xoffset add boxwidth 2 div add
+  ys yspacing mul disty 2 div sub
+  moveto
+  xspacing xe xs sub mul 0
+  rlineto
+  stroke
+} def
+
+% ----- main ------
+
+boxfont setfont
+1 boundaspect scale
+(SquareRoomGenerator) cw
+(DungeonGenerator) cw
+/boxwidth boxwidth marginwidth 2 mul add def
+/xspacing boxwidth distx add def
+/yspacing boxheight disty add def
+/scalefactor 
+  boxwidth cols mul distx cols 1 sub mul add
+  boxheight rows mul disty rows 1 sub mul add boundaspect mul 
+  max def
+boundx scalefactor div boundy scalefactor div scale
+
+% ----- classes -----
+
+ (SquareRoomGenerator) 0.000000 0.000000 box
+ (DungeonGenerator) 0.000000 1.000000 box
+
+% ----- relations -----
+
+solid
+0 0.000000 0.000000 out
+solid
+1 0.000000 1.000000 in
diff --git a/doxy/latex/class_square_room_generator.tex b/doxy/latex/class_square_room_generator.tex
new file mode 100644
index 0000000000000000000000000000000000000000..96076f712d8fbf04d6de25a88a15a354d399ab8d
--- /dev/null
+++ b/doxy/latex/class_square_room_generator.tex
@@ -0,0 +1,52 @@
+\hypertarget{class_square_room_generator}{}\doxysection{Square\+Room\+Generator Class Reference}
+\label{class_square_room_generator}\index{SquareRoomGenerator@{SquareRoomGenerator}}
+
+
+Generates a weird square dungeon, filled with stupid enemies and weapons.  
+
+
+
+
+{\ttfamily \#include $<$Square\+Room\+Generator.\+h$>$}
+
+Inheritance diagram for Square\+Room\+Generator\+:\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[height=2.000000cm]{class_square_room_generator}
+\end{center}
+\end{figure}
+\doxysubsection*{Public Member Functions}
+\begin{DoxyCompactItemize}
+\item 
+std\+::shared\+\_\+ptr$<$ \mbox{\hyperlink{classentities_1_1_player_entity}{entities\+::\+Player\+Entity}} $>$ \mbox{\hyperlink{class_square_room_generator_a5b9952abf9af7a8fc4241f3f9e93a616}{generate}} (\mbox{\hyperlink{class_game_client}{Game\+Client}} \&client) override
+\end{DoxyCompactItemize}
+
+
+\doxysubsection{Detailed Description}
+Generates a weird square dungeon, filled with stupid enemies and weapons. 
+
+Definition at line 6 of file Square\+Room\+Generator.\+h.
+
+
+
+\doxysubsection{Member Function Documentation}
+\mbox{\Hypertarget{class_square_room_generator_a5b9952abf9af7a8fc4241f3f9e93a616}\label{class_square_room_generator_a5b9952abf9af7a8fc4241f3f9e93a616}} 
+\index{SquareRoomGenerator@{SquareRoomGenerator}!generate@{generate}}
+\index{generate@{generate}!SquareRoomGenerator@{SquareRoomGenerator}}
+\doxysubsubsection{\texorpdfstring{generate()}{generate()}}
+{\footnotesize\ttfamily std\+::shared\+\_\+ptr$<$ \mbox{\hyperlink{classentities_1_1_player_entity}{Player\+Entity}} $>$ Square\+Room\+Generator\+::generate (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{class_game_client}{Game\+Client}} \&}]{client }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [override]}, {\ttfamily [virtual]}}
+
+
+
+Implements \mbox{\hyperlink{class_dungeon_generator_add8fcec4f013307d734616106110a1ea}{Dungeon\+Generator}}.
+
+
+
+Definition at line 23 of file Square\+Room\+Generator.\+cpp.
+
+
+
+The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize}
+\item 
+C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\mbox{\hyperlink{_square_room_generator_8h}{Square\+Room\+Generator.\+h}}\item 
+C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\mbox{\hyperlink{_square_room_generator_8cpp}{Square\+Room\+Generator.\+cpp}}\end{DoxyCompactItemize}
diff --git a/doxy/latex/class_test_generator.eps b/doxy/latex/class_test_generator.eps
new file mode 100644
index 0000000000000000000000000000000000000000..fda886d9f7a47d3a5d28a4176eb8180229f180b3
--- /dev/null
+++ b/doxy/latex/class_test_generator.eps
@@ -0,0 +1,197 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: ClassName
+%%Creator: Doxygen
+%%CreationDate: Time
+%%For: 
+%Magnification: 1.00
+%%Orientation: Portrait
+%%BoundingBox: 0 0 500 312.500000
+%%Pages: 0
+%%BeginSetup
+%%EndSetup
+%%EndComments
+
+% ----- variables -----
+
+/boxwidth 0 def
+/boxheight 40 def
+/fontheight 24 def
+/marginwidth 10 def
+/distx 20 def
+/disty 40 def
+/boundaspect 1.600000 def  % aspect ratio of the BoundingBox (width/height)
+/boundx 500 def
+/boundy boundx boundaspect div def
+/xspacing 0 def
+/yspacing 0 def
+/rows 2 def
+/cols 1 def
+/scalefactor 0 def
+/boxfont /Times-Roman findfont fontheight scalefont def
+
+% ----- procedures -----
+
+/dotted { [1 4] 0 setdash } def
+/dashed { [5] 0 setdash } def
+/solid  { [] 0 setdash } def
+
+/max % result = MAX(arg1,arg2)
+{
+  /a exch def
+  /b exch def
+  a b gt {a} {b} ifelse
+} def
+
+/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)
+{
+  0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max
+} def
+
+/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))
+{
+  /str exch def
+  /boxwidth boxwidth str stringwidth pop max def
+} def
+
+/box % draws a box with text 'arg1' at grid pos (arg2,arg3)
+{ gsave
+  2 setlinewidth
+  newpath
+  exch xspacing mul xoffset add
+  exch yspacing mul
+  moveto
+  boxwidth 0 rlineto 
+  0 boxheight rlineto 
+  boxwidth neg 0 rlineto 
+  0 boxheight neg rlineto 
+  closepath
+  dup stringwidth pop neg boxwidth add 2 div
+  boxheight fontheight 2 div sub 2 div
+  rmoveto show stroke
+  grestore
+} def  
+
+/mark
+{ newpath
+  exch xspacing mul xoffset add boxwidth add
+  exch yspacing mul
+  moveto
+  0 boxheight 4 div rlineto
+  boxheight neg 4 div boxheight neg 4 div rlineto
+  closepath
+  eofill
+  stroke
+} def
+
+/arrow
+{ newpath
+  moveto
+  3 -8 rlineto
+  -6 0 rlineto
+  3 8 rlineto
+  closepath
+  eofill
+  stroke
+} def
+
+/out % draws an output connector for the block at (arg1,arg2)
+{
+  newpath
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul boxheight add
+  /y exch def
+  /x exch def
+  x y moveto
+  0 disty 2 div rlineto 
+  stroke
+  1 eq { x y disty 2 div add arrow } if
+} def
+
+/in % draws an input connector for the block at (arg1,arg2)
+{
+  newpath
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul disty 2 div sub
+  /y exch def
+  /x exch def
+  x y moveto
+  0 disty 2 div rlineto
+  stroke
+  1 eq { x y disty 2 div add arrow } if
+} def
+
+/hedge
+{
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul boxheight 2 div sub
+  /y exch def
+  /x exch def
+  newpath
+  x y moveto
+  boxwidth 2 div distx add 0 rlineto
+  stroke
+  1 eq
+  { newpath x boxwidth 2 div distx add add y moveto
+    -8 3 rlineto
+    0 -6 rlineto
+    8 3 rlineto
+    closepath
+    eofill
+    stroke
+  } if
+} def
+
+/vedge
+{
+  /ye exch def
+  /ys exch def
+  /xs exch def
+  newpath
+  xs xspacing mul xoffset add boxwidth 2 div add dup
+  ys yspacing mul boxheight 2 div sub
+  moveto
+  ye yspacing mul boxheight 2 div sub
+  lineto
+  stroke
+} def
+
+/conn % connections the blocks from col 'arg1' to 'arg2' of row 'arg3'
+{
+  /ys exch def
+  /xe exch def
+  /xs exch def
+  newpath
+  xs xspacing mul xoffset add boxwidth 2 div add
+  ys yspacing mul disty 2 div sub
+  moveto
+  xspacing xe xs sub mul 0
+  rlineto
+  stroke
+} def
+
+% ----- main ------
+
+boxfont setfont
+1 boundaspect scale
+(TestGenerator) cw
+(DungeonGenerator) cw
+/boxwidth boxwidth marginwidth 2 mul add def
+/xspacing boxwidth distx add def
+/yspacing boxheight disty add def
+/scalefactor 
+  boxwidth cols mul distx cols 1 sub mul add
+  boxheight rows mul disty rows 1 sub mul add boundaspect mul 
+  max def
+boundx scalefactor div boundy scalefactor div scale
+
+% ----- classes -----
+
+ (TestGenerator) 0.000000 0.000000 box
+ (DungeonGenerator) 0.000000 1.000000 box
+
+% ----- relations -----
+
+solid
+0 0.000000 0.000000 out
+solid
+1 0.000000 1.000000 in
diff --git a/doxy/latex/class_test_generator.tex b/doxy/latex/class_test_generator.tex
new file mode 100644
index 0000000000000000000000000000000000000000..d5ac62cd208d13d0affba18b70fc4f6188cb6143
--- /dev/null
+++ b/doxy/latex/class_test_generator.tex
@@ -0,0 +1,52 @@
+\hypertarget{class_test_generator}{}\doxysection{Test\+Generator Class Reference}
+\label{class_test_generator}\index{TestGenerator@{TestGenerator}}
+
+
+Used for testing, doesn\textquotesingle{}t random.  
+
+
+
+
+{\ttfamily \#include $<$Test\+Generator.\+h$>$}
+
+Inheritance diagram for Test\+Generator\+:\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[height=2.000000cm]{class_test_generator}
+\end{center}
+\end{figure}
+\doxysubsection*{Public Member Functions}
+\begin{DoxyCompactItemize}
+\item 
+std\+::shared\+\_\+ptr$<$ \mbox{\hyperlink{classentities_1_1_player_entity}{entities\+::\+Player\+Entity}} $>$ \mbox{\hyperlink{class_test_generator_aaacdd82f39d99e1dcbc847b674f245e1}{generate}} (\mbox{\hyperlink{class_game_client}{Game\+Client}} \&client) override
+\end{DoxyCompactItemize}
+
+
+\doxysubsection{Detailed Description}
+Used for testing, doesn\textquotesingle{}t random. 
+
+Definition at line 7 of file Test\+Generator.\+h.
+
+
+
+\doxysubsection{Member Function Documentation}
+\mbox{\Hypertarget{class_test_generator_aaacdd82f39d99e1dcbc847b674f245e1}\label{class_test_generator_aaacdd82f39d99e1dcbc847b674f245e1}} 
+\index{TestGenerator@{TestGenerator}!generate@{generate}}
+\index{generate@{generate}!TestGenerator@{TestGenerator}}
+\doxysubsubsection{\texorpdfstring{generate()}{generate()}}
+{\footnotesize\ttfamily shared\+\_\+ptr$<$ \mbox{\hyperlink{classentities_1_1_player_entity}{Player\+Entity}} $>$ Test\+Generator\+::generate (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{class_game_client}{Game\+Client}} \&}]{client }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [override]}, {\ttfamily [virtual]}}
+
+
+
+Implements \mbox{\hyperlink{class_dungeon_generator_add8fcec4f013307d734616106110a1ea}{Dungeon\+Generator}}.
+
+
+
+Definition at line 16 of file Test\+Generator.\+cpp.
+
+
+
+The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize}
+\item 
+C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\mbox{\hyperlink{_test_generator_8h}{Test\+Generator.\+h}}\item 
+C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\mbox{\hyperlink{_test_generator_8cpp}{Test\+Generator.\+cpp}}\end{DoxyCompactItemize}
diff --git a/doxy/latex/classentities_1_1_character_entity.eps b/doxy/latex/classentities_1_1_character_entity.eps
new file mode 100644
index 0000000000000000000000000000000000000000..eee33e54229da3fec2822ca0e848f9d6f06be608
--- /dev/null
+++ b/doxy/latex/classentities_1_1_character_entity.eps
@@ -0,0 +1,219 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: ClassName
+%%Creator: Doxygen
+%%CreationDate: Time
+%%For: 
+%Magnification: 1.00
+%%Orientation: Portrait
+%%BoundingBox: 0 0 500 174.291946
+%%Pages: 0
+%%BeginSetup
+%%EndSetup
+%%EndComments
+
+% ----- variables -----
+
+/boxwidth 0 def
+/boxheight 40 def
+/fontheight 24 def
+/marginwidth 10 def
+/distx 20 def
+/disty 40 def
+/boundaspect 2.868750 def  % aspect ratio of the BoundingBox (width/height)
+/boundx 500 def
+/boundy boundx boundaspect div def
+/xspacing 0 def
+/yspacing 0 def
+/rows 4 def
+/cols 3 def
+/scalefactor 0 def
+/boxfont /Times-Roman findfont fontheight scalefont def
+
+% ----- procedures -----
+
+/dotted { [1 4] 0 setdash } def
+/dashed { [5] 0 setdash } def
+/solid  { [] 0 setdash } def
+
+/max % result = MAX(arg1,arg2)
+{
+  /a exch def
+  /b exch def
+  a b gt {a} {b} ifelse
+} def
+
+/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)
+{
+  0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max
+} def
+
+/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))
+{
+  /str exch def
+  /boxwidth boxwidth str stringwidth pop max def
+} def
+
+/box % draws a box with text 'arg1' at grid pos (arg2,arg3)
+{ gsave
+  2 setlinewidth
+  newpath
+  exch xspacing mul xoffset add
+  exch yspacing mul
+  moveto
+  boxwidth 0 rlineto 
+  0 boxheight rlineto 
+  boxwidth neg 0 rlineto 
+  0 boxheight neg rlineto 
+  closepath
+  dup stringwidth pop neg boxwidth add 2 div
+  boxheight fontheight 2 div sub 2 div
+  rmoveto show stroke
+  grestore
+} def  
+
+/mark
+{ newpath
+  exch xspacing mul xoffset add boxwidth add
+  exch yspacing mul
+  moveto
+  0 boxheight 4 div rlineto
+  boxheight neg 4 div boxheight neg 4 div rlineto
+  closepath
+  eofill
+  stroke
+} def
+
+/arrow
+{ newpath
+  moveto
+  3 -8 rlineto
+  -6 0 rlineto
+  3 8 rlineto
+  closepath
+  eofill
+  stroke
+} def
+
+/out % draws an output connector for the block at (arg1,arg2)
+{
+  newpath
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul boxheight add
+  /y exch def
+  /x exch def
+  x y moveto
+  0 disty 2 div rlineto 
+  stroke
+  1 eq { x y disty 2 div add arrow } if
+} def
+
+/in % draws an input connector for the block at (arg1,arg2)
+{
+  newpath
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul disty 2 div sub
+  /y exch def
+  /x exch def
+  x y moveto
+  0 disty 2 div rlineto
+  stroke
+  1 eq { x y disty 2 div add arrow } if
+} def
+
+/hedge
+{
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul boxheight 2 div sub
+  /y exch def
+  /x exch def
+  newpath
+  x y moveto
+  boxwidth 2 div distx add 0 rlineto
+  stroke
+  1 eq
+  { newpath x boxwidth 2 div distx add add y moveto
+    -8 3 rlineto
+    0 -6 rlineto
+    8 3 rlineto
+    closepath
+    eofill
+    stroke
+  } if
+} def
+
+/vedge
+{
+  /ye exch def
+  /ys exch def
+  /xs exch def
+  newpath
+  xs xspacing mul xoffset add boxwidth 2 div add dup
+  ys yspacing mul boxheight 2 div sub
+  moveto
+  ye yspacing mul boxheight 2 div sub
+  lineto
+  stroke
+} def
+
+/conn % connections the blocks from col 'arg1' to 'arg2' of row 'arg3'
+{
+  /ys exch def
+  /xe exch def
+  /xs exch def
+  newpath
+  xs xspacing mul xoffset add boxwidth 2 div add
+  ys yspacing mul disty 2 div sub
+  moveto
+  xspacing xe xs sub mul 0
+  rlineto
+  stroke
+} def
+
+% ----- main ------
+
+boxfont setfont
+1 boundaspect scale
+(entities::CharacterEntity) cw
+(entities::LivingEntity) cw
+(entities::Entity) cw
+(entities::DummyEntity) cw
+(entities::EntityWithAI) cw
+(entities::PlayerEntity) cw
+/boxwidth boxwidth marginwidth 2 mul add def
+/xspacing boxwidth distx add def
+/yspacing boxheight disty add def
+/scalefactor 
+  boxwidth cols mul distx cols 1 sub mul add
+  boxheight rows mul disty rows 1 sub mul add boundaspect mul 
+  max def
+boundx scalefactor div boundy scalefactor div scale
+
+% ----- classes -----
+
+ (entities::CharacterEntity) 1.000000 1.000000 box
+ (entities::LivingEntity) 1.000000 2.000000 box
+ (entities::Entity) 1.000000 3.000000 box
+ (entities::DummyEntity) 0.000000 0.000000 box
+ (entities::EntityWithAI) 1.000000 0.000000 box
+ (entities::PlayerEntity) 2.000000 0.000000 box
+
+% ----- relations -----
+
+solid
+0 1.000000 1.000000 out
+solid
+1 1.000000 2.000000 in
+solid
+0 1.000000 2.000000 out
+solid
+1 1.000000 3.000000 in
+solid
+1 1.000000 0.250000 out
+solid
+0.000000 2.000000 1.000000 conn
+solid
+0 0.000000 0.750000 in
+solid
+0 1.000000 0.750000 in
+solid
+0 2.000000 0.750000 in
diff --git a/doxy/latex/classentities_1_1_character_entity.tex b/doxy/latex/classentities_1_1_character_entity.tex
new file mode 100644
index 0000000000000000000000000000000000000000..c8cc7685dcbf00d82a3a27b34200eb723e8843af
--- /dev/null
+++ b/doxy/latex/classentities_1_1_character_entity.tex
@@ -0,0 +1,164 @@
+\hypertarget{classentities_1_1_character_entity}{}\doxysection{entities\+::Character\+Entity Class Reference}
+\label{classentities_1_1_character_entity}\index{entities::CharacterEntity@{entities::CharacterEntity}}
+
+
+A player or an enemy.  
+
+
+
+
+{\ttfamily \#include $<$Character\+Entity.\+h$>$}
+
+Inheritance diagram for entities\+::Character\+Entity\+:\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[height=4.000000cm]{classentities_1_1_character_entity}
+\end{center}
+\end{figure}
+\doxysubsection*{Public Member Functions}
+\begin{DoxyCompactItemize}
+\item 
+\mbox{\hyperlink{classentities_1_1_character_entity_aa7c43269834b07ef51355a874be373e8}{Character\+Entity}} (\mbox{\hyperlink{classrender_1_1_i_texture}{render\+::\+I\+Texture}} \&skin, const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&\mbox{\hyperlink{classentities_1_1_entity_a04f9c2febe8d435138a07eb2f48ba96b}{pos}})
+\item 
+void \mbox{\hyperlink{classentities_1_1_character_entity_ae7cdddc6dca655e7bf8c2f48424c5208}{tick}} (\mbox{\hyperlink{class_game_client}{Game\+Client}} \&client, float deltaT, std\+::shared\+\_\+ptr$<$ \mbox{\hyperlink{classentities_1_1_entity}{Entity}} $>$ \&shared\+\_\+this) override
+\begin{DoxyCompactList}\small\item\em \mbox{\hyperlink{classentities_1_1_entity}{Entity}} tick multiple times per sec. \end{DoxyCompactList}\item 
+void \mbox{\hyperlink{classentities_1_1_character_entity_aeb6069f0f07d0914faf0f94c0cc33def}{render}} (\mbox{\hyperlink{classolc_1_1_transformed_view}{olc\+::\+Transformed\+View}} \&scene) override
+\begin{DoxyCompactList}\small\item\em render \end{DoxyCompactList}\end{DoxyCompactItemize}
+\doxysubsection*{Protected Member Functions}
+\begin{DoxyCompactItemize}
+\item 
+virtual std\+::shared\+\_\+ptr$<$ \mbox{\hyperlink{classweapons_1_1_weapon}{weapons\+::\+Weapon}} $>$ \mbox{\hyperlink{classentities_1_1_character_entity_a7926bfbac4481203c1bd8920fcb2c432}{get\+Weapon}} ()
+\item 
+\mbox{\hyperlink{classrender_1_1_i_texture}{render\+::\+I\+Texture}} \& \mbox{\hyperlink{classentities_1_1_character_entity_afdae03f49fd5d47d0837ed660e37038f}{get\+Texture}} () override
+\begin{DoxyCompactList}\small\item\em the object\textquotesingle{}s texture \end{DoxyCompactList}\end{DoxyCompactItemize}
+\doxysubsection*{Protected Attributes}
+\begin{DoxyCompactItemize}
+\item 
+\mbox{\hyperlink{classrender_1_1_i_texture}{render\+::\+I\+Texture}} \& \mbox{\hyperlink{classentities_1_1_character_entity_a295a77ffb22dd1a7b30164ab04ecf400}{texture}}
+\end{DoxyCompactItemize}
+
+
+\doxysubsection{Detailed Description}
+A player or an enemy. 
+
+Definition at line 13 of file Character\+Entity.\+h.
+
+
+
+\doxysubsection{Constructor \& Destructor Documentation}
+\mbox{\Hypertarget{classentities_1_1_character_entity_aa7c43269834b07ef51355a874be373e8}\label{classentities_1_1_character_entity_aa7c43269834b07ef51355a874be373e8}} 
+\index{entities::CharacterEntity@{entities::CharacterEntity}!CharacterEntity@{CharacterEntity}}
+\index{CharacterEntity@{CharacterEntity}!entities::CharacterEntity@{entities::CharacterEntity}}
+\doxysubsubsection{\texorpdfstring{CharacterEntity()}{CharacterEntity()}}
+{\footnotesize\ttfamily entities\+::\+Character\+Entity\+::\+Character\+Entity (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{classrender_1_1_i_texture}{render\+::\+I\+Texture}} \&}]{skin,  }\item[{const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&}]{pos }\end{DoxyParamCaption})}
+
+
+
+Definition at line 14 of file Character\+Entity.\+cpp.
+
+
+
+\doxysubsection{Member Function Documentation}
+\mbox{\Hypertarget{classentities_1_1_character_entity_afdae03f49fd5d47d0837ed660e37038f}\label{classentities_1_1_character_entity_afdae03f49fd5d47d0837ed660e37038f}} 
+\index{entities::CharacterEntity@{entities::CharacterEntity}!getTexture@{getTexture}}
+\index{getTexture@{getTexture}!entities::CharacterEntity@{entities::CharacterEntity}}
+\doxysubsubsection{\texorpdfstring{getTexture()}{getTexture()}}
+{\footnotesize\ttfamily \mbox{\hyperlink{classrender_1_1_i_texture}{render\+::\+I\+Texture}} \& entities\+::\+Character\+Entity\+::get\+Texture (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [override]}, {\ttfamily [protected]}, {\ttfamily [virtual]}}
+
+
+
+the object\textquotesingle{}s texture 
+
+\begin{DoxyReturn}{Returns}
+the texture 
+\end{DoxyReturn}
+
+
+Implements \mbox{\hyperlink{classentities_1_1_entity_af01b796fb472ef3139aea41aeed36c76}{entities\+::\+Entity}}.
+
+
+
+Definition at line 10 of file Character\+Entity.\+cpp.
+
+\mbox{\Hypertarget{classentities_1_1_character_entity_a7926bfbac4481203c1bd8920fcb2c432}\label{classentities_1_1_character_entity_a7926bfbac4481203c1bd8920fcb2c432}} 
+\index{entities::CharacterEntity@{entities::CharacterEntity}!getWeapon@{getWeapon}}
+\index{getWeapon@{getWeapon}!entities::CharacterEntity@{entities::CharacterEntity}}
+\doxysubsubsection{\texorpdfstring{getWeapon()}{getWeapon()}}
+{\footnotesize\ttfamily std\+::shared\+\_\+ptr$<$ \mbox{\hyperlink{classweapons_1_1_weapon}{weapons\+::\+Weapon}} $>$ entities\+::\+Character\+Entity\+::get\+Weapon (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [protected]}, {\ttfamily [virtual]}}
+
+Return null if not available 
+
+Reimplemented in \mbox{\hyperlink{classentities_1_1_player_entity_a6b0fdc757c8e1d95012a31dab836f20a}{entities\+::\+Player\+Entity}}, and \mbox{\hyperlink{classentities_1_1_entity_with_a_i_a66937315f0a16d70c29359e89415d222}{entities\+::\+Entity\+With\+AI}}.
+
+
+
+Definition at line 6 of file Character\+Entity.\+cpp.
+
+\mbox{\Hypertarget{classentities_1_1_character_entity_aeb6069f0f07d0914faf0f94c0cc33def}\label{classentities_1_1_character_entity_aeb6069f0f07d0914faf0f94c0cc33def}} 
+\index{entities::CharacterEntity@{entities::CharacterEntity}!render@{render}}
+\index{render@{render}!entities::CharacterEntity@{entities::CharacterEntity}}
+\doxysubsubsection{\texorpdfstring{render()}{render()}}
+{\footnotesize\ttfamily void entities\+::\+Character\+Entity\+::render (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{classolc_1_1_transformed_view}{olc\+::\+Transformed\+View}} \&}]{scene }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [override]}, {\ttfamily [virtual]}}
+
+
+
+render 
+
+
+
+Reimplemented from \mbox{\hyperlink{classentities_1_1_entity_abcc4364b5b7250f0364f3550a618b3ab}{entities\+::\+Entity}}.
+
+
+
+Definition at line 24 of file Character\+Entity.\+cpp.
+
+\mbox{\Hypertarget{classentities_1_1_character_entity_ae7cdddc6dca655e7bf8c2f48424c5208}\label{classentities_1_1_character_entity_ae7cdddc6dca655e7bf8c2f48424c5208}} 
+\index{entities::CharacterEntity@{entities::CharacterEntity}!tick@{tick}}
+\index{tick@{tick}!entities::CharacterEntity@{entities::CharacterEntity}}
+\doxysubsubsection{\texorpdfstring{tick()}{tick()}}
+{\footnotesize\ttfamily void entities\+::\+Character\+Entity\+::tick (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{class_game_client}{Game\+Client}} \&}]{client,  }\item[{float}]{deltaT,  }\item[{std\+::shared\+\_\+ptr$<$ \mbox{\hyperlink{classentities_1_1_entity}{Entity}} $>$ \&}]{shared\+\_\+this }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [override]}, {\ttfamily [virtual]}}
+
+
+
+\mbox{\hyperlink{classentities_1_1_entity}{Entity}} tick multiple times per sec. 
+
+
+\begin{DoxyParams}{Parameters}
+{\em client} & the game client object \\
+\hline
+{\em deltaT} & how long take a tick \\
+\hline
+{\em shared\+\_\+this} & this as a shared\+\_\+ptr \\
+\hline
+\end{DoxyParams}
+
+
+Reimplemented from \mbox{\hyperlink{classentities_1_1_entity_a0440674bf90ae83d9a26aa4b0ac8309e}{entities\+::\+Entity}}.
+
+
+
+Reimplemented in \mbox{\hyperlink{classentities_1_1_player_entity_a9f5c7033ca46daf217c73cb5edbb0d68}{entities\+::\+Player\+Entity}}, and \mbox{\hyperlink{classentities_1_1_entity_with_a_i_a92708b14b042c03fa9a8673192867e72}{entities\+::\+Entity\+With\+AI}}.
+
+
+
+Definition at line 16 of file Character\+Entity.\+cpp.
+
+
+
+\doxysubsection{Member Data Documentation}
+\mbox{\Hypertarget{classentities_1_1_character_entity_a295a77ffb22dd1a7b30164ab04ecf400}\label{classentities_1_1_character_entity_a295a77ffb22dd1a7b30164ab04ecf400}} 
+\index{entities::CharacterEntity@{entities::CharacterEntity}!texture@{texture}}
+\index{texture@{texture}!entities::CharacterEntity@{entities::CharacterEntity}}
+\doxysubsubsection{\texorpdfstring{texture}{texture}}
+{\footnotesize\ttfamily \mbox{\hyperlink{classrender_1_1_i_texture}{render\+::\+I\+Texture}}\& entities\+::\+Character\+Entity\+::texture\hspace{0.3cm}{\ttfamily [protected]}}
+
+
+
+Definition at line 22 of file Character\+Entity.\+h.
+
+
+
+The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize}
+\item 
+C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\mbox{\hyperlink{_character_entity_8h}{Character\+Entity.\+h}}\item 
+C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\mbox{\hyperlink{_character_entity_8cpp}{Character\+Entity.\+cpp}}\end{DoxyCompactItemize}
diff --git a/doxy/latex/classentities_1_1_dummy_entity.eps b/doxy/latex/classentities_1_1_dummy_entity.eps
new file mode 100644
index 0000000000000000000000000000000000000000..76f0e19f2e24b4a74a15bf133356d12dd91da8dd
--- /dev/null
+++ b/doxy/latex/classentities_1_1_dummy_entity.eps
@@ -0,0 +1,209 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: ClassName
+%%Creator: Doxygen
+%%CreationDate: Time
+%%For: 
+%Magnification: 1.00
+%%Orientation: Portrait
+%%BoundingBox: 0 0 500 522.875793
+%%Pages: 0
+%%BeginSetup
+%%EndSetup
+%%EndComments
+
+% ----- variables -----
+
+/boxwidth 0 def
+/boxheight 40 def
+/fontheight 24 def
+/marginwidth 10 def
+/distx 20 def
+/disty 40 def
+/boundaspect 0.956250 def  % aspect ratio of the BoundingBox (width/height)
+/boundx 500 def
+/boundy boundx boundaspect div def
+/xspacing 0 def
+/yspacing 0 def
+/rows 4 def
+/cols 1 def
+/scalefactor 0 def
+/boxfont /Times-Roman findfont fontheight scalefont def
+
+% ----- procedures -----
+
+/dotted { [1 4] 0 setdash } def
+/dashed { [5] 0 setdash } def
+/solid  { [] 0 setdash } def
+
+/max % result = MAX(arg1,arg2)
+{
+  /a exch def
+  /b exch def
+  a b gt {a} {b} ifelse
+} def
+
+/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)
+{
+  0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max
+} def
+
+/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))
+{
+  /str exch def
+  /boxwidth boxwidth str stringwidth pop max def
+} def
+
+/box % draws a box with text 'arg1' at grid pos (arg2,arg3)
+{ gsave
+  2 setlinewidth
+  newpath
+  exch xspacing mul xoffset add
+  exch yspacing mul
+  moveto
+  boxwidth 0 rlineto 
+  0 boxheight rlineto 
+  boxwidth neg 0 rlineto 
+  0 boxheight neg rlineto 
+  closepath
+  dup stringwidth pop neg boxwidth add 2 div
+  boxheight fontheight 2 div sub 2 div
+  rmoveto show stroke
+  grestore
+} def  
+
+/mark
+{ newpath
+  exch xspacing mul xoffset add boxwidth add
+  exch yspacing mul
+  moveto
+  0 boxheight 4 div rlineto
+  boxheight neg 4 div boxheight neg 4 div rlineto
+  closepath
+  eofill
+  stroke
+} def
+
+/arrow
+{ newpath
+  moveto
+  3 -8 rlineto
+  -6 0 rlineto
+  3 8 rlineto
+  closepath
+  eofill
+  stroke
+} def
+
+/out % draws an output connector for the block at (arg1,arg2)
+{
+  newpath
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul boxheight add
+  /y exch def
+  /x exch def
+  x y moveto
+  0 disty 2 div rlineto 
+  stroke
+  1 eq { x y disty 2 div add arrow } if
+} def
+
+/in % draws an input connector for the block at (arg1,arg2)
+{
+  newpath
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul disty 2 div sub
+  /y exch def
+  /x exch def
+  x y moveto
+  0 disty 2 div rlineto
+  stroke
+  1 eq { x y disty 2 div add arrow } if
+} def
+
+/hedge
+{
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul boxheight 2 div sub
+  /y exch def
+  /x exch def
+  newpath
+  x y moveto
+  boxwidth 2 div distx add 0 rlineto
+  stroke
+  1 eq
+  { newpath x boxwidth 2 div distx add add y moveto
+    -8 3 rlineto
+    0 -6 rlineto
+    8 3 rlineto
+    closepath
+    eofill
+    stroke
+  } if
+} def
+
+/vedge
+{
+  /ye exch def
+  /ys exch def
+  /xs exch def
+  newpath
+  xs xspacing mul xoffset add boxwidth 2 div add dup
+  ys yspacing mul boxheight 2 div sub
+  moveto
+  ye yspacing mul boxheight 2 div sub
+  lineto
+  stroke
+} def
+
+/conn % connections the blocks from col 'arg1' to 'arg2' of row 'arg3'
+{
+  /ys exch def
+  /xe exch def
+  /xs exch def
+  newpath
+  xs xspacing mul xoffset add boxwidth 2 div add
+  ys yspacing mul disty 2 div sub
+  moveto
+  xspacing xe xs sub mul 0
+  rlineto
+  stroke
+} def
+
+% ----- main ------
+
+boxfont setfont
+1 boundaspect scale
+(entities::DummyEntity) cw
+(entities::CharacterEntity) cw
+(entities::LivingEntity) cw
+(entities::Entity) cw
+/boxwidth boxwidth marginwidth 2 mul add def
+/xspacing boxwidth distx add def
+/yspacing boxheight disty add def
+/scalefactor 
+  boxwidth cols mul distx cols 1 sub mul add
+  boxheight rows mul disty rows 1 sub mul add boundaspect mul 
+  max def
+boundx scalefactor div boundy scalefactor div scale
+
+% ----- classes -----
+
+ (entities::DummyEntity) 0.000000 0.000000 box
+ (entities::CharacterEntity) 0.000000 1.000000 box
+ (entities::LivingEntity) 0.000000 2.000000 box
+ (entities::Entity) 0.000000 3.000000 box
+
+% ----- relations -----
+
+solid
+0 0.000000 0.000000 out
+solid
+1 0.000000 1.000000 in
+solid
+0 0.000000 1.000000 out
+solid
+1 0.000000 2.000000 in
+solid
+0 0.000000 2.000000 out
+solid
+1 0.000000 3.000000 in
diff --git a/doxy/latex/classentities_1_1_dummy_entity.tex b/doxy/latex/classentities_1_1_dummy_entity.tex
new file mode 100644
index 0000000000000000000000000000000000000000..039d723a3c697c60dd6664a893b4d1c90690d338
--- /dev/null
+++ b/doxy/latex/classentities_1_1_dummy_entity.tex
@@ -0,0 +1,49 @@
+\hypertarget{classentities_1_1_dummy_entity}{}\doxysection{entities\+::Dummy\+Entity Class Reference}
+\label{classentities_1_1_dummy_entity}\index{entities::DummyEntity@{entities::DummyEntity}}
+
+
+A test/dummy entity. it can\textquotesingle{}t do anything... no, it can die.  
+
+
+
+
+{\ttfamily \#include $<$Dummy\+Entity.\+h$>$}
+
+Inheritance diagram for entities\+::Dummy\+Entity\+:\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[height=4.000000cm]{classentities_1_1_dummy_entity}
+\end{center}
+\end{figure}
+\doxysubsection*{Public Member Functions}
+\begin{DoxyCompactItemize}
+\item 
+\mbox{\hyperlink{classentities_1_1_dummy_entity_aa68ec40dca291f94607c943d7d50c34b}{Dummy\+Entity}} (\mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \mbox{\hyperlink{classentities_1_1_entity_a04f9c2febe8d435138a07eb2f48ba96b}{pos}}, \mbox{\hyperlink{classrender_1_1_i_texture}{render\+::\+I\+Texture}} \&skin, const std\+::string \&name=\char`\"{}Dummy\+Entity\char`\"{})
+\end{DoxyCompactItemize}
+\doxysubsection*{Additional Inherited Members}
+
+
+\doxysubsection{Detailed Description}
+A test/dummy entity. it can\textquotesingle{}t do anything... no, it can die. 
+
+Definition at line 8 of file Dummy\+Entity.\+h.
+
+
+
+\doxysubsection{Constructor \& Destructor Documentation}
+\mbox{\Hypertarget{classentities_1_1_dummy_entity_aa68ec40dca291f94607c943d7d50c34b}\label{classentities_1_1_dummy_entity_aa68ec40dca291f94607c943d7d50c34b}} 
+\index{entities::DummyEntity@{entities::DummyEntity}!DummyEntity@{DummyEntity}}
+\index{DummyEntity@{DummyEntity}!entities::DummyEntity@{entities::DummyEntity}}
+\doxysubsubsection{\texorpdfstring{DummyEntity()}{DummyEntity()}}
+{\footnotesize\ttfamily entities\+::\+Dummy\+Entity\+::\+Dummy\+Entity (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}}}]{pos,  }\item[{\mbox{\hyperlink{classrender_1_1_i_texture}{render\+::\+I\+Texture}} \&}]{skin,  }\item[{const std\+::string \&}]{name = {\ttfamily \char`\"{}DummyEntity\char`\"{}} }\end{DoxyParamCaption})}
+
+
+
+Definition at line 5 of file Dummy\+Entity.\+cpp.
+
+
+
+The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize}
+\item 
+C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\mbox{\hyperlink{_dummy_entity_8h}{Dummy\+Entity.\+h}}\item 
+C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\mbox{\hyperlink{_dummy_entity_8cpp}{Dummy\+Entity.\+cpp}}\end{DoxyCompactItemize}
diff --git a/doxy/latex/classentities_1_1_entity.eps b/doxy/latex/classentities_1_1_entity.eps
new file mode 100644
index 0000000000000000000000000000000000000000..01890e7e5b4ba173d9851d50fda23a32e69fce32
--- /dev/null
+++ b/doxy/latex/classentities_1_1_entity.eps
@@ -0,0 +1,275 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: ClassName
+%%Creator: Doxygen
+%%CreationDate: Time
+%%For: 
+%Magnification: 1.00
+%%Orientation: Portrait
+%%BoundingBox: 0 0 500 101.010101
+%%Pages: 0
+%%BeginSetup
+%%EndSetup
+%%EndComments
+
+% ----- variables -----
+
+/boxwidth 0 def
+/boxheight 40 def
+/fontheight 24 def
+/marginwidth 10 def
+/distx 20 def
+/disty 40 def
+/boundaspect 4.950000 def  % aspect ratio of the BoundingBox (width/height)
+/boundx 500 def
+/boundy boundx boundaspect div def
+/xspacing 0 def
+/yspacing 0 def
+/rows 6 def
+/cols 6 def
+/scalefactor 0 def
+/boxfont /Times-Roman findfont fontheight scalefont def
+
+% ----- procedures -----
+
+/dotted { [1 4] 0 setdash } def
+/dashed { [5] 0 setdash } def
+/solid  { [] 0 setdash } def
+
+/max % result = MAX(arg1,arg2)
+{
+  /a exch def
+  /b exch def
+  a b gt {a} {b} ifelse
+} def
+
+/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)
+{
+  0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max
+} def
+
+/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))
+{
+  /str exch def
+  /boxwidth boxwidth str stringwidth pop max def
+} def
+
+/box % draws a box with text 'arg1' at grid pos (arg2,arg3)
+{ gsave
+  2 setlinewidth
+  newpath
+  exch xspacing mul xoffset add
+  exch yspacing mul
+  moveto
+  boxwidth 0 rlineto 
+  0 boxheight rlineto 
+  boxwidth neg 0 rlineto 
+  0 boxheight neg rlineto 
+  closepath
+  dup stringwidth pop neg boxwidth add 2 div
+  boxheight fontheight 2 div sub 2 div
+  rmoveto show stroke
+  grestore
+} def  
+
+/mark
+{ newpath
+  exch xspacing mul xoffset add boxwidth add
+  exch yspacing mul
+  moveto
+  0 boxheight 4 div rlineto
+  boxheight neg 4 div boxheight neg 4 div rlineto
+  closepath
+  eofill
+  stroke
+} def
+
+/arrow
+{ newpath
+  moveto
+  3 -8 rlineto
+  -6 0 rlineto
+  3 8 rlineto
+  closepath
+  eofill
+  stroke
+} def
+
+/out % draws an output connector for the block at (arg1,arg2)
+{
+  newpath
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul boxheight add
+  /y exch def
+  /x exch def
+  x y moveto
+  0 disty 2 div rlineto 
+  stroke
+  1 eq { x y disty 2 div add arrow } if
+} def
+
+/in % draws an input connector for the block at (arg1,arg2)
+{
+  newpath
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul disty 2 div sub
+  /y exch def
+  /x exch def
+  x y moveto
+  0 disty 2 div rlineto
+  stroke
+  1 eq { x y disty 2 div add arrow } if
+} def
+
+/hedge
+{
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul boxheight 2 div sub
+  /y exch def
+  /x exch def
+  newpath
+  x y moveto
+  boxwidth 2 div distx add 0 rlineto
+  stroke
+  1 eq
+  { newpath x boxwidth 2 div distx add add y moveto
+    -8 3 rlineto
+    0 -6 rlineto
+    8 3 rlineto
+    closepath
+    eofill
+    stroke
+  } if
+} def
+
+/vedge
+{
+  /ye exch def
+  /ys exch def
+  /xs exch def
+  newpath
+  xs xspacing mul xoffset add boxwidth 2 div add dup
+  ys yspacing mul boxheight 2 div sub
+  moveto
+  ye yspacing mul boxheight 2 div sub
+  lineto
+  stroke
+} def
+
+/conn % connections the blocks from col 'arg1' to 'arg2' of row 'arg3'
+{
+  /ys exch def
+  /xe exch def
+  /xs exch def
+  newpath
+  xs xspacing mul xoffset add boxwidth 2 div add
+  ys yspacing mul disty 2 div sub
+  moveto
+  xspacing xe xs sub mul 0
+  rlineto
+  stroke
+} def
+
+% ----- main ------
+
+boxfont setfont
+1 boundaspect scale
+(entities::Entity) cw
+(entities::LivingEntity) cw
+(entities::ProjectileEntity) cw
+(entities::WallEntity) cw
+(weapons::Weapon) cw
+(entities::CharacterEntity) cw
+(entities::ExplosiveProjectile) cw
+(weapons::MeleeWeapon) cw
+(weapons::RangedWeapon) cw
+(entities::DummyEntity) cw
+(entities::EntityWithAI) cw
+(entities::PlayerEntity) cw
+(weapons::TypicalMeleeWeapon) cw
+(weapons::Pistol) cw
+(weapons::EMGun) cw
+(weapons::GlitchGun) cw
+/boxwidth boxwidth marginwidth 2 mul add def
+/xspacing boxwidth distx add def
+/yspacing boxheight disty add def
+/scalefactor 
+  boxwidth cols mul distx cols 1 sub mul add
+  boxheight rows mul disty rows 1 sub mul add boundaspect mul 
+  max def
+boundx scalefactor div boundy scalefactor div scale
+
+% ----- classes -----
+
+ (entities::Entity) 2.500000 5.000000 box
+ (entities::LivingEntity) 1.000000 4.000000 box
+ (entities::ProjectileEntity) 2.000000 4.000000 box
+ (entities::WallEntity) 3.000000 4.000000 box
+ (weapons::Weapon) 4.000000 4.000000 box
+ (entities::CharacterEntity) 1.000000 3.000000 box
+ (entities::ExplosiveProjectile) 2.000000 3.000000 box
+ (weapons::MeleeWeapon) 3.500000 3.000000 box
+ (weapons::RangedWeapon) 4.500000 3.000000 box
+ (entities::DummyEntity) 0.000000 2.000000 box
+ (entities::EntityWithAI) 1.000000 2.000000 box
+ (entities::PlayerEntity) 2.000000 2.000000 box
+ (weapons::TypicalMeleeWeapon) 3.500000 2.000000 box
+ (weapons::Pistol) 4.500000 2.000000 box
+ (weapons::EMGun) 4.500000 1.000000 box
+ (weapons::GlitchGun) 4.500000 0.000000 box
+
+% ----- relations -----
+
+solid
+1 2.500000 4.250000 out
+solid
+1.000000 4.000000 5.000000 conn
+solid
+0 1.000000 4.750000 in
+solid
+1 1.000000 3.250000 out
+solid
+0 2.000000 4.750000 in
+solid
+1 2.000000 3.250000 out
+solid
+0 3.000000 4.750000 in
+solid
+0 4.000000 4.750000 in
+solid
+1 4.000000 3.250000 out
+solid
+3.500000 4.500000 4.000000 conn
+solid
+0 1.000000 3.750000 in
+solid
+1 1.000000 2.250000 out
+solid
+0.000000 2.000000 3.000000 conn
+solid
+0 2.000000 3.750000 in
+solid
+0 3.500000 3.750000 in
+solid
+1 3.500000 2.250000 out
+solid
+0 4.500000 3.750000 in
+solid
+1 4.500000 2.250000 out
+solid
+0 0.000000 2.750000 in
+solid
+0 1.000000 2.750000 in
+solid
+0 2.000000 2.750000 in
+solid
+0 3.500000 2.750000 in
+solid
+0 4.500000 2.750000 in
+solid
+1 4.500000 1.250000 out
+solid
+0 4.500000 1.750000 in
+solid
+1 4.500000 0.250000 out
+solid
+0 4.500000 0.750000 in
diff --git a/doxy/latex/classentities_1_1_entity.tex b/doxy/latex/classentities_1_1_entity.tex
new file mode 100644
index 0000000000000000000000000000000000000000..0ef31e0268e8836b57f5fff692e6063e7ae72502
--- /dev/null
+++ b/doxy/latex/classentities_1_1_entity.tex
@@ -0,0 +1,364 @@
+\hypertarget{classentities_1_1_entity}{}\doxysection{entities\+::Entity Class Reference}
+\label{classentities_1_1_entity}\index{entities::Entity@{entities::Entity}}
+
+
+Every object, what can be on the map.  
+
+
+
+
+{\ttfamily \#include $<$Entity.\+h$>$}
+
+Inheritance diagram for entities\+::Entity\+:\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[height=2.828283cm]{classentities_1_1_entity}
+\end{center}
+\end{figure}
+\doxysubsection*{Public Member Functions}
+\begin{DoxyCompactItemize}
+\item 
+\mbox{\hyperlink{classentities_1_1_entity_a539ddef34b718b6068df421f316f4a6d}{Entity}} (const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&\mbox{\hyperlink{classentities_1_1_entity_a04f9c2febe8d435138a07eb2f48ba96b}{pos}})
+\item 
+virtual void \mbox{\hyperlink{classentities_1_1_entity_afd80ddceccb36b87d0d80dcc7f88fc3b}{init}} (\mbox{\hyperlink{class_game_client}{Game\+Client}} \&client)
+\item 
+virtual bool \mbox{\hyperlink{classentities_1_1_entity_ab010066d52a02c63908f70ff6ef7d873}{is\+Initialized}} ()
+\item 
+virtual \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \mbox{\hyperlink{classentities_1_1_entity_a799a692b988248dd23d207b95e7fe2b7}{get\+Pos}} () const
+\item 
+virtual \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \mbox{\hyperlink{classentities_1_1_entity_ac60e9beb5a45fc65120e9779e680c04b}{get\+Size}} () const
+\begin{DoxyCompactList}\small\item\em get it\textquotesingle{}s size to render \end{DoxyCompactList}\item 
+virtual bool \mbox{\hyperlink{classentities_1_1_entity_ab0ee90a84f2163b600e603f24cff046f}{is\+Alive}} () const
+\item 
+virtual bool \mbox{\hyperlink{classentities_1_1_entity_a59426fe1b7dcefe96a0a748250724ff6}{can\+Be\+Removed}} () const
+\item 
+virtual void \mbox{\hyperlink{classentities_1_1_entity_a0440674bf90ae83d9a26aa4b0ac8309e}{tick}} (\mbox{\hyperlink{class_game_client}{Game\+Client}} \&client, float deltaT, std\+::shared\+\_\+ptr$<$ \mbox{\hyperlink{classentities_1_1_entity}{Entity}} $>$ \&shared\+\_\+this)
+\begin{DoxyCompactList}\small\item\em \mbox{\hyperlink{classentities_1_1_entity}{Entity}} tick multiple times per sec. \end{DoxyCompactList}\item 
+virtual bool \mbox{\hyperlink{classentities_1_1_entity_af7fc9949fc50b1b31abb36a3d51b0597}{damage}} (int damage, \mbox{\hyperlink{classentities_1_1_entity}{Entity}} \&attacker)=0
+\begin{DoxyCompactList}\small\item\em something damage this \end{DoxyCompactList}\item 
+virtual void \mbox{\hyperlink{classentities_1_1_entity_abcc4364b5b7250f0364f3550a618b3ab}{render}} (\mbox{\hyperlink{classolc_1_1_transformed_view}{olc\+::\+Transformed\+View}} \&scene)
+\begin{DoxyCompactList}\small\item\em render \end{DoxyCompactList}\item 
+virtual std\+::string \mbox{\hyperlink{classentities_1_1_entity_a8c4b0c1eb69a673619e4c8943ef34f86}{get\+Name}} () const
+\item 
+virtual \mbox{\hyperlink{classentities_1_1_entity_a64d968c160dee2fdfca68aff2e49946b}{$\sim$\+Entity}} ()=default
+\item 
+virtual \mbox{\hyperlink{classentities_1_1_entity_ad0a172ff99a7e73aaaee3658d5e3ae08}{operator Wall\+Entity $\ast$}} ()
+\end{DoxyCompactItemize}
+\doxysubsection*{Protected Member Functions}
+\begin{DoxyCompactItemize}
+\item 
+virtual \mbox{\hyperlink{classrender_1_1_i_texture}{render\+::\+I\+Texture}} \& \mbox{\hyperlink{classentities_1_1_entity_af01b796fb472ef3139aea41aeed36c76}{get\+Texture}} ()=0
+\begin{DoxyCompactList}\small\item\em the object\textquotesingle{}s texture \end{DoxyCompactList}\item 
+virtual \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \mbox{\hyperlink{classentities_1_1_entity_a9cd7ba81ddbd978b8f43e9f10e97492f}{get\+Hit\+Box\+Size}} () const =0
+\begin{DoxyCompactList}\small\item\em half hitbox size \end{DoxyCompactList}\item 
+virtual \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \mbox{\hyperlink{classentities_1_1_entity_a94d18db8d502d677b6f4215dc1e1d820}{get\+Collision}} (const \mbox{\hyperlink{classentities_1_1_entity}{Entity}} \&other)
+\begin{DoxyCompactList}\small\item\em Calculate collision with another \mbox{\hyperlink{classentities_1_1_entity}{Entity}}, how much should this entity move, to avoid the collision. \end{DoxyCompactList}\end{DoxyCompactItemize}
+\doxysubsection*{Protected Attributes}
+\begin{DoxyCompactItemize}
+\item 
+\mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \mbox{\hyperlink{classentities_1_1_entity_a04f9c2febe8d435138a07eb2f48ba96b}{pos}}
+\begin{DoxyCompactList}\small\item\em it\textquotesingle{}s position \end{DoxyCompactList}\item 
+bool \mbox{\hyperlink{classentities_1_1_entity_a1453bca3376a185aa54135dd4958b244}{is\+\_\+initialized}}
+\begin{DoxyCompactList}\small\item\em well, is initialized \end{DoxyCompactList}\item 
+bool \mbox{\hyperlink{classentities_1_1_entity_aedac7bb35b729e4a02c582b9f4369ab8}{is\+\_\+alive}}
+\begin{DoxyCompactList}\small\item\em true, if it is alive \end{DoxyCompactList}\end{DoxyCompactItemize}
+
+
+\doxysubsection{Detailed Description}
+Every object, what can be on the map. 
+
+Definition at line 16 of file Entity.\+h.
+
+
+
+\doxysubsection{Constructor \& Destructor Documentation}
+\mbox{\Hypertarget{classentities_1_1_entity_a539ddef34b718b6068df421f316f4a6d}\label{classentities_1_1_entity_a539ddef34b718b6068df421f316f4a6d}} 
+\index{entities::Entity@{entities::Entity}!Entity@{Entity}}
+\index{Entity@{Entity}!entities::Entity@{entities::Entity}}
+\doxysubsubsection{\texorpdfstring{Entity()}{Entity()}}
+{\footnotesize\ttfamily entities\+::\+Entity\+::\+Entity (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&}]{pos }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [explicit]}}
+
+
+
+Definition at line 39 of file Entity.\+cpp.
+
+\mbox{\Hypertarget{classentities_1_1_entity_a64d968c160dee2fdfca68aff2e49946b}\label{classentities_1_1_entity_a64d968c160dee2fdfca68aff2e49946b}} 
+\index{entities::Entity@{entities::Entity}!````~Entity@{$\sim$Entity}}
+\index{````~Entity@{$\sim$Entity}!entities::Entity@{entities::Entity}}
+\doxysubsubsection{\texorpdfstring{$\sim$Entity()}{~Entity()}}
+{\footnotesize\ttfamily virtual entities\+::\+Entity\+::$\sim$\+Entity (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}, {\ttfamily [default]}}
+
+
+
+\doxysubsection{Member Function Documentation}
+\mbox{\Hypertarget{classentities_1_1_entity_a59426fe1b7dcefe96a0a748250724ff6}\label{classentities_1_1_entity_a59426fe1b7dcefe96a0a748250724ff6}} 
+\index{entities::Entity@{entities::Entity}!canBeRemoved@{canBeRemoved}}
+\index{canBeRemoved@{canBeRemoved}!entities::Entity@{entities::Entity}}
+\doxysubsubsection{\texorpdfstring{canBeRemoved()}{canBeRemoved()}}
+{\footnotesize\ttfamily bool entities\+::\+Entity\+::can\+Be\+Removed (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [virtual]}}
+
+\begin{DoxyReturn}{Returns}
+can be deleted from the entity list. mostly is dead 
+\end{DoxyReturn}
+
+
+Reimplemented in \mbox{\hyperlink{classweapons_1_1_weapon_aaf97827d27191b7b437ef1be96d6ac2c}{weapons\+::\+Weapon}}, and \mbox{\hyperlink{classentities_1_1_explosive_projectile_a8b075196a23aed5116e885709b64d583}{entities\+::\+Explosive\+Projectile}}.
+
+
+
+Definition at line 75 of file Entity.\+cpp.
+
+\mbox{\Hypertarget{classentities_1_1_entity_af7fc9949fc50b1b31abb36a3d51b0597}\label{classentities_1_1_entity_af7fc9949fc50b1b31abb36a3d51b0597}} 
+\index{entities::Entity@{entities::Entity}!damage@{damage}}
+\index{damage@{damage}!entities::Entity@{entities::Entity}}
+\doxysubsubsection{\texorpdfstring{damage()}{damage()}}
+{\footnotesize\ttfamily virtual bool entities\+::\+Entity\+::damage (\begin{DoxyParamCaption}\item[{int}]{damage,  }\item[{\mbox{\hyperlink{classentities_1_1_entity}{Entity}} \&}]{attacker }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [pure virtual]}}
+
+
+
+something damage this 
+
+
+\begin{DoxyParams}{Parameters}
+{\em damage} & how much damage should it take \\
+\hline
+{\em attacker} & who deal the damage. not the projectile, the entity \\
+\hline
+\end{DoxyParams}
+\begin{DoxyReturn}{Returns}
+did the entity take the damage or no (like a wall) 
+\end{DoxyReturn}
+
+
+Implemented in \mbox{\hyperlink{classweapons_1_1_weapon_a397c372ffe2838f7c9c1ce67c06e55a9}{weapons\+::\+Weapon}}, \mbox{\hyperlink{classentities_1_1_wall_entity_a0cd908003450361a7c08d2c7c83d21dc}{entities\+::\+Wall\+Entity}}, \mbox{\hyperlink{classweapons_1_1_typical_melee_weapon_a00287ced5e67a7f91423596fac46606b}{weapons\+::\+Typical\+Melee\+Weapon}}, \mbox{\hyperlink{classentities_1_1_projectile_entity_a723e706e6421504ce9c6d70d77561215}{entities\+::\+Projectile\+Entity}}, \mbox{\hyperlink{classentities_1_1_player_entity_ab654524e0ad7ba5a9b1b590794d347f2}{entities\+::\+Player\+Entity}}, \mbox{\hyperlink{classentities_1_1_living_entity_a28d31eff59137171da3e23a8e3ef9c1c}{entities\+::\+Living\+Entity}}, and \mbox{\hyperlink{classentities_1_1_entity_with_a_i_a49a1c8a8ec1a318f65007d54173c3d37}{entities\+::\+Entity\+With\+AI}}.
+
+\mbox{\Hypertarget{classentities_1_1_entity_a94d18db8d502d677b6f4215dc1e1d820}\label{classentities_1_1_entity_a94d18db8d502d677b6f4215dc1e1d820}} 
+\index{entities::Entity@{entities::Entity}!getCollision@{getCollision}}
+\index{getCollision@{getCollision}!entities::Entity@{entities::Entity}}
+\doxysubsubsection{\texorpdfstring{getCollision()}{getCollision()}}
+{\footnotesize\ttfamily \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{vf2d}} entities\+::\+Entity\+::get\+Collision (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{classentities_1_1_entity}{Entity}} \&}]{other }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [protected]}, {\ttfamily [virtual]}}
+
+
+
+Calculate collision with another \mbox{\hyperlink{classentities_1_1_entity}{Entity}}, how much should this entity move, to avoid the collision. 
+
+
+\begin{DoxyParams}{Parameters}
+{\em other} & the other entity \\
+\hline
+\end{DoxyParams}
+\begin{DoxyReturn}{Returns}
+collision vector, 0 if there is no collision 
+\end{DoxyReturn}
+
+
+Definition at line 16 of file Entity.\+cpp.
+
+\mbox{\Hypertarget{classentities_1_1_entity_a9cd7ba81ddbd978b8f43e9f10e97492f}\label{classentities_1_1_entity_a9cd7ba81ddbd978b8f43e9f10e97492f}} 
+\index{entities::Entity@{entities::Entity}!getHitBoxSize@{getHitBoxSize}}
+\index{getHitBoxSize@{getHitBoxSize}!entities::Entity@{entities::Entity}}
+\doxysubsubsection{\texorpdfstring{getHitBoxSize()}{getHitBoxSize()}}
+{\footnotesize\ttfamily virtual \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} entities\+::\+Entity\+::get\+Hit\+Box\+Size (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [protected]}, {\ttfamily [pure virtual]}}
+
+
+
+half hitbox size 
+
+\begin{DoxyReturn}{Returns}
+hitbox size as a vector 
+\end{DoxyReturn}
+
+
+Implemented in \mbox{\hyperlink{classweapons_1_1_weapon_a862bd61cf947a91809b423304885cf66}{weapons\+::\+Weapon}}, \mbox{\hyperlink{classentities_1_1_wall_entity_afd4863a311190a59cdf7574798ac3f2d}{entities\+::\+Wall\+Entity}}, \mbox{\hyperlink{classweapons_1_1_typical_melee_weapon_ab60f5d99ae206d9064381b0c70b9a7a2}{weapons\+::\+Typical\+Melee\+Weapon}}, \mbox{\hyperlink{classentities_1_1_projectile_entity_ae38525094695db8ab564c5ae27711bb4}{entities\+::\+Projectile\+Entity}}, and \mbox{\hyperlink{classentities_1_1_living_entity_aa965d3922663b974dd14cc5f8004ed65}{entities\+::\+Living\+Entity}}.
+
+\mbox{\Hypertarget{classentities_1_1_entity_a8c4b0c1eb69a673619e4c8943ef34f86}\label{classentities_1_1_entity_a8c4b0c1eb69a673619e4c8943ef34f86}} 
+\index{entities::Entity@{entities::Entity}!getName@{getName}}
+\index{getName@{getName}!entities::Entity@{entities::Entity}}
+\doxysubsubsection{\texorpdfstring{getName()}{getName()}}
+{\footnotesize\ttfamily std\+::string entities\+::\+Entity\+::get\+Name (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [virtual]}}
+
+
+
+Definition at line 57 of file Entity.\+cpp.
+
+\mbox{\Hypertarget{classentities_1_1_entity_a799a692b988248dd23d207b95e7fe2b7}\label{classentities_1_1_entity_a799a692b988248dd23d207b95e7fe2b7}} 
+\index{entities::Entity@{entities::Entity}!getPos@{getPos}}
+\index{getPos@{getPos}!entities::Entity@{entities::Entity}}
+\doxysubsubsection{\texorpdfstring{getPos()}{getPos()}}
+{\footnotesize\ttfamily \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{vf2d}} entities\+::\+Entity\+::get\+Pos (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [virtual]}}
+
+
+
+Definition at line 42 of file Entity.\+cpp.
+
+\mbox{\Hypertarget{classentities_1_1_entity_ac60e9beb5a45fc65120e9779e680c04b}\label{classentities_1_1_entity_ac60e9beb5a45fc65120e9779e680c04b}} 
+\index{entities::Entity@{entities::Entity}!getSize@{getSize}}
+\index{getSize@{getSize}!entities::Entity@{entities::Entity}}
+\doxysubsubsection{\texorpdfstring{getSize()}{getSize()}}
+{\footnotesize\ttfamily \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{vf2d}} entities\+::\+Entity\+::get\+Size (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [virtual]}}
+
+
+
+get it\textquotesingle{}s size to render 
+
+
+
+Definition at line 47 of file Entity.\+cpp.
+
+\mbox{\Hypertarget{classentities_1_1_entity_af01b796fb472ef3139aea41aeed36c76}\label{classentities_1_1_entity_af01b796fb472ef3139aea41aeed36c76}} 
+\index{entities::Entity@{entities::Entity}!getTexture@{getTexture}}
+\index{getTexture@{getTexture}!entities::Entity@{entities::Entity}}
+\doxysubsubsection{\texorpdfstring{getTexture()}{getTexture()}}
+{\footnotesize\ttfamily virtual \mbox{\hyperlink{classrender_1_1_i_texture}{render\+::\+I\+Texture}}\& entities\+::\+Entity\+::get\+Texture (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [protected]}, {\ttfamily [pure virtual]}}
+
+
+
+the object\textquotesingle{}s texture 
+
+\begin{DoxyReturn}{Returns}
+the texture 
+\end{DoxyReturn}
+
+
+Implemented in \mbox{\hyperlink{classentities_1_1_wall_entity_a4b6c55275f06a30dac07c2dc5452e602}{entities\+::\+Wall\+Entity}}, \mbox{\hyperlink{classentities_1_1_projectile_entity_a7e67fe629e1ef7115fd2a0cae8b1efc0}{entities\+::\+Projectile\+Entity}}, and \mbox{\hyperlink{classentities_1_1_character_entity_afdae03f49fd5d47d0837ed660e37038f}{entities\+::\+Character\+Entity}}.
+
+\mbox{\Hypertarget{classentities_1_1_entity_afd80ddceccb36b87d0d80dcc7f88fc3b}\label{classentities_1_1_entity_afd80ddceccb36b87d0d80dcc7f88fc3b}} 
+\index{entities::Entity@{entities::Entity}!init@{init}}
+\index{init@{init}!entities::Entity@{entities::Entity}}
+\doxysubsubsection{\texorpdfstring{init()}{init()}}
+{\footnotesize\ttfamily virtual void entities\+::\+Entity\+::init (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{class_game_client}{Game\+Client}} \&}]{client }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}
+
+
+
+Reimplemented in \mbox{\hyperlink{classentities_1_1_wall_entity_ad66ed8002d8082035bd3b7df07ff45b5}{entities\+::\+Wall\+Entity}}.
+
+
+
+Definition at line 51 of file Entity.\+h.
+
+\mbox{\Hypertarget{classentities_1_1_entity_ab0ee90a84f2163b600e603f24cff046f}\label{classentities_1_1_entity_ab0ee90a84f2163b600e603f24cff046f}} 
+\index{entities::Entity@{entities::Entity}!isAlive@{isAlive}}
+\index{isAlive@{isAlive}!entities::Entity@{entities::Entity}}
+\doxysubsubsection{\texorpdfstring{isAlive()}{isAlive()}}
+{\footnotesize\ttfamily bool entities\+::\+Entity\+::is\+Alive (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [virtual]}}
+
+
+
+Definition at line 70 of file Entity.\+cpp.
+
+\mbox{\Hypertarget{classentities_1_1_entity_ab010066d52a02c63908f70ff6ef7d873}\label{classentities_1_1_entity_ab010066d52a02c63908f70ff6ef7d873}} 
+\index{entities::Entity@{entities::Entity}!isInitialized@{isInitialized}}
+\index{isInitialized@{isInitialized}!entities::Entity@{entities::Entity}}
+\doxysubsubsection{\texorpdfstring{isInitialized()}{isInitialized()}}
+{\footnotesize\ttfamily bool entities\+::\+Entity\+::is\+Initialized (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}
+
+
+
+Definition at line 65 of file Entity.\+cpp.
+
+\mbox{\Hypertarget{classentities_1_1_entity_ad0a172ff99a7e73aaaee3658d5e3ae08}\label{classentities_1_1_entity_ad0a172ff99a7e73aaaee3658d5e3ae08}} 
+\index{entities::Entity@{entities::Entity}!operator WallEntity $\ast$@{operator WallEntity $\ast$}}
+\index{operator WallEntity $\ast$@{operator WallEntity $\ast$}!entities::Entity@{entities::Entity}}
+\doxysubsubsection{\texorpdfstring{operator WallEntity $\ast$()}{operator WallEntity *()}}
+{\footnotesize\ttfamily virtual entities\+::\+Entity\+::operator \mbox{\hyperlink{classentities_1_1_wall_entity}{Wall\+Entity}} $\ast$ (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}
+
+
+
+Definition at line 94 of file Entity.\+h.
+
+\mbox{\Hypertarget{classentities_1_1_entity_abcc4364b5b7250f0364f3550a618b3ab}\label{classentities_1_1_entity_abcc4364b5b7250f0364f3550a618b3ab}} 
+\index{entities::Entity@{entities::Entity}!render@{render}}
+\index{render@{render}!entities::Entity@{entities::Entity}}
+\doxysubsubsection{\texorpdfstring{render()}{render()}}
+{\footnotesize\ttfamily void entities\+::\+Entity\+::render (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{classolc_1_1_transformed_view}{olc\+::\+Transformed\+View}} \&}]{scene }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}
+
+
+
+render 
+
+
+
+Reimplemented in \mbox{\hyperlink{classentities_1_1_explosive_projectile_a86148b27403d275c1513f22bb3f47892}{entities\+::\+Explosive\+Projectile}}, and \mbox{\hyperlink{classentities_1_1_character_entity_aeb6069f0f07d0914faf0f94c0cc33def}{entities\+::\+Character\+Entity}}.
+
+
+
+Definition at line 52 of file Entity.\+cpp.
+
+\mbox{\Hypertarget{classentities_1_1_entity_a0440674bf90ae83d9a26aa4b0ac8309e}\label{classentities_1_1_entity_a0440674bf90ae83d9a26aa4b0ac8309e}} 
+\index{entities::Entity@{entities::Entity}!tick@{tick}}
+\index{tick@{tick}!entities::Entity@{entities::Entity}}
+\doxysubsubsection{\texorpdfstring{tick()}{tick()}}
+{\footnotesize\ttfamily virtual void entities\+::\+Entity\+::tick (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{class_game_client}{Game\+Client}} \&}]{client,  }\item[{float}]{deltaT,  }\item[{std\+::shared\+\_\+ptr$<$ \mbox{\hyperlink{classentities_1_1_entity}{Entity}} $>$ \&}]{shared\+\_\+this }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}
+
+
+
+\mbox{\hyperlink{classentities_1_1_entity}{Entity}} tick multiple times per sec. 
+
+
+\begin{DoxyParams}{Parameters}
+{\em client} & the game client object \\
+\hline
+{\em deltaT} & how long take a tick \\
+\hline
+{\em shared\+\_\+this} & this as a shared\+\_\+ptr \\
+\hline
+\end{DoxyParams}
+
+
+Reimplemented in \mbox{\hyperlink{classweapons_1_1_weapon_a92ae1db47ca866d828f8b09c6de5a3f6}{weapons\+::\+Weapon}}, \mbox{\hyperlink{classentities_1_1_projectile_entity_a761f27885de02515edaf252e8a4162b5}{entities\+::\+Projectile\+Entity}}, \mbox{\hyperlink{classentities_1_1_player_entity_a9f5c7033ca46daf217c73cb5edbb0d68}{entities\+::\+Player\+Entity}}, \mbox{\hyperlink{classentities_1_1_living_entity_af13cb8c3fabd2960746e21cd7dabe4d6}{entities\+::\+Living\+Entity}}, \mbox{\hyperlink{classentities_1_1_explosive_projectile_a3aa22ab3467caa20a8c7b3cc818b157d}{entities\+::\+Explosive\+Projectile}}, \mbox{\hyperlink{classentities_1_1_entity_with_a_i_a92708b14b042c03fa9a8673192867e72}{entities\+::\+Entity\+With\+AI}}, and \mbox{\hyperlink{classentities_1_1_character_entity_ae7cdddc6dca655e7bf8c2f48424c5208}{entities\+::\+Character\+Entity}}.
+
+
+
+Definition at line 72 of file Entity.\+h.
+
+
+
+\doxysubsection{Member Data Documentation}
+\mbox{\Hypertarget{classentities_1_1_entity_aedac7bb35b729e4a02c582b9f4369ab8}\label{classentities_1_1_entity_aedac7bb35b729e4a02c582b9f4369ab8}} 
+\index{entities::Entity@{entities::Entity}!is\_alive@{is\_alive}}
+\index{is\_alive@{is\_alive}!entities::Entity@{entities::Entity}}
+\doxysubsubsection{\texorpdfstring{is\_alive}{is\_alive}}
+{\footnotesize\ttfamily bool entities\+::\+Entity\+::is\+\_\+alive\hspace{0.3cm}{\ttfamily [protected]}}
+
+
+
+true, if it is alive 
+
+
+
+Definition at line 46 of file Entity.\+h.
+
+\mbox{\Hypertarget{classentities_1_1_entity_a1453bca3376a185aa54135dd4958b244}\label{classentities_1_1_entity_a1453bca3376a185aa54135dd4958b244}} 
+\index{entities::Entity@{entities::Entity}!is\_initialized@{is\_initialized}}
+\index{is\_initialized@{is\_initialized}!entities::Entity@{entities::Entity}}
+\doxysubsubsection{\texorpdfstring{is\_initialized}{is\_initialized}}
+{\footnotesize\ttfamily bool entities\+::\+Entity\+::is\+\_\+initialized\hspace{0.3cm}{\ttfamily [protected]}}
+
+
+
+well, is initialized 
+
+
+
+Definition at line 42 of file Entity.\+h.
+
+\mbox{\Hypertarget{classentities_1_1_entity_a04f9c2febe8d435138a07eb2f48ba96b}\label{classentities_1_1_entity_a04f9c2febe8d435138a07eb2f48ba96b}} 
+\index{entities::Entity@{entities::Entity}!pos@{pos}}
+\index{pos@{pos}!entities::Entity@{entities::Entity}}
+\doxysubsubsection{\texorpdfstring{pos}{pos}}
+{\footnotesize\ttfamily \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} entities\+::\+Entity\+::pos\hspace{0.3cm}{\ttfamily [protected]}}
+
+
+
+it\textquotesingle{}s position 
+
+
+
+Definition at line 22 of file Entity.\+h.
+
+
+
+The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize}
+\item 
+C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\mbox{\hyperlink{_entity_8h}{Entity.\+h}}\item 
+C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\mbox{\hyperlink{_entity_8cpp}{Entity.\+cpp}}\end{DoxyCompactItemize}
diff --git a/doxy/latex/classentities_1_1_entity_with_a_i.eps b/doxy/latex/classentities_1_1_entity_with_a_i.eps
new file mode 100644
index 0000000000000000000000000000000000000000..eb074124e90ba2bd131a46cce68dcfe8eea8e813
--- /dev/null
+++ b/doxy/latex/classentities_1_1_entity_with_a_i.eps
@@ -0,0 +1,209 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: ClassName
+%%Creator: Doxygen
+%%CreationDate: Time
+%%For: 
+%Magnification: 1.00
+%%Orientation: Portrait
+%%BoundingBox: 0 0 500 522.875793
+%%Pages: 0
+%%BeginSetup
+%%EndSetup
+%%EndComments
+
+% ----- variables -----
+
+/boxwidth 0 def
+/boxheight 40 def
+/fontheight 24 def
+/marginwidth 10 def
+/distx 20 def
+/disty 40 def
+/boundaspect 0.956250 def  % aspect ratio of the BoundingBox (width/height)
+/boundx 500 def
+/boundy boundx boundaspect div def
+/xspacing 0 def
+/yspacing 0 def
+/rows 4 def
+/cols 1 def
+/scalefactor 0 def
+/boxfont /Times-Roman findfont fontheight scalefont def
+
+% ----- procedures -----
+
+/dotted { [1 4] 0 setdash } def
+/dashed { [5] 0 setdash } def
+/solid  { [] 0 setdash } def
+
+/max % result = MAX(arg1,arg2)
+{
+  /a exch def
+  /b exch def
+  a b gt {a} {b} ifelse
+} def
+
+/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)
+{
+  0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max
+} def
+
+/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))
+{
+  /str exch def
+  /boxwidth boxwidth str stringwidth pop max def
+} def
+
+/box % draws a box with text 'arg1' at grid pos (arg2,arg3)
+{ gsave
+  2 setlinewidth
+  newpath
+  exch xspacing mul xoffset add
+  exch yspacing mul
+  moveto
+  boxwidth 0 rlineto 
+  0 boxheight rlineto 
+  boxwidth neg 0 rlineto 
+  0 boxheight neg rlineto 
+  closepath
+  dup stringwidth pop neg boxwidth add 2 div
+  boxheight fontheight 2 div sub 2 div
+  rmoveto show stroke
+  grestore
+} def  
+
+/mark
+{ newpath
+  exch xspacing mul xoffset add boxwidth add
+  exch yspacing mul
+  moveto
+  0 boxheight 4 div rlineto
+  boxheight neg 4 div boxheight neg 4 div rlineto
+  closepath
+  eofill
+  stroke
+} def
+
+/arrow
+{ newpath
+  moveto
+  3 -8 rlineto
+  -6 0 rlineto
+  3 8 rlineto
+  closepath
+  eofill
+  stroke
+} def
+
+/out % draws an output connector for the block at (arg1,arg2)
+{
+  newpath
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul boxheight add
+  /y exch def
+  /x exch def
+  x y moveto
+  0 disty 2 div rlineto 
+  stroke
+  1 eq { x y disty 2 div add arrow } if
+} def
+
+/in % draws an input connector for the block at (arg1,arg2)
+{
+  newpath
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul disty 2 div sub
+  /y exch def
+  /x exch def
+  x y moveto
+  0 disty 2 div rlineto
+  stroke
+  1 eq { x y disty 2 div add arrow } if
+} def
+
+/hedge
+{
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul boxheight 2 div sub
+  /y exch def
+  /x exch def
+  newpath
+  x y moveto
+  boxwidth 2 div distx add 0 rlineto
+  stroke
+  1 eq
+  { newpath x boxwidth 2 div distx add add y moveto
+    -8 3 rlineto
+    0 -6 rlineto
+    8 3 rlineto
+    closepath
+    eofill
+    stroke
+  } if
+} def
+
+/vedge
+{
+  /ye exch def
+  /ys exch def
+  /xs exch def
+  newpath
+  xs xspacing mul xoffset add boxwidth 2 div add dup
+  ys yspacing mul boxheight 2 div sub
+  moveto
+  ye yspacing mul boxheight 2 div sub
+  lineto
+  stroke
+} def
+
+/conn % connections the blocks from col 'arg1' to 'arg2' of row 'arg3'
+{
+  /ys exch def
+  /xe exch def
+  /xs exch def
+  newpath
+  xs xspacing mul xoffset add boxwidth 2 div add
+  ys yspacing mul disty 2 div sub
+  moveto
+  xspacing xe xs sub mul 0
+  rlineto
+  stroke
+} def
+
+% ----- main ------
+
+boxfont setfont
+1 boundaspect scale
+(entities::EntityWithAI) cw
+(entities::CharacterEntity) cw
+(entities::LivingEntity) cw
+(entities::Entity) cw
+/boxwidth boxwidth marginwidth 2 mul add def
+/xspacing boxwidth distx add def
+/yspacing boxheight disty add def
+/scalefactor 
+  boxwidth cols mul distx cols 1 sub mul add
+  boxheight rows mul disty rows 1 sub mul add boundaspect mul 
+  max def
+boundx scalefactor div boundy scalefactor div scale
+
+% ----- classes -----
+
+ (entities::EntityWithAI) 0.000000 0.000000 box
+ (entities::CharacterEntity) 0.000000 1.000000 box
+ (entities::LivingEntity) 0.000000 2.000000 box
+ (entities::Entity) 0.000000 3.000000 box
+
+% ----- relations -----
+
+solid
+0 0.000000 0.000000 out
+solid
+1 0.000000 1.000000 in
+solid
+0 0.000000 1.000000 out
+solid
+1 0.000000 2.000000 in
+solid
+0 0.000000 2.000000 out
+solid
+1 0.000000 3.000000 in
diff --git a/doxy/latex/classentities_1_1_entity_with_a_i.tex b/doxy/latex/classentities_1_1_entity_with_a_i.tex
new file mode 100644
index 0000000000000000000000000000000000000000..ac7da32731285f023702306937ef8ea909ff8dc2
--- /dev/null
+++ b/doxy/latex/classentities_1_1_entity_with_a_i.tex
@@ -0,0 +1,148 @@
+\hypertarget{classentities_1_1_entity_with_a_i}{}\doxysection{entities\+::Entity\+With\+AI Class Reference}
+\label{classentities_1_1_entity_with_a_i}\index{entities::EntityWithAI@{entities::EntityWithAI}}
+
+
+The enemies. go after the player, and try to kill it.  
+
+
+
+
+{\ttfamily \#include $<$Entity\+With\+A\+I.\+h$>$}
+
+Inheritance diagram for entities\+::Entity\+With\+AI\+:\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[height=4.000000cm]{classentities_1_1_entity_with_a_i}
+\end{center}
+\end{figure}
+\doxysubsection*{Public Member Functions}
+\begin{DoxyCompactItemize}
+\item 
+void \mbox{\hyperlink{classentities_1_1_entity_with_a_i_a92708b14b042c03fa9a8673192867e72}{tick}} (\mbox{\hyperlink{class_game_client}{Game\+Client}} \&client, float deltaT, std\+::shared\+\_\+ptr$<$ \mbox{\hyperlink{classentities_1_1_entity}{Entity}} $>$ \&shared\+\_\+this) override
+\begin{DoxyCompactList}\small\item\em Tick, from \mbox{\hyperlink{classentities_1_1_entity}{Entity}}. \end{DoxyCompactList}\item 
+void \mbox{\hyperlink{classentities_1_1_entity_with_a_i_af1e954b2ecf51732759a28e00dc2614c}{add\+Weapon}} (std\+::shared\+\_\+ptr$<$ \mbox{\hyperlink{classweapons_1_1_weapon}{weapons\+::\+Weapon}} $>$ \&weapon)
+\begin{DoxyCompactList}\small\item\em override it\textquotesingle{}s weapon \end{DoxyCompactList}\item 
+\mbox{\hyperlink{classentities_1_1_entity_with_a_i_aa8bfaebef1ce596fbd8d70b36362135b}{Entity\+With\+AI}} (const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&\mbox{\hyperlink{classentities_1_1_entity_a04f9c2febe8d435138a07eb2f48ba96b}{pos}}, \mbox{\hyperlink{classrender_1_1_i_texture}{render\+::\+I\+Texture}} \&skin, int \mbox{\hyperlink{classentities_1_1_entity_with_a_i_a49a1c8a8ec1a318f65007d54173c3d37}{damage}}=20, const std\+::string \&name=\char`\"{}Enemy\char`\"{})
+\item 
+bool \mbox{\hyperlink{classentities_1_1_entity_with_a_i_a49a1c8a8ec1a318f65007d54173c3d37}{damage}} (int damage, \mbox{\hyperlink{classentities_1_1_entity}{Entity}} \&attacker) override
+\begin{DoxyCompactList}\small\item\em something damage this \end{DoxyCompactList}\item 
+std\+::shared\+\_\+ptr$<$ \mbox{\hyperlink{classweapons_1_1_weapon}{weapons\+::\+Weapon}} $>$ \mbox{\hyperlink{classentities_1_1_entity_with_a_i_a66937315f0a16d70c29359e89415d222}{get\+Weapon}} () override
+\end{DoxyCompactItemize}
+\doxysubsection*{Additional Inherited Members}
+
+
+\doxysubsection{Detailed Description}
+The enemies. go after the player, and try to kill it. 
+
+Definition at line 11 of file Entity\+With\+A\+I.\+h.
+
+
+
+\doxysubsection{Constructor \& Destructor Documentation}
+\mbox{\Hypertarget{classentities_1_1_entity_with_a_i_aa8bfaebef1ce596fbd8d70b36362135b}\label{classentities_1_1_entity_with_a_i_aa8bfaebef1ce596fbd8d70b36362135b}} 
+\index{entities::EntityWithAI@{entities::EntityWithAI}!EntityWithAI@{EntityWithAI}}
+\index{EntityWithAI@{EntityWithAI}!entities::EntityWithAI@{entities::EntityWithAI}}
+\doxysubsubsection{\texorpdfstring{EntityWithAI()}{EntityWithAI()}}
+{\footnotesize\ttfamily entities\+::\+Entity\+With\+A\+I\+::\+Entity\+With\+AI (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&}]{pos,  }\item[{\mbox{\hyperlink{classrender_1_1_i_texture}{render\+::\+I\+Texture}} \&}]{skin,  }\item[{int}]{damage = {\ttfamily 20},  }\item[{const std\+::string \&}]{name = {\ttfamily \char`\"{}Enemy\char`\"{}} }\end{DoxyParamCaption})}
+
+
+
+Definition at line 49 of file Entity\+With\+A\+I.\+cpp.
+
+
+
+\doxysubsection{Member Function Documentation}
+\mbox{\Hypertarget{classentities_1_1_entity_with_a_i_af1e954b2ecf51732759a28e00dc2614c}\label{classentities_1_1_entity_with_a_i_af1e954b2ecf51732759a28e00dc2614c}} 
+\index{entities::EntityWithAI@{entities::EntityWithAI}!addWeapon@{addWeapon}}
+\index{addWeapon@{addWeapon}!entities::EntityWithAI@{entities::EntityWithAI}}
+\doxysubsubsection{\texorpdfstring{addWeapon()}{addWeapon()}}
+{\footnotesize\ttfamily void entities\+::\+Entity\+With\+A\+I\+::add\+Weapon (\begin{DoxyParamCaption}\item[{std\+::shared\+\_\+ptr$<$ \mbox{\hyperlink{classweapons_1_1_weapon}{weapons\+::\+Weapon}} $>$ \&}]{weapon }\end{DoxyParamCaption})}
+
+
+
+override it\textquotesingle{}s weapon 
+
+
+\begin{DoxyParams}{Parameters}
+{\em weapon} & the new weapon, can be nullptr \\
+\hline
+\end{DoxyParams}
+
+
+Definition at line 44 of file Entity\+With\+A\+I.\+cpp.
+
+\mbox{\Hypertarget{classentities_1_1_entity_with_a_i_a49a1c8a8ec1a318f65007d54173c3d37}\label{classentities_1_1_entity_with_a_i_a49a1c8a8ec1a318f65007d54173c3d37}} 
+\index{entities::EntityWithAI@{entities::EntityWithAI}!damage@{damage}}
+\index{damage@{damage}!entities::EntityWithAI@{entities::EntityWithAI}}
+\doxysubsubsection{\texorpdfstring{damage()}{damage()}}
+{\footnotesize\ttfamily bool entities\+::\+Entity\+With\+A\+I\+::damage (\begin{DoxyParamCaption}\item[{int}]{damage,  }\item[{\mbox{\hyperlink{classentities_1_1_entity}{Entity}} \&}]{attacker }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [override]}, {\ttfamily [virtual]}}
+
+
+
+something damage this 
+
+
+\begin{DoxyParams}{Parameters}
+{\em damage} & how much damage should it take \\
+\hline
+{\em attacker} & who deal the damage. not the projectile, the entity \\
+\hline
+\end{DoxyParams}
+\begin{DoxyReturn}{Returns}
+did the entity take the damage or no (like a wall) 
+\end{DoxyReturn}
+
+
+Implements \mbox{\hyperlink{classentities_1_1_entity_af7fc9949fc50b1b31abb36a3d51b0597}{entities\+::\+Entity}}.
+
+
+
+Definition at line 52 of file Entity\+With\+A\+I.\+cpp.
+
+\mbox{\Hypertarget{classentities_1_1_entity_with_a_i_a66937315f0a16d70c29359e89415d222}\label{classentities_1_1_entity_with_a_i_a66937315f0a16d70c29359e89415d222}} 
+\index{entities::EntityWithAI@{entities::EntityWithAI}!getWeapon@{getWeapon}}
+\index{getWeapon@{getWeapon}!entities::EntityWithAI@{entities::EntityWithAI}}
+\doxysubsubsection{\texorpdfstring{getWeapon()}{getWeapon()}}
+{\footnotesize\ttfamily std\+::shared\+\_\+ptr$<$ \mbox{\hyperlink{classweapons_1_1_weapon}{weapons\+::\+Weapon}} $>$ entities\+::\+Entity\+With\+A\+I\+::get\+Weapon (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [override]}, {\ttfamily [virtual]}}
+
+Return null if not available 
+
+Reimplemented from \mbox{\hyperlink{classentities_1_1_character_entity_a7926bfbac4481203c1bd8920fcb2c432}{entities\+::\+Character\+Entity}}.
+
+
+
+Definition at line 61 of file Entity\+With\+A\+I.\+cpp.
+
+\mbox{\Hypertarget{classentities_1_1_entity_with_a_i_a92708b14b042c03fa9a8673192867e72}\label{classentities_1_1_entity_with_a_i_a92708b14b042c03fa9a8673192867e72}} 
+\index{entities::EntityWithAI@{entities::EntityWithAI}!tick@{tick}}
+\index{tick@{tick}!entities::EntityWithAI@{entities::EntityWithAI}}
+\doxysubsubsection{\texorpdfstring{tick()}{tick()}}
+{\footnotesize\ttfamily void entities\+::\+Entity\+With\+A\+I\+::tick (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{class_game_client}{Game\+Client}} \&}]{client,  }\item[{float}]{deltaT,  }\item[{std\+::shared\+\_\+ptr$<$ \mbox{\hyperlink{classentities_1_1_entity}{Entity}} $>$ \&}]{shared\+\_\+this }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [override]}, {\ttfamily [virtual]}}
+
+
+
+Tick, from \mbox{\hyperlink{classentities_1_1_entity}{Entity}}. 
+
+
+\begin{DoxyParams}{Parameters}
+{\em client} & client \\
+\hline
+{\em deltaT} & f\+Elapsed\+Time \\
+\hline
+{\em shared\+\_\+this} & it as a shared\+\_\+ptr \\
+\hline
+\end{DoxyParams}
+
+
+Reimplemented from \mbox{\hyperlink{classentities_1_1_character_entity_ae7cdddc6dca655e7bf8c2f48424c5208}{entities\+::\+Character\+Entity}}.
+
+
+
+Definition at line 14 of file Entity\+With\+A\+I.\+cpp.
+
+
+
+The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize}
+\item 
+C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\mbox{\hyperlink{_entity_with_a_i_8h}{Entity\+With\+A\+I.\+h}}\item 
+C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\mbox{\hyperlink{_entity_with_a_i_8cpp}{Entity\+With\+A\+I.\+cpp}}\end{DoxyCompactItemize}
diff --git a/doxy/latex/classentities_1_1_explosive_projectile.eps b/doxy/latex/classentities_1_1_explosive_projectile.eps
new file mode 100644
index 0000000000000000000000000000000000000000..217b9a64fbd13eabdf5d001524cc8beb994cb288
--- /dev/null
+++ b/doxy/latex/classentities_1_1_explosive_projectile.eps
@@ -0,0 +1,203 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: ClassName
+%%Creator: Doxygen
+%%CreationDate: Time
+%%For: 
+%Magnification: 1.00
+%%Orientation: Portrait
+%%BoundingBox: 0 0 500 348.837219
+%%Pages: 0
+%%BeginSetup
+%%EndSetup
+%%EndComments
+
+% ----- variables -----
+
+/boxwidth 0 def
+/boxheight 40 def
+/fontheight 24 def
+/marginwidth 10 def
+/distx 20 def
+/disty 40 def
+/boundaspect 1.433333 def  % aspect ratio of the BoundingBox (width/height)
+/boundx 500 def
+/boundy boundx boundaspect div def
+/xspacing 0 def
+/yspacing 0 def
+/rows 3 def
+/cols 1 def
+/scalefactor 0 def
+/boxfont /Times-Roman findfont fontheight scalefont def
+
+% ----- procedures -----
+
+/dotted { [1 4] 0 setdash } def
+/dashed { [5] 0 setdash } def
+/solid  { [] 0 setdash } def
+
+/max % result = MAX(arg1,arg2)
+{
+  /a exch def
+  /b exch def
+  a b gt {a} {b} ifelse
+} def
+
+/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)
+{
+  0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max
+} def
+
+/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))
+{
+  /str exch def
+  /boxwidth boxwidth str stringwidth pop max def
+} def
+
+/box % draws a box with text 'arg1' at grid pos (arg2,arg3)
+{ gsave
+  2 setlinewidth
+  newpath
+  exch xspacing mul xoffset add
+  exch yspacing mul
+  moveto
+  boxwidth 0 rlineto 
+  0 boxheight rlineto 
+  boxwidth neg 0 rlineto 
+  0 boxheight neg rlineto 
+  closepath
+  dup stringwidth pop neg boxwidth add 2 div
+  boxheight fontheight 2 div sub 2 div
+  rmoveto show stroke
+  grestore
+} def  
+
+/mark
+{ newpath
+  exch xspacing mul xoffset add boxwidth add
+  exch yspacing mul
+  moveto
+  0 boxheight 4 div rlineto
+  boxheight neg 4 div boxheight neg 4 div rlineto
+  closepath
+  eofill
+  stroke
+} def
+
+/arrow
+{ newpath
+  moveto
+  3 -8 rlineto
+  -6 0 rlineto
+  3 8 rlineto
+  closepath
+  eofill
+  stroke
+} def
+
+/out % draws an output connector for the block at (arg1,arg2)
+{
+  newpath
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul boxheight add
+  /y exch def
+  /x exch def
+  x y moveto
+  0 disty 2 div rlineto 
+  stroke
+  1 eq { x y disty 2 div add arrow } if
+} def
+
+/in % draws an input connector for the block at (arg1,arg2)
+{
+  newpath
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul disty 2 div sub
+  /y exch def
+  /x exch def
+  x y moveto
+  0 disty 2 div rlineto
+  stroke
+  1 eq { x y disty 2 div add arrow } if
+} def
+
+/hedge
+{
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul boxheight 2 div sub
+  /y exch def
+  /x exch def
+  newpath
+  x y moveto
+  boxwidth 2 div distx add 0 rlineto
+  stroke
+  1 eq
+  { newpath x boxwidth 2 div distx add add y moveto
+    -8 3 rlineto
+    0 -6 rlineto
+    8 3 rlineto
+    closepath
+    eofill
+    stroke
+  } if
+} def
+
+/vedge
+{
+  /ye exch def
+  /ys exch def
+  /xs exch def
+  newpath
+  xs xspacing mul xoffset add boxwidth 2 div add dup
+  ys yspacing mul boxheight 2 div sub
+  moveto
+  ye yspacing mul boxheight 2 div sub
+  lineto
+  stroke
+} def
+
+/conn % connections the blocks from col 'arg1' to 'arg2' of row 'arg3'
+{
+  /ys exch def
+  /xe exch def
+  /xs exch def
+  newpath
+  xs xspacing mul xoffset add boxwidth 2 div add
+  ys yspacing mul disty 2 div sub
+  moveto
+  xspacing xe xs sub mul 0
+  rlineto
+  stroke
+} def
+
+% ----- main ------
+
+boxfont setfont
+1 boundaspect scale
+(entities::ExplosiveProjectile) cw
+(entities::ProjectileEntity) cw
+(entities::Entity) cw
+/boxwidth boxwidth marginwidth 2 mul add def
+/xspacing boxwidth distx add def
+/yspacing boxheight disty add def
+/scalefactor 
+  boxwidth cols mul distx cols 1 sub mul add
+  boxheight rows mul disty rows 1 sub mul add boundaspect mul 
+  max def
+boundx scalefactor div boundy scalefactor div scale
+
+% ----- classes -----
+
+ (entities::ExplosiveProjectile) 0.000000 0.000000 box
+ (entities::ProjectileEntity) 0.000000 1.000000 box
+ (entities::Entity) 0.000000 2.000000 box
+
+% ----- relations -----
+
+solid
+0 0.000000 0.000000 out
+solid
+1 0.000000 1.000000 in
+solid
+0 0.000000 1.000000 out
+solid
+1 0.000000 2.000000 in
diff --git a/doxy/latex/classentities_1_1_explosive_projectile.tex b/doxy/latex/classentities_1_1_explosive_projectile.tex
new file mode 100644
index 0000000000000000000000000000000000000000..46ddc1bc47f643aeafbf1651c7177cb4f7b5daa9
--- /dev/null
+++ b/doxy/latex/classentities_1_1_explosive_projectile.tex
@@ -0,0 +1,153 @@
+\hypertarget{classentities_1_1_explosive_projectile}{}\doxysection{entities\+::Explosive\+Projectile Class Reference}
+\label{classentities_1_1_explosive_projectile}\index{entities::ExplosiveProjectile@{entities::ExplosiveProjectile}}
+
+
+A projectile, that explodes.  
+
+
+
+
+{\ttfamily \#include $<$Explosive\+Projectile.\+h$>$}
+
+Inheritance diagram for entities\+::Explosive\+Projectile\+:\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[height=3.000000cm]{classentities_1_1_explosive_projectile}
+\end{center}
+\end{figure}
+\doxysubsection*{Public Member Functions}
+\begin{DoxyCompactItemize}
+\item 
+\mbox{\hyperlink{classentities_1_1_explosive_projectile_ae80625e2530015d21b963ec219be758e}{Explosive\+Projectile}} (std\+::shared\+\_\+ptr$<$ \mbox{\hyperlink{classentities_1_1_entity}{Entity}} $>$ \&\mbox{\hyperlink{classentities_1_1_projectile_entity_ab01d1aa4b66b21481d07f7777bfb2ca3}{user}}, const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&pos0, \mbox{\hyperlink{classrender_1_1_i_texture}{render\+::\+I\+Texture}} \&texture, int \mbox{\hyperlink{classentities_1_1_projectile_entity_a723e706e6421504ce9c6d70d77561215}{damage}}=40)
+\item 
+void \mbox{\hyperlink{classentities_1_1_explosive_projectile_a3aa22ab3467caa20a8c7b3cc818b157d}{tick}} (\mbox{\hyperlink{class_game_client}{Game\+Client}} \&client, float deltaT, std\+::shared\+\_\+ptr$<$ \mbox{\hyperlink{classentities_1_1_entity}{Entity}} $>$ \&shared\+\_\+this) override
+\begin{DoxyCompactList}\small\item\em \mbox{\hyperlink{classentities_1_1_entity}{Entity}} tick multiple times per sec. \end{DoxyCompactList}\item 
+bool \mbox{\hyperlink{classentities_1_1_explosive_projectile_a8b075196a23aed5116e885709b64d583}{can\+Be\+Removed}} () const override
+\item 
+void \mbox{\hyperlink{classentities_1_1_explosive_projectile_a86148b27403d275c1513f22bb3f47892}{render}} (\mbox{\hyperlink{classolc_1_1_transformed_view}{olc\+::\+Transformed\+View}} \&scene) override
+\begin{DoxyCompactList}\small\item\em render \end{DoxyCompactList}\end{DoxyCompactItemize}
+\doxysubsection*{Protected Member Functions}
+\begin{DoxyCompactItemize}
+\item 
+bool \mbox{\hyperlink{classentities_1_1_explosive_projectile_a7e0d880f0dfeb6570dc724a0739b1331}{on\+Collide}} (const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&collision\+Vector, std\+::shared\+\_\+ptr$<$ \mbox{\hyperlink{classentities_1_1_entity}{Entity}} $>$ \&who) override
+\begin{DoxyCompactList}\small\item\em Determines, what will the projectile do, if it hit something. \end{DoxyCompactList}\end{DoxyCompactItemize}
+\doxysubsection*{Additional Inherited Members}
+
+
+\doxysubsection{Detailed Description}
+A projectile, that explodes. 
+
+Definition at line 8 of file Explosive\+Projectile.\+h.
+
+
+
+\doxysubsection{Constructor \& Destructor Documentation}
+\mbox{\Hypertarget{classentities_1_1_explosive_projectile_ae80625e2530015d21b963ec219be758e}\label{classentities_1_1_explosive_projectile_ae80625e2530015d21b963ec219be758e}} 
+\index{entities::ExplosiveProjectile@{entities::ExplosiveProjectile}!ExplosiveProjectile@{ExplosiveProjectile}}
+\index{ExplosiveProjectile@{ExplosiveProjectile}!entities::ExplosiveProjectile@{entities::ExplosiveProjectile}}
+\doxysubsubsection{\texorpdfstring{ExplosiveProjectile()}{ExplosiveProjectile()}}
+{\footnotesize\ttfamily entities\+::\+Explosive\+Projectile\+::\+Explosive\+Projectile (\begin{DoxyParamCaption}\item[{std\+::shared\+\_\+ptr$<$ \mbox{\hyperlink{classentities_1_1_entity}{Entity}} $>$ \&}]{user,  }\item[{const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&}]{pos0,  }\item[{\mbox{\hyperlink{classrender_1_1_i_texture}{render\+::\+I\+Texture}} \&}]{texture,  }\item[{int}]{damage = {\ttfamily 40} }\end{DoxyParamCaption})}
+
+
+
+Definition at line 19 of file Explosive\+Projectile.\+cpp.
+
+
+
+\doxysubsection{Member Function Documentation}
+\mbox{\Hypertarget{classentities_1_1_explosive_projectile_a8b075196a23aed5116e885709b64d583}\label{classentities_1_1_explosive_projectile_a8b075196a23aed5116e885709b64d583}} 
+\index{entities::ExplosiveProjectile@{entities::ExplosiveProjectile}!canBeRemoved@{canBeRemoved}}
+\index{canBeRemoved@{canBeRemoved}!entities::ExplosiveProjectile@{entities::ExplosiveProjectile}}
+\doxysubsubsection{\texorpdfstring{canBeRemoved()}{canBeRemoved()}}
+{\footnotesize\ttfamily bool entities\+::\+Explosive\+Projectile\+::can\+Be\+Removed (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [override]}, {\ttfamily [virtual]}}
+
+\begin{DoxyReturn}{Returns}
+can be deleted from the entity list. mostly is dead 
+\end{DoxyReturn}
+
+
+Reimplemented from \mbox{\hyperlink{classentities_1_1_entity_a59426fe1b7dcefe96a0a748250724ff6}{entities\+::\+Entity}}.
+
+
+
+Definition at line 32 of file Explosive\+Projectile.\+cpp.
+
+\mbox{\Hypertarget{classentities_1_1_explosive_projectile_a7e0d880f0dfeb6570dc724a0739b1331}\label{classentities_1_1_explosive_projectile_a7e0d880f0dfeb6570dc724a0739b1331}} 
+\index{entities::ExplosiveProjectile@{entities::ExplosiveProjectile}!onCollide@{onCollide}}
+\index{onCollide@{onCollide}!entities::ExplosiveProjectile@{entities::ExplosiveProjectile}}
+\doxysubsubsection{\texorpdfstring{onCollide()}{onCollide()}}
+{\footnotesize\ttfamily bool entities\+::\+Explosive\+Projectile\+::on\+Collide (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&}]{collision\+Vector,  }\item[{std\+::shared\+\_\+ptr$<$ \mbox{\hyperlink{classentities_1_1_entity}{Entity}} $>$ \&}]{who }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [override]}, {\ttfamily [protected]}, {\ttfamily [virtual]}}
+
+
+
+Determines, what will the projectile do, if it hit something. 
+
+
+\begin{DoxyParams}{Parameters}
+{\em collision\+Vector} & the collision vector \\
+\hline
+{\em who} & who is the affected entity \\
+\hline
+\end{DoxyParams}
+\begin{DoxyReturn}{Returns}
+is the projectile destroyed. 
+\end{DoxyReturn}
+
+
+Reimplemented from \mbox{\hyperlink{classentities_1_1_projectile_entity_a865c1a9527f67a3e5402a4fcf8baac98}{entities\+::\+Projectile\+Entity}}.
+
+
+
+Definition at line 10 of file Explosive\+Projectile.\+cpp.
+
+\mbox{\Hypertarget{classentities_1_1_explosive_projectile_a86148b27403d275c1513f22bb3f47892}\label{classentities_1_1_explosive_projectile_a86148b27403d275c1513f22bb3f47892}} 
+\index{entities::ExplosiveProjectile@{entities::ExplosiveProjectile}!render@{render}}
+\index{render@{render}!entities::ExplosiveProjectile@{entities::ExplosiveProjectile}}
+\doxysubsubsection{\texorpdfstring{render()}{render()}}
+{\footnotesize\ttfamily void entities\+::\+Explosive\+Projectile\+::render (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{classolc_1_1_transformed_view}{olc\+::\+Transformed\+View}} \&}]{scene }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [override]}, {\ttfamily [virtual]}}
+
+
+
+render 
+
+
+
+Reimplemented from \mbox{\hyperlink{classentities_1_1_entity_abcc4364b5b7250f0364f3550a618b3ab}{entities\+::\+Entity}}.
+
+
+
+Definition at line 36 of file Explosive\+Projectile.\+cpp.
+
+\mbox{\Hypertarget{classentities_1_1_explosive_projectile_a3aa22ab3467caa20a8c7b3cc818b157d}\label{classentities_1_1_explosive_projectile_a3aa22ab3467caa20a8c7b3cc818b157d}} 
+\index{entities::ExplosiveProjectile@{entities::ExplosiveProjectile}!tick@{tick}}
+\index{tick@{tick}!entities::ExplosiveProjectile@{entities::ExplosiveProjectile}}
+\doxysubsubsection{\texorpdfstring{tick()}{tick()}}
+{\footnotesize\ttfamily void entities\+::\+Explosive\+Projectile\+::tick (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{class_game_client}{Game\+Client}} \&}]{client,  }\item[{float}]{deltaT,  }\item[{std\+::shared\+\_\+ptr$<$ \mbox{\hyperlink{classentities_1_1_entity}{Entity}} $>$ \&}]{shared\+\_\+this }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [override]}, {\ttfamily [virtual]}}
+
+
+
+\mbox{\hyperlink{classentities_1_1_entity}{Entity}} tick multiple times per sec. 
+
+
+\begin{DoxyParams}{Parameters}
+{\em client} & the game client object \\
+\hline
+{\em deltaT} & how long take a tick \\
+\hline
+{\em shared\+\_\+this} & this as a shared\+\_\+ptr \\
+\hline
+\end{DoxyParams}
+
+
+Reimplemented from \mbox{\hyperlink{classentities_1_1_entity_a0440674bf90ae83d9a26aa4b0ac8309e}{entities\+::\+Entity}}.
+
+
+
+Definition at line 22 of file Explosive\+Projectile.\+cpp.
+
+
+
+The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize}
+\item 
+C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\mbox{\hyperlink{_explosive_projectile_8h}{Explosive\+Projectile.\+h}}\item 
+C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\mbox{\hyperlink{_explosive_projectile_8cpp}{Explosive\+Projectile.\+cpp}}\end{DoxyCompactItemize}
diff --git a/doxy/latex/classentities_1_1_living_entity.eps b/doxy/latex/classentities_1_1_living_entity.eps
new file mode 100644
index 0000000000000000000000000000000000000000..fcca8a7014930f2f4d3534004e782762f7d1c0ea
--- /dev/null
+++ b/doxy/latex/classentities_1_1_living_entity.eps
@@ -0,0 +1,219 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: ClassName
+%%Creator: Doxygen
+%%CreationDate: Time
+%%For: 
+%Magnification: 1.00
+%%Orientation: Portrait
+%%BoundingBox: 0 0 500 174.291946
+%%Pages: 0
+%%BeginSetup
+%%EndSetup
+%%EndComments
+
+% ----- variables -----
+
+/boxwidth 0 def
+/boxheight 40 def
+/fontheight 24 def
+/marginwidth 10 def
+/distx 20 def
+/disty 40 def
+/boundaspect 2.868750 def  % aspect ratio of the BoundingBox (width/height)
+/boundx 500 def
+/boundy boundx boundaspect div def
+/xspacing 0 def
+/yspacing 0 def
+/rows 4 def
+/cols 3 def
+/scalefactor 0 def
+/boxfont /Times-Roman findfont fontheight scalefont def
+
+% ----- procedures -----
+
+/dotted { [1 4] 0 setdash } def
+/dashed { [5] 0 setdash } def
+/solid  { [] 0 setdash } def
+
+/max % result = MAX(arg1,arg2)
+{
+  /a exch def
+  /b exch def
+  a b gt {a} {b} ifelse
+} def
+
+/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)
+{
+  0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max
+} def
+
+/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))
+{
+  /str exch def
+  /boxwidth boxwidth str stringwidth pop max def
+} def
+
+/box % draws a box with text 'arg1' at grid pos (arg2,arg3)
+{ gsave
+  2 setlinewidth
+  newpath
+  exch xspacing mul xoffset add
+  exch yspacing mul
+  moveto
+  boxwidth 0 rlineto 
+  0 boxheight rlineto 
+  boxwidth neg 0 rlineto 
+  0 boxheight neg rlineto 
+  closepath
+  dup stringwidth pop neg boxwidth add 2 div
+  boxheight fontheight 2 div sub 2 div
+  rmoveto show stroke
+  grestore
+} def  
+
+/mark
+{ newpath
+  exch xspacing mul xoffset add boxwidth add
+  exch yspacing mul
+  moveto
+  0 boxheight 4 div rlineto
+  boxheight neg 4 div boxheight neg 4 div rlineto
+  closepath
+  eofill
+  stroke
+} def
+
+/arrow
+{ newpath
+  moveto
+  3 -8 rlineto
+  -6 0 rlineto
+  3 8 rlineto
+  closepath
+  eofill
+  stroke
+} def
+
+/out % draws an output connector for the block at (arg1,arg2)
+{
+  newpath
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul boxheight add
+  /y exch def
+  /x exch def
+  x y moveto
+  0 disty 2 div rlineto 
+  stroke
+  1 eq { x y disty 2 div add arrow } if
+} def
+
+/in % draws an input connector for the block at (arg1,arg2)
+{
+  newpath
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul disty 2 div sub
+  /y exch def
+  /x exch def
+  x y moveto
+  0 disty 2 div rlineto
+  stroke
+  1 eq { x y disty 2 div add arrow } if
+} def
+
+/hedge
+{
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul boxheight 2 div sub
+  /y exch def
+  /x exch def
+  newpath
+  x y moveto
+  boxwidth 2 div distx add 0 rlineto
+  stroke
+  1 eq
+  { newpath x boxwidth 2 div distx add add y moveto
+    -8 3 rlineto
+    0 -6 rlineto
+    8 3 rlineto
+    closepath
+    eofill
+    stroke
+  } if
+} def
+
+/vedge
+{
+  /ye exch def
+  /ys exch def
+  /xs exch def
+  newpath
+  xs xspacing mul xoffset add boxwidth 2 div add dup
+  ys yspacing mul boxheight 2 div sub
+  moveto
+  ye yspacing mul boxheight 2 div sub
+  lineto
+  stroke
+} def
+
+/conn % connections the blocks from col 'arg1' to 'arg2' of row 'arg3'
+{
+  /ys exch def
+  /xe exch def
+  /xs exch def
+  newpath
+  xs xspacing mul xoffset add boxwidth 2 div add
+  ys yspacing mul disty 2 div sub
+  moveto
+  xspacing xe xs sub mul 0
+  rlineto
+  stroke
+} def
+
+% ----- main ------
+
+boxfont setfont
+1 boundaspect scale
+(entities::LivingEntity) cw
+(entities::Entity) cw
+(entities::CharacterEntity) cw
+(entities::DummyEntity) cw
+(entities::EntityWithAI) cw
+(entities::PlayerEntity) cw
+/boxwidth boxwidth marginwidth 2 mul add def
+/xspacing boxwidth distx add def
+/yspacing boxheight disty add def
+/scalefactor 
+  boxwidth cols mul distx cols 1 sub mul add
+  boxheight rows mul disty rows 1 sub mul add boundaspect mul 
+  max def
+boundx scalefactor div boundy scalefactor div scale
+
+% ----- classes -----
+
+ (entities::LivingEntity) 1.000000 2.000000 box
+ (entities::Entity) 1.000000 3.000000 box
+ (entities::CharacterEntity) 1.000000 1.000000 box
+ (entities::DummyEntity) 0.000000 0.000000 box
+ (entities::EntityWithAI) 1.000000 0.000000 box
+ (entities::PlayerEntity) 2.000000 0.000000 box
+
+% ----- relations -----
+
+solid
+0 1.000000 2.000000 out
+solid
+1 1.000000 3.000000 in
+solid
+1 1.000000 1.250000 out
+solid
+0 1.000000 1.750000 in
+solid
+1 1.000000 0.250000 out
+solid
+0.000000 2.000000 1.000000 conn
+solid
+0 0.000000 0.750000 in
+solid
+0 1.000000 0.750000 in
+solid
+0 2.000000 0.750000 in
diff --git a/doxy/latex/classentities_1_1_living_entity.tex b/doxy/latex/classentities_1_1_living_entity.tex
new file mode 100644
index 0000000000000000000000000000000000000000..b7a3749f618084ef31e8fdef5c96bfec981e30df
--- /dev/null
+++ b/doxy/latex/classentities_1_1_living_entity.tex
@@ -0,0 +1,232 @@
+\hypertarget{classentities_1_1_living_entity}{}\doxysection{entities\+::Living\+Entity Class Reference}
+\label{classentities_1_1_living_entity}\index{entities::LivingEntity@{entities::LivingEntity}}
+
+
+Any moving animal or player.  
+
+
+
+
+{\ttfamily \#include $<$Living\+Entity.\+h$>$}
+
+Inheritance diagram for entities\+::Living\+Entity\+:\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[height=4.000000cm]{classentities_1_1_living_entity}
+\end{center}
+\end{figure}
+\doxysubsection*{Public Member Functions}
+\begin{DoxyCompactItemize}
+\item 
+\mbox{\hyperlink{classentities_1_1_living_entity_a08837d43e7338c4ceff9acfbbbffd94b}{Living\+Entity}} (\mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \mbox{\hyperlink{classentities_1_1_entity_a04f9c2febe8d435138a07eb2f48ba96b}{pos}}, int \mbox{\hyperlink{classentities_1_1_living_entity_a78282129a711906b7973c4ecb37b8434}{health}}=100)
+\item 
+bool \mbox{\hyperlink{classentities_1_1_living_entity_a28d31eff59137171da3e23a8e3ef9c1c}{damage}} (int damage, \mbox{\hyperlink{classentities_1_1_entity}{Entity}} \&attacker) override
+\begin{DoxyCompactList}\small\item\em something damage this \end{DoxyCompactList}\item 
+char \mbox{\hyperlink{classentities_1_1_living_entity_a27f39311f1139c96967b28cbaf752bd2}{get\+Direction}} ()
+\begin{DoxyCompactList}\small\item\em Animation related getter. \end{DoxyCompactList}\item 
+char \mbox{\hyperlink{classentities_1_1_living_entity_a657626746aaed854f45ac3bb6d6c2a2f}{get\+Anim\+Phase}} () const
+\begin{DoxyCompactList}\small\item\em Animation phase. \end{DoxyCompactList}\item 
+void \mbox{\hyperlink{classentities_1_1_living_entity_af13cb8c3fabd2960746e21cd7dabe4d6}{tick}} (\mbox{\hyperlink{class_game_client}{Game\+Client}} \&client, float deltaT, std\+::shared\+\_\+ptr$<$ \mbox{\hyperlink{classentities_1_1_entity}{Entity}} $>$ \&shared\+\_\+this) override
+\begin{DoxyCompactList}\small\item\em \mbox{\hyperlink{classentities_1_1_entity}{Entity}} tick multiple times per sec. \end{DoxyCompactList}\end{DoxyCompactItemize}
+\doxysubsection*{Protected Member Functions}
+\begin{DoxyCompactItemize}
+\item 
+\mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \mbox{\hyperlink{classentities_1_1_living_entity_aa965d3922663b974dd14cc5f8004ed65}{get\+Hit\+Box\+Size}} () const override
+\begin{DoxyCompactList}\small\item\em half hitbox size \end{DoxyCompactList}\item 
+virtual \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \mbox{\hyperlink{classentities_1_1_living_entity_a07a7d7f7e43f2140e3e6337322f78224}{collision\+Offset}} (\mbox{\hyperlink{class_game_client}{Game\+Client}} \&client)
+\end{DoxyCompactItemize}
+\doxysubsection*{Protected Attributes}
+\begin{DoxyCompactItemize}
+\item 
+\mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \mbox{\hyperlink{classentities_1_1_living_entity_ad8b574e93d1fa34cdd119be6f0391acb}{speed}}
+\begin{DoxyCompactList}\small\item\em Its speed and moving direction. \end{DoxyCompactList}\item 
+int \mbox{\hyperlink{classentities_1_1_living_entity_a78282129a711906b7973c4ecb37b8434}{health}}
+\begin{DoxyCompactList}\small\item\em It has a health. \end{DoxyCompactList}\end{DoxyCompactItemize}
+
+
+\doxysubsection{Detailed Description}
+Any moving animal or player. 
+
+Definition at line 7 of file Living\+Entity.\+h.
+
+
+
+\doxysubsection{Constructor \& Destructor Documentation}
+\mbox{\Hypertarget{classentities_1_1_living_entity_a08837d43e7338c4ceff9acfbbbffd94b}\label{classentities_1_1_living_entity_a08837d43e7338c4ceff9acfbbbffd94b}} 
+\index{entities::LivingEntity@{entities::LivingEntity}!LivingEntity@{LivingEntity}}
+\index{LivingEntity@{LivingEntity}!entities::LivingEntity@{entities::LivingEntity}}
+\doxysubsubsection{\texorpdfstring{LivingEntity()}{LivingEntity()}}
+{\footnotesize\ttfamily entities\+::\+Living\+Entity\+::\+Living\+Entity (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}}}]{pos,  }\item[{int}]{health = {\ttfamily 100} }\end{DoxyParamCaption})}
+
+
+
+Definition at line 40 of file Living\+Entity.\+cpp.
+
+
+
+\doxysubsection{Member Function Documentation}
+\mbox{\Hypertarget{classentities_1_1_living_entity_a07a7d7f7e43f2140e3e6337322f78224}\label{classentities_1_1_living_entity_a07a7d7f7e43f2140e3e6337322f78224}} 
+\index{entities::LivingEntity@{entities::LivingEntity}!collisionOffset@{collisionOffset}}
+\index{collisionOffset@{collisionOffset}!entities::LivingEntity@{entities::LivingEntity}}
+\doxysubsubsection{\texorpdfstring{collisionOffset()}{collisionOffset()}}
+{\footnotesize\ttfamily \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{vf2d}} entities\+::\+Living\+Entity\+::collision\+Offset (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{class_game_client}{Game\+Client}} \&}]{client }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [protected]}, {\ttfamily [virtual]}}
+
+
+
+Definition at line 15 of file Living\+Entity.\+cpp.
+
+\mbox{\Hypertarget{classentities_1_1_living_entity_a28d31eff59137171da3e23a8e3ef9c1c}\label{classentities_1_1_living_entity_a28d31eff59137171da3e23a8e3ef9c1c}} 
+\index{entities::LivingEntity@{entities::LivingEntity}!damage@{damage}}
+\index{damage@{damage}!entities::LivingEntity@{entities::LivingEntity}}
+\doxysubsubsection{\texorpdfstring{damage()}{damage()}}
+{\footnotesize\ttfamily bool entities\+::\+Living\+Entity\+::damage (\begin{DoxyParamCaption}\item[{int}]{damage,  }\item[{\mbox{\hyperlink{classentities_1_1_entity}{Entity}} \&}]{attacker }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [override]}, {\ttfamily [virtual]}}
+
+
+
+something damage this 
+
+
+\begin{DoxyParams}{Parameters}
+{\em damage} & how much damage should it take \\
+\hline
+{\em attacker} & who deal the damage. not the projectile, the entity \\
+\hline
+\end{DoxyParams}
+\begin{DoxyReturn}{Returns}
+did the entity take the damage or no (like a wall) 
+\end{DoxyReturn}
+
+
+Implements \mbox{\hyperlink{classentities_1_1_entity_af7fc9949fc50b1b31abb36a3d51b0597}{entities\+::\+Entity}}.
+
+
+
+Reimplemented in \mbox{\hyperlink{classentities_1_1_player_entity_ab654524e0ad7ba5a9b1b590794d347f2}{entities\+::\+Player\+Entity}}.
+
+
+
+Definition at line 43 of file Living\+Entity.\+cpp.
+
+\mbox{\Hypertarget{classentities_1_1_living_entity_a657626746aaed854f45ac3bb6d6c2a2f}\label{classentities_1_1_living_entity_a657626746aaed854f45ac3bb6d6c2a2f}} 
+\index{entities::LivingEntity@{entities::LivingEntity}!getAnimPhase@{getAnimPhase}}
+\index{getAnimPhase@{getAnimPhase}!entities::LivingEntity@{entities::LivingEntity}}
+\doxysubsubsection{\texorpdfstring{getAnimPhase()}{getAnimPhase()}}
+{\footnotesize\ttfamily char entities\+::\+Living\+Entity\+::get\+Anim\+Phase (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const}
+
+
+
+Animation phase. 
+
+\begin{DoxyReturn}{Returns}
+phase 
+\end{DoxyReturn}
+
+
+Definition at line 77 of file Living\+Entity.\+cpp.
+
+\mbox{\Hypertarget{classentities_1_1_living_entity_a27f39311f1139c96967b28cbaf752bd2}\label{classentities_1_1_living_entity_a27f39311f1139c96967b28cbaf752bd2}} 
+\index{entities::LivingEntity@{entities::LivingEntity}!getDirection@{getDirection}}
+\index{getDirection@{getDirection}!entities::LivingEntity@{entities::LivingEntity}}
+\doxysubsubsection{\texorpdfstring{getDirection()}{getDirection()}}
+{\footnotesize\ttfamily char entities\+::\+Living\+Entity\+::get\+Direction (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}
+
+
+
+Animation related getter. 
+
+\begin{DoxyReturn}{Returns}
+its direction 
+\end{DoxyReturn}
+
+
+Definition at line 57 of file Living\+Entity.\+cpp.
+
+\mbox{\Hypertarget{classentities_1_1_living_entity_aa965d3922663b974dd14cc5f8004ed65}\label{classentities_1_1_living_entity_aa965d3922663b974dd14cc5f8004ed65}} 
+\index{entities::LivingEntity@{entities::LivingEntity}!getHitBoxSize@{getHitBoxSize}}
+\index{getHitBoxSize@{getHitBoxSize}!entities::LivingEntity@{entities::LivingEntity}}
+\doxysubsubsection{\texorpdfstring{getHitBoxSize()}{getHitBoxSize()}}
+{\footnotesize\ttfamily \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{vf2d}} entities\+::\+Living\+Entity\+::get\+Hit\+Box\+Size (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [override]}, {\ttfamily [protected]}, {\ttfamily [virtual]}}
+
+
+
+half hitbox size 
+
+\begin{DoxyReturn}{Returns}
+hitbox size as a vector 
+\end{DoxyReturn}
+
+
+Implements \mbox{\hyperlink{classentities_1_1_entity_a9cd7ba81ddbd978b8f43e9f10e97492f}{entities\+::\+Entity}}.
+
+
+
+Definition at line 10 of file Living\+Entity.\+cpp.
+
+\mbox{\Hypertarget{classentities_1_1_living_entity_af13cb8c3fabd2960746e21cd7dabe4d6}\label{classentities_1_1_living_entity_af13cb8c3fabd2960746e21cd7dabe4d6}} 
+\index{entities::LivingEntity@{entities::LivingEntity}!tick@{tick}}
+\index{tick@{tick}!entities::LivingEntity@{entities::LivingEntity}}
+\doxysubsubsection{\texorpdfstring{tick()}{tick()}}
+{\footnotesize\ttfamily void entities\+::\+Living\+Entity\+::tick (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{class_game_client}{Game\+Client}} \&}]{client,  }\item[{float}]{deltaT,  }\item[{std\+::shared\+\_\+ptr$<$ \mbox{\hyperlink{classentities_1_1_entity}{Entity}} $>$ \&}]{shared\+\_\+this }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [override]}, {\ttfamily [virtual]}}
+
+
+
+\mbox{\hyperlink{classentities_1_1_entity}{Entity}} tick multiple times per sec. 
+
+
+\begin{DoxyParams}{Parameters}
+{\em client} & the game client object \\
+\hline
+{\em deltaT} & how long take a tick \\
+\hline
+{\em shared\+\_\+this} & this as a shared\+\_\+ptr \\
+\hline
+\end{DoxyParams}
+
+
+Reimplemented from \mbox{\hyperlink{classentities_1_1_entity_a0440674bf90ae83d9a26aa4b0ac8309e}{entities\+::\+Entity}}.
+
+
+
+Reimplemented in \mbox{\hyperlink{classentities_1_1_player_entity_a9f5c7033ca46daf217c73cb5edbb0d68}{entities\+::\+Player\+Entity}}.
+
+
+
+Definition at line 82 of file Living\+Entity.\+cpp.
+
+
+
+\doxysubsection{Member Data Documentation}
+\mbox{\Hypertarget{classentities_1_1_living_entity_a78282129a711906b7973c4ecb37b8434}\label{classentities_1_1_living_entity_a78282129a711906b7973c4ecb37b8434}} 
+\index{entities::LivingEntity@{entities::LivingEntity}!health@{health}}
+\index{health@{health}!entities::LivingEntity@{entities::LivingEntity}}
+\doxysubsubsection{\texorpdfstring{health}{health}}
+{\footnotesize\ttfamily int entities\+::\+Living\+Entity\+::health\hspace{0.3cm}{\ttfamily [protected]}}
+
+
+
+It has a health. 
+
+
+
+Definition at line 37 of file Living\+Entity.\+h.
+
+\mbox{\Hypertarget{classentities_1_1_living_entity_ad8b574e93d1fa34cdd119be6f0391acb}\label{classentities_1_1_living_entity_ad8b574e93d1fa34cdd119be6f0391acb}} 
+\index{entities::LivingEntity@{entities::LivingEntity}!speed@{speed}}
+\index{speed@{speed}!entities::LivingEntity@{entities::LivingEntity}}
+\doxysubsubsection{\texorpdfstring{speed}{speed}}
+{\footnotesize\ttfamily \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} entities\+::\+Living\+Entity\+::speed\hspace{0.3cm}{\ttfamily [protected]}}
+
+
+
+Its speed and moving direction. 
+
+
+
+Definition at line 32 of file Living\+Entity.\+h.
+
+
+
+The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize}
+\item 
+C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\mbox{\hyperlink{_living_entity_8h}{Living\+Entity.\+h}}\item 
+C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\mbox{\hyperlink{_living_entity_8cpp}{Living\+Entity.\+cpp}}\end{DoxyCompactItemize}
diff --git a/doxy/latex/classentities_1_1_player_entity.eps b/doxy/latex/classentities_1_1_player_entity.eps
new file mode 100644
index 0000000000000000000000000000000000000000..5c7589ce6ce74476af5210fa238c5be7b6ad9a3e
--- /dev/null
+++ b/doxy/latex/classentities_1_1_player_entity.eps
@@ -0,0 +1,209 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: ClassName
+%%Creator: Doxygen
+%%CreationDate: Time
+%%For: 
+%Magnification: 1.00
+%%Orientation: Portrait
+%%BoundingBox: 0 0 500 522.875793
+%%Pages: 0
+%%BeginSetup
+%%EndSetup
+%%EndComments
+
+% ----- variables -----
+
+/boxwidth 0 def
+/boxheight 40 def
+/fontheight 24 def
+/marginwidth 10 def
+/distx 20 def
+/disty 40 def
+/boundaspect 0.956250 def  % aspect ratio of the BoundingBox (width/height)
+/boundx 500 def
+/boundy boundx boundaspect div def
+/xspacing 0 def
+/yspacing 0 def
+/rows 4 def
+/cols 1 def
+/scalefactor 0 def
+/boxfont /Times-Roman findfont fontheight scalefont def
+
+% ----- procedures -----
+
+/dotted { [1 4] 0 setdash } def
+/dashed { [5] 0 setdash } def
+/solid  { [] 0 setdash } def
+
+/max % result = MAX(arg1,arg2)
+{
+  /a exch def
+  /b exch def
+  a b gt {a} {b} ifelse
+} def
+
+/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)
+{
+  0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max
+} def
+
+/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))
+{
+  /str exch def
+  /boxwidth boxwidth str stringwidth pop max def
+} def
+
+/box % draws a box with text 'arg1' at grid pos (arg2,arg3)
+{ gsave
+  2 setlinewidth
+  newpath
+  exch xspacing mul xoffset add
+  exch yspacing mul
+  moveto
+  boxwidth 0 rlineto 
+  0 boxheight rlineto 
+  boxwidth neg 0 rlineto 
+  0 boxheight neg rlineto 
+  closepath
+  dup stringwidth pop neg boxwidth add 2 div
+  boxheight fontheight 2 div sub 2 div
+  rmoveto show stroke
+  grestore
+} def  
+
+/mark
+{ newpath
+  exch xspacing mul xoffset add boxwidth add
+  exch yspacing mul
+  moveto
+  0 boxheight 4 div rlineto
+  boxheight neg 4 div boxheight neg 4 div rlineto
+  closepath
+  eofill
+  stroke
+} def
+
+/arrow
+{ newpath
+  moveto
+  3 -8 rlineto
+  -6 0 rlineto
+  3 8 rlineto
+  closepath
+  eofill
+  stroke
+} def
+
+/out % draws an output connector for the block at (arg1,arg2)
+{
+  newpath
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul boxheight add
+  /y exch def
+  /x exch def
+  x y moveto
+  0 disty 2 div rlineto 
+  stroke
+  1 eq { x y disty 2 div add arrow } if
+} def
+
+/in % draws an input connector for the block at (arg1,arg2)
+{
+  newpath
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul disty 2 div sub
+  /y exch def
+  /x exch def
+  x y moveto
+  0 disty 2 div rlineto
+  stroke
+  1 eq { x y disty 2 div add arrow } if
+} def
+
+/hedge
+{
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul boxheight 2 div sub
+  /y exch def
+  /x exch def
+  newpath
+  x y moveto
+  boxwidth 2 div distx add 0 rlineto
+  stroke
+  1 eq
+  { newpath x boxwidth 2 div distx add add y moveto
+    -8 3 rlineto
+    0 -6 rlineto
+    8 3 rlineto
+    closepath
+    eofill
+    stroke
+  } if
+} def
+
+/vedge
+{
+  /ye exch def
+  /ys exch def
+  /xs exch def
+  newpath
+  xs xspacing mul xoffset add boxwidth 2 div add dup
+  ys yspacing mul boxheight 2 div sub
+  moveto
+  ye yspacing mul boxheight 2 div sub
+  lineto
+  stroke
+} def
+
+/conn % connections the blocks from col 'arg1' to 'arg2' of row 'arg3'
+{
+  /ys exch def
+  /xe exch def
+  /xs exch def
+  newpath
+  xs xspacing mul xoffset add boxwidth 2 div add
+  ys yspacing mul disty 2 div sub
+  moveto
+  xspacing xe xs sub mul 0
+  rlineto
+  stroke
+} def
+
+% ----- main ------
+
+boxfont setfont
+1 boundaspect scale
+(entities::PlayerEntity) cw
+(entities::CharacterEntity) cw
+(entities::LivingEntity) cw
+(entities::Entity) cw
+/boxwidth boxwidth marginwidth 2 mul add def
+/xspacing boxwidth distx add def
+/yspacing boxheight disty add def
+/scalefactor 
+  boxwidth cols mul distx cols 1 sub mul add
+  boxheight rows mul disty rows 1 sub mul add boundaspect mul 
+  max def
+boundx scalefactor div boundy scalefactor div scale
+
+% ----- classes -----
+
+ (entities::PlayerEntity) 0.000000 0.000000 box
+ (entities::CharacterEntity) 0.000000 1.000000 box
+ (entities::LivingEntity) 0.000000 2.000000 box
+ (entities::Entity) 0.000000 3.000000 box
+
+% ----- relations -----
+
+solid
+0 0.000000 0.000000 out
+solid
+1 0.000000 1.000000 in
+solid
+0 0.000000 1.000000 out
+solid
+1 0.000000 2.000000 in
+solid
+0 0.000000 2.000000 out
+solid
+1 0.000000 3.000000 in
diff --git a/doxy/latex/classentities_1_1_player_entity.tex b/doxy/latex/classentities_1_1_player_entity.tex
new file mode 100644
index 0000000000000000000000000000000000000000..b1e6da85f7dda1d9673e66c44065e77f3c4e4a25
--- /dev/null
+++ b/doxy/latex/classentities_1_1_player_entity.tex
@@ -0,0 +1,172 @@
+\hypertarget{classentities_1_1_player_entity}{}\doxysection{entities\+::Player\+Entity Class Reference}
+\label{classentities_1_1_player_entity}\index{entities::PlayerEntity@{entities::PlayerEntity}}
+
+
+You, or the player.  
+
+
+
+
+{\ttfamily \#include $<$Player\+Entity.\+h$>$}
+
+Inheritance diagram for entities\+::Player\+Entity\+:\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[height=4.000000cm]{classentities_1_1_player_entity}
+\end{center}
+\end{figure}
+\doxysubsection*{Public Member Functions}
+\begin{DoxyCompactItemize}
+\item 
+std\+::shared\+\_\+ptr$<$ \mbox{\hyperlink{classweapons_1_1_weapon}{weapons\+::\+Weapon}} $>$ \mbox{\hyperlink{classentities_1_1_player_entity_a6b0fdc757c8e1d95012a31dab836f20a}{get\+Weapon}} () override
+\begin{DoxyCompactList}\small\item\em Get selected weapon. \end{DoxyCompactList}\item 
+void \mbox{\hyperlink{classentities_1_1_player_entity_a9f5c7033ca46daf217c73cb5edbb0d68}{tick}} (\mbox{\hyperlink{class_game_client}{Game\+Client}} \&client, float deltaT, std\+::shared\+\_\+ptr$<$ \mbox{\hyperlink{classentities_1_1_entity}{Entity}} $>$ \&shared\+\_\+this) override
+\begin{DoxyCompactList}\small\item\em Tick the entity, read the control keys, HP regen logic, etc... \end{DoxyCompactList}\item 
+\mbox{\hyperlink{classentities_1_1_player_entity_ace0cf1f8c711b21afef3965eb3b380a1}{Player\+Entity}} (\mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \mbox{\hyperlink{classentities_1_1_entity_a04f9c2febe8d435138a07eb2f48ba96b}{pos}}, \mbox{\hyperlink{classrender_1_1_i_texture}{render\+::\+I\+Texture}} \&skin, const std\+::string \&name=\char`\"{}Player\char`\"{})
+\item 
+const std\+::shared\+\_\+ptr$<$ \mbox{\hyperlink{classweapons_1_1_weapon}{weapons\+::\+Weapon}} $>$ \& \mbox{\hyperlink{classentities_1_1_player_entity_a1759d4f054b70c3c57f0f66c03fe09bb}{get\+Weapon}} () const
+\begin{DoxyCompactList}\small\item\em Constant weapon getter. \end{DoxyCompactList}\item 
+bool \mbox{\hyperlink{classentities_1_1_player_entity_ab654524e0ad7ba5a9b1b590794d347f2}{damage}} (int damage, \mbox{\hyperlink{classentities_1_1_entity}{Entity}} \&attacker) override
+\begin{DoxyCompactList}\small\item\em Ouch. \end{DoxyCompactList}\item 
+float \mbox{\hyperlink{classentities_1_1_player_entity_ab4a5cd2af67538f73832668a2cd32c9f}{get\+Health\+Status}} ()
+\begin{DoxyCompactList}\small\item\em Sorry for these very meaningless descriptions. \end{DoxyCompactList}\end{DoxyCompactItemize}
+\doxysubsection*{Additional Inherited Members}
+
+
+\doxysubsection{Detailed Description}
+You, or the player. 
+
+Definition at line 10 of file Player\+Entity.\+h.
+
+
+
+\doxysubsection{Constructor \& Destructor Documentation}
+\mbox{\Hypertarget{classentities_1_1_player_entity_ace0cf1f8c711b21afef3965eb3b380a1}\label{classentities_1_1_player_entity_ace0cf1f8c711b21afef3965eb3b380a1}} 
+\index{entities::PlayerEntity@{entities::PlayerEntity}!PlayerEntity@{PlayerEntity}}
+\index{PlayerEntity@{PlayerEntity}!entities::PlayerEntity@{entities::PlayerEntity}}
+\doxysubsubsection{\texorpdfstring{PlayerEntity()}{PlayerEntity()}}
+{\footnotesize\ttfamily entities\+::\+Player\+Entity\+::\+Player\+Entity (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}}}]{pos,  }\item[{\mbox{\hyperlink{classrender_1_1_i_texture}{render\+::\+I\+Texture}} \&}]{skin,  }\item[{const std\+::string \&}]{name = {\ttfamily \char`\"{}Player\char`\"{}} }\end{DoxyParamCaption})}
+
+
+
+Definition at line 80 of file Player\+Entity.\+cpp.
+
+
+
+\doxysubsection{Member Function Documentation}
+\mbox{\Hypertarget{classentities_1_1_player_entity_ab654524e0ad7ba5a9b1b590794d347f2}\label{classentities_1_1_player_entity_ab654524e0ad7ba5a9b1b590794d347f2}} 
+\index{entities::PlayerEntity@{entities::PlayerEntity}!damage@{damage}}
+\index{damage@{damage}!entities::PlayerEntity@{entities::PlayerEntity}}
+\doxysubsubsection{\texorpdfstring{damage()}{damage()}}
+{\footnotesize\ttfamily bool entities\+::\+Player\+Entity\+::damage (\begin{DoxyParamCaption}\item[{int}]{damage,  }\item[{\mbox{\hyperlink{classentities_1_1_entity}{Entity}} \&}]{attacker }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [override]}, {\ttfamily [virtual]}}
+
+
+
+Ouch. 
+
+
+\begin{DoxyParams}{Parameters}
+{\em damage} & that hurt \\
+\hline
+{\em attacker} & the bad guy \\
+\hline
+\end{DoxyParams}
+\begin{DoxyReturn}{Returns}
+\+:D 
+\end{DoxyReturn}
+
+
+Reimplemented from \mbox{\hyperlink{classentities_1_1_living_entity_a28d31eff59137171da3e23a8e3ef9c1c}{entities\+::\+Living\+Entity}}.
+
+
+
+Definition at line 89 of file Player\+Entity.\+cpp.
+
+\mbox{\Hypertarget{classentities_1_1_player_entity_ab4a5cd2af67538f73832668a2cd32c9f}\label{classentities_1_1_player_entity_ab4a5cd2af67538f73832668a2cd32c9f}} 
+\index{entities::PlayerEntity@{entities::PlayerEntity}!getHealthStatus@{getHealthStatus}}
+\index{getHealthStatus@{getHealthStatus}!entities::PlayerEntity@{entities::PlayerEntity}}
+\doxysubsubsection{\texorpdfstring{getHealthStatus()}{getHealthStatus()}}
+{\footnotesize\ttfamily float entities\+::\+Player\+Entity\+::get\+Health\+Status (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}
+
+
+
+Sorry for these very meaningless descriptions. 
+
+\begin{DoxyReturn}{Returns}
+0-\/1 float, hp in percents. 
+\end{DoxyReturn}
+
+
+Definition at line 94 of file Player\+Entity.\+cpp.
+
+\mbox{\Hypertarget{classentities_1_1_player_entity_a1759d4f054b70c3c57f0f66c03fe09bb}\label{classentities_1_1_player_entity_a1759d4f054b70c3c57f0f66c03fe09bb}} 
+\index{entities::PlayerEntity@{entities::PlayerEntity}!getWeapon@{getWeapon}}
+\index{getWeapon@{getWeapon}!entities::PlayerEntity@{entities::PlayerEntity}}
+\doxysubsubsection{\texorpdfstring{getWeapon()}{getWeapon()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
+{\footnotesize\ttfamily const std\+::shared\+\_\+ptr$<$ \mbox{\hyperlink{classweapons_1_1_weapon}{weapons\+::\+Weapon}} $>$ \& entities\+::\+Player\+Entity\+::get\+Weapon (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const}
+
+
+
+Constant weapon getter. 
+
+\begin{DoxyReturn}{Returns}
+idk 
+\end{DoxyReturn}
+
+
+Definition at line 85 of file Player\+Entity.\+cpp.
+
+\mbox{\Hypertarget{classentities_1_1_player_entity_a6b0fdc757c8e1d95012a31dab836f20a}\label{classentities_1_1_player_entity_a6b0fdc757c8e1d95012a31dab836f20a}} 
+\index{entities::PlayerEntity@{entities::PlayerEntity}!getWeapon@{getWeapon}}
+\index{getWeapon@{getWeapon}!entities::PlayerEntity@{entities::PlayerEntity}}
+\doxysubsubsection{\texorpdfstring{getWeapon()}{getWeapon()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
+{\footnotesize\ttfamily std\+::shared\+\_\+ptr$<$ \mbox{\hyperlink{classweapons_1_1_weapon}{weapons\+::\+Weapon}} $>$ entities\+::\+Player\+Entity\+::get\+Weapon (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [override]}, {\ttfamily [virtual]}}
+
+
+
+Get selected weapon. 
+
+\begin{DoxyReturn}{Returns}
+nullptr if has no selected weapon 
+\end{DoxyReturn}
+
+
+Reimplemented from \mbox{\hyperlink{classentities_1_1_character_entity_a7926bfbac4481203c1bd8920fcb2c432}{entities\+::\+Character\+Entity}}.
+
+
+
+Definition at line 11 of file Player\+Entity.\+cpp.
+
+\mbox{\Hypertarget{classentities_1_1_player_entity_a9f5c7033ca46daf217c73cb5edbb0d68}\label{classentities_1_1_player_entity_a9f5c7033ca46daf217c73cb5edbb0d68}} 
+\index{entities::PlayerEntity@{entities::PlayerEntity}!tick@{tick}}
+\index{tick@{tick}!entities::PlayerEntity@{entities::PlayerEntity}}
+\doxysubsubsection{\texorpdfstring{tick()}{tick()}}
+{\footnotesize\ttfamily void entities\+::\+Player\+Entity\+::tick (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{class_game_client}{Game\+Client}} \&}]{client,  }\item[{float}]{deltaT,  }\item[{std\+::shared\+\_\+ptr$<$ \mbox{\hyperlink{classentities_1_1_entity}{Entity}} $>$ \&}]{shared\+\_\+this }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [override]}, {\ttfamily [virtual]}}
+
+
+
+Tick the entity, read the control keys, HP regen logic, etc... 
+
+
+\begin{DoxyParams}{Parameters}
+{\em client} & client \\
+\hline
+{\em deltaT} & f\+Elapsed\+Time \\
+\hline
+{\em shared\+\_\+this} & this \\
+\hline
+\end{DoxyParams}
+
+
+Reimplemented from \mbox{\hyperlink{classentities_1_1_character_entity_ae7cdddc6dca655e7bf8c2f48424c5208}{entities\+::\+Character\+Entity}}.
+
+
+
+Definition at line 15 of file Player\+Entity.\+cpp.
+
+
+
+The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize}
+\item 
+C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\mbox{\hyperlink{_player_entity_8h}{Player\+Entity.\+h}}\item 
+C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\mbox{\hyperlink{_player_entity_8cpp}{Player\+Entity.\+cpp}}\end{DoxyCompactItemize}
diff --git a/doxy/latex/classentities_1_1_projectile_entity.eps b/doxy/latex/classentities_1_1_projectile_entity.eps
new file mode 100644
index 0000000000000000000000000000000000000000..b6d85cea48bbda7db1b7032e6dc1c21b48cb091a
--- /dev/null
+++ b/doxy/latex/classentities_1_1_projectile_entity.eps
@@ -0,0 +1,203 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: ClassName
+%%Creator: Doxygen
+%%CreationDate: Time
+%%For: 
+%Magnification: 1.00
+%%Orientation: Portrait
+%%BoundingBox: 0 0 500 348.837219
+%%Pages: 0
+%%BeginSetup
+%%EndSetup
+%%EndComments
+
+% ----- variables -----
+
+/boxwidth 0 def
+/boxheight 40 def
+/fontheight 24 def
+/marginwidth 10 def
+/distx 20 def
+/disty 40 def
+/boundaspect 1.433333 def  % aspect ratio of the BoundingBox (width/height)
+/boundx 500 def
+/boundy boundx boundaspect div def
+/xspacing 0 def
+/yspacing 0 def
+/rows 3 def
+/cols 1 def
+/scalefactor 0 def
+/boxfont /Times-Roman findfont fontheight scalefont def
+
+% ----- procedures -----
+
+/dotted { [1 4] 0 setdash } def
+/dashed { [5] 0 setdash } def
+/solid  { [] 0 setdash } def
+
+/max % result = MAX(arg1,arg2)
+{
+  /a exch def
+  /b exch def
+  a b gt {a} {b} ifelse
+} def
+
+/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)
+{
+  0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max
+} def
+
+/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))
+{
+  /str exch def
+  /boxwidth boxwidth str stringwidth pop max def
+} def
+
+/box % draws a box with text 'arg1' at grid pos (arg2,arg3)
+{ gsave
+  2 setlinewidth
+  newpath
+  exch xspacing mul xoffset add
+  exch yspacing mul
+  moveto
+  boxwidth 0 rlineto 
+  0 boxheight rlineto 
+  boxwidth neg 0 rlineto 
+  0 boxheight neg rlineto 
+  closepath
+  dup stringwidth pop neg boxwidth add 2 div
+  boxheight fontheight 2 div sub 2 div
+  rmoveto show stroke
+  grestore
+} def  
+
+/mark
+{ newpath
+  exch xspacing mul xoffset add boxwidth add
+  exch yspacing mul
+  moveto
+  0 boxheight 4 div rlineto
+  boxheight neg 4 div boxheight neg 4 div rlineto
+  closepath
+  eofill
+  stroke
+} def
+
+/arrow
+{ newpath
+  moveto
+  3 -8 rlineto
+  -6 0 rlineto
+  3 8 rlineto
+  closepath
+  eofill
+  stroke
+} def
+
+/out % draws an output connector for the block at (arg1,arg2)
+{
+  newpath
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul boxheight add
+  /y exch def
+  /x exch def
+  x y moveto
+  0 disty 2 div rlineto 
+  stroke
+  1 eq { x y disty 2 div add arrow } if
+} def
+
+/in % draws an input connector for the block at (arg1,arg2)
+{
+  newpath
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul disty 2 div sub
+  /y exch def
+  /x exch def
+  x y moveto
+  0 disty 2 div rlineto
+  stroke
+  1 eq { x y disty 2 div add arrow } if
+} def
+
+/hedge
+{
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul boxheight 2 div sub
+  /y exch def
+  /x exch def
+  newpath
+  x y moveto
+  boxwidth 2 div distx add 0 rlineto
+  stroke
+  1 eq
+  { newpath x boxwidth 2 div distx add add y moveto
+    -8 3 rlineto
+    0 -6 rlineto
+    8 3 rlineto
+    closepath
+    eofill
+    stroke
+  } if
+} def
+
+/vedge
+{
+  /ye exch def
+  /ys exch def
+  /xs exch def
+  newpath
+  xs xspacing mul xoffset add boxwidth 2 div add dup
+  ys yspacing mul boxheight 2 div sub
+  moveto
+  ye yspacing mul boxheight 2 div sub
+  lineto
+  stroke
+} def
+
+/conn % connections the blocks from col 'arg1' to 'arg2' of row 'arg3'
+{
+  /ys exch def
+  /xe exch def
+  /xs exch def
+  newpath
+  xs xspacing mul xoffset add boxwidth 2 div add
+  ys yspacing mul disty 2 div sub
+  moveto
+  xspacing xe xs sub mul 0
+  rlineto
+  stroke
+} def
+
+% ----- main ------
+
+boxfont setfont
+1 boundaspect scale
+(entities::ProjectileEntity) cw
+(entities::Entity) cw
+(entities::ExplosiveProjectile) cw
+/boxwidth boxwidth marginwidth 2 mul add def
+/xspacing boxwidth distx add def
+/yspacing boxheight disty add def
+/scalefactor 
+  boxwidth cols mul distx cols 1 sub mul add
+  boxheight rows mul disty rows 1 sub mul add boundaspect mul 
+  max def
+boundx scalefactor div boundy scalefactor div scale
+
+% ----- classes -----
+
+ (entities::ProjectileEntity) 0.000000 1.000000 box
+ (entities::Entity) 0.000000 2.000000 box
+ (entities::ExplosiveProjectile) 0.000000 0.000000 box
+
+% ----- relations -----
+
+solid
+0 0.000000 1.000000 out
+solid
+1 0.000000 2.000000 in
+solid
+1 0.000000 0.250000 out
+solid
+0 0.000000 0.750000 in
diff --git a/doxy/latex/classentities_1_1_projectile_entity.tex b/doxy/latex/classentities_1_1_projectile_entity.tex
new file mode 100644
index 0000000000000000000000000000000000000000..47ace44552f6bc705684858bc280218cb4b5e8fe
--- /dev/null
+++ b/doxy/latex/classentities_1_1_projectile_entity.tex
@@ -0,0 +1,304 @@
+\hypertarget{classentities_1_1_projectile_entity}{}\doxysection{entities\+::Projectile\+Entity Class Reference}
+\label{classentities_1_1_projectile_entity}\index{entities::ProjectileEntity@{entities::ProjectileEntity}}
+
+
+A projectile, a bullet.  
+
+
+
+
+{\ttfamily \#include $<$Projectile\+Entity.\+h$>$}
+
+Inheritance diagram for entities\+::Projectile\+Entity\+:\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[height=3.000000cm]{classentities_1_1_projectile_entity}
+\end{center}
+\end{figure}
+\doxysubsection*{Public Member Functions}
+\begin{DoxyCompactItemize}
+\item 
+\mbox{\hyperlink{classentities_1_1_projectile_entity_ad42e2a1181110d2fa3acbec7eef3424e}{Projectile\+Entity}} (std\+::shared\+\_\+ptr$<$ \mbox{\hyperlink{classentities_1_1_entity}{Entity}} $>$ \&\mbox{\hyperlink{classentities_1_1_projectile_entity_ab01d1aa4b66b21481d07f7777bfb2ca3}{user}}, const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&pos0, \mbox{\hyperlink{classrender_1_1_i_texture}{render\+::\+I\+Texture}} \&texture, int \mbox{\hyperlink{classentities_1_1_projectile_entity_a723e706e6421504ce9c6d70d77561215}{damage}}=20)
+\item 
+void \mbox{\hyperlink{classentities_1_1_projectile_entity_a761f27885de02515edaf252e8a4162b5}{tick}} (\mbox{\hyperlink{class_game_client}{Game\+Client}} \&client, float deltaT, std\+::shared\+\_\+ptr$<$ \mbox{\hyperlink{classentities_1_1_entity}{Entity}} $>$ \&shared\+\_\+this) override
+\begin{DoxyCompactList}\small\item\em \mbox{\hyperlink{classentities_1_1_entity}{Entity}} tick multiple times per sec. \end{DoxyCompactList}\item 
+virtual void \mbox{\hyperlink{classentities_1_1_projectile_entity_ad88aa7e53b9a6671dab6132a8d58dbb5}{set\+Velocity}} (const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&v)
+\begin{DoxyCompactList}\small\item\em Set its velocity. \end{DoxyCompactList}\item 
+bool \mbox{\hyperlink{classentities_1_1_projectile_entity_a723e706e6421504ce9c6d70d77561215}{damage}} (int damage, \mbox{\hyperlink{classentities_1_1_entity}{Entity}} \&attacker) override
+\begin{DoxyCompactList}\small\item\em something damage this \end{DoxyCompactList}\end{DoxyCompactItemize}
+\doxysubsection*{Static Public Attributes}
+\begin{DoxyCompactItemize}
+\item 
+static \mbox{\hyperlink{classrender_1_1_simple_sprite}{render\+::\+Simple\+Sprite}} \mbox{\hyperlink{classentities_1_1_projectile_entity_aedd28853ca6fd6f1b8fa45dbe6b90c63}{projectile}}
+\end{DoxyCompactItemize}
+\doxysubsection*{Protected Member Functions}
+\begin{DoxyCompactItemize}
+\item 
+\mbox{\hyperlink{classrender_1_1_i_texture}{render\+::\+I\+Texture}} \& \mbox{\hyperlink{classentities_1_1_projectile_entity_a7e67fe629e1ef7115fd2a0cae8b1efc0}{get\+Texture}} () override
+\begin{DoxyCompactList}\small\item\em the object\textquotesingle{}s texture \end{DoxyCompactList}\item 
+virtual int \mbox{\hyperlink{classentities_1_1_projectile_entity_a463a54543d8412feddf3be0aa7ab532a}{get\+Damage}} ()
+\item 
+virtual void \mbox{\hyperlink{classentities_1_1_projectile_entity_ab3eb63e6fdf0ca5c4b81ebbc02e7f513}{bounce}} (const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&collision)
+\begin{DoxyCompactList}\small\item\em not used, do a bounce function \end{DoxyCompactList}\item 
+virtual bool \mbox{\hyperlink{classentities_1_1_projectile_entity_a865c1a9527f67a3e5402a4fcf8baac98}{on\+Collide}} (const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&collision\+Vector, std\+::shared\+\_\+ptr$<$ \mbox{\hyperlink{classentities_1_1_entity}{Entity}} $>$ \&who)
+\begin{DoxyCompactList}\small\item\em Determines, what will the projectile do, if it hit something. \end{DoxyCompactList}\item 
+\mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \mbox{\hyperlink{classentities_1_1_projectile_entity_ae38525094695db8ab564c5ae27711bb4}{get\+Hit\+Box\+Size}} () const override
+\begin{DoxyCompactList}\small\item\em half hitbox size \end{DoxyCompactList}\end{DoxyCompactItemize}
+\doxysubsection*{Protected Attributes}
+\begin{DoxyCompactItemize}
+\item 
+\mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \mbox{\hyperlink{classentities_1_1_projectile_entity_a29cb43b58d34f32f18986185bf8691f8}{velocity}}
+\item 
+std\+::shared\+\_\+ptr$<$ \mbox{\hyperlink{classentities_1_1_entity}{Entity}} $>$ \mbox{\hyperlink{classentities_1_1_projectile_entity_ab01d1aa4b66b21481d07f7777bfb2ca3}{user}}
+\begin{DoxyCompactList}\small\item\em Who is the owner of this bullet. needed to not damage the user. \end{DoxyCompactList}\item 
+int \mbox{\hyperlink{classentities_1_1_projectile_entity_ad4325b9194e4c76e68f27857226eefd8}{damage\+Value}}
+\end{DoxyCompactItemize}
+
+
+\doxysubsection{Detailed Description}
+A projectile, a bullet. 
+
+Definition at line 9 of file Projectile\+Entity.\+h.
+
+
+
+\doxysubsection{Constructor \& Destructor Documentation}
+\mbox{\Hypertarget{classentities_1_1_projectile_entity_ad42e2a1181110d2fa3acbec7eef3424e}\label{classentities_1_1_projectile_entity_ad42e2a1181110d2fa3acbec7eef3424e}} 
+\index{entities::ProjectileEntity@{entities::ProjectileEntity}!ProjectileEntity@{ProjectileEntity}}
+\index{ProjectileEntity@{ProjectileEntity}!entities::ProjectileEntity@{entities::ProjectileEntity}}
+\doxysubsubsection{\texorpdfstring{ProjectileEntity()}{ProjectileEntity()}}
+{\footnotesize\ttfamily entities\+::\+Projectile\+Entity\+::\+Projectile\+Entity (\begin{DoxyParamCaption}\item[{std\+::shared\+\_\+ptr$<$ \mbox{\hyperlink{classentities_1_1_entity}{Entity}} $>$ \&}]{user,  }\item[{const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&}]{pos0,  }\item[{\mbox{\hyperlink{classrender_1_1_i_texture}{render\+::\+I\+Texture}} \&}]{texture,  }\item[{int}]{damage = {\ttfamily 20} }\end{DoxyParamCaption})}
+
+
+
+Definition at line 40 of file Projectile\+Entity.\+cpp.
+
+
+
+\doxysubsection{Member Function Documentation}
+\mbox{\Hypertarget{classentities_1_1_projectile_entity_ab3eb63e6fdf0ca5c4b81ebbc02e7f513}\label{classentities_1_1_projectile_entity_ab3eb63e6fdf0ca5c4b81ebbc02e7f513}} 
+\index{entities::ProjectileEntity@{entities::ProjectileEntity}!bounce@{bounce}}
+\index{bounce@{bounce}!entities::ProjectileEntity@{entities::ProjectileEntity}}
+\doxysubsubsection{\texorpdfstring{bounce()}{bounce()}}
+{\footnotesize\ttfamily void entities\+::\+Projectile\+Entity\+::bounce (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&}]{collision }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [protected]}, {\ttfamily [virtual]}}
+
+
+
+not used, do a bounce function 
+
+
+\begin{DoxyParams}{Parameters}
+{\em collision} & collision vector \\
+\hline
+\end{DoxyParams}
+
+
+Definition at line 17 of file Projectile\+Entity.\+cpp.
+
+\mbox{\Hypertarget{classentities_1_1_projectile_entity_a723e706e6421504ce9c6d70d77561215}\label{classentities_1_1_projectile_entity_a723e706e6421504ce9c6d70d77561215}} 
+\index{entities::ProjectileEntity@{entities::ProjectileEntity}!damage@{damage}}
+\index{damage@{damage}!entities::ProjectileEntity@{entities::ProjectileEntity}}
+\doxysubsubsection{\texorpdfstring{damage()}{damage()}}
+{\footnotesize\ttfamily bool entities\+::\+Projectile\+Entity\+::damage (\begin{DoxyParamCaption}\item[{int}]{damage,  }\item[{\mbox{\hyperlink{classentities_1_1_entity}{Entity}} \&}]{attacker }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [override]}, {\ttfamily [virtual]}}
+
+
+
+something damage this 
+
+
+\begin{DoxyParams}{Parameters}
+{\em damage} & how much damage should it take \\
+\hline
+{\em attacker} & who deal the damage. not the projectile, the entity \\
+\hline
+\end{DoxyParams}
+\begin{DoxyReturn}{Returns}
+did the entity take the damage or no (like a wall) 
+\end{DoxyReturn}
+
+
+Implements \mbox{\hyperlink{classentities_1_1_entity_af7fc9949fc50b1b31abb36a3d51b0597}{entities\+::\+Entity}}.
+
+
+
+Definition at line 66 of file Projectile\+Entity.\+cpp.
+
+\mbox{\Hypertarget{classentities_1_1_projectile_entity_a463a54543d8412feddf3be0aa7ab532a}\label{classentities_1_1_projectile_entity_a463a54543d8412feddf3be0aa7ab532a}} 
+\index{entities::ProjectileEntity@{entities::ProjectileEntity}!getDamage@{getDamage}}
+\index{getDamage@{getDamage}!entities::ProjectileEntity@{entities::ProjectileEntity}}
+\doxysubsubsection{\texorpdfstring{getDamage()}{getDamage()}}
+{\footnotesize\ttfamily int entities\+::\+Projectile\+Entity\+::get\+Damage (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [protected]}, {\ttfamily [virtual]}}
+
+
+
+Definition at line 13 of file Projectile\+Entity.\+cpp.
+
+\mbox{\Hypertarget{classentities_1_1_projectile_entity_ae38525094695db8ab564c5ae27711bb4}\label{classentities_1_1_projectile_entity_ae38525094695db8ab564c5ae27711bb4}} 
+\index{entities::ProjectileEntity@{entities::ProjectileEntity}!getHitBoxSize@{getHitBoxSize}}
+\index{getHitBoxSize@{getHitBoxSize}!entities::ProjectileEntity@{entities::ProjectileEntity}}
+\doxysubsubsection{\texorpdfstring{getHitBoxSize()}{getHitBoxSize()}}
+{\footnotesize\ttfamily \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} entities\+::\+Projectile\+Entity\+::get\+Hit\+Box\+Size (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [override]}, {\ttfamily [protected]}, {\ttfamily [virtual]}}
+
+
+
+half hitbox size 
+
+\begin{DoxyReturn}{Returns}
+hitbox size as a vector 
+\end{DoxyReturn}
+
+
+Implements \mbox{\hyperlink{classentities_1_1_entity_a9cd7ba81ddbd978b8f43e9f10e97492f}{entities\+::\+Entity}}.
+
+
+
+Definition at line 36 of file Projectile\+Entity.\+cpp.
+
+\mbox{\Hypertarget{classentities_1_1_projectile_entity_a7e67fe629e1ef7115fd2a0cae8b1efc0}\label{classentities_1_1_projectile_entity_a7e67fe629e1ef7115fd2a0cae8b1efc0}} 
+\index{entities::ProjectileEntity@{entities::ProjectileEntity}!getTexture@{getTexture}}
+\index{getTexture@{getTexture}!entities::ProjectileEntity@{entities::ProjectileEntity}}
+\doxysubsubsection{\texorpdfstring{getTexture()}{getTexture()}}
+{\footnotesize\ttfamily \mbox{\hyperlink{classrender_1_1_i_texture}{render\+::\+I\+Texture}} \& entities\+::\+Projectile\+Entity\+::get\+Texture (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [override]}, {\ttfamily [protected]}, {\ttfamily [virtual]}}
+
+
+
+the object\textquotesingle{}s texture 
+
+\begin{DoxyReturn}{Returns}
+the texture 
+\end{DoxyReturn}
+
+
+Implements \mbox{\hyperlink{classentities_1_1_entity_af01b796fb472ef3139aea41aeed36c76}{entities\+::\+Entity}}.
+
+
+
+Definition at line 9 of file Projectile\+Entity.\+cpp.
+
+\mbox{\Hypertarget{classentities_1_1_projectile_entity_a865c1a9527f67a3e5402a4fcf8baac98}\label{classentities_1_1_projectile_entity_a865c1a9527f67a3e5402a4fcf8baac98}} 
+\index{entities::ProjectileEntity@{entities::ProjectileEntity}!onCollide@{onCollide}}
+\index{onCollide@{onCollide}!entities::ProjectileEntity@{entities::ProjectileEntity}}
+\doxysubsubsection{\texorpdfstring{onCollide()}{onCollide()}}
+{\footnotesize\ttfamily bool entities\+::\+Projectile\+Entity\+::on\+Collide (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&}]{collision\+Vector,  }\item[{std\+::shared\+\_\+ptr$<$ \mbox{\hyperlink{classentities_1_1_entity}{Entity}} $>$ \&}]{who }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [protected]}, {\ttfamily [virtual]}}
+
+
+
+Determines, what will the projectile do, if it hit something. 
+
+
+\begin{DoxyParams}{Parameters}
+{\em collision\+Vector} & the collision vector \\
+\hline
+{\em who} & who is the affected entity \\
+\hline
+\end{DoxyParams}
+\begin{DoxyReturn}{Returns}
+is the projectile destroyed. 
+\end{DoxyReturn}
+
+
+Reimplemented in \mbox{\hyperlink{classentities_1_1_explosive_projectile_a7e0d880f0dfeb6570dc724a0739b1331}{entities\+::\+Explosive\+Projectile}}.
+
+
+
+Definition at line 27 of file Projectile\+Entity.\+cpp.
+
+\mbox{\Hypertarget{classentities_1_1_projectile_entity_ad88aa7e53b9a6671dab6132a8d58dbb5}\label{classentities_1_1_projectile_entity_ad88aa7e53b9a6671dab6132a8d58dbb5}} 
+\index{entities::ProjectileEntity@{entities::ProjectileEntity}!setVelocity@{setVelocity}}
+\index{setVelocity@{setVelocity}!entities::ProjectileEntity@{entities::ProjectileEntity}}
+\doxysubsubsection{\texorpdfstring{setVelocity()}{setVelocity()}}
+{\footnotesize\ttfamily void entities\+::\+Projectile\+Entity\+::set\+Velocity (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&}]{v }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}
+
+
+
+Set its velocity. 
+
+
+\begin{DoxyParams}{Parameters}
+{\em v} & velocity vector \\
+\hline
+\end{DoxyParams}
+
+
+Definition at line 62 of file Projectile\+Entity.\+cpp.
+
+\mbox{\Hypertarget{classentities_1_1_projectile_entity_a761f27885de02515edaf252e8a4162b5}\label{classentities_1_1_projectile_entity_a761f27885de02515edaf252e8a4162b5}} 
+\index{entities::ProjectileEntity@{entities::ProjectileEntity}!tick@{tick}}
+\index{tick@{tick}!entities::ProjectileEntity@{entities::ProjectileEntity}}
+\doxysubsubsection{\texorpdfstring{tick()}{tick()}}
+{\footnotesize\ttfamily void entities\+::\+Projectile\+Entity\+::tick (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{class_game_client}{Game\+Client}} \&}]{client,  }\item[{float}]{deltaT,  }\item[{std\+::shared\+\_\+ptr$<$ \mbox{\hyperlink{classentities_1_1_entity}{Entity}} $>$ \&}]{shared\+\_\+this }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [override]}, {\ttfamily [virtual]}}
+
+
+
+\mbox{\hyperlink{classentities_1_1_entity}{Entity}} tick multiple times per sec. 
+
+
+\begin{DoxyParams}{Parameters}
+{\em client} & the game client object \\
+\hline
+{\em deltaT} & how long take a tick \\
+\hline
+{\em shared\+\_\+this} & this as a shared\+\_\+ptr \\
+\hline
+\end{DoxyParams}
+
+
+Reimplemented from \mbox{\hyperlink{classentities_1_1_entity_a0440674bf90ae83d9a26aa4b0ac8309e}{entities\+::\+Entity}}.
+
+
+
+Definition at line 43 of file Projectile\+Entity.\+cpp.
+
+
+
+\doxysubsection{Member Data Documentation}
+\mbox{\Hypertarget{classentities_1_1_projectile_entity_ad4325b9194e4c76e68f27857226eefd8}\label{classentities_1_1_projectile_entity_ad4325b9194e4c76e68f27857226eefd8}} 
+\index{entities::ProjectileEntity@{entities::ProjectileEntity}!damageValue@{damageValue}}
+\index{damageValue@{damageValue}!entities::ProjectileEntity@{entities::ProjectileEntity}}
+\doxysubsubsection{\texorpdfstring{damageValue}{damageValue}}
+{\footnotesize\ttfamily int entities\+::\+Projectile\+Entity\+::damage\+Value\hspace{0.3cm}{\ttfamily [protected]}}
+
+
+
+Definition at line 28 of file Projectile\+Entity.\+h.
+
+\mbox{\Hypertarget{classentities_1_1_projectile_entity_aedd28853ca6fd6f1b8fa45dbe6b90c63}\label{classentities_1_1_projectile_entity_aedd28853ca6fd6f1b8fa45dbe6b90c63}} 
+\index{entities::ProjectileEntity@{entities::ProjectileEntity}!projectile@{projectile}}
+\index{projectile@{projectile}!entities::ProjectileEntity@{entities::ProjectileEntity}}
+\doxysubsubsection{\texorpdfstring{projectile}{projectile}}
+{\footnotesize\ttfamily \mbox{\hyperlink{classrender_1_1_simple_sprite}{render\+::\+Simple\+Sprite}} entities\+::\+Projectile\+Entity\+::projectile\hspace{0.3cm}{\ttfamily [static]}}
+
+
+
+Definition at line 13 of file Projectile\+Entity.\+h.
+
+\mbox{\Hypertarget{classentities_1_1_projectile_entity_ab01d1aa4b66b21481d07f7777bfb2ca3}\label{classentities_1_1_projectile_entity_ab01d1aa4b66b21481d07f7777bfb2ca3}} 
+\index{entities::ProjectileEntity@{entities::ProjectileEntity}!user@{user}}
+\index{user@{user}!entities::ProjectileEntity@{entities::ProjectileEntity}}
+\doxysubsubsection{\texorpdfstring{user}{user}}
+{\footnotesize\ttfamily std\+::shared\+\_\+ptr$<$\mbox{\hyperlink{classentities_1_1_entity}{Entity}}$>$ entities\+::\+Projectile\+Entity\+::user\hspace{0.3cm}{\ttfamily [protected]}}
+
+
+
+Who is the owner of this bullet. needed to not damage the user. 
+
+
+
+Definition at line 25 of file Projectile\+Entity.\+h.
+
+\mbox{\Hypertarget{classentities_1_1_projectile_entity_a29cb43b58d34f32f18986185bf8691f8}\label{classentities_1_1_projectile_entity_a29cb43b58d34f32f18986185bf8691f8}} 
+\index{entities::ProjectileEntity@{entities::ProjectileEntity}!velocity@{velocity}}
+\index{velocity@{velocity}!entities::ProjectileEntity@{entities::ProjectileEntity}}
+\doxysubsubsection{\texorpdfstring{velocity}{velocity}}
+{\footnotesize\ttfamily \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} entities\+::\+Projectile\+Entity\+::velocity\hspace{0.3cm}{\ttfamily [protected]}}
+
+
+
+Definition at line 21 of file Projectile\+Entity.\+h.
+
+
+
+The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize}
+\item 
+C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\mbox{\hyperlink{_projectile_entity_8h}{Projectile\+Entity.\+h}}\item 
+C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\mbox{\hyperlink{_projectile_entity_8cpp}{Projectile\+Entity.\+cpp}}\end{DoxyCompactItemize}
diff --git a/doxy/latex/classentities_1_1_wall_entity.eps b/doxy/latex/classentities_1_1_wall_entity.eps
new file mode 100644
index 0000000000000000000000000000000000000000..aef7eca6bc788792aa231d27ddf339de0dcd94ed
--- /dev/null
+++ b/doxy/latex/classentities_1_1_wall_entity.eps
@@ -0,0 +1,197 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: ClassName
+%%Creator: Doxygen
+%%CreationDate: Time
+%%For: 
+%Magnification: 1.00
+%%Orientation: Portrait
+%%BoundingBox: 0 0 500 333.333344
+%%Pages: 0
+%%BeginSetup
+%%EndSetup
+%%EndComments
+
+% ----- variables -----
+
+/boxwidth 0 def
+/boxheight 40 def
+/fontheight 24 def
+/marginwidth 10 def
+/distx 20 def
+/disty 40 def
+/boundaspect 1.500000 def  % aspect ratio of the BoundingBox (width/height)
+/boundx 500 def
+/boundy boundx boundaspect div def
+/xspacing 0 def
+/yspacing 0 def
+/rows 2 def
+/cols 1 def
+/scalefactor 0 def
+/boxfont /Times-Roman findfont fontheight scalefont def
+
+% ----- procedures -----
+
+/dotted { [1 4] 0 setdash } def
+/dashed { [5] 0 setdash } def
+/solid  { [] 0 setdash } def
+
+/max % result = MAX(arg1,arg2)
+{
+  /a exch def
+  /b exch def
+  a b gt {a} {b} ifelse
+} def
+
+/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)
+{
+  0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max
+} def
+
+/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))
+{
+  /str exch def
+  /boxwidth boxwidth str stringwidth pop max def
+} def
+
+/box % draws a box with text 'arg1' at grid pos (arg2,arg3)
+{ gsave
+  2 setlinewidth
+  newpath
+  exch xspacing mul xoffset add
+  exch yspacing mul
+  moveto
+  boxwidth 0 rlineto 
+  0 boxheight rlineto 
+  boxwidth neg 0 rlineto 
+  0 boxheight neg rlineto 
+  closepath
+  dup stringwidth pop neg boxwidth add 2 div
+  boxheight fontheight 2 div sub 2 div
+  rmoveto show stroke
+  grestore
+} def  
+
+/mark
+{ newpath
+  exch xspacing mul xoffset add boxwidth add
+  exch yspacing mul
+  moveto
+  0 boxheight 4 div rlineto
+  boxheight neg 4 div boxheight neg 4 div rlineto
+  closepath
+  eofill
+  stroke
+} def
+
+/arrow
+{ newpath
+  moveto
+  3 -8 rlineto
+  -6 0 rlineto
+  3 8 rlineto
+  closepath
+  eofill
+  stroke
+} def
+
+/out % draws an output connector for the block at (arg1,arg2)
+{
+  newpath
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul boxheight add
+  /y exch def
+  /x exch def
+  x y moveto
+  0 disty 2 div rlineto 
+  stroke
+  1 eq { x y disty 2 div add arrow } if
+} def
+
+/in % draws an input connector for the block at (arg1,arg2)
+{
+  newpath
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul disty 2 div sub
+  /y exch def
+  /x exch def
+  x y moveto
+  0 disty 2 div rlineto
+  stroke
+  1 eq { x y disty 2 div add arrow } if
+} def
+
+/hedge
+{
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul boxheight 2 div sub
+  /y exch def
+  /x exch def
+  newpath
+  x y moveto
+  boxwidth 2 div distx add 0 rlineto
+  stroke
+  1 eq
+  { newpath x boxwidth 2 div distx add add y moveto
+    -8 3 rlineto
+    0 -6 rlineto
+    8 3 rlineto
+    closepath
+    eofill
+    stroke
+  } if
+} def
+
+/vedge
+{
+  /ye exch def
+  /ys exch def
+  /xs exch def
+  newpath
+  xs xspacing mul xoffset add boxwidth 2 div add dup
+  ys yspacing mul boxheight 2 div sub
+  moveto
+  ye yspacing mul boxheight 2 div sub
+  lineto
+  stroke
+} def
+
+/conn % connections the blocks from col 'arg1' to 'arg2' of row 'arg3'
+{
+  /ys exch def
+  /xe exch def
+  /xs exch def
+  newpath
+  xs xspacing mul xoffset add boxwidth 2 div add
+  ys yspacing mul disty 2 div sub
+  moveto
+  xspacing xe xs sub mul 0
+  rlineto
+  stroke
+} def
+
+% ----- main ------
+
+boxfont setfont
+1 boundaspect scale
+(entities::WallEntity) cw
+(entities::Entity) cw
+/boxwidth boxwidth marginwidth 2 mul add def
+/xspacing boxwidth distx add def
+/yspacing boxheight disty add def
+/scalefactor 
+  boxwidth cols mul distx cols 1 sub mul add
+  boxheight rows mul disty rows 1 sub mul add boundaspect mul 
+  max def
+boundx scalefactor div boundy scalefactor div scale
+
+% ----- classes -----
+
+ (entities::WallEntity) 0.000000 0.000000 box
+ (entities::Entity) 0.000000 1.000000 box
+
+% ----- relations -----
+
+solid
+0 0.000000 0.000000 out
+solid
+1 0.000000 1.000000 in
diff --git a/doxy/latex/classentities_1_1_wall_entity.tex b/doxy/latex/classentities_1_1_wall_entity.tex
new file mode 100644
index 0000000000000000000000000000000000000000..5b70bd6e2a40bed3c9f15651504a8676cdbca965
--- /dev/null
+++ b/doxy/latex/classentities_1_1_wall_entity.tex
@@ -0,0 +1,226 @@
+\hypertarget{classentities_1_1_wall_entity}{}\doxysection{entities\+::Wall\+Entity Class Reference}
+\label{classentities_1_1_wall_entity}\index{entities::WallEntity@{entities::WallEntity}}
+
+
+Just a stupid wall, it doesn\textquotesingle{}t do much, can\textquotesingle{}t be killed...  
+
+
+
+
+{\ttfamily \#include $<$Wall\+Entity.\+h$>$}
+
+Inheritance diagram for entities\+::Wall\+Entity\+:\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[height=2.000000cm]{classentities_1_1_wall_entity}
+\end{center}
+\end{figure}
+\doxysubsection*{Public Member Functions}
+\begin{DoxyCompactItemize}
+\item 
+\mbox{\hyperlink{classentities_1_1_wall_entity_a109600cce4cd0514d320c14b4f8f4813}{Wall\+Entity}} (const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&\mbox{\hyperlink{classentities_1_1_entity_a04f9c2febe8d435138a07eb2f48ba96b}{pos}}, \mbox{\hyperlink{classrender_1_1_wall_texture}{render\+::\+Wall\+Texture}} \&texture=\mbox{\hyperlink{classentities_1_1_wall_entity_a73c32014a207a92fc1a837f0dda83eb8}{simple\+Wall\+Texture}})
+\item 
+void \mbox{\hyperlink{classentities_1_1_wall_entity_ad66ed8002d8082035bd3b7df07ff45b5}{init}} (\mbox{\hyperlink{class_game_client}{Game\+Client}} \&client) override
+\begin{DoxyCompactList}\small\item\em Init, before tick, used to calculate neighbours. \end{DoxyCompactList}\item 
+bool \mbox{\hyperlink{classentities_1_1_wall_entity_a0cd908003450361a7c08d2c7c83d21dc}{damage}} (int damage, \mbox{\hyperlink{classentities_1_1_entity}{Entity}} \&attacker) override
+\begin{DoxyCompactList}\small\item\em something damage this \end{DoxyCompactList}\item 
+virtual char \mbox{\hyperlink{classentities_1_1_wall_entity_af799f9675cdf4acadfcf9d9616d36e1b}{get\+Neighbour\+ID}} () const
+\begin{DoxyCompactList}\small\item\em Accessor for neighbour\+ID. \end{DoxyCompactList}\end{DoxyCompactItemize}
+\doxysubsection*{Static Public Attributes}
+\begin{DoxyCompactItemize}
+\item 
+static \mbox{\hyperlink{classrender_1_1_wall_texture}{render\+::\+Wall\+Texture}} \mbox{\hyperlink{classentities_1_1_wall_entity_a73c32014a207a92fc1a837f0dda83eb8}{simple\+Wall\+Texture}}
+\item 
+static \mbox{\hyperlink{classrender_1_1_wall_texture}{render\+::\+Wall\+Texture}} \mbox{\hyperlink{classentities_1_1_wall_entity_a3006e4856a24086bdd28b7b353b159ff}{simple\+Green\+Wall\+Texture}}
+\end{DoxyCompactItemize}
+\doxysubsection*{Protected Member Functions}
+\begin{DoxyCompactItemize}
+\item 
+virtual void \mbox{\hyperlink{classentities_1_1_wall_entity_a8d65d65453803e731cd9aa112d1f0447}{update\+Neighbours}} (\mbox{\hyperlink{class_game_client}{Game\+Client}} \&client)
+\begin{DoxyCompactList}\small\item\em Calculate the neighbour id. \end{DoxyCompactList}\item 
+\mbox{\hyperlink{classrender_1_1_i_texture}{render\+::\+I\+Texture}} \& \mbox{\hyperlink{classentities_1_1_wall_entity_a4b6c55275f06a30dac07c2dc5452e602}{get\+Texture}} () override
+\begin{DoxyCompactList}\small\item\em the object\textquotesingle{}s texture \end{DoxyCompactList}\item 
+\mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \mbox{\hyperlink{classentities_1_1_wall_entity_afd4863a311190a59cdf7574798ac3f2d}{get\+Hit\+Box\+Size}} () const override
+\begin{DoxyCompactList}\small\item\em half hitbox size \end{DoxyCompactList}\end{DoxyCompactItemize}
+\doxysubsection*{Additional Inherited Members}
+
+
+\doxysubsection{Detailed Description}
+Just a stupid wall, it doesn\textquotesingle{}t do much, can\textquotesingle{}t be killed... 
+
+Definition at line 11 of file Wall\+Entity.\+h.
+
+
+
+\doxysubsection{Constructor \& Destructor Documentation}
+\mbox{\Hypertarget{classentities_1_1_wall_entity_a109600cce4cd0514d320c14b4f8f4813}\label{classentities_1_1_wall_entity_a109600cce4cd0514d320c14b4f8f4813}} 
+\index{entities::WallEntity@{entities::WallEntity}!WallEntity@{WallEntity}}
+\index{WallEntity@{WallEntity}!entities::WallEntity@{entities::WallEntity}}
+\doxysubsubsection{\texorpdfstring{WallEntity()}{WallEntity()}}
+{\footnotesize\ttfamily entities\+::\+Wall\+Entity\+::\+Wall\+Entity (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&}]{pos,  }\item[{\mbox{\hyperlink{classrender_1_1_wall_texture}{render\+::\+Wall\+Texture}} \&}]{texture = {\ttfamily \mbox{\hyperlink{classentities_1_1_wall_entity_a73c32014a207a92fc1a837f0dda83eb8}{simple\+Wall\+Texture}}} }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [explicit]}}
+
+
+
+Definition at line 40 of file Wall\+Entity.\+cpp.
+
+
+
+\doxysubsection{Member Function Documentation}
+\mbox{\Hypertarget{classentities_1_1_wall_entity_a0cd908003450361a7c08d2c7c83d21dc}\label{classentities_1_1_wall_entity_a0cd908003450361a7c08d2c7c83d21dc}} 
+\index{entities::WallEntity@{entities::WallEntity}!damage@{damage}}
+\index{damage@{damage}!entities::WallEntity@{entities::WallEntity}}
+\doxysubsubsection{\texorpdfstring{damage()}{damage()}}
+{\footnotesize\ttfamily bool entities\+::\+Wall\+Entity\+::damage (\begin{DoxyParamCaption}\item[{int}]{damage,  }\item[{\mbox{\hyperlink{classentities_1_1_entity}{Entity}} \&}]{attacker }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [override]}, {\ttfamily [virtual]}}
+
+
+
+something damage this 
+
+
+\begin{DoxyParams}{Parameters}
+{\em damage} & how much damage should it take \\
+\hline
+{\em attacker} & who deal the damage. not the projectile, the entity \\
+\hline
+\end{DoxyParams}
+\begin{DoxyReturn}{Returns}
+did the entity take the damage or no (like a wall) 
+\end{DoxyReturn}
+
+
+Implements \mbox{\hyperlink{classentities_1_1_entity_af7fc9949fc50b1b31abb36a3d51b0597}{entities\+::\+Entity}}.
+
+
+
+Definition at line 43 of file Wall\+Entity.\+cpp.
+
+\mbox{\Hypertarget{classentities_1_1_wall_entity_afd4863a311190a59cdf7574798ac3f2d}\label{classentities_1_1_wall_entity_afd4863a311190a59cdf7574798ac3f2d}} 
+\index{entities::WallEntity@{entities::WallEntity}!getHitBoxSize@{getHitBoxSize}}
+\index{getHitBoxSize@{getHitBoxSize}!entities::WallEntity@{entities::WallEntity}}
+\doxysubsubsection{\texorpdfstring{getHitBoxSize()}{getHitBoxSize()}}
+{\footnotesize\ttfamily \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} entities\+::\+Wall\+Entity\+::get\+Hit\+Box\+Size (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [override]}, {\ttfamily [protected]}, {\ttfamily [virtual]}}
+
+
+
+half hitbox size 
+
+\begin{DoxyReturn}{Returns}
+hitbox size as a vector 
+\end{DoxyReturn}
+
+
+Implements \mbox{\hyperlink{classentities_1_1_entity_a9cd7ba81ddbd978b8f43e9f10e97492f}{entities\+::\+Entity}}.
+
+
+
+Definition at line 30 of file Wall\+Entity.\+cpp.
+
+\mbox{\Hypertarget{classentities_1_1_wall_entity_af799f9675cdf4acadfcf9d9616d36e1b}\label{classentities_1_1_wall_entity_af799f9675cdf4acadfcf9d9616d36e1b}} 
+\index{entities::WallEntity@{entities::WallEntity}!getNeighbourID@{getNeighbourID}}
+\index{getNeighbourID@{getNeighbourID}!entities::WallEntity@{entities::WallEntity}}
+\doxysubsubsection{\texorpdfstring{getNeighbourID()}{getNeighbourID()}}
+{\footnotesize\ttfamily char entities\+::\+Wall\+Entity\+::get\+Neighbour\+ID (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [virtual]}}
+
+
+
+Accessor for neighbour\+ID. 
+
+\begin{DoxyReturn}{Returns}
+42 
+\end{DoxyReturn}
+
+
+Definition at line 48 of file Wall\+Entity.\+cpp.
+
+\mbox{\Hypertarget{classentities_1_1_wall_entity_a4b6c55275f06a30dac07c2dc5452e602}\label{classentities_1_1_wall_entity_a4b6c55275f06a30dac07c2dc5452e602}} 
+\index{entities::WallEntity@{entities::WallEntity}!getTexture@{getTexture}}
+\index{getTexture@{getTexture}!entities::WallEntity@{entities::WallEntity}}
+\doxysubsubsection{\texorpdfstring{getTexture()}{getTexture()}}
+{\footnotesize\ttfamily \mbox{\hyperlink{classrender_1_1_i_texture}{render\+::\+I\+Texture}} \& entities\+::\+Wall\+Entity\+::get\+Texture (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [override]}, {\ttfamily [protected]}, {\ttfamily [virtual]}}
+
+
+
+the object\textquotesingle{}s texture 
+
+\begin{DoxyReturn}{Returns}
+the texture 
+\end{DoxyReturn}
+
+
+Implements \mbox{\hyperlink{classentities_1_1_entity_af01b796fb472ef3139aea41aeed36c76}{entities\+::\+Entity}}.
+
+
+
+Definition at line 25 of file Wall\+Entity.\+cpp.
+
+\mbox{\Hypertarget{classentities_1_1_wall_entity_ad66ed8002d8082035bd3b7df07ff45b5}\label{classentities_1_1_wall_entity_ad66ed8002d8082035bd3b7df07ff45b5}} 
+\index{entities::WallEntity@{entities::WallEntity}!init@{init}}
+\index{init@{init}!entities::WallEntity@{entities::WallEntity}}
+\doxysubsubsection{\texorpdfstring{init()}{init()}}
+{\footnotesize\ttfamily void entities\+::\+Wall\+Entity\+::init (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{class_game_client}{Game\+Client}} \&}]{client }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [override]}, {\ttfamily [virtual]}}
+
+
+
+Init, before tick, used to calculate neighbours. 
+
+
+\begin{DoxyParams}{Parameters}
+{\em client} & \\
+\hline
+\end{DoxyParams}
+
+
+Reimplemented from \mbox{\hyperlink{classentities_1_1_entity_afd80ddceccb36b87d0d80dcc7f88fc3b}{entities\+::\+Entity}}.
+
+
+
+Definition at line 35 of file Wall\+Entity.\+cpp.
+
+\mbox{\Hypertarget{classentities_1_1_wall_entity_a8d65d65453803e731cd9aa112d1f0447}\label{classentities_1_1_wall_entity_a8d65d65453803e731cd9aa112d1f0447}} 
+\index{entities::WallEntity@{entities::WallEntity}!updateNeighbours@{updateNeighbours}}
+\index{updateNeighbours@{updateNeighbours}!entities::WallEntity@{entities::WallEntity}}
+\doxysubsubsection{\texorpdfstring{updateNeighbours()}{updateNeighbours()}}
+{\footnotesize\ttfamily void entities\+::\+Wall\+Entity\+::update\+Neighbours (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{class_game_client}{Game\+Client}} \&}]{client }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [protected]}, {\ttfamily [virtual]}}
+
+
+
+Calculate the neighbour id. 
+
+
+\begin{DoxyParams}{Parameters}
+{\em client} & the cliet \\
+\hline
+\end{DoxyParams}
+
+
+Definition at line 8 of file Wall\+Entity.\+cpp.
+
+
+
+\doxysubsection{Member Data Documentation}
+\mbox{\Hypertarget{classentities_1_1_wall_entity_a3006e4856a24086bdd28b7b353b159ff}\label{classentities_1_1_wall_entity_a3006e4856a24086bdd28b7b353b159ff}} 
+\index{entities::WallEntity@{entities::WallEntity}!simpleGreenWallTexture@{simpleGreenWallTexture}}
+\index{simpleGreenWallTexture@{simpleGreenWallTexture}!entities::WallEntity@{entities::WallEntity}}
+\doxysubsubsection{\texorpdfstring{simpleGreenWallTexture}{simpleGreenWallTexture}}
+{\footnotesize\ttfamily \mbox{\hyperlink{classrender_1_1_wall_texture}{render\+::\+Wall\+Texture}} entities\+::\+Wall\+Entity\+::simple\+Green\+Wall\+Texture\hspace{0.3cm}{\ttfamily [static]}}
+
+
+
+Definition at line 15 of file Wall\+Entity.\+h.
+
+\mbox{\Hypertarget{classentities_1_1_wall_entity_a73c32014a207a92fc1a837f0dda83eb8}\label{classentities_1_1_wall_entity_a73c32014a207a92fc1a837f0dda83eb8}} 
+\index{entities::WallEntity@{entities::WallEntity}!simpleWallTexture@{simpleWallTexture}}
+\index{simpleWallTexture@{simpleWallTexture}!entities::WallEntity@{entities::WallEntity}}
+\doxysubsubsection{\texorpdfstring{simpleWallTexture}{simpleWallTexture}}
+{\footnotesize\ttfamily \mbox{\hyperlink{classrender_1_1_wall_texture}{render\+::\+Wall\+Texture}} entities\+::\+Wall\+Entity\+::simple\+Wall\+Texture\hspace{0.3cm}{\ttfamily [static]}}
+
+
+
+Definition at line 14 of file Wall\+Entity.\+h.
+
+
+
+The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize}
+\item 
+C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\mbox{\hyperlink{_wall_entity_8h}{Wall\+Entity.\+h}}\item 
+C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\mbox{\hyperlink{_wall_entity_8cpp}{Wall\+Entity.\+cpp}}\end{DoxyCompactItemize}
diff --git a/doxy/latex/classolc_1_1_decal.tex b/doxy/latex/classolc_1_1_decal.tex
new file mode 100644
index 0000000000000000000000000000000000000000..ecdac370c7610b0530033fc4938d893f8b5272f4
--- /dev/null
+++ b/doxy/latex/classolc_1_1_decal.tex
@@ -0,0 +1,109 @@
+\hypertarget{classolc_1_1_decal}{}\doxysection{olc\+::Decal Class Reference}
+\label{classolc_1_1_decal}\index{olc::Decal@{olc::Decal}}
+
+
+{\ttfamily \#include $<$olc\+Pixel\+Game\+Engine.\+h$>$}
+
+\doxysubsection*{Public Member Functions}
+\begin{DoxyCompactItemize}
+\item 
+\mbox{\hyperlink{classolc_1_1_decal_a5479fee995f05355026dafd8cadcac88}{Decal}} (\mbox{\hyperlink{classolc_1_1_sprite}{olc\+::\+Sprite}} $\ast$spr, bool filter=false, bool clamp=true)
+\item 
+\mbox{\hyperlink{classolc_1_1_decal_ade1e337e839cd254603e4d061c219cc5}{Decal}} (const uint32\+\_\+t n\+Existing\+Texture\+Resource, \mbox{\hyperlink{classolc_1_1_sprite}{olc\+::\+Sprite}} $\ast$spr)
+\item 
+virtual \mbox{\hyperlink{classolc_1_1_decal_a5c993dab5be43270dce30b44f1d3e50b}{$\sim$\+Decal}} ()
+\item 
+void \mbox{\hyperlink{classolc_1_1_decal_aac5ad6844f98fb3a8bce2f36adf02429}{Update}} ()
+\item 
+void \mbox{\hyperlink{classolc_1_1_decal_a4a3b893edbce4d416453f57c11754092}{Update\+Sprite}} ()
+\end{DoxyCompactItemize}
+\doxysubsection*{Public Attributes}
+\begin{DoxyCompactItemize}
+\item 
+int32\+\_\+t \mbox{\hyperlink{classolc_1_1_decal_a7cc798e0327ea4118c648b10e2d57986}{id}} = -\/1
+\item 
+\mbox{\hyperlink{classolc_1_1_sprite}{olc\+::\+Sprite}} $\ast$ \mbox{\hyperlink{classolc_1_1_decal_a93a1e2ae28aa587978e2a66b6328d66a}{sprite}} = nullptr
+\item 
+\mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \mbox{\hyperlink{classolc_1_1_decal_aff06190e3ca17446d373d5a93a3636c7}{v\+U\+V\+Scale}} = \{ 1.\+0f, 1.\+0f \}
+\end{DoxyCompactItemize}
+
+
+\doxysubsection{Detailed Description}
+
+
+Definition at line 736 of file olc\+Pixel\+Game\+Engine.\+h.
+
+
+
+\doxysubsection{Constructor \& Destructor Documentation}
+\mbox{\Hypertarget{classolc_1_1_decal_a5479fee995f05355026dafd8cadcac88}\label{classolc_1_1_decal_a5479fee995f05355026dafd8cadcac88}} 
+\index{olc::Decal@{olc::Decal}!Decal@{Decal}}
+\index{Decal@{Decal}!olc::Decal@{olc::Decal}}
+\doxysubsubsection{\texorpdfstring{Decal()}{Decal()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
+{\footnotesize\ttfamily olc\+::\+Decal\+::\+Decal (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{classolc_1_1_sprite}{olc\+::\+Sprite}} $\ast$}]{spr,  }\item[{bool}]{filter = {\ttfamily false},  }\item[{bool}]{clamp = {\ttfamily true} }\end{DoxyParamCaption})}
+
+\mbox{\Hypertarget{classolc_1_1_decal_ade1e337e839cd254603e4d061c219cc5}\label{classolc_1_1_decal_ade1e337e839cd254603e4d061c219cc5}} 
+\index{olc::Decal@{olc::Decal}!Decal@{Decal}}
+\index{Decal@{Decal}!olc::Decal@{olc::Decal}}
+\doxysubsubsection{\texorpdfstring{Decal()}{Decal()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
+{\footnotesize\ttfamily olc\+::\+Decal\+::\+Decal (\begin{DoxyParamCaption}\item[{const uint32\+\_\+t}]{n\+Existing\+Texture\+Resource,  }\item[{\mbox{\hyperlink{classolc_1_1_sprite}{olc\+::\+Sprite}} $\ast$}]{spr }\end{DoxyParamCaption})}
+
+\mbox{\Hypertarget{classolc_1_1_decal_a5c993dab5be43270dce30b44f1d3e50b}\label{classolc_1_1_decal_a5c993dab5be43270dce30b44f1d3e50b}} 
+\index{olc::Decal@{olc::Decal}!````~Decal@{$\sim$Decal}}
+\index{````~Decal@{$\sim$Decal}!olc::Decal@{olc::Decal}}
+\doxysubsubsection{\texorpdfstring{$\sim$Decal()}{~Decal()}}
+{\footnotesize\ttfamily virtual olc\+::\+Decal\+::$\sim$\+Decal (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}
+
+
+
+\doxysubsection{Member Function Documentation}
+\mbox{\Hypertarget{classolc_1_1_decal_aac5ad6844f98fb3a8bce2f36adf02429}\label{classolc_1_1_decal_aac5ad6844f98fb3a8bce2f36adf02429}} 
+\index{olc::Decal@{olc::Decal}!Update@{Update}}
+\index{Update@{Update}!olc::Decal@{olc::Decal}}
+\doxysubsubsection{\texorpdfstring{Update()}{Update()}}
+{\footnotesize\ttfamily void olc\+::\+Decal\+::\+Update (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}
+
+\mbox{\Hypertarget{classolc_1_1_decal_a4a3b893edbce4d416453f57c11754092}\label{classolc_1_1_decal_a4a3b893edbce4d416453f57c11754092}} 
+\index{olc::Decal@{olc::Decal}!UpdateSprite@{UpdateSprite}}
+\index{UpdateSprite@{UpdateSprite}!olc::Decal@{olc::Decal}}
+\doxysubsubsection{\texorpdfstring{UpdateSprite()}{UpdateSprite()}}
+{\footnotesize\ttfamily void olc\+::\+Decal\+::\+Update\+Sprite (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}
+
+
+
+\doxysubsection{Member Data Documentation}
+\mbox{\Hypertarget{classolc_1_1_decal_a7cc798e0327ea4118c648b10e2d57986}\label{classolc_1_1_decal_a7cc798e0327ea4118c648b10e2d57986}} 
+\index{olc::Decal@{olc::Decal}!id@{id}}
+\index{id@{id}!olc::Decal@{olc::Decal}}
+\doxysubsubsection{\texorpdfstring{id}{id}}
+{\footnotesize\ttfamily int32\+\_\+t olc\+::\+Decal\+::id = -\/1}
+
+
+
+Definition at line 746 of file olc\+Pixel\+Game\+Engine.\+h.
+
+\mbox{\Hypertarget{classolc_1_1_decal_a93a1e2ae28aa587978e2a66b6328d66a}\label{classolc_1_1_decal_a93a1e2ae28aa587978e2a66b6328d66a}} 
+\index{olc::Decal@{olc::Decal}!sprite@{sprite}}
+\index{sprite@{sprite}!olc::Decal@{olc::Decal}}
+\doxysubsubsection{\texorpdfstring{sprite}{sprite}}
+{\footnotesize\ttfamily \mbox{\hyperlink{classolc_1_1_sprite}{olc\+::\+Sprite}}$\ast$ olc\+::\+Decal\+::sprite = nullptr}
+
+
+
+Definition at line 747 of file olc\+Pixel\+Game\+Engine.\+h.
+
+\mbox{\Hypertarget{classolc_1_1_decal_aff06190e3ca17446d373d5a93a3636c7}\label{classolc_1_1_decal_aff06190e3ca17446d373d5a93a3636c7}} 
+\index{olc::Decal@{olc::Decal}!vUVScale@{vUVScale}}
+\index{vUVScale@{vUVScale}!olc::Decal@{olc::Decal}}
+\doxysubsubsection{\texorpdfstring{vUVScale}{vUVScale}}
+{\footnotesize\ttfamily \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} olc\+::\+Decal\+::v\+U\+V\+Scale = \{ 1.\+0f, 1.\+0f \}}
+
+
+
+Definition at line 748 of file olc\+Pixel\+Game\+Engine.\+h.
+
+
+
+The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize}
+\item 
+C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\mbox{\hyperlink{olc_pixel_game_engine_8h}{olc\+Pixel\+Game\+Engine.\+h}}\end{DoxyCompactItemize}
diff --git a/doxy/latex/classolc_1_1_image_loader.tex b/doxy/latex/classolc_1_1_image_loader.tex
new file mode 100644
index 0000000000000000000000000000000000000000..05491cca27327a9a484af13428b78881f118abfb
--- /dev/null
+++ b/doxy/latex/classolc_1_1_image_loader.tex
@@ -0,0 +1,59 @@
+\hypertarget{classolc_1_1_image_loader}{}\doxysection{olc\+::Image\+Loader Class Reference}
+\label{classolc_1_1_image_loader}\index{olc::ImageLoader@{olc::ImageLoader}}
+
+
+{\ttfamily \#include $<$olc\+Pixel\+Game\+Engine.\+h$>$}
+
+\doxysubsection*{Public Member Functions}
+\begin{DoxyCompactItemize}
+\item 
+\mbox{\hyperlink{classolc_1_1_image_loader_a7aa358a572ec995b530ca5b54829f044}{Image\+Loader}} ()=default
+\item 
+virtual \mbox{\hyperlink{classolc_1_1_image_loader_a680c0395200ceab209fb96c21cd8b883}{$\sim$\+Image\+Loader}} ()=default
+\item 
+virtual \mbox{\hyperlink{namespaceolc_a3d40e9b1c005602550230690b55ae87b}{olc\+::rcode}} \mbox{\hyperlink{classolc_1_1_image_loader_ac08c7387037c748a38598b6442974d81}{Load\+Image\+Resource}} (\mbox{\hyperlink{classolc_1_1_sprite}{olc\+::\+Sprite}} $\ast$spr, const std\+::string \&s\+Image\+File, \mbox{\hyperlink{classolc_1_1_resource_pack}{olc\+::\+Resource\+Pack}} $\ast$pack)=0
+\item 
+virtual \mbox{\hyperlink{namespaceolc_a3d40e9b1c005602550230690b55ae87b}{olc\+::rcode}} \mbox{\hyperlink{classolc_1_1_image_loader_addedde73c3a76c668a2954db36695f08}{Save\+Image\+Resource}} (\mbox{\hyperlink{classolc_1_1_sprite}{olc\+::\+Sprite}} $\ast$spr, const std\+::string \&s\+Image\+File)=0
+\end{DoxyCompactItemize}
+
+
+\doxysubsection{Detailed Description}
+
+
+Definition at line 683 of file olc\+Pixel\+Game\+Engine.\+h.
+
+
+
+\doxysubsection{Constructor \& Destructor Documentation}
+\mbox{\Hypertarget{classolc_1_1_image_loader_a7aa358a572ec995b530ca5b54829f044}\label{classolc_1_1_image_loader_a7aa358a572ec995b530ca5b54829f044}} 
+\index{olc::ImageLoader@{olc::ImageLoader}!ImageLoader@{ImageLoader}}
+\index{ImageLoader@{ImageLoader}!olc::ImageLoader@{olc::ImageLoader}}
+\doxysubsubsection{\texorpdfstring{ImageLoader()}{ImageLoader()}}
+{\footnotesize\ttfamily olc\+::\+Image\+Loader\+::\+Image\+Loader (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [default]}}
+
+\mbox{\Hypertarget{classolc_1_1_image_loader_a680c0395200ceab209fb96c21cd8b883}\label{classolc_1_1_image_loader_a680c0395200ceab209fb96c21cd8b883}} 
+\index{olc::ImageLoader@{olc::ImageLoader}!````~ImageLoader@{$\sim$ImageLoader}}
+\index{````~ImageLoader@{$\sim$ImageLoader}!olc::ImageLoader@{olc::ImageLoader}}
+\doxysubsubsection{\texorpdfstring{$\sim$ImageLoader()}{~ImageLoader()}}
+{\footnotesize\ttfamily virtual olc\+::\+Image\+Loader\+::$\sim$\+Image\+Loader (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}, {\ttfamily [default]}}
+
+
+
+\doxysubsection{Member Function Documentation}
+\mbox{\Hypertarget{classolc_1_1_image_loader_ac08c7387037c748a38598b6442974d81}\label{classolc_1_1_image_loader_ac08c7387037c748a38598b6442974d81}} 
+\index{olc::ImageLoader@{olc::ImageLoader}!LoadImageResource@{LoadImageResource}}
+\index{LoadImageResource@{LoadImageResource}!olc::ImageLoader@{olc::ImageLoader}}
+\doxysubsubsection{\texorpdfstring{LoadImageResource()}{LoadImageResource()}}
+{\footnotesize\ttfamily virtual \mbox{\hyperlink{namespaceolc_a3d40e9b1c005602550230690b55ae87b}{olc\+::rcode}} olc\+::\+Image\+Loader\+::\+Load\+Image\+Resource (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{classolc_1_1_sprite}{olc\+::\+Sprite}} $\ast$}]{spr,  }\item[{const std\+::string \&}]{s\+Image\+File,  }\item[{\mbox{\hyperlink{classolc_1_1_resource_pack}{olc\+::\+Resource\+Pack}} $\ast$}]{pack }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [pure virtual]}}
+
+\mbox{\Hypertarget{classolc_1_1_image_loader_addedde73c3a76c668a2954db36695f08}\label{classolc_1_1_image_loader_addedde73c3a76c668a2954db36695f08}} 
+\index{olc::ImageLoader@{olc::ImageLoader}!SaveImageResource@{SaveImageResource}}
+\index{SaveImageResource@{SaveImageResource}!olc::ImageLoader@{olc::ImageLoader}}
+\doxysubsubsection{\texorpdfstring{SaveImageResource()}{SaveImageResource()}}
+{\footnotesize\ttfamily virtual \mbox{\hyperlink{namespaceolc_a3d40e9b1c005602550230690b55ae87b}{olc\+::rcode}} olc\+::\+Image\+Loader\+::\+Save\+Image\+Resource (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{classolc_1_1_sprite}{olc\+::\+Sprite}} $\ast$}]{spr,  }\item[{const std\+::string \&}]{s\+Image\+File }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [pure virtual]}}
+
+
+
+The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize}
+\item 
+C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\mbox{\hyperlink{olc_pixel_game_engine_8h}{olc\+Pixel\+Game\+Engine.\+h}}\end{DoxyCompactItemize}
diff --git a/doxy/latex/classolc_1_1_p_g_e_x.eps b/doxy/latex/classolc_1_1_p_g_e_x.eps
new file mode 100644
index 0000000000000000000000000000000000000000..073e3c4a93055de7aaeb57a2166e18e489cf8b9f
--- /dev/null
+++ b/doxy/latex/classolc_1_1_p_g_e_x.eps
@@ -0,0 +1,203 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: ClassName
+%%Creator: Doxygen
+%%CreationDate: Time
+%%For: 
+%Magnification: 1.00
+%%Orientation: Portrait
+%%BoundingBox: 0 0 500 370.370361
+%%Pages: 0
+%%BeginSetup
+%%EndSetup
+%%EndComments
+
+% ----- variables -----
+
+/boxwidth 0 def
+/boxheight 40 def
+/fontheight 24 def
+/marginwidth 10 def
+/distx 20 def
+/disty 40 def
+/boundaspect 1.350000 def  % aspect ratio of the BoundingBox (width/height)
+/boundx 500 def
+/boundy boundx boundaspect div def
+/xspacing 0 def
+/yspacing 0 def
+/rows 3 def
+/cols 1 def
+/scalefactor 0 def
+/boxfont /Times-Roman findfont fontheight scalefont def
+
+% ----- procedures -----
+
+/dotted { [1 4] 0 setdash } def
+/dashed { [5] 0 setdash } def
+/solid  { [] 0 setdash } def
+
+/max % result = MAX(arg1,arg2)
+{
+  /a exch def
+  /b exch def
+  a b gt {a} {b} ifelse
+} def
+
+/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)
+{
+  0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max
+} def
+
+/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))
+{
+  /str exch def
+  /boxwidth boxwidth str stringwidth pop max def
+} def
+
+/box % draws a box with text 'arg1' at grid pos (arg2,arg3)
+{ gsave
+  2 setlinewidth
+  newpath
+  exch xspacing mul xoffset add
+  exch yspacing mul
+  moveto
+  boxwidth 0 rlineto 
+  0 boxheight rlineto 
+  boxwidth neg 0 rlineto 
+  0 boxheight neg rlineto 
+  closepath
+  dup stringwidth pop neg boxwidth add 2 div
+  boxheight fontheight 2 div sub 2 div
+  rmoveto show stroke
+  grestore
+} def  
+
+/mark
+{ newpath
+  exch xspacing mul xoffset add boxwidth add
+  exch yspacing mul
+  moveto
+  0 boxheight 4 div rlineto
+  boxheight neg 4 div boxheight neg 4 div rlineto
+  closepath
+  eofill
+  stroke
+} def
+
+/arrow
+{ newpath
+  moveto
+  3 -8 rlineto
+  -6 0 rlineto
+  3 8 rlineto
+  closepath
+  eofill
+  stroke
+} def
+
+/out % draws an output connector for the block at (arg1,arg2)
+{
+  newpath
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul boxheight add
+  /y exch def
+  /x exch def
+  x y moveto
+  0 disty 2 div rlineto 
+  stroke
+  1 eq { x y disty 2 div add arrow } if
+} def
+
+/in % draws an input connector for the block at (arg1,arg2)
+{
+  newpath
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul disty 2 div sub
+  /y exch def
+  /x exch def
+  x y moveto
+  0 disty 2 div rlineto
+  stroke
+  1 eq { x y disty 2 div add arrow } if
+} def
+
+/hedge
+{
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul boxheight 2 div sub
+  /y exch def
+  /x exch def
+  newpath
+  x y moveto
+  boxwidth 2 div distx add 0 rlineto
+  stroke
+  1 eq
+  { newpath x boxwidth 2 div distx add add y moveto
+    -8 3 rlineto
+    0 -6 rlineto
+    8 3 rlineto
+    closepath
+    eofill
+    stroke
+  } if
+} def
+
+/vedge
+{
+  /ye exch def
+  /ys exch def
+  /xs exch def
+  newpath
+  xs xspacing mul xoffset add boxwidth 2 div add dup
+  ys yspacing mul boxheight 2 div sub
+  moveto
+  ye yspacing mul boxheight 2 div sub
+  lineto
+  stroke
+} def
+
+/conn % connections the blocks from col 'arg1' to 'arg2' of row 'arg3'
+{
+  /ys exch def
+  /xe exch def
+  /xs exch def
+  newpath
+  xs xspacing mul xoffset add boxwidth 2 div add
+  ys yspacing mul disty 2 div sub
+  moveto
+  xspacing xe xs sub mul 0
+  rlineto
+  stroke
+} def
+
+% ----- main ------
+
+boxfont setfont
+1 boundaspect scale
+(olc::PGEX) cw
+(olc::TransformedView) cw
+(olc::TileTransformedView) cw
+/boxwidth boxwidth marginwidth 2 mul add def
+/xspacing boxwidth distx add def
+/yspacing boxheight disty add def
+/scalefactor 
+  boxwidth cols mul distx cols 1 sub mul add
+  boxheight rows mul disty rows 1 sub mul add boundaspect mul 
+  max def
+boundx scalefactor div boundy scalefactor div scale
+
+% ----- classes -----
+
+ (olc::PGEX) 0.000000 2.000000 box
+ (olc::TransformedView) 0.000000 1.000000 box
+ (olc::TileTransformedView) 0.000000 0.000000 box
+
+% ----- relations -----
+
+solid
+1 0.000000 1.250000 out
+solid
+0 0.000000 1.750000 in
+solid
+1 0.000000 0.250000 out
+solid
+0 0.000000 0.750000 in
diff --git a/doxy/latex/classolc_1_1_p_g_e_x.tex b/doxy/latex/classolc_1_1_p_g_e_x.tex
new file mode 100644
index 0000000000000000000000000000000000000000..7ce2ad8810062d336616cf1e302d7e5a33ab41ea
--- /dev/null
+++ b/doxy/latex/classolc_1_1_p_g_e_x.tex
@@ -0,0 +1,112 @@
+\hypertarget{classolc_1_1_p_g_e_x}{}\doxysection{olc\+::P\+G\+EX Class Reference}
+\label{classolc_1_1_p_g_e_x}\index{olc::PGEX@{olc::PGEX}}
+
+
+{\ttfamily \#include $<$olc\+Pixel\+Game\+Engine.\+h$>$}
+
+Inheritance diagram for olc\+::P\+G\+EX\+:\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[height=3.000000cm]{classolc_1_1_p_g_e_x}
+\end{center}
+\end{figure}
+\doxysubsection*{Public Member Functions}
+\begin{DoxyCompactItemize}
+\item 
+\mbox{\hyperlink{classolc_1_1_p_g_e_x_aae9dbde2ad7341482b9f911f23678d75}{P\+G\+EX}} (bool b\+Hook=false)
+\end{DoxyCompactItemize}
+\doxysubsection*{Protected Member Functions}
+\begin{DoxyCompactItemize}
+\item 
+virtual void \mbox{\hyperlink{classolc_1_1_p_g_e_x_a69c65b5d3a56f9a247e1bf15fd2e4035}{On\+Before\+User\+Create}} ()
+\item 
+virtual void \mbox{\hyperlink{classolc_1_1_p_g_e_x_a2a57a711518202708d2b0e586058348f}{On\+After\+User\+Create}} ()
+\item 
+virtual void \mbox{\hyperlink{classolc_1_1_p_g_e_x_a2573df22f1637314b976811714dea3fb}{On\+Before\+User\+Update}} (float \&f\+Elapsed\+Time)
+\item 
+virtual void \mbox{\hyperlink{classolc_1_1_p_g_e_x_a4d2dd7d685fb1c7d00d97aa15e3376b4}{On\+After\+User\+Update}} (float f\+Elapsed\+Time)
+\end{DoxyCompactItemize}
+\doxysubsection*{Static Protected Attributes}
+\begin{DoxyCompactItemize}
+\item 
+static \mbox{\hyperlink{classolc_1_1_pixel_game_engine}{Pixel\+Game\+Engine}} $\ast$ \mbox{\hyperlink{classolc_1_1_p_g_e_x_a032efdb84150a7cdd3cc9248860df316}{pge}}
+\end{DoxyCompactItemize}
+\doxysubsection*{Friends}
+\begin{DoxyCompactItemize}
+\item 
+class \mbox{\hyperlink{classolc_1_1_p_g_e_x_a3770265094ef2f9700ae97b8ee0fe282}{olc\+::\+Pixel\+Game\+Engine}}
+\end{DoxyCompactItemize}
+
+
+\doxysubsection{Detailed Description}
+
+
+Definition at line 1118 of file olc\+Pixel\+Game\+Engine.\+h.
+
+
+
+\doxysubsection{Constructor \& Destructor Documentation}
+\mbox{\Hypertarget{classolc_1_1_p_g_e_x_aae9dbde2ad7341482b9f911f23678d75}\label{classolc_1_1_p_g_e_x_aae9dbde2ad7341482b9f911f23678d75}} 
+\index{olc::PGEX@{olc::PGEX}!PGEX@{PGEX}}
+\index{PGEX@{PGEX}!olc::PGEX@{olc::PGEX}}
+\doxysubsubsection{\texorpdfstring{PGEX()}{PGEX()}}
+{\footnotesize\ttfamily olc\+::\+P\+G\+E\+X\+::\+P\+G\+EX (\begin{DoxyParamCaption}\item[{bool}]{b\+Hook = {\ttfamily false} }\end{DoxyParamCaption})}
+
+
+
+\doxysubsection{Member Function Documentation}
+\mbox{\Hypertarget{classolc_1_1_p_g_e_x_a2a57a711518202708d2b0e586058348f}\label{classolc_1_1_p_g_e_x_a2a57a711518202708d2b0e586058348f}} 
+\index{olc::PGEX@{olc::PGEX}!OnAfterUserCreate@{OnAfterUserCreate}}
+\index{OnAfterUserCreate@{OnAfterUserCreate}!olc::PGEX@{olc::PGEX}}
+\doxysubsubsection{\texorpdfstring{OnAfterUserCreate()}{OnAfterUserCreate()}}
+{\footnotesize\ttfamily virtual void olc\+::\+P\+G\+E\+X\+::\+On\+After\+User\+Create (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [protected]}, {\ttfamily [virtual]}}
+
+\mbox{\Hypertarget{classolc_1_1_p_g_e_x_a4d2dd7d685fb1c7d00d97aa15e3376b4}\label{classolc_1_1_p_g_e_x_a4d2dd7d685fb1c7d00d97aa15e3376b4}} 
+\index{olc::PGEX@{olc::PGEX}!OnAfterUserUpdate@{OnAfterUserUpdate}}
+\index{OnAfterUserUpdate@{OnAfterUserUpdate}!olc::PGEX@{olc::PGEX}}
+\doxysubsubsection{\texorpdfstring{OnAfterUserUpdate()}{OnAfterUserUpdate()}}
+{\footnotesize\ttfamily virtual void olc\+::\+P\+G\+E\+X\+::\+On\+After\+User\+Update (\begin{DoxyParamCaption}\item[{float}]{f\+Elapsed\+Time }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [protected]}, {\ttfamily [virtual]}}
+
+\mbox{\Hypertarget{classolc_1_1_p_g_e_x_a69c65b5d3a56f9a247e1bf15fd2e4035}\label{classolc_1_1_p_g_e_x_a69c65b5d3a56f9a247e1bf15fd2e4035}} 
+\index{olc::PGEX@{olc::PGEX}!OnBeforeUserCreate@{OnBeforeUserCreate}}
+\index{OnBeforeUserCreate@{OnBeforeUserCreate}!olc::PGEX@{olc::PGEX}}
+\doxysubsubsection{\texorpdfstring{OnBeforeUserCreate()}{OnBeforeUserCreate()}}
+{\footnotesize\ttfamily virtual void olc\+::\+P\+G\+E\+X\+::\+On\+Before\+User\+Create (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [protected]}, {\ttfamily [virtual]}}
+
+\mbox{\Hypertarget{classolc_1_1_p_g_e_x_a2573df22f1637314b976811714dea3fb}\label{classolc_1_1_p_g_e_x_a2573df22f1637314b976811714dea3fb}} 
+\index{olc::PGEX@{olc::PGEX}!OnBeforeUserUpdate@{OnBeforeUserUpdate}}
+\index{OnBeforeUserUpdate@{OnBeforeUserUpdate}!olc::PGEX@{olc::PGEX}}
+\doxysubsubsection{\texorpdfstring{OnBeforeUserUpdate()}{OnBeforeUserUpdate()}}
+{\footnotesize\ttfamily virtual void olc\+::\+P\+G\+E\+X\+::\+On\+Before\+User\+Update (\begin{DoxyParamCaption}\item[{float \&}]{f\+Elapsed\+Time }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [protected]}, {\ttfamily [virtual]}}
+
+
+
+\doxysubsection{Friends And Related Function Documentation}
+\mbox{\Hypertarget{classolc_1_1_p_g_e_x_a3770265094ef2f9700ae97b8ee0fe282}\label{classolc_1_1_p_g_e_x_a3770265094ef2f9700ae97b8ee0fe282}} 
+\index{olc::PGEX@{olc::PGEX}!olc::PixelGameEngine@{olc::PixelGameEngine}}
+\index{olc::PixelGameEngine@{olc::PixelGameEngine}!olc::PGEX@{olc::PGEX}}
+\doxysubsubsection{\texorpdfstring{olc::PixelGameEngine}{olc::PixelGameEngine}}
+{\footnotesize\ttfamily friend class \mbox{\hyperlink{classolc_1_1_pixel_game_engine}{olc\+::\+Pixel\+Game\+Engine}}\hspace{0.3cm}{\ttfamily [friend]}}
+
+
+
+Definition at line 1120 of file olc\+Pixel\+Game\+Engine.\+h.
+
+
+
+\doxysubsection{Member Data Documentation}
+\mbox{\Hypertarget{classolc_1_1_p_g_e_x_a032efdb84150a7cdd3cc9248860df316}\label{classolc_1_1_p_g_e_x_a032efdb84150a7cdd3cc9248860df316}} 
+\index{olc::PGEX@{olc::PGEX}!pge@{pge}}
+\index{pge@{pge}!olc::PGEX@{olc::PGEX}}
+\doxysubsubsection{\texorpdfstring{pge}{pge}}
+{\footnotesize\ttfamily \mbox{\hyperlink{classolc_1_1_pixel_game_engine}{Pixel\+Game\+Engine}}$\ast$ olc\+::\+P\+G\+E\+X\+::pge\hspace{0.3cm}{\ttfamily [static]}, {\ttfamily [protected]}}
+
+
+
+Definition at line 1131 of file olc\+Pixel\+Game\+Engine.\+h.
+
+
+
+The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize}
+\item 
+C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\mbox{\hyperlink{olc_pixel_game_engine_8h}{olc\+Pixel\+Game\+Engine.\+h}}\end{DoxyCompactItemize}
diff --git a/doxy/latex/classolc_1_1_pixel_game_engine.eps b/doxy/latex/classolc_1_1_pixel_game_engine.eps
new file mode 100644
index 0000000000000000000000000000000000000000..16a38605460bbe6b74c74a8eb1a1a1b7e8ca0a4e
--- /dev/null
+++ b/doxy/latex/classolc_1_1_pixel_game_engine.eps
@@ -0,0 +1,197 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: ClassName
+%%Creator: Doxygen
+%%CreationDate: Time
+%%For: 
+%Magnification: 1.00
+%%Orientation: Portrait
+%%BoundingBox: 0 0 500 283.687958
+%%Pages: 0
+%%BeginSetup
+%%EndSetup
+%%EndComments
+
+% ----- variables -----
+
+/boxwidth 0 def
+/boxheight 40 def
+/fontheight 24 def
+/marginwidth 10 def
+/distx 20 def
+/disty 40 def
+/boundaspect 1.762500 def  % aspect ratio of the BoundingBox (width/height)
+/boundx 500 def
+/boundy boundx boundaspect div def
+/xspacing 0 def
+/yspacing 0 def
+/rows 2 def
+/cols 1 def
+/scalefactor 0 def
+/boxfont /Times-Roman findfont fontheight scalefont def
+
+% ----- procedures -----
+
+/dotted { [1 4] 0 setdash } def
+/dashed { [5] 0 setdash } def
+/solid  { [] 0 setdash } def
+
+/max % result = MAX(arg1,arg2)
+{
+  /a exch def
+  /b exch def
+  a b gt {a} {b} ifelse
+} def
+
+/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)
+{
+  0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max
+} def
+
+/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))
+{
+  /str exch def
+  /boxwidth boxwidth str stringwidth pop max def
+} def
+
+/box % draws a box with text 'arg1' at grid pos (arg2,arg3)
+{ gsave
+  2 setlinewidth
+  newpath
+  exch xspacing mul xoffset add
+  exch yspacing mul
+  moveto
+  boxwidth 0 rlineto 
+  0 boxheight rlineto 
+  boxwidth neg 0 rlineto 
+  0 boxheight neg rlineto 
+  closepath
+  dup stringwidth pop neg boxwidth add 2 div
+  boxheight fontheight 2 div sub 2 div
+  rmoveto show stroke
+  grestore
+} def  
+
+/mark
+{ newpath
+  exch xspacing mul xoffset add boxwidth add
+  exch yspacing mul
+  moveto
+  0 boxheight 4 div rlineto
+  boxheight neg 4 div boxheight neg 4 div rlineto
+  closepath
+  eofill
+  stroke
+} def
+
+/arrow
+{ newpath
+  moveto
+  3 -8 rlineto
+  -6 0 rlineto
+  3 8 rlineto
+  closepath
+  eofill
+  stroke
+} def
+
+/out % draws an output connector for the block at (arg1,arg2)
+{
+  newpath
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul boxheight add
+  /y exch def
+  /x exch def
+  x y moveto
+  0 disty 2 div rlineto 
+  stroke
+  1 eq { x y disty 2 div add arrow } if
+} def
+
+/in % draws an input connector for the block at (arg1,arg2)
+{
+  newpath
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul disty 2 div sub
+  /y exch def
+  /x exch def
+  x y moveto
+  0 disty 2 div rlineto
+  stroke
+  1 eq { x y disty 2 div add arrow } if
+} def
+
+/hedge
+{
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul boxheight 2 div sub
+  /y exch def
+  /x exch def
+  newpath
+  x y moveto
+  boxwidth 2 div distx add 0 rlineto
+  stroke
+  1 eq
+  { newpath x boxwidth 2 div distx add add y moveto
+    -8 3 rlineto
+    0 -6 rlineto
+    8 3 rlineto
+    closepath
+    eofill
+    stroke
+  } if
+} def
+
+/vedge
+{
+  /ye exch def
+  /ys exch def
+  /xs exch def
+  newpath
+  xs xspacing mul xoffset add boxwidth 2 div add dup
+  ys yspacing mul boxheight 2 div sub
+  moveto
+  ye yspacing mul boxheight 2 div sub
+  lineto
+  stroke
+} def
+
+/conn % connections the blocks from col 'arg1' to 'arg2' of row 'arg3'
+{
+  /ys exch def
+  /xe exch def
+  /xs exch def
+  newpath
+  xs xspacing mul xoffset add boxwidth 2 div add
+  ys yspacing mul disty 2 div sub
+  moveto
+  xspacing xe xs sub mul 0
+  rlineto
+  stroke
+} def
+
+% ----- main ------
+
+boxfont setfont
+1 boundaspect scale
+(olc::PixelGameEngine) cw
+(GameClient) cw
+/boxwidth boxwidth marginwidth 2 mul add def
+/xspacing boxwidth distx add def
+/yspacing boxheight disty add def
+/scalefactor 
+  boxwidth cols mul distx cols 1 sub mul add
+  boxheight rows mul disty rows 1 sub mul add boundaspect mul 
+  max def
+boundx scalefactor div boundy scalefactor div scale
+
+% ----- classes -----
+
+ (olc::PixelGameEngine) 0.000000 1.000000 box
+ (GameClient) 0.000000 0.000000 box
+
+% ----- relations -----
+
+solid
+1 0.000000 0.250000 out
+solid
+0 0.000000 0.750000 in
diff --git a/doxy/latex/classolc_1_1_pixel_game_engine.tex b/doxy/latex/classolc_1_1_pixel_game_engine.tex
new file mode 100644
index 0000000000000000000000000000000000000000..9f2e5224ee8f6ae4425eac8198f24900f040f200
--- /dev/null
+++ b/doxy/latex/classolc_1_1_pixel_game_engine.tex
@@ -0,0 +1,909 @@
+\hypertarget{classolc_1_1_pixel_game_engine}{}\doxysection{olc\+::Pixel\+Game\+Engine Class Reference}
+\label{classolc_1_1_pixel_game_engine}\index{olc::PixelGameEngine@{olc::PixelGameEngine}}
+
+
+{\ttfamily \#include $<$olc\+Pixel\+Game\+Engine.\+h$>$}
+
+Inheritance diagram for olc\+::Pixel\+Game\+Engine\+:\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[height=2.000000cm]{classolc_1_1_pixel_game_engine}
+\end{center}
+\end{figure}
+\doxysubsection*{Public Member Functions}
+\begin{DoxyCompactItemize}
+\item 
+\mbox{\hyperlink{classolc_1_1_pixel_game_engine_afe9d685732305246c3fcb361ae3c4bc6}{Pixel\+Game\+Engine}} ()
+\item 
+virtual \mbox{\hyperlink{classolc_1_1_pixel_game_engine_a423d90134c297f7b9f1834a136071b19}{$\sim$\+Pixel\+Game\+Engine}} ()
+\item 
+\mbox{\hyperlink{namespaceolc_a3d40e9b1c005602550230690b55ae87b}{olc\+::rcode}} \mbox{\hyperlink{classolc_1_1_pixel_game_engine_af1a9cf3b38dda2071b7ec18868ee1ccd}{Construct}} (int32\+\_\+t screen\+\_\+w, int32\+\_\+t screen\+\_\+h, int32\+\_\+t pixel\+\_\+w, int32\+\_\+t pixel\+\_\+h, bool full\+\_\+screen=false, bool vsync=false, bool cohesion=false)
+\item 
+\mbox{\hyperlink{namespaceolc_a3d40e9b1c005602550230690b55ae87b}{olc\+::rcode}} \mbox{\hyperlink{classolc_1_1_pixel_game_engine_a8e8848aa1c743a1ec2cdaa14c87e5cde}{Start}} ()
+\item 
+virtual bool \mbox{\hyperlink{classolc_1_1_pixel_game_engine_a6a33b6ff7cd23dfd05b34416865fb5c3}{On\+User\+Create}} ()
+\item 
+virtual bool \mbox{\hyperlink{classolc_1_1_pixel_game_engine_af9379a3db341b0acb410ea543e30fdd1}{On\+User\+Update}} (float f\+Elapsed\+Time)
+\item 
+virtual bool \mbox{\hyperlink{classolc_1_1_pixel_game_engine_ad4fbf979865fb1f08250ea379f2de669}{On\+User\+Destroy}} ()
+\item 
+bool \mbox{\hyperlink{classolc_1_1_pixel_game_engine_a92192402b5d499ab8b230dfb9393f3b7}{Is\+Focused}} () const
+\item 
+\mbox{\hyperlink{structolc_1_1_h_w_button}{H\+W\+Button}} \mbox{\hyperlink{classolc_1_1_pixel_game_engine_a27cb4cb68d5e1ca7df8014d66221269e}{Get\+Key}} (\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7}{Key}} k) const
+\item 
+\mbox{\hyperlink{structolc_1_1_h_w_button}{H\+W\+Button}} \mbox{\hyperlink{classolc_1_1_pixel_game_engine_abdf9f5d70c9e24ab9358a8dd07474105}{Get\+Mouse}} (uint32\+\_\+t b) const
+\item 
+int32\+\_\+t \mbox{\hyperlink{classolc_1_1_pixel_game_engine_a2ec1d2a1f3777338fb4388c620344a34}{Get\+MouseX}} () const
+\item 
+int32\+\_\+t \mbox{\hyperlink{classolc_1_1_pixel_game_engine_a8dde80c07547240f5e72b4f2fcd89668}{Get\+MouseY}} () const
+\item 
+int32\+\_\+t \mbox{\hyperlink{classolc_1_1_pixel_game_engine_a9640286e4a7cd03c6f545b1df7373269}{Get\+Mouse\+Wheel}} () const
+\item 
+const \mbox{\hyperlink{namespaceolc_a3c42697361e8a28424bcf8415aba3564}{olc\+::vi2d}} \& \mbox{\hyperlink{classolc_1_1_pixel_game_engine_a54b5141da371af51541874dd68e4e6a2}{Get\+Window\+Mouse}} () const
+\item 
+const \mbox{\hyperlink{namespaceolc_a3c42697361e8a28424bcf8415aba3564}{olc\+::vi2d}} \& \mbox{\hyperlink{classolc_1_1_pixel_game_engine_af11fb390dbc5a3168c26fe911690dcbe}{Get\+Mouse\+Pos}} () const
+\item 
+int32\+\_\+t \mbox{\hyperlink{classolc_1_1_pixel_game_engine_aa3b458d05eab503d9918cfd2d383a45c}{Screen\+Width}} () const
+\item 
+int32\+\_\+t \mbox{\hyperlink{classolc_1_1_pixel_game_engine_abbbee4578ffa6b844c04c1af363052af}{Screen\+Height}} () const
+\item 
+int32\+\_\+t \mbox{\hyperlink{classolc_1_1_pixel_game_engine_a45d918f65f5fee13e654878d8271326b}{Get\+Draw\+Target\+Width}} () const
+\item 
+int32\+\_\+t \mbox{\hyperlink{classolc_1_1_pixel_game_engine_a4ee3dbff01900d71e62bfe499b1c83c3}{Get\+Draw\+Target\+Height}} () const
+\item 
+\mbox{\hyperlink{classolc_1_1_sprite}{olc\+::\+Sprite}} $\ast$ \mbox{\hyperlink{classolc_1_1_pixel_game_engine_a5fd95bd9571bc3ed3fd5d7d110e48cff}{Get\+Draw\+Target}} () const
+\item 
+void \mbox{\hyperlink{classolc_1_1_pixel_game_engine_abd403468f57f7665d56e202da8de8e76}{Set\+Screen\+Size}} (int w, int h)
+\item 
+void \mbox{\hyperlink{classolc_1_1_pixel_game_engine_a70b6a145d7ab0c8857000a72ce4d4a70}{Set\+Draw\+Target}} (\mbox{\hyperlink{classolc_1_1_sprite}{Sprite}} $\ast$target)
+\item 
+uint32\+\_\+t \mbox{\hyperlink{classolc_1_1_pixel_game_engine_a89d27938d71d49b42a20307444147697}{Get\+F\+PS}} () const
+\item 
+float \mbox{\hyperlink{classolc_1_1_pixel_game_engine_af881473291c52d849dbef155e359b27c}{Get\+Elapsed\+Time}} () const
+\item 
+const \mbox{\hyperlink{namespaceolc_a3c42697361e8a28424bcf8415aba3564}{olc\+::vi2d}} \& \mbox{\hyperlink{classolc_1_1_pixel_game_engine_aee10e917aeb1ce4625561d71126e0a7d}{Get\+Window\+Size}} () const
+\item 
+const \mbox{\hyperlink{namespaceolc_a3c42697361e8a28424bcf8415aba3564}{olc\+::vi2d}} \& \mbox{\hyperlink{classolc_1_1_pixel_game_engine_a721fb4cfac75f76c6d5832415fccbe61}{Get\+Pixel\+Size}} () const
+\item 
+const \mbox{\hyperlink{namespaceolc_a3c42697361e8a28424bcf8415aba3564}{olc\+::vi2d}} \& \mbox{\hyperlink{classolc_1_1_pixel_game_engine_a5602d50220bd7edbd77fc67eaa981ce5}{Get\+Screen\+Pixel\+Size}} () const
+\item 
+void \mbox{\hyperlink{classolc_1_1_pixel_game_engine_a5842c1087a70c95a7ff96d53f28b7bab}{Set\+Draw\+Target}} (uint8\+\_\+t layer)
+\item 
+void \mbox{\hyperlink{classolc_1_1_pixel_game_engine_a1e3453e2a118596fa04a961f66c6fd46}{Enable\+Layer}} (uint8\+\_\+t layer, bool b)
+\item 
+void \mbox{\hyperlink{classolc_1_1_pixel_game_engine_a0e1ddc993ef65dfe00f2bbcf59e535ad}{Set\+Layer\+Offset}} (uint8\+\_\+t layer, const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&offset)
+\item 
+void \mbox{\hyperlink{classolc_1_1_pixel_game_engine_a9fed21eddcebeb743472d8b9eb1e3ece}{Set\+Layer\+Offset}} (uint8\+\_\+t layer, float x, float y)
+\item 
+void \mbox{\hyperlink{classolc_1_1_pixel_game_engine_af8fbe005b4069ed1de8e0347b72ebc30}{Set\+Layer\+Scale}} (uint8\+\_\+t layer, const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&scale)
+\item 
+void \mbox{\hyperlink{classolc_1_1_pixel_game_engine_a409825b0147e25c0d4c05fb0aa1f6273}{Set\+Layer\+Scale}} (uint8\+\_\+t layer, float x, float y)
+\item 
+void \mbox{\hyperlink{classolc_1_1_pixel_game_engine_a7d7c04245161782d5f5c48d3d62ff7a7}{Set\+Layer\+Tint}} (uint8\+\_\+t layer, const \mbox{\hyperlink{structolc_1_1_pixel}{olc\+::\+Pixel}} \&tint)
+\item 
+void \mbox{\hyperlink{classolc_1_1_pixel_game_engine_a40a88ddb3800e59121f05b06fd64dbfd}{Set\+Layer\+Custom\+Render\+Function}} (uint8\+\_\+t layer, std\+::function$<$ void()$>$ f)
+\item 
+std\+::vector$<$ \mbox{\hyperlink{structolc_1_1_layer_desc}{Layer\+Desc}} $>$ \& \mbox{\hyperlink{classolc_1_1_pixel_game_engine_aac31baad6daf55b926f6add9c44a5591}{Get\+Layers}} ()
+\item 
+uint32\+\_\+t \mbox{\hyperlink{classolc_1_1_pixel_game_engine_ae15ffa0503e2893aad7001aa2f5769b7}{Create\+Layer}} ()
+\item 
+void \mbox{\hyperlink{classolc_1_1_pixel_game_engine_ae4a3d1aaa40761986389966ab927ef32}{Set\+Pixel\+Mode}} (\mbox{\hyperlink{structolc_1_1_pixel_ae9012164940526ddb09b217dbbddfd65}{Pixel\+::\+Mode}} m)
+\item 
+\mbox{\hyperlink{structolc_1_1_pixel_ae9012164940526ddb09b217dbbddfd65}{Pixel\+::\+Mode}} \mbox{\hyperlink{classolc_1_1_pixel_game_engine_ad4f95a449dc09a2650ec771e6fa83049}{Get\+Pixel\+Mode}} ()
+\item 
+void \mbox{\hyperlink{classolc_1_1_pixel_game_engine_a9aa31ae4e1735efa72f3ea17fb51b2ef}{Set\+Pixel\+Mode}} (std\+::function$<$ \mbox{\hyperlink{structolc_1_1_pixel}{olc\+::\+Pixel}}(const int x, const int y, const \mbox{\hyperlink{structolc_1_1_pixel}{olc\+::\+Pixel}} \&p\+Source, const \mbox{\hyperlink{structolc_1_1_pixel}{olc\+::\+Pixel}} \&p\+Dest)$>$ pixel\+Mode)
+\item 
+void \mbox{\hyperlink{classolc_1_1_pixel_game_engine_ab0726b7758bc1bf7f7de30369076b8e7}{Set\+Pixel\+Blend}} (float f\+Blend)
+\item 
+virtual bool \mbox{\hyperlink{classolc_1_1_pixel_game_engine_a95ab046b4b0843565bddd0e009a25569}{Draw}} (int32\+\_\+t x, int32\+\_\+t y, \mbox{\hyperlink{structolc_1_1_pixel}{Pixel}} p=\mbox{\hyperlink{namespaceolc_ae3de4726bf87f2d74693e62d76816db1}{olc\+::\+W\+H\+I\+TE}})
+\item 
+bool \mbox{\hyperlink{classolc_1_1_pixel_game_engine_ad7bd70d2c3d0bc5bbb0991fa4695a4e9}{Draw}} (const \mbox{\hyperlink{namespaceolc_a3c42697361e8a28424bcf8415aba3564}{olc\+::vi2d}} \&pos, \mbox{\hyperlink{structolc_1_1_pixel}{Pixel}} p=\mbox{\hyperlink{namespaceolc_ae3de4726bf87f2d74693e62d76816db1}{olc\+::\+W\+H\+I\+TE}})
+\item 
+void \mbox{\hyperlink{classolc_1_1_pixel_game_engine_a131877968123c843374f079814503d22}{Draw\+Line}} (int32\+\_\+t x1, int32\+\_\+t y1, int32\+\_\+t x2, int32\+\_\+t y2, \mbox{\hyperlink{structolc_1_1_pixel}{Pixel}} p=\mbox{\hyperlink{namespaceolc_ae3de4726bf87f2d74693e62d76816db1}{olc\+::\+W\+H\+I\+TE}}, uint32\+\_\+t pattern=0x\+F\+F\+F\+F\+F\+F\+FF)
+\item 
+void \mbox{\hyperlink{classolc_1_1_pixel_game_engine_ac24457d32db7d8acf0661c6de57be7a8}{Draw\+Line}} (const \mbox{\hyperlink{namespaceolc_a3c42697361e8a28424bcf8415aba3564}{olc\+::vi2d}} \&pos1, const \mbox{\hyperlink{namespaceolc_a3c42697361e8a28424bcf8415aba3564}{olc\+::vi2d}} \&pos2, \mbox{\hyperlink{structolc_1_1_pixel}{Pixel}} p=\mbox{\hyperlink{namespaceolc_ae3de4726bf87f2d74693e62d76816db1}{olc\+::\+W\+H\+I\+TE}}, uint32\+\_\+t pattern=0x\+F\+F\+F\+F\+F\+F\+FF)
+\item 
+void \mbox{\hyperlink{classolc_1_1_pixel_game_engine_a2ce3e34fd633acdc22b8dc2c8d25f86c}{Draw\+Circle}} (int32\+\_\+t x, int32\+\_\+t y, int32\+\_\+t radius, \mbox{\hyperlink{structolc_1_1_pixel}{Pixel}} p=\mbox{\hyperlink{namespaceolc_ae3de4726bf87f2d74693e62d76816db1}{olc\+::\+W\+H\+I\+TE}}, uint8\+\_\+t mask=0x\+FF)
+\item 
+void \mbox{\hyperlink{classolc_1_1_pixel_game_engine_a0016377c9188719462724f523b3a6334}{Draw\+Circle}} (const \mbox{\hyperlink{namespaceolc_a3c42697361e8a28424bcf8415aba3564}{olc\+::vi2d}} \&pos, int32\+\_\+t radius, \mbox{\hyperlink{structolc_1_1_pixel}{Pixel}} p=\mbox{\hyperlink{namespaceolc_ae3de4726bf87f2d74693e62d76816db1}{olc\+::\+W\+H\+I\+TE}}, uint8\+\_\+t mask=0x\+FF)
+\item 
+void \mbox{\hyperlink{classolc_1_1_pixel_game_engine_a483f56606fbbf3ab4850554491a853bd}{Fill\+Circle}} (int32\+\_\+t x, int32\+\_\+t y, int32\+\_\+t radius, \mbox{\hyperlink{structolc_1_1_pixel}{Pixel}} p=\mbox{\hyperlink{namespaceolc_ae3de4726bf87f2d74693e62d76816db1}{olc\+::\+W\+H\+I\+TE}})
+\item 
+void \mbox{\hyperlink{classolc_1_1_pixel_game_engine_a169b1c8ca3116ac2338785b8ffe87954}{Fill\+Circle}} (const \mbox{\hyperlink{namespaceolc_a3c42697361e8a28424bcf8415aba3564}{olc\+::vi2d}} \&pos, int32\+\_\+t radius, \mbox{\hyperlink{structolc_1_1_pixel}{Pixel}} p=\mbox{\hyperlink{namespaceolc_ae3de4726bf87f2d74693e62d76816db1}{olc\+::\+W\+H\+I\+TE}})
+\item 
+void \mbox{\hyperlink{classolc_1_1_pixel_game_engine_a220f523e520e317f5656c4d3df777163}{Draw\+Rect}} (int32\+\_\+t x, int32\+\_\+t y, int32\+\_\+t w, int32\+\_\+t h, \mbox{\hyperlink{structolc_1_1_pixel}{Pixel}} p=\mbox{\hyperlink{namespaceolc_ae3de4726bf87f2d74693e62d76816db1}{olc\+::\+W\+H\+I\+TE}})
+\item 
+void \mbox{\hyperlink{classolc_1_1_pixel_game_engine_ac8536bf173a396cf78f952ab66fe6156}{Draw\+Rect}} (const \mbox{\hyperlink{namespaceolc_a3c42697361e8a28424bcf8415aba3564}{olc\+::vi2d}} \&pos, const \mbox{\hyperlink{namespaceolc_a3c42697361e8a28424bcf8415aba3564}{olc\+::vi2d}} \&size, \mbox{\hyperlink{structolc_1_1_pixel}{Pixel}} p=\mbox{\hyperlink{namespaceolc_ae3de4726bf87f2d74693e62d76816db1}{olc\+::\+W\+H\+I\+TE}})
+\item 
+void \mbox{\hyperlink{classolc_1_1_pixel_game_engine_a6b5e218bb4360f27a470f9e821721331}{Fill\+Rect}} (int32\+\_\+t x, int32\+\_\+t y, int32\+\_\+t w, int32\+\_\+t h, \mbox{\hyperlink{structolc_1_1_pixel}{Pixel}} p=\mbox{\hyperlink{namespaceolc_ae3de4726bf87f2d74693e62d76816db1}{olc\+::\+W\+H\+I\+TE}})
+\item 
+void \mbox{\hyperlink{classolc_1_1_pixel_game_engine_ae225f7027e20fe0f45a8190a992981cc}{Fill\+Rect}} (const \mbox{\hyperlink{namespaceolc_a3c42697361e8a28424bcf8415aba3564}{olc\+::vi2d}} \&pos, const \mbox{\hyperlink{namespaceolc_a3c42697361e8a28424bcf8415aba3564}{olc\+::vi2d}} \&size, \mbox{\hyperlink{structolc_1_1_pixel}{Pixel}} p=\mbox{\hyperlink{namespaceolc_ae3de4726bf87f2d74693e62d76816db1}{olc\+::\+W\+H\+I\+TE}})
+\item 
+void \mbox{\hyperlink{classolc_1_1_pixel_game_engine_a2bddba9e808a8702f6af354007302c16}{Draw\+Triangle}} (int32\+\_\+t x1, int32\+\_\+t y1, int32\+\_\+t x2, int32\+\_\+t y2, int32\+\_\+t x3, int32\+\_\+t y3, \mbox{\hyperlink{structolc_1_1_pixel}{Pixel}} p=\mbox{\hyperlink{namespaceolc_ae3de4726bf87f2d74693e62d76816db1}{olc\+::\+W\+H\+I\+TE}})
+\item 
+void \mbox{\hyperlink{classolc_1_1_pixel_game_engine_aafe21db2127f56670b5f5f089adced71}{Draw\+Triangle}} (const \mbox{\hyperlink{namespaceolc_a3c42697361e8a28424bcf8415aba3564}{olc\+::vi2d}} \&pos1, const \mbox{\hyperlink{namespaceolc_a3c42697361e8a28424bcf8415aba3564}{olc\+::vi2d}} \&pos2, const \mbox{\hyperlink{namespaceolc_a3c42697361e8a28424bcf8415aba3564}{olc\+::vi2d}} \&pos3, \mbox{\hyperlink{structolc_1_1_pixel}{Pixel}} p=\mbox{\hyperlink{namespaceolc_ae3de4726bf87f2d74693e62d76816db1}{olc\+::\+W\+H\+I\+TE}})
+\item 
+void \mbox{\hyperlink{classolc_1_1_pixel_game_engine_ad31abffe6c4d0b864b8f7762c33b7a7d}{Fill\+Triangle}} (int32\+\_\+t x1, int32\+\_\+t y1, int32\+\_\+t x2, int32\+\_\+t y2, int32\+\_\+t x3, int32\+\_\+t y3, \mbox{\hyperlink{structolc_1_1_pixel}{Pixel}} p=\mbox{\hyperlink{namespaceolc_ae3de4726bf87f2d74693e62d76816db1}{olc\+::\+W\+H\+I\+TE}})
+\item 
+void \mbox{\hyperlink{classolc_1_1_pixel_game_engine_a091224d5937210726d25c8cdeb4a951e}{Fill\+Triangle}} (const \mbox{\hyperlink{namespaceolc_a3c42697361e8a28424bcf8415aba3564}{olc\+::vi2d}} \&pos1, const \mbox{\hyperlink{namespaceolc_a3c42697361e8a28424bcf8415aba3564}{olc\+::vi2d}} \&pos2, const \mbox{\hyperlink{namespaceolc_a3c42697361e8a28424bcf8415aba3564}{olc\+::vi2d}} \&pos3, \mbox{\hyperlink{structolc_1_1_pixel}{Pixel}} p=\mbox{\hyperlink{namespaceolc_ae3de4726bf87f2d74693e62d76816db1}{olc\+::\+W\+H\+I\+TE}})
+\item 
+void \mbox{\hyperlink{classolc_1_1_pixel_game_engine_a5bae460b03f2837e39fdee3a0bbb6f99}{Draw\+Sprite}} (int32\+\_\+t x, int32\+\_\+t y, \mbox{\hyperlink{classolc_1_1_sprite}{Sprite}} $\ast$sprite, uint32\+\_\+t scale=1, uint8\+\_\+t flip=\mbox{\hyperlink{classolc_1_1_sprite_ad0d1976d2060997f5cd99eb284a5dc24a6ad338b4e63faacfbed68b020c3a0c0c}{olc\+::\+Sprite\+::\+N\+O\+NE}})
+\item 
+void \mbox{\hyperlink{classolc_1_1_pixel_game_engine_adcf00714f6f13ed5ad256e2102084177}{Draw\+Sprite}} (const \mbox{\hyperlink{namespaceolc_a3c42697361e8a28424bcf8415aba3564}{olc\+::vi2d}} \&pos, \mbox{\hyperlink{classolc_1_1_sprite}{Sprite}} $\ast$sprite, uint32\+\_\+t scale=1, uint8\+\_\+t flip=\mbox{\hyperlink{classolc_1_1_sprite_ad0d1976d2060997f5cd99eb284a5dc24a6ad338b4e63faacfbed68b020c3a0c0c}{olc\+::\+Sprite\+::\+N\+O\+NE}})
+\item 
+void \mbox{\hyperlink{classolc_1_1_pixel_game_engine_ab777dd885946b2dba5e8bef894c6868c}{Draw\+Partial\+Sprite}} (int32\+\_\+t x, int32\+\_\+t y, \mbox{\hyperlink{classolc_1_1_sprite}{Sprite}} $\ast$sprite, int32\+\_\+t ox, int32\+\_\+t oy, int32\+\_\+t w, int32\+\_\+t h, uint32\+\_\+t scale=1, uint8\+\_\+t flip=\mbox{\hyperlink{classolc_1_1_sprite_ad0d1976d2060997f5cd99eb284a5dc24a6ad338b4e63faacfbed68b020c3a0c0c}{olc\+::\+Sprite\+::\+N\+O\+NE}})
+\item 
+void \mbox{\hyperlink{classolc_1_1_pixel_game_engine_aecfcfec384cf4eb56ab89f92df4ff288}{Draw\+Partial\+Sprite}} (const \mbox{\hyperlink{namespaceolc_a3c42697361e8a28424bcf8415aba3564}{olc\+::vi2d}} \&pos, \mbox{\hyperlink{classolc_1_1_sprite}{Sprite}} $\ast$sprite, const \mbox{\hyperlink{namespaceolc_a3c42697361e8a28424bcf8415aba3564}{olc\+::vi2d}} \&sourcepos, const \mbox{\hyperlink{namespaceolc_a3c42697361e8a28424bcf8415aba3564}{olc\+::vi2d}} \&size, uint32\+\_\+t scale=1, uint8\+\_\+t flip=\mbox{\hyperlink{classolc_1_1_sprite_ad0d1976d2060997f5cd99eb284a5dc24a6ad338b4e63faacfbed68b020c3a0c0c}{olc\+::\+Sprite\+::\+N\+O\+NE}})
+\item 
+void \mbox{\hyperlink{classolc_1_1_pixel_game_engine_ac29d79dedde0b2187f9f9ccbbc33fd0b}{Draw\+String}} (int32\+\_\+t x, int32\+\_\+t y, const std\+::string \&s\+Text, \mbox{\hyperlink{structolc_1_1_pixel}{Pixel}} col=\mbox{\hyperlink{namespaceolc_ae3de4726bf87f2d74693e62d76816db1}{olc\+::\+W\+H\+I\+TE}}, uint32\+\_\+t scale=1)
+\item 
+void \mbox{\hyperlink{classolc_1_1_pixel_game_engine_ae099b13b38e5b02ffd31ad34a703cee5}{Draw\+String}} (const \mbox{\hyperlink{namespaceolc_a3c42697361e8a28424bcf8415aba3564}{olc\+::vi2d}} \&pos, const std\+::string \&s\+Text, \mbox{\hyperlink{structolc_1_1_pixel}{Pixel}} col=\mbox{\hyperlink{namespaceolc_ae3de4726bf87f2d74693e62d76816db1}{olc\+::\+W\+H\+I\+TE}}, uint32\+\_\+t scale=1)
+\item 
+\mbox{\hyperlink{namespaceolc_a3c42697361e8a28424bcf8415aba3564}{olc\+::vi2d}} \mbox{\hyperlink{classolc_1_1_pixel_game_engine_aa70121ffb85733f8ea2e7e5d0b4b311b}{Get\+Text\+Size}} (const std\+::string \&s)
+\item 
+void \mbox{\hyperlink{classolc_1_1_pixel_game_engine_a1ddca999be34411764bb12d2a15cc021}{Draw\+String\+Prop}} (int32\+\_\+t x, int32\+\_\+t y, const std\+::string \&s\+Text, \mbox{\hyperlink{structolc_1_1_pixel}{Pixel}} col=\mbox{\hyperlink{namespaceolc_ae3de4726bf87f2d74693e62d76816db1}{olc\+::\+W\+H\+I\+TE}}, uint32\+\_\+t scale=1)
+\item 
+void \mbox{\hyperlink{classolc_1_1_pixel_game_engine_a161ef8177257c371741d12cbc4818cf6}{Draw\+String\+Prop}} (const \mbox{\hyperlink{namespaceolc_a3c42697361e8a28424bcf8415aba3564}{olc\+::vi2d}} \&pos, const std\+::string \&s\+Text, \mbox{\hyperlink{structolc_1_1_pixel}{Pixel}} col=\mbox{\hyperlink{namespaceolc_ae3de4726bf87f2d74693e62d76816db1}{olc\+::\+W\+H\+I\+TE}}, uint32\+\_\+t scale=1)
+\item 
+\mbox{\hyperlink{namespaceolc_a3c42697361e8a28424bcf8415aba3564}{olc\+::vi2d}} \mbox{\hyperlink{classolc_1_1_pixel_game_engine_ab282eddb9b8fe14d01311c8613f79e84}{Get\+Text\+Size\+Prop}} (const std\+::string \&s)
+\item 
+void \mbox{\hyperlink{classolc_1_1_pixel_game_engine_a27ee96acff2c74d47f0cb78493aac756}{Set\+Decal\+Mode}} (const \mbox{\hyperlink{namespaceolc_aeda642f63378f868193c28e8613138ca}{olc\+::\+Decal\+Mode}} \&mode)
+\item 
+void \mbox{\hyperlink{classolc_1_1_pixel_game_engine_a5b676590555cab61db67804417c6f25f}{Draw\+Decal}} (const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&pos, \mbox{\hyperlink{classolc_1_1_decal}{olc\+::\+Decal}} $\ast$decal, const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&scale=\{ 1.\+0f, 1.\+0f \}, const \mbox{\hyperlink{structolc_1_1_pixel}{olc\+::\+Pixel}} \&tint=\mbox{\hyperlink{namespaceolc_ae3de4726bf87f2d74693e62d76816db1}{olc\+::\+W\+H\+I\+TE}})
+\item 
+void \mbox{\hyperlink{classolc_1_1_pixel_game_engine_a8bae37cf84b215e9e0416f058241aeba}{Draw\+Partial\+Decal}} (const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&pos, \mbox{\hyperlink{classolc_1_1_decal}{olc\+::\+Decal}} $\ast$decal, const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&source\+\_\+pos, const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&source\+\_\+size, const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&scale=\{ 1.\+0f, 1.\+0f \}, const \mbox{\hyperlink{structolc_1_1_pixel}{olc\+::\+Pixel}} \&tint=\mbox{\hyperlink{namespaceolc_ae3de4726bf87f2d74693e62d76816db1}{olc\+::\+W\+H\+I\+TE}})
+\item 
+void \mbox{\hyperlink{classolc_1_1_pixel_game_engine_a1b757070353b8f9238c229e42d33bbb5}{Draw\+Partial\+Decal}} (const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&pos, const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&size, \mbox{\hyperlink{classolc_1_1_decal}{olc\+::\+Decal}} $\ast$decal, const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&source\+\_\+pos, const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&source\+\_\+size, const \mbox{\hyperlink{structolc_1_1_pixel}{olc\+::\+Pixel}} \&tint=\mbox{\hyperlink{namespaceolc_ae3de4726bf87f2d74693e62d76816db1}{olc\+::\+W\+H\+I\+TE}})
+\item 
+void \mbox{\hyperlink{classolc_1_1_pixel_game_engine_a26d7073d87bb19f15d5ade6bb58e8e2d}{Draw\+Explicit\+Decal}} (\mbox{\hyperlink{classolc_1_1_decal}{olc\+::\+Decal}} $\ast$decal, const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} $\ast$pos, const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} $\ast$uv, const \mbox{\hyperlink{structolc_1_1_pixel}{olc\+::\+Pixel}} $\ast$col, uint32\+\_\+t elements=4)
+\item 
+void \mbox{\hyperlink{classolc_1_1_pixel_game_engine_a65098b403a403c45041599893429b550}{Draw\+Warped\+Decal}} (\mbox{\hyperlink{classolc_1_1_decal}{olc\+::\+Decal}} $\ast$decal, const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}}(\&pos)\mbox{[}4\mbox{]}, const \mbox{\hyperlink{structolc_1_1_pixel}{olc\+::\+Pixel}} \&tint=\mbox{\hyperlink{namespaceolc_ae3de4726bf87f2d74693e62d76816db1}{olc\+::\+W\+H\+I\+TE}})
+\item 
+void \mbox{\hyperlink{classolc_1_1_pixel_game_engine_ae6cc4bd274522bf9ac36054eda6c95ac}{Draw\+Warped\+Decal}} (\mbox{\hyperlink{classolc_1_1_decal}{olc\+::\+Decal}} $\ast$decal, const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} $\ast$pos, const \mbox{\hyperlink{structolc_1_1_pixel}{olc\+::\+Pixel}} \&tint=\mbox{\hyperlink{namespaceolc_ae3de4726bf87f2d74693e62d76816db1}{olc\+::\+W\+H\+I\+TE}})
+\item 
+void \mbox{\hyperlink{classolc_1_1_pixel_game_engine_a5174456bbdaace7cde233889f7ad6d72}{Draw\+Warped\+Decal}} (\mbox{\hyperlink{classolc_1_1_decal}{olc\+::\+Decal}} $\ast$decal, const std\+::array$<$ \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}}, 4 $>$ \&pos, const \mbox{\hyperlink{structolc_1_1_pixel}{olc\+::\+Pixel}} \&tint=\mbox{\hyperlink{namespaceolc_ae3de4726bf87f2d74693e62d76816db1}{olc\+::\+W\+H\+I\+TE}})
+\item 
+void \mbox{\hyperlink{classolc_1_1_pixel_game_engine_a78be0709345710435fdaef7bc14f5fb3}{Draw\+Partial\+Warped\+Decal}} (\mbox{\hyperlink{classolc_1_1_decal}{olc\+::\+Decal}} $\ast$decal, const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}}(\&pos)\mbox{[}4\mbox{]}, const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&source\+\_\+pos, const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&source\+\_\+size, const \mbox{\hyperlink{structolc_1_1_pixel}{olc\+::\+Pixel}} \&tint=\mbox{\hyperlink{namespaceolc_ae3de4726bf87f2d74693e62d76816db1}{olc\+::\+W\+H\+I\+TE}})
+\item 
+void \mbox{\hyperlink{classolc_1_1_pixel_game_engine_a5993da382c8e661655386a41ae874270}{Draw\+Partial\+Warped\+Decal}} (\mbox{\hyperlink{classolc_1_1_decal}{olc\+::\+Decal}} $\ast$decal, const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} $\ast$pos, const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&source\+\_\+pos, const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&source\+\_\+size, const \mbox{\hyperlink{structolc_1_1_pixel}{olc\+::\+Pixel}} \&tint=\mbox{\hyperlink{namespaceolc_ae3de4726bf87f2d74693e62d76816db1}{olc\+::\+W\+H\+I\+TE}})
+\item 
+void \mbox{\hyperlink{classolc_1_1_pixel_game_engine_aaccd68c61d88b13ffe1e93493f2a5b35}{Draw\+Partial\+Warped\+Decal}} (\mbox{\hyperlink{classolc_1_1_decal}{olc\+::\+Decal}} $\ast$decal, const std\+::array$<$ \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}}, 4 $>$ \&pos, const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&source\+\_\+pos, const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&source\+\_\+size, const \mbox{\hyperlink{structolc_1_1_pixel}{olc\+::\+Pixel}} \&tint=\mbox{\hyperlink{namespaceolc_ae3de4726bf87f2d74693e62d76816db1}{olc\+::\+W\+H\+I\+TE}})
+\item 
+void \mbox{\hyperlink{classolc_1_1_pixel_game_engine_ab9af9b6726271e83dd7e4b24583b4236}{Draw\+Rotated\+Decal}} (const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&pos, \mbox{\hyperlink{classolc_1_1_decal}{olc\+::\+Decal}} $\ast$decal, const float f\+Angle, const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&center=\{ 0.\+0f, 0.\+0f \}, const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&scale=\{ 1.\+0f, 1.\+0f \}, const \mbox{\hyperlink{structolc_1_1_pixel}{olc\+::\+Pixel}} \&tint=\mbox{\hyperlink{namespaceolc_ae3de4726bf87f2d74693e62d76816db1}{olc\+::\+W\+H\+I\+TE}})
+\item 
+void \mbox{\hyperlink{classolc_1_1_pixel_game_engine_aad3107bbad34e5792a9a35629e1fdbd0}{Draw\+Partial\+Rotated\+Decal}} (const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&pos, \mbox{\hyperlink{classolc_1_1_decal}{olc\+::\+Decal}} $\ast$decal, const float f\+Angle, const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&center, const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&source\+\_\+pos, const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&source\+\_\+size, const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&scale=\{ 1.\+0f, 1.\+0f \}, const \mbox{\hyperlink{structolc_1_1_pixel}{olc\+::\+Pixel}} \&tint=\mbox{\hyperlink{namespaceolc_ae3de4726bf87f2d74693e62d76816db1}{olc\+::\+W\+H\+I\+TE}})
+\item 
+void \mbox{\hyperlink{classolc_1_1_pixel_game_engine_a689d1828a93292702070b97fb14f5644}{Draw\+String\+Decal}} (const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&pos, const std\+::string \&s\+Text, const \mbox{\hyperlink{structolc_1_1_pixel}{Pixel}} col=\mbox{\hyperlink{namespaceolc_ae3de4726bf87f2d74693e62d76816db1}{olc\+::\+W\+H\+I\+TE}}, const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&scale=\{ 1.\+0f, 1.\+0f \})
+\item 
+void \mbox{\hyperlink{classolc_1_1_pixel_game_engine_a7392273f15fc09b3659b112564aa0dfa}{Draw\+String\+Prop\+Decal}} (const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&pos, const std\+::string \&s\+Text, const \mbox{\hyperlink{structolc_1_1_pixel}{Pixel}} col=\mbox{\hyperlink{namespaceolc_ae3de4726bf87f2d74693e62d76816db1}{olc\+::\+W\+H\+I\+TE}}, const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&scale=\{ 1.\+0f, 1.\+0f \})
+\item 
+void \mbox{\hyperlink{classolc_1_1_pixel_game_engine_a02a26bca44e04f075f517bdae6ac0e9d}{Fill\+Rect\+Decal}} (const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&pos, const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&size, const \mbox{\hyperlink{structolc_1_1_pixel}{olc\+::\+Pixel}} col=\mbox{\hyperlink{namespaceolc_ae3de4726bf87f2d74693e62d76816db1}{olc\+::\+W\+H\+I\+TE}})
+\item 
+void \mbox{\hyperlink{classolc_1_1_pixel_game_engine_a11d9ed8762b81e0bd6bbe4349255b1e8}{Gradient\+Fill\+Rect\+Decal}} (const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&pos, const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&size, const \mbox{\hyperlink{structolc_1_1_pixel}{olc\+::\+Pixel}} col\+TL, const \mbox{\hyperlink{structolc_1_1_pixel}{olc\+::\+Pixel}} col\+BL, const \mbox{\hyperlink{structolc_1_1_pixel}{olc\+::\+Pixel}} col\+BR, const \mbox{\hyperlink{structolc_1_1_pixel}{olc\+::\+Pixel}} col\+TR)
+\item 
+void \mbox{\hyperlink{classolc_1_1_pixel_game_engine_a40a7754338ea7b388ffa2383958d1f0b}{Draw\+Polygon\+Decal}} (\mbox{\hyperlink{classolc_1_1_decal}{olc\+::\+Decal}} $\ast$decal, const std\+::vector$<$ \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} $>$ \&pos, const std\+::vector$<$ \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} $>$ \&uv, const \mbox{\hyperlink{structolc_1_1_pixel}{olc\+::\+Pixel}} tint=\mbox{\hyperlink{namespaceolc_ae3de4726bf87f2d74693e62d76816db1}{olc\+::\+W\+H\+I\+TE}})
+\item 
+void \mbox{\hyperlink{classolc_1_1_pixel_game_engine_aeb70b40809815fab4e1017e25c7ab161}{Clear}} (\mbox{\hyperlink{structolc_1_1_pixel}{Pixel}} p)
+\item 
+void \mbox{\hyperlink{classolc_1_1_pixel_game_engine_aed9a3f6bd349e091728a329ee42932bf}{Clear\+Buffer}} (\mbox{\hyperlink{structolc_1_1_pixel}{Pixel}} p, bool b\+Depth=true)
+\item 
+\mbox{\hyperlink{classolc_1_1_sprite}{olc\+::\+Sprite}} $\ast$ \mbox{\hyperlink{classolc_1_1_pixel_game_engine_abab955edc6d1ec6023a7806509582f52}{Get\+Font\+Sprite}} ()
+\item 
+void \mbox{\hyperlink{classolc_1_1_pixel_game_engine_a6e10d8fae75e26dea03b0b447667a308}{olc\+\_\+\+Update\+Mouse}} (int32\+\_\+t x, int32\+\_\+t y)
+\item 
+void \mbox{\hyperlink{classolc_1_1_pixel_game_engine_aa33ea5e40d4577e3c44fcf4a26cecadd}{olc\+\_\+\+Update\+Mouse\+Wheel}} (int32\+\_\+t delta)
+\item 
+void \mbox{\hyperlink{classolc_1_1_pixel_game_engine_a4f0dae00f21f8d71d4544d50593234c3}{olc\+\_\+\+Update\+Window\+Size}} (int32\+\_\+t x, int32\+\_\+t y)
+\item 
+void \mbox{\hyperlink{classolc_1_1_pixel_game_engine_af1cd38cf0df2e7c3ab53bee66ec63771}{olc\+\_\+\+Update\+Viewport}} ()
+\item 
+void \mbox{\hyperlink{classolc_1_1_pixel_game_engine_a117eedbe1e9366fe2bf402334beb9692}{olc\+\_\+\+Construct\+Font\+Sheet}} ()
+\item 
+void \mbox{\hyperlink{classolc_1_1_pixel_game_engine_a0018131435f88bb5de406fd11ee54058}{olc\+\_\+\+Core\+Update}} ()
+\item 
+void \mbox{\hyperlink{classolc_1_1_pixel_game_engine_aa19aafa028a7e2eaaf7b2235a9bd2256}{olc\+\_\+\+Prepare\+Engine}} ()
+\item 
+void \mbox{\hyperlink{classolc_1_1_pixel_game_engine_a59645c08376a7d4e58673919f3bd0dfb}{olc\+\_\+\+Update\+Mouse\+State}} (int32\+\_\+t button, bool state)
+\item 
+void \mbox{\hyperlink{classolc_1_1_pixel_game_engine_a61fde81846a9ef7f8fcf63080e6d350b}{olc\+\_\+\+Update\+Key\+State}} (int32\+\_\+t key, bool state)
+\item 
+void \mbox{\hyperlink{classolc_1_1_pixel_game_engine_ab3150ba487188e64940c294998fa38d3}{olc\+\_\+\+Update\+Mouse\+Focus}} (bool state)
+\item 
+void \mbox{\hyperlink{classolc_1_1_pixel_game_engine_a7343712504f23f86c8490646ffc50e7f}{olc\+\_\+\+Update\+Key\+Focus}} (bool state)
+\item 
+void \mbox{\hyperlink{classolc_1_1_pixel_game_engine_a2da1f2ebbc1a5fbdbf52890e6ac707b1}{olc\+\_\+\+Terminate}} ()
+\item 
+void \mbox{\hyperlink{classolc_1_1_pixel_game_engine_a417b6cd564ccad1d878ae51cfdd3be8e}{olc\+\_\+\+Reanimate}} ()
+\item 
+bool \mbox{\hyperlink{classolc_1_1_pixel_game_engine_a7b0f41bc4b4258a5c4fa1742b41d15e3}{olc\+\_\+\+Is\+Running}} ()
+\item 
+virtual void \mbox{\hyperlink{classolc_1_1_pixel_game_engine_a7afa0b57c65bd5d9a54c602afd4fe756}{olc\+\_\+\+Configure\+System}} ()
+\item 
+void \mbox{\hyperlink{classolc_1_1_pixel_game_engine_a49a2ead57239e1595cc555effd3e3a2b}{pgex\+\_\+\+Register}} (\mbox{\hyperlink{classolc_1_1_p_g_e_x}{olc\+::\+P\+G\+EX}} $\ast$pgex)
+\end{DoxyCompactItemize}
+\doxysubsection*{Public Attributes}
+\begin{DoxyCompactItemize}
+\item 
+std\+::string \mbox{\hyperlink{classolc_1_1_pixel_game_engine_a02d0f9c50770aa38aea1448f62d3604f}{s\+App\+Name}}
+\end{DoxyCompactItemize}
+\doxysubsection*{Friends}
+\begin{DoxyCompactItemize}
+\item 
+class \mbox{\hyperlink{classolc_1_1_pixel_game_engine_a98fcee28f1a645fe0a29f6b6e6a5d7bb}{P\+G\+EX}}
+\end{DoxyCompactItemize}
+
+
+\doxysubsection{Detailed Description}
+
+
+Definition at line 855 of file olc\+Pixel\+Game\+Engine.\+h.
+
+
+
+\doxysubsection{Constructor \& Destructor Documentation}
+\mbox{\Hypertarget{classolc_1_1_pixel_game_engine_afe9d685732305246c3fcb361ae3c4bc6}\label{classolc_1_1_pixel_game_engine_afe9d685732305246c3fcb361ae3c4bc6}} 
+\index{olc::PixelGameEngine@{olc::PixelGameEngine}!PixelGameEngine@{PixelGameEngine}}
+\index{PixelGameEngine@{PixelGameEngine}!olc::PixelGameEngine@{olc::PixelGameEngine}}
+\doxysubsubsection{\texorpdfstring{PixelGameEngine()}{PixelGameEngine()}}
+{\footnotesize\ttfamily olc\+::\+Pixel\+Game\+Engine\+::\+Pixel\+Game\+Engine (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}
+
+\mbox{\Hypertarget{classolc_1_1_pixel_game_engine_a423d90134c297f7b9f1834a136071b19}\label{classolc_1_1_pixel_game_engine_a423d90134c297f7b9f1834a136071b19}} 
+\index{olc::PixelGameEngine@{olc::PixelGameEngine}!````~PixelGameEngine@{$\sim$PixelGameEngine}}
+\index{````~PixelGameEngine@{$\sim$PixelGameEngine}!olc::PixelGameEngine@{olc::PixelGameEngine}}
+\doxysubsubsection{\texorpdfstring{$\sim$PixelGameEngine()}{~PixelGameEngine()}}
+{\footnotesize\ttfamily virtual olc\+::\+Pixel\+Game\+Engine\+::$\sim$\+Pixel\+Game\+Engine (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}
+
+
+
+\doxysubsection{Member Function Documentation}
+\mbox{\Hypertarget{classolc_1_1_pixel_game_engine_aeb70b40809815fab4e1017e25c7ab161}\label{classolc_1_1_pixel_game_engine_aeb70b40809815fab4e1017e25c7ab161}} 
+\index{olc::PixelGameEngine@{olc::PixelGameEngine}!Clear@{Clear}}
+\index{Clear@{Clear}!olc::PixelGameEngine@{olc::PixelGameEngine}}
+\doxysubsubsection{\texorpdfstring{Clear()}{Clear()}}
+{\footnotesize\ttfamily void olc\+::\+Pixel\+Game\+Engine\+::\+Clear (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{structolc_1_1_pixel}{Pixel}}}]{p }\end{DoxyParamCaption})}
+
+\mbox{\Hypertarget{classolc_1_1_pixel_game_engine_aed9a3f6bd349e091728a329ee42932bf}\label{classolc_1_1_pixel_game_engine_aed9a3f6bd349e091728a329ee42932bf}} 
+\index{olc::PixelGameEngine@{olc::PixelGameEngine}!ClearBuffer@{ClearBuffer}}
+\index{ClearBuffer@{ClearBuffer}!olc::PixelGameEngine@{olc::PixelGameEngine}}
+\doxysubsubsection{\texorpdfstring{ClearBuffer()}{ClearBuffer()}}
+{\footnotesize\ttfamily void olc\+::\+Pixel\+Game\+Engine\+::\+Clear\+Buffer (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{structolc_1_1_pixel}{Pixel}}}]{p,  }\item[{bool}]{b\+Depth = {\ttfamily true} }\end{DoxyParamCaption})}
+
+\mbox{\Hypertarget{classolc_1_1_pixel_game_engine_af1a9cf3b38dda2071b7ec18868ee1ccd}\label{classolc_1_1_pixel_game_engine_af1a9cf3b38dda2071b7ec18868ee1ccd}} 
+\index{olc::PixelGameEngine@{olc::PixelGameEngine}!Construct@{Construct}}
+\index{Construct@{Construct}!olc::PixelGameEngine@{olc::PixelGameEngine}}
+\doxysubsubsection{\texorpdfstring{Construct()}{Construct()}}
+{\footnotesize\ttfamily \mbox{\hyperlink{namespaceolc_a3d40e9b1c005602550230690b55ae87b}{olc\+::rcode}} olc\+::\+Pixel\+Game\+Engine\+::\+Construct (\begin{DoxyParamCaption}\item[{int32\+\_\+t}]{screen\+\_\+w,  }\item[{int32\+\_\+t}]{screen\+\_\+h,  }\item[{int32\+\_\+t}]{pixel\+\_\+w,  }\item[{int32\+\_\+t}]{pixel\+\_\+h,  }\item[{bool}]{full\+\_\+screen = {\ttfamily false},  }\item[{bool}]{vsync = {\ttfamily false},  }\item[{bool}]{cohesion = {\ttfamily false} }\end{DoxyParamCaption})}
+
+\mbox{\Hypertarget{classolc_1_1_pixel_game_engine_ae15ffa0503e2893aad7001aa2f5769b7}\label{classolc_1_1_pixel_game_engine_ae15ffa0503e2893aad7001aa2f5769b7}} 
+\index{olc::PixelGameEngine@{olc::PixelGameEngine}!CreateLayer@{CreateLayer}}
+\index{CreateLayer@{CreateLayer}!olc::PixelGameEngine@{olc::PixelGameEngine}}
+\doxysubsubsection{\texorpdfstring{CreateLayer()}{CreateLayer()}}
+{\footnotesize\ttfamily uint32\+\_\+t olc\+::\+Pixel\+Game\+Engine\+::\+Create\+Layer (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}
+
+\mbox{\Hypertarget{classolc_1_1_pixel_game_engine_ad7bd70d2c3d0bc5bbb0991fa4695a4e9}\label{classolc_1_1_pixel_game_engine_ad7bd70d2c3d0bc5bbb0991fa4695a4e9}} 
+\index{olc::PixelGameEngine@{olc::PixelGameEngine}!Draw@{Draw}}
+\index{Draw@{Draw}!olc::PixelGameEngine@{olc::PixelGameEngine}}
+\doxysubsubsection{\texorpdfstring{Draw()}{Draw()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
+{\footnotesize\ttfamily bool olc\+::\+Pixel\+Game\+Engine\+::\+Draw (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{namespaceolc_a3c42697361e8a28424bcf8415aba3564}{olc\+::vi2d}} \&}]{pos,  }\item[{\mbox{\hyperlink{structolc_1_1_pixel}{Pixel}}}]{p = {\ttfamily \mbox{\hyperlink{namespaceolc_ae3de4726bf87f2d74693e62d76816db1}{olc\+::\+W\+H\+I\+TE}}} }\end{DoxyParamCaption})}
+
+\mbox{\Hypertarget{classolc_1_1_pixel_game_engine_a95ab046b4b0843565bddd0e009a25569}\label{classolc_1_1_pixel_game_engine_a95ab046b4b0843565bddd0e009a25569}} 
+\index{olc::PixelGameEngine@{olc::PixelGameEngine}!Draw@{Draw}}
+\index{Draw@{Draw}!olc::PixelGameEngine@{olc::PixelGameEngine}}
+\doxysubsubsection{\texorpdfstring{Draw()}{Draw()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
+{\footnotesize\ttfamily virtual bool olc\+::\+Pixel\+Game\+Engine\+::\+Draw (\begin{DoxyParamCaption}\item[{int32\+\_\+t}]{x,  }\item[{int32\+\_\+t}]{y,  }\item[{\mbox{\hyperlink{structolc_1_1_pixel}{Pixel}}}]{p = {\ttfamily \mbox{\hyperlink{namespaceolc_ae3de4726bf87f2d74693e62d76816db1}{olc\+::\+W\+H\+I\+TE}}} }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}
+
+\mbox{\Hypertarget{classolc_1_1_pixel_game_engine_a0016377c9188719462724f523b3a6334}\label{classolc_1_1_pixel_game_engine_a0016377c9188719462724f523b3a6334}} 
+\index{olc::PixelGameEngine@{olc::PixelGameEngine}!DrawCircle@{DrawCircle}}
+\index{DrawCircle@{DrawCircle}!olc::PixelGameEngine@{olc::PixelGameEngine}}
+\doxysubsubsection{\texorpdfstring{DrawCircle()}{DrawCircle()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
+{\footnotesize\ttfamily void olc\+::\+Pixel\+Game\+Engine\+::\+Draw\+Circle (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{namespaceolc_a3c42697361e8a28424bcf8415aba3564}{olc\+::vi2d}} \&}]{pos,  }\item[{int32\+\_\+t}]{radius,  }\item[{\mbox{\hyperlink{structolc_1_1_pixel}{Pixel}}}]{p = {\ttfamily \mbox{\hyperlink{namespaceolc_ae3de4726bf87f2d74693e62d76816db1}{olc\+::\+W\+H\+I\+TE}}},  }\item[{uint8\+\_\+t}]{mask = {\ttfamily 0xFF} }\end{DoxyParamCaption})}
+
+\mbox{\Hypertarget{classolc_1_1_pixel_game_engine_a2ce3e34fd633acdc22b8dc2c8d25f86c}\label{classolc_1_1_pixel_game_engine_a2ce3e34fd633acdc22b8dc2c8d25f86c}} 
+\index{olc::PixelGameEngine@{olc::PixelGameEngine}!DrawCircle@{DrawCircle}}
+\index{DrawCircle@{DrawCircle}!olc::PixelGameEngine@{olc::PixelGameEngine}}
+\doxysubsubsection{\texorpdfstring{DrawCircle()}{DrawCircle()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
+{\footnotesize\ttfamily void olc\+::\+Pixel\+Game\+Engine\+::\+Draw\+Circle (\begin{DoxyParamCaption}\item[{int32\+\_\+t}]{x,  }\item[{int32\+\_\+t}]{y,  }\item[{int32\+\_\+t}]{radius,  }\item[{\mbox{\hyperlink{structolc_1_1_pixel}{Pixel}}}]{p = {\ttfamily \mbox{\hyperlink{namespaceolc_ae3de4726bf87f2d74693e62d76816db1}{olc\+::\+W\+H\+I\+TE}}},  }\item[{uint8\+\_\+t}]{mask = {\ttfamily 0xFF} }\end{DoxyParamCaption})}
+
+\mbox{\Hypertarget{classolc_1_1_pixel_game_engine_a5b676590555cab61db67804417c6f25f}\label{classolc_1_1_pixel_game_engine_a5b676590555cab61db67804417c6f25f}} 
+\index{olc::PixelGameEngine@{olc::PixelGameEngine}!DrawDecal@{DrawDecal}}
+\index{DrawDecal@{DrawDecal}!olc::PixelGameEngine@{olc::PixelGameEngine}}
+\doxysubsubsection{\texorpdfstring{DrawDecal()}{DrawDecal()}}
+{\footnotesize\ttfamily void olc\+::\+Pixel\+Game\+Engine\+::\+Draw\+Decal (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&}]{pos,  }\item[{\mbox{\hyperlink{classolc_1_1_decal}{olc\+::\+Decal}} $\ast$}]{decal,  }\item[{const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&}]{scale = {\ttfamily \{~1.0f,~1.0f~\}},  }\item[{const \mbox{\hyperlink{structolc_1_1_pixel}{olc\+::\+Pixel}} \&}]{tint = {\ttfamily \mbox{\hyperlink{namespaceolc_ae3de4726bf87f2d74693e62d76816db1}{olc\+::\+W\+H\+I\+TE}}} }\end{DoxyParamCaption})}
+
+\mbox{\Hypertarget{classolc_1_1_pixel_game_engine_a26d7073d87bb19f15d5ade6bb58e8e2d}\label{classolc_1_1_pixel_game_engine_a26d7073d87bb19f15d5ade6bb58e8e2d}} 
+\index{olc::PixelGameEngine@{olc::PixelGameEngine}!DrawExplicitDecal@{DrawExplicitDecal}}
+\index{DrawExplicitDecal@{DrawExplicitDecal}!olc::PixelGameEngine@{olc::PixelGameEngine}}
+\doxysubsubsection{\texorpdfstring{DrawExplicitDecal()}{DrawExplicitDecal()}}
+{\footnotesize\ttfamily void olc\+::\+Pixel\+Game\+Engine\+::\+Draw\+Explicit\+Decal (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{classolc_1_1_decal}{olc\+::\+Decal}} $\ast$}]{decal,  }\item[{const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} $\ast$}]{pos,  }\item[{const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} $\ast$}]{uv,  }\item[{const \mbox{\hyperlink{structolc_1_1_pixel}{olc\+::\+Pixel}} $\ast$}]{col,  }\item[{uint32\+\_\+t}]{elements = {\ttfamily 4} }\end{DoxyParamCaption})}
+
+\mbox{\Hypertarget{classolc_1_1_pixel_game_engine_ac24457d32db7d8acf0661c6de57be7a8}\label{classolc_1_1_pixel_game_engine_ac24457d32db7d8acf0661c6de57be7a8}} 
+\index{olc::PixelGameEngine@{olc::PixelGameEngine}!DrawLine@{DrawLine}}
+\index{DrawLine@{DrawLine}!olc::PixelGameEngine@{olc::PixelGameEngine}}
+\doxysubsubsection{\texorpdfstring{DrawLine()}{DrawLine()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
+{\footnotesize\ttfamily void olc\+::\+Pixel\+Game\+Engine\+::\+Draw\+Line (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{namespaceolc_a3c42697361e8a28424bcf8415aba3564}{olc\+::vi2d}} \&}]{pos1,  }\item[{const \mbox{\hyperlink{namespaceolc_a3c42697361e8a28424bcf8415aba3564}{olc\+::vi2d}} \&}]{pos2,  }\item[{\mbox{\hyperlink{structolc_1_1_pixel}{Pixel}}}]{p = {\ttfamily \mbox{\hyperlink{namespaceolc_ae3de4726bf87f2d74693e62d76816db1}{olc\+::\+W\+H\+I\+TE}}},  }\item[{uint32\+\_\+t}]{pattern = {\ttfamily 0xFFFFFFFF} }\end{DoxyParamCaption})}
+
+\mbox{\Hypertarget{classolc_1_1_pixel_game_engine_a131877968123c843374f079814503d22}\label{classolc_1_1_pixel_game_engine_a131877968123c843374f079814503d22}} 
+\index{olc::PixelGameEngine@{olc::PixelGameEngine}!DrawLine@{DrawLine}}
+\index{DrawLine@{DrawLine}!olc::PixelGameEngine@{olc::PixelGameEngine}}
+\doxysubsubsection{\texorpdfstring{DrawLine()}{DrawLine()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
+{\footnotesize\ttfamily void olc\+::\+Pixel\+Game\+Engine\+::\+Draw\+Line (\begin{DoxyParamCaption}\item[{int32\+\_\+t}]{x1,  }\item[{int32\+\_\+t}]{y1,  }\item[{int32\+\_\+t}]{x2,  }\item[{int32\+\_\+t}]{y2,  }\item[{\mbox{\hyperlink{structolc_1_1_pixel}{Pixel}}}]{p = {\ttfamily \mbox{\hyperlink{namespaceolc_ae3de4726bf87f2d74693e62d76816db1}{olc\+::\+W\+H\+I\+TE}}},  }\item[{uint32\+\_\+t}]{pattern = {\ttfamily 0xFFFFFFFF} }\end{DoxyParamCaption})}
+
+\mbox{\Hypertarget{classolc_1_1_pixel_game_engine_a1b757070353b8f9238c229e42d33bbb5}\label{classolc_1_1_pixel_game_engine_a1b757070353b8f9238c229e42d33bbb5}} 
+\index{olc::PixelGameEngine@{olc::PixelGameEngine}!DrawPartialDecal@{DrawPartialDecal}}
+\index{DrawPartialDecal@{DrawPartialDecal}!olc::PixelGameEngine@{olc::PixelGameEngine}}
+\doxysubsubsection{\texorpdfstring{DrawPartialDecal()}{DrawPartialDecal()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
+{\footnotesize\ttfamily void olc\+::\+Pixel\+Game\+Engine\+::\+Draw\+Partial\+Decal (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&}]{pos,  }\item[{const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&}]{size,  }\item[{\mbox{\hyperlink{classolc_1_1_decal}{olc\+::\+Decal}} $\ast$}]{decal,  }\item[{const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&}]{source\+\_\+pos,  }\item[{const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&}]{source\+\_\+size,  }\item[{const \mbox{\hyperlink{structolc_1_1_pixel}{olc\+::\+Pixel}} \&}]{tint = {\ttfamily \mbox{\hyperlink{namespaceolc_ae3de4726bf87f2d74693e62d76816db1}{olc\+::\+W\+H\+I\+TE}}} }\end{DoxyParamCaption})}
+
+\mbox{\Hypertarget{classolc_1_1_pixel_game_engine_a8bae37cf84b215e9e0416f058241aeba}\label{classolc_1_1_pixel_game_engine_a8bae37cf84b215e9e0416f058241aeba}} 
+\index{olc::PixelGameEngine@{olc::PixelGameEngine}!DrawPartialDecal@{DrawPartialDecal}}
+\index{DrawPartialDecal@{DrawPartialDecal}!olc::PixelGameEngine@{olc::PixelGameEngine}}
+\doxysubsubsection{\texorpdfstring{DrawPartialDecal()}{DrawPartialDecal()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
+{\footnotesize\ttfamily void olc\+::\+Pixel\+Game\+Engine\+::\+Draw\+Partial\+Decal (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&}]{pos,  }\item[{\mbox{\hyperlink{classolc_1_1_decal}{olc\+::\+Decal}} $\ast$}]{decal,  }\item[{const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&}]{source\+\_\+pos,  }\item[{const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&}]{source\+\_\+size,  }\item[{const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&}]{scale = {\ttfamily \{~1.0f,~1.0f~\}},  }\item[{const \mbox{\hyperlink{structolc_1_1_pixel}{olc\+::\+Pixel}} \&}]{tint = {\ttfamily \mbox{\hyperlink{namespaceolc_ae3de4726bf87f2d74693e62d76816db1}{olc\+::\+W\+H\+I\+TE}}} }\end{DoxyParamCaption})}
+
+\mbox{\Hypertarget{classolc_1_1_pixel_game_engine_aad3107bbad34e5792a9a35629e1fdbd0}\label{classolc_1_1_pixel_game_engine_aad3107bbad34e5792a9a35629e1fdbd0}} 
+\index{olc::PixelGameEngine@{olc::PixelGameEngine}!DrawPartialRotatedDecal@{DrawPartialRotatedDecal}}
+\index{DrawPartialRotatedDecal@{DrawPartialRotatedDecal}!olc::PixelGameEngine@{olc::PixelGameEngine}}
+\doxysubsubsection{\texorpdfstring{DrawPartialRotatedDecal()}{DrawPartialRotatedDecal()}}
+{\footnotesize\ttfamily void olc\+::\+Pixel\+Game\+Engine\+::\+Draw\+Partial\+Rotated\+Decal (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&}]{pos,  }\item[{\mbox{\hyperlink{classolc_1_1_decal}{olc\+::\+Decal}} $\ast$}]{decal,  }\item[{const float}]{f\+Angle,  }\item[{const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&}]{center,  }\item[{const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&}]{source\+\_\+pos,  }\item[{const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&}]{source\+\_\+size,  }\item[{const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&}]{scale = {\ttfamily \{~1.0f,~1.0f~\}},  }\item[{const \mbox{\hyperlink{structolc_1_1_pixel}{olc\+::\+Pixel}} \&}]{tint = {\ttfamily \mbox{\hyperlink{namespaceolc_ae3de4726bf87f2d74693e62d76816db1}{olc\+::\+W\+H\+I\+TE}}} }\end{DoxyParamCaption})}
+
+\mbox{\Hypertarget{classolc_1_1_pixel_game_engine_aecfcfec384cf4eb56ab89f92df4ff288}\label{classolc_1_1_pixel_game_engine_aecfcfec384cf4eb56ab89f92df4ff288}} 
+\index{olc::PixelGameEngine@{olc::PixelGameEngine}!DrawPartialSprite@{DrawPartialSprite}}
+\index{DrawPartialSprite@{DrawPartialSprite}!olc::PixelGameEngine@{olc::PixelGameEngine}}
+\doxysubsubsection{\texorpdfstring{DrawPartialSprite()}{DrawPartialSprite()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
+{\footnotesize\ttfamily void olc\+::\+Pixel\+Game\+Engine\+::\+Draw\+Partial\+Sprite (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{namespaceolc_a3c42697361e8a28424bcf8415aba3564}{olc\+::vi2d}} \&}]{pos,  }\item[{\mbox{\hyperlink{classolc_1_1_sprite}{Sprite}} $\ast$}]{sprite,  }\item[{const \mbox{\hyperlink{namespaceolc_a3c42697361e8a28424bcf8415aba3564}{olc\+::vi2d}} \&}]{sourcepos,  }\item[{const \mbox{\hyperlink{namespaceolc_a3c42697361e8a28424bcf8415aba3564}{olc\+::vi2d}} \&}]{size,  }\item[{uint32\+\_\+t}]{scale = {\ttfamily 1},  }\item[{uint8\+\_\+t}]{flip = {\ttfamily \mbox{\hyperlink{classolc_1_1_sprite_ad0d1976d2060997f5cd99eb284a5dc24a6ad338b4e63faacfbed68b020c3a0c0c}{olc\+::\+Sprite\+::\+N\+O\+NE}}} }\end{DoxyParamCaption})}
+
+\mbox{\Hypertarget{classolc_1_1_pixel_game_engine_ab777dd885946b2dba5e8bef894c6868c}\label{classolc_1_1_pixel_game_engine_ab777dd885946b2dba5e8bef894c6868c}} 
+\index{olc::PixelGameEngine@{olc::PixelGameEngine}!DrawPartialSprite@{DrawPartialSprite}}
+\index{DrawPartialSprite@{DrawPartialSprite}!olc::PixelGameEngine@{olc::PixelGameEngine}}
+\doxysubsubsection{\texorpdfstring{DrawPartialSprite()}{DrawPartialSprite()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
+{\footnotesize\ttfamily void olc\+::\+Pixel\+Game\+Engine\+::\+Draw\+Partial\+Sprite (\begin{DoxyParamCaption}\item[{int32\+\_\+t}]{x,  }\item[{int32\+\_\+t}]{y,  }\item[{\mbox{\hyperlink{classolc_1_1_sprite}{Sprite}} $\ast$}]{sprite,  }\item[{int32\+\_\+t}]{ox,  }\item[{int32\+\_\+t}]{oy,  }\item[{int32\+\_\+t}]{w,  }\item[{int32\+\_\+t}]{h,  }\item[{uint32\+\_\+t}]{scale = {\ttfamily 1},  }\item[{uint8\+\_\+t}]{flip = {\ttfamily \mbox{\hyperlink{classolc_1_1_sprite_ad0d1976d2060997f5cd99eb284a5dc24a6ad338b4e63faacfbed68b020c3a0c0c}{olc\+::\+Sprite\+::\+N\+O\+NE}}} }\end{DoxyParamCaption})}
+
+\mbox{\Hypertarget{classolc_1_1_pixel_game_engine_a5993da382c8e661655386a41ae874270}\label{classolc_1_1_pixel_game_engine_a5993da382c8e661655386a41ae874270}} 
+\index{olc::PixelGameEngine@{olc::PixelGameEngine}!DrawPartialWarpedDecal@{DrawPartialWarpedDecal}}
+\index{DrawPartialWarpedDecal@{DrawPartialWarpedDecal}!olc::PixelGameEngine@{olc::PixelGameEngine}}
+\doxysubsubsection{\texorpdfstring{DrawPartialWarpedDecal()}{DrawPartialWarpedDecal()}\hspace{0.1cm}{\footnotesize\ttfamily [1/3]}}
+{\footnotesize\ttfamily void olc\+::\+Pixel\+Game\+Engine\+::\+Draw\+Partial\+Warped\+Decal (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{classolc_1_1_decal}{olc\+::\+Decal}} $\ast$}]{decal,  }\item[{const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} $\ast$}]{pos,  }\item[{const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&}]{source\+\_\+pos,  }\item[{const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&}]{source\+\_\+size,  }\item[{const \mbox{\hyperlink{structolc_1_1_pixel}{olc\+::\+Pixel}} \&}]{tint = {\ttfamily \mbox{\hyperlink{namespaceolc_ae3de4726bf87f2d74693e62d76816db1}{olc\+::\+W\+H\+I\+TE}}} }\end{DoxyParamCaption})}
+
+\mbox{\Hypertarget{classolc_1_1_pixel_game_engine_a78be0709345710435fdaef7bc14f5fb3}\label{classolc_1_1_pixel_game_engine_a78be0709345710435fdaef7bc14f5fb3}} 
+\index{olc::PixelGameEngine@{olc::PixelGameEngine}!DrawPartialWarpedDecal@{DrawPartialWarpedDecal}}
+\index{DrawPartialWarpedDecal@{DrawPartialWarpedDecal}!olc::PixelGameEngine@{olc::PixelGameEngine}}
+\doxysubsubsection{\texorpdfstring{DrawPartialWarpedDecal()}{DrawPartialWarpedDecal()}\hspace{0.1cm}{\footnotesize\ttfamily [2/3]}}
+{\footnotesize\ttfamily void olc\+::\+Pixel\+Game\+Engine\+::\+Draw\+Partial\+Warped\+Decal (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{classolc_1_1_decal}{olc\+::\+Decal}} $\ast$}]{decal,  }\item[{const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}}(\&)}]{pos\mbox{[}4\mbox{]},  }\item[{const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&}]{source\+\_\+pos,  }\item[{const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&}]{source\+\_\+size,  }\item[{const \mbox{\hyperlink{structolc_1_1_pixel}{olc\+::\+Pixel}} \&}]{tint = {\ttfamily \mbox{\hyperlink{namespaceolc_ae3de4726bf87f2d74693e62d76816db1}{olc\+::\+W\+H\+I\+TE}}} }\end{DoxyParamCaption})}
+
+\mbox{\Hypertarget{classolc_1_1_pixel_game_engine_aaccd68c61d88b13ffe1e93493f2a5b35}\label{classolc_1_1_pixel_game_engine_aaccd68c61d88b13ffe1e93493f2a5b35}} 
+\index{olc::PixelGameEngine@{olc::PixelGameEngine}!DrawPartialWarpedDecal@{DrawPartialWarpedDecal}}
+\index{DrawPartialWarpedDecal@{DrawPartialWarpedDecal}!olc::PixelGameEngine@{olc::PixelGameEngine}}
+\doxysubsubsection{\texorpdfstring{DrawPartialWarpedDecal()}{DrawPartialWarpedDecal()}\hspace{0.1cm}{\footnotesize\ttfamily [3/3]}}
+{\footnotesize\ttfamily void olc\+::\+Pixel\+Game\+Engine\+::\+Draw\+Partial\+Warped\+Decal (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{classolc_1_1_decal}{olc\+::\+Decal}} $\ast$}]{decal,  }\item[{const std\+::array$<$ \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}}, 4 $>$ \&}]{pos,  }\item[{const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&}]{source\+\_\+pos,  }\item[{const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&}]{source\+\_\+size,  }\item[{const \mbox{\hyperlink{structolc_1_1_pixel}{olc\+::\+Pixel}} \&}]{tint = {\ttfamily \mbox{\hyperlink{namespaceolc_ae3de4726bf87f2d74693e62d76816db1}{olc\+::\+W\+H\+I\+TE}}} }\end{DoxyParamCaption})}
+
+\mbox{\Hypertarget{classolc_1_1_pixel_game_engine_a40a7754338ea7b388ffa2383958d1f0b}\label{classolc_1_1_pixel_game_engine_a40a7754338ea7b388ffa2383958d1f0b}} 
+\index{olc::PixelGameEngine@{olc::PixelGameEngine}!DrawPolygonDecal@{DrawPolygonDecal}}
+\index{DrawPolygonDecal@{DrawPolygonDecal}!olc::PixelGameEngine@{olc::PixelGameEngine}}
+\doxysubsubsection{\texorpdfstring{DrawPolygonDecal()}{DrawPolygonDecal()}}
+{\footnotesize\ttfamily void olc\+::\+Pixel\+Game\+Engine\+::\+Draw\+Polygon\+Decal (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{classolc_1_1_decal}{olc\+::\+Decal}} $\ast$}]{decal,  }\item[{const std\+::vector$<$ \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} $>$ \&}]{pos,  }\item[{const std\+::vector$<$ \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} $>$ \&}]{uv,  }\item[{const \mbox{\hyperlink{structolc_1_1_pixel}{olc\+::\+Pixel}}}]{tint = {\ttfamily \mbox{\hyperlink{namespaceolc_ae3de4726bf87f2d74693e62d76816db1}{olc\+::\+W\+H\+I\+TE}}} }\end{DoxyParamCaption})}
+
+\mbox{\Hypertarget{classolc_1_1_pixel_game_engine_ac8536bf173a396cf78f952ab66fe6156}\label{classolc_1_1_pixel_game_engine_ac8536bf173a396cf78f952ab66fe6156}} 
+\index{olc::PixelGameEngine@{olc::PixelGameEngine}!DrawRect@{DrawRect}}
+\index{DrawRect@{DrawRect}!olc::PixelGameEngine@{olc::PixelGameEngine}}
+\doxysubsubsection{\texorpdfstring{DrawRect()}{DrawRect()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
+{\footnotesize\ttfamily void olc\+::\+Pixel\+Game\+Engine\+::\+Draw\+Rect (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{namespaceolc_a3c42697361e8a28424bcf8415aba3564}{olc\+::vi2d}} \&}]{pos,  }\item[{const \mbox{\hyperlink{namespaceolc_a3c42697361e8a28424bcf8415aba3564}{olc\+::vi2d}} \&}]{size,  }\item[{\mbox{\hyperlink{structolc_1_1_pixel}{Pixel}}}]{p = {\ttfamily \mbox{\hyperlink{namespaceolc_ae3de4726bf87f2d74693e62d76816db1}{olc\+::\+W\+H\+I\+TE}}} }\end{DoxyParamCaption})}
+
+\mbox{\Hypertarget{classolc_1_1_pixel_game_engine_a220f523e520e317f5656c4d3df777163}\label{classolc_1_1_pixel_game_engine_a220f523e520e317f5656c4d3df777163}} 
+\index{olc::PixelGameEngine@{olc::PixelGameEngine}!DrawRect@{DrawRect}}
+\index{DrawRect@{DrawRect}!olc::PixelGameEngine@{olc::PixelGameEngine}}
+\doxysubsubsection{\texorpdfstring{DrawRect()}{DrawRect()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
+{\footnotesize\ttfamily void olc\+::\+Pixel\+Game\+Engine\+::\+Draw\+Rect (\begin{DoxyParamCaption}\item[{int32\+\_\+t}]{x,  }\item[{int32\+\_\+t}]{y,  }\item[{int32\+\_\+t}]{w,  }\item[{int32\+\_\+t}]{h,  }\item[{\mbox{\hyperlink{structolc_1_1_pixel}{Pixel}}}]{p = {\ttfamily \mbox{\hyperlink{namespaceolc_ae3de4726bf87f2d74693e62d76816db1}{olc\+::\+W\+H\+I\+TE}}} }\end{DoxyParamCaption})}
+
+\mbox{\Hypertarget{classolc_1_1_pixel_game_engine_ab9af9b6726271e83dd7e4b24583b4236}\label{classolc_1_1_pixel_game_engine_ab9af9b6726271e83dd7e4b24583b4236}} 
+\index{olc::PixelGameEngine@{olc::PixelGameEngine}!DrawRotatedDecal@{DrawRotatedDecal}}
+\index{DrawRotatedDecal@{DrawRotatedDecal}!olc::PixelGameEngine@{olc::PixelGameEngine}}
+\doxysubsubsection{\texorpdfstring{DrawRotatedDecal()}{DrawRotatedDecal()}}
+{\footnotesize\ttfamily void olc\+::\+Pixel\+Game\+Engine\+::\+Draw\+Rotated\+Decal (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&}]{pos,  }\item[{\mbox{\hyperlink{classolc_1_1_decal}{olc\+::\+Decal}} $\ast$}]{decal,  }\item[{const float}]{f\+Angle,  }\item[{const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&}]{center = {\ttfamily \{~0.0f,~0.0f~\}},  }\item[{const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&}]{scale = {\ttfamily \{~1.0f,~1.0f~\}},  }\item[{const \mbox{\hyperlink{structolc_1_1_pixel}{olc\+::\+Pixel}} \&}]{tint = {\ttfamily \mbox{\hyperlink{namespaceolc_ae3de4726bf87f2d74693e62d76816db1}{olc\+::\+W\+H\+I\+TE}}} }\end{DoxyParamCaption})}
+
+\mbox{\Hypertarget{classolc_1_1_pixel_game_engine_adcf00714f6f13ed5ad256e2102084177}\label{classolc_1_1_pixel_game_engine_adcf00714f6f13ed5ad256e2102084177}} 
+\index{olc::PixelGameEngine@{olc::PixelGameEngine}!DrawSprite@{DrawSprite}}
+\index{DrawSprite@{DrawSprite}!olc::PixelGameEngine@{olc::PixelGameEngine}}
+\doxysubsubsection{\texorpdfstring{DrawSprite()}{DrawSprite()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
+{\footnotesize\ttfamily void olc\+::\+Pixel\+Game\+Engine\+::\+Draw\+Sprite (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{namespaceolc_a3c42697361e8a28424bcf8415aba3564}{olc\+::vi2d}} \&}]{pos,  }\item[{\mbox{\hyperlink{classolc_1_1_sprite}{Sprite}} $\ast$}]{sprite,  }\item[{uint32\+\_\+t}]{scale = {\ttfamily 1},  }\item[{uint8\+\_\+t}]{flip = {\ttfamily \mbox{\hyperlink{classolc_1_1_sprite_ad0d1976d2060997f5cd99eb284a5dc24a6ad338b4e63faacfbed68b020c3a0c0c}{olc\+::\+Sprite\+::\+N\+O\+NE}}} }\end{DoxyParamCaption})}
+
+\mbox{\Hypertarget{classolc_1_1_pixel_game_engine_a5bae460b03f2837e39fdee3a0bbb6f99}\label{classolc_1_1_pixel_game_engine_a5bae460b03f2837e39fdee3a0bbb6f99}} 
+\index{olc::PixelGameEngine@{olc::PixelGameEngine}!DrawSprite@{DrawSprite}}
+\index{DrawSprite@{DrawSprite}!olc::PixelGameEngine@{olc::PixelGameEngine}}
+\doxysubsubsection{\texorpdfstring{DrawSprite()}{DrawSprite()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
+{\footnotesize\ttfamily void olc\+::\+Pixel\+Game\+Engine\+::\+Draw\+Sprite (\begin{DoxyParamCaption}\item[{int32\+\_\+t}]{x,  }\item[{int32\+\_\+t}]{y,  }\item[{\mbox{\hyperlink{classolc_1_1_sprite}{Sprite}} $\ast$}]{sprite,  }\item[{uint32\+\_\+t}]{scale = {\ttfamily 1},  }\item[{uint8\+\_\+t}]{flip = {\ttfamily \mbox{\hyperlink{classolc_1_1_sprite_ad0d1976d2060997f5cd99eb284a5dc24a6ad338b4e63faacfbed68b020c3a0c0c}{olc\+::\+Sprite\+::\+N\+O\+NE}}} }\end{DoxyParamCaption})}
+
+\mbox{\Hypertarget{classolc_1_1_pixel_game_engine_ae099b13b38e5b02ffd31ad34a703cee5}\label{classolc_1_1_pixel_game_engine_ae099b13b38e5b02ffd31ad34a703cee5}} 
+\index{olc::PixelGameEngine@{olc::PixelGameEngine}!DrawString@{DrawString}}
+\index{DrawString@{DrawString}!olc::PixelGameEngine@{olc::PixelGameEngine}}
+\doxysubsubsection{\texorpdfstring{DrawString()}{DrawString()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
+{\footnotesize\ttfamily void olc\+::\+Pixel\+Game\+Engine\+::\+Draw\+String (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{namespaceolc_a3c42697361e8a28424bcf8415aba3564}{olc\+::vi2d}} \&}]{pos,  }\item[{const std\+::string \&}]{s\+Text,  }\item[{\mbox{\hyperlink{structolc_1_1_pixel}{Pixel}}}]{col = {\ttfamily \mbox{\hyperlink{namespaceolc_ae3de4726bf87f2d74693e62d76816db1}{olc\+::\+W\+H\+I\+TE}}},  }\item[{uint32\+\_\+t}]{scale = {\ttfamily 1} }\end{DoxyParamCaption})}
+
+\mbox{\Hypertarget{classolc_1_1_pixel_game_engine_ac29d79dedde0b2187f9f9ccbbc33fd0b}\label{classolc_1_1_pixel_game_engine_ac29d79dedde0b2187f9f9ccbbc33fd0b}} 
+\index{olc::PixelGameEngine@{olc::PixelGameEngine}!DrawString@{DrawString}}
+\index{DrawString@{DrawString}!olc::PixelGameEngine@{olc::PixelGameEngine}}
+\doxysubsubsection{\texorpdfstring{DrawString()}{DrawString()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
+{\footnotesize\ttfamily void olc\+::\+Pixel\+Game\+Engine\+::\+Draw\+String (\begin{DoxyParamCaption}\item[{int32\+\_\+t}]{x,  }\item[{int32\+\_\+t}]{y,  }\item[{const std\+::string \&}]{s\+Text,  }\item[{\mbox{\hyperlink{structolc_1_1_pixel}{Pixel}}}]{col = {\ttfamily \mbox{\hyperlink{namespaceolc_ae3de4726bf87f2d74693e62d76816db1}{olc\+::\+W\+H\+I\+TE}}},  }\item[{uint32\+\_\+t}]{scale = {\ttfamily 1} }\end{DoxyParamCaption})}
+
+\mbox{\Hypertarget{classolc_1_1_pixel_game_engine_a689d1828a93292702070b97fb14f5644}\label{classolc_1_1_pixel_game_engine_a689d1828a93292702070b97fb14f5644}} 
+\index{olc::PixelGameEngine@{olc::PixelGameEngine}!DrawStringDecal@{DrawStringDecal}}
+\index{DrawStringDecal@{DrawStringDecal}!olc::PixelGameEngine@{olc::PixelGameEngine}}
+\doxysubsubsection{\texorpdfstring{DrawStringDecal()}{DrawStringDecal()}}
+{\footnotesize\ttfamily void olc\+::\+Pixel\+Game\+Engine\+::\+Draw\+String\+Decal (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&}]{pos,  }\item[{const std\+::string \&}]{s\+Text,  }\item[{const \mbox{\hyperlink{structolc_1_1_pixel}{Pixel}}}]{col = {\ttfamily \mbox{\hyperlink{namespaceolc_ae3de4726bf87f2d74693e62d76816db1}{olc\+::\+W\+H\+I\+TE}}},  }\item[{const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&}]{scale = {\ttfamily \{~1.0f,~1.0f~\}} }\end{DoxyParamCaption})}
+
+\mbox{\Hypertarget{classolc_1_1_pixel_game_engine_a161ef8177257c371741d12cbc4818cf6}\label{classolc_1_1_pixel_game_engine_a161ef8177257c371741d12cbc4818cf6}} 
+\index{olc::PixelGameEngine@{olc::PixelGameEngine}!DrawStringProp@{DrawStringProp}}
+\index{DrawStringProp@{DrawStringProp}!olc::PixelGameEngine@{olc::PixelGameEngine}}
+\doxysubsubsection{\texorpdfstring{DrawStringProp()}{DrawStringProp()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
+{\footnotesize\ttfamily void olc\+::\+Pixel\+Game\+Engine\+::\+Draw\+String\+Prop (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{namespaceolc_a3c42697361e8a28424bcf8415aba3564}{olc\+::vi2d}} \&}]{pos,  }\item[{const std\+::string \&}]{s\+Text,  }\item[{\mbox{\hyperlink{structolc_1_1_pixel}{Pixel}}}]{col = {\ttfamily \mbox{\hyperlink{namespaceolc_ae3de4726bf87f2d74693e62d76816db1}{olc\+::\+W\+H\+I\+TE}}},  }\item[{uint32\+\_\+t}]{scale = {\ttfamily 1} }\end{DoxyParamCaption})}
+
+\mbox{\Hypertarget{classolc_1_1_pixel_game_engine_a1ddca999be34411764bb12d2a15cc021}\label{classolc_1_1_pixel_game_engine_a1ddca999be34411764bb12d2a15cc021}} 
+\index{olc::PixelGameEngine@{olc::PixelGameEngine}!DrawStringProp@{DrawStringProp}}
+\index{DrawStringProp@{DrawStringProp}!olc::PixelGameEngine@{olc::PixelGameEngine}}
+\doxysubsubsection{\texorpdfstring{DrawStringProp()}{DrawStringProp()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
+{\footnotesize\ttfamily void olc\+::\+Pixel\+Game\+Engine\+::\+Draw\+String\+Prop (\begin{DoxyParamCaption}\item[{int32\+\_\+t}]{x,  }\item[{int32\+\_\+t}]{y,  }\item[{const std\+::string \&}]{s\+Text,  }\item[{\mbox{\hyperlink{structolc_1_1_pixel}{Pixel}}}]{col = {\ttfamily \mbox{\hyperlink{namespaceolc_ae3de4726bf87f2d74693e62d76816db1}{olc\+::\+W\+H\+I\+TE}}},  }\item[{uint32\+\_\+t}]{scale = {\ttfamily 1} }\end{DoxyParamCaption})}
+
+\mbox{\Hypertarget{classolc_1_1_pixel_game_engine_a7392273f15fc09b3659b112564aa0dfa}\label{classolc_1_1_pixel_game_engine_a7392273f15fc09b3659b112564aa0dfa}} 
+\index{olc::PixelGameEngine@{olc::PixelGameEngine}!DrawStringPropDecal@{DrawStringPropDecal}}
+\index{DrawStringPropDecal@{DrawStringPropDecal}!olc::PixelGameEngine@{olc::PixelGameEngine}}
+\doxysubsubsection{\texorpdfstring{DrawStringPropDecal()}{DrawStringPropDecal()}}
+{\footnotesize\ttfamily void olc\+::\+Pixel\+Game\+Engine\+::\+Draw\+String\+Prop\+Decal (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&}]{pos,  }\item[{const std\+::string \&}]{s\+Text,  }\item[{const \mbox{\hyperlink{structolc_1_1_pixel}{Pixel}}}]{col = {\ttfamily \mbox{\hyperlink{namespaceolc_ae3de4726bf87f2d74693e62d76816db1}{olc\+::\+W\+H\+I\+TE}}},  }\item[{const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&}]{scale = {\ttfamily \{~1.0f,~1.0f~\}} }\end{DoxyParamCaption})}
+
+\mbox{\Hypertarget{classolc_1_1_pixel_game_engine_aafe21db2127f56670b5f5f089adced71}\label{classolc_1_1_pixel_game_engine_aafe21db2127f56670b5f5f089adced71}} 
+\index{olc::PixelGameEngine@{olc::PixelGameEngine}!DrawTriangle@{DrawTriangle}}
+\index{DrawTriangle@{DrawTriangle}!olc::PixelGameEngine@{olc::PixelGameEngine}}
+\doxysubsubsection{\texorpdfstring{DrawTriangle()}{DrawTriangle()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
+{\footnotesize\ttfamily void olc\+::\+Pixel\+Game\+Engine\+::\+Draw\+Triangle (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{namespaceolc_a3c42697361e8a28424bcf8415aba3564}{olc\+::vi2d}} \&}]{pos1,  }\item[{const \mbox{\hyperlink{namespaceolc_a3c42697361e8a28424bcf8415aba3564}{olc\+::vi2d}} \&}]{pos2,  }\item[{const \mbox{\hyperlink{namespaceolc_a3c42697361e8a28424bcf8415aba3564}{olc\+::vi2d}} \&}]{pos3,  }\item[{\mbox{\hyperlink{structolc_1_1_pixel}{Pixel}}}]{p = {\ttfamily \mbox{\hyperlink{namespaceolc_ae3de4726bf87f2d74693e62d76816db1}{olc\+::\+W\+H\+I\+TE}}} }\end{DoxyParamCaption})}
+
+\mbox{\Hypertarget{classolc_1_1_pixel_game_engine_a2bddba9e808a8702f6af354007302c16}\label{classolc_1_1_pixel_game_engine_a2bddba9e808a8702f6af354007302c16}} 
+\index{olc::PixelGameEngine@{olc::PixelGameEngine}!DrawTriangle@{DrawTriangle}}
+\index{DrawTriangle@{DrawTriangle}!olc::PixelGameEngine@{olc::PixelGameEngine}}
+\doxysubsubsection{\texorpdfstring{DrawTriangle()}{DrawTriangle()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
+{\footnotesize\ttfamily void olc\+::\+Pixel\+Game\+Engine\+::\+Draw\+Triangle (\begin{DoxyParamCaption}\item[{int32\+\_\+t}]{x1,  }\item[{int32\+\_\+t}]{y1,  }\item[{int32\+\_\+t}]{x2,  }\item[{int32\+\_\+t}]{y2,  }\item[{int32\+\_\+t}]{x3,  }\item[{int32\+\_\+t}]{y3,  }\item[{\mbox{\hyperlink{structolc_1_1_pixel}{Pixel}}}]{p = {\ttfamily \mbox{\hyperlink{namespaceolc_ae3de4726bf87f2d74693e62d76816db1}{olc\+::\+W\+H\+I\+TE}}} }\end{DoxyParamCaption})}
+
+\mbox{\Hypertarget{classolc_1_1_pixel_game_engine_ae6cc4bd274522bf9ac36054eda6c95ac}\label{classolc_1_1_pixel_game_engine_ae6cc4bd274522bf9ac36054eda6c95ac}} 
+\index{olc::PixelGameEngine@{olc::PixelGameEngine}!DrawWarpedDecal@{DrawWarpedDecal}}
+\index{DrawWarpedDecal@{DrawWarpedDecal}!olc::PixelGameEngine@{olc::PixelGameEngine}}
+\doxysubsubsection{\texorpdfstring{DrawWarpedDecal()}{DrawWarpedDecal()}\hspace{0.1cm}{\footnotesize\ttfamily [1/3]}}
+{\footnotesize\ttfamily void olc\+::\+Pixel\+Game\+Engine\+::\+Draw\+Warped\+Decal (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{classolc_1_1_decal}{olc\+::\+Decal}} $\ast$}]{decal,  }\item[{const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} $\ast$}]{pos,  }\item[{const \mbox{\hyperlink{structolc_1_1_pixel}{olc\+::\+Pixel}} \&}]{tint = {\ttfamily \mbox{\hyperlink{namespaceolc_ae3de4726bf87f2d74693e62d76816db1}{olc\+::\+W\+H\+I\+TE}}} }\end{DoxyParamCaption})}
+
+\mbox{\Hypertarget{classolc_1_1_pixel_game_engine_a65098b403a403c45041599893429b550}\label{classolc_1_1_pixel_game_engine_a65098b403a403c45041599893429b550}} 
+\index{olc::PixelGameEngine@{olc::PixelGameEngine}!DrawWarpedDecal@{DrawWarpedDecal}}
+\index{DrawWarpedDecal@{DrawWarpedDecal}!olc::PixelGameEngine@{olc::PixelGameEngine}}
+\doxysubsubsection{\texorpdfstring{DrawWarpedDecal()}{DrawWarpedDecal()}\hspace{0.1cm}{\footnotesize\ttfamily [2/3]}}
+{\footnotesize\ttfamily void olc\+::\+Pixel\+Game\+Engine\+::\+Draw\+Warped\+Decal (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{classolc_1_1_decal}{olc\+::\+Decal}} $\ast$}]{decal,  }\item[{const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}}(\&)}]{pos\mbox{[}4\mbox{]},  }\item[{const \mbox{\hyperlink{structolc_1_1_pixel}{olc\+::\+Pixel}} \&}]{tint = {\ttfamily \mbox{\hyperlink{namespaceolc_ae3de4726bf87f2d74693e62d76816db1}{olc\+::\+W\+H\+I\+TE}}} }\end{DoxyParamCaption})}
+
+\mbox{\Hypertarget{classolc_1_1_pixel_game_engine_a5174456bbdaace7cde233889f7ad6d72}\label{classolc_1_1_pixel_game_engine_a5174456bbdaace7cde233889f7ad6d72}} 
+\index{olc::PixelGameEngine@{olc::PixelGameEngine}!DrawWarpedDecal@{DrawWarpedDecal}}
+\index{DrawWarpedDecal@{DrawWarpedDecal}!olc::PixelGameEngine@{olc::PixelGameEngine}}
+\doxysubsubsection{\texorpdfstring{DrawWarpedDecal()}{DrawWarpedDecal()}\hspace{0.1cm}{\footnotesize\ttfamily [3/3]}}
+{\footnotesize\ttfamily void olc\+::\+Pixel\+Game\+Engine\+::\+Draw\+Warped\+Decal (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{classolc_1_1_decal}{olc\+::\+Decal}} $\ast$}]{decal,  }\item[{const std\+::array$<$ \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}}, 4 $>$ \&}]{pos,  }\item[{const \mbox{\hyperlink{structolc_1_1_pixel}{olc\+::\+Pixel}} \&}]{tint = {\ttfamily \mbox{\hyperlink{namespaceolc_ae3de4726bf87f2d74693e62d76816db1}{olc\+::\+W\+H\+I\+TE}}} }\end{DoxyParamCaption})}
+
+\mbox{\Hypertarget{classolc_1_1_pixel_game_engine_a1e3453e2a118596fa04a961f66c6fd46}\label{classolc_1_1_pixel_game_engine_a1e3453e2a118596fa04a961f66c6fd46}} 
+\index{olc::PixelGameEngine@{olc::PixelGameEngine}!EnableLayer@{EnableLayer}}
+\index{EnableLayer@{EnableLayer}!olc::PixelGameEngine@{olc::PixelGameEngine}}
+\doxysubsubsection{\texorpdfstring{EnableLayer()}{EnableLayer()}}
+{\footnotesize\ttfamily void olc\+::\+Pixel\+Game\+Engine\+::\+Enable\+Layer (\begin{DoxyParamCaption}\item[{uint8\+\_\+t}]{layer,  }\item[{bool}]{b }\end{DoxyParamCaption})}
+
+\mbox{\Hypertarget{classolc_1_1_pixel_game_engine_a169b1c8ca3116ac2338785b8ffe87954}\label{classolc_1_1_pixel_game_engine_a169b1c8ca3116ac2338785b8ffe87954}} 
+\index{olc::PixelGameEngine@{olc::PixelGameEngine}!FillCircle@{FillCircle}}
+\index{FillCircle@{FillCircle}!olc::PixelGameEngine@{olc::PixelGameEngine}}
+\doxysubsubsection{\texorpdfstring{FillCircle()}{FillCircle()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
+{\footnotesize\ttfamily void olc\+::\+Pixel\+Game\+Engine\+::\+Fill\+Circle (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{namespaceolc_a3c42697361e8a28424bcf8415aba3564}{olc\+::vi2d}} \&}]{pos,  }\item[{int32\+\_\+t}]{radius,  }\item[{\mbox{\hyperlink{structolc_1_1_pixel}{Pixel}}}]{p = {\ttfamily \mbox{\hyperlink{namespaceolc_ae3de4726bf87f2d74693e62d76816db1}{olc\+::\+W\+H\+I\+TE}}} }\end{DoxyParamCaption})}
+
+\mbox{\Hypertarget{classolc_1_1_pixel_game_engine_a483f56606fbbf3ab4850554491a853bd}\label{classolc_1_1_pixel_game_engine_a483f56606fbbf3ab4850554491a853bd}} 
+\index{olc::PixelGameEngine@{olc::PixelGameEngine}!FillCircle@{FillCircle}}
+\index{FillCircle@{FillCircle}!olc::PixelGameEngine@{olc::PixelGameEngine}}
+\doxysubsubsection{\texorpdfstring{FillCircle()}{FillCircle()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
+{\footnotesize\ttfamily void olc\+::\+Pixel\+Game\+Engine\+::\+Fill\+Circle (\begin{DoxyParamCaption}\item[{int32\+\_\+t}]{x,  }\item[{int32\+\_\+t}]{y,  }\item[{int32\+\_\+t}]{radius,  }\item[{\mbox{\hyperlink{structolc_1_1_pixel}{Pixel}}}]{p = {\ttfamily \mbox{\hyperlink{namespaceolc_ae3de4726bf87f2d74693e62d76816db1}{olc\+::\+W\+H\+I\+TE}}} }\end{DoxyParamCaption})}
+
+\mbox{\Hypertarget{classolc_1_1_pixel_game_engine_ae225f7027e20fe0f45a8190a992981cc}\label{classolc_1_1_pixel_game_engine_ae225f7027e20fe0f45a8190a992981cc}} 
+\index{olc::PixelGameEngine@{olc::PixelGameEngine}!FillRect@{FillRect}}
+\index{FillRect@{FillRect}!olc::PixelGameEngine@{olc::PixelGameEngine}}
+\doxysubsubsection{\texorpdfstring{FillRect()}{FillRect()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
+{\footnotesize\ttfamily void olc\+::\+Pixel\+Game\+Engine\+::\+Fill\+Rect (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{namespaceolc_a3c42697361e8a28424bcf8415aba3564}{olc\+::vi2d}} \&}]{pos,  }\item[{const \mbox{\hyperlink{namespaceolc_a3c42697361e8a28424bcf8415aba3564}{olc\+::vi2d}} \&}]{size,  }\item[{\mbox{\hyperlink{structolc_1_1_pixel}{Pixel}}}]{p = {\ttfamily \mbox{\hyperlink{namespaceolc_ae3de4726bf87f2d74693e62d76816db1}{olc\+::\+W\+H\+I\+TE}}} }\end{DoxyParamCaption})}
+
+\mbox{\Hypertarget{classolc_1_1_pixel_game_engine_a6b5e218bb4360f27a470f9e821721331}\label{classolc_1_1_pixel_game_engine_a6b5e218bb4360f27a470f9e821721331}} 
+\index{olc::PixelGameEngine@{olc::PixelGameEngine}!FillRect@{FillRect}}
+\index{FillRect@{FillRect}!olc::PixelGameEngine@{olc::PixelGameEngine}}
+\doxysubsubsection{\texorpdfstring{FillRect()}{FillRect()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
+{\footnotesize\ttfamily void olc\+::\+Pixel\+Game\+Engine\+::\+Fill\+Rect (\begin{DoxyParamCaption}\item[{int32\+\_\+t}]{x,  }\item[{int32\+\_\+t}]{y,  }\item[{int32\+\_\+t}]{w,  }\item[{int32\+\_\+t}]{h,  }\item[{\mbox{\hyperlink{structolc_1_1_pixel}{Pixel}}}]{p = {\ttfamily \mbox{\hyperlink{namespaceolc_ae3de4726bf87f2d74693e62d76816db1}{olc\+::\+W\+H\+I\+TE}}} }\end{DoxyParamCaption})}
+
+\mbox{\Hypertarget{classolc_1_1_pixel_game_engine_a02a26bca44e04f075f517bdae6ac0e9d}\label{classolc_1_1_pixel_game_engine_a02a26bca44e04f075f517bdae6ac0e9d}} 
+\index{olc::PixelGameEngine@{olc::PixelGameEngine}!FillRectDecal@{FillRectDecal}}
+\index{FillRectDecal@{FillRectDecal}!olc::PixelGameEngine@{olc::PixelGameEngine}}
+\doxysubsubsection{\texorpdfstring{FillRectDecal()}{FillRectDecal()}}
+{\footnotesize\ttfamily void olc\+::\+Pixel\+Game\+Engine\+::\+Fill\+Rect\+Decal (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&}]{pos,  }\item[{const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&}]{size,  }\item[{const \mbox{\hyperlink{structolc_1_1_pixel}{olc\+::\+Pixel}}}]{col = {\ttfamily \mbox{\hyperlink{namespaceolc_ae3de4726bf87f2d74693e62d76816db1}{olc\+::\+W\+H\+I\+TE}}} }\end{DoxyParamCaption})}
+
+\mbox{\Hypertarget{classolc_1_1_pixel_game_engine_a091224d5937210726d25c8cdeb4a951e}\label{classolc_1_1_pixel_game_engine_a091224d5937210726d25c8cdeb4a951e}} 
+\index{olc::PixelGameEngine@{olc::PixelGameEngine}!FillTriangle@{FillTriangle}}
+\index{FillTriangle@{FillTriangle}!olc::PixelGameEngine@{olc::PixelGameEngine}}
+\doxysubsubsection{\texorpdfstring{FillTriangle()}{FillTriangle()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
+{\footnotesize\ttfamily void olc\+::\+Pixel\+Game\+Engine\+::\+Fill\+Triangle (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{namespaceolc_a3c42697361e8a28424bcf8415aba3564}{olc\+::vi2d}} \&}]{pos1,  }\item[{const \mbox{\hyperlink{namespaceolc_a3c42697361e8a28424bcf8415aba3564}{olc\+::vi2d}} \&}]{pos2,  }\item[{const \mbox{\hyperlink{namespaceolc_a3c42697361e8a28424bcf8415aba3564}{olc\+::vi2d}} \&}]{pos3,  }\item[{\mbox{\hyperlink{structolc_1_1_pixel}{Pixel}}}]{p = {\ttfamily \mbox{\hyperlink{namespaceolc_ae3de4726bf87f2d74693e62d76816db1}{olc\+::\+W\+H\+I\+TE}}} }\end{DoxyParamCaption})}
+
+\mbox{\Hypertarget{classolc_1_1_pixel_game_engine_ad31abffe6c4d0b864b8f7762c33b7a7d}\label{classolc_1_1_pixel_game_engine_ad31abffe6c4d0b864b8f7762c33b7a7d}} 
+\index{olc::PixelGameEngine@{olc::PixelGameEngine}!FillTriangle@{FillTriangle}}
+\index{FillTriangle@{FillTriangle}!olc::PixelGameEngine@{olc::PixelGameEngine}}
+\doxysubsubsection{\texorpdfstring{FillTriangle()}{FillTriangle()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
+{\footnotesize\ttfamily void olc\+::\+Pixel\+Game\+Engine\+::\+Fill\+Triangle (\begin{DoxyParamCaption}\item[{int32\+\_\+t}]{x1,  }\item[{int32\+\_\+t}]{y1,  }\item[{int32\+\_\+t}]{x2,  }\item[{int32\+\_\+t}]{y2,  }\item[{int32\+\_\+t}]{x3,  }\item[{int32\+\_\+t}]{y3,  }\item[{\mbox{\hyperlink{structolc_1_1_pixel}{Pixel}}}]{p = {\ttfamily \mbox{\hyperlink{namespaceolc_ae3de4726bf87f2d74693e62d76816db1}{olc\+::\+W\+H\+I\+TE}}} }\end{DoxyParamCaption})}
+
+\mbox{\Hypertarget{classolc_1_1_pixel_game_engine_a5fd95bd9571bc3ed3fd5d7d110e48cff}\label{classolc_1_1_pixel_game_engine_a5fd95bd9571bc3ed3fd5d7d110e48cff}} 
+\index{olc::PixelGameEngine@{olc::PixelGameEngine}!GetDrawTarget@{GetDrawTarget}}
+\index{GetDrawTarget@{GetDrawTarget}!olc::PixelGameEngine@{olc::PixelGameEngine}}
+\doxysubsubsection{\texorpdfstring{GetDrawTarget()}{GetDrawTarget()}}
+{\footnotesize\ttfamily \mbox{\hyperlink{classolc_1_1_sprite}{olc\+::\+Sprite}}$\ast$ olc\+::\+Pixel\+Game\+Engine\+::\+Get\+Draw\+Target (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const}
+
+\mbox{\Hypertarget{classolc_1_1_pixel_game_engine_a4ee3dbff01900d71e62bfe499b1c83c3}\label{classolc_1_1_pixel_game_engine_a4ee3dbff01900d71e62bfe499b1c83c3}} 
+\index{olc::PixelGameEngine@{olc::PixelGameEngine}!GetDrawTargetHeight@{GetDrawTargetHeight}}
+\index{GetDrawTargetHeight@{GetDrawTargetHeight}!olc::PixelGameEngine@{olc::PixelGameEngine}}
+\doxysubsubsection{\texorpdfstring{GetDrawTargetHeight()}{GetDrawTargetHeight()}}
+{\footnotesize\ttfamily int32\+\_\+t olc\+::\+Pixel\+Game\+Engine\+::\+Get\+Draw\+Target\+Height (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const}
+
+\mbox{\Hypertarget{classolc_1_1_pixel_game_engine_a45d918f65f5fee13e654878d8271326b}\label{classolc_1_1_pixel_game_engine_a45d918f65f5fee13e654878d8271326b}} 
+\index{olc::PixelGameEngine@{olc::PixelGameEngine}!GetDrawTargetWidth@{GetDrawTargetWidth}}
+\index{GetDrawTargetWidth@{GetDrawTargetWidth}!olc::PixelGameEngine@{olc::PixelGameEngine}}
+\doxysubsubsection{\texorpdfstring{GetDrawTargetWidth()}{GetDrawTargetWidth()}}
+{\footnotesize\ttfamily int32\+\_\+t olc\+::\+Pixel\+Game\+Engine\+::\+Get\+Draw\+Target\+Width (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const}
+
+\mbox{\Hypertarget{classolc_1_1_pixel_game_engine_af881473291c52d849dbef155e359b27c}\label{classolc_1_1_pixel_game_engine_af881473291c52d849dbef155e359b27c}} 
+\index{olc::PixelGameEngine@{olc::PixelGameEngine}!GetElapsedTime@{GetElapsedTime}}
+\index{GetElapsedTime@{GetElapsedTime}!olc::PixelGameEngine@{olc::PixelGameEngine}}
+\doxysubsubsection{\texorpdfstring{GetElapsedTime()}{GetElapsedTime()}}
+{\footnotesize\ttfamily float olc\+::\+Pixel\+Game\+Engine\+::\+Get\+Elapsed\+Time (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const}
+
+\mbox{\Hypertarget{classolc_1_1_pixel_game_engine_abab955edc6d1ec6023a7806509582f52}\label{classolc_1_1_pixel_game_engine_abab955edc6d1ec6023a7806509582f52}} 
+\index{olc::PixelGameEngine@{olc::PixelGameEngine}!GetFontSprite@{GetFontSprite}}
+\index{GetFontSprite@{GetFontSprite}!olc::PixelGameEngine@{olc::PixelGameEngine}}
+\doxysubsubsection{\texorpdfstring{GetFontSprite()}{GetFontSprite()}}
+{\footnotesize\ttfamily \mbox{\hyperlink{classolc_1_1_sprite}{olc\+::\+Sprite}}$\ast$ olc\+::\+Pixel\+Game\+Engine\+::\+Get\+Font\+Sprite (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}
+
+\mbox{\Hypertarget{classolc_1_1_pixel_game_engine_a89d27938d71d49b42a20307444147697}\label{classolc_1_1_pixel_game_engine_a89d27938d71d49b42a20307444147697}} 
+\index{olc::PixelGameEngine@{olc::PixelGameEngine}!GetFPS@{GetFPS}}
+\index{GetFPS@{GetFPS}!olc::PixelGameEngine@{olc::PixelGameEngine}}
+\doxysubsubsection{\texorpdfstring{GetFPS()}{GetFPS()}}
+{\footnotesize\ttfamily uint32\+\_\+t olc\+::\+Pixel\+Game\+Engine\+::\+Get\+F\+PS (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const}
+
+\mbox{\Hypertarget{classolc_1_1_pixel_game_engine_a27cb4cb68d5e1ca7df8014d66221269e}\label{classolc_1_1_pixel_game_engine_a27cb4cb68d5e1ca7df8014d66221269e}} 
+\index{olc::PixelGameEngine@{olc::PixelGameEngine}!GetKey@{GetKey}}
+\index{GetKey@{GetKey}!olc::PixelGameEngine@{olc::PixelGameEngine}}
+\doxysubsubsection{\texorpdfstring{GetKey()}{GetKey()}}
+{\footnotesize\ttfamily \mbox{\hyperlink{structolc_1_1_h_w_button}{H\+W\+Button}} olc\+::\+Pixel\+Game\+Engine\+::\+Get\+Key (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7}{Key}}}]{k }\end{DoxyParamCaption}) const}
+
+\mbox{\Hypertarget{classolc_1_1_pixel_game_engine_aac31baad6daf55b926f6add9c44a5591}\label{classolc_1_1_pixel_game_engine_aac31baad6daf55b926f6add9c44a5591}} 
+\index{olc::PixelGameEngine@{olc::PixelGameEngine}!GetLayers@{GetLayers}}
+\index{GetLayers@{GetLayers}!olc::PixelGameEngine@{olc::PixelGameEngine}}
+\doxysubsubsection{\texorpdfstring{GetLayers()}{GetLayers()}}
+{\footnotesize\ttfamily std\+::vector$<$\mbox{\hyperlink{structolc_1_1_layer_desc}{Layer\+Desc}}$>$\& olc\+::\+Pixel\+Game\+Engine\+::\+Get\+Layers (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}
+
+\mbox{\Hypertarget{classolc_1_1_pixel_game_engine_abdf9f5d70c9e24ab9358a8dd07474105}\label{classolc_1_1_pixel_game_engine_abdf9f5d70c9e24ab9358a8dd07474105}} 
+\index{olc::PixelGameEngine@{olc::PixelGameEngine}!GetMouse@{GetMouse}}
+\index{GetMouse@{GetMouse}!olc::PixelGameEngine@{olc::PixelGameEngine}}
+\doxysubsubsection{\texorpdfstring{GetMouse()}{GetMouse()}}
+{\footnotesize\ttfamily \mbox{\hyperlink{structolc_1_1_h_w_button}{H\+W\+Button}} olc\+::\+Pixel\+Game\+Engine\+::\+Get\+Mouse (\begin{DoxyParamCaption}\item[{uint32\+\_\+t}]{b }\end{DoxyParamCaption}) const}
+
+\mbox{\Hypertarget{classolc_1_1_pixel_game_engine_af11fb390dbc5a3168c26fe911690dcbe}\label{classolc_1_1_pixel_game_engine_af11fb390dbc5a3168c26fe911690dcbe}} 
+\index{olc::PixelGameEngine@{olc::PixelGameEngine}!GetMousePos@{GetMousePos}}
+\index{GetMousePos@{GetMousePos}!olc::PixelGameEngine@{olc::PixelGameEngine}}
+\doxysubsubsection{\texorpdfstring{GetMousePos()}{GetMousePos()}}
+{\footnotesize\ttfamily const \mbox{\hyperlink{namespaceolc_a3c42697361e8a28424bcf8415aba3564}{olc\+::vi2d}}\& olc\+::\+Pixel\+Game\+Engine\+::\+Get\+Mouse\+Pos (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const}
+
+\mbox{\Hypertarget{classolc_1_1_pixel_game_engine_a9640286e4a7cd03c6f545b1df7373269}\label{classolc_1_1_pixel_game_engine_a9640286e4a7cd03c6f545b1df7373269}} 
+\index{olc::PixelGameEngine@{olc::PixelGameEngine}!GetMouseWheel@{GetMouseWheel}}
+\index{GetMouseWheel@{GetMouseWheel}!olc::PixelGameEngine@{olc::PixelGameEngine}}
+\doxysubsubsection{\texorpdfstring{GetMouseWheel()}{GetMouseWheel()}}
+{\footnotesize\ttfamily int32\+\_\+t olc\+::\+Pixel\+Game\+Engine\+::\+Get\+Mouse\+Wheel (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const}
+
+\mbox{\Hypertarget{classolc_1_1_pixel_game_engine_a2ec1d2a1f3777338fb4388c620344a34}\label{classolc_1_1_pixel_game_engine_a2ec1d2a1f3777338fb4388c620344a34}} 
+\index{olc::PixelGameEngine@{olc::PixelGameEngine}!GetMouseX@{GetMouseX}}
+\index{GetMouseX@{GetMouseX}!olc::PixelGameEngine@{olc::PixelGameEngine}}
+\doxysubsubsection{\texorpdfstring{GetMouseX()}{GetMouseX()}}
+{\footnotesize\ttfamily int32\+\_\+t olc\+::\+Pixel\+Game\+Engine\+::\+Get\+MouseX (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const}
+
+\mbox{\Hypertarget{classolc_1_1_pixel_game_engine_a8dde80c07547240f5e72b4f2fcd89668}\label{classolc_1_1_pixel_game_engine_a8dde80c07547240f5e72b4f2fcd89668}} 
+\index{olc::PixelGameEngine@{olc::PixelGameEngine}!GetMouseY@{GetMouseY}}
+\index{GetMouseY@{GetMouseY}!olc::PixelGameEngine@{olc::PixelGameEngine}}
+\doxysubsubsection{\texorpdfstring{GetMouseY()}{GetMouseY()}}
+{\footnotesize\ttfamily int32\+\_\+t olc\+::\+Pixel\+Game\+Engine\+::\+Get\+MouseY (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const}
+
+\mbox{\Hypertarget{classolc_1_1_pixel_game_engine_ad4f95a449dc09a2650ec771e6fa83049}\label{classolc_1_1_pixel_game_engine_ad4f95a449dc09a2650ec771e6fa83049}} 
+\index{olc::PixelGameEngine@{olc::PixelGameEngine}!GetPixelMode@{GetPixelMode}}
+\index{GetPixelMode@{GetPixelMode}!olc::PixelGameEngine@{olc::PixelGameEngine}}
+\doxysubsubsection{\texorpdfstring{GetPixelMode()}{GetPixelMode()}}
+{\footnotesize\ttfamily \mbox{\hyperlink{structolc_1_1_pixel_ae9012164940526ddb09b217dbbddfd65}{Pixel\+::\+Mode}} olc\+::\+Pixel\+Game\+Engine\+::\+Get\+Pixel\+Mode (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}
+
+\mbox{\Hypertarget{classolc_1_1_pixel_game_engine_a721fb4cfac75f76c6d5832415fccbe61}\label{classolc_1_1_pixel_game_engine_a721fb4cfac75f76c6d5832415fccbe61}} 
+\index{olc::PixelGameEngine@{olc::PixelGameEngine}!GetPixelSize@{GetPixelSize}}
+\index{GetPixelSize@{GetPixelSize}!olc::PixelGameEngine@{olc::PixelGameEngine}}
+\doxysubsubsection{\texorpdfstring{GetPixelSize()}{GetPixelSize()}}
+{\footnotesize\ttfamily const \mbox{\hyperlink{namespaceolc_a3c42697361e8a28424bcf8415aba3564}{olc\+::vi2d}}\& olc\+::\+Pixel\+Game\+Engine\+::\+Get\+Pixel\+Size (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const}
+
+\mbox{\Hypertarget{classolc_1_1_pixel_game_engine_a5602d50220bd7edbd77fc67eaa981ce5}\label{classolc_1_1_pixel_game_engine_a5602d50220bd7edbd77fc67eaa981ce5}} 
+\index{olc::PixelGameEngine@{olc::PixelGameEngine}!GetScreenPixelSize@{GetScreenPixelSize}}
+\index{GetScreenPixelSize@{GetScreenPixelSize}!olc::PixelGameEngine@{olc::PixelGameEngine}}
+\doxysubsubsection{\texorpdfstring{GetScreenPixelSize()}{GetScreenPixelSize()}}
+{\footnotesize\ttfamily const \mbox{\hyperlink{namespaceolc_a3c42697361e8a28424bcf8415aba3564}{olc\+::vi2d}}\& olc\+::\+Pixel\+Game\+Engine\+::\+Get\+Screen\+Pixel\+Size (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const}
+
+\mbox{\Hypertarget{classolc_1_1_pixel_game_engine_aa70121ffb85733f8ea2e7e5d0b4b311b}\label{classolc_1_1_pixel_game_engine_aa70121ffb85733f8ea2e7e5d0b4b311b}} 
+\index{olc::PixelGameEngine@{olc::PixelGameEngine}!GetTextSize@{GetTextSize}}
+\index{GetTextSize@{GetTextSize}!olc::PixelGameEngine@{olc::PixelGameEngine}}
+\doxysubsubsection{\texorpdfstring{GetTextSize()}{GetTextSize()}}
+{\footnotesize\ttfamily \mbox{\hyperlink{namespaceolc_a3c42697361e8a28424bcf8415aba3564}{olc\+::vi2d}} olc\+::\+Pixel\+Game\+Engine\+::\+Get\+Text\+Size (\begin{DoxyParamCaption}\item[{const std\+::string \&}]{s }\end{DoxyParamCaption})}
+
+\mbox{\Hypertarget{classolc_1_1_pixel_game_engine_ab282eddb9b8fe14d01311c8613f79e84}\label{classolc_1_1_pixel_game_engine_ab282eddb9b8fe14d01311c8613f79e84}} 
+\index{olc::PixelGameEngine@{olc::PixelGameEngine}!GetTextSizeProp@{GetTextSizeProp}}
+\index{GetTextSizeProp@{GetTextSizeProp}!olc::PixelGameEngine@{olc::PixelGameEngine}}
+\doxysubsubsection{\texorpdfstring{GetTextSizeProp()}{GetTextSizeProp()}}
+{\footnotesize\ttfamily \mbox{\hyperlink{namespaceolc_a3c42697361e8a28424bcf8415aba3564}{olc\+::vi2d}} olc\+::\+Pixel\+Game\+Engine\+::\+Get\+Text\+Size\+Prop (\begin{DoxyParamCaption}\item[{const std\+::string \&}]{s }\end{DoxyParamCaption})}
+
+\mbox{\Hypertarget{classolc_1_1_pixel_game_engine_a54b5141da371af51541874dd68e4e6a2}\label{classolc_1_1_pixel_game_engine_a54b5141da371af51541874dd68e4e6a2}} 
+\index{olc::PixelGameEngine@{olc::PixelGameEngine}!GetWindowMouse@{GetWindowMouse}}
+\index{GetWindowMouse@{GetWindowMouse}!olc::PixelGameEngine@{olc::PixelGameEngine}}
+\doxysubsubsection{\texorpdfstring{GetWindowMouse()}{GetWindowMouse()}}
+{\footnotesize\ttfamily const \mbox{\hyperlink{namespaceolc_a3c42697361e8a28424bcf8415aba3564}{olc\+::vi2d}}\& olc\+::\+Pixel\+Game\+Engine\+::\+Get\+Window\+Mouse (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const}
+
+\mbox{\Hypertarget{classolc_1_1_pixel_game_engine_aee10e917aeb1ce4625561d71126e0a7d}\label{classolc_1_1_pixel_game_engine_aee10e917aeb1ce4625561d71126e0a7d}} 
+\index{olc::PixelGameEngine@{olc::PixelGameEngine}!GetWindowSize@{GetWindowSize}}
+\index{GetWindowSize@{GetWindowSize}!olc::PixelGameEngine@{olc::PixelGameEngine}}
+\doxysubsubsection{\texorpdfstring{GetWindowSize()}{GetWindowSize()}}
+{\footnotesize\ttfamily const \mbox{\hyperlink{namespaceolc_a3c42697361e8a28424bcf8415aba3564}{olc\+::vi2d}}\& olc\+::\+Pixel\+Game\+Engine\+::\+Get\+Window\+Size (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const}
+
+\mbox{\Hypertarget{classolc_1_1_pixel_game_engine_a11d9ed8762b81e0bd6bbe4349255b1e8}\label{classolc_1_1_pixel_game_engine_a11d9ed8762b81e0bd6bbe4349255b1e8}} 
+\index{olc::PixelGameEngine@{olc::PixelGameEngine}!GradientFillRectDecal@{GradientFillRectDecal}}
+\index{GradientFillRectDecal@{GradientFillRectDecal}!olc::PixelGameEngine@{olc::PixelGameEngine}}
+\doxysubsubsection{\texorpdfstring{GradientFillRectDecal()}{GradientFillRectDecal()}}
+{\footnotesize\ttfamily void olc\+::\+Pixel\+Game\+Engine\+::\+Gradient\+Fill\+Rect\+Decal (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&}]{pos,  }\item[{const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&}]{size,  }\item[{const \mbox{\hyperlink{structolc_1_1_pixel}{olc\+::\+Pixel}}}]{col\+TL,  }\item[{const \mbox{\hyperlink{structolc_1_1_pixel}{olc\+::\+Pixel}}}]{col\+BL,  }\item[{const \mbox{\hyperlink{structolc_1_1_pixel}{olc\+::\+Pixel}}}]{col\+BR,  }\item[{const \mbox{\hyperlink{structolc_1_1_pixel}{olc\+::\+Pixel}}}]{col\+TR }\end{DoxyParamCaption})}
+
+\mbox{\Hypertarget{classolc_1_1_pixel_game_engine_a92192402b5d499ab8b230dfb9393f3b7}\label{classolc_1_1_pixel_game_engine_a92192402b5d499ab8b230dfb9393f3b7}} 
+\index{olc::PixelGameEngine@{olc::PixelGameEngine}!IsFocused@{IsFocused}}
+\index{IsFocused@{IsFocused}!olc::PixelGameEngine@{olc::PixelGameEngine}}
+\doxysubsubsection{\texorpdfstring{IsFocused()}{IsFocused()}}
+{\footnotesize\ttfamily bool olc\+::\+Pixel\+Game\+Engine\+::\+Is\+Focused (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const}
+
+\mbox{\Hypertarget{classolc_1_1_pixel_game_engine_a7afa0b57c65bd5d9a54c602afd4fe756}\label{classolc_1_1_pixel_game_engine_a7afa0b57c65bd5d9a54c602afd4fe756}} 
+\index{olc::PixelGameEngine@{olc::PixelGameEngine}!olc\_ConfigureSystem@{olc\_ConfigureSystem}}
+\index{olc\_ConfigureSystem@{olc\_ConfigureSystem}!olc::PixelGameEngine@{olc::PixelGameEngine}}
+\doxysubsubsection{\texorpdfstring{olc\_ConfigureSystem()}{olc\_ConfigureSystem()}}
+{\footnotesize\ttfamily virtual void olc\+::\+Pixel\+Game\+Engine\+::olc\+\_\+\+Configure\+System (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}
+
+\mbox{\Hypertarget{classolc_1_1_pixel_game_engine_a117eedbe1e9366fe2bf402334beb9692}\label{classolc_1_1_pixel_game_engine_a117eedbe1e9366fe2bf402334beb9692}} 
+\index{olc::PixelGameEngine@{olc::PixelGameEngine}!olc\_ConstructFontSheet@{olc\_ConstructFontSheet}}
+\index{olc\_ConstructFontSheet@{olc\_ConstructFontSheet}!olc::PixelGameEngine@{olc::PixelGameEngine}}
+\doxysubsubsection{\texorpdfstring{olc\_ConstructFontSheet()}{olc\_ConstructFontSheet()}}
+{\footnotesize\ttfamily void olc\+::\+Pixel\+Game\+Engine\+::olc\+\_\+\+Construct\+Font\+Sheet (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}
+
+\mbox{\Hypertarget{classolc_1_1_pixel_game_engine_a0018131435f88bb5de406fd11ee54058}\label{classolc_1_1_pixel_game_engine_a0018131435f88bb5de406fd11ee54058}} 
+\index{olc::PixelGameEngine@{olc::PixelGameEngine}!olc\_CoreUpdate@{olc\_CoreUpdate}}
+\index{olc\_CoreUpdate@{olc\_CoreUpdate}!olc::PixelGameEngine@{olc::PixelGameEngine}}
+\doxysubsubsection{\texorpdfstring{olc\_CoreUpdate()}{olc\_CoreUpdate()}}
+{\footnotesize\ttfamily void olc\+::\+Pixel\+Game\+Engine\+::olc\+\_\+\+Core\+Update (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}
+
+\mbox{\Hypertarget{classolc_1_1_pixel_game_engine_a7b0f41bc4b4258a5c4fa1742b41d15e3}\label{classolc_1_1_pixel_game_engine_a7b0f41bc4b4258a5c4fa1742b41d15e3}} 
+\index{olc::PixelGameEngine@{olc::PixelGameEngine}!olc\_IsRunning@{olc\_IsRunning}}
+\index{olc\_IsRunning@{olc\_IsRunning}!olc::PixelGameEngine@{olc::PixelGameEngine}}
+\doxysubsubsection{\texorpdfstring{olc\_IsRunning()}{olc\_IsRunning()}}
+{\footnotesize\ttfamily bool olc\+::\+Pixel\+Game\+Engine\+::olc\+\_\+\+Is\+Running (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}
+
+\mbox{\Hypertarget{classolc_1_1_pixel_game_engine_aa19aafa028a7e2eaaf7b2235a9bd2256}\label{classolc_1_1_pixel_game_engine_aa19aafa028a7e2eaaf7b2235a9bd2256}} 
+\index{olc::PixelGameEngine@{olc::PixelGameEngine}!olc\_PrepareEngine@{olc\_PrepareEngine}}
+\index{olc\_PrepareEngine@{olc\_PrepareEngine}!olc::PixelGameEngine@{olc::PixelGameEngine}}
+\doxysubsubsection{\texorpdfstring{olc\_PrepareEngine()}{olc\_PrepareEngine()}}
+{\footnotesize\ttfamily void olc\+::\+Pixel\+Game\+Engine\+::olc\+\_\+\+Prepare\+Engine (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}
+
+\mbox{\Hypertarget{classolc_1_1_pixel_game_engine_a417b6cd564ccad1d878ae51cfdd3be8e}\label{classolc_1_1_pixel_game_engine_a417b6cd564ccad1d878ae51cfdd3be8e}} 
+\index{olc::PixelGameEngine@{olc::PixelGameEngine}!olc\_Reanimate@{olc\_Reanimate}}
+\index{olc\_Reanimate@{olc\_Reanimate}!olc::PixelGameEngine@{olc::PixelGameEngine}}
+\doxysubsubsection{\texorpdfstring{olc\_Reanimate()}{olc\_Reanimate()}}
+{\footnotesize\ttfamily void olc\+::\+Pixel\+Game\+Engine\+::olc\+\_\+\+Reanimate (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}
+
+\mbox{\Hypertarget{classolc_1_1_pixel_game_engine_a2da1f2ebbc1a5fbdbf52890e6ac707b1}\label{classolc_1_1_pixel_game_engine_a2da1f2ebbc1a5fbdbf52890e6ac707b1}} 
+\index{olc::PixelGameEngine@{olc::PixelGameEngine}!olc\_Terminate@{olc\_Terminate}}
+\index{olc\_Terminate@{olc\_Terminate}!olc::PixelGameEngine@{olc::PixelGameEngine}}
+\doxysubsubsection{\texorpdfstring{olc\_Terminate()}{olc\_Terminate()}}
+{\footnotesize\ttfamily void olc\+::\+Pixel\+Game\+Engine\+::olc\+\_\+\+Terminate (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}
+
+\mbox{\Hypertarget{classolc_1_1_pixel_game_engine_a7343712504f23f86c8490646ffc50e7f}\label{classolc_1_1_pixel_game_engine_a7343712504f23f86c8490646ffc50e7f}} 
+\index{olc::PixelGameEngine@{olc::PixelGameEngine}!olc\_UpdateKeyFocus@{olc\_UpdateKeyFocus}}
+\index{olc\_UpdateKeyFocus@{olc\_UpdateKeyFocus}!olc::PixelGameEngine@{olc::PixelGameEngine}}
+\doxysubsubsection{\texorpdfstring{olc\_UpdateKeyFocus()}{olc\_UpdateKeyFocus()}}
+{\footnotesize\ttfamily void olc\+::\+Pixel\+Game\+Engine\+::olc\+\_\+\+Update\+Key\+Focus (\begin{DoxyParamCaption}\item[{bool}]{state }\end{DoxyParamCaption})}
+
+\mbox{\Hypertarget{classolc_1_1_pixel_game_engine_a61fde81846a9ef7f8fcf63080e6d350b}\label{classolc_1_1_pixel_game_engine_a61fde81846a9ef7f8fcf63080e6d350b}} 
+\index{olc::PixelGameEngine@{olc::PixelGameEngine}!olc\_UpdateKeyState@{olc\_UpdateKeyState}}
+\index{olc\_UpdateKeyState@{olc\_UpdateKeyState}!olc::PixelGameEngine@{olc::PixelGameEngine}}
+\doxysubsubsection{\texorpdfstring{olc\_UpdateKeyState()}{olc\_UpdateKeyState()}}
+{\footnotesize\ttfamily void olc\+::\+Pixel\+Game\+Engine\+::olc\+\_\+\+Update\+Key\+State (\begin{DoxyParamCaption}\item[{int32\+\_\+t}]{key,  }\item[{bool}]{state }\end{DoxyParamCaption})}
+
+\mbox{\Hypertarget{classolc_1_1_pixel_game_engine_a6e10d8fae75e26dea03b0b447667a308}\label{classolc_1_1_pixel_game_engine_a6e10d8fae75e26dea03b0b447667a308}} 
+\index{olc::PixelGameEngine@{olc::PixelGameEngine}!olc\_UpdateMouse@{olc\_UpdateMouse}}
+\index{olc\_UpdateMouse@{olc\_UpdateMouse}!olc::PixelGameEngine@{olc::PixelGameEngine}}
+\doxysubsubsection{\texorpdfstring{olc\_UpdateMouse()}{olc\_UpdateMouse()}}
+{\footnotesize\ttfamily void olc\+::\+Pixel\+Game\+Engine\+::olc\+\_\+\+Update\+Mouse (\begin{DoxyParamCaption}\item[{int32\+\_\+t}]{x,  }\item[{int32\+\_\+t}]{y }\end{DoxyParamCaption})}
+
+\mbox{\Hypertarget{classolc_1_1_pixel_game_engine_ab3150ba487188e64940c294998fa38d3}\label{classolc_1_1_pixel_game_engine_ab3150ba487188e64940c294998fa38d3}} 
+\index{olc::PixelGameEngine@{olc::PixelGameEngine}!olc\_UpdateMouseFocus@{olc\_UpdateMouseFocus}}
+\index{olc\_UpdateMouseFocus@{olc\_UpdateMouseFocus}!olc::PixelGameEngine@{olc::PixelGameEngine}}
+\doxysubsubsection{\texorpdfstring{olc\_UpdateMouseFocus()}{olc\_UpdateMouseFocus()}}
+{\footnotesize\ttfamily void olc\+::\+Pixel\+Game\+Engine\+::olc\+\_\+\+Update\+Mouse\+Focus (\begin{DoxyParamCaption}\item[{bool}]{state }\end{DoxyParamCaption})}
+
+\mbox{\Hypertarget{classolc_1_1_pixel_game_engine_a59645c08376a7d4e58673919f3bd0dfb}\label{classolc_1_1_pixel_game_engine_a59645c08376a7d4e58673919f3bd0dfb}} 
+\index{olc::PixelGameEngine@{olc::PixelGameEngine}!olc\_UpdateMouseState@{olc\_UpdateMouseState}}
+\index{olc\_UpdateMouseState@{olc\_UpdateMouseState}!olc::PixelGameEngine@{olc::PixelGameEngine}}
+\doxysubsubsection{\texorpdfstring{olc\_UpdateMouseState()}{olc\_UpdateMouseState()}}
+{\footnotesize\ttfamily void olc\+::\+Pixel\+Game\+Engine\+::olc\+\_\+\+Update\+Mouse\+State (\begin{DoxyParamCaption}\item[{int32\+\_\+t}]{button,  }\item[{bool}]{state }\end{DoxyParamCaption})}
+
+\mbox{\Hypertarget{classolc_1_1_pixel_game_engine_aa33ea5e40d4577e3c44fcf4a26cecadd}\label{classolc_1_1_pixel_game_engine_aa33ea5e40d4577e3c44fcf4a26cecadd}} 
+\index{olc::PixelGameEngine@{olc::PixelGameEngine}!olc\_UpdateMouseWheel@{olc\_UpdateMouseWheel}}
+\index{olc\_UpdateMouseWheel@{olc\_UpdateMouseWheel}!olc::PixelGameEngine@{olc::PixelGameEngine}}
+\doxysubsubsection{\texorpdfstring{olc\_UpdateMouseWheel()}{olc\_UpdateMouseWheel()}}
+{\footnotesize\ttfamily void olc\+::\+Pixel\+Game\+Engine\+::olc\+\_\+\+Update\+Mouse\+Wheel (\begin{DoxyParamCaption}\item[{int32\+\_\+t}]{delta }\end{DoxyParamCaption})}
+
+\mbox{\Hypertarget{classolc_1_1_pixel_game_engine_af1cd38cf0df2e7c3ab53bee66ec63771}\label{classolc_1_1_pixel_game_engine_af1cd38cf0df2e7c3ab53bee66ec63771}} 
+\index{olc::PixelGameEngine@{olc::PixelGameEngine}!olc\_UpdateViewport@{olc\_UpdateViewport}}
+\index{olc\_UpdateViewport@{olc\_UpdateViewport}!olc::PixelGameEngine@{olc::PixelGameEngine}}
+\doxysubsubsection{\texorpdfstring{olc\_UpdateViewport()}{olc\_UpdateViewport()}}
+{\footnotesize\ttfamily void olc\+::\+Pixel\+Game\+Engine\+::olc\+\_\+\+Update\+Viewport (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}
+
+\mbox{\Hypertarget{classolc_1_1_pixel_game_engine_a4f0dae00f21f8d71d4544d50593234c3}\label{classolc_1_1_pixel_game_engine_a4f0dae00f21f8d71d4544d50593234c3}} 
+\index{olc::PixelGameEngine@{olc::PixelGameEngine}!olc\_UpdateWindowSize@{olc\_UpdateWindowSize}}
+\index{olc\_UpdateWindowSize@{olc\_UpdateWindowSize}!olc::PixelGameEngine@{olc::PixelGameEngine}}
+\doxysubsubsection{\texorpdfstring{olc\_UpdateWindowSize()}{olc\_UpdateWindowSize()}}
+{\footnotesize\ttfamily void olc\+::\+Pixel\+Game\+Engine\+::olc\+\_\+\+Update\+Window\+Size (\begin{DoxyParamCaption}\item[{int32\+\_\+t}]{x,  }\item[{int32\+\_\+t}]{y }\end{DoxyParamCaption})}
+
+\mbox{\Hypertarget{classolc_1_1_pixel_game_engine_a6a33b6ff7cd23dfd05b34416865fb5c3}\label{classolc_1_1_pixel_game_engine_a6a33b6ff7cd23dfd05b34416865fb5c3}} 
+\index{olc::PixelGameEngine@{olc::PixelGameEngine}!OnUserCreate@{OnUserCreate}}
+\index{OnUserCreate@{OnUserCreate}!olc::PixelGameEngine@{olc::PixelGameEngine}}
+\doxysubsubsection{\texorpdfstring{OnUserCreate()}{OnUserCreate()}}
+{\footnotesize\ttfamily virtual bool olc\+::\+Pixel\+Game\+Engine\+::\+On\+User\+Create (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}
+
+
+
+Reimplemented in \mbox{\hyperlink{class_game_client_a698bb8a4ba91211dc4fcaa4079d8d070}{Game\+Client}}.
+
+\mbox{\Hypertarget{classolc_1_1_pixel_game_engine_ad4fbf979865fb1f08250ea379f2de669}\label{classolc_1_1_pixel_game_engine_ad4fbf979865fb1f08250ea379f2de669}} 
+\index{olc::PixelGameEngine@{olc::PixelGameEngine}!OnUserDestroy@{OnUserDestroy}}
+\index{OnUserDestroy@{OnUserDestroy}!olc::PixelGameEngine@{olc::PixelGameEngine}}
+\doxysubsubsection{\texorpdfstring{OnUserDestroy()}{OnUserDestroy()}}
+{\footnotesize\ttfamily virtual bool olc\+::\+Pixel\+Game\+Engine\+::\+On\+User\+Destroy (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}
+
+\mbox{\Hypertarget{classolc_1_1_pixel_game_engine_af9379a3db341b0acb410ea543e30fdd1}\label{classolc_1_1_pixel_game_engine_af9379a3db341b0acb410ea543e30fdd1}} 
+\index{olc::PixelGameEngine@{olc::PixelGameEngine}!OnUserUpdate@{OnUserUpdate}}
+\index{OnUserUpdate@{OnUserUpdate}!olc::PixelGameEngine@{olc::PixelGameEngine}}
+\doxysubsubsection{\texorpdfstring{OnUserUpdate()}{OnUserUpdate()}}
+{\footnotesize\ttfamily virtual bool olc\+::\+Pixel\+Game\+Engine\+::\+On\+User\+Update (\begin{DoxyParamCaption}\item[{float}]{f\+Elapsed\+Time }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}
+
+
+
+Reimplemented in \mbox{\hyperlink{class_game_client_ab6e2efe37e67de64062bca35d8a11e2e}{Game\+Client}}.
+
+\mbox{\Hypertarget{classolc_1_1_pixel_game_engine_a49a2ead57239e1595cc555effd3e3a2b}\label{classolc_1_1_pixel_game_engine_a49a2ead57239e1595cc555effd3e3a2b}} 
+\index{olc::PixelGameEngine@{olc::PixelGameEngine}!pgex\_Register@{pgex\_Register}}
+\index{pgex\_Register@{pgex\_Register}!olc::PixelGameEngine@{olc::PixelGameEngine}}
+\doxysubsubsection{\texorpdfstring{pgex\_Register()}{pgex\_Register()}}
+{\footnotesize\ttfamily void olc\+::\+Pixel\+Game\+Engine\+::pgex\+\_\+\+Register (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{classolc_1_1_p_g_e_x}{olc\+::\+P\+G\+EX}} $\ast$}]{pgex }\end{DoxyParamCaption})}
+
+\mbox{\Hypertarget{classolc_1_1_pixel_game_engine_abbbee4578ffa6b844c04c1af363052af}\label{classolc_1_1_pixel_game_engine_abbbee4578ffa6b844c04c1af363052af}} 
+\index{olc::PixelGameEngine@{olc::PixelGameEngine}!ScreenHeight@{ScreenHeight}}
+\index{ScreenHeight@{ScreenHeight}!olc::PixelGameEngine@{olc::PixelGameEngine}}
+\doxysubsubsection{\texorpdfstring{ScreenHeight()}{ScreenHeight()}}
+{\footnotesize\ttfamily int32\+\_\+t olc\+::\+Pixel\+Game\+Engine\+::\+Screen\+Height (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const}
+
+\mbox{\Hypertarget{classolc_1_1_pixel_game_engine_aa3b458d05eab503d9918cfd2d383a45c}\label{classolc_1_1_pixel_game_engine_aa3b458d05eab503d9918cfd2d383a45c}} 
+\index{olc::PixelGameEngine@{olc::PixelGameEngine}!ScreenWidth@{ScreenWidth}}
+\index{ScreenWidth@{ScreenWidth}!olc::PixelGameEngine@{olc::PixelGameEngine}}
+\doxysubsubsection{\texorpdfstring{ScreenWidth()}{ScreenWidth()}}
+{\footnotesize\ttfamily int32\+\_\+t olc\+::\+Pixel\+Game\+Engine\+::\+Screen\+Width (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const}
+
+\mbox{\Hypertarget{classolc_1_1_pixel_game_engine_a27ee96acff2c74d47f0cb78493aac756}\label{classolc_1_1_pixel_game_engine_a27ee96acff2c74d47f0cb78493aac756}} 
+\index{olc::PixelGameEngine@{olc::PixelGameEngine}!SetDecalMode@{SetDecalMode}}
+\index{SetDecalMode@{SetDecalMode}!olc::PixelGameEngine@{olc::PixelGameEngine}}
+\doxysubsubsection{\texorpdfstring{SetDecalMode()}{SetDecalMode()}}
+{\footnotesize\ttfamily void olc\+::\+Pixel\+Game\+Engine\+::\+Set\+Decal\+Mode (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{namespaceolc_aeda642f63378f868193c28e8613138ca}{olc\+::\+Decal\+Mode}} \&}]{mode }\end{DoxyParamCaption})}
+
+\mbox{\Hypertarget{classolc_1_1_pixel_game_engine_a70b6a145d7ab0c8857000a72ce4d4a70}\label{classolc_1_1_pixel_game_engine_a70b6a145d7ab0c8857000a72ce4d4a70}} 
+\index{olc::PixelGameEngine@{olc::PixelGameEngine}!SetDrawTarget@{SetDrawTarget}}
+\index{SetDrawTarget@{SetDrawTarget}!olc::PixelGameEngine@{olc::PixelGameEngine}}
+\doxysubsubsection{\texorpdfstring{SetDrawTarget()}{SetDrawTarget()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
+{\footnotesize\ttfamily void olc\+::\+Pixel\+Game\+Engine\+::\+Set\+Draw\+Target (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{classolc_1_1_sprite}{Sprite}} $\ast$}]{target }\end{DoxyParamCaption})}
+
+\mbox{\Hypertarget{classolc_1_1_pixel_game_engine_a5842c1087a70c95a7ff96d53f28b7bab}\label{classolc_1_1_pixel_game_engine_a5842c1087a70c95a7ff96d53f28b7bab}} 
+\index{olc::PixelGameEngine@{olc::PixelGameEngine}!SetDrawTarget@{SetDrawTarget}}
+\index{SetDrawTarget@{SetDrawTarget}!olc::PixelGameEngine@{olc::PixelGameEngine}}
+\doxysubsubsection{\texorpdfstring{SetDrawTarget()}{SetDrawTarget()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
+{\footnotesize\ttfamily void olc\+::\+Pixel\+Game\+Engine\+::\+Set\+Draw\+Target (\begin{DoxyParamCaption}\item[{uint8\+\_\+t}]{layer }\end{DoxyParamCaption})}
+
+\mbox{\Hypertarget{classolc_1_1_pixel_game_engine_a40a88ddb3800e59121f05b06fd64dbfd}\label{classolc_1_1_pixel_game_engine_a40a88ddb3800e59121f05b06fd64dbfd}} 
+\index{olc::PixelGameEngine@{olc::PixelGameEngine}!SetLayerCustomRenderFunction@{SetLayerCustomRenderFunction}}
+\index{SetLayerCustomRenderFunction@{SetLayerCustomRenderFunction}!olc::PixelGameEngine@{olc::PixelGameEngine}}
+\doxysubsubsection{\texorpdfstring{SetLayerCustomRenderFunction()}{SetLayerCustomRenderFunction()}}
+{\footnotesize\ttfamily void olc\+::\+Pixel\+Game\+Engine\+::\+Set\+Layer\+Custom\+Render\+Function (\begin{DoxyParamCaption}\item[{uint8\+\_\+t}]{layer,  }\item[{std\+::function$<$ void()$>$}]{f }\end{DoxyParamCaption})}
+
+\mbox{\Hypertarget{classolc_1_1_pixel_game_engine_a0e1ddc993ef65dfe00f2bbcf59e535ad}\label{classolc_1_1_pixel_game_engine_a0e1ddc993ef65dfe00f2bbcf59e535ad}} 
+\index{olc::PixelGameEngine@{olc::PixelGameEngine}!SetLayerOffset@{SetLayerOffset}}
+\index{SetLayerOffset@{SetLayerOffset}!olc::PixelGameEngine@{olc::PixelGameEngine}}
+\doxysubsubsection{\texorpdfstring{SetLayerOffset()}{SetLayerOffset()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
+{\footnotesize\ttfamily void olc\+::\+Pixel\+Game\+Engine\+::\+Set\+Layer\+Offset (\begin{DoxyParamCaption}\item[{uint8\+\_\+t}]{layer,  }\item[{const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&}]{offset }\end{DoxyParamCaption})}
+
+\mbox{\Hypertarget{classolc_1_1_pixel_game_engine_a9fed21eddcebeb743472d8b9eb1e3ece}\label{classolc_1_1_pixel_game_engine_a9fed21eddcebeb743472d8b9eb1e3ece}} 
+\index{olc::PixelGameEngine@{olc::PixelGameEngine}!SetLayerOffset@{SetLayerOffset}}
+\index{SetLayerOffset@{SetLayerOffset}!olc::PixelGameEngine@{olc::PixelGameEngine}}
+\doxysubsubsection{\texorpdfstring{SetLayerOffset()}{SetLayerOffset()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
+{\footnotesize\ttfamily void olc\+::\+Pixel\+Game\+Engine\+::\+Set\+Layer\+Offset (\begin{DoxyParamCaption}\item[{uint8\+\_\+t}]{layer,  }\item[{float}]{x,  }\item[{float}]{y }\end{DoxyParamCaption})}
+
+\mbox{\Hypertarget{classolc_1_1_pixel_game_engine_af8fbe005b4069ed1de8e0347b72ebc30}\label{classolc_1_1_pixel_game_engine_af8fbe005b4069ed1de8e0347b72ebc30}} 
+\index{olc::PixelGameEngine@{olc::PixelGameEngine}!SetLayerScale@{SetLayerScale}}
+\index{SetLayerScale@{SetLayerScale}!olc::PixelGameEngine@{olc::PixelGameEngine}}
+\doxysubsubsection{\texorpdfstring{SetLayerScale()}{SetLayerScale()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
+{\footnotesize\ttfamily void olc\+::\+Pixel\+Game\+Engine\+::\+Set\+Layer\+Scale (\begin{DoxyParamCaption}\item[{uint8\+\_\+t}]{layer,  }\item[{const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&}]{scale }\end{DoxyParamCaption})}
+
+\mbox{\Hypertarget{classolc_1_1_pixel_game_engine_a409825b0147e25c0d4c05fb0aa1f6273}\label{classolc_1_1_pixel_game_engine_a409825b0147e25c0d4c05fb0aa1f6273}} 
+\index{olc::PixelGameEngine@{olc::PixelGameEngine}!SetLayerScale@{SetLayerScale}}
+\index{SetLayerScale@{SetLayerScale}!olc::PixelGameEngine@{olc::PixelGameEngine}}
+\doxysubsubsection{\texorpdfstring{SetLayerScale()}{SetLayerScale()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
+{\footnotesize\ttfamily void olc\+::\+Pixel\+Game\+Engine\+::\+Set\+Layer\+Scale (\begin{DoxyParamCaption}\item[{uint8\+\_\+t}]{layer,  }\item[{float}]{x,  }\item[{float}]{y }\end{DoxyParamCaption})}
+
+\mbox{\Hypertarget{classolc_1_1_pixel_game_engine_a7d7c04245161782d5f5c48d3d62ff7a7}\label{classolc_1_1_pixel_game_engine_a7d7c04245161782d5f5c48d3d62ff7a7}} 
+\index{olc::PixelGameEngine@{olc::PixelGameEngine}!SetLayerTint@{SetLayerTint}}
+\index{SetLayerTint@{SetLayerTint}!olc::PixelGameEngine@{olc::PixelGameEngine}}
+\doxysubsubsection{\texorpdfstring{SetLayerTint()}{SetLayerTint()}}
+{\footnotesize\ttfamily void olc\+::\+Pixel\+Game\+Engine\+::\+Set\+Layer\+Tint (\begin{DoxyParamCaption}\item[{uint8\+\_\+t}]{layer,  }\item[{const \mbox{\hyperlink{structolc_1_1_pixel}{olc\+::\+Pixel}} \&}]{tint }\end{DoxyParamCaption})}
+
+\mbox{\Hypertarget{classolc_1_1_pixel_game_engine_ab0726b7758bc1bf7f7de30369076b8e7}\label{classolc_1_1_pixel_game_engine_ab0726b7758bc1bf7f7de30369076b8e7}} 
+\index{olc::PixelGameEngine@{olc::PixelGameEngine}!SetPixelBlend@{SetPixelBlend}}
+\index{SetPixelBlend@{SetPixelBlend}!olc::PixelGameEngine@{olc::PixelGameEngine}}
+\doxysubsubsection{\texorpdfstring{SetPixelBlend()}{SetPixelBlend()}}
+{\footnotesize\ttfamily void olc\+::\+Pixel\+Game\+Engine\+::\+Set\+Pixel\+Blend (\begin{DoxyParamCaption}\item[{float}]{f\+Blend }\end{DoxyParamCaption})}
+
+\mbox{\Hypertarget{classolc_1_1_pixel_game_engine_ae4a3d1aaa40761986389966ab927ef32}\label{classolc_1_1_pixel_game_engine_ae4a3d1aaa40761986389966ab927ef32}} 
+\index{olc::PixelGameEngine@{olc::PixelGameEngine}!SetPixelMode@{SetPixelMode}}
+\index{SetPixelMode@{SetPixelMode}!olc::PixelGameEngine@{olc::PixelGameEngine}}
+\doxysubsubsection{\texorpdfstring{SetPixelMode()}{SetPixelMode()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
+{\footnotesize\ttfamily void olc\+::\+Pixel\+Game\+Engine\+::\+Set\+Pixel\+Mode (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{structolc_1_1_pixel_ae9012164940526ddb09b217dbbddfd65}{Pixel\+::\+Mode}}}]{m }\end{DoxyParamCaption})}
+
+\mbox{\Hypertarget{classolc_1_1_pixel_game_engine_a9aa31ae4e1735efa72f3ea17fb51b2ef}\label{classolc_1_1_pixel_game_engine_a9aa31ae4e1735efa72f3ea17fb51b2ef}} 
+\index{olc::PixelGameEngine@{olc::PixelGameEngine}!SetPixelMode@{SetPixelMode}}
+\index{SetPixelMode@{SetPixelMode}!olc::PixelGameEngine@{olc::PixelGameEngine}}
+\doxysubsubsection{\texorpdfstring{SetPixelMode()}{SetPixelMode()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
+{\footnotesize\ttfamily void olc\+::\+Pixel\+Game\+Engine\+::\+Set\+Pixel\+Mode (\begin{DoxyParamCaption}\item[{std\+::function$<$ \mbox{\hyperlink{structolc_1_1_pixel}{olc\+::\+Pixel}}(const int x, const int y, const \mbox{\hyperlink{structolc_1_1_pixel}{olc\+::\+Pixel}} \&p\+Source, const \mbox{\hyperlink{structolc_1_1_pixel}{olc\+::\+Pixel}} \&p\+Dest)$>$}]{pixel\+Mode }\end{DoxyParamCaption})}
+
+\mbox{\Hypertarget{classolc_1_1_pixel_game_engine_abd403468f57f7665d56e202da8de8e76}\label{classolc_1_1_pixel_game_engine_abd403468f57f7665d56e202da8de8e76}} 
+\index{olc::PixelGameEngine@{olc::PixelGameEngine}!SetScreenSize@{SetScreenSize}}
+\index{SetScreenSize@{SetScreenSize}!olc::PixelGameEngine@{olc::PixelGameEngine}}
+\doxysubsubsection{\texorpdfstring{SetScreenSize()}{SetScreenSize()}}
+{\footnotesize\ttfamily void olc\+::\+Pixel\+Game\+Engine\+::\+Set\+Screen\+Size (\begin{DoxyParamCaption}\item[{int}]{w,  }\item[{int}]{h }\end{DoxyParamCaption})}
+
+\mbox{\Hypertarget{classolc_1_1_pixel_game_engine_a8e8848aa1c743a1ec2cdaa14c87e5cde}\label{classolc_1_1_pixel_game_engine_a8e8848aa1c743a1ec2cdaa14c87e5cde}} 
+\index{olc::PixelGameEngine@{olc::PixelGameEngine}!Start@{Start}}
+\index{Start@{Start}!olc::PixelGameEngine@{olc::PixelGameEngine}}
+\doxysubsubsection{\texorpdfstring{Start()}{Start()}}
+{\footnotesize\ttfamily \mbox{\hyperlink{namespaceolc_a3d40e9b1c005602550230690b55ae87b}{olc\+::rcode}} olc\+::\+Pixel\+Game\+Engine\+::\+Start (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}
+
+
+
+\doxysubsection{Friends And Related Function Documentation}
+\mbox{\Hypertarget{classolc_1_1_pixel_game_engine_a98fcee28f1a645fe0a29f6b6e6a5d7bb}\label{classolc_1_1_pixel_game_engine_a98fcee28f1a645fe0a29f6b6e6a5d7bb}} 
+\index{olc::PixelGameEngine@{olc::PixelGameEngine}!PGEX@{PGEX}}
+\index{PGEX@{PGEX}!olc::PixelGameEngine@{olc::PixelGameEngine}}
+\doxysubsubsection{\texorpdfstring{PGEX}{PGEX}}
+{\footnotesize\ttfamily friend class \mbox{\hyperlink{classolc_1_1_p_g_e_x}{P\+G\+EX}}\hspace{0.3cm}{\ttfamily [friend]}}
+
+
+
+Definition at line 1106 of file olc\+Pixel\+Game\+Engine.\+h.
+
+
+
+\doxysubsection{Member Data Documentation}
+\mbox{\Hypertarget{classolc_1_1_pixel_game_engine_a02d0f9c50770aa38aea1448f62d3604f}\label{classolc_1_1_pixel_game_engine_a02d0f9c50770aa38aea1448f62d3604f}} 
+\index{olc::PixelGameEngine@{olc::PixelGameEngine}!sAppName@{sAppName}}
+\index{sAppName@{sAppName}!olc::PixelGameEngine@{olc::PixelGameEngine}}
+\doxysubsubsection{\texorpdfstring{sAppName}{sAppName}}
+{\footnotesize\ttfamily std\+::string olc\+::\+Pixel\+Game\+Engine\+::s\+App\+Name}
+
+
+
+Definition at line 1024 of file olc\+Pixel\+Game\+Engine.\+h.
+
+
+
+The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize}
+\item 
+C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\mbox{\hyperlink{olc_pixel_game_engine_8h}{olc\+Pixel\+Game\+Engine.\+h}}\end{DoxyCompactItemize}
diff --git a/doxy/latex/classolc_1_1_platform.tex b/doxy/latex/classolc_1_1_platform.tex
new file mode 100644
index 0000000000000000000000000000000000000000..0271656a0b272421a08049fc4db08c4bfaa9c902
--- /dev/null
+++ b/doxy/latex/classolc_1_1_platform.tex
@@ -0,0 +1,125 @@
+\hypertarget{classolc_1_1_platform}{}\doxysection{olc\+::Platform Class Reference}
+\label{classolc_1_1_platform}\index{olc::Platform@{olc::Platform}}
+
+
+{\ttfamily \#include $<$olc\+Pixel\+Game\+Engine.\+h$>$}
+
+\doxysubsection*{Public Member Functions}
+\begin{DoxyCompactItemize}
+\item 
+virtual \mbox{\hyperlink{classolc_1_1_platform_a352f636fdc2e30bddac2db85238b166b}{$\sim$\+Platform}} ()=default
+\item 
+virtual \mbox{\hyperlink{namespaceolc_a3d40e9b1c005602550230690b55ae87b}{olc\+::rcode}} \mbox{\hyperlink{classolc_1_1_platform_a65e6f9763726056f6a9d37395b8ed023}{Application\+Start\+Up}} ()=0
+\item 
+virtual \mbox{\hyperlink{namespaceolc_a3d40e9b1c005602550230690b55ae87b}{olc\+::rcode}} \mbox{\hyperlink{classolc_1_1_platform_aec7a14ba9007d3c421481baa49e55669}{Application\+Clean\+Up}} ()=0
+\item 
+virtual \mbox{\hyperlink{namespaceolc_a3d40e9b1c005602550230690b55ae87b}{olc\+::rcode}} \mbox{\hyperlink{classolc_1_1_platform_ace0ea54aaa50143628b5fd41851b578f}{Thread\+Start\+Up}} ()=0
+\item 
+virtual \mbox{\hyperlink{namespaceolc_a3d40e9b1c005602550230690b55ae87b}{olc\+::rcode}} \mbox{\hyperlink{classolc_1_1_platform_a0e4e37ccc06ae7f3251b7a53ce839c13}{Thread\+Clean\+Up}} ()=0
+\item 
+virtual \mbox{\hyperlink{namespaceolc_a3d40e9b1c005602550230690b55ae87b}{olc\+::rcode}} \mbox{\hyperlink{classolc_1_1_platform_a2e951cdc0d8fd9bb68f05b33f1fd0450}{Create\+Graphics}} (bool b\+Full\+Screen, bool b\+Enable\+V\+S\+Y\+NC, const \mbox{\hyperlink{namespaceolc_a3c42697361e8a28424bcf8415aba3564}{olc\+::vi2d}} \&v\+View\+Pos, const \mbox{\hyperlink{namespaceolc_a3c42697361e8a28424bcf8415aba3564}{olc\+::vi2d}} \&v\+View\+Size)=0
+\item 
+virtual \mbox{\hyperlink{namespaceolc_a3d40e9b1c005602550230690b55ae87b}{olc\+::rcode}} \mbox{\hyperlink{classolc_1_1_platform_a4966327ca7d5ff2b855b3a4eaf0f88f2}{Create\+Window\+Pane}} (const \mbox{\hyperlink{namespaceolc_a3c42697361e8a28424bcf8415aba3564}{olc\+::vi2d}} \&v\+Window\+Pos, \mbox{\hyperlink{namespaceolc_a3c42697361e8a28424bcf8415aba3564}{olc\+::vi2d}} \&v\+Window\+Size, bool b\+Full\+Screen)=0
+\item 
+virtual \mbox{\hyperlink{namespaceolc_a3d40e9b1c005602550230690b55ae87b}{olc\+::rcode}} \mbox{\hyperlink{classolc_1_1_platform_ab9ea28ecd660730810463dd6c68b73fd}{Set\+Window\+Title}} (const std\+::string \&s)=0
+\item 
+virtual \mbox{\hyperlink{namespaceolc_a3d40e9b1c005602550230690b55ae87b}{olc\+::rcode}} \mbox{\hyperlink{classolc_1_1_platform_af58e24a992339020fa1ebf58a224b209}{Start\+System\+Event\+Loop}} ()=0
+\item 
+virtual \mbox{\hyperlink{namespaceolc_a3d40e9b1c005602550230690b55ae87b}{olc\+::rcode}} \mbox{\hyperlink{classolc_1_1_platform_abbc05f4b3aea3513919b05fdb15bfbbc}{Handle\+System\+Event}} ()=0
+\end{DoxyCompactItemize}
+\doxysubsection*{Static Public Attributes}
+\begin{DoxyCompactItemize}
+\item 
+static \mbox{\hyperlink{classolc_1_1_pixel_game_engine}{olc\+::\+Pixel\+Game\+Engine}} $\ast$ \mbox{\hyperlink{classolc_1_1_platform_a43a4a5eaaf20384b9cef6aec6e75dbbd}{ptr\+P\+GE}}
+\end{DoxyCompactItemize}
+
+
+\doxysubsection{Detailed Description}
+
+
+Definition at line 829 of file olc\+Pixel\+Game\+Engine.\+h.
+
+
+
+\doxysubsection{Constructor \& Destructor Documentation}
+\mbox{\Hypertarget{classolc_1_1_platform_a352f636fdc2e30bddac2db85238b166b}\label{classolc_1_1_platform_a352f636fdc2e30bddac2db85238b166b}} 
+\index{olc::Platform@{olc::Platform}!````~Platform@{$\sim$Platform}}
+\index{````~Platform@{$\sim$Platform}!olc::Platform@{olc::Platform}}
+\doxysubsubsection{\texorpdfstring{$\sim$Platform()}{~Platform()}}
+{\footnotesize\ttfamily virtual olc\+::\+Platform\+::$\sim$\+Platform (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}, {\ttfamily [default]}}
+
+
+
+\doxysubsection{Member Function Documentation}
+\mbox{\Hypertarget{classolc_1_1_platform_aec7a14ba9007d3c421481baa49e55669}\label{classolc_1_1_platform_aec7a14ba9007d3c421481baa49e55669}} 
+\index{olc::Platform@{olc::Platform}!ApplicationCleanUp@{ApplicationCleanUp}}
+\index{ApplicationCleanUp@{ApplicationCleanUp}!olc::Platform@{olc::Platform}}
+\doxysubsubsection{\texorpdfstring{ApplicationCleanUp()}{ApplicationCleanUp()}}
+{\footnotesize\ttfamily virtual \mbox{\hyperlink{namespaceolc_a3d40e9b1c005602550230690b55ae87b}{olc\+::rcode}} olc\+::\+Platform\+::\+Application\+Clean\+Up (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [pure virtual]}}
+
+\mbox{\Hypertarget{classolc_1_1_platform_a65e6f9763726056f6a9d37395b8ed023}\label{classolc_1_1_platform_a65e6f9763726056f6a9d37395b8ed023}} 
+\index{olc::Platform@{olc::Platform}!ApplicationStartUp@{ApplicationStartUp}}
+\index{ApplicationStartUp@{ApplicationStartUp}!olc::Platform@{olc::Platform}}
+\doxysubsubsection{\texorpdfstring{ApplicationStartUp()}{ApplicationStartUp()}}
+{\footnotesize\ttfamily virtual \mbox{\hyperlink{namespaceolc_a3d40e9b1c005602550230690b55ae87b}{olc\+::rcode}} olc\+::\+Platform\+::\+Application\+Start\+Up (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [pure virtual]}}
+
+\mbox{\Hypertarget{classolc_1_1_platform_a2e951cdc0d8fd9bb68f05b33f1fd0450}\label{classolc_1_1_platform_a2e951cdc0d8fd9bb68f05b33f1fd0450}} 
+\index{olc::Platform@{olc::Platform}!CreateGraphics@{CreateGraphics}}
+\index{CreateGraphics@{CreateGraphics}!olc::Platform@{olc::Platform}}
+\doxysubsubsection{\texorpdfstring{CreateGraphics()}{CreateGraphics()}}
+{\footnotesize\ttfamily virtual \mbox{\hyperlink{namespaceolc_a3d40e9b1c005602550230690b55ae87b}{olc\+::rcode}} olc\+::\+Platform\+::\+Create\+Graphics (\begin{DoxyParamCaption}\item[{bool}]{b\+Full\+Screen,  }\item[{bool}]{b\+Enable\+V\+S\+Y\+NC,  }\item[{const \mbox{\hyperlink{namespaceolc_a3c42697361e8a28424bcf8415aba3564}{olc\+::vi2d}} \&}]{v\+View\+Pos,  }\item[{const \mbox{\hyperlink{namespaceolc_a3c42697361e8a28424bcf8415aba3564}{olc\+::vi2d}} \&}]{v\+View\+Size }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [pure virtual]}}
+
+\mbox{\Hypertarget{classolc_1_1_platform_a4966327ca7d5ff2b855b3a4eaf0f88f2}\label{classolc_1_1_platform_a4966327ca7d5ff2b855b3a4eaf0f88f2}} 
+\index{olc::Platform@{olc::Platform}!CreateWindowPane@{CreateWindowPane}}
+\index{CreateWindowPane@{CreateWindowPane}!olc::Platform@{olc::Platform}}
+\doxysubsubsection{\texorpdfstring{CreateWindowPane()}{CreateWindowPane()}}
+{\footnotesize\ttfamily virtual \mbox{\hyperlink{namespaceolc_a3d40e9b1c005602550230690b55ae87b}{olc\+::rcode}} olc\+::\+Platform\+::\+Create\+Window\+Pane (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{namespaceolc_a3c42697361e8a28424bcf8415aba3564}{olc\+::vi2d}} \&}]{v\+Window\+Pos,  }\item[{\mbox{\hyperlink{namespaceolc_a3c42697361e8a28424bcf8415aba3564}{olc\+::vi2d}} \&}]{v\+Window\+Size,  }\item[{bool}]{b\+Full\+Screen }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [pure virtual]}}
+
+\mbox{\Hypertarget{classolc_1_1_platform_abbc05f4b3aea3513919b05fdb15bfbbc}\label{classolc_1_1_platform_abbc05f4b3aea3513919b05fdb15bfbbc}} 
+\index{olc::Platform@{olc::Platform}!HandleSystemEvent@{HandleSystemEvent}}
+\index{HandleSystemEvent@{HandleSystemEvent}!olc::Platform@{olc::Platform}}
+\doxysubsubsection{\texorpdfstring{HandleSystemEvent()}{HandleSystemEvent()}}
+{\footnotesize\ttfamily virtual \mbox{\hyperlink{namespaceolc_a3d40e9b1c005602550230690b55ae87b}{olc\+::rcode}} olc\+::\+Platform\+::\+Handle\+System\+Event (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [pure virtual]}}
+
+\mbox{\Hypertarget{classolc_1_1_platform_ab9ea28ecd660730810463dd6c68b73fd}\label{classolc_1_1_platform_ab9ea28ecd660730810463dd6c68b73fd}} 
+\index{olc::Platform@{olc::Platform}!SetWindowTitle@{SetWindowTitle}}
+\index{SetWindowTitle@{SetWindowTitle}!olc::Platform@{olc::Platform}}
+\doxysubsubsection{\texorpdfstring{SetWindowTitle()}{SetWindowTitle()}}
+{\footnotesize\ttfamily virtual \mbox{\hyperlink{namespaceolc_a3d40e9b1c005602550230690b55ae87b}{olc\+::rcode}} olc\+::\+Platform\+::\+Set\+Window\+Title (\begin{DoxyParamCaption}\item[{const std\+::string \&}]{s }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [pure virtual]}}
+
+\mbox{\Hypertarget{classolc_1_1_platform_af58e24a992339020fa1ebf58a224b209}\label{classolc_1_1_platform_af58e24a992339020fa1ebf58a224b209}} 
+\index{olc::Platform@{olc::Platform}!StartSystemEventLoop@{StartSystemEventLoop}}
+\index{StartSystemEventLoop@{StartSystemEventLoop}!olc::Platform@{olc::Platform}}
+\doxysubsubsection{\texorpdfstring{StartSystemEventLoop()}{StartSystemEventLoop()}}
+{\footnotesize\ttfamily virtual \mbox{\hyperlink{namespaceolc_a3d40e9b1c005602550230690b55ae87b}{olc\+::rcode}} olc\+::\+Platform\+::\+Start\+System\+Event\+Loop (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [pure virtual]}}
+
+\mbox{\Hypertarget{classolc_1_1_platform_a0e4e37ccc06ae7f3251b7a53ce839c13}\label{classolc_1_1_platform_a0e4e37ccc06ae7f3251b7a53ce839c13}} 
+\index{olc::Platform@{olc::Platform}!ThreadCleanUp@{ThreadCleanUp}}
+\index{ThreadCleanUp@{ThreadCleanUp}!olc::Platform@{olc::Platform}}
+\doxysubsubsection{\texorpdfstring{ThreadCleanUp()}{ThreadCleanUp()}}
+{\footnotesize\ttfamily virtual \mbox{\hyperlink{namespaceolc_a3d40e9b1c005602550230690b55ae87b}{olc\+::rcode}} olc\+::\+Platform\+::\+Thread\+Clean\+Up (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [pure virtual]}}
+
+\mbox{\Hypertarget{classolc_1_1_platform_ace0ea54aaa50143628b5fd41851b578f}\label{classolc_1_1_platform_ace0ea54aaa50143628b5fd41851b578f}} 
+\index{olc::Platform@{olc::Platform}!ThreadStartUp@{ThreadStartUp}}
+\index{ThreadStartUp@{ThreadStartUp}!olc::Platform@{olc::Platform}}
+\doxysubsubsection{\texorpdfstring{ThreadStartUp()}{ThreadStartUp()}}
+{\footnotesize\ttfamily virtual \mbox{\hyperlink{namespaceolc_a3d40e9b1c005602550230690b55ae87b}{olc\+::rcode}} olc\+::\+Platform\+::\+Thread\+Start\+Up (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [pure virtual]}}
+
+
+
+\doxysubsection{Member Data Documentation}
+\mbox{\Hypertarget{classolc_1_1_platform_a43a4a5eaaf20384b9cef6aec6e75dbbd}\label{classolc_1_1_platform_a43a4a5eaaf20384b9cef6aec6e75dbbd}} 
+\index{olc::Platform@{olc::Platform}!ptrPGE@{ptrPGE}}
+\index{ptrPGE@{ptrPGE}!olc::Platform@{olc::Platform}}
+\doxysubsubsection{\texorpdfstring{ptrPGE}{ptrPGE}}
+{\footnotesize\ttfamily \mbox{\hyperlink{classolc_1_1_pixel_game_engine}{olc\+::\+Pixel\+Game\+Engine}}$\ast$ olc\+::\+Platform\+::ptr\+P\+GE\hspace{0.3cm}{\ttfamily [static]}}
+
+
+
+Definition at line 842 of file olc\+Pixel\+Game\+Engine.\+h.
+
+
+
+The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize}
+\item 
+C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\mbox{\hyperlink{olc_pixel_game_engine_8h}{olc\+Pixel\+Game\+Engine.\+h}}\end{DoxyCompactItemize}
diff --git a/doxy/latex/classolc_1_1_renderable.tex b/doxy/latex/classolc_1_1_renderable.tex
new file mode 100644
index 0000000000000000000000000000000000000000..e1116560328ab4e4ab0f1f48c5be8c3d4df5f0ce
--- /dev/null
+++ b/doxy/latex/classolc_1_1_renderable.tex
@@ -0,0 +1,67 @@
+\hypertarget{classolc_1_1_renderable}{}\doxysection{olc\+::Renderable Class Reference}
+\label{classolc_1_1_renderable}\index{olc::Renderable@{olc::Renderable}}
+
+
+{\ttfamily \#include $<$olc\+Pixel\+Game\+Engine.\+h$>$}
+
+\doxysubsection*{Public Member Functions}
+\begin{DoxyCompactItemize}
+\item 
+\mbox{\hyperlink{classolc_1_1_renderable_affef9fb6b4810e59a7d14410f351ba37}{Renderable}} ()=default
+\item 
+\mbox{\hyperlink{namespaceolc_a3d40e9b1c005602550230690b55ae87b}{olc\+::rcode}} \mbox{\hyperlink{classolc_1_1_renderable_ace5d212d903d86bc9789f1af0f92096c}{Load}} (const std\+::string \&s\+File, \mbox{\hyperlink{classolc_1_1_resource_pack}{Resource\+Pack}} $\ast$pack=nullptr, bool filter=false, bool clamp=true)
+\item 
+void \mbox{\hyperlink{classolc_1_1_renderable_ab15a4441be7b48519d55296e416976fd}{Create}} (uint32\+\_\+t width, uint32\+\_\+t height, bool filter=false, bool clamp=true)
+\item 
+\mbox{\hyperlink{classolc_1_1_decal}{olc\+::\+Decal}} $\ast$ \mbox{\hyperlink{classolc_1_1_renderable_af6e5a2d5a46fe4f475c67ca5ab1b1f5d}{Decal}} () const
+\item 
+\mbox{\hyperlink{classolc_1_1_sprite}{olc\+::\+Sprite}} $\ast$ \mbox{\hyperlink{classolc_1_1_renderable_a8128a49bae0a3b40a5681d92cc01f52a}{Sprite}} () const
+\end{DoxyCompactItemize}
+
+
+\doxysubsection{Detailed Description}
+
+
+Definition at line 764 of file olc\+Pixel\+Game\+Engine.\+h.
+
+
+
+\doxysubsection{Constructor \& Destructor Documentation}
+\mbox{\Hypertarget{classolc_1_1_renderable_affef9fb6b4810e59a7d14410f351ba37}\label{classolc_1_1_renderable_affef9fb6b4810e59a7d14410f351ba37}} 
+\index{olc::Renderable@{olc::Renderable}!Renderable@{Renderable}}
+\index{Renderable@{Renderable}!olc::Renderable@{olc::Renderable}}
+\doxysubsubsection{\texorpdfstring{Renderable()}{Renderable()}}
+{\footnotesize\ttfamily olc\+::\+Renderable\+::\+Renderable (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [default]}}
+
+
+
+\doxysubsection{Member Function Documentation}
+\mbox{\Hypertarget{classolc_1_1_renderable_ab15a4441be7b48519d55296e416976fd}\label{classolc_1_1_renderable_ab15a4441be7b48519d55296e416976fd}} 
+\index{olc::Renderable@{olc::Renderable}!Create@{Create}}
+\index{Create@{Create}!olc::Renderable@{olc::Renderable}}
+\doxysubsubsection{\texorpdfstring{Create()}{Create()}}
+{\footnotesize\ttfamily void olc\+::\+Renderable\+::\+Create (\begin{DoxyParamCaption}\item[{uint32\+\_\+t}]{width,  }\item[{uint32\+\_\+t}]{height,  }\item[{bool}]{filter = {\ttfamily false},  }\item[{bool}]{clamp = {\ttfamily true} }\end{DoxyParamCaption})}
+
+\mbox{\Hypertarget{classolc_1_1_renderable_af6e5a2d5a46fe4f475c67ca5ab1b1f5d}\label{classolc_1_1_renderable_af6e5a2d5a46fe4f475c67ca5ab1b1f5d}} 
+\index{olc::Renderable@{olc::Renderable}!Decal@{Decal}}
+\index{Decal@{Decal}!olc::Renderable@{olc::Renderable}}
+\doxysubsubsection{\texorpdfstring{Decal()}{Decal()}}
+{\footnotesize\ttfamily \mbox{\hyperlink{classolc_1_1_decal}{olc\+::\+Decal}}$\ast$ olc\+::\+Renderable\+::\+Decal (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const}
+
+\mbox{\Hypertarget{classolc_1_1_renderable_ace5d212d903d86bc9789f1af0f92096c}\label{classolc_1_1_renderable_ace5d212d903d86bc9789f1af0f92096c}} 
+\index{olc::Renderable@{olc::Renderable}!Load@{Load}}
+\index{Load@{Load}!olc::Renderable@{olc::Renderable}}
+\doxysubsubsection{\texorpdfstring{Load()}{Load()}}
+{\footnotesize\ttfamily \mbox{\hyperlink{namespaceolc_a3d40e9b1c005602550230690b55ae87b}{olc\+::rcode}} olc\+::\+Renderable\+::\+Load (\begin{DoxyParamCaption}\item[{const std\+::string \&}]{s\+File,  }\item[{\mbox{\hyperlink{classolc_1_1_resource_pack}{Resource\+Pack}} $\ast$}]{pack = {\ttfamily nullptr},  }\item[{bool}]{filter = {\ttfamily false},  }\item[{bool}]{clamp = {\ttfamily true} }\end{DoxyParamCaption})}
+
+\mbox{\Hypertarget{classolc_1_1_renderable_a8128a49bae0a3b40a5681d92cc01f52a}\label{classolc_1_1_renderable_a8128a49bae0a3b40a5681d92cc01f52a}} 
+\index{olc::Renderable@{olc::Renderable}!Sprite@{Sprite}}
+\index{Sprite@{Sprite}!olc::Renderable@{olc::Renderable}}
+\doxysubsubsection{\texorpdfstring{Sprite()}{Sprite()}}
+{\footnotesize\ttfamily \mbox{\hyperlink{classolc_1_1_sprite}{olc\+::\+Sprite}}$\ast$ olc\+::\+Renderable\+::\+Sprite (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const}
+
+
+
+The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize}
+\item 
+C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\mbox{\hyperlink{olc_pixel_game_engine_8h}{olc\+Pixel\+Game\+Engine.\+h}}\end{DoxyCompactItemize}
diff --git a/doxy/latex/classolc_1_1_renderer.tex b/doxy/latex/classolc_1_1_renderer.tex
new file mode 100644
index 0000000000000000000000000000000000000000..fc110cad3f7c2c5d8c0a6d3a4089b58313d5eabf
--- /dev/null
+++ b/doxy/latex/classolc_1_1_renderer.tex
@@ -0,0 +1,173 @@
+\hypertarget{classolc_1_1_renderer}{}\doxysection{olc\+::Renderer Class Reference}
+\label{classolc_1_1_renderer}\index{olc::Renderer@{olc::Renderer}}
+
+
+{\ttfamily \#include $<$olc\+Pixel\+Game\+Engine.\+h$>$}
+
+\doxysubsection*{Public Member Functions}
+\begin{DoxyCompactItemize}
+\item 
+virtual \mbox{\hyperlink{classolc_1_1_renderer_a877048a1bcf3decfe544804f0e4e1ad9}{$\sim$\+Renderer}} ()=default
+\item 
+virtual void \mbox{\hyperlink{classolc_1_1_renderer_a7d97cab172e59d23a2587f636c9b12b7}{Prepare\+Device}} ()=0
+\item 
+virtual \mbox{\hyperlink{namespaceolc_a3d40e9b1c005602550230690b55ae87b}{olc\+::rcode}} \mbox{\hyperlink{classolc_1_1_renderer_a28c87db87f8fd9b0f356db5d01499992}{Create\+Device}} (std\+::vector$<$ void $\ast$ $>$ params, bool b\+Full\+Screen, bool b\+V\+S\+Y\+NC)=0
+\item 
+virtual \mbox{\hyperlink{namespaceolc_a3d40e9b1c005602550230690b55ae87b}{olc\+::rcode}} \mbox{\hyperlink{classolc_1_1_renderer_a3a59a195cc380f89e5f9cc98b6fda2c7}{Destroy\+Device}} ()=0
+\item 
+virtual void \mbox{\hyperlink{classolc_1_1_renderer_a660f3ca709b2a2fcec1d1cba1a4cfd18}{Display\+Frame}} ()=0
+\item 
+virtual void \mbox{\hyperlink{classolc_1_1_renderer_a04c56d76c76ab50f5f06b9b537e9d98d}{Prepare\+Drawing}} ()=0
+\item 
+virtual void \mbox{\hyperlink{classolc_1_1_renderer_aebfc5a561c54b88f16a0b3d855eedaa1}{Set\+Decal\+Mode}} (const \mbox{\hyperlink{namespaceolc_aeda642f63378f868193c28e8613138ca}{olc\+::\+Decal\+Mode}} \&mode)=0
+\item 
+virtual void \mbox{\hyperlink{classolc_1_1_renderer_a3eccca504615e72d1f40acd03ffce89f}{Draw\+Layer\+Quad}} (const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&offset, const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&scale, const \mbox{\hyperlink{structolc_1_1_pixel}{olc\+::\+Pixel}} tint)=0
+\item 
+virtual void \mbox{\hyperlink{classolc_1_1_renderer_ac567df937350bffb2eae3e647ccc10d5}{Draw\+Decal}} (const \mbox{\hyperlink{structolc_1_1_decal_instance}{olc\+::\+Decal\+Instance}} \&decal)=0
+\item 
+virtual uint32\+\_\+t \mbox{\hyperlink{classolc_1_1_renderer_aeac898aaf282d09a9cd848303de57bea}{Create\+Texture}} (const uint32\+\_\+t width, const uint32\+\_\+t height, const bool filtered=false, const bool clamp=true)=0
+\item 
+virtual void \mbox{\hyperlink{classolc_1_1_renderer_a1512e2939b94f6fdb58bbf152ac0e4e5}{Update\+Texture}} (uint32\+\_\+t id, \mbox{\hyperlink{classolc_1_1_sprite}{olc\+::\+Sprite}} $\ast$spr)=0
+\item 
+virtual void \mbox{\hyperlink{classolc_1_1_renderer_aa0e93a7d9ff6f25e9b154b2c8c86d44d}{Read\+Texture}} (uint32\+\_\+t id, \mbox{\hyperlink{classolc_1_1_sprite}{olc\+::\+Sprite}} $\ast$spr)=0
+\item 
+virtual uint32\+\_\+t \mbox{\hyperlink{classolc_1_1_renderer_aec8e86eb7a104fb0bc8f9fe51318f1a0}{Delete\+Texture}} (const uint32\+\_\+t id)=0
+\item 
+virtual void \mbox{\hyperlink{classolc_1_1_renderer_a0a87094df3c911860a0eec9a8bb3b060}{Apply\+Texture}} (uint32\+\_\+t id)=0
+\item 
+virtual void \mbox{\hyperlink{classolc_1_1_renderer_abc873336dd8f9079dc26f92ce0f95748}{Update\+Viewport}} (const \mbox{\hyperlink{namespaceolc_a3c42697361e8a28424bcf8415aba3564}{olc\+::vi2d}} \&pos, const \mbox{\hyperlink{namespaceolc_a3c42697361e8a28424bcf8415aba3564}{olc\+::vi2d}} \&size)=0
+\item 
+virtual void \mbox{\hyperlink{classolc_1_1_renderer_a921406bc341efd881ca510c64cebdc26}{Clear\+Buffer}} (\mbox{\hyperlink{structolc_1_1_pixel}{olc\+::\+Pixel}} p, bool b\+Depth)=0
+\end{DoxyCompactItemize}
+\doxysubsection*{Static Public Attributes}
+\begin{DoxyCompactItemize}
+\item 
+static \mbox{\hyperlink{classolc_1_1_pixel_game_engine}{olc\+::\+Pixel\+Game\+Engine}} $\ast$ \mbox{\hyperlink{classolc_1_1_renderer_a89f800c14ab1b070408c17e2589e02a1}{ptr\+P\+GE}}
+\end{DoxyCompactItemize}
+
+
+\doxysubsection{Detailed Description}
+
+
+Definition at line 807 of file olc\+Pixel\+Game\+Engine.\+h.
+
+
+
+\doxysubsection{Constructor \& Destructor Documentation}
+\mbox{\Hypertarget{classolc_1_1_renderer_a877048a1bcf3decfe544804f0e4e1ad9}\label{classolc_1_1_renderer_a877048a1bcf3decfe544804f0e4e1ad9}} 
+\index{olc::Renderer@{olc::Renderer}!````~Renderer@{$\sim$Renderer}}
+\index{````~Renderer@{$\sim$Renderer}!olc::Renderer@{olc::Renderer}}
+\doxysubsubsection{\texorpdfstring{$\sim$Renderer()}{~Renderer()}}
+{\footnotesize\ttfamily virtual olc\+::\+Renderer\+::$\sim$\+Renderer (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}, {\ttfamily [default]}}
+
+
+
+\doxysubsection{Member Function Documentation}
+\mbox{\Hypertarget{classolc_1_1_renderer_a0a87094df3c911860a0eec9a8bb3b060}\label{classolc_1_1_renderer_a0a87094df3c911860a0eec9a8bb3b060}} 
+\index{olc::Renderer@{olc::Renderer}!ApplyTexture@{ApplyTexture}}
+\index{ApplyTexture@{ApplyTexture}!olc::Renderer@{olc::Renderer}}
+\doxysubsubsection{\texorpdfstring{ApplyTexture()}{ApplyTexture()}}
+{\footnotesize\ttfamily virtual void olc\+::\+Renderer\+::\+Apply\+Texture (\begin{DoxyParamCaption}\item[{uint32\+\_\+t}]{id }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [pure virtual]}}
+
+\mbox{\Hypertarget{classolc_1_1_renderer_a921406bc341efd881ca510c64cebdc26}\label{classolc_1_1_renderer_a921406bc341efd881ca510c64cebdc26}} 
+\index{olc::Renderer@{olc::Renderer}!ClearBuffer@{ClearBuffer}}
+\index{ClearBuffer@{ClearBuffer}!olc::Renderer@{olc::Renderer}}
+\doxysubsubsection{\texorpdfstring{ClearBuffer()}{ClearBuffer()}}
+{\footnotesize\ttfamily virtual void olc\+::\+Renderer\+::\+Clear\+Buffer (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{structolc_1_1_pixel}{olc\+::\+Pixel}}}]{p,  }\item[{bool}]{b\+Depth }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [pure virtual]}}
+
+\mbox{\Hypertarget{classolc_1_1_renderer_a28c87db87f8fd9b0f356db5d01499992}\label{classolc_1_1_renderer_a28c87db87f8fd9b0f356db5d01499992}} 
+\index{olc::Renderer@{olc::Renderer}!CreateDevice@{CreateDevice}}
+\index{CreateDevice@{CreateDevice}!olc::Renderer@{olc::Renderer}}
+\doxysubsubsection{\texorpdfstring{CreateDevice()}{CreateDevice()}}
+{\footnotesize\ttfamily virtual \mbox{\hyperlink{namespaceolc_a3d40e9b1c005602550230690b55ae87b}{olc\+::rcode}} olc\+::\+Renderer\+::\+Create\+Device (\begin{DoxyParamCaption}\item[{std\+::vector$<$ void $\ast$ $>$}]{params,  }\item[{bool}]{b\+Full\+Screen,  }\item[{bool}]{b\+V\+S\+Y\+NC }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [pure virtual]}}
+
+\mbox{\Hypertarget{classolc_1_1_renderer_aeac898aaf282d09a9cd848303de57bea}\label{classolc_1_1_renderer_aeac898aaf282d09a9cd848303de57bea}} 
+\index{olc::Renderer@{olc::Renderer}!CreateTexture@{CreateTexture}}
+\index{CreateTexture@{CreateTexture}!olc::Renderer@{olc::Renderer}}
+\doxysubsubsection{\texorpdfstring{CreateTexture()}{CreateTexture()}}
+{\footnotesize\ttfamily virtual uint32\+\_\+t olc\+::\+Renderer\+::\+Create\+Texture (\begin{DoxyParamCaption}\item[{const uint32\+\_\+t}]{width,  }\item[{const uint32\+\_\+t}]{height,  }\item[{const bool}]{filtered = {\ttfamily false},  }\item[{const bool}]{clamp = {\ttfamily true} }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [pure virtual]}}
+
+\mbox{\Hypertarget{classolc_1_1_renderer_aec8e86eb7a104fb0bc8f9fe51318f1a0}\label{classolc_1_1_renderer_aec8e86eb7a104fb0bc8f9fe51318f1a0}} 
+\index{olc::Renderer@{olc::Renderer}!DeleteTexture@{DeleteTexture}}
+\index{DeleteTexture@{DeleteTexture}!olc::Renderer@{olc::Renderer}}
+\doxysubsubsection{\texorpdfstring{DeleteTexture()}{DeleteTexture()}}
+{\footnotesize\ttfamily virtual uint32\+\_\+t olc\+::\+Renderer\+::\+Delete\+Texture (\begin{DoxyParamCaption}\item[{const uint32\+\_\+t}]{id }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [pure virtual]}}
+
+\mbox{\Hypertarget{classolc_1_1_renderer_a3a59a195cc380f89e5f9cc98b6fda2c7}\label{classolc_1_1_renderer_a3a59a195cc380f89e5f9cc98b6fda2c7}} 
+\index{olc::Renderer@{olc::Renderer}!DestroyDevice@{DestroyDevice}}
+\index{DestroyDevice@{DestroyDevice}!olc::Renderer@{olc::Renderer}}
+\doxysubsubsection{\texorpdfstring{DestroyDevice()}{DestroyDevice()}}
+{\footnotesize\ttfamily virtual \mbox{\hyperlink{namespaceolc_a3d40e9b1c005602550230690b55ae87b}{olc\+::rcode}} olc\+::\+Renderer\+::\+Destroy\+Device (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [pure virtual]}}
+
+\mbox{\Hypertarget{classolc_1_1_renderer_a660f3ca709b2a2fcec1d1cba1a4cfd18}\label{classolc_1_1_renderer_a660f3ca709b2a2fcec1d1cba1a4cfd18}} 
+\index{olc::Renderer@{olc::Renderer}!DisplayFrame@{DisplayFrame}}
+\index{DisplayFrame@{DisplayFrame}!olc::Renderer@{olc::Renderer}}
+\doxysubsubsection{\texorpdfstring{DisplayFrame()}{DisplayFrame()}}
+{\footnotesize\ttfamily virtual void olc\+::\+Renderer\+::\+Display\+Frame (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [pure virtual]}}
+
+\mbox{\Hypertarget{classolc_1_1_renderer_ac567df937350bffb2eae3e647ccc10d5}\label{classolc_1_1_renderer_ac567df937350bffb2eae3e647ccc10d5}} 
+\index{olc::Renderer@{olc::Renderer}!DrawDecal@{DrawDecal}}
+\index{DrawDecal@{DrawDecal}!olc::Renderer@{olc::Renderer}}
+\doxysubsubsection{\texorpdfstring{DrawDecal()}{DrawDecal()}}
+{\footnotesize\ttfamily virtual void olc\+::\+Renderer\+::\+Draw\+Decal (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{structolc_1_1_decal_instance}{olc\+::\+Decal\+Instance}} \&}]{decal }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [pure virtual]}}
+
+\mbox{\Hypertarget{classolc_1_1_renderer_a3eccca504615e72d1f40acd03ffce89f}\label{classolc_1_1_renderer_a3eccca504615e72d1f40acd03ffce89f}} 
+\index{olc::Renderer@{olc::Renderer}!DrawLayerQuad@{DrawLayerQuad}}
+\index{DrawLayerQuad@{DrawLayerQuad}!olc::Renderer@{olc::Renderer}}
+\doxysubsubsection{\texorpdfstring{DrawLayerQuad()}{DrawLayerQuad()}}
+{\footnotesize\ttfamily virtual void olc\+::\+Renderer\+::\+Draw\+Layer\+Quad (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&}]{offset,  }\item[{const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&}]{scale,  }\item[{const \mbox{\hyperlink{structolc_1_1_pixel}{olc\+::\+Pixel}}}]{tint }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [pure virtual]}}
+
+\mbox{\Hypertarget{classolc_1_1_renderer_a7d97cab172e59d23a2587f636c9b12b7}\label{classolc_1_1_renderer_a7d97cab172e59d23a2587f636c9b12b7}} 
+\index{olc::Renderer@{olc::Renderer}!PrepareDevice@{PrepareDevice}}
+\index{PrepareDevice@{PrepareDevice}!olc::Renderer@{olc::Renderer}}
+\doxysubsubsection{\texorpdfstring{PrepareDevice()}{PrepareDevice()}}
+{\footnotesize\ttfamily virtual void olc\+::\+Renderer\+::\+Prepare\+Device (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [pure virtual]}}
+
+\mbox{\Hypertarget{classolc_1_1_renderer_a04c56d76c76ab50f5f06b9b537e9d98d}\label{classolc_1_1_renderer_a04c56d76c76ab50f5f06b9b537e9d98d}} 
+\index{olc::Renderer@{olc::Renderer}!PrepareDrawing@{PrepareDrawing}}
+\index{PrepareDrawing@{PrepareDrawing}!olc::Renderer@{olc::Renderer}}
+\doxysubsubsection{\texorpdfstring{PrepareDrawing()}{PrepareDrawing()}}
+{\footnotesize\ttfamily virtual void olc\+::\+Renderer\+::\+Prepare\+Drawing (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [pure virtual]}}
+
+\mbox{\Hypertarget{classolc_1_1_renderer_aa0e93a7d9ff6f25e9b154b2c8c86d44d}\label{classolc_1_1_renderer_aa0e93a7d9ff6f25e9b154b2c8c86d44d}} 
+\index{olc::Renderer@{olc::Renderer}!ReadTexture@{ReadTexture}}
+\index{ReadTexture@{ReadTexture}!olc::Renderer@{olc::Renderer}}
+\doxysubsubsection{\texorpdfstring{ReadTexture()}{ReadTexture()}}
+{\footnotesize\ttfamily virtual void olc\+::\+Renderer\+::\+Read\+Texture (\begin{DoxyParamCaption}\item[{uint32\+\_\+t}]{id,  }\item[{\mbox{\hyperlink{classolc_1_1_sprite}{olc\+::\+Sprite}} $\ast$}]{spr }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [pure virtual]}}
+
+\mbox{\Hypertarget{classolc_1_1_renderer_aebfc5a561c54b88f16a0b3d855eedaa1}\label{classolc_1_1_renderer_aebfc5a561c54b88f16a0b3d855eedaa1}} 
+\index{olc::Renderer@{olc::Renderer}!SetDecalMode@{SetDecalMode}}
+\index{SetDecalMode@{SetDecalMode}!olc::Renderer@{olc::Renderer}}
+\doxysubsubsection{\texorpdfstring{SetDecalMode()}{SetDecalMode()}}
+{\footnotesize\ttfamily virtual void olc\+::\+Renderer\+::\+Set\+Decal\+Mode (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{namespaceolc_aeda642f63378f868193c28e8613138ca}{olc\+::\+Decal\+Mode}} \&}]{mode }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [pure virtual]}}
+
+\mbox{\Hypertarget{classolc_1_1_renderer_a1512e2939b94f6fdb58bbf152ac0e4e5}\label{classolc_1_1_renderer_a1512e2939b94f6fdb58bbf152ac0e4e5}} 
+\index{olc::Renderer@{olc::Renderer}!UpdateTexture@{UpdateTexture}}
+\index{UpdateTexture@{UpdateTexture}!olc::Renderer@{olc::Renderer}}
+\doxysubsubsection{\texorpdfstring{UpdateTexture()}{UpdateTexture()}}
+{\footnotesize\ttfamily virtual void olc\+::\+Renderer\+::\+Update\+Texture (\begin{DoxyParamCaption}\item[{uint32\+\_\+t}]{id,  }\item[{\mbox{\hyperlink{classolc_1_1_sprite}{olc\+::\+Sprite}} $\ast$}]{spr }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [pure virtual]}}
+
+\mbox{\Hypertarget{classolc_1_1_renderer_abc873336dd8f9079dc26f92ce0f95748}\label{classolc_1_1_renderer_abc873336dd8f9079dc26f92ce0f95748}} 
+\index{olc::Renderer@{olc::Renderer}!UpdateViewport@{UpdateViewport}}
+\index{UpdateViewport@{UpdateViewport}!olc::Renderer@{olc::Renderer}}
+\doxysubsubsection{\texorpdfstring{UpdateViewport()}{UpdateViewport()}}
+{\footnotesize\ttfamily virtual void olc\+::\+Renderer\+::\+Update\+Viewport (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{namespaceolc_a3c42697361e8a28424bcf8415aba3564}{olc\+::vi2d}} \&}]{pos,  }\item[{const \mbox{\hyperlink{namespaceolc_a3c42697361e8a28424bcf8415aba3564}{olc\+::vi2d}} \&}]{size }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [pure virtual]}}
+
+
+
+\doxysubsection{Member Data Documentation}
+\mbox{\Hypertarget{classolc_1_1_renderer_a89f800c14ab1b070408c17e2589e02a1}\label{classolc_1_1_renderer_a89f800c14ab1b070408c17e2589e02a1}} 
+\index{olc::Renderer@{olc::Renderer}!ptrPGE@{ptrPGE}}
+\index{ptrPGE@{ptrPGE}!olc::Renderer@{olc::Renderer}}
+\doxysubsubsection{\texorpdfstring{ptrPGE}{ptrPGE}}
+{\footnotesize\ttfamily \mbox{\hyperlink{classolc_1_1_pixel_game_engine}{olc\+::\+Pixel\+Game\+Engine}}$\ast$ olc\+::\+Renderer\+::ptr\+P\+GE\hspace{0.3cm}{\ttfamily [static]}}
+
+
+
+Definition at line 826 of file olc\+Pixel\+Game\+Engine.\+h.
+
+
+
+The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize}
+\item 
+C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\mbox{\hyperlink{olc_pixel_game_engine_8h}{olc\+Pixel\+Game\+Engine.\+h}}\end{DoxyCompactItemize}
diff --git a/doxy/latex/classolc_1_1_resource_pack.eps b/doxy/latex/classolc_1_1_resource_pack.eps
new file mode 100644
index 0000000000000000000000000000000000000000..e743a67b6a1b769ca8be44ffe4d400732561e9d5
--- /dev/null
+++ b/doxy/latex/classolc_1_1_resource_pack.eps
@@ -0,0 +1,197 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: ClassName
+%%Creator: Doxygen
+%%CreationDate: Time
+%%For: 
+%Magnification: 1.00
+%%Orientation: Portrait
+%%BoundingBox: 0 0 500 320.000000
+%%Pages: 0
+%%BeginSetup
+%%EndSetup
+%%EndComments
+
+% ----- variables -----
+
+/boxwidth 0 def
+/boxheight 40 def
+/fontheight 24 def
+/marginwidth 10 def
+/distx 20 def
+/disty 40 def
+/boundaspect 1.562500 def  % aspect ratio of the BoundingBox (width/height)
+/boundx 500 def
+/boundy boundx boundaspect div def
+/xspacing 0 def
+/yspacing 0 def
+/rows 2 def
+/cols 1 def
+/scalefactor 0 def
+/boxfont /Times-Roman findfont fontheight scalefont def
+
+% ----- procedures -----
+
+/dotted { [1 4] 0 setdash } def
+/dashed { [5] 0 setdash } def
+/solid  { [] 0 setdash } def
+
+/max % result = MAX(arg1,arg2)
+{
+  /a exch def
+  /b exch def
+  a b gt {a} {b} ifelse
+} def
+
+/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)
+{
+  0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max
+} def
+
+/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))
+{
+  /str exch def
+  /boxwidth boxwidth str stringwidth pop max def
+} def
+
+/box % draws a box with text 'arg1' at grid pos (arg2,arg3)
+{ gsave
+  2 setlinewidth
+  newpath
+  exch xspacing mul xoffset add
+  exch yspacing mul
+  moveto
+  boxwidth 0 rlineto 
+  0 boxheight rlineto 
+  boxwidth neg 0 rlineto 
+  0 boxheight neg rlineto 
+  closepath
+  dup stringwidth pop neg boxwidth add 2 div
+  boxheight fontheight 2 div sub 2 div
+  rmoveto show stroke
+  grestore
+} def  
+
+/mark
+{ newpath
+  exch xspacing mul xoffset add boxwidth add
+  exch yspacing mul
+  moveto
+  0 boxheight 4 div rlineto
+  boxheight neg 4 div boxheight neg 4 div rlineto
+  closepath
+  eofill
+  stroke
+} def
+
+/arrow
+{ newpath
+  moveto
+  3 -8 rlineto
+  -6 0 rlineto
+  3 8 rlineto
+  closepath
+  eofill
+  stroke
+} def
+
+/out % draws an output connector for the block at (arg1,arg2)
+{
+  newpath
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul boxheight add
+  /y exch def
+  /x exch def
+  x y moveto
+  0 disty 2 div rlineto 
+  stroke
+  1 eq { x y disty 2 div add arrow } if
+} def
+
+/in % draws an input connector for the block at (arg1,arg2)
+{
+  newpath
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul disty 2 div sub
+  /y exch def
+  /x exch def
+  x y moveto
+  0 disty 2 div rlineto
+  stroke
+  1 eq { x y disty 2 div add arrow } if
+} def
+
+/hedge
+{
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul boxheight 2 div sub
+  /y exch def
+  /x exch def
+  newpath
+  x y moveto
+  boxwidth 2 div distx add 0 rlineto
+  stroke
+  1 eq
+  { newpath x boxwidth 2 div distx add add y moveto
+    -8 3 rlineto
+    0 -6 rlineto
+    8 3 rlineto
+    closepath
+    eofill
+    stroke
+  } if
+} def
+
+/vedge
+{
+  /ye exch def
+  /ys exch def
+  /xs exch def
+  newpath
+  xs xspacing mul xoffset add boxwidth 2 div add dup
+  ys yspacing mul boxheight 2 div sub
+  moveto
+  ye yspacing mul boxheight 2 div sub
+  lineto
+  stroke
+} def
+
+/conn % connections the blocks from col 'arg1' to 'arg2' of row 'arg3'
+{
+  /ys exch def
+  /xe exch def
+  /xs exch def
+  newpath
+  xs xspacing mul xoffset add boxwidth 2 div add
+  ys yspacing mul disty 2 div sub
+  moveto
+  xspacing xe xs sub mul 0
+  rlineto
+  stroke
+} def
+
+% ----- main ------
+
+boxfont setfont
+1 boundaspect scale
+(olc::ResourcePack) cw
+(streambuf) cw
+/boxwidth boxwidth marginwidth 2 mul add def
+/xspacing boxwidth distx add def
+/yspacing boxheight disty add def
+/scalefactor 
+  boxwidth cols mul distx cols 1 sub mul add
+  boxheight rows mul disty rows 1 sub mul add boundaspect mul 
+  max def
+boundx scalefactor div boundy scalefactor div scale
+
+% ----- classes -----
+
+ (olc::ResourcePack) 0.000000 0.000000 box
+ (streambuf) 0.000000 1.000000 box
+
+% ----- relations -----
+
+solid
+0 0.000000 0.000000 out
+solid
+1 0.000000 1.000000 in
diff --git a/doxy/latex/classolc_1_1_resource_pack.tex b/doxy/latex/classolc_1_1_resource_pack.tex
new file mode 100644
index 0000000000000000000000000000000000000000..ff3360913c31be0c55de630cf6254220e0f3c1c2
--- /dev/null
+++ b/doxy/latex/classolc_1_1_resource_pack.tex
@@ -0,0 +1,89 @@
+\hypertarget{classolc_1_1_resource_pack}{}\doxysection{olc\+::Resource\+Pack Class Reference}
+\label{classolc_1_1_resource_pack}\index{olc::ResourcePack@{olc::ResourcePack}}
+
+
+{\ttfamily \#include $<$olc\+Pixel\+Game\+Engine.\+h$>$}
+
+Inheritance diagram for olc\+::Resource\+Pack\+:\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[height=2.000000cm]{classolc_1_1_resource_pack}
+\end{center}
+\end{figure}
+\doxysubsection*{Public Member Functions}
+\begin{DoxyCompactItemize}
+\item 
+\mbox{\hyperlink{classolc_1_1_resource_pack_af5b7f93e4fb4e8b899da50985b689083}{Resource\+Pack}} ()
+\item 
+\mbox{\hyperlink{classolc_1_1_resource_pack_a7e48d44ecdac3d4a2eec7bb5a5eb1ec5}{$\sim$\+Resource\+Pack}} ()
+\item 
+bool \mbox{\hyperlink{classolc_1_1_resource_pack_a56eebc321c66215d15df1390b1080c66}{Add\+File}} (const std\+::string \&s\+File)
+\item 
+bool \mbox{\hyperlink{classolc_1_1_resource_pack_a3168eef974448f8119e93af97272df27}{Load\+Pack}} (const std\+::string \&s\+File, const std\+::string \&s\+Key)
+\item 
+bool \mbox{\hyperlink{classolc_1_1_resource_pack_af6b1fec791c3c85b51b565db63a1aa9a}{Save\+Pack}} (const std\+::string \&s\+File, const std\+::string \&s\+Key)
+\item 
+\mbox{\hyperlink{structolc_1_1_resource_buffer}{Resource\+Buffer}} \mbox{\hyperlink{classolc_1_1_resource_pack_accb89668e145dc59e0740925b1b91987}{Get\+File\+Buffer}} (const std\+::string \&s\+File)
+\item 
+bool \mbox{\hyperlink{classolc_1_1_resource_pack_a4421c33c022ad042d29ef81f29f5b355}{Loaded}} ()
+\end{DoxyCompactItemize}
+
+
+\doxysubsection{Detailed Description}
+
+
+Definition at line 664 of file olc\+Pixel\+Game\+Engine.\+h.
+
+
+
+\doxysubsection{Constructor \& Destructor Documentation}
+\mbox{\Hypertarget{classolc_1_1_resource_pack_af5b7f93e4fb4e8b899da50985b689083}\label{classolc_1_1_resource_pack_af5b7f93e4fb4e8b899da50985b689083}} 
+\index{olc::ResourcePack@{olc::ResourcePack}!ResourcePack@{ResourcePack}}
+\index{ResourcePack@{ResourcePack}!olc::ResourcePack@{olc::ResourcePack}}
+\doxysubsubsection{\texorpdfstring{ResourcePack()}{ResourcePack()}}
+{\footnotesize\ttfamily olc\+::\+Resource\+Pack\+::\+Resource\+Pack (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}
+
+\mbox{\Hypertarget{classolc_1_1_resource_pack_a7e48d44ecdac3d4a2eec7bb5a5eb1ec5}\label{classolc_1_1_resource_pack_a7e48d44ecdac3d4a2eec7bb5a5eb1ec5}} 
+\index{olc::ResourcePack@{olc::ResourcePack}!````~ResourcePack@{$\sim$ResourcePack}}
+\index{````~ResourcePack@{$\sim$ResourcePack}!olc::ResourcePack@{olc::ResourcePack}}
+\doxysubsubsection{\texorpdfstring{$\sim$ResourcePack()}{~ResourcePack()}}
+{\footnotesize\ttfamily olc\+::\+Resource\+Pack\+::$\sim$\+Resource\+Pack (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}
+
+
+
+\doxysubsection{Member Function Documentation}
+\mbox{\Hypertarget{classolc_1_1_resource_pack_a56eebc321c66215d15df1390b1080c66}\label{classolc_1_1_resource_pack_a56eebc321c66215d15df1390b1080c66}} 
+\index{olc::ResourcePack@{olc::ResourcePack}!AddFile@{AddFile}}
+\index{AddFile@{AddFile}!olc::ResourcePack@{olc::ResourcePack}}
+\doxysubsubsection{\texorpdfstring{AddFile()}{AddFile()}}
+{\footnotesize\ttfamily bool olc\+::\+Resource\+Pack\+::\+Add\+File (\begin{DoxyParamCaption}\item[{const std\+::string \&}]{s\+File }\end{DoxyParamCaption})}
+
+\mbox{\Hypertarget{classolc_1_1_resource_pack_accb89668e145dc59e0740925b1b91987}\label{classolc_1_1_resource_pack_accb89668e145dc59e0740925b1b91987}} 
+\index{olc::ResourcePack@{olc::ResourcePack}!GetFileBuffer@{GetFileBuffer}}
+\index{GetFileBuffer@{GetFileBuffer}!olc::ResourcePack@{olc::ResourcePack}}
+\doxysubsubsection{\texorpdfstring{GetFileBuffer()}{GetFileBuffer()}}
+{\footnotesize\ttfamily \mbox{\hyperlink{structolc_1_1_resource_buffer}{Resource\+Buffer}} olc\+::\+Resource\+Pack\+::\+Get\+File\+Buffer (\begin{DoxyParamCaption}\item[{const std\+::string \&}]{s\+File }\end{DoxyParamCaption})}
+
+\mbox{\Hypertarget{classolc_1_1_resource_pack_a4421c33c022ad042d29ef81f29f5b355}\label{classolc_1_1_resource_pack_a4421c33c022ad042d29ef81f29f5b355}} 
+\index{olc::ResourcePack@{olc::ResourcePack}!Loaded@{Loaded}}
+\index{Loaded@{Loaded}!olc::ResourcePack@{olc::ResourcePack}}
+\doxysubsubsection{\texorpdfstring{Loaded()}{Loaded()}}
+{\footnotesize\ttfamily bool olc\+::\+Resource\+Pack\+::\+Loaded (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}
+
+\mbox{\Hypertarget{classolc_1_1_resource_pack_a3168eef974448f8119e93af97272df27}\label{classolc_1_1_resource_pack_a3168eef974448f8119e93af97272df27}} 
+\index{olc::ResourcePack@{olc::ResourcePack}!LoadPack@{LoadPack}}
+\index{LoadPack@{LoadPack}!olc::ResourcePack@{olc::ResourcePack}}
+\doxysubsubsection{\texorpdfstring{LoadPack()}{LoadPack()}}
+{\footnotesize\ttfamily bool olc\+::\+Resource\+Pack\+::\+Load\+Pack (\begin{DoxyParamCaption}\item[{const std\+::string \&}]{s\+File,  }\item[{const std\+::string \&}]{s\+Key }\end{DoxyParamCaption})}
+
+\mbox{\Hypertarget{classolc_1_1_resource_pack_af6b1fec791c3c85b51b565db63a1aa9a}\label{classolc_1_1_resource_pack_af6b1fec791c3c85b51b565db63a1aa9a}} 
+\index{olc::ResourcePack@{olc::ResourcePack}!SavePack@{SavePack}}
+\index{SavePack@{SavePack}!olc::ResourcePack@{olc::ResourcePack}}
+\doxysubsubsection{\texorpdfstring{SavePack()}{SavePack()}}
+{\footnotesize\ttfamily bool olc\+::\+Resource\+Pack\+::\+Save\+Pack (\begin{DoxyParamCaption}\item[{const std\+::string \&}]{s\+File,  }\item[{const std\+::string \&}]{s\+Key }\end{DoxyParamCaption})}
+
+
+
+The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize}
+\item 
+C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\mbox{\hyperlink{olc_pixel_game_engine_8h}{olc\+Pixel\+Game\+Engine.\+h}}\end{DoxyCompactItemize}
diff --git a/doxy/latex/classolc_1_1_sprite.tex b/doxy/latex/classolc_1_1_sprite.tex
new file mode 100644
index 0000000000000000000000000000000000000000..1143456773ac215823fa66f1b6add3d48f1e0bbc
--- /dev/null
+++ b/doxy/latex/classolc_1_1_sprite.tex
@@ -0,0 +1,299 @@
+\hypertarget{classolc_1_1_sprite}{}\doxysection{olc\+::Sprite Class Reference}
+\label{classolc_1_1_sprite}\index{olc::Sprite@{olc::Sprite}}
+
+
+{\ttfamily \#include $<$olc\+Pixel\+Game\+Engine.\+h$>$}
+
+\doxysubsection*{Public Types}
+\begin{DoxyCompactItemize}
+\item 
+enum \mbox{\hyperlink{classolc_1_1_sprite_a78b7f14903f9f0bb536b66c37f3139cf}{Mode}} \{ \mbox{\hyperlink{classolc_1_1_sprite_a78b7f14903f9f0bb536b66c37f3139cfa1128b229a2ab5d7b344aeefd329252a1}{N\+O\+R\+M\+AL}}, 
+\mbox{\hyperlink{classolc_1_1_sprite_a78b7f14903f9f0bb536b66c37f3139cfa3185e8dea4ea5a89d7ea66716c67a175}{P\+E\+R\+I\+O\+D\+IC}}
+ \}
+\item 
+enum \mbox{\hyperlink{classolc_1_1_sprite_ad0d1976d2060997f5cd99eb284a5dc24}{Flip}} \{ \mbox{\hyperlink{classolc_1_1_sprite_ad0d1976d2060997f5cd99eb284a5dc24a6ad338b4e63faacfbed68b020c3a0c0c}{N\+O\+NE}} = 0, 
+\mbox{\hyperlink{classolc_1_1_sprite_ad0d1976d2060997f5cd99eb284a5dc24a2ff5b18e468156f629a10c5b515d78cd}{H\+O\+R\+IZ}} = 1, 
+\mbox{\hyperlink{classolc_1_1_sprite_ad0d1976d2060997f5cd99eb284a5dc24a7d2b99d18b574e41332e569d141914c5}{V\+E\+RT}} = 2
+ \}
+\end{DoxyCompactItemize}
+\doxysubsection*{Public Member Functions}
+\begin{DoxyCompactItemize}
+\item 
+\mbox{\hyperlink{classolc_1_1_sprite_aaf231565550d294ef20bf31364562ec3}{Sprite}} ()
+\item 
+\mbox{\hyperlink{classolc_1_1_sprite_ad8ce71f2399a2721aff9234390a18b8e}{Sprite}} (const std\+::string \&s\+Image\+File, \mbox{\hyperlink{classolc_1_1_resource_pack}{olc\+::\+Resource\+Pack}} $\ast$pack=nullptr)
+\item 
+\mbox{\hyperlink{classolc_1_1_sprite_a3e452a040fc2680228b1e6a7b6b9890e}{Sprite}} (int32\+\_\+t w, int32\+\_\+t h)
+\item 
+\mbox{\hyperlink{classolc_1_1_sprite_a5b0190890ed98560125b2ae4db9a7d9f}{Sprite}} (const \mbox{\hyperlink{classolc_1_1_sprite}{olc\+::\+Sprite}} \&)=delete
+\item 
+\mbox{\hyperlink{classolc_1_1_sprite_a594abc52842c29e4a5417adf57fb877e}{$\sim$\+Sprite}} ()
+\item 
+\mbox{\hyperlink{namespaceolc_a3d40e9b1c005602550230690b55ae87b}{olc\+::rcode}} \mbox{\hyperlink{classolc_1_1_sprite_adc277c0342733a4aa8dcdc9152326fec}{Load\+From\+File}} (const std\+::string \&s\+Image\+File, \mbox{\hyperlink{classolc_1_1_resource_pack}{olc\+::\+Resource\+Pack}} $\ast$pack=nullptr)
+\item 
+\mbox{\hyperlink{namespaceolc_a3d40e9b1c005602550230690b55ae87b}{olc\+::rcode}} \mbox{\hyperlink{classolc_1_1_sprite_a6959a2d94d6c02b7918aec5ce9b1a371}{Load\+From\+P\+G\+E\+Spr\+File}} (const std\+::string \&s\+Image\+File, \mbox{\hyperlink{classolc_1_1_resource_pack}{olc\+::\+Resource\+Pack}} $\ast$pack=nullptr)
+\item 
+\mbox{\hyperlink{namespaceolc_a3d40e9b1c005602550230690b55ae87b}{olc\+::rcode}} \mbox{\hyperlink{classolc_1_1_sprite_a1f1b2a3f1fd932a6a14faa622a2918bf}{Save\+To\+P\+G\+E\+Spr\+File}} (const std\+::string \&s\+Image\+File)
+\item 
+void \mbox{\hyperlink{classolc_1_1_sprite_a78f4fcf41780cfc547f21e5a0dea03a2}{Set\+Sample\+Mode}} (\mbox{\hyperlink{classolc_1_1_sprite_a78b7f14903f9f0bb536b66c37f3139cf}{olc\+::\+Sprite\+::\+Mode}} mode=olc\+::\+Sprite\+::\+Mode\+::\+N\+O\+R\+M\+AL)
+\item 
+\mbox{\hyperlink{structolc_1_1_pixel}{Pixel}} \mbox{\hyperlink{classolc_1_1_sprite_a7e1f8169c9822f1ed94f0212d3f8d6f6}{Get\+Pixel}} (int32\+\_\+t x, int32\+\_\+t y) const
+\item 
+bool \mbox{\hyperlink{classolc_1_1_sprite_a294389e93a95c8307f1260d7cacaf9ba}{Set\+Pixel}} (int32\+\_\+t x, int32\+\_\+t y, \mbox{\hyperlink{structolc_1_1_pixel}{Pixel}} p)
+\item 
+\mbox{\hyperlink{structolc_1_1_pixel}{Pixel}} \mbox{\hyperlink{classolc_1_1_sprite_a1a05e4ffd8d8b24b99ab511279b342cf}{Get\+Pixel}} (const \mbox{\hyperlink{namespaceolc_a3c42697361e8a28424bcf8415aba3564}{olc\+::vi2d}} \&a) const
+\item 
+bool \mbox{\hyperlink{classolc_1_1_sprite_ae7b8af09a29793ab16b7b813c8b0d26d}{Set\+Pixel}} (const \mbox{\hyperlink{namespaceolc_a3c42697361e8a28424bcf8415aba3564}{olc\+::vi2d}} \&a, \mbox{\hyperlink{structolc_1_1_pixel}{Pixel}} p)
+\item 
+\mbox{\hyperlink{structolc_1_1_pixel}{Pixel}} \mbox{\hyperlink{classolc_1_1_sprite_a902192f81ab42420921992a7288aab48}{Sample}} (float x, float y) const
+\item 
+\mbox{\hyperlink{structolc_1_1_pixel}{Pixel}} \mbox{\hyperlink{classolc_1_1_sprite_a5e28024237453fb56c32f37d6996443d}{Sample\+BL}} (float u, float v) const
+\item 
+\mbox{\hyperlink{structolc_1_1_pixel}{Pixel}} $\ast$ \mbox{\hyperlink{classolc_1_1_sprite_ad8fcc6bbf8a785aa0bb9d00bf3cfdff2}{Get\+Data}} ()
+\item 
+\mbox{\hyperlink{classolc_1_1_sprite}{olc\+::\+Sprite}} $\ast$ \mbox{\hyperlink{classolc_1_1_sprite_a0b9399ba5d6df0b481ab16d8c4a28ded}{Duplicate}} ()
+\item 
+\mbox{\hyperlink{classolc_1_1_sprite}{olc\+::\+Sprite}} $\ast$ \mbox{\hyperlink{classolc_1_1_sprite_ac4307f400438dad18b0720cc034bec0b}{Duplicate}} (const \mbox{\hyperlink{namespaceolc_a3c42697361e8a28424bcf8415aba3564}{olc\+::vi2d}} \&v\+Pos, const \mbox{\hyperlink{namespaceolc_a3c42697361e8a28424bcf8415aba3564}{olc\+::vi2d}} \&v\+Size)
+\end{DoxyCompactItemize}
+\doxysubsection*{Public Attributes}
+\begin{DoxyCompactItemize}
+\item 
+int32\+\_\+t \mbox{\hyperlink{classolc_1_1_sprite_af055800e63204ae372ca0812e6926230}{width}} = 0
+\item 
+int32\+\_\+t \mbox{\hyperlink{classolc_1_1_sprite_ab05010cb1a5ff6c36267d0050d568d96}{height}} = 0
+\item 
+std\+::vector$<$ \mbox{\hyperlink{structolc_1_1_pixel}{olc\+::\+Pixel}} $>$ \mbox{\hyperlink{classolc_1_1_sprite_adb41a2041dfe14de9605dabcd905db60}{p\+Col\+Data}}
+\item 
+\mbox{\hyperlink{classolc_1_1_sprite_a78b7f14903f9f0bb536b66c37f3139cf}{Mode}} \mbox{\hyperlink{classolc_1_1_sprite_ab9182b86e829467f454c7ef630ebc9fb}{mode\+Sample}} = Mode\+::\+N\+O\+R\+M\+AL
+\end{DoxyCompactItemize}
+\doxysubsection*{Static Public Attributes}
+\begin{DoxyCompactItemize}
+\item 
+static std\+::unique\+\_\+ptr$<$ \mbox{\hyperlink{classolc_1_1_image_loader}{olc\+::\+Image\+Loader}} $>$ \mbox{\hyperlink{classolc_1_1_sprite_a023da26661031ebf7a276cafd9a43902}{loader}}
+\end{DoxyCompactItemize}
+
+
+\doxysubsection{Detailed Description}
+
+
+Definition at line 696 of file olc\+Pixel\+Game\+Engine.\+h.
+
+
+
+\doxysubsection{Member Enumeration Documentation}
+\mbox{\Hypertarget{classolc_1_1_sprite_ad0d1976d2060997f5cd99eb284a5dc24}\label{classolc_1_1_sprite_ad0d1976d2060997f5cd99eb284a5dc24}} 
+\index{olc::Sprite@{olc::Sprite}!Flip@{Flip}}
+\index{Flip@{Flip}!olc::Sprite@{olc::Sprite}}
+\doxysubsubsection{\texorpdfstring{Flip}{Flip}}
+{\footnotesize\ttfamily enum \mbox{\hyperlink{classolc_1_1_sprite_ad0d1976d2060997f5cd99eb284a5dc24}{olc\+::\+Sprite\+::\+Flip}}}
+
+\begin{DoxyEnumFields}{Enumerator}
+\raisebox{\heightof{T}}[0pt][0pt]{\index{NONE@{NONE}!olc::Sprite@{olc::Sprite}}\index{olc::Sprite@{olc::Sprite}!NONE@{NONE}}}\mbox{\Hypertarget{classolc_1_1_sprite_ad0d1976d2060997f5cd99eb284a5dc24a6ad338b4e63faacfbed68b020c3a0c0c}\label{classolc_1_1_sprite_ad0d1976d2060997f5cd99eb284a5dc24a6ad338b4e63faacfbed68b020c3a0c0c}} 
+N\+O\+NE&\\
+\hline
+
+\raisebox{\heightof{T}}[0pt][0pt]{\index{HORIZ@{HORIZ}!olc::Sprite@{olc::Sprite}}\index{olc::Sprite@{olc::Sprite}!HORIZ@{HORIZ}}}\mbox{\Hypertarget{classolc_1_1_sprite_ad0d1976d2060997f5cd99eb284a5dc24a2ff5b18e468156f629a10c5b515d78cd}\label{classolc_1_1_sprite_ad0d1976d2060997f5cd99eb284a5dc24a2ff5b18e468156f629a10c5b515d78cd}} 
+H\+O\+R\+IZ&\\
+\hline
+
+\raisebox{\heightof{T}}[0pt][0pt]{\index{VERT@{VERT}!olc::Sprite@{olc::Sprite}}\index{olc::Sprite@{olc::Sprite}!VERT@{VERT}}}\mbox{\Hypertarget{classolc_1_1_sprite_ad0d1976d2060997f5cd99eb284a5dc24a7d2b99d18b574e41332e569d141914c5}\label{classolc_1_1_sprite_ad0d1976d2060997f5cd99eb284a5dc24a7d2b99d18b574e41332e569d141914c5}} 
+V\+E\+RT&\\
+\hline
+
+\end{DoxyEnumFields}
+
+
+Definition at line 714 of file olc\+Pixel\+Game\+Engine.\+h.
+
+\mbox{\Hypertarget{classolc_1_1_sprite_a78b7f14903f9f0bb536b66c37f3139cf}\label{classolc_1_1_sprite_a78b7f14903f9f0bb536b66c37f3139cf}} 
+\index{olc::Sprite@{olc::Sprite}!Mode@{Mode}}
+\index{Mode@{Mode}!olc::Sprite@{olc::Sprite}}
+\doxysubsubsection{\texorpdfstring{Mode}{Mode}}
+{\footnotesize\ttfamily enum \mbox{\hyperlink{classolc_1_1_sprite_a78b7f14903f9f0bb536b66c37f3139cf}{olc\+::\+Sprite\+::\+Mode}}}
+
+\begin{DoxyEnumFields}{Enumerator}
+\raisebox{\heightof{T}}[0pt][0pt]{\index{NORMAL@{NORMAL}!olc::Sprite@{olc::Sprite}}\index{olc::Sprite@{olc::Sprite}!NORMAL@{NORMAL}}}\mbox{\Hypertarget{classolc_1_1_sprite_a78b7f14903f9f0bb536b66c37f3139cfa1128b229a2ab5d7b344aeefd329252a1}\label{classolc_1_1_sprite_a78b7f14903f9f0bb536b66c37f3139cfa1128b229a2ab5d7b344aeefd329252a1}} 
+N\+O\+R\+M\+AL&\\
+\hline
+
+\raisebox{\heightof{T}}[0pt][0pt]{\index{PERIODIC@{PERIODIC}!olc::Sprite@{olc::Sprite}}\index{olc::Sprite@{olc::Sprite}!PERIODIC@{PERIODIC}}}\mbox{\Hypertarget{classolc_1_1_sprite_a78b7f14903f9f0bb536b66c37f3139cfa3185e8dea4ea5a89d7ea66716c67a175}\label{classolc_1_1_sprite_a78b7f14903f9f0bb536b66c37f3139cfa3185e8dea4ea5a89d7ea66716c67a175}} 
+P\+E\+R\+I\+O\+D\+IC&\\
+\hline
+
+\end{DoxyEnumFields}
+
+
+Definition at line 713 of file olc\+Pixel\+Game\+Engine.\+h.
+
+
+
+\doxysubsection{Constructor \& Destructor Documentation}
+\mbox{\Hypertarget{classolc_1_1_sprite_aaf231565550d294ef20bf31364562ec3}\label{classolc_1_1_sprite_aaf231565550d294ef20bf31364562ec3}} 
+\index{olc::Sprite@{olc::Sprite}!Sprite@{Sprite}}
+\index{Sprite@{Sprite}!olc::Sprite@{olc::Sprite}}
+\doxysubsubsection{\texorpdfstring{Sprite()}{Sprite()}\hspace{0.1cm}{\footnotesize\ttfamily [1/4]}}
+{\footnotesize\ttfamily olc\+::\+Sprite\+::\+Sprite (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}
+
+\mbox{\Hypertarget{classolc_1_1_sprite_ad8ce71f2399a2721aff9234390a18b8e}\label{classolc_1_1_sprite_ad8ce71f2399a2721aff9234390a18b8e}} 
+\index{olc::Sprite@{olc::Sprite}!Sprite@{Sprite}}
+\index{Sprite@{Sprite}!olc::Sprite@{olc::Sprite}}
+\doxysubsubsection{\texorpdfstring{Sprite()}{Sprite()}\hspace{0.1cm}{\footnotesize\ttfamily [2/4]}}
+{\footnotesize\ttfamily olc\+::\+Sprite\+::\+Sprite (\begin{DoxyParamCaption}\item[{const std\+::string \&}]{s\+Image\+File,  }\item[{\mbox{\hyperlink{classolc_1_1_resource_pack}{olc\+::\+Resource\+Pack}} $\ast$}]{pack = {\ttfamily nullptr} }\end{DoxyParamCaption})}
+
+\mbox{\Hypertarget{classolc_1_1_sprite_a3e452a040fc2680228b1e6a7b6b9890e}\label{classolc_1_1_sprite_a3e452a040fc2680228b1e6a7b6b9890e}} 
+\index{olc::Sprite@{olc::Sprite}!Sprite@{Sprite}}
+\index{Sprite@{Sprite}!olc::Sprite@{olc::Sprite}}
+\doxysubsubsection{\texorpdfstring{Sprite()}{Sprite()}\hspace{0.1cm}{\footnotesize\ttfamily [3/4]}}
+{\footnotesize\ttfamily olc\+::\+Sprite\+::\+Sprite (\begin{DoxyParamCaption}\item[{int32\+\_\+t}]{w,  }\item[{int32\+\_\+t}]{h }\end{DoxyParamCaption})}
+
+\mbox{\Hypertarget{classolc_1_1_sprite_a5b0190890ed98560125b2ae4db9a7d9f}\label{classolc_1_1_sprite_a5b0190890ed98560125b2ae4db9a7d9f}} 
+\index{olc::Sprite@{olc::Sprite}!Sprite@{Sprite}}
+\index{Sprite@{Sprite}!olc::Sprite@{olc::Sprite}}
+\doxysubsubsection{\texorpdfstring{Sprite()}{Sprite()}\hspace{0.1cm}{\footnotesize\ttfamily [4/4]}}
+{\footnotesize\ttfamily olc\+::\+Sprite\+::\+Sprite (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{classolc_1_1_sprite}{olc\+::\+Sprite}} \&}]{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [delete]}}
+
+\mbox{\Hypertarget{classolc_1_1_sprite_a594abc52842c29e4a5417adf57fb877e}\label{classolc_1_1_sprite_a594abc52842c29e4a5417adf57fb877e}} 
+\index{olc::Sprite@{olc::Sprite}!````~Sprite@{$\sim$Sprite}}
+\index{````~Sprite@{$\sim$Sprite}!olc::Sprite@{olc::Sprite}}
+\doxysubsubsection{\texorpdfstring{$\sim$Sprite()}{~Sprite()}}
+{\footnotesize\ttfamily olc\+::\+Sprite\+::$\sim$\+Sprite (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}
+
+
+
+\doxysubsection{Member Function Documentation}
+\mbox{\Hypertarget{classolc_1_1_sprite_a0b9399ba5d6df0b481ab16d8c4a28ded}\label{classolc_1_1_sprite_a0b9399ba5d6df0b481ab16d8c4a28ded}} 
+\index{olc::Sprite@{olc::Sprite}!Duplicate@{Duplicate}}
+\index{Duplicate@{Duplicate}!olc::Sprite@{olc::Sprite}}
+\doxysubsubsection{\texorpdfstring{Duplicate()}{Duplicate()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
+{\footnotesize\ttfamily \mbox{\hyperlink{classolc_1_1_sprite}{olc\+::\+Sprite}}$\ast$ olc\+::\+Sprite\+::\+Duplicate (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}
+
+\mbox{\Hypertarget{classolc_1_1_sprite_ac4307f400438dad18b0720cc034bec0b}\label{classolc_1_1_sprite_ac4307f400438dad18b0720cc034bec0b}} 
+\index{olc::Sprite@{olc::Sprite}!Duplicate@{Duplicate}}
+\index{Duplicate@{Duplicate}!olc::Sprite@{olc::Sprite}}
+\doxysubsubsection{\texorpdfstring{Duplicate()}{Duplicate()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
+{\footnotesize\ttfamily \mbox{\hyperlink{classolc_1_1_sprite}{olc\+::\+Sprite}}$\ast$ olc\+::\+Sprite\+::\+Duplicate (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{namespaceolc_a3c42697361e8a28424bcf8415aba3564}{olc\+::vi2d}} \&}]{v\+Pos,  }\item[{const \mbox{\hyperlink{namespaceolc_a3c42697361e8a28424bcf8415aba3564}{olc\+::vi2d}} \&}]{v\+Size }\end{DoxyParamCaption})}
+
+\mbox{\Hypertarget{classolc_1_1_sprite_ad8fcc6bbf8a785aa0bb9d00bf3cfdff2}\label{classolc_1_1_sprite_ad8fcc6bbf8a785aa0bb9d00bf3cfdff2}} 
+\index{olc::Sprite@{olc::Sprite}!GetData@{GetData}}
+\index{GetData@{GetData}!olc::Sprite@{olc::Sprite}}
+\doxysubsubsection{\texorpdfstring{GetData()}{GetData()}}
+{\footnotesize\ttfamily \mbox{\hyperlink{structolc_1_1_pixel}{Pixel}}$\ast$ olc\+::\+Sprite\+::\+Get\+Data (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}
+
+\mbox{\Hypertarget{classolc_1_1_sprite_a1a05e4ffd8d8b24b99ab511279b342cf}\label{classolc_1_1_sprite_a1a05e4ffd8d8b24b99ab511279b342cf}} 
+\index{olc::Sprite@{olc::Sprite}!GetPixel@{GetPixel}}
+\index{GetPixel@{GetPixel}!olc::Sprite@{olc::Sprite}}
+\doxysubsubsection{\texorpdfstring{GetPixel()}{GetPixel()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
+{\footnotesize\ttfamily \mbox{\hyperlink{structolc_1_1_pixel}{Pixel}} olc\+::\+Sprite\+::\+Get\+Pixel (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{namespaceolc_a3c42697361e8a28424bcf8415aba3564}{olc\+::vi2d}} \&}]{a }\end{DoxyParamCaption}) const}
+
+\mbox{\Hypertarget{classolc_1_1_sprite_a7e1f8169c9822f1ed94f0212d3f8d6f6}\label{classolc_1_1_sprite_a7e1f8169c9822f1ed94f0212d3f8d6f6}} 
+\index{olc::Sprite@{olc::Sprite}!GetPixel@{GetPixel}}
+\index{GetPixel@{GetPixel}!olc::Sprite@{olc::Sprite}}
+\doxysubsubsection{\texorpdfstring{GetPixel()}{GetPixel()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
+{\footnotesize\ttfamily \mbox{\hyperlink{structolc_1_1_pixel}{Pixel}} olc\+::\+Sprite\+::\+Get\+Pixel (\begin{DoxyParamCaption}\item[{int32\+\_\+t}]{x,  }\item[{int32\+\_\+t}]{y }\end{DoxyParamCaption}) const}
+
+\mbox{\Hypertarget{classolc_1_1_sprite_adc277c0342733a4aa8dcdc9152326fec}\label{classolc_1_1_sprite_adc277c0342733a4aa8dcdc9152326fec}} 
+\index{olc::Sprite@{olc::Sprite}!LoadFromFile@{LoadFromFile}}
+\index{LoadFromFile@{LoadFromFile}!olc::Sprite@{olc::Sprite}}
+\doxysubsubsection{\texorpdfstring{LoadFromFile()}{LoadFromFile()}}
+{\footnotesize\ttfamily \mbox{\hyperlink{namespaceolc_a3d40e9b1c005602550230690b55ae87b}{olc\+::rcode}} olc\+::\+Sprite\+::\+Load\+From\+File (\begin{DoxyParamCaption}\item[{const std\+::string \&}]{s\+Image\+File,  }\item[{\mbox{\hyperlink{classolc_1_1_resource_pack}{olc\+::\+Resource\+Pack}} $\ast$}]{pack = {\ttfamily nullptr} }\end{DoxyParamCaption})}
+
+\mbox{\Hypertarget{classolc_1_1_sprite_a6959a2d94d6c02b7918aec5ce9b1a371}\label{classolc_1_1_sprite_a6959a2d94d6c02b7918aec5ce9b1a371}} 
+\index{olc::Sprite@{olc::Sprite}!LoadFromPGESprFile@{LoadFromPGESprFile}}
+\index{LoadFromPGESprFile@{LoadFromPGESprFile}!olc::Sprite@{olc::Sprite}}
+\doxysubsubsection{\texorpdfstring{LoadFromPGESprFile()}{LoadFromPGESprFile()}}
+{\footnotesize\ttfamily \mbox{\hyperlink{namespaceolc_a3d40e9b1c005602550230690b55ae87b}{olc\+::rcode}} olc\+::\+Sprite\+::\+Load\+From\+P\+G\+E\+Spr\+File (\begin{DoxyParamCaption}\item[{const std\+::string \&}]{s\+Image\+File,  }\item[{\mbox{\hyperlink{classolc_1_1_resource_pack}{olc\+::\+Resource\+Pack}} $\ast$}]{pack = {\ttfamily nullptr} }\end{DoxyParamCaption})}
+
+\mbox{\Hypertarget{classolc_1_1_sprite_a902192f81ab42420921992a7288aab48}\label{classolc_1_1_sprite_a902192f81ab42420921992a7288aab48}} 
+\index{olc::Sprite@{olc::Sprite}!Sample@{Sample}}
+\index{Sample@{Sample}!olc::Sprite@{olc::Sprite}}
+\doxysubsubsection{\texorpdfstring{Sample()}{Sample()}}
+{\footnotesize\ttfamily \mbox{\hyperlink{structolc_1_1_pixel}{Pixel}} olc\+::\+Sprite\+::\+Sample (\begin{DoxyParamCaption}\item[{float}]{x,  }\item[{float}]{y }\end{DoxyParamCaption}) const}
+
+\mbox{\Hypertarget{classolc_1_1_sprite_a5e28024237453fb56c32f37d6996443d}\label{classolc_1_1_sprite_a5e28024237453fb56c32f37d6996443d}} 
+\index{olc::Sprite@{olc::Sprite}!SampleBL@{SampleBL}}
+\index{SampleBL@{SampleBL}!olc::Sprite@{olc::Sprite}}
+\doxysubsubsection{\texorpdfstring{SampleBL()}{SampleBL()}}
+{\footnotesize\ttfamily \mbox{\hyperlink{structolc_1_1_pixel}{Pixel}} olc\+::\+Sprite\+::\+Sample\+BL (\begin{DoxyParamCaption}\item[{float}]{u,  }\item[{float}]{v }\end{DoxyParamCaption}) const}
+
+\mbox{\Hypertarget{classolc_1_1_sprite_a1f1b2a3f1fd932a6a14faa622a2918bf}\label{classolc_1_1_sprite_a1f1b2a3f1fd932a6a14faa622a2918bf}} 
+\index{olc::Sprite@{olc::Sprite}!SaveToPGESprFile@{SaveToPGESprFile}}
+\index{SaveToPGESprFile@{SaveToPGESprFile}!olc::Sprite@{olc::Sprite}}
+\doxysubsubsection{\texorpdfstring{SaveToPGESprFile()}{SaveToPGESprFile()}}
+{\footnotesize\ttfamily \mbox{\hyperlink{namespaceolc_a3d40e9b1c005602550230690b55ae87b}{olc\+::rcode}} olc\+::\+Sprite\+::\+Save\+To\+P\+G\+E\+Spr\+File (\begin{DoxyParamCaption}\item[{const std\+::string \&}]{s\+Image\+File }\end{DoxyParamCaption})}
+
+\mbox{\Hypertarget{classolc_1_1_sprite_ae7b8af09a29793ab16b7b813c8b0d26d}\label{classolc_1_1_sprite_ae7b8af09a29793ab16b7b813c8b0d26d}} 
+\index{olc::Sprite@{olc::Sprite}!SetPixel@{SetPixel}}
+\index{SetPixel@{SetPixel}!olc::Sprite@{olc::Sprite}}
+\doxysubsubsection{\texorpdfstring{SetPixel()}{SetPixel()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
+{\footnotesize\ttfamily bool olc\+::\+Sprite\+::\+Set\+Pixel (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{namespaceolc_a3c42697361e8a28424bcf8415aba3564}{olc\+::vi2d}} \&}]{a,  }\item[{\mbox{\hyperlink{structolc_1_1_pixel}{Pixel}}}]{p }\end{DoxyParamCaption})}
+
+\mbox{\Hypertarget{classolc_1_1_sprite_a294389e93a95c8307f1260d7cacaf9ba}\label{classolc_1_1_sprite_a294389e93a95c8307f1260d7cacaf9ba}} 
+\index{olc::Sprite@{olc::Sprite}!SetPixel@{SetPixel}}
+\index{SetPixel@{SetPixel}!olc::Sprite@{olc::Sprite}}
+\doxysubsubsection{\texorpdfstring{SetPixel()}{SetPixel()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
+{\footnotesize\ttfamily bool olc\+::\+Sprite\+::\+Set\+Pixel (\begin{DoxyParamCaption}\item[{int32\+\_\+t}]{x,  }\item[{int32\+\_\+t}]{y,  }\item[{\mbox{\hyperlink{structolc_1_1_pixel}{Pixel}}}]{p }\end{DoxyParamCaption})}
+
+\mbox{\Hypertarget{classolc_1_1_sprite_a78f4fcf41780cfc547f21e5a0dea03a2}\label{classolc_1_1_sprite_a78f4fcf41780cfc547f21e5a0dea03a2}} 
+\index{olc::Sprite@{olc::Sprite}!SetSampleMode@{SetSampleMode}}
+\index{SetSampleMode@{SetSampleMode}!olc::Sprite@{olc::Sprite}}
+\doxysubsubsection{\texorpdfstring{SetSampleMode()}{SetSampleMode()}}
+{\footnotesize\ttfamily void olc\+::\+Sprite\+::\+Set\+Sample\+Mode (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{classolc_1_1_sprite_a78b7f14903f9f0bb536b66c37f3139cf}{olc\+::\+Sprite\+::\+Mode}}}]{mode = {\ttfamily olc\+:\+:Sprite\+:\+:Mode\+:\+:NORMAL} }\end{DoxyParamCaption})}
+
+
+
+\doxysubsection{Member Data Documentation}
+\mbox{\Hypertarget{classolc_1_1_sprite_ab05010cb1a5ff6c36267d0050d568d96}\label{classolc_1_1_sprite_ab05010cb1a5ff6c36267d0050d568d96}} 
+\index{olc::Sprite@{olc::Sprite}!height@{height}}
+\index{height@{height}!olc::Sprite@{olc::Sprite}}
+\doxysubsubsection{\texorpdfstring{height}{height}}
+{\footnotesize\ttfamily int32\+\_\+t olc\+::\+Sprite\+::height = 0}
+
+
+
+Definition at line 712 of file olc\+Pixel\+Game\+Engine.\+h.
+
+\mbox{\Hypertarget{classolc_1_1_sprite_a023da26661031ebf7a276cafd9a43902}\label{classolc_1_1_sprite_a023da26661031ebf7a276cafd9a43902}} 
+\index{olc::Sprite@{olc::Sprite}!loader@{loader}}
+\index{loader@{loader}!olc::Sprite@{olc::Sprite}}
+\doxysubsubsection{\texorpdfstring{loader}{loader}}
+{\footnotesize\ttfamily std\+::unique\+\_\+ptr$<$\mbox{\hyperlink{classolc_1_1_image_loader}{olc\+::\+Image\+Loader}}$>$ olc\+::\+Sprite\+::loader\hspace{0.3cm}{\ttfamily [static]}}
+
+
+
+Definition at line 730 of file olc\+Pixel\+Game\+Engine.\+h.
+
+\mbox{\Hypertarget{classolc_1_1_sprite_ab9182b86e829467f454c7ef630ebc9fb}\label{classolc_1_1_sprite_ab9182b86e829467f454c7ef630ebc9fb}} 
+\index{olc::Sprite@{olc::Sprite}!modeSample@{modeSample}}
+\index{modeSample@{modeSample}!olc::Sprite@{olc::Sprite}}
+\doxysubsubsection{\texorpdfstring{modeSample}{modeSample}}
+{\footnotesize\ttfamily \mbox{\hyperlink{classolc_1_1_sprite_a78b7f14903f9f0bb536b66c37f3139cf}{Mode}} olc\+::\+Sprite\+::mode\+Sample = Mode\+::\+N\+O\+R\+M\+AL}
+
+
+
+Definition at line 728 of file olc\+Pixel\+Game\+Engine.\+h.
+
+\mbox{\Hypertarget{classolc_1_1_sprite_adb41a2041dfe14de9605dabcd905db60}\label{classolc_1_1_sprite_adb41a2041dfe14de9605dabcd905db60}} 
+\index{olc::Sprite@{olc::Sprite}!pColData@{pColData}}
+\index{pColData@{pColData}!olc::Sprite@{olc::Sprite}}
+\doxysubsubsection{\texorpdfstring{pColData}{pColData}}
+{\footnotesize\ttfamily std\+::vector$<$\mbox{\hyperlink{structolc_1_1_pixel}{olc\+::\+Pixel}}$>$ olc\+::\+Sprite\+::p\+Col\+Data}
+
+
+
+Definition at line 727 of file olc\+Pixel\+Game\+Engine.\+h.
+
+\mbox{\Hypertarget{classolc_1_1_sprite_af055800e63204ae372ca0812e6926230}\label{classolc_1_1_sprite_af055800e63204ae372ca0812e6926230}} 
+\index{olc::Sprite@{olc::Sprite}!width@{width}}
+\index{width@{width}!olc::Sprite@{olc::Sprite}}
+\doxysubsubsection{\texorpdfstring{width}{width}}
+{\footnotesize\ttfamily int32\+\_\+t olc\+::\+Sprite\+::width = 0}
+
+
+
+Definition at line 711 of file olc\+Pixel\+Game\+Engine.\+h.
+
+
+
+The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize}
+\item 
+C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\mbox{\hyperlink{olc_pixel_game_engine_8h}{olc\+Pixel\+Game\+Engine.\+h}}\end{DoxyCompactItemize}
diff --git a/doxy/latex/classolc_1_1_tile_transformed_view.eps b/doxy/latex/classolc_1_1_tile_transformed_view.eps
new file mode 100644
index 0000000000000000000000000000000000000000..bfc582977f299ad6067c71ee4862abbb04fdb075
--- /dev/null
+++ b/doxy/latex/classolc_1_1_tile_transformed_view.eps
@@ -0,0 +1,203 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: ClassName
+%%Creator: Doxygen
+%%CreationDate: Time
+%%For: 
+%Magnification: 1.00
+%%Orientation: Portrait
+%%BoundingBox: 0 0 500 370.370361
+%%Pages: 0
+%%BeginSetup
+%%EndSetup
+%%EndComments
+
+% ----- variables -----
+
+/boxwidth 0 def
+/boxheight 40 def
+/fontheight 24 def
+/marginwidth 10 def
+/distx 20 def
+/disty 40 def
+/boundaspect 1.350000 def  % aspect ratio of the BoundingBox (width/height)
+/boundx 500 def
+/boundy boundx boundaspect div def
+/xspacing 0 def
+/yspacing 0 def
+/rows 3 def
+/cols 1 def
+/scalefactor 0 def
+/boxfont /Times-Roman findfont fontheight scalefont def
+
+% ----- procedures -----
+
+/dotted { [1 4] 0 setdash } def
+/dashed { [5] 0 setdash } def
+/solid  { [] 0 setdash } def
+
+/max % result = MAX(arg1,arg2)
+{
+  /a exch def
+  /b exch def
+  a b gt {a} {b} ifelse
+} def
+
+/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)
+{
+  0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max
+} def
+
+/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))
+{
+  /str exch def
+  /boxwidth boxwidth str stringwidth pop max def
+} def
+
+/box % draws a box with text 'arg1' at grid pos (arg2,arg3)
+{ gsave
+  2 setlinewidth
+  newpath
+  exch xspacing mul xoffset add
+  exch yspacing mul
+  moveto
+  boxwidth 0 rlineto 
+  0 boxheight rlineto 
+  boxwidth neg 0 rlineto 
+  0 boxheight neg rlineto 
+  closepath
+  dup stringwidth pop neg boxwidth add 2 div
+  boxheight fontheight 2 div sub 2 div
+  rmoveto show stroke
+  grestore
+} def  
+
+/mark
+{ newpath
+  exch xspacing mul xoffset add boxwidth add
+  exch yspacing mul
+  moveto
+  0 boxheight 4 div rlineto
+  boxheight neg 4 div boxheight neg 4 div rlineto
+  closepath
+  eofill
+  stroke
+} def
+
+/arrow
+{ newpath
+  moveto
+  3 -8 rlineto
+  -6 0 rlineto
+  3 8 rlineto
+  closepath
+  eofill
+  stroke
+} def
+
+/out % draws an output connector for the block at (arg1,arg2)
+{
+  newpath
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul boxheight add
+  /y exch def
+  /x exch def
+  x y moveto
+  0 disty 2 div rlineto 
+  stroke
+  1 eq { x y disty 2 div add arrow } if
+} def
+
+/in % draws an input connector for the block at (arg1,arg2)
+{
+  newpath
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul disty 2 div sub
+  /y exch def
+  /x exch def
+  x y moveto
+  0 disty 2 div rlineto
+  stroke
+  1 eq { x y disty 2 div add arrow } if
+} def
+
+/hedge
+{
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul boxheight 2 div sub
+  /y exch def
+  /x exch def
+  newpath
+  x y moveto
+  boxwidth 2 div distx add 0 rlineto
+  stroke
+  1 eq
+  { newpath x boxwidth 2 div distx add add y moveto
+    -8 3 rlineto
+    0 -6 rlineto
+    8 3 rlineto
+    closepath
+    eofill
+    stroke
+  } if
+} def
+
+/vedge
+{
+  /ye exch def
+  /ys exch def
+  /xs exch def
+  newpath
+  xs xspacing mul xoffset add boxwidth 2 div add dup
+  ys yspacing mul boxheight 2 div sub
+  moveto
+  ye yspacing mul boxheight 2 div sub
+  lineto
+  stroke
+} def
+
+/conn % connections the blocks from col 'arg1' to 'arg2' of row 'arg3'
+{
+  /ys exch def
+  /xe exch def
+  /xs exch def
+  newpath
+  xs xspacing mul xoffset add boxwidth 2 div add
+  ys yspacing mul disty 2 div sub
+  moveto
+  xspacing xe xs sub mul 0
+  rlineto
+  stroke
+} def
+
+% ----- main ------
+
+boxfont setfont
+1 boundaspect scale
+(olc::TileTransformedView) cw
+(olc::TransformedView) cw
+(olc::PGEX) cw
+/boxwidth boxwidth marginwidth 2 mul add def
+/xspacing boxwidth distx add def
+/yspacing boxheight disty add def
+/scalefactor 
+  boxwidth cols mul distx cols 1 sub mul add
+  boxheight rows mul disty rows 1 sub mul add boundaspect mul 
+  max def
+boundx scalefactor div boundy scalefactor div scale
+
+% ----- classes -----
+
+ (olc::TileTransformedView) 0.000000 0.000000 box
+ (olc::TransformedView) 0.000000 1.000000 box
+ (olc::PGEX) 0.000000 2.000000 box
+
+% ----- relations -----
+
+solid
+0 0.000000 0.000000 out
+solid
+1 0.000000 1.000000 in
+solid
+0 0.000000 1.000000 out
+solid
+1 0.000000 2.000000 in
diff --git a/doxy/latex/classolc_1_1_tile_transformed_view.tex b/doxy/latex/classolc_1_1_tile_transformed_view.tex
new file mode 100644
index 0000000000000000000000000000000000000000..8c38bddc3201de89f76f9a066fc53e5d5e72995d
--- /dev/null
+++ b/doxy/latex/classolc_1_1_tile_transformed_view.tex
@@ -0,0 +1,106 @@
+\hypertarget{classolc_1_1_tile_transformed_view}{}\doxysection{olc\+::Tile\+Transformed\+View Class Reference}
+\label{classolc_1_1_tile_transformed_view}\index{olc::TileTransformedView@{olc::TileTransformedView}}
+
+
+{\ttfamily \#include $<$olc\+P\+G\+E\+X\+\_\+\+Transformed\+View.\+h$>$}
+
+Inheritance diagram for olc\+::Tile\+Transformed\+View\+:\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[height=3.000000cm]{classolc_1_1_tile_transformed_view}
+\end{center}
+\end{figure}
+\doxysubsection*{Public Member Functions}
+\begin{DoxyCompactItemize}
+\item 
+\mbox{\hyperlink{classolc_1_1_tile_transformed_view_a4ecc47c57596ad966120894db8d6ad59}{Tile\+Transformed\+View}} ()=default
+\item 
+\mbox{\hyperlink{classolc_1_1_tile_transformed_view_ac38d47324d7370b5259894d814b879f8}{Tile\+Transformed\+View}} (const \mbox{\hyperlink{namespaceolc_a3c42697361e8a28424bcf8415aba3564}{olc\+::vi2d}} \&v\+View\+Area, const \mbox{\hyperlink{namespaceolc_a3c42697361e8a28424bcf8415aba3564}{olc\+::vi2d}} \&v\+Tile\+Size)
+\item 
+void \mbox{\hyperlink{classolc_1_1_tile_transformed_view_ace1a6e5c3df96cd43582e02ca4b94dac}{Set\+RangeX}} (const bool b\+Ranged, const int32\+\_\+t n\+Min=0, const int32\+\_\+t n\+Max=0)
+\item 
+void \mbox{\hyperlink{classolc_1_1_tile_transformed_view_a660fcd24db414be714ae53ba131296a7}{Set\+RangeY}} (const bool b\+Ranged, const int32\+\_\+t n\+Min=0, const int32\+\_\+t n\+Max=0)
+\item 
+\mbox{\hyperlink{namespaceolc_a3c42697361e8a28424bcf8415aba3564}{olc\+::vi2d}} \mbox{\hyperlink{classolc_1_1_tile_transformed_view_a9230a04b74c812551768b324a07bf2a3}{Get\+Top\+Left\+Tile}} () const
+\item 
+\mbox{\hyperlink{namespaceolc_a3c42697361e8a28424bcf8415aba3564}{olc\+::vi2d}} \mbox{\hyperlink{classolc_1_1_tile_transformed_view_af681fe11952b2a791a388c79054adc1f}{Get\+Bottom\+Right\+Tile}} () const
+\item 
+\mbox{\hyperlink{namespaceolc_a3c42697361e8a28424bcf8415aba3564}{olc\+::vi2d}} \mbox{\hyperlink{classolc_1_1_tile_transformed_view_abc2e3898f7bb8209d84095cc5c16843b}{Get\+Visible\+Tiles}} () const
+\item 
+\mbox{\hyperlink{namespaceolc_a3c42697361e8a28424bcf8415aba3564}{olc\+::vi2d}} \mbox{\hyperlink{classolc_1_1_tile_transformed_view_a1a963a55248ff021b76ecc8e92a555e6}{Get\+Tile\+Under\+Screen\+Pos}} (const \mbox{\hyperlink{namespaceolc_a3c42697361e8a28424bcf8415aba3564}{olc\+::vi2d}} \&v\+Pos) const
+\item 
+const \mbox{\hyperlink{namespaceolc_a3c42697361e8a28424bcf8415aba3564}{olc\+::vi2d}} \mbox{\hyperlink{classolc_1_1_tile_transformed_view_afd338a68b965309beeefa3f239a0680b}{Get\+Tile\+Offset}} () const
+\end{DoxyCompactItemize}
+\doxysubsection*{Additional Inherited Members}
+
+
+\doxysubsection{Detailed Description}
+
+
+Definition at line 182 of file olc\+P\+G\+E\+X\+\_\+\+Transformed\+View.\+h.
+
+
+
+\doxysubsection{Constructor \& Destructor Documentation}
+\mbox{\Hypertarget{classolc_1_1_tile_transformed_view_a4ecc47c57596ad966120894db8d6ad59}\label{classolc_1_1_tile_transformed_view_a4ecc47c57596ad966120894db8d6ad59}} 
+\index{olc::TileTransformedView@{olc::TileTransformedView}!TileTransformedView@{TileTransformedView}}
+\index{TileTransformedView@{TileTransformedView}!olc::TileTransformedView@{olc::TileTransformedView}}
+\doxysubsubsection{\texorpdfstring{TileTransformedView()}{TileTransformedView()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
+{\footnotesize\ttfamily olc\+::\+Tile\+Transformed\+View\+::\+Tile\+Transformed\+View (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [default]}}
+
+\mbox{\Hypertarget{classolc_1_1_tile_transformed_view_ac38d47324d7370b5259894d814b879f8}\label{classolc_1_1_tile_transformed_view_ac38d47324d7370b5259894d814b879f8}} 
+\index{olc::TileTransformedView@{olc::TileTransformedView}!TileTransformedView@{TileTransformedView}}
+\index{TileTransformedView@{TileTransformedView}!olc::TileTransformedView@{olc::TileTransformedView}}
+\doxysubsubsection{\texorpdfstring{TileTransformedView()}{TileTransformedView()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
+{\footnotesize\ttfamily olc\+::\+Tile\+Transformed\+View\+::\+Tile\+Transformed\+View (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{namespaceolc_a3c42697361e8a28424bcf8415aba3564}{olc\+::vi2d}} \&}]{v\+View\+Area,  }\item[{const \mbox{\hyperlink{namespaceolc_a3c42697361e8a28424bcf8415aba3564}{olc\+::vi2d}} \&}]{v\+Tile\+Size }\end{DoxyParamCaption})}
+
+
+
+\doxysubsection{Member Function Documentation}
+\mbox{\Hypertarget{classolc_1_1_tile_transformed_view_af681fe11952b2a791a388c79054adc1f}\label{classolc_1_1_tile_transformed_view_af681fe11952b2a791a388c79054adc1f}} 
+\index{olc::TileTransformedView@{olc::TileTransformedView}!GetBottomRightTile@{GetBottomRightTile}}
+\index{GetBottomRightTile@{GetBottomRightTile}!olc::TileTransformedView@{olc::TileTransformedView}}
+\doxysubsubsection{\texorpdfstring{GetBottomRightTile()}{GetBottomRightTile()}}
+{\footnotesize\ttfamily \mbox{\hyperlink{namespaceolc_a3c42697361e8a28424bcf8415aba3564}{olc\+::vi2d}} olc\+::\+Tile\+Transformed\+View\+::\+Get\+Bottom\+Right\+Tile (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const}
+
+\mbox{\Hypertarget{classolc_1_1_tile_transformed_view_afd338a68b965309beeefa3f239a0680b}\label{classolc_1_1_tile_transformed_view_afd338a68b965309beeefa3f239a0680b}} 
+\index{olc::TileTransformedView@{olc::TileTransformedView}!GetTileOffset@{GetTileOffset}}
+\index{GetTileOffset@{GetTileOffset}!olc::TileTransformedView@{olc::TileTransformedView}}
+\doxysubsubsection{\texorpdfstring{GetTileOffset()}{GetTileOffset()}}
+{\footnotesize\ttfamily const \mbox{\hyperlink{namespaceolc_a3c42697361e8a28424bcf8415aba3564}{olc\+::vi2d}} olc\+::\+Tile\+Transformed\+View\+::\+Get\+Tile\+Offset (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const}
+
+\mbox{\Hypertarget{classolc_1_1_tile_transformed_view_a1a963a55248ff021b76ecc8e92a555e6}\label{classolc_1_1_tile_transformed_view_a1a963a55248ff021b76ecc8e92a555e6}} 
+\index{olc::TileTransformedView@{olc::TileTransformedView}!GetTileUnderScreenPos@{GetTileUnderScreenPos}}
+\index{GetTileUnderScreenPos@{GetTileUnderScreenPos}!olc::TileTransformedView@{olc::TileTransformedView}}
+\doxysubsubsection{\texorpdfstring{GetTileUnderScreenPos()}{GetTileUnderScreenPos()}}
+{\footnotesize\ttfamily \mbox{\hyperlink{namespaceolc_a3c42697361e8a28424bcf8415aba3564}{olc\+::vi2d}} olc\+::\+Tile\+Transformed\+View\+::\+Get\+Tile\+Under\+Screen\+Pos (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{namespaceolc_a3c42697361e8a28424bcf8415aba3564}{olc\+::vi2d}} \&}]{v\+Pos }\end{DoxyParamCaption}) const}
+
+\mbox{\Hypertarget{classolc_1_1_tile_transformed_view_a9230a04b74c812551768b324a07bf2a3}\label{classolc_1_1_tile_transformed_view_a9230a04b74c812551768b324a07bf2a3}} 
+\index{olc::TileTransformedView@{olc::TileTransformedView}!GetTopLeftTile@{GetTopLeftTile}}
+\index{GetTopLeftTile@{GetTopLeftTile}!olc::TileTransformedView@{olc::TileTransformedView}}
+\doxysubsubsection{\texorpdfstring{GetTopLeftTile()}{GetTopLeftTile()}}
+{\footnotesize\ttfamily \mbox{\hyperlink{namespaceolc_a3c42697361e8a28424bcf8415aba3564}{olc\+::vi2d}} olc\+::\+Tile\+Transformed\+View\+::\+Get\+Top\+Left\+Tile (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const}
+
+\mbox{\Hypertarget{classolc_1_1_tile_transformed_view_abc2e3898f7bb8209d84095cc5c16843b}\label{classolc_1_1_tile_transformed_view_abc2e3898f7bb8209d84095cc5c16843b}} 
+\index{olc::TileTransformedView@{olc::TileTransformedView}!GetVisibleTiles@{GetVisibleTiles}}
+\index{GetVisibleTiles@{GetVisibleTiles}!olc::TileTransformedView@{olc::TileTransformedView}}
+\doxysubsubsection{\texorpdfstring{GetVisibleTiles()}{GetVisibleTiles()}}
+{\footnotesize\ttfamily \mbox{\hyperlink{namespaceolc_a3c42697361e8a28424bcf8415aba3564}{olc\+::vi2d}} olc\+::\+Tile\+Transformed\+View\+::\+Get\+Visible\+Tiles (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const}
+
+\mbox{\Hypertarget{classolc_1_1_tile_transformed_view_ace1a6e5c3df96cd43582e02ca4b94dac}\label{classolc_1_1_tile_transformed_view_ace1a6e5c3df96cd43582e02ca4b94dac}} 
+\index{olc::TileTransformedView@{olc::TileTransformedView}!SetRangeX@{SetRangeX}}
+\index{SetRangeX@{SetRangeX}!olc::TileTransformedView@{olc::TileTransformedView}}
+\doxysubsubsection{\texorpdfstring{SetRangeX()}{SetRangeX()}}
+{\footnotesize\ttfamily void olc\+::\+Tile\+Transformed\+View\+::\+Set\+RangeX (\begin{DoxyParamCaption}\item[{const bool}]{b\+Ranged,  }\item[{const int32\+\_\+t}]{n\+Min = {\ttfamily 0},  }\item[{const int32\+\_\+t}]{n\+Max = {\ttfamily 0} }\end{DoxyParamCaption})}
+
+\mbox{\Hypertarget{classolc_1_1_tile_transformed_view_a660fcd24db414be714ae53ba131296a7}\label{classolc_1_1_tile_transformed_view_a660fcd24db414be714ae53ba131296a7}} 
+\index{olc::TileTransformedView@{olc::TileTransformedView}!SetRangeY@{SetRangeY}}
+\index{SetRangeY@{SetRangeY}!olc::TileTransformedView@{olc::TileTransformedView}}
+\doxysubsubsection{\texorpdfstring{SetRangeY()}{SetRangeY()}}
+{\footnotesize\ttfamily void olc\+::\+Tile\+Transformed\+View\+::\+Set\+RangeY (\begin{DoxyParamCaption}\item[{const bool}]{b\+Ranged,  }\item[{const int32\+\_\+t}]{n\+Min = {\ttfamily 0},  }\item[{const int32\+\_\+t}]{n\+Max = {\ttfamily 0} }\end{DoxyParamCaption})}
+
+
+
+The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize}
+\item 
+C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\mbox{\hyperlink{olc_p_g_e_x___transformed_view_8h}{olc\+P\+G\+E\+X\+\_\+\+Transformed\+View.\+h}}\end{DoxyCompactItemize}
diff --git a/doxy/latex/classolc_1_1_transformed_view.eps b/doxy/latex/classolc_1_1_transformed_view.eps
new file mode 100644
index 0000000000000000000000000000000000000000..7a78839fdc3ec06a1d26a87965d073ea118f67f0
--- /dev/null
+++ b/doxy/latex/classolc_1_1_transformed_view.eps
@@ -0,0 +1,203 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: ClassName
+%%Creator: Doxygen
+%%CreationDate: Time
+%%For: 
+%Magnification: 1.00
+%%Orientation: Portrait
+%%BoundingBox: 0 0 500 370.370361
+%%Pages: 0
+%%BeginSetup
+%%EndSetup
+%%EndComments
+
+% ----- variables -----
+
+/boxwidth 0 def
+/boxheight 40 def
+/fontheight 24 def
+/marginwidth 10 def
+/distx 20 def
+/disty 40 def
+/boundaspect 1.350000 def  % aspect ratio of the BoundingBox (width/height)
+/boundx 500 def
+/boundy boundx boundaspect div def
+/xspacing 0 def
+/yspacing 0 def
+/rows 3 def
+/cols 1 def
+/scalefactor 0 def
+/boxfont /Times-Roman findfont fontheight scalefont def
+
+% ----- procedures -----
+
+/dotted { [1 4] 0 setdash } def
+/dashed { [5] 0 setdash } def
+/solid  { [] 0 setdash } def
+
+/max % result = MAX(arg1,arg2)
+{
+  /a exch def
+  /b exch def
+  a b gt {a} {b} ifelse
+} def
+
+/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)
+{
+  0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max
+} def
+
+/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))
+{
+  /str exch def
+  /boxwidth boxwidth str stringwidth pop max def
+} def
+
+/box % draws a box with text 'arg1' at grid pos (arg2,arg3)
+{ gsave
+  2 setlinewidth
+  newpath
+  exch xspacing mul xoffset add
+  exch yspacing mul
+  moveto
+  boxwidth 0 rlineto 
+  0 boxheight rlineto 
+  boxwidth neg 0 rlineto 
+  0 boxheight neg rlineto 
+  closepath
+  dup stringwidth pop neg boxwidth add 2 div
+  boxheight fontheight 2 div sub 2 div
+  rmoveto show stroke
+  grestore
+} def  
+
+/mark
+{ newpath
+  exch xspacing mul xoffset add boxwidth add
+  exch yspacing mul
+  moveto
+  0 boxheight 4 div rlineto
+  boxheight neg 4 div boxheight neg 4 div rlineto
+  closepath
+  eofill
+  stroke
+} def
+
+/arrow
+{ newpath
+  moveto
+  3 -8 rlineto
+  -6 0 rlineto
+  3 8 rlineto
+  closepath
+  eofill
+  stroke
+} def
+
+/out % draws an output connector for the block at (arg1,arg2)
+{
+  newpath
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul boxheight add
+  /y exch def
+  /x exch def
+  x y moveto
+  0 disty 2 div rlineto 
+  stroke
+  1 eq { x y disty 2 div add arrow } if
+} def
+
+/in % draws an input connector for the block at (arg1,arg2)
+{
+  newpath
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul disty 2 div sub
+  /y exch def
+  /x exch def
+  x y moveto
+  0 disty 2 div rlineto
+  stroke
+  1 eq { x y disty 2 div add arrow } if
+} def
+
+/hedge
+{
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul boxheight 2 div sub
+  /y exch def
+  /x exch def
+  newpath
+  x y moveto
+  boxwidth 2 div distx add 0 rlineto
+  stroke
+  1 eq
+  { newpath x boxwidth 2 div distx add add y moveto
+    -8 3 rlineto
+    0 -6 rlineto
+    8 3 rlineto
+    closepath
+    eofill
+    stroke
+  } if
+} def
+
+/vedge
+{
+  /ye exch def
+  /ys exch def
+  /xs exch def
+  newpath
+  xs xspacing mul xoffset add boxwidth 2 div add dup
+  ys yspacing mul boxheight 2 div sub
+  moveto
+  ye yspacing mul boxheight 2 div sub
+  lineto
+  stroke
+} def
+
+/conn % connections the blocks from col 'arg1' to 'arg2' of row 'arg3'
+{
+  /ys exch def
+  /xe exch def
+  /xs exch def
+  newpath
+  xs xspacing mul xoffset add boxwidth 2 div add
+  ys yspacing mul disty 2 div sub
+  moveto
+  xspacing xe xs sub mul 0
+  rlineto
+  stroke
+} def
+
+% ----- main ------
+
+boxfont setfont
+1 boundaspect scale
+(olc::TransformedView) cw
+(olc::PGEX) cw
+(olc::TileTransformedView) cw
+/boxwidth boxwidth marginwidth 2 mul add def
+/xspacing boxwidth distx add def
+/yspacing boxheight disty add def
+/scalefactor 
+  boxwidth cols mul distx cols 1 sub mul add
+  boxheight rows mul disty rows 1 sub mul add boundaspect mul 
+  max def
+boundx scalefactor div boundy scalefactor div scale
+
+% ----- classes -----
+
+ (olc::TransformedView) 0.000000 1.000000 box
+ (olc::PGEX) 0.000000 2.000000 box
+ (olc::TileTransformedView) 0.000000 0.000000 box
+
+% ----- relations -----
+
+solid
+0 0.000000 1.000000 out
+solid
+1 0.000000 2.000000 in
+solid
+1 0.000000 0.250000 out
+solid
+0 0.000000 0.750000 in
diff --git a/doxy/latex/classolc_1_1_transformed_view.tex b/doxy/latex/classolc_1_1_transformed_view.tex
new file mode 100644
index 0000000000000000000000000000000000000000..16555d963963c2074c7c24a0f0bf19608e915eb2
--- /dev/null
+++ b/doxy/latex/classolc_1_1_transformed_view.tex
@@ -0,0 +1,612 @@
+\hypertarget{classolc_1_1_transformed_view}{}\doxysection{olc\+::Transformed\+View Class Reference}
+\label{classolc_1_1_transformed_view}\index{olc::TransformedView@{olc::TransformedView}}
+
+
+{\ttfamily \#include $<$olc\+P\+G\+E\+X\+\_\+\+Transformed\+View.\+h$>$}
+
+Inheritance diagram for olc\+::Transformed\+View\+:\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[height=3.000000cm]{classolc_1_1_transformed_view}
+\end{center}
+\end{figure}
+\doxysubsection*{Public Member Functions}
+\begin{DoxyCompactItemize}
+\item 
+\mbox{\hyperlink{classolc_1_1_transformed_view_a1f4ed7eb880b0f0edc0b86be4b33b04e}{Transformed\+View}} ()=default
+\item 
+virtual void \mbox{\hyperlink{classolc_1_1_transformed_view_a799473b80691228b87a818f80847ca76}{Initialise}} (const \mbox{\hyperlink{namespaceolc_a3c42697361e8a28424bcf8415aba3564}{olc\+::vi2d}} \&v\+View\+Area, const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&v\+Pixel\+Scale=\{ 1.\+0f, 1.\+0f \})
+\item 
+void \mbox{\hyperlink{classolc_1_1_transformed_view_aee86c84a719f8b5c3143e2a0b89e8024}{Set\+World\+Offset}} (const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&v\+Offset)
+\item 
+void \mbox{\hyperlink{classolc_1_1_transformed_view_a154b34bc81f6e0c67579d2d2ee40b2d1}{Move\+World\+Offset}} (const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&v\+Delta\+Offset)
+\item 
+void \mbox{\hyperlink{classolc_1_1_transformed_view_a971e25ee6978c271127f766aba69b285}{Set\+World\+Scale}} (const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&v\+Scale)
+\item 
+void \mbox{\hyperlink{classolc_1_1_transformed_view_ac7295e90921832fef16779172cc9e4ff}{Set\+View\+Area}} (const \mbox{\hyperlink{namespaceolc_a3c42697361e8a28424bcf8415aba3564}{olc\+::vi2d}} \&v\+View\+Area)
+\item 
+\mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \mbox{\hyperlink{classolc_1_1_transformed_view_ac75bd045f9fbc5d8cd901ecdd216fcb5}{Get\+World\+TL}} () const
+\item 
+\mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \mbox{\hyperlink{classolc_1_1_transformed_view_a5240bf2a7285559be13c80f3ce2a97a3}{Get\+World\+BR}} () const
+\item 
+\mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \mbox{\hyperlink{classolc_1_1_transformed_view_a7f7815582a087a163199bb29f1c4c0ae}{Get\+World\+Visible\+Area}} () const
+\item 
+void \mbox{\hyperlink{classolc_1_1_transformed_view_a84a8b9030ac97afa9b6099dea5865b9c}{Zoom\+At\+Screen\+Pos}} (const float f\+Delta\+Zoom, const \mbox{\hyperlink{namespaceolc_a3c42697361e8a28424bcf8415aba3564}{olc\+::vi2d}} \&v\+Pos)
+\item 
+void \mbox{\hyperlink{classolc_1_1_transformed_view_a89fd4d642cf37d1e6f1674b870b142d8}{Set\+Zoom}} (const float f\+Zoom, const \mbox{\hyperlink{namespaceolc_a3c42697361e8a28424bcf8415aba3564}{olc\+::vi2d}} \&v\+Pos)
+\item 
+void \mbox{\hyperlink{classolc_1_1_transformed_view_a4dc2bd0de3686978fdf8630d23a727c3}{Start\+Pan}} (const \mbox{\hyperlink{namespaceolc_a3c42697361e8a28424bcf8415aba3564}{olc\+::vi2d}} \&v\+Pos)
+\item 
+void \mbox{\hyperlink{classolc_1_1_transformed_view_a4baf2b53892749ff380833991161b9c4}{Update\+Pan}} (const \mbox{\hyperlink{namespaceolc_a3c42697361e8a28424bcf8415aba3564}{olc\+::vi2d}} \&v\+Pos)
+\item 
+void \mbox{\hyperlink{classolc_1_1_transformed_view_a3edd680172e1ae5b710290ab58d617e0}{End\+Pan}} (const \mbox{\hyperlink{namespaceolc_a3c42697361e8a28424bcf8415aba3564}{olc\+::vi2d}} \&v\+Pos)
+\item 
+const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \& \mbox{\hyperlink{classolc_1_1_transformed_view_a88152a5f5b9fbb3df0f6d965ef4c4fe4}{Get\+World\+Offset}} () const
+\item 
+const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \& \mbox{\hyperlink{classolc_1_1_transformed_view_a4f6ba5d2c58b720677f4287743713f65}{Get\+World\+Scale}} () const
+\item 
+virtual \mbox{\hyperlink{namespaceolc_a3c42697361e8a28424bcf8415aba3564}{olc\+::vi2d}} \mbox{\hyperlink{classolc_1_1_transformed_view_a18b18c9718c642ca912d44a133ffde1d}{World\+To\+Screen}} (const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&v\+World\+Pos) const
+\item 
+virtual \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \mbox{\hyperlink{classolc_1_1_transformed_view_a0f18594e00e7865fe4376761f9e20812}{Screen\+To\+World}} (const \mbox{\hyperlink{namespaceolc_a3c42697361e8a28424bcf8415aba3564}{olc\+::vi2d}} \&v\+Screen\+Pos) const
+\item 
+virtual \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \mbox{\hyperlink{classolc_1_1_transformed_view_a09492f689459319994da4c9d0e0c2dc4}{Scale\+To\+World}} (const \mbox{\hyperlink{namespaceolc_a3c42697361e8a28424bcf8415aba3564}{olc\+::vi2d}} \&v\+Screen\+Size) const
+\item 
+virtual \mbox{\hyperlink{namespaceolc_a3c42697361e8a28424bcf8415aba3564}{olc\+::vi2d}} \mbox{\hyperlink{classolc_1_1_transformed_view_a8be86d8036bf635287debfcf2509e4c5}{Scale\+To\+Screen}} (const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&v\+World\+Size) const
+\item 
+virtual bool \mbox{\hyperlink{classolc_1_1_transformed_view_a664ea0cbd54bbff17ea419ebfac1e359}{Is\+Point\+Visible}} (const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&v\+Pos) const
+\item 
+virtual bool \mbox{\hyperlink{classolc_1_1_transformed_view_aecadbbdf84343ec0a2f0e2e8c9017f0e}{Is\+Rect\+Visible}} (const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&v\+Pos, const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&v\+Size) const
+\item 
+virtual bool \mbox{\hyperlink{classolc_1_1_transformed_view_a09a214f47f9e4f5e85a8d3bd224ab9b1}{Draw}} (float x, float y, \mbox{\hyperlink{structolc_1_1_pixel}{olc\+::\+Pixel}} p=\mbox{\hyperlink{namespaceolc_ae3de4726bf87f2d74693e62d76816db1}{olc\+::\+W\+H\+I\+TE}})
+\item 
+bool \mbox{\hyperlink{classolc_1_1_transformed_view_a2509ea7aa54013b9b0caa7a265818511}{Draw}} (const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&pos, \mbox{\hyperlink{structolc_1_1_pixel}{olc\+::\+Pixel}} p=\mbox{\hyperlink{namespaceolc_ae3de4726bf87f2d74693e62d76816db1}{olc\+::\+W\+H\+I\+TE}})
+\item 
+void \mbox{\hyperlink{classolc_1_1_transformed_view_a2564b30474cab1de208a9b220ddbc181}{Draw\+Line}} (float x1, float y1, float x2, float y2, \mbox{\hyperlink{structolc_1_1_pixel}{olc\+::\+Pixel}} p=\mbox{\hyperlink{namespaceolc_ae3de4726bf87f2d74693e62d76816db1}{olc\+::\+W\+H\+I\+TE}}, uint32\+\_\+t pattern=0x\+F\+F\+F\+F\+F\+F\+FF)
+\item 
+void \mbox{\hyperlink{classolc_1_1_transformed_view_a60a961188fe9a5cb60258c1b4d8cf498}{Draw\+Line}} (const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&pos1, const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&pos2, \mbox{\hyperlink{structolc_1_1_pixel}{olc\+::\+Pixel}} p=\mbox{\hyperlink{namespaceolc_ae3de4726bf87f2d74693e62d76816db1}{olc\+::\+W\+H\+I\+TE}}, uint32\+\_\+t pattern=0x\+F\+F\+F\+F\+F\+F\+FF)
+\item 
+void \mbox{\hyperlink{classolc_1_1_transformed_view_abbf0590764bbacdd35a4d0adc6e69b84}{Draw\+Circle}} (float x, float y, float radius, \mbox{\hyperlink{structolc_1_1_pixel}{olc\+::\+Pixel}} p=\mbox{\hyperlink{namespaceolc_ae3de4726bf87f2d74693e62d76816db1}{olc\+::\+W\+H\+I\+TE}}, uint8\+\_\+t mask=0x\+FF)
+\item 
+void \mbox{\hyperlink{classolc_1_1_transformed_view_aa7edb61f256624bad3e5d5847f0eef88}{Draw\+Circle}} (const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&pos, float radius, \mbox{\hyperlink{structolc_1_1_pixel}{olc\+::\+Pixel}} p=\mbox{\hyperlink{namespaceolc_ae3de4726bf87f2d74693e62d76816db1}{olc\+::\+W\+H\+I\+TE}}, uint8\+\_\+t mask=0x\+FF)
+\item 
+void \mbox{\hyperlink{classolc_1_1_transformed_view_afd3f4dffe3a2fffaed2fd6c84e40ce23}{Fill\+Circle}} (float x, float y, float radius, \mbox{\hyperlink{structolc_1_1_pixel}{olc\+::\+Pixel}} p=\mbox{\hyperlink{namespaceolc_ae3de4726bf87f2d74693e62d76816db1}{olc\+::\+W\+H\+I\+TE}})
+\item 
+void \mbox{\hyperlink{classolc_1_1_transformed_view_a8d8559f74de40982e41f9cab0577b3b9}{Fill\+Circle}} (const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&pos, float radius, \mbox{\hyperlink{structolc_1_1_pixel}{olc\+::\+Pixel}} p=\mbox{\hyperlink{namespaceolc_ae3de4726bf87f2d74693e62d76816db1}{olc\+::\+W\+H\+I\+TE}})
+\item 
+void \mbox{\hyperlink{classolc_1_1_transformed_view_ab1578748552d35bff05e63dcfc79cfb9}{Draw\+Rect}} (float x, float y, float w, float h, \mbox{\hyperlink{structolc_1_1_pixel}{olc\+::\+Pixel}} p=\mbox{\hyperlink{namespaceolc_ae3de4726bf87f2d74693e62d76816db1}{olc\+::\+W\+H\+I\+TE}})
+\item 
+void \mbox{\hyperlink{classolc_1_1_transformed_view_a2ce6891b49d600eacb32eef88f07b2e0}{Draw\+Rect}} (const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&pos, const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&size, \mbox{\hyperlink{structolc_1_1_pixel}{olc\+::\+Pixel}} p=\mbox{\hyperlink{namespaceolc_ae3de4726bf87f2d74693e62d76816db1}{olc\+::\+W\+H\+I\+TE}})
+\item 
+void \mbox{\hyperlink{classolc_1_1_transformed_view_a2f12ada82c7262a2e29572cfded60f02}{Fill\+Rect}} (float x, float y, float w, float h, \mbox{\hyperlink{structolc_1_1_pixel}{olc\+::\+Pixel}} p=\mbox{\hyperlink{namespaceolc_ae3de4726bf87f2d74693e62d76816db1}{olc\+::\+W\+H\+I\+TE}})
+\item 
+void \mbox{\hyperlink{classolc_1_1_transformed_view_abc3071fe6fa5f9ca4c5fe227a335df54}{Fill\+Rect}} (const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&pos, const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&size, \mbox{\hyperlink{structolc_1_1_pixel}{olc\+::\+Pixel}} p=\mbox{\hyperlink{namespaceolc_ae3de4726bf87f2d74693e62d76816db1}{olc\+::\+W\+H\+I\+TE}})
+\item 
+void \mbox{\hyperlink{classolc_1_1_transformed_view_a6c818747c7fa97445fbb40c9f222e865}{Draw\+Triangle}} (float x1, float y1, float x2, float y2, float x3, float y3, \mbox{\hyperlink{structolc_1_1_pixel}{olc\+::\+Pixel}} p=\mbox{\hyperlink{namespaceolc_ae3de4726bf87f2d74693e62d76816db1}{olc\+::\+W\+H\+I\+TE}})
+\item 
+void \mbox{\hyperlink{classolc_1_1_transformed_view_a45a659d55d124e87e956e842963637fa}{Draw\+Triangle}} (const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&pos1, const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&pos2, const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&pos3, \mbox{\hyperlink{structolc_1_1_pixel}{olc\+::\+Pixel}} p=\mbox{\hyperlink{namespaceolc_ae3de4726bf87f2d74693e62d76816db1}{olc\+::\+W\+H\+I\+TE}})
+\item 
+void \mbox{\hyperlink{classolc_1_1_transformed_view_a5cba545151923f38fd5d87b2c130a894}{Fill\+Triangle}} (float x1, float y1, float x2, float y2, float x3, float y3, \mbox{\hyperlink{structolc_1_1_pixel}{olc\+::\+Pixel}} p=\mbox{\hyperlink{namespaceolc_ae3de4726bf87f2d74693e62d76816db1}{olc\+::\+W\+H\+I\+TE}})
+\item 
+void \mbox{\hyperlink{classolc_1_1_transformed_view_a023149966b61d7f233898c2b4372d018}{Fill\+Triangle}} (const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&pos1, const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&pos2, const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&pos3, \mbox{\hyperlink{structolc_1_1_pixel}{olc\+::\+Pixel}} p=\mbox{\hyperlink{namespaceolc_ae3de4726bf87f2d74693e62d76816db1}{olc\+::\+W\+H\+I\+TE}})
+\item 
+void \mbox{\hyperlink{classolc_1_1_transformed_view_a0814eafdbf34c4570c08722998b3c936}{Draw\+Sprite}} (float x, float y, \mbox{\hyperlink{classolc_1_1_sprite}{olc\+::\+Sprite}} $\ast$sprite, float scalex=1, float scaley=1, uint8\+\_\+t flip=\mbox{\hyperlink{classolc_1_1_sprite_ad0d1976d2060997f5cd99eb284a5dc24a6ad338b4e63faacfbed68b020c3a0c0c}{olc\+::\+Sprite\+::\+N\+O\+NE}})
+\item 
+void \mbox{\hyperlink{classolc_1_1_transformed_view_a44f1c98c6c6720338d7b6dcc9117cb03}{Draw\+Sprite}} (const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&pos, \mbox{\hyperlink{classolc_1_1_sprite}{olc\+::\+Sprite}} $\ast$sprite, const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&scale=\{ 1.\+0f, 1.\+0f \}, uint8\+\_\+t flip=\mbox{\hyperlink{classolc_1_1_sprite_ad0d1976d2060997f5cd99eb284a5dc24a6ad338b4e63faacfbed68b020c3a0c0c}{olc\+::\+Sprite\+::\+N\+O\+NE}})
+\item 
+void \mbox{\hyperlink{classolc_1_1_transformed_view_a829557257985bb738baad577ed0ed7a0}{Draw\+Partial\+Sprite}} (float x, float y, \mbox{\hyperlink{classolc_1_1_sprite}{Sprite}} $\ast$sprite, int32\+\_\+t ox, int32\+\_\+t oy, int32\+\_\+t w, int32\+\_\+t h, float scalex=1, float scaley=1, uint8\+\_\+t flip=\mbox{\hyperlink{classolc_1_1_sprite_ad0d1976d2060997f5cd99eb284a5dc24a6ad338b4e63faacfbed68b020c3a0c0c}{olc\+::\+Sprite\+::\+N\+O\+NE}})
+\item 
+void \mbox{\hyperlink{classolc_1_1_transformed_view_a0c6e1fb72399ec97e0dc093a2da80d50}{Draw\+Partial\+Sprite}} (const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&pos, \mbox{\hyperlink{classolc_1_1_sprite}{Sprite}} $\ast$sprite, const \mbox{\hyperlink{namespaceolc_a3c42697361e8a28424bcf8415aba3564}{olc\+::vi2d}} \&sourcepos, const \mbox{\hyperlink{namespaceolc_a3c42697361e8a28424bcf8415aba3564}{olc\+::vi2d}} \&size, const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&scale=\{ 1.\+0f, 1.\+0f \}, uint8\+\_\+t flip=\mbox{\hyperlink{classolc_1_1_sprite_ad0d1976d2060997f5cd99eb284a5dc24a6ad338b4e63faacfbed68b020c3a0c0c}{olc\+::\+Sprite\+::\+N\+O\+NE}})
+\item 
+void \mbox{\hyperlink{classolc_1_1_transformed_view_acf22577cab34db667d05eae0e38000e0}{Draw\+String}} (float x, float y, const std\+::string \&s\+Text, \mbox{\hyperlink{structolc_1_1_pixel}{Pixel}} col, const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&scale)
+\item 
+void \mbox{\hyperlink{classolc_1_1_transformed_view_ab8e4acce21674331d91910c7056c59a3}{Draw\+String}} (const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&pos, const std\+::string \&s\+Text, const \mbox{\hyperlink{structolc_1_1_pixel}{Pixel}} col, const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&scale)
+\item 
+void \mbox{\hyperlink{classolc_1_1_transformed_view_a8bad23f424184f2e15f32deb7f179160}{Draw\+Decal}} (const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&pos, \mbox{\hyperlink{classolc_1_1_decal}{olc\+::\+Decal}} $\ast$decal, const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&scale=\{ 1.\+0f, 1.\+0f \}, const \mbox{\hyperlink{structolc_1_1_pixel}{olc\+::\+Pixel}} \&tint=\mbox{\hyperlink{namespaceolc_ae3de4726bf87f2d74693e62d76816db1}{olc\+::\+W\+H\+I\+TE}})
+\item 
+void \mbox{\hyperlink{classolc_1_1_transformed_view_a1daefdb27499350eb3927c79ec60bca5}{Draw\+Partial\+Decal}} (const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&pos, \mbox{\hyperlink{classolc_1_1_decal}{olc\+::\+Decal}} $\ast$decal, const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&source\+\_\+pos, const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&source\+\_\+size, const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&scale=\{ 1.\+0f, 1.\+0f \}, const \mbox{\hyperlink{structolc_1_1_pixel}{olc\+::\+Pixel}} \&tint=\mbox{\hyperlink{namespaceolc_ae3de4726bf87f2d74693e62d76816db1}{olc\+::\+W\+H\+I\+TE}})
+\item 
+void \mbox{\hyperlink{classolc_1_1_transformed_view_a03ef78202a55d896cd86eb16f39b8847}{Draw\+Partial\+Decal}} (const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&pos, const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&size, \mbox{\hyperlink{classolc_1_1_decal}{olc\+::\+Decal}} $\ast$decal, const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&source\+\_\+pos, const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&source\+\_\+size, const \mbox{\hyperlink{structolc_1_1_pixel}{olc\+::\+Pixel}} \&tint=\mbox{\hyperlink{namespaceolc_ae3de4726bf87f2d74693e62d76816db1}{olc\+::\+W\+H\+I\+TE}})
+\item 
+void \mbox{\hyperlink{classolc_1_1_transformed_view_ac133c5f498e18dc4bcf6a087c7f8b356}{Draw\+Explicit\+Decal}} (\mbox{\hyperlink{classolc_1_1_decal}{olc\+::\+Decal}} $\ast$decal, const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} $\ast$pos, const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} $\ast$uv, const \mbox{\hyperlink{structolc_1_1_pixel}{olc\+::\+Pixel}} $\ast$col, uint32\+\_\+t elements=4)
+\item 
+void \mbox{\hyperlink{classolc_1_1_transformed_view_a2c0e827b1182696275583059a1a72412}{Draw\+Warped\+Decal}} (\mbox{\hyperlink{classolc_1_1_decal}{olc\+::\+Decal}} $\ast$decal, const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}}(\&pos)\mbox{[}4\mbox{]}, const \mbox{\hyperlink{structolc_1_1_pixel}{olc\+::\+Pixel}} \&tint=\mbox{\hyperlink{namespaceolc_ae3de4726bf87f2d74693e62d76816db1}{olc\+::\+W\+H\+I\+TE}})
+\item 
+void \mbox{\hyperlink{classolc_1_1_transformed_view_a250badf6257c666f0e0a07ed3d86ad9e}{Draw\+Warped\+Decal}} (\mbox{\hyperlink{classolc_1_1_decal}{olc\+::\+Decal}} $\ast$decal, const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} $\ast$pos, const \mbox{\hyperlink{structolc_1_1_pixel}{olc\+::\+Pixel}} \&tint=\mbox{\hyperlink{namespaceolc_ae3de4726bf87f2d74693e62d76816db1}{olc\+::\+W\+H\+I\+TE}})
+\item 
+void \mbox{\hyperlink{classolc_1_1_transformed_view_a615fda4662913d6a1fc2764025c28efc}{Draw\+Warped\+Decal}} (\mbox{\hyperlink{classolc_1_1_decal}{olc\+::\+Decal}} $\ast$decal, const std\+::array$<$ \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}}, 4 $>$ \&pos, const \mbox{\hyperlink{structolc_1_1_pixel}{olc\+::\+Pixel}} \&tint=\mbox{\hyperlink{namespaceolc_ae3de4726bf87f2d74693e62d76816db1}{olc\+::\+W\+H\+I\+TE}})
+\item 
+void \mbox{\hyperlink{classolc_1_1_transformed_view_a17bf0d6a35728abe95993ef5475aa767}{Draw\+Partial\+Warped\+Decal}} (\mbox{\hyperlink{classolc_1_1_decal}{olc\+::\+Decal}} $\ast$decal, const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}}(\&pos)\mbox{[}4\mbox{]}, const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&source\+\_\+pos, const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&source\+\_\+size, const \mbox{\hyperlink{structolc_1_1_pixel}{olc\+::\+Pixel}} \&tint=\mbox{\hyperlink{namespaceolc_ae3de4726bf87f2d74693e62d76816db1}{olc\+::\+W\+H\+I\+TE}})
+\item 
+void \mbox{\hyperlink{classolc_1_1_transformed_view_a88045b492c61288a7e5ca1eb164ad2fb}{Draw\+Partial\+Warped\+Decal}} (\mbox{\hyperlink{classolc_1_1_decal}{olc\+::\+Decal}} $\ast$decal, const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} $\ast$pos, const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&source\+\_\+pos, const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&source\+\_\+size, const \mbox{\hyperlink{structolc_1_1_pixel}{olc\+::\+Pixel}} \&tint=\mbox{\hyperlink{namespaceolc_ae3de4726bf87f2d74693e62d76816db1}{olc\+::\+W\+H\+I\+TE}})
+\item 
+void \mbox{\hyperlink{classolc_1_1_transformed_view_a624730b2582152c4cc49d457bc140859}{Draw\+Partial\+Warped\+Decal}} (\mbox{\hyperlink{classolc_1_1_decal}{olc\+::\+Decal}} $\ast$decal, const std\+::array$<$ \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}}, 4 $>$ \&pos, const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&source\+\_\+pos, const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&source\+\_\+size, const \mbox{\hyperlink{structolc_1_1_pixel}{olc\+::\+Pixel}} \&tint=\mbox{\hyperlink{namespaceolc_ae3de4726bf87f2d74693e62d76816db1}{olc\+::\+W\+H\+I\+TE}})
+\item 
+void \mbox{\hyperlink{classolc_1_1_transformed_view_a0d11f6c9ddf0cda25a7b6a79c39c61d6}{Draw\+Rotated\+Decal}} (const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&pos, \mbox{\hyperlink{classolc_1_1_decal}{olc\+::\+Decal}} $\ast$decal, const float f\+Angle, const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&center=\{ 0.\+0f, 0.\+0f \}, const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&scale=\{ 1.\+0f, 1.\+0f \}, const \mbox{\hyperlink{structolc_1_1_pixel}{olc\+::\+Pixel}} \&tint=\mbox{\hyperlink{namespaceolc_ae3de4726bf87f2d74693e62d76816db1}{olc\+::\+W\+H\+I\+TE}})
+\item 
+void \mbox{\hyperlink{classolc_1_1_transformed_view_a3f2574c761a0045641fd2f5f9b194184}{Draw\+Partial\+Rotated\+Decal}} (const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&pos, \mbox{\hyperlink{classolc_1_1_decal}{olc\+::\+Decal}} $\ast$decal, const float f\+Angle, const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&center, const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&source\+\_\+pos, const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&source\+\_\+size, const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&scale=\{ 1.\+0f, 1.\+0f \}, const \mbox{\hyperlink{structolc_1_1_pixel}{olc\+::\+Pixel}} \&tint=\mbox{\hyperlink{namespaceolc_ae3de4726bf87f2d74693e62d76816db1}{olc\+::\+W\+H\+I\+TE}})
+\item 
+void \mbox{\hyperlink{classolc_1_1_transformed_view_a903ad811f1e3f99d8c6e35f1a1aaf9bf}{Draw\+String\+Decal}} (const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&pos, const std\+::string \&s\+Text, const \mbox{\hyperlink{structolc_1_1_pixel}{olc\+::\+Pixel}} col=\mbox{\hyperlink{namespaceolc_ae3de4726bf87f2d74693e62d76816db1}{olc\+::\+W\+H\+I\+TE}}, const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&scale=\{ 1.\+0f, 1.\+0f \})
+\item 
+void \mbox{\hyperlink{classolc_1_1_transformed_view_afde48a1dc4946bfb3718c19bdf62b328}{Draw\+String\+Prop\+Decal}} (const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&pos, const std\+::string \&s\+Text, const \mbox{\hyperlink{structolc_1_1_pixel}{olc\+::\+Pixel}} col=\mbox{\hyperlink{namespaceolc_ae3de4726bf87f2d74693e62d76816db1}{olc\+::\+W\+H\+I\+TE}}, const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&scale=\{ 1.\+0f, 1.\+0f \})
+\item 
+void \mbox{\hyperlink{classolc_1_1_transformed_view_a82f6eeb19d315324c160aa78fd2ead70}{Fill\+Rect\+Decal}} (const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&pos, const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&size, const \mbox{\hyperlink{structolc_1_1_pixel}{olc\+::\+Pixel}} col=\mbox{\hyperlink{namespaceolc_ae3de4726bf87f2d74693e62d76816db1}{olc\+::\+W\+H\+I\+TE}})
+\item 
+void \mbox{\hyperlink{classolc_1_1_transformed_view_a220b8b9184eb25a6bb2c3271d5417025}{Gradient\+Fill\+Rect\+Decal}} (const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&pos, const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&size, const \mbox{\hyperlink{structolc_1_1_pixel}{olc\+::\+Pixel}} col\+TL, const \mbox{\hyperlink{structolc_1_1_pixel}{olc\+::\+Pixel}} col\+BL, const \mbox{\hyperlink{structolc_1_1_pixel}{olc\+::\+Pixel}} col\+BR, const \mbox{\hyperlink{structolc_1_1_pixel}{olc\+::\+Pixel}} col\+TR)
+\item 
+void \mbox{\hyperlink{classolc_1_1_transformed_view_a0555577738d2edacb8b8e701d90804d7}{Draw\+Polygon\+Decal}} (\mbox{\hyperlink{classolc_1_1_decal}{olc\+::\+Decal}} $\ast$decal, const std\+::vector$<$ \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} $>$ \&pos, const std\+::vector$<$ \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} $>$ \&uv, const \mbox{\hyperlink{structolc_1_1_pixel}{olc\+::\+Pixel}} tint=\mbox{\hyperlink{namespaceolc_ae3de4726bf87f2d74693e62d76816db1}{olc\+::\+W\+H\+I\+TE}})
+\end{DoxyCompactItemize}
+\doxysubsection*{Protected Attributes}
+\begin{DoxyCompactItemize}
+\item 
+\mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \mbox{\hyperlink{classolc_1_1_transformed_view_a2e77497521f72e59ae7ecb56dc5d3f37}{m\+\_\+v\+World\+Offset}} = \{ 0.\+0f, 0.\+0f \}
+\item 
+\mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \mbox{\hyperlink{classolc_1_1_transformed_view_a652909b48a4d8960c36d1ce4262cc95a}{m\+\_\+v\+World\+Scale}} = \{ 1.\+0f, 1.\+0f \}
+\item 
+\mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \mbox{\hyperlink{classolc_1_1_transformed_view_ae1b7b82332f0979caa99e003827624cb}{m\+\_\+v\+Recip\+Pixel}} = \{ 1.\+0f, 1.\+0f \}
+\item 
+\mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \mbox{\hyperlink{classolc_1_1_transformed_view_a94a7fd3ad136ec70040bbff1c7133418}{m\+\_\+v\+Pixel\+Scale}} = \{ 1.\+0f, 1.\+0f \}
+\item 
+bool \mbox{\hyperlink{classolc_1_1_transformed_view_a2c19ec65e54f43500cce003f878c8ed5}{m\+\_\+b\+Panning}} = false
+\item 
+\mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \mbox{\hyperlink{classolc_1_1_transformed_view_a4f7569cc3d27120b485077789b86aa44}{m\+\_\+v\+Start\+Pan}} = \{ 0.\+0f, 0.\+0f \}
+\item 
+\mbox{\hyperlink{namespaceolc_a3c42697361e8a28424bcf8415aba3564}{olc\+::vi2d}} \mbox{\hyperlink{classolc_1_1_transformed_view_a0a2936aac23f1621ff1d618c7155de1c}{m\+\_\+v\+View\+Area}}
+\end{DoxyCompactItemize}
+\doxysubsection*{Additional Inherited Members}
+
+
+\doxysubsection{Detailed Description}
+
+
+Definition at line 79 of file olc\+P\+G\+E\+X\+\_\+\+Transformed\+View.\+h.
+
+
+
+\doxysubsection{Constructor \& Destructor Documentation}
+\mbox{\Hypertarget{classolc_1_1_transformed_view_a1f4ed7eb880b0f0edc0b86be4b33b04e}\label{classolc_1_1_transformed_view_a1f4ed7eb880b0f0edc0b86be4b33b04e}} 
+\index{olc::TransformedView@{olc::TransformedView}!TransformedView@{TransformedView}}
+\index{TransformedView@{TransformedView}!olc::TransformedView@{olc::TransformedView}}
+\doxysubsubsection{\texorpdfstring{TransformedView()}{TransformedView()}}
+{\footnotesize\ttfamily olc\+::\+Transformed\+View\+::\+Transformed\+View (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [default]}}
+
+
+
+\doxysubsection{Member Function Documentation}
+\mbox{\Hypertarget{classolc_1_1_transformed_view_a2509ea7aa54013b9b0caa7a265818511}\label{classolc_1_1_transformed_view_a2509ea7aa54013b9b0caa7a265818511}} 
+\index{olc::TransformedView@{olc::TransformedView}!Draw@{Draw}}
+\index{Draw@{Draw}!olc::TransformedView@{olc::TransformedView}}
+\doxysubsubsection{\texorpdfstring{Draw()}{Draw()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
+{\footnotesize\ttfamily bool olc\+::\+Transformed\+View\+::\+Draw (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&}]{pos,  }\item[{\mbox{\hyperlink{structolc_1_1_pixel}{olc\+::\+Pixel}}}]{p = {\ttfamily \mbox{\hyperlink{namespaceolc_ae3de4726bf87f2d74693e62d76816db1}{olc\+::\+W\+H\+I\+TE}}} }\end{DoxyParamCaption})}
+
+\mbox{\Hypertarget{classolc_1_1_transformed_view_a09a214f47f9e4f5e85a8d3bd224ab9b1}\label{classolc_1_1_transformed_view_a09a214f47f9e4f5e85a8d3bd224ab9b1}} 
+\index{olc::TransformedView@{olc::TransformedView}!Draw@{Draw}}
+\index{Draw@{Draw}!olc::TransformedView@{olc::TransformedView}}
+\doxysubsubsection{\texorpdfstring{Draw()}{Draw()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
+{\footnotesize\ttfamily virtual bool olc\+::\+Transformed\+View\+::\+Draw (\begin{DoxyParamCaption}\item[{float}]{x,  }\item[{float}]{y,  }\item[{\mbox{\hyperlink{structolc_1_1_pixel}{olc\+::\+Pixel}}}]{p = {\ttfamily \mbox{\hyperlink{namespaceolc_ae3de4726bf87f2d74693e62d76816db1}{olc\+::\+W\+H\+I\+TE}}} }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}
+
+\mbox{\Hypertarget{classolc_1_1_transformed_view_aa7edb61f256624bad3e5d5847f0eef88}\label{classolc_1_1_transformed_view_aa7edb61f256624bad3e5d5847f0eef88}} 
+\index{olc::TransformedView@{olc::TransformedView}!DrawCircle@{DrawCircle}}
+\index{DrawCircle@{DrawCircle}!olc::TransformedView@{olc::TransformedView}}
+\doxysubsubsection{\texorpdfstring{DrawCircle()}{DrawCircle()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
+{\footnotesize\ttfamily void olc\+::\+Transformed\+View\+::\+Draw\+Circle (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&}]{pos,  }\item[{float}]{radius,  }\item[{\mbox{\hyperlink{structolc_1_1_pixel}{olc\+::\+Pixel}}}]{p = {\ttfamily \mbox{\hyperlink{namespaceolc_ae3de4726bf87f2d74693e62d76816db1}{olc\+::\+W\+H\+I\+TE}}},  }\item[{uint8\+\_\+t}]{mask = {\ttfamily 0xFF} }\end{DoxyParamCaption})}
+
+\mbox{\Hypertarget{classolc_1_1_transformed_view_abbf0590764bbacdd35a4d0adc6e69b84}\label{classolc_1_1_transformed_view_abbf0590764bbacdd35a4d0adc6e69b84}} 
+\index{olc::TransformedView@{olc::TransformedView}!DrawCircle@{DrawCircle}}
+\index{DrawCircle@{DrawCircle}!olc::TransformedView@{olc::TransformedView}}
+\doxysubsubsection{\texorpdfstring{DrawCircle()}{DrawCircle()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
+{\footnotesize\ttfamily void olc\+::\+Transformed\+View\+::\+Draw\+Circle (\begin{DoxyParamCaption}\item[{float}]{x,  }\item[{float}]{y,  }\item[{float}]{radius,  }\item[{\mbox{\hyperlink{structolc_1_1_pixel}{olc\+::\+Pixel}}}]{p = {\ttfamily \mbox{\hyperlink{namespaceolc_ae3de4726bf87f2d74693e62d76816db1}{olc\+::\+W\+H\+I\+TE}}},  }\item[{uint8\+\_\+t}]{mask = {\ttfamily 0xFF} }\end{DoxyParamCaption})}
+
+\mbox{\Hypertarget{classolc_1_1_transformed_view_a8bad23f424184f2e15f32deb7f179160}\label{classolc_1_1_transformed_view_a8bad23f424184f2e15f32deb7f179160}} 
+\index{olc::TransformedView@{olc::TransformedView}!DrawDecal@{DrawDecal}}
+\index{DrawDecal@{DrawDecal}!olc::TransformedView@{olc::TransformedView}}
+\doxysubsubsection{\texorpdfstring{DrawDecal()}{DrawDecal()}}
+{\footnotesize\ttfamily void olc\+::\+Transformed\+View\+::\+Draw\+Decal (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&}]{pos,  }\item[{\mbox{\hyperlink{classolc_1_1_decal}{olc\+::\+Decal}} $\ast$}]{decal,  }\item[{const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&}]{scale = {\ttfamily \{~1.0f,~1.0f~\}},  }\item[{const \mbox{\hyperlink{structolc_1_1_pixel}{olc\+::\+Pixel}} \&}]{tint = {\ttfamily \mbox{\hyperlink{namespaceolc_ae3de4726bf87f2d74693e62d76816db1}{olc\+::\+W\+H\+I\+TE}}} }\end{DoxyParamCaption})}
+
+\mbox{\Hypertarget{classolc_1_1_transformed_view_ac133c5f498e18dc4bcf6a087c7f8b356}\label{classolc_1_1_transformed_view_ac133c5f498e18dc4bcf6a087c7f8b356}} 
+\index{olc::TransformedView@{olc::TransformedView}!DrawExplicitDecal@{DrawExplicitDecal}}
+\index{DrawExplicitDecal@{DrawExplicitDecal}!olc::TransformedView@{olc::TransformedView}}
+\doxysubsubsection{\texorpdfstring{DrawExplicitDecal()}{DrawExplicitDecal()}}
+{\footnotesize\ttfamily void olc\+::\+Transformed\+View\+::\+Draw\+Explicit\+Decal (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{classolc_1_1_decal}{olc\+::\+Decal}} $\ast$}]{decal,  }\item[{const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} $\ast$}]{pos,  }\item[{const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} $\ast$}]{uv,  }\item[{const \mbox{\hyperlink{structolc_1_1_pixel}{olc\+::\+Pixel}} $\ast$}]{col,  }\item[{uint32\+\_\+t}]{elements = {\ttfamily 4} }\end{DoxyParamCaption})}
+
+\mbox{\Hypertarget{classolc_1_1_transformed_view_a60a961188fe9a5cb60258c1b4d8cf498}\label{classolc_1_1_transformed_view_a60a961188fe9a5cb60258c1b4d8cf498}} 
+\index{olc::TransformedView@{olc::TransformedView}!DrawLine@{DrawLine}}
+\index{DrawLine@{DrawLine}!olc::TransformedView@{olc::TransformedView}}
+\doxysubsubsection{\texorpdfstring{DrawLine()}{DrawLine()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
+{\footnotesize\ttfamily void olc\+::\+Transformed\+View\+::\+Draw\+Line (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&}]{pos1,  }\item[{const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&}]{pos2,  }\item[{\mbox{\hyperlink{structolc_1_1_pixel}{olc\+::\+Pixel}}}]{p = {\ttfamily \mbox{\hyperlink{namespaceolc_ae3de4726bf87f2d74693e62d76816db1}{olc\+::\+W\+H\+I\+TE}}},  }\item[{uint32\+\_\+t}]{pattern = {\ttfamily 0xFFFFFFFF} }\end{DoxyParamCaption})}
+
+\mbox{\Hypertarget{classolc_1_1_transformed_view_a2564b30474cab1de208a9b220ddbc181}\label{classolc_1_1_transformed_view_a2564b30474cab1de208a9b220ddbc181}} 
+\index{olc::TransformedView@{olc::TransformedView}!DrawLine@{DrawLine}}
+\index{DrawLine@{DrawLine}!olc::TransformedView@{olc::TransformedView}}
+\doxysubsubsection{\texorpdfstring{DrawLine()}{DrawLine()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
+{\footnotesize\ttfamily void olc\+::\+Transformed\+View\+::\+Draw\+Line (\begin{DoxyParamCaption}\item[{float}]{x1,  }\item[{float}]{y1,  }\item[{float}]{x2,  }\item[{float}]{y2,  }\item[{\mbox{\hyperlink{structolc_1_1_pixel}{olc\+::\+Pixel}}}]{p = {\ttfamily \mbox{\hyperlink{namespaceolc_ae3de4726bf87f2d74693e62d76816db1}{olc\+::\+W\+H\+I\+TE}}},  }\item[{uint32\+\_\+t}]{pattern = {\ttfamily 0xFFFFFFFF} }\end{DoxyParamCaption})}
+
+\mbox{\Hypertarget{classolc_1_1_transformed_view_a03ef78202a55d896cd86eb16f39b8847}\label{classolc_1_1_transformed_view_a03ef78202a55d896cd86eb16f39b8847}} 
+\index{olc::TransformedView@{olc::TransformedView}!DrawPartialDecal@{DrawPartialDecal}}
+\index{DrawPartialDecal@{DrawPartialDecal}!olc::TransformedView@{olc::TransformedView}}
+\doxysubsubsection{\texorpdfstring{DrawPartialDecal()}{DrawPartialDecal()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
+{\footnotesize\ttfamily void olc\+::\+Transformed\+View\+::\+Draw\+Partial\+Decal (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&}]{pos,  }\item[{const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&}]{size,  }\item[{\mbox{\hyperlink{classolc_1_1_decal}{olc\+::\+Decal}} $\ast$}]{decal,  }\item[{const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&}]{source\+\_\+pos,  }\item[{const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&}]{source\+\_\+size,  }\item[{const \mbox{\hyperlink{structolc_1_1_pixel}{olc\+::\+Pixel}} \&}]{tint = {\ttfamily \mbox{\hyperlink{namespaceolc_ae3de4726bf87f2d74693e62d76816db1}{olc\+::\+W\+H\+I\+TE}}} }\end{DoxyParamCaption})}
+
+\mbox{\Hypertarget{classolc_1_1_transformed_view_a1daefdb27499350eb3927c79ec60bca5}\label{classolc_1_1_transformed_view_a1daefdb27499350eb3927c79ec60bca5}} 
+\index{olc::TransformedView@{olc::TransformedView}!DrawPartialDecal@{DrawPartialDecal}}
+\index{DrawPartialDecal@{DrawPartialDecal}!olc::TransformedView@{olc::TransformedView}}
+\doxysubsubsection{\texorpdfstring{DrawPartialDecal()}{DrawPartialDecal()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
+{\footnotesize\ttfamily void olc\+::\+Transformed\+View\+::\+Draw\+Partial\+Decal (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&}]{pos,  }\item[{\mbox{\hyperlink{classolc_1_1_decal}{olc\+::\+Decal}} $\ast$}]{decal,  }\item[{const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&}]{source\+\_\+pos,  }\item[{const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&}]{source\+\_\+size,  }\item[{const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&}]{scale = {\ttfamily \{~1.0f,~1.0f~\}},  }\item[{const \mbox{\hyperlink{structolc_1_1_pixel}{olc\+::\+Pixel}} \&}]{tint = {\ttfamily \mbox{\hyperlink{namespaceolc_ae3de4726bf87f2d74693e62d76816db1}{olc\+::\+W\+H\+I\+TE}}} }\end{DoxyParamCaption})}
+
+\mbox{\Hypertarget{classolc_1_1_transformed_view_a3f2574c761a0045641fd2f5f9b194184}\label{classolc_1_1_transformed_view_a3f2574c761a0045641fd2f5f9b194184}} 
+\index{olc::TransformedView@{olc::TransformedView}!DrawPartialRotatedDecal@{DrawPartialRotatedDecal}}
+\index{DrawPartialRotatedDecal@{DrawPartialRotatedDecal}!olc::TransformedView@{olc::TransformedView}}
+\doxysubsubsection{\texorpdfstring{DrawPartialRotatedDecal()}{DrawPartialRotatedDecal()}}
+{\footnotesize\ttfamily void olc\+::\+Transformed\+View\+::\+Draw\+Partial\+Rotated\+Decal (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&}]{pos,  }\item[{\mbox{\hyperlink{classolc_1_1_decal}{olc\+::\+Decal}} $\ast$}]{decal,  }\item[{const float}]{f\+Angle,  }\item[{const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&}]{center,  }\item[{const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&}]{source\+\_\+pos,  }\item[{const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&}]{source\+\_\+size,  }\item[{const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&}]{scale = {\ttfamily \{~1.0f,~1.0f~\}},  }\item[{const \mbox{\hyperlink{structolc_1_1_pixel}{olc\+::\+Pixel}} \&}]{tint = {\ttfamily \mbox{\hyperlink{namespaceolc_ae3de4726bf87f2d74693e62d76816db1}{olc\+::\+W\+H\+I\+TE}}} }\end{DoxyParamCaption})}
+
+\mbox{\Hypertarget{classolc_1_1_transformed_view_a0c6e1fb72399ec97e0dc093a2da80d50}\label{classolc_1_1_transformed_view_a0c6e1fb72399ec97e0dc093a2da80d50}} 
+\index{olc::TransformedView@{olc::TransformedView}!DrawPartialSprite@{DrawPartialSprite}}
+\index{DrawPartialSprite@{DrawPartialSprite}!olc::TransformedView@{olc::TransformedView}}
+\doxysubsubsection{\texorpdfstring{DrawPartialSprite()}{DrawPartialSprite()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
+{\footnotesize\ttfamily void olc\+::\+Transformed\+View\+::\+Draw\+Partial\+Sprite (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&}]{pos,  }\item[{\mbox{\hyperlink{classolc_1_1_sprite}{Sprite}} $\ast$}]{sprite,  }\item[{const \mbox{\hyperlink{namespaceolc_a3c42697361e8a28424bcf8415aba3564}{olc\+::vi2d}} \&}]{sourcepos,  }\item[{const \mbox{\hyperlink{namespaceolc_a3c42697361e8a28424bcf8415aba3564}{olc\+::vi2d}} \&}]{size,  }\item[{const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&}]{scale = {\ttfamily \{~1.0f,~1.0f~\}},  }\item[{uint8\+\_\+t}]{flip = {\ttfamily \mbox{\hyperlink{classolc_1_1_sprite_ad0d1976d2060997f5cd99eb284a5dc24a6ad338b4e63faacfbed68b020c3a0c0c}{olc\+::\+Sprite\+::\+N\+O\+NE}}} }\end{DoxyParamCaption})}
+
+\mbox{\Hypertarget{classolc_1_1_transformed_view_a829557257985bb738baad577ed0ed7a0}\label{classolc_1_1_transformed_view_a829557257985bb738baad577ed0ed7a0}} 
+\index{olc::TransformedView@{olc::TransformedView}!DrawPartialSprite@{DrawPartialSprite}}
+\index{DrawPartialSprite@{DrawPartialSprite}!olc::TransformedView@{olc::TransformedView}}
+\doxysubsubsection{\texorpdfstring{DrawPartialSprite()}{DrawPartialSprite()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
+{\footnotesize\ttfamily void olc\+::\+Transformed\+View\+::\+Draw\+Partial\+Sprite (\begin{DoxyParamCaption}\item[{float}]{x,  }\item[{float}]{y,  }\item[{\mbox{\hyperlink{classolc_1_1_sprite}{Sprite}} $\ast$}]{sprite,  }\item[{int32\+\_\+t}]{ox,  }\item[{int32\+\_\+t}]{oy,  }\item[{int32\+\_\+t}]{w,  }\item[{int32\+\_\+t}]{h,  }\item[{float}]{scalex = {\ttfamily 1},  }\item[{float}]{scaley = {\ttfamily 1},  }\item[{uint8\+\_\+t}]{flip = {\ttfamily \mbox{\hyperlink{classolc_1_1_sprite_ad0d1976d2060997f5cd99eb284a5dc24a6ad338b4e63faacfbed68b020c3a0c0c}{olc\+::\+Sprite\+::\+N\+O\+NE}}} }\end{DoxyParamCaption})}
+
+\mbox{\Hypertarget{classolc_1_1_transformed_view_a88045b492c61288a7e5ca1eb164ad2fb}\label{classolc_1_1_transformed_view_a88045b492c61288a7e5ca1eb164ad2fb}} 
+\index{olc::TransformedView@{olc::TransformedView}!DrawPartialWarpedDecal@{DrawPartialWarpedDecal}}
+\index{DrawPartialWarpedDecal@{DrawPartialWarpedDecal}!olc::TransformedView@{olc::TransformedView}}
+\doxysubsubsection{\texorpdfstring{DrawPartialWarpedDecal()}{DrawPartialWarpedDecal()}\hspace{0.1cm}{\footnotesize\ttfamily [1/3]}}
+{\footnotesize\ttfamily void olc\+::\+Transformed\+View\+::\+Draw\+Partial\+Warped\+Decal (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{classolc_1_1_decal}{olc\+::\+Decal}} $\ast$}]{decal,  }\item[{const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} $\ast$}]{pos,  }\item[{const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&}]{source\+\_\+pos,  }\item[{const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&}]{source\+\_\+size,  }\item[{const \mbox{\hyperlink{structolc_1_1_pixel}{olc\+::\+Pixel}} \&}]{tint = {\ttfamily \mbox{\hyperlink{namespaceolc_ae3de4726bf87f2d74693e62d76816db1}{olc\+::\+W\+H\+I\+TE}}} }\end{DoxyParamCaption})}
+
+\mbox{\Hypertarget{classolc_1_1_transformed_view_a17bf0d6a35728abe95993ef5475aa767}\label{classolc_1_1_transformed_view_a17bf0d6a35728abe95993ef5475aa767}} 
+\index{olc::TransformedView@{olc::TransformedView}!DrawPartialWarpedDecal@{DrawPartialWarpedDecal}}
+\index{DrawPartialWarpedDecal@{DrawPartialWarpedDecal}!olc::TransformedView@{olc::TransformedView}}
+\doxysubsubsection{\texorpdfstring{DrawPartialWarpedDecal()}{DrawPartialWarpedDecal()}\hspace{0.1cm}{\footnotesize\ttfamily [2/3]}}
+{\footnotesize\ttfamily void olc\+::\+Transformed\+View\+::\+Draw\+Partial\+Warped\+Decal (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{classolc_1_1_decal}{olc\+::\+Decal}} $\ast$}]{decal,  }\item[{const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}}(\&)}]{pos\mbox{[}4\mbox{]},  }\item[{const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&}]{source\+\_\+pos,  }\item[{const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&}]{source\+\_\+size,  }\item[{const \mbox{\hyperlink{structolc_1_1_pixel}{olc\+::\+Pixel}} \&}]{tint = {\ttfamily \mbox{\hyperlink{namespaceolc_ae3de4726bf87f2d74693e62d76816db1}{olc\+::\+W\+H\+I\+TE}}} }\end{DoxyParamCaption})}
+
+\mbox{\Hypertarget{classolc_1_1_transformed_view_a624730b2582152c4cc49d457bc140859}\label{classolc_1_1_transformed_view_a624730b2582152c4cc49d457bc140859}} 
+\index{olc::TransformedView@{olc::TransformedView}!DrawPartialWarpedDecal@{DrawPartialWarpedDecal}}
+\index{DrawPartialWarpedDecal@{DrawPartialWarpedDecal}!olc::TransformedView@{olc::TransformedView}}
+\doxysubsubsection{\texorpdfstring{DrawPartialWarpedDecal()}{DrawPartialWarpedDecal()}\hspace{0.1cm}{\footnotesize\ttfamily [3/3]}}
+{\footnotesize\ttfamily void olc\+::\+Transformed\+View\+::\+Draw\+Partial\+Warped\+Decal (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{classolc_1_1_decal}{olc\+::\+Decal}} $\ast$}]{decal,  }\item[{const std\+::array$<$ \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}}, 4 $>$ \&}]{pos,  }\item[{const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&}]{source\+\_\+pos,  }\item[{const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&}]{source\+\_\+size,  }\item[{const \mbox{\hyperlink{structolc_1_1_pixel}{olc\+::\+Pixel}} \&}]{tint = {\ttfamily \mbox{\hyperlink{namespaceolc_ae3de4726bf87f2d74693e62d76816db1}{olc\+::\+W\+H\+I\+TE}}} }\end{DoxyParamCaption})}
+
+\mbox{\Hypertarget{classolc_1_1_transformed_view_a0555577738d2edacb8b8e701d90804d7}\label{classolc_1_1_transformed_view_a0555577738d2edacb8b8e701d90804d7}} 
+\index{olc::TransformedView@{olc::TransformedView}!DrawPolygonDecal@{DrawPolygonDecal}}
+\index{DrawPolygonDecal@{DrawPolygonDecal}!olc::TransformedView@{olc::TransformedView}}
+\doxysubsubsection{\texorpdfstring{DrawPolygonDecal()}{DrawPolygonDecal()}}
+{\footnotesize\ttfamily void olc\+::\+Transformed\+View\+::\+Draw\+Polygon\+Decal (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{classolc_1_1_decal}{olc\+::\+Decal}} $\ast$}]{decal,  }\item[{const std\+::vector$<$ \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} $>$ \&}]{pos,  }\item[{const std\+::vector$<$ \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} $>$ \&}]{uv,  }\item[{const \mbox{\hyperlink{structolc_1_1_pixel}{olc\+::\+Pixel}}}]{tint = {\ttfamily \mbox{\hyperlink{namespaceolc_ae3de4726bf87f2d74693e62d76816db1}{olc\+::\+W\+H\+I\+TE}}} }\end{DoxyParamCaption})}
+
+\mbox{\Hypertarget{classolc_1_1_transformed_view_a2ce6891b49d600eacb32eef88f07b2e0}\label{classolc_1_1_transformed_view_a2ce6891b49d600eacb32eef88f07b2e0}} 
+\index{olc::TransformedView@{olc::TransformedView}!DrawRect@{DrawRect}}
+\index{DrawRect@{DrawRect}!olc::TransformedView@{olc::TransformedView}}
+\doxysubsubsection{\texorpdfstring{DrawRect()}{DrawRect()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
+{\footnotesize\ttfamily void olc\+::\+Transformed\+View\+::\+Draw\+Rect (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&}]{pos,  }\item[{const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&}]{size,  }\item[{\mbox{\hyperlink{structolc_1_1_pixel}{olc\+::\+Pixel}}}]{p = {\ttfamily \mbox{\hyperlink{namespaceolc_ae3de4726bf87f2d74693e62d76816db1}{olc\+::\+W\+H\+I\+TE}}} }\end{DoxyParamCaption})}
+
+\mbox{\Hypertarget{classolc_1_1_transformed_view_ab1578748552d35bff05e63dcfc79cfb9}\label{classolc_1_1_transformed_view_ab1578748552d35bff05e63dcfc79cfb9}} 
+\index{olc::TransformedView@{olc::TransformedView}!DrawRect@{DrawRect}}
+\index{DrawRect@{DrawRect}!olc::TransformedView@{olc::TransformedView}}
+\doxysubsubsection{\texorpdfstring{DrawRect()}{DrawRect()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
+{\footnotesize\ttfamily void olc\+::\+Transformed\+View\+::\+Draw\+Rect (\begin{DoxyParamCaption}\item[{float}]{x,  }\item[{float}]{y,  }\item[{float}]{w,  }\item[{float}]{h,  }\item[{\mbox{\hyperlink{structolc_1_1_pixel}{olc\+::\+Pixel}}}]{p = {\ttfamily \mbox{\hyperlink{namespaceolc_ae3de4726bf87f2d74693e62d76816db1}{olc\+::\+W\+H\+I\+TE}}} }\end{DoxyParamCaption})}
+
+\mbox{\Hypertarget{classolc_1_1_transformed_view_a0d11f6c9ddf0cda25a7b6a79c39c61d6}\label{classolc_1_1_transformed_view_a0d11f6c9ddf0cda25a7b6a79c39c61d6}} 
+\index{olc::TransformedView@{olc::TransformedView}!DrawRotatedDecal@{DrawRotatedDecal}}
+\index{DrawRotatedDecal@{DrawRotatedDecal}!olc::TransformedView@{olc::TransformedView}}
+\doxysubsubsection{\texorpdfstring{DrawRotatedDecal()}{DrawRotatedDecal()}}
+{\footnotesize\ttfamily void olc\+::\+Transformed\+View\+::\+Draw\+Rotated\+Decal (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&}]{pos,  }\item[{\mbox{\hyperlink{classolc_1_1_decal}{olc\+::\+Decal}} $\ast$}]{decal,  }\item[{const float}]{f\+Angle,  }\item[{const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&}]{center = {\ttfamily \{~0.0f,~0.0f~\}},  }\item[{const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&}]{scale = {\ttfamily \{~1.0f,~1.0f~\}},  }\item[{const \mbox{\hyperlink{structolc_1_1_pixel}{olc\+::\+Pixel}} \&}]{tint = {\ttfamily \mbox{\hyperlink{namespaceolc_ae3de4726bf87f2d74693e62d76816db1}{olc\+::\+W\+H\+I\+TE}}} }\end{DoxyParamCaption})}
+
+\mbox{\Hypertarget{classolc_1_1_transformed_view_a44f1c98c6c6720338d7b6dcc9117cb03}\label{classolc_1_1_transformed_view_a44f1c98c6c6720338d7b6dcc9117cb03}} 
+\index{olc::TransformedView@{olc::TransformedView}!DrawSprite@{DrawSprite}}
+\index{DrawSprite@{DrawSprite}!olc::TransformedView@{olc::TransformedView}}
+\doxysubsubsection{\texorpdfstring{DrawSprite()}{DrawSprite()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
+{\footnotesize\ttfamily void olc\+::\+Transformed\+View\+::\+Draw\+Sprite (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&}]{pos,  }\item[{\mbox{\hyperlink{classolc_1_1_sprite}{olc\+::\+Sprite}} $\ast$}]{sprite,  }\item[{const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&}]{scale = {\ttfamily \{~1.0f,~1.0f~\}},  }\item[{uint8\+\_\+t}]{flip = {\ttfamily \mbox{\hyperlink{classolc_1_1_sprite_ad0d1976d2060997f5cd99eb284a5dc24a6ad338b4e63faacfbed68b020c3a0c0c}{olc\+::\+Sprite\+::\+N\+O\+NE}}} }\end{DoxyParamCaption})}
+
+\mbox{\Hypertarget{classolc_1_1_transformed_view_a0814eafdbf34c4570c08722998b3c936}\label{classolc_1_1_transformed_view_a0814eafdbf34c4570c08722998b3c936}} 
+\index{olc::TransformedView@{olc::TransformedView}!DrawSprite@{DrawSprite}}
+\index{DrawSprite@{DrawSprite}!olc::TransformedView@{olc::TransformedView}}
+\doxysubsubsection{\texorpdfstring{DrawSprite()}{DrawSprite()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
+{\footnotesize\ttfamily void olc\+::\+Transformed\+View\+::\+Draw\+Sprite (\begin{DoxyParamCaption}\item[{float}]{x,  }\item[{float}]{y,  }\item[{\mbox{\hyperlink{classolc_1_1_sprite}{olc\+::\+Sprite}} $\ast$}]{sprite,  }\item[{float}]{scalex = {\ttfamily 1},  }\item[{float}]{scaley = {\ttfamily 1},  }\item[{uint8\+\_\+t}]{flip = {\ttfamily \mbox{\hyperlink{classolc_1_1_sprite_ad0d1976d2060997f5cd99eb284a5dc24a6ad338b4e63faacfbed68b020c3a0c0c}{olc\+::\+Sprite\+::\+N\+O\+NE}}} }\end{DoxyParamCaption})}
+
+\mbox{\Hypertarget{classolc_1_1_transformed_view_ab8e4acce21674331d91910c7056c59a3}\label{classolc_1_1_transformed_view_ab8e4acce21674331d91910c7056c59a3}} 
+\index{olc::TransformedView@{olc::TransformedView}!DrawString@{DrawString}}
+\index{DrawString@{DrawString}!olc::TransformedView@{olc::TransformedView}}
+\doxysubsubsection{\texorpdfstring{DrawString()}{DrawString()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
+{\footnotesize\ttfamily void olc\+::\+Transformed\+View\+::\+Draw\+String (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&}]{pos,  }\item[{const std\+::string \&}]{s\+Text,  }\item[{const \mbox{\hyperlink{structolc_1_1_pixel}{Pixel}}}]{col,  }\item[{const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&}]{scale }\end{DoxyParamCaption})}
+
+\mbox{\Hypertarget{classolc_1_1_transformed_view_acf22577cab34db667d05eae0e38000e0}\label{classolc_1_1_transformed_view_acf22577cab34db667d05eae0e38000e0}} 
+\index{olc::TransformedView@{olc::TransformedView}!DrawString@{DrawString}}
+\index{DrawString@{DrawString}!olc::TransformedView@{olc::TransformedView}}
+\doxysubsubsection{\texorpdfstring{DrawString()}{DrawString()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
+{\footnotesize\ttfamily void olc\+::\+Transformed\+View\+::\+Draw\+String (\begin{DoxyParamCaption}\item[{float}]{x,  }\item[{float}]{y,  }\item[{const std\+::string \&}]{s\+Text,  }\item[{\mbox{\hyperlink{structolc_1_1_pixel}{Pixel}}}]{col,  }\item[{const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&}]{scale }\end{DoxyParamCaption})}
+
+\mbox{\Hypertarget{classolc_1_1_transformed_view_a903ad811f1e3f99d8c6e35f1a1aaf9bf}\label{classolc_1_1_transformed_view_a903ad811f1e3f99d8c6e35f1a1aaf9bf}} 
+\index{olc::TransformedView@{olc::TransformedView}!DrawStringDecal@{DrawStringDecal}}
+\index{DrawStringDecal@{DrawStringDecal}!olc::TransformedView@{olc::TransformedView}}
+\doxysubsubsection{\texorpdfstring{DrawStringDecal()}{DrawStringDecal()}}
+{\footnotesize\ttfamily void olc\+::\+Transformed\+View\+::\+Draw\+String\+Decal (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&}]{pos,  }\item[{const std\+::string \&}]{s\+Text,  }\item[{const \mbox{\hyperlink{structolc_1_1_pixel}{olc\+::\+Pixel}}}]{col = {\ttfamily \mbox{\hyperlink{namespaceolc_ae3de4726bf87f2d74693e62d76816db1}{olc\+::\+W\+H\+I\+TE}}},  }\item[{const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&}]{scale = {\ttfamily \{~1.0f,~1.0f~\}} }\end{DoxyParamCaption})}
+
+\mbox{\Hypertarget{classolc_1_1_transformed_view_afde48a1dc4946bfb3718c19bdf62b328}\label{classolc_1_1_transformed_view_afde48a1dc4946bfb3718c19bdf62b328}} 
+\index{olc::TransformedView@{olc::TransformedView}!DrawStringPropDecal@{DrawStringPropDecal}}
+\index{DrawStringPropDecal@{DrawStringPropDecal}!olc::TransformedView@{olc::TransformedView}}
+\doxysubsubsection{\texorpdfstring{DrawStringPropDecal()}{DrawStringPropDecal()}}
+{\footnotesize\ttfamily void olc\+::\+Transformed\+View\+::\+Draw\+String\+Prop\+Decal (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&}]{pos,  }\item[{const std\+::string \&}]{s\+Text,  }\item[{const \mbox{\hyperlink{structolc_1_1_pixel}{olc\+::\+Pixel}}}]{col = {\ttfamily \mbox{\hyperlink{namespaceolc_ae3de4726bf87f2d74693e62d76816db1}{olc\+::\+W\+H\+I\+TE}}},  }\item[{const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&}]{scale = {\ttfamily \{~1.0f,~1.0f~\}} }\end{DoxyParamCaption})}
+
+\mbox{\Hypertarget{classolc_1_1_transformed_view_a45a659d55d124e87e956e842963637fa}\label{classolc_1_1_transformed_view_a45a659d55d124e87e956e842963637fa}} 
+\index{olc::TransformedView@{olc::TransformedView}!DrawTriangle@{DrawTriangle}}
+\index{DrawTriangle@{DrawTriangle}!olc::TransformedView@{olc::TransformedView}}
+\doxysubsubsection{\texorpdfstring{DrawTriangle()}{DrawTriangle()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
+{\footnotesize\ttfamily void olc\+::\+Transformed\+View\+::\+Draw\+Triangle (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&}]{pos1,  }\item[{const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&}]{pos2,  }\item[{const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&}]{pos3,  }\item[{\mbox{\hyperlink{structolc_1_1_pixel}{olc\+::\+Pixel}}}]{p = {\ttfamily \mbox{\hyperlink{namespaceolc_ae3de4726bf87f2d74693e62d76816db1}{olc\+::\+W\+H\+I\+TE}}} }\end{DoxyParamCaption})}
+
+\mbox{\Hypertarget{classolc_1_1_transformed_view_a6c818747c7fa97445fbb40c9f222e865}\label{classolc_1_1_transformed_view_a6c818747c7fa97445fbb40c9f222e865}} 
+\index{olc::TransformedView@{olc::TransformedView}!DrawTriangle@{DrawTriangle}}
+\index{DrawTriangle@{DrawTriangle}!olc::TransformedView@{olc::TransformedView}}
+\doxysubsubsection{\texorpdfstring{DrawTriangle()}{DrawTriangle()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
+{\footnotesize\ttfamily void olc\+::\+Transformed\+View\+::\+Draw\+Triangle (\begin{DoxyParamCaption}\item[{float}]{x1,  }\item[{float}]{y1,  }\item[{float}]{x2,  }\item[{float}]{y2,  }\item[{float}]{x3,  }\item[{float}]{y3,  }\item[{\mbox{\hyperlink{structolc_1_1_pixel}{olc\+::\+Pixel}}}]{p = {\ttfamily \mbox{\hyperlink{namespaceolc_ae3de4726bf87f2d74693e62d76816db1}{olc\+::\+W\+H\+I\+TE}}} }\end{DoxyParamCaption})}
+
+\mbox{\Hypertarget{classolc_1_1_transformed_view_a250badf6257c666f0e0a07ed3d86ad9e}\label{classolc_1_1_transformed_view_a250badf6257c666f0e0a07ed3d86ad9e}} 
+\index{olc::TransformedView@{olc::TransformedView}!DrawWarpedDecal@{DrawWarpedDecal}}
+\index{DrawWarpedDecal@{DrawWarpedDecal}!olc::TransformedView@{olc::TransformedView}}
+\doxysubsubsection{\texorpdfstring{DrawWarpedDecal()}{DrawWarpedDecal()}\hspace{0.1cm}{\footnotesize\ttfamily [1/3]}}
+{\footnotesize\ttfamily void olc\+::\+Transformed\+View\+::\+Draw\+Warped\+Decal (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{classolc_1_1_decal}{olc\+::\+Decal}} $\ast$}]{decal,  }\item[{const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} $\ast$}]{pos,  }\item[{const \mbox{\hyperlink{structolc_1_1_pixel}{olc\+::\+Pixel}} \&}]{tint = {\ttfamily \mbox{\hyperlink{namespaceolc_ae3de4726bf87f2d74693e62d76816db1}{olc\+::\+W\+H\+I\+TE}}} }\end{DoxyParamCaption})}
+
+\mbox{\Hypertarget{classolc_1_1_transformed_view_a2c0e827b1182696275583059a1a72412}\label{classolc_1_1_transformed_view_a2c0e827b1182696275583059a1a72412}} 
+\index{olc::TransformedView@{olc::TransformedView}!DrawWarpedDecal@{DrawWarpedDecal}}
+\index{DrawWarpedDecal@{DrawWarpedDecal}!olc::TransformedView@{olc::TransformedView}}
+\doxysubsubsection{\texorpdfstring{DrawWarpedDecal()}{DrawWarpedDecal()}\hspace{0.1cm}{\footnotesize\ttfamily [2/3]}}
+{\footnotesize\ttfamily void olc\+::\+Transformed\+View\+::\+Draw\+Warped\+Decal (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{classolc_1_1_decal}{olc\+::\+Decal}} $\ast$}]{decal,  }\item[{const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}}(\&)}]{pos\mbox{[}4\mbox{]},  }\item[{const \mbox{\hyperlink{structolc_1_1_pixel}{olc\+::\+Pixel}} \&}]{tint = {\ttfamily \mbox{\hyperlink{namespaceolc_ae3de4726bf87f2d74693e62d76816db1}{olc\+::\+W\+H\+I\+TE}}} }\end{DoxyParamCaption})}
+
+\mbox{\Hypertarget{classolc_1_1_transformed_view_a615fda4662913d6a1fc2764025c28efc}\label{classolc_1_1_transformed_view_a615fda4662913d6a1fc2764025c28efc}} 
+\index{olc::TransformedView@{olc::TransformedView}!DrawWarpedDecal@{DrawWarpedDecal}}
+\index{DrawWarpedDecal@{DrawWarpedDecal}!olc::TransformedView@{olc::TransformedView}}
+\doxysubsubsection{\texorpdfstring{DrawWarpedDecal()}{DrawWarpedDecal()}\hspace{0.1cm}{\footnotesize\ttfamily [3/3]}}
+{\footnotesize\ttfamily void olc\+::\+Transformed\+View\+::\+Draw\+Warped\+Decal (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{classolc_1_1_decal}{olc\+::\+Decal}} $\ast$}]{decal,  }\item[{const std\+::array$<$ \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}}, 4 $>$ \&}]{pos,  }\item[{const \mbox{\hyperlink{structolc_1_1_pixel}{olc\+::\+Pixel}} \&}]{tint = {\ttfamily \mbox{\hyperlink{namespaceolc_ae3de4726bf87f2d74693e62d76816db1}{olc\+::\+W\+H\+I\+TE}}} }\end{DoxyParamCaption})}
+
+\mbox{\Hypertarget{classolc_1_1_transformed_view_a3edd680172e1ae5b710290ab58d617e0}\label{classolc_1_1_transformed_view_a3edd680172e1ae5b710290ab58d617e0}} 
+\index{olc::TransformedView@{olc::TransformedView}!EndPan@{EndPan}}
+\index{EndPan@{EndPan}!olc::TransformedView@{olc::TransformedView}}
+\doxysubsubsection{\texorpdfstring{EndPan()}{EndPan()}}
+{\footnotesize\ttfamily void olc\+::\+Transformed\+View\+::\+End\+Pan (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{namespaceolc_a3c42697361e8a28424bcf8415aba3564}{olc\+::vi2d}} \&}]{v\+Pos }\end{DoxyParamCaption})}
+
+\mbox{\Hypertarget{classolc_1_1_transformed_view_a8d8559f74de40982e41f9cab0577b3b9}\label{classolc_1_1_transformed_view_a8d8559f74de40982e41f9cab0577b3b9}} 
+\index{olc::TransformedView@{olc::TransformedView}!FillCircle@{FillCircle}}
+\index{FillCircle@{FillCircle}!olc::TransformedView@{olc::TransformedView}}
+\doxysubsubsection{\texorpdfstring{FillCircle()}{FillCircle()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
+{\footnotesize\ttfamily void olc\+::\+Transformed\+View\+::\+Fill\+Circle (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&}]{pos,  }\item[{float}]{radius,  }\item[{\mbox{\hyperlink{structolc_1_1_pixel}{olc\+::\+Pixel}}}]{p = {\ttfamily \mbox{\hyperlink{namespaceolc_ae3de4726bf87f2d74693e62d76816db1}{olc\+::\+W\+H\+I\+TE}}} }\end{DoxyParamCaption})}
+
+\mbox{\Hypertarget{classolc_1_1_transformed_view_afd3f4dffe3a2fffaed2fd6c84e40ce23}\label{classolc_1_1_transformed_view_afd3f4dffe3a2fffaed2fd6c84e40ce23}} 
+\index{olc::TransformedView@{olc::TransformedView}!FillCircle@{FillCircle}}
+\index{FillCircle@{FillCircle}!olc::TransformedView@{olc::TransformedView}}
+\doxysubsubsection{\texorpdfstring{FillCircle()}{FillCircle()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
+{\footnotesize\ttfamily void olc\+::\+Transformed\+View\+::\+Fill\+Circle (\begin{DoxyParamCaption}\item[{float}]{x,  }\item[{float}]{y,  }\item[{float}]{radius,  }\item[{\mbox{\hyperlink{structolc_1_1_pixel}{olc\+::\+Pixel}}}]{p = {\ttfamily \mbox{\hyperlink{namespaceolc_ae3de4726bf87f2d74693e62d76816db1}{olc\+::\+W\+H\+I\+TE}}} }\end{DoxyParamCaption})}
+
+\mbox{\Hypertarget{classolc_1_1_transformed_view_abc3071fe6fa5f9ca4c5fe227a335df54}\label{classolc_1_1_transformed_view_abc3071fe6fa5f9ca4c5fe227a335df54}} 
+\index{olc::TransformedView@{olc::TransformedView}!FillRect@{FillRect}}
+\index{FillRect@{FillRect}!olc::TransformedView@{olc::TransformedView}}
+\doxysubsubsection{\texorpdfstring{FillRect()}{FillRect()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
+{\footnotesize\ttfamily void olc\+::\+Transformed\+View\+::\+Fill\+Rect (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&}]{pos,  }\item[{const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&}]{size,  }\item[{\mbox{\hyperlink{structolc_1_1_pixel}{olc\+::\+Pixel}}}]{p = {\ttfamily \mbox{\hyperlink{namespaceolc_ae3de4726bf87f2d74693e62d76816db1}{olc\+::\+W\+H\+I\+TE}}} }\end{DoxyParamCaption})}
+
+\mbox{\Hypertarget{classolc_1_1_transformed_view_a2f12ada82c7262a2e29572cfded60f02}\label{classolc_1_1_transformed_view_a2f12ada82c7262a2e29572cfded60f02}} 
+\index{olc::TransformedView@{olc::TransformedView}!FillRect@{FillRect}}
+\index{FillRect@{FillRect}!olc::TransformedView@{olc::TransformedView}}
+\doxysubsubsection{\texorpdfstring{FillRect()}{FillRect()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
+{\footnotesize\ttfamily void olc\+::\+Transformed\+View\+::\+Fill\+Rect (\begin{DoxyParamCaption}\item[{float}]{x,  }\item[{float}]{y,  }\item[{float}]{w,  }\item[{float}]{h,  }\item[{\mbox{\hyperlink{structolc_1_1_pixel}{olc\+::\+Pixel}}}]{p = {\ttfamily \mbox{\hyperlink{namespaceolc_ae3de4726bf87f2d74693e62d76816db1}{olc\+::\+W\+H\+I\+TE}}} }\end{DoxyParamCaption})}
+
+\mbox{\Hypertarget{classolc_1_1_transformed_view_a82f6eeb19d315324c160aa78fd2ead70}\label{classolc_1_1_transformed_view_a82f6eeb19d315324c160aa78fd2ead70}} 
+\index{olc::TransformedView@{olc::TransformedView}!FillRectDecal@{FillRectDecal}}
+\index{FillRectDecal@{FillRectDecal}!olc::TransformedView@{olc::TransformedView}}
+\doxysubsubsection{\texorpdfstring{FillRectDecal()}{FillRectDecal()}}
+{\footnotesize\ttfamily void olc\+::\+Transformed\+View\+::\+Fill\+Rect\+Decal (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&}]{pos,  }\item[{const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&}]{size,  }\item[{const \mbox{\hyperlink{structolc_1_1_pixel}{olc\+::\+Pixel}}}]{col = {\ttfamily \mbox{\hyperlink{namespaceolc_ae3de4726bf87f2d74693e62d76816db1}{olc\+::\+W\+H\+I\+TE}}} }\end{DoxyParamCaption})}
+
+\mbox{\Hypertarget{classolc_1_1_transformed_view_a023149966b61d7f233898c2b4372d018}\label{classolc_1_1_transformed_view_a023149966b61d7f233898c2b4372d018}} 
+\index{olc::TransformedView@{olc::TransformedView}!FillTriangle@{FillTriangle}}
+\index{FillTriangle@{FillTriangle}!olc::TransformedView@{olc::TransformedView}}
+\doxysubsubsection{\texorpdfstring{FillTriangle()}{FillTriangle()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
+{\footnotesize\ttfamily void olc\+::\+Transformed\+View\+::\+Fill\+Triangle (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&}]{pos1,  }\item[{const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&}]{pos2,  }\item[{const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&}]{pos3,  }\item[{\mbox{\hyperlink{structolc_1_1_pixel}{olc\+::\+Pixel}}}]{p = {\ttfamily \mbox{\hyperlink{namespaceolc_ae3de4726bf87f2d74693e62d76816db1}{olc\+::\+W\+H\+I\+TE}}} }\end{DoxyParamCaption})}
+
+\mbox{\Hypertarget{classolc_1_1_transformed_view_a5cba545151923f38fd5d87b2c130a894}\label{classolc_1_1_transformed_view_a5cba545151923f38fd5d87b2c130a894}} 
+\index{olc::TransformedView@{olc::TransformedView}!FillTriangle@{FillTriangle}}
+\index{FillTriangle@{FillTriangle}!olc::TransformedView@{olc::TransformedView}}
+\doxysubsubsection{\texorpdfstring{FillTriangle()}{FillTriangle()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
+{\footnotesize\ttfamily void olc\+::\+Transformed\+View\+::\+Fill\+Triangle (\begin{DoxyParamCaption}\item[{float}]{x1,  }\item[{float}]{y1,  }\item[{float}]{x2,  }\item[{float}]{y2,  }\item[{float}]{x3,  }\item[{float}]{y3,  }\item[{\mbox{\hyperlink{structolc_1_1_pixel}{olc\+::\+Pixel}}}]{p = {\ttfamily \mbox{\hyperlink{namespaceolc_ae3de4726bf87f2d74693e62d76816db1}{olc\+::\+W\+H\+I\+TE}}} }\end{DoxyParamCaption})}
+
+\mbox{\Hypertarget{classolc_1_1_transformed_view_a5240bf2a7285559be13c80f3ce2a97a3}\label{classolc_1_1_transformed_view_a5240bf2a7285559be13c80f3ce2a97a3}} 
+\index{olc::TransformedView@{olc::TransformedView}!GetWorldBR@{GetWorldBR}}
+\index{GetWorldBR@{GetWorldBR}!olc::TransformedView@{olc::TransformedView}}
+\doxysubsubsection{\texorpdfstring{GetWorldBR()}{GetWorldBR()}}
+{\footnotesize\ttfamily \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} olc\+::\+Transformed\+View\+::\+Get\+World\+BR (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const}
+
+\mbox{\Hypertarget{classolc_1_1_transformed_view_a88152a5f5b9fbb3df0f6d965ef4c4fe4}\label{classolc_1_1_transformed_view_a88152a5f5b9fbb3df0f6d965ef4c4fe4}} 
+\index{olc::TransformedView@{olc::TransformedView}!GetWorldOffset@{GetWorldOffset}}
+\index{GetWorldOffset@{GetWorldOffset}!olc::TransformedView@{olc::TransformedView}}
+\doxysubsubsection{\texorpdfstring{GetWorldOffset()}{GetWorldOffset()}}
+{\footnotesize\ttfamily const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}}\& olc\+::\+Transformed\+View\+::\+Get\+World\+Offset (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const}
+
+\mbox{\Hypertarget{classolc_1_1_transformed_view_a4f6ba5d2c58b720677f4287743713f65}\label{classolc_1_1_transformed_view_a4f6ba5d2c58b720677f4287743713f65}} 
+\index{olc::TransformedView@{olc::TransformedView}!GetWorldScale@{GetWorldScale}}
+\index{GetWorldScale@{GetWorldScale}!olc::TransformedView@{olc::TransformedView}}
+\doxysubsubsection{\texorpdfstring{GetWorldScale()}{GetWorldScale()}}
+{\footnotesize\ttfamily const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}}\& olc\+::\+Transformed\+View\+::\+Get\+World\+Scale (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const}
+
+\mbox{\Hypertarget{classolc_1_1_transformed_view_ac75bd045f9fbc5d8cd901ecdd216fcb5}\label{classolc_1_1_transformed_view_ac75bd045f9fbc5d8cd901ecdd216fcb5}} 
+\index{olc::TransformedView@{olc::TransformedView}!GetWorldTL@{GetWorldTL}}
+\index{GetWorldTL@{GetWorldTL}!olc::TransformedView@{olc::TransformedView}}
+\doxysubsubsection{\texorpdfstring{GetWorldTL()}{GetWorldTL()}}
+{\footnotesize\ttfamily \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} olc\+::\+Transformed\+View\+::\+Get\+World\+TL (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const}
+
+\mbox{\Hypertarget{classolc_1_1_transformed_view_a7f7815582a087a163199bb29f1c4c0ae}\label{classolc_1_1_transformed_view_a7f7815582a087a163199bb29f1c4c0ae}} 
+\index{olc::TransformedView@{olc::TransformedView}!GetWorldVisibleArea@{GetWorldVisibleArea}}
+\index{GetWorldVisibleArea@{GetWorldVisibleArea}!olc::TransformedView@{olc::TransformedView}}
+\doxysubsubsection{\texorpdfstring{GetWorldVisibleArea()}{GetWorldVisibleArea()}}
+{\footnotesize\ttfamily \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} olc\+::\+Transformed\+View\+::\+Get\+World\+Visible\+Area (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const}
+
+\mbox{\Hypertarget{classolc_1_1_transformed_view_a220b8b9184eb25a6bb2c3271d5417025}\label{classolc_1_1_transformed_view_a220b8b9184eb25a6bb2c3271d5417025}} 
+\index{olc::TransformedView@{olc::TransformedView}!GradientFillRectDecal@{GradientFillRectDecal}}
+\index{GradientFillRectDecal@{GradientFillRectDecal}!olc::TransformedView@{olc::TransformedView}}
+\doxysubsubsection{\texorpdfstring{GradientFillRectDecal()}{GradientFillRectDecal()}}
+{\footnotesize\ttfamily void olc\+::\+Transformed\+View\+::\+Gradient\+Fill\+Rect\+Decal (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&}]{pos,  }\item[{const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&}]{size,  }\item[{const \mbox{\hyperlink{structolc_1_1_pixel}{olc\+::\+Pixel}}}]{col\+TL,  }\item[{const \mbox{\hyperlink{structolc_1_1_pixel}{olc\+::\+Pixel}}}]{col\+BL,  }\item[{const \mbox{\hyperlink{structolc_1_1_pixel}{olc\+::\+Pixel}}}]{col\+BR,  }\item[{const \mbox{\hyperlink{structolc_1_1_pixel}{olc\+::\+Pixel}}}]{col\+TR }\end{DoxyParamCaption})}
+
+\mbox{\Hypertarget{classolc_1_1_transformed_view_a799473b80691228b87a818f80847ca76}\label{classolc_1_1_transformed_view_a799473b80691228b87a818f80847ca76}} 
+\index{olc::TransformedView@{olc::TransformedView}!Initialise@{Initialise}}
+\index{Initialise@{Initialise}!olc::TransformedView@{olc::TransformedView}}
+\doxysubsubsection{\texorpdfstring{Initialise()}{Initialise()}}
+{\footnotesize\ttfamily virtual void olc\+::\+Transformed\+View\+::\+Initialise (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{namespaceolc_a3c42697361e8a28424bcf8415aba3564}{olc\+::vi2d}} \&}]{v\+View\+Area,  }\item[{const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&}]{v\+Pixel\+Scale = {\ttfamily \{~1.0f,~1.0f~\}} }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}
+
+\mbox{\Hypertarget{classolc_1_1_transformed_view_a664ea0cbd54bbff17ea419ebfac1e359}\label{classolc_1_1_transformed_view_a664ea0cbd54bbff17ea419ebfac1e359}} 
+\index{olc::TransformedView@{olc::TransformedView}!IsPointVisible@{IsPointVisible}}
+\index{IsPointVisible@{IsPointVisible}!olc::TransformedView@{olc::TransformedView}}
+\doxysubsubsection{\texorpdfstring{IsPointVisible()}{IsPointVisible()}}
+{\footnotesize\ttfamily virtual bool olc\+::\+Transformed\+View\+::\+Is\+Point\+Visible (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&}]{v\+Pos }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [virtual]}}
+
+\mbox{\Hypertarget{classolc_1_1_transformed_view_aecadbbdf84343ec0a2f0e2e8c9017f0e}\label{classolc_1_1_transformed_view_aecadbbdf84343ec0a2f0e2e8c9017f0e}} 
+\index{olc::TransformedView@{olc::TransformedView}!IsRectVisible@{IsRectVisible}}
+\index{IsRectVisible@{IsRectVisible}!olc::TransformedView@{olc::TransformedView}}
+\doxysubsubsection{\texorpdfstring{IsRectVisible()}{IsRectVisible()}}
+{\footnotesize\ttfamily virtual bool olc\+::\+Transformed\+View\+::\+Is\+Rect\+Visible (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&}]{v\+Pos,  }\item[{const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&}]{v\+Size }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [virtual]}}
+
+\mbox{\Hypertarget{classolc_1_1_transformed_view_a154b34bc81f6e0c67579d2d2ee40b2d1}\label{classolc_1_1_transformed_view_a154b34bc81f6e0c67579d2d2ee40b2d1}} 
+\index{olc::TransformedView@{olc::TransformedView}!MoveWorldOffset@{MoveWorldOffset}}
+\index{MoveWorldOffset@{MoveWorldOffset}!olc::TransformedView@{olc::TransformedView}}
+\doxysubsubsection{\texorpdfstring{MoveWorldOffset()}{MoveWorldOffset()}}
+{\footnotesize\ttfamily void olc\+::\+Transformed\+View\+::\+Move\+World\+Offset (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&}]{v\+Delta\+Offset }\end{DoxyParamCaption})}
+
+\mbox{\Hypertarget{classolc_1_1_transformed_view_a8be86d8036bf635287debfcf2509e4c5}\label{classolc_1_1_transformed_view_a8be86d8036bf635287debfcf2509e4c5}} 
+\index{olc::TransformedView@{olc::TransformedView}!ScaleToScreen@{ScaleToScreen}}
+\index{ScaleToScreen@{ScaleToScreen}!olc::TransformedView@{olc::TransformedView}}
+\doxysubsubsection{\texorpdfstring{ScaleToScreen()}{ScaleToScreen()}}
+{\footnotesize\ttfamily virtual \mbox{\hyperlink{namespaceolc_a3c42697361e8a28424bcf8415aba3564}{olc\+::vi2d}} olc\+::\+Transformed\+View\+::\+Scale\+To\+Screen (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&}]{v\+World\+Size }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [virtual]}}
+
+\mbox{\Hypertarget{classolc_1_1_transformed_view_a09492f689459319994da4c9d0e0c2dc4}\label{classolc_1_1_transformed_view_a09492f689459319994da4c9d0e0c2dc4}} 
+\index{olc::TransformedView@{olc::TransformedView}!ScaleToWorld@{ScaleToWorld}}
+\index{ScaleToWorld@{ScaleToWorld}!olc::TransformedView@{olc::TransformedView}}
+\doxysubsubsection{\texorpdfstring{ScaleToWorld()}{ScaleToWorld()}}
+{\footnotesize\ttfamily virtual \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} olc\+::\+Transformed\+View\+::\+Scale\+To\+World (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{namespaceolc_a3c42697361e8a28424bcf8415aba3564}{olc\+::vi2d}} \&}]{v\+Screen\+Size }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [virtual]}}
+
+\mbox{\Hypertarget{classolc_1_1_transformed_view_a0f18594e00e7865fe4376761f9e20812}\label{classolc_1_1_transformed_view_a0f18594e00e7865fe4376761f9e20812}} 
+\index{olc::TransformedView@{olc::TransformedView}!ScreenToWorld@{ScreenToWorld}}
+\index{ScreenToWorld@{ScreenToWorld}!olc::TransformedView@{olc::TransformedView}}
+\doxysubsubsection{\texorpdfstring{ScreenToWorld()}{ScreenToWorld()}}
+{\footnotesize\ttfamily virtual \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} olc\+::\+Transformed\+View\+::\+Screen\+To\+World (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{namespaceolc_a3c42697361e8a28424bcf8415aba3564}{olc\+::vi2d}} \&}]{v\+Screen\+Pos }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [virtual]}}
+
+\mbox{\Hypertarget{classolc_1_1_transformed_view_ac7295e90921832fef16779172cc9e4ff}\label{classolc_1_1_transformed_view_ac7295e90921832fef16779172cc9e4ff}} 
+\index{olc::TransformedView@{olc::TransformedView}!SetViewArea@{SetViewArea}}
+\index{SetViewArea@{SetViewArea}!olc::TransformedView@{olc::TransformedView}}
+\doxysubsubsection{\texorpdfstring{SetViewArea()}{SetViewArea()}}
+{\footnotesize\ttfamily void olc\+::\+Transformed\+View\+::\+Set\+View\+Area (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{namespaceolc_a3c42697361e8a28424bcf8415aba3564}{olc\+::vi2d}} \&}]{v\+View\+Area }\end{DoxyParamCaption})}
+
+\mbox{\Hypertarget{classolc_1_1_transformed_view_aee86c84a719f8b5c3143e2a0b89e8024}\label{classolc_1_1_transformed_view_aee86c84a719f8b5c3143e2a0b89e8024}} 
+\index{olc::TransformedView@{olc::TransformedView}!SetWorldOffset@{SetWorldOffset}}
+\index{SetWorldOffset@{SetWorldOffset}!olc::TransformedView@{olc::TransformedView}}
+\doxysubsubsection{\texorpdfstring{SetWorldOffset()}{SetWorldOffset()}}
+{\footnotesize\ttfamily void olc\+::\+Transformed\+View\+::\+Set\+World\+Offset (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&}]{v\+Offset }\end{DoxyParamCaption})}
+
+\mbox{\Hypertarget{classolc_1_1_transformed_view_a971e25ee6978c271127f766aba69b285}\label{classolc_1_1_transformed_view_a971e25ee6978c271127f766aba69b285}} 
+\index{olc::TransformedView@{olc::TransformedView}!SetWorldScale@{SetWorldScale}}
+\index{SetWorldScale@{SetWorldScale}!olc::TransformedView@{olc::TransformedView}}
+\doxysubsubsection{\texorpdfstring{SetWorldScale()}{SetWorldScale()}}
+{\footnotesize\ttfamily void olc\+::\+Transformed\+View\+::\+Set\+World\+Scale (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&}]{v\+Scale }\end{DoxyParamCaption})}
+
+\mbox{\Hypertarget{classolc_1_1_transformed_view_a89fd4d642cf37d1e6f1674b870b142d8}\label{classolc_1_1_transformed_view_a89fd4d642cf37d1e6f1674b870b142d8}} 
+\index{olc::TransformedView@{olc::TransformedView}!SetZoom@{SetZoom}}
+\index{SetZoom@{SetZoom}!olc::TransformedView@{olc::TransformedView}}
+\doxysubsubsection{\texorpdfstring{SetZoom()}{SetZoom()}}
+{\footnotesize\ttfamily void olc\+::\+Transformed\+View\+::\+Set\+Zoom (\begin{DoxyParamCaption}\item[{const float}]{f\+Zoom,  }\item[{const \mbox{\hyperlink{namespaceolc_a3c42697361e8a28424bcf8415aba3564}{olc\+::vi2d}} \&}]{v\+Pos }\end{DoxyParamCaption})}
+
+\mbox{\Hypertarget{classolc_1_1_transformed_view_a4dc2bd0de3686978fdf8630d23a727c3}\label{classolc_1_1_transformed_view_a4dc2bd0de3686978fdf8630d23a727c3}} 
+\index{olc::TransformedView@{olc::TransformedView}!StartPan@{StartPan}}
+\index{StartPan@{StartPan}!olc::TransformedView@{olc::TransformedView}}
+\doxysubsubsection{\texorpdfstring{StartPan()}{StartPan()}}
+{\footnotesize\ttfamily void olc\+::\+Transformed\+View\+::\+Start\+Pan (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{namespaceolc_a3c42697361e8a28424bcf8415aba3564}{olc\+::vi2d}} \&}]{v\+Pos }\end{DoxyParamCaption})}
+
+\mbox{\Hypertarget{classolc_1_1_transformed_view_a4baf2b53892749ff380833991161b9c4}\label{classolc_1_1_transformed_view_a4baf2b53892749ff380833991161b9c4}} 
+\index{olc::TransformedView@{olc::TransformedView}!UpdatePan@{UpdatePan}}
+\index{UpdatePan@{UpdatePan}!olc::TransformedView@{olc::TransformedView}}
+\doxysubsubsection{\texorpdfstring{UpdatePan()}{UpdatePan()}}
+{\footnotesize\ttfamily void olc\+::\+Transformed\+View\+::\+Update\+Pan (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{namespaceolc_a3c42697361e8a28424bcf8415aba3564}{olc\+::vi2d}} \&}]{v\+Pos }\end{DoxyParamCaption})}
+
+\mbox{\Hypertarget{classolc_1_1_transformed_view_a18b18c9718c642ca912d44a133ffde1d}\label{classolc_1_1_transformed_view_a18b18c9718c642ca912d44a133ffde1d}} 
+\index{olc::TransformedView@{olc::TransformedView}!WorldToScreen@{WorldToScreen}}
+\index{WorldToScreen@{WorldToScreen}!olc::TransformedView@{olc::TransformedView}}
+\doxysubsubsection{\texorpdfstring{WorldToScreen()}{WorldToScreen()}}
+{\footnotesize\ttfamily virtual \mbox{\hyperlink{namespaceolc_a3c42697361e8a28424bcf8415aba3564}{olc\+::vi2d}} olc\+::\+Transformed\+View\+::\+World\+To\+Screen (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&}]{v\+World\+Pos }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [virtual]}}
+
+\mbox{\Hypertarget{classolc_1_1_transformed_view_a84a8b9030ac97afa9b6099dea5865b9c}\label{classolc_1_1_transformed_view_a84a8b9030ac97afa9b6099dea5865b9c}} 
+\index{olc::TransformedView@{olc::TransformedView}!ZoomAtScreenPos@{ZoomAtScreenPos}}
+\index{ZoomAtScreenPos@{ZoomAtScreenPos}!olc::TransformedView@{olc::TransformedView}}
+\doxysubsubsection{\texorpdfstring{ZoomAtScreenPos()}{ZoomAtScreenPos()}}
+{\footnotesize\ttfamily void olc\+::\+Transformed\+View\+::\+Zoom\+At\+Screen\+Pos (\begin{DoxyParamCaption}\item[{const float}]{f\+Delta\+Zoom,  }\item[{const \mbox{\hyperlink{namespaceolc_a3c42697361e8a28424bcf8415aba3564}{olc\+::vi2d}} \&}]{v\+Pos }\end{DoxyParamCaption})}
+
+
+
+\doxysubsection{Member Data Documentation}
+\mbox{\Hypertarget{classolc_1_1_transformed_view_a2c19ec65e54f43500cce003f878c8ed5}\label{classolc_1_1_transformed_view_a2c19ec65e54f43500cce003f878c8ed5}} 
+\index{olc::TransformedView@{olc::TransformedView}!m\_bPanning@{m\_bPanning}}
+\index{m\_bPanning@{m\_bPanning}!olc::TransformedView@{olc::TransformedView}}
+\doxysubsubsection{\texorpdfstring{m\_bPanning}{m\_bPanning}}
+{\footnotesize\ttfamily bool olc\+::\+Transformed\+View\+::m\+\_\+b\+Panning = false\hspace{0.3cm}{\ttfamily [protected]}}
+
+
+
+Definition at line 112 of file olc\+P\+G\+E\+X\+\_\+\+Transformed\+View.\+h.
+
+\mbox{\Hypertarget{classolc_1_1_transformed_view_a94a7fd3ad136ec70040bbff1c7133418}\label{classolc_1_1_transformed_view_a94a7fd3ad136ec70040bbff1c7133418}} 
+\index{olc::TransformedView@{olc::TransformedView}!m\_vPixelScale@{m\_vPixelScale}}
+\index{m\_vPixelScale@{m\_vPixelScale}!olc::TransformedView@{olc::TransformedView}}
+\doxysubsubsection{\texorpdfstring{m\_vPixelScale}{m\_vPixelScale}}
+{\footnotesize\ttfamily \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} olc\+::\+Transformed\+View\+::m\+\_\+v\+Pixel\+Scale = \{ 1.\+0f, 1.\+0f \}\hspace{0.3cm}{\ttfamily [protected]}}
+
+
+
+Definition at line 111 of file olc\+P\+G\+E\+X\+\_\+\+Transformed\+View.\+h.
+
+\mbox{\Hypertarget{classolc_1_1_transformed_view_ae1b7b82332f0979caa99e003827624cb}\label{classolc_1_1_transformed_view_ae1b7b82332f0979caa99e003827624cb}} 
+\index{olc::TransformedView@{olc::TransformedView}!m\_vRecipPixel@{m\_vRecipPixel}}
+\index{m\_vRecipPixel@{m\_vRecipPixel}!olc::TransformedView@{olc::TransformedView}}
+\doxysubsubsection{\texorpdfstring{m\_vRecipPixel}{m\_vRecipPixel}}
+{\footnotesize\ttfamily \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} olc\+::\+Transformed\+View\+::m\+\_\+v\+Recip\+Pixel = \{ 1.\+0f, 1.\+0f \}\hspace{0.3cm}{\ttfamily [protected]}}
+
+
+
+Definition at line 110 of file olc\+P\+G\+E\+X\+\_\+\+Transformed\+View.\+h.
+
+\mbox{\Hypertarget{classolc_1_1_transformed_view_a4f7569cc3d27120b485077789b86aa44}\label{classolc_1_1_transformed_view_a4f7569cc3d27120b485077789b86aa44}} 
+\index{olc::TransformedView@{olc::TransformedView}!m\_vStartPan@{m\_vStartPan}}
+\index{m\_vStartPan@{m\_vStartPan}!olc::TransformedView@{olc::TransformedView}}
+\doxysubsubsection{\texorpdfstring{m\_vStartPan}{m\_vStartPan}}
+{\footnotesize\ttfamily \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} olc\+::\+Transformed\+View\+::m\+\_\+v\+Start\+Pan = \{ 0.\+0f, 0.\+0f \}\hspace{0.3cm}{\ttfamily [protected]}}
+
+
+
+Definition at line 113 of file olc\+P\+G\+E\+X\+\_\+\+Transformed\+View.\+h.
+
+\mbox{\Hypertarget{classolc_1_1_transformed_view_a0a2936aac23f1621ff1d618c7155de1c}\label{classolc_1_1_transformed_view_a0a2936aac23f1621ff1d618c7155de1c}} 
+\index{olc::TransformedView@{olc::TransformedView}!m\_vViewArea@{m\_vViewArea}}
+\index{m\_vViewArea@{m\_vViewArea}!olc::TransformedView@{olc::TransformedView}}
+\doxysubsubsection{\texorpdfstring{m\_vViewArea}{m\_vViewArea}}
+{\footnotesize\ttfamily \mbox{\hyperlink{namespaceolc_a3c42697361e8a28424bcf8415aba3564}{olc\+::vi2d}} olc\+::\+Transformed\+View\+::m\+\_\+v\+View\+Area\hspace{0.3cm}{\ttfamily [protected]}}
+
+
+
+Definition at line 114 of file olc\+P\+G\+E\+X\+\_\+\+Transformed\+View.\+h.
+
+\mbox{\Hypertarget{classolc_1_1_transformed_view_a2e77497521f72e59ae7ecb56dc5d3f37}\label{classolc_1_1_transformed_view_a2e77497521f72e59ae7ecb56dc5d3f37}} 
+\index{olc::TransformedView@{olc::TransformedView}!m\_vWorldOffset@{m\_vWorldOffset}}
+\index{m\_vWorldOffset@{m\_vWorldOffset}!olc::TransformedView@{olc::TransformedView}}
+\doxysubsubsection{\texorpdfstring{m\_vWorldOffset}{m\_vWorldOffset}}
+{\footnotesize\ttfamily \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} olc\+::\+Transformed\+View\+::m\+\_\+v\+World\+Offset = \{ 0.\+0f, 0.\+0f \}\hspace{0.3cm}{\ttfamily [protected]}}
+
+
+
+Definition at line 108 of file olc\+P\+G\+E\+X\+\_\+\+Transformed\+View.\+h.
+
+\mbox{\Hypertarget{classolc_1_1_transformed_view_a652909b48a4d8960c36d1ce4262cc95a}\label{classolc_1_1_transformed_view_a652909b48a4d8960c36d1ce4262cc95a}} 
+\index{olc::TransformedView@{olc::TransformedView}!m\_vWorldScale@{m\_vWorldScale}}
+\index{m\_vWorldScale@{m\_vWorldScale}!olc::TransformedView@{olc::TransformedView}}
+\doxysubsubsection{\texorpdfstring{m\_vWorldScale}{m\_vWorldScale}}
+{\footnotesize\ttfamily \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} olc\+::\+Transformed\+View\+::m\+\_\+v\+World\+Scale = \{ 1.\+0f, 1.\+0f \}\hspace{0.3cm}{\ttfamily [protected]}}
+
+
+
+Definition at line 109 of file olc\+P\+G\+E\+X\+\_\+\+Transformed\+View.\+h.
+
+
+
+The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize}
+\item 
+C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\mbox{\hyperlink{olc_p_g_e_x___transformed_view_8h}{olc\+P\+G\+E\+X\+\_\+\+Transformed\+View.\+h}}\end{DoxyCompactItemize}
diff --git a/doxy/latex/classrender_1_1_character_texture.eps b/doxy/latex/classrender_1_1_character_texture.eps
new file mode 100644
index 0000000000000000000000000000000000000000..930c7ba50f0b8fa8bb2bc77f02a55e266427c2a0
--- /dev/null
+++ b/doxy/latex/classrender_1_1_character_texture.eps
@@ -0,0 +1,197 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: ClassName
+%%Creator: Doxygen
+%%CreationDate: Time
+%%For: 
+%Magnification: 1.00
+%%Orientation: Portrait
+%%BoundingBox: 0 0 500 245.398773
+%%Pages: 0
+%%BeginSetup
+%%EndSetup
+%%EndComments
+
+% ----- variables -----
+
+/boxwidth 0 def
+/boxheight 40 def
+/fontheight 24 def
+/marginwidth 10 def
+/distx 20 def
+/disty 40 def
+/boundaspect 2.037500 def  % aspect ratio of the BoundingBox (width/height)
+/boundx 500 def
+/boundy boundx boundaspect div def
+/xspacing 0 def
+/yspacing 0 def
+/rows 2 def
+/cols 1 def
+/scalefactor 0 def
+/boxfont /Times-Roman findfont fontheight scalefont def
+
+% ----- procedures -----
+
+/dotted { [1 4] 0 setdash } def
+/dashed { [5] 0 setdash } def
+/solid  { [] 0 setdash } def
+
+/max % result = MAX(arg1,arg2)
+{
+  /a exch def
+  /b exch def
+  a b gt {a} {b} ifelse
+} def
+
+/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)
+{
+  0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max
+} def
+
+/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))
+{
+  /str exch def
+  /boxwidth boxwidth str stringwidth pop max def
+} def
+
+/box % draws a box with text 'arg1' at grid pos (arg2,arg3)
+{ gsave
+  2 setlinewidth
+  newpath
+  exch xspacing mul xoffset add
+  exch yspacing mul
+  moveto
+  boxwidth 0 rlineto 
+  0 boxheight rlineto 
+  boxwidth neg 0 rlineto 
+  0 boxheight neg rlineto 
+  closepath
+  dup stringwidth pop neg boxwidth add 2 div
+  boxheight fontheight 2 div sub 2 div
+  rmoveto show stroke
+  grestore
+} def  
+
+/mark
+{ newpath
+  exch xspacing mul xoffset add boxwidth add
+  exch yspacing mul
+  moveto
+  0 boxheight 4 div rlineto
+  boxheight neg 4 div boxheight neg 4 div rlineto
+  closepath
+  eofill
+  stroke
+} def
+
+/arrow
+{ newpath
+  moveto
+  3 -8 rlineto
+  -6 0 rlineto
+  3 8 rlineto
+  closepath
+  eofill
+  stroke
+} def
+
+/out % draws an output connector for the block at (arg1,arg2)
+{
+  newpath
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul boxheight add
+  /y exch def
+  /x exch def
+  x y moveto
+  0 disty 2 div rlineto 
+  stroke
+  1 eq { x y disty 2 div add arrow } if
+} def
+
+/in % draws an input connector for the block at (arg1,arg2)
+{
+  newpath
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul disty 2 div sub
+  /y exch def
+  /x exch def
+  x y moveto
+  0 disty 2 div rlineto
+  stroke
+  1 eq { x y disty 2 div add arrow } if
+} def
+
+/hedge
+{
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul boxheight 2 div sub
+  /y exch def
+  /x exch def
+  newpath
+  x y moveto
+  boxwidth 2 div distx add 0 rlineto
+  stroke
+  1 eq
+  { newpath x boxwidth 2 div distx add add y moveto
+    -8 3 rlineto
+    0 -6 rlineto
+    8 3 rlineto
+    closepath
+    eofill
+    stroke
+  } if
+} def
+
+/vedge
+{
+  /ye exch def
+  /ys exch def
+  /xs exch def
+  newpath
+  xs xspacing mul xoffset add boxwidth 2 div add dup
+  ys yspacing mul boxheight 2 div sub
+  moveto
+  ye yspacing mul boxheight 2 div sub
+  lineto
+  stroke
+} def
+
+/conn % connections the blocks from col 'arg1' to 'arg2' of row 'arg3'
+{
+  /ys exch def
+  /xe exch def
+  /xs exch def
+  newpath
+  xs xspacing mul xoffset add boxwidth 2 div add
+  ys yspacing mul disty 2 div sub
+  moveto
+  xspacing xe xs sub mul 0
+  rlineto
+  stroke
+} def
+
+% ----- main ------
+
+boxfont setfont
+1 boundaspect scale
+(render::CharacterTexture) cw
+(render::ITexture) cw
+/boxwidth boxwidth marginwidth 2 mul add def
+/xspacing boxwidth distx add def
+/yspacing boxheight disty add def
+/scalefactor 
+  boxwidth cols mul distx cols 1 sub mul add
+  boxheight rows mul disty rows 1 sub mul add boundaspect mul 
+  max def
+boundx scalefactor div boundy scalefactor div scale
+
+% ----- classes -----
+
+ (render::CharacterTexture) 0.000000 0.000000 box
+ (render::ITexture) 0.000000 1.000000 box
+
+% ----- relations -----
+
+solid
+0 0.000000 0.000000 out
+solid
+1 0.000000 1.000000 in
diff --git a/doxy/latex/classrender_1_1_character_texture.tex b/doxy/latex/classrender_1_1_character_texture.tex
new file mode 100644
index 0000000000000000000000000000000000000000..7b2c978d58617db5cb0314b45eeb0d7173186226
--- /dev/null
+++ b/doxy/latex/classrender_1_1_character_texture.tex
@@ -0,0 +1,144 @@
+\hypertarget{classrender_1_1_character_texture}{}\doxysection{render\+::Character\+Texture Class Reference}
+\label{classrender_1_1_character_texture}\index{render::CharacterTexture@{render::CharacterTexture}}
+
+
+Texture for Character\+Entities.  
+
+
+
+
+{\ttfamily \#include $<$Character\+Texture.\+h$>$}
+
+Inheritance diagram for render\+::Character\+Texture\+:\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[height=2.000000cm]{classrender_1_1_character_texture}
+\end{center}
+\end{figure}
+\doxysubsection*{Public Member Functions}
+\begin{DoxyCompactItemize}
+\item 
+\mbox{\hyperlink{classrender_1_1_character_texture_a0e5cb130b98e46c9de43e274ca206d1b}{Character\+Texture}} (const std\+::string \&name, \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} size=\{16, 16\})
+\item 
+void \mbox{\hyperlink{classrender_1_1_character_texture_a16ced1889ccaf7ca4c913ec1475c2f9a}{render}} (\mbox{\hyperlink{classolc_1_1_transformed_view}{olc\+::\+Transformed\+View}} \&scene, \mbox{\hyperlink{classentities_1_1_entity}{entities\+::\+Entity}} \&entity) override
+\begin{DoxyCompactList}\small\item\em Throws a \mbox{\hyperlink{class_game_exception}{Game\+Exception}}, if we try to render a non-\/character entity with it. \end{DoxyCompactList}\end{DoxyCompactItemize}
+\doxysubsection*{Static Public Attributes}
+\begin{DoxyCompactItemize}
+\item 
+static \mbox{\hyperlink{classrender_1_1_character_texture}{Character\+Texture}} \mbox{\hyperlink{classrender_1_1_character_texture_a86b8570b892ad9e076b0dcc98e0190c3}{Engineer\+Texture}}
+\item 
+static \mbox{\hyperlink{classrender_1_1_character_texture}{Character\+Texture}} \mbox{\hyperlink{classrender_1_1_character_texture_a29faf07d6f3edb7d05ad4811613a9ded}{Mage\+Texture}}
+\item 
+static \mbox{\hyperlink{classrender_1_1_character_texture}{Character\+Texture}} \mbox{\hyperlink{classrender_1_1_character_texture_aa83fc0221f1d435820cd794cdb1b126e}{Paladin\+Texture}}
+\item 
+static \mbox{\hyperlink{classrender_1_1_character_texture}{Character\+Texture}} \mbox{\hyperlink{classrender_1_1_character_texture_a63149d0abd6b6c3fffac01f6bae855eb}{Warrior\+Texture}}
+\item 
+static \mbox{\hyperlink{classrender_1_1_character_texture}{Character\+Texture}} \mbox{\hyperlink{classrender_1_1_character_texture_a48e57b7a2864c6adb791b91a24b5daea}{Rouge\+Texture}}
+\end{DoxyCompactItemize}
+
+
+\doxysubsection{Detailed Description}
+Texture for Character\+Entities. 
+
+Definition at line 8 of file Character\+Texture.\+h.
+
+
+
+\doxysubsection{Constructor \& Destructor Documentation}
+\mbox{\Hypertarget{classrender_1_1_character_texture_a0e5cb130b98e46c9de43e274ca206d1b}\label{classrender_1_1_character_texture_a0e5cb130b98e46c9de43e274ca206d1b}} 
+\index{render::CharacterTexture@{render::CharacterTexture}!CharacterTexture@{CharacterTexture}}
+\index{CharacterTexture@{CharacterTexture}!render::CharacterTexture@{render::CharacterTexture}}
+\doxysubsubsection{\texorpdfstring{CharacterTexture()}{CharacterTexture()}}
+{\footnotesize\ttfamily render\+::\+Character\+Texture\+::\+Character\+Texture (\begin{DoxyParamCaption}\item[{const std\+::string \&}]{name,  }\item[{\mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}}}]{size = {\ttfamily \{16,~16\}} }\end{DoxyParamCaption})}
+
+
+
+Definition at line 11 of file Character\+Texture.\+cpp.
+
+
+
+\doxysubsection{Member Function Documentation}
+\mbox{\Hypertarget{classrender_1_1_character_texture_a16ced1889ccaf7ca4c913ec1475c2f9a}\label{classrender_1_1_character_texture_a16ced1889ccaf7ca4c913ec1475c2f9a}} 
+\index{render::CharacterTexture@{render::CharacterTexture}!render@{render}}
+\index{render@{render}!render::CharacterTexture@{render::CharacterTexture}}
+\doxysubsubsection{\texorpdfstring{render()}{render()}}
+{\footnotesize\ttfamily void render\+::\+Character\+Texture\+::render (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{classolc_1_1_transformed_view}{olc\+::\+Transformed\+View}} \&}]{scene,  }\item[{\mbox{\hyperlink{classentities_1_1_entity}{entities\+::\+Entity}} \&}]{entity }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [override]}, {\ttfamily [virtual]}}
+
+
+
+Throws a \mbox{\hyperlink{class_game_exception}{Game\+Exception}}, if we try to render a non-\/character entity with it. 
+
+
+\begin{DoxyParams}{Parameters}
+{\em scene} & scene \\
+\hline
+{\em entity} & a Character\+Entity \\
+\hline
+\end{DoxyParams}
+
+
+Implements \mbox{\hyperlink{classrender_1_1_i_texture_aedf64dab92f17e22a807635493196913}{render\+::\+I\+Texture}}.
+
+
+
+Definition at line 14 of file Character\+Texture.\+cpp.
+
+
+
+\doxysubsection{Member Data Documentation}
+\mbox{\Hypertarget{classrender_1_1_character_texture_a86b8570b892ad9e076b0dcc98e0190c3}\label{classrender_1_1_character_texture_a86b8570b892ad9e076b0dcc98e0190c3}} 
+\index{render::CharacterTexture@{render::CharacterTexture}!EngineerTexture@{EngineerTexture}}
+\index{EngineerTexture@{EngineerTexture}!render::CharacterTexture@{render::CharacterTexture}}
+\doxysubsubsection{\texorpdfstring{EngineerTexture}{EngineerTexture}}
+{\footnotesize\ttfamily \mbox{\hyperlink{classrender_1_1_character_texture}{Character\+Texture}} render\+::\+Character\+Texture\+::\+Engineer\+Texture\hspace{0.3cm}{\ttfamily [static]}}
+
+
+
+Definition at line 12 of file Character\+Texture.\+h.
+
+\mbox{\Hypertarget{classrender_1_1_character_texture_a29faf07d6f3edb7d05ad4811613a9ded}\label{classrender_1_1_character_texture_a29faf07d6f3edb7d05ad4811613a9ded}} 
+\index{render::CharacterTexture@{render::CharacterTexture}!MageTexture@{MageTexture}}
+\index{MageTexture@{MageTexture}!render::CharacterTexture@{render::CharacterTexture}}
+\doxysubsubsection{\texorpdfstring{MageTexture}{MageTexture}}
+{\footnotesize\ttfamily \mbox{\hyperlink{classrender_1_1_character_texture}{Character\+Texture}} render\+::\+Character\+Texture\+::\+Mage\+Texture\hspace{0.3cm}{\ttfamily [static]}}
+
+
+
+Definition at line 13 of file Character\+Texture.\+h.
+
+\mbox{\Hypertarget{classrender_1_1_character_texture_aa83fc0221f1d435820cd794cdb1b126e}\label{classrender_1_1_character_texture_aa83fc0221f1d435820cd794cdb1b126e}} 
+\index{render::CharacterTexture@{render::CharacterTexture}!PaladinTexture@{PaladinTexture}}
+\index{PaladinTexture@{PaladinTexture}!render::CharacterTexture@{render::CharacterTexture}}
+\doxysubsubsection{\texorpdfstring{PaladinTexture}{PaladinTexture}}
+{\footnotesize\ttfamily \mbox{\hyperlink{classrender_1_1_character_texture}{Character\+Texture}} render\+::\+Character\+Texture\+::\+Paladin\+Texture\hspace{0.3cm}{\ttfamily [static]}}
+
+
+
+Definition at line 14 of file Character\+Texture.\+h.
+
+\mbox{\Hypertarget{classrender_1_1_character_texture_a48e57b7a2864c6adb791b91a24b5daea}\label{classrender_1_1_character_texture_a48e57b7a2864c6adb791b91a24b5daea}} 
+\index{render::CharacterTexture@{render::CharacterTexture}!RougeTexture@{RougeTexture}}
+\index{RougeTexture@{RougeTexture}!render::CharacterTexture@{render::CharacterTexture}}
+\doxysubsubsection{\texorpdfstring{RougeTexture}{RougeTexture}}
+{\footnotesize\ttfamily \mbox{\hyperlink{classrender_1_1_character_texture}{Character\+Texture}} render\+::\+Character\+Texture\+::\+Rouge\+Texture\hspace{0.3cm}{\ttfamily [static]}}
+
+
+
+Definition at line 16 of file Character\+Texture.\+h.
+
+\mbox{\Hypertarget{classrender_1_1_character_texture_a63149d0abd6b6c3fffac01f6bae855eb}\label{classrender_1_1_character_texture_a63149d0abd6b6c3fffac01f6bae855eb}} 
+\index{render::CharacterTexture@{render::CharacterTexture}!WarriorTexture@{WarriorTexture}}
+\index{WarriorTexture@{WarriorTexture}!render::CharacterTexture@{render::CharacterTexture}}
+\doxysubsubsection{\texorpdfstring{WarriorTexture}{WarriorTexture}}
+{\footnotesize\ttfamily \mbox{\hyperlink{classrender_1_1_character_texture}{Character\+Texture}} render\+::\+Character\+Texture\+::\+Warrior\+Texture\hspace{0.3cm}{\ttfamily [static]}}
+
+
+
+Definition at line 15 of file Character\+Texture.\+h.
+
+
+
+The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize}
+\item 
+C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\mbox{\hyperlink{_character_texture_8h}{Character\+Texture.\+h}}\item 
+C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\mbox{\hyperlink{_character_texture_8cpp}{Character\+Texture.\+cpp}}\end{DoxyCompactItemize}
diff --git a/doxy/latex/classrender_1_1_i_texture.eps b/doxy/latex/classrender_1_1_i_texture.eps
new file mode 100644
index 0000000000000000000000000000000000000000..c7620a19cec8d2391572322e2e1708048a81aba6
--- /dev/null
+++ b/doxy/latex/classrender_1_1_i_texture.eps
@@ -0,0 +1,211 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: ClassName
+%%Creator: Doxygen
+%%CreationDate: Time
+%%For: 
+%Magnification: 1.00
+%%Orientation: Portrait
+%%BoundingBox: 0 0 500 61.349693
+%%Pages: 0
+%%BeginSetup
+%%EndSetup
+%%EndComments
+
+% ----- variables -----
+
+/boxwidth 0 def
+/boxheight 40 def
+/fontheight 24 def
+/marginwidth 10 def
+/distx 20 def
+/disty 40 def
+/boundaspect 8.150000 def  % aspect ratio of the BoundingBox (width/height)
+/boundx 500 def
+/boundy boundx boundaspect div def
+/xspacing 0 def
+/yspacing 0 def
+/rows 2 def
+/cols 4 def
+/scalefactor 0 def
+/boxfont /Times-Roman findfont fontheight scalefont def
+
+% ----- procedures -----
+
+/dotted { [1 4] 0 setdash } def
+/dashed { [5] 0 setdash } def
+/solid  { [] 0 setdash } def
+
+/max % result = MAX(arg1,arg2)
+{
+  /a exch def
+  /b exch def
+  a b gt {a} {b} ifelse
+} def
+
+/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)
+{
+  0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max
+} def
+
+/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))
+{
+  /str exch def
+  /boxwidth boxwidth str stringwidth pop max def
+} def
+
+/box % draws a box with text 'arg1' at grid pos (arg2,arg3)
+{ gsave
+  2 setlinewidth
+  newpath
+  exch xspacing mul xoffset add
+  exch yspacing mul
+  moveto
+  boxwidth 0 rlineto 
+  0 boxheight rlineto 
+  boxwidth neg 0 rlineto 
+  0 boxheight neg rlineto 
+  closepath
+  dup stringwidth pop neg boxwidth add 2 div
+  boxheight fontheight 2 div sub 2 div
+  rmoveto show stroke
+  grestore
+} def  
+
+/mark
+{ newpath
+  exch xspacing mul xoffset add boxwidth add
+  exch yspacing mul
+  moveto
+  0 boxheight 4 div rlineto
+  boxheight neg 4 div boxheight neg 4 div rlineto
+  closepath
+  eofill
+  stroke
+} def
+
+/arrow
+{ newpath
+  moveto
+  3 -8 rlineto
+  -6 0 rlineto
+  3 8 rlineto
+  closepath
+  eofill
+  stroke
+} def
+
+/out % draws an output connector for the block at (arg1,arg2)
+{
+  newpath
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul boxheight add
+  /y exch def
+  /x exch def
+  x y moveto
+  0 disty 2 div rlineto 
+  stroke
+  1 eq { x y disty 2 div add arrow } if
+} def
+
+/in % draws an input connector for the block at (arg1,arg2)
+{
+  newpath
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul disty 2 div sub
+  /y exch def
+  /x exch def
+  x y moveto
+  0 disty 2 div rlineto
+  stroke
+  1 eq { x y disty 2 div add arrow } if
+} def
+
+/hedge
+{
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul boxheight 2 div sub
+  /y exch def
+  /x exch def
+  newpath
+  x y moveto
+  boxwidth 2 div distx add 0 rlineto
+  stroke
+  1 eq
+  { newpath x boxwidth 2 div distx add add y moveto
+    -8 3 rlineto
+    0 -6 rlineto
+    8 3 rlineto
+    closepath
+    eofill
+    stroke
+  } if
+} def
+
+/vedge
+{
+  /ye exch def
+  /ys exch def
+  /xs exch def
+  newpath
+  xs xspacing mul xoffset add boxwidth 2 div add dup
+  ys yspacing mul boxheight 2 div sub
+  moveto
+  ye yspacing mul boxheight 2 div sub
+  lineto
+  stroke
+} def
+
+/conn % connections the blocks from col 'arg1' to 'arg2' of row 'arg3'
+{
+  /ys exch def
+  /xe exch def
+  /xs exch def
+  newpath
+  xs xspacing mul xoffset add boxwidth 2 div add
+  ys yspacing mul disty 2 div sub
+  moveto
+  xspacing xe xs sub mul 0
+  rlineto
+  stroke
+} def
+
+% ----- main ------
+
+boxfont setfont
+1 boundaspect scale
+(render::ITexture) cw
+(render::CharacterTexture) cw
+(render::SimpleSprite) cw
+(render::WallTexture) cw
+(weapons::GlitchTexture) cw
+/boxwidth boxwidth marginwidth 2 mul add def
+/xspacing boxwidth distx add def
+/yspacing boxheight disty add def
+/scalefactor 
+  boxwidth cols mul distx cols 1 sub mul add
+  boxheight rows mul disty rows 1 sub mul add boundaspect mul 
+  max def
+boundx scalefactor div boundy scalefactor div scale
+
+% ----- classes -----
+
+ (render::ITexture) 1.500000 1.000000 box
+ (render::CharacterTexture) 0.000000 0.000000 box
+ (render::SimpleSprite) 1.000000 0.000000 box
+ (render::WallTexture) 2.000000 0.000000 box
+ (weapons::GlitchTexture) 3.000000 0.000000 box
+
+% ----- relations -----
+
+solid
+1 1.500000 0.250000 out
+solid
+0.000000 3.000000 1.000000 conn
+solid
+0 0.000000 0.750000 in
+solid
+0 1.000000 0.750000 in
+solid
+0 2.000000 0.750000 in
+solid
+0 3.000000 0.750000 in
diff --git a/doxy/latex/classrender_1_1_i_texture.tex b/doxy/latex/classrender_1_1_i_texture.tex
new file mode 100644
index 0000000000000000000000000000000000000000..f62718e0c7a571bb360e684469c37317f2054977
--- /dev/null
+++ b/doxy/latex/classrender_1_1_i_texture.tex
@@ -0,0 +1,73 @@
+\hypertarget{classrender_1_1_i_texture}{}\doxysection{render\+::I\+Texture Class Reference}
+\label{classrender_1_1_i_texture}\index{render::ITexture@{render::ITexture}}
+
+
+Every texture, what can render an entity.  
+
+
+
+
+{\ttfamily \#include $<$I\+Texture.\+h$>$}
+
+Inheritance diagram for render\+::I\+Texture\+:\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[height=1.717791cm]{classrender_1_1_i_texture}
+\end{center}
+\end{figure}
+\doxysubsection*{Public Member Functions}
+\begin{DoxyCompactItemize}
+\item 
+virtual void \mbox{\hyperlink{classrender_1_1_i_texture_aedf64dab92f17e22a807635493196913}{render}} (\mbox{\hyperlink{classolc_1_1_transformed_view}{olc\+::\+Transformed\+View}} \&scene, \mbox{\hyperlink{classentities_1_1_entity}{entities\+::\+Entity}} \&entity)=0
+\begin{DoxyCompactList}\small\item\em Render the sprite, abstract function. \end{DoxyCompactList}\item 
+virtual \mbox{\hyperlink{classrender_1_1_i_texture_a2dcbcad96404d6a0ff64e8053ccde162}{$\sim$\+I\+Texture}} ()=default
+\begin{DoxyCompactList}\small\item\em mostly not needed, but I can never know it \end{DoxyCompactList}\end{DoxyCompactItemize}
+
+
+\doxysubsection{Detailed Description}
+Every texture, what can render an entity. 
+
+Definition at line 15 of file I\+Texture.\+h.
+
+
+
+\doxysubsection{Constructor \& Destructor Documentation}
+\mbox{\Hypertarget{classrender_1_1_i_texture_a2dcbcad96404d6a0ff64e8053ccde162}\label{classrender_1_1_i_texture_a2dcbcad96404d6a0ff64e8053ccde162}} 
+\index{render::ITexture@{render::ITexture}!````~ITexture@{$\sim$ITexture}}
+\index{````~ITexture@{$\sim$ITexture}!render::ITexture@{render::ITexture}}
+\doxysubsubsection{\texorpdfstring{$\sim$ITexture()}{~ITexture()}}
+{\footnotesize\ttfamily virtual render\+::\+I\+Texture\+::$\sim$\+I\+Texture (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}, {\ttfamily [default]}}
+
+
+
+mostly not needed, but I can never know it 
+
+
+
+\doxysubsection{Member Function Documentation}
+\mbox{\Hypertarget{classrender_1_1_i_texture_aedf64dab92f17e22a807635493196913}\label{classrender_1_1_i_texture_aedf64dab92f17e22a807635493196913}} 
+\index{render::ITexture@{render::ITexture}!render@{render}}
+\index{render@{render}!render::ITexture@{render::ITexture}}
+\doxysubsubsection{\texorpdfstring{render()}{render()}}
+{\footnotesize\ttfamily virtual void render\+::\+I\+Texture\+::render (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{classolc_1_1_transformed_view}{olc\+::\+Transformed\+View}} \&}]{scene,  }\item[{\mbox{\hyperlink{classentities_1_1_entity}{entities\+::\+Entity}} \&}]{entity }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [pure virtual]}}
+
+
+
+Render the sprite, abstract function. 
+
+
+\begin{DoxyParams}{Parameters}
+{\em scene} & view description \\
+\hline
+{\em entity} & entity to render with this texture \\
+\hline
+\end{DoxyParams}
+
+
+Implemented in \mbox{\hyperlink{classweapons_1_1_glitch_texture_a5484c864f917e54fb6041b7d0d33ef42}{weapons\+::\+Glitch\+Texture}}, \mbox{\hyperlink{classrender_1_1_wall_texture_a03239c7168e114906cb20f3d39815344}{render\+::\+Wall\+Texture}}, \mbox{\hyperlink{classrender_1_1_simple_sprite_aaed7cf3094f69387291a2d287d7753a5}{render\+::\+Simple\+Sprite}}, and \mbox{\hyperlink{classrender_1_1_character_texture_a16ced1889ccaf7ca4c913ec1475c2f9a}{render\+::\+Character\+Texture}}.
+
+
+
+The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize}
+\item 
+C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\mbox{\hyperlink{_i_texture_8h}{I\+Texture.\+h}}\end{DoxyCompactItemize}
diff --git a/doxy/latex/classrender_1_1_lazy_sprite.tex b/doxy/latex/classrender_1_1_lazy_sprite.tex
new file mode 100644
index 0000000000000000000000000000000000000000..8448749eafaad7507824141193faa92fb5bf48cb
--- /dev/null
+++ b/doxy/latex/classrender_1_1_lazy_sprite.tex
@@ -0,0 +1,140 @@
+\hypertarget{classrender_1_1_lazy_sprite}{}\doxysection{render\+::Lazy\+Sprite Class Reference}
+\label{classrender_1_1_lazy_sprite}\index{render::LazySprite@{render::LazySprite}}
+
+
+Refer to one texture, not animated, not modifiable, just a simple image. Lazy loading means, it will load it only, when you\textquotesingle{}re trying to use it.  
+
+
+
+
+{\ttfamily \#include $<$Lazy\+Sprite.\+h$>$}
+
+\doxysubsection*{Public Member Functions}
+\begin{DoxyCompactItemize}
+\item 
+\mbox{\hyperlink{classrender_1_1_lazy_sprite_a28a8d429dc27035aa9a09151aa150b0a}{Lazy\+Sprite}} (const std\+::string \&res\+Name)
+\item 
+void \mbox{\hyperlink{classrender_1_1_lazy_sprite_a3e2884ba94b5f6bbe9061c5a44ca6a23}{render}} (\mbox{\hyperlink{classolc_1_1_transformed_view}{olc\+::\+Transformed\+View}} \&scene, const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&pos, const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&uv, const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&size, \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} scale=\mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}}(1, 1))
+\begin{DoxyCompactList}\small\item\em Renders the sprite into the world. \end{DoxyCompactList}\item 
+void \mbox{\hyperlink{classrender_1_1_lazy_sprite_a1e0b32f06c67b96eed8da12747aa4f0a}{render\+Centered}} (\mbox{\hyperlink{classolc_1_1_transformed_view}{olc\+::\+Transformed\+View}} \&scene, const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&pos, const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&uv, const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&size, \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} scale=\mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}}(1, 1))
+\begin{DoxyCompactList}\small\item\em Render, but pos in the center. \end{DoxyCompactList}\end{DoxyCompactItemize}
+\doxysubsection*{Protected Member Functions}
+\begin{DoxyCompactItemize}
+\item 
+\mbox{\hyperlink{classolc_1_1_decal}{olc\+::\+Decal}} $\ast$ \mbox{\hyperlink{classrender_1_1_lazy_sprite_aea6cdfcf5295c8a2c4b3f4a51ee0bc28}{get\+Decal}} ()
+\begin{DoxyCompactList}\small\item\em get an old\+::\+Decal \end{DoxyCompactList}\end{DoxyCompactItemize}
+\doxysubsection*{Protected Attributes}
+\begin{DoxyCompactItemize}
+\item 
+const std\+::string \mbox{\hyperlink{classrender_1_1_lazy_sprite_a67a794671efc86ea29921c0e5934377e}{resource\+Name}}
+\end{DoxyCompactItemize}
+
+
+\doxysubsection{Detailed Description}
+Refer to one texture, not animated, not modifiable, just a simple image. Lazy loading means, it will load it only, when you\textquotesingle{}re trying to use it. 
+
+Definition at line 13 of file Lazy\+Sprite.\+h.
+
+
+
+\doxysubsection{Constructor \& Destructor Documentation}
+\mbox{\Hypertarget{classrender_1_1_lazy_sprite_a28a8d429dc27035aa9a09151aa150b0a}\label{classrender_1_1_lazy_sprite_a28a8d429dc27035aa9a09151aa150b0a}} 
+\index{render::LazySprite@{render::LazySprite}!LazySprite@{LazySprite}}
+\index{LazySprite@{LazySprite}!render::LazySprite@{render::LazySprite}}
+\doxysubsubsection{\texorpdfstring{LazySprite()}{LazySprite()}}
+{\footnotesize\ttfamily render\+::\+Lazy\+Sprite\+::\+Lazy\+Sprite (\begin{DoxyParamCaption}\item[{const std\+::string \&}]{res\+Name }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [explicit]}}
+
+u, v the texture coordinates on the image, sizeU, V are the size of that sprite 
+
+Definition at line 15 of file Lazy\+Sprite.\+cpp.
+
+
+
+\doxysubsection{Member Function Documentation}
+\mbox{\Hypertarget{classrender_1_1_lazy_sprite_aea6cdfcf5295c8a2c4b3f4a51ee0bc28}\label{classrender_1_1_lazy_sprite_aea6cdfcf5295c8a2c4b3f4a51ee0bc28}} 
+\index{render::LazySprite@{render::LazySprite}!getDecal@{getDecal}}
+\index{getDecal@{getDecal}!render::LazySprite@{render::LazySprite}}
+\doxysubsubsection{\texorpdfstring{getDecal()}{getDecal()}}
+{\footnotesize\ttfamily \mbox{\hyperlink{classolc_1_1_decal}{olc\+::\+Decal}} $\ast$ render\+::\+Lazy\+Sprite\+::get\+Decal (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [protected]}}
+
+
+
+get an old\+::\+Decal 
+
+
+
+Definition at line 6 of file Lazy\+Sprite.\+cpp.
+
+\mbox{\Hypertarget{classrender_1_1_lazy_sprite_a3e2884ba94b5f6bbe9061c5a44ca6a23}\label{classrender_1_1_lazy_sprite_a3e2884ba94b5f6bbe9061c5a44ca6a23}} 
+\index{render::LazySprite@{render::LazySprite}!render@{render}}
+\index{render@{render}!render::LazySprite@{render::LazySprite}}
+\doxysubsubsection{\texorpdfstring{render()}{render()}}
+{\footnotesize\ttfamily void render\+::\+Lazy\+Sprite\+::render (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{classolc_1_1_transformed_view}{olc\+::\+Transformed\+View}} \&}]{scene,  }\item[{const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&}]{pos,  }\item[{const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&}]{uv,  }\item[{const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&}]{size,  }\item[{\mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}}}]{scale = {\ttfamily \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}}(1,~1)} }\end{DoxyParamCaption})}
+
+
+
+Renders the sprite into the world. 
+
+
+\begin{DoxyParams}{Parameters}
+{\em scene} & \mbox{\hyperlink{classolc_1_1_transformed_view}{olc\+::\+Transformed\+View}} scene \\
+\hline
+{\em pos} & the in-\/world pos \\
+\hline
+{\em uv} & texture uv pos \\
+\hline
+{\em size} & texture size \\
+\hline
+{\em scale} & scale, 1 by default \\
+\hline
+\end{DoxyParams}
+
+
+Definition at line 19 of file Lazy\+Sprite.\+cpp.
+
+\mbox{\Hypertarget{classrender_1_1_lazy_sprite_a1e0b32f06c67b96eed8da12747aa4f0a}\label{classrender_1_1_lazy_sprite_a1e0b32f06c67b96eed8da12747aa4f0a}} 
+\index{render::LazySprite@{render::LazySprite}!renderCentered@{renderCentered}}
+\index{renderCentered@{renderCentered}!render::LazySprite@{render::LazySprite}}
+\doxysubsubsection{\texorpdfstring{renderCentered()}{renderCentered()}}
+{\footnotesize\ttfamily void render\+::\+Lazy\+Sprite\+::render\+Centered (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{classolc_1_1_transformed_view}{olc\+::\+Transformed\+View}} \&}]{scene,  }\item[{const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&}]{pos,  }\item[{const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&}]{uv,  }\item[{const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&}]{size,  }\item[{\mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}}}]{scale = {\ttfamily \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}}(1,~1)} }\end{DoxyParamCaption})}
+
+
+
+Render, but pos in the center. 
+
+
+\begin{DoxyParams}{Parameters}
+{\em scene} & \mbox{\hyperlink{classolc_1_1_transformed_view}{olc\+::\+Transformed\+View}} scene \\
+\hline
+{\em pos} & the in-\/world pos \\
+\hline
+{\em uv} & texture uv pos \\
+\hline
+{\em size} & texture size \\
+\hline
+{\em scale} & scale, 1 by default \\
+\hline
+\end{DoxyParams}
+
+
+Definition at line 25 of file Lazy\+Sprite.\+cpp.
+
+
+
+\doxysubsection{Member Data Documentation}
+\mbox{\Hypertarget{classrender_1_1_lazy_sprite_a67a794671efc86ea29921c0e5934377e}\label{classrender_1_1_lazy_sprite_a67a794671efc86ea29921c0e5934377e}} 
+\index{render::LazySprite@{render::LazySprite}!resourceName@{resourceName}}
+\index{resourceName@{resourceName}!render::LazySprite@{render::LazySprite}}
+\doxysubsubsection{\texorpdfstring{resourceName}{resourceName}}
+{\footnotesize\ttfamily const std\+::string render\+::\+Lazy\+Sprite\+::resource\+Name\hspace{0.3cm}{\ttfamily [protected]}}
+
+
+
+Definition at line 19 of file Lazy\+Sprite.\+h.
+
+
+
+The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize}
+\item 
+C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\mbox{\hyperlink{_lazy_sprite_8h}{Lazy\+Sprite.\+h}}\item 
+C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\mbox{\hyperlink{_lazy_sprite_8cpp}{Lazy\+Sprite.\+cpp}}\end{DoxyCompactItemize}
diff --git a/doxy/latex/classrender_1_1_resource_manager.tex b/doxy/latex/classrender_1_1_resource_manager.tex
new file mode 100644
index 0000000000000000000000000000000000000000..3deb2522ca542e43b0b225adc68507f45e2bcccc
--- /dev/null
+++ b/doxy/latex/classrender_1_1_resource_manager.tex
@@ -0,0 +1,124 @@
+\hypertarget{classrender_1_1_resource_manager}{}\doxysection{render\+::Resource\+Manager Class Reference}
+\label{classrender_1_1_resource_manager}\index{render::ResourceManager@{render::ResourceManager}}
+
+
+Load every sprite only once, act as a set for loaded textures.  
+
+
+
+
+{\ttfamily \#include $<$Resource\+Manager.\+h$>$}
+
+\doxysubsection*{Public Member Functions}
+\begin{DoxyCompactItemize}
+\item 
+\mbox{\hyperlink{classolc_1_1_decal}{olc\+::\+Decal}} $\ast$ \mbox{\hyperlink{classrender_1_1_resource_manager_a58cd141c758a19c7a04b33742de422f8}{get\+Decal}} (const std\+::string \&string)
+\begin{DoxyCompactList}\small\item\em used by Get\+Sprite \end{DoxyCompactList}\item 
+\mbox{\hyperlink{classolc_1_1_decal}{olc\+::\+Decal}} $\ast$ \mbox{\hyperlink{classrender_1_1_resource_manager_aec5833434ea7432806785ae0ce1e1d91}{operator\mbox{[}$\,$\mbox{]}}} (const std\+::string \&key)
+\begin{DoxyCompactList}\small\item\em indexing operator \+:D \end{DoxyCompactList}\item 
+\mbox{\hyperlink{classrender_1_1_resource_manager_a718ece71d629e1fd5b4b3afc967d4381}{$\sim$\+Resource\+Manager}} ()
+\end{DoxyCompactItemize}
+\doxysubsection*{Static Public Member Functions}
+\begin{DoxyCompactItemize}
+\item 
+static void \mbox{\hyperlink{classrender_1_1_resource_manager_abdb364e2b932233c873a98a1b5c03d2a}{create\+Instance}} (std\+::string $\ast$parent=nullptr)
+\item 
+static \mbox{\hyperlink{classolc_1_1_decal}{olc\+::\+Decal}} $\ast$ \mbox{\hyperlink{classrender_1_1_resource_manager_a4ac8358921fdda1f37bf4564855f6fce}{get\+Sprite}} (const std\+::string \&key)
+\begin{DoxyCompactList}\small\item\em get a sprite, it it\textquotesingle{}s already loaded, doesn\textquotesingle{}t load it again \end{DoxyCompactList}\end{DoxyCompactItemize}
+
+
+\doxysubsection{Detailed Description}
+Load every sprite only once, act as a set for loaded textures. 
+
+Definition at line 14 of file Resource\+Manager.\+h.
+
+
+
+\doxysubsection{Constructor \& Destructor Documentation}
+\mbox{\Hypertarget{classrender_1_1_resource_manager_a718ece71d629e1fd5b4b3afc967d4381}\label{classrender_1_1_resource_manager_a718ece71d629e1fd5b4b3afc967d4381}} 
+\index{render::ResourceManager@{render::ResourceManager}!````~ResourceManager@{$\sim$ResourceManager}}
+\index{````~ResourceManager@{$\sim$ResourceManager}!render::ResourceManager@{render::ResourceManager}}
+\doxysubsubsection{\texorpdfstring{$\sim$ResourceManager()}{~ResourceManager()}}
+{\footnotesize\ttfamily render\+::\+Resource\+Manager\+::$\sim$\+Resource\+Manager (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}
+
+
+
+Definition at line 17 of file Resource\+Manager.\+cpp.
+
+
+
+\doxysubsection{Member Function Documentation}
+\mbox{\Hypertarget{classrender_1_1_resource_manager_abdb364e2b932233c873a98a1b5c03d2a}\label{classrender_1_1_resource_manager_abdb364e2b932233c873a98a1b5c03d2a}} 
+\index{render::ResourceManager@{render::ResourceManager}!createInstance@{createInstance}}
+\index{createInstance@{createInstance}!render::ResourceManager@{render::ResourceManager}}
+\doxysubsubsection{\texorpdfstring{createInstance()}{createInstance()}}
+{\footnotesize\ttfamily void render\+::\+Resource\+Manager\+::create\+Instance (\begin{DoxyParamCaption}\item[{std\+::string $\ast$}]{parent = {\ttfamily nullptr} }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}
+
+Todo add parameters 
+
+Definition at line 38 of file Resource\+Manager.\+cpp.
+
+\mbox{\Hypertarget{classrender_1_1_resource_manager_a58cd141c758a19c7a04b33742de422f8}\label{classrender_1_1_resource_manager_a58cd141c758a19c7a04b33742de422f8}} 
+\index{render::ResourceManager@{render::ResourceManager}!getDecal@{getDecal}}
+\index{getDecal@{getDecal}!render::ResourceManager@{render::ResourceManager}}
+\doxysubsubsection{\texorpdfstring{getDecal()}{getDecal()}}
+{\footnotesize\ttfamily \mbox{\hyperlink{classolc_1_1_decal}{olc\+::\+Decal}} $\ast$ render\+::\+Resource\+Manager\+::get\+Decal (\begin{DoxyParamCaption}\item[{const std\+::string \&}]{string }\end{DoxyParamCaption})}
+
+
+
+used by Get\+Sprite 
+
+
+\begin{DoxyParams}{Parameters}
+{\em string} & asd \\
+\hline
+\end{DoxyParams}
+\begin{DoxyReturn}{Returns}
+the sprite 
+\end{DoxyReturn}
+
+
+Definition at line 8 of file Resource\+Manager.\+cpp.
+
+\mbox{\Hypertarget{classrender_1_1_resource_manager_a4ac8358921fdda1f37bf4564855f6fce}\label{classrender_1_1_resource_manager_a4ac8358921fdda1f37bf4564855f6fce}} 
+\index{render::ResourceManager@{render::ResourceManager}!getSprite@{getSprite}}
+\index{getSprite@{getSprite}!render::ResourceManager@{render::ResourceManager}}
+\doxysubsubsection{\texorpdfstring{getSprite()}{getSprite()}}
+{\footnotesize\ttfamily \mbox{\hyperlink{classolc_1_1_decal}{olc\+::\+Decal}} $\ast$ render\+::\+Resource\+Manager\+::get\+Sprite (\begin{DoxyParamCaption}\item[{const std\+::string \&}]{key }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}
+
+
+
+get a sprite, it it\textquotesingle{}s already loaded, doesn\textquotesingle{}t load it again 
+
+
+\begin{DoxyParams}{Parameters}
+{\em key} & string sprite key \\
+\hline
+\end{DoxyParams}
+\begin{DoxyReturn}{Returns}
+the sprite 
+\end{DoxyReturn}
+
+
+Definition at line 46 of file Resource\+Manager.\+cpp.
+
+\mbox{\Hypertarget{classrender_1_1_resource_manager_aec5833434ea7432806785ae0ce1e1d91}\label{classrender_1_1_resource_manager_aec5833434ea7432806785ae0ce1e1d91}} 
+\index{render::ResourceManager@{render::ResourceManager}!operator\mbox{[}\mbox{]}@{operator[]}}
+\index{operator\mbox{[}\mbox{]}@{operator[]}!render::ResourceManager@{render::ResourceManager}}
+\doxysubsubsection{\texorpdfstring{operator[]()}{operator[]()}}
+{\footnotesize\ttfamily \mbox{\hyperlink{classolc_1_1_decal}{olc\+::\+Decal}} $\ast$ render\+::\+Resource\+Manager\+::operator\mbox{[}$\,$\mbox{]} (\begin{DoxyParamCaption}\item[{const std\+::string \&}]{key }\end{DoxyParamCaption})}
+
+
+
+indexing operator \+:D 
+
+
+
+Definition at line 29 of file Resource\+Manager.\+cpp.
+
+
+
+The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize}
+\item 
+C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\mbox{\hyperlink{_resource_manager_8h}{Resource\+Manager.\+h}}\item 
+C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\mbox{\hyperlink{_resource_manager_8cpp}{Resource\+Manager.\+cpp}}\end{DoxyCompactItemize}
diff --git a/doxy/latex/classrender_1_1_simple_sprite.eps b/doxy/latex/classrender_1_1_simple_sprite.eps
new file mode 100644
index 0000000000000000000000000000000000000000..1b0b3227a93cd244ce189d6f5c98c03a01e12728
--- /dev/null
+++ b/doxy/latex/classrender_1_1_simple_sprite.eps
@@ -0,0 +1,197 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: ClassName
+%%Creator: Doxygen
+%%CreationDate: Time
+%%For: 
+%Magnification: 1.00
+%%Orientation: Portrait
+%%BoundingBox: 0 0 500 298.507477
+%%Pages: 0
+%%BeginSetup
+%%EndSetup
+%%EndComments
+
+% ----- variables -----
+
+/boxwidth 0 def
+/boxheight 40 def
+/fontheight 24 def
+/marginwidth 10 def
+/distx 20 def
+/disty 40 def
+/boundaspect 1.675000 def  % aspect ratio of the BoundingBox (width/height)
+/boundx 500 def
+/boundy boundx boundaspect div def
+/xspacing 0 def
+/yspacing 0 def
+/rows 2 def
+/cols 1 def
+/scalefactor 0 def
+/boxfont /Times-Roman findfont fontheight scalefont def
+
+% ----- procedures -----
+
+/dotted { [1 4] 0 setdash } def
+/dashed { [5] 0 setdash } def
+/solid  { [] 0 setdash } def
+
+/max % result = MAX(arg1,arg2)
+{
+  /a exch def
+  /b exch def
+  a b gt {a} {b} ifelse
+} def
+
+/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)
+{
+  0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max
+} def
+
+/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))
+{
+  /str exch def
+  /boxwidth boxwidth str stringwidth pop max def
+} def
+
+/box % draws a box with text 'arg1' at grid pos (arg2,arg3)
+{ gsave
+  2 setlinewidth
+  newpath
+  exch xspacing mul xoffset add
+  exch yspacing mul
+  moveto
+  boxwidth 0 rlineto 
+  0 boxheight rlineto 
+  boxwidth neg 0 rlineto 
+  0 boxheight neg rlineto 
+  closepath
+  dup stringwidth pop neg boxwidth add 2 div
+  boxheight fontheight 2 div sub 2 div
+  rmoveto show stroke
+  grestore
+} def  
+
+/mark
+{ newpath
+  exch xspacing mul xoffset add boxwidth add
+  exch yspacing mul
+  moveto
+  0 boxheight 4 div rlineto
+  boxheight neg 4 div boxheight neg 4 div rlineto
+  closepath
+  eofill
+  stroke
+} def
+
+/arrow
+{ newpath
+  moveto
+  3 -8 rlineto
+  -6 0 rlineto
+  3 8 rlineto
+  closepath
+  eofill
+  stroke
+} def
+
+/out % draws an output connector for the block at (arg1,arg2)
+{
+  newpath
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul boxheight add
+  /y exch def
+  /x exch def
+  x y moveto
+  0 disty 2 div rlineto 
+  stroke
+  1 eq { x y disty 2 div add arrow } if
+} def
+
+/in % draws an input connector for the block at (arg1,arg2)
+{
+  newpath
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul disty 2 div sub
+  /y exch def
+  /x exch def
+  x y moveto
+  0 disty 2 div rlineto
+  stroke
+  1 eq { x y disty 2 div add arrow } if
+} def
+
+/hedge
+{
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul boxheight 2 div sub
+  /y exch def
+  /x exch def
+  newpath
+  x y moveto
+  boxwidth 2 div distx add 0 rlineto
+  stroke
+  1 eq
+  { newpath x boxwidth 2 div distx add add y moveto
+    -8 3 rlineto
+    0 -6 rlineto
+    8 3 rlineto
+    closepath
+    eofill
+    stroke
+  } if
+} def
+
+/vedge
+{
+  /ye exch def
+  /ys exch def
+  /xs exch def
+  newpath
+  xs xspacing mul xoffset add boxwidth 2 div add dup
+  ys yspacing mul boxheight 2 div sub
+  moveto
+  ye yspacing mul boxheight 2 div sub
+  lineto
+  stroke
+} def
+
+/conn % connections the blocks from col 'arg1' to 'arg2' of row 'arg3'
+{
+  /ys exch def
+  /xe exch def
+  /xs exch def
+  newpath
+  xs xspacing mul xoffset add boxwidth 2 div add
+  ys yspacing mul disty 2 div sub
+  moveto
+  xspacing xe xs sub mul 0
+  rlineto
+  stroke
+} def
+
+% ----- main ------
+
+boxfont setfont
+1 boundaspect scale
+(render::SimpleSprite) cw
+(render::ITexture) cw
+/boxwidth boxwidth marginwidth 2 mul add def
+/xspacing boxwidth distx add def
+/yspacing boxheight disty add def
+/scalefactor 
+  boxwidth cols mul distx cols 1 sub mul add
+  boxheight rows mul disty rows 1 sub mul add boundaspect mul 
+  max def
+boundx scalefactor div boundy scalefactor div scale
+
+% ----- classes -----
+
+ (render::SimpleSprite) 0.000000 0.000000 box
+ (render::ITexture) 0.000000 1.000000 box
+
+% ----- relations -----
+
+solid
+0 0.000000 0.000000 out
+solid
+1 0.000000 1.000000 in
diff --git a/doxy/latex/classrender_1_1_simple_sprite.tex b/doxy/latex/classrender_1_1_simple_sprite.tex
new file mode 100644
index 0000000000000000000000000000000000000000..d49bf22828902206203e01f667c900e67ede5fea
--- /dev/null
+++ b/doxy/latex/classrender_1_1_simple_sprite.tex
@@ -0,0 +1,78 @@
+\hypertarget{classrender_1_1_simple_sprite}{}\doxysection{render\+::Simple\+Sprite Class Reference}
+\label{classrender_1_1_simple_sprite}\index{render::SimpleSprite@{render::SimpleSprite}}
+
+
+Simplest useable texture.  
+
+
+
+
+{\ttfamily \#include $<$Simple\+Sprite.\+h$>$}
+
+Inheritance diagram for render\+::Simple\+Sprite\+:\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[height=2.000000cm]{classrender_1_1_simple_sprite}
+\end{center}
+\end{figure}
+\doxysubsection*{Public Member Functions}
+\begin{DoxyCompactItemize}
+\item 
+\mbox{\hyperlink{classrender_1_1_simple_sprite_af16d9ee29214a89a6ebe404a73ea5cad}{Simple\+Sprite}} (const std\+::string \&name, const \mbox{\hyperlink{namespaceolc_a3c42697361e8a28424bcf8415aba3564}{olc\+::vi2d}} \&pos=\{ 0, 0 \}, const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&size=\{ 16, 16 \})
+\item 
+void \mbox{\hyperlink{classrender_1_1_simple_sprite_aaed7cf3094f69387291a2d287d7753a5}{render}} (\mbox{\hyperlink{classolc_1_1_transformed_view}{olc\+::\+Transformed\+View}} \&scene, \mbox{\hyperlink{classentities_1_1_entity}{entities\+::\+Entity}} \&entity) override
+\begin{DoxyCompactList}\small\item\em Render the sprite, abstract function. \end{DoxyCompactList}\end{DoxyCompactItemize}
+
+
+\doxysubsection{Detailed Description}
+Simplest useable texture. 
+
+Definition at line 11 of file Simple\+Sprite.\+h.
+
+
+
+\doxysubsection{Constructor \& Destructor Documentation}
+\mbox{\Hypertarget{classrender_1_1_simple_sprite_af16d9ee29214a89a6ebe404a73ea5cad}\label{classrender_1_1_simple_sprite_af16d9ee29214a89a6ebe404a73ea5cad}} 
+\index{render::SimpleSprite@{render::SimpleSprite}!SimpleSprite@{SimpleSprite}}
+\index{SimpleSprite@{SimpleSprite}!render::SimpleSprite@{render::SimpleSprite}}
+\doxysubsubsection{\texorpdfstring{SimpleSprite()}{SimpleSprite()}}
+{\footnotesize\ttfamily render\+::\+Simple\+Sprite\+::\+Simple\+Sprite (\begin{DoxyParamCaption}\item[{const std\+::string \&}]{name,  }\item[{const \mbox{\hyperlink{namespaceolc_a3c42697361e8a28424bcf8415aba3564}{olc\+::vi2d}} \&}]{pos = {\ttfamily \{~0,~0~\}},  }\item[{const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&}]{size = {\ttfamily \{~16,~16~\}} }\end{DoxyParamCaption})}
+
+
+
+Definition at line 6 of file Simple\+Sprite.\+cpp.
+
+
+
+\doxysubsection{Member Function Documentation}
+\mbox{\Hypertarget{classrender_1_1_simple_sprite_aaed7cf3094f69387291a2d287d7753a5}\label{classrender_1_1_simple_sprite_aaed7cf3094f69387291a2d287d7753a5}} 
+\index{render::SimpleSprite@{render::SimpleSprite}!render@{render}}
+\index{render@{render}!render::SimpleSprite@{render::SimpleSprite}}
+\doxysubsubsection{\texorpdfstring{render()}{render()}}
+{\footnotesize\ttfamily void render\+::\+Simple\+Sprite\+::render (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{classolc_1_1_transformed_view}{olc\+::\+Transformed\+View}} \&}]{scene,  }\item[{\mbox{\hyperlink{classentities_1_1_entity}{entities\+::\+Entity}} \&}]{entity }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [override]}, {\ttfamily [virtual]}}
+
+
+
+Render the sprite, abstract function. 
+
+
+\begin{DoxyParams}{Parameters}
+{\em scene} & view description \\
+\hline
+{\em entity} & entity to render with this texture \\
+\hline
+\end{DoxyParams}
+
+
+Implements \mbox{\hyperlink{classrender_1_1_i_texture_aedf64dab92f17e22a807635493196913}{render\+::\+I\+Texture}}.
+
+
+
+Definition at line 9 of file Simple\+Sprite.\+cpp.
+
+
+
+The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize}
+\item 
+C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\mbox{\hyperlink{_simple_sprite_8h}{Simple\+Sprite.\+h}}\item 
+C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\mbox{\hyperlink{_simple_sprite_8cpp}{Simple\+Sprite.\+cpp}}\end{DoxyCompactItemize}
diff --git a/doxy/latex/classrender_1_1_sprite_manager.tex b/doxy/latex/classrender_1_1_sprite_manager.tex
new file mode 100644
index 0000000000000000000000000000000000000000..0946b3952b4b5af2a4201f3af0457f05e4f0c4ba
--- /dev/null
+++ b/doxy/latex/classrender_1_1_sprite_manager.tex
@@ -0,0 +1,52 @@
+\hypertarget{classrender_1_1_sprite_manager}{}\doxysection{render\+::Sprite\+Manager Class Reference}
+\label{classrender_1_1_sprite_manager}\index{render::SpriteManager@{render::SpriteManager}}
+
+
+{\ttfamily \#include $<$Resource\+Manager.\+h$>$}
+
+\doxysubsection*{Public Member Functions}
+\begin{DoxyCompactItemize}
+\item 
+\mbox{\hyperlink{classrender_1_1_sprite_manager_ad65313b397c85d87f307fbb931907afb}{Sprite\+Manager}} (std\+::string \&resource\+Location, \mbox{\hyperlink{classolc_1_1_resource_pack}{olc\+::\+Resource\+Pack}} $\ast$pack)
+\item 
+\mbox{\hyperlink{classolc_1_1_decal}{olc\+::\+Decal}} $\ast$ \mbox{\hyperlink{classrender_1_1_sprite_manager_ad40363b5fa66e08aec13f332c5964d6b}{get\+Decal}} ()
+\end{DoxyCompactItemize}
+
+
+\doxysubsection{Detailed Description}
+
+
+Definition at line 64 of file Resource\+Manager.\+h.
+
+
+
+\doxysubsection{Constructor \& Destructor Documentation}
+\mbox{\Hypertarget{classrender_1_1_sprite_manager_ad65313b397c85d87f307fbb931907afb}\label{classrender_1_1_sprite_manager_ad65313b397c85d87f307fbb931907afb}} 
+\index{render::SpriteManager@{render::SpriteManager}!SpriteManager@{SpriteManager}}
+\index{SpriteManager@{SpriteManager}!render::SpriteManager@{render::SpriteManager}}
+\doxysubsubsection{\texorpdfstring{SpriteManager()}{SpriteManager()}}
+{\footnotesize\ttfamily render\+::\+Sprite\+Manager\+::\+Sprite\+Manager (\begin{DoxyParamCaption}\item[{std\+::string \&}]{resource\+Location,  }\item[{\mbox{\hyperlink{classolc_1_1_resource_pack}{olc\+::\+Resource\+Pack}} $\ast$}]{pack }\end{DoxyParamCaption})}
+
+
+
+Definition at line 55 of file Resource\+Manager.\+cpp.
+
+
+
+\doxysubsection{Member Function Documentation}
+\mbox{\Hypertarget{classrender_1_1_sprite_manager_ad40363b5fa66e08aec13f332c5964d6b}\label{classrender_1_1_sprite_manager_ad40363b5fa66e08aec13f332c5964d6b}} 
+\index{render::SpriteManager@{render::SpriteManager}!getDecal@{getDecal}}
+\index{getDecal@{getDecal}!render::SpriteManager@{render::SpriteManager}}
+\doxysubsubsection{\texorpdfstring{getDecal()}{getDecal()}}
+{\footnotesize\ttfamily \mbox{\hyperlink{classolc_1_1_decal}{olc\+::\+Decal}} $\ast$ render\+::\+Sprite\+Manager\+::get\+Decal (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}
+
+
+
+Definition at line 60 of file Resource\+Manager.\+cpp.
+
+
+
+The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize}
+\item 
+C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\mbox{\hyperlink{_resource_manager_8h}{Resource\+Manager.\+h}}\item 
+C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\mbox{\hyperlink{_resource_manager_8cpp}{Resource\+Manager.\+cpp}}\end{DoxyCompactItemize}
diff --git a/doxy/latex/classrender_1_1_wall_texture.eps b/doxy/latex/classrender_1_1_wall_texture.eps
new file mode 100644
index 0000000000000000000000000000000000000000..60d0870afbdbece7e5a8c4df39bc4b9c633274af
--- /dev/null
+++ b/doxy/latex/classrender_1_1_wall_texture.eps
@@ -0,0 +1,197 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: ClassName
+%%Creator: Doxygen
+%%CreationDate: Time
+%%For: 
+%Magnification: 1.00
+%%Orientation: Portrait
+%%BoundingBox: 0 0 500 307.692322
+%%Pages: 0
+%%BeginSetup
+%%EndSetup
+%%EndComments
+
+% ----- variables -----
+
+/boxwidth 0 def
+/boxheight 40 def
+/fontheight 24 def
+/marginwidth 10 def
+/distx 20 def
+/disty 40 def
+/boundaspect 1.625000 def  % aspect ratio of the BoundingBox (width/height)
+/boundx 500 def
+/boundy boundx boundaspect div def
+/xspacing 0 def
+/yspacing 0 def
+/rows 2 def
+/cols 1 def
+/scalefactor 0 def
+/boxfont /Times-Roman findfont fontheight scalefont def
+
+% ----- procedures -----
+
+/dotted { [1 4] 0 setdash } def
+/dashed { [5] 0 setdash } def
+/solid  { [] 0 setdash } def
+
+/max % result = MAX(arg1,arg2)
+{
+  /a exch def
+  /b exch def
+  a b gt {a} {b} ifelse
+} def
+
+/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)
+{
+  0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max
+} def
+
+/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))
+{
+  /str exch def
+  /boxwidth boxwidth str stringwidth pop max def
+} def
+
+/box % draws a box with text 'arg1' at grid pos (arg2,arg3)
+{ gsave
+  2 setlinewidth
+  newpath
+  exch xspacing mul xoffset add
+  exch yspacing mul
+  moveto
+  boxwidth 0 rlineto 
+  0 boxheight rlineto 
+  boxwidth neg 0 rlineto 
+  0 boxheight neg rlineto 
+  closepath
+  dup stringwidth pop neg boxwidth add 2 div
+  boxheight fontheight 2 div sub 2 div
+  rmoveto show stroke
+  grestore
+} def  
+
+/mark
+{ newpath
+  exch xspacing mul xoffset add boxwidth add
+  exch yspacing mul
+  moveto
+  0 boxheight 4 div rlineto
+  boxheight neg 4 div boxheight neg 4 div rlineto
+  closepath
+  eofill
+  stroke
+} def
+
+/arrow
+{ newpath
+  moveto
+  3 -8 rlineto
+  -6 0 rlineto
+  3 8 rlineto
+  closepath
+  eofill
+  stroke
+} def
+
+/out % draws an output connector for the block at (arg1,arg2)
+{
+  newpath
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul boxheight add
+  /y exch def
+  /x exch def
+  x y moveto
+  0 disty 2 div rlineto 
+  stroke
+  1 eq { x y disty 2 div add arrow } if
+} def
+
+/in % draws an input connector for the block at (arg1,arg2)
+{
+  newpath
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul disty 2 div sub
+  /y exch def
+  /x exch def
+  x y moveto
+  0 disty 2 div rlineto
+  stroke
+  1 eq { x y disty 2 div add arrow } if
+} def
+
+/hedge
+{
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul boxheight 2 div sub
+  /y exch def
+  /x exch def
+  newpath
+  x y moveto
+  boxwidth 2 div distx add 0 rlineto
+  stroke
+  1 eq
+  { newpath x boxwidth 2 div distx add add y moveto
+    -8 3 rlineto
+    0 -6 rlineto
+    8 3 rlineto
+    closepath
+    eofill
+    stroke
+  } if
+} def
+
+/vedge
+{
+  /ye exch def
+  /ys exch def
+  /xs exch def
+  newpath
+  xs xspacing mul xoffset add boxwidth 2 div add dup
+  ys yspacing mul boxheight 2 div sub
+  moveto
+  ye yspacing mul boxheight 2 div sub
+  lineto
+  stroke
+} def
+
+/conn % connections the blocks from col 'arg1' to 'arg2' of row 'arg3'
+{
+  /ys exch def
+  /xe exch def
+  /xs exch def
+  newpath
+  xs xspacing mul xoffset add boxwidth 2 div add
+  ys yspacing mul disty 2 div sub
+  moveto
+  xspacing xe xs sub mul 0
+  rlineto
+  stroke
+} def
+
+% ----- main ------
+
+boxfont setfont
+1 boundaspect scale
+(render::WallTexture) cw
+(render::ITexture) cw
+/boxwidth boxwidth marginwidth 2 mul add def
+/xspacing boxwidth distx add def
+/yspacing boxheight disty add def
+/scalefactor 
+  boxwidth cols mul distx cols 1 sub mul add
+  boxheight rows mul disty rows 1 sub mul add boundaspect mul 
+  max def
+boundx scalefactor div boundy scalefactor div scale
+
+% ----- classes -----
+
+ (render::WallTexture) 0.000000 0.000000 box
+ (render::ITexture) 0.000000 1.000000 box
+
+% ----- relations -----
+
+solid
+0 0.000000 0.000000 out
+solid
+1 0.000000 1.000000 in
diff --git a/doxy/latex/classrender_1_1_wall_texture.tex b/doxy/latex/classrender_1_1_wall_texture.tex
new file mode 100644
index 0000000000000000000000000000000000000000..b1a3148404182bdf27fae0d2b0c4a652100ad2c0
--- /dev/null
+++ b/doxy/latex/classrender_1_1_wall_texture.tex
@@ -0,0 +1,110 @@
+\hypertarget{classrender_1_1_wall_texture}{}\doxysection{render\+::Wall\+Texture Class Reference}
+\label{classrender_1_1_wall_texture}\index{render::WallTexture@{render::WallTexture}}
+
+
+Texture to render walls, with 16 possible states.  
+
+
+
+
+{\ttfamily \#include $<$Wall\+Texture.\+h$>$}
+
+Inheritance diagram for render\+::Wall\+Texture\+:\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[height=2.000000cm]{classrender_1_1_wall_texture}
+\end{center}
+\end{figure}
+\doxysubsection*{Public Member Functions}
+\begin{DoxyCompactItemize}
+\item 
+\mbox{\hyperlink{classrender_1_1_wall_texture_af0420c11949bbc21421cc21765bd8920}{Wall\+Texture}} (const std\+::string \&res\+Name, const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&base\+Offset, const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&size=\mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}}(16, 16))
+\item 
+void \mbox{\hyperlink{classrender_1_1_wall_texture_a03239c7168e114906cb20f3d39815344}{render}} (\mbox{\hyperlink{classolc_1_1_transformed_view}{olc\+::\+Transformed\+View}} \&scene, \mbox{\hyperlink{classentities_1_1_entity}{entities\+::\+Entity}} \&entity) override
+\begin{DoxyCompactList}\small\item\em Render the sprite, abstract function. \end{DoxyCompactList}\end{DoxyCompactItemize}
+\doxysubsection*{Static Protected Attributes}
+\begin{DoxyCompactItemize}
+\item 
+static const std\+::map$<$ byte, \mbox{\hyperlink{namespaceolc_a3c42697361e8a28424bcf8415aba3564}{olc\+::vi2d}} $>$ \mbox{\hyperlink{classrender_1_1_wall_texture_a8246fdde3751baf778392ce6f4577a8d}{offset\+Map}}
+\begin{DoxyCompactList}\small\item\em map, witch state means what coordinates in the sprite \end{DoxyCompactList}\end{DoxyCompactItemize}
+
+
+\doxysubsection{Detailed Description}
+Texture to render walls, with 16 possible states. 
+
+Definition at line 11 of file Wall\+Texture.\+h.
+
+
+
+\doxysubsection{Constructor \& Destructor Documentation}
+\mbox{\Hypertarget{classrender_1_1_wall_texture_af0420c11949bbc21421cc21765bd8920}\label{classrender_1_1_wall_texture_af0420c11949bbc21421cc21765bd8920}} 
+\index{render::WallTexture@{render::WallTexture}!WallTexture@{WallTexture}}
+\index{WallTexture@{WallTexture}!render::WallTexture@{render::WallTexture}}
+\doxysubsubsection{\texorpdfstring{WallTexture()}{WallTexture()}}
+{\footnotesize\ttfamily render\+::\+Wall\+Texture\+::\+Wall\+Texture (\begin{DoxyParamCaption}\item[{const std\+::string \&}]{res\+Name,  }\item[{const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&}]{base\+Offset,  }\item[{const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&}]{size = {\ttfamily \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}}(16,~16)} }\end{DoxyParamCaption})}
+
+
+
+Definition at line 12 of file Wall\+Texture.\+cpp.
+
+
+
+\doxysubsection{Member Function Documentation}
+\mbox{\Hypertarget{classrender_1_1_wall_texture_a03239c7168e114906cb20f3d39815344}\label{classrender_1_1_wall_texture_a03239c7168e114906cb20f3d39815344}} 
+\index{render::WallTexture@{render::WallTexture}!render@{render}}
+\index{render@{render}!render::WallTexture@{render::WallTexture}}
+\doxysubsubsection{\texorpdfstring{render()}{render()}}
+{\footnotesize\ttfamily void render\+::\+Wall\+Texture\+::render (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{classolc_1_1_transformed_view}{olc\+::\+Transformed\+View}} \&}]{scene,  }\item[{\mbox{\hyperlink{classentities_1_1_entity}{entities\+::\+Entity}} \&}]{entity }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [override]}, {\ttfamily [virtual]}}
+
+
+
+Render the sprite, abstract function. 
+
+
+\begin{DoxyParams}{Parameters}
+{\em scene} & view description \\
+\hline
+{\em entity} & entity to render with this texture \\
+\hline
+\end{DoxyParams}
+
+
+Implements \mbox{\hyperlink{classrender_1_1_i_texture_aedf64dab92f17e22a807635493196913}{render\+::\+I\+Texture}}.
+
+
+
+Definition at line 14 of file Wall\+Texture.\+cpp.
+
+
+
+\doxysubsection{Member Data Documentation}
+\mbox{\Hypertarget{classrender_1_1_wall_texture_a8246fdde3751baf778392ce6f4577a8d}\label{classrender_1_1_wall_texture_a8246fdde3751baf778392ce6f4577a8d}} 
+\index{render::WallTexture@{render::WallTexture}!offsetMap@{offsetMap}}
+\index{offsetMap@{offsetMap}!render::WallTexture@{render::WallTexture}}
+\doxysubsubsection{\texorpdfstring{offsetMap}{offsetMap}}
+{\footnotesize\ttfamily const std\+::map$<$ byte, vi2d $>$ render\+::\+Wall\+Texture\+::offset\+Map\hspace{0.3cm}{\ttfamily [static]}, {\ttfamily [protected]}}
+
+{\bfseries Initial value\+:}
+\begin{DoxyCode}{0}
+\DoxyCodeLine{= \{}
+\DoxyCodeLine{        \{0b0000, \mbox{\hyperlink{namespaceolc_a3c42697361e8a28424bcf8415aba3564}{vi2d}}(1, 1) \}, \{0b0001, \mbox{\hyperlink{namespaceolc_a3c42697361e8a28424bcf8415aba3564}{vi2d}}(1, 1)\}, \{0b0010, \mbox{\hyperlink{namespaceolc_a3c42697361e8a28424bcf8415aba3564}{vi2d}}(0, 1)\}, \{0b0011, \mbox{\hyperlink{namespaceolc_a3c42697361e8a28424bcf8415aba3564}{vi2d}}(0, 1)\},}
+\DoxyCodeLine{        \{0b0100, \mbox{\hyperlink{namespaceolc_a3c42697361e8a28424bcf8415aba3564}{vi2d}}(1, 0) \}, \{0b0101, \mbox{\hyperlink{namespaceolc_a3c42697361e8a28424bcf8415aba3564}{vi2d}}(2, 2)\}, \{0b0110, \mbox{\hyperlink{namespaceolc_a3c42697361e8a28424bcf8415aba3564}{vi2d}}(2, 0)\}, \{0b0111, \mbox{\hyperlink{namespaceolc_a3c42697361e8a28424bcf8415aba3564}{vi2d}}(5, 1)\},}
+\DoxyCodeLine{        \{0b1000, \mbox{\hyperlink{namespaceolc_a3c42697361e8a28424bcf8415aba3564}{vi2d}}(1, 0) \}, \{0b1001, \mbox{\hyperlink{namespaceolc_a3c42697361e8a28424bcf8415aba3564}{vi2d}}(0, 2)\}, \{0b1010, \mbox{\hyperlink{namespaceolc_a3c42697361e8a28424bcf8415aba3564}{vi2d}}(0, 0)\}, \{0b1011, \mbox{\hyperlink{namespaceolc_a3c42697361e8a28424bcf8415aba3564}{vi2d}}(3, 1)\},}
+\DoxyCodeLine{        \{0b1100, \mbox{\hyperlink{namespaceolc_a3c42697361e8a28424bcf8415aba3564}{vi2d}}(1, 0) \}, \{0b1101, \mbox{\hyperlink{namespaceolc_a3c42697361e8a28424bcf8415aba3564}{vi2d}}(4, 2)\}, \{0b1110, \mbox{\hyperlink{namespaceolc_a3c42697361e8a28424bcf8415aba3564}{vi2d}}(4, 0)\}, \{0b1111, \mbox{\hyperlink{namespaceolc_a3c42697361e8a28424bcf8415aba3564}{vi2d}}(4, 1)\}}
+\DoxyCodeLine{    \}}
+
+\end{DoxyCode}
+
+
+map, witch state means what coordinates in the sprite 
+
+
+
+Definition at line 21 of file Wall\+Texture.\+h.
+
+
+
+The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize}
+\item 
+C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\mbox{\hyperlink{_wall_texture_8h}{Wall\+Texture.\+h}}\item 
+C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\mbox{\hyperlink{_wall_texture_8cpp}{Wall\+Texture.\+cpp}}\end{DoxyCompactItemize}
diff --git a/doxy/latex/classweapons_1_1_e_m_gun.eps b/doxy/latex/classweapons_1_1_e_m_gun.eps
new file mode 100644
index 0000000000000000000000000000000000000000..52abedf17726f7ea6b9caf42af2b04ef191c6536
--- /dev/null
+++ b/doxy/latex/classweapons_1_1_e_m_gun.eps
@@ -0,0 +1,221 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: ClassName
+%%Creator: Doxygen
+%%CreationDate: Time
+%%For: 
+%Magnification: 1.00
+%%Orientation: Portrait
+%%BoundingBox: 0 0 500 727.272705
+%%Pages: 0
+%%BeginSetup
+%%EndSetup
+%%EndComments
+
+% ----- variables -----
+
+/boxwidth 0 def
+/boxheight 40 def
+/fontheight 24 def
+/marginwidth 10 def
+/distx 20 def
+/disty 40 def
+/boundaspect 0.687500 def  % aspect ratio of the BoundingBox (width/height)
+/boundx 500 def
+/boundy boundx boundaspect div def
+/xspacing 0 def
+/yspacing 0 def
+/rows 6 def
+/cols 1 def
+/scalefactor 0 def
+/boxfont /Times-Roman findfont fontheight scalefont def
+
+% ----- procedures -----
+
+/dotted { [1 4] 0 setdash } def
+/dashed { [5] 0 setdash } def
+/solid  { [] 0 setdash } def
+
+/max % result = MAX(arg1,arg2)
+{
+  /a exch def
+  /b exch def
+  a b gt {a} {b} ifelse
+} def
+
+/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)
+{
+  0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max
+} def
+
+/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))
+{
+  /str exch def
+  /boxwidth boxwidth str stringwidth pop max def
+} def
+
+/box % draws a box with text 'arg1' at grid pos (arg2,arg3)
+{ gsave
+  2 setlinewidth
+  newpath
+  exch xspacing mul xoffset add
+  exch yspacing mul
+  moveto
+  boxwidth 0 rlineto 
+  0 boxheight rlineto 
+  boxwidth neg 0 rlineto 
+  0 boxheight neg rlineto 
+  closepath
+  dup stringwidth pop neg boxwidth add 2 div
+  boxheight fontheight 2 div sub 2 div
+  rmoveto show stroke
+  grestore
+} def  
+
+/mark
+{ newpath
+  exch xspacing mul xoffset add boxwidth add
+  exch yspacing mul
+  moveto
+  0 boxheight 4 div rlineto
+  boxheight neg 4 div boxheight neg 4 div rlineto
+  closepath
+  eofill
+  stroke
+} def
+
+/arrow
+{ newpath
+  moveto
+  3 -8 rlineto
+  -6 0 rlineto
+  3 8 rlineto
+  closepath
+  eofill
+  stroke
+} def
+
+/out % draws an output connector for the block at (arg1,arg2)
+{
+  newpath
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul boxheight add
+  /y exch def
+  /x exch def
+  x y moveto
+  0 disty 2 div rlineto 
+  stroke
+  1 eq { x y disty 2 div add arrow } if
+} def
+
+/in % draws an input connector for the block at (arg1,arg2)
+{
+  newpath
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul disty 2 div sub
+  /y exch def
+  /x exch def
+  x y moveto
+  0 disty 2 div rlineto
+  stroke
+  1 eq { x y disty 2 div add arrow } if
+} def
+
+/hedge
+{
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul boxheight 2 div sub
+  /y exch def
+  /x exch def
+  newpath
+  x y moveto
+  boxwidth 2 div distx add 0 rlineto
+  stroke
+  1 eq
+  { newpath x boxwidth 2 div distx add add y moveto
+    -8 3 rlineto
+    0 -6 rlineto
+    8 3 rlineto
+    closepath
+    eofill
+    stroke
+  } if
+} def
+
+/vedge
+{
+  /ye exch def
+  /ys exch def
+  /xs exch def
+  newpath
+  xs xspacing mul xoffset add boxwidth 2 div add dup
+  ys yspacing mul boxheight 2 div sub
+  moveto
+  ye yspacing mul boxheight 2 div sub
+  lineto
+  stroke
+} def
+
+/conn % connections the blocks from col 'arg1' to 'arg2' of row 'arg3'
+{
+  /ys exch def
+  /xe exch def
+  /xs exch def
+  newpath
+  xs xspacing mul xoffset add boxwidth 2 div add
+  ys yspacing mul disty 2 div sub
+  moveto
+  xspacing xe xs sub mul 0
+  rlineto
+  stroke
+} def
+
+% ----- main ------
+
+boxfont setfont
+1 boundaspect scale
+(weapons::EMGun) cw
+(weapons::Pistol) cw
+(weapons::RangedWeapon) cw
+(weapons::Weapon) cw
+(entities::Entity) cw
+(weapons::GlitchGun) cw
+/boxwidth boxwidth marginwidth 2 mul add def
+/xspacing boxwidth distx add def
+/yspacing boxheight disty add def
+/scalefactor 
+  boxwidth cols mul distx cols 1 sub mul add
+  boxheight rows mul disty rows 1 sub mul add boundaspect mul 
+  max def
+boundx scalefactor div boundy scalefactor div scale
+
+% ----- classes -----
+
+ (weapons::EMGun) 0.000000 1.000000 box
+ (weapons::Pistol) 0.000000 2.000000 box
+ (weapons::RangedWeapon) 0.000000 3.000000 box
+ (weapons::Weapon) 0.000000 4.000000 box
+ (entities::Entity) 0.000000 5.000000 box
+ (weapons::GlitchGun) 0.000000 0.000000 box
+
+% ----- relations -----
+
+solid
+0 0.000000 1.000000 out
+solid
+1 0.000000 2.000000 in
+solid
+0 0.000000 2.000000 out
+solid
+1 0.000000 3.000000 in
+solid
+0 0.000000 3.000000 out
+solid
+1 0.000000 4.000000 in
+solid
+0 0.000000 4.000000 out
+solid
+1 0.000000 5.000000 in
+solid
+1 0.000000 0.250000 out
+solid
+0 0.000000 0.750000 in
diff --git a/doxy/latex/classweapons_1_1_e_m_gun.tex b/doxy/latex/classweapons_1_1_e_m_gun.tex
new file mode 100644
index 0000000000000000000000000000000000000000..ff96ca661dbb20c0291dec66569d9179af9fb462
--- /dev/null
+++ b/doxy/latex/classweapons_1_1_e_m_gun.tex
@@ -0,0 +1,126 @@
+\hypertarget{classweapons_1_1_e_m_gun}{}\doxysection{weapons\+::E\+M\+Gun Class Reference}
+\label{classweapons_1_1_e_m_gun}\index{weapons::EMGun@{weapons::EMGun}}
+
+
+\mbox{\hyperlink{classweapons_1_1_weapon}{Weapon}} with energy level.  
+
+
+
+
+{\ttfamily \#include $<$E\+M\+Gun.\+h$>$}
+
+Inheritance diagram for weapons\+::E\+M\+Gun\+:\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[height=6.000000cm]{classweapons_1_1_e_m_gun}
+\end{center}
+\end{figure}
+\doxysubsection*{Public Member Functions}
+\begin{DoxyCompactItemize}
+\item 
+\mbox{\hyperlink{classweapons_1_1_e_m_gun_a39114a620affbf0d80d616cf4baf7e17}{E\+M\+Gun}} (\mbox{\hyperlink{classrender_1_1_i_texture}{render\+::\+I\+Texture}} \&texture, float \mbox{\hyperlink{classweapons_1_1_weapon_aa3d78dae766eee8279326026dbb46f1f}{cooldown\+Time}}, int \mbox{\hyperlink{classweapons_1_1_weapon_a397c372ffe2838f7c9c1ce67c06e55a9}{damage}}, float \mbox{\hyperlink{classweapons_1_1_ranged_weapon_a299d09c213670d80f7215e2310c92889}{projectile\+Speed}}=10, const std\+::string \&\mbox{\hyperlink{classweapons_1_1_weapon_a3dab7574419aed48f2a0f2d54cfcd825}{name}}=\char`\"{}Ranged\+Weapon\char`\"{}, const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&\mbox{\hyperlink{classentities_1_1_entity_a04f9c2febe8d435138a07eb2f48ba96b}{pos}}=\{ 0, 0 \}, float energy\+Regen=12)
+\item 
+bool \mbox{\hyperlink{classweapons_1_1_e_m_gun_a8034852a4a5957c3d3bc00ca5f7df6e4}{use}} (std\+::shared\+\_\+ptr$<$ \mbox{\hyperlink{classentities_1_1_entity}{Entity}} $>$ user, const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&direction) override
+\item 
+float \mbox{\hyperlink{classweapons_1_1_e_m_gun_a1d2c920f4fddd40d39dba5d4dddf496f}{get\+Secondary\+Bar}} () override
+\begin{DoxyCompactList}\small\item\em Shows the energy level in the secondary status-\/bar. \end{DoxyCompactList}\item 
+bool \mbox{\hyperlink{classweapons_1_1_e_m_gun_a0bb30401aa36e2205c011ea0fcf40303}{update}} (float d\+Tick) override
+\begin{DoxyCompactList}\small\item\em Update the weapon in a Character\textquotesingle{}s inventory. \end{DoxyCompactList}\end{DoxyCompactItemize}
+\doxysubsection*{Additional Inherited Members}
+
+
+\doxysubsection{Detailed Description}
+\mbox{\hyperlink{classweapons_1_1_weapon}{Weapon}} with energy level. 
+
+Definition at line 10 of file E\+M\+Gun.\+h.
+
+
+
+\doxysubsection{Constructor \& Destructor Documentation}
+\mbox{\Hypertarget{classweapons_1_1_e_m_gun_a39114a620affbf0d80d616cf4baf7e17}\label{classweapons_1_1_e_m_gun_a39114a620affbf0d80d616cf4baf7e17}} 
+\index{weapons::EMGun@{weapons::EMGun}!EMGun@{EMGun}}
+\index{EMGun@{EMGun}!weapons::EMGun@{weapons::EMGun}}
+\doxysubsubsection{\texorpdfstring{EMGun()}{EMGun()}}
+{\footnotesize\ttfamily weapons\+::\+E\+M\+Gun\+::\+E\+M\+Gun (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{classrender_1_1_i_texture}{render\+::\+I\+Texture}} \&}]{texture,  }\item[{float}]{cooldown\+Time,  }\item[{int}]{damage,  }\item[{float}]{projectile\+Speed = {\ttfamily 10},  }\item[{const std\+::string \&}]{name = {\ttfamily \char`\"{}RangedWeapon\char`\"{}},  }\item[{const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&}]{pos = {\ttfamily \{~0,~0~\}},  }\item[{float}]{energy\+Regen = {\ttfamily 12} }\end{DoxyParamCaption})}
+
+
+
+Definition at line 5 of file E\+M\+Gun.\+cpp.
+
+
+
+\doxysubsection{Member Function Documentation}
+\mbox{\Hypertarget{classweapons_1_1_e_m_gun_a1d2c920f4fddd40d39dba5d4dddf496f}\label{classweapons_1_1_e_m_gun_a1d2c920f4fddd40d39dba5d4dddf496f}} 
+\index{weapons::EMGun@{weapons::EMGun}!getSecondaryBar@{getSecondaryBar}}
+\index{getSecondaryBar@{getSecondaryBar}!weapons::EMGun@{weapons::EMGun}}
+\doxysubsubsection{\texorpdfstring{getSecondaryBar()}{getSecondaryBar()}}
+{\footnotesize\ttfamily float weapons\+::\+E\+M\+Gun\+::get\+Secondary\+Bar (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [override]}, {\ttfamily [virtual]}}
+
+
+
+Shows the energy level in the secondary status-\/bar. 
+
+\begin{DoxyReturn}{Returns}
+0-\/1 float 
+\end{DoxyReturn}
+
+
+Reimplemented from \mbox{\hyperlink{classweapons_1_1_weapon_a3f84544c15d6220252c6175fdfe5c61d}{weapons\+::\+Weapon}}.
+
+
+
+Definition at line 22 of file E\+M\+Gun.\+cpp.
+
+\mbox{\Hypertarget{classweapons_1_1_e_m_gun_a0bb30401aa36e2205c011ea0fcf40303}\label{classweapons_1_1_e_m_gun_a0bb30401aa36e2205c011ea0fcf40303}} 
+\index{weapons::EMGun@{weapons::EMGun}!update@{update}}
+\index{update@{update}!weapons::EMGun@{weapons::EMGun}}
+\doxysubsubsection{\texorpdfstring{update()}{update()}}
+{\footnotesize\ttfamily bool weapons\+::\+E\+M\+Gun\+::update (\begin{DoxyParamCaption}\item[{float}]{d\+Tick }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [override]}, {\ttfamily [virtual]}}
+
+
+
+Update the weapon in a Character\textquotesingle{}s inventory. 
+
+
+\begin{DoxyParams}{Parameters}
+{\em d\+Tick} & a.\+k.\+a. deltaT, or f\+Elapsed\+Time \\
+\hline
+\end{DoxyParams}
+\begin{DoxyReturn}{Returns}
+is the user can use it 
+\end{DoxyReturn}
+
+
+Reimplemented from \mbox{\hyperlink{classweapons_1_1_weapon_a1cbf391f196bd151f3e3f1ae1e316088}{weapons\+::\+Weapon}}.
+
+
+
+Reimplemented in \mbox{\hyperlink{classweapons_1_1_glitch_gun_a6687147e8005e96f12806862f73a6cd8}{weapons\+::\+Glitch\+Gun}}.
+
+
+
+Definition at line 26 of file E\+M\+Gun.\+cpp.
+
+\mbox{\Hypertarget{classweapons_1_1_e_m_gun_a8034852a4a5957c3d3bc00ca5f7df6e4}\label{classweapons_1_1_e_m_gun_a8034852a4a5957c3d3bc00ca5f7df6e4}} 
+\index{weapons::EMGun@{weapons::EMGun}!use@{use}}
+\index{use@{use}!weapons::EMGun@{weapons::EMGun}}
+\doxysubsubsection{\texorpdfstring{use()}{use()}}
+{\footnotesize\ttfamily bool weapons\+::\+E\+M\+Gun\+::use (\begin{DoxyParamCaption}\item[{std\+::shared\+\_\+ptr$<$ \mbox{\hyperlink{classentities_1_1_entity}{Entity}} $>$}]{user,  }\item[{const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&}]{direction }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [override]}, {\ttfamily [virtual]}}
+
+\begin{DoxyReturn}{Returns}
+true, if you did something with it. false otherwise 
+\end{DoxyReturn}
+
+
+Implements \mbox{\hyperlink{classweapons_1_1_weapon_a8c6f12ac9ed871ebd0394f6b5c447868}{weapons\+::\+Weapon}}.
+
+
+
+Definition at line 8 of file E\+M\+Gun.\+cpp.
+
+
+
+The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize}
+\item 
+C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\mbox{\hyperlink{_e_m_gun_8h}{E\+M\+Gun.\+h}}\item 
+C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\mbox{\hyperlink{_e_m_gun_8cpp}{E\+M\+Gun.\+cpp}}\end{DoxyCompactItemize}
diff --git a/doxy/latex/classweapons_1_1_glitch_gun.eps b/doxy/latex/classweapons_1_1_glitch_gun.eps
new file mode 100644
index 0000000000000000000000000000000000000000..8febe225dfcc74ad05b05df27c8d1a55a0dac786
--- /dev/null
+++ b/doxy/latex/classweapons_1_1_glitch_gun.eps
@@ -0,0 +1,221 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: ClassName
+%%Creator: Doxygen
+%%CreationDate: Time
+%%For: 
+%Magnification: 1.00
+%%Orientation: Portrait
+%%BoundingBox: 0 0 500 727.272705
+%%Pages: 0
+%%BeginSetup
+%%EndSetup
+%%EndComments
+
+% ----- variables -----
+
+/boxwidth 0 def
+/boxheight 40 def
+/fontheight 24 def
+/marginwidth 10 def
+/distx 20 def
+/disty 40 def
+/boundaspect 0.687500 def  % aspect ratio of the BoundingBox (width/height)
+/boundx 500 def
+/boundy boundx boundaspect div def
+/xspacing 0 def
+/yspacing 0 def
+/rows 6 def
+/cols 1 def
+/scalefactor 0 def
+/boxfont /Times-Roman findfont fontheight scalefont def
+
+% ----- procedures -----
+
+/dotted { [1 4] 0 setdash } def
+/dashed { [5] 0 setdash } def
+/solid  { [] 0 setdash } def
+
+/max % result = MAX(arg1,arg2)
+{
+  /a exch def
+  /b exch def
+  a b gt {a} {b} ifelse
+} def
+
+/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)
+{
+  0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max
+} def
+
+/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))
+{
+  /str exch def
+  /boxwidth boxwidth str stringwidth pop max def
+} def
+
+/box % draws a box with text 'arg1' at grid pos (arg2,arg3)
+{ gsave
+  2 setlinewidth
+  newpath
+  exch xspacing mul xoffset add
+  exch yspacing mul
+  moveto
+  boxwidth 0 rlineto 
+  0 boxheight rlineto 
+  boxwidth neg 0 rlineto 
+  0 boxheight neg rlineto 
+  closepath
+  dup stringwidth pop neg boxwidth add 2 div
+  boxheight fontheight 2 div sub 2 div
+  rmoveto show stroke
+  grestore
+} def  
+
+/mark
+{ newpath
+  exch xspacing mul xoffset add boxwidth add
+  exch yspacing mul
+  moveto
+  0 boxheight 4 div rlineto
+  boxheight neg 4 div boxheight neg 4 div rlineto
+  closepath
+  eofill
+  stroke
+} def
+
+/arrow
+{ newpath
+  moveto
+  3 -8 rlineto
+  -6 0 rlineto
+  3 8 rlineto
+  closepath
+  eofill
+  stroke
+} def
+
+/out % draws an output connector for the block at (arg1,arg2)
+{
+  newpath
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul boxheight add
+  /y exch def
+  /x exch def
+  x y moveto
+  0 disty 2 div rlineto 
+  stroke
+  1 eq { x y disty 2 div add arrow } if
+} def
+
+/in % draws an input connector for the block at (arg1,arg2)
+{
+  newpath
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul disty 2 div sub
+  /y exch def
+  /x exch def
+  x y moveto
+  0 disty 2 div rlineto
+  stroke
+  1 eq { x y disty 2 div add arrow } if
+} def
+
+/hedge
+{
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul boxheight 2 div sub
+  /y exch def
+  /x exch def
+  newpath
+  x y moveto
+  boxwidth 2 div distx add 0 rlineto
+  stroke
+  1 eq
+  { newpath x boxwidth 2 div distx add add y moveto
+    -8 3 rlineto
+    0 -6 rlineto
+    8 3 rlineto
+    closepath
+    eofill
+    stroke
+  } if
+} def
+
+/vedge
+{
+  /ye exch def
+  /ys exch def
+  /xs exch def
+  newpath
+  xs xspacing mul xoffset add boxwidth 2 div add dup
+  ys yspacing mul boxheight 2 div sub
+  moveto
+  ye yspacing mul boxheight 2 div sub
+  lineto
+  stroke
+} def
+
+/conn % connections the blocks from col 'arg1' to 'arg2' of row 'arg3'
+{
+  /ys exch def
+  /xe exch def
+  /xs exch def
+  newpath
+  xs xspacing mul xoffset add boxwidth 2 div add
+  ys yspacing mul disty 2 div sub
+  moveto
+  xspacing xe xs sub mul 0
+  rlineto
+  stroke
+} def
+
+% ----- main ------
+
+boxfont setfont
+1 boundaspect scale
+(weapons::GlitchGun) cw
+(weapons::EMGun) cw
+(weapons::Pistol) cw
+(weapons::RangedWeapon) cw
+(weapons::Weapon) cw
+(entities::Entity) cw
+/boxwidth boxwidth marginwidth 2 mul add def
+/xspacing boxwidth distx add def
+/yspacing boxheight disty add def
+/scalefactor 
+  boxwidth cols mul distx cols 1 sub mul add
+  boxheight rows mul disty rows 1 sub mul add boundaspect mul 
+  max def
+boundx scalefactor div boundy scalefactor div scale
+
+% ----- classes -----
+
+ (weapons::GlitchGun) 0.000000 0.000000 box
+ (weapons::EMGun) 0.000000 1.000000 box
+ (weapons::Pistol) 0.000000 2.000000 box
+ (weapons::RangedWeapon) 0.000000 3.000000 box
+ (weapons::Weapon) 0.000000 4.000000 box
+ (entities::Entity) 0.000000 5.000000 box
+
+% ----- relations -----
+
+solid
+0 0.000000 0.000000 out
+solid
+1 0.000000 1.000000 in
+solid
+0 0.000000 1.000000 out
+solid
+1 0.000000 2.000000 in
+solid
+0 0.000000 2.000000 out
+solid
+1 0.000000 3.000000 in
+solid
+0 0.000000 3.000000 out
+solid
+1 0.000000 4.000000 in
+solid
+0 0.000000 4.000000 out
+solid
+1 0.000000 5.000000 in
diff --git a/doxy/latex/classweapons_1_1_glitch_gun.tex b/doxy/latex/classweapons_1_1_glitch_gun.tex
new file mode 100644
index 0000000000000000000000000000000000000000..ff3aa8909f5e41ed7df37494f9a80ec12aacb6a3
--- /dev/null
+++ b/doxy/latex/classweapons_1_1_glitch_gun.tex
@@ -0,0 +1,111 @@
+\hypertarget{classweapons_1_1_glitch_gun}{}\doxysection{weapons\+::Glitch\+Gun Class Reference}
+\label{classweapons_1_1_glitch_gun}\index{weapons::GlitchGun@{weapons::GlitchGun}}
+
+
+T\+O\+DO make the bug weapon more buggy.  
+
+
+
+
+{\ttfamily \#include $<$Glitch\+Gun.\+h$>$}
+
+Inheritance diagram for weapons\+::Glitch\+Gun\+:\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[height=6.000000cm]{classweapons_1_1_glitch_gun}
+\end{center}
+\end{figure}
+\doxysubsection*{Public Member Functions}
+\begin{DoxyCompactItemize}
+\item 
+\mbox{\hyperlink{classweapons_1_1_glitch_gun_ac8935765613bfe258bc6985441159702}{Glitch\+Gun}} (float \mbox{\hyperlink{classweapons_1_1_weapon_aa3d78dae766eee8279326026dbb46f1f}{cooldown\+Time}}, int \mbox{\hyperlink{classweapons_1_1_weapon_a397c372ffe2838f7c9c1ce67c06e55a9}{damage}}, float \mbox{\hyperlink{classweapons_1_1_ranged_weapon_a299d09c213670d80f7215e2310c92889}{projectile\+Speed}}=10, const std\+::string \&\mbox{\hyperlink{classweapons_1_1_weapon_a3dab7574419aed48f2a0f2d54cfcd825}{name}}=\char`\"{}Ranged\+Weapon\char`\"{}, const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&\mbox{\hyperlink{classentities_1_1_entity_a04f9c2febe8d435138a07eb2f48ba96b}{pos}}=\{ 0, 0 \}, float energy\+Regen=10)
+\item 
+void \mbox{\hyperlink{classweapons_1_1_glitch_gun_a9268757aeb63315254d6a13df8ed0ba4}{spawn\+Projectile}} (std\+::shared\+\_\+ptr$<$ \mbox{\hyperlink{classentities_1_1_entity}{Entity}} $>$ \&user, const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&\mbox{\hyperlink{classentities_1_1_entity_a04f9c2febe8d435138a07eb2f48ba96b}{pos}}, const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&v0, int \mbox{\hyperlink{classweapons_1_1_weapon_a397c372ffe2838f7c9c1ce67c06e55a9}{damage}}) override
+\begin{DoxyCompactList}\small\item\em It does randomly shoot normal and explosive projectiles. \end{DoxyCompactList}\item 
+bool \mbox{\hyperlink{classweapons_1_1_glitch_gun_a6687147e8005e96f12806862f73a6cd8}{update}} (float d\+Tick) override
+\begin{DoxyCompactList}\small\item\em Update the weapon in a Character\textquotesingle{}s inventory. \end{DoxyCompactList}\end{DoxyCompactItemize}
+\doxysubsection*{Additional Inherited Members}
+
+
+\doxysubsection{Detailed Description}
+T\+O\+DO make the bug weapon more buggy. 
+
+Definition at line 26 of file Glitch\+Gun.\+h.
+
+
+
+\doxysubsection{Constructor \& Destructor Documentation}
+\mbox{\Hypertarget{classweapons_1_1_glitch_gun_ac8935765613bfe258bc6985441159702}\label{classweapons_1_1_glitch_gun_ac8935765613bfe258bc6985441159702}} 
+\index{weapons::GlitchGun@{weapons::GlitchGun}!GlitchGun@{GlitchGun}}
+\index{GlitchGun@{GlitchGun}!weapons::GlitchGun@{weapons::GlitchGun}}
+\doxysubsubsection{\texorpdfstring{GlitchGun()}{GlitchGun()}}
+{\footnotesize\ttfamily weapons\+::\+Glitch\+Gun\+::\+Glitch\+Gun (\begin{DoxyParamCaption}\item[{float}]{cooldown\+Time,  }\item[{int}]{damage,  }\item[{float}]{projectile\+Speed = {\ttfamily 10},  }\item[{const std\+::string \&}]{name = {\ttfamily \char`\"{}RangedWeapon\char`\"{}},  }\item[{const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&}]{pos = {\ttfamily \{~0,~0~\}},  }\item[{float}]{energy\+Regen = {\ttfamily 10} }\end{DoxyParamCaption})}
+
+
+
+Definition at line 12 of file Glitch\+Gun.\+cpp.
+
+
+
+\doxysubsection{Member Function Documentation}
+\mbox{\Hypertarget{classweapons_1_1_glitch_gun_a9268757aeb63315254d6a13df8ed0ba4}\label{classweapons_1_1_glitch_gun_a9268757aeb63315254d6a13df8ed0ba4}} 
+\index{weapons::GlitchGun@{weapons::GlitchGun}!spawnProjectile@{spawnProjectile}}
+\index{spawnProjectile@{spawnProjectile}!weapons::GlitchGun@{weapons::GlitchGun}}
+\doxysubsubsection{\texorpdfstring{spawnProjectile()}{spawnProjectile()}}
+{\footnotesize\ttfamily void weapons\+::\+Glitch\+Gun\+::spawn\+Projectile (\begin{DoxyParamCaption}\item[{std\+::shared\+\_\+ptr$<$ \mbox{\hyperlink{classentities_1_1_entity}{Entity}} $>$ \&}]{user,  }\item[{const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&}]{pos,  }\item[{const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&}]{v0,  }\item[{int}]{damage }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [override]}, {\ttfamily [virtual]}}
+
+
+
+It does randomly shoot normal and explosive projectiles. 
+
+
+\begin{DoxyParams}{Parameters}
+{\em user} & the user \\
+\hline
+{\em pos} & where is the user \\
+\hline
+{\em v0} & the base speed of the projectile \\
+\hline
+{\em damage} & how much damage does it have \\
+\hline
+\end{DoxyParams}
+
+
+Implements \mbox{\hyperlink{classweapons_1_1_ranged_weapon_a6b6b8265efc6ecf60e36ab261fe6f360}{weapons\+::\+Ranged\+Weapon}}.
+
+
+
+Definition at line 15 of file Glitch\+Gun.\+cpp.
+
+\mbox{\Hypertarget{classweapons_1_1_glitch_gun_a6687147e8005e96f12806862f73a6cd8}\label{classweapons_1_1_glitch_gun_a6687147e8005e96f12806862f73a6cd8}} 
+\index{weapons::GlitchGun@{weapons::GlitchGun}!update@{update}}
+\index{update@{update}!weapons::GlitchGun@{weapons::GlitchGun}}
+\doxysubsubsection{\texorpdfstring{update()}{update()}}
+{\footnotesize\ttfamily bool weapons\+::\+Glitch\+Gun\+::update (\begin{DoxyParamCaption}\item[{float}]{d\+Tick }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [override]}, {\ttfamily [virtual]}}
+
+
+
+Update the weapon in a Character\textquotesingle{}s inventory. 
+
+
+\begin{DoxyParams}{Parameters}
+{\em d\+Tick} & a.\+k.\+a. deltaT, or f\+Elapsed\+Time \\
+\hline
+\end{DoxyParams}
+\begin{DoxyReturn}{Returns}
+is the user can use it 
+\end{DoxyReturn}
+
+
+Reimplemented from \mbox{\hyperlink{classweapons_1_1_e_m_gun_a0bb30401aa36e2205c011ea0fcf40303}{weapons\+::\+E\+M\+Gun}}.
+
+
+
+Definition at line 27 of file Glitch\+Gun.\+cpp.
+
+
+
+The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize}
+\item 
+C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\mbox{\hyperlink{_glitch_gun_8h}{Glitch\+Gun.\+h}}\item 
+C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\mbox{\hyperlink{_glitch_gun_8cpp}{Glitch\+Gun.\+cpp}}\end{DoxyCompactItemize}
diff --git a/doxy/latex/classweapons_1_1_glitch_texture.eps b/doxy/latex/classweapons_1_1_glitch_texture.eps
new file mode 100644
index 0000000000000000000000000000000000000000..2d8eec13d540dad33eb1738e49d522eff7625076
--- /dev/null
+++ b/doxy/latex/classweapons_1_1_glitch_texture.eps
@@ -0,0 +1,197 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: ClassName
+%%Creator: Doxygen
+%%CreationDate: Time
+%%For: 
+%Magnification: 1.00
+%%Orientation: Portrait
+%%BoundingBox: 0 0 500 266.666656
+%%Pages: 0
+%%BeginSetup
+%%EndSetup
+%%EndComments
+
+% ----- variables -----
+
+/boxwidth 0 def
+/boxheight 40 def
+/fontheight 24 def
+/marginwidth 10 def
+/distx 20 def
+/disty 40 def
+/boundaspect 1.875000 def  % aspect ratio of the BoundingBox (width/height)
+/boundx 500 def
+/boundy boundx boundaspect div def
+/xspacing 0 def
+/yspacing 0 def
+/rows 2 def
+/cols 1 def
+/scalefactor 0 def
+/boxfont /Times-Roman findfont fontheight scalefont def
+
+% ----- procedures -----
+
+/dotted { [1 4] 0 setdash } def
+/dashed { [5] 0 setdash } def
+/solid  { [] 0 setdash } def
+
+/max % result = MAX(arg1,arg2)
+{
+  /a exch def
+  /b exch def
+  a b gt {a} {b} ifelse
+} def
+
+/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)
+{
+  0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max
+} def
+
+/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))
+{
+  /str exch def
+  /boxwidth boxwidth str stringwidth pop max def
+} def
+
+/box % draws a box with text 'arg1' at grid pos (arg2,arg3)
+{ gsave
+  2 setlinewidth
+  newpath
+  exch xspacing mul xoffset add
+  exch yspacing mul
+  moveto
+  boxwidth 0 rlineto 
+  0 boxheight rlineto 
+  boxwidth neg 0 rlineto 
+  0 boxheight neg rlineto 
+  closepath
+  dup stringwidth pop neg boxwidth add 2 div
+  boxheight fontheight 2 div sub 2 div
+  rmoveto show stroke
+  grestore
+} def  
+
+/mark
+{ newpath
+  exch xspacing mul xoffset add boxwidth add
+  exch yspacing mul
+  moveto
+  0 boxheight 4 div rlineto
+  boxheight neg 4 div boxheight neg 4 div rlineto
+  closepath
+  eofill
+  stroke
+} def
+
+/arrow
+{ newpath
+  moveto
+  3 -8 rlineto
+  -6 0 rlineto
+  3 8 rlineto
+  closepath
+  eofill
+  stroke
+} def
+
+/out % draws an output connector for the block at (arg1,arg2)
+{
+  newpath
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul boxheight add
+  /y exch def
+  /x exch def
+  x y moveto
+  0 disty 2 div rlineto 
+  stroke
+  1 eq { x y disty 2 div add arrow } if
+} def
+
+/in % draws an input connector for the block at (arg1,arg2)
+{
+  newpath
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul disty 2 div sub
+  /y exch def
+  /x exch def
+  x y moveto
+  0 disty 2 div rlineto
+  stroke
+  1 eq { x y disty 2 div add arrow } if
+} def
+
+/hedge
+{
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul boxheight 2 div sub
+  /y exch def
+  /x exch def
+  newpath
+  x y moveto
+  boxwidth 2 div distx add 0 rlineto
+  stroke
+  1 eq
+  { newpath x boxwidth 2 div distx add add y moveto
+    -8 3 rlineto
+    0 -6 rlineto
+    8 3 rlineto
+    closepath
+    eofill
+    stroke
+  } if
+} def
+
+/vedge
+{
+  /ye exch def
+  /ys exch def
+  /xs exch def
+  newpath
+  xs xspacing mul xoffset add boxwidth 2 div add dup
+  ys yspacing mul boxheight 2 div sub
+  moveto
+  ye yspacing mul boxheight 2 div sub
+  lineto
+  stroke
+} def
+
+/conn % connections the blocks from col 'arg1' to 'arg2' of row 'arg3'
+{
+  /ys exch def
+  /xe exch def
+  /xs exch def
+  newpath
+  xs xspacing mul xoffset add boxwidth 2 div add
+  ys yspacing mul disty 2 div sub
+  moveto
+  xspacing xe xs sub mul 0
+  rlineto
+  stroke
+} def
+
+% ----- main ------
+
+boxfont setfont
+1 boundaspect scale
+(weapons::GlitchTexture) cw
+(render::ITexture) cw
+/boxwidth boxwidth marginwidth 2 mul add def
+/xspacing boxwidth distx add def
+/yspacing boxheight disty add def
+/scalefactor 
+  boxwidth cols mul distx cols 1 sub mul add
+  boxheight rows mul disty rows 1 sub mul add boundaspect mul 
+  max def
+boundx scalefactor div boundy scalefactor div scale
+
+% ----- classes -----
+
+ (weapons::GlitchTexture) 0.000000 0.000000 box
+ (render::ITexture) 0.000000 1.000000 box
+
+% ----- relations -----
+
+solid
+0 0.000000 0.000000 out
+solid
+1 0.000000 1.000000 in
diff --git a/doxy/latex/classweapons_1_1_glitch_texture.tex b/doxy/latex/classweapons_1_1_glitch_texture.tex
new file mode 100644
index 0000000000000000000000000000000000000000..3a9a14b7d49fdf37f8ca77f5ee94b4c2afb8f880
--- /dev/null
+++ b/doxy/latex/classweapons_1_1_glitch_texture.tex
@@ -0,0 +1,87 @@
+\hypertarget{classweapons_1_1_glitch_texture}{}\doxysection{weapons\+::Glitch\+Texture Class Reference}
+\label{classweapons_1_1_glitch_texture}\index{weapons::GlitchTexture@{weapons::GlitchTexture}}
+
+
+Texture for the bug weapon.  
+
+
+
+
+{\ttfamily \#include $<$Glitch\+Gun.\+h$>$}
+
+Inheritance diagram for weapons\+::Glitch\+Texture\+:\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[height=2.000000cm]{classweapons_1_1_glitch_texture}
+\end{center}
+\end{figure}
+\doxysubsection*{Public Member Functions}
+\begin{DoxyCompactItemize}
+\item 
+\mbox{\hyperlink{classweapons_1_1_glitch_texture_a613747d0865e988631cb0f0213c54640}{Glitch\+Texture}} (const std\+::string \&name=\char`\"{}From\+Macskusz111/bug.\+png\char`\"{})
+\begin{DoxyCompactList}\small\item\em Texture from my friend, Macskusz111. \end{DoxyCompactList}\item 
+void \mbox{\hyperlink{classweapons_1_1_glitch_texture_a5484c864f917e54fb6041b7d0d33ef42}{render}} (\mbox{\hyperlink{classolc_1_1_transformed_view}{olc\+::\+Transformed\+View}} \&scene, \mbox{\hyperlink{classentities_1_1_entity}{Entity}} \&entity) override
+\begin{DoxyCompactList}\small\item\em Render the sprite, abstract function. \end{DoxyCompactList}\end{DoxyCompactItemize}
+
+
+\doxysubsection{Detailed Description}
+Texture for the bug weapon. 
+
+Definition at line 9 of file Glitch\+Gun.\+h.
+
+
+
+\doxysubsection{Constructor \& Destructor Documentation}
+\mbox{\Hypertarget{classweapons_1_1_glitch_texture_a613747d0865e988631cb0f0213c54640}\label{classweapons_1_1_glitch_texture_a613747d0865e988631cb0f0213c54640}} 
+\index{weapons::GlitchTexture@{weapons::GlitchTexture}!GlitchTexture@{GlitchTexture}}
+\index{GlitchTexture@{GlitchTexture}!weapons::GlitchTexture@{weapons::GlitchTexture}}
+\doxysubsubsection{\texorpdfstring{GlitchTexture()}{GlitchTexture()}}
+{\footnotesize\ttfamily weapons\+::\+Glitch\+Texture\+::\+Glitch\+Texture (\begin{DoxyParamCaption}\item[{const std\+::string \&}]{name = {\ttfamily \char`\"{}FromMacskusz111/bug.png\char`\"{}} }\end{DoxyParamCaption})}
+
+
+
+Texture from my friend, Macskusz111. 
+
+
+\begin{DoxyParams}{Parameters}
+{\em name} & the file path and name \\
+\hline
+\end{DoxyParams}
+
+
+Definition at line 36 of file Glitch\+Gun.\+cpp.
+
+
+
+\doxysubsection{Member Function Documentation}
+\mbox{\Hypertarget{classweapons_1_1_glitch_texture_a5484c864f917e54fb6041b7d0d33ef42}\label{classweapons_1_1_glitch_texture_a5484c864f917e54fb6041b7d0d33ef42}} 
+\index{weapons::GlitchTexture@{weapons::GlitchTexture}!render@{render}}
+\index{render@{render}!weapons::GlitchTexture@{weapons::GlitchTexture}}
+\doxysubsubsection{\texorpdfstring{render()}{render()}}
+{\footnotesize\ttfamily void weapons\+::\+Glitch\+Texture\+::render (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{classolc_1_1_transformed_view}{olc\+::\+Transformed\+View}} \&}]{scene,  }\item[{\mbox{\hyperlink{classentities_1_1_entity}{Entity}} \&}]{entity }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [override]}, {\ttfamily [virtual]}}
+
+
+
+Render the sprite, abstract function. 
+
+
+\begin{DoxyParams}{Parameters}
+{\em scene} & view description \\
+\hline
+{\em entity} & entity to render with this texture \\
+\hline
+\end{DoxyParams}
+
+
+Implements \mbox{\hyperlink{classrender_1_1_i_texture_aedf64dab92f17e22a807635493196913}{render\+::\+I\+Texture}}.
+
+
+
+Definition at line 39 of file Glitch\+Gun.\+cpp.
+
+
+
+The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize}
+\item 
+C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\mbox{\hyperlink{_glitch_gun_8h}{Glitch\+Gun.\+h}}\item 
+C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\mbox{\hyperlink{_glitch_gun_8cpp}{Glitch\+Gun.\+cpp}}\end{DoxyCompactItemize}
diff --git a/doxy/latex/classweapons_1_1_melee_weapon.eps b/doxy/latex/classweapons_1_1_melee_weapon.eps
new file mode 100644
index 0000000000000000000000000000000000000000..b6e3ffc90e6c2857bde1c64ede37f192f2dbcf56
--- /dev/null
+++ b/doxy/latex/classweapons_1_1_melee_weapon.eps
@@ -0,0 +1,209 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: ClassName
+%%Creator: Doxygen
+%%CreationDate: Time
+%%For: 
+%Magnification: 1.00
+%%Orientation: Portrait
+%%BoundingBox: 0 0 500 404.040405
+%%Pages: 0
+%%BeginSetup
+%%EndSetup
+%%EndComments
+
+% ----- variables -----
+
+/boxwidth 0 def
+/boxheight 40 def
+/fontheight 24 def
+/marginwidth 10 def
+/distx 20 def
+/disty 40 def
+/boundaspect 1.237500 def  % aspect ratio of the BoundingBox (width/height)
+/boundx 500 def
+/boundy boundx boundaspect div def
+/xspacing 0 def
+/yspacing 0 def
+/rows 4 def
+/cols 1 def
+/scalefactor 0 def
+/boxfont /Times-Roman findfont fontheight scalefont def
+
+% ----- procedures -----
+
+/dotted { [1 4] 0 setdash } def
+/dashed { [5] 0 setdash } def
+/solid  { [] 0 setdash } def
+
+/max % result = MAX(arg1,arg2)
+{
+  /a exch def
+  /b exch def
+  a b gt {a} {b} ifelse
+} def
+
+/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)
+{
+  0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max
+} def
+
+/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))
+{
+  /str exch def
+  /boxwidth boxwidth str stringwidth pop max def
+} def
+
+/box % draws a box with text 'arg1' at grid pos (arg2,arg3)
+{ gsave
+  2 setlinewidth
+  newpath
+  exch xspacing mul xoffset add
+  exch yspacing mul
+  moveto
+  boxwidth 0 rlineto 
+  0 boxheight rlineto 
+  boxwidth neg 0 rlineto 
+  0 boxheight neg rlineto 
+  closepath
+  dup stringwidth pop neg boxwidth add 2 div
+  boxheight fontheight 2 div sub 2 div
+  rmoveto show stroke
+  grestore
+} def  
+
+/mark
+{ newpath
+  exch xspacing mul xoffset add boxwidth add
+  exch yspacing mul
+  moveto
+  0 boxheight 4 div rlineto
+  boxheight neg 4 div boxheight neg 4 div rlineto
+  closepath
+  eofill
+  stroke
+} def
+
+/arrow
+{ newpath
+  moveto
+  3 -8 rlineto
+  -6 0 rlineto
+  3 8 rlineto
+  closepath
+  eofill
+  stroke
+} def
+
+/out % draws an output connector for the block at (arg1,arg2)
+{
+  newpath
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul boxheight add
+  /y exch def
+  /x exch def
+  x y moveto
+  0 disty 2 div rlineto 
+  stroke
+  1 eq { x y disty 2 div add arrow } if
+} def
+
+/in % draws an input connector for the block at (arg1,arg2)
+{
+  newpath
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul disty 2 div sub
+  /y exch def
+  /x exch def
+  x y moveto
+  0 disty 2 div rlineto
+  stroke
+  1 eq { x y disty 2 div add arrow } if
+} def
+
+/hedge
+{
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul boxheight 2 div sub
+  /y exch def
+  /x exch def
+  newpath
+  x y moveto
+  boxwidth 2 div distx add 0 rlineto
+  stroke
+  1 eq
+  { newpath x boxwidth 2 div distx add add y moveto
+    -8 3 rlineto
+    0 -6 rlineto
+    8 3 rlineto
+    closepath
+    eofill
+    stroke
+  } if
+} def
+
+/vedge
+{
+  /ye exch def
+  /ys exch def
+  /xs exch def
+  newpath
+  xs xspacing mul xoffset add boxwidth 2 div add dup
+  ys yspacing mul boxheight 2 div sub
+  moveto
+  ye yspacing mul boxheight 2 div sub
+  lineto
+  stroke
+} def
+
+/conn % connections the blocks from col 'arg1' to 'arg2' of row 'arg3'
+{
+  /ys exch def
+  /xe exch def
+  /xs exch def
+  newpath
+  xs xspacing mul xoffset add boxwidth 2 div add
+  ys yspacing mul disty 2 div sub
+  moveto
+  xspacing xe xs sub mul 0
+  rlineto
+  stroke
+} def
+
+% ----- main ------
+
+boxfont setfont
+1 boundaspect scale
+(weapons::MeleeWeapon) cw
+(weapons::Weapon) cw
+(entities::Entity) cw
+(weapons::TypicalMeleeWeapon) cw
+/boxwidth boxwidth marginwidth 2 mul add def
+/xspacing boxwidth distx add def
+/yspacing boxheight disty add def
+/scalefactor 
+  boxwidth cols mul distx cols 1 sub mul add
+  boxheight rows mul disty rows 1 sub mul add boundaspect mul 
+  max def
+boundx scalefactor div boundy scalefactor div scale
+
+% ----- classes -----
+
+ (weapons::MeleeWeapon) 0.000000 1.000000 box
+ (weapons::Weapon) 0.000000 2.000000 box
+ (entities::Entity) 0.000000 3.000000 box
+ (weapons::TypicalMeleeWeapon) 0.000000 0.000000 box
+
+% ----- relations -----
+
+solid
+0 0.000000 1.000000 out
+solid
+1 0.000000 2.000000 in
+solid
+0 0.000000 2.000000 out
+solid
+1 0.000000 3.000000 in
+solid
+1 0.000000 0.250000 out
+solid
+0 0.000000 0.750000 in
diff --git a/doxy/latex/classweapons_1_1_melee_weapon.tex b/doxy/latex/classweapons_1_1_melee_weapon.tex
new file mode 100644
index 0000000000000000000000000000000000000000..01045f5db8218da2834f89a987cdcafb7b993d30
--- /dev/null
+++ b/doxy/latex/classweapons_1_1_melee_weapon.tex
@@ -0,0 +1,190 @@
+\hypertarget{classweapons_1_1_melee_weapon}{}\doxysection{weapons\+::Melee\+Weapon Class Reference}
+\label{classweapons_1_1_melee_weapon}\index{weapons::MeleeWeapon@{weapons::MeleeWeapon}}
+
+
+A melee weapon, like a spoon.  
+
+
+
+
+{\ttfamily \#include $<$Melee\+Weapon.\+h$>$}
+
+Inheritance diagram for weapons\+::Melee\+Weapon\+:\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[height=4.000000cm]{classweapons_1_1_melee_weapon}
+\end{center}
+\end{figure}
+\doxysubsection*{Classes}
+\begin{DoxyCompactItemize}
+\item 
+class \mbox{\hyperlink{classweapons_1_1_melee_weapon_1_1predicate_distance}{predicate\+Distance}}
+\begin{DoxyCompactList}\small\item\em Functor to predicate entity distance. You can also use lambda, if you want. \end{DoxyCompactList}\end{DoxyCompactItemize}
+\doxysubsection*{Public Member Functions}
+\begin{DoxyCompactItemize}
+\item 
+\mbox{\hyperlink{classweapons_1_1_melee_weapon_a719614055440a5e7cfaf943dab856bb1}{Melee\+Weapon}} (\mbox{\hyperlink{classrender_1_1_i_texture}{render\+::\+I\+Texture}} \&texture, const std\+::string \&\mbox{\hyperlink{classweapons_1_1_weapon_a3dab7574419aed48f2a0f2d54cfcd825}{name}}, float \mbox{\hyperlink{classweapons_1_1_weapon_aa3d78dae766eee8279326026dbb46f1f}{cooldown\+Time}}, int \mbox{\hyperlink{classweapons_1_1_weapon_a397c372ffe2838f7c9c1ce67c06e55a9}{damage}}=10, const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&\mbox{\hyperlink{classentities_1_1_entity_a04f9c2febe8d435138a07eb2f48ba96b}{pos}}=\{ 0, 0 \})
+\item 
+bool \mbox{\hyperlink{classweapons_1_1_melee_weapon_ac1b9a6718cbf78cea0b9e5e0b8dcc64e}{use}} (std\+::shared\+\_\+ptr$<$ \mbox{\hyperlink{classentities_1_1_entity}{Entity}} $>$ user, const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&direction) override
+\end{DoxyCompactItemize}
+\doxysubsection*{Protected Member Functions}
+\begin{DoxyCompactItemize}
+\item 
+virtual int \mbox{\hyperlink{classweapons_1_1_melee_weapon_a2636c0b628f8fa52d269bb2dab0b21bd}{get\+Damage}} () const
+\item 
+virtual bool \mbox{\hyperlink{classweapons_1_1_melee_weapon_a6938e2705c6353b4b2782e8a4186de17}{damage\+Entity}} (std\+::shared\+\_\+ptr$<$ \mbox{\hyperlink{classentities_1_1_entity}{Entity}} $>$ user, std\+::shared\+\_\+ptr$<$ \mbox{\hyperlink{classentities_1_1_entity}{Entity}} $>$ \&victim)
+\begin{DoxyCompactList}\small\item\em Damage the victim. \end{DoxyCompactList}\item 
+virtual bool \mbox{\hyperlink{classweapons_1_1_melee_weapon_a59a5b959539d2c71605c1b6fbec3111b}{damage\+If}} (std\+::shared\+\_\+ptr$<$ \mbox{\hyperlink{classentities_1_1_entity}{Entity}} $>$ \&user, std\+::function$<$ bool(std\+::shared\+\_\+ptr$<$ \mbox{\hyperlink{classentities_1_1_entity}{Entity}} $>$ self, std\+::shared\+\_\+ptr$<$ \mbox{\hyperlink{classentities_1_1_entity}{Entity}} $>$ other)$>$ predicate)
+\begin{DoxyCompactList}\small\item\em Tries to damage every entity in a range. \end{DoxyCompactList}\item 
+virtual std\+::function$<$ bool(std\+::shared\+\_\+ptr$<$ \mbox{\hyperlink{classentities_1_1_entity}{Entity}} $>$, std\+::shared\+\_\+ptr$<$ \mbox{\hyperlink{classentities_1_1_entity}{Entity}} $>$)$>$ \mbox{\hyperlink{classweapons_1_1_melee_weapon_af14b624f27592421fc117c4fa81aba1b}{get\+Predicator}} (const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&direction)=0
+\begin{DoxyCompactList}\small\item\em The predicate function getter for the damage\+If. \end{DoxyCompactList}\item 
+virtual float \mbox{\hyperlink{classweapons_1_1_melee_weapon_ac6a6b662df60c1927531fddf9a93ebaa}{get\+Hit\+Offset}} () const
+\begin{DoxyCompactList}\small\item\em the hit\textquotesingle{}s center distance from the user \end{DoxyCompactList}\end{DoxyCompactItemize}
+\doxysubsection*{Additional Inherited Members}
+
+
+\doxysubsection{Detailed Description}
+A melee weapon, like a spoon. 
+
+Definition at line 9 of file Melee\+Weapon.\+h.
+
+
+
+\doxysubsection{Constructor \& Destructor Documentation}
+\mbox{\Hypertarget{classweapons_1_1_melee_weapon_a719614055440a5e7cfaf943dab856bb1}\label{classweapons_1_1_melee_weapon_a719614055440a5e7cfaf943dab856bb1}} 
+\index{weapons::MeleeWeapon@{weapons::MeleeWeapon}!MeleeWeapon@{MeleeWeapon}}
+\index{MeleeWeapon@{MeleeWeapon}!weapons::MeleeWeapon@{weapons::MeleeWeapon}}
+\doxysubsubsection{\texorpdfstring{MeleeWeapon()}{MeleeWeapon()}}
+{\footnotesize\ttfamily weapons\+::\+Melee\+Weapon\+::\+Melee\+Weapon (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{classrender_1_1_i_texture}{render\+::\+I\+Texture}} \&}]{texture,  }\item[{const std\+::string \&}]{name,  }\item[{float}]{cooldown\+Time,  }\item[{int}]{damage = {\ttfamily 10},  }\item[{const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&}]{pos = {\ttfamily \{~0,~0~\}} }\end{DoxyParamCaption})}
+
+
+
+Definition at line 27 of file Melee\+Weapon.\+cpp.
+
+
+
+\doxysubsection{Member Function Documentation}
+\mbox{\Hypertarget{classweapons_1_1_melee_weapon_a6938e2705c6353b4b2782e8a4186de17}\label{classweapons_1_1_melee_weapon_a6938e2705c6353b4b2782e8a4186de17}} 
+\index{weapons::MeleeWeapon@{weapons::MeleeWeapon}!damageEntity@{damageEntity}}
+\index{damageEntity@{damageEntity}!weapons::MeleeWeapon@{weapons::MeleeWeapon}}
+\doxysubsubsection{\texorpdfstring{damageEntity()}{damageEntity()}}
+{\footnotesize\ttfamily bool weapons\+::\+Melee\+Weapon\+::damage\+Entity (\begin{DoxyParamCaption}\item[{std\+::shared\+\_\+ptr$<$ \mbox{\hyperlink{classentities_1_1_entity}{Entity}} $>$}]{user,  }\item[{std\+::shared\+\_\+ptr$<$ \mbox{\hyperlink{classentities_1_1_entity}{Entity}} $>$ \&}]{victim }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [protected]}, {\ttfamily [virtual]}}
+
+
+
+Damage the victim. 
+
+
+\begin{DoxyParams}{Parameters}
+{\em user} & user \\
+\hline
+{\em victim} & victim \\
+\hline
+\end{DoxyParams}
+\begin{DoxyReturn}{Returns}
+true, if it could damage. false for a wall... 
+\end{DoxyReturn}
+
+
+Definition at line 12 of file Melee\+Weapon.\+cpp.
+
+\mbox{\Hypertarget{classweapons_1_1_melee_weapon_a59a5b959539d2c71605c1b6fbec3111b}\label{classweapons_1_1_melee_weapon_a59a5b959539d2c71605c1b6fbec3111b}} 
+\index{weapons::MeleeWeapon@{weapons::MeleeWeapon}!damageIf@{damageIf}}
+\index{damageIf@{damageIf}!weapons::MeleeWeapon@{weapons::MeleeWeapon}}
+\doxysubsubsection{\texorpdfstring{damageIf()}{damageIf()}}
+{\footnotesize\ttfamily bool weapons\+::\+Melee\+Weapon\+::damage\+If (\begin{DoxyParamCaption}\item[{std\+::shared\+\_\+ptr$<$ \mbox{\hyperlink{classentities_1_1_entity}{Entity}} $>$ \&}]{user,  }\item[{std\+::function$<$ bool(std\+::shared\+\_\+ptr$<$ \mbox{\hyperlink{classentities_1_1_entity}{Entity}} $>$ self, std\+::shared\+\_\+ptr$<$ \mbox{\hyperlink{classentities_1_1_entity}{Entity}} $>$ other)$>$}]{predicate }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [protected]}, {\ttfamily [virtual]}}
+
+
+
+Tries to damage every entity in a range. 
+
+
+\begin{DoxyParams}{Parameters}
+{\em user} & user \\
+\hline
+{\em predicate} & range selector predicate \\
+\hline
+\end{DoxyParams}
+\begin{DoxyReturn}{Returns}
+true, if it could damage at least one entity 
+\end{DoxyReturn}
+
+
+Definition at line 16 of file Melee\+Weapon.\+cpp.
+
+\mbox{\Hypertarget{classweapons_1_1_melee_weapon_a2636c0b628f8fa52d269bb2dab0b21bd}\label{classweapons_1_1_melee_weapon_a2636c0b628f8fa52d269bb2dab0b21bd}} 
+\index{weapons::MeleeWeapon@{weapons::MeleeWeapon}!getDamage@{getDamage}}
+\index{getDamage@{getDamage}!weapons::MeleeWeapon@{weapons::MeleeWeapon}}
+\doxysubsubsection{\texorpdfstring{getDamage()}{getDamage()}}
+{\footnotesize\ttfamily int weapons\+::\+Melee\+Weapon\+::get\+Damage (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [protected]}, {\ttfamily [virtual]}}
+
+
+
+Definition at line 8 of file Melee\+Weapon.\+cpp.
+
+\mbox{\Hypertarget{classweapons_1_1_melee_weapon_ac6a6b662df60c1927531fddf9a93ebaa}\label{classweapons_1_1_melee_weapon_ac6a6b662df60c1927531fddf9a93ebaa}} 
+\index{weapons::MeleeWeapon@{weapons::MeleeWeapon}!getHitOffset@{getHitOffset}}
+\index{getHitOffset@{getHitOffset}!weapons::MeleeWeapon@{weapons::MeleeWeapon}}
+\doxysubsubsection{\texorpdfstring{getHitOffset()}{getHitOffset()}}
+{\footnotesize\ttfamily float weapons\+::\+Melee\+Weapon\+::get\+Hit\+Offset (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [protected]}, {\ttfamily [virtual]}}
+
+
+
+the hit\textquotesingle{}s center distance from the user 
+
+\begin{DoxyReturn}{Returns}
+float 
+\end{DoxyReturn}
+
+
+Reimplemented in \mbox{\hyperlink{classweapons_1_1_typical_melee_weapon_a74cb37d45c599296e443858b73cd1d97}{weapons\+::\+Typical\+Melee\+Weapon}}.
+
+
+
+Definition at line 40 of file Melee\+Weapon.\+cpp.
+
+\mbox{\Hypertarget{classweapons_1_1_melee_weapon_af14b624f27592421fc117c4fa81aba1b}\label{classweapons_1_1_melee_weapon_af14b624f27592421fc117c4fa81aba1b}} 
+\index{weapons::MeleeWeapon@{weapons::MeleeWeapon}!getPredicator@{getPredicator}}
+\index{getPredicator@{getPredicator}!weapons::MeleeWeapon@{weapons::MeleeWeapon}}
+\doxysubsubsection{\texorpdfstring{getPredicator()}{getPredicator()}}
+{\footnotesize\ttfamily virtual std\+::function$<$bool(std\+::shared\+\_\+ptr$<$\mbox{\hyperlink{classentities_1_1_entity}{Entity}}$>$, std\+::shared\+\_\+ptr$<$\mbox{\hyperlink{classentities_1_1_entity}{Entity}}$>$)$>$ weapons\+::\+Melee\+Weapon\+::get\+Predicator (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&}]{direction }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [protected]}, {\ttfamily [pure virtual]}}
+
+
+
+The predicate function getter for the damage\+If. 
+
+
+\begin{DoxyParams}{Parameters}
+{\em direction} & users direction \\
+\hline
+\end{DoxyParams}
+\begin{DoxyReturn}{Returns}
+the predicate 
+\end{DoxyReturn}
+
+
+Implemented in \mbox{\hyperlink{classweapons_1_1_typical_melee_weapon_ad367f50efc891a92b0f22f2404f39c5e}{weapons\+::\+Typical\+Melee\+Weapon}}.
+
+\mbox{\Hypertarget{classweapons_1_1_melee_weapon_ac1b9a6718cbf78cea0b9e5e0b8dcc64e}\label{classweapons_1_1_melee_weapon_ac1b9a6718cbf78cea0b9e5e0b8dcc64e}} 
+\index{weapons::MeleeWeapon@{weapons::MeleeWeapon}!use@{use}}
+\index{use@{use}!weapons::MeleeWeapon@{weapons::MeleeWeapon}}
+\doxysubsubsection{\texorpdfstring{use()}{use()}}
+{\footnotesize\ttfamily bool weapons\+::\+Melee\+Weapon\+::use (\begin{DoxyParamCaption}\item[{std\+::shared\+\_\+ptr$<$ \mbox{\hyperlink{classentities_1_1_entity}{Entity}} $>$}]{user,  }\item[{const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&}]{direction }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [override]}, {\ttfamily [virtual]}}
+
+\begin{DoxyReturn}{Returns}
+true, if you did something with it. false otherwise 
+\end{DoxyReturn}
+
+
+Implements \mbox{\hyperlink{classweapons_1_1_weapon_a8c6f12ac9ed871ebd0394f6b5c447868}{weapons\+::\+Weapon}}.
+
+
+
+Definition at line 30 of file Melee\+Weapon.\+cpp.
+
+
+
+The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize}
+\item 
+C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\mbox{\hyperlink{_melee_weapon_8h}{Melee\+Weapon.\+h}}\item 
+C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\mbox{\hyperlink{_melee_weapon_8cpp}{Melee\+Weapon.\+cpp}}\end{DoxyCompactItemize}
diff --git a/doxy/latex/classweapons_1_1_melee_weapon_1_1predicate_distance.tex b/doxy/latex/classweapons_1_1_melee_weapon_1_1predicate_distance.tex
new file mode 100644
index 0000000000000000000000000000000000000000..68e745065b0447aa6afc9b6f50c4014519840afe
--- /dev/null
+++ b/doxy/latex/classweapons_1_1_melee_weapon_1_1predicate_distance.tex
@@ -0,0 +1,86 @@
+\hypertarget{classweapons_1_1_melee_weapon_1_1predicate_distance}{}\doxysection{weapons\+::Melee\+Weapon\+::predicate\+Distance Class Reference}
+\label{classweapons_1_1_melee_weapon_1_1predicate_distance}\index{weapons::MeleeWeapon::predicateDistance@{weapons::MeleeWeapon::predicateDistance}}
+
+
+Functor to predicate entity distance. You can also use lambda, if you want.  
+
+
+
+
+{\ttfamily \#include $<$Melee\+Weapon.\+h$>$}
+
+\doxysubsection*{Public Member Functions}
+\begin{DoxyCompactItemize}
+\item 
+bool \mbox{\hyperlink{classweapons_1_1_melee_weapon_1_1predicate_distance_abfe04e14018aab1af891302df42255eb}{operator()}} (const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&use\+Pos, std\+::shared\+\_\+ptr$<$ \mbox{\hyperlink{classentities_1_1_entity}{Entity}} $>$ other) const
+\begin{DoxyCompactList}\small\item\em A functor. \end{DoxyCompactList}\end{DoxyCompactItemize}
+\doxysubsection*{Public Attributes}
+\begin{DoxyCompactItemize}
+\item 
+float \mbox{\hyperlink{classweapons_1_1_melee_weapon_1_1predicate_distance_ad75b973371de19453068e729b275af89}{min\+Distance}} = 0
+\item 
+float \mbox{\hyperlink{classweapons_1_1_melee_weapon_1_1predicate_distance_a3d53f314c59a28ad09a209299c6f04dc}{max\+Distance}} = 5
+\end{DoxyCompactItemize}
+
+
+\doxysubsection{Detailed Description}
+Functor to predicate entity distance. You can also use lambda, if you want. 
+
+Definition at line 43 of file Melee\+Weapon.\+h.
+
+
+
+\doxysubsection{Member Function Documentation}
+\mbox{\Hypertarget{classweapons_1_1_melee_weapon_1_1predicate_distance_abfe04e14018aab1af891302df42255eb}\label{classweapons_1_1_melee_weapon_1_1predicate_distance_abfe04e14018aab1af891302df42255eb}} 
+\index{weapons::MeleeWeapon::predicateDistance@{weapons::MeleeWeapon::predicateDistance}!operator()@{operator()}}
+\index{operator()@{operator()}!weapons::MeleeWeapon::predicateDistance@{weapons::MeleeWeapon::predicateDistance}}
+\doxysubsubsection{\texorpdfstring{operator()()}{operator()()}}
+{\footnotesize\ttfamily bool weapons\+::\+Melee\+Weapon\+::predicate\+Distance\+::operator() (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&}]{use\+Pos,  }\item[{std\+::shared\+\_\+ptr$<$ \mbox{\hyperlink{classentities_1_1_entity}{Entity}} $>$}]{other }\end{DoxyParamCaption}) const}
+
+
+
+A functor. 
+
+
+\begin{DoxyParams}{Parameters}
+{\em use\+Pos} & \+:D \\
+\hline
+{\em other} & \+:) \\
+\hline
+\end{DoxyParams}
+\begin{DoxyReturn}{Returns}
+is the potential victim in the range 
+\end{DoxyReturn}
+
+
+Definition at line 45 of file Melee\+Weapon.\+cpp.
+
+
+
+\doxysubsection{Member Data Documentation}
+\mbox{\Hypertarget{classweapons_1_1_melee_weapon_1_1predicate_distance_a3d53f314c59a28ad09a209299c6f04dc}\label{classweapons_1_1_melee_weapon_1_1predicate_distance_a3d53f314c59a28ad09a209299c6f04dc}} 
+\index{weapons::MeleeWeapon::predicateDistance@{weapons::MeleeWeapon::predicateDistance}!maxDistance@{maxDistance}}
+\index{maxDistance@{maxDistance}!weapons::MeleeWeapon::predicateDistance@{weapons::MeleeWeapon::predicateDistance}}
+\doxysubsubsection{\texorpdfstring{maxDistance}{maxDistance}}
+{\footnotesize\ttfamily float weapons\+::\+Melee\+Weapon\+::predicate\+Distance\+::max\+Distance = 5}
+
+
+
+Definition at line 47 of file Melee\+Weapon.\+h.
+
+\mbox{\Hypertarget{classweapons_1_1_melee_weapon_1_1predicate_distance_ad75b973371de19453068e729b275af89}\label{classweapons_1_1_melee_weapon_1_1predicate_distance_ad75b973371de19453068e729b275af89}} 
+\index{weapons::MeleeWeapon::predicateDistance@{weapons::MeleeWeapon::predicateDistance}!minDistance@{minDistance}}
+\index{minDistance@{minDistance}!weapons::MeleeWeapon::predicateDistance@{weapons::MeleeWeapon::predicateDistance}}
+\doxysubsubsection{\texorpdfstring{minDistance}{minDistance}}
+{\footnotesize\ttfamily float weapons\+::\+Melee\+Weapon\+::predicate\+Distance\+::min\+Distance = 0}
+
+
+
+Definition at line 46 of file Melee\+Weapon.\+h.
+
+
+
+The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize}
+\item 
+C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\mbox{\hyperlink{_melee_weapon_8h}{Melee\+Weapon.\+h}}\item 
+C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\mbox{\hyperlink{_melee_weapon_8cpp}{Melee\+Weapon.\+cpp}}\end{DoxyCompactItemize}
diff --git a/doxy/latex/classweapons_1_1_pistol.eps b/doxy/latex/classweapons_1_1_pistol.eps
new file mode 100644
index 0000000000000000000000000000000000000000..7f62881e9b5e74110b29fd9a6e5a5fc535165145
--- /dev/null
+++ b/doxy/latex/classweapons_1_1_pistol.eps
@@ -0,0 +1,221 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: ClassName
+%%Creator: Doxygen
+%%CreationDate: Time
+%%For: 
+%Magnification: 1.00
+%%Orientation: Portrait
+%%BoundingBox: 0 0 500 727.272705
+%%Pages: 0
+%%BeginSetup
+%%EndSetup
+%%EndComments
+
+% ----- variables -----
+
+/boxwidth 0 def
+/boxheight 40 def
+/fontheight 24 def
+/marginwidth 10 def
+/distx 20 def
+/disty 40 def
+/boundaspect 0.687500 def  % aspect ratio of the BoundingBox (width/height)
+/boundx 500 def
+/boundy boundx boundaspect div def
+/xspacing 0 def
+/yspacing 0 def
+/rows 6 def
+/cols 1 def
+/scalefactor 0 def
+/boxfont /Times-Roman findfont fontheight scalefont def
+
+% ----- procedures -----
+
+/dotted { [1 4] 0 setdash } def
+/dashed { [5] 0 setdash } def
+/solid  { [] 0 setdash } def
+
+/max % result = MAX(arg1,arg2)
+{
+  /a exch def
+  /b exch def
+  a b gt {a} {b} ifelse
+} def
+
+/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)
+{
+  0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max
+} def
+
+/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))
+{
+  /str exch def
+  /boxwidth boxwidth str stringwidth pop max def
+} def
+
+/box % draws a box with text 'arg1' at grid pos (arg2,arg3)
+{ gsave
+  2 setlinewidth
+  newpath
+  exch xspacing mul xoffset add
+  exch yspacing mul
+  moveto
+  boxwidth 0 rlineto 
+  0 boxheight rlineto 
+  boxwidth neg 0 rlineto 
+  0 boxheight neg rlineto 
+  closepath
+  dup stringwidth pop neg boxwidth add 2 div
+  boxheight fontheight 2 div sub 2 div
+  rmoveto show stroke
+  grestore
+} def  
+
+/mark
+{ newpath
+  exch xspacing mul xoffset add boxwidth add
+  exch yspacing mul
+  moveto
+  0 boxheight 4 div rlineto
+  boxheight neg 4 div boxheight neg 4 div rlineto
+  closepath
+  eofill
+  stroke
+} def
+
+/arrow
+{ newpath
+  moveto
+  3 -8 rlineto
+  -6 0 rlineto
+  3 8 rlineto
+  closepath
+  eofill
+  stroke
+} def
+
+/out % draws an output connector for the block at (arg1,arg2)
+{
+  newpath
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul boxheight add
+  /y exch def
+  /x exch def
+  x y moveto
+  0 disty 2 div rlineto 
+  stroke
+  1 eq { x y disty 2 div add arrow } if
+} def
+
+/in % draws an input connector for the block at (arg1,arg2)
+{
+  newpath
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul disty 2 div sub
+  /y exch def
+  /x exch def
+  x y moveto
+  0 disty 2 div rlineto
+  stroke
+  1 eq { x y disty 2 div add arrow } if
+} def
+
+/hedge
+{
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul boxheight 2 div sub
+  /y exch def
+  /x exch def
+  newpath
+  x y moveto
+  boxwidth 2 div distx add 0 rlineto
+  stroke
+  1 eq
+  { newpath x boxwidth 2 div distx add add y moveto
+    -8 3 rlineto
+    0 -6 rlineto
+    8 3 rlineto
+    closepath
+    eofill
+    stroke
+  } if
+} def
+
+/vedge
+{
+  /ye exch def
+  /ys exch def
+  /xs exch def
+  newpath
+  xs xspacing mul xoffset add boxwidth 2 div add dup
+  ys yspacing mul boxheight 2 div sub
+  moveto
+  ye yspacing mul boxheight 2 div sub
+  lineto
+  stroke
+} def
+
+/conn % connections the blocks from col 'arg1' to 'arg2' of row 'arg3'
+{
+  /ys exch def
+  /xe exch def
+  /xs exch def
+  newpath
+  xs xspacing mul xoffset add boxwidth 2 div add
+  ys yspacing mul disty 2 div sub
+  moveto
+  xspacing xe xs sub mul 0
+  rlineto
+  stroke
+} def
+
+% ----- main ------
+
+boxfont setfont
+1 boundaspect scale
+(weapons::Pistol) cw
+(weapons::RangedWeapon) cw
+(weapons::Weapon) cw
+(entities::Entity) cw
+(weapons::EMGun) cw
+(weapons::GlitchGun) cw
+/boxwidth boxwidth marginwidth 2 mul add def
+/xspacing boxwidth distx add def
+/yspacing boxheight disty add def
+/scalefactor 
+  boxwidth cols mul distx cols 1 sub mul add
+  boxheight rows mul disty rows 1 sub mul add boundaspect mul 
+  max def
+boundx scalefactor div boundy scalefactor div scale
+
+% ----- classes -----
+
+ (weapons::Pistol) 0.000000 2.000000 box
+ (weapons::RangedWeapon) 0.000000 3.000000 box
+ (weapons::Weapon) 0.000000 4.000000 box
+ (entities::Entity) 0.000000 5.000000 box
+ (weapons::EMGun) 0.000000 1.000000 box
+ (weapons::GlitchGun) 0.000000 0.000000 box
+
+% ----- relations -----
+
+solid
+0 0.000000 2.000000 out
+solid
+1 0.000000 3.000000 in
+solid
+0 0.000000 3.000000 out
+solid
+1 0.000000 4.000000 in
+solid
+0 0.000000 4.000000 out
+solid
+1 0.000000 5.000000 in
+solid
+1 0.000000 1.250000 out
+solid
+0 0.000000 1.750000 in
+solid
+1 0.000000 0.250000 out
+solid
+0 0.000000 0.750000 in
diff --git a/doxy/latex/classweapons_1_1_pistol.tex b/doxy/latex/classweapons_1_1_pistol.tex
new file mode 100644
index 0000000000000000000000000000000000000000..8b5f9249087dd89a6c0f1518058c1b4ee95e7dc6
--- /dev/null
+++ b/doxy/latex/classweapons_1_1_pistol.tex
@@ -0,0 +1,83 @@
+\hypertarget{classweapons_1_1_pistol}{}\doxysection{weapons\+::Pistol Class Reference}
+\label{classweapons_1_1_pistol}\index{weapons::Pistol@{weapons::Pistol}}
+
+
+Just a pistol, nothing too dangerous.  
+
+
+
+
+{\ttfamily \#include $<$Pistol.\+h$>$}
+
+Inheritance diagram for weapons\+::Pistol\+:\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[height=6.000000cm]{classweapons_1_1_pistol}
+\end{center}
+\end{figure}
+\doxysubsection*{Public Member Functions}
+\begin{DoxyCompactItemize}
+\item 
+void \mbox{\hyperlink{classweapons_1_1_pistol_a37f81949e55c373d7cf1f35cb59c1c25}{spawn\+Projectile}} (std\+::shared\+\_\+ptr$<$ \mbox{\hyperlink{classentities_1_1_entity}{Entity}} $>$ \&user, const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&\mbox{\hyperlink{classentities_1_1_entity_a04f9c2febe8d435138a07eb2f48ba96b}{pos}}, const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&v0, int \mbox{\hyperlink{classweapons_1_1_weapon_a397c372ffe2838f7c9c1ce67c06e55a9}{damage}}) override
+\begin{DoxyCompactList}\small\item\em Spawn a projectile entity. \end{DoxyCompactList}\item 
+\mbox{\hyperlink{classweapons_1_1_pistol_acc8c02692de7d84e5060da436b96ed86}{Pistol}} (\mbox{\hyperlink{classrender_1_1_i_texture}{render\+::\+I\+Texture}} \&texture, float \mbox{\hyperlink{classweapons_1_1_weapon_aa3d78dae766eee8279326026dbb46f1f}{cooldown\+Time}}, int \mbox{\hyperlink{classweapons_1_1_weapon_a397c372ffe2838f7c9c1ce67c06e55a9}{damage}}, float \mbox{\hyperlink{classweapons_1_1_ranged_weapon_a299d09c213670d80f7215e2310c92889}{projectile\+Speed}}=10, const std\+::string \&\mbox{\hyperlink{classweapons_1_1_weapon_a3dab7574419aed48f2a0f2d54cfcd825}{name}}=\char`\"{}Ranged\+Weapon\char`\"{}, const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&\mbox{\hyperlink{classentities_1_1_entity_a04f9c2febe8d435138a07eb2f48ba96b}{pos}}=\{ 0, 0 \})
+\end{DoxyCompactItemize}
+\doxysubsection*{Additional Inherited Members}
+
+
+\doxysubsection{Detailed Description}
+Just a pistol, nothing too dangerous. 
+
+Definition at line 10 of file Pistol.\+h.
+
+
+
+\doxysubsection{Constructor \& Destructor Documentation}
+\mbox{\Hypertarget{classweapons_1_1_pistol_acc8c02692de7d84e5060da436b96ed86}\label{classweapons_1_1_pistol_acc8c02692de7d84e5060da436b96ed86}} 
+\index{weapons::Pistol@{weapons::Pistol}!Pistol@{Pistol}}
+\index{Pistol@{Pistol}!weapons::Pistol@{weapons::Pistol}}
+\doxysubsubsection{\texorpdfstring{Pistol()}{Pistol()}}
+{\footnotesize\ttfamily weapons\+::\+Pistol\+::\+Pistol (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{classrender_1_1_i_texture}{render\+::\+I\+Texture}} \&}]{texture,  }\item[{float}]{cooldown\+Time,  }\item[{int}]{damage,  }\item[{float}]{projectile\+Speed = {\ttfamily 10},  }\item[{const std\+::string \&}]{name = {\ttfamily \char`\"{}RangedWeapon\char`\"{}},  }\item[{const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&}]{pos = {\ttfamily \{~0,~0~\}} }\end{DoxyParamCaption})}
+
+
+
+Definition at line 11 of file Pistol.\+cpp.
+
+
+
+\doxysubsection{Member Function Documentation}
+\mbox{\Hypertarget{classweapons_1_1_pistol_a37f81949e55c373d7cf1f35cb59c1c25}\label{classweapons_1_1_pistol_a37f81949e55c373d7cf1f35cb59c1c25}} 
+\index{weapons::Pistol@{weapons::Pistol}!spawnProjectile@{spawnProjectile}}
+\index{spawnProjectile@{spawnProjectile}!weapons::Pistol@{weapons::Pistol}}
+\doxysubsubsection{\texorpdfstring{spawnProjectile()}{spawnProjectile()}}
+{\footnotesize\ttfamily void weapons\+::\+Pistol\+::spawn\+Projectile (\begin{DoxyParamCaption}\item[{std\+::shared\+\_\+ptr$<$ \mbox{\hyperlink{classentities_1_1_entity}{Entity}} $>$ \&}]{user,  }\item[{const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&}]{pos,  }\item[{const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&}]{v0,  }\item[{int}]{damage }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [override]}, {\ttfamily [virtual]}}
+
+
+
+Spawn a projectile entity. 
+
+
+\begin{DoxyParams}{Parameters}
+{\em user} & the user of the weapon \\
+\hline
+{\em pos} & where to \\
+\hline
+{\em v0} & what speed \\
+\hline
+{\em damage} & what damage \\
+\hline
+\end{DoxyParams}
+
+
+Implements \mbox{\hyperlink{classweapons_1_1_ranged_weapon_a6b6b8265efc6ecf60e36ab261fe6f360}{weapons\+::\+Ranged\+Weapon}}.
+
+
+
+Definition at line 15 of file Pistol.\+cpp.
+
+
+
+The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize}
+\item 
+C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\mbox{\hyperlink{_pistol_8h}{Pistol.\+h}}\item 
+C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\mbox{\hyperlink{_pistol_8cpp}{Pistol.\+cpp}}\end{DoxyCompactItemize}
diff --git a/doxy/latex/classweapons_1_1_ranged_weapon.eps b/doxy/latex/classweapons_1_1_ranged_weapon.eps
new file mode 100644
index 0000000000000000000000000000000000000000..c089f6fb0127d771d48e121de2b8398fdd68ffaa
--- /dev/null
+++ b/doxy/latex/classweapons_1_1_ranged_weapon.eps
@@ -0,0 +1,221 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: ClassName
+%%Creator: Doxygen
+%%CreationDate: Time
+%%For: 
+%Magnification: 1.00
+%%Orientation: Portrait
+%%BoundingBox: 0 0 500 727.272705
+%%Pages: 0
+%%BeginSetup
+%%EndSetup
+%%EndComments
+
+% ----- variables -----
+
+/boxwidth 0 def
+/boxheight 40 def
+/fontheight 24 def
+/marginwidth 10 def
+/distx 20 def
+/disty 40 def
+/boundaspect 0.687500 def  % aspect ratio of the BoundingBox (width/height)
+/boundx 500 def
+/boundy boundx boundaspect div def
+/xspacing 0 def
+/yspacing 0 def
+/rows 6 def
+/cols 1 def
+/scalefactor 0 def
+/boxfont /Times-Roman findfont fontheight scalefont def
+
+% ----- procedures -----
+
+/dotted { [1 4] 0 setdash } def
+/dashed { [5] 0 setdash } def
+/solid  { [] 0 setdash } def
+
+/max % result = MAX(arg1,arg2)
+{
+  /a exch def
+  /b exch def
+  a b gt {a} {b} ifelse
+} def
+
+/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)
+{
+  0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max
+} def
+
+/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))
+{
+  /str exch def
+  /boxwidth boxwidth str stringwidth pop max def
+} def
+
+/box % draws a box with text 'arg1' at grid pos (arg2,arg3)
+{ gsave
+  2 setlinewidth
+  newpath
+  exch xspacing mul xoffset add
+  exch yspacing mul
+  moveto
+  boxwidth 0 rlineto 
+  0 boxheight rlineto 
+  boxwidth neg 0 rlineto 
+  0 boxheight neg rlineto 
+  closepath
+  dup stringwidth pop neg boxwidth add 2 div
+  boxheight fontheight 2 div sub 2 div
+  rmoveto show stroke
+  grestore
+} def  
+
+/mark
+{ newpath
+  exch xspacing mul xoffset add boxwidth add
+  exch yspacing mul
+  moveto
+  0 boxheight 4 div rlineto
+  boxheight neg 4 div boxheight neg 4 div rlineto
+  closepath
+  eofill
+  stroke
+} def
+
+/arrow
+{ newpath
+  moveto
+  3 -8 rlineto
+  -6 0 rlineto
+  3 8 rlineto
+  closepath
+  eofill
+  stroke
+} def
+
+/out % draws an output connector for the block at (arg1,arg2)
+{
+  newpath
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul boxheight add
+  /y exch def
+  /x exch def
+  x y moveto
+  0 disty 2 div rlineto 
+  stroke
+  1 eq { x y disty 2 div add arrow } if
+} def
+
+/in % draws an input connector for the block at (arg1,arg2)
+{
+  newpath
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul disty 2 div sub
+  /y exch def
+  /x exch def
+  x y moveto
+  0 disty 2 div rlineto
+  stroke
+  1 eq { x y disty 2 div add arrow } if
+} def
+
+/hedge
+{
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul boxheight 2 div sub
+  /y exch def
+  /x exch def
+  newpath
+  x y moveto
+  boxwidth 2 div distx add 0 rlineto
+  stroke
+  1 eq
+  { newpath x boxwidth 2 div distx add add y moveto
+    -8 3 rlineto
+    0 -6 rlineto
+    8 3 rlineto
+    closepath
+    eofill
+    stroke
+  } if
+} def
+
+/vedge
+{
+  /ye exch def
+  /ys exch def
+  /xs exch def
+  newpath
+  xs xspacing mul xoffset add boxwidth 2 div add dup
+  ys yspacing mul boxheight 2 div sub
+  moveto
+  ye yspacing mul boxheight 2 div sub
+  lineto
+  stroke
+} def
+
+/conn % connections the blocks from col 'arg1' to 'arg2' of row 'arg3'
+{
+  /ys exch def
+  /xe exch def
+  /xs exch def
+  newpath
+  xs xspacing mul xoffset add boxwidth 2 div add
+  ys yspacing mul disty 2 div sub
+  moveto
+  xspacing xe xs sub mul 0
+  rlineto
+  stroke
+} def
+
+% ----- main ------
+
+boxfont setfont
+1 boundaspect scale
+(weapons::RangedWeapon) cw
+(weapons::Weapon) cw
+(entities::Entity) cw
+(weapons::Pistol) cw
+(weapons::EMGun) cw
+(weapons::GlitchGun) cw
+/boxwidth boxwidth marginwidth 2 mul add def
+/xspacing boxwidth distx add def
+/yspacing boxheight disty add def
+/scalefactor 
+  boxwidth cols mul distx cols 1 sub mul add
+  boxheight rows mul disty rows 1 sub mul add boundaspect mul 
+  max def
+boundx scalefactor div boundy scalefactor div scale
+
+% ----- classes -----
+
+ (weapons::RangedWeapon) 0.000000 3.000000 box
+ (weapons::Weapon) 0.000000 4.000000 box
+ (entities::Entity) 0.000000 5.000000 box
+ (weapons::Pistol) 0.000000 2.000000 box
+ (weapons::EMGun) 0.000000 1.000000 box
+ (weapons::GlitchGun) 0.000000 0.000000 box
+
+% ----- relations -----
+
+solid
+0 0.000000 3.000000 out
+solid
+1 0.000000 4.000000 in
+solid
+0 0.000000 4.000000 out
+solid
+1 0.000000 5.000000 in
+solid
+1 0.000000 2.250000 out
+solid
+0 0.000000 2.750000 in
+solid
+1 0.000000 1.250000 out
+solid
+0 0.000000 1.750000 in
+solid
+1 0.000000 0.250000 out
+solid
+0 0.000000 0.750000 in
diff --git a/doxy/latex/classweapons_1_1_ranged_weapon.tex b/doxy/latex/classweapons_1_1_ranged_weapon.tex
new file mode 100644
index 0000000000000000000000000000000000000000..b1c8faa864f730f1f9593092e4562d5d4a279d9f
--- /dev/null
+++ b/doxy/latex/classweapons_1_1_ranged_weapon.tex
@@ -0,0 +1,145 @@
+\hypertarget{classweapons_1_1_ranged_weapon}{}\doxysection{weapons\+::Ranged\+Weapon Class Reference}
+\label{classweapons_1_1_ranged_weapon}\index{weapons::RangedWeapon@{weapons::RangedWeapon}}
+
+
+Any weapon, what does shoot. not melee.  
+
+
+
+
+{\ttfamily \#include $<$Ranged\+Weapon.\+h$>$}
+
+Inheritance diagram for weapons\+::Ranged\+Weapon\+:\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[height=6.000000cm]{classweapons_1_1_ranged_weapon}
+\end{center}
+\end{figure}
+\doxysubsection*{Public Member Functions}
+\begin{DoxyCompactItemize}
+\item 
+\mbox{\hyperlink{classweapons_1_1_ranged_weapon_add8afffc63175911e5f81b3ce43d135f}{Ranged\+Weapon}} (\mbox{\hyperlink{classrender_1_1_i_texture}{render\+::\+I\+Texture}} \&texture, float \mbox{\hyperlink{classweapons_1_1_weapon_aa3d78dae766eee8279326026dbb46f1f}{cooldown\+Time}}, int \mbox{\hyperlink{classweapons_1_1_weapon_a397c372ffe2838f7c9c1ce67c06e55a9}{damage}}, float \mbox{\hyperlink{classweapons_1_1_ranged_weapon_a299d09c213670d80f7215e2310c92889}{projectile\+Speed}}=10, const std\+::string \&\mbox{\hyperlink{classweapons_1_1_weapon_a3dab7574419aed48f2a0f2d54cfcd825}{name}}=\char`\"{}Ranged\+Weapon\char`\"{}, const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&\mbox{\hyperlink{classentities_1_1_entity_a04f9c2febe8d435138a07eb2f48ba96b}{pos}}=\{ 0, 0 \})
+\item 
+bool \mbox{\hyperlink{classweapons_1_1_ranged_weapon_a0e8915ad79021eb8fd79a1a3d7b1c92c}{use}} (std\+::shared\+\_\+ptr$<$ \mbox{\hyperlink{classentities_1_1_entity}{Entity}} $>$ user, const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&direction) override
+\end{DoxyCompactItemize}
+\doxysubsection*{Static Public Attributes}
+\begin{DoxyCompactItemize}
+\item 
+static const \mbox{\hyperlink{classweapons_1_1_pistol}{Pistol}} \mbox{\hyperlink{classweapons_1_1_ranged_weapon_a2c916fa61105c656187e1f6f41fa4fab}{pistol}}
+\item 
+static const \mbox{\hyperlink{classweapons_1_1_e_m_gun}{E\+M\+Gun}} \mbox{\hyperlink{classweapons_1_1_ranged_weapon_acf33d7619066026e823986ec5ec51a97}{emgun}}
+\end{DoxyCompactItemize}
+\doxysubsection*{Protected Member Functions}
+\begin{DoxyCompactItemize}
+\item 
+virtual void \mbox{\hyperlink{classweapons_1_1_ranged_weapon_a6b6b8265efc6ecf60e36ab261fe6f360}{spawn\+Projectile}} (std\+::shared\+\_\+ptr$<$ \mbox{\hyperlink{classentities_1_1_entity}{Entity}} $>$ \&user, const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&\mbox{\hyperlink{classentities_1_1_entity_a04f9c2febe8d435138a07eb2f48ba96b}{pos}}, const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&v0, int \mbox{\hyperlink{classweapons_1_1_weapon_a397c372ffe2838f7c9c1ce67c06e55a9}{damage}})=0
+\begin{DoxyCompactList}\small\item\em Spawn a projectile entity. \end{DoxyCompactList}\end{DoxyCompactItemize}
+\doxysubsection*{Protected Attributes}
+\begin{DoxyCompactItemize}
+\item 
+float \mbox{\hyperlink{classweapons_1_1_ranged_weapon_a299d09c213670d80f7215e2310c92889}{projectile\+Speed}}
+\end{DoxyCompactItemize}
+
+
+\doxysubsection{Detailed Description}
+Any weapon, what does shoot. not melee. 
+
+Definition at line 12 of file Ranged\+Weapon.\+h.
+
+
+
+\doxysubsection{Constructor \& Destructor Documentation}
+\mbox{\Hypertarget{classweapons_1_1_ranged_weapon_add8afffc63175911e5f81b3ce43d135f}\label{classweapons_1_1_ranged_weapon_add8afffc63175911e5f81b3ce43d135f}} 
+\index{weapons::RangedWeapon@{weapons::RangedWeapon}!RangedWeapon@{RangedWeapon}}
+\index{RangedWeapon@{RangedWeapon}!weapons::RangedWeapon@{weapons::RangedWeapon}}
+\doxysubsubsection{\texorpdfstring{RangedWeapon()}{RangedWeapon()}}
+{\footnotesize\ttfamily weapons\+::\+Ranged\+Weapon\+::\+Ranged\+Weapon (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{classrender_1_1_i_texture}{render\+::\+I\+Texture}} \&}]{texture,  }\item[{float}]{cooldown\+Time,  }\item[{int}]{damage,  }\item[{float}]{projectile\+Speed = {\ttfamily 10},  }\item[{const std\+::string \&}]{name = {\ttfamily \char`\"{}RangedWeapon\char`\"{}},  }\item[{const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&}]{pos = {\ttfamily \{~0,~0~\}} }\end{DoxyParamCaption})}
+
+
+
+Definition at line 7 of file Ranged\+Weapon.\+cpp.
+
+
+
+\doxysubsection{Member Function Documentation}
+\mbox{\Hypertarget{classweapons_1_1_ranged_weapon_a6b6b8265efc6ecf60e36ab261fe6f360}\label{classweapons_1_1_ranged_weapon_a6b6b8265efc6ecf60e36ab261fe6f360}} 
+\index{weapons::RangedWeapon@{weapons::RangedWeapon}!spawnProjectile@{spawnProjectile}}
+\index{spawnProjectile@{spawnProjectile}!weapons::RangedWeapon@{weapons::RangedWeapon}}
+\doxysubsubsection{\texorpdfstring{spawnProjectile()}{spawnProjectile()}}
+{\footnotesize\ttfamily virtual void weapons\+::\+Ranged\+Weapon\+::spawn\+Projectile (\begin{DoxyParamCaption}\item[{std\+::shared\+\_\+ptr$<$ \mbox{\hyperlink{classentities_1_1_entity}{Entity}} $>$ \&}]{user,  }\item[{const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&}]{pos,  }\item[{const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&}]{v0,  }\item[{int}]{damage }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [protected]}, {\ttfamily [pure virtual]}}
+
+
+
+Spawn a projectile entity. 
+
+
+\begin{DoxyParams}{Parameters}
+{\em user} & the user of the weapon \\
+\hline
+{\em pos} & where to \\
+\hline
+{\em v0} & what speed \\
+\hline
+{\em damage} & what damage \\
+\hline
+\end{DoxyParams}
+
+
+Implemented in \mbox{\hyperlink{classweapons_1_1_pistol_a37f81949e55c373d7cf1f35cb59c1c25}{weapons\+::\+Pistol}}, and \mbox{\hyperlink{classweapons_1_1_glitch_gun_a9268757aeb63315254d6a13df8ed0ba4}{weapons\+::\+Glitch\+Gun}}.
+
+\mbox{\Hypertarget{classweapons_1_1_ranged_weapon_a0e8915ad79021eb8fd79a1a3d7b1c92c}\label{classweapons_1_1_ranged_weapon_a0e8915ad79021eb8fd79a1a3d7b1c92c}} 
+\index{weapons::RangedWeapon@{weapons::RangedWeapon}!use@{use}}
+\index{use@{use}!weapons::RangedWeapon@{weapons::RangedWeapon}}
+\doxysubsubsection{\texorpdfstring{use()}{use()}}
+{\footnotesize\ttfamily bool weapons\+::\+Ranged\+Weapon\+::use (\begin{DoxyParamCaption}\item[{std\+::shared\+\_\+ptr$<$ \mbox{\hyperlink{classentities_1_1_entity}{Entity}} $>$}]{user,  }\item[{const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&}]{direction }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [override]}, {\ttfamily [virtual]}}
+
+\begin{DoxyReturn}{Returns}
+true, if you did something with it. false otherwise 
+\end{DoxyReturn}
+
+
+Implements \mbox{\hyperlink{classweapons_1_1_weapon_a8c6f12ac9ed871ebd0394f6b5c447868}{weapons\+::\+Weapon}}.
+
+
+
+Definition at line 10 of file Ranged\+Weapon.\+cpp.
+
+
+
+\doxysubsection{Member Data Documentation}
+\mbox{\Hypertarget{classweapons_1_1_ranged_weapon_acf33d7619066026e823986ec5ec51a97}\label{classweapons_1_1_ranged_weapon_acf33d7619066026e823986ec5ec51a97}} 
+\index{weapons::RangedWeapon@{weapons::RangedWeapon}!emgun@{emgun}}
+\index{emgun@{emgun}!weapons::RangedWeapon@{weapons::RangedWeapon}}
+\doxysubsubsection{\texorpdfstring{emgun}{emgun}}
+{\footnotesize\ttfamily const \mbox{\hyperlink{classweapons_1_1_e_m_gun}{E\+M\+Gun}} weapons\+::\+Ranged\+Weapon\+::emgun\hspace{0.3cm}{\ttfamily [static]}}
+
+
+
+Definition at line 17 of file Ranged\+Weapon.\+h.
+
+\mbox{\Hypertarget{classweapons_1_1_ranged_weapon_a2c916fa61105c656187e1f6f41fa4fab}\label{classweapons_1_1_ranged_weapon_a2c916fa61105c656187e1f6f41fa4fab}} 
+\index{weapons::RangedWeapon@{weapons::RangedWeapon}!pistol@{pistol}}
+\index{pistol@{pistol}!weapons::RangedWeapon@{weapons::RangedWeapon}}
+\doxysubsubsection{\texorpdfstring{pistol}{pistol}}
+{\footnotesize\ttfamily const \mbox{\hyperlink{classweapons_1_1_pistol}{Pistol}} weapons\+::\+Ranged\+Weapon\+::pistol\hspace{0.3cm}{\ttfamily [static]}}
+
+
+
+Definition at line 16 of file Ranged\+Weapon.\+h.
+
+\mbox{\Hypertarget{classweapons_1_1_ranged_weapon_a299d09c213670d80f7215e2310c92889}\label{classweapons_1_1_ranged_weapon_a299d09c213670d80f7215e2310c92889}} 
+\index{weapons::RangedWeapon@{weapons::RangedWeapon}!projectileSpeed@{projectileSpeed}}
+\index{projectileSpeed@{projectileSpeed}!weapons::RangedWeapon@{weapons::RangedWeapon}}
+\doxysubsubsection{\texorpdfstring{projectileSpeed}{projectileSpeed}}
+{\footnotesize\ttfamily float weapons\+::\+Ranged\+Weapon\+::projectile\+Speed\hspace{0.3cm}{\ttfamily [protected]}}
+
+
+
+Definition at line 20 of file Ranged\+Weapon.\+h.
+
+
+
+The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize}
+\item 
+C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\mbox{\hyperlink{_ranged_weapon_8h}{Ranged\+Weapon.\+h}}\item 
+C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\mbox{\hyperlink{_ranged_weapon_8cpp}{Ranged\+Weapon.\+cpp}}\end{DoxyCompactItemize}
diff --git a/doxy/latex/classweapons_1_1_typical_melee_weapon.eps b/doxy/latex/classweapons_1_1_typical_melee_weapon.eps
new file mode 100644
index 0000000000000000000000000000000000000000..98d4c29e7cfbb2ebaf7a804fcf13ce1f1b3f7dba
--- /dev/null
+++ b/doxy/latex/classweapons_1_1_typical_melee_weapon.eps
@@ -0,0 +1,209 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: ClassName
+%%Creator: Doxygen
+%%CreationDate: Time
+%%For: 
+%Magnification: 1.00
+%%Orientation: Portrait
+%%BoundingBox: 0 0 500 404.040405
+%%Pages: 0
+%%BeginSetup
+%%EndSetup
+%%EndComments
+
+% ----- variables -----
+
+/boxwidth 0 def
+/boxheight 40 def
+/fontheight 24 def
+/marginwidth 10 def
+/distx 20 def
+/disty 40 def
+/boundaspect 1.237500 def  % aspect ratio of the BoundingBox (width/height)
+/boundx 500 def
+/boundy boundx boundaspect div def
+/xspacing 0 def
+/yspacing 0 def
+/rows 4 def
+/cols 1 def
+/scalefactor 0 def
+/boxfont /Times-Roman findfont fontheight scalefont def
+
+% ----- procedures -----
+
+/dotted { [1 4] 0 setdash } def
+/dashed { [5] 0 setdash } def
+/solid  { [] 0 setdash } def
+
+/max % result = MAX(arg1,arg2)
+{
+  /a exch def
+  /b exch def
+  a b gt {a} {b} ifelse
+} def
+
+/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)
+{
+  0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max
+} def
+
+/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))
+{
+  /str exch def
+  /boxwidth boxwidth str stringwidth pop max def
+} def
+
+/box % draws a box with text 'arg1' at grid pos (arg2,arg3)
+{ gsave
+  2 setlinewidth
+  newpath
+  exch xspacing mul xoffset add
+  exch yspacing mul
+  moveto
+  boxwidth 0 rlineto 
+  0 boxheight rlineto 
+  boxwidth neg 0 rlineto 
+  0 boxheight neg rlineto 
+  closepath
+  dup stringwidth pop neg boxwidth add 2 div
+  boxheight fontheight 2 div sub 2 div
+  rmoveto show stroke
+  grestore
+} def  
+
+/mark
+{ newpath
+  exch xspacing mul xoffset add boxwidth add
+  exch yspacing mul
+  moveto
+  0 boxheight 4 div rlineto
+  boxheight neg 4 div boxheight neg 4 div rlineto
+  closepath
+  eofill
+  stroke
+} def
+
+/arrow
+{ newpath
+  moveto
+  3 -8 rlineto
+  -6 0 rlineto
+  3 8 rlineto
+  closepath
+  eofill
+  stroke
+} def
+
+/out % draws an output connector for the block at (arg1,arg2)
+{
+  newpath
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul boxheight add
+  /y exch def
+  /x exch def
+  x y moveto
+  0 disty 2 div rlineto 
+  stroke
+  1 eq { x y disty 2 div add arrow } if
+} def
+
+/in % draws an input connector for the block at (arg1,arg2)
+{
+  newpath
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul disty 2 div sub
+  /y exch def
+  /x exch def
+  x y moveto
+  0 disty 2 div rlineto
+  stroke
+  1 eq { x y disty 2 div add arrow } if
+} def
+
+/hedge
+{
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul boxheight 2 div sub
+  /y exch def
+  /x exch def
+  newpath
+  x y moveto
+  boxwidth 2 div distx add 0 rlineto
+  stroke
+  1 eq
+  { newpath x boxwidth 2 div distx add add y moveto
+    -8 3 rlineto
+    0 -6 rlineto
+    8 3 rlineto
+    closepath
+    eofill
+    stroke
+  } if
+} def
+
+/vedge
+{
+  /ye exch def
+  /ys exch def
+  /xs exch def
+  newpath
+  xs xspacing mul xoffset add boxwidth 2 div add dup
+  ys yspacing mul boxheight 2 div sub
+  moveto
+  ye yspacing mul boxheight 2 div sub
+  lineto
+  stroke
+} def
+
+/conn % connections the blocks from col 'arg1' to 'arg2' of row 'arg3'
+{
+  /ys exch def
+  /xe exch def
+  /xs exch def
+  newpath
+  xs xspacing mul xoffset add boxwidth 2 div add
+  ys yspacing mul disty 2 div sub
+  moveto
+  xspacing xe xs sub mul 0
+  rlineto
+  stroke
+} def
+
+% ----- main ------
+
+boxfont setfont
+1 boundaspect scale
+(weapons::TypicalMeleeWeapon) cw
+(weapons::MeleeWeapon) cw
+(weapons::Weapon) cw
+(entities::Entity) cw
+/boxwidth boxwidth marginwidth 2 mul add def
+/xspacing boxwidth distx add def
+/yspacing boxheight disty add def
+/scalefactor 
+  boxwidth cols mul distx cols 1 sub mul add
+  boxheight rows mul disty rows 1 sub mul add boundaspect mul 
+  max def
+boundx scalefactor div boundy scalefactor div scale
+
+% ----- classes -----
+
+ (weapons::TypicalMeleeWeapon) 0.000000 0.000000 box
+ (weapons::MeleeWeapon) 0.000000 1.000000 box
+ (weapons::Weapon) 0.000000 2.000000 box
+ (entities::Entity) 0.000000 3.000000 box
+
+% ----- relations -----
+
+solid
+0 0.000000 0.000000 out
+solid
+1 0.000000 1.000000 in
+solid
+0 0.000000 1.000000 out
+solid
+1 0.000000 2.000000 in
+solid
+0 0.000000 2.000000 out
+solid
+1 0.000000 3.000000 in
diff --git a/doxy/latex/classweapons_1_1_typical_melee_weapon.tex b/doxy/latex/classweapons_1_1_typical_melee_weapon.tex
new file mode 100644
index 0000000000000000000000000000000000000000..6ad0559adadf28176b3611d344c1f3b22fcd814d
--- /dev/null
+++ b/doxy/latex/classweapons_1_1_typical_melee_weapon.tex
@@ -0,0 +1,227 @@
+\hypertarget{classweapons_1_1_typical_melee_weapon}{}\doxysection{weapons\+::Typical\+Melee\+Weapon Class Reference}
+\label{classweapons_1_1_typical_melee_weapon}\index{weapons::TypicalMeleeWeapon@{weapons::TypicalMeleeWeapon}}
+
+
+A typical melee weapon. I want to do not typical melee weapons too.  
+
+
+
+
+{\ttfamily \#include $<$Typical\+Melee\+Weapon.\+h$>$}
+
+Inheritance diagram for weapons\+::Typical\+Melee\+Weapon\+:\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[height=4.000000cm]{classweapons_1_1_typical_melee_weapon}
+\end{center}
+\end{figure}
+\doxysubsection*{Public Member Functions}
+\begin{DoxyCompactItemize}
+\item 
+\mbox{\hyperlink{classweapons_1_1_typical_melee_weapon_a939cbdc05adab9adf58301cce00e3f8b}{Typical\+Melee\+Weapon}} (\mbox{\hyperlink{classrender_1_1_i_texture}{render\+::\+I\+Texture}} \&text, const std\+::string \&\mbox{\hyperlink{classweapons_1_1_weapon_a3dab7574419aed48f2a0f2d54cfcd825}{name}}, float \mbox{\hyperlink{classweapons_1_1_weapon_aa3d78dae766eee8279326026dbb46f1f}{cooldown\+Time}}, int \mbox{\hyperlink{classweapons_1_1_typical_melee_weapon_a00287ced5e67a7f91423596fac46606b}{damage}}, float range, float hit\+Offset=.\+5f, const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&\mbox{\hyperlink{classentities_1_1_entity_a04f9c2febe8d435138a07eb2f48ba96b}{pos}}=\{ 0, 0 \})
+\end{DoxyCompactItemize}
+\doxysubsection*{Static Public Attributes}
+\begin{DoxyCompactItemize}
+\item 
+static \mbox{\hyperlink{classweapons_1_1_typical_melee_weapon}{Typical\+Melee\+Weapon}} \mbox{\hyperlink{classweapons_1_1_typical_melee_weapon_a1eed0cf1fc89f495ccad84dd4acac0eb}{sword}}
+\item 
+static \mbox{\hyperlink{classweapons_1_1_typical_melee_weapon}{Typical\+Melee\+Weapon}} \mbox{\hyperlink{classweapons_1_1_typical_melee_weapon_ae623cc428bd32ef113d48d6ca15cf4c2}{long\+Sword}}
+\item 
+static \mbox{\hyperlink{classweapons_1_1_typical_melee_weapon}{Typical\+Melee\+Weapon}} \mbox{\hyperlink{classweapons_1_1_typical_melee_weapon_a1988a389241e423445c7b0f6ff2ed23f}{spoon}}
+\end{DoxyCompactItemize}
+\doxysubsection*{Protected Member Functions}
+\begin{DoxyCompactItemize}
+\item 
+\mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \mbox{\hyperlink{classweapons_1_1_typical_melee_weapon_ab60f5d99ae206d9064381b0c70b9a7a2}{get\+Hit\+Box\+Size}} () const override
+\begin{DoxyCompactList}\small\item\em half hitbox size \end{DoxyCompactList}\item 
+bool \mbox{\hyperlink{classweapons_1_1_typical_melee_weapon_a00287ced5e67a7f91423596fac46606b}{damage}} (int damage, \mbox{\hyperlink{classentities_1_1_entity}{Entity}} \&attacker) override
+\begin{DoxyCompactList}\small\item\em something damage this \end{DoxyCompactList}\item 
+std\+::function$<$ bool(std\+::shared\+\_\+ptr$<$ \mbox{\hyperlink{classentities_1_1_entity}{Entity}} $>$, std\+::shared\+\_\+ptr$<$ \mbox{\hyperlink{classentities_1_1_entity}{Entity}} $>$)$>$ \mbox{\hyperlink{classweapons_1_1_typical_melee_weapon_ad367f50efc891a92b0f22f2404f39c5e}{get\+Predicator}} (const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&direction) override
+\begin{DoxyCompactList}\small\item\em The predicate function getter for the damage\+If. \end{DoxyCompactList}\item 
+float \mbox{\hyperlink{classweapons_1_1_typical_melee_weapon_a74cb37d45c599296e443858b73cd1d97}{get\+Hit\+Offset}} () const override
+\begin{DoxyCompactList}\small\item\em the hit\textquotesingle{}s center distance from the user \end{DoxyCompactList}\end{DoxyCompactItemize}
+\doxysubsection*{Protected Attributes}
+\begin{DoxyCompactItemize}
+\item 
+float \mbox{\hyperlink{classweapons_1_1_typical_melee_weapon_a7822572a76104d2cd2d0a21cdfa754d7}{max\+Range}}
+\item 
+float \mbox{\hyperlink{classweapons_1_1_typical_melee_weapon_af33a1ff938b8068aaab0bd0ac943ca83}{attack\+Offset}}
+\end{DoxyCompactItemize}
+
+
+\doxysubsection{Detailed Description}
+A typical melee weapon. I want to do not typical melee weapons too. 
+
+Definition at line 7 of file Typical\+Melee\+Weapon.\+h.
+
+
+
+\doxysubsection{Constructor \& Destructor Documentation}
+\mbox{\Hypertarget{classweapons_1_1_typical_melee_weapon_a939cbdc05adab9adf58301cce00e3f8b}\label{classweapons_1_1_typical_melee_weapon_a939cbdc05adab9adf58301cce00e3f8b}} 
+\index{weapons::TypicalMeleeWeapon@{weapons::TypicalMeleeWeapon}!TypicalMeleeWeapon@{TypicalMeleeWeapon}}
+\index{TypicalMeleeWeapon@{TypicalMeleeWeapon}!weapons::TypicalMeleeWeapon@{weapons::TypicalMeleeWeapon}}
+\doxysubsubsection{\texorpdfstring{TypicalMeleeWeapon()}{TypicalMeleeWeapon()}}
+{\footnotesize\ttfamily weapons\+::\+Typical\+Melee\+Weapon\+::\+Typical\+Melee\+Weapon (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{classrender_1_1_i_texture}{render\+::\+I\+Texture}} \&}]{text,  }\item[{const std\+::string \&}]{name,  }\item[{float}]{cooldown\+Time,  }\item[{int}]{damage,  }\item[{float}]{range,  }\item[{float}]{hit\+Offset = {\ttfamily .5f},  }\item[{const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&}]{pos = {\ttfamily \{~0,~0~\}} }\end{DoxyParamCaption})}
+
+
+
+Definition at line 30 of file Typical\+Melee\+Weapon.\+cpp.
+
+
+
+\doxysubsection{Member Function Documentation}
+\mbox{\Hypertarget{classweapons_1_1_typical_melee_weapon_a00287ced5e67a7f91423596fac46606b}\label{classweapons_1_1_typical_melee_weapon_a00287ced5e67a7f91423596fac46606b}} 
+\index{weapons::TypicalMeleeWeapon@{weapons::TypicalMeleeWeapon}!damage@{damage}}
+\index{damage@{damage}!weapons::TypicalMeleeWeapon@{weapons::TypicalMeleeWeapon}}
+\doxysubsubsection{\texorpdfstring{damage()}{damage()}}
+{\footnotesize\ttfamily bool weapons\+::\+Typical\+Melee\+Weapon\+::damage (\begin{DoxyParamCaption}\item[{int}]{damage,  }\item[{\mbox{\hyperlink{classentities_1_1_entity}{Entity}} \&}]{attacker }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [override]}, {\ttfamily [protected]}, {\ttfamily [virtual]}}
+
+
+
+something damage this 
+
+
+\begin{DoxyParams}{Parameters}
+{\em damage} & how much damage should it take \\
+\hline
+{\em attacker} & who deal the damage. not the projectile, the entity \\
+\hline
+\end{DoxyParams}
+\begin{DoxyReturn}{Returns}
+did the entity take the damage or no (like a wall) 
+\end{DoxyReturn}
+
+
+Implements \mbox{\hyperlink{classentities_1_1_entity_af7fc9949fc50b1b31abb36a3d51b0597}{entities\+::\+Entity}}.
+
+
+
+Definition at line 10 of file Typical\+Melee\+Weapon.\+cpp.
+
+\mbox{\Hypertarget{classweapons_1_1_typical_melee_weapon_ab60f5d99ae206d9064381b0c70b9a7a2}\label{classweapons_1_1_typical_melee_weapon_ab60f5d99ae206d9064381b0c70b9a7a2}} 
+\index{weapons::TypicalMeleeWeapon@{weapons::TypicalMeleeWeapon}!getHitBoxSize@{getHitBoxSize}}
+\index{getHitBoxSize@{getHitBoxSize}!weapons::TypicalMeleeWeapon@{weapons::TypicalMeleeWeapon}}
+\doxysubsubsection{\texorpdfstring{getHitBoxSize()}{getHitBoxSize()}}
+{\footnotesize\ttfamily \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} weapons\+::\+Typical\+Melee\+Weapon\+::get\+Hit\+Box\+Size (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [override]}, {\ttfamily [protected]}, {\ttfamily [virtual]}}
+
+
+
+half hitbox size 
+
+\begin{DoxyReturn}{Returns}
+hitbox size as a vector 
+\end{DoxyReturn}
+
+
+Implements \mbox{\hyperlink{classentities_1_1_entity_a9cd7ba81ddbd978b8f43e9f10e97492f}{entities\+::\+Entity}}.
+
+
+
+Definition at line 6 of file Typical\+Melee\+Weapon.\+cpp.
+
+\mbox{\Hypertarget{classweapons_1_1_typical_melee_weapon_a74cb37d45c599296e443858b73cd1d97}\label{classweapons_1_1_typical_melee_weapon_a74cb37d45c599296e443858b73cd1d97}} 
+\index{weapons::TypicalMeleeWeapon@{weapons::TypicalMeleeWeapon}!getHitOffset@{getHitOffset}}
+\index{getHitOffset@{getHitOffset}!weapons::TypicalMeleeWeapon@{weapons::TypicalMeleeWeapon}}
+\doxysubsubsection{\texorpdfstring{getHitOffset()}{getHitOffset()}}
+{\footnotesize\ttfamily float weapons\+::\+Typical\+Melee\+Weapon\+::get\+Hit\+Offset (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [override]}, {\ttfamily [protected]}, {\ttfamily [virtual]}}
+
+
+
+the hit\textquotesingle{}s center distance from the user 
+
+\begin{DoxyReturn}{Returns}
+float 
+\end{DoxyReturn}
+
+
+Reimplemented from \mbox{\hyperlink{classweapons_1_1_melee_weapon_ac6a6b662df60c1927531fddf9a93ebaa}{weapons\+::\+Melee\+Weapon}}.
+
+
+
+Definition at line 25 of file Typical\+Melee\+Weapon.\+cpp.
+
+\mbox{\Hypertarget{classweapons_1_1_typical_melee_weapon_ad367f50efc891a92b0f22f2404f39c5e}\label{classweapons_1_1_typical_melee_weapon_ad367f50efc891a92b0f22f2404f39c5e}} 
+\index{weapons::TypicalMeleeWeapon@{weapons::TypicalMeleeWeapon}!getPredicator@{getPredicator}}
+\index{getPredicator@{getPredicator}!weapons::TypicalMeleeWeapon@{weapons::TypicalMeleeWeapon}}
+\doxysubsubsection{\texorpdfstring{getPredicator()}{getPredicator()}}
+{\footnotesize\ttfamily std\+::function$<$ bool(std\+::shared\+\_\+ptr$<$ \mbox{\hyperlink{classentities_1_1_entity}{Entity}} $>$, std\+::shared\+\_\+ptr$<$ \mbox{\hyperlink{classentities_1_1_entity}{Entity}} $>$)$>$ weapons\+::\+Typical\+Melee\+Weapon\+::get\+Predicator (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&}]{direction }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [override]}, {\ttfamily [protected]}, {\ttfamily [virtual]}}
+
+
+
+The predicate function getter for the damage\+If. 
+
+
+\begin{DoxyParams}{Parameters}
+{\em direction} & users direction \\
+\hline
+\end{DoxyParams}
+\begin{DoxyReturn}{Returns}
+the predicate 
+\end{DoxyReturn}
+
+
+Implements \mbox{\hyperlink{classweapons_1_1_melee_weapon_af14b624f27592421fc117c4fa81aba1b}{weapons\+::\+Melee\+Weapon}}.
+
+
+
+Definition at line 14 of file Typical\+Melee\+Weapon.\+cpp.
+
+
+
+\doxysubsection{Member Data Documentation}
+\mbox{\Hypertarget{classweapons_1_1_typical_melee_weapon_af33a1ff938b8068aaab0bd0ac943ca83}\label{classweapons_1_1_typical_melee_weapon_af33a1ff938b8068aaab0bd0ac943ca83}} 
+\index{weapons::TypicalMeleeWeapon@{weapons::TypicalMeleeWeapon}!attackOffset@{attackOffset}}
+\index{attackOffset@{attackOffset}!weapons::TypicalMeleeWeapon@{weapons::TypicalMeleeWeapon}}
+\doxysubsubsection{\texorpdfstring{attackOffset}{attackOffset}}
+{\footnotesize\ttfamily float weapons\+::\+Typical\+Melee\+Weapon\+::attack\+Offset\hspace{0.3cm}{\ttfamily [protected]}}
+
+
+
+Definition at line 20 of file Typical\+Melee\+Weapon.\+h.
+
+\mbox{\Hypertarget{classweapons_1_1_typical_melee_weapon_ae623cc428bd32ef113d48d6ca15cf4c2}\label{classweapons_1_1_typical_melee_weapon_ae623cc428bd32ef113d48d6ca15cf4c2}} 
+\index{weapons::TypicalMeleeWeapon@{weapons::TypicalMeleeWeapon}!longSword@{longSword}}
+\index{longSword@{longSword}!weapons::TypicalMeleeWeapon@{weapons::TypicalMeleeWeapon}}
+\doxysubsubsection{\texorpdfstring{longSword}{longSword}}
+{\footnotesize\ttfamily \mbox{\hyperlink{classweapons_1_1_typical_melee_weapon}{Typical\+Melee\+Weapon}} weapons\+::\+Typical\+Melee\+Weapon\+::long\+Sword\hspace{0.3cm}{\ttfamily [static]}}
+
+
+
+Definition at line 12 of file Typical\+Melee\+Weapon.\+h.
+
+\mbox{\Hypertarget{classweapons_1_1_typical_melee_weapon_a7822572a76104d2cd2d0a21cdfa754d7}\label{classweapons_1_1_typical_melee_weapon_a7822572a76104d2cd2d0a21cdfa754d7}} 
+\index{weapons::TypicalMeleeWeapon@{weapons::TypicalMeleeWeapon}!maxRange@{maxRange}}
+\index{maxRange@{maxRange}!weapons::TypicalMeleeWeapon@{weapons::TypicalMeleeWeapon}}
+\doxysubsubsection{\texorpdfstring{maxRange}{maxRange}}
+{\footnotesize\ttfamily float weapons\+::\+Typical\+Melee\+Weapon\+::max\+Range\hspace{0.3cm}{\ttfamily [protected]}}
+
+
+
+Definition at line 19 of file Typical\+Melee\+Weapon.\+h.
+
+\mbox{\Hypertarget{classweapons_1_1_typical_melee_weapon_a1988a389241e423445c7b0f6ff2ed23f}\label{classweapons_1_1_typical_melee_weapon_a1988a389241e423445c7b0f6ff2ed23f}} 
+\index{weapons::TypicalMeleeWeapon@{weapons::TypicalMeleeWeapon}!spoon@{spoon}}
+\index{spoon@{spoon}!weapons::TypicalMeleeWeapon@{weapons::TypicalMeleeWeapon}}
+\doxysubsubsection{\texorpdfstring{spoon}{spoon}}
+{\footnotesize\ttfamily \mbox{\hyperlink{classweapons_1_1_typical_melee_weapon}{Typical\+Melee\+Weapon}} weapons\+::\+Typical\+Melee\+Weapon\+::spoon\hspace{0.3cm}{\ttfamily [static]}}
+
+
+
+Definition at line 13 of file Typical\+Melee\+Weapon.\+h.
+
+\mbox{\Hypertarget{classweapons_1_1_typical_melee_weapon_a1eed0cf1fc89f495ccad84dd4acac0eb}\label{classweapons_1_1_typical_melee_weapon_a1eed0cf1fc89f495ccad84dd4acac0eb}} 
+\index{weapons::TypicalMeleeWeapon@{weapons::TypicalMeleeWeapon}!sword@{sword}}
+\index{sword@{sword}!weapons::TypicalMeleeWeapon@{weapons::TypicalMeleeWeapon}}
+\doxysubsubsection{\texorpdfstring{sword}{sword}}
+{\footnotesize\ttfamily \mbox{\hyperlink{classweapons_1_1_typical_melee_weapon}{Typical\+Melee\+Weapon}} weapons\+::\+Typical\+Melee\+Weapon\+::sword\hspace{0.3cm}{\ttfamily [static]}}
+
+
+
+Definition at line 11 of file Typical\+Melee\+Weapon.\+h.
+
+
+
+The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize}
+\item 
+C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\mbox{\hyperlink{_typical_melee_weapon_8h}{Typical\+Melee\+Weapon.\+h}}\item 
+C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\mbox{\hyperlink{_typical_melee_weapon_8cpp}{Typical\+Melee\+Weapon.\+cpp}}\end{DoxyCompactItemize}
diff --git a/doxy/latex/classweapons_1_1_weapon.eps b/doxy/latex/classweapons_1_1_weapon.eps
new file mode 100644
index 0000000000000000000000000000000000000000..7bf0e4838a131b6a1f60a68e0f81e0e1552ea043
--- /dev/null
+++ b/doxy/latex/classweapons_1_1_weapon.eps
@@ -0,0 +1,233 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: ClassName
+%%Creator: Doxygen
+%%CreationDate: Time
+%%For: 
+%Magnification: 1.00
+%%Orientation: Portrait
+%%BoundingBox: 0 0 500 303.030304
+%%Pages: 0
+%%BeginSetup
+%%EndSetup
+%%EndComments
+
+% ----- variables -----
+
+/boxwidth 0 def
+/boxheight 40 def
+/fontheight 24 def
+/marginwidth 10 def
+/distx 20 def
+/disty 40 def
+/boundaspect 1.650000 def  % aspect ratio of the BoundingBox (width/height)
+/boundx 500 def
+/boundy boundx boundaspect div def
+/xspacing 0 def
+/yspacing 0 def
+/rows 6 def
+/cols 2 def
+/scalefactor 0 def
+/boxfont /Times-Roman findfont fontheight scalefont def
+
+% ----- procedures -----
+
+/dotted { [1 4] 0 setdash } def
+/dashed { [5] 0 setdash } def
+/solid  { [] 0 setdash } def
+
+/max % result = MAX(arg1,arg2)
+{
+  /a exch def
+  /b exch def
+  a b gt {a} {b} ifelse
+} def
+
+/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)
+{
+  0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max
+} def
+
+/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))
+{
+  /str exch def
+  /boxwidth boxwidth str stringwidth pop max def
+} def
+
+/box % draws a box with text 'arg1' at grid pos (arg2,arg3)
+{ gsave
+  2 setlinewidth
+  newpath
+  exch xspacing mul xoffset add
+  exch yspacing mul
+  moveto
+  boxwidth 0 rlineto 
+  0 boxheight rlineto 
+  boxwidth neg 0 rlineto 
+  0 boxheight neg rlineto 
+  closepath
+  dup stringwidth pop neg boxwidth add 2 div
+  boxheight fontheight 2 div sub 2 div
+  rmoveto show stroke
+  grestore
+} def  
+
+/mark
+{ newpath
+  exch xspacing mul xoffset add boxwidth add
+  exch yspacing mul
+  moveto
+  0 boxheight 4 div rlineto
+  boxheight neg 4 div boxheight neg 4 div rlineto
+  closepath
+  eofill
+  stroke
+} def
+
+/arrow
+{ newpath
+  moveto
+  3 -8 rlineto
+  -6 0 rlineto
+  3 8 rlineto
+  closepath
+  eofill
+  stroke
+} def
+
+/out % draws an output connector for the block at (arg1,arg2)
+{
+  newpath
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul boxheight add
+  /y exch def
+  /x exch def
+  x y moveto
+  0 disty 2 div rlineto 
+  stroke
+  1 eq { x y disty 2 div add arrow } if
+} def
+
+/in % draws an input connector for the block at (arg1,arg2)
+{
+  newpath
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul disty 2 div sub
+  /y exch def
+  /x exch def
+  x y moveto
+  0 disty 2 div rlineto
+  stroke
+  1 eq { x y disty 2 div add arrow } if
+} def
+
+/hedge
+{
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul boxheight 2 div sub
+  /y exch def
+  /x exch def
+  newpath
+  x y moveto
+  boxwidth 2 div distx add 0 rlineto
+  stroke
+  1 eq
+  { newpath x boxwidth 2 div distx add add y moveto
+    -8 3 rlineto
+    0 -6 rlineto
+    8 3 rlineto
+    closepath
+    eofill
+    stroke
+  } if
+} def
+
+/vedge
+{
+  /ye exch def
+  /ys exch def
+  /xs exch def
+  newpath
+  xs xspacing mul xoffset add boxwidth 2 div add dup
+  ys yspacing mul boxheight 2 div sub
+  moveto
+  ye yspacing mul boxheight 2 div sub
+  lineto
+  stroke
+} def
+
+/conn % connections the blocks from col 'arg1' to 'arg2' of row 'arg3'
+{
+  /ys exch def
+  /xe exch def
+  /xs exch def
+  newpath
+  xs xspacing mul xoffset add boxwidth 2 div add
+  ys yspacing mul disty 2 div sub
+  moveto
+  xspacing xe xs sub mul 0
+  rlineto
+  stroke
+} def
+
+% ----- main ------
+
+boxfont setfont
+1 boundaspect scale
+(weapons::Weapon) cw
+(entities::Entity) cw
+(weapons::MeleeWeapon) cw
+(weapons::RangedWeapon) cw
+(weapons::TypicalMeleeWeapon) cw
+(weapons::Pistol) cw
+(weapons::EMGun) cw
+(weapons::GlitchGun) cw
+/boxwidth boxwidth marginwidth 2 mul add def
+/xspacing boxwidth distx add def
+/yspacing boxheight disty add def
+/scalefactor 
+  boxwidth cols mul distx cols 1 sub mul add
+  boxheight rows mul disty rows 1 sub mul add boundaspect mul 
+  max def
+boundx scalefactor div boundy scalefactor div scale
+
+% ----- classes -----
+
+ (weapons::Weapon) 0.500000 4.000000 box
+ (entities::Entity) 0.500000 5.000000 box
+ (weapons::MeleeWeapon) 0.000000 3.000000 box
+ (weapons::RangedWeapon) 1.000000 3.000000 box
+ (weapons::TypicalMeleeWeapon) 0.000000 2.000000 box
+ (weapons::Pistol) 1.000000 2.000000 box
+ (weapons::EMGun) 1.000000 1.000000 box
+ (weapons::GlitchGun) 1.000000 0.000000 box
+
+% ----- relations -----
+
+solid
+0 0.500000 4.000000 out
+solid
+1 0.500000 5.000000 in
+solid
+1 0.500000 3.250000 out
+solid
+0.000000 1.000000 4.000000 conn
+solid
+0 0.000000 3.750000 in
+solid
+1 0.000000 2.250000 out
+solid
+0 1.000000 3.750000 in
+solid
+1 1.000000 2.250000 out
+solid
+0 0.000000 2.750000 in
+solid
+0 1.000000 2.750000 in
+solid
+1 1.000000 1.250000 out
+solid
+0 1.000000 1.750000 in
+solid
+1 1.000000 0.250000 out
+solid
+0 1.000000 0.750000 in
diff --git a/doxy/latex/classweapons_1_1_weapon.tex b/doxy/latex/classweapons_1_1_weapon.tex
new file mode 100644
index 0000000000000000000000000000000000000000..d2996d3f0c5175adff991f7c7d0a576ed5db42be
--- /dev/null
+++ b/doxy/latex/classweapons_1_1_weapon.tex
@@ -0,0 +1,344 @@
+\hypertarget{classweapons_1_1_weapon}{}\doxysection{weapons\+::Weapon Class Reference}
+\label{classweapons_1_1_weapon}\index{weapons::Weapon@{weapons::Weapon}}
+
+
+You can throw it to the ground, this is why it\textquotesingle{}s an entity. But it will be possible to use it. and shoot enemies, or projectiles.  
+
+
+
+
+{\ttfamily \#include $<$Weapon.\+h$>$}
+
+Inheritance diagram for weapons\+::Weapon\+:\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[height=6.000000cm]{classweapons_1_1_weapon}
+\end{center}
+\end{figure}
+\doxysubsection*{Public Member Functions}
+\begin{DoxyCompactItemize}
+\item 
+\mbox{\hyperlink{classweapons_1_1_weapon_a28f7b716212ae6b4606cff82501e00a2}{Weapon}} (\mbox{\hyperlink{classrender_1_1_i_texture}{render\+::\+I\+Texture}} \&texture, float \mbox{\hyperlink{classweapons_1_1_weapon_aa3d78dae766eee8279326026dbb46f1f}{cooldown\+Time}}, int \mbox{\hyperlink{classweapons_1_1_weapon_a397c372ffe2838f7c9c1ce67c06e55a9}{damage}}=10, const std\+::string \&\mbox{\hyperlink{classweapons_1_1_weapon_a3dab7574419aed48f2a0f2d54cfcd825}{name}}=\char`\"{}Weapon\char`\"{}, const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&\mbox{\hyperlink{classentities_1_1_entity_a04f9c2febe8d435138a07eb2f48ba96b}{pos}}=\{ 0, 0 \})
+\item 
+virtual bool \mbox{\hyperlink{classweapons_1_1_weapon_a8c6f12ac9ed871ebd0394f6b5c447868}{use}} (std\+::shared\+\_\+ptr$<$ \mbox{\hyperlink{classentities_1_1_entity}{Entity}} $>$ user, const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&direction)=0
+\item 
+void \mbox{\hyperlink{classweapons_1_1_weapon_a92ae1db47ca866d828f8b09c6de5a3f6}{tick}} (\mbox{\hyperlink{class_game_client}{Game\+Client}} \&client, float deltaT, std\+::shared\+\_\+ptr$<$ \mbox{\hyperlink{classentities_1_1_entity}{Entity}} $>$ \&shared\+\_\+this) override
+\begin{DoxyCompactList}\small\item\em tick, if on the ground. It does charge energy, or whatever. \end{DoxyCompactList}\item 
+virtual bool \mbox{\hyperlink{classweapons_1_1_weapon_a1cbf391f196bd151f3e3f1ae1e316088}{update}} (float d\+Tick)
+\begin{DoxyCompactList}\small\item\em Update the weapon in a Character\textquotesingle{}s inventory. \end{DoxyCompactList}\item 
+virtual float \mbox{\hyperlink{classweapons_1_1_weapon_a9626ba57d509b1ee0fbe7f900d5181c6}{get\+Cooldown\+Bar}} ()
+\begin{DoxyCompactList}\small\item\em 0 -\/ 1 cooldown, 1 is ready to use, more than one makes sense, like 2 charges \end{DoxyCompactList}\item 
+bool \mbox{\hyperlink{classweapons_1_1_weapon_aaf97827d27191b7b437ef1be96d6ac2c}{can\+Be\+Removed}} () const override
+\begin{DoxyCompactList}\small\item\em Can be removed form the ground. \end{DoxyCompactList}\item 
+virtual void \mbox{\hyperlink{classweapons_1_1_weapon_ace9c44751879af7382585c3338d4bc47}{set\+Pick\+Up}} (bool bl)
+\begin{DoxyCompactList}\small\item\em Mutator to is\+Picked\+Up. \end{DoxyCompactList}\item 
+virtual float \mbox{\hyperlink{classweapons_1_1_weapon_a3f84544c15d6220252c6175fdfe5c61d}{get\+Secondary\+Bar}} ()
+\begin{DoxyCompactList}\small\item\em Secondary charge bar. for some purpose. \end{DoxyCompactList}\item 
+virtual void \mbox{\hyperlink{classweapons_1_1_weapon_a34c39bfa9cdb2d7483bc340300e8a2d9}{set\+Pos}} (const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&new\+Pos)
+\item 
+bool \mbox{\hyperlink{classweapons_1_1_weapon_a397c372ffe2838f7c9c1ce67c06e55a9}{damage}} (int damage, \mbox{\hyperlink{classentities_1_1_entity}{Entity}} \&attacker) override
+\begin{DoxyCompactList}\small\item\em something damage this \end{DoxyCompactList}\end{DoxyCompactItemize}
+\doxysubsection*{Protected Member Functions}
+\begin{DoxyCompactItemize}
+\item 
+\mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \mbox{\hyperlink{classweapons_1_1_weapon_a862bd61cf947a91809b423304885cf66}{get\+Hit\+Box\+Size}} () const override
+\begin{DoxyCompactList}\small\item\em half hitbox size \end{DoxyCompactList}\end{DoxyCompactItemize}
+\doxysubsection*{Protected Attributes}
+\begin{DoxyCompactItemize}
+\item 
+float \mbox{\hyperlink{classweapons_1_1_weapon_aa3529d6c0160f61132fc7bb1b9284a02}{cooldown}}
+\item 
+float \mbox{\hyperlink{classweapons_1_1_weapon_aa3d78dae766eee8279326026dbb46f1f}{cooldown\+Time}}
+\item 
+int \mbox{\hyperlink{classweapons_1_1_weapon_a27456b08c51df0759ae0155b9f79e336}{base\+Damage}}
+\item 
+std\+::string \mbox{\hyperlink{classweapons_1_1_weapon_a3dab7574419aed48f2a0f2d54cfcd825}{name}}
+\item 
+bool \mbox{\hyperlink{classweapons_1_1_weapon_aba025076ad5e6fae2f9b9d40f4ef815d}{is\+Picked\+Up}} = false
+\begin{DoxyCompactList}\small\item\em Is on the ground, or in an entity\textquotesingle{}s inventory. \end{DoxyCompactList}\end{DoxyCompactItemize}
+
+
+\doxysubsection{Detailed Description}
+You can throw it to the ground, this is why it\textquotesingle{}s an entity. But it will be possible to use it. and shoot enemies, or projectiles. 
+
+Definition at line 10 of file Weapon.\+h.
+
+
+
+\doxysubsection{Constructor \& Destructor Documentation}
+\mbox{\Hypertarget{classweapons_1_1_weapon_a28f7b716212ae6b4606cff82501e00a2}\label{classweapons_1_1_weapon_a28f7b716212ae6b4606cff82501e00a2}} 
+\index{weapons::Weapon@{weapons::Weapon}!Weapon@{Weapon}}
+\index{Weapon@{Weapon}!weapons::Weapon@{weapons::Weapon}}
+\doxysubsubsection{\texorpdfstring{Weapon()}{Weapon()}}
+{\footnotesize\ttfamily weapons\+::\+Weapon\+::\+Weapon (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{classrender_1_1_i_texture}{render\+::\+I\+Texture}} \&}]{texture,  }\item[{float}]{cooldown\+Time,  }\item[{int}]{damage = {\ttfamily 10},  }\item[{const std\+::string \&}]{name = {\ttfamily \char`\"{}Weapon\char`\"{}},  }\item[{const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&}]{pos = {\ttfamily \{~0,~0~\}} }\end{DoxyParamCaption})}
+
+
+
+Definition at line 15 of file Weapon.\+cpp.
+
+
+
+\doxysubsection{Member Function Documentation}
+\mbox{\Hypertarget{classweapons_1_1_weapon_aaf97827d27191b7b437ef1be96d6ac2c}\label{classweapons_1_1_weapon_aaf97827d27191b7b437ef1be96d6ac2c}} 
+\index{weapons::Weapon@{weapons::Weapon}!canBeRemoved@{canBeRemoved}}
+\index{canBeRemoved@{canBeRemoved}!weapons::Weapon@{weapons::Weapon}}
+\doxysubsubsection{\texorpdfstring{canBeRemoved()}{canBeRemoved()}}
+{\footnotesize\ttfamily bool weapons\+::\+Weapon\+::can\+Be\+Removed (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [override]}, {\ttfamily [virtual]}}
+
+
+
+Can be removed form the ground. 
+
+\begin{DoxyReturn}{Returns}
+true if someone picked it up 
+\end{DoxyReturn}
+
+
+Reimplemented from \mbox{\hyperlink{classentities_1_1_entity_a59426fe1b7dcefe96a0a748250724ff6}{entities\+::\+Entity}}.
+
+
+
+Definition at line 30 of file Weapon.\+cpp.
+
+\mbox{\Hypertarget{classweapons_1_1_weapon_a397c372ffe2838f7c9c1ce67c06e55a9}\label{classweapons_1_1_weapon_a397c372ffe2838f7c9c1ce67c06e55a9}} 
+\index{weapons::Weapon@{weapons::Weapon}!damage@{damage}}
+\index{damage@{damage}!weapons::Weapon@{weapons::Weapon}}
+\doxysubsubsection{\texorpdfstring{damage()}{damage()}}
+{\footnotesize\ttfamily bool weapons\+::\+Weapon\+::damage (\begin{DoxyParamCaption}\item[{int}]{damage,  }\item[{\mbox{\hyperlink{classentities_1_1_entity}{Entity}} \&}]{attacker }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [override]}, {\ttfamily [virtual]}}
+
+
+
+something damage this 
+
+
+\begin{DoxyParams}{Parameters}
+{\em damage} & how much damage should it take \\
+\hline
+{\em attacker} & who deal the damage. not the projectile, the entity \\
+\hline
+\end{DoxyParams}
+\begin{DoxyReturn}{Returns}
+did the entity take the damage or no (like a wall) 
+\end{DoxyReturn}
+
+
+Implements \mbox{\hyperlink{classentities_1_1_entity_af7fc9949fc50b1b31abb36a3d51b0597}{entities\+::\+Entity}}.
+
+
+
+Definition at line 45 of file Weapon.\+cpp.
+
+\mbox{\Hypertarget{classweapons_1_1_weapon_a9626ba57d509b1ee0fbe7f900d5181c6}\label{classweapons_1_1_weapon_a9626ba57d509b1ee0fbe7f900d5181c6}} 
+\index{weapons::Weapon@{weapons::Weapon}!getCooldownBar@{getCooldownBar}}
+\index{getCooldownBar@{getCooldownBar}!weapons::Weapon@{weapons::Weapon}}
+\doxysubsubsection{\texorpdfstring{getCooldownBar()}{getCooldownBar()}}
+{\footnotesize\ttfamily float weapons\+::\+Weapon\+::get\+Cooldown\+Bar (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}
+
+
+
+0 -\/ 1 cooldown, 1 is ready to use, more than one makes sense, like 2 charges 
+
+\begin{DoxyReturn}{Returns}
+cooldown time 
+\end{DoxyReturn}
+
+
+Definition at line 25 of file Weapon.\+cpp.
+
+\mbox{\Hypertarget{classweapons_1_1_weapon_a862bd61cf947a91809b423304885cf66}\label{classweapons_1_1_weapon_a862bd61cf947a91809b423304885cf66}} 
+\index{weapons::Weapon@{weapons::Weapon}!getHitBoxSize@{getHitBoxSize}}
+\index{getHitBoxSize@{getHitBoxSize}!weapons::Weapon@{weapons::Weapon}}
+\doxysubsubsection{\texorpdfstring{getHitBoxSize()}{getHitBoxSize()}}
+{\footnotesize\ttfamily \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} weapons\+::\+Weapon\+::get\+Hit\+Box\+Size (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [override]}, {\ttfamily [protected]}, {\ttfamily [virtual]}}
+
+
+
+half hitbox size 
+
+\begin{DoxyReturn}{Returns}
+hitbox size as a vector 
+\end{DoxyReturn}
+
+
+Implements \mbox{\hyperlink{classentities_1_1_entity_a9cd7ba81ddbd978b8f43e9f10e97492f}{entities\+::\+Entity}}.
+
+
+
+Definition at line 10 of file Weapon.\+cpp.
+
+\mbox{\Hypertarget{classweapons_1_1_weapon_a3f84544c15d6220252c6175fdfe5c61d}\label{classweapons_1_1_weapon_a3f84544c15d6220252c6175fdfe5c61d}} 
+\index{weapons::Weapon@{weapons::Weapon}!getSecondaryBar@{getSecondaryBar}}
+\index{getSecondaryBar@{getSecondaryBar}!weapons::Weapon@{weapons::Weapon}}
+\doxysubsubsection{\texorpdfstring{getSecondaryBar()}{getSecondaryBar()}}
+{\footnotesize\ttfamily virtual float weapons\+::\+Weapon\+::get\+Secondary\+Bar (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}
+
+
+
+Secondary charge bar. for some purpose. 
+
+
+
+Reimplemented in \mbox{\hyperlink{classweapons_1_1_e_m_gun_a1d2c920f4fddd40d39dba5d4dddf496f}{weapons\+::\+E\+M\+Gun}}.
+
+
+
+Definition at line 74 of file Weapon.\+h.
+
+\mbox{\Hypertarget{classweapons_1_1_weapon_ace9c44751879af7382585c3338d4bc47}\label{classweapons_1_1_weapon_ace9c44751879af7382585c3338d4bc47}} 
+\index{weapons::Weapon@{weapons::Weapon}!setPickUp@{setPickUp}}
+\index{setPickUp@{setPickUp}!weapons::Weapon@{weapons::Weapon}}
+\doxysubsubsection{\texorpdfstring{setPickUp()}{setPickUp()}}
+{\footnotesize\ttfamily void weapons\+::\+Weapon\+::set\+Pick\+Up (\begin{DoxyParamCaption}\item[{bool}]{bl }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}
+
+
+
+Mutator to is\+Picked\+Up. 
+
+
+\begin{DoxyParams}{Parameters}
+{\em bl} & bool \\
+\hline
+\end{DoxyParams}
+
+
+Definition at line 35 of file Weapon.\+cpp.
+
+\mbox{\Hypertarget{classweapons_1_1_weapon_a34c39bfa9cdb2d7483bc340300e8a2d9}\label{classweapons_1_1_weapon_a34c39bfa9cdb2d7483bc340300e8a2d9}} 
+\index{weapons::Weapon@{weapons::Weapon}!setPos@{setPos}}
+\index{setPos@{setPos}!weapons::Weapon@{weapons::Weapon}}
+\doxysubsubsection{\texorpdfstring{setPos()}{setPos()}}
+{\footnotesize\ttfamily void weapons\+::\+Weapon\+::set\+Pos (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&}]{new\+Pos }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}
+
+
+
+Definition at line 40 of file Weapon.\+cpp.
+
+\mbox{\Hypertarget{classweapons_1_1_weapon_a92ae1db47ca866d828f8b09c6de5a3f6}\label{classweapons_1_1_weapon_a92ae1db47ca866d828f8b09c6de5a3f6}} 
+\index{weapons::Weapon@{weapons::Weapon}!tick@{tick}}
+\index{tick@{tick}!weapons::Weapon@{weapons::Weapon}}
+\doxysubsubsection{\texorpdfstring{tick()}{tick()}}
+{\footnotesize\ttfamily void weapons\+::\+Weapon\+::tick (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{class_game_client}{Game\+Client}} \&}]{client,  }\item[{float}]{deltaT,  }\item[{std\+::shared\+\_\+ptr$<$ \mbox{\hyperlink{classentities_1_1_entity}{Entity}} $>$ \&}]{shared\+\_\+this }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [override]}, {\ttfamily [virtual]}}
+
+
+
+tick, if on the ground. It does charge energy, or whatever. 
+
+
+\begin{DoxyParams}{Parameters}
+{\em client} & see \\
+\hline
+{\em deltaT} & the \\
+\hline
+{\em shared\+\_\+this} & Entity class \\
+\hline
+\end{DoxyParams}
+
+
+Reimplemented from \mbox{\hyperlink{classentities_1_1_entity_a0440674bf90ae83d9a26aa4b0ac8309e}{entities\+::\+Entity}}.
+
+
+
+Definition at line 41 of file Weapon.\+h.
+
+\mbox{\Hypertarget{classweapons_1_1_weapon_a1cbf391f196bd151f3e3f1ae1e316088}\label{classweapons_1_1_weapon_a1cbf391f196bd151f3e3f1ae1e316088}} 
+\index{weapons::Weapon@{weapons::Weapon}!update@{update}}
+\index{update@{update}!weapons::Weapon@{weapons::Weapon}}
+\doxysubsubsection{\texorpdfstring{update()}{update()}}
+{\footnotesize\ttfamily bool weapons\+::\+Weapon\+::update (\begin{DoxyParamCaption}\item[{float}]{d\+Tick }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}
+
+
+
+Update the weapon in a Character\textquotesingle{}s inventory. 
+
+
+\begin{DoxyParams}{Parameters}
+{\em d\+Tick} & a.\+k.\+a. deltaT, or f\+Elapsed\+Time \\
+\hline
+\end{DoxyParams}
+\begin{DoxyReturn}{Returns}
+is the user can use it 
+\end{DoxyReturn}
+
+
+Reimplemented in \mbox{\hyperlink{classweapons_1_1_glitch_gun_a6687147e8005e96f12806862f73a6cd8}{weapons\+::\+Glitch\+Gun}}, and \mbox{\hyperlink{classweapons_1_1_e_m_gun_a0bb30401aa36e2205c011ea0fcf40303}{weapons\+::\+E\+M\+Gun}}.
+
+
+
+Definition at line 18 of file Weapon.\+cpp.
+
+\mbox{\Hypertarget{classweapons_1_1_weapon_a8c6f12ac9ed871ebd0394f6b5c447868}\label{classweapons_1_1_weapon_a8c6f12ac9ed871ebd0394f6b5c447868}} 
+\index{weapons::Weapon@{weapons::Weapon}!use@{use}}
+\index{use@{use}!weapons::Weapon@{weapons::Weapon}}
+\doxysubsubsection{\texorpdfstring{use()}{use()}}
+{\footnotesize\ttfamily virtual bool weapons\+::\+Weapon\+::use (\begin{DoxyParamCaption}\item[{std\+::shared\+\_\+ptr$<$ \mbox{\hyperlink{classentities_1_1_entity}{Entity}} $>$}]{user,  }\item[{const \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \&}]{direction }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [pure virtual]}}
+
+\begin{DoxyReturn}{Returns}
+true, if you did something with it. false otherwise 
+\end{DoxyReturn}
+
+
+Implemented in \mbox{\hyperlink{classweapons_1_1_ranged_weapon_a0e8915ad79021eb8fd79a1a3d7b1c92c}{weapons\+::\+Ranged\+Weapon}}, \mbox{\hyperlink{classweapons_1_1_melee_weapon_ac1b9a6718cbf78cea0b9e5e0b8dcc64e}{weapons\+::\+Melee\+Weapon}}, and \mbox{\hyperlink{classweapons_1_1_e_m_gun_a8034852a4a5957c3d3bc00ca5f7df6e4}{weapons\+::\+E\+M\+Gun}}.
+
+
+
+\doxysubsection{Member Data Documentation}
+\mbox{\Hypertarget{classweapons_1_1_weapon_a27456b08c51df0759ae0155b9f79e336}\label{classweapons_1_1_weapon_a27456b08c51df0759ae0155b9f79e336}} 
+\index{weapons::Weapon@{weapons::Weapon}!baseDamage@{baseDamage}}
+\index{baseDamage@{baseDamage}!weapons::Weapon@{weapons::Weapon}}
+\doxysubsubsection{\texorpdfstring{baseDamage}{baseDamage}}
+{\footnotesize\ttfamily int weapons\+::\+Weapon\+::base\+Damage\hspace{0.3cm}{\ttfamily [protected]}}
+
+
+
+Definition at line 19 of file Weapon.\+h.
+
+\mbox{\Hypertarget{classweapons_1_1_weapon_aa3529d6c0160f61132fc7bb1b9284a02}\label{classweapons_1_1_weapon_aa3529d6c0160f61132fc7bb1b9284a02}} 
+\index{weapons::Weapon@{weapons::Weapon}!cooldown@{cooldown}}
+\index{cooldown@{cooldown}!weapons::Weapon@{weapons::Weapon}}
+\doxysubsubsection{\texorpdfstring{cooldown}{cooldown}}
+{\footnotesize\ttfamily float weapons\+::\+Weapon\+::cooldown\hspace{0.3cm}{\ttfamily [protected]}}
+
+
+
+Definition at line 17 of file Weapon.\+h.
+
+\mbox{\Hypertarget{classweapons_1_1_weapon_aa3d78dae766eee8279326026dbb46f1f}\label{classweapons_1_1_weapon_aa3d78dae766eee8279326026dbb46f1f}} 
+\index{weapons::Weapon@{weapons::Weapon}!cooldownTime@{cooldownTime}}
+\index{cooldownTime@{cooldownTime}!weapons::Weapon@{weapons::Weapon}}
+\doxysubsubsection{\texorpdfstring{cooldownTime}{cooldownTime}}
+{\footnotesize\ttfamily float weapons\+::\+Weapon\+::cooldown\+Time\hspace{0.3cm}{\ttfamily [protected]}}
+
+
+
+Definition at line 18 of file Weapon.\+h.
+
+\mbox{\Hypertarget{classweapons_1_1_weapon_aba025076ad5e6fae2f9b9d40f4ef815d}\label{classweapons_1_1_weapon_aba025076ad5e6fae2f9b9d40f4ef815d}} 
+\index{weapons::Weapon@{weapons::Weapon}!isPickedUp@{isPickedUp}}
+\index{isPickedUp@{isPickedUp}!weapons::Weapon@{weapons::Weapon}}
+\doxysubsubsection{\texorpdfstring{isPickedUp}{isPickedUp}}
+{\footnotesize\ttfamily bool weapons\+::\+Weapon\+::is\+Picked\+Up = false\hspace{0.3cm}{\ttfamily [protected]}}
+
+
+
+Is on the ground, or in an entity\textquotesingle{}s inventory. 
+
+
+
+Definition at line 24 of file Weapon.\+h.
+
+\mbox{\Hypertarget{classweapons_1_1_weapon_a3dab7574419aed48f2a0f2d54cfcd825}\label{classweapons_1_1_weapon_a3dab7574419aed48f2a0f2d54cfcd825}} 
+\index{weapons::Weapon@{weapons::Weapon}!name@{name}}
+\index{name@{name}!weapons::Weapon@{weapons::Weapon}}
+\doxysubsubsection{\texorpdfstring{name}{name}}
+{\footnotesize\ttfamily std\+::string weapons\+::\+Weapon\+::name\hspace{0.3cm}{\ttfamily [protected]}}
+
+
+
+Definition at line 20 of file Weapon.\+h.
+
+
+
+The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize}
+\item 
+C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\mbox{\hyperlink{_weapon_8h}{Weapon.\+h}}\item 
+C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\mbox{\hyperlink{_weapon_8cpp}{Weapon.\+cpp}}\end{DoxyCompactItemize}
diff --git a/doxy/latex/doxygen.sty b/doxy/latex/doxygen.sty
new file mode 100644
index 0000000000000000000000000000000000000000..78a52546a337c088c26c81b62f18b6410921143e
--- /dev/null
+++ b/doxy/latex/doxygen.sty
@@ -0,0 +1,576 @@
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{doxygen}
+
+% Packages used by this style file
+\RequirePackage{alltt}
+%%\RequirePackage{array} %% moved to refman.tex due to workaround for LaTex 2019 version and unmaintained tabu package
+\RequirePackage{calc}
+\RequirePackage{float}
+%%\RequirePackage{ifthen} %% moved to refman.tex due to workaround for LaTex 2019 version and unmaintained tabu package
+\RequirePackage{verbatim}
+\RequirePackage[table]{xcolor}
+\RequirePackage{longtable_doxygen}
+\RequirePackage{tabu_doxygen}
+\RequirePackage{fancyvrb}
+\RequirePackage{tabularx}
+\RequirePackage{multirow}
+\RequirePackage{hanging}
+\RequirePackage{ifpdf}
+\RequirePackage{adjustbox}
+\RequirePackage{amssymb}
+\RequirePackage{stackengine}
+\RequirePackage[normalem]{ulem} % for strikeout, but don't modify emphasis
+
+%---------- Internal commands used in this style file ----------------
+
+\newcommand{\ensurespace}[1]{%
+  \begingroup%
+    \setlength{\dimen@}{#1}%
+    \vskip\z@\@plus\dimen@%
+    \penalty -100\vskip\z@\@plus -\dimen@%
+    \vskip\dimen@%
+    \penalty 9999%
+    \vskip -\dimen@%
+    \vskip\z@skip% hide the previous |\vskip| from |\addvspace|
+  \endgroup%
+}
+
+\newcommand{\DoxyHorRuler}[1]{%
+  \setlength{\parskip}{0ex plus 0ex minus 0ex}%
+  \ifthenelse{#1=0}%
+  {%
+    \hrule%
+  }%
+  {%
+    \hrulefilll%
+  }%
+}
+\newcommand{\DoxyLabelFont}{}
+\newcommand{\entrylabel}[1]{%
+  {%
+    \parbox[b]{\labelwidth-4pt}{%
+      \makebox[0pt][l]{\DoxyLabelFont#1}%
+      \vspace{1.5\baselineskip}%
+    }%
+  }%
+}
+
+\newenvironment{DoxyDesc}[1]{%
+  \ensurespace{4\baselineskip}%
+  \begin{list}{}{%
+    \settowidth{\labelwidth}{20pt}%
+    %\setlength{\parsep}{0pt}%
+    \setlength{\itemsep}{0pt}%
+    \setlength{\leftmargin}{\labelwidth+\labelsep}%
+    \renewcommand{\makelabel}{\entrylabel}%
+  }%
+  \item[#1]%
+}{%
+  \end{list}%
+}
+
+\newsavebox{\xrefbox}
+\newlength{\xreflength}
+\newcommand{\xreflabel}[1]{%
+  \sbox{\xrefbox}{#1}%
+  \setlength{\xreflength}{\wd\xrefbox}%
+  \ifthenelse{\xreflength>\labelwidth}{%
+    \begin{minipage}{\textwidth}%
+      \setlength{\parindent}{0pt}%
+      \hangindent=15pt\bfseries #1\vspace{1.2\itemsep}%
+    \end{minipage}%
+  }{%
+   \parbox[b]{\labelwidth}{\makebox[0pt][l]{\textbf{#1}}}%
+  }%
+}
+
+%---------- Commands used by doxygen LaTeX output generator ----------
+
+% Used by <pre> ... </pre>
+\newenvironment{DoxyPre}{%
+  \small%
+  \begin{alltt}%
+}{%
+  \end{alltt}%
+  \normalsize%
+}
+% Necessary for redefining not defined characters, i.e. "Replacement Character" in tex output.
+\newlength{\CodeWidthChar}
+\newlength{\CodeHeightChar}
+\settowidth{\CodeWidthChar}{?}
+\settoheight{\CodeHeightChar}{?}
+% Necessary for hanging indent
+\newlength{\DoxyCodeWidth}
+
+\newcommand\DoxyCodeLine[1]{\hangpara{\DoxyCodeWidth}{1}{#1}\par}
+
+\newcommand\NiceSpace{%
+     \discretionary{}{\kern\fontdimen2\font}{\kern\fontdimen2\font}%
+}
+
+% Used by @code ... @endcode
+\newenvironment{DoxyCode}[1]{%
+  \par%
+  \scriptsize%
+  \normalfont\ttfamily%
+  \rightskip0pt plus 1fil%
+  \settowidth{\DoxyCodeWidth}{000000}%
+  \settowidth{\CodeWidthChar}{?}%
+  \settoheight{\CodeHeightChar}{?}%
+  \setlength{\parskip}{0ex plus 0ex minus 0ex}%
+  \ifthenelse{\equal{#1}{0}}
+  {
+    {\lccode`~32 \lowercase{\global\let~}\NiceSpace}\obeyspaces%
+  }
+  {
+    {\lccode`~32 \lowercase{\global\let~}}\obeyspaces%
+  }
+
+}{%
+  \normalfont%
+  \normalsize%
+  \settowidth{\CodeWidthChar}{?}%
+  \settoheight{\CodeHeightChar}{?}%
+}
+
+% Redefining not defined characters, i.e. "Replacement Character" in tex output.
+\def\ucr{\adjustbox{width=\CodeWidthChar,height=\CodeHeightChar}{\stackinset{c}{}{c}{-.2pt}{%
+   \textcolor{white}{\sffamily\bfseries\small ?}}{%
+   \rotatebox{45}{$\blacksquare$}}}}
+
+% Used by @example, @include, @includelineno and @dontinclude
+\newenvironment{DoxyCodeInclude}[1]{%
+	\DoxyCode{#1}%
+}{%
+  \endDoxyCode%
+}
+
+% Used by @verbatim ... @endverbatim
+\newenvironment{DoxyVerb}{%
+  \footnotesize%
+  \verbatim%
+}{%
+  \endverbatim%
+  \normalsize%
+}
+
+% Used by @verbinclude
+\newenvironment{DoxyVerbInclude}{%
+  \DoxyVerb%
+}{%
+  \endDoxyVerb%
+}
+
+% Used by numbered lists (using '-#' or <ol> ... </ol>)
+\newenvironment{DoxyEnumerate}{%
+  \enumerate%
+}{%
+  \endenumerate%
+}
+
+% Used by bullet lists (using '-', @li, @arg, or <ul> ... </ul>)
+\newenvironment{DoxyItemize}{%
+  \itemize%
+}{%
+  \enditemize%
+}
+
+% Used by description lists (using <dl> ... </dl>)
+\newenvironment{DoxyDescription}{%
+  \description%
+}{%
+  \enddescription%
+}
+
+% Used by @image, @dotfile, @dot ... @enddot, and @msc ... @endmsc
+% (only if caption is specified)
+\newenvironment{DoxyImage}{%
+  \begin{figure}[H]%
+    \begin{center}%
+}{%
+    \end{center}%
+  \end{figure}%
+}
+
+% Used by @image, @dotfile, @dot ... @enddot, and @msc ... @endmsc
+% (only if no caption is specified)
+\newenvironment{DoxyImageNoCaption}{%
+  \begin{center}%
+}{%
+  \end{center}%
+}
+
+% Used by @image
+% (only if inline is specified)
+\newenvironment{DoxyInlineImage}{%
+}{%
+}
+
+% Used by @attention
+\newenvironment{DoxyAttention}[1]{%
+  \begin{DoxyDesc}{#1}%
+}{%
+  \end{DoxyDesc}%
+}
+
+% Used by @author and @authors
+\newenvironment{DoxyAuthor}[1]{%
+  \begin{DoxyDesc}{#1}%
+}{%
+  \end{DoxyDesc}%
+}
+
+% Used by @date
+\newenvironment{DoxyDate}[1]{%
+  \begin{DoxyDesc}{#1}%
+}{%
+  \end{DoxyDesc}%
+}
+
+% Used by @invariant
+\newenvironment{DoxyInvariant}[1]{%
+  \begin{DoxyDesc}{#1}%
+}{%
+  \end{DoxyDesc}%
+}
+
+% Used by @note
+\newenvironment{DoxyNote}[1]{%
+  \begin{DoxyDesc}{#1}%
+}{%
+  \end{DoxyDesc}%
+}
+
+% Used by @post
+\newenvironment{DoxyPostcond}[1]{%
+  \begin{DoxyDesc}{#1}%
+}{%
+  \end{DoxyDesc}%
+}
+
+% Used by @pre
+\newenvironment{DoxyPrecond}[1]{%
+  \begin{DoxyDesc}{#1}%
+}{%
+  \end{DoxyDesc}%
+}
+
+% Used by @copyright
+\newenvironment{DoxyCopyright}[1]{%
+  \begin{DoxyDesc}{#1}%
+}{%
+  \end{DoxyDesc}%
+}
+
+% Used by @remark
+\newenvironment{DoxyRemark}[1]{%
+  \begin{DoxyDesc}{#1}%
+}{%
+  \end{DoxyDesc}%
+}
+
+% Used by @return and @returns
+\newenvironment{DoxyReturn}[1]{%
+  \begin{DoxyDesc}{#1}%
+}{%
+  \end{DoxyDesc}%
+}
+
+% Used by @since
+\newenvironment{DoxySince}[1]{%
+  \begin{DoxyDesc}{#1}%
+}{%
+  \end{DoxyDesc}%
+}
+
+% Used by @see
+\newenvironment{DoxySeeAlso}[1]{%
+  \begin{DoxyDesc}{#1}%
+}{%
+  \end{DoxyDesc}%
+}
+
+% Used by @version
+\newenvironment{DoxyVersion}[1]{%
+  \begin{DoxyDesc}{#1}%
+}{%
+  \end{DoxyDesc}%
+}
+
+% Used by @warning
+\newenvironment{DoxyWarning}[1]{%
+  \begin{DoxyDesc}{#1}%
+}{%
+  \end{DoxyDesc}%
+}
+
+% Used by @internal
+\newenvironment{DoxyInternal}[1]{%
+  \paragraph*{#1}%
+}{%
+}
+
+% Used by @par and @paragraph
+\newenvironment{DoxyParagraph}[1]{%
+  \begin{DoxyDesc}{#1}%
+}{%
+  \end{DoxyDesc}%
+}
+
+% Used by parameter lists
+\newenvironment{DoxyParams}[2][]{%
+    \tabulinesep=1mm%
+    \par%
+    \ifthenelse{\equal{#1}{}}%
+      {\begin{longtabu*}spread 0pt [l]{|X[-1,l]|X[-1,l]|}}% name + description
+    {\ifthenelse{\equal{#1}{1}}%
+      {\begin{longtabu*}spread 0pt [l]{|X[-1,l]|X[-1,l]|X[-1,l]|}}% in/out + name + desc
+      {\begin{longtabu*}spread 0pt [l]{|X[-1,l]|X[-1,l]|X[-1,l]|X[-1,l]|}}% in/out + type + name + desc
+    }
+    \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #2}\\[1ex]%
+    \hline%
+    \endfirsthead%
+    \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #2}\\[1ex]%
+    \hline%
+    \endhead%
+}{%
+    \end{longtabu*}%
+    \vspace{6pt}%
+}
+
+% Used for fields of simple structs
+\newenvironment{DoxyFields}[1]{%
+    \tabulinesep=1mm%
+    \par%
+    \begin{longtabu*}spread 0pt [l]{|X[-1,r]|X[-1,l]|X[-1,l]|}%
+    \multicolumn{3}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]%
+    \hline%
+    \endfirsthead%
+    \multicolumn{3}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]%
+    \hline%
+    \endhead%
+}{%
+    \end{longtabu*}%
+    \vspace{6pt}%
+}
+
+% Used for fields simple class style enums
+\newenvironment{DoxyEnumFields}[1]{%
+    \tabulinesep=1mm%
+    \par%
+    \begin{longtabu*}spread 0pt [l]{|X[-1,r]|X[-1,l]|}%
+    \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]%
+    \hline%
+    \endfirsthead%
+    \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]%
+    \hline%
+    \endhead%
+}{%
+    \end{longtabu*}%
+    \vspace{6pt}%
+}
+
+% Used for parameters within a detailed function description
+\newenvironment{DoxyParamCaption}{%
+  \renewcommand{\item}[2][]{\\ \hspace*{2.0cm} ##1 {\em ##2}}% 
+}{%
+}
+
+% Used by return value lists
+\newenvironment{DoxyRetVals}[1]{%
+    \tabulinesep=1mm%
+    \par%
+    \begin{longtabu*}spread 0pt [l]{|X[-1,r]|X[-1,l]|}%
+    \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]%
+    \hline%
+    \endfirsthead%
+    \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]%
+    \hline%
+    \endhead%
+}{%
+    \end{longtabu*}%
+    \vspace{6pt}%
+}
+
+% Used by exception lists
+\newenvironment{DoxyExceptions}[1]{%
+    \tabulinesep=1mm%
+    \par%
+    \begin{longtabu*}spread 0pt [l]{|X[-1,r]|X[-1,l]|}%
+    \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]%
+    \hline%
+    \endfirsthead%
+    \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]%
+    \hline%
+    \endhead%
+}{%
+    \end{longtabu*}%
+    \vspace{6pt}%
+}
+
+% Used by template parameter lists
+\newenvironment{DoxyTemplParams}[1]{%
+    \tabulinesep=1mm%
+    \par%
+    \begin{longtabu*}spread 0pt [l]{|X[-1,r]|X[-1,l]|}%
+    \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]%
+    \hline%
+    \endfirsthead%
+    \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]%
+    \hline%
+    \endhead%
+}{%
+    \end{longtabu*}%
+    \vspace{6pt}%
+}
+
+% Used for member lists
+\newenvironment{DoxyCompactItemize}{%
+  \begin{itemize}%
+    \setlength{\itemsep}{-3pt}%
+    \setlength{\parsep}{0pt}%
+    \setlength{\topsep}{0pt}%
+    \setlength{\partopsep}{0pt}%
+}{%
+  \end{itemize}%
+}
+
+% Used for member descriptions
+\newenvironment{DoxyCompactList}{%
+  \begin{list}{}{%
+    \setlength{\leftmargin}{0.5cm}%
+    \setlength{\itemsep}{0pt}%
+    \setlength{\parsep}{0pt}%
+    \setlength{\topsep}{0pt}%
+    \renewcommand{\makelabel}{\hfill}%
+  }%
+}{%
+  \end{list}%
+}
+
+% Used for reference lists (@bug, @deprecated, @todo, etc.)
+\newenvironment{DoxyRefList}{%
+  \begin{list}{}{%
+    \setlength{\labelwidth}{10pt}%
+    \setlength{\leftmargin}{\labelwidth}%
+    \addtolength{\leftmargin}{\labelsep}%
+    \renewcommand{\makelabel}{\xreflabel}%
+  }%
+}{%
+  \end{list}%
+}
+
+% Used by @bug, @deprecated, @todo, etc.
+\newenvironment{DoxyRefDesc}[1]{%
+  \begin{list}{}{%
+    \renewcommand\makelabel[1]{\textbf{##1}}%
+    \settowidth\labelwidth{\makelabel{#1}}%
+    \setlength\leftmargin{\labelwidth+\labelsep}%
+  }%
+}{%
+  \end{list}%
+}
+
+% Used by parameter lists and simple sections
+\newenvironment{Desc}
+{\begin{list}{}{%
+    \settowidth{\labelwidth}{20pt}%
+    \setlength{\parsep}{0pt}%
+    \setlength{\itemsep}{0pt}%
+    \setlength{\leftmargin}{\labelwidth+\labelsep}%
+    \renewcommand{\makelabel}{\entrylabel}%
+  }
+}{%
+  \end{list}%
+}
+
+% Used by tables
+\newcommand{\PBS}[1]{\let\temp=\\#1\let\\=\temp}%
+\newenvironment{TabularC}[1]%
+{\tabulinesep=1mm
+\begin{longtabu*}spread 0pt [c]{*#1{|X[-1]}|}}%
+{\end{longtabu*}\par}%
+
+\newenvironment{TabularNC}[1]%
+{\begin{tabu}spread 0pt [l]{*#1{|X[-1]}|}}%
+{\end{tabu}\par}%
+
+% Used for member group headers
+\newenvironment{Indent}{%
+  \begin{list}{}{%
+    \setlength{\leftmargin}{0.5cm}%
+  }%
+  \item[]\ignorespaces%
+}{%
+  \unskip%
+  \end{list}%
+}
+
+% Used when hyperlinks are turned off
+\newcommand{\doxyref}[3]{%
+  \textbf{#1} (\textnormal{#2}\,\pageref{#3})%
+}
+
+% Used to link to a table when hyperlinks are turned on
+\newcommand{\doxytablelink}[2]{%
+  \ref{#1}%
+}
+
+% Used to link to a table when hyperlinks are turned off
+\newcommand{\doxytableref}[3]{%
+  \ref{#3}%
+}
+
+% Used by @addindex
+\newcommand{\lcurly}{\{}
+\newcommand{\rcurly}{\}}
+
+% Colors used for syntax highlighting
+\definecolor{comment}{rgb}{0.5,0.0,0.0}
+\definecolor{keyword}{rgb}{0.0,0.5,0.0}
+\definecolor{keywordtype}{rgb}{0.38,0.25,0.125}
+\definecolor{keywordflow}{rgb}{0.88,0.5,0.0}
+\definecolor{preprocessor}{rgb}{0.5,0.38,0.125}
+\definecolor{stringliteral}{rgb}{0.0,0.125,0.25}
+\definecolor{charliteral}{rgb}{0.0,0.5,0.5}
+\definecolor{vhdldigit}{rgb}{1.0,0.0,1.0}
+\definecolor{vhdlkeyword}{rgb}{0.43,0.0,0.43}
+\definecolor{vhdllogic}{rgb}{1.0,0.0,0.0}
+\definecolor{vhdlchar}{rgb}{0.0,0.0,0.0}
+
+% Color used for table heading
+\newcommand{\tableheadbgcolor}{lightgray}%
+
+% Version of hypertarget with correct landing location
+\newcommand{\Hypertarget}[1]{\Hy@raisedlink{\hypertarget{#1}{}}}
+
+% possibility to have sections etc. be within the margins
+% unfortunately had to copy part of book.cls and add \raggedright
+\makeatletter
+\newcommand\doxysection{\@startsection {section}{1}{\z@}%
+                                   {-3.5ex \@plus -1ex \@minus -.2ex}%
+                                   {2.3ex \@plus.2ex}%
+                                   {\raggedright\normalfont\Large\bfseries}}
+\newcommand\doxysubsection{\@startsection{subsection}{2}{\z@}%
+                                     {-3.25ex\@plus -1ex \@minus -.2ex}%
+                                     {1.5ex \@plus .2ex}%
+                                     {\raggedright\normalfont\large\bfseries}}
+\newcommand\doxysubsubsection{\@startsection{subsubsection}{3}{\z@}%
+                                     {-3.25ex\@plus -1ex \@minus -.2ex}%
+                                     {1.5ex \@plus .2ex}%
+                                     {\raggedright\normalfont\normalsize\bfseries}}
+\newcommand\doxyparagraph{\@startsection{paragraph}{4}{\z@}%
+                                    {3.25ex \@plus1ex \@minus.2ex}%
+                                    {-1em}%
+                                    {\raggedright\normalfont\normalsize\bfseries}}
+\newcommand\doxysubparagraph{\@startsection{subparagraph}{5}{\parindent}%
+                                       {3.25ex \@plus1ex \@minus .2ex}%
+                                       {-1em}%
+                                      {\raggedright\normalfont\normalsize\bfseries}}
+\makeatother
+% Define caption that is also suitable in a table
+\makeatletter
+\def\doxyfigcaption{%
+\refstepcounter{figure}%
+\@dblarg{\@caption{figure}}}
+\makeatother
diff --git a/doxy/latex/files.tex b/doxy/latex/files.tex
new file mode 100644
index 0000000000000000000000000000000000000000..f968ae167d2bf2629948b7c4af25276df56e86f1
--- /dev/null
+++ b/doxy/latex/files.tex
@@ -0,0 +1,69 @@
+\doxysection{File List}
+Here is a list of all files with brief descriptions\+:\begin{DoxyCompactList}
+\item\contentsline{section}{C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\mbox{\hyperlink{_abstract_texture_8cpp}{Abstract\+Texture.\+cpp}} }{\pageref{_abstract_texture_8cpp}}{}
+\item\contentsline{section}{C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\mbox{\hyperlink{_character_entity_8cpp}{Character\+Entity.\+cpp}} }{\pageref{_character_entity_8cpp}}{}
+\item\contentsline{section}{C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\mbox{\hyperlink{_character_entity_8h}{Character\+Entity.\+h}} }{\pageref{_character_entity_8h}}{}
+\item\contentsline{section}{C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\mbox{\hyperlink{_character_texture_8cpp}{Character\+Texture.\+cpp}} }{\pageref{_character_texture_8cpp}}{}
+\item\contentsline{section}{C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\mbox{\hyperlink{_character_texture_8h}{Character\+Texture.\+h}} }{\pageref{_character_texture_8h}}{}
+\item\contentsline{section}{C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\mbox{\hyperlink{_dummy_entity_8cpp}{Dummy\+Entity.\+cpp}} }{\pageref{_dummy_entity_8cpp}}{}
+\item\contentsline{section}{C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\mbox{\hyperlink{_dummy_entity_8h}{Dummy\+Entity.\+h}} }{\pageref{_dummy_entity_8h}}{}
+\item\contentsline{section}{C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\mbox{\hyperlink{_dungeon_generator_8cpp}{Dungeon\+Generator.\+cpp}} }{\pageref{_dungeon_generator_8cpp}}{}
+\item\contentsline{section}{C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\mbox{\hyperlink{_dungeon_generator_8h}{Dungeon\+Generator.\+h}} }{\pageref{_dungeon_generator_8h}}{}
+\item\contentsline{section}{C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\mbox{\hyperlink{_dynamic_array_8hpp}{Dynamic\+Array.\+hpp}} }{\pageref{_dynamic_array_8hpp}}{}
+\item\contentsline{section}{C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\mbox{\hyperlink{_e_m_gun_8cpp}{E\+M\+Gun.\+cpp}} }{\pageref{_e_m_gun_8cpp}}{}
+\item\contentsline{section}{C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\mbox{\hyperlink{_e_m_gun_8h}{E\+M\+Gun.\+h}} }{\pageref{_e_m_gun_8h}}{}
+\item\contentsline{section}{C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\mbox{\hyperlink{_entity_8cpp}{Entity.\+cpp}} }{\pageref{_entity_8cpp}}{}
+\item\contentsline{section}{C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\mbox{\hyperlink{_entity_8h}{Entity.\+h}} }{\pageref{_entity_8h}}{}
+\item\contentsline{section}{C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\mbox{\hyperlink{_entity_collection_8hpp}{Entity\+Collection.\+hpp}} }{\pageref{_entity_collection_8hpp}}{}
+\item\contentsline{section}{C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\mbox{\hyperlink{_entity_with_a_i_8cpp}{Entity\+With\+A\+I.\+cpp}} }{\pageref{_entity_with_a_i_8cpp}}{}
+\item\contentsline{section}{C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\mbox{\hyperlink{_entity_with_a_i_8h}{Entity\+With\+A\+I.\+h}} }{\pageref{_entity_with_a_i_8h}}{}
+\item\contentsline{section}{C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\mbox{\hyperlink{_explosive_projectile_8cpp}{Explosive\+Projectile.\+cpp}} }{\pageref{_explosive_projectile_8cpp}}{}
+\item\contentsline{section}{C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\mbox{\hyperlink{_explosive_projectile_8h}{Explosive\+Projectile.\+h}} }{\pageref{_explosive_projectile_8h}}{}
+\item\contentsline{section}{C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\mbox{\hyperlink{game_8cpp}{game.\+cpp}} }{\pageref{game_8cpp}}{}
+\item\contentsline{section}{C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\mbox{\hyperlink{_game_exception_8cpp}{Game\+Exception.\+cpp}} }{\pageref{_game_exception_8cpp}}{}
+\item\contentsline{section}{C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\mbox{\hyperlink{_game_exception_8h}{Game\+Exception.\+h}} }{\pageref{_game_exception_8h}}{}
+\item\contentsline{section}{C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\mbox{\hyperlink{_glitch_gun_8cpp}{Glitch\+Gun.\+cpp}} }{\pageref{_glitch_gun_8cpp}}{}
+\item\contentsline{section}{C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\mbox{\hyperlink{_glitch_gun_8h}{Glitch\+Gun.\+h}} }{\pageref{_glitch_gun_8h}}{}
+\item\contentsline{section}{C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\mbox{\hyperlink{_i_texture_8h}{I\+Texture.\+h}} }{\pageref{_i_texture_8h}}{}
+\item\contentsline{section}{C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\mbox{\hyperlink{_lazy_sprite_8cpp}{Lazy\+Sprite.\+cpp}} }{\pageref{_lazy_sprite_8cpp}}{}
+\item\contentsline{section}{C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\mbox{\hyperlink{_lazy_sprite_8h}{Lazy\+Sprite.\+h}} }{\pageref{_lazy_sprite_8h}}{}
+\item\contentsline{section}{C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\mbox{\hyperlink{_living_entity_8cpp}{Living\+Entity.\+cpp}} }{\pageref{_living_entity_8cpp}}{}
+\item\contentsline{section}{C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\mbox{\hyperlink{_living_entity_8h}{Living\+Entity.\+h}} }{\pageref{_living_entity_8h}}{}
+\item\contentsline{section}{C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\mbox{\hyperlink{main_game_8cpp}{main\+Game.\+cpp}} }{\pageref{main_game_8cpp}}{}
+\item\contentsline{section}{C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\mbox{\hyperlink{main_game_8h}{main\+Game.\+h}} }{\pageref{main_game_8h}}{}
+\item\contentsline{section}{C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\mbox{\hyperlink{_melee_weapon_8cpp}{Melee\+Weapon.\+cpp}} }{\pageref{_melee_weapon_8cpp}}{}
+\item\contentsline{section}{C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\mbox{\hyperlink{_melee_weapon_8h}{Melee\+Weapon.\+h}} }{\pageref{_melee_weapon_8h}}{}
+\item\contentsline{section}{C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\mbox{\hyperlink{olc_8h}{olc.\+h}} }{\pageref{olc_8h}}{}
+\item\contentsline{section}{C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\mbox{\hyperlink{olc_p_g_e_x___transformed_view_8h}{olc\+P\+G\+E\+X\+\_\+\+Transformed\+View.\+h}} }{\pageref{olc_p_g_e_x___transformed_view_8h}}{}
+\item\contentsline{section}{C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\mbox{\hyperlink{olc_pixel_game_engine_8h}{olc\+Pixel\+Game\+Engine.\+h}} }{\pageref{olc_pixel_game_engine_8h}}{}
+\item\contentsline{section}{C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\mbox{\hyperlink{_pistol_8cpp}{Pistol.\+cpp}} }{\pageref{_pistol_8cpp}}{}
+\item\contentsline{section}{C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\mbox{\hyperlink{_pistol_8h}{Pistol.\+h}} }{\pageref{_pistol_8h}}{}
+\item\contentsline{section}{C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\mbox{\hyperlink{_player_entity_8cpp}{Player\+Entity.\+cpp}} }{\pageref{_player_entity_8cpp}}{}
+\item\contentsline{section}{C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\mbox{\hyperlink{_player_entity_8h}{Player\+Entity.\+h}} }{\pageref{_player_entity_8h}}{}
+\item\contentsline{section}{C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\mbox{\hyperlink{_projectile_entity_8cpp}{Projectile\+Entity.\+cpp}} }{\pageref{_projectile_entity_8cpp}}{}
+\item\contentsline{section}{C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\mbox{\hyperlink{_projectile_entity_8h}{Projectile\+Entity.\+h}} }{\pageref{_projectile_entity_8h}}{}
+\item\contentsline{section}{C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\mbox{\hyperlink{_ranged_weapon_8cpp}{Ranged\+Weapon.\+cpp}} }{\pageref{_ranged_weapon_8cpp}}{}
+\item\contentsline{section}{C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\mbox{\hyperlink{_ranged_weapon_8h}{Ranged\+Weapon.\+h}} }{\pageref{_ranged_weapon_8h}}{}
+\item\contentsline{section}{C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\mbox{\hyperlink{_render_exception_8cpp}{Render\+Exception.\+cpp}} }{\pageref{_render_exception_8cpp}}{}
+\item\contentsline{section}{C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\mbox{\hyperlink{_render_exception_8h}{Render\+Exception.\+h}} }{\pageref{_render_exception_8h}}{}
+\item\contentsline{section}{C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\mbox{\hyperlink{resource_8h}{resource.\+h}} }{\pageref{resource_8h}}{}
+\item\contentsline{section}{C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\mbox{\hyperlink{resource1_8h}{resource1.\+h}} }{\pageref{resource1_8h}}{}
+\item\contentsline{section}{C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\mbox{\hyperlink{_resource_manager_8cpp}{Resource\+Manager.\+cpp}} }{\pageref{_resource_manager_8cpp}}{}
+\item\contentsline{section}{C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\mbox{\hyperlink{_resource_manager_8h}{Resource\+Manager.\+h}} }{\pageref{_resource_manager_8h}}{}
+\item\contentsline{section}{C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\mbox{\hyperlink{_simple_sprite_8cpp}{Simple\+Sprite.\+cpp}} }{\pageref{_simple_sprite_8cpp}}{}
+\item\contentsline{section}{C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\mbox{\hyperlink{_simple_sprite_8h}{Simple\+Sprite.\+h}} }{\pageref{_simple_sprite_8h}}{}
+\item\contentsline{section}{C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\mbox{\hyperlink{_square_room_generator_8cpp}{Square\+Room\+Generator.\+cpp}} }{\pageref{_square_room_generator_8cpp}}{}
+\item\contentsline{section}{C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\mbox{\hyperlink{_square_room_generator_8h}{Square\+Room\+Generator.\+h}} }{\pageref{_square_room_generator_8h}}{}
+\item\contentsline{section}{C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\mbox{\hyperlink{_test_generator_8cpp}{Test\+Generator.\+cpp}} }{\pageref{_test_generator_8cpp}}{}
+\item\contentsline{section}{C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\mbox{\hyperlink{_test_generator_8h}{Test\+Generator.\+h}} }{\pageref{_test_generator_8h}}{}
+\item\contentsline{section}{C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\mbox{\hyperlink{_typical_melee_weapon_8cpp}{Typical\+Melee\+Weapon.\+cpp}} }{\pageref{_typical_melee_weapon_8cpp}}{}
+\item\contentsline{section}{C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\mbox{\hyperlink{_typical_melee_weapon_8h}{Typical\+Melee\+Weapon.\+h}} }{\pageref{_typical_melee_weapon_8h}}{}
+\item\contentsline{section}{C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\mbox{\hyperlink{_wall_entity_8cpp}{Wall\+Entity.\+cpp}} }{\pageref{_wall_entity_8cpp}}{}
+\item\contentsline{section}{C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\mbox{\hyperlink{_wall_entity_8h}{Wall\+Entity.\+h}} }{\pageref{_wall_entity_8h}}{}
+\item\contentsline{section}{C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\mbox{\hyperlink{_wall_texture_8cpp}{Wall\+Texture.\+cpp}} }{\pageref{_wall_texture_8cpp}}{}
+\item\contentsline{section}{C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\mbox{\hyperlink{_wall_texture_8h}{Wall\+Texture.\+h}} }{\pageref{_wall_texture_8h}}{}
+\item\contentsline{section}{C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\mbox{\hyperlink{_weapon_8cpp}{Weapon.\+cpp}} }{\pageref{_weapon_8cpp}}{}
+\item\contentsline{section}{C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\mbox{\hyperlink{_weapon_8h}{Weapon.\+h}} }{\pageref{_weapon_8h}}{}
+\item\contentsline{section}{C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\mbox{\hyperlink{_weapon_textures_8cpp}{Weapon\+Textures.\+cpp}} }{\pageref{_weapon_textures_8cpp}}{}
+\item\contentsline{section}{C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\mbox{\hyperlink{_weapon_textures_8h}{Weapon\+Textures.\+h}} }{\pageref{_weapon_textures_8h}}{}
+\end{DoxyCompactList}
diff --git a/doxy/latex/game_8cpp.tex b/doxy/latex/game_8cpp.tex
new file mode 100644
index 0000000000000000000000000000000000000000..020cf37d21f19007e39fc615039b33daf2e81233
--- /dev/null
+++ b/doxy/latex/game_8cpp.tex
@@ -0,0 +1,56 @@
+\hypertarget{game_8cpp}{}\doxysection{C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/game.cpp File Reference}
+\label{game_8cpp}\index{C:/Users/kosmx/Documents/GitHub/2d-\/game/game.cpp@{C:/Users/kosmx/Documents/GitHub/2d-\/game/game.cpp}}
+{\ttfamily \#include \char`\"{}olc\+Pixel\+Game\+Engine.\+h\char`\"{}}\newline
+{\ttfamily \#include \char`\"{}main\+Game.\+h\char`\"{}}\newline
+{\ttfamily \#include $<$iostream$>$}\newline
+{\ttfamily \#include $<$string$>$}\newline
+{\ttfamily \#include $<$random$>$}\newline
+{\ttfamily \#include $<$time.\+h$>$}\newline
+\doxysubsection*{Macros}
+\begin{DoxyCompactItemize}
+\item 
+\#define \mbox{\hyperlink{game_8cpp_a1263ab7caa5c273b04d3fcfac6814370}{O\+L\+C\+\_\+\+P\+G\+E\+\_\+\+A\+P\+P\+L\+I\+C\+A\+T\+I\+ON}}
+\item 
+\#define \mbox{\hyperlink{game_8cpp_addb987782a88225c5c14f86c3db1cbb0}{O\+L\+C\+\_\+\+P\+G\+E\+X\+\_\+\+T\+R\+A\+N\+S\+F\+O\+R\+M\+E\+D\+V\+I\+EW}}
+\end{DoxyCompactItemize}
+\doxysubsection*{Functions}
+\begin{DoxyCompactItemize}
+\item 
+int \mbox{\hyperlink{game_8cpp_a0ddf1224851353fc92bfbff6f499fa97}{main}} (int argc, char $\ast$argv\mbox{[}$\,$\mbox{]})
+\end{DoxyCompactItemize}
+
+
+\doxysubsection{Macro Definition Documentation}
+\mbox{\Hypertarget{game_8cpp_a1263ab7caa5c273b04d3fcfac6814370}\label{game_8cpp_a1263ab7caa5c273b04d3fcfac6814370}} 
+\index{game.cpp@{game.cpp}!OLC\_PGE\_APPLICATION@{OLC\_PGE\_APPLICATION}}
+\index{OLC\_PGE\_APPLICATION@{OLC\_PGE\_APPLICATION}!game.cpp@{game.cpp}}
+\doxysubsubsection{\texorpdfstring{OLC\_PGE\_APPLICATION}{OLC\_PGE\_APPLICATION}}
+{\footnotesize\ttfamily \#define O\+L\+C\+\_\+\+P\+G\+E\+\_\+\+A\+P\+P\+L\+I\+C\+A\+T\+I\+ON}
+
+
+
+Definition at line 1 of file game.\+cpp.
+
+\mbox{\Hypertarget{game_8cpp_addb987782a88225c5c14f86c3db1cbb0}\label{game_8cpp_addb987782a88225c5c14f86c3db1cbb0}} 
+\index{game.cpp@{game.cpp}!OLC\_PGEX\_TRANSFORMEDVIEW@{OLC\_PGEX\_TRANSFORMEDVIEW}}
+\index{OLC\_PGEX\_TRANSFORMEDVIEW@{OLC\_PGEX\_TRANSFORMEDVIEW}!game.cpp@{game.cpp}}
+\doxysubsubsection{\texorpdfstring{OLC\_PGEX\_TRANSFORMEDVIEW}{OLC\_PGEX\_TRANSFORMEDVIEW}}
+{\footnotesize\ttfamily \#define O\+L\+C\+\_\+\+P\+G\+E\+X\+\_\+\+T\+R\+A\+N\+S\+F\+O\+R\+M\+E\+D\+V\+I\+EW}
+
+
+
+Definition at line 2 of file game.\+cpp.
+
+
+
+\doxysubsection{Function Documentation}
+\mbox{\Hypertarget{game_8cpp_a0ddf1224851353fc92bfbff6f499fa97}\label{game_8cpp_a0ddf1224851353fc92bfbff6f499fa97}} 
+\index{game.cpp@{game.cpp}!main@{main}}
+\index{main@{main}!game.cpp@{game.cpp}}
+\doxysubsubsection{\texorpdfstring{main()}{main()}}
+{\footnotesize\ttfamily int main (\begin{DoxyParamCaption}\item[{int}]{argc,  }\item[{char $\ast$}]{argv\mbox{[}$\,$\mbox{]} }\end{DoxyParamCaption})}
+
+
+
+Definition at line 13 of file game.\+cpp.
+
diff --git a/doxy/latex/hierarchy.tex b/doxy/latex/hierarchy.tex
new file mode 100644
index 0000000000000000000000000000000000000000..99247a8dad0e5c40c8409402d5581dfb5924e5b6
--- /dev/null
+++ b/doxy/latex/hierarchy.tex
@@ -0,0 +1,87 @@
+\doxysection{Class Hierarchy}
+This inheritance list is sorted roughly, but not completely, alphabetically\+:\begin{DoxyCompactList}
+\item \contentsline{section}{olc\+::Decal}{\pageref{classolc_1_1_decal}}{}
+\item \contentsline{section}{olc\+::Decal\+Instance}{\pageref{structolc_1_1_decal_instance}}{}
+\item \contentsline{section}{Dungeon\+Generator}{\pageref{class_dungeon_generator}}{}
+\begin{DoxyCompactList}
+\item \contentsline{section}{Square\+Room\+Generator}{\pageref{class_square_room_generator}}{}
+\item \contentsline{section}{Test\+Generator}{\pageref{class_test_generator}}{}
+\end{DoxyCompactList}
+\item \contentsline{section}{Dynamic\+Array$<$ T $>$}{\pageref{class_dynamic_array}}{}
+\item \contentsline{section}{Dynamic\+Array$<$ std\+::shared\+\_\+ptr$<$ entities\+::Entity $>$ $>$}{\pageref{class_dynamic_array}}{}
+\item \contentsline{section}{entities\+::Entity}{\pageref{classentities_1_1_entity}}{}
+\begin{DoxyCompactList}
+\item \contentsline{section}{entities\+::Living\+Entity}{\pageref{classentities_1_1_living_entity}}{}
+\begin{DoxyCompactList}
+\item \contentsline{section}{entities\+::Character\+Entity}{\pageref{classentities_1_1_character_entity}}{}
+\begin{DoxyCompactList}
+\item \contentsline{section}{entities\+::Dummy\+Entity}{\pageref{classentities_1_1_dummy_entity}}{}
+\item \contentsline{section}{entities\+::Entity\+With\+AI}{\pageref{classentities_1_1_entity_with_a_i}}{}
+\item \contentsline{section}{entities\+::Player\+Entity}{\pageref{classentities_1_1_player_entity}}{}
+\end{DoxyCompactList}
+\end{DoxyCompactList}
+\item \contentsline{section}{entities\+::Projectile\+Entity}{\pageref{classentities_1_1_projectile_entity}}{}
+\begin{DoxyCompactList}
+\item \contentsline{section}{entities\+::Explosive\+Projectile}{\pageref{classentities_1_1_explosive_projectile}}{}
+\end{DoxyCompactList}
+\item \contentsline{section}{entities\+::Wall\+Entity}{\pageref{classentities_1_1_wall_entity}}{}
+\item \contentsline{section}{weapons\+::Weapon}{\pageref{classweapons_1_1_weapon}}{}
+\begin{DoxyCompactList}
+\item \contentsline{section}{weapons\+::Melee\+Weapon}{\pageref{classweapons_1_1_melee_weapon}}{}
+\begin{DoxyCompactList}
+\item \contentsline{section}{weapons\+::Typical\+Melee\+Weapon}{\pageref{classweapons_1_1_typical_melee_weapon}}{}
+\end{DoxyCompactList}
+\item \contentsline{section}{weapons\+::Ranged\+Weapon}{\pageref{classweapons_1_1_ranged_weapon}}{}
+\begin{DoxyCompactList}
+\item \contentsline{section}{weapons\+::Pistol}{\pageref{classweapons_1_1_pistol}}{}
+\begin{DoxyCompactList}
+\item \contentsline{section}{weapons\+::E\+M\+Gun}{\pageref{classweapons_1_1_e_m_gun}}{}
+\begin{DoxyCompactList}
+\item \contentsline{section}{weapons\+::Glitch\+Gun}{\pageref{classweapons_1_1_glitch_gun}}{}
+\end{DoxyCompactList}
+\end{DoxyCompactList}
+\end{DoxyCompactList}
+\end{DoxyCompactList}
+\end{DoxyCompactList}
+\item \contentsline{section}{olc\+::H\+W\+Button}{\pageref{structolc_1_1_h_w_button}}{}
+\item \contentsline{section}{olc\+::Image\+Loader}{\pageref{classolc_1_1_image_loader}}{}
+\item \contentsline{section}{render\+::I\+Texture}{\pageref{classrender_1_1_i_texture}}{}
+\begin{DoxyCompactList}
+\item \contentsline{section}{render\+::Character\+Texture}{\pageref{classrender_1_1_character_texture}}{}
+\item \contentsline{section}{render\+::Simple\+Sprite}{\pageref{classrender_1_1_simple_sprite}}{}
+\item \contentsline{section}{render\+::Wall\+Texture}{\pageref{classrender_1_1_wall_texture}}{}
+\item \contentsline{section}{weapons\+::Glitch\+Texture}{\pageref{classweapons_1_1_glitch_texture}}{}
+\end{DoxyCompactList}
+\item \contentsline{section}{olc\+::Layer\+Desc}{\pageref{structolc_1_1_layer_desc}}{}
+\item \contentsline{section}{render\+::Lazy\+Sprite}{\pageref{classrender_1_1_lazy_sprite}}{}
+\item \contentsline{section}{olc\+::P\+G\+EX}{\pageref{classolc_1_1_p_g_e_x}}{}
+\begin{DoxyCompactList}
+\item \contentsline{section}{olc\+::Transformed\+View}{\pageref{classolc_1_1_transformed_view}}{}
+\begin{DoxyCompactList}
+\item \contentsline{section}{olc\+::Tile\+Transformed\+View}{\pageref{classolc_1_1_tile_transformed_view}}{}
+\end{DoxyCompactList}
+\end{DoxyCompactList}
+\item \contentsline{section}{olc\+::Pixel}{\pageref{structolc_1_1_pixel}}{}
+\item \contentsline{section}{olc\+::Pixel\+Game\+Engine}{\pageref{classolc_1_1_pixel_game_engine}}{}
+\begin{DoxyCompactList}
+\item \contentsline{section}{Game\+Client}{\pageref{class_game_client}}{}
+\end{DoxyCompactList}
+\item \contentsline{section}{olc\+::Platform}{\pageref{classolc_1_1_platform}}{}
+\item \contentsline{section}{weapons\+::Melee\+Weapon\+::predicate\+Distance}{\pageref{classweapons_1_1_melee_weapon_1_1predicate_distance}}{}
+\item \contentsline{section}{olc\+::Renderable}{\pageref{classolc_1_1_renderable}}{}
+\item \contentsline{section}{olc\+::Renderer}{\pageref{classolc_1_1_renderer}}{}
+\item \contentsline{section}{Render\+Exception}{\pageref{class_render_exception}}{}
+\item \contentsline{section}{render\+::Resource\+Manager}{\pageref{classrender_1_1_resource_manager}}{}
+\item runtime\+\_\+error\begin{DoxyCompactList}
+\item \contentsline{section}{Game\+Exception}{\pageref{class_game_exception}}{}
+\end{DoxyCompactList}
+\item \contentsline{section}{olc\+::Sprite}{\pageref{classolc_1_1_sprite}}{}
+\item \contentsline{section}{render\+::Sprite\+Manager}{\pageref{classrender_1_1_sprite_manager}}{}
+\item streambuf\begin{DoxyCompactList}
+\item \contentsline{section}{olc\+::Resource\+Buffer}{\pageref{structolc_1_1_resource_buffer}}{}
+\item \contentsline{section}{olc\+::Resource\+Pack}{\pageref{classolc_1_1_resource_pack}}{}
+\end{DoxyCompactList}
+\item \contentsline{section}{olc\+::v2d\+\_\+generic$<$ T $>$}{\pageref{structolc_1_1v2d__generic}}{}
+\item \contentsline{section}{olc\+::v2d\+\_\+generic$<$ float $>$}{\pageref{structolc_1_1v2d__generic}}{}
+\item \contentsline{section}{olc\+::v2d\+\_\+generic$<$ int32\+\_\+t $>$}{\pageref{structolc_1_1v2d__generic}}{}
+\end{DoxyCompactList}
diff --git a/doxy/latex/longtable_doxygen.sty b/doxy/latex/longtable_doxygen.sty
new file mode 100644
index 0000000000000000000000000000000000000000..a0eb314f9f92cfd92bf000f0893171b45df5d0a9
--- /dev/null
+++ b/doxy/latex/longtable_doxygen.sty
@@ -0,0 +1,448 @@
+%%
+%% This is file `longtable.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% longtable.dtx  (with options: `package')
+%% 
+%% This is a generated file.
+%% 
+%% The source is maintained by the LaTeX Project team and bug
+%% reports for it can be opened at http://latex-project.org/bugs.html
+%% (but please observe conditions on bug reports sent to that address!)
+%% 
+%% Copyright 1993-2016
+%% The LaTeX3 Project and any individual authors listed elsewhere
+%% in this file.
+%% 
+%% This file was generated from file(s) of the Standard LaTeX `Tools Bundle'.
+%% --------------------------------------------------------------------------
+%% 
+%% It may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3c
+%% of this license or (at your option) any later version.
+%% The latest version of this license is in
+%%    http://www.latex-project.org/lppl.txt
+%% and version 1.3c or later is part of all distributions of LaTeX
+%% version 2005/12/01 or later.
+%% 
+%% This file may only be distributed together with a copy of the LaTeX
+%% `Tools Bundle'. You may however distribute the LaTeX `Tools Bundle'
+%% without such generated files.
+%% 
+%% The list of all files belonging to the LaTeX `Tools Bundle' is
+%% given in the file `manifest.txt'.
+%% 
+%% File: longtable.dtx Copyright (C) 1990-2001 David Carlisle
+\NeedsTeXFormat{LaTeX2e}[1995/06/01]
+\ProvidesPackage{longtable_doxygen}
+          [2014/10/28 v4.11 Multi-page Table package (DPC) - frozen version for doxygen]
+\def\LT@err{\PackageError{longtable}}
+\def\LT@warn{\PackageWarning{longtable}}
+\def\LT@final@warn{%
+  \AtEndDocument{%
+    \LT@warn{Table \@width s have changed. Rerun LaTeX.\@gobbletwo}}%
+  \global\let\LT@final@warn\relax}
+\DeclareOption{errorshow}{%
+  \def\LT@warn{\PackageInfo{longtable}}}
+\DeclareOption{pausing}{%
+  \def\LT@warn#1{%
+    \LT@err{#1}{This is not really an error}}}
+\DeclareOption{set}{}
+\DeclareOption{final}{}
+\ProcessOptions
+\newskip\LTleft       \LTleft=\fill
+\newskip\LTright      \LTright=\fill
+\newskip\LTpre        \LTpre=\bigskipamount
+\newskip\LTpost       \LTpost=\bigskipamount
+\newcount\LTchunksize \LTchunksize=20
+\let\c@LTchunksize\LTchunksize
+\newdimen\LTcapwidth  \LTcapwidth=4in
+\newbox\LT@head
+\newbox\LT@firsthead
+\newbox\LT@foot
+\newbox\LT@lastfoot
+\newcount\LT@cols
+\newcount\LT@rows
+\newcounter{LT@tables}
+\newcounter{LT@chunks}[LT@tables]
+\ifx\c@table\undefined
+  \newcounter{table}
+  \def\fnum@table{\tablename~\thetable}
+\fi
+\ifx\tablename\undefined
+  \def\tablename{Table}
+\fi
+\newtoks\LT@p@ftn
+\mathchardef\LT@end@pen=30000
+\def\longtable{%
+  \par
+  \ifx\multicols\@undefined
+  \else
+     \ifnum\col@number>\@ne
+       \@twocolumntrue
+     \fi
+  \fi
+  \if@twocolumn
+    \LT@err{longtable not in 1-column mode}\@ehc
+  \fi
+  \begingroup
+  \@ifnextchar[\LT@array{\LT@array[x]}}
+\def\LT@array[#1]#2{%
+  \refstepcounter{table}\stepcounter{LT@tables}%
+  \if l#1%
+    \LTleft\z@ \LTright\fill
+  \else\if r#1%
+    \LTleft\fill \LTright\z@
+  \else\if c#1%
+    \LTleft\fill \LTright\fill
+  \fi\fi\fi
+  \let\LT@mcol\multicolumn
+  \let\LT@@tabarray\@tabarray
+  \let\LT@@hl\hline
+  \def\@tabarray{%
+    \let\hline\LT@@hl
+    \LT@@tabarray}%
+  \let\\\LT@tabularcr\let\tabularnewline\\%
+  \def\newpage{\noalign{\break}}%
+  \def\pagebreak{\noalign{\ifnum`}=0\fi\@testopt{\LT@no@pgbk-}4}%
+  \def\nopagebreak{\noalign{\ifnum`}=0\fi\@testopt\LT@no@pgbk4}%
+  \let\hline\LT@hline \let\kill\LT@kill\let\caption\LT@caption
+  \@tempdima\ht\strutbox
+  \let\@endpbox\LT@endpbox
+  \ifx\extrarowheight\@undefined
+    \let\@acol\@tabacol
+    \let\@classz\@tabclassz \let\@classiv\@tabclassiv
+    \def\@startpbox{\vtop\LT@startpbox}%
+    \let\@@startpbox\@startpbox
+    \let\@@endpbox\@endpbox
+    \let\LT@LL@FM@cr\@tabularcr
+  \else
+    \advance\@tempdima\extrarowheight
+    \col@sep\tabcolsep
+    \let\@startpbox\LT@startpbox\let\LT@LL@FM@cr\@arraycr
+  \fi
+  \setbox\@arstrutbox\hbox{\vrule
+    \@height \arraystretch \@tempdima
+    \@depth \arraystretch \dp \strutbox
+    \@width \z@}%
+  \let\@sharp##\let\protect\relax
+   \begingroup
+    \@mkpream{#2}%
+    \xdef\LT@bchunk{%
+       \global\advance\c@LT@chunks\@ne
+       \global\LT@rows\z@\setbox\z@\vbox\bgroup
+       \LT@setprevdepth
+       \tabskip\LTleft \noexpand\halign to\hsize\bgroup
+      \tabskip\z@ \@arstrut \@preamble \tabskip\LTright \cr}%
+  \endgroup
+  \expandafter\LT@nofcols\LT@bchunk&\LT@nofcols
+  \LT@make@row
+  \m@th\let\par\@empty
+  \everycr{}\lineskip\z@\baselineskip\z@
+  \LT@bchunk}
+\def\LT@no@pgbk#1[#2]{\penalty #1\@getpen{#2}\ifnum`{=0\fi}}
+\def\LT@start{%
+  \let\LT@start\endgraf
+  \endgraf\penalty\z@\vskip\LTpre
+  \dimen@\pagetotal
+  \advance\dimen@ \ht\ifvoid\LT@firsthead\LT@head\else\LT@firsthead\fi
+  \advance\dimen@ \dp\ifvoid\LT@firsthead\LT@head\else\LT@firsthead\fi
+  \advance\dimen@ \ht\LT@foot
+  \dimen@ii\vfuzz
+  \vfuzz\maxdimen
+    \setbox\tw@\copy\z@
+    \setbox\tw@\vsplit\tw@ to \ht\@arstrutbox
+    \setbox\tw@\vbox{\unvbox\tw@}%
+  \vfuzz\dimen@ii
+  \advance\dimen@ \ht
+        \ifdim\ht\@arstrutbox>\ht\tw@\@arstrutbox\else\tw@\fi
+  \advance\dimen@\dp
+        \ifdim\dp\@arstrutbox>\dp\tw@\@arstrutbox\else\tw@\fi
+  \advance\dimen@ -\pagegoal
+  \ifdim \dimen@>\z@\vfil\break\fi
+      \global\@colroom\@colht
+  \ifvoid\LT@foot\else
+    \advance\vsize-\ht\LT@foot
+    \global\advance\@colroom-\ht\LT@foot
+    \dimen@\pagegoal\advance\dimen@-\ht\LT@foot\pagegoal\dimen@
+    \maxdepth\z@
+  \fi
+  \ifvoid\LT@firsthead\copy\LT@head\else\box\LT@firsthead\fi\nobreak
+  \output{\LT@output}}
+\def\endlongtable{%
+  \crcr
+  \noalign{%
+    \let\LT@entry\LT@entry@chop
+    \xdef\LT@save@row{\LT@save@row}}%
+  \LT@echunk
+  \LT@start
+  \unvbox\z@
+  \LT@get@widths
+  \if@filesw
+    {\let\LT@entry\LT@entry@write\immediate\write\@auxout{%
+      \gdef\expandafter\noexpand
+        \csname LT@\romannumeral\c@LT@tables\endcsname
+          {\LT@save@row}}}%
+  \fi
+  \ifx\LT@save@row\LT@@save@row
+  \else
+    \LT@warn{Column \@width s have changed\MessageBreak
+             in table \thetable}%
+    \LT@final@warn
+  \fi
+  \endgraf\penalty -\LT@end@pen
+  \endgroup
+  \global\@mparbottom\z@
+  \pagegoal\vsize
+  \endgraf\penalty\z@\addvspace\LTpost
+  \ifvoid\footins\else\insert\footins{}\fi}
+\def\LT@nofcols#1&{%
+  \futurelet\@let@token\LT@n@fcols}
+\def\LT@n@fcols{%
+  \advance\LT@cols\@ne
+  \ifx\@let@token\LT@nofcols
+    \expandafter\@gobble
+  \else
+    \expandafter\LT@nofcols
+  \fi}
+\def\LT@tabularcr{%
+  \relax\iffalse{\fi\ifnum0=`}\fi
+  \@ifstar
+    {\def\crcr{\LT@crcr\noalign{\nobreak}}\let\cr\crcr
+     \LT@t@bularcr}%
+    {\LT@t@bularcr}}
+\let\LT@crcr\crcr
+\let\LT@setprevdepth\relax
+\def\LT@t@bularcr{%
+  \global\advance\LT@rows\@ne
+  \ifnum\LT@rows=\LTchunksize
+    \gdef\LT@setprevdepth{%
+      \prevdepth\z@\global
+      \global\let\LT@setprevdepth\relax}%
+    \expandafter\LT@xtabularcr
+  \else
+    \ifnum0=`{}\fi
+    \expandafter\LT@LL@FM@cr
+  \fi}
+\def\LT@xtabularcr{%
+  \@ifnextchar[\LT@argtabularcr\LT@ntabularcr}
+\def\LT@ntabularcr{%
+  \ifnum0=`{}\fi
+  \LT@echunk
+  \LT@start
+  \unvbox\z@
+  \LT@get@widths
+  \LT@bchunk}
+\def\LT@argtabularcr[#1]{%
+  \ifnum0=`{}\fi
+  \ifdim #1>\z@
+    \unskip\@xargarraycr{#1}%
+  \else
+    \@yargarraycr{#1}%
+  \fi
+  \LT@echunk
+  \LT@start
+  \unvbox\z@
+  \LT@get@widths
+  \LT@bchunk}
+\def\LT@echunk{%
+  \crcr\LT@save@row\cr\egroup
+  \global\setbox\@ne\lastbox
+    \unskip
+  \egroup}
+\def\LT@entry#1#2{%
+  \ifhmode\@firstofone{&}\fi\omit
+  \ifnum#1=\c@LT@chunks
+  \else
+    \kern#2\relax
+  \fi}
+\def\LT@entry@chop#1#2{%
+  \noexpand\LT@entry
+    {\ifnum#1>\c@LT@chunks
+       1}{0pt%
+     \else
+       #1}{#2%
+     \fi}}
+\def\LT@entry@write{%
+  \noexpand\LT@entry^^J%
+  \@spaces}
+\def\LT@kill{%
+  \LT@echunk
+  \LT@get@widths
+  \expandafter\LT@rebox\LT@bchunk}
+\def\LT@rebox#1\bgroup{%
+  #1\bgroup
+  \unvbox\z@
+  \unskip
+  \setbox\z@\lastbox}
+\def\LT@blank@row{%
+  \xdef\LT@save@row{\expandafter\LT@build@blank
+    \romannumeral\number\LT@cols 001 }}
+\def\LT@build@blank#1{%
+  \if#1m%
+    \noexpand\LT@entry{1}{0pt}%
+    \expandafter\LT@build@blank
+  \fi}
+\def\LT@make@row{%
+  \global\expandafter\let\expandafter\LT@save@row
+    \csname LT@\romannumeral\c@LT@tables\endcsname
+  \ifx\LT@save@row\relax
+    \LT@blank@row
+  \else
+    {\let\LT@entry\or
+     \if!%
+         \ifcase\expandafter\expandafter\expandafter\LT@cols
+         \expandafter\@gobble\LT@save@row
+         \or
+         \else
+           \relax
+         \fi
+        !%
+     \else
+       \aftergroup\LT@blank@row
+     \fi}%
+  \fi}
+\let\setlongtables\relax
+\def\LT@get@widths{%
+  \setbox\tw@\hbox{%
+    \unhbox\@ne
+    \let\LT@old@row\LT@save@row
+    \global\let\LT@save@row\@empty
+    \count@\LT@cols
+    \loop
+      \unskip
+      \setbox\tw@\lastbox
+    \ifhbox\tw@
+      \LT@def@row
+      \advance\count@\m@ne
+    \repeat}%
+  \ifx\LT@@save@row\@undefined
+    \let\LT@@save@row\LT@save@row
+  \fi}
+\def\LT@def@row{%
+  \let\LT@entry\or
+  \edef\@tempa{%
+    \ifcase\expandafter\count@\LT@old@row
+    \else
+      {1}{0pt}%
+    \fi}%
+  \let\LT@entry\relax
+  \xdef\LT@save@row{%
+    \LT@entry
+    \expandafter\LT@max@sel\@tempa
+    \LT@save@row}}
+\def\LT@max@sel#1#2{%
+  {\ifdim#2=\wd\tw@
+     #1%
+   \else
+     \number\c@LT@chunks
+   \fi}%
+  {\the\wd\tw@}}
+\def\LT@hline{%
+  \noalign{\ifnum0=`}\fi
+    \penalty\@M
+    \futurelet\@let@token\LT@@hline}
+\def\LT@@hline{%
+  \ifx\@let@token\hline
+    \global\let\@gtempa\@gobble
+    \gdef\LT@sep{\penalty-\@medpenalty\vskip\doublerulesep}%
+  \else
+    \global\let\@gtempa\@empty
+    \gdef\LT@sep{\penalty-\@lowpenalty\vskip-\arrayrulewidth}%
+  \fi
+  \ifnum0=`{\fi}%
+  \multispan\LT@cols
+     \unskip\leaders\hrule\@height\arrayrulewidth\hfill\cr
+  \noalign{\LT@sep}%
+  \multispan\LT@cols
+     \unskip\leaders\hrule\@height\arrayrulewidth\hfill\cr
+  \noalign{\penalty\@M}%
+  \@gtempa}
+\def\LT@caption{%
+  \noalign\bgroup
+    \@ifnextchar[{\egroup\LT@c@ption\@firstofone}\LT@capti@n}
+\def\LT@c@ption#1[#2]#3{%
+  \LT@makecaption#1\fnum@table{#3}%
+  \def\@tempa{#2}%
+  \ifx\@tempa\@empty\else
+     {\let\\\space
+     \addcontentsline{lot}{table}{\protect\numberline{\thetable}{#2}}}%
+  \fi}
+\def\LT@capti@n{%
+  \@ifstar
+    {\egroup\LT@c@ption\@gobble[]}%
+    {\egroup\@xdblarg{\LT@c@ption\@firstofone}}}
+\def\LT@makecaption#1#2#3{%
+  \LT@mcol\LT@cols c{\hbox to\z@{\hss\parbox[t]\LTcapwidth{%
+    \sbox\@tempboxa{#1{#2: }#3}%
+    \ifdim\wd\@tempboxa>\hsize
+      #1{#2: }#3%
+    \else
+      \hbox to\hsize{\hfil\box\@tempboxa\hfil}%
+    \fi
+    \endgraf\vskip\baselineskip}%
+  \hss}}}
+\def\LT@output{%
+  \ifnum\outputpenalty <-\@Mi
+    \ifnum\outputpenalty > -\LT@end@pen
+      \LT@err{floats and marginpars not allowed in a longtable}\@ehc
+    \else
+      \setbox\z@\vbox{\unvbox\@cclv}%
+      \ifdim \ht\LT@lastfoot>\ht\LT@foot
+        \dimen@\pagegoal
+        \advance\dimen@-\ht\LT@lastfoot
+        \ifdim\dimen@<\ht\z@
+          \setbox\@cclv\vbox{\unvbox\z@\copy\LT@foot\vss}%
+          \@makecol
+          \@outputpage
+          \setbox\z@\vbox{\box\LT@head}%
+        \fi
+      \fi
+      \global\@colroom\@colht
+      \global\vsize\@colht
+      \vbox
+        {\unvbox\z@\box\ifvoid\LT@lastfoot\LT@foot\else\LT@lastfoot\fi}%
+    \fi
+  \else
+    \setbox\@cclv\vbox{\unvbox\@cclv\copy\LT@foot\vss}%
+    \@makecol
+    \@outputpage
+      \global\vsize\@colroom
+    \copy\LT@head\nobreak
+  \fi}
+\def\LT@end@hd@ft#1{%
+  \LT@echunk
+  \ifx\LT@start\endgraf
+    \LT@err
+     {Longtable head or foot not at start of table}%
+     {Increase LTchunksize}%
+  \fi
+  \setbox#1\box\z@
+  \LT@get@widths
+  \LT@bchunk}
+\def\endfirsthead{\LT@end@hd@ft\LT@firsthead}
+\def\endhead{\LT@end@hd@ft\LT@head}
+\def\endfoot{\LT@end@hd@ft\LT@foot}
+\def\endlastfoot{\LT@end@hd@ft\LT@lastfoot}
+\def\LT@startpbox#1{%
+  \bgroup
+    \let\@footnotetext\LT@p@ftntext
+    \setlength\hsize{#1}%
+    \@arrayparboxrestore
+    \vrule \@height \ht\@arstrutbox \@width \z@}
+\def\LT@endpbox{%
+  \@finalstrut\@arstrutbox
+  \egroup
+  \the\LT@p@ftn
+  \global\LT@p@ftn{}%
+  \hfil}
+\def\LT@p@ftntext#1{%
+  \edef\@tempa{\the\LT@p@ftn\noexpand\footnotetext[\the\c@footnote]}%
+  \global\LT@p@ftn\expandafter{\@tempa{#1}}}%
+
+\@namedef{ver@longtable.sty}{2014/10/28 v4.11 Multi-page Table package (DPC) - frozen version for doxygen}
+\endinput
+%%
+%% End of file `longtable.sty'.
diff --git a/doxy/latex/main_game_8cpp.tex b/doxy/latex/main_game_8cpp.tex
new file mode 100644
index 0000000000000000000000000000000000000000..2343ec19b869d12db79b53d7fb61b4aea212c688
--- /dev/null
+++ b/doxy/latex/main_game_8cpp.tex
@@ -0,0 +1,51 @@
+\hypertarget{main_game_8cpp}{}\doxysection{C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/main\+Game.cpp File Reference}
+\label{main_game_8cpp}\index{C:/Users/kosmx/Documents/GitHub/2d-\/game/mainGame.cpp@{C:/Users/kosmx/Documents/GitHub/2d-\/game/mainGame.cpp}}
+{\ttfamily \#include \char`\"{}main\+Game.\+h\char`\"{}}\newline
+{\ttfamily \#include \char`\"{}Resource\+Manager.\+h\char`\"{}}\newline
+{\ttfamily \#include $<$algorithm$>$}\newline
+{\ttfamily \#include \char`\"{}Game\+Exception.\+h\char`\"{}}\newline
+{\ttfamily \#include \char`\"{}Test\+Generator.\+h\char`\"{}}\newline
+{\ttfamily \#include \char`\"{}Square\+Room\+Generator.\+h\char`\"{}}\newline
+{\ttfamily \#include \char`\"{}Weapon.\+h\char`\"{}}\newline
+\doxysubsection*{Variables}
+\begin{DoxyCompactItemize}
+\item 
+const float \mbox{\hyperlink{main_game_8cpp_aa8c13326fceadba77254d2971649a3ab}{max\+Time\+Delta}} = 0.\+05f
+\item 
+const float \mbox{\hyperlink{main_game_8cpp_a7f4c2bc4db6ed1d3f59d20429bcca8db}{screen\+Move\+Scale}} = 8
+\item 
+const int \mbox{\hyperlink{main_game_8cpp_ab553cccbcdbb19b4f2c3a1a727eeb867}{world\+To\+Screen\+Scale}} = 16
+\end{DoxyCompactItemize}
+
+
+\doxysubsection{Variable Documentation}
+\mbox{\Hypertarget{main_game_8cpp_aa8c13326fceadba77254d2971649a3ab}\label{main_game_8cpp_aa8c13326fceadba77254d2971649a3ab}} 
+\index{mainGame.cpp@{mainGame.cpp}!maxTimeDelta@{maxTimeDelta}}
+\index{maxTimeDelta@{maxTimeDelta}!mainGame.cpp@{mainGame.cpp}}
+\doxysubsubsection{\texorpdfstring{maxTimeDelta}{maxTimeDelta}}
+{\footnotesize\ttfamily const float max\+Time\+Delta = 0.\+05f}
+
+
+
+Definition at line 9 of file main\+Game.\+cpp.
+
+\mbox{\Hypertarget{main_game_8cpp_a7f4c2bc4db6ed1d3f59d20429bcca8db}\label{main_game_8cpp_a7f4c2bc4db6ed1d3f59d20429bcca8db}} 
+\index{mainGame.cpp@{mainGame.cpp}!screenMoveScale@{screenMoveScale}}
+\index{screenMoveScale@{screenMoveScale}!mainGame.cpp@{mainGame.cpp}}
+\doxysubsubsection{\texorpdfstring{screenMoveScale}{screenMoveScale}}
+{\footnotesize\ttfamily const float screen\+Move\+Scale = 8}
+
+
+
+Definition at line 14 of file main\+Game.\+cpp.
+
+\mbox{\Hypertarget{main_game_8cpp_ab553cccbcdbb19b4f2c3a1a727eeb867}\label{main_game_8cpp_ab553cccbcdbb19b4f2c3a1a727eeb867}} 
+\index{mainGame.cpp@{mainGame.cpp}!worldToScreenScale@{worldToScreenScale}}
+\index{worldToScreenScale@{worldToScreenScale}!mainGame.cpp@{mainGame.cpp}}
+\doxysubsubsection{\texorpdfstring{worldToScreenScale}{worldToScreenScale}}
+{\footnotesize\ttfamily const int world\+To\+Screen\+Scale = 16}
+
+
+
+Definition at line 15 of file main\+Game.\+cpp.
+
diff --git a/doxy/latex/main_game_8h.tex b/doxy/latex/main_game_8h.tex
new file mode 100644
index 0000000000000000000000000000000000000000..c4d813f0a73c724ae6ddf7ebd16536b93af379e8
--- /dev/null
+++ b/doxy/latex/main_game_8h.tex
@@ -0,0 +1,12 @@
+\hypertarget{main_game_8h}{}\doxysection{C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/main\+Game.h File Reference}
+\label{main_game_8h}\index{C:/Users/kosmx/Documents/GitHub/2d-\/game/mainGame.h@{C:/Users/kosmx/Documents/GitHub/2d-\/game/mainGame.h}}
+{\ttfamily \#include \char`\"{}olc\+Pixel\+Game\+Engine.\+h\char`\"{}}\newline
+{\ttfamily \#include \char`\"{}Dynamic\+Array.\+hpp\char`\"{}}\newline
+{\ttfamily \#include $<$memory$>$}\newline
+{\ttfamily \#include \char`\"{}Entity.\+h\char`\"{}}\newline
+{\ttfamily \#include \char`\"{}Player\+Entity.\+h\char`\"{}}\newline
+\doxysubsection*{Classes}
+\begin{DoxyCompactItemize}
+\item 
+class \mbox{\hyperlink{class_game_client}{Game\+Client}}
+\begin{DoxyCompactList}\small\item\em The game main class itself. manages the entities, adjust the screen... \end{DoxyCompactList}\end{DoxyCompactItemize}
diff --git a/doxy/latex/make.bat b/doxy/latex/make.bat
new file mode 100644
index 0000000000000000000000000000000000000000..55e79bab672ddb26722c2e40f0332c0ad0cc66ee
--- /dev/null
+++ b/doxy/latex/make.bat
@@ -0,0 +1,31 @@
+set Dir_Old=%cd%
+cd /D %~dp0
+
+del /s /f *.ps *.dvi *.aux *.toc *.idx *.ind *.ilg *.log *.out *.brf *.blg *.bbl refman.pdf
+
+set LATEX_CMD=pdflatex
+%LATEX_CMD% refman
+echo ----
+makeindex refman.idx
+echo ----
+%LATEX_CMD% refman
+
+setlocal enabledelayedexpansion
+set count=8
+:repeat
+set content=X
+for /F "tokens=*" %%T in ( 'findstr /C:"Rerun LaTeX" refman.log' ) do set content="%%~T"
+if !content! == X for /F "tokens=*" %%T in ( 'findstr /C:"Rerun to get cross-references right" refman.log' ) do set content="%%~T"
+if !content! == X goto :skip
+set /a count-=1
+if !count! EQU 0 goto :skip
+
+echo ----
+%LATEX_CMD% refman
+goto :repeat
+:skip
+endlocal
+makeindex refman.idx
+%LATEX_CMD% refman
+cd /D %Dir_Old%
+set Dir_Old=
diff --git a/doxy/latex/md__c___users_kosmx__documents__git_hub_2d-game__r_e_a_d_m_e.tex b/doxy/latex/md__c___users_kosmx__documents__git_hub_2d-game__r_e_a_d_m_e.tex
new file mode 100644
index 0000000000000000000000000000000000000000..75b42649e29273403a361a83daf22c811b8b1eb3
--- /dev/null
+++ b/doxy/latex/md__c___users_kosmx__documents__git_hub_2d-game__r_e_a_d_m_e.tex
@@ -0,0 +1 @@
+\hypertarget{md__c___users_kosmx__documents__git_hub_2d-game__r_e_a_d_m_e_autotoc_md1}{}\doxysection{It\textquotesingle{}s not a bug. It\textquotesingle{}s an undocumented feature}\label{md__c___users_kosmx__documents__git_hub_2d-game__r_e_a_d_m_e_autotoc_md1}
diff --git a/doxy/latex/md__c___users_kosmx__documents__git_hub_2d-game__text.tex b/doxy/latex/md__c___users_kosmx__documents__git_hub_2d-game__text.tex
new file mode 100644
index 0000000000000000000000000000000000000000..b13489739a56781725c773a084cd657c21461346
--- /dev/null
+++ b/doxy/latex/md__c___users_kosmx__documents__git_hub_2d-game__text.tex
@@ -0,0 +1,3 @@
+I know, correctly it is {\ttfamily weapon}
+
+if you don\textquotesingle{}t understand this, open the porject in MS Visual Studio. 
\ No newline at end of file
diff --git a/doxy/latex/namespaceentities.tex b/doxy/latex/namespaceentities.tex
new file mode 100644
index 0000000000000000000000000000000000000000..0a8d0fbbca2df360ce8e436cba4868fa444ceff4
--- /dev/null
+++ b/doxy/latex/namespaceentities.tex
@@ -0,0 +1,23 @@
+\hypertarget{namespaceentities}{}\doxysection{entities Namespace Reference}
+\label{namespaceentities}\index{entities@{entities}}
+\doxysubsection*{Classes}
+\begin{DoxyCompactItemize}
+\item 
+class \mbox{\hyperlink{classentities_1_1_character_entity}{Character\+Entity}}
+\begin{DoxyCompactList}\small\item\em A player or an enemy. \end{DoxyCompactList}\item 
+class \mbox{\hyperlink{classentities_1_1_dummy_entity}{Dummy\+Entity}}
+\begin{DoxyCompactList}\small\item\em A test/dummy entity. it can\textquotesingle{}t do anything... no, it can die. \end{DoxyCompactList}\item 
+class \mbox{\hyperlink{classentities_1_1_entity}{Entity}}
+\begin{DoxyCompactList}\small\item\em Every object, what can be on the map. \end{DoxyCompactList}\item 
+class \mbox{\hyperlink{classentities_1_1_entity_with_a_i}{Entity\+With\+AI}}
+\begin{DoxyCompactList}\small\item\em The enemies. go after the player, and try to kill it. \end{DoxyCompactList}\item 
+class \mbox{\hyperlink{classentities_1_1_explosive_projectile}{Explosive\+Projectile}}
+\begin{DoxyCompactList}\small\item\em A projectile, that explodes. \end{DoxyCompactList}\item 
+class \mbox{\hyperlink{classentities_1_1_living_entity}{Living\+Entity}}
+\begin{DoxyCompactList}\small\item\em Any moving animal or player. \end{DoxyCompactList}\item 
+class \mbox{\hyperlink{classentities_1_1_player_entity}{Player\+Entity}}
+\begin{DoxyCompactList}\small\item\em You, or the player. \end{DoxyCompactList}\item 
+class \mbox{\hyperlink{classentities_1_1_projectile_entity}{Projectile\+Entity}}
+\begin{DoxyCompactList}\small\item\em A projectile, a bullet. \end{DoxyCompactList}\item 
+class \mbox{\hyperlink{classentities_1_1_wall_entity}{Wall\+Entity}}
+\begin{DoxyCompactList}\small\item\em Just a stupid wall, it doesn\textquotesingle{}t do much, can\textquotesingle{}t be killed... \end{DoxyCompactList}\end{DoxyCompactItemize}
diff --git a/doxy/latex/namespaceolc.tex b/doxy/latex/namespaceolc.tex
new file mode 100644
index 0000000000000000000000000000000000000000..3ab057ebdd8d023eef93a54d0f38823902416485
--- /dev/null
+++ b/doxy/latex/namespaceolc.tex
@@ -0,0 +1,1055 @@
+\hypertarget{namespaceolc}{}\doxysection{olc Namespace Reference}
+\label{namespaceolc}\index{olc@{olc}}
+\doxysubsection*{Classes}
+\begin{DoxyCompactItemize}
+\item 
+class \mbox{\hyperlink{classolc_1_1_decal}{Decal}}
+\item 
+struct \mbox{\hyperlink{structolc_1_1_decal_instance}{Decal\+Instance}}
+\item 
+struct \mbox{\hyperlink{structolc_1_1_h_w_button}{H\+W\+Button}}
+\item 
+class \mbox{\hyperlink{classolc_1_1_image_loader}{Image\+Loader}}
+\item 
+struct \mbox{\hyperlink{structolc_1_1_layer_desc}{Layer\+Desc}}
+\item 
+class \mbox{\hyperlink{classolc_1_1_p_g_e_x}{P\+G\+EX}}
+\item 
+struct \mbox{\hyperlink{structolc_1_1_pixel}{Pixel}}
+\item 
+class \mbox{\hyperlink{classolc_1_1_pixel_game_engine}{Pixel\+Game\+Engine}}
+\item 
+class \mbox{\hyperlink{classolc_1_1_platform}{Platform}}
+\item 
+class \mbox{\hyperlink{classolc_1_1_renderable}{Renderable}}
+\item 
+class \mbox{\hyperlink{classolc_1_1_renderer}{Renderer}}
+\item 
+struct \mbox{\hyperlink{structolc_1_1_resource_buffer}{Resource\+Buffer}}
+\item 
+class \mbox{\hyperlink{classolc_1_1_resource_pack}{Resource\+Pack}}
+\item 
+class \mbox{\hyperlink{classolc_1_1_sprite}{Sprite}}
+\item 
+class \mbox{\hyperlink{classolc_1_1_tile_transformed_view}{Tile\+Transformed\+View}}
+\item 
+class \mbox{\hyperlink{classolc_1_1_transformed_view}{Transformed\+View}}
+\item 
+struct \mbox{\hyperlink{structolc_1_1v2d__generic}{v2d\+\_\+generic}}
+\end{DoxyCompactItemize}
+\doxysubsection*{Typedefs}
+\begin{DoxyCompactItemize}
+\item 
+typedef \mbox{\hyperlink{structolc_1_1v2d__generic}{v2d\+\_\+generic}}$<$ int32\+\_\+t $>$ \mbox{\hyperlink{namespaceolc_a3c42697361e8a28424bcf8415aba3564}{vi2d}}
+\item 
+typedef \mbox{\hyperlink{structolc_1_1v2d__generic}{v2d\+\_\+generic}}$<$ uint32\+\_\+t $>$ \mbox{\hyperlink{namespaceolc_ac9f9fa9267428312fd81237a4cc5c8e5}{vu2d}}
+\item 
+typedef \mbox{\hyperlink{structolc_1_1v2d__generic}{v2d\+\_\+generic}}$<$ float $>$ \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{vf2d}}
+\item 
+typedef \mbox{\hyperlink{structolc_1_1v2d__generic}{v2d\+\_\+generic}}$<$ double $>$ \mbox{\hyperlink{namespaceolc_a51aaa7b75138a3323048a77457735d33}{vd2d}}
+\end{DoxyCompactItemize}
+\doxysubsection*{Enumerations}
+\begin{DoxyCompactItemize}
+\item 
+enum \mbox{\hyperlink{namespaceolc_a3d40e9b1c005602550230690b55ae87b}{rcode}} \{ \mbox{\hyperlink{namespaceolc_a3d40e9b1c005602550230690b55ae87baadc8ac6e9769db5bb290fbf5f8284dbf}{F\+A\+IL}} = 0, 
+\mbox{\hyperlink{namespaceolc_a3d40e9b1c005602550230690b55ae87ba0178b5f8abe39121e6f14d3c6c093a82}{OK}} = 1, 
+\mbox{\hyperlink{namespaceolc_a3d40e9b1c005602550230690b55ae87babfe0b9ad99c942b01b1ee61404f559b5}{N\+O\+\_\+\+F\+I\+LE}} = -\/1
+ \}
+\item 
+enum \mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7}{Key}} \{ \newline
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a569010ded143bbdfd1b2dc8e82327b45}{N\+O\+NE}}, 
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a3e1af6612f2964145f438bb63073098d}{A}}, 
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a8baf1c6fa76f36bae92c12df88f4c84d}{B}}, 
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7aaa5fe91e0948a39a142504c1f9067549}{C}}, 
+\newline
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a7323455add036f066f8b23546f0c37bb}{D}}, 
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7ad29058aa6514f4f9dcdefdba93adc8ec}{E}}, 
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a614698cb99af6a9effa5d7ce88b2c674}{F}}, 
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a1a7a9ef9ded3ee4bb7b7e4fbc69ae4b8}{G}}, 
+\newline
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a224c0773e09bdb7fb13683fbb4eeee1a}{H}}, 
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7ac242ddce5db0d462674ead1db3956a19}{I}}, 
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a476769e330b87f2fb75aaa684c2f6373}{J}}, 
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a136309f07b14d70a8561a69ca563bab7}{K}}, 
+\newline
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a4d809048542b770e810d48919c8f8500}{L}}, 
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7afda4a6ac36e1870cd31522ac4e40a113}{M}}, 
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7ab9b5b3e2b7e4f47de4a8d84e03cd5911}{N}}, 
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a7f95c3a8701b46a2cca143078d7e3aea}{O}}, 
+\newline
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a2af805290f6ef4b2de028b868debe170}{P}}, 
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a6d49ec75b05a97e8714ac8c244ad29a8}{Q}}, 
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a7417555746b2b1026b8ba65912817111}{R}}, 
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a050dfda2928d980787eeebcaaa4e6fa7}{S}}, 
+\newline
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0}{T}}, 
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a62c2493e1585db2af15cb70ac979fb09}{U}}, 
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a170eaa7913d25c0ff02712bd93d7bf81}{V}}, 
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7ac1ae605c94e2d813c718148311c101d1}{W}}, 
+\newline
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a259dcb71eab0ee6c477f792543f43ec5}{X}}, 
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a6207f4e5a37e546fa3881817046587b9}{Y}}, 
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a7c408b7a6694f74ac270013753b13aaa}{Z}}, 
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a2dd03c94eccd6d1259d4b2b51b7f85a7}{K0}}, 
+\newline
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a353892e1e3473d0a6d3427dd86080506}{K1}}, 
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7ab3b331dc3158175e2c567f7ebdf9fa75}{K2}}, 
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7aba2ad21d300fb113ff4e82665800cf75}{K3}}, 
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7aadd3a981032ec5fc07440dd0dbd1a3b3}{K4}}, 
+\newline
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a353906757178b0d48008b62cdca75332}{K5}}, 
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a81afecef4b483614604bfc5341d8a2d5}{K6}}, 
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a89291a8afb7ac7b481090dc97f643263}{K7}}, 
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a636f4e49257a6476ad0aab590318672f}{K8}}, 
+\newline
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a949dddf48734610228c20566a33912bc}{K9}}, 
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a17a119da4c7fd21cd061972ac8f8029a}{F1}}, 
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a207c1404adcacfadf941ffc681485026}{F2}}, 
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a573a484680114e221c1a3ecd8307d61a}{F3}}, 
+\newline
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a3c808be2b8b226138090bb3884bdc52b}{F4}}, 
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7ab9dd7de33e89c10afa7947bc5ff6fdea}{F5}}, 
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a12e4309f479cd3e34476ef3be7986847}{F6}}, 
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7ac955ad4fdd41f4d3600b29da016fdf36}{F7}}, 
+\newline
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7ab9ff66b449c18ecdb5b83a2e055e393b}{F8}}, 
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a2f2949bdd6d44b3c918531ebc30d8186}{F9}}, 
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7abe90f6618beb39117690b93a5c9d8ccb}{F10}}, 
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7aba366840d455651d4cedc7f7ee4c770b}{F11}}, 
+\newline
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a9bc869632cc0095b7d8e456efd571969}{F12}}, 
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a2b35f0b03e615b828187a990935344c4}{UP}}, 
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a506f2ec576fcd3a8fabd37461bba83f8}{D\+O\+WN}}, 
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a4da01be8126ba4113717cc6385ad22d2}{L\+E\+FT}}, 
+\newline
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a58e7b18972e446a03ce5ce915bc2d34d}{R\+I\+G\+HT}}, 
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a925d9a708542cd050a0b4f87bd7ba297}{S\+P\+A\+CE}}, 
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7aef93738bc8d89f07932dd1a603b021bd}{T\+AB}}, 
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a4cd994e0e2285e9b52e129f74c84aa0b}{S\+H\+I\+FT}}, 
+\newline
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7ae7e6e69075c36b0e44309aae888b86dc}{C\+T\+RL}}, 
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a691b8388214af88a7794c43d31fbe16a}{I\+NS}}, 
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a5a979509d792ab38404b7a2aca12c981}{D\+EL}}, 
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a29419f86c551b623c828f9530f301389}{H\+O\+ME}}, 
+\newline
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a53394a407c13bf8192b2946607d27a0f}{E\+ND}}, 
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a0bab26868b97eab537e7cad879d4b9a3}{P\+G\+UP}}, 
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7aae334e3943922c2b16842afc5306a1e9}{P\+G\+DN}}, 
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a390af039d8a8c4ab71787f001f810521}{B\+A\+CK}}, 
+\newline
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7ac58fbe549b8c1a668c42a17d9e572b0f}{E\+S\+C\+A\+PE}}, 
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a4f04a0bac23ee4f7b875d0328f29df27}{R\+E\+T\+U\+RN}}, 
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a31321cae06dfe0989acbbe94c5272b33}{E\+N\+T\+ER}}, 
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a0bc227b9b4a43118d7500e8195806d74}{P\+A\+U\+SE}}, 
+\newline
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a44cf52f457ad06d45cd947c72c291ccc}{S\+C\+R\+O\+LL}}, 
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a16054c3b1419b9679d95ac70ef262666}{N\+P0}}, 
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a96c49dba90b7ecdfcf88e18c2842a964}{N\+P1}}, 
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a7ca6517890a3566dbf758618f9c7690f}{N\+P2}}, 
+\newline
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7aab84341adb43a72b48030189f9919360}{N\+P3}}, 
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a443551e4895cf1d2be984eba0bd7098e}{N\+P4}}, 
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a0ba7e1a6dbc9d1291a40172a09bb49a4}{N\+P5}}, 
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7ad6aae0ca10843b8046ee0186af4e42f9}{N\+P6}}, 
+\newline
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7afee25adbffa6e8fc092d52193195182f}{N\+P7}}, 
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a468bb1704a74fc6e42d28e7bee8ecb51}{N\+P8}}, 
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a53987c7c18a4a4479c4e1ff7f65c414e}{N\+P9}}, 
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7ae2ce826d1d0de6429f9f28a19d11edfb}{N\+P\+\_\+\+M\+UL}}, 
+\newline
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7aee5afd77eb82eb3111195ee300ff3714}{N\+P\+\_\+\+D\+IV}}, 
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7af15830fd3562b144e15a9d8abeb6c118}{N\+P\+\_\+\+A\+DD}}, 
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7aade223a1643f8d607eb44fff1bbaae8e}{N\+P\+\_\+\+S\+UB}}, 
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a2c21f93f355bf0a6baa7e205acd86b50}{N\+P\+\_\+\+D\+E\+C\+I\+M\+AL}}, 
+\newline
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a1adffcecf8c735b404ac6eedf220ae5a}{P\+E\+R\+I\+OD}}, 
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7aa82c0ef0b75db6208407e90f6f77f002}{E\+Q\+U\+A\+LS}}, 
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7ae2fab0c220f54cd28729c9340951ecb4}{C\+O\+M\+MA}}, 
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a4b3a1d83a513de0e2c3c8ba2a8a5fd2d}{M\+I\+N\+US}}, 
+\newline
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a3a044efaf7d74df21e84a29063006eae}{O\+E\+M\+\_\+1}}, 
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7ad29833dd46d756ecf0e9d477d0845450}{O\+E\+M\+\_\+2}}, 
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7abb25924adf005b39efaef185f332a3ad}{O\+E\+M\+\_\+3}}, 
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7aa09e2508e2f2fd372d3e37ebdfce6814}{O\+E\+M\+\_\+4}}, 
+\newline
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7ad7e69e28cedaf91718aa4801d5a3bdb7}{O\+E\+M\+\_\+5}}, 
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7af2cec59ecc924be0b636e5b767abf29f}{O\+E\+M\+\_\+6}}, 
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a3dada7cdf09fb367c10c650e9bce7bfa}{O\+E\+M\+\_\+7}}, 
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7ab719317cfd8ac665e8cc2f420f74b46a}{O\+E\+M\+\_\+8}}, 
+\newline
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a523c88e17275650861203e32067dde01}{C\+A\+P\+S\+\_\+\+L\+O\+CK}}, 
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a35430b793d6fae00ed8b060cb0accf32}{E\+N\+U\+M\+\_\+\+E\+ND}}
+ \}
+\item 
+enum \mbox{\hyperlink{namespaceolc_aeda642f63378f868193c28e8613138ca}{Decal\+Mode}} \{ \newline
+\mbox{\hyperlink{namespaceolc_aeda642f63378f868193c28e8613138caa1e23852820b9154316c7c06e2b7ba051}{Decal\+Mode\+::\+N\+O\+R\+M\+AL}}, 
+\mbox{\hyperlink{namespaceolc_aeda642f63378f868193c28e8613138caa8d8c2c7c04ebe2b70bca10a3060ca491}{Decal\+Mode\+::\+A\+D\+D\+I\+T\+I\+VE}}, 
+\mbox{\hyperlink{namespaceolc_aeda642f63378f868193c28e8613138caa418ef46700a2836c0d6218e2b46bf564}{Decal\+Mode\+::\+M\+U\+L\+T\+I\+P\+L\+I\+C\+A\+T\+I\+VE}}, 
+\mbox{\hyperlink{namespaceolc_aeda642f63378f868193c28e8613138caa301b25ea9a653329b5d5d727f92514c4}{Decal\+Mode\+::\+S\+T\+E\+N\+C\+IL}}, 
+\newline
+\mbox{\hyperlink{namespaceolc_aeda642f63378f868193c28e8613138caab892134232b911680f88a64a24883f7d}{Decal\+Mode\+::\+I\+L\+L\+U\+M\+I\+N\+A\+TE}}, 
+\mbox{\hyperlink{namespaceolc_aeda642f63378f868193c28e8613138caa43ea8c7cefb63ec314b4df5628cba577}{Decal\+Mode\+::\+W\+I\+R\+E\+F\+R\+A\+ME}}
+ \}
+\end{DoxyCompactItemize}
+\doxysubsection*{Functions}
+\begin{DoxyCompactItemize}
+\item 
+\mbox{\hyperlink{structolc_1_1_pixel}{Pixel}} \mbox{\hyperlink{namespaceolc_a06c9f23f2e370e7afe71788427a820fd}{PixelF}} (float red, float green, float blue, float alpha=1.\+0f)
+\item 
+\mbox{\hyperlink{structolc_1_1_pixel}{Pixel}} \mbox{\hyperlink{namespaceolc_a2069e5cf447f5dd311c680c9463f9c42}{Pixel\+Lerp}} (const \mbox{\hyperlink{structolc_1_1_pixel}{olc\+::\+Pixel}} \&p1, const \mbox{\hyperlink{structolc_1_1_pixel}{olc\+::\+Pixel}} \&p2, float t)
+\item 
+static const \mbox{\hyperlink{structolc_1_1_pixel}{Pixel}} \mbox{\hyperlink{namespaceolc_a7208a6ce62e94eca5b0ba80f7c2f5e30}{D\+A\+R\+K\+\_\+\+G\+R\+EY}} (128, 128, 128)
+\item 
+static const \mbox{\hyperlink{structolc_1_1_pixel}{Pixel}} \mbox{\hyperlink{namespaceolc_a93de271d8b3cbd5aec73a085e6a6ec7a}{V\+E\+R\+Y\+\_\+\+D\+A\+R\+K\+\_\+\+G\+R\+EY}} (64, 64, 64)
+\item 
+static const \mbox{\hyperlink{structolc_1_1_pixel}{Pixel}} \mbox{\hyperlink{namespaceolc_ad4579f7eb75a257d76bb657a268f0a8d}{R\+ED}} (255, 0, 0)
+\item 
+static const \mbox{\hyperlink{structolc_1_1_pixel}{Pixel}} \mbox{\hyperlink{namespaceolc_a8265396ef812918ca95d2e7aa39c14cc}{D\+A\+R\+K\+\_\+\+R\+ED}} (128, 0, 0)
+\item 
+static const \mbox{\hyperlink{structolc_1_1_pixel}{Pixel}} \mbox{\hyperlink{namespaceolc_a82b6404acf7ac86f237179fc5f9a859f}{V\+E\+R\+Y\+\_\+\+D\+A\+R\+K\+\_\+\+R\+ED}} (64, 0, 0)
+\item 
+static const \mbox{\hyperlink{structolc_1_1_pixel}{Pixel}} \mbox{\hyperlink{namespaceolc_a6c9728f6dba8b58406bb0e10979b6ccf}{Y\+E\+L\+L\+OW}} (255, 255, 0)
+\item 
+static const \mbox{\hyperlink{structolc_1_1_pixel}{Pixel}} \mbox{\hyperlink{namespaceolc_a379f9d3a40edb1700299c031cd0b6a08}{D\+A\+R\+K\+\_\+\+Y\+E\+L\+L\+OW}} (128, 128, 0)
+\item 
+static const \mbox{\hyperlink{structolc_1_1_pixel}{Pixel}} \mbox{\hyperlink{namespaceolc_a131df56f1dd5cb0906cd02f9df49b17d}{V\+E\+R\+Y\+\_\+\+D\+A\+R\+K\+\_\+\+Y\+E\+L\+L\+OW}} (64, 64, 0)
+\item 
+static const \mbox{\hyperlink{structolc_1_1_pixel}{Pixel}} \mbox{\hyperlink{namespaceolc_a32b98884f548bf731eab3225557ebe8c}{G\+R\+E\+EN}} (0, 255, 0)
+\item 
+static const \mbox{\hyperlink{structolc_1_1_pixel}{Pixel}} \mbox{\hyperlink{namespaceolc_ac192218acb2f30c4c3748485dd5e4ba0}{D\+A\+R\+K\+\_\+\+G\+R\+E\+EN}} (0, 128, 0)
+\item 
+static const \mbox{\hyperlink{structolc_1_1_pixel}{Pixel}} \mbox{\hyperlink{namespaceolc_a29c85b49a3c9cbd0b251e80e3bc57140}{V\+E\+R\+Y\+\_\+\+D\+A\+R\+K\+\_\+\+G\+R\+E\+EN}} (0, 64, 0)
+\item 
+static const \mbox{\hyperlink{structolc_1_1_pixel}{Pixel}} \mbox{\hyperlink{namespaceolc_a43ffa41e9a4a260b86da82b823e6a252}{C\+Y\+AN}} (0, 255, 255)
+\item 
+static const \mbox{\hyperlink{structolc_1_1_pixel}{Pixel}} \mbox{\hyperlink{namespaceolc_aa0824f5fdd85c58712495a7bc0de191e}{D\+A\+R\+K\+\_\+\+C\+Y\+AN}} (0, 128, 128)
+\item 
+static const \mbox{\hyperlink{structolc_1_1_pixel}{Pixel}} \mbox{\hyperlink{namespaceolc_aee6a06b446368ac58033b5ae4f4c6ca2}{V\+E\+R\+Y\+\_\+\+D\+A\+R\+K\+\_\+\+C\+Y\+AN}} (0, 64, 64)
+\item 
+static const \mbox{\hyperlink{structolc_1_1_pixel}{Pixel}} \mbox{\hyperlink{namespaceolc_ac1e1d3e39e0b78e9767142c9daeba4ee}{B\+L\+UE}} (0, 0, 255)
+\item 
+static const \mbox{\hyperlink{structolc_1_1_pixel}{Pixel}} \mbox{\hyperlink{namespaceolc_ac6e041f71287438da8b9145758c4fe63}{D\+A\+R\+K\+\_\+\+B\+L\+UE}} (0, 0, 128)
+\item 
+static const \mbox{\hyperlink{structolc_1_1_pixel}{Pixel}} \mbox{\hyperlink{namespaceolc_a48fb6375b9a7c0a0d44feaa879e7ebb7}{V\+E\+R\+Y\+\_\+\+D\+A\+R\+K\+\_\+\+B\+L\+UE}} (0, 0, 64)
+\item 
+static const \mbox{\hyperlink{structolc_1_1_pixel}{Pixel}} \mbox{\hyperlink{namespaceolc_adc292fdc3c4d2a03e8c6bbad1853b727}{M\+A\+G\+E\+N\+TA}} (255, 0, 255)
+\item 
+static const \mbox{\hyperlink{structolc_1_1_pixel}{Pixel}} \mbox{\hyperlink{namespaceolc_abad91f58a178a173f76ce7d9f9aa99c4}{D\+A\+R\+K\+\_\+\+M\+A\+G\+E\+N\+TA}} (128, 0, 128)
+\item 
+static const \mbox{\hyperlink{structolc_1_1_pixel}{Pixel}} \mbox{\hyperlink{namespaceolc_a150fed0369958dc77d3207298588bc94}{V\+E\+R\+Y\+\_\+\+D\+A\+R\+K\+\_\+\+M\+A\+G\+E\+N\+TA}} (64, 0, 64)
+\item 
+static const \mbox{\hyperlink{structolc_1_1_pixel}{Pixel}} \mbox{\hyperlink{namespaceolc_ae3de4726bf87f2d74693e62d76816db1}{W\+H\+I\+TE}} (255, 255, 255)
+\item 
+static const \mbox{\hyperlink{structolc_1_1_pixel}{Pixel}} \mbox{\hyperlink{namespaceolc_a183de1c471cfd6f45980bc9c2c58ed9d}{B\+L\+A\+CK}} (0, 0, 0)
+\item 
+static const \mbox{\hyperlink{structolc_1_1_pixel}{Pixel}} \mbox{\hyperlink{namespaceolc_ac940e7f6502cbced06f26b4d13349166}{B\+L\+A\+NK}} (0, 0, 0, 0)
+\item 
+{\footnotesize template$<$class T $>$ }\\\mbox{\hyperlink{structolc_1_1v2d__generic}{v2d\+\_\+generic}}$<$ \mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0}{T}} $>$ \mbox{\hyperlink{namespaceolc_a0cb5b54cc54cf0c92741da285010e1e5}{operator$\ast$}} (const float \&lhs, const \mbox{\hyperlink{structolc_1_1v2d__generic}{v2d\+\_\+generic}}$<$ \mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0}{T}} $>$ \&rhs)
+\item 
+{\footnotesize template$<$class T $>$ }\\\mbox{\hyperlink{structolc_1_1v2d__generic}{v2d\+\_\+generic}}$<$ \mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0}{T}} $>$ \mbox{\hyperlink{namespaceolc_a9a03952e9e6c1c40c2512560ac182382}{operator$\ast$}} (const double \&lhs, const \mbox{\hyperlink{structolc_1_1v2d__generic}{v2d\+\_\+generic}}$<$ \mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0}{T}} $>$ \&rhs)
+\item 
+{\footnotesize template$<$class T $>$ }\\\mbox{\hyperlink{structolc_1_1v2d__generic}{v2d\+\_\+generic}}$<$ \mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0}{T}} $>$ \mbox{\hyperlink{namespaceolc_ab04d4eba2afcfda14b1045bace972a76}{operator$\ast$}} (const int \&lhs, const \mbox{\hyperlink{structolc_1_1v2d__generic}{v2d\+\_\+generic}}$<$ \mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0}{T}} $>$ \&rhs)
+\item 
+{\footnotesize template$<$class T $>$ }\\\mbox{\hyperlink{structolc_1_1v2d__generic}{v2d\+\_\+generic}}$<$ \mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0}{T}} $>$ \mbox{\hyperlink{namespaceolc_a6448f6127e1003cd9287161c5c4d52e0}{operator/}} (const float \&lhs, const \mbox{\hyperlink{structolc_1_1v2d__generic}{v2d\+\_\+generic}}$<$ \mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0}{T}} $>$ \&rhs)
+\item 
+{\footnotesize template$<$class T $>$ }\\\mbox{\hyperlink{structolc_1_1v2d__generic}{v2d\+\_\+generic}}$<$ \mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0}{T}} $>$ \mbox{\hyperlink{namespaceolc_a879e763a12d6fbc6b4d3e2aac7b4c85a}{operator/}} (const double \&lhs, const \mbox{\hyperlink{structolc_1_1v2d__generic}{v2d\+\_\+generic}}$<$ \mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0}{T}} $>$ \&rhs)
+\item 
+{\footnotesize template$<$class T $>$ }\\\mbox{\hyperlink{structolc_1_1v2d__generic}{v2d\+\_\+generic}}$<$ \mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0}{T}} $>$ \mbox{\hyperlink{namespaceolc_a302501c3eb64a99ffa93feac2cc46115}{operator/}} (const int \&lhs, const \mbox{\hyperlink{structolc_1_1v2d__generic}{v2d\+\_\+generic}}$<$ \mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0}{T}} $>$ \&rhs)
+\item 
+{\footnotesize template$<$class T , class U $>$ }\\bool \mbox{\hyperlink{namespaceolc_a2831a8757172243381b08adf69e91e0a}{operator$<$}} (const \mbox{\hyperlink{structolc_1_1v2d__generic}{v2d\+\_\+generic}}$<$ \mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0}{T}} $>$ \&lhs, const \mbox{\hyperlink{structolc_1_1v2d__generic}{v2d\+\_\+generic}}$<$ \mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a62c2493e1585db2af15cb70ac979fb09}{U}} $>$ \&rhs)
+\item 
+{\footnotesize template$<$class T , class U $>$ }\\bool \mbox{\hyperlink{namespaceolc_a34519a6f9006c6c4854bbe762d490900}{operator$>$}} (const \mbox{\hyperlink{structolc_1_1v2d__generic}{v2d\+\_\+generic}}$<$ \mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0}{T}} $>$ \&lhs, const \mbox{\hyperlink{structolc_1_1v2d__generic}{v2d\+\_\+generic}}$<$ \mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a62c2493e1585db2af15cb70ac979fb09}{U}} $>$ \&rhs)
+\end{DoxyCompactItemize}
+\doxysubsection*{Variables}
+\begin{DoxyCompactItemize}
+\item 
+constexpr uint8\+\_\+t \mbox{\hyperlink{namespaceolc_abf7dfc35dd1d895f33d3635831953e38}{n\+Mouse\+Buttons}} = 5
+\item 
+constexpr uint8\+\_\+t \mbox{\hyperlink{namespaceolc_adede7d1156ab9d8ffdc3e9048f0f364b}{n\+Default\+Alpha}} = 0x\+FF
+\item 
+constexpr uint32\+\_\+t \mbox{\hyperlink{namespaceolc_a10bbdc57cc3fecc7b80ba428eb7494d0}{n\+Default\+Pixel}} = (\mbox{\hyperlink{namespaceolc_adede7d1156ab9d8ffdc3e9048f0f364b}{n\+Default\+Alpha}} $<$$<$ 24)
+\end{DoxyCompactItemize}
+
+
+\doxysubsection{Typedef Documentation}
+\mbox{\Hypertarget{namespaceolc_a51aaa7b75138a3323048a77457735d33}\label{namespaceolc_a51aaa7b75138a3323048a77457735d33}} 
+\index{olc@{olc}!vd2d@{vd2d}}
+\index{vd2d@{vd2d}!olc@{olc}}
+\doxysubsubsection{\texorpdfstring{vd2d}{vd2d}}
+{\footnotesize\ttfamily typedef \mbox{\hyperlink{structolc_1_1v2d__generic}{v2d\+\_\+generic}}$<$double$>$ \mbox{\hyperlink{namespaceolc_a51aaa7b75138a3323048a77457735d33}{olc\+::vd2d}}}
+
+
+
+Definition at line 647 of file olc\+Pixel\+Game\+Engine.\+h.
+
+\mbox{\Hypertarget{namespaceolc_adb87819740ea9625f84c821fffb16429}\label{namespaceolc_adb87819740ea9625f84c821fffb16429}} 
+\index{olc@{olc}!vf2d@{vf2d}}
+\index{vf2d@{vf2d}!olc@{olc}}
+\doxysubsubsection{\texorpdfstring{vf2d}{vf2d}}
+{\footnotesize\ttfamily typedef \mbox{\hyperlink{structolc_1_1v2d__generic}{v2d\+\_\+generic}}$<$float$>$ \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}}}
+
+
+
+Definition at line 646 of file olc\+Pixel\+Game\+Engine.\+h.
+
+\mbox{\Hypertarget{namespaceolc_a3c42697361e8a28424bcf8415aba3564}\label{namespaceolc_a3c42697361e8a28424bcf8415aba3564}} 
+\index{olc@{olc}!vi2d@{vi2d}}
+\index{vi2d@{vi2d}!olc@{olc}}
+\doxysubsubsection{\texorpdfstring{vi2d}{vi2d}}
+{\footnotesize\ttfamily typedef \mbox{\hyperlink{structolc_1_1v2d__generic}{v2d\+\_\+generic}}$<$int32\+\_\+t$>$ \mbox{\hyperlink{namespaceolc_a3c42697361e8a28424bcf8415aba3564}{olc\+::vi2d}}}
+
+
+
+Definition at line 644 of file olc\+Pixel\+Game\+Engine.\+h.
+
+\mbox{\Hypertarget{namespaceolc_ac9f9fa9267428312fd81237a4cc5c8e5}\label{namespaceolc_ac9f9fa9267428312fd81237a4cc5c8e5}} 
+\index{olc@{olc}!vu2d@{vu2d}}
+\index{vu2d@{vu2d}!olc@{olc}}
+\doxysubsubsection{\texorpdfstring{vu2d}{vu2d}}
+{\footnotesize\ttfamily typedef \mbox{\hyperlink{structolc_1_1v2d__generic}{v2d\+\_\+generic}}$<$uint32\+\_\+t$>$ \mbox{\hyperlink{namespaceolc_ac9f9fa9267428312fd81237a4cc5c8e5}{olc\+::vu2d}}}
+
+
+
+Definition at line 645 of file olc\+Pixel\+Game\+Engine.\+h.
+
+
+
+\doxysubsection{Enumeration Type Documentation}
+\mbox{\Hypertarget{namespaceolc_aeda642f63378f868193c28e8613138ca}\label{namespaceolc_aeda642f63378f868193c28e8613138ca}} 
+\index{olc@{olc}!DecalMode@{DecalMode}}
+\index{DecalMode@{DecalMode}!olc@{olc}}
+\doxysubsubsection{\texorpdfstring{DecalMode}{DecalMode}}
+{\footnotesize\ttfamily enum \mbox{\hyperlink{namespaceolc_aeda642f63378f868193c28e8613138ca}{olc\+::\+Decal\+Mode}}\hspace{0.3cm}{\ttfamily [strong]}}
+
+\begin{DoxyEnumFields}{Enumerator}
+\raisebox{\heightof{T}}[0pt][0pt]{\index{NORMAL@{NORMAL}!olc@{olc}}\index{olc@{olc}!NORMAL@{NORMAL}}}\mbox{\Hypertarget{namespaceolc_aeda642f63378f868193c28e8613138caa1e23852820b9154316c7c06e2b7ba051}\label{namespaceolc_aeda642f63378f868193c28e8613138caa1e23852820b9154316c7c06e2b7ba051}} 
+N\+O\+R\+M\+AL&\\
+\hline
+
+\raisebox{\heightof{T}}[0pt][0pt]{\index{ADDITIVE@{ADDITIVE}!olc@{olc}}\index{olc@{olc}!ADDITIVE@{ADDITIVE}}}\mbox{\Hypertarget{namespaceolc_aeda642f63378f868193c28e8613138caa8d8c2c7c04ebe2b70bca10a3060ca491}\label{namespaceolc_aeda642f63378f868193c28e8613138caa8d8c2c7c04ebe2b70bca10a3060ca491}} 
+A\+D\+D\+I\+T\+I\+VE&\\
+\hline
+
+\raisebox{\heightof{T}}[0pt][0pt]{\index{MULTIPLICATIVE@{MULTIPLICATIVE}!olc@{olc}}\index{olc@{olc}!MULTIPLICATIVE@{MULTIPLICATIVE}}}\mbox{\Hypertarget{namespaceolc_aeda642f63378f868193c28e8613138caa418ef46700a2836c0d6218e2b46bf564}\label{namespaceolc_aeda642f63378f868193c28e8613138caa418ef46700a2836c0d6218e2b46bf564}} 
+M\+U\+L\+T\+I\+P\+L\+I\+C\+A\+T\+I\+VE&\\
+\hline
+
+\raisebox{\heightof{T}}[0pt][0pt]{\index{STENCIL@{STENCIL}!olc@{olc}}\index{olc@{olc}!STENCIL@{STENCIL}}}\mbox{\Hypertarget{namespaceolc_aeda642f63378f868193c28e8613138caa301b25ea9a653329b5d5d727f92514c4}\label{namespaceolc_aeda642f63378f868193c28e8613138caa301b25ea9a653329b5d5d727f92514c4}} 
+S\+T\+E\+N\+C\+IL&\\
+\hline
+
+\raisebox{\heightof{T}}[0pt][0pt]{\index{ILLUMINATE@{ILLUMINATE}!olc@{olc}}\index{olc@{olc}!ILLUMINATE@{ILLUMINATE}}}\mbox{\Hypertarget{namespaceolc_aeda642f63378f868193c28e8613138caab892134232b911680f88a64a24883f7d}\label{namespaceolc_aeda642f63378f868193c28e8613138caab892134232b911680f88a64a24883f7d}} 
+I\+L\+L\+U\+M\+I\+N\+A\+TE&\\
+\hline
+
+\raisebox{\heightof{T}}[0pt][0pt]{\index{WIREFRAME@{WIREFRAME}!olc@{olc}}\index{olc@{olc}!WIREFRAME@{WIREFRAME}}}\mbox{\Hypertarget{namespaceolc_aeda642f63378f868193c28e8613138caa43ea8c7cefb63ec314b4df5628cba577}\label{namespaceolc_aeda642f63378f868193c28e8613138caa43ea8c7cefb63ec314b4df5628cba577}} 
+W\+I\+R\+E\+F\+R\+A\+ME&\\
+\hline
+
+\end{DoxyEnumFields}
+
+
+Definition at line 751 of file olc\+Pixel\+Game\+Engine.\+h.
+
+\mbox{\Hypertarget{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7}\label{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7}} 
+\index{olc@{olc}!Key@{Key}}
+\index{Key@{Key}!olc@{olc}}
+\doxysubsubsection{\texorpdfstring{Key}{Key}}
+{\footnotesize\ttfamily enum \mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7}{olc\+::\+Key}}}
+
+\begin{DoxyEnumFields}{Enumerator}
+\raisebox{\heightof{T}}[0pt][0pt]{\index{NONE@{NONE}!olc@{olc}}\index{olc@{olc}!NONE@{NONE}}}\mbox{\Hypertarget{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a569010ded143bbdfd1b2dc8e82327b45}\label{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a569010ded143bbdfd1b2dc8e82327b45}} 
+N\+O\+NE&\\
+\hline
+
+\raisebox{\heightof{T}}[0pt][0pt]{\index{A@{A}!olc@{olc}}\index{olc@{olc}!A@{A}}}\mbox{\Hypertarget{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a3e1af6612f2964145f438bb63073098d}\label{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a3e1af6612f2964145f438bb63073098d}} 
+A&\\
+\hline
+
+\raisebox{\heightof{T}}[0pt][0pt]{\index{B@{B}!olc@{olc}}\index{olc@{olc}!B@{B}}}\mbox{\Hypertarget{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a8baf1c6fa76f36bae92c12df88f4c84d}\label{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a8baf1c6fa76f36bae92c12df88f4c84d}} 
+B&\\
+\hline
+
+\raisebox{\heightof{T}}[0pt][0pt]{\index{C@{C}!olc@{olc}}\index{olc@{olc}!C@{C}}}\mbox{\Hypertarget{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7aaa5fe91e0948a39a142504c1f9067549}\label{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7aaa5fe91e0948a39a142504c1f9067549}} 
+C&\\
+\hline
+
+\raisebox{\heightof{T}}[0pt][0pt]{\index{D@{D}!olc@{olc}}\index{olc@{olc}!D@{D}}}\mbox{\Hypertarget{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a7323455add036f066f8b23546f0c37bb}\label{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a7323455add036f066f8b23546f0c37bb}} 
+D&\\
+\hline
+
+\raisebox{\heightof{T}}[0pt][0pt]{\index{E@{E}!olc@{olc}}\index{olc@{olc}!E@{E}}}\mbox{\Hypertarget{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7ad29058aa6514f4f9dcdefdba93adc8ec}\label{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7ad29058aa6514f4f9dcdefdba93adc8ec}} 
+E&\\
+\hline
+
+\raisebox{\heightof{T}}[0pt][0pt]{\index{F@{F}!olc@{olc}}\index{olc@{olc}!F@{F}}}\mbox{\Hypertarget{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a614698cb99af6a9effa5d7ce88b2c674}\label{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a614698cb99af6a9effa5d7ce88b2c674}} 
+F&\\
+\hline
+
+\raisebox{\heightof{T}}[0pt][0pt]{\index{G@{G}!olc@{olc}}\index{olc@{olc}!G@{G}}}\mbox{\Hypertarget{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a1a7a9ef9ded3ee4bb7b7e4fbc69ae4b8}\label{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a1a7a9ef9ded3ee4bb7b7e4fbc69ae4b8}} 
+G&\\
+\hline
+
+\raisebox{\heightof{T}}[0pt][0pt]{\index{H@{H}!olc@{olc}}\index{olc@{olc}!H@{H}}}\mbox{\Hypertarget{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a224c0773e09bdb7fb13683fbb4eeee1a}\label{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a224c0773e09bdb7fb13683fbb4eeee1a}} 
+H&\\
+\hline
+
+\raisebox{\heightof{T}}[0pt][0pt]{\index{I@{I}!olc@{olc}}\index{olc@{olc}!I@{I}}}\mbox{\Hypertarget{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7ac242ddce5db0d462674ead1db3956a19}\label{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7ac242ddce5db0d462674ead1db3956a19}} 
+I&\\
+\hline
+
+\raisebox{\heightof{T}}[0pt][0pt]{\index{J@{J}!olc@{olc}}\index{olc@{olc}!J@{J}}}\mbox{\Hypertarget{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a476769e330b87f2fb75aaa684c2f6373}\label{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a476769e330b87f2fb75aaa684c2f6373}} 
+J&\\
+\hline
+
+\raisebox{\heightof{T}}[0pt][0pt]{\index{K@{K}!olc@{olc}}\index{olc@{olc}!K@{K}}}\mbox{\Hypertarget{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a136309f07b14d70a8561a69ca563bab7}\label{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a136309f07b14d70a8561a69ca563bab7}} 
+K&\\
+\hline
+
+\raisebox{\heightof{T}}[0pt][0pt]{\index{L@{L}!olc@{olc}}\index{olc@{olc}!L@{L}}}\mbox{\Hypertarget{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a4d809048542b770e810d48919c8f8500}\label{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a4d809048542b770e810d48919c8f8500}} 
+L&\\
+\hline
+
+\raisebox{\heightof{T}}[0pt][0pt]{\index{M@{M}!olc@{olc}}\index{olc@{olc}!M@{M}}}\mbox{\Hypertarget{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7afda4a6ac36e1870cd31522ac4e40a113}\label{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7afda4a6ac36e1870cd31522ac4e40a113}} 
+M&\\
+\hline
+
+\raisebox{\heightof{T}}[0pt][0pt]{\index{N@{N}!olc@{olc}}\index{olc@{olc}!N@{N}}}\mbox{\Hypertarget{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7ab9b5b3e2b7e4f47de4a8d84e03cd5911}\label{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7ab9b5b3e2b7e4f47de4a8d84e03cd5911}} 
+N&\\
+\hline
+
+\raisebox{\heightof{T}}[0pt][0pt]{\index{O@{O}!olc@{olc}}\index{olc@{olc}!O@{O}}}\mbox{\Hypertarget{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a7f95c3a8701b46a2cca143078d7e3aea}\label{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a7f95c3a8701b46a2cca143078d7e3aea}} 
+O&\\
+\hline
+
+\raisebox{\heightof{T}}[0pt][0pt]{\index{P@{P}!olc@{olc}}\index{olc@{olc}!P@{P}}}\mbox{\Hypertarget{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a2af805290f6ef4b2de028b868debe170}\label{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a2af805290f6ef4b2de028b868debe170}} 
+P&\\
+\hline
+
+\raisebox{\heightof{T}}[0pt][0pt]{\index{Q@{Q}!olc@{olc}}\index{olc@{olc}!Q@{Q}}}\mbox{\Hypertarget{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a6d49ec75b05a97e8714ac8c244ad29a8}\label{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a6d49ec75b05a97e8714ac8c244ad29a8}} 
+Q&\\
+\hline
+
+\raisebox{\heightof{T}}[0pt][0pt]{\index{R@{R}!olc@{olc}}\index{olc@{olc}!R@{R}}}\mbox{\Hypertarget{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a7417555746b2b1026b8ba65912817111}\label{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a7417555746b2b1026b8ba65912817111}} 
+R&\\
+\hline
+
+\raisebox{\heightof{T}}[0pt][0pt]{\index{S@{S}!olc@{olc}}\index{olc@{olc}!S@{S}}}\mbox{\Hypertarget{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a050dfda2928d980787eeebcaaa4e6fa7}\label{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a050dfda2928d980787eeebcaaa4e6fa7}} 
+S&\\
+\hline
+
+\raisebox{\heightof{T}}[0pt][0pt]{\index{T@{T}!olc@{olc}}\index{olc@{olc}!T@{T}}}\mbox{\Hypertarget{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0}\label{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0}} 
+T&\\
+\hline
+
+\raisebox{\heightof{T}}[0pt][0pt]{\index{U@{U}!olc@{olc}}\index{olc@{olc}!U@{U}}}\mbox{\Hypertarget{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a62c2493e1585db2af15cb70ac979fb09}\label{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a62c2493e1585db2af15cb70ac979fb09}} 
+U&\\
+\hline
+
+\raisebox{\heightof{T}}[0pt][0pt]{\index{V@{V}!olc@{olc}}\index{olc@{olc}!V@{V}}}\mbox{\Hypertarget{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a170eaa7913d25c0ff02712bd93d7bf81}\label{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a170eaa7913d25c0ff02712bd93d7bf81}} 
+V&\\
+\hline
+
+\raisebox{\heightof{T}}[0pt][0pt]{\index{W@{W}!olc@{olc}}\index{olc@{olc}!W@{W}}}\mbox{\Hypertarget{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7ac1ae605c94e2d813c718148311c101d1}\label{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7ac1ae605c94e2d813c718148311c101d1}} 
+W&\\
+\hline
+
+\raisebox{\heightof{T}}[0pt][0pt]{\index{X@{X}!olc@{olc}}\index{olc@{olc}!X@{X}}}\mbox{\Hypertarget{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a259dcb71eab0ee6c477f792543f43ec5}\label{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a259dcb71eab0ee6c477f792543f43ec5}} 
+X&\\
+\hline
+
+\raisebox{\heightof{T}}[0pt][0pt]{\index{Y@{Y}!olc@{olc}}\index{olc@{olc}!Y@{Y}}}\mbox{\Hypertarget{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a6207f4e5a37e546fa3881817046587b9}\label{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a6207f4e5a37e546fa3881817046587b9}} 
+Y&\\
+\hline
+
+\raisebox{\heightof{T}}[0pt][0pt]{\index{Z@{Z}!olc@{olc}}\index{olc@{olc}!Z@{Z}}}\mbox{\Hypertarget{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a7c408b7a6694f74ac270013753b13aaa}\label{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a7c408b7a6694f74ac270013753b13aaa}} 
+Z&\\
+\hline
+
+\raisebox{\heightof{T}}[0pt][0pt]{\index{K0@{K0}!olc@{olc}}\index{olc@{olc}!K0@{K0}}}\mbox{\Hypertarget{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a2dd03c94eccd6d1259d4b2b51b7f85a7}\label{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a2dd03c94eccd6d1259d4b2b51b7f85a7}} 
+K0&\\
+\hline
+
+\raisebox{\heightof{T}}[0pt][0pt]{\index{K1@{K1}!olc@{olc}}\index{olc@{olc}!K1@{K1}}}\mbox{\Hypertarget{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a353892e1e3473d0a6d3427dd86080506}\label{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a353892e1e3473d0a6d3427dd86080506}} 
+K1&\\
+\hline
+
+\raisebox{\heightof{T}}[0pt][0pt]{\index{K2@{K2}!olc@{olc}}\index{olc@{olc}!K2@{K2}}}\mbox{\Hypertarget{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7ab3b331dc3158175e2c567f7ebdf9fa75}\label{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7ab3b331dc3158175e2c567f7ebdf9fa75}} 
+K2&\\
+\hline
+
+\raisebox{\heightof{T}}[0pt][0pt]{\index{K3@{K3}!olc@{olc}}\index{olc@{olc}!K3@{K3}}}\mbox{\Hypertarget{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7aba2ad21d300fb113ff4e82665800cf75}\label{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7aba2ad21d300fb113ff4e82665800cf75}} 
+K3&\\
+\hline
+
+\raisebox{\heightof{T}}[0pt][0pt]{\index{K4@{K4}!olc@{olc}}\index{olc@{olc}!K4@{K4}}}\mbox{\Hypertarget{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7aadd3a981032ec5fc07440dd0dbd1a3b3}\label{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7aadd3a981032ec5fc07440dd0dbd1a3b3}} 
+K4&\\
+\hline
+
+\raisebox{\heightof{T}}[0pt][0pt]{\index{K5@{K5}!olc@{olc}}\index{olc@{olc}!K5@{K5}}}\mbox{\Hypertarget{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a353906757178b0d48008b62cdca75332}\label{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a353906757178b0d48008b62cdca75332}} 
+K5&\\
+\hline
+
+\raisebox{\heightof{T}}[0pt][0pt]{\index{K6@{K6}!olc@{olc}}\index{olc@{olc}!K6@{K6}}}\mbox{\Hypertarget{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a81afecef4b483614604bfc5341d8a2d5}\label{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a81afecef4b483614604bfc5341d8a2d5}} 
+K6&\\
+\hline
+
+\raisebox{\heightof{T}}[0pt][0pt]{\index{K7@{K7}!olc@{olc}}\index{olc@{olc}!K7@{K7}}}\mbox{\Hypertarget{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a89291a8afb7ac7b481090dc97f643263}\label{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a89291a8afb7ac7b481090dc97f643263}} 
+K7&\\
+\hline
+
+\raisebox{\heightof{T}}[0pt][0pt]{\index{K8@{K8}!olc@{olc}}\index{olc@{olc}!K8@{K8}}}\mbox{\Hypertarget{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a636f4e49257a6476ad0aab590318672f}\label{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a636f4e49257a6476ad0aab590318672f}} 
+K8&\\
+\hline
+
+\raisebox{\heightof{T}}[0pt][0pt]{\index{K9@{K9}!olc@{olc}}\index{olc@{olc}!K9@{K9}}}\mbox{\Hypertarget{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a949dddf48734610228c20566a33912bc}\label{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a949dddf48734610228c20566a33912bc}} 
+K9&\\
+\hline
+
+\raisebox{\heightof{T}}[0pt][0pt]{\index{F1@{F1}!olc@{olc}}\index{olc@{olc}!F1@{F1}}}\mbox{\Hypertarget{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a17a119da4c7fd21cd061972ac8f8029a}\label{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a17a119da4c7fd21cd061972ac8f8029a}} 
+F1&\\
+\hline
+
+\raisebox{\heightof{T}}[0pt][0pt]{\index{F2@{F2}!olc@{olc}}\index{olc@{olc}!F2@{F2}}}\mbox{\Hypertarget{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a207c1404adcacfadf941ffc681485026}\label{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a207c1404adcacfadf941ffc681485026}} 
+F2&\\
+\hline
+
+\raisebox{\heightof{T}}[0pt][0pt]{\index{F3@{F3}!olc@{olc}}\index{olc@{olc}!F3@{F3}}}\mbox{\Hypertarget{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a573a484680114e221c1a3ecd8307d61a}\label{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a573a484680114e221c1a3ecd8307d61a}} 
+F3&\\
+\hline
+
+\raisebox{\heightof{T}}[0pt][0pt]{\index{F4@{F4}!olc@{olc}}\index{olc@{olc}!F4@{F4}}}\mbox{\Hypertarget{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a3c808be2b8b226138090bb3884bdc52b}\label{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a3c808be2b8b226138090bb3884bdc52b}} 
+F4&\\
+\hline
+
+\raisebox{\heightof{T}}[0pt][0pt]{\index{F5@{F5}!olc@{olc}}\index{olc@{olc}!F5@{F5}}}\mbox{\Hypertarget{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7ab9dd7de33e89c10afa7947bc5ff6fdea}\label{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7ab9dd7de33e89c10afa7947bc5ff6fdea}} 
+F5&\\
+\hline
+
+\raisebox{\heightof{T}}[0pt][0pt]{\index{F6@{F6}!olc@{olc}}\index{olc@{olc}!F6@{F6}}}\mbox{\Hypertarget{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a12e4309f479cd3e34476ef3be7986847}\label{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a12e4309f479cd3e34476ef3be7986847}} 
+F6&\\
+\hline
+
+\raisebox{\heightof{T}}[0pt][0pt]{\index{F7@{F7}!olc@{olc}}\index{olc@{olc}!F7@{F7}}}\mbox{\Hypertarget{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7ac955ad4fdd41f4d3600b29da016fdf36}\label{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7ac955ad4fdd41f4d3600b29da016fdf36}} 
+F7&\\
+\hline
+
+\raisebox{\heightof{T}}[0pt][0pt]{\index{F8@{F8}!olc@{olc}}\index{olc@{olc}!F8@{F8}}}\mbox{\Hypertarget{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7ab9ff66b449c18ecdb5b83a2e055e393b}\label{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7ab9ff66b449c18ecdb5b83a2e055e393b}} 
+F8&\\
+\hline
+
+\raisebox{\heightof{T}}[0pt][0pt]{\index{F9@{F9}!olc@{olc}}\index{olc@{olc}!F9@{F9}}}\mbox{\Hypertarget{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a2f2949bdd6d44b3c918531ebc30d8186}\label{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a2f2949bdd6d44b3c918531ebc30d8186}} 
+F9&\\
+\hline
+
+\raisebox{\heightof{T}}[0pt][0pt]{\index{F10@{F10}!olc@{olc}}\index{olc@{olc}!F10@{F10}}}\mbox{\Hypertarget{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7abe90f6618beb39117690b93a5c9d8ccb}\label{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7abe90f6618beb39117690b93a5c9d8ccb}} 
+F10&\\
+\hline
+
+\raisebox{\heightof{T}}[0pt][0pt]{\index{F11@{F11}!olc@{olc}}\index{olc@{olc}!F11@{F11}}}\mbox{\Hypertarget{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7aba366840d455651d4cedc7f7ee4c770b}\label{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7aba366840d455651d4cedc7f7ee4c770b}} 
+F11&\\
+\hline
+
+\raisebox{\heightof{T}}[0pt][0pt]{\index{F12@{F12}!olc@{olc}}\index{olc@{olc}!F12@{F12}}}\mbox{\Hypertarget{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a9bc869632cc0095b7d8e456efd571969}\label{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a9bc869632cc0095b7d8e456efd571969}} 
+F12&\\
+\hline
+
+\raisebox{\heightof{T}}[0pt][0pt]{\index{UP@{UP}!olc@{olc}}\index{olc@{olc}!UP@{UP}}}\mbox{\Hypertarget{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a2b35f0b03e615b828187a990935344c4}\label{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a2b35f0b03e615b828187a990935344c4}} 
+UP&\\
+\hline
+
+\raisebox{\heightof{T}}[0pt][0pt]{\index{DOWN@{DOWN}!olc@{olc}}\index{olc@{olc}!DOWN@{DOWN}}}\mbox{\Hypertarget{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a506f2ec576fcd3a8fabd37461bba83f8}\label{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a506f2ec576fcd3a8fabd37461bba83f8}} 
+D\+O\+WN&\\
+\hline
+
+\raisebox{\heightof{T}}[0pt][0pt]{\index{LEFT@{LEFT}!olc@{olc}}\index{olc@{olc}!LEFT@{LEFT}}}\mbox{\Hypertarget{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a4da01be8126ba4113717cc6385ad22d2}\label{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a4da01be8126ba4113717cc6385ad22d2}} 
+L\+E\+FT&\\
+\hline
+
+\raisebox{\heightof{T}}[0pt][0pt]{\index{RIGHT@{RIGHT}!olc@{olc}}\index{olc@{olc}!RIGHT@{RIGHT}}}\mbox{\Hypertarget{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a58e7b18972e446a03ce5ce915bc2d34d}\label{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a58e7b18972e446a03ce5ce915bc2d34d}} 
+R\+I\+G\+HT&\\
+\hline
+
+\raisebox{\heightof{T}}[0pt][0pt]{\index{SPACE@{SPACE}!olc@{olc}}\index{olc@{olc}!SPACE@{SPACE}}}\mbox{\Hypertarget{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a925d9a708542cd050a0b4f87bd7ba297}\label{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a925d9a708542cd050a0b4f87bd7ba297}} 
+S\+P\+A\+CE&\\
+\hline
+
+\raisebox{\heightof{T}}[0pt][0pt]{\index{TAB@{TAB}!olc@{olc}}\index{olc@{olc}!TAB@{TAB}}}\mbox{\Hypertarget{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7aef93738bc8d89f07932dd1a603b021bd}\label{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7aef93738bc8d89f07932dd1a603b021bd}} 
+T\+AB&\\
+\hline
+
+\raisebox{\heightof{T}}[0pt][0pt]{\index{SHIFT@{SHIFT}!olc@{olc}}\index{olc@{olc}!SHIFT@{SHIFT}}}\mbox{\Hypertarget{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a4cd994e0e2285e9b52e129f74c84aa0b}\label{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a4cd994e0e2285e9b52e129f74c84aa0b}} 
+S\+H\+I\+FT&\\
+\hline
+
+\raisebox{\heightof{T}}[0pt][0pt]{\index{CTRL@{CTRL}!olc@{olc}}\index{olc@{olc}!CTRL@{CTRL}}}\mbox{\Hypertarget{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7ae7e6e69075c36b0e44309aae888b86dc}\label{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7ae7e6e69075c36b0e44309aae888b86dc}} 
+C\+T\+RL&\\
+\hline
+
+\raisebox{\heightof{T}}[0pt][0pt]{\index{INS@{INS}!olc@{olc}}\index{olc@{olc}!INS@{INS}}}\mbox{\Hypertarget{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a691b8388214af88a7794c43d31fbe16a}\label{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a691b8388214af88a7794c43d31fbe16a}} 
+I\+NS&\\
+\hline
+
+\raisebox{\heightof{T}}[0pt][0pt]{\index{DEL@{DEL}!olc@{olc}}\index{olc@{olc}!DEL@{DEL}}}\mbox{\Hypertarget{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a5a979509d792ab38404b7a2aca12c981}\label{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a5a979509d792ab38404b7a2aca12c981}} 
+D\+EL&\\
+\hline
+
+\raisebox{\heightof{T}}[0pt][0pt]{\index{HOME@{HOME}!olc@{olc}}\index{olc@{olc}!HOME@{HOME}}}\mbox{\Hypertarget{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a29419f86c551b623c828f9530f301389}\label{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a29419f86c551b623c828f9530f301389}} 
+H\+O\+ME&\\
+\hline
+
+\raisebox{\heightof{T}}[0pt][0pt]{\index{END@{END}!olc@{olc}}\index{olc@{olc}!END@{END}}}\mbox{\Hypertarget{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a53394a407c13bf8192b2946607d27a0f}\label{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a53394a407c13bf8192b2946607d27a0f}} 
+E\+ND&\\
+\hline
+
+\raisebox{\heightof{T}}[0pt][0pt]{\index{PGUP@{PGUP}!olc@{olc}}\index{olc@{olc}!PGUP@{PGUP}}}\mbox{\Hypertarget{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a0bab26868b97eab537e7cad879d4b9a3}\label{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a0bab26868b97eab537e7cad879d4b9a3}} 
+P\+G\+UP&\\
+\hline
+
+\raisebox{\heightof{T}}[0pt][0pt]{\index{PGDN@{PGDN}!olc@{olc}}\index{olc@{olc}!PGDN@{PGDN}}}\mbox{\Hypertarget{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7aae334e3943922c2b16842afc5306a1e9}\label{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7aae334e3943922c2b16842afc5306a1e9}} 
+P\+G\+DN&\\
+\hline
+
+\raisebox{\heightof{T}}[0pt][0pt]{\index{BACK@{BACK}!olc@{olc}}\index{olc@{olc}!BACK@{BACK}}}\mbox{\Hypertarget{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a390af039d8a8c4ab71787f001f810521}\label{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a390af039d8a8c4ab71787f001f810521}} 
+B\+A\+CK&\\
+\hline
+
+\raisebox{\heightof{T}}[0pt][0pt]{\index{ESCAPE@{ESCAPE}!olc@{olc}}\index{olc@{olc}!ESCAPE@{ESCAPE}}}\mbox{\Hypertarget{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7ac58fbe549b8c1a668c42a17d9e572b0f}\label{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7ac58fbe549b8c1a668c42a17d9e572b0f}} 
+E\+S\+C\+A\+PE&\\
+\hline
+
+\raisebox{\heightof{T}}[0pt][0pt]{\index{RETURN@{RETURN}!olc@{olc}}\index{olc@{olc}!RETURN@{RETURN}}}\mbox{\Hypertarget{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a4f04a0bac23ee4f7b875d0328f29df27}\label{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a4f04a0bac23ee4f7b875d0328f29df27}} 
+R\+E\+T\+U\+RN&\\
+\hline
+
+\raisebox{\heightof{T}}[0pt][0pt]{\index{ENTER@{ENTER}!olc@{olc}}\index{olc@{olc}!ENTER@{ENTER}}}\mbox{\Hypertarget{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a31321cae06dfe0989acbbe94c5272b33}\label{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a31321cae06dfe0989acbbe94c5272b33}} 
+E\+N\+T\+ER&\\
+\hline
+
+\raisebox{\heightof{T}}[0pt][0pt]{\index{PAUSE@{PAUSE}!olc@{olc}}\index{olc@{olc}!PAUSE@{PAUSE}}}\mbox{\Hypertarget{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a0bc227b9b4a43118d7500e8195806d74}\label{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a0bc227b9b4a43118d7500e8195806d74}} 
+P\+A\+U\+SE&\\
+\hline
+
+\raisebox{\heightof{T}}[0pt][0pt]{\index{SCROLL@{SCROLL}!olc@{olc}}\index{olc@{olc}!SCROLL@{SCROLL}}}\mbox{\Hypertarget{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a44cf52f457ad06d45cd947c72c291ccc}\label{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a44cf52f457ad06d45cd947c72c291ccc}} 
+S\+C\+R\+O\+LL&\\
+\hline
+
+\raisebox{\heightof{T}}[0pt][0pt]{\index{NP0@{NP0}!olc@{olc}}\index{olc@{olc}!NP0@{NP0}}}\mbox{\Hypertarget{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a16054c3b1419b9679d95ac70ef262666}\label{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a16054c3b1419b9679d95ac70ef262666}} 
+N\+P0&\\
+\hline
+
+\raisebox{\heightof{T}}[0pt][0pt]{\index{NP1@{NP1}!olc@{olc}}\index{olc@{olc}!NP1@{NP1}}}\mbox{\Hypertarget{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a96c49dba90b7ecdfcf88e18c2842a964}\label{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a96c49dba90b7ecdfcf88e18c2842a964}} 
+N\+P1&\\
+\hline
+
+\raisebox{\heightof{T}}[0pt][0pt]{\index{NP2@{NP2}!olc@{olc}}\index{olc@{olc}!NP2@{NP2}}}\mbox{\Hypertarget{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a7ca6517890a3566dbf758618f9c7690f}\label{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a7ca6517890a3566dbf758618f9c7690f}} 
+N\+P2&\\
+\hline
+
+\raisebox{\heightof{T}}[0pt][0pt]{\index{NP3@{NP3}!olc@{olc}}\index{olc@{olc}!NP3@{NP3}}}\mbox{\Hypertarget{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7aab84341adb43a72b48030189f9919360}\label{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7aab84341adb43a72b48030189f9919360}} 
+N\+P3&\\
+\hline
+
+\raisebox{\heightof{T}}[0pt][0pt]{\index{NP4@{NP4}!olc@{olc}}\index{olc@{olc}!NP4@{NP4}}}\mbox{\Hypertarget{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a443551e4895cf1d2be984eba0bd7098e}\label{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a443551e4895cf1d2be984eba0bd7098e}} 
+N\+P4&\\
+\hline
+
+\raisebox{\heightof{T}}[0pt][0pt]{\index{NP5@{NP5}!olc@{olc}}\index{olc@{olc}!NP5@{NP5}}}\mbox{\Hypertarget{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a0ba7e1a6dbc9d1291a40172a09bb49a4}\label{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a0ba7e1a6dbc9d1291a40172a09bb49a4}} 
+N\+P5&\\
+\hline
+
+\raisebox{\heightof{T}}[0pt][0pt]{\index{NP6@{NP6}!olc@{olc}}\index{olc@{olc}!NP6@{NP6}}}\mbox{\Hypertarget{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7ad6aae0ca10843b8046ee0186af4e42f9}\label{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7ad6aae0ca10843b8046ee0186af4e42f9}} 
+N\+P6&\\
+\hline
+
+\raisebox{\heightof{T}}[0pt][0pt]{\index{NP7@{NP7}!olc@{olc}}\index{olc@{olc}!NP7@{NP7}}}\mbox{\Hypertarget{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7afee25adbffa6e8fc092d52193195182f}\label{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7afee25adbffa6e8fc092d52193195182f}} 
+N\+P7&\\
+\hline
+
+\raisebox{\heightof{T}}[0pt][0pt]{\index{NP8@{NP8}!olc@{olc}}\index{olc@{olc}!NP8@{NP8}}}\mbox{\Hypertarget{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a468bb1704a74fc6e42d28e7bee8ecb51}\label{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a468bb1704a74fc6e42d28e7bee8ecb51}} 
+N\+P8&\\
+\hline
+
+\raisebox{\heightof{T}}[0pt][0pt]{\index{NP9@{NP9}!olc@{olc}}\index{olc@{olc}!NP9@{NP9}}}\mbox{\Hypertarget{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a53987c7c18a4a4479c4e1ff7f65c414e}\label{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a53987c7c18a4a4479c4e1ff7f65c414e}} 
+N\+P9&\\
+\hline
+
+\raisebox{\heightof{T}}[0pt][0pt]{\index{NP\_MUL@{NP\_MUL}!olc@{olc}}\index{olc@{olc}!NP\_MUL@{NP\_MUL}}}\mbox{\Hypertarget{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7ae2ce826d1d0de6429f9f28a19d11edfb}\label{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7ae2ce826d1d0de6429f9f28a19d11edfb}} 
+N\+P\+\_\+\+M\+UL&\\
+\hline
+
+\raisebox{\heightof{T}}[0pt][0pt]{\index{NP\_DIV@{NP\_DIV}!olc@{olc}}\index{olc@{olc}!NP\_DIV@{NP\_DIV}}}\mbox{\Hypertarget{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7aee5afd77eb82eb3111195ee300ff3714}\label{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7aee5afd77eb82eb3111195ee300ff3714}} 
+N\+P\+\_\+\+D\+IV&\\
+\hline
+
+\raisebox{\heightof{T}}[0pt][0pt]{\index{NP\_ADD@{NP\_ADD}!olc@{olc}}\index{olc@{olc}!NP\_ADD@{NP\_ADD}}}\mbox{\Hypertarget{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7af15830fd3562b144e15a9d8abeb6c118}\label{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7af15830fd3562b144e15a9d8abeb6c118}} 
+N\+P\+\_\+\+A\+DD&\\
+\hline
+
+\raisebox{\heightof{T}}[0pt][0pt]{\index{NP\_SUB@{NP\_SUB}!olc@{olc}}\index{olc@{olc}!NP\_SUB@{NP\_SUB}}}\mbox{\Hypertarget{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7aade223a1643f8d607eb44fff1bbaae8e}\label{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7aade223a1643f8d607eb44fff1bbaae8e}} 
+N\+P\+\_\+\+S\+UB&\\
+\hline
+
+\raisebox{\heightof{T}}[0pt][0pt]{\index{NP\_DECIMAL@{NP\_DECIMAL}!olc@{olc}}\index{olc@{olc}!NP\_DECIMAL@{NP\_DECIMAL}}}\mbox{\Hypertarget{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a2c21f93f355bf0a6baa7e205acd86b50}\label{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a2c21f93f355bf0a6baa7e205acd86b50}} 
+N\+P\+\_\+\+D\+E\+C\+I\+M\+AL&\\
+\hline
+
+\raisebox{\heightof{T}}[0pt][0pt]{\index{PERIOD@{PERIOD}!olc@{olc}}\index{olc@{olc}!PERIOD@{PERIOD}}}\mbox{\Hypertarget{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a1adffcecf8c735b404ac6eedf220ae5a}\label{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a1adffcecf8c735b404ac6eedf220ae5a}} 
+P\+E\+R\+I\+OD&\\
+\hline
+
+\raisebox{\heightof{T}}[0pt][0pt]{\index{EQUALS@{EQUALS}!olc@{olc}}\index{olc@{olc}!EQUALS@{EQUALS}}}\mbox{\Hypertarget{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7aa82c0ef0b75db6208407e90f6f77f002}\label{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7aa82c0ef0b75db6208407e90f6f77f002}} 
+E\+Q\+U\+A\+LS&\\
+\hline
+
+\raisebox{\heightof{T}}[0pt][0pt]{\index{COMMA@{COMMA}!olc@{olc}}\index{olc@{olc}!COMMA@{COMMA}}}\mbox{\Hypertarget{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7ae2fab0c220f54cd28729c9340951ecb4}\label{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7ae2fab0c220f54cd28729c9340951ecb4}} 
+C\+O\+M\+MA&\\
+\hline
+
+\raisebox{\heightof{T}}[0pt][0pt]{\index{MINUS@{MINUS}!olc@{olc}}\index{olc@{olc}!MINUS@{MINUS}}}\mbox{\Hypertarget{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a4b3a1d83a513de0e2c3c8ba2a8a5fd2d}\label{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a4b3a1d83a513de0e2c3c8ba2a8a5fd2d}} 
+M\+I\+N\+US&\\
+\hline
+
+\raisebox{\heightof{T}}[0pt][0pt]{\index{OEM\_1@{OEM\_1}!olc@{olc}}\index{olc@{olc}!OEM\_1@{OEM\_1}}}\mbox{\Hypertarget{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a3a044efaf7d74df21e84a29063006eae}\label{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a3a044efaf7d74df21e84a29063006eae}} 
+O\+E\+M\+\_\+1&\\
+\hline
+
+\raisebox{\heightof{T}}[0pt][0pt]{\index{OEM\_2@{OEM\_2}!olc@{olc}}\index{olc@{olc}!OEM\_2@{OEM\_2}}}\mbox{\Hypertarget{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7ad29833dd46d756ecf0e9d477d0845450}\label{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7ad29833dd46d756ecf0e9d477d0845450}} 
+O\+E\+M\+\_\+2&\\
+\hline
+
+\raisebox{\heightof{T}}[0pt][0pt]{\index{OEM\_3@{OEM\_3}!olc@{olc}}\index{olc@{olc}!OEM\_3@{OEM\_3}}}\mbox{\Hypertarget{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7abb25924adf005b39efaef185f332a3ad}\label{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7abb25924adf005b39efaef185f332a3ad}} 
+O\+E\+M\+\_\+3&\\
+\hline
+
+\raisebox{\heightof{T}}[0pt][0pt]{\index{OEM\_4@{OEM\_4}!olc@{olc}}\index{olc@{olc}!OEM\_4@{OEM\_4}}}\mbox{\Hypertarget{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7aa09e2508e2f2fd372d3e37ebdfce6814}\label{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7aa09e2508e2f2fd372d3e37ebdfce6814}} 
+O\+E\+M\+\_\+4&\\
+\hline
+
+\raisebox{\heightof{T}}[0pt][0pt]{\index{OEM\_5@{OEM\_5}!olc@{olc}}\index{olc@{olc}!OEM\_5@{OEM\_5}}}\mbox{\Hypertarget{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7ad7e69e28cedaf91718aa4801d5a3bdb7}\label{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7ad7e69e28cedaf91718aa4801d5a3bdb7}} 
+O\+E\+M\+\_\+5&\\
+\hline
+
+\raisebox{\heightof{T}}[0pt][0pt]{\index{OEM\_6@{OEM\_6}!olc@{olc}}\index{olc@{olc}!OEM\_6@{OEM\_6}}}\mbox{\Hypertarget{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7af2cec59ecc924be0b636e5b767abf29f}\label{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7af2cec59ecc924be0b636e5b767abf29f}} 
+O\+E\+M\+\_\+6&\\
+\hline
+
+\raisebox{\heightof{T}}[0pt][0pt]{\index{OEM\_7@{OEM\_7}!olc@{olc}}\index{olc@{olc}!OEM\_7@{OEM\_7}}}\mbox{\Hypertarget{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a3dada7cdf09fb367c10c650e9bce7bfa}\label{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a3dada7cdf09fb367c10c650e9bce7bfa}} 
+O\+E\+M\+\_\+7&\\
+\hline
+
+\raisebox{\heightof{T}}[0pt][0pt]{\index{OEM\_8@{OEM\_8}!olc@{olc}}\index{olc@{olc}!OEM\_8@{OEM\_8}}}\mbox{\Hypertarget{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7ab719317cfd8ac665e8cc2f420f74b46a}\label{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7ab719317cfd8ac665e8cc2f420f74b46a}} 
+O\+E\+M\+\_\+8&\\
+\hline
+
+\raisebox{\heightof{T}}[0pt][0pt]{\index{CAPS\_LOCK@{CAPS\_LOCK}!olc@{olc}}\index{olc@{olc}!CAPS\_LOCK@{CAPS\_LOCK}}}\mbox{\Hypertarget{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a523c88e17275650861203e32067dde01}\label{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a523c88e17275650861203e32067dde01}} 
+C\+A\+P\+S\+\_\+\+L\+O\+CK&\\
+\hline
+
+\raisebox{\heightof{T}}[0pt][0pt]{\index{ENUM\_END@{ENUM\_END}!olc@{olc}}\index{olc@{olc}!ENUM\_END@{ENUM\_END}}}\mbox{\Hypertarget{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a35430b793d6fae00ed8b060cb0accf32}\label{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a35430b793d6fae00ed8b060cb0accf32}} 
+E\+N\+U\+M\+\_\+\+E\+ND&\\
+\hline
+
+\end{DoxyEnumFields}
+
+
+Definition at line 548 of file olc\+Pixel\+Game\+Engine.\+h.
+
+\mbox{\Hypertarget{namespaceolc_a3d40e9b1c005602550230690b55ae87b}\label{namespaceolc_a3d40e9b1c005602550230690b55ae87b}} 
+\index{olc@{olc}!rcode@{rcode}}
+\index{rcode@{rcode}!olc@{olc}}
+\doxysubsubsection{\texorpdfstring{rcode}{rcode}}
+{\footnotesize\ttfamily enum \mbox{\hyperlink{namespaceolc_a3d40e9b1c005602550230690b55ae87b}{olc\+::rcode}}}
+
+\begin{DoxyEnumFields}{Enumerator}
+\raisebox{\heightof{T}}[0pt][0pt]{\index{FAIL@{FAIL}!olc@{olc}}\index{olc@{olc}!FAIL@{FAIL}}}\mbox{\Hypertarget{namespaceolc_a3d40e9b1c005602550230690b55ae87baadc8ac6e9769db5bb290fbf5f8284dbf}\label{namespaceolc_a3d40e9b1c005602550230690b55ae87baadc8ac6e9769db5bb290fbf5f8284dbf}} 
+F\+A\+IL&\\
+\hline
+
+\raisebox{\heightof{T}}[0pt][0pt]{\index{OK@{OK}!olc@{olc}}\index{olc@{olc}!OK@{OK}}}\mbox{\Hypertarget{namespaceolc_a3d40e9b1c005602550230690b55ae87ba0178b5f8abe39121e6f14d3c6c093a82}\label{namespaceolc_a3d40e9b1c005602550230690b55ae87ba0178b5f8abe39121e6f14d3c6c093a82}} 
+OK&\\
+\hline
+
+\raisebox{\heightof{T}}[0pt][0pt]{\index{NO\_FILE@{NO\_FILE}!olc@{olc}}\index{olc@{olc}!NO\_FILE@{NO\_FILE}}}\mbox{\Hypertarget{namespaceolc_a3d40e9b1c005602550230690b55ae87babfe0b9ad99c942b01b1ee61404f559b5}\label{namespaceolc_a3d40e9b1c005602550230690b55ae87babfe0b9ad99c942b01b1ee61404f559b5}} 
+N\+O\+\_\+\+F\+I\+LE&\\
+\hline
+
+\end{DoxyEnumFields}
+
+
+Definition at line 497 of file olc\+Pixel\+Game\+Engine.\+h.
+
+
+
+\doxysubsection{Function Documentation}
+\mbox{\Hypertarget{namespaceolc_a183de1c471cfd6f45980bc9c2c58ed9d}\label{namespaceolc_a183de1c471cfd6f45980bc9c2c58ed9d}} 
+\index{olc@{olc}!BLACK@{BLACK}}
+\index{BLACK@{BLACK}!olc@{olc}}
+\doxysubsubsection{\texorpdfstring{BLACK()}{BLACK()}}
+{\footnotesize\ttfamily static const \mbox{\hyperlink{structolc_1_1_pixel}{Pixel}} olc\+::\+B\+L\+A\+CK (\begin{DoxyParamCaption}\item[{0}]{,  }\item[{0}]{,  }\item[{0}]{ }\end{DoxyParamCaption})}
+
+\mbox{\Hypertarget{namespaceolc_ac940e7f6502cbced06f26b4d13349166}\label{namespaceolc_ac940e7f6502cbced06f26b4d13349166}} 
+\index{olc@{olc}!BLANK@{BLANK}}
+\index{BLANK@{BLANK}!olc@{olc}}
+\doxysubsubsection{\texorpdfstring{BLANK()}{BLANK()}}
+{\footnotesize\ttfamily static const \mbox{\hyperlink{structolc_1_1_pixel}{Pixel}} olc\+::\+B\+L\+A\+NK (\begin{DoxyParamCaption}\item[{0}]{,  }\item[{0}]{,  }\item[{0}]{,  }\item[{0}]{ }\end{DoxyParamCaption})}
+
+\mbox{\Hypertarget{namespaceolc_ac1e1d3e39e0b78e9767142c9daeba4ee}\label{namespaceolc_ac1e1d3e39e0b78e9767142c9daeba4ee}} 
+\index{olc@{olc}!BLUE@{BLUE}}
+\index{BLUE@{BLUE}!olc@{olc}}
+\doxysubsubsection{\texorpdfstring{BLUE()}{BLUE()}}
+{\footnotesize\ttfamily static const \mbox{\hyperlink{structolc_1_1_pixel}{Pixel}} olc\+::\+B\+L\+UE (\begin{DoxyParamCaption}\item[{0}]{,  }\item[{0}]{,  }\item[{255}]{ }\end{DoxyParamCaption})}
+
+\mbox{\Hypertarget{namespaceolc_a43ffa41e9a4a260b86da82b823e6a252}\label{namespaceolc_a43ffa41e9a4a260b86da82b823e6a252}} 
+\index{olc@{olc}!CYAN@{CYAN}}
+\index{CYAN@{CYAN}!olc@{olc}}
+\doxysubsubsection{\texorpdfstring{CYAN()}{CYAN()}}
+{\footnotesize\ttfamily static const \mbox{\hyperlink{structolc_1_1_pixel}{Pixel}} olc\+::\+C\+Y\+AN (\begin{DoxyParamCaption}\item[{0}]{,  }\item[{255}]{,  }\item[{255}]{ }\end{DoxyParamCaption})}
+
+\mbox{\Hypertarget{namespaceolc_ac6e041f71287438da8b9145758c4fe63}\label{namespaceolc_ac6e041f71287438da8b9145758c4fe63}} 
+\index{olc@{olc}!DARK\_BLUE@{DARK\_BLUE}}
+\index{DARK\_BLUE@{DARK\_BLUE}!olc@{olc}}
+\doxysubsubsection{\texorpdfstring{DARK\_BLUE()}{DARK\_BLUE()}}
+{\footnotesize\ttfamily static const \mbox{\hyperlink{structolc_1_1_pixel}{Pixel}} olc\+::\+D\+A\+R\+K\+\_\+\+B\+L\+UE (\begin{DoxyParamCaption}\item[{0}]{,  }\item[{0}]{,  }\item[{128}]{ }\end{DoxyParamCaption})}
+
+\mbox{\Hypertarget{namespaceolc_aa0824f5fdd85c58712495a7bc0de191e}\label{namespaceolc_aa0824f5fdd85c58712495a7bc0de191e}} 
+\index{olc@{olc}!DARK\_CYAN@{DARK\_CYAN}}
+\index{DARK\_CYAN@{DARK\_CYAN}!olc@{olc}}
+\doxysubsubsection{\texorpdfstring{DARK\_CYAN()}{DARK\_CYAN()}}
+{\footnotesize\ttfamily static const \mbox{\hyperlink{structolc_1_1_pixel}{Pixel}} olc\+::\+D\+A\+R\+K\+\_\+\+C\+Y\+AN (\begin{DoxyParamCaption}\item[{0}]{,  }\item[{128}]{,  }\item[{128}]{ }\end{DoxyParamCaption})}
+
+\mbox{\Hypertarget{namespaceolc_ac192218acb2f30c4c3748485dd5e4ba0}\label{namespaceolc_ac192218acb2f30c4c3748485dd5e4ba0}} 
+\index{olc@{olc}!DARK\_GREEN@{DARK\_GREEN}}
+\index{DARK\_GREEN@{DARK\_GREEN}!olc@{olc}}
+\doxysubsubsection{\texorpdfstring{DARK\_GREEN()}{DARK\_GREEN()}}
+{\footnotesize\ttfamily static const \mbox{\hyperlink{structolc_1_1_pixel}{Pixel}} olc\+::\+D\+A\+R\+K\+\_\+\+G\+R\+E\+EN (\begin{DoxyParamCaption}\item[{0}]{,  }\item[{128}]{,  }\item[{0}]{ }\end{DoxyParamCaption})}
+
+\mbox{\Hypertarget{namespaceolc_a7208a6ce62e94eca5b0ba80f7c2f5e30}\label{namespaceolc_a7208a6ce62e94eca5b0ba80f7c2f5e30}} 
+\index{olc@{olc}!DARK\_GREY@{DARK\_GREY}}
+\index{DARK\_GREY@{DARK\_GREY}!olc@{olc}}
+\doxysubsubsection{\texorpdfstring{DARK\_GREY()}{DARK\_GREY()}}
+{\footnotesize\ttfamily static const \mbox{\hyperlink{structolc_1_1_pixel}{Pixel}} olc\+::\+D\+A\+R\+K\+\_\+\+G\+R\+EY (\begin{DoxyParamCaption}\item[{128}]{,  }\item[{128}]{,  }\item[{128}]{ }\end{DoxyParamCaption})}
+
+\mbox{\Hypertarget{namespaceolc_abad91f58a178a173f76ce7d9f9aa99c4}\label{namespaceolc_abad91f58a178a173f76ce7d9f9aa99c4}} 
+\index{olc@{olc}!DARK\_MAGENTA@{DARK\_MAGENTA}}
+\index{DARK\_MAGENTA@{DARK\_MAGENTA}!olc@{olc}}
+\doxysubsubsection{\texorpdfstring{DARK\_MAGENTA()}{DARK\_MAGENTA()}}
+{\footnotesize\ttfamily static const \mbox{\hyperlink{structolc_1_1_pixel}{Pixel}} olc\+::\+D\+A\+R\+K\+\_\+\+M\+A\+G\+E\+N\+TA (\begin{DoxyParamCaption}\item[{128}]{,  }\item[{0}]{,  }\item[{128}]{ }\end{DoxyParamCaption})}
+
+\mbox{\Hypertarget{namespaceolc_a8265396ef812918ca95d2e7aa39c14cc}\label{namespaceolc_a8265396ef812918ca95d2e7aa39c14cc}} 
+\index{olc@{olc}!DARK\_RED@{DARK\_RED}}
+\index{DARK\_RED@{DARK\_RED}!olc@{olc}}
+\doxysubsubsection{\texorpdfstring{DARK\_RED()}{DARK\_RED()}}
+{\footnotesize\ttfamily static const \mbox{\hyperlink{structolc_1_1_pixel}{Pixel}} olc\+::\+D\+A\+R\+K\+\_\+\+R\+ED (\begin{DoxyParamCaption}\item[{128}]{,  }\item[{0}]{,  }\item[{0}]{ }\end{DoxyParamCaption})}
+
+\mbox{\Hypertarget{namespaceolc_a379f9d3a40edb1700299c031cd0b6a08}\label{namespaceolc_a379f9d3a40edb1700299c031cd0b6a08}} 
+\index{olc@{olc}!DARK\_YELLOW@{DARK\_YELLOW}}
+\index{DARK\_YELLOW@{DARK\_YELLOW}!olc@{olc}}
+\doxysubsubsection{\texorpdfstring{DARK\_YELLOW()}{DARK\_YELLOW()}}
+{\footnotesize\ttfamily static const \mbox{\hyperlink{structolc_1_1_pixel}{Pixel}} olc\+::\+D\+A\+R\+K\+\_\+\+Y\+E\+L\+L\+OW (\begin{DoxyParamCaption}\item[{128}]{,  }\item[{128}]{,  }\item[{0}]{ }\end{DoxyParamCaption})}
+
+\mbox{\Hypertarget{namespaceolc_a32b98884f548bf731eab3225557ebe8c}\label{namespaceolc_a32b98884f548bf731eab3225557ebe8c}} 
+\index{olc@{olc}!GREEN@{GREEN}}
+\index{GREEN@{GREEN}!olc@{olc}}
+\doxysubsubsection{\texorpdfstring{GREEN()}{GREEN()}}
+{\footnotesize\ttfamily static const \mbox{\hyperlink{structolc_1_1_pixel}{Pixel}} olc\+::\+G\+R\+E\+EN (\begin{DoxyParamCaption}\item[{0}]{,  }\item[{255}]{,  }\item[{0}]{ }\end{DoxyParamCaption})}
+
+\mbox{\Hypertarget{namespaceolc_adc292fdc3c4d2a03e8c6bbad1853b727}\label{namespaceolc_adc292fdc3c4d2a03e8c6bbad1853b727}} 
+\index{olc@{olc}!MAGENTA@{MAGENTA}}
+\index{MAGENTA@{MAGENTA}!olc@{olc}}
+\doxysubsubsection{\texorpdfstring{MAGENTA()}{MAGENTA()}}
+{\footnotesize\ttfamily static const \mbox{\hyperlink{structolc_1_1_pixel}{Pixel}} olc\+::\+M\+A\+G\+E\+N\+TA (\begin{DoxyParamCaption}\item[{255}]{,  }\item[{0}]{,  }\item[{255}]{ }\end{DoxyParamCaption})}
+
+\mbox{\Hypertarget{namespaceolc_a9a03952e9e6c1c40c2512560ac182382}\label{namespaceolc_a9a03952e9e6c1c40c2512560ac182382}} 
+\index{olc@{olc}!operator$\ast$@{operator$\ast$}}
+\index{operator$\ast$@{operator$\ast$}!olc@{olc}}
+\doxysubsubsection{\texorpdfstring{operator$\ast$()}{operator*()}\hspace{0.1cm}{\footnotesize\ttfamily [1/3]}}
+{\footnotesize\ttfamily template$<$class T $>$ \\
+\mbox{\hyperlink{structolc_1_1v2d__generic}{v2d\+\_\+generic}}$<$\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0}{T}}$>$ olc\+::operator$\ast$ (\begin{DoxyParamCaption}\item[{const double \&}]{lhs,  }\item[{const \mbox{\hyperlink{structolc_1_1v2d__generic}{v2d\+\_\+generic}}$<$ \mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0}{T}} $>$ \&}]{rhs }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
+
+
+
+Definition at line 627 of file olc\+Pixel\+Game\+Engine.\+h.
+
+\mbox{\Hypertarget{namespaceolc_a0cb5b54cc54cf0c92741da285010e1e5}\label{namespaceolc_a0cb5b54cc54cf0c92741da285010e1e5}} 
+\index{olc@{olc}!operator$\ast$@{operator$\ast$}}
+\index{operator$\ast$@{operator$\ast$}!olc@{olc}}
+\doxysubsubsection{\texorpdfstring{operator$\ast$()}{operator*()}\hspace{0.1cm}{\footnotesize\ttfamily [2/3]}}
+{\footnotesize\ttfamily template$<$class T $>$ \\
+\mbox{\hyperlink{structolc_1_1v2d__generic}{v2d\+\_\+generic}}$<$\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0}{T}}$>$ olc\+::operator$\ast$ (\begin{DoxyParamCaption}\item[{const float \&}]{lhs,  }\item[{const \mbox{\hyperlink{structolc_1_1v2d__generic}{v2d\+\_\+generic}}$<$ \mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0}{T}} $>$ \&}]{rhs }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
+
+
+
+Definition at line 625 of file olc\+Pixel\+Game\+Engine.\+h.
+
+\mbox{\Hypertarget{namespaceolc_ab04d4eba2afcfda14b1045bace972a76}\label{namespaceolc_ab04d4eba2afcfda14b1045bace972a76}} 
+\index{olc@{olc}!operator$\ast$@{operator$\ast$}}
+\index{operator$\ast$@{operator$\ast$}!olc@{olc}}
+\doxysubsubsection{\texorpdfstring{operator$\ast$()}{operator*()}\hspace{0.1cm}{\footnotesize\ttfamily [3/3]}}
+{\footnotesize\ttfamily template$<$class T $>$ \\
+\mbox{\hyperlink{structolc_1_1v2d__generic}{v2d\+\_\+generic}}$<$\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0}{T}}$>$ olc\+::operator$\ast$ (\begin{DoxyParamCaption}\item[{const int \&}]{lhs,  }\item[{const \mbox{\hyperlink{structolc_1_1v2d__generic}{v2d\+\_\+generic}}$<$ \mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0}{T}} $>$ \&}]{rhs }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
+
+
+
+Definition at line 629 of file olc\+Pixel\+Game\+Engine.\+h.
+
+\mbox{\Hypertarget{namespaceolc_a879e763a12d6fbc6b4d3e2aac7b4c85a}\label{namespaceolc_a879e763a12d6fbc6b4d3e2aac7b4c85a}} 
+\index{olc@{olc}!operator/@{operator/}}
+\index{operator/@{operator/}!olc@{olc}}
+\doxysubsubsection{\texorpdfstring{operator/()}{operator/()}\hspace{0.1cm}{\footnotesize\ttfamily [1/3]}}
+{\footnotesize\ttfamily template$<$class T $>$ \\
+\mbox{\hyperlink{structolc_1_1v2d__generic}{v2d\+\_\+generic}}$<$\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0}{T}}$>$ olc\+::operator/ (\begin{DoxyParamCaption}\item[{const double \&}]{lhs,  }\item[{const \mbox{\hyperlink{structolc_1_1v2d__generic}{v2d\+\_\+generic}}$<$ \mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0}{T}} $>$ \&}]{rhs }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
+
+
+
+Definition at line 633 of file olc\+Pixel\+Game\+Engine.\+h.
+
+\mbox{\Hypertarget{namespaceolc_a6448f6127e1003cd9287161c5c4d52e0}\label{namespaceolc_a6448f6127e1003cd9287161c5c4d52e0}} 
+\index{olc@{olc}!operator/@{operator/}}
+\index{operator/@{operator/}!olc@{olc}}
+\doxysubsubsection{\texorpdfstring{operator/()}{operator/()}\hspace{0.1cm}{\footnotesize\ttfamily [2/3]}}
+{\footnotesize\ttfamily template$<$class T $>$ \\
+\mbox{\hyperlink{structolc_1_1v2d__generic}{v2d\+\_\+generic}}$<$\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0}{T}}$>$ olc\+::operator/ (\begin{DoxyParamCaption}\item[{const float \&}]{lhs,  }\item[{const \mbox{\hyperlink{structolc_1_1v2d__generic}{v2d\+\_\+generic}}$<$ \mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0}{T}} $>$ \&}]{rhs }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
+
+
+
+Definition at line 631 of file olc\+Pixel\+Game\+Engine.\+h.
+
+\mbox{\Hypertarget{namespaceolc_a302501c3eb64a99ffa93feac2cc46115}\label{namespaceolc_a302501c3eb64a99ffa93feac2cc46115}} 
+\index{olc@{olc}!operator/@{operator/}}
+\index{operator/@{operator/}!olc@{olc}}
+\doxysubsubsection{\texorpdfstring{operator/()}{operator/()}\hspace{0.1cm}{\footnotesize\ttfamily [3/3]}}
+{\footnotesize\ttfamily template$<$class T $>$ \\
+\mbox{\hyperlink{structolc_1_1v2d__generic}{v2d\+\_\+generic}}$<$\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0}{T}}$>$ olc\+::operator/ (\begin{DoxyParamCaption}\item[{const int \&}]{lhs,  }\item[{const \mbox{\hyperlink{structolc_1_1v2d__generic}{v2d\+\_\+generic}}$<$ \mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0}{T}} $>$ \&}]{rhs }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
+
+
+
+Definition at line 635 of file olc\+Pixel\+Game\+Engine.\+h.
+
+\mbox{\Hypertarget{namespaceolc_a2831a8757172243381b08adf69e91e0a}\label{namespaceolc_a2831a8757172243381b08adf69e91e0a}} 
+\index{olc@{olc}!operator$<$@{operator$<$}}
+\index{operator$<$@{operator$<$}!olc@{olc}}
+\doxysubsubsection{\texorpdfstring{operator$<$()}{operator<()}}
+{\footnotesize\ttfamily template$<$class T , class U $>$ \\
+bool olc\+::operator$<$ (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{structolc_1_1v2d__generic}{v2d\+\_\+generic}}$<$ \mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0}{T}} $>$ \&}]{lhs,  }\item[{const \mbox{\hyperlink{structolc_1_1v2d__generic}{v2d\+\_\+generic}}$<$ \mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a62c2493e1585db2af15cb70ac979fb09}{U}} $>$ \&}]{rhs }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
+
+
+
+Definition at line 639 of file olc\+Pixel\+Game\+Engine.\+h.
+
+\mbox{\Hypertarget{namespaceolc_a34519a6f9006c6c4854bbe762d490900}\label{namespaceolc_a34519a6f9006c6c4854bbe762d490900}} 
+\index{olc@{olc}!operator$>$@{operator$>$}}
+\index{operator$>$@{operator$>$}!olc@{olc}}
+\doxysubsubsection{\texorpdfstring{operator$>$()}{operator>()}}
+{\footnotesize\ttfamily template$<$class T , class U $>$ \\
+bool olc\+::operator$>$ (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{structolc_1_1v2d__generic}{v2d\+\_\+generic}}$<$ \mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0}{T}} $>$ \&}]{lhs,  }\item[{const \mbox{\hyperlink{structolc_1_1v2d__generic}{v2d\+\_\+generic}}$<$ \mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a62c2493e1585db2af15cb70ac979fb09}{U}} $>$ \&}]{rhs }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
+
+
+
+Definition at line 641 of file olc\+Pixel\+Game\+Engine.\+h.
+
+\mbox{\Hypertarget{namespaceolc_a06c9f23f2e370e7afe71788427a820fd}\label{namespaceolc_a06c9f23f2e370e7afe71788427a820fd}} 
+\index{olc@{olc}!PixelF@{PixelF}}
+\index{PixelF@{PixelF}!olc@{olc}}
+\doxysubsubsection{\texorpdfstring{PixelF()}{PixelF()}}
+{\footnotesize\ttfamily \mbox{\hyperlink{structolc_1_1_pixel}{Pixel}} olc\+::\+PixelF (\begin{DoxyParamCaption}\item[{float}]{red,  }\item[{float}]{green,  }\item[{float}]{blue,  }\item[{float}]{alpha = {\ttfamily 1.0f} }\end{DoxyParamCaption})}
+
+\mbox{\Hypertarget{namespaceolc_a2069e5cf447f5dd311c680c9463f9c42}\label{namespaceolc_a2069e5cf447f5dd311c680c9463f9c42}} 
+\index{olc@{olc}!PixelLerp@{PixelLerp}}
+\index{PixelLerp@{PixelLerp}!olc@{olc}}
+\doxysubsubsection{\texorpdfstring{PixelLerp()}{PixelLerp()}}
+{\footnotesize\ttfamily \mbox{\hyperlink{structolc_1_1_pixel}{Pixel}} olc\+::\+Pixel\+Lerp (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{structolc_1_1_pixel}{olc\+::\+Pixel}} \&}]{p1,  }\item[{const \mbox{\hyperlink{structolc_1_1_pixel}{olc\+::\+Pixel}} \&}]{p2,  }\item[{float}]{t }\end{DoxyParamCaption})}
+
+\mbox{\Hypertarget{namespaceolc_ad4579f7eb75a257d76bb657a268f0a8d}\label{namespaceolc_ad4579f7eb75a257d76bb657a268f0a8d}} 
+\index{olc@{olc}!RED@{RED}}
+\index{RED@{RED}!olc@{olc}}
+\doxysubsubsection{\texorpdfstring{RED()}{RED()}}
+{\footnotesize\ttfamily static const \mbox{\hyperlink{structolc_1_1_pixel}{Pixel}} olc\+::\+R\+ED (\begin{DoxyParamCaption}\item[{255}]{,  }\item[{0}]{,  }\item[{0}]{ }\end{DoxyParamCaption})}
+
+\mbox{\Hypertarget{namespaceolc_a48fb6375b9a7c0a0d44feaa879e7ebb7}\label{namespaceolc_a48fb6375b9a7c0a0d44feaa879e7ebb7}} 
+\index{olc@{olc}!VERY\_DARK\_BLUE@{VERY\_DARK\_BLUE}}
+\index{VERY\_DARK\_BLUE@{VERY\_DARK\_BLUE}!olc@{olc}}
+\doxysubsubsection{\texorpdfstring{VERY\_DARK\_BLUE()}{VERY\_DARK\_BLUE()}}
+{\footnotesize\ttfamily static const \mbox{\hyperlink{structolc_1_1_pixel}{Pixel}} olc\+::\+V\+E\+R\+Y\+\_\+\+D\+A\+R\+K\+\_\+\+B\+L\+UE (\begin{DoxyParamCaption}\item[{0}]{,  }\item[{0}]{,  }\item[{64}]{ }\end{DoxyParamCaption})}
+
+\mbox{\Hypertarget{namespaceolc_aee6a06b446368ac58033b5ae4f4c6ca2}\label{namespaceolc_aee6a06b446368ac58033b5ae4f4c6ca2}} 
+\index{olc@{olc}!VERY\_DARK\_CYAN@{VERY\_DARK\_CYAN}}
+\index{VERY\_DARK\_CYAN@{VERY\_DARK\_CYAN}!olc@{olc}}
+\doxysubsubsection{\texorpdfstring{VERY\_DARK\_CYAN()}{VERY\_DARK\_CYAN()}}
+{\footnotesize\ttfamily static const \mbox{\hyperlink{structolc_1_1_pixel}{Pixel}} olc\+::\+V\+E\+R\+Y\+\_\+\+D\+A\+R\+K\+\_\+\+C\+Y\+AN (\begin{DoxyParamCaption}\item[{0}]{,  }\item[{64}]{,  }\item[{64}]{ }\end{DoxyParamCaption})}
+
+\mbox{\Hypertarget{namespaceolc_a29c85b49a3c9cbd0b251e80e3bc57140}\label{namespaceolc_a29c85b49a3c9cbd0b251e80e3bc57140}} 
+\index{olc@{olc}!VERY\_DARK\_GREEN@{VERY\_DARK\_GREEN}}
+\index{VERY\_DARK\_GREEN@{VERY\_DARK\_GREEN}!olc@{olc}}
+\doxysubsubsection{\texorpdfstring{VERY\_DARK\_GREEN()}{VERY\_DARK\_GREEN()}}
+{\footnotesize\ttfamily static const \mbox{\hyperlink{structolc_1_1_pixel}{Pixel}} olc\+::\+V\+E\+R\+Y\+\_\+\+D\+A\+R\+K\+\_\+\+G\+R\+E\+EN (\begin{DoxyParamCaption}\item[{0}]{,  }\item[{64}]{,  }\item[{0}]{ }\end{DoxyParamCaption})}
+
+\mbox{\Hypertarget{namespaceolc_a93de271d8b3cbd5aec73a085e6a6ec7a}\label{namespaceolc_a93de271d8b3cbd5aec73a085e6a6ec7a}} 
+\index{olc@{olc}!VERY\_DARK\_GREY@{VERY\_DARK\_GREY}}
+\index{VERY\_DARK\_GREY@{VERY\_DARK\_GREY}!olc@{olc}}
+\doxysubsubsection{\texorpdfstring{VERY\_DARK\_GREY()}{VERY\_DARK\_GREY()}}
+{\footnotesize\ttfamily static const \mbox{\hyperlink{structolc_1_1_pixel}{Pixel}} olc\+::\+V\+E\+R\+Y\+\_\+\+D\+A\+R\+K\+\_\+\+G\+R\+EY (\begin{DoxyParamCaption}\item[{64}]{,  }\item[{64}]{,  }\item[{64}]{ }\end{DoxyParamCaption})}
+
+\mbox{\Hypertarget{namespaceolc_a150fed0369958dc77d3207298588bc94}\label{namespaceolc_a150fed0369958dc77d3207298588bc94}} 
+\index{olc@{olc}!VERY\_DARK\_MAGENTA@{VERY\_DARK\_MAGENTA}}
+\index{VERY\_DARK\_MAGENTA@{VERY\_DARK\_MAGENTA}!olc@{olc}}
+\doxysubsubsection{\texorpdfstring{VERY\_DARK\_MAGENTA()}{VERY\_DARK\_MAGENTA()}}
+{\footnotesize\ttfamily static const \mbox{\hyperlink{structolc_1_1_pixel}{Pixel}} olc\+::\+V\+E\+R\+Y\+\_\+\+D\+A\+R\+K\+\_\+\+M\+A\+G\+E\+N\+TA (\begin{DoxyParamCaption}\item[{64}]{,  }\item[{0}]{,  }\item[{64}]{ }\end{DoxyParamCaption})}
+
+\mbox{\Hypertarget{namespaceolc_a82b6404acf7ac86f237179fc5f9a859f}\label{namespaceolc_a82b6404acf7ac86f237179fc5f9a859f}} 
+\index{olc@{olc}!VERY\_DARK\_RED@{VERY\_DARK\_RED}}
+\index{VERY\_DARK\_RED@{VERY\_DARK\_RED}!olc@{olc}}
+\doxysubsubsection{\texorpdfstring{VERY\_DARK\_RED()}{VERY\_DARK\_RED()}}
+{\footnotesize\ttfamily static const \mbox{\hyperlink{structolc_1_1_pixel}{Pixel}} olc\+::\+V\+E\+R\+Y\+\_\+\+D\+A\+R\+K\+\_\+\+R\+ED (\begin{DoxyParamCaption}\item[{64}]{,  }\item[{0}]{,  }\item[{0}]{ }\end{DoxyParamCaption})}
+
+\mbox{\Hypertarget{namespaceolc_a131df56f1dd5cb0906cd02f9df49b17d}\label{namespaceolc_a131df56f1dd5cb0906cd02f9df49b17d}} 
+\index{olc@{olc}!VERY\_DARK\_YELLOW@{VERY\_DARK\_YELLOW}}
+\index{VERY\_DARK\_YELLOW@{VERY\_DARK\_YELLOW}!olc@{olc}}
+\doxysubsubsection{\texorpdfstring{VERY\_DARK\_YELLOW()}{VERY\_DARK\_YELLOW()}}
+{\footnotesize\ttfamily static const \mbox{\hyperlink{structolc_1_1_pixel}{Pixel}} olc\+::\+V\+E\+R\+Y\+\_\+\+D\+A\+R\+K\+\_\+\+Y\+E\+L\+L\+OW (\begin{DoxyParamCaption}\item[{64}]{,  }\item[{64}]{,  }\item[{0}]{ }\end{DoxyParamCaption})}
+
+\mbox{\Hypertarget{namespaceolc_ae3de4726bf87f2d74693e62d76816db1}\label{namespaceolc_ae3de4726bf87f2d74693e62d76816db1}} 
+\index{olc@{olc}!WHITE@{WHITE}}
+\index{WHITE@{WHITE}!olc@{olc}}
+\doxysubsubsection{\texorpdfstring{WHITE()}{WHITE()}}
+{\footnotesize\ttfamily static const \mbox{\hyperlink{structolc_1_1_pixel}{Pixel}} olc\+::\+W\+H\+I\+TE (\begin{DoxyParamCaption}\item[{255}]{,  }\item[{255}]{,  }\item[{255}]{ }\end{DoxyParamCaption})}
+
+\mbox{\Hypertarget{namespaceolc_a6c9728f6dba8b58406bb0e10979b6ccf}\label{namespaceolc_a6c9728f6dba8b58406bb0e10979b6ccf}} 
+\index{olc@{olc}!YELLOW@{YELLOW}}
+\index{YELLOW@{YELLOW}!olc@{olc}}
+\doxysubsubsection{\texorpdfstring{YELLOW()}{YELLOW()}}
+{\footnotesize\ttfamily static const \mbox{\hyperlink{structolc_1_1_pixel}{Pixel}} olc\+::\+Y\+E\+L\+L\+OW (\begin{DoxyParamCaption}\item[{255}]{,  }\item[{255}]{,  }\item[{0}]{ }\end{DoxyParamCaption})}
+
+
+
+\doxysubsection{Variable Documentation}
+\mbox{\Hypertarget{namespaceolc_adede7d1156ab9d8ffdc3e9048f0f364b}\label{namespaceolc_adede7d1156ab9d8ffdc3e9048f0f364b}} 
+\index{olc@{olc}!nDefaultAlpha@{nDefaultAlpha}}
+\index{nDefaultAlpha@{nDefaultAlpha}!olc@{olc}}
+\doxysubsubsection{\texorpdfstring{nDefaultAlpha}{nDefaultAlpha}}
+{\footnotesize\ttfamily constexpr uint8\+\_\+t olc\+::n\+Default\+Alpha = 0x\+FF\hspace{0.3cm}{\ttfamily [constexpr]}}
+
+
+
+Definition at line 495 of file olc\+Pixel\+Game\+Engine.\+h.
+
+\mbox{\Hypertarget{namespaceolc_a10bbdc57cc3fecc7b80ba428eb7494d0}\label{namespaceolc_a10bbdc57cc3fecc7b80ba428eb7494d0}} 
+\index{olc@{olc}!nDefaultPixel@{nDefaultPixel}}
+\index{nDefaultPixel@{nDefaultPixel}!olc@{olc}}
+\doxysubsubsection{\texorpdfstring{nDefaultPixel}{nDefaultPixel}}
+{\footnotesize\ttfamily constexpr uint32\+\_\+t olc\+::n\+Default\+Pixel = (\mbox{\hyperlink{namespaceolc_adede7d1156ab9d8ffdc3e9048f0f364b}{n\+Default\+Alpha}} $<$$<$ 24)\hspace{0.3cm}{\ttfamily [constexpr]}}
+
+
+
+Definition at line 496 of file olc\+Pixel\+Game\+Engine.\+h.
+
+\mbox{\Hypertarget{namespaceolc_abf7dfc35dd1d895f33d3635831953e38}\label{namespaceolc_abf7dfc35dd1d895f33d3635831953e38}} 
+\index{olc@{olc}!nMouseButtons@{nMouseButtons}}
+\index{nMouseButtons@{nMouseButtons}!olc@{olc}}
+\doxysubsubsection{\texorpdfstring{nMouseButtons}{nMouseButtons}}
+{\footnotesize\ttfamily constexpr uint8\+\_\+t olc\+::n\+Mouse\+Buttons = 5\hspace{0.3cm}{\ttfamily [constexpr]}}
+
+
+
+Definition at line 494 of file olc\+Pixel\+Game\+Engine.\+h.
+
diff --git a/doxy/latex/namespacerender.tex b/doxy/latex/namespacerender.tex
new file mode 100644
index 0000000000000000000000000000000000000000..84ec2721d5e41a4f079d634d620215591aa02873
--- /dev/null
+++ b/doxy/latex/namespacerender.tex
@@ -0,0 +1,19 @@
+\hypertarget{namespacerender}{}\doxysection{render Namespace Reference}
+\label{namespacerender}\index{render@{render}}
+\doxysubsection*{Classes}
+\begin{DoxyCompactItemize}
+\item 
+class \mbox{\hyperlink{classrender_1_1_character_texture}{Character\+Texture}}
+\begin{DoxyCompactList}\small\item\em Texture for Character\+Entities. \end{DoxyCompactList}\item 
+class \mbox{\hyperlink{classrender_1_1_i_texture}{I\+Texture}}
+\begin{DoxyCompactList}\small\item\em Every texture, what can render an entity. \end{DoxyCompactList}\item 
+class \mbox{\hyperlink{classrender_1_1_lazy_sprite}{Lazy\+Sprite}}
+\begin{DoxyCompactList}\small\item\em Refer to one texture, not animated, not modifiable, just a simple image. Lazy loading means, it will load it only, when you\textquotesingle{}re trying to use it. \end{DoxyCompactList}\item 
+class \mbox{\hyperlink{classrender_1_1_resource_manager}{Resource\+Manager}}
+\begin{DoxyCompactList}\small\item\em Load every sprite only once, act as a set for loaded textures. \end{DoxyCompactList}\item 
+class \mbox{\hyperlink{classrender_1_1_simple_sprite}{Simple\+Sprite}}
+\begin{DoxyCompactList}\small\item\em Simplest useable texture. \end{DoxyCompactList}\item 
+class \mbox{\hyperlink{classrender_1_1_sprite_manager}{Sprite\+Manager}}
+\item 
+class \mbox{\hyperlink{classrender_1_1_wall_texture}{Wall\+Texture}}
+\begin{DoxyCompactList}\small\item\em Texture to render walls, with 16 possible states. \end{DoxyCompactList}\end{DoxyCompactItemize}
diff --git a/doxy/latex/namespaces.tex b/doxy/latex/namespaces.tex
new file mode 100644
index 0000000000000000000000000000000000000000..f5e4f257f98a939643c05d0fd402605bc9da9df0
--- /dev/null
+++ b/doxy/latex/namespaces.tex
@@ -0,0 +1,8 @@
+\doxysection{Namespace List}
+Here is a list of all namespaces with brief descriptions\+:\begin{DoxyCompactList}
+\item\contentsline{section}{\mbox{\hyperlink{namespaceentities}{entities}} }{\pageref{namespaceentities}}{}
+\item\contentsline{section}{\mbox{\hyperlink{namespaceolc}{olc}} }{\pageref{namespaceolc}}{}
+\item\contentsline{section}{\mbox{\hyperlink{namespacerender}{render}} }{\pageref{namespacerender}}{}
+\item\contentsline{section}{\mbox{\hyperlink{namespaceweapons}{weapons}} }{\pageref{namespaceweapons}}{}
+\item\contentsline{section}{\mbox{\hyperlink{namespaceweapons_1_1textures}{weapons\+::textures}} \\*Textures for common weapons.. }{\pageref{namespaceweapons_1_1textures}}{}
+\end{DoxyCompactList}
diff --git a/doxy/latex/namespaceweapons.tex b/doxy/latex/namespaceweapons.tex
new file mode 100644
index 0000000000000000000000000000000000000000..3e3c32021db7a13f1d59562bb04f40b40199718a
--- /dev/null
+++ b/doxy/latex/namespaceweapons.tex
@@ -0,0 +1,26 @@
+\hypertarget{namespaceweapons}{}\doxysection{weapons Namespace Reference}
+\label{namespaceweapons}\index{weapons@{weapons}}
+\doxysubsection*{Namespaces}
+\begin{DoxyCompactItemize}
+\item 
+ \mbox{\hyperlink{namespaceweapons_1_1textures}{textures}}
+\begin{DoxyCompactList}\small\item\em Textures for common weapons... \end{DoxyCompactList}\end{DoxyCompactItemize}
+\doxysubsection*{Classes}
+\begin{DoxyCompactItemize}
+\item 
+class \mbox{\hyperlink{classweapons_1_1_e_m_gun}{E\+M\+Gun}}
+\begin{DoxyCompactList}\small\item\em \mbox{\hyperlink{classweapons_1_1_weapon}{Weapon}} with energy level. \end{DoxyCompactList}\item 
+class \mbox{\hyperlink{classweapons_1_1_glitch_gun}{Glitch\+Gun}}
+\begin{DoxyCompactList}\small\item\em T\+O\+DO make the bug weapon more buggy. \end{DoxyCompactList}\item 
+class \mbox{\hyperlink{classweapons_1_1_glitch_texture}{Glitch\+Texture}}
+\begin{DoxyCompactList}\small\item\em Texture for the bug weapon. \end{DoxyCompactList}\item 
+class \mbox{\hyperlink{classweapons_1_1_melee_weapon}{Melee\+Weapon}}
+\begin{DoxyCompactList}\small\item\em A melee weapon, like a spoon. \end{DoxyCompactList}\item 
+class \mbox{\hyperlink{classweapons_1_1_pistol}{Pistol}}
+\begin{DoxyCompactList}\small\item\em Just a pistol, nothing too dangerous. \end{DoxyCompactList}\item 
+class \mbox{\hyperlink{classweapons_1_1_ranged_weapon}{Ranged\+Weapon}}
+\begin{DoxyCompactList}\small\item\em Any weapon, what does shoot. not melee. \end{DoxyCompactList}\item 
+class \mbox{\hyperlink{classweapons_1_1_typical_melee_weapon}{Typical\+Melee\+Weapon}}
+\begin{DoxyCompactList}\small\item\em A typical melee weapon. I want to do not typical melee weapons too. \end{DoxyCompactList}\item 
+class \mbox{\hyperlink{classweapons_1_1_weapon}{Weapon}}
+\begin{DoxyCompactList}\small\item\em You can throw it to the ground, this is why it\textquotesingle{}s an entity. But it will be possible to use it. and shoot enemies, or projectiles. \end{DoxyCompactList}\end{DoxyCompactItemize}
diff --git a/doxy/latex/namespaceweapons_1_1textures.tex b/doxy/latex/namespaceweapons_1_1textures.tex
new file mode 100644
index 0000000000000000000000000000000000000000..3e11f539786e92cbba8979c149878c830fd879ca
--- /dev/null
+++ b/doxy/latex/namespaceweapons_1_1textures.tex
@@ -0,0 +1,120 @@
+\hypertarget{namespaceweapons_1_1textures}{}\doxysection{weapons\+::textures Namespace Reference}
+\label{namespaceweapons_1_1textures}\index{weapons::textures@{weapons::textures}}
+
+
+Textures for common weapons...  
+
+
+\doxysubsection*{Functions}
+\begin{DoxyCompactItemize}
+\item 
+\mbox{\hyperlink{classrender_1_1_simple_sprite}{render\+::\+Simple\+Sprite}} \mbox{\hyperlink{namespaceweapons_1_1textures_a2a490d5d835f3ea3a9b07d2a9efb1c36}{sword1}} (\char`\"{}Items/Long\+Wep.\+png\char`\"{}, \{ 0, 16 \})
+\item 
+\mbox{\hyperlink{classrender_1_1_simple_sprite}{render\+::\+Simple\+Sprite}} \mbox{\hyperlink{namespaceweapons_1_1textures_a05b20bd98c55bfbfcf4c2e7e0b08ebaf}{sword2}} (\char`\"{}Items/Long\+Wep.\+png\char`\"{}, \{ 32, 16 \})
+\item 
+\mbox{\hyperlink{classrender_1_1_simple_sprite}{render\+::\+Simple\+Sprite}} \mbox{\hyperlink{namespaceweapons_1_1textures_a9734b7f6d13a24af2d62e74e6cd9dfde}{spear}} (\char`\"{}Items/Long\+Wep.\+png\char`\"{}, \{ 0, 32 \})
+\item 
+\mbox{\hyperlink{classrender_1_1_simple_sprite}{render\+::\+Simple\+Sprite}} \mbox{\hyperlink{namespaceweapons_1_1textures_ac492d02548352205657c28cd311d997b}{scythe}} (\char`\"{}Items/Long\+Wep.\+png\char`\"{}, \{ 16 $\ast$3, 16 $\ast$4 \})
+\item 
+\mbox{\hyperlink{classrender_1_1_simple_sprite}{render\+::\+Simple\+Sprite}} \mbox{\hyperlink{namespaceweapons_1_1textures_affedf59c6526368e5358afc383f15022}{shovel}} (\char`\"{}Items/Long\+Wep.\+png\char`\"{}, \{ 16 $\ast$4, 16 $\ast$4 \})
+\item 
+\mbox{\hyperlink{classrender_1_1_simple_sprite}{render\+::\+Simple\+Sprite}} \mbox{\hyperlink{namespaceweapons_1_1textures_a25cf2019ff68d29442fa3554a5862c1e}{pickaxe}} (\char`\"{}Items/Short\+Wep.\+png\char`\"{}, \{ 16 $\ast$2, 16 $\ast$3 \})
+\item 
+\mbox{\hyperlink{classrender_1_1_simple_sprite}{render\+::\+Simple\+Sprite}} \mbox{\hyperlink{namespaceweapons_1_1textures_ae84acdfc1384af6d4e1f64c1883a8784}{bow}} (\char`\"{}Items/Ammo.\+png\char`\"{}, \{ 0, 16 \})
+\item 
+\mbox{\hyperlink{classrender_1_1_simple_sprite}{render\+::\+Simple\+Sprite}} \mbox{\hyperlink{namespaceweapons_1_1textures_a2f33f64b881c4028086431f8ba0fe1c5}{crystal\+Bow}} (\char`\"{}Items/Ammo.\+png\char`\"{}, \{ 48, 16 \})
+\item 
+\mbox{\hyperlink{classrender_1_1_simple_sprite}{render\+::\+Simple\+Sprite}} \mbox{\hyperlink{namespaceweapons_1_1textures_a7ae588b12d703b44d1de1abb05d9f672}{rifle}} (\char`\"{}Items/Ammo.\+png\char`\"{}, \{ 16, 64 \})
+\item 
+\mbox{\hyperlink{classrender_1_1_simple_sprite}{render\+::\+Simple\+Sprite}} \mbox{\hyperlink{namespaceweapons_1_1textures_ac65344c207a89b29b15e56e01fc3e16a}{photo\+Machine}} (\char`\"{}Items/Light.\+png\char`\"{}, \{ 16 $\ast$6, 0 \})
+\item 
+\mbox{\hyperlink{classrender_1_1_simple_sprite}{render\+::\+Simple\+Sprite}} \mbox{\hyperlink{namespaceweapons_1_1textures_a8a733a84e93619430cfdaa2306a6a7ec}{pistol}} (\char`\"{}From\+Macskusz111/pistol.\+png\char`\"{})
+\item 
+\mbox{\hyperlink{classrender_1_1_simple_sprite}{render\+::\+Simple\+Sprite}} \mbox{\hyperlink{namespaceweapons_1_1textures_a51f0963cb1171938daa3a1e894e5305b}{minigun}} (\char`\"{}From\+Macskusz111/gun1.\+png\char`\"{})
+\item 
+\mbox{\hyperlink{classrender_1_1_simple_sprite}{render\+::\+Simple\+Sprite}} \mbox{\hyperlink{namespaceweapons_1_1textures_ad763a6f6186015fe93af0a1e5088f026}{glitch\+Gun}} (\char`\"{}From\+Macskusz111/bug.\+png\char`\"{})
+\end{DoxyCompactItemize}
+
+
+\doxysubsection{Detailed Description}
+Textures for common weapons... 
+
+\doxysubsection{Function Documentation}
+\mbox{\Hypertarget{namespaceweapons_1_1textures_ae84acdfc1384af6d4e1f64c1883a8784}\label{namespaceweapons_1_1textures_ae84acdfc1384af6d4e1f64c1883a8784}} 
+\index{weapons::textures@{weapons::textures}!bow@{bow}}
+\index{bow@{bow}!weapons::textures@{weapons::textures}}
+\doxysubsubsection{\texorpdfstring{bow()}{bow()}}
+{\footnotesize\ttfamily \mbox{\hyperlink{classrender_1_1_simple_sprite}{render\+::\+Simple\+Sprite}} weapons\+::textures\+::bow (\begin{DoxyParamCaption}\item[{\char`\"{}Items/Ammo.\+png\char`\"{}}]{,  }\item[{\{ 0, 16 \}}]{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
+
+\mbox{\Hypertarget{namespaceweapons_1_1textures_a2f33f64b881c4028086431f8ba0fe1c5}\label{namespaceweapons_1_1textures_a2f33f64b881c4028086431f8ba0fe1c5}} 
+\index{weapons::textures@{weapons::textures}!crystalBow@{crystalBow}}
+\index{crystalBow@{crystalBow}!weapons::textures@{weapons::textures}}
+\doxysubsubsection{\texorpdfstring{crystalBow()}{crystalBow()}}
+{\footnotesize\ttfamily \mbox{\hyperlink{classrender_1_1_simple_sprite}{render\+::\+Simple\+Sprite}} weapons\+::textures\+::crystal\+Bow (\begin{DoxyParamCaption}\item[{\char`\"{}Items/Ammo.\+png\char`\"{}}]{,  }\item[{\{ 48, 16 \}}]{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
+
+\mbox{\Hypertarget{namespaceweapons_1_1textures_ad763a6f6186015fe93af0a1e5088f026}\label{namespaceweapons_1_1textures_ad763a6f6186015fe93af0a1e5088f026}} 
+\index{weapons::textures@{weapons::textures}!glitchGun@{glitchGun}}
+\index{glitchGun@{glitchGun}!weapons::textures@{weapons::textures}}
+\doxysubsubsection{\texorpdfstring{glitchGun()}{glitchGun()}}
+{\footnotesize\ttfamily \mbox{\hyperlink{classrender_1_1_simple_sprite}{render\+::\+Simple\+Sprite}} weapons\+::textures\+::glitch\+Gun (\begin{DoxyParamCaption}\item[{\char`\"{}From\+Macskusz111/bug.\+png\char`\"{}}]{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
+
+\mbox{\Hypertarget{namespaceweapons_1_1textures_a51f0963cb1171938daa3a1e894e5305b}\label{namespaceweapons_1_1textures_a51f0963cb1171938daa3a1e894e5305b}} 
+\index{weapons::textures@{weapons::textures}!minigun@{minigun}}
+\index{minigun@{minigun}!weapons::textures@{weapons::textures}}
+\doxysubsubsection{\texorpdfstring{minigun()}{minigun()}}
+{\footnotesize\ttfamily \mbox{\hyperlink{classrender_1_1_simple_sprite}{render\+::\+Simple\+Sprite}} weapons\+::textures\+::minigun (\begin{DoxyParamCaption}\item[{\char`\"{}From\+Macskusz111/gun1.\+png\char`\"{}}]{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
+
+\mbox{\Hypertarget{namespaceweapons_1_1textures_ac65344c207a89b29b15e56e01fc3e16a}\label{namespaceweapons_1_1textures_ac65344c207a89b29b15e56e01fc3e16a}} 
+\index{weapons::textures@{weapons::textures}!photoMachine@{photoMachine}}
+\index{photoMachine@{photoMachine}!weapons::textures@{weapons::textures}}
+\doxysubsubsection{\texorpdfstring{photoMachine()}{photoMachine()}}
+{\footnotesize\ttfamily \mbox{\hyperlink{classrender_1_1_simple_sprite}{render\+::\+Simple\+Sprite}} weapons\+::textures\+::photo\+Machine (\begin{DoxyParamCaption}\item[{\char`\"{}Items/Light.\+png\char`\"{}}]{,  }\item[{\{ 16 $\ast$6, 0 \}}]{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
+
+\mbox{\Hypertarget{namespaceweapons_1_1textures_a25cf2019ff68d29442fa3554a5862c1e}\label{namespaceweapons_1_1textures_a25cf2019ff68d29442fa3554a5862c1e}} 
+\index{weapons::textures@{weapons::textures}!pickaxe@{pickaxe}}
+\index{pickaxe@{pickaxe}!weapons::textures@{weapons::textures}}
+\doxysubsubsection{\texorpdfstring{pickaxe()}{pickaxe()}}
+{\footnotesize\ttfamily \mbox{\hyperlink{classrender_1_1_simple_sprite}{render\+::\+Simple\+Sprite}} weapons\+::textures\+::pickaxe (\begin{DoxyParamCaption}\item[{\char`\"{}Items/Short\+Wep.\+png\char`\"{}}]{,  }\item[{\{ 16 $\ast$2, 16 $\ast$3 \}}]{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
+
+\mbox{\Hypertarget{namespaceweapons_1_1textures_a8a733a84e93619430cfdaa2306a6a7ec}\label{namespaceweapons_1_1textures_a8a733a84e93619430cfdaa2306a6a7ec}} 
+\index{weapons::textures@{weapons::textures}!pistol@{pistol}}
+\index{pistol@{pistol}!weapons::textures@{weapons::textures}}
+\doxysubsubsection{\texorpdfstring{pistol()}{pistol()}}
+{\footnotesize\ttfamily \mbox{\hyperlink{classrender_1_1_simple_sprite}{render\+::\+Simple\+Sprite}} weapons\+::textures\+::pistol (\begin{DoxyParamCaption}\item[{\char`\"{}From\+Macskusz111/pistol.\+png\char`\"{}}]{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
+
+\mbox{\Hypertarget{namespaceweapons_1_1textures_a7ae588b12d703b44d1de1abb05d9f672}\label{namespaceweapons_1_1textures_a7ae588b12d703b44d1de1abb05d9f672}} 
+\index{weapons::textures@{weapons::textures}!rifle@{rifle}}
+\index{rifle@{rifle}!weapons::textures@{weapons::textures}}
+\doxysubsubsection{\texorpdfstring{rifle()}{rifle()}}
+{\footnotesize\ttfamily \mbox{\hyperlink{classrender_1_1_simple_sprite}{render\+::\+Simple\+Sprite}} weapons\+::textures\+::rifle (\begin{DoxyParamCaption}\item[{\char`\"{}Items/Ammo.\+png\char`\"{}}]{,  }\item[{\{ 16, 64 \}}]{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
+
+\mbox{\Hypertarget{namespaceweapons_1_1textures_ac492d02548352205657c28cd311d997b}\label{namespaceweapons_1_1textures_ac492d02548352205657c28cd311d997b}} 
+\index{weapons::textures@{weapons::textures}!scythe@{scythe}}
+\index{scythe@{scythe}!weapons::textures@{weapons::textures}}
+\doxysubsubsection{\texorpdfstring{scythe()}{scythe()}}
+{\footnotesize\ttfamily \mbox{\hyperlink{classrender_1_1_simple_sprite}{render\+::\+Simple\+Sprite}} weapons\+::textures\+::scythe (\begin{DoxyParamCaption}\item[{\char`\"{}Items/Long\+Wep.\+png\char`\"{}}]{,  }\item[{\{ 16 $\ast$3, 16 $\ast$4 \}}]{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
+
+\mbox{\Hypertarget{namespaceweapons_1_1textures_affedf59c6526368e5358afc383f15022}\label{namespaceweapons_1_1textures_affedf59c6526368e5358afc383f15022}} 
+\index{weapons::textures@{weapons::textures}!shovel@{shovel}}
+\index{shovel@{shovel}!weapons::textures@{weapons::textures}}
+\doxysubsubsection{\texorpdfstring{shovel()}{shovel()}}
+{\footnotesize\ttfamily \mbox{\hyperlink{classrender_1_1_simple_sprite}{render\+::\+Simple\+Sprite}} weapons\+::textures\+::shovel (\begin{DoxyParamCaption}\item[{\char`\"{}Items/Long\+Wep.\+png\char`\"{}}]{,  }\item[{\{ 16 $\ast$4, 16 $\ast$4 \}}]{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
+
+\mbox{\Hypertarget{namespaceweapons_1_1textures_a9734b7f6d13a24af2d62e74e6cd9dfde}\label{namespaceweapons_1_1textures_a9734b7f6d13a24af2d62e74e6cd9dfde}} 
+\index{weapons::textures@{weapons::textures}!spear@{spear}}
+\index{spear@{spear}!weapons::textures@{weapons::textures}}
+\doxysubsubsection{\texorpdfstring{spear()}{spear()}}
+{\footnotesize\ttfamily \mbox{\hyperlink{classrender_1_1_simple_sprite}{render\+::\+Simple\+Sprite}} weapons\+::textures\+::spear (\begin{DoxyParamCaption}\item[{\char`\"{}Items/Long\+Wep.\+png\char`\"{}}]{,  }\item[{\{ 0, 32 \}}]{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
+
+\mbox{\Hypertarget{namespaceweapons_1_1textures_a2a490d5d835f3ea3a9b07d2a9efb1c36}\label{namespaceweapons_1_1textures_a2a490d5d835f3ea3a9b07d2a9efb1c36}} 
+\index{weapons::textures@{weapons::textures}!sword1@{sword1}}
+\index{sword1@{sword1}!weapons::textures@{weapons::textures}}
+\doxysubsubsection{\texorpdfstring{sword1()}{sword1()}}
+{\footnotesize\ttfamily \mbox{\hyperlink{classrender_1_1_simple_sprite}{render\+::\+Simple\+Sprite}} weapons\+::textures\+::sword1 (\begin{DoxyParamCaption}\item[{\char`\"{}Items/Long\+Wep.\+png\char`\"{}}]{,  }\item[{\{ 0, 16 \}}]{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
+
+\mbox{\Hypertarget{namespaceweapons_1_1textures_a05b20bd98c55bfbfcf4c2e7e0b08ebaf}\label{namespaceweapons_1_1textures_a05b20bd98c55bfbfcf4c2e7e0b08ebaf}} 
+\index{weapons::textures@{weapons::textures}!sword2@{sword2}}
+\index{sword2@{sword2}!weapons::textures@{weapons::textures}}
+\doxysubsubsection{\texorpdfstring{sword2()}{sword2()}}
+{\footnotesize\ttfamily \mbox{\hyperlink{classrender_1_1_simple_sprite}{render\+::\+Simple\+Sprite}} weapons\+::textures\+::sword2 (\begin{DoxyParamCaption}\item[{\char`\"{}Items/Long\+Wep.\+png\char`\"{}}]{,  }\item[{\{ 32, 16 \}}]{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
+
diff --git a/doxy/latex/olc_8h.tex b/doxy/latex/olc_8h.tex
new file mode 100644
index 0000000000000000000000000000000000000000..0a1415460a1318dbaad784f350da99cf271f61bb
--- /dev/null
+++ b/doxy/latex/olc_8h.tex
@@ -0,0 +1,4 @@
+\hypertarget{olc_8h}{}\doxysection{C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/olc.h File Reference}
+\label{olc_8h}\index{C:/Users/kosmx/Documents/GitHub/2d-\/game/olc.h@{C:/Users/kosmx/Documents/GitHub/2d-\/game/olc.h}}
+{\ttfamily \#include \char`\"{}olc\+P\+G\+E\+X\+\_\+\+Transformed\+View.\+h\char`\"{}}\newline
+{\ttfamily \#include \char`\"{}olc\+Pixel\+Game\+Engine.\+h\char`\"{}}\newline
diff --git a/doxy/latex/olc_p_g_e_x___transformed_view_8h.tex b/doxy/latex/olc_p_g_e_x___transformed_view_8h.tex
new file mode 100644
index 0000000000000000000000000000000000000000..ac2f8728506b6d139e2bbfb8e61598af35add453
--- /dev/null
+++ b/doxy/latex/olc_p_g_e_x___transformed_view_8h.tex
@@ -0,0 +1,33 @@
+\hypertarget{olc_p_g_e_x___transformed_view_8h}{}\doxysection{C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/olc\+P\+G\+E\+X\+\_\+\+Transformed\+View.h File Reference}
+\label{olc_p_g_e_x___transformed_view_8h}\index{C:/Users/kosmx/Documents/GitHub/2d-\/game/olcPGEX\_TransformedView.h@{C:/Users/kosmx/Documents/GitHub/2d-\/game/olcPGEX\_TransformedView.h}}
+{\ttfamily \#include \char`\"{}olc\+Pixel\+Game\+Engine.\+h\char`\"{}}\newline
+\doxysubsection*{Classes}
+\begin{DoxyCompactItemize}
+\item 
+class \mbox{\hyperlink{classolc_1_1_transformed_view}{olc\+::\+Transformed\+View}}
+\item 
+class \mbox{\hyperlink{classolc_1_1_tile_transformed_view}{olc\+::\+Tile\+Transformed\+View}}
+\end{DoxyCompactItemize}
+\doxysubsection*{Namespaces}
+\begin{DoxyCompactItemize}
+\item 
+ \mbox{\hyperlink{namespaceolc}{olc}}
+\end{DoxyCompactItemize}
+\doxysubsection*{Macros}
+\begin{DoxyCompactItemize}
+\item 
+\#define \mbox{\hyperlink{olc_p_g_e_x___transformed_view_8h_a47f1ada970406eff596ebe181debec3d}{O\+L\+C\+\_\+\+P\+G\+E\+X\+\_\+\+T\+R\+A\+N\+S\+F\+O\+R\+M\+E\+D\+V\+I\+E\+W\+\_\+H}}
+\end{DoxyCompactItemize}
+
+
+\doxysubsection{Macro Definition Documentation}
+\mbox{\Hypertarget{olc_p_g_e_x___transformed_view_8h_a47f1ada970406eff596ebe181debec3d}\label{olc_p_g_e_x___transformed_view_8h_a47f1ada970406eff596ebe181debec3d}} 
+\index{olcPGEX\_TransformedView.h@{olcPGEX\_TransformedView.h}!OLC\_PGEX\_TRANSFORMEDVIEW\_H@{OLC\_PGEX\_TRANSFORMEDVIEW\_H}}
+\index{OLC\_PGEX\_TRANSFORMEDVIEW\_H@{OLC\_PGEX\_TRANSFORMEDVIEW\_H}!olcPGEX\_TransformedView.h@{olcPGEX\_TransformedView.h}}
+\doxysubsubsection{\texorpdfstring{OLC\_PGEX\_TRANSFORMEDVIEW\_H}{OLC\_PGEX\_TRANSFORMEDVIEW\_H}}
+{\footnotesize\ttfamily \#define O\+L\+C\+\_\+\+P\+G\+E\+X\+\_\+\+T\+R\+A\+N\+S\+F\+O\+R\+M\+E\+D\+V\+I\+E\+W\+\_\+H}
+
+
+
+Definition at line 71 of file olc\+P\+G\+E\+X\+\_\+\+Transformed\+View.\+h.
+
diff --git a/doxy/latex/olc_pixel_game_engine_8h.tex b/doxy/latex/olc_pixel_game_engine_8h.tex
new file mode 100644
index 0000000000000000000000000000000000000000..4918bf52c1d80bcc90584ac57e31cf48a4d4ea56
--- /dev/null
+++ b/doxy/latex/olc_pixel_game_engine_8h.tex
@@ -0,0 +1,368 @@
+\hypertarget{olc_pixel_game_engine_8h}{}\doxysection{C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/olc\+Pixel\+Game\+Engine.h File Reference}
+\label{olc_pixel_game_engine_8h}\index{C:/Users/kosmx/Documents/GitHub/2d-\/game/olcPixelGameEngine.h@{C:/Users/kosmx/Documents/GitHub/2d-\/game/olcPixelGameEngine.h}}
+{\ttfamily \#include $<$cmath$>$}\newline
+{\ttfamily \#include $<$cstdint$>$}\newline
+{\ttfamily \#include $<$string$>$}\newline
+{\ttfamily \#include $<$iostream$>$}\newline
+{\ttfamily \#include $<$streambuf$>$}\newline
+{\ttfamily \#include $<$sstream$>$}\newline
+{\ttfamily \#include $<$chrono$>$}\newline
+{\ttfamily \#include $<$vector$>$}\newline
+{\ttfamily \#include $<$list$>$}\newline
+{\ttfamily \#include $<$thread$>$}\newline
+{\ttfamily \#include $<$atomic$>$}\newline
+{\ttfamily \#include $<$fstream$>$}\newline
+{\ttfamily \#include $<$map$>$}\newline
+{\ttfamily \#include $<$functional$>$}\newline
+{\ttfamily \#include $<$algorithm$>$}\newline
+{\ttfamily \#include $<$array$>$}\newline
+{\ttfamily \#include $<$cstring$>$}\newline
+{\ttfamily \#include $<$experimental/filesystem$>$}\newline
+\doxysubsection*{Classes}
+\begin{DoxyCompactItemize}
+\item 
+struct \mbox{\hyperlink{structolc_1_1_pixel}{olc\+::\+Pixel}}
+\item 
+struct \mbox{\hyperlink{structolc_1_1_h_w_button}{olc\+::\+H\+W\+Button}}
+\item 
+struct \mbox{\hyperlink{structolc_1_1v2d__generic}{olc\+::v2d\+\_\+generic$<$ T $>$}}
+\item 
+struct \mbox{\hyperlink{structolc_1_1_resource_buffer}{olc\+::\+Resource\+Buffer}}
+\item 
+class \mbox{\hyperlink{classolc_1_1_resource_pack}{olc\+::\+Resource\+Pack}}
+\item 
+class \mbox{\hyperlink{classolc_1_1_image_loader}{olc\+::\+Image\+Loader}}
+\item 
+class \mbox{\hyperlink{classolc_1_1_sprite}{olc\+::\+Sprite}}
+\item 
+class \mbox{\hyperlink{classolc_1_1_decal}{olc\+::\+Decal}}
+\item 
+class \mbox{\hyperlink{classolc_1_1_renderable}{olc\+::\+Renderable}}
+\item 
+struct \mbox{\hyperlink{structolc_1_1_decal_instance}{olc\+::\+Decal\+Instance}}
+\item 
+struct \mbox{\hyperlink{structolc_1_1_layer_desc}{olc\+::\+Layer\+Desc}}
+\item 
+class \mbox{\hyperlink{classolc_1_1_renderer}{olc\+::\+Renderer}}
+\item 
+class \mbox{\hyperlink{classolc_1_1_platform}{olc\+::\+Platform}}
+\item 
+class \mbox{\hyperlink{classolc_1_1_pixel_game_engine}{olc\+::\+Pixel\+Game\+Engine}}
+\item 
+class \mbox{\hyperlink{classolc_1_1_p_g_e_x}{olc\+::\+P\+G\+EX}}
+\end{DoxyCompactItemize}
+\doxysubsection*{Namespaces}
+\begin{DoxyCompactItemize}
+\item 
+ \mbox{\hyperlink{namespaceolc}{olc}}
+\end{DoxyCompactItemize}
+\doxysubsection*{Macros}
+\begin{DoxyCompactItemize}
+\item 
+\#define \mbox{\hyperlink{olc_pixel_game_engine_8h_a6301d810e4f45704594786997b2261ea}{P\+G\+E\+\_\+\+V\+ER}}~215
+\item 
+\#define \mbox{\hyperlink{olc_pixel_game_engine_8h_a7f7123ffe9352ede10ecc711ae8901d3}{U\+S\+E\+\_\+\+E\+X\+P\+E\+R\+I\+M\+E\+N\+T\+A\+L\+\_\+\+FS}}
+\item 
+\#define \mbox{\hyperlink{olc_pixel_game_engine_8h_aab6af62131aad81d17d3b4afd9db334f}{\+\_\+\+S\+I\+L\+E\+N\+C\+E\+\_\+\+E\+X\+P\+E\+R\+I\+M\+E\+N\+T\+A\+L\+\_\+\+F\+I\+L\+E\+S\+Y\+S\+T\+E\+M\+\_\+\+D\+E\+P\+R\+E\+C\+A\+T\+I\+O\+N\+\_\+\+W\+A\+R\+N\+I\+NG}}
+\item 
+\#define \mbox{\hyperlink{olc_pixel_game_engine_8h_ac02283d1990a8623a332f7f7f2230a1f}{olcT}}(s)~s
+\item 
+\#define \mbox{\hyperlink{olc_pixel_game_engine_8h_a86d500a34c624c2cae56bc25a31b12f3}{U\+N\+U\+S\+ED}}(x)~(void)(x)
+\item 
+\#define \mbox{\hyperlink{olc_pixel_game_engine_8h_a3778ec518130e256bc0f11a7b8ba82bc}{O\+L\+C\+\_\+\+G\+F\+X\+\_\+\+O\+P\+E\+N\+G\+L10}}
+\end{DoxyCompactItemize}
+\doxysubsection*{Typedefs}
+\begin{DoxyCompactItemize}
+\item 
+typedef v2d\+\_\+generic$<$ int32\+\_\+t $>$ \mbox{\hyperlink{namespaceolc_a3c42697361e8a28424bcf8415aba3564}{olc\+::vi2d}}
+\item 
+typedef v2d\+\_\+generic$<$ uint32\+\_\+t $>$ \mbox{\hyperlink{namespaceolc_ac9f9fa9267428312fd81237a4cc5c8e5}{olc\+::vu2d}}
+\item 
+typedef v2d\+\_\+generic$<$ float $>$ \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}}
+\item 
+typedef v2d\+\_\+generic$<$ double $>$ \mbox{\hyperlink{namespaceolc_a51aaa7b75138a3323048a77457735d33}{olc\+::vd2d}}
+\end{DoxyCompactItemize}
+\doxysubsection*{Enumerations}
+\begin{DoxyCompactItemize}
+\item 
+enum \mbox{\hyperlink{namespaceolc_a3d40e9b1c005602550230690b55ae87b}{olc\+::rcode}} \{ \mbox{\hyperlink{namespaceolc_a3d40e9b1c005602550230690b55ae87baadc8ac6e9769db5bb290fbf5f8284dbf}{olc\+::\+F\+A\+IL}} = 0, 
+\mbox{\hyperlink{namespaceolc_a3d40e9b1c005602550230690b55ae87ba0178b5f8abe39121e6f14d3c6c093a82}{olc\+::\+OK}} = 1, 
+\mbox{\hyperlink{namespaceolc_a3d40e9b1c005602550230690b55ae87babfe0b9ad99c942b01b1ee61404f559b5}{olc\+::\+N\+O\+\_\+\+F\+I\+LE}} = -\/1
+ \}
+\item 
+enum \mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7}{olc\+::\+Key}} \{ \newline
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a569010ded143bbdfd1b2dc8e82327b45}{olc\+::\+N\+O\+NE}}, 
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a3e1af6612f2964145f438bb63073098d}{olc\+::A}}, 
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a8baf1c6fa76f36bae92c12df88f4c84d}{olc\+::B}}, 
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7aaa5fe91e0948a39a142504c1f9067549}{olc\+::C}}, 
+\newline
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a7323455add036f066f8b23546f0c37bb}{olc\+::D}}, 
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7ad29058aa6514f4f9dcdefdba93adc8ec}{olc\+::E}}, 
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a614698cb99af6a9effa5d7ce88b2c674}{olc\+::F}}, 
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a1a7a9ef9ded3ee4bb7b7e4fbc69ae4b8}{olc\+::G}}, 
+\newline
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a224c0773e09bdb7fb13683fbb4eeee1a}{olc\+::H}}, 
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7ac242ddce5db0d462674ead1db3956a19}{olc\+::I}}, 
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a476769e330b87f2fb75aaa684c2f6373}{olc\+::J}}, 
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a136309f07b14d70a8561a69ca563bab7}{olc\+::K}}, 
+\newline
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a4d809048542b770e810d48919c8f8500}{olc\+::L}}, 
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7afda4a6ac36e1870cd31522ac4e40a113}{olc\+::M}}, 
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7ab9b5b3e2b7e4f47de4a8d84e03cd5911}{olc\+::N}}, 
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a7f95c3a8701b46a2cca143078d7e3aea}{olc\+::O}}, 
+\newline
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a2af805290f6ef4b2de028b868debe170}{olc\+::P}}, 
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a6d49ec75b05a97e8714ac8c244ad29a8}{olc\+::Q}}, 
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a7417555746b2b1026b8ba65912817111}{olc\+::R}}, 
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a050dfda2928d980787eeebcaaa4e6fa7}{olc\+::S}}, 
+\newline
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0}{olc\+::T}}, 
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a62c2493e1585db2af15cb70ac979fb09}{olc\+::U}}, 
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a170eaa7913d25c0ff02712bd93d7bf81}{olc\+::V}}, 
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7ac1ae605c94e2d813c718148311c101d1}{olc\+::W}}, 
+\newline
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a259dcb71eab0ee6c477f792543f43ec5}{olc\+::X}}, 
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a6207f4e5a37e546fa3881817046587b9}{olc\+::Y}}, 
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a7c408b7a6694f74ac270013753b13aaa}{olc\+::Z}}, 
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a2dd03c94eccd6d1259d4b2b51b7f85a7}{olc\+::\+K0}}, 
+\newline
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a353892e1e3473d0a6d3427dd86080506}{olc\+::\+K1}}, 
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7ab3b331dc3158175e2c567f7ebdf9fa75}{olc\+::\+K2}}, 
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7aba2ad21d300fb113ff4e82665800cf75}{olc\+::\+K3}}, 
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7aadd3a981032ec5fc07440dd0dbd1a3b3}{olc\+::\+K4}}, 
+\newline
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a353906757178b0d48008b62cdca75332}{olc\+::\+K5}}, 
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a81afecef4b483614604bfc5341d8a2d5}{olc\+::\+K6}}, 
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a89291a8afb7ac7b481090dc97f643263}{olc\+::\+K7}}, 
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a636f4e49257a6476ad0aab590318672f}{olc\+::\+K8}}, 
+\newline
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a949dddf48734610228c20566a33912bc}{olc\+::\+K9}}, 
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a17a119da4c7fd21cd061972ac8f8029a}{olc\+::\+F1}}, 
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a207c1404adcacfadf941ffc681485026}{olc\+::\+F2}}, 
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a573a484680114e221c1a3ecd8307d61a}{olc\+::\+F3}}, 
+\newline
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a3c808be2b8b226138090bb3884bdc52b}{olc\+::\+F4}}, 
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7ab9dd7de33e89c10afa7947bc5ff6fdea}{olc\+::\+F5}}, 
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a12e4309f479cd3e34476ef3be7986847}{olc\+::\+F6}}, 
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7ac955ad4fdd41f4d3600b29da016fdf36}{olc\+::\+F7}}, 
+\newline
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7ab9ff66b449c18ecdb5b83a2e055e393b}{olc\+::\+F8}}, 
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a2f2949bdd6d44b3c918531ebc30d8186}{olc\+::\+F9}}, 
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7abe90f6618beb39117690b93a5c9d8ccb}{olc\+::\+F10}}, 
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7aba366840d455651d4cedc7f7ee4c770b}{olc\+::\+F11}}, 
+\newline
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a9bc869632cc0095b7d8e456efd571969}{olc\+::\+F12}}, 
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a2b35f0b03e615b828187a990935344c4}{olc\+::\+UP}}, 
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a506f2ec576fcd3a8fabd37461bba83f8}{olc\+::\+D\+O\+WN}}, 
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a4da01be8126ba4113717cc6385ad22d2}{olc\+::\+L\+E\+FT}}, 
+\newline
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a58e7b18972e446a03ce5ce915bc2d34d}{olc\+::\+R\+I\+G\+HT}}, 
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a925d9a708542cd050a0b4f87bd7ba297}{olc\+::\+S\+P\+A\+CE}}, 
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7aef93738bc8d89f07932dd1a603b021bd}{olc\+::\+T\+AB}}, 
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a4cd994e0e2285e9b52e129f74c84aa0b}{olc\+::\+S\+H\+I\+FT}}, 
+\newline
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7ae7e6e69075c36b0e44309aae888b86dc}{olc\+::\+C\+T\+RL}}, 
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a691b8388214af88a7794c43d31fbe16a}{olc\+::\+I\+NS}}, 
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a5a979509d792ab38404b7a2aca12c981}{olc\+::\+D\+EL}}, 
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a29419f86c551b623c828f9530f301389}{olc\+::\+H\+O\+ME}}, 
+\newline
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a53394a407c13bf8192b2946607d27a0f}{olc\+::\+E\+ND}}, 
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a0bab26868b97eab537e7cad879d4b9a3}{olc\+::\+P\+G\+UP}}, 
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7aae334e3943922c2b16842afc5306a1e9}{olc\+::\+P\+G\+DN}}, 
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a390af039d8a8c4ab71787f001f810521}{olc\+::\+B\+A\+CK}}, 
+\newline
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7ac58fbe549b8c1a668c42a17d9e572b0f}{olc\+::\+E\+S\+C\+A\+PE}}, 
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a4f04a0bac23ee4f7b875d0328f29df27}{olc\+::\+R\+E\+T\+U\+RN}}, 
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a31321cae06dfe0989acbbe94c5272b33}{olc\+::\+E\+N\+T\+ER}}, 
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a0bc227b9b4a43118d7500e8195806d74}{olc\+::\+P\+A\+U\+SE}}, 
+\newline
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a44cf52f457ad06d45cd947c72c291ccc}{olc\+::\+S\+C\+R\+O\+LL}}, 
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a16054c3b1419b9679d95ac70ef262666}{olc\+::\+N\+P0}}, 
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a96c49dba90b7ecdfcf88e18c2842a964}{olc\+::\+N\+P1}}, 
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a7ca6517890a3566dbf758618f9c7690f}{olc\+::\+N\+P2}}, 
+\newline
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7aab84341adb43a72b48030189f9919360}{olc\+::\+N\+P3}}, 
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a443551e4895cf1d2be984eba0bd7098e}{olc\+::\+N\+P4}}, 
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a0ba7e1a6dbc9d1291a40172a09bb49a4}{olc\+::\+N\+P5}}, 
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7ad6aae0ca10843b8046ee0186af4e42f9}{olc\+::\+N\+P6}}, 
+\newline
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7afee25adbffa6e8fc092d52193195182f}{olc\+::\+N\+P7}}, 
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a468bb1704a74fc6e42d28e7bee8ecb51}{olc\+::\+N\+P8}}, 
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a53987c7c18a4a4479c4e1ff7f65c414e}{olc\+::\+N\+P9}}, 
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7ae2ce826d1d0de6429f9f28a19d11edfb}{olc\+::\+N\+P\+\_\+\+M\+UL}}, 
+\newline
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7aee5afd77eb82eb3111195ee300ff3714}{olc\+::\+N\+P\+\_\+\+D\+IV}}, 
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7af15830fd3562b144e15a9d8abeb6c118}{olc\+::\+N\+P\+\_\+\+A\+DD}}, 
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7aade223a1643f8d607eb44fff1bbaae8e}{olc\+::\+N\+P\+\_\+\+S\+UB}}, 
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a2c21f93f355bf0a6baa7e205acd86b50}{olc\+::\+N\+P\+\_\+\+D\+E\+C\+I\+M\+AL}}, 
+\newline
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a1adffcecf8c735b404ac6eedf220ae5a}{olc\+::\+P\+E\+R\+I\+OD}}, 
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7aa82c0ef0b75db6208407e90f6f77f002}{olc\+::\+E\+Q\+U\+A\+LS}}, 
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7ae2fab0c220f54cd28729c9340951ecb4}{olc\+::\+C\+O\+M\+MA}}, 
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a4b3a1d83a513de0e2c3c8ba2a8a5fd2d}{olc\+::\+M\+I\+N\+US}}, 
+\newline
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a3a044efaf7d74df21e84a29063006eae}{olc\+::\+O\+E\+M\+\_\+1}}, 
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7ad29833dd46d756ecf0e9d477d0845450}{olc\+::\+O\+E\+M\+\_\+2}}, 
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7abb25924adf005b39efaef185f332a3ad}{olc\+::\+O\+E\+M\+\_\+3}}, 
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7aa09e2508e2f2fd372d3e37ebdfce6814}{olc\+::\+O\+E\+M\+\_\+4}}, 
+\newline
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7ad7e69e28cedaf91718aa4801d5a3bdb7}{olc\+::\+O\+E\+M\+\_\+5}}, 
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7af2cec59ecc924be0b636e5b767abf29f}{olc\+::\+O\+E\+M\+\_\+6}}, 
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a3dada7cdf09fb367c10c650e9bce7bfa}{olc\+::\+O\+E\+M\+\_\+7}}, 
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7ab719317cfd8ac665e8cc2f420f74b46a}{olc\+::\+O\+E\+M\+\_\+8}}, 
+\newline
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a523c88e17275650861203e32067dde01}{olc\+::\+C\+A\+P\+S\+\_\+\+L\+O\+CK}}, 
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a35430b793d6fae00ed8b060cb0accf32}{olc\+::\+E\+N\+U\+M\+\_\+\+E\+ND}}
+ \}
+\item 
+enum \mbox{\hyperlink{namespaceolc_aeda642f63378f868193c28e8613138ca}{olc\+::\+Decal\+Mode}} \{ \newline
+\mbox{\hyperlink{namespaceolc_aeda642f63378f868193c28e8613138caa1e23852820b9154316c7c06e2b7ba051}{olc\+::\+Decal\+Mode\+::\+N\+O\+R\+M\+AL}}, 
+\mbox{\hyperlink{namespaceolc_aeda642f63378f868193c28e8613138caa8d8c2c7c04ebe2b70bca10a3060ca491}{olc\+::\+Decal\+Mode\+::\+A\+D\+D\+I\+T\+I\+VE}}, 
+\mbox{\hyperlink{namespaceolc_aeda642f63378f868193c28e8613138caa418ef46700a2836c0d6218e2b46bf564}{olc\+::\+Decal\+Mode\+::\+M\+U\+L\+T\+I\+P\+L\+I\+C\+A\+T\+I\+VE}}, 
+\mbox{\hyperlink{namespaceolc_aeda642f63378f868193c28e8613138caa301b25ea9a653329b5d5d727f92514c4}{olc\+::\+Decal\+Mode\+::\+S\+T\+E\+N\+C\+IL}}, 
+\newline
+\mbox{\hyperlink{namespaceolc_aeda642f63378f868193c28e8613138caab892134232b911680f88a64a24883f7d}{olc\+::\+Decal\+Mode\+::\+I\+L\+L\+U\+M\+I\+N\+A\+TE}}, 
+\mbox{\hyperlink{namespaceolc_aeda642f63378f868193c28e8613138caa43ea8c7cefb63ec314b4df5628cba577}{olc\+::\+Decal\+Mode\+::\+W\+I\+R\+E\+F\+R\+A\+ME}}
+ \}
+\end{DoxyCompactItemize}
+\doxysubsection*{Functions}
+\begin{DoxyCompactItemize}
+\item 
+Pixel \mbox{\hyperlink{namespaceolc_a06c9f23f2e370e7afe71788427a820fd}{olc\+::\+PixelF}} (float red, float green, float blue, float alpha=1.\+0f)
+\item 
+Pixel \mbox{\hyperlink{namespaceolc_a2069e5cf447f5dd311c680c9463f9c42}{olc\+::\+Pixel\+Lerp}} (const \mbox{\hyperlink{structolc_1_1_pixel}{olc\+::\+Pixel}} \&p1, const \mbox{\hyperlink{structolc_1_1_pixel}{olc\+::\+Pixel}} \&p2, float t)
+\item 
+static const Pixel \mbox{\hyperlink{namespaceolc_a7208a6ce62e94eca5b0ba80f7c2f5e30}{olc\+::\+D\+A\+R\+K\+\_\+\+G\+R\+EY}} (128, 128, 128)
+\item 
+static const Pixel \mbox{\hyperlink{namespaceolc_a93de271d8b3cbd5aec73a085e6a6ec7a}{olc\+::\+V\+E\+R\+Y\+\_\+\+D\+A\+R\+K\+\_\+\+G\+R\+EY}} (64, 64, 64)
+\item 
+static const Pixel \mbox{\hyperlink{namespaceolc_ad4579f7eb75a257d76bb657a268f0a8d}{olc\+::\+R\+ED}} (255, 0, 0)
+\item 
+static const Pixel \mbox{\hyperlink{namespaceolc_a8265396ef812918ca95d2e7aa39c14cc}{olc\+::\+D\+A\+R\+K\+\_\+\+R\+ED}} (128, 0, 0)
+\item 
+static const Pixel \mbox{\hyperlink{namespaceolc_a82b6404acf7ac86f237179fc5f9a859f}{olc\+::\+V\+E\+R\+Y\+\_\+\+D\+A\+R\+K\+\_\+\+R\+ED}} (64, 0, 0)
+\item 
+static const Pixel \mbox{\hyperlink{namespaceolc_a6c9728f6dba8b58406bb0e10979b6ccf}{olc\+::\+Y\+E\+L\+L\+OW}} (255, 255, 0)
+\item 
+static const Pixel \mbox{\hyperlink{namespaceolc_a379f9d3a40edb1700299c031cd0b6a08}{olc\+::\+D\+A\+R\+K\+\_\+\+Y\+E\+L\+L\+OW}} (128, 128, 0)
+\item 
+static const Pixel \mbox{\hyperlink{namespaceolc_a131df56f1dd5cb0906cd02f9df49b17d}{olc\+::\+V\+E\+R\+Y\+\_\+\+D\+A\+R\+K\+\_\+\+Y\+E\+L\+L\+OW}} (64, 64, 0)
+\item 
+static const Pixel \mbox{\hyperlink{namespaceolc_a32b98884f548bf731eab3225557ebe8c}{olc\+::\+G\+R\+E\+EN}} (0, 255, 0)
+\item 
+static const Pixel \mbox{\hyperlink{namespaceolc_ac192218acb2f30c4c3748485dd5e4ba0}{olc\+::\+D\+A\+R\+K\+\_\+\+G\+R\+E\+EN}} (0, 128, 0)
+\item 
+static const Pixel \mbox{\hyperlink{namespaceolc_a29c85b49a3c9cbd0b251e80e3bc57140}{olc\+::\+V\+E\+R\+Y\+\_\+\+D\+A\+R\+K\+\_\+\+G\+R\+E\+EN}} (0, 64, 0)
+\item 
+static const Pixel \mbox{\hyperlink{namespaceolc_a43ffa41e9a4a260b86da82b823e6a252}{olc\+::\+C\+Y\+AN}} (0, 255, 255)
+\item 
+static const Pixel \mbox{\hyperlink{namespaceolc_aa0824f5fdd85c58712495a7bc0de191e}{olc\+::\+D\+A\+R\+K\+\_\+\+C\+Y\+AN}} (0, 128, 128)
+\item 
+static const Pixel \mbox{\hyperlink{namespaceolc_aee6a06b446368ac58033b5ae4f4c6ca2}{olc\+::\+V\+E\+R\+Y\+\_\+\+D\+A\+R\+K\+\_\+\+C\+Y\+AN}} (0, 64, 64)
+\item 
+static const Pixel \mbox{\hyperlink{namespaceolc_ac1e1d3e39e0b78e9767142c9daeba4ee}{olc\+::\+B\+L\+UE}} (0, 0, 255)
+\item 
+static const Pixel \mbox{\hyperlink{namespaceolc_ac6e041f71287438da8b9145758c4fe63}{olc\+::\+D\+A\+R\+K\+\_\+\+B\+L\+UE}} (0, 0, 128)
+\item 
+static const Pixel \mbox{\hyperlink{namespaceolc_a48fb6375b9a7c0a0d44feaa879e7ebb7}{olc\+::\+V\+E\+R\+Y\+\_\+\+D\+A\+R\+K\+\_\+\+B\+L\+UE}} (0, 0, 64)
+\item 
+static const Pixel \mbox{\hyperlink{namespaceolc_adc292fdc3c4d2a03e8c6bbad1853b727}{olc\+::\+M\+A\+G\+E\+N\+TA}} (255, 0, 255)
+\item 
+static const Pixel \mbox{\hyperlink{namespaceolc_abad91f58a178a173f76ce7d9f9aa99c4}{olc\+::\+D\+A\+R\+K\+\_\+\+M\+A\+G\+E\+N\+TA}} (128, 0, 128)
+\item 
+static const Pixel \mbox{\hyperlink{namespaceolc_a150fed0369958dc77d3207298588bc94}{olc\+::\+V\+E\+R\+Y\+\_\+\+D\+A\+R\+K\+\_\+\+M\+A\+G\+E\+N\+TA}} (64, 0, 64)
+\item 
+static const Pixel \mbox{\hyperlink{namespaceolc_ae3de4726bf87f2d74693e62d76816db1}{olc\+::\+W\+H\+I\+TE}} (255, 255, 255)
+\item 
+static const Pixel \mbox{\hyperlink{namespaceolc_a183de1c471cfd6f45980bc9c2c58ed9d}{olc\+::\+B\+L\+A\+CK}} (0, 0, 0)
+\item 
+static const Pixel \mbox{\hyperlink{namespaceolc_ac940e7f6502cbced06f26b4d13349166}{olc\+::\+B\+L\+A\+NK}} (0, 0, 0, 0)
+\item 
+{\footnotesize template$<$class T $>$ }\\v2d\+\_\+generic$<$ T $>$ \mbox{\hyperlink{namespaceolc_a0cb5b54cc54cf0c92741da285010e1e5}{olc\+::operator$\ast$}} (const float \&lhs, const v2d\+\_\+generic$<$ T $>$ \&rhs)
+\item 
+{\footnotesize template$<$class T $>$ }\\v2d\+\_\+generic$<$ T $>$ \mbox{\hyperlink{namespaceolc_a9a03952e9e6c1c40c2512560ac182382}{olc\+::operator$\ast$}} (const double \&lhs, const v2d\+\_\+generic$<$ T $>$ \&rhs)
+\item 
+{\footnotesize template$<$class T $>$ }\\v2d\+\_\+generic$<$ T $>$ \mbox{\hyperlink{namespaceolc_ab04d4eba2afcfda14b1045bace972a76}{olc\+::operator$\ast$}} (const int \&lhs, const v2d\+\_\+generic$<$ T $>$ \&rhs)
+\item 
+{\footnotesize template$<$class T $>$ }\\v2d\+\_\+generic$<$ T $>$ \mbox{\hyperlink{namespaceolc_a6448f6127e1003cd9287161c5c4d52e0}{olc\+::operator/}} (const float \&lhs, const v2d\+\_\+generic$<$ T $>$ \&rhs)
+\item 
+{\footnotesize template$<$class T $>$ }\\v2d\+\_\+generic$<$ T $>$ \mbox{\hyperlink{namespaceolc_a879e763a12d6fbc6b4d3e2aac7b4c85a}{olc\+::operator/}} (const double \&lhs, const v2d\+\_\+generic$<$ T $>$ \&rhs)
+\item 
+{\footnotesize template$<$class T $>$ }\\v2d\+\_\+generic$<$ T $>$ \mbox{\hyperlink{namespaceolc_a302501c3eb64a99ffa93feac2cc46115}{olc\+::operator/}} (const int \&lhs, const v2d\+\_\+generic$<$ T $>$ \&rhs)
+\item 
+{\footnotesize template$<$class T , class U $>$ }\\bool \mbox{\hyperlink{namespaceolc_a2831a8757172243381b08adf69e91e0a}{olc\+::operator$<$}} (const v2d\+\_\+generic$<$ T $>$ \&lhs, const v2d\+\_\+generic$<$ U $>$ \&rhs)
+\item 
+{\footnotesize template$<$class T , class U $>$ }\\bool \mbox{\hyperlink{namespaceolc_a34519a6f9006c6c4854bbe762d490900}{olc\+::operator$>$}} (const v2d\+\_\+generic$<$ T $>$ \&lhs, const v2d\+\_\+generic$<$ U $>$ \&rhs)
+\end{DoxyCompactItemize}
+\doxysubsection*{Variables}
+\begin{DoxyCompactItemize}
+\item 
+constexpr uint8\+\_\+t \mbox{\hyperlink{namespaceolc_abf7dfc35dd1d895f33d3635831953e38}{olc\+::n\+Mouse\+Buttons}} = 5
+\item 
+constexpr uint8\+\_\+t \mbox{\hyperlink{namespaceolc_adede7d1156ab9d8ffdc3e9048f0f364b}{olc\+::n\+Default\+Alpha}} = 0x\+FF
+\item 
+constexpr uint32\+\_\+t \mbox{\hyperlink{namespaceolc_a10bbdc57cc3fecc7b80ba428eb7494d0}{olc\+::n\+Default\+Pixel}} = (n\+Default\+Alpha $<$$<$ 24)
+\end{DoxyCompactItemize}
+
+
+\doxysubsection{Macro Definition Documentation}
+\mbox{\Hypertarget{olc_pixel_game_engine_8h_aab6af62131aad81d17d3b4afd9db334f}\label{olc_pixel_game_engine_8h_aab6af62131aad81d17d3b4afd9db334f}} 
+\index{olcPixelGameEngine.h@{olcPixelGameEngine.h}!\_SILENCE\_EXPERIMENTAL\_FILESYSTEM\_DEPRECATION\_WARNING@{\_SILENCE\_EXPERIMENTAL\_FILESYSTEM\_DEPRECATION\_WARNING}}
+\index{\_SILENCE\_EXPERIMENTAL\_FILESYSTEM\_DEPRECATION\_WARNING@{\_SILENCE\_EXPERIMENTAL\_FILESYSTEM\_DEPRECATION\_WARNING}!olcPixelGameEngine.h@{olcPixelGameEngine.h}}
+\doxysubsubsection{\texorpdfstring{\_SILENCE\_EXPERIMENTAL\_FILESYSTEM\_DEPRECATION\_WARNING}{\_SILENCE\_EXPERIMENTAL\_FILESYSTEM\_DEPRECATION\_WARNING}}
+{\footnotesize\ttfamily \#define \+\_\+\+S\+I\+L\+E\+N\+C\+E\+\_\+\+E\+X\+P\+E\+R\+I\+M\+E\+N\+T\+A\+L\+\_\+\+F\+I\+L\+E\+S\+Y\+S\+T\+E\+M\+\_\+\+D\+E\+P\+R\+E\+C\+A\+T\+I\+O\+N\+\_\+\+W\+A\+R\+N\+I\+NG}
+
+
+
+Definition at line 371 of file olc\+Pixel\+Game\+Engine.\+h.
+
+\mbox{\Hypertarget{olc_pixel_game_engine_8h_a3778ec518130e256bc0f11a7b8ba82bc}\label{olc_pixel_game_engine_8h_a3778ec518130e256bc0f11a7b8ba82bc}} 
+\index{olcPixelGameEngine.h@{olcPixelGameEngine.h}!OLC\_GFX\_OPENGL10@{OLC\_GFX\_OPENGL10}}
+\index{OLC\_GFX\_OPENGL10@{OLC\_GFX\_OPENGL10}!olcPixelGameEngine.h@{olcPixelGameEngine.h}}
+\doxysubsubsection{\texorpdfstring{OLC\_GFX\_OPENGL10}{OLC\_GFX\_OPENGL10}}
+{\footnotesize\ttfamily \#define O\+L\+C\+\_\+\+G\+F\+X\+\_\+\+O\+P\+E\+N\+G\+L10}
+
+
+
+Definition at line 422 of file olc\+Pixel\+Game\+Engine.\+h.
+
+\mbox{\Hypertarget{olc_pixel_game_engine_8h_ac02283d1990a8623a332f7f7f2230a1f}\label{olc_pixel_game_engine_8h_ac02283d1990a8623a332f7f7f2230a1f}} 
+\index{olcPixelGameEngine.h@{olcPixelGameEngine.h}!olcT@{olcT}}
+\index{olcT@{olcT}!olcPixelGameEngine.h@{olcPixelGameEngine.h}}
+\doxysubsubsection{\texorpdfstring{olcT}{olcT}}
+{\footnotesize\ttfamily \#define olcT(\begin{DoxyParamCaption}\item[{}]{s }\end{DoxyParamCaption})~s}
+
+
+
+Definition at line 383 of file olc\+Pixel\+Game\+Engine.\+h.
+
+\mbox{\Hypertarget{olc_pixel_game_engine_8h_a6301d810e4f45704594786997b2261ea}\label{olc_pixel_game_engine_8h_a6301d810e4f45704594786997b2261ea}} 
+\index{olcPixelGameEngine.h@{olcPixelGameEngine.h}!PGE\_VER@{PGE\_VER}}
+\index{PGE\_VER@{PGE\_VER}!olcPixelGameEngine.h@{olcPixelGameEngine.h}}
+\doxysubsubsection{\texorpdfstring{PGE\_VER}{PGE\_VER}}
+{\footnotesize\ttfamily \#define P\+G\+E\+\_\+\+V\+ER~215}
+
+
+
+Definition at line 350 of file olc\+Pixel\+Game\+Engine.\+h.
+
+\mbox{\Hypertarget{olc_pixel_game_engine_8h_a86d500a34c624c2cae56bc25a31b12f3}\label{olc_pixel_game_engine_8h_a86d500a34c624c2cae56bc25a31b12f3}} 
+\index{olcPixelGameEngine.h@{olcPixelGameEngine.h}!UNUSED@{UNUSED}}
+\index{UNUSED@{UNUSED}!olcPixelGameEngine.h@{olcPixelGameEngine.h}}
+\doxysubsubsection{\texorpdfstring{UNUSED}{UNUSED}}
+{\footnotesize\ttfamily \#define U\+N\+U\+S\+ED(\begin{DoxyParamCaption}\item[{}]{x }\end{DoxyParamCaption})~(void)(x)}
+
+
+
+Definition at line 386 of file olc\+Pixel\+Game\+Engine.\+h.
+
+\mbox{\Hypertarget{olc_pixel_game_engine_8h_a7f7123ffe9352ede10ecc711ae8901d3}\label{olc_pixel_game_engine_8h_a7f7123ffe9352ede10ecc711ae8901d3}} 
+\index{olcPixelGameEngine.h@{olcPixelGameEngine.h}!USE\_EXPERIMENTAL\_FS@{USE\_EXPERIMENTAL\_FS}}
+\index{USE\_EXPERIMENTAL\_FS@{USE\_EXPERIMENTAL\_FS}!olcPixelGameEngine.h@{olcPixelGameEngine.h}}
+\doxysubsubsection{\texorpdfstring{USE\_EXPERIMENTAL\_FS}{USE\_EXPERIMENTAL\_FS}}
+{\footnotesize\ttfamily \#define U\+S\+E\+\_\+\+E\+X\+P\+E\+R\+I\+M\+E\+N\+T\+A\+L\+\_\+\+FS}
+
+
+
+Definition at line 356 of file olc\+Pixel\+Game\+Engine.\+h.
+
diff --git a/doxy/latex/refman.tex b/doxy/latex/refman.tex
new file mode 100644
index 0000000000000000000000000000000000000000..99ec8b583cb4ffcd9e88f5ff80100c71d864e02c
--- /dev/null
+++ b/doxy/latex/refman.tex
@@ -0,0 +1,325 @@
+\let\mypdfximage\pdfximage\def\pdfximage{\immediate\mypdfximage}\documentclass[twoside]{book}
+
+%% moved from doxygen.sty due to workaround for LaTex 2019 version and unmaintained tabu package
+\usepackage{ifthen}
+\ifx\requestedLaTeXdate\undefined
+\usepackage{array}
+\else
+\usepackage{array}[=2016-10-06]
+\fi
+%%
+% Packages required by doxygen
+\usepackage{fixltx2e}
+\usepackage{calc}
+\usepackage{doxygen}
+\usepackage{graphicx}
+\usepackage[utf8]{inputenc}
+\usepackage{makeidx}
+\usepackage{multicol}
+\usepackage{multirow}
+\PassOptionsToPackage{warn}{textcomp}
+\usepackage{textcomp}
+\usepackage[nointegrals]{wasysym}
+\usepackage[table]{xcolor}
+\usepackage{ifpdf,ifxetex}
+
+% Font selection
+\usepackage[T1]{fontenc}
+\usepackage[scaled=.90]{helvet}
+\usepackage{courier}
+\renewcommand{\familydefault}{\sfdefault}
+\usepackage{amssymb}
+\usepackage{sectsty}
+\allsectionsfont{%
+  \fontseries{bc}\selectfont%
+  \color{darkgray}%
+}
+\renewcommand{\DoxyLabelFont}{%
+  \fontseries{bc}\selectfont%
+  \color{darkgray}%
+}
+\newcommand{\+}{\discretionary{\mbox{\scriptsize$\hookleftarrow$}}{}{}}
+
+% Arguments of doxygenemoji:
+% 1) ':<text>:' form of the emoji, already "LaTeX"-escaped
+% 2) file with the name of the emoji without the .png extension
+% in case image exist use this otherwise use the ':<text>:' form
+\newcommand{\doxygenemoji}[2]{%
+  \IfFileExists{./#2.png}{\raisebox{-0.1em}{\includegraphics[height=0.9em]{./#2.png}}}{#1}%
+}
+% Page & text layout
+\usepackage{geometry}
+\geometry{%
+  a4paper,%
+  top=2.5cm,%
+  bottom=2.5cm,%
+  left=2.5cm,%
+  right=2.5cm%
+}
+\tolerance=750
+\hfuzz=15pt
+\hbadness=750
+\setlength{\emergencystretch}{15pt}
+\setlength{\parindent}{0cm}
+\newcommand{\doxynormalparskip}{\setlength{\parskip}{3ex plus 2ex minus 2ex}}
+\newcommand{\doxytocparskip}{\setlength{\parskip}{1ex plus 0ex minus 0ex}}
+\doxynormalparskip
+\makeatletter
+\renewcommand{\paragraph}{%
+  \@startsection{paragraph}{4}{0ex}{-1.0ex}{1.0ex}{%
+    \normalfont\normalsize\bfseries\SS@parafont%
+  }%
+}
+\renewcommand{\subparagraph}{%
+  \@startsection{subparagraph}{5}{0ex}{-1.0ex}{1.0ex}{%
+    \normalfont\normalsize\bfseries\SS@subparafont%
+  }%
+}
+\makeatother
+
+\makeatletter
+\newcommand\hrulefilll{\leavevmode\leaders\hrule\hskip 0pt plus 1filll\kern\z@}
+\makeatother
+
+% Headers & footers
+\usepackage{fancyhdr}
+\pagestyle{fancyplain}
+\fancyhead[LE]{\fancyplain{}{\bfseries\thepage}}
+\fancyhead[CE]{\fancyplain{}{}}
+\fancyhead[RE]{\fancyplain{}{\bfseries\leftmark}}
+\fancyhead[LO]{\fancyplain{}{\bfseries\rightmark}}
+\fancyhead[CO]{\fancyplain{}{}}
+\fancyhead[RO]{\fancyplain{}{\bfseries\thepage}}
+\fancyfoot[LE]{\fancyplain{}{}}
+\fancyfoot[CE]{\fancyplain{}{}}
+\fancyfoot[RE]{\fancyplain{}{\bfseries\scriptsize Generated by Doxygen }}
+\fancyfoot[LO]{\fancyplain{}{\bfseries\scriptsize Generated by Doxygen }}
+\fancyfoot[CO]{\fancyplain{}{}}
+\fancyfoot[RO]{\fancyplain{}{}}
+\renewcommand{\footrulewidth}{0.4pt}
+\renewcommand{\chaptermark}[1]{%
+  \markboth{#1}{}%
+}
+\renewcommand{\sectionmark}[1]{%
+  \markright{\thesection\ #1}%
+}
+
+% Indices & bibliography
+\usepackage{natbib}
+\usepackage[titles]{tocloft}
+\setcounter{tocdepth}{3}
+\setcounter{secnumdepth}{5}
+\makeindex
+
+\usepackage{newunicodechar}
+  \newunicodechar{⁻}{${}^{-}$}% Superscript minus
+  \newunicodechar{²}{${}^{2}$}% Superscript two
+  \newunicodechar{³}{${}^{3}$}% Superscript three
+
+% Hyperlinks (required, but should be loaded last)
+\ifpdf
+  \usepackage[pdftex,pagebackref=true]{hyperref}
+\else
+  \ifxetex
+    \usepackage[pagebackref=true]{hyperref}
+  \else
+    \usepackage[ps2pdf,pagebackref=true]{hyperref}
+  \fi
+\fi
+
+\hypersetup{%
+  colorlinks=true,%
+  linkcolor=blue,%
+  citecolor=blue,%
+  unicode%
+}
+
+% Custom commands
+\newcommand{\clearemptydoublepage}{%
+  \newpage{\pagestyle{empty}\cleardoublepage}%
+}
+
+\usepackage{caption}
+\captionsetup{labelsep=space,justification=centering,font={bf},singlelinecheck=off,skip=4pt,position=top}
+
+\usepackage{etoc}
+\etocsettocstyle{\doxytocparskip}{\doxynormalparskip}
+\renewcommand{\numberline}[1]{#1~}
+%===== C O N T E N T S =====
+
+\begin{document}
+
+% Titlepage & ToC
+\hypersetup{pageanchor=false,
+             bookmarksnumbered=true,
+             pdfencoding=unicode
+            }
+\pagenumbering{alph}
+\begin{titlepage}
+\vspace*{7cm}
+\begin{center}%
+{\Large 2D-\/game }\\
+\vspace*{1cm}
+{\large Generated by Doxygen 1.8.20}\\
+\end{center}
+\end{titlepage}
+\clearemptydoublepage
+\pagenumbering{roman}
+\tableofcontents
+\clearemptydoublepage
+\pagenumbering{arabic}
+\hypersetup{pageanchor=true}
+
+%--- Begin generated contents ---
+\chapter{\+:D}
+\label{md__c___users_kosmx__documents__git_hub_2d-game__r_e_a_d_m_e}
+\Hypertarget{md__c___users_kosmx__documents__git_hub_2d-game__r_e_a_d_m_e}
+\input{md__c___users_kosmx__documents__git_hub_2d-game__r_e_a_d_m_e}
+\chapter{Text}
+\label{md__c___users_kosmx__documents__git_hub_2d-game__text}
+\Hypertarget{md__c___users_kosmx__documents__git_hub_2d-game__text}
+\input{md__c___users_kosmx__documents__git_hub_2d-game__text}
+\chapter{Namespace Index}
+\input{namespaces}
+\chapter{Hierarchical Index}
+\input{hierarchy}
+\chapter{Class Index}
+\input{annotated}
+\chapter{File Index}
+\input{files}
+\chapter{Namespace Documentation}
+\input{namespaceentities}
+\input{namespaceolc}
+\input{namespacerender}
+\input{namespaceweapons}
+\input{namespaceweapons_1_1textures}
+\chapter{Class Documentation}
+\input{classentities_1_1_character_entity}
+\input{classrender_1_1_character_texture}
+\input{classolc_1_1_decal}
+\input{structolc_1_1_decal_instance}
+\input{classentities_1_1_dummy_entity}
+\input{class_dungeon_generator}
+\input{class_dynamic_array}
+\input{classweapons_1_1_e_m_gun}
+\input{classentities_1_1_entity}
+\input{classentities_1_1_entity_with_a_i}
+\input{classentities_1_1_explosive_projectile}
+\input{class_game_client}
+\input{class_game_exception}
+\input{classweapons_1_1_glitch_gun}
+\input{classweapons_1_1_glitch_texture}
+\input{structolc_1_1_h_w_button}
+\input{classolc_1_1_image_loader}
+\input{classrender_1_1_i_texture}
+\input{structolc_1_1_layer_desc}
+\input{classrender_1_1_lazy_sprite}
+\input{classentities_1_1_living_entity}
+\input{classweapons_1_1_melee_weapon}
+\input{classolc_1_1_p_g_e_x}
+\input{classweapons_1_1_pistol}
+\input{structolc_1_1_pixel}
+\input{classolc_1_1_pixel_game_engine}
+\input{classolc_1_1_platform}
+\input{classentities_1_1_player_entity}
+\input{classweapons_1_1_melee_weapon_1_1predicate_distance}
+\input{classentities_1_1_projectile_entity}
+\input{classweapons_1_1_ranged_weapon}
+\input{classolc_1_1_renderable}
+\input{classolc_1_1_renderer}
+\input{class_render_exception}
+\input{structolc_1_1_resource_buffer}
+\input{classrender_1_1_resource_manager}
+\input{classolc_1_1_resource_pack}
+\input{classrender_1_1_simple_sprite}
+\input{classolc_1_1_sprite}
+\input{classrender_1_1_sprite_manager}
+\input{class_square_room_generator}
+\input{class_test_generator}
+\input{classolc_1_1_tile_transformed_view}
+\input{classolc_1_1_transformed_view}
+\input{classweapons_1_1_typical_melee_weapon}
+\input{structolc_1_1v2d__generic}
+\input{classentities_1_1_wall_entity}
+\input{classrender_1_1_wall_texture}
+\input{classweapons_1_1_weapon}
+\chapter{File Documentation}
+\input{_abstract_texture_8cpp}
+\input{_character_entity_8cpp}
+\input{_character_entity_8h}
+\input{_character_texture_8cpp}
+\input{_character_texture_8h}
+\input{_dummy_entity_8cpp}
+\input{_dummy_entity_8h}
+\input{_dungeon_generator_8cpp}
+\input{_dungeon_generator_8h}
+\input{_dynamic_array_8hpp}
+\input{_e_m_gun_8cpp}
+\input{_e_m_gun_8h}
+\input{_entity_8cpp}
+\input{_entity_8h}
+\input{_entity_collection_8hpp}
+\input{_entity_with_a_i_8cpp}
+\input{_entity_with_a_i_8h}
+\input{_explosive_projectile_8cpp}
+\input{_explosive_projectile_8h}
+\input{game_8cpp}
+\input{_game_exception_8cpp}
+\input{_game_exception_8h}
+\input{_glitch_gun_8cpp}
+\input{_glitch_gun_8h}
+\input{_i_texture_8h}
+\input{_lazy_sprite_8cpp}
+\input{_lazy_sprite_8h}
+\input{_living_entity_8cpp}
+\input{_living_entity_8h}
+\input{main_game_8cpp}
+\input{main_game_8h}
+\input{_melee_weapon_8cpp}
+\input{_melee_weapon_8h}
+\input{olc_8h}
+\input{olc_p_g_e_x___transformed_view_8h}
+\input{olc_pixel_game_engine_8h}
+\input{_pistol_8cpp}
+\input{_pistol_8h}
+\input{_player_entity_8cpp}
+\input{_player_entity_8h}
+\input{_projectile_entity_8cpp}
+\input{_projectile_entity_8h}
+\input{_ranged_weapon_8cpp}
+\input{_ranged_weapon_8h}
+\input{_r_e_a_d_m_e_8md}
+\input{_render_exception_8cpp}
+\input{_render_exception_8h}
+\input{resource_8h}
+\input{resource1_8h}
+\input{_resource_manager_8cpp}
+\input{_resource_manager_8h}
+\input{_simple_sprite_8cpp}
+\input{_simple_sprite_8h}
+\input{_square_room_generator_8cpp}
+\input{_square_room_generator_8h}
+\input{_test_generator_8cpp}
+\input{_test_generator_8h}
+\input{_text_8md}
+\input{_typical_melee_weapon_8cpp}
+\input{_typical_melee_weapon_8h}
+\input{_wall_entity_8cpp}
+\input{_wall_entity_8h}
+\input{_wall_texture_8cpp}
+\input{_wall_texture_8h}
+\input{_weapon_8cpp}
+\input{_weapon_8h}
+\input{_weapon_textures_8cpp}
+\input{_weapon_textures_8h}
+%--- End generated contents ---
+
+% Index
+\backmatter
+\newpage
+\phantomsection
+\clearemptydoublepage
+\addcontentsline{toc}{chapter}{\indexname}
+\printindex
+
+\end{document}
diff --git a/doxy/latex/resource1_8h.tex b/doxy/latex/resource1_8h.tex
new file mode 100644
index 0000000000000000000000000000000000000000..4c89f67dcedc044cd46f3d6ad371350506ecbf34
--- /dev/null
+++ b/doxy/latex/resource1_8h.tex
@@ -0,0 +1,2 @@
+\hypertarget{resource1_8h}{}\doxysection{C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/resource1.h File Reference}
+\label{resource1_8h}\index{C:/Users/kosmx/Documents/GitHub/2d-\/game/resource1.h@{C:/Users/kosmx/Documents/GitHub/2d-\/game/resource1.h}}
diff --git a/doxy/latex/resource_8h.tex b/doxy/latex/resource_8h.tex
new file mode 100644
index 0000000000000000000000000000000000000000..ffa307b220206197dd38104cb14e3166d04dcfa0
--- /dev/null
+++ b/doxy/latex/resource_8h.tex
@@ -0,0 +1,2 @@
+\hypertarget{resource_8h}{}\doxysection{C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/resource.h File Reference}
+\label{resource_8h}\index{C:/Users/kosmx/Documents/GitHub/2d-\/game/resource.h@{C:/Users/kosmx/Documents/GitHub/2d-\/game/resource.h}}
diff --git a/doxy/latex/structolc_1_1_decal_instance.tex b/doxy/latex/structolc_1_1_decal_instance.tex
new file mode 100644
index 0000000000000000000000000000000000000000..b0703f845bd4120acb7a2b93f7426d73d9b033df
--- /dev/null
+++ b/doxy/latex/structolc_1_1_decal_instance.tex
@@ -0,0 +1,108 @@
+\hypertarget{structolc_1_1_decal_instance}{}\doxysection{olc\+::Decal\+Instance Struct Reference}
+\label{structolc_1_1_decal_instance}\index{olc::DecalInstance@{olc::DecalInstance}}
+
+
+{\ttfamily \#include $<$olc\+Pixel\+Game\+Engine.\+h$>$}
+
+\doxysubsection*{Public Attributes}
+\begin{DoxyCompactItemize}
+\item 
+\mbox{\hyperlink{classolc_1_1_decal}{olc\+::\+Decal}} $\ast$ \mbox{\hyperlink{structolc_1_1_decal_instance_ad01bc9806792469d91ee0b5736058e7e}{decal}} = nullptr
+\item 
+std\+::vector$<$ \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} $>$ \mbox{\hyperlink{structolc_1_1_decal_instance_a8dcf3a11a4f2c722e9b54c01643de08c}{pos}}
+\item 
+std\+::vector$<$ \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} $>$ \mbox{\hyperlink{structolc_1_1_decal_instance_a60337d982b4f35b3bb5b1d814fa0d09f}{uv}}
+\item 
+std\+::vector$<$ float $>$ \mbox{\hyperlink{structolc_1_1_decal_instance_a3475b1bb41f868f218c759972dec2f73}{w}}
+\item 
+std\+::vector$<$ \mbox{\hyperlink{structolc_1_1_pixel}{olc\+::\+Pixel}} $>$ \mbox{\hyperlink{structolc_1_1_decal_instance_a04f01880bf6d4045b6e1f70aff3e5c8f}{tint}}
+\item 
+\mbox{\hyperlink{namespaceolc_aeda642f63378f868193c28e8613138ca}{olc\+::\+Decal\+Mode}} \mbox{\hyperlink{structolc_1_1_decal_instance_a3dcc0fc374fe00a5d6451a4ac13e6649}{mode}} = \mbox{\hyperlink{namespaceolc_aeda642f63378f868193c28e8613138caa1e23852820b9154316c7c06e2b7ba051}{olc\+::\+Decal\+Mode\+::\+N\+O\+R\+M\+AL}}
+\item 
+uint32\+\_\+t \mbox{\hyperlink{structolc_1_1_decal_instance_aa03e3326919eb0c889cdad3492c8a8f6}{points}} = 0
+\end{DoxyCompactItemize}
+
+
+\doxysubsection{Detailed Description}
+
+
+Definition at line 783 of file olc\+Pixel\+Game\+Engine.\+h.
+
+
+
+\doxysubsection{Member Data Documentation}
+\mbox{\Hypertarget{structolc_1_1_decal_instance_ad01bc9806792469d91ee0b5736058e7e}\label{structolc_1_1_decal_instance_ad01bc9806792469d91ee0b5736058e7e}} 
+\index{olc::DecalInstance@{olc::DecalInstance}!decal@{decal}}
+\index{decal@{decal}!olc::DecalInstance@{olc::DecalInstance}}
+\doxysubsubsection{\texorpdfstring{decal}{decal}}
+{\footnotesize\ttfamily \mbox{\hyperlink{classolc_1_1_decal}{olc\+::\+Decal}}$\ast$ olc\+::\+Decal\+Instance\+::decal = nullptr}
+
+
+
+Definition at line 785 of file olc\+Pixel\+Game\+Engine.\+h.
+
+\mbox{\Hypertarget{structolc_1_1_decal_instance_a3dcc0fc374fe00a5d6451a4ac13e6649}\label{structolc_1_1_decal_instance_a3dcc0fc374fe00a5d6451a4ac13e6649}} 
+\index{olc::DecalInstance@{olc::DecalInstance}!mode@{mode}}
+\index{mode@{mode}!olc::DecalInstance@{olc::DecalInstance}}
+\doxysubsubsection{\texorpdfstring{mode}{mode}}
+{\footnotesize\ttfamily \mbox{\hyperlink{namespaceolc_aeda642f63378f868193c28e8613138ca}{olc\+::\+Decal\+Mode}} olc\+::\+Decal\+Instance\+::mode = \mbox{\hyperlink{namespaceolc_aeda642f63378f868193c28e8613138caa1e23852820b9154316c7c06e2b7ba051}{olc\+::\+Decal\+Mode\+::\+N\+O\+R\+M\+AL}}}
+
+
+
+Definition at line 790 of file olc\+Pixel\+Game\+Engine.\+h.
+
+\mbox{\Hypertarget{structolc_1_1_decal_instance_aa03e3326919eb0c889cdad3492c8a8f6}\label{structolc_1_1_decal_instance_aa03e3326919eb0c889cdad3492c8a8f6}} 
+\index{olc::DecalInstance@{olc::DecalInstance}!points@{points}}
+\index{points@{points}!olc::DecalInstance@{olc::DecalInstance}}
+\doxysubsubsection{\texorpdfstring{points}{points}}
+{\footnotesize\ttfamily uint32\+\_\+t olc\+::\+Decal\+Instance\+::points = 0}
+
+
+
+Definition at line 791 of file olc\+Pixel\+Game\+Engine.\+h.
+
+\mbox{\Hypertarget{structolc_1_1_decal_instance_a8dcf3a11a4f2c722e9b54c01643de08c}\label{structolc_1_1_decal_instance_a8dcf3a11a4f2c722e9b54c01643de08c}} 
+\index{olc::DecalInstance@{olc::DecalInstance}!pos@{pos}}
+\index{pos@{pos}!olc::DecalInstance@{olc::DecalInstance}}
+\doxysubsubsection{\texorpdfstring{pos}{pos}}
+{\footnotesize\ttfamily std\+::vector$<$\mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}}$>$ olc\+::\+Decal\+Instance\+::pos}
+
+
+
+Definition at line 786 of file olc\+Pixel\+Game\+Engine.\+h.
+
+\mbox{\Hypertarget{structolc_1_1_decal_instance_a04f01880bf6d4045b6e1f70aff3e5c8f}\label{structolc_1_1_decal_instance_a04f01880bf6d4045b6e1f70aff3e5c8f}} 
+\index{olc::DecalInstance@{olc::DecalInstance}!tint@{tint}}
+\index{tint@{tint}!olc::DecalInstance@{olc::DecalInstance}}
+\doxysubsubsection{\texorpdfstring{tint}{tint}}
+{\footnotesize\ttfamily std\+::vector$<$\mbox{\hyperlink{structolc_1_1_pixel}{olc\+::\+Pixel}}$>$ olc\+::\+Decal\+Instance\+::tint}
+
+
+
+Definition at line 789 of file olc\+Pixel\+Game\+Engine.\+h.
+
+\mbox{\Hypertarget{structolc_1_1_decal_instance_a60337d982b4f35b3bb5b1d814fa0d09f}\label{structolc_1_1_decal_instance_a60337d982b4f35b3bb5b1d814fa0d09f}} 
+\index{olc::DecalInstance@{olc::DecalInstance}!uv@{uv}}
+\index{uv@{uv}!olc::DecalInstance@{olc::DecalInstance}}
+\doxysubsubsection{\texorpdfstring{uv}{uv}}
+{\footnotesize\ttfamily std\+::vector$<$\mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}}$>$ olc\+::\+Decal\+Instance\+::uv}
+
+
+
+Definition at line 787 of file olc\+Pixel\+Game\+Engine.\+h.
+
+\mbox{\Hypertarget{structolc_1_1_decal_instance_a3475b1bb41f868f218c759972dec2f73}\label{structolc_1_1_decal_instance_a3475b1bb41f868f218c759972dec2f73}} 
+\index{olc::DecalInstance@{olc::DecalInstance}!w@{w}}
+\index{w@{w}!olc::DecalInstance@{olc::DecalInstance}}
+\doxysubsubsection{\texorpdfstring{w}{w}}
+{\footnotesize\ttfamily std\+::vector$<$float$>$ olc\+::\+Decal\+Instance\+::w}
+
+
+
+Definition at line 788 of file olc\+Pixel\+Game\+Engine.\+h.
+
+
+
+The documentation for this struct was generated from the following file\+:\begin{DoxyCompactItemize}
+\item 
+C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\mbox{\hyperlink{olc_pixel_game_engine_8h}{olc\+Pixel\+Game\+Engine.\+h}}\end{DoxyCompactItemize}
diff --git a/doxy/latex/structolc_1_1_h_w_button.tex b/doxy/latex/structolc_1_1_h_w_button.tex
new file mode 100644
index 0000000000000000000000000000000000000000..e08202aca95eb25ea048b2f1a3ebbeeb50a9e7b2
--- /dev/null
+++ b/doxy/latex/structolc_1_1_h_w_button.tex
@@ -0,0 +1,60 @@
+\hypertarget{structolc_1_1_h_w_button}{}\doxysection{olc\+::H\+W\+Button Struct Reference}
+\label{structolc_1_1_h_w_button}\index{olc::HWButton@{olc::HWButton}}
+
+
+{\ttfamily \#include $<$olc\+Pixel\+Game\+Engine.\+h$>$}
+
+\doxysubsection*{Public Attributes}
+\begin{DoxyCompactItemize}
+\item 
+bool \mbox{\hyperlink{structolc_1_1_h_w_button_a0c379d6a109299fc0a1c872ebbb2f4d9}{b\+Pressed}} = false
+\item 
+bool \mbox{\hyperlink{structolc_1_1_h_w_button_a2576b36bdf00033f78fa1cdcabfa2a00}{b\+Released}} = false
+\item 
+bool \mbox{\hyperlink{structolc_1_1_h_w_button_a6d872a5aeb23aba39103b95093c63cb7}{b\+Held}} = false
+\end{DoxyCompactItemize}
+
+
+\doxysubsection{Detailed Description}
+
+
+Definition at line 567 of file olc\+Pixel\+Game\+Engine.\+h.
+
+
+
+\doxysubsection{Member Data Documentation}
+\mbox{\Hypertarget{structolc_1_1_h_w_button_a6d872a5aeb23aba39103b95093c63cb7}\label{structolc_1_1_h_w_button_a6d872a5aeb23aba39103b95093c63cb7}} 
+\index{olc::HWButton@{olc::HWButton}!bHeld@{bHeld}}
+\index{bHeld@{bHeld}!olc::HWButton@{olc::HWButton}}
+\doxysubsubsection{\texorpdfstring{bHeld}{bHeld}}
+{\footnotesize\ttfamily bool olc\+::\+H\+W\+Button\+::b\+Held = false}
+
+
+
+Definition at line 571 of file olc\+Pixel\+Game\+Engine.\+h.
+
+\mbox{\Hypertarget{structolc_1_1_h_w_button_a0c379d6a109299fc0a1c872ebbb2f4d9}\label{structolc_1_1_h_w_button_a0c379d6a109299fc0a1c872ebbb2f4d9}} 
+\index{olc::HWButton@{olc::HWButton}!bPressed@{bPressed}}
+\index{bPressed@{bPressed}!olc::HWButton@{olc::HWButton}}
+\doxysubsubsection{\texorpdfstring{bPressed}{bPressed}}
+{\footnotesize\ttfamily bool olc\+::\+H\+W\+Button\+::b\+Pressed = false}
+
+
+
+Definition at line 569 of file olc\+Pixel\+Game\+Engine.\+h.
+
+\mbox{\Hypertarget{structolc_1_1_h_w_button_a2576b36bdf00033f78fa1cdcabfa2a00}\label{structolc_1_1_h_w_button_a2576b36bdf00033f78fa1cdcabfa2a00}} 
+\index{olc::HWButton@{olc::HWButton}!bReleased@{bReleased}}
+\index{bReleased@{bReleased}!olc::HWButton@{olc::HWButton}}
+\doxysubsubsection{\texorpdfstring{bReleased}{bReleased}}
+{\footnotesize\ttfamily bool olc\+::\+H\+W\+Button\+::b\+Released = false}
+
+
+
+Definition at line 570 of file olc\+Pixel\+Game\+Engine.\+h.
+
+
+
+The documentation for this struct was generated from the following file\+:\begin{DoxyCompactItemize}
+\item 
+C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\mbox{\hyperlink{olc_pixel_game_engine_8h}{olc\+Pixel\+Game\+Engine.\+h}}\end{DoxyCompactItemize}
diff --git a/doxy/latex/structolc_1_1_layer_desc.tex b/doxy/latex/structolc_1_1_layer_desc.tex
new file mode 100644
index 0000000000000000000000000000000000000000..385d1cd5c6f0f822d779b0c7a96cac01326d5fef
--- /dev/null
+++ b/doxy/latex/structolc_1_1_layer_desc.tex
@@ -0,0 +1,132 @@
+\hypertarget{structolc_1_1_layer_desc}{}\doxysection{olc\+::Layer\+Desc Struct Reference}
+\label{structolc_1_1_layer_desc}\index{olc::LayerDesc@{olc::LayerDesc}}
+
+
+{\ttfamily \#include $<$olc\+Pixel\+Game\+Engine.\+h$>$}
+
+\doxysubsection*{Public Attributes}
+\begin{DoxyCompactItemize}
+\item 
+\mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \mbox{\hyperlink{structolc_1_1_layer_desc_a1657be3b96c8fbb85fe113ae695fece9}{v\+Offset}} = \{ 0, 0 \}
+\item 
+\mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} \mbox{\hyperlink{structolc_1_1_layer_desc_ab9701d17eb84ab32e93211277cacc763}{v\+Scale}} = \{ 1, 1 \}
+\item 
+bool \mbox{\hyperlink{structolc_1_1_layer_desc_aeb19896b6a82e301769bfd9d5aa053b6}{b\+Show}} = false
+\item 
+bool \mbox{\hyperlink{structolc_1_1_layer_desc_a5239ecc59495acca81a03e8783d9b873}{b\+Update}} = false
+\item 
+\mbox{\hyperlink{classolc_1_1_sprite}{olc\+::\+Sprite}} $\ast$ \mbox{\hyperlink{structolc_1_1_layer_desc_a24f921523245fce959bb1cd0f55faeff}{p\+Draw\+Target}} = nullptr
+\item 
+uint32\+\_\+t \mbox{\hyperlink{structolc_1_1_layer_desc_a9433153aabd3d3530043f71a2ad63b1a}{n\+Res\+ID}} = 0
+\item 
+std\+::vector$<$ \mbox{\hyperlink{structolc_1_1_decal_instance}{Decal\+Instance}} $>$ \mbox{\hyperlink{structolc_1_1_layer_desc_ac6cd952e0ebbd7cde19060b4e3896875}{vec\+Decal\+Instance}}
+\item 
+\mbox{\hyperlink{structolc_1_1_pixel}{olc\+::\+Pixel}} \mbox{\hyperlink{structolc_1_1_layer_desc_af6027ed5757afe2c8c0cd50620d7311f}{tint}} = \mbox{\hyperlink{namespaceolc_ae3de4726bf87f2d74693e62d76816db1}{olc\+::\+W\+H\+I\+TE}}
+\item 
+std\+::function$<$ void()$>$ \mbox{\hyperlink{structolc_1_1_layer_desc_a3ed4e651cce6277ab5b75ab1a9b05765}{func\+Hook}} = nullptr
+\end{DoxyCompactItemize}
+
+
+\doxysubsection{Detailed Description}
+
+
+Definition at line 794 of file olc\+Pixel\+Game\+Engine.\+h.
+
+
+
+\doxysubsection{Member Data Documentation}
+\mbox{\Hypertarget{structolc_1_1_layer_desc_aeb19896b6a82e301769bfd9d5aa053b6}\label{structolc_1_1_layer_desc_aeb19896b6a82e301769bfd9d5aa053b6}} 
+\index{olc::LayerDesc@{olc::LayerDesc}!bShow@{bShow}}
+\index{bShow@{bShow}!olc::LayerDesc@{olc::LayerDesc}}
+\doxysubsubsection{\texorpdfstring{bShow}{bShow}}
+{\footnotesize\ttfamily bool olc\+::\+Layer\+Desc\+::b\+Show = false}
+
+
+
+Definition at line 798 of file olc\+Pixel\+Game\+Engine.\+h.
+
+\mbox{\Hypertarget{structolc_1_1_layer_desc_a5239ecc59495acca81a03e8783d9b873}\label{structolc_1_1_layer_desc_a5239ecc59495acca81a03e8783d9b873}} 
+\index{olc::LayerDesc@{olc::LayerDesc}!bUpdate@{bUpdate}}
+\index{bUpdate@{bUpdate}!olc::LayerDesc@{olc::LayerDesc}}
+\doxysubsubsection{\texorpdfstring{bUpdate}{bUpdate}}
+{\footnotesize\ttfamily bool olc\+::\+Layer\+Desc\+::b\+Update = false}
+
+
+
+Definition at line 799 of file olc\+Pixel\+Game\+Engine.\+h.
+
+\mbox{\Hypertarget{structolc_1_1_layer_desc_a3ed4e651cce6277ab5b75ab1a9b05765}\label{structolc_1_1_layer_desc_a3ed4e651cce6277ab5b75ab1a9b05765}} 
+\index{olc::LayerDesc@{olc::LayerDesc}!funcHook@{funcHook}}
+\index{funcHook@{funcHook}!olc::LayerDesc@{olc::LayerDesc}}
+\doxysubsubsection{\texorpdfstring{funcHook}{funcHook}}
+{\footnotesize\ttfamily std\+::function$<$void()$>$ olc\+::\+Layer\+Desc\+::func\+Hook = nullptr}
+
+
+
+Definition at line 804 of file olc\+Pixel\+Game\+Engine.\+h.
+
+\mbox{\Hypertarget{structolc_1_1_layer_desc_a9433153aabd3d3530043f71a2ad63b1a}\label{structolc_1_1_layer_desc_a9433153aabd3d3530043f71a2ad63b1a}} 
+\index{olc::LayerDesc@{olc::LayerDesc}!nResID@{nResID}}
+\index{nResID@{nResID}!olc::LayerDesc@{olc::LayerDesc}}
+\doxysubsubsection{\texorpdfstring{nResID}{nResID}}
+{\footnotesize\ttfamily uint32\+\_\+t olc\+::\+Layer\+Desc\+::n\+Res\+ID = 0}
+
+
+
+Definition at line 801 of file olc\+Pixel\+Game\+Engine.\+h.
+
+\mbox{\Hypertarget{structolc_1_1_layer_desc_a24f921523245fce959bb1cd0f55faeff}\label{structolc_1_1_layer_desc_a24f921523245fce959bb1cd0f55faeff}} 
+\index{olc::LayerDesc@{olc::LayerDesc}!pDrawTarget@{pDrawTarget}}
+\index{pDrawTarget@{pDrawTarget}!olc::LayerDesc@{olc::LayerDesc}}
+\doxysubsubsection{\texorpdfstring{pDrawTarget}{pDrawTarget}}
+{\footnotesize\ttfamily \mbox{\hyperlink{classolc_1_1_sprite}{olc\+::\+Sprite}}$\ast$ olc\+::\+Layer\+Desc\+::p\+Draw\+Target = nullptr}
+
+
+
+Definition at line 800 of file olc\+Pixel\+Game\+Engine.\+h.
+
+\mbox{\Hypertarget{structolc_1_1_layer_desc_af6027ed5757afe2c8c0cd50620d7311f}\label{structolc_1_1_layer_desc_af6027ed5757afe2c8c0cd50620d7311f}} 
+\index{olc::LayerDesc@{olc::LayerDesc}!tint@{tint}}
+\index{tint@{tint}!olc::LayerDesc@{olc::LayerDesc}}
+\doxysubsubsection{\texorpdfstring{tint}{tint}}
+{\footnotesize\ttfamily \mbox{\hyperlink{structolc_1_1_pixel}{olc\+::\+Pixel}} olc\+::\+Layer\+Desc\+::tint = \mbox{\hyperlink{namespaceolc_ae3de4726bf87f2d74693e62d76816db1}{olc\+::\+W\+H\+I\+TE}}}
+
+
+
+Definition at line 803 of file olc\+Pixel\+Game\+Engine.\+h.
+
+\mbox{\Hypertarget{structolc_1_1_layer_desc_ac6cd952e0ebbd7cde19060b4e3896875}\label{structolc_1_1_layer_desc_ac6cd952e0ebbd7cde19060b4e3896875}} 
+\index{olc::LayerDesc@{olc::LayerDesc}!vecDecalInstance@{vecDecalInstance}}
+\index{vecDecalInstance@{vecDecalInstance}!olc::LayerDesc@{olc::LayerDesc}}
+\doxysubsubsection{\texorpdfstring{vecDecalInstance}{vecDecalInstance}}
+{\footnotesize\ttfamily std\+::vector$<$\mbox{\hyperlink{structolc_1_1_decal_instance}{Decal\+Instance}}$>$ olc\+::\+Layer\+Desc\+::vec\+Decal\+Instance}
+
+
+
+Definition at line 802 of file olc\+Pixel\+Game\+Engine.\+h.
+
+\mbox{\Hypertarget{structolc_1_1_layer_desc_a1657be3b96c8fbb85fe113ae695fece9}\label{structolc_1_1_layer_desc_a1657be3b96c8fbb85fe113ae695fece9}} 
+\index{olc::LayerDesc@{olc::LayerDesc}!vOffset@{vOffset}}
+\index{vOffset@{vOffset}!olc::LayerDesc@{olc::LayerDesc}}
+\doxysubsubsection{\texorpdfstring{vOffset}{vOffset}}
+{\footnotesize\ttfamily \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} olc\+::\+Layer\+Desc\+::v\+Offset = \{ 0, 0 \}}
+
+
+
+Definition at line 796 of file olc\+Pixel\+Game\+Engine.\+h.
+
+\mbox{\Hypertarget{structolc_1_1_layer_desc_ab9701d17eb84ab32e93211277cacc763}\label{structolc_1_1_layer_desc_ab9701d17eb84ab32e93211277cacc763}} 
+\index{olc::LayerDesc@{olc::LayerDesc}!vScale@{vScale}}
+\index{vScale@{vScale}!olc::LayerDesc@{olc::LayerDesc}}
+\doxysubsubsection{\texorpdfstring{vScale}{vScale}}
+{\footnotesize\ttfamily \mbox{\hyperlink{namespaceolc_adb87819740ea9625f84c821fffb16429}{olc\+::vf2d}} olc\+::\+Layer\+Desc\+::v\+Scale = \{ 1, 1 \}}
+
+
+
+Definition at line 797 of file olc\+Pixel\+Game\+Engine.\+h.
+
+
+
+The documentation for this struct was generated from the following file\+:\begin{DoxyCompactItemize}
+\item 
+C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\mbox{\hyperlink{olc_pixel_game_engine_8h}{olc\+Pixel\+Game\+Engine.\+h}}\end{DoxyCompactItemize}
diff --git a/doxy/latex/structolc_1_1_pixel.tex b/doxy/latex/structolc_1_1_pixel.tex
new file mode 100644
index 0000000000000000000000000000000000000000..1f5535451037f61ac2d7096274aa0d98fb3cc2de
--- /dev/null
+++ b/doxy/latex/structolc_1_1_pixel.tex
@@ -0,0 +1,260 @@
+\hypertarget{structolc_1_1_pixel}{}\doxysection{olc\+::Pixel Struct Reference}
+\label{structolc_1_1_pixel}\index{olc::Pixel@{olc::Pixel}}
+
+
+{\ttfamily \#include $<$olc\+Pixel\+Game\+Engine.\+h$>$}
+
+\doxysubsection*{Public Types}
+\begin{DoxyCompactItemize}
+\item 
+enum \mbox{\hyperlink{structolc_1_1_pixel_ae9012164940526ddb09b217dbbddfd65}{Mode}} \{ \mbox{\hyperlink{structolc_1_1_pixel_ae9012164940526ddb09b217dbbddfd65a8abacc164c972b4684c2a76efd381018}{N\+O\+R\+M\+AL}}, 
+\mbox{\hyperlink{structolc_1_1_pixel_ae9012164940526ddb09b217dbbddfd65a4062d4baa9669fb2e91f31a15061a9d6}{M\+A\+SK}}, 
+\mbox{\hyperlink{structolc_1_1_pixel_ae9012164940526ddb09b217dbbddfd65a561bc0234492261a62a3191252692753}{A\+L\+P\+HA}}, 
+\mbox{\hyperlink{structolc_1_1_pixel_ae9012164940526ddb09b217dbbddfd65aed57164e9f056c1af912b3069eb45deb}{C\+U\+S\+T\+OM}}
+ \}
+\end{DoxyCompactItemize}
+\doxysubsection*{Public Member Functions}
+\begin{DoxyCompactItemize}
+\item 
+\mbox{\hyperlink{structolc_1_1_pixel_a75ef9e180289d861dfa6687faa248345}{Pixel}} ()
+\item 
+\mbox{\hyperlink{structolc_1_1_pixel_a542d8daf20eb48a0539d671ffed9168f}{Pixel}} (uint8\+\_\+t red, uint8\+\_\+t green, uint8\+\_\+t blue, uint8\+\_\+t alpha=\mbox{\hyperlink{namespaceolc_adede7d1156ab9d8ffdc3e9048f0f364b}{n\+Default\+Alpha}})
+\item 
+\mbox{\hyperlink{structolc_1_1_pixel_ad6ddaba5806de8b26fea03fa6f7b0edf}{Pixel}} (uint32\+\_\+t p)
+\item 
+\mbox{\hyperlink{structolc_1_1_pixel}{Pixel}} \& \mbox{\hyperlink{structolc_1_1_pixel_a9e52ebcc91b8460859a606b7bf763b82}{operator=}} (const \mbox{\hyperlink{structolc_1_1_pixel}{Pixel}} \&v)=default
+\item 
+bool \mbox{\hyperlink{structolc_1_1_pixel_a6b82561c110de5447ca4d59c3162d06c}{operator==}} (const \mbox{\hyperlink{structolc_1_1_pixel}{Pixel}} \&p) const
+\item 
+bool \mbox{\hyperlink{structolc_1_1_pixel_aeeaecb16a243ce3be52cd9261fdf2b23}{operator!=}} (const \mbox{\hyperlink{structolc_1_1_pixel}{Pixel}} \&p) const
+\item 
+\mbox{\hyperlink{structolc_1_1_pixel}{Pixel}} \mbox{\hyperlink{structolc_1_1_pixel_a15a61beedc23ca678a954567274e24de}{operator$\ast$}} (const float i) const
+\item 
+\mbox{\hyperlink{structolc_1_1_pixel}{Pixel}} \mbox{\hyperlink{structolc_1_1_pixel_a7fdcfa79f91368e834cc2ec66d9de769}{operator/}} (const float i) const
+\item 
+\mbox{\hyperlink{structolc_1_1_pixel}{Pixel}} \& \mbox{\hyperlink{structolc_1_1_pixel_abace0545af22380831ffbc8bd1a66419}{operator$\ast$=}} (const float i)
+\item 
+\mbox{\hyperlink{structolc_1_1_pixel}{Pixel}} \& \mbox{\hyperlink{structolc_1_1_pixel_afd73fb0548d7232923f0ce707171e0da}{operator/=}} (const float i)
+\item 
+\mbox{\hyperlink{structolc_1_1_pixel}{Pixel}} \mbox{\hyperlink{structolc_1_1_pixel_acb54675f2c61b989de500f8e6e56a9f6}{operator+}} (const \mbox{\hyperlink{structolc_1_1_pixel}{Pixel}} \&p) const
+\item 
+\mbox{\hyperlink{structolc_1_1_pixel}{Pixel}} \mbox{\hyperlink{structolc_1_1_pixel_a1ac8b9d37f4c368b62b21b52df1f5937}{operator-\/}} (const \mbox{\hyperlink{structolc_1_1_pixel}{Pixel}} \&p) const
+\item 
+\mbox{\hyperlink{structolc_1_1_pixel}{Pixel}} \& \mbox{\hyperlink{structolc_1_1_pixel_a39dc75f9f15c040c2d2715c66b13f4e0}{operator+=}} (const \mbox{\hyperlink{structolc_1_1_pixel}{Pixel}} \&p)
+\item 
+\mbox{\hyperlink{structolc_1_1_pixel}{Pixel}} \& \mbox{\hyperlink{structolc_1_1_pixel_a058f58406ca54ab73075f5e42125a65a}{operator-\/=}} (const \mbox{\hyperlink{structolc_1_1_pixel}{Pixel}} \&p)
+\item 
+\mbox{\hyperlink{structolc_1_1_pixel}{Pixel}} \mbox{\hyperlink{structolc_1_1_pixel_a8a1daba449fb823a4535a6089fe880ab}{inv}} () const
+\end{DoxyCompactItemize}
+\doxysubsection*{Public Attributes}
+\begin{DoxyCompactItemize}
+\item 
+\begin{tabbing}
+xx\=xx\=xx\=xx\=xx\=xx\=xx\=xx\=xx\=\kill
+union \{\\
+\>uint32\_t \mbox{\hyperlink{structolc_1_1_pixel_aa9cb31c80e2822ccc726526be5801ae2}{n}} = \mbox{\hyperlink{namespaceolc_a10bbdc57cc3fecc7b80ba428eb7494d0}{nDefaultPixel}}\\
+\>struct \{\\
+\>\>uint8\_t \mbox{\hyperlink{structolc_1_1_pixel_a93ee3efde3d2b363e4e4813a490f60b4}{r}}\\
+\>\>uint8\_t \mbox{\hyperlink{structolc_1_1_pixel_a14cf5612284974c409f078944fe5f6ee}{g}}\\
+\>\>uint8\_t \mbox{\hyperlink{structolc_1_1_pixel_a8738f2cd490bd9c5288f37c8d19816be}{b}}\\
+\>\>uint8\_t \mbox{\hyperlink{structolc_1_1_pixel_a652a25d4bcab1f7bf627c3224842f0b1}{a}}\\
+\>\} \\
+\}; \\
+
+\end{tabbing}\end{DoxyCompactItemize}
+
+
+\doxysubsection{Detailed Description}
+
+
+Definition at line 502 of file olc\+Pixel\+Game\+Engine.\+h.
+
+
+
+\doxysubsection{Member Enumeration Documentation}
+\mbox{\Hypertarget{structolc_1_1_pixel_ae9012164940526ddb09b217dbbddfd65}\label{structolc_1_1_pixel_ae9012164940526ddb09b217dbbddfd65}} 
+\index{olc::Pixel@{olc::Pixel}!Mode@{Mode}}
+\index{Mode@{Mode}!olc::Pixel@{olc::Pixel}}
+\doxysubsubsection{\texorpdfstring{Mode}{Mode}}
+{\footnotesize\ttfamily enum \mbox{\hyperlink{structolc_1_1_pixel_ae9012164940526ddb09b217dbbddfd65}{olc\+::\+Pixel\+::\+Mode}}}
+
+\begin{DoxyEnumFields}{Enumerator}
+\raisebox{\heightof{T}}[0pt][0pt]{\index{NORMAL@{NORMAL}!olc::Pixel@{olc::Pixel}}\index{olc::Pixel@{olc::Pixel}!NORMAL@{NORMAL}}}\mbox{\Hypertarget{structolc_1_1_pixel_ae9012164940526ddb09b217dbbddfd65a8abacc164c972b4684c2a76efd381018}\label{structolc_1_1_pixel_ae9012164940526ddb09b217dbbddfd65a8abacc164c972b4684c2a76efd381018}} 
+N\+O\+R\+M\+AL&\\
+\hline
+
+\raisebox{\heightof{T}}[0pt][0pt]{\index{MASK@{MASK}!olc::Pixel@{olc::Pixel}}\index{olc::Pixel@{olc::Pixel}!MASK@{MASK}}}\mbox{\Hypertarget{structolc_1_1_pixel_ae9012164940526ddb09b217dbbddfd65a4062d4baa9669fb2e91f31a15061a9d6}\label{structolc_1_1_pixel_ae9012164940526ddb09b217dbbddfd65a4062d4baa9669fb2e91f31a15061a9d6}} 
+M\+A\+SK&\\
+\hline
+
+\raisebox{\heightof{T}}[0pt][0pt]{\index{ALPHA@{ALPHA}!olc::Pixel@{olc::Pixel}}\index{olc::Pixel@{olc::Pixel}!ALPHA@{ALPHA}}}\mbox{\Hypertarget{structolc_1_1_pixel_ae9012164940526ddb09b217dbbddfd65a561bc0234492261a62a3191252692753}\label{structolc_1_1_pixel_ae9012164940526ddb09b217dbbddfd65a561bc0234492261a62a3191252692753}} 
+A\+L\+P\+HA&\\
+\hline
+
+\raisebox{\heightof{T}}[0pt][0pt]{\index{CUSTOM@{CUSTOM}!olc::Pixel@{olc::Pixel}}\index{olc::Pixel@{olc::Pixel}!CUSTOM@{CUSTOM}}}\mbox{\Hypertarget{structolc_1_1_pixel_ae9012164940526ddb09b217dbbddfd65aed57164e9f056c1af912b3069eb45deb}\label{structolc_1_1_pixel_ae9012164940526ddb09b217dbbddfd65aed57164e9f056c1af912b3069eb45deb}} 
+C\+U\+S\+T\+OM&\\
+\hline
+
+\end{DoxyEnumFields}
+
+
+Definition at line 510 of file olc\+Pixel\+Game\+Engine.\+h.
+
+
+
+\doxysubsection{Constructor \& Destructor Documentation}
+\mbox{\Hypertarget{structolc_1_1_pixel_a75ef9e180289d861dfa6687faa248345}\label{structolc_1_1_pixel_a75ef9e180289d861dfa6687faa248345}} 
+\index{olc::Pixel@{olc::Pixel}!Pixel@{Pixel}}
+\index{Pixel@{Pixel}!olc::Pixel@{olc::Pixel}}
+\doxysubsubsection{\texorpdfstring{Pixel()}{Pixel()}\hspace{0.1cm}{\footnotesize\ttfamily [1/3]}}
+{\footnotesize\ttfamily olc\+::\+Pixel\+::\+Pixel (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}
+
+\mbox{\Hypertarget{structolc_1_1_pixel_a542d8daf20eb48a0539d671ffed9168f}\label{structolc_1_1_pixel_a542d8daf20eb48a0539d671ffed9168f}} 
+\index{olc::Pixel@{olc::Pixel}!Pixel@{Pixel}}
+\index{Pixel@{Pixel}!olc::Pixel@{olc::Pixel}}
+\doxysubsubsection{\texorpdfstring{Pixel()}{Pixel()}\hspace{0.1cm}{\footnotesize\ttfamily [2/3]}}
+{\footnotesize\ttfamily olc\+::\+Pixel\+::\+Pixel (\begin{DoxyParamCaption}\item[{uint8\+\_\+t}]{red,  }\item[{uint8\+\_\+t}]{green,  }\item[{uint8\+\_\+t}]{blue,  }\item[{uint8\+\_\+t}]{alpha = {\ttfamily \mbox{\hyperlink{namespaceolc_adede7d1156ab9d8ffdc3e9048f0f364b}{n\+Default\+Alpha}}} }\end{DoxyParamCaption})}
+
+\mbox{\Hypertarget{structolc_1_1_pixel_ad6ddaba5806de8b26fea03fa6f7b0edf}\label{structolc_1_1_pixel_ad6ddaba5806de8b26fea03fa6f7b0edf}} 
+\index{olc::Pixel@{olc::Pixel}!Pixel@{Pixel}}
+\index{Pixel@{Pixel}!olc::Pixel@{olc::Pixel}}
+\doxysubsubsection{\texorpdfstring{Pixel()}{Pixel()}\hspace{0.1cm}{\footnotesize\ttfamily [3/3]}}
+{\footnotesize\ttfamily olc\+::\+Pixel\+::\+Pixel (\begin{DoxyParamCaption}\item[{uint32\+\_\+t}]{p }\end{DoxyParamCaption})}
+
+
+
+\doxysubsection{Member Function Documentation}
+\mbox{\Hypertarget{structolc_1_1_pixel_a8a1daba449fb823a4535a6089fe880ab}\label{structolc_1_1_pixel_a8a1daba449fb823a4535a6089fe880ab}} 
+\index{olc::Pixel@{olc::Pixel}!inv@{inv}}
+\index{inv@{inv}!olc::Pixel@{olc::Pixel}}
+\doxysubsubsection{\texorpdfstring{inv()}{inv()}}
+{\footnotesize\ttfamily \mbox{\hyperlink{structolc_1_1_pixel}{Pixel}} olc\+::\+Pixel\+::inv (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const}
+
+\mbox{\Hypertarget{structolc_1_1_pixel_aeeaecb16a243ce3be52cd9261fdf2b23}\label{structolc_1_1_pixel_aeeaecb16a243ce3be52cd9261fdf2b23}} 
+\index{olc::Pixel@{olc::Pixel}!operator"!=@{operator"!=}}
+\index{operator"!=@{operator"!=}!olc::Pixel@{olc::Pixel}}
+\doxysubsubsection{\texorpdfstring{operator"!=()}{operator!=()}}
+{\footnotesize\ttfamily bool olc\+::\+Pixel\+::operator!= (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{structolc_1_1_pixel}{Pixel}} \&}]{p }\end{DoxyParamCaption}) const}
+
+\mbox{\Hypertarget{structolc_1_1_pixel_a15a61beedc23ca678a954567274e24de}\label{structolc_1_1_pixel_a15a61beedc23ca678a954567274e24de}} 
+\index{olc::Pixel@{olc::Pixel}!operator$\ast$@{operator$\ast$}}
+\index{operator$\ast$@{operator$\ast$}!olc::Pixel@{olc::Pixel}}
+\doxysubsubsection{\texorpdfstring{operator$\ast$()}{operator*()}}
+{\footnotesize\ttfamily \mbox{\hyperlink{structolc_1_1_pixel}{Pixel}} olc\+::\+Pixel\+::operator$\ast$ (\begin{DoxyParamCaption}\item[{const float}]{i }\end{DoxyParamCaption}) const}
+
+\mbox{\Hypertarget{structolc_1_1_pixel_abace0545af22380831ffbc8bd1a66419}\label{structolc_1_1_pixel_abace0545af22380831ffbc8bd1a66419}} 
+\index{olc::Pixel@{olc::Pixel}!operator$\ast$=@{operator$\ast$=}}
+\index{operator$\ast$=@{operator$\ast$=}!olc::Pixel@{olc::Pixel}}
+\doxysubsubsection{\texorpdfstring{operator$\ast$=()}{operator*=()}}
+{\footnotesize\ttfamily \mbox{\hyperlink{structolc_1_1_pixel}{Pixel}}\& olc\+::\+Pixel\+::operator$\ast$= (\begin{DoxyParamCaption}\item[{const float}]{i }\end{DoxyParamCaption})}
+
+\mbox{\Hypertarget{structolc_1_1_pixel_acb54675f2c61b989de500f8e6e56a9f6}\label{structolc_1_1_pixel_acb54675f2c61b989de500f8e6e56a9f6}} 
+\index{olc::Pixel@{olc::Pixel}!operator+@{operator+}}
+\index{operator+@{operator+}!olc::Pixel@{olc::Pixel}}
+\doxysubsubsection{\texorpdfstring{operator+()}{operator+()}}
+{\footnotesize\ttfamily \mbox{\hyperlink{structolc_1_1_pixel}{Pixel}} olc\+::\+Pixel\+::operator+ (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{structolc_1_1_pixel}{Pixel}} \&}]{p }\end{DoxyParamCaption}) const}
+
+\mbox{\Hypertarget{structolc_1_1_pixel_a39dc75f9f15c040c2d2715c66b13f4e0}\label{structolc_1_1_pixel_a39dc75f9f15c040c2d2715c66b13f4e0}} 
+\index{olc::Pixel@{olc::Pixel}!operator+=@{operator+=}}
+\index{operator+=@{operator+=}!olc::Pixel@{olc::Pixel}}
+\doxysubsubsection{\texorpdfstring{operator+=()}{operator+=()}}
+{\footnotesize\ttfamily \mbox{\hyperlink{structolc_1_1_pixel}{Pixel}}\& olc\+::\+Pixel\+::operator+= (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{structolc_1_1_pixel}{Pixel}} \&}]{p }\end{DoxyParamCaption})}
+
+\mbox{\Hypertarget{structolc_1_1_pixel_a1ac8b9d37f4c368b62b21b52df1f5937}\label{structolc_1_1_pixel_a1ac8b9d37f4c368b62b21b52df1f5937}} 
+\index{olc::Pixel@{olc::Pixel}!operator-\/@{operator-\/}}
+\index{operator-\/@{operator-\/}!olc::Pixel@{olc::Pixel}}
+\doxysubsubsection{\texorpdfstring{operator-\/()}{operator-()}}
+{\footnotesize\ttfamily \mbox{\hyperlink{structolc_1_1_pixel}{Pixel}} olc\+::\+Pixel\+::operator-\/ (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{structolc_1_1_pixel}{Pixel}} \&}]{p }\end{DoxyParamCaption}) const}
+
+\mbox{\Hypertarget{structolc_1_1_pixel_a058f58406ca54ab73075f5e42125a65a}\label{structolc_1_1_pixel_a058f58406ca54ab73075f5e42125a65a}} 
+\index{olc::Pixel@{olc::Pixel}!operator-\/=@{operator-\/=}}
+\index{operator-\/=@{operator-\/=}!olc::Pixel@{olc::Pixel}}
+\doxysubsubsection{\texorpdfstring{operator-\/=()}{operator-=()}}
+{\footnotesize\ttfamily \mbox{\hyperlink{structolc_1_1_pixel}{Pixel}}\& olc\+::\+Pixel\+::operator-\/= (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{structolc_1_1_pixel}{Pixel}} \&}]{p }\end{DoxyParamCaption})}
+
+\mbox{\Hypertarget{structolc_1_1_pixel_a7fdcfa79f91368e834cc2ec66d9de769}\label{structolc_1_1_pixel_a7fdcfa79f91368e834cc2ec66d9de769}} 
+\index{olc::Pixel@{olc::Pixel}!operator/@{operator/}}
+\index{operator/@{operator/}!olc::Pixel@{olc::Pixel}}
+\doxysubsubsection{\texorpdfstring{operator/()}{operator/()}}
+{\footnotesize\ttfamily \mbox{\hyperlink{structolc_1_1_pixel}{Pixel}} olc\+::\+Pixel\+::operator/ (\begin{DoxyParamCaption}\item[{const float}]{i }\end{DoxyParamCaption}) const}
+
+\mbox{\Hypertarget{structolc_1_1_pixel_afd73fb0548d7232923f0ce707171e0da}\label{structolc_1_1_pixel_afd73fb0548d7232923f0ce707171e0da}} 
+\index{olc::Pixel@{olc::Pixel}!operator/=@{operator/=}}
+\index{operator/=@{operator/=}!olc::Pixel@{olc::Pixel}}
+\doxysubsubsection{\texorpdfstring{operator/=()}{operator/=()}}
+{\footnotesize\ttfamily \mbox{\hyperlink{structolc_1_1_pixel}{Pixel}}\& olc\+::\+Pixel\+::operator/= (\begin{DoxyParamCaption}\item[{const float}]{i }\end{DoxyParamCaption})}
+
+\mbox{\Hypertarget{structolc_1_1_pixel_a9e52ebcc91b8460859a606b7bf763b82}\label{structolc_1_1_pixel_a9e52ebcc91b8460859a606b7bf763b82}} 
+\index{olc::Pixel@{olc::Pixel}!operator=@{operator=}}
+\index{operator=@{operator=}!olc::Pixel@{olc::Pixel}}
+\doxysubsubsection{\texorpdfstring{operator=()}{operator=()}}
+{\footnotesize\ttfamily \mbox{\hyperlink{structolc_1_1_pixel}{Pixel}}\& olc\+::\+Pixel\+::operator= (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{structolc_1_1_pixel}{Pixel}} \&}]{v }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [default]}}
+
+\mbox{\Hypertarget{structolc_1_1_pixel_a6b82561c110de5447ca4d59c3162d06c}\label{structolc_1_1_pixel_a6b82561c110de5447ca4d59c3162d06c}} 
+\index{olc::Pixel@{olc::Pixel}!operator==@{operator==}}
+\index{operator==@{operator==}!olc::Pixel@{olc::Pixel}}
+\doxysubsubsection{\texorpdfstring{operator==()}{operator==()}}
+{\footnotesize\ttfamily bool olc\+::\+Pixel\+::operator== (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{structolc_1_1_pixel}{Pixel}} \&}]{p }\end{DoxyParamCaption}) const}
+
+
+
+\doxysubsection{Member Data Documentation}
+\mbox{\Hypertarget{structolc_1_1_pixel_a408e0e762857ed2e3a21f103c132f274}\label{structolc_1_1_pixel_a408e0e762857ed2e3a21f103c132f274}} 
+\doxysubsubsection{\texorpdfstring{"@1}{@1}}
+{\footnotesize\ttfamily union \{ ... \} }
+
+\mbox{\Hypertarget{structolc_1_1_pixel_a652a25d4bcab1f7bf627c3224842f0b1}\label{structolc_1_1_pixel_a652a25d4bcab1f7bf627c3224842f0b1}} 
+\index{olc::Pixel@{olc::Pixel}!a@{a}}
+\index{a@{a}!olc::Pixel@{olc::Pixel}}
+\doxysubsubsection{\texorpdfstring{a}{a}}
+{\footnotesize\ttfamily uint8\+\_\+t olc\+::\+Pixel\+::a}
+
+
+
+Definition at line 507 of file olc\+Pixel\+Game\+Engine.\+h.
+
+\mbox{\Hypertarget{structolc_1_1_pixel_a8738f2cd490bd9c5288f37c8d19816be}\label{structolc_1_1_pixel_a8738f2cd490bd9c5288f37c8d19816be}} 
+\index{olc::Pixel@{olc::Pixel}!b@{b}}
+\index{b@{b}!olc::Pixel@{olc::Pixel}}
+\doxysubsubsection{\texorpdfstring{b}{b}}
+{\footnotesize\ttfamily uint8\+\_\+t olc\+::\+Pixel\+::b}
+
+
+
+Definition at line 507 of file olc\+Pixel\+Game\+Engine.\+h.
+
+\mbox{\Hypertarget{structolc_1_1_pixel_a14cf5612284974c409f078944fe5f6ee}\label{structolc_1_1_pixel_a14cf5612284974c409f078944fe5f6ee}} 
+\index{olc::Pixel@{olc::Pixel}!g@{g}}
+\index{g@{g}!olc::Pixel@{olc::Pixel}}
+\doxysubsubsection{\texorpdfstring{g}{g}}
+{\footnotesize\ttfamily uint8\+\_\+t olc\+::\+Pixel\+::g}
+
+
+
+Definition at line 507 of file olc\+Pixel\+Game\+Engine.\+h.
+
+\mbox{\Hypertarget{structolc_1_1_pixel_aa9cb31c80e2822ccc726526be5801ae2}\label{structolc_1_1_pixel_aa9cb31c80e2822ccc726526be5801ae2}} 
+\index{olc::Pixel@{olc::Pixel}!n@{n}}
+\index{n@{n}!olc::Pixel@{olc::Pixel}}
+\doxysubsubsection{\texorpdfstring{n}{n}}
+{\footnotesize\ttfamily uint32\+\_\+t olc\+::\+Pixel\+::n = \mbox{\hyperlink{namespaceolc_a10bbdc57cc3fecc7b80ba428eb7494d0}{n\+Default\+Pixel}}}
+
+
+
+Definition at line 506 of file olc\+Pixel\+Game\+Engine.\+h.
+
+\mbox{\Hypertarget{structolc_1_1_pixel_a93ee3efde3d2b363e4e4813a490f60b4}\label{structolc_1_1_pixel_a93ee3efde3d2b363e4e4813a490f60b4}} 
+\index{olc::Pixel@{olc::Pixel}!r@{r}}
+\index{r@{r}!olc::Pixel@{olc::Pixel}}
+\doxysubsubsection{\texorpdfstring{r}{r}}
+{\footnotesize\ttfamily uint8\+\_\+t olc\+::\+Pixel\+::r}
+
+
+
+Definition at line 507 of file olc\+Pixel\+Game\+Engine.\+h.
+
+
+
+The documentation for this struct was generated from the following file\+:\begin{DoxyCompactItemize}
+\item 
+C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\mbox{\hyperlink{olc_pixel_game_engine_8h}{olc\+Pixel\+Game\+Engine.\+h}}\end{DoxyCompactItemize}
diff --git a/doxy/latex/structolc_1_1_resource_buffer.eps b/doxy/latex/structolc_1_1_resource_buffer.eps
new file mode 100644
index 0000000000000000000000000000000000000000..04dde6a62b29dccfcf955f123111913aed4fd36d
--- /dev/null
+++ b/doxy/latex/structolc_1_1_resource_buffer.eps
@@ -0,0 +1,197 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: ClassName
+%%Creator: Doxygen
+%%CreationDate: Time
+%%For: 
+%Magnification: 1.00
+%%Orientation: Portrait
+%%BoundingBox: 0 0 500 303.030304
+%%Pages: 0
+%%BeginSetup
+%%EndSetup
+%%EndComments
+
+% ----- variables -----
+
+/boxwidth 0 def
+/boxheight 40 def
+/fontheight 24 def
+/marginwidth 10 def
+/distx 20 def
+/disty 40 def
+/boundaspect 1.650000 def  % aspect ratio of the BoundingBox (width/height)
+/boundx 500 def
+/boundy boundx boundaspect div def
+/xspacing 0 def
+/yspacing 0 def
+/rows 2 def
+/cols 1 def
+/scalefactor 0 def
+/boxfont /Times-Roman findfont fontheight scalefont def
+
+% ----- procedures -----
+
+/dotted { [1 4] 0 setdash } def
+/dashed { [5] 0 setdash } def
+/solid  { [] 0 setdash } def
+
+/max % result = MAX(arg1,arg2)
+{
+  /a exch def
+  /b exch def
+  a b gt {a} {b} ifelse
+} def
+
+/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)
+{
+  0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max
+} def
+
+/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))
+{
+  /str exch def
+  /boxwidth boxwidth str stringwidth pop max def
+} def
+
+/box % draws a box with text 'arg1' at grid pos (arg2,arg3)
+{ gsave
+  2 setlinewidth
+  newpath
+  exch xspacing mul xoffset add
+  exch yspacing mul
+  moveto
+  boxwidth 0 rlineto 
+  0 boxheight rlineto 
+  boxwidth neg 0 rlineto 
+  0 boxheight neg rlineto 
+  closepath
+  dup stringwidth pop neg boxwidth add 2 div
+  boxheight fontheight 2 div sub 2 div
+  rmoveto show stroke
+  grestore
+} def  
+
+/mark
+{ newpath
+  exch xspacing mul xoffset add boxwidth add
+  exch yspacing mul
+  moveto
+  0 boxheight 4 div rlineto
+  boxheight neg 4 div boxheight neg 4 div rlineto
+  closepath
+  eofill
+  stroke
+} def
+
+/arrow
+{ newpath
+  moveto
+  3 -8 rlineto
+  -6 0 rlineto
+  3 8 rlineto
+  closepath
+  eofill
+  stroke
+} def
+
+/out % draws an output connector for the block at (arg1,arg2)
+{
+  newpath
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul boxheight add
+  /y exch def
+  /x exch def
+  x y moveto
+  0 disty 2 div rlineto 
+  stroke
+  1 eq { x y disty 2 div add arrow } if
+} def
+
+/in % draws an input connector for the block at (arg1,arg2)
+{
+  newpath
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul disty 2 div sub
+  /y exch def
+  /x exch def
+  x y moveto
+  0 disty 2 div rlineto
+  stroke
+  1 eq { x y disty 2 div add arrow } if
+} def
+
+/hedge
+{
+  exch xspacing mul xoffset add boxwidth 2 div add
+  exch yspacing mul boxheight 2 div sub
+  /y exch def
+  /x exch def
+  newpath
+  x y moveto
+  boxwidth 2 div distx add 0 rlineto
+  stroke
+  1 eq
+  { newpath x boxwidth 2 div distx add add y moveto
+    -8 3 rlineto
+    0 -6 rlineto
+    8 3 rlineto
+    closepath
+    eofill
+    stroke
+  } if
+} def
+
+/vedge
+{
+  /ye exch def
+  /ys exch def
+  /xs exch def
+  newpath
+  xs xspacing mul xoffset add boxwidth 2 div add dup
+  ys yspacing mul boxheight 2 div sub
+  moveto
+  ye yspacing mul boxheight 2 div sub
+  lineto
+  stroke
+} def
+
+/conn % connections the blocks from col 'arg1' to 'arg2' of row 'arg3'
+{
+  /ys exch def
+  /xe exch def
+  /xs exch def
+  newpath
+  xs xspacing mul xoffset add boxwidth 2 div add
+  ys yspacing mul disty 2 div sub
+  moveto
+  xspacing xe xs sub mul 0
+  rlineto
+  stroke
+} def
+
+% ----- main ------
+
+boxfont setfont
+1 boundaspect scale
+(olc::ResourceBuffer) cw
+(streambuf) cw
+/boxwidth boxwidth marginwidth 2 mul add def
+/xspacing boxwidth distx add def
+/yspacing boxheight disty add def
+/scalefactor 
+  boxwidth cols mul distx cols 1 sub mul add
+  boxheight rows mul disty rows 1 sub mul add boundaspect mul 
+  max def
+boundx scalefactor div boundy scalefactor div scale
+
+% ----- classes -----
+
+ (olc::ResourceBuffer) 0.000000 0.000000 box
+ (streambuf) 0.000000 1.000000 box
+
+% ----- relations -----
+
+solid
+0 0.000000 0.000000 out
+solid
+1 0.000000 1.000000 in
diff --git a/doxy/latex/structolc_1_1_resource_buffer.tex b/doxy/latex/structolc_1_1_resource_buffer.tex
new file mode 100644
index 0000000000000000000000000000000000000000..f472a84455bf37bee113ee81830d43448068ea23
--- /dev/null
+++ b/doxy/latex/structolc_1_1_resource_buffer.tex
@@ -0,0 +1,56 @@
+\hypertarget{structolc_1_1_resource_buffer}{}\doxysection{olc\+::Resource\+Buffer Struct Reference}
+\label{structolc_1_1_resource_buffer}\index{olc::ResourceBuffer@{olc::ResourceBuffer}}
+
+
+{\ttfamily \#include $<$olc\+Pixel\+Game\+Engine.\+h$>$}
+
+Inheritance diagram for olc\+::Resource\+Buffer\+:\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[height=2.000000cm]{structolc_1_1_resource_buffer}
+\end{center}
+\end{figure}
+\doxysubsection*{Public Member Functions}
+\begin{DoxyCompactItemize}
+\item 
+\mbox{\hyperlink{structolc_1_1_resource_buffer_abd18994c20cc7992ff7ccb07af9914e7}{Resource\+Buffer}} (std\+::ifstream \&ifs, uint32\+\_\+t offset, uint32\+\_\+t size)
+\end{DoxyCompactItemize}
+\doxysubsection*{Public Attributes}
+\begin{DoxyCompactItemize}
+\item 
+std\+::vector$<$ char $>$ \mbox{\hyperlink{structolc_1_1_resource_buffer_a413e818311737396d14838a00df05303}{v\+Memory}}
+\end{DoxyCompactItemize}
+
+
+\doxysubsection{Detailed Description}
+
+
+Definition at line 658 of file olc\+Pixel\+Game\+Engine.\+h.
+
+
+
+\doxysubsection{Constructor \& Destructor Documentation}
+\mbox{\Hypertarget{structolc_1_1_resource_buffer_abd18994c20cc7992ff7ccb07af9914e7}\label{structolc_1_1_resource_buffer_abd18994c20cc7992ff7ccb07af9914e7}} 
+\index{olc::ResourceBuffer@{olc::ResourceBuffer}!ResourceBuffer@{ResourceBuffer}}
+\index{ResourceBuffer@{ResourceBuffer}!olc::ResourceBuffer@{olc::ResourceBuffer}}
+\doxysubsubsection{\texorpdfstring{ResourceBuffer()}{ResourceBuffer()}}
+{\footnotesize\ttfamily olc\+::\+Resource\+Buffer\+::\+Resource\+Buffer (\begin{DoxyParamCaption}\item[{std\+::ifstream \&}]{ifs,  }\item[{uint32\+\_\+t}]{offset,  }\item[{uint32\+\_\+t}]{size }\end{DoxyParamCaption})}
+
+
+
+\doxysubsection{Member Data Documentation}
+\mbox{\Hypertarget{structolc_1_1_resource_buffer_a413e818311737396d14838a00df05303}\label{structolc_1_1_resource_buffer_a413e818311737396d14838a00df05303}} 
+\index{olc::ResourceBuffer@{olc::ResourceBuffer}!vMemory@{vMemory}}
+\index{vMemory@{vMemory}!olc::ResourceBuffer@{olc::ResourceBuffer}}
+\doxysubsubsection{\texorpdfstring{vMemory}{vMemory}}
+{\footnotesize\ttfamily std\+::vector$<$char$>$ olc\+::\+Resource\+Buffer\+::v\+Memory}
+
+
+
+Definition at line 661 of file olc\+Pixel\+Game\+Engine.\+h.
+
+
+
+The documentation for this struct was generated from the following file\+:\begin{DoxyCompactItemize}
+\item 
+C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\mbox{\hyperlink{olc_pixel_game_engine_8h}{olc\+Pixel\+Game\+Engine.\+h}}\end{DoxyCompactItemize}
diff --git a/doxy/latex/structolc_1_1v2d__generic.tex b/doxy/latex/structolc_1_1v2d__generic.tex
new file mode 100644
index 0000000000000000000000000000000000000000..e635c87c6eec46f4e09b37d3ddf748eff2e83813
--- /dev/null
+++ b/doxy/latex/structolc_1_1v2d__generic.tex
@@ -0,0 +1,519 @@
+\hypertarget{structolc_1_1v2d__generic}{}\doxysection{olc\+::v2d\+\_\+generic$<$ T $>$ Struct Template Reference}
+\label{structolc_1_1v2d__generic}\index{olc::v2d\_generic$<$ T $>$@{olc::v2d\_generic$<$ T $>$}}
+
+
+{\ttfamily \#include $<$olc\+Pixel\+Game\+Engine.\+h$>$}
+
+\doxysubsection*{Public Member Functions}
+\begin{DoxyCompactItemize}
+\item 
+\mbox{\hyperlink{structolc_1_1v2d__generic_aba35d326b62454a5fbdeea4220438784}{v2d\+\_\+generic}} ()
+\item 
+\mbox{\hyperlink{structolc_1_1v2d__generic_a2fc62e52adae5f9e4138adf073afddb0}{v2d\+\_\+generic}} (\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0}{T}} \+\_\+x, \mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0}{T}} \+\_\+y)
+\item 
+\mbox{\hyperlink{structolc_1_1v2d__generic_a7897de7e3e5f2a0e6ba1d2aef2015fce}{v2d\+\_\+generic}} (const \mbox{\hyperlink{structolc_1_1v2d__generic}{v2d\+\_\+generic}} \&v)
+\item 
+\mbox{\hyperlink{structolc_1_1v2d__generic}{v2d\+\_\+generic}} \& \mbox{\hyperlink{structolc_1_1v2d__generic_adff36d90ca79f24401a31cbde706bf8c}{operator=}} (const \mbox{\hyperlink{structolc_1_1v2d__generic}{v2d\+\_\+generic}} \&v)=default
+\item 
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0}{T}} \mbox{\hyperlink{structolc_1_1v2d__generic_ab06016810fe727fa826e43e44e02008b}{mag}} () const
+\item 
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0}{T}} \mbox{\hyperlink{structolc_1_1v2d__generic_a6b83d7375119637fdf65233cf6dae947}{mag2}} () const
+\item 
+\mbox{\hyperlink{structolc_1_1v2d__generic}{v2d\+\_\+generic}} \mbox{\hyperlink{structolc_1_1v2d__generic_a9c62f12d51859a5a487c5a0c2d00b09a}{norm}} () const
+\item 
+\mbox{\hyperlink{structolc_1_1v2d__generic}{v2d\+\_\+generic}} \mbox{\hyperlink{structolc_1_1v2d__generic_a8275a944d309dc4b58f60cbc2925a7cc}{perp}} () const
+\item 
+\mbox{\hyperlink{structolc_1_1v2d__generic}{v2d\+\_\+generic}} \mbox{\hyperlink{structolc_1_1v2d__generic_affe50148d448ff75c298da3a1fd45323}{floor}} () const
+\item 
+\mbox{\hyperlink{structolc_1_1v2d__generic}{v2d\+\_\+generic}} \mbox{\hyperlink{structolc_1_1v2d__generic_a65efb6611304b590a2cb45781b1c34cc}{ceil}} () const
+\item 
+\mbox{\hyperlink{structolc_1_1v2d__generic}{v2d\+\_\+generic}} \mbox{\hyperlink{structolc_1_1v2d__generic_a1fe55d8bc22dbb400583cb68cc9e3e36}{max}} (const \mbox{\hyperlink{structolc_1_1v2d__generic}{v2d\+\_\+generic}} \&v) const
+\item 
+\mbox{\hyperlink{structolc_1_1v2d__generic}{v2d\+\_\+generic}} \mbox{\hyperlink{structolc_1_1v2d__generic_aec7b204ad597ee0edc9a444ff3a242eb}{min}} (const \mbox{\hyperlink{structolc_1_1v2d__generic}{v2d\+\_\+generic}} \&v) const
+\item 
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0}{T}} \mbox{\hyperlink{structolc_1_1v2d__generic_ad2e96c716c487677bbde6966464fc482}{dot}} (const \mbox{\hyperlink{structolc_1_1v2d__generic}{v2d\+\_\+generic}} \&rhs) const
+\item 
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0}{T}} \mbox{\hyperlink{structolc_1_1v2d__generic_a1febe5d22672d7d0121526577bf3b535}{cross}} (const \mbox{\hyperlink{structolc_1_1v2d__generic}{v2d\+\_\+generic}} \&rhs) const
+\item 
+\mbox{\hyperlink{structolc_1_1v2d__generic}{v2d\+\_\+generic}} \mbox{\hyperlink{structolc_1_1v2d__generic_a5ae3f55fd12af9bf44a2837ad76ea7dd}{operator+}} (const \mbox{\hyperlink{structolc_1_1v2d__generic}{v2d\+\_\+generic}} \&rhs) const
+\item 
+\mbox{\hyperlink{structolc_1_1v2d__generic}{v2d\+\_\+generic}} \mbox{\hyperlink{structolc_1_1v2d__generic_a64e053d62d2826193f6a058ee120c6e2}{operator-\/}} (const \mbox{\hyperlink{structolc_1_1v2d__generic}{v2d\+\_\+generic}} \&rhs) const
+\item 
+\mbox{\hyperlink{structolc_1_1v2d__generic}{v2d\+\_\+generic}} \mbox{\hyperlink{structolc_1_1v2d__generic_a542487700e63b2e30940d64b75c3d3db}{operator$\ast$}} (const \mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0}{T}} \&rhs) const
+\item 
+\mbox{\hyperlink{structolc_1_1v2d__generic}{v2d\+\_\+generic}} \mbox{\hyperlink{structolc_1_1v2d__generic_a78e7362a3b955735c0389c6a5c7b32f0}{operator$\ast$}} (const \mbox{\hyperlink{structolc_1_1v2d__generic}{v2d\+\_\+generic}} \&rhs) const
+\item 
+\mbox{\hyperlink{structolc_1_1v2d__generic}{v2d\+\_\+generic}} \mbox{\hyperlink{structolc_1_1v2d__generic_a1f1138ee06adae0eaffe900b0437b896}{operator/}} (const \mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0}{T}} \&rhs) const
+\item 
+\mbox{\hyperlink{structolc_1_1v2d__generic}{v2d\+\_\+generic}} \mbox{\hyperlink{structolc_1_1v2d__generic_adcf0004e01ba1d8c813cdcb6525eb1c6}{operator/}} (const \mbox{\hyperlink{structolc_1_1v2d__generic}{v2d\+\_\+generic}} \&rhs) const
+\item 
+\mbox{\hyperlink{structolc_1_1v2d__generic}{v2d\+\_\+generic}} \& \mbox{\hyperlink{structolc_1_1v2d__generic_ac57326846384068beaaddec0674b65d2}{operator+=}} (const \mbox{\hyperlink{structolc_1_1v2d__generic}{v2d\+\_\+generic}} \&rhs)
+\item 
+\mbox{\hyperlink{structolc_1_1v2d__generic}{v2d\+\_\+generic}} \& \mbox{\hyperlink{structolc_1_1v2d__generic_af3e8b94c4921f8d81b4112b319bd7f6d}{operator-\/=}} (const \mbox{\hyperlink{structolc_1_1v2d__generic}{v2d\+\_\+generic}} \&rhs)
+\item 
+\mbox{\hyperlink{structolc_1_1v2d__generic}{v2d\+\_\+generic}} \& \mbox{\hyperlink{structolc_1_1v2d__generic_a35c81946f320da79fa5a33e595873252}{operator$\ast$=}} (const \mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0}{T}} \&rhs)
+\item 
+\mbox{\hyperlink{structolc_1_1v2d__generic}{v2d\+\_\+generic}} \& \mbox{\hyperlink{structolc_1_1v2d__generic_a88a5aa098b5ada7667a7900a0bc9bba2}{operator/=}} (const \mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0}{T}} \&rhs)
+\item 
+\mbox{\hyperlink{structolc_1_1v2d__generic}{v2d\+\_\+generic}} \& \mbox{\hyperlink{structolc_1_1v2d__generic_a2a0fb49722257578bfc148a273b4c1c5}{operator$\ast$=}} (const \mbox{\hyperlink{structolc_1_1v2d__generic}{v2d\+\_\+generic}} \&rhs)
+\item 
+\mbox{\hyperlink{structolc_1_1v2d__generic}{v2d\+\_\+generic}} \& \mbox{\hyperlink{structolc_1_1v2d__generic_a8e035b45f69db29e4cac698658ad4de1}{operator/=}} (const \mbox{\hyperlink{structolc_1_1v2d__generic}{v2d\+\_\+generic}} \&rhs)
+\item 
+\mbox{\hyperlink{structolc_1_1v2d__generic}{v2d\+\_\+generic}} \mbox{\hyperlink{structolc_1_1v2d__generic_a70a7c59a5b9b9fac0de8a823633abb08}{operator+}} () const
+\item 
+\mbox{\hyperlink{structolc_1_1v2d__generic}{v2d\+\_\+generic}} \mbox{\hyperlink{structolc_1_1v2d__generic_a9eff196e75aeffcd96bffb64de04219d}{operator-\/}} () const
+\item 
+bool \mbox{\hyperlink{structolc_1_1v2d__generic_ace104acaa0ef181acb36fe75d0aed683}{operator==}} (const \mbox{\hyperlink{structolc_1_1v2d__generic}{v2d\+\_\+generic}} \&rhs) const
+\item 
+bool \mbox{\hyperlink{structolc_1_1v2d__generic_abd9af6a38bc73471874665f508ff10b6}{operator!=}} (const \mbox{\hyperlink{structolc_1_1v2d__generic}{v2d\+\_\+generic}} \&rhs) const
+\item 
+const std\+::string \mbox{\hyperlink{structolc_1_1v2d__generic_a88a794a4e9ec632f215afbeb04b354c8}{str}} () const
+\item 
+\mbox{\hyperlink{structolc_1_1v2d__generic_a2bf267ac209cca361df72649a5aac92c}{operator v2d\+\_\+generic$<$ int32\+\_\+t $>$}} () const
+\item 
+\mbox{\hyperlink{structolc_1_1v2d__generic_a7fd9786ec8121d50addc3dd624ca21eb}{operator v2d\+\_\+generic$<$ float $>$}} () const
+\item 
+\mbox{\hyperlink{structolc_1_1v2d__generic_a5b722f332f64d260741ef8322cca5cce}{operator v2d\+\_\+generic$<$ double $>$}} () const
+\end{DoxyCompactItemize}
+\doxysubsection*{Public Attributes}
+\begin{DoxyCompactItemize}
+\item 
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0}{T}} \mbox{\hyperlink{structolc_1_1v2d__generic_a2c6ce2738720f5e098c7d0bf17f33807}{x}} = 0
+\item 
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0}{T}} \mbox{\hyperlink{structolc_1_1v2d__generic_a5a9c94207b2163c69a39190c320fcbdf}{y}} = 0
+\end{DoxyCompactItemize}
+\doxysubsection*{Friends}
+\begin{DoxyCompactItemize}
+\item 
+std\+::ostream \& \mbox{\hyperlink{structolc_1_1v2d__generic_afeb5dac5960ca80197ad7ce455ed190c}{operator$<$$<$}} (std\+::ostream \&os, const \mbox{\hyperlink{structolc_1_1v2d__generic}{v2d\+\_\+generic}} \&rhs)
+\end{DoxyCompactItemize}
+
+
+\doxysubsection{Detailed Description}
+\subsubsection*{template$<$class T$>$\newline
+struct olc\+::v2d\+\_\+generic$<$ T $>$}
+
+
+
+Definition at line 582 of file olc\+Pixel\+Game\+Engine.\+h.
+
+
+
+\doxysubsection{Constructor \& Destructor Documentation}
+\mbox{\Hypertarget{structolc_1_1v2d__generic_aba35d326b62454a5fbdeea4220438784}\label{structolc_1_1v2d__generic_aba35d326b62454a5fbdeea4220438784}} 
+\index{olc::v2d\_generic$<$ T $>$@{olc::v2d\_generic$<$ T $>$}!v2d\_generic@{v2d\_generic}}
+\index{v2d\_generic@{v2d\_generic}!olc::v2d\_generic$<$ T $>$@{olc::v2d\_generic$<$ T $>$}}
+\doxysubsubsection{\texorpdfstring{v2d\_generic()}{v2d\_generic()}\hspace{0.1cm}{\footnotesize\ttfamily [1/3]}}
+{\footnotesize\ttfamily template$<$class T $>$ \\
+\mbox{\hyperlink{structolc_1_1v2d__generic}{olc\+::v2d\+\_\+generic}}$<$ \mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0}{T}} $>$\+::\mbox{\hyperlink{structolc_1_1v2d__generic}{v2d\+\_\+generic}} (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
+
+
+
+Definition at line 586 of file olc\+Pixel\+Game\+Engine.\+h.
+
+\mbox{\Hypertarget{structolc_1_1v2d__generic_a2fc62e52adae5f9e4138adf073afddb0}\label{structolc_1_1v2d__generic_a2fc62e52adae5f9e4138adf073afddb0}} 
+\index{olc::v2d\_generic$<$ T $>$@{olc::v2d\_generic$<$ T $>$}!v2d\_generic@{v2d\_generic}}
+\index{v2d\_generic@{v2d\_generic}!olc::v2d\_generic$<$ T $>$@{olc::v2d\_generic$<$ T $>$}}
+\doxysubsubsection{\texorpdfstring{v2d\_generic()}{v2d\_generic()}\hspace{0.1cm}{\footnotesize\ttfamily [2/3]}}
+{\footnotesize\ttfamily template$<$class T $>$ \\
+\mbox{\hyperlink{structolc_1_1v2d__generic}{olc\+::v2d\+\_\+generic}}$<$ \mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0}{T}} $>$\+::\mbox{\hyperlink{structolc_1_1v2d__generic}{v2d\+\_\+generic}} (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0}{T}}}]{\+\_\+x,  }\item[{\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0}{T}}}]{\+\_\+y }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
+
+
+
+Definition at line 587 of file olc\+Pixel\+Game\+Engine.\+h.
+
+\mbox{\Hypertarget{structolc_1_1v2d__generic_a7897de7e3e5f2a0e6ba1d2aef2015fce}\label{structolc_1_1v2d__generic_a7897de7e3e5f2a0e6ba1d2aef2015fce}} 
+\index{olc::v2d\_generic$<$ T $>$@{olc::v2d\_generic$<$ T $>$}!v2d\_generic@{v2d\_generic}}
+\index{v2d\_generic@{v2d\_generic}!olc::v2d\_generic$<$ T $>$@{olc::v2d\_generic$<$ T $>$}}
+\doxysubsubsection{\texorpdfstring{v2d\_generic()}{v2d\_generic()}\hspace{0.1cm}{\footnotesize\ttfamily [3/3]}}
+{\footnotesize\ttfamily template$<$class T $>$ \\
+\mbox{\hyperlink{structolc_1_1v2d__generic}{olc\+::v2d\+\_\+generic}}$<$ \mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0}{T}} $>$\+::\mbox{\hyperlink{structolc_1_1v2d__generic}{v2d\+\_\+generic}} (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{structolc_1_1v2d__generic}{v2d\+\_\+generic}}$<$ \mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0}{T}} $>$ \&}]{v }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
+
+
+
+Definition at line 588 of file olc\+Pixel\+Game\+Engine.\+h.
+
+
+
+\doxysubsection{Member Function Documentation}
+\mbox{\Hypertarget{structolc_1_1v2d__generic_a65efb6611304b590a2cb45781b1c34cc}\label{structolc_1_1v2d__generic_a65efb6611304b590a2cb45781b1c34cc}} 
+\index{olc::v2d\_generic$<$ T $>$@{olc::v2d\_generic$<$ T $>$}!ceil@{ceil}}
+\index{ceil@{ceil}!olc::v2d\_generic$<$ T $>$@{olc::v2d\_generic$<$ T $>$}}
+\doxysubsubsection{\texorpdfstring{ceil()}{ceil()}}
+{\footnotesize\ttfamily template$<$class T $>$ \\
+\mbox{\hyperlink{structolc_1_1v2d__generic}{v2d\+\_\+generic}} \mbox{\hyperlink{structolc_1_1v2d__generic}{olc\+::v2d\+\_\+generic}}$<$ \mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0}{T}} $>$\+::ceil (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}
+
+
+
+Definition at line 595 of file olc\+Pixel\+Game\+Engine.\+h.
+
+\mbox{\Hypertarget{structolc_1_1v2d__generic_a1febe5d22672d7d0121526577bf3b535}\label{structolc_1_1v2d__generic_a1febe5d22672d7d0121526577bf3b535}} 
+\index{olc::v2d\_generic$<$ T $>$@{olc::v2d\_generic$<$ T $>$}!cross@{cross}}
+\index{cross@{cross}!olc::v2d\_generic$<$ T $>$@{olc::v2d\_generic$<$ T $>$}}
+\doxysubsubsection{\texorpdfstring{cross()}{cross()}}
+{\footnotesize\ttfamily template$<$class T $>$ \\
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0}{T}} \mbox{\hyperlink{structolc_1_1v2d__generic}{olc\+::v2d\+\_\+generic}}$<$ \mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0}{T}} $>$\+::cross (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{structolc_1_1v2d__generic}{v2d\+\_\+generic}}$<$ \mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0}{T}} $>$ \&}]{rhs }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}
+
+
+
+Definition at line 599 of file olc\+Pixel\+Game\+Engine.\+h.
+
+\mbox{\Hypertarget{structolc_1_1v2d__generic_ad2e96c716c487677bbde6966464fc482}\label{structolc_1_1v2d__generic_ad2e96c716c487677bbde6966464fc482}} 
+\index{olc::v2d\_generic$<$ T $>$@{olc::v2d\_generic$<$ T $>$}!dot@{dot}}
+\index{dot@{dot}!olc::v2d\_generic$<$ T $>$@{olc::v2d\_generic$<$ T $>$}}
+\doxysubsubsection{\texorpdfstring{dot()}{dot()}}
+{\footnotesize\ttfamily template$<$class T $>$ \\
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0}{T}} \mbox{\hyperlink{structolc_1_1v2d__generic}{olc\+::v2d\+\_\+generic}}$<$ \mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0}{T}} $>$\+::dot (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{structolc_1_1v2d__generic}{v2d\+\_\+generic}}$<$ \mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0}{T}} $>$ \&}]{rhs }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}
+
+
+
+Definition at line 598 of file olc\+Pixel\+Game\+Engine.\+h.
+
+\mbox{\Hypertarget{structolc_1_1v2d__generic_affe50148d448ff75c298da3a1fd45323}\label{structolc_1_1v2d__generic_affe50148d448ff75c298da3a1fd45323}} 
+\index{olc::v2d\_generic$<$ T $>$@{olc::v2d\_generic$<$ T $>$}!floor@{floor}}
+\index{floor@{floor}!olc::v2d\_generic$<$ T $>$@{olc::v2d\_generic$<$ T $>$}}
+\doxysubsubsection{\texorpdfstring{floor()}{floor()}}
+{\footnotesize\ttfamily template$<$class T $>$ \\
+\mbox{\hyperlink{structolc_1_1v2d__generic}{v2d\+\_\+generic}} \mbox{\hyperlink{structolc_1_1v2d__generic}{olc\+::v2d\+\_\+generic}}$<$ \mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0}{T}} $>$\+::floor (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}
+
+
+
+Definition at line 594 of file olc\+Pixel\+Game\+Engine.\+h.
+
+\mbox{\Hypertarget{structolc_1_1v2d__generic_ab06016810fe727fa826e43e44e02008b}\label{structolc_1_1v2d__generic_ab06016810fe727fa826e43e44e02008b}} 
+\index{olc::v2d\_generic$<$ T $>$@{olc::v2d\_generic$<$ T $>$}!mag@{mag}}
+\index{mag@{mag}!olc::v2d\_generic$<$ T $>$@{olc::v2d\_generic$<$ T $>$}}
+\doxysubsubsection{\texorpdfstring{mag()}{mag()}}
+{\footnotesize\ttfamily template$<$class T $>$ \\
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0}{T}} \mbox{\hyperlink{structolc_1_1v2d__generic}{olc\+::v2d\+\_\+generic}}$<$ \mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0}{T}} $>$\+::mag (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}
+
+
+
+Definition at line 590 of file olc\+Pixel\+Game\+Engine.\+h.
+
+\mbox{\Hypertarget{structolc_1_1v2d__generic_a6b83d7375119637fdf65233cf6dae947}\label{structolc_1_1v2d__generic_a6b83d7375119637fdf65233cf6dae947}} 
+\index{olc::v2d\_generic$<$ T $>$@{olc::v2d\_generic$<$ T $>$}!mag2@{mag2}}
+\index{mag2@{mag2}!olc::v2d\_generic$<$ T $>$@{olc::v2d\_generic$<$ T $>$}}
+\doxysubsubsection{\texorpdfstring{mag2()}{mag2()}}
+{\footnotesize\ttfamily template$<$class T $>$ \\
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0}{T}} \mbox{\hyperlink{structolc_1_1v2d__generic}{olc\+::v2d\+\_\+generic}}$<$ \mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0}{T}} $>$\+::mag2 (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}
+
+
+
+Definition at line 591 of file olc\+Pixel\+Game\+Engine.\+h.
+
+\mbox{\Hypertarget{structolc_1_1v2d__generic_a1fe55d8bc22dbb400583cb68cc9e3e36}\label{structolc_1_1v2d__generic_a1fe55d8bc22dbb400583cb68cc9e3e36}} 
+\index{olc::v2d\_generic$<$ T $>$@{olc::v2d\_generic$<$ T $>$}!max@{max}}
+\index{max@{max}!olc::v2d\_generic$<$ T $>$@{olc::v2d\_generic$<$ T $>$}}
+\doxysubsubsection{\texorpdfstring{max()}{max()}}
+{\footnotesize\ttfamily template$<$class T $>$ \\
+\mbox{\hyperlink{structolc_1_1v2d__generic}{v2d\+\_\+generic}} \mbox{\hyperlink{structolc_1_1v2d__generic}{olc\+::v2d\+\_\+generic}}$<$ \mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0}{T}} $>$\+::max (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{structolc_1_1v2d__generic}{v2d\+\_\+generic}}$<$ \mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0}{T}} $>$ \&}]{v }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}
+
+
+
+Definition at line 596 of file olc\+Pixel\+Game\+Engine.\+h.
+
+\mbox{\Hypertarget{structolc_1_1v2d__generic_aec7b204ad597ee0edc9a444ff3a242eb}\label{structolc_1_1v2d__generic_aec7b204ad597ee0edc9a444ff3a242eb}} 
+\index{olc::v2d\_generic$<$ T $>$@{olc::v2d\_generic$<$ T $>$}!min@{min}}
+\index{min@{min}!olc::v2d\_generic$<$ T $>$@{olc::v2d\_generic$<$ T $>$}}
+\doxysubsubsection{\texorpdfstring{min()}{min()}}
+{\footnotesize\ttfamily template$<$class T $>$ \\
+\mbox{\hyperlink{structolc_1_1v2d__generic}{v2d\+\_\+generic}} \mbox{\hyperlink{structolc_1_1v2d__generic}{olc\+::v2d\+\_\+generic}}$<$ \mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0}{T}} $>$\+::min (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{structolc_1_1v2d__generic}{v2d\+\_\+generic}}$<$ \mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0}{T}} $>$ \&}]{v }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}
+
+
+
+Definition at line 597 of file olc\+Pixel\+Game\+Engine.\+h.
+
+\mbox{\Hypertarget{structolc_1_1v2d__generic_a9c62f12d51859a5a487c5a0c2d00b09a}\label{structolc_1_1v2d__generic_a9c62f12d51859a5a487c5a0c2d00b09a}} 
+\index{olc::v2d\_generic$<$ T $>$@{olc::v2d\_generic$<$ T $>$}!norm@{norm}}
+\index{norm@{norm}!olc::v2d\_generic$<$ T $>$@{olc::v2d\_generic$<$ T $>$}}
+\doxysubsubsection{\texorpdfstring{norm()}{norm()}}
+{\footnotesize\ttfamily template$<$class T $>$ \\
+\mbox{\hyperlink{structolc_1_1v2d__generic}{v2d\+\_\+generic}} \mbox{\hyperlink{structolc_1_1v2d__generic}{olc\+::v2d\+\_\+generic}}$<$ \mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0}{T}} $>$\+::norm (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}
+
+
+
+Definition at line 592 of file olc\+Pixel\+Game\+Engine.\+h.
+
+\mbox{\Hypertarget{structolc_1_1v2d__generic_a5b722f332f64d260741ef8322cca5cce}\label{structolc_1_1v2d__generic_a5b722f332f64d260741ef8322cca5cce}} 
+\index{olc::v2d\_generic$<$ T $>$@{olc::v2d\_generic$<$ T $>$}!operator v2d\_generic$<$ double $>$@{operator v2d\_generic$<$ double $>$}}
+\index{operator v2d\_generic$<$ double $>$@{operator v2d\_generic$<$ double $>$}!olc::v2d\_generic$<$ T $>$@{olc::v2d\_generic$<$ T $>$}}
+\doxysubsubsection{\texorpdfstring{operator v2d\_generic$<$ double $>$()}{operator v2d\_generic< double >()}}
+{\footnotesize\ttfamily template$<$class T $>$ \\
+\mbox{\hyperlink{structolc_1_1v2d__generic}{olc\+::v2d\+\_\+generic}}$<$ \mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0}{T}} $>$\+::operator \mbox{\hyperlink{structolc_1_1v2d__generic}{v2d\+\_\+generic}}$<$ double $>$ (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}
+
+
+
+Definition at line 620 of file olc\+Pixel\+Game\+Engine.\+h.
+
+\mbox{\Hypertarget{structolc_1_1v2d__generic_a7fd9786ec8121d50addc3dd624ca21eb}\label{structolc_1_1v2d__generic_a7fd9786ec8121d50addc3dd624ca21eb}} 
+\index{olc::v2d\_generic$<$ T $>$@{olc::v2d\_generic$<$ T $>$}!operator v2d\_generic$<$ float $>$@{operator v2d\_generic$<$ float $>$}}
+\index{operator v2d\_generic$<$ float $>$@{operator v2d\_generic$<$ float $>$}!olc::v2d\_generic$<$ T $>$@{olc::v2d\_generic$<$ T $>$}}
+\doxysubsubsection{\texorpdfstring{operator v2d\_generic$<$ float $>$()}{operator v2d\_generic< float >()}}
+{\footnotesize\ttfamily template$<$class T $>$ \\
+\mbox{\hyperlink{structolc_1_1v2d__generic}{olc\+::v2d\+\_\+generic}}$<$ \mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0}{T}} $>$\+::operator \mbox{\hyperlink{structolc_1_1v2d__generic}{v2d\+\_\+generic}}$<$ float $>$ (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}
+
+
+
+Definition at line 619 of file olc\+Pixel\+Game\+Engine.\+h.
+
+\mbox{\Hypertarget{structolc_1_1v2d__generic_a2bf267ac209cca361df72649a5aac92c}\label{structolc_1_1v2d__generic_a2bf267ac209cca361df72649a5aac92c}} 
+\index{olc::v2d\_generic$<$ T $>$@{olc::v2d\_generic$<$ T $>$}!operator v2d\_generic$<$ int32\_t $>$@{operator v2d\_generic$<$ int32\_t $>$}}
+\index{operator v2d\_generic$<$ int32\_t $>$@{operator v2d\_generic$<$ int32\_t $>$}!olc::v2d\_generic$<$ T $>$@{olc::v2d\_generic$<$ T $>$}}
+\doxysubsubsection{\texorpdfstring{operator v2d\_generic$<$ int32\_t $>$()}{operator v2d\_generic< int32\_t >()}}
+{\footnotesize\ttfamily template$<$class T $>$ \\
+\mbox{\hyperlink{structolc_1_1v2d__generic}{olc\+::v2d\+\_\+generic}}$<$ \mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0}{T}} $>$\+::operator \mbox{\hyperlink{structolc_1_1v2d__generic}{v2d\+\_\+generic}}$<$ int32\+\_\+t $>$ (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}
+
+
+
+Definition at line 618 of file olc\+Pixel\+Game\+Engine.\+h.
+
+\mbox{\Hypertarget{structolc_1_1v2d__generic_abd9af6a38bc73471874665f508ff10b6}\label{structolc_1_1v2d__generic_abd9af6a38bc73471874665f508ff10b6}} 
+\index{olc::v2d\_generic$<$ T $>$@{olc::v2d\_generic$<$ T $>$}!operator"!=@{operator"!=}}
+\index{operator"!=@{operator"!=}!olc::v2d\_generic$<$ T $>$@{olc::v2d\_generic$<$ T $>$}}
+\doxysubsubsection{\texorpdfstring{operator"!=()}{operator!=()}}
+{\footnotesize\ttfamily template$<$class T $>$ \\
+bool \mbox{\hyperlink{structolc_1_1v2d__generic}{olc\+::v2d\+\_\+generic}}$<$ \mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0}{T}} $>$\+::operator!= (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{structolc_1_1v2d__generic}{v2d\+\_\+generic}}$<$ \mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0}{T}} $>$ \&}]{rhs }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}
+
+
+
+Definition at line 615 of file olc\+Pixel\+Game\+Engine.\+h.
+
+\mbox{\Hypertarget{structolc_1_1v2d__generic_a542487700e63b2e30940d64b75c3d3db}\label{structolc_1_1v2d__generic_a542487700e63b2e30940d64b75c3d3db}} 
+\index{olc::v2d\_generic$<$ T $>$@{olc::v2d\_generic$<$ T $>$}!operator$\ast$@{operator$\ast$}}
+\index{operator$\ast$@{operator$\ast$}!olc::v2d\_generic$<$ T $>$@{olc::v2d\_generic$<$ T $>$}}
+\doxysubsubsection{\texorpdfstring{operator$\ast$()}{operator*()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
+{\footnotesize\ttfamily template$<$class T $>$ \\
+\mbox{\hyperlink{structolc_1_1v2d__generic}{v2d\+\_\+generic}} \mbox{\hyperlink{structolc_1_1v2d__generic}{olc\+::v2d\+\_\+generic}}$<$ \mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0}{T}} $>$\+::operator$\ast$ (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0}{T}} \&}]{rhs }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}
+
+
+
+Definition at line 602 of file olc\+Pixel\+Game\+Engine.\+h.
+
+\mbox{\Hypertarget{structolc_1_1v2d__generic_a78e7362a3b955735c0389c6a5c7b32f0}\label{structolc_1_1v2d__generic_a78e7362a3b955735c0389c6a5c7b32f0}} 
+\index{olc::v2d\_generic$<$ T $>$@{olc::v2d\_generic$<$ T $>$}!operator$\ast$@{operator$\ast$}}
+\index{operator$\ast$@{operator$\ast$}!olc::v2d\_generic$<$ T $>$@{olc::v2d\_generic$<$ T $>$}}
+\doxysubsubsection{\texorpdfstring{operator$\ast$()}{operator*()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
+{\footnotesize\ttfamily template$<$class T $>$ \\
+\mbox{\hyperlink{structolc_1_1v2d__generic}{v2d\+\_\+generic}} \mbox{\hyperlink{structolc_1_1v2d__generic}{olc\+::v2d\+\_\+generic}}$<$ \mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0}{T}} $>$\+::operator$\ast$ (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{structolc_1_1v2d__generic}{v2d\+\_\+generic}}$<$ \mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0}{T}} $>$ \&}]{rhs }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}
+
+
+
+Definition at line 603 of file olc\+Pixel\+Game\+Engine.\+h.
+
+\mbox{\Hypertarget{structolc_1_1v2d__generic_a35c81946f320da79fa5a33e595873252}\label{structolc_1_1v2d__generic_a35c81946f320da79fa5a33e595873252}} 
+\index{olc::v2d\_generic$<$ T $>$@{olc::v2d\_generic$<$ T $>$}!operator$\ast$=@{operator$\ast$=}}
+\index{operator$\ast$=@{operator$\ast$=}!olc::v2d\_generic$<$ T $>$@{olc::v2d\_generic$<$ T $>$}}
+\doxysubsubsection{\texorpdfstring{operator$\ast$=()}{operator*=()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
+{\footnotesize\ttfamily template$<$class T $>$ \\
+\mbox{\hyperlink{structolc_1_1v2d__generic}{v2d\+\_\+generic}}\& \mbox{\hyperlink{structolc_1_1v2d__generic}{olc\+::v2d\+\_\+generic}}$<$ \mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0}{T}} $>$\+::operator$\ast$= (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0}{T}} \&}]{rhs }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
+
+
+
+Definition at line 608 of file olc\+Pixel\+Game\+Engine.\+h.
+
+\mbox{\Hypertarget{structolc_1_1v2d__generic_a2a0fb49722257578bfc148a273b4c1c5}\label{structolc_1_1v2d__generic_a2a0fb49722257578bfc148a273b4c1c5}} 
+\index{olc::v2d\_generic$<$ T $>$@{olc::v2d\_generic$<$ T $>$}!operator$\ast$=@{operator$\ast$=}}
+\index{operator$\ast$=@{operator$\ast$=}!olc::v2d\_generic$<$ T $>$@{olc::v2d\_generic$<$ T $>$}}
+\doxysubsubsection{\texorpdfstring{operator$\ast$=()}{operator*=()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
+{\footnotesize\ttfamily template$<$class T $>$ \\
+\mbox{\hyperlink{structolc_1_1v2d__generic}{v2d\+\_\+generic}}\& \mbox{\hyperlink{structolc_1_1v2d__generic}{olc\+::v2d\+\_\+generic}}$<$ \mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0}{T}} $>$\+::operator$\ast$= (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{structolc_1_1v2d__generic}{v2d\+\_\+generic}}$<$ \mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0}{T}} $>$ \&}]{rhs }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
+
+
+
+Definition at line 610 of file olc\+Pixel\+Game\+Engine.\+h.
+
+\mbox{\Hypertarget{structolc_1_1v2d__generic_a70a7c59a5b9b9fac0de8a823633abb08}\label{structolc_1_1v2d__generic_a70a7c59a5b9b9fac0de8a823633abb08}} 
+\index{olc::v2d\_generic$<$ T $>$@{olc::v2d\_generic$<$ T $>$}!operator+@{operator+}}
+\index{operator+@{operator+}!olc::v2d\_generic$<$ T $>$@{olc::v2d\_generic$<$ T $>$}}
+\doxysubsubsection{\texorpdfstring{operator+()}{operator+()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
+{\footnotesize\ttfamily template$<$class T $>$ \\
+\mbox{\hyperlink{structolc_1_1v2d__generic}{v2d\+\_\+generic}} \mbox{\hyperlink{structolc_1_1v2d__generic}{olc\+::v2d\+\_\+generic}}$<$ \mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0}{T}} $>$\+::operator+ (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}
+
+
+
+Definition at line 612 of file olc\+Pixel\+Game\+Engine.\+h.
+
+\mbox{\Hypertarget{structolc_1_1v2d__generic_a5ae3f55fd12af9bf44a2837ad76ea7dd}\label{structolc_1_1v2d__generic_a5ae3f55fd12af9bf44a2837ad76ea7dd}} 
+\index{olc::v2d\_generic$<$ T $>$@{olc::v2d\_generic$<$ T $>$}!operator+@{operator+}}
+\index{operator+@{operator+}!olc::v2d\_generic$<$ T $>$@{olc::v2d\_generic$<$ T $>$}}
+\doxysubsubsection{\texorpdfstring{operator+()}{operator+()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
+{\footnotesize\ttfamily template$<$class T $>$ \\
+\mbox{\hyperlink{structolc_1_1v2d__generic}{v2d\+\_\+generic}} \mbox{\hyperlink{structolc_1_1v2d__generic}{olc\+::v2d\+\_\+generic}}$<$ \mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0}{T}} $>$\+::operator+ (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{structolc_1_1v2d__generic}{v2d\+\_\+generic}}$<$ \mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0}{T}} $>$ \&}]{rhs }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}
+
+
+
+Definition at line 600 of file olc\+Pixel\+Game\+Engine.\+h.
+
+\mbox{\Hypertarget{structolc_1_1v2d__generic_ac57326846384068beaaddec0674b65d2}\label{structolc_1_1v2d__generic_ac57326846384068beaaddec0674b65d2}} 
+\index{olc::v2d\_generic$<$ T $>$@{olc::v2d\_generic$<$ T $>$}!operator+=@{operator+=}}
+\index{operator+=@{operator+=}!olc::v2d\_generic$<$ T $>$@{olc::v2d\_generic$<$ T $>$}}
+\doxysubsubsection{\texorpdfstring{operator+=()}{operator+=()}}
+{\footnotesize\ttfamily template$<$class T $>$ \\
+\mbox{\hyperlink{structolc_1_1v2d__generic}{v2d\+\_\+generic}}\& \mbox{\hyperlink{structolc_1_1v2d__generic}{olc\+::v2d\+\_\+generic}}$<$ \mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0}{T}} $>$\+::operator+= (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{structolc_1_1v2d__generic}{v2d\+\_\+generic}}$<$ \mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0}{T}} $>$ \&}]{rhs }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
+
+
+
+Definition at line 606 of file olc\+Pixel\+Game\+Engine.\+h.
+
+\mbox{\Hypertarget{structolc_1_1v2d__generic_a9eff196e75aeffcd96bffb64de04219d}\label{structolc_1_1v2d__generic_a9eff196e75aeffcd96bffb64de04219d}} 
+\index{olc::v2d\_generic$<$ T $>$@{olc::v2d\_generic$<$ T $>$}!operator-\/@{operator-\/}}
+\index{operator-\/@{operator-\/}!olc::v2d\_generic$<$ T $>$@{olc::v2d\_generic$<$ T $>$}}
+\doxysubsubsection{\texorpdfstring{operator-\/()}{operator-()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
+{\footnotesize\ttfamily template$<$class T $>$ \\
+\mbox{\hyperlink{structolc_1_1v2d__generic}{v2d\+\_\+generic}} \mbox{\hyperlink{structolc_1_1v2d__generic}{olc\+::v2d\+\_\+generic}}$<$ \mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0}{T}} $>$\+::operator-\/ (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}
+
+
+
+Definition at line 613 of file olc\+Pixel\+Game\+Engine.\+h.
+
+\mbox{\Hypertarget{structolc_1_1v2d__generic_a64e053d62d2826193f6a058ee120c6e2}\label{structolc_1_1v2d__generic_a64e053d62d2826193f6a058ee120c6e2}} 
+\index{olc::v2d\_generic$<$ T $>$@{olc::v2d\_generic$<$ T $>$}!operator-\/@{operator-\/}}
+\index{operator-\/@{operator-\/}!olc::v2d\_generic$<$ T $>$@{olc::v2d\_generic$<$ T $>$}}
+\doxysubsubsection{\texorpdfstring{operator-\/()}{operator-()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
+{\footnotesize\ttfamily template$<$class T $>$ \\
+\mbox{\hyperlink{structolc_1_1v2d__generic}{v2d\+\_\+generic}} \mbox{\hyperlink{structolc_1_1v2d__generic}{olc\+::v2d\+\_\+generic}}$<$ \mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0}{T}} $>$\+::operator-\/ (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{structolc_1_1v2d__generic}{v2d\+\_\+generic}}$<$ \mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0}{T}} $>$ \&}]{rhs }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}
+
+
+
+Definition at line 601 of file olc\+Pixel\+Game\+Engine.\+h.
+
+\mbox{\Hypertarget{structolc_1_1v2d__generic_af3e8b94c4921f8d81b4112b319bd7f6d}\label{structolc_1_1v2d__generic_af3e8b94c4921f8d81b4112b319bd7f6d}} 
+\index{olc::v2d\_generic$<$ T $>$@{olc::v2d\_generic$<$ T $>$}!operator-\/=@{operator-\/=}}
+\index{operator-\/=@{operator-\/=}!olc::v2d\_generic$<$ T $>$@{olc::v2d\_generic$<$ T $>$}}
+\doxysubsubsection{\texorpdfstring{operator-\/=()}{operator-=()}}
+{\footnotesize\ttfamily template$<$class T $>$ \\
+\mbox{\hyperlink{structolc_1_1v2d__generic}{v2d\+\_\+generic}}\& \mbox{\hyperlink{structolc_1_1v2d__generic}{olc\+::v2d\+\_\+generic}}$<$ \mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0}{T}} $>$\+::operator-\/= (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{structolc_1_1v2d__generic}{v2d\+\_\+generic}}$<$ \mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0}{T}} $>$ \&}]{rhs }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
+
+
+
+Definition at line 607 of file olc\+Pixel\+Game\+Engine.\+h.
+
+\mbox{\Hypertarget{structolc_1_1v2d__generic_a1f1138ee06adae0eaffe900b0437b896}\label{structolc_1_1v2d__generic_a1f1138ee06adae0eaffe900b0437b896}} 
+\index{olc::v2d\_generic$<$ T $>$@{olc::v2d\_generic$<$ T $>$}!operator/@{operator/}}
+\index{operator/@{operator/}!olc::v2d\_generic$<$ T $>$@{olc::v2d\_generic$<$ T $>$}}
+\doxysubsubsection{\texorpdfstring{operator/()}{operator/()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
+{\footnotesize\ttfamily template$<$class T $>$ \\
+\mbox{\hyperlink{structolc_1_1v2d__generic}{v2d\+\_\+generic}} \mbox{\hyperlink{structolc_1_1v2d__generic}{olc\+::v2d\+\_\+generic}}$<$ \mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0}{T}} $>$\+::operator/ (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0}{T}} \&}]{rhs }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}
+
+
+
+Definition at line 604 of file olc\+Pixel\+Game\+Engine.\+h.
+
+\mbox{\Hypertarget{structolc_1_1v2d__generic_adcf0004e01ba1d8c813cdcb6525eb1c6}\label{structolc_1_1v2d__generic_adcf0004e01ba1d8c813cdcb6525eb1c6}} 
+\index{olc::v2d\_generic$<$ T $>$@{olc::v2d\_generic$<$ T $>$}!operator/@{operator/}}
+\index{operator/@{operator/}!olc::v2d\_generic$<$ T $>$@{olc::v2d\_generic$<$ T $>$}}
+\doxysubsubsection{\texorpdfstring{operator/()}{operator/()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
+{\footnotesize\ttfamily template$<$class T $>$ \\
+\mbox{\hyperlink{structolc_1_1v2d__generic}{v2d\+\_\+generic}} \mbox{\hyperlink{structolc_1_1v2d__generic}{olc\+::v2d\+\_\+generic}}$<$ \mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0}{T}} $>$\+::operator/ (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{structolc_1_1v2d__generic}{v2d\+\_\+generic}}$<$ \mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0}{T}} $>$ \&}]{rhs }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}
+
+
+
+Definition at line 605 of file olc\+Pixel\+Game\+Engine.\+h.
+
+\mbox{\Hypertarget{structolc_1_1v2d__generic_a88a5aa098b5ada7667a7900a0bc9bba2}\label{structolc_1_1v2d__generic_a88a5aa098b5ada7667a7900a0bc9bba2}} 
+\index{olc::v2d\_generic$<$ T $>$@{olc::v2d\_generic$<$ T $>$}!operator/=@{operator/=}}
+\index{operator/=@{operator/=}!olc::v2d\_generic$<$ T $>$@{olc::v2d\_generic$<$ T $>$}}
+\doxysubsubsection{\texorpdfstring{operator/=()}{operator/=()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
+{\footnotesize\ttfamily template$<$class T $>$ \\
+\mbox{\hyperlink{structolc_1_1v2d__generic}{v2d\+\_\+generic}}\& \mbox{\hyperlink{structolc_1_1v2d__generic}{olc\+::v2d\+\_\+generic}}$<$ \mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0}{T}} $>$\+::operator/= (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0}{T}} \&}]{rhs }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
+
+
+
+Definition at line 609 of file olc\+Pixel\+Game\+Engine.\+h.
+
+\mbox{\Hypertarget{structolc_1_1v2d__generic_a8e035b45f69db29e4cac698658ad4de1}\label{structolc_1_1v2d__generic_a8e035b45f69db29e4cac698658ad4de1}} 
+\index{olc::v2d\_generic$<$ T $>$@{olc::v2d\_generic$<$ T $>$}!operator/=@{operator/=}}
+\index{operator/=@{operator/=}!olc::v2d\_generic$<$ T $>$@{olc::v2d\_generic$<$ T $>$}}
+\doxysubsubsection{\texorpdfstring{operator/=()}{operator/=()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
+{\footnotesize\ttfamily template$<$class T $>$ \\
+\mbox{\hyperlink{structolc_1_1v2d__generic}{v2d\+\_\+generic}}\& \mbox{\hyperlink{structolc_1_1v2d__generic}{olc\+::v2d\+\_\+generic}}$<$ \mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0}{T}} $>$\+::operator/= (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{structolc_1_1v2d__generic}{v2d\+\_\+generic}}$<$ \mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0}{T}} $>$ \&}]{rhs }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
+
+
+
+Definition at line 611 of file olc\+Pixel\+Game\+Engine.\+h.
+
+\mbox{\Hypertarget{structolc_1_1v2d__generic_adff36d90ca79f24401a31cbde706bf8c}\label{structolc_1_1v2d__generic_adff36d90ca79f24401a31cbde706bf8c}} 
+\index{olc::v2d\_generic$<$ T $>$@{olc::v2d\_generic$<$ T $>$}!operator=@{operator=}}
+\index{operator=@{operator=}!olc::v2d\_generic$<$ T $>$@{olc::v2d\_generic$<$ T $>$}}
+\doxysubsubsection{\texorpdfstring{operator=()}{operator=()}}
+{\footnotesize\ttfamily template$<$class T $>$ \\
+\mbox{\hyperlink{structolc_1_1v2d__generic}{v2d\+\_\+generic}}\& \mbox{\hyperlink{structolc_1_1v2d__generic}{olc\+::v2d\+\_\+generic}}$<$ \mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0}{T}} $>$\+::operator= (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{structolc_1_1v2d__generic}{v2d\+\_\+generic}}$<$ \mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0}{T}} $>$ \&}]{v }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [default]}}
+
+\mbox{\Hypertarget{structolc_1_1v2d__generic_ace104acaa0ef181acb36fe75d0aed683}\label{structolc_1_1v2d__generic_ace104acaa0ef181acb36fe75d0aed683}} 
+\index{olc::v2d\_generic$<$ T $>$@{olc::v2d\_generic$<$ T $>$}!operator==@{operator==}}
+\index{operator==@{operator==}!olc::v2d\_generic$<$ T $>$@{olc::v2d\_generic$<$ T $>$}}
+\doxysubsubsection{\texorpdfstring{operator==()}{operator==()}}
+{\footnotesize\ttfamily template$<$class T $>$ \\
+bool \mbox{\hyperlink{structolc_1_1v2d__generic}{olc\+::v2d\+\_\+generic}}$<$ \mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0}{T}} $>$\+::operator== (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{structolc_1_1v2d__generic}{v2d\+\_\+generic}}$<$ \mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0}{T}} $>$ \&}]{rhs }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}
+
+
+
+Definition at line 614 of file olc\+Pixel\+Game\+Engine.\+h.
+
+\mbox{\Hypertarget{structolc_1_1v2d__generic_a8275a944d309dc4b58f60cbc2925a7cc}\label{structolc_1_1v2d__generic_a8275a944d309dc4b58f60cbc2925a7cc}} 
+\index{olc::v2d\_generic$<$ T $>$@{olc::v2d\_generic$<$ T $>$}!perp@{perp}}
+\index{perp@{perp}!olc::v2d\_generic$<$ T $>$@{olc::v2d\_generic$<$ T $>$}}
+\doxysubsubsection{\texorpdfstring{perp()}{perp()}}
+{\footnotesize\ttfamily template$<$class T $>$ \\
+\mbox{\hyperlink{structolc_1_1v2d__generic}{v2d\+\_\+generic}} \mbox{\hyperlink{structolc_1_1v2d__generic}{olc\+::v2d\+\_\+generic}}$<$ \mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0}{T}} $>$\+::perp (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}
+
+
+
+Definition at line 593 of file olc\+Pixel\+Game\+Engine.\+h.
+
+\mbox{\Hypertarget{structolc_1_1v2d__generic_a88a794a4e9ec632f215afbeb04b354c8}\label{structolc_1_1v2d__generic_a88a794a4e9ec632f215afbeb04b354c8}} 
+\index{olc::v2d\_generic$<$ T $>$@{olc::v2d\_generic$<$ T $>$}!str@{str}}
+\index{str@{str}!olc::v2d\_generic$<$ T $>$@{olc::v2d\_generic$<$ T $>$}}
+\doxysubsubsection{\texorpdfstring{str()}{str()}}
+{\footnotesize\ttfamily template$<$class T $>$ \\
+const std\+::string \mbox{\hyperlink{structolc_1_1v2d__generic}{olc\+::v2d\+\_\+generic}}$<$ \mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0}{T}} $>$\+::str (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}
+
+
+
+Definition at line 616 of file olc\+Pixel\+Game\+Engine.\+h.
+
+
+
+\doxysubsection{Friends And Related Function Documentation}
+\mbox{\Hypertarget{structolc_1_1v2d__generic_afeb5dac5960ca80197ad7ce455ed190c}\label{structolc_1_1v2d__generic_afeb5dac5960ca80197ad7ce455ed190c}} 
+\index{olc::v2d\_generic$<$ T $>$@{olc::v2d\_generic$<$ T $>$}!operator$<$$<$@{operator$<$$<$}}
+\index{operator$<$$<$@{operator$<$$<$}!olc::v2d\_generic$<$ T $>$@{olc::v2d\_generic$<$ T $>$}}
+\doxysubsubsection{\texorpdfstring{operator$<$$<$}{operator<<}}
+{\footnotesize\ttfamily template$<$class T $>$ \\
+std\+::ostream\& operator$<$$<$ (\begin{DoxyParamCaption}\item[{std\+::ostream \&}]{os,  }\item[{const \mbox{\hyperlink{structolc_1_1v2d__generic}{v2d\+\_\+generic}}$<$ \mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0}{T}} $>$ \&}]{rhs }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [friend]}}
+
+
+
+Definition at line 617 of file olc\+Pixel\+Game\+Engine.\+h.
+
+
+
+\doxysubsection{Member Data Documentation}
+\mbox{\Hypertarget{structolc_1_1v2d__generic_a2c6ce2738720f5e098c7d0bf17f33807}\label{structolc_1_1v2d__generic_a2c6ce2738720f5e098c7d0bf17f33807}} 
+\index{olc::v2d\_generic$<$ T $>$@{olc::v2d\_generic$<$ T $>$}!x@{x}}
+\index{x@{x}!olc::v2d\_generic$<$ T $>$@{olc::v2d\_generic$<$ T $>$}}
+\doxysubsubsection{\texorpdfstring{x}{x}}
+{\footnotesize\ttfamily template$<$class T $>$ \\
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0}{T}} \mbox{\hyperlink{structolc_1_1v2d__generic}{olc\+::v2d\+\_\+generic}}$<$ \mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0}{T}} $>$\+::x = 0}
+
+
+
+Definition at line 584 of file olc\+Pixel\+Game\+Engine.\+h.
+
+\mbox{\Hypertarget{structolc_1_1v2d__generic_a5a9c94207b2163c69a39190c320fcbdf}\label{structolc_1_1v2d__generic_a5a9c94207b2163c69a39190c320fcbdf}} 
+\index{olc::v2d\_generic$<$ T $>$@{olc::v2d\_generic$<$ T $>$}!y@{y}}
+\index{y@{y}!olc::v2d\_generic$<$ T $>$@{olc::v2d\_generic$<$ T $>$}}
+\doxysubsubsection{\texorpdfstring{y}{y}}
+{\footnotesize\ttfamily template$<$class T $>$ \\
+\mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0}{T}} \mbox{\hyperlink{structolc_1_1v2d__generic}{olc\+::v2d\+\_\+generic}}$<$ \mbox{\hyperlink{namespaceolc_aa26a067cf0db83f0b1dd587036a64be7a965fe0acbe229d3eb1b3b61c966d62c0}{T}} $>$\+::y = 0}
+
+
+
+Definition at line 585 of file olc\+Pixel\+Game\+Engine.\+h.
+
+
+
+The documentation for this struct was generated from the following file\+:\begin{DoxyCompactItemize}
+\item 
+C\+:/\+Users/kosmx/\+Documents/\+Git\+Hub/2d-\/game/\mbox{\hyperlink{olc_pixel_game_engine_8h}{olc\+Pixel\+Game\+Engine.\+h}}\end{DoxyCompactItemize}
diff --git a/doxy/latex/tabu_doxygen.sty b/doxy/latex/tabu_doxygen.sty
new file mode 100644
index 0000000000000000000000000000000000000000..3f17d1d02804b33ee004d44860bb39ce6d1bf371
--- /dev/null
+++ b/doxy/latex/tabu_doxygen.sty
@@ -0,0 +1,2557 @@
+%%
+%% This is file `tabu.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% tabu.dtx  (with options: `package')
+%% 
+%% This is a generated file.
+%% Copyright (FC) 2010-2011 - lppl
+%% 
+%% tabu : 2011/02/26 v2.8 - tabu : Flexible LaTeX tabulars
+%% 
+%% **********************************************************************************************
+%% \begin{tabu}               { preamble } => default target: \linewidth or \linegoal
+%% \begin{tabu} to     <dimen>{ preamble } => target specified
+%% \begin{tabu} spread <dimen>{ preamble } => target relative to the ``natural width''
+%% 
+%%  tabu works in text and in math modes.
+%% 
+%%  X columns: automatic width adjustment + horizontal and vertical alignment
+%%  \begin{tabu}   { X[4c] X[1c] X[-2ml]  }
+%% 
+%%  Horizontal lines and / or leaders:
+%%         \hline\hline                          => double horizontal line
+%%         \firsthline\hline                     => for nested tabulars
+%%         \lasthline\hline                      => for nested tabulars
+%%         \tabucline[line spec]{column-column}  => ``funny'' lines (dash/leader)
+%%  Automatic lines / leaders :
+%%         \everyrow{\hline\hline}
+%% 
+%%  Vertical lines and / or leaders:
+%%  \begin{tabu}   { |[3pt red] X[4c] X[1c] X[-2ml] |[3pt blue] }
+%%  \begin{tabu}   { |[3pt red] X[4c] X[1c] X[-2ml] |[3pt on 2pt off 4pt blue] }
+%% 
+%%  Fixed vertical spacing adjustment:
+%%         \extrarowheight=<dimen>     \extrarowdepth=<dimen>
+%%    or:     \extrarowsep=<dimen>               => may be prefixed by \global
+%% 
+%%  Dynamic vertical spacing adjustment:
+%%       \abovetabulinesep=<dimen>  \belowtabulinesep=<dimen>
+%%   or:      \tabulinesep=<dimen>               => may be prefixed by \global
+%% 
+%%  delarray.sty shortcuts: in math and text modes
+%%  \begin{tabu} ....        \({ preamble }\)
+%% 
+%%  Algorithms reports:
+%%            \tracingtabu=1             \tracingtabu=2
+%% 
+%% **********************************************************************************************
+%% 
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either
+%% version 1.3 of this license or (at your option) any later
+%% version. The latest version of this license is in
+%%    http://www.latex-project.org/lppl.txt
+%% 
+%% This work consists of the main source file tabu.dtx
+%% and the derived files
+%%    tabu.sty, tabu.pdf, tabu.ins
+%% 
+%% tabu : Flexible LaTeX tabulars
+%% lppl copyright 2010-2011 by FC <florent.chervet@free.fr>
+%% 
+
+\NeedsTeXFormat{LaTeX2e}[2005/12/01]
+\ProvidesPackage{tabu_doxygen}[2011/02/26 v2.8 - flexible LaTeX tabulars (FC), frozen version for doxygen]
+\RequirePackage{array}[2008/09/09]
+\RequirePackage{varwidth}[2009/03/30]
+\AtEndOfPackage{\tabu@AtEnd \let\tabu@AtEnd \@undefined}
+\let\tabu@AtEnd\@empty
+\def\TMP@EnsureCode#1={%
+    \edef\tabu@AtEnd{\tabu@AtEnd
+                     \catcode#1 \the\catcode#1}%
+    \catcode#1=%
+}% \TMP@EnsureCode
+\TMP@EnsureCode 33 = 12 % !
+\TMP@EnsureCode 58 = 12 % : (for siunitx)
+\TMP@EnsureCode124 = 12 % |
+\TMP@EnsureCode 36 =  3 % $ = math shift
+\TMP@EnsureCode 38 =  4 % & = tab alignment character
+\TMP@EnsureCode 32 = 10 % space
+\TMP@EnsureCode 94 =  7 % ^
+\TMP@EnsureCode 95 =  8 % _
+%% Constants --------------------------------------------------------
+\newcount \c@taburow        \def\thetaburow {\number\c@taburow}
+\newcount \tabu@nbcols
+\newcount \tabu@cnt
+\newcount \tabu@Xcol
+\let\tabu@start \@tempcnta
+\let\tabu@stop  \@tempcntb
+\newcount \tabu@alloc  \tabu@alloc=\m@ne
+\newcount \tabu@nested
+\def\tabu@alloc@{\global\advance\tabu@alloc \@ne \tabu@nested\tabu@alloc}
+\newdimen \tabu@target
+\newdimen \tabu@spreadtarget
+\newdimen \tabu@naturalX
+\newdimen \tabucolX
+\let\tabu@DELTA \@tempdimc
+\let\tabu@thick \@tempdima
+\let\tabu@on    \@tempdimb
+\let\tabu@off   \@tempdimc
+\newdimen \tabu@Xsum
+\newdimen \extrarowdepth
+\newdimen \abovetabulinesep
+\newdimen \belowtabulinesep
+\newdimen \tabustrutrule      \tabustrutrule \z@
+\newtoks \tabu@thebody
+\newtoks \tabu@footnotes
+\newsavebox \tabu@box
+\newsavebox \tabu@arstrutbox
+\newsavebox \tabu@hleads
+\newsavebox \tabu@vleads
+\newif \iftabu@colortbl
+\newif \iftabu@siunitx
+\newif \iftabu@measuring
+\newif \iftabu@spread
+\newif \iftabu@negcoef
+\newif \iftabu@everyrow
+\def\tabu@everyrowtrue {\global\let\iftabu@everyrow \iftrue}
+\def\tabu@everyrowfalse{\global\let\iftabu@everyrow \iffalse}
+\newif \iftabu@long
+\newif \iftabuscantokens
+\def\tabu@rescan {\tabu@verbatim \scantokens  }
+%% Utilities (for internal usage) -----------------------------------
+\def\tabu@gobblespace #1  {#1}
+\def\tabu@gobbletoken #1#2{#1}
+\def\tabu@gobbleX{\futurelet\@let@token \tabu@gobblex}
+\def\tabu@gobblex{\if ^^J\noexpand\@let@token \expandafter\@gobble
+                  \else\ifx \@sptoken\@let@token
+                    \expandafter\tabu@gobblespace\expandafter\tabu@gobbleX
+                  \fi\fi
+}% \tabu@gobblex
+\def\tabu@X{^^J}
+{\obeyspaces
+\global\let\tabu@spxiii= % saves an active space (for \ifx)
+\gdef\tabu@@spxiii{ }}
+\def\tabu@ifenvir {% only for \multicolumn
+    \expandafter\tabu@if@nvir\csname\@currenvir\endcsname
+}% \tabu@ifenvir
+\def\tabu@if@nvir #1{\csname @\ifx\tabu#1first\else
+                              \ifx\longtabu#1first\else
+                              second\fi\fi oftwo\endcsname
+}% \tabu@ifenvir
+\def\tabu@modulo #1#2{\numexpr\ifnum\numexpr#1=\z@ 0\else #1-(#1-(#2-1)/2)/(#2)*(#2)\fi}
+{\catcode`\&=3
+\gdef\tabu@strtrim  #1{% #1 = control sequence to trim
+    \ifodd 1\ifx #1\@empty \else \ifx #1\space \else 0\fi \fi
+            \let\tabu@c@l@r \@empty       \let#1\@empty
+    \else   \expandafter  \tabu@trimspaces  #1&#1\@nnil
+    \fi
+}% \tabu@strtrim
+\gdef\tabu@trimspaces #1&#2\@nnil{\let\tabu@c@l@r=#2\tabu@firstspace .#1& &#2}%
+\gdef\tabu@firstspace #1#2#3 &{\tabu@lastspace #2#3&}
+\gdef\tabu@lastspace #1&#2&#3{\def #3{#1}%
+    \ifx #3\tabu@c@l@r \def\tabu@c@l@r{\protect\color{#1}}\expandafter\remove@to@nnil \fi
+    \tabu@trimspaces #1&#3\@nnil}
+}% \catcode
+\def\tabu@sanitizearg #1#2{{%
+    \csname \ifcsname if@safe@actives\endcsname         % <babel>
+                      @safe@activestrue\else
+                      relax\fi       \endcsname
+    \edef#2{#1}\tabu@strtrim#2\@onelevel@sanitize#2%
+    \expandafter}\expandafter\def\expandafter#2\expandafter{#2}%
+}% \tabu@sanitizearg
+\def\tabu@textbar #1{\begingroup \endlinechar\m@ne \scantokens{\def\:{|}}%
+    \expandafter\endgroup \expandafter#1\:% !!! semi simple group !!!
+}% \tabu@textbar
+\def\tabu@everyrow@bgroup{\iftabu@everyrow \begingroup \else \noalign{\ifnum0=`}\fi \fi}
+\def\tabu@everyrow@egroup{%
+    \iftabu@everyrow \expandafter \endgroup \the\toks@
+    \else            \ifnum0=`{\fi}%
+    \fi
+}% \tabu@everyrow@egroup
+\def\tabu@arstrut {\global\setbox\@arstrutbox \hbox{\vrule
+    height \arraystretch \dimexpr\ht\strutbox+\extrarowheight
+    depth  \arraystretch \dimexpr\dp\strutbox+\extrarowdepth
+    width  \z@}%
+}% \tabu@arstrut
+\def\tabu@rearstrut {%
+    \@tempdima \arraystretch\dimexpr\ht\strutbox+\extrarowheight \relax
+    \@tempdimb \arraystretch\dimexpr\dp\strutbox+\extrarowdepth  \relax
+    \ifodd 1\ifdim \ht\@arstrutbox=\@tempdima
+            \ifdim \dp\@arstrutbox=\@tempdimb 0 \fi\fi
+        \tabu@mkarstrut
+    \fi
+}% \tabu@rearstrut
+\def\tabu@@DBG #1{\ifdim\tabustrutrule>\z@ \color{#1}\fi}
+\def\tabu@DBG@arstrut {\global\setbox\@arstrutbox
+    \hbox to\z@{\hbox to\z@{\hss
+    {\tabu@DBG{cyan}\vrule
+    height \arraystretch \dimexpr\ht\strutbox+\extrarowheight
+    depth  \z@
+    width  \tabustrutrule}\kern-\tabustrutrule
+    {\tabu@DBG{pink}\vrule
+    height \z@
+    depth  \arraystretch \dimexpr\dp\strutbox+\extrarowdepth
+    width \tabustrutrule}}}%
+}% \tabu@DBG@arstrut
+\def\tabu@save@decl{\toks\count@ \expandafter{\the\toks\expandafter\count@
+                                                              \@nextchar}}%
+\def\tabu@savedecl{\ifcat$\d@llarend\else
+       \let\save@decl \tabu@save@decl \fi % no inversion of tokens in text mode
+}% \tabu@savedecl
+\def\tabu@finalstrut #1{\unskip\ifhmode\nobreak\fi\vrule height\z@ depth\z@ width\z@}
+\newcommand*\tabuDisableCommands {\g@addto@macro\tabu@trialh@@k }
+\let\tabu@trialh@@k \@empty
+\def\tabu@nowrite #1#{{\afterassignment}\toks@}
+\let\tabu@write\write
+\let\tabu@immediate\immediate
+\def\tabu@WRITE{\begingroup
+   \def\immediate\write{\aftergroup\endgroup
+                  \tabu@immediate\tabu@write}%
+}% \tabu@WRITE
+\expandafter\def\expandafter\tabu@GenericError\expandafter{%
+                      \expandafter\tabu@WRITE\GenericError}
+\def\tabu@warn{\tabu@WRITE\PackageWarning{tabu}}
+\def\tabu@noxfootnote [#1]{\@gobble}
+\def\tabu@nocolor #1#{\@gobble}
+\newcommand*\tabu@norowcolor[2][]{}
+\def\tabu@maybesiunitx #1{\def\tabu@temp{#1}%
+                          \futurelet\@let@token \tabu@m@ybesiunitx}
+\def\tabu@m@ybesiunitx #1{\def\tabu@m@ybesiunitx {%
+    \ifx #1\@let@token \let\tabu@cellleft \@empty \let\tabu@cellright \@empty \fi
+    \tabu@temp}% \tabu@m@ybesiunitx
+}\expandafter\tabu@m@ybesiunitx \csname siunitx_table_collect_begin:Nn\endcsname
+\def\tabu@celllalign@def #1{\def\tabu@celllalign{\tabu@maybesiunitx{#1}}}%
+%% Fixed vertical spacing adjustment: \extrarowsep ------------------
+\newcommand*\extrarowsep{\edef\tabu@C@extra{\the\numexpr\tabu@C@extra+1}%
+    \iftabu@everyrow    \aftergroup\tabu@Gextra
+    \else               \aftergroup\tabu@n@Gextra
+    \fi
+    \@ifnextchar={\tabu@gobbletoken\tabu@extra} \tabu@extra
+}% \extrarowsep
+\def\tabu@extra {\@ifnextchar_%
+    {\tabu@gobbletoken{\tabu@setextra\extrarowheight \extrarowdepth}}
+    {\ifx ^\@let@token \def\tabu@temp{%
+            \tabu@gobbletoken{\tabu@setextra\extrarowdepth \extrarowheight}}%
+    \else   \let\tabu@temp \@empty
+            \afterassignment \tabu@setextrasep \extrarowdepth
+    \fi \tabu@temp}%
+}% \tabu@extra
+\def\tabu@setextra #1#2{\def\tabu@temp{\tabu@extr@#1#2}\afterassignment\tabu@temp#2}
+\def\tabu@extr@ #1#2{\@ifnextchar^%
+    {\tabu@gobbletoken{\tabu@setextra\extrarowdepth \extrarowheight}}
+    {\ifx _\@let@token \def\tabu@temp{%
+            \tabu@gobbletoken{\tabu@setextra\extrarowheight \extrarowdepth}}%
+    \else   \let\tabu@temp \@empty
+            \tabu@Gsave \tabu@G@extra \tabu@C@extra \extrarowheight \extrarowdepth
+    \fi \tabu@temp}%
+}% \tabu@extr@
+\def\tabu@setextrasep {\extrarowheight=\extrarowdepth
+    \tabu@Gsave \tabu@G@extra \tabu@C@extra \extrarowheight \extrarowdepth
+}% \tabu@setextrasep
+\def\tabu@Gextra{\ifx \tabu@G@extra\@empty \else {\tabu@Rextra}\fi}
+\def\tabu@n@Gextra{\ifx \tabu@G@extra\@empty \else \noalign{\tabu@Rextra}\fi}
+\def\tabu@Rextra{\tabu@Grestore \tabu@G@extra \tabu@C@extra}
+\let\tabu@C@extra \z@
+\let\tabu@G@extra \@empty
+%% Dynamic vertical spacing adjustment: \tabulinesep ----------------
+\newcommand*\tabulinesep{\edef\tabu@C@linesep{\the\numexpr\tabu@C@linesep+1}%
+    \iftabu@everyrow    \aftergroup\tabu@Glinesep
+    \else               \aftergroup\tabu@n@Glinesep
+    \fi
+    \@ifnextchar={\tabu@gobbletoken\tabu@linesep} \tabu@linesep
+}% \tabulinesep
+\def\tabu@linesep {\@ifnextchar_%
+    {\tabu@gobbletoken{\tabu@setsep\abovetabulinesep \belowtabulinesep}}
+    {\ifx ^\@let@token \def\tabu@temp{%
+            \tabu@gobbletoken{\tabu@setsep\belowtabulinesep \abovetabulinesep}}%
+     \else  \let\tabu@temp \@empty
+            \afterassignment \tabu@setlinesep \abovetabulinesep
+     \fi \tabu@temp}%
+}% \tabu@linesep
+\def\tabu@setsep #1#2{\def\tabu@temp{\tabu@sets@p#1#2}\afterassignment\tabu@temp#2}
+\def\tabu@sets@p #1#2{\@ifnextchar^%
+    {\tabu@gobbletoken{\tabu@setsep\belowtabulinesep \abovetabulinesep}}
+    {\ifx _\@let@token \def\tabu@temp{%
+            \tabu@gobbletoken{\tabu@setsep\abovetabulinesep \belowtabulinesep}}%
+    \else   \let\tabu@temp \@empty
+            \tabu@Gsave \tabu@G@linesep \tabu@C@linesep \abovetabulinesep \belowtabulinesep
+    \fi \tabu@temp}%
+}% \tabu@sets@p
+\def\tabu@setlinesep {\belowtabulinesep=\abovetabulinesep
+    \tabu@Gsave \tabu@G@linesep \tabu@C@linesep \abovetabulinesep \belowtabulinesep
+}% \tabu@setlinesep
+\def\tabu@Glinesep{\ifx \tabu@G@linesep\@empty \else {\tabu@Rlinesep}\fi}
+\def\tabu@n@Glinesep{\ifx \tabu@G@linesep\@empty \else \noalign{\tabu@Rlinesep}\fi}
+\def\tabu@Rlinesep{\tabu@Grestore \tabu@G@linesep \tabu@C@linesep}
+\let\tabu@C@linesep \z@
+\let\tabu@G@linesep \@empty
+%% \global\extrarowsep  and  \global\tabulinesep  -------------------
+\def\tabu@Gsave #1#2#3#4{\xdef#1{#1%
+    \toks#2{\toks\the\currentgrouplevel{\global#3\the#3\global#4\the#4}}}%
+}% \tabu@Gsave
+\def\tabu@Grestore#1#2{%
+    \toks#2{}#1\toks\currentgrouplevel\expandafter{\expandafter}\the\toks#2\relax
+    \ifcat$\the\toks\currentgrouplevel$\else
+        \global\let#1\@empty \global\let#2\z@
+        \the\toks\currentgrouplevel
+    \fi
+}% \tabu@Grestore
+%% Setting code for every row ---------------------------------------
+\newcommand*\everyrow{\tabu@everyrow@bgroup
+                      \tabu@start \z@ \tabu@stop \z@ \tabu@evrstartstop
+}% \everyrow
+\def\tabu@evrstartstop {\@ifnextchar^%
+    {\afterassignment \tabu@evrstartstop \tabu@stop=}%
+    {\ifx ^\@let@token
+            \afterassignment\tabu@evrstartstop \tabu@start=%
+     \else  \afterassignment\tabu@everyr@w     \toks@
+     \fi}%
+}% \tabu@evrstartstop
+\def\tabu@everyr@w {%
+    \xdef\tabu@everyrow{%
+        \noexpand\tabu@everyrowfalse
+        \let\noalign \relax
+        \noexpand\tabu@rowfontreset
+        \iftabu@colortbl \noexpand\tabu@rc@ \fi % \taburowcolors
+        \let\noexpand\tabu@docline \noexpand\tabu@docline@evr
+        \the\toks@
+        \noexpand\tabu@evrh@@k
+        \noexpand\tabu@rearstrut
+        \global\advance\c@taburow \@ne}%
+    \iftabu@everyrow \toks@\expandafter
+        {\expandafter\def\expandafter\tabu@evr@L\expandafter{\the\toks@}\ignorespaces}%
+    \else \xdef\tabu@evr@G{\the\toks@}%
+    \fi
+    \tabu@everyrow@egroup
+}% \tabu@everyr@w
+\def\tabu@evr {\def\tabu@evrh@@k}         % for internal use only
+\tabu@evr{}
+%% line style and leaders -------------------------------------------
+\newcommand*\newtabulinestyle [1]{%
+    {\@for \@tempa :=#1\do{\expandafter\tabu@newlinestyle \@tempa==\@nil}}%
+}% \newtabulinestyle
+\def\tabu@newlinestyle #1=#2=#3\@nil{\tabu@getline {#2}%
+    \tabu@sanitizearg {#1}\@tempa
+    \ifodd 1\ifx \@tempa\@empty \ifdefined\tabu@linestyle@ 0 \fi\fi
+    \global\expandafter\let
+        \csname tabu@linestyle@\@tempa \endcsname =\tabu@thestyle \fi
+}% \tabu@newlinestyle
+\newcommand*\tabulinestyle [1]{\tabu@everyrow@bgroup \tabu@getline{#1}%
+    \iftabu@everyrow
+        \toks@\expandafter{\expandafter \def \expandafter
+                    \tabu@ls@L\expandafter{\tabu@thestyle}\ignorespaces}%
+        \gdef\tabu@ls@{\tabu@ls@L}%
+    \else
+        \global\let\tabu@ls@G \tabu@thestyle
+        \gdef\tabu@ls@{\tabu@ls@G}%
+    \fi
+    \tabu@everyrow@egroup
+}% \tabulinestyle
+\newcommand*\taburulecolor{\tabu@everyrow@bgroup \tabu@textbar \tabu@rulecolor}
+\def\tabu@rulecolor #1{\toks@{}%
+    \def\tabu@temp #1##1#1{\tabu@ruledrsc{##1}}\@ifnextchar #1%
+                                                    \tabu@temp
+                                                 \tabu@rulearc
+}% \tabu@rulecolor
+\def\tabu@ruledrsc #1{\edef\tabu@temp{#1}\tabu@strtrim\tabu@temp
+    \ifx \tabu@temp\@empty \def\tabu@temp{\tabu@rule@drsc@ {}{}}%
+    \else \edef\tabu@temp{\noexpand\tabu@rule@drsc@ {}{\tabu@temp}}%
+    \fi
+    \tabu@temp
+}% \tabu@ruledrsc@
+\def\tabu@ruledrsc@   #1#{\tabu@rule@drsc@ {#1}}
+\def\tabu@rule@drsc@ #1#2{%
+    \iftabu@everyrow
+        \ifx \\#1#2\\\toks@{\let\CT@drsc@ \relax}%
+        \else        \toks@{\def\CT@drsc@{\color #1{#2}}}%
+        \fi
+    \else
+        \ifx \\#1#2\\\global\let\CT@drsc@ \relax
+        \else        \gdef\CT@drsc@{\color #1{#2}}%
+        \fi
+    \fi
+    \tabu@rulearc
+}% \tabu@rule@drsc@
+\def\tabu@rulearc    #1#{\tabu@rule@arc@ {#1}}
+\def\tabu@rule@arc@ #1#2{%
+    \iftabu@everyrow
+        \ifx \\#1#2\\\toks@\expandafter{\the\toks@ \def\CT@arc@{}}%
+        \else        \toks@\expandafter{\the\toks@ \def\CT@arc@{\color #1{#2}}}%
+        \fi
+        \toks@\expandafter{\the\toks@
+            \let\tabu@arc@L  \CT@arc@
+            \let\tabu@drsc@L \CT@drsc@
+            \ignorespaces}%
+    \else
+        \ifx \\#1#2\\\gdef\CT@arc@{}%
+        \else        \gdef\CT@arc@{\color #1{#2}}%
+        \fi
+        \global\let\tabu@arc@G  \CT@arc@
+        \global\let\tabu@drsc@G \CT@drsc@
+    \fi
+    \tabu@everyrow@egroup
+}% \tabu@rule@arc@
+\def\taburowcolors {\tabu@everyrow@bgroup \@testopt \tabu@rowcolors 1}
+\def\tabu@rowcolors [#1]#2#{\tabu@rowc@lors{#1}{#2}}
+\def\tabu@rowc@lors #1#2#3{%
+    \toks@{}\@defaultunits \count@      =\number0#2\relax \@nnil
+            \@defaultunits \tabu@start  =\number0#1\relax \@nnil
+    \ifnum \count@<\tw@ \count@=\tw@ \fi
+    \advance\tabu@start \m@ne
+    \ifnum \tabu@start<\z@ \tabu@start \z@ \fi
+    \tabu@rowcolorseries #3\in@..\in@ \@nnil
+}% \tabu@rowcolors
+\def\tabu@rowcolorseries #1..#2\in@ #3\@nnil {%
+    \ifx \in@#1\relax
+        \iftabu@everyrow \toks@{\def\tabu@rc@{}\let\tabu@rc@L \tabu@rc@}%
+        \else   \gdef\tabu@rc@{}\global\let\tabu@rc@G \tabu@rc@
+        \fi
+    \else
+        \ifx \\#2\\\tabu@rowcolorserieserror \fi
+        \tabu@sanitizearg{#1}\tabu@temp
+        \tabu@sanitizearg{#2}\@tempa
+        \advance\count@ \m@ne
+    \iftabu@everyrow
+        \def\tabu@rc@ ##1##2##3##4{\def\tabu@rc@{%
+            \ifnum ##2=\c@taburow
+                \definecolorseries{tabu@rcseries@\the\tabu@nested}{rgb}{last}{##3}{##4}\fi
+            \ifnum \c@taburow<##2 \else
+                \ifnum \tabu@modulo {\c@taburow-##2}{##1+1}=\z@
+                    \resetcolorseries[{##1}]{tabu@rcseries@\the\tabu@nested}\fi
+                \xglobal\colorlet{tabu@rc@\the\tabu@nested}{tabu@rcseries@\the\tabu@nested!!+}%
+                \rowcolor{tabu@rc@\the\tabu@nested}\fi}%
+        }\edef\x{\noexpand\tabu@rc@           {\the\count@}
+                                          {\the\tabu@start}
+                                               {\tabu@temp}
+                                                  {\@tempa}%
+                }\x
+        \toks@\expandafter{\expandafter\def\expandafter\tabu@rc@\expandafter{\tabu@rc@}}%
+        \toks@\expandafter{\the\toks@ \let\tabu@rc@L \tabu@rc@ \ignorespaces}%
+    \else   % inside \noalign
+        \definecolorseries{tabu@rcseries@\the\tabu@nested}{rgb}{last}{\tabu@temp}{\@tempa}%
+        \expandafter\resetcolorseries\expandafter[\the\count@]{tabu@rcseries@\the\tabu@nested}%
+        \xglobal\colorlet{tabu@rc@\the\tabu@nested}{tabu@rcseries@\the\tabu@nested!!+}%
+        \let\noalign \relax \rowcolor{tabu@rc@\the\tabu@nested}%
+        \def\tabu@rc@ ##1##2{\gdef\tabu@rc@{%
+            \ifnum \tabu@modulo {\c@taburow-##2}{##1+1}=\@ne
+                \resetcolorseries[{##1}]{tabu@rcseries@\the\tabu@nested}\fi
+            \xglobal\colorlet{tabu@rc@\the\tabu@nested}{tabu@rcseries@\the\tabu@nested!!+}%
+            \rowcolor{tabu@rc@\the\tabu@nested}}%
+        }\edef\x{\noexpand\tabu@rc@{\the\count@}{\the\c@taburow}}\x
+        \global\let\tabu@rc@G \tabu@rc@
+    \fi
+    \fi
+    \tabu@everyrow@egroup
+}% \tabu@rowcolorseries
+\tabuDisableCommands {\let\tabu@rc@ \@empty }
+\def\tabu@rowcolorserieserror {\PackageError{tabu}
+    {Invalid syntax for \string\taburowcolors
+    \MessageBreak Please look at the documentation!}\@ehd
+}% \tabu@rowcolorserieserror
+\newcommand*\tabureset {%
+    \tabulinesep=\z@ \extrarowsep=\z@ \extratabsurround=\z@
+    \tabulinestyle{}\everyrow{}\taburulecolor||{}\taburowcolors{}%
+}% \tabureset
+%% Parsing the line styles ------------------------------------------
+\def\tabu@getline #1{\begingroup
+    \csname \ifcsname if@safe@actives\endcsname         % <babel>
+                      @safe@activestrue\else
+                      relax\fi       \endcsname
+    \edef\tabu@temp{#1}\tabu@sanitizearg{#1}\@tempa
+    \let\tabu@thestyle \relax
+    \ifcsname tabu@linestyle@\@tempa \endcsname
+            \edef\tabu@thestyle{\endgroup
+                \def\tabu@thestyle{\expandafter\noexpand
+                    \csname tabu@linestyle@\@tempa\endcsname}%
+            }\tabu@thestyle
+    \else   \expandafter\tabu@definestyle \tabu@temp \@nil
+    \fi
+}% \tabu@getline
+\def\tabu@definestyle #1#2\@nil {\endlinechar \m@ne \makeatletter
+    \tabu@thick \maxdimen  \tabu@on \maxdimen   \tabu@off \maxdimen
+    \let\tabu@c@lon \@undefined  \let\tabu@c@loff \@undefined
+    \ifodd 1\ifcat .#1\else\ifcat\relax #1\else 0\fi\fi % catcode 12 or non expandable cs
+            \def\tabu@temp{\tabu@getparam{thick}}%
+    \else   \def\tabu@temp{\tabu@getparam{thick}\maxdimen}%
+    \fi
+    {%
+        \let\tabu@ \relax
+        \def\:{\obeyspaces \tabu@oXIII \tabu@commaXIII \edef\:}% (space active \: happy ;-))
+        \scantokens{\:{\tabu@temp #1#2 \tabu@\tabu@}}%
+                        \expandafter}\expandafter
+                                \def\expandafter\:\expandafter{\:}% line spec rewritten now ;-)
+    \def\;{\def\:}%
+    \scantokens\expandafter{\expandafter\;\expandafter{\:}}% space is now inactive (catcode 10)
+    \let\tabu@ \tabu@getcolor    \:%    all arguments are ready now ;-)
+    \ifdefined\tabu@c@lon \else \let\tabu@c@lon\@empty \fi
+    \ifx \tabu@c@lon\@empty \def\tabu@c@lon{\CT@arc@}\fi
+    \ifdefined\tabu@c@loff \else \let\tabu@c@loff \@empty        \fi
+    \ifdim \tabu@on=\maxdimen \ifdim \tabu@off<\maxdimen
+                                  \tabu@on \tabulineon        \fi\fi
+    \ifdim \tabu@off=\maxdimen \ifdim \tabu@on<\maxdimen
+                                  \tabu@off \tabulineoff      \fi\fi
+    \ifodd 1\ifdim \tabu@off=\maxdimen \ifdim \tabu@on=\maxdimen 0 \fi\fi
+            \in@true    % <leaders>
+    \else   \in@false   % <rule>
+    \fi
+    \ifdim\tabu@thick=\maxdimen \def\tabu@thick{\arrayrulewidth}%
+    \else                       \edef\tabu@thick{\the\tabu@thick}%
+    \fi
+    \edef \tabu@thestyle ##1##2{\endgroup
+        \def\tabu@thestyle{%
+            \ifin@  \noexpand\tabu@leadersstyle {\tabu@thick}
+                                                {\the\tabu@on}{##1}
+                                                {\the\tabu@off}{##2}%
+            \else   \noexpand\tabu@rulesstyle
+                            {##1\vrule width \tabu@thick}%
+                            {##1\leaders \hrule height \tabu@thick \hfil}%
+            \fi}%
+    }\expandafter \expandafter
+        \expandafter \tabu@thestyle \expandafter
+            \expandafter \expandafter
+                {\expandafter\tabu@c@lon\expandafter}\expandafter{\tabu@c@loff}%
+}% \tabu@definestyle
+{\catcode`\O=\active \lccode`\O=`\o \catcode`\,=\active
+    \lowercase{\gdef\tabu@oXIII {\catcode`\o=\active \let O=\tabu@oxiii}}
+    \gdef\tabu@commaXIII {\catcode`\,=\active \let ,=\space}
+}% \catcode
+\def\tabu@oxiii #1{%
+    \ifcase  \ifx n#1\z@ \else
+             \ifx f#1\@ne\else
+             \tw@       \fi\fi
+          \expandafter\tabu@onxiii
+    \or   \expandafter\tabu@ofxiii
+    \else o%
+    \fi#1}%
+\def\tabu@onxiii #1#2{%
+    \ifcase  \ifx  !#2\tw@          \else
+             \ifcat.\noexpand#2\z@  \else
+             \ifx \tabu@spxiii#2\@ne\else
+             \tw@               \fi\fi\fi
+          \tabu@getparam{on}#2\expandafter\@gobble
+    \or   \expandafter\tabu@onxiii    % (space is active)
+    \else o\expandafter\@firstofone
+    \fi{#1#2}}%
+\def\tabu@ofxiii #1#2{%
+    \ifx #2f\expandafter\tabu@offxiii
+    \else   o\expandafter\@firstofone
+    \fi{#1#2}}
+\def\tabu@offxiii #1#2{%
+    \ifcase \ifx  !#2\tw@           \else
+            \ifcat.\noexpand#2\z@   \else
+            \ifx\tabu@spxiii#2\@ne  \else
+            \tw@                \fi\fi\fi
+          \tabu@getparam{off}#2\expandafter\@gobble
+    \or   \expandafter\tabu@offxiii   % (space is active)
+    \else o\expandafter\@firstofone
+    \fi{#1#2}}
+\def\tabu@getparam #1{\tabu@ \csname tabu@#1\endcsname=}
+\def\tabu@getcolor #1{% \tabu@ <- \tabu@getcolor after \edef
+    \ifx \tabu@#1\else   % no more spec
+        \let\tabu@theparam=#1\afterassignment \tabu@getc@l@r #1\fi
+}% \tabu@getcolor
+\def\tabu@getc@l@r #1\tabu@ {%
+    \def\tabu@temp{#1}\tabu@strtrim \tabu@temp
+    \ifx \tabu@temp\@empty
+    \else%\ifcsname \string\color@\tabu@temp \endcsname  % if the color exists
+        \ifx \tabu@theparam \tabu@off   \let\tabu@c@loff \tabu@c@l@r
+        \else                           \let\tabu@c@lon  \tabu@c@l@r
+        \fi
+    %\else \tabu@warncolour{\tabu@temp}%
+    \fi%\fi
+    \tabu@ % next spec
+}% \tabu@getc@l@r
+\def\tabu@warncolour #1{\PackageWarning{tabu}
+    {Color #1 is not defined. Default color used}%
+}% \tabu@warncolour
+\def\tabu@leadersstyle #1#2#3#4#5{\def\tabu@leaders{{#1}{#2}{#3}{#4}{#5}}%
+    \ifx \tabu@leaders\tabu@leaders@G \else
+                \tabu@LEADERS{#1}{#2}{#3}{#4}{#5}\fi
+}% \tabu@leadersstyle
+\def\tabu@rulesstyle #1#2{\let\tabu@leaders \@undefined
+        \gdef\tabu@thevrule{#1}\gdef\tabu@thehrule{#2}%
+}% \tabu@rulesstyle
+%% The leaders boxes ------------------------------------------------
+\def\tabu@LEADERS #1#2#3#4#5{%% width, dash, dash color, gap, gap color
+    {\let\color \tabu@color % => during trials ->  \color = \tabu@nocolor
+    {%                      %    but the leaders boxes should have colors !
+    \def\@therule{\vrule}\def\@thick{height}\def\@length{width}%
+    \def\@box{\hbox}\def\@unbox{\unhbox}\def\@elt{\wd}%
+    \def\@skip{\hskip}\def\@ss{\hss}\def\tabu@leads{\tabu@hleads}%
+    \tabu@l@@d@rs {#1}{#2}{#3}{#4}{#5}%
+    \global\let\tabu@thehleaders \tabu@theleaders
+    }%
+    {%
+    \def\@therule{\hrule}\def\@thick{width}\def\@length{height}%
+    \def\@box{\vbox}\def\@unbox{\unvbox}\def\@elt{\ht}%
+    \def\@skip{\vskip}\def\@ss{\vss}\def\tabu@leads{\tabu@vleads}%
+    \tabu@l@@d@rs {#1}{#2}{#3}{#4}{#5}%
+    \global\let\tabu@thevleaders \tabu@theleaders
+    }%
+    \gdef\tabu@leaders@G{{#1}{#2}{#3}{#4}{#5}}%
+    }%
+}% \tabu@LEADERS
+\def\tabu@therule #1#2{\@therule \@thick#1\@length\dimexpr#2/2 \@depth\z@}
+\def\tabu@l@@d@rs #1#2#3#4#5{%% width, dash, dash color, gap, gap color
+    \global\setbox \tabu@leads=\@box{%
+        {#3\tabu@therule{#1}{#2}}%
+        \ifx\\#5\\\@skip#4\else{#5\tabu@therule{#1}{#4*2}}\fi
+        {#3\tabu@therule{#1}{#2}}}%
+    \global\setbox\tabu@leads=\@box to\@elt\tabu@leads{\@ss
+        {#3\tabu@therule{#1}{#2}}\@unbox\tabu@leads}%
+    \edef\tabu@theleaders ##1{\def\noexpand\tabu@theleaders {%
+        {##1\tabu@therule{#1}{#2}}%
+        \xleaders \copy\tabu@leads \@ss
+        \tabu@therule{0pt}{-#2}{##1\tabu@therule{#1}{#2}}}%
+    }\tabu@theleaders{#3}%
+}% \tabu@l@@d@rs
+%% \tabu \endtabu \tabu* \longtabu \endlongtabu \longtabu* ----------
+\newcommand*\tabu {\tabu@longfalse
+    \ifmmode \def\tabu@ {\array}\def\endtabu {\endarray}%
+    \else  \def\tabu@ {\tabu@tabular}\def\endtabu {\endtabular}\fi
+    \expandafter\let\csname tabu*\endcsname \tabu
+    \expandafter\def\csname endtabu*\endcsname{\endtabu}%
+    \tabu@spreadfalse \tabu@negcoeffalse \tabu@settarget
+}% {tabu}
+\let\tabu@tabular \tabular % <For LyX: some users redefine \tabular...>
+\expandafter\def\csname tabu*\endcsname{\tabuscantokenstrue \tabu}
+\newcommand*\longtabu {\tabu@longtrue
+   \ifmmode\PackageError{tabu}{longtabu not allowed in math mode}\fi
+   \def\tabu@{\longtable}\def\endlongtabu{\endlongtable}%
+   \LTchunksize=\@M
+   \expandafter\let\csname tabu*\endcsname \tabu
+   \expandafter\def\csname endlongtabu*\endcsname{\endlongtabu}%
+   \let\LT@startpbox \tabu@LT@startpbox % \everypar{ array struts }
+   \tabu@spreadfalse \tabu@negcoeffalse \tabu@settarget
+}% {longtabu}
+\expandafter\def\csname longtabu*\endcsname{\tabuscantokenstrue \longtabu}
+\def\tabu@nolongtabu{\PackageError{tabu}
+   {longtabu requires the longtable package}\@ehd}
+%% Read the target and  then : \tabular or \@array ------------------
+\def\tabu@settarget {\futurelet\@let@token \tabu@sett@rget }
+\def\tabu@sett@rget {\tabu@target \z@
+   \ifcase \ifx \bgroup\@let@token   \z@  \else
+           \ifx \@sptoken\@let@token \@ne \else
+           \if t\@let@token          \tw@ \else
+           \if s\@let@token          \thr@@\else
+           \z@\fi\fi\fi\fi
+         \expandafter\tabu@begin
+   \or   \expandafter\tabu@gobblespace\expandafter\tabu@settarget
+   \or   \expandafter\tabu@to
+   \or   \expandafter\tabu@spread
+   \fi
+}% \tabu@sett@rget
+\def\tabu@to to{\def\tabu@halignto{to}\tabu@gettarget}
+\def\tabu@spread spread{\tabu@spreadtrue\def\tabu@halignto{spread}\tabu@gettarget}
+\def\tabu@gettarget {\afterassignment\tabu@linegoaltarget \tabu@target }
+\def\tabu@linegoaltarget {\futurelet\tabu@temp \tabu@linegoalt@rget }
+\def\tabu@linegoalt@rget {%
+   \ifx \tabu@temp\LNGL@setlinegoal
+        \LNGL@setlinegoal \expandafter \@firstoftwo \fi % @gobbles \LNGL@setlinegoal
+   \tabu@begin
+}% \tabu@linegoalt@rget
+\def\tabu@begin #1#{%
+    \iftabu@measuring \expandafter\tabu@nestedmeasure \fi
+    \ifdim \tabu@target=\z@ \let\tabu@halignto \@empty
+    \else                   \edef\tabu@halignto{\tabu@halignto\the\tabu@target}%
+    \fi
+    \@testopt \tabu@tabu@ \tabu@aligndefault #1\@nil
+}% \tabu@begin
+\long\def\tabu@tabu@ [#1]#2\@nil #3{\tabu@setup
+   \def\tabu@align {#1}\def\tabu@savedpream{\NC@find #3}%
+   \tabu@ [\tabu@align ]#2{#3\tabu@rewritefirst }%
+}% \tabu@tabu@
+\def\tabu@nestedmeasure {%
+    \ifodd 1\iftabu@spread \else \ifdim\tabu@target=\z@ \else 0 \fi\fi\relax
+            \tabu@spreadtrue
+    \else   \begingroup \iffalse{\fi \ifnum0=`}\fi
+            \toks@{}\def\tabu@stack{b}%
+            \expandafter\tabu@collectbody\expandafter\tabu@quickrule
+                                         \expandafter\endgroup
+    \fi
+}% \tabu@nestedmeasure
+\def\tabu@quickrule {\indent\vrule height\z@ depth\z@ width\tabu@target}
+%% \tabu@setup  \tabu@init  \tabu@indent
+\def\tabu@setup{\tabu@alloc@
+    \ifcase \tabu@nested
+        \ifmmode \else \iftabu@spread\else \ifdim\tabu@target=\z@
+            \let\tabu@afterendpar \par
+        \fi\fi\fi
+        \def\tabu@aligndefault{c}\tabu@init \tabu@indent
+    \else       % <nested tabu>
+        \def\tabu@aligndefault{t}\let\tabudefaulttarget \linewidth
+    \fi
+    \let\tabu@thetarget \tabudefaulttarget \let\tabu@restored \@undefined
+    \edef\tabu@NC@list{\the\NC@list}\NC@list{\NC@do \tabu@rewritefirst}%
+    \everycr{}\let\@startpbox \tabu@startpbox % for nested tabu inside longtabu...
+              \let\@endpbox   \tabu@endpbox   % idem "    "    "    "    "    "
+              \let\@tabarray  \tabu@tabarray  % idem "    "    "    "    "    "
+    \tabu@setcleanup \tabu@setreset
+}% \tabu@setup
+\def\tabu@init{\tabu@starttimer \tabu@measuringfalse
+    \edef\tabu@hfuzz  {\the\dimexpr\hfuzz+1sp}\global\tabu@footnotes{}%
+    \let\firsthline    \tabu@firsthline   \let\lasthline      \tabu@lasthline
+    \let\firstline     \tabu@firstline    \let\lastline       \tabu@lastline
+    \let\hline         \tabu@hline        \let\@xhline        \tabu@xhline
+    \let\color         \tabu@color        \let\@arstrutbox    \tabu@arstrutbox
+    \iftabu@colortbl\else\let\LT@@hline   \tabu@LT@@hline \fi
+    \tabu@trivlist     %<restore \\=\@normalcr inside lists>
+    \let\@footnotetext \tabu@footnotetext \let\@xfootnotetext \tabu@xfootnotetext
+    \let\@xfootnote    \tabu@xfootnote    \let\centering      \tabu@centering
+    \let\raggedright   \tabu@raggedright  \let\raggedleft     \tabu@raggedleft
+    \let\tabudecimal   \tabu@tabudecimal  \let\Centering      \tabu@Centering
+    \let\RaggedRight   \tabu@RaggedRight  \let\RaggedLeft     \tabu@RaggedLeft
+    \let\justifying    \tabu@justifying   \let\rowfont        \tabu@rowfont
+    \let\fbox          \tabu@fbox         \let\color@b@x      \tabu@color@b@x
+    \let\tabu@@everycr \everycr           \let\tabu@@everypar \everypar
+    \let\tabu@prepnext@tokORI \prepnext@tok\let\prepnext@tok  \tabu@prepnext@tok
+    \let\tabu@multicolumnORI\multicolumn  \let\multicolumn    \tabu@multicolumn
+    \let\tabu@startpbox \@startpbox      % for nested tabu inside longtabu pfff !!!
+    \let\tabu@endpbox   \@endpbox        % idem  "    "    "    "    "    "    "
+    \let\tabu@tabarray  \@tabarray       % idem  "    "    "    "    "    "    "
+    \tabu@adl@fix      \let\endarray      \tabu@endarray % <fix> colortbl & arydshln (delarray)
+    \iftabu@colortbl\CT@everycr\expandafter{\expandafter\iftabu@everyrow \the\CT@everycr \fi}\fi
+}% \tabu@init
+\def\tabu@indent{% correction for indentation
+    \ifdim \parindent>\z@\ifx \linewidth\tabudefaulttarget
+    \everypar\expandafter{%
+        \the\everypar\everypar\expandafter{\the\everypar}%
+            \setbox\z@=\lastbox
+            \ifdim\wd\z@>\z@ \edef\tabu@thetarget
+                {\the\dimexpr -\wd\z@+\tabudefaulttarget}\fi
+            \box\z@}%
+    \fi\fi
+}% \tabu@indent
+\def\tabu@setcleanup {% saves last global assignments
+    \ifodd 1\ifmmode \else \iftabu@long \else 0\fi\fi\relax
+        \def\tabu@aftergroupcleanup{%
+                \def\tabu@aftergroupcleanup{\aftergroup\tabu@cleanup}}%
+    \else
+        \def\tabu@aftergroupcleanup{%
+                \aftergroup\aftergroup\aftergroup\tabu@cleanup
+                \let\tabu@aftergroupcleanup \relax}%
+    \fi
+    \let\tabu@arc@Gsave         \tabu@arc@G
+    \let\tabu@arc@G             \tabu@arc@L   % <init>
+    \let\tabu@drsc@Gsave        \tabu@drsc@G
+    \let\tabu@drsc@G            \tabu@drsc@L  % <init>
+    \let\tabu@ls@Gsave          \tabu@ls@G
+    \let\tabu@ls@G              \tabu@ls@L    % <init>
+    \let\tabu@rc@Gsave          \tabu@rc@G
+    \let\tabu@rc@G              \tabu@rc@L    % <init>
+    \let\tabu@evr@Gsave         \tabu@evr@G
+    \let\tabu@evr@G             \tabu@evr@L   % <init>
+    \let\tabu@celllalign@save   \tabu@celllalign
+    \let\tabu@cellralign@save   \tabu@cellralign
+    \let\tabu@cellleft@save     \tabu@cellleft
+    \let\tabu@cellright@save    \tabu@cellright
+    \let\tabu@@celllalign@save  \tabu@@celllalign
+    \let\tabu@@cellralign@save  \tabu@@cellralign
+    \let\tabu@@cellleft@save    \tabu@@cellleft
+    \let\tabu@@cellright@save   \tabu@@cellright
+    \let\tabu@rowfontreset@save \tabu@rowfontreset
+    \let\tabu@@rowfontreset@save\tabu@@rowfontreset
+    \let\tabu@rowfontreset      \@empty
+    \edef\tabu@alloc@save      {\the\tabu@alloc}%   restore at \tabu@reset
+    \edef\c@taburow@save       {\the\c@taburow}%
+    \edef\tabu@naturalX@save   {\the\tabu@naturalX}%
+    \let\tabu@naturalXmin@save  \tabu@naturalXmin
+    \let\tabu@naturalXmax@save  \tabu@naturalXmax
+    \let\tabu@mkarstrut@save    \tabu@mkarstrut
+    \edef\tabu@clarstrut{%
+        \extrarowheight \the\dimexpr \ht\@arstrutbox-\ht\strutbox \relax
+        \extrarowdepth \the\dimexpr \dp\@arstrutbox-\dp\strutbox \relax
+        \let\noexpand\@arraystretch \@ne \noexpand\tabu@rearstrut}%
+}% \tabu@setcleanup
+\def\tabu@cleanup {\begingroup
+    \globaldefs\@ne         \tabu@everyrowtrue
+    \let\tabu@arc@G         \tabu@arc@Gsave
+    \let\CT@arc@            \tabu@arc@G
+    \let\tabu@drsc@G        \tabu@drsc@Gsave
+    \let\CT@drsc@           \tabu@drsc@G
+    \let\tabu@ls@G          \tabu@ls@Gsave
+    \let\tabu@ls@           \tabu@ls@G
+    \let\tabu@rc@G          \tabu@rc@Gsave
+    \let\tabu@rc@           \tabu@rc@G
+    \let\CT@do@color        \relax
+    \let\tabu@evr@G         \tabu@evr@Gsave
+    \let\tabu@celllalign    \tabu@celllalign@save
+    \let\tabu@cellralign    \tabu@cellralign@save
+    \let\tabu@cellleft      \tabu@cellleft@save
+    \let\tabu@cellright     \tabu@cellright@save
+    \let\tabu@@celllalign   \tabu@@celllalign@save
+    \let\tabu@@cellralign   \tabu@@cellralign@save
+    \let\tabu@@cellleft     \tabu@@cellleft@save
+    \let\tabu@@cellright    \tabu@@cellright@save
+    \let\tabu@rowfontreset  \tabu@rowfontreset@save
+    \let\tabu@@rowfontreset \tabu@@rowfontreset@save
+    \tabu@naturalX         =\tabu@naturalX@save
+    \let\tabu@naturalXmax   \tabu@naturalXmax@save
+    \let\tabu@naturalXmin   \tabu@naturalXmin@save
+    \let\tabu@mkarstrut     \tabu@mkarstrut@save
+    \c@taburow             =\c@taburow@save
+    \ifcase \tabu@nested    \tabu@alloc \m@ne\fi
+    \endgroup               % <end of \globaldefs>
+    \ifcase \tabu@nested
+        \the\tabu@footnotes \global\tabu@footnotes{}%
+        \tabu@afterendpar   \tabu@elapsedtime
+    \fi
+    \tabu@clarstrut
+    \everyrow\expandafter   {\tabu@evr@G}%
+}% \tabu@cleanup
+\let\tabu@afterendpar \relax
+\def\tabu@setreset {%
+    \edef\tabu@savedparams {%         \relax for \tabu@message@save
+        \ifmmode \col@sep \the\arraycolsep
+        \else    \col@sep \the\tabcolsep \fi    \relax
+        \arrayrulewidth   \the\arrayrulewidth   \relax
+        \doublerulesep    \the\doublerulesep    \relax
+        \extratabsurround \the\extratabsurround \relax
+        \extrarowheight   \the\extrarowheight   \relax
+        \extrarowdepth    \the\extrarowdepth    \relax
+        \abovetabulinesep \the\abovetabulinesep \relax
+        \belowtabulinesep \the\belowtabulinesep \relax
+        \def\noexpand\arraystretch{\arraystretch}%
+        \ifdefined\minrowclearance \minrowclearance\the\minrowclearance\relax\fi}%
+    \begingroup
+        \@temptokena\expandafter{\tabu@savedparams}% => only for \savetabu / \usetabu
+        \ifx \tabu@arc@L\relax  \else \tabu@setsave \tabu@arc@L \fi
+        \ifx \tabu@drsc@L\relax \else \tabu@setsave \tabu@drsc@L \fi
+        \tabu@setsave \tabu@ls@L      \tabu@setsave \tabu@evr@L
+        \expandafter \endgroup \expandafter
+            \def\expandafter\tabu@saved@ \expandafter{\the\@temptokena
+                \let\tabu@arc@G  \tabu@arc@L
+                \let\tabu@drsc@G \tabu@drsc@L
+                \let\tabu@ls@G   \tabu@ls@L
+                \let\tabu@rc@G   \tabu@rc@L
+                \let\tabu@evr@G  \tabu@evr@L}%
+    \def\tabu@reset{\tabu@savedparams
+        \tabu@everyrowtrue  \c@taburow \z@
+        \let\CT@arc@        \tabu@arc@L
+        \let\CT@drsc@       \tabu@drsc@L
+        \let\tabu@ls@       \tabu@ls@L
+        \let\tabu@rc@       \tabu@rc@L
+        \global\tabu@alloc  \tabu@alloc@save
+        \everyrow\expandafter{\tabu@evr@L}}%
+}% \tabu@reset
+\def\tabu@setsave #1{\expandafter\tabu@sets@ve #1\@nil{#1}}
+\long\def\tabu@sets@ve #1\@nil #2{\@temptokena\expandafter{\the\@temptokena \def#2{#1}}}
+%% The Rewriting Process -------------------------------------------
+\def\tabu@newcolumntype #1{%
+    \expandafter\tabu@new@columntype
+        \csname NC@find@\string#1\expandafter\endcsname
+        \csname NC@rewrite@\string#1\endcsname
+        {#1}%
+}% \tabu@newcolumntype
+\def\tabu@new@columntype #1#2#3{%
+    \def#1##1#3{\NC@{##1}}%
+    \let#2\relax \newcommand*#2%
+}% \tabu@new@columntype
+\def\tabu@privatecolumntype #1{%
+    \expandafter\tabu@private@columntype
+        \csname NC@find@\string#1\expandafter\endcsname
+        \csname NC@rewrite@\string#1\expandafter\endcsname
+        \csname tabu@NC@find@\string#1\expandafter\endcsname
+        \csname tabu@NC@rewrite@\string#1\endcsname
+        {#1}%
+}% \tabu@privatecolumntype
+\def\tabu@private@columntype#1#2#3#4{%
+    \g@addto@macro\tabu@privatecolumns{\let#1#3\let#2#4}%
+    \tabu@new@columntype#3#4%
+}% \tabu@private@columntype
+\let\tabu@privatecolumns \@empty
+\newcommand*\tabucolumn [1]{\expandafter \def \expandafter
+    \tabu@highprioritycolumns\expandafter{\tabu@highprioritycolumns
+                                          \NC@do #1}}%
+\let\tabu@highprioritycolumns \@empty
+%% The  |  ``column'' : rewriting process --------------------------
+\tabu@privatecolumntype |{\tabu@rewritevline}
+\newcommand*\tabu@rewritevline[1][]{\tabu@vlinearg{#1}%
+                \expandafter \NC@find \tabu@rewritten}
+\def\tabu@lines #1{%
+    \ifx|#1\else \tabu@privatecolumntype #1{\tabu@rewritevline}\fi
+    \NC@list\expandafter{\the\NC@list \NC@do #1}%
+}% \tabu@lines@
+\def\tabu@vlinearg #1{%
+    \ifx\\#1\\\def\tabu@thestyle {\tabu@ls@}%
+    \else\tabu@getline {#1}%
+    \fi
+    \def\tabu@rewritten ##1{\def\tabu@rewritten{!{##1\tabu@thevline}}%
+    }\expandafter\tabu@rewritten\expandafter{\tabu@thestyle}%
+    \expandafter \tabu@keepls \tabu@thestyle \@nil
+}% \tabu@vlinearg
+\def\tabu@keepls #1\@nil{%
+    \ifcat $\@cdr #1\@nil $%
+    \ifx \relax#1\else
+    \ifx \tabu@ls@#1\else
+        \let#1\relax
+        \xdef\tabu@mkpreambuffer{\tabu@mkpreambuffer
+                \tabu@savels\noexpand#1}\fi\fi\fi
+}% \tabu@keepls
+\def\tabu@thevline {\begingroup
+    \ifdefined\tabu@leaders
+        \setbox\@tempboxa=\vtop to\dimexpr
+                      \ht\@arstrutbox+\dp\@arstrutbox{{\tabu@thevleaders}}%
+        \ht\@tempboxa=\ht\@arstrutbox \dp\@tempboxa=\dp\@arstrutbox
+        \box\@tempboxa
+    \else
+                \tabu@thevrule
+    \fi             \endgroup
+}% \tabu@thevline
+\def\tabu@savels #1{%
+    \expandafter\let\csname\string#1\endcsname #1%
+    \expandafter\def\expandafter\tabu@reset\expandafter{\tabu@reset
+                                                    \tabu@resetls#1}}%
+\def\tabu@resetls #1{\expandafter\let\expandafter#1\csname\string#1\endcsname}%
+%% \multicolumn inside tabu environment -----------------------------
+\tabu@newcolumntype \tabu@rewritemulticolumn{%
+    \aftergroup \tabu@endrewritemulticolumn % after \@mkpream group
+    \NC@list{\NC@do *}\tabu@textbar \tabu@lines
+    \tabu@savedecl
+    \tabu@privatecolumns
+    \NC@list\expandafter{\the\expandafter\NC@list \tabu@NC@list}%
+    \let\tabu@savels \relax
+    \NC@find
+}% \tabu@rewritemulticolumn
+\def\tabu@endrewritemulticolumn{\gdef\tabu@mkpreambuffer{}\endgroup}
+\def\tabu@multicolumn{\tabu@ifenvir \tabu@multic@lumn \tabu@multicolumnORI}
+\long\def\tabu@multic@lumn #1#2#3{\multispan{#1}\begingroup
+    \tabu@everyrowtrue
+    \NC@list{\NC@do \tabu@rewritemulticolumn}%
+    \expandafter\@gobbletwo % gobbles \multispan{#1}
+         \tabu@multicolumnORI{#1}{\tabu@rewritemulticolumn #2}%
+                {\iftabuscantokens \tabu@rescan \else \expandafter\@firstofone \fi
+                {#3}}%
+}% \tabu@multic@lumn
+%% The X column(s): rewriting process -----------------------------
+\tabu@privatecolumntype X[1][]{\begingroup \tabu@siunitx{\endgroup \tabu@rewriteX {#1}}}
+\def\tabu@nosiunitx #1{#1{}{}\expandafter \NC@find \tabu@rewritten }
+\def\tabu@siunitx   #1{\@ifnextchar \bgroup
+                     {\tabu@rewriteX@Ss{#1}}
+                      {\tabu@nosiunitx{#1}}}
+\def\tabu@rewriteX@Ss #1#2{\@temptokena{}%
+    \@defaultunits \let\tabu@temp =#2\relax\@nnil
+    \ifodd 1\ifx S\tabu@temp \else \ifx s\tabu@temp \else 0 \fi\fi
+        \def\NC@find{\def\NC@find >####1####2<####3\relax{#1 {####1}{####3}%
+            }\expandafter\NC@find \the\@temptokena \relax
+        }\expandafter\NC@rewrite@S \@gobble #2\relax
+    \else \tabu@siunitxerror
+    \fi
+    \expandafter \NC@find \tabu@rewritten
+}% \tabu@rewriteX@Ss
+\def\tabu@siunitxerror {\PackageError{tabu}{Not a S nor s column !
+        \MessageBreak X column can only embed siunitx S or s columns}\@ehd
+}% \tabu@siunitxerror
+\def\tabu@rewriteX #1#2#3{\tabu@Xarg {#1}{#2}{#3}%
+    \iftabu@measuring
+    \else \tabu@measuringtrue % first X column found in the preamble
+        \let\@halignto \relax   \let\tabu@halignto \relax
+        \iftabu@spread \tabu@spreadtarget \tabu@target \tabu@target \z@
+        \else          \tabu@spreadtarget \z@ \fi
+        \ifdim \tabu@target=\z@
+                \setlength\tabu@target \tabu@thetarget
+                \tabu@message{\tabu@message@defaulttarget}%
+        \else   \tabu@message{\tabu@message@target}\fi
+    \fi
+}% \tabu@rewriteX
+\def\tabu@rewriteXrestore #1#2#3{\let\@halignto \relax
+                                \def\tabu@rewritten{l}}
+\def\tabu@Xarg #1#2#3{%
+   \advance\tabu@Xcol \@ne      \let\tabu@Xlcr  \@empty
+   \let\tabu@Xdisp    \@empty   \let\tabu@Xmath \@empty
+    \ifx\\#1\\%    <shortcut when no option>
+         \def\tabu@rewritten{p}\tabucolX \p@        % <default coef = 1>
+    \else
+         \let\tabu@rewritten \@empty   \let\tabu@temp \@empty  \tabucolX \z@
+         \tabu@Xparse {}#1\relax
+    \fi
+    \tabu@Xrewritten{#2}{#3}%
+}% \tabu@Xarg
+\def\tabu@Xparse #1{\futurelet\@let@token \tabu@Xtest}
+\expandafter\def\expandafter\tabu@Xparsespace\space{\tabu@Xparse{}}
+\def\tabu@Xtest{%
+   \ifcase \ifx \relax\@let@token \z@ \else
+           \if ,\@let@token \m@ne\else
+           \if p\@let@token 1\else
+           \if m\@let@token 2\else
+           \if b\@let@token 3\else
+           \if l\@let@token 4\else
+           \if c\@let@token 5\else
+           \if r\@let@token 6\else
+           \if j\@let@token 7\else
+           \if L\@let@token 8\else
+           \if C\@let@token 9\else
+           \if R\@let@token 10\else
+           \if J\@let@token 11\else
+           \ifx \@sptoken\@let@token 12\else
+           \if .\@let@token 13\else
+           \if -\@let@token 13\else
+           \ifcat $\@let@token 14\else
+           15\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\relax
+   \or \tabu@Xtype {p}%
+   \or \tabu@Xtype {m}%
+   \or \tabu@Xtype {b}%
+   \or \tabu@Xalign \raggedright\relax
+   \or \tabu@Xalign \centering\relax
+   \or \tabu@Xalign \raggedleft\relax
+   \or \tabu@Xalign \tabu@justify\relax
+   \or \tabu@Xalign \RaggedRight\raggedright
+   \or \tabu@Xalign \Centering\centering
+   \or \tabu@Xalign \RaggedLeft\raggedleft
+   \or \tabu@Xalign \justifying\tabu@justify
+   \or \expandafter \tabu@Xparsespace
+   \or \expandafter \tabu@Xcoef
+   \or \expandafter \tabu@Xm@th
+   \or \tabu@Xcoef{}%
+   \else\expandafter \tabu@Xparse
+   \fi
+}% \tabu@Xtest
+\def\tabu@Xalign #1#2{%
+    \ifx \tabu@Xlcr\@empty \else \PackageWarning{tabu}
+       {Duplicate horizontal alignment specification}\fi
+    \ifdefined#1\def\tabu@Xlcr{#1}\let#1\relax
+    \else       \def\tabu@Xlcr{#2}\let#2\relax\fi
+    \expandafter\tabu@Xparse
+}% \tabu@Xalign
+\def\tabu@Xtype #1{%
+    \ifx \tabu@rewritten\@empty \else \PackageWarning{tabu}
+            {Duplicate vertical alignment specification}\fi
+    \def\tabu@rewritten{#1}\expandafter\tabu@Xparse
+}% \tabu@Xtype
+\def\tabu@Xcoef#1{\edef\tabu@temp{\tabu@temp#1}%
+    \afterassignment\tabu@Xc@ef \tabu@cnt\number\if-#10\fi
+}% \tabu@Xcoef
+\def\tabu@Xc@ef{\advance\tabucolX \tabu@temp\the\tabu@cnt\p@
+    \tabu@Xparse{}%
+}% \tabu@Xc@ef
+\def\tabu@Xm@th #1{\futurelet \@let@token \tabu@Xd@sp}
+\def\tabu@Xd@sp{\let\tabu@Xmath=$%
+    \ifx $\@let@token \def\tabu@Xdisp{\displaystyle}%
+            \expandafter\tabu@Xparse
+    \else   \expandafter\tabu@Xparse\expandafter{\expandafter}%
+    \fi
+}% \tabu@Xd@sp
+\def\tabu@Xrewritten {%
+   \ifx  \tabu@rewritten\@empty \def\tabu@rewritten{p}\fi
+   \ifdim \tabucolX<\z@         \tabu@negcoeftrue
+   \else\ifdim \tabucolX=\z@    \tabucolX \p@
+   \fi\fi
+   \edef\tabu@temp{{\the\tabu@Xcol}{\tabu@strippt\tabucolX}}%
+   \edef\tabu@Xcoefs{\tabu@Xcoefs    \tabu@      \tabu@temp}%
+   \edef\tabu@rewritten ##1##2{\def\noexpand\tabu@rewritten{%
+        >{\tabu@Xlcr \ifx$\tabu@Xmath$\tabu@Xdisp\fi ##1}%
+                    \tabu@rewritten {\tabu@hsize \tabu@temp}%
+        <{##2\ifx$\tabu@Xmath$\fi}}%
+   }\tabu@rewritten
+}% \tabu@Xrewritten
+\def\tabu@hsize #1#2{%
+    \ifdim #2\p@<\z@
+        \ifdim \tabucolX=\maxdimen \tabu@wd{#1}\else
+        \ifdim \tabu@wd{#1}<-#2\tabucolX \tabu@wd{#1}\else -#2\tabucolX\fi
+        \fi
+   \else #2\tabucolX
+   \fi
+}% \tabu@hsize
+%% \usetabu  and  \preamble: rewriting process ---------------------
+\tabu@privatecolumntype \usetabu [1]{%
+    \ifx\\#1\\\tabu@saveerr{}\else
+        \@ifundefined{tabu@saved@\string#1}
+            {\tabu@saveerr{#1}}
+            {\let\tabu@rewriteX \tabu@rewriteXrestore
+             \csname tabu@saved@\string#1\expandafter\endcsname\expandafter\@ne}%
+    \fi
+}% \NC@rewrite@\usetabu
+\tabu@privatecolumntype \preamble [1]{%
+    \ifx\\#1\\\tabu@saveerr{}\else
+        \@ifundefined{tabu@saved@\string#1}
+            {\tabu@saveerr{#1}}
+            {\csname tabu@saved@\string#1\expandafter\endcsname\expandafter\z@}%
+    \fi
+}% \NC@rewrite@\preamble
+%% Controlling the rewriting process -------------------------------
+\tabu@newcolumntype \tabu@rewritefirst{%
+    \iftabu@long    \aftergroup \tabu@longpream  % <the whole implementation is here !>
+    \else           \aftergroup \tabu@pream
+    \fi
+    \let\tabu@          \relax      \let\tabu@hsize     \relax
+    \let\tabu@Xcoefs    \@empty     \let\tabu@savels    \relax
+    \tabu@Xcol          \z@         \tabu@cnt           \tw@
+    \gdef\tabu@mkpreambuffer{\tabu@{}}\tabu@measuringfalse
+    \global\setbox\@arstrutbox \box\@arstrutbox
+    \NC@list{\NC@do *}\tabu@textbar \tabu@lines
+    \NC@list\expandafter{\the\NC@list \NC@do X}%
+    \iftabu@siunitx     % <siunitx S and s columns>
+            \NC@list\expandafter{\the\NC@list \NC@do S\NC@do s}\fi
+    \NC@list\expandafter{\the\expandafter\NC@list \tabu@highprioritycolumns}%
+    \expandafter\def\expandafter\tabu@NC@list\expandafter{%
+                    \the\expandafter\NC@list \tabu@NC@list}%    % * | X S <original>
+    \NC@list\expandafter{\expandafter \NC@do \expandafter\usetabu
+                         \expandafter \NC@do \expandafter\preamble
+                         \the\NC@list \NC@do \tabu@rewritemiddle
+                                      \NC@do \tabu@rewritelast}%
+    \tabu@savedecl
+    \tabu@privatecolumns
+    \edef\tabu@prev{\the\@temptokena}\NC@find \tabu@rewritemiddle
+}% NC@rewrite@\tabu@rewritefirst
+\tabu@newcolumntype \tabu@rewritemiddle{%
+    \edef\tabu@temp{\the\@temptokena}\NC@find \tabu@rewritelast
+}% \NC@rewrite@\tabu@rewritemiddle
+\tabu@newcolumntype \tabu@rewritelast{%
+    \ifx \tabu@temp\tabu@prev   \advance\tabu@cnt \m@ne
+            \NC@list\expandafter{\tabu@NC@list \NC@do \tabu@rewritemiddle
+                                               \NC@do \tabu@rewritelast}%
+    \else \let\tabu@prev\tabu@temp
+    \fi
+    \ifcase \tabu@cnt   \expandafter\tabu@endrewrite
+    \else               \expandafter\NC@find \expandafter\tabu@rewritemiddle
+    \fi
+}% \NC@rewrite@\tabu@rewritelast
+%% Choosing the strategy --------------------------------------------
+\def\tabu@endrewrite {%
+    \let\tabu@temp \NC@find
+    \ifx \@arrayright\relax \let\@arrayright \@empty  \fi
+    \count@=%
+        \ifx \@finalstrut\tabu@finalstrut \z@ % outer in mode 0 print
+             \iftabu@measuring
+                \xdef\tabu@mkpreambuffer{\tabu@mkpreambuffer
+                    \tabu@target        \csname tabu@\the\tabu@nested.T\endcsname
+                    \tabucolX           \csname tabu@\the\tabu@nested.X\endcsname
+                    \edef\@halignto {\ifx\@arrayright\@empty to\tabu@target\fi}}%
+             \fi
+        \else\iftabu@measuring        4       % X columns
+                \xdef\tabu@mkpreambuffer{\tabu@{\tabu@mkpreambuffer
+                    \tabu@target        \the\tabu@target
+                    \tabu@spreadtarget  \the\tabu@spreadtarget}%
+                    \def\noexpand\tabu@Xcoefs{\tabu@Xcoefs}%
+                    \edef\tabu@halignto{\ifx \@arrayright\@empty to\tabu@target\fi}}%
+                 \let\tabu@Xcoefs \relax
+             \else\ifcase\tabu@nested \thr@@  % outer, no X
+                                      \global\let\tabu@afterendpar \relax
+                  \else               \@ne    % inner, no X, outer in mode 1 or 2
+                  \fi
+                  \ifdefined\tabu@usetabu
+                  \else \ifdim\tabu@target=\z@
+                  \else \let\tabu@temp \tabu@extracolsep
+                  \fi\fi
+             \fi
+        \fi
+    \xdef\tabu@mkpreambuffer{\count@ \the\count@ \tabu@mkpreambuffer}%
+    \tabu@temp
+}% \tabu@endrewrite
+\def\tabu@extracolsep{\@defaultunits    \expandafter\let
+    \expandafter\tabu@temp \expandafter=\the\@temptokena \relax\@nnil
+    \ifx \tabu@temp\@sptoken
+        \expandafter\tabu@gobblespace \expandafter\tabu@extracolsep
+    \else
+        \edef\tabu@temp{\noexpand\NC@find
+            \if |\noexpand\tabu@temp        @%
+            \else\if !\noexpand\tabu@temp   @%
+            \else                           !%
+            \fi\fi
+            {\noexpand\extracolsep\noexpand\@flushglue}}%
+    \fi
+    \tabu@temp
+}% \tabu@extrac@lsep
+%% Implementing the strategy ----------------------------------------
+\long\def\tabu@pream #1\@preamble {%
+    \let\tabu@ \tabu@@  \tabu@mkpreambuffer     \tabu@aftergroupcleanup
+    \NC@list\expandafter {\tabu@NC@list}%    in case of nesting...
+    \ifdefined\tabu@usetabu \tabu@usetabu \tabu@target \z@ \fi
+    \let\tabu@savedpreamble \@preamble
+    \global\let\tabu@elapsedtime \relax
+    \tabu@thebody ={#1\tabu@aftergroupcleanup}%
+    \tabu@thebody =\expandafter{\the\expandafter\tabu@thebody
+                                                \@preamble}%
+    \edef\tabuthepreamble {\the\tabu@thebody}% ( no @ allowed for \scantokens )
+    \tabu@select
+}% \tabu@pream
+\long\def\tabu@longpream #1\LT@bchunk #2\LT@bchunk{%
+    \let\tabu@ \tabu@@  \tabu@mkpreambuffer     \tabu@aftergroupcleanup
+    \NC@list\expandafter {\tabu@NC@list}%    in case of nesting...
+    \let\tabu@savedpreamble \@preamble
+    \global\let\tabu@elapsedtime \relax
+    \tabu@thebody ={#1\LT@bchunk #2\tabu@aftergroupcleanup \LT@bchunk}%
+    \edef\tabuthepreamble {\the\tabu@thebody}% ( no @ allowed for \scantokens )
+    \tabu@select
+}% \tabu@longpream
+\def\tabu@select {%
+    \ifnum\tabu@nested>\z@ \tabuscantokensfalse \fi
+    \ifnum \count@=\@ne \iftabu@measuring \count@=\tw@ \fi\fi
+    \ifcase \count@
+        \global\let\tabu@elapsedtime \relax
+        \tabu@seteverycr
+        \expandafter \tabuthepreamble       % vertical adjustment (inherited from outer)
+    \or      % exit in vertical measure + struts per cell because no X and outer in mode 3
+        \tabu@evr{\tabu@verticalinit}\tabu@celllalign@def{\tabu@verticalmeasure}%
+        \def\tabu@cellralign{\tabu@verticalspacing}%
+        \tabu@seteverycr
+        \expandafter \tabuthepreamble
+    \or                            % exit without measure because no X and outer in mode 4
+        \tabu@evr{}\tabu@celllalign@def{}\let\tabu@cellralign \@empty
+        \tabu@seteverycr
+        \expandafter \tabuthepreamble
+    \else                                   % needs trials
+        \tabu@evr{}\tabu@celllalign@def{}\let\tabu@cellralign \@empty
+        \tabu@savecounters
+        \expandafter \tabu@setstrategy
+    \fi
+}% \tabu@select
+\def\tabu@@ {\gdef\tabu@mkpreambuffer}
+%% Protections to set up before trials ------------------------------
+\def\tabu@setstrategy {\begingroup  % <trials group>
+    \tabu@trialh@@k    \tabu@cnt    \z@  % number of trials
+    \hbadness          \@M          \let\hbadness          \@tempcnta
+    \hfuzz             \maxdimen    \let\hfuzz             \@tempdima
+    \let\write         \tabu@nowrite\let\GenericError      \tabu@GenericError
+    \let\savetabu      \@gobble     \let\tabudefaulttarget \linewidth
+    \let\@footnotetext \@gobble     \let\@xfootnote        \tabu@xfootnote
+    \let\color         \tabu@nocolor\let\rowcolor          \tabu@norowcolor
+    \let\tabu@aftergroupcleanup \relax % only after the last trial
+    \tabu@mkpreambuffer
+    \ifnum \count@>\thr@@ \let\@halignto \@empty  \tabucolX@init
+                          \def\tabu@lasttry{\m@ne\p@}\fi
+    \begingroup \iffalse{\fi \ifnum0=`}\fi
+        \toks@{}\def\tabu@stack{b}\iftabuscantokens \endlinechar=10 \obeyspaces \fi %
+                                  \tabu@collectbody \tabu@strategy %
+}% \tabu@setstrategy
+\def\tabu@savecounters{%
+    \def\@elt ##1{\csname c@##1\endcsname\the\csname c@##1\endcsname}%
+    \edef\tabu@clckpt {\begingroup \globaldefs=\@ne \cl@@ckpt \endgroup}\let\@elt \relax
+}% \tabu@savecounters
+\def\tabucolX@init {%  \tabucolX <= \tabu@target / (sum coefs > 0)
+    \dimen@ \z@ \tabu@Xsum \z@ \tabucolX \z@ \let\tabu@ \tabu@Xinit \tabu@Xcoefs
+    \ifdim \dimen@>\z@
+        \@tempdima \dimexpr \tabu@target *\p@/\dimen@ + \tabu@hfuzz\relax
+        \ifdim \tabucolX<\@tempdima \tabucolX \@tempdima \fi
+    \fi
+}% \tabucolX@init
+\def\tabu@Xinit #1#2{\tabu@Xcol #1 \advance \tabu@Xsum
+    \ifdim #2\p@>\z@ #2\p@  \advance\dimen@ #2\p@
+    \else           -#2\p@  \tabu@negcoeftrue
+                            \@tempdima \dimexpr \tabu@target*\p@/\dimexpr-#2\p@\relax \relax
+                            \ifdim \tabucolX<\@tempdima \tabucolX \@tempdima \fi
+                            \tabu@wddef{#1}{0pt}%
+    \fi
+}% \tabu@Xinit
+%% Collecting the environment body ----------------------------------
+\long\def\tabu@collectbody #1#2\end #3{%
+    \edef\tabu@stack{\tabu@pushbegins #2\begin\end\expandafter\@gobble\tabu@stack}%
+    \ifx \tabu@stack\@empty
+        \toks@\expandafter{\expandafter\tabu@thebody\expandafter{\the\toks@ #2}%
+                \def\tabu@end@envir{\end{#3}}%
+                \iftabuscantokens
+                    \iftabu@long \def\tabu@endenvir {\end{#3}\tabu@gobbleX}%
+                    \else        \def\tabu@endenvir {\let\endarray \@empty
+                                                     \end{#3}\tabu@gobbleX}%
+                    \fi
+                \else           \def\tabu@endenvir  {\end{#3}}\fi}%
+        \let\tabu@collectbody \tabu@endofcollect
+    \else\def\tabu@temp{#3}%
+        \ifx \tabu@temp\@empty \toks@\expandafter{\the\toks@ #2\end }%
+        \else \ifx\tabu@temp\tabu@@spxiii \toks@\expandafter{\the\toks@ #2\end #3}%
+        \else \ifx\tabu@temp\tabu@X \toks@\expandafter{\the\toks@ #2\end #3}%
+        \else \toks@\expandafter{\the\toks@ #2\end{#3}}%
+        \fi\fi\fi
+    \fi
+    \tabu@collectbody{#1}%
+}% \tabu@collectbody
+\long\def\tabu@pushbegins#1\begin#2{\ifx\end#2\else b\expandafter\tabu@pushbegins\fi}%
+\def\tabu@endofcollect #1{\ifnum0=`{}\fi
+                          \expandafter\endgroup \the\toks@  #1%
+}% \tabu@endofcollect
+%% The trials: switching between strategies -------------------------
+\def\tabu@strategy {\relax  % stops \count@ assignment !
+    \ifcase\count@          % case 0 = print with vertical adjustment (outer is finished)
+        \expandafter \tabu@endoftrials
+    \or                     % case 1 = exit in vertical measure (outer in mode 3)
+        \expandafter\xdef\csname tabu@\the\tabu@nested.T\endcsname{\the\tabu@target}%
+        \expandafter\xdef\csname tabu@\the\tabu@nested.X\endcsname{\the\tabucolX}%
+        \expandafter \tabu@endoftrials
+    \or                     % case 2 = exit with a rule replacing the table (outer in mode 4)
+        \expandafter \tabu@quickend
+    \or                     % case 3 = outer is in mode 3 because of no X
+        \begingroup
+            \tabu@evr{\tabu@verticalinit}\tabu@celllalign@def{\tabu@verticalmeasure}%
+            \def\tabu@cellralign{\tabu@verticalspacing}%
+            \expandafter \tabu@measuring
+    \else                   % case 4 = horizontal measure
+        \begingroup
+            \global\let\tabu@elapsedtime \tabu@message@etime
+            \long\def\multicolumn##1##2##3{\multispan{##1}}%
+            \let\tabu@startpboxORI \@startpbox
+            \iftabu@spread
+                    \def\tabu@naturalXmax {\z@}%
+                    \let\tabu@naturalXmin \tabu@naturalXmax
+                    \tabu@evr{\global\tabu@naturalX \z@}%
+                    \let\@startpbox \tabu@startpboxmeasure
+            \else\iftabu@negcoef
+                    \let\@startpbox \tabu@startpboxmeasure
+            \else   \let\@startpbox \tabu@startpboxquick
+            \fi\fi
+            \expandafter \tabu@measuring
+    \fi
+}% \tabu@strategy
+\def\tabu@measuring{\expandafter \tabu@trial \expandafter
+                                                \count@ \the\count@ \tabu@endtrial
+}% \tabu@measuring
+\def\tabu@trial{\iftabu@long \tabu@longtrial \else \tabu@shorttrial \fi}
+\def\tabu@shorttrial {\setbox\tabu@box \hbox\bgroup \tabu@seteverycr
+    \ifx \tabu@savecounters\relax \else
+                \let\tabu@savecounters \relax \tabu@clckpt \fi
+    $\iftabuscantokens \tabu@rescan \else \expandafter\@secondoftwo \fi
+       \expandafter{\expandafter \tabuthepreamble
+                         \the\tabu@thebody
+                         \csname tabu@adl@endtrial\endcsname
+                         \endarray}$\egroup             % got \tabu@box
+}% \tabu@shorttrial
+\def\tabu@longtrial {\setbox\tabu@box \hbox\bgroup \tabu@seteverycr
+    \ifx \tabu@savecounters\relax \else
+                \let\tabu@savecounters \relax \tabu@clckpt \fi
+    \iftabuscantokens \tabu@rescan \else \expandafter\@secondoftwo \fi
+       \expandafter{\expandafter \tabuthepreamble
+                         \the\tabu@thebody
+                         \tabuendlongtrial}\egroup      % got \tabu@box
+}% \tabu@longtrial
+\def\tabuendlongtrial{% no @ allowed for \scantokens
+    \LT@echunk  \global\setbox\@ne \hbox{\unhbox\@ne}\kern\wd\@ne
+                \LT@get@widths
+}% \tabuendlongtrial
+\def\tabu@adl@endtrial{% <arydshln in nested trials - problem for global column counters!>
+    \crcr \noalign{\global\adl@ncol \tabu@nbcols}}% anything global is crap, junky and fails !
+\def\tabu@seteverycr {\tabu@reset
+    \everycr \expandafter{\the\everycr  \tabu@everycr}%
+    \let\everycr \tabu@noeverycr                      % <for ialign>
+}% \tabu@seteverycr
+\def\tabu@noeverycr{{\aftergroup\tabu@restoreeverycr \afterassignment}\toks@}
+\def\tabu@restoreeverycr {\let\everycr \tabu@@everycr}
+\def\tabu@everycr {\iftabu@everyrow \noalign{\tabu@everyrow}\fi}
+\def\tabu@endoftrials {%
+    \iftabuscantokens   \expandafter\@firstoftwo
+    \else               \expandafter\@secondoftwo
+    \fi
+        {\expandafter \tabu@closetrialsgroup \expandafter
+         \tabu@rescan \expandafter{%
+                    \expandafter\tabuthepreamble
+                        \the\expandafter\tabu@thebody
+                                    \iftabu@long \else \endarray \fi}}
+        {\expandafter\tabu@closetrialsgroup \expandafter
+                    \tabuthepreamble
+                        \the\tabu@thebody}%
+                                        \tabu@endenvir      % Finish !
+}% \tabu@endoftrials
+\def\tabu@closetrialsgroup {%
+    \toks@\expandafter{\tabu@endenvir}%
+    \edef\tabu@bufferX{\endgroup
+        \tabucolX       \the\tabucolX
+        \tabu@target    \the\tabu@target
+        \tabu@cnt       \the\tabu@cnt
+        \def\noexpand\tabu@endenvir{\the\toks@}%
+        %Quid de \@halignto = \tabu@halignto ??
+    }% \tabu@bufferX
+    \tabu@bufferX
+    \ifcase\tabu@nested % print out (outer in mode 0)
+        \global\tabu@cnt \tabu@cnt
+        \tabu@evr{\tabu@verticaldynamicadjustment}%
+        \tabu@celllalign@def{\everypar{}}\let\tabu@cellralign \@empty
+        \let\@finalstrut \tabu@finalstrut
+    \else               % vertical measure of nested tabu
+        \tabu@evr{\tabu@verticalinit}%
+        \tabu@celllalign@def{\tabu@verticalmeasure}%
+        \def\tabu@cellralign{\tabu@verticalspacing}%
+    \fi
+    \tabu@clckpt \let\@halignto \tabu@halignto
+    \let\@halignto \@empty
+    \tabu@seteverycr
+    \ifdim \tabustrutrule>\z@ \ifnum\tabu@nested=\z@
+        \setbox\@arstrutbox \box\voidb@x % force \@arstrutbox to be rebuilt (visible struts)
+    \fi\fi
+}% \tabu@closetrialsgroup
+\def\tabu@quickend {\expandafter \endgroup \expandafter
+                        \tabu@target \the\tabu@target \tabu@quickrule
+                        \let\endarray \relax \tabu@endenvir
+}% \tabu@quickend
+\def\tabu@endtrial {\relax      % stops \count@ assignment !
+    \ifcase \count@ \tabu@err   % case 0 = impossible here
+    \or             \tabu@err   % case 1 = impossible here
+    \or             \tabu@err   % case 2 = impossible here
+    \or                         % case 3 = outer goes into mode 0
+        \def\tabu@bufferX{\endgroup}\count@ \z@
+    \else                       % case 4 = outer goes into mode 3
+        \iftabu@spread  \tabu@spreadarith % inner into mode 1 (outer in mode 3)
+        \else           \tabu@arith       %              or 2 (outer in mode 4)
+        \fi
+        \count@=%
+            \ifcase\tabu@nested     \thr@@  % outer goes into mode 3
+            \else\iftabu@measuring  \tw@    % outer is in mode 4
+            \else                   \@ne    % outer is in mode 3
+            \fi\fi
+        \edef\tabu@bufferX{\endgroup
+                           \tabucolX        \the\tabucolX
+                           \tabu@target     \the\tabu@target}%
+    \fi
+    \expandafter \tabu@bufferX \expandafter
+                                    \count@ \the\count@  \tabu@strategy
+}% \tabu@endtrial
+\def\tabu@err{\errmessage{(tabu) Internal impossible error! (\count@=\the\count@)}}
+%% The algorithms: compute the widths / stop or go on ---------------
+\def\tabu@arithnegcoef {%
+    \@tempdima \z@ \dimen@ \z@ \let\tabu@ \tabu@arith@negcoef \tabu@Xcoefs
+}% \tabu@arithnegcoef
+\def\tabu@arith@negcoef #1#2{%
+    \ifdim #2\p@>\z@    \advance\dimen@     #2\p@       % saturated by definition
+                        \advance\@tempdima  #2\tabucolX
+    \else
+        \ifdim -#2\tabucolX <\tabu@wd{#1}% c_i X < natural width <= \tabu@target-> saturated
+                        \advance\dimen@     -#2\p@
+                        \advance\@tempdima  -#2\tabucolX
+        \else
+                        \advance\@tempdima \tabu@wd{#1}% natural width <= c_i X => neutralised
+                        \ifdim \tabu@wd{#1}<\tabu@target \else % neutralised
+                        \advance\dimen@     -#2\p@ % saturated (natural width = tabu@target)
+                        \fi
+        \fi
+    \fi
+}% \tabu@arith@negcoef
+\def\tabu@givespace #1#2{% here \tabu@DELTA < \z@
+    \ifdim \@tempdima=\z@
+        \tabu@wddef{#1}{\the\dimexpr -\tabu@DELTA*\p@/\tabu@Xsum}%
+    \else
+        \tabu@wddef{#1}{\the\dimexpr \tabu@hsize{#1}{#2}
+                    *(\p@ -\tabu@DELTA*\p@/\@tempdima)/\p@\relax}%
+    \fi
+}% \tabu@givespace
+\def\tabu@arith {\advance\tabu@cnt \@ne
+    \ifnum \tabu@cnt=\@ne \tabu@message{\tabu@titles}\fi
+    \tabu@arithnegcoef
+    \@tempdimb \dimexpr \wd\tabu@box -\@tempdima \relax % <incompressible material>
+    \tabu@DELTA = \dimexpr \wd\tabu@box - \tabu@target \relax
+    \tabu@message{\tabu@message@arith}%
+    \ifdim \tabu@DELTA <\tabu@hfuzz
+        \ifdim \tabu@DELTA<\z@          % wd (tabu)<\tabu@target ?
+            \let\tabu@ \tabu@givespace \tabu@Xcoefs
+            \advance\@tempdima \@tempdimb \advance\@tempdima -\tabu@DELTA % for message
+        \else   % already converged: nothing to do but nearly impossible...
+        \fi
+        \tabucolX \maxdimen
+        \tabu@measuringfalse
+    \else                               % need for narrower X columns
+        \tabucolX =\dimexpr (\@tempdima -\tabu@DELTA) *\p@/\tabu@Xsum \relax
+        \tabu@measuringtrue
+        \@whilesw \iftabu@measuring\fi {%
+            \advance\tabu@cnt \@ne
+            \tabu@arithnegcoef
+            \tabu@DELTA =\dimexpr \@tempdima+\@tempdimb -\tabu@target \relax % always < 0 here
+            \tabu@message{\tabu@header
+                \tabu@msgalign \tabucolX { }{ }{ }{ }{ }\@@
+                \tabu@msgalign \@tempdima+\@tempdimb { }{ }{ }{ }{ }\@@
+                \tabu@msgalign \tabu@target { }{ }{ }{ }{ }\@@
+                \tabu@msgalign@PT \dimen@ { }{}{}{}{}{}{}\@@
+                \ifdim -\tabu@DELTA<\tabu@hfuzz \tabu@spaces target ok\else
+                \tabu@msgalign \dimexpr -\tabu@DELTA *\p@/\dimen@ {}{}{}{}{}\@@
+                \fi}%
+            \ifdim -\tabu@DELTA<\tabu@hfuzz
+                \advance\@tempdima \@tempdimb % for message
+                \tabu@measuringfalse
+            \else
+                \advance\tabucolX \dimexpr -\tabu@DELTA *\p@/\dimen@ \relax
+            \fi
+        }%
+    \fi
+    \tabu@message{\tabu@message@reached}%
+    \edef\tabu@bufferX{\endgroup \tabu@cnt    \the\tabu@cnt
+                                 \tabucolX    \the\tabucolX
+                                 \tabu@target \the\tabu@target}%
+}% \tabu@arith
+\def\tabu@spreadarith {%
+    \dimen@ \z@ \@tempdima \tabu@naturalXmax \let\tabu@ \tabu@spread@arith \tabu@Xcoefs
+    \edef\tabu@naturalXmin {\the\dimexpr\tabu@naturalXmin*\dimen@/\p@}%
+    \@tempdimc =\dimexpr \wd\tabu@box -\tabu@naturalXmax+\tabu@naturalXmin \relax
+    \iftabu@measuring
+        \tabu@target =\dimexpr \@tempdimc+\tabu@spreadtarget \relax
+        \edef\tabu@bufferX{\endgroup \tabucolX \the\tabucolX \tabu@target\the\tabu@target}%
+    \else
+        \tabu@message{\tabu@message@spreadarith}%
+        \ifdim \dimexpr \@tempdimc+\tabu@spreadtarget >\tabu@target
+            \tabu@message{(tabu) spread
+                \ifdim \@tempdimc>\tabu@target useless here: default target used%
+                \else too large: reduced to fit default target\fi.}%
+        \else
+            \tabu@target =\dimexpr \@tempdimc+\tabu@spreadtarget \relax
+            \tabu@message{(tabu) spread: New target set to \the\tabu@target^^J}%
+        \fi
+        \begingroup \let\tabu@wddef \@gobbletwo
+            \@tempdimb \@tempdima
+            \tabucolX@init
+            \tabu@arithnegcoef
+            \wd\tabu@box =\dimexpr \wd\tabu@box +\@tempdima-\@tempdimb \relax
+        \expandafter\endgroup \expandafter\tabucolX \the\tabucolX
+        \tabu@arith
+    \fi
+}% \tabu@spreadarith
+\def\tabu@spread@arith #1#2{%
+    \ifdim #2\p@>\z@ \advance\dimen@ #2\p@
+    \else            \advance\@tempdima \tabu@wd{#1}\relax
+    \fi
+}% \tabu@spread@arith
+%% Reporting in the .log file ---------------------------------------
+\def\tabu@message@defaulttarget{%
+    \ifnum\tabu@nested=\z@^^J(tabu) Default target:
+    \ifx\tabudefaulttarget\linewidth    \string\linewidth
+        \ifdim \tabu@thetarget=\linewidth \else
+            -\the\dimexpr\linewidth-\tabu@thetarget\fi  =
+    \else\ifx\tabudefaulttarget\linegoal\string\linegoal=
+    \fi\fi
+    \else (tabu) Default target (nested): \fi
+    \the\tabu@target \on@line
+    \ifnum\tabu@nested=\z@ , page \the\c@page\fi}
+\def\tabu@message@target {^^J(tabu) Target specified:
+   \the\tabu@target \on@line, page \the\c@page}
+\def\tabu@message@arith {\tabu@header
+    \tabu@msgalign \tabucolX { }{ }{ }{ }{ }\@@
+    \tabu@msgalign \wd\tabu@box { }{ }{ }{ }{ }\@@
+    \tabu@msgalign \tabu@target { }{ }{ }{ }{ }\@@
+    \tabu@msgalign@PT \dimen@ { }{}{}{}{}{}{}\@@
+    \ifdim \tabu@DELTA<\tabu@hfuzz giving space\else
+    \tabu@msgalign \dimexpr (\@tempdima-\tabu@DELTA) *\p@/\tabu@Xsum -\tabucolX {}{}{}{}{}\@@
+    \fi
+}% \tabu@message@arith
+\def\tabu@message@spreadarith {\tabu@spreadheader
+   \tabu@msgalign \tabu@spreadtarget { }{ }{ }{ }{}\@@
+   \tabu@msgalign \wd\tabu@box { }{ }{ }{ }{}\@@
+   \tabu@msgalign -\tabu@naturalXmax { }{}{}{}{}\@@
+   \tabu@msgalign \tabu@naturalXmin { }{ }{ }{ }{}\@@
+   \tabu@msgalign \ifdim \dimexpr\@tempdimc>\tabu@target \tabu@target
+                  \else  \@tempdimc+\tabu@spreadtarget \fi
+                  {}{}{}{}{}\@@}
+\def\tabu@message@negcoef #1#2{
+    \tabu@spaces\tabu@spaces\space * #1. X[\rem@pt#2]:
+    \space width = \tabu@wd {#1}
+        \expandafter\string\csname tabu@\the\tabu@nested.W\number#1\endcsname
+    \ifdim -\tabu@pt#2\tabucolX<\tabu@target
+    < \number-\rem@pt#2 X
+    = \the\dimexpr -\tabu@pt#2\tabucolX \relax
+    \else
+    <= \the\tabu@target\space < \number-\rem@pt#2 X\fi}
+\def\tabu@message@reached{\tabu@header
+     ******* Reached Target:
+            hfuzz = \tabu@hfuzz\on@line\space *******}
+\def\tabu@message@etime{\edef\tabu@stoptime{\the\pdfelapsedtime}%
+    \tabu@message{(tabu)\tabu@spaces Time elapsed during measure:
+    \the\numexpr(\tabu@stoptime-\tabu@starttime-32767)/65536\relax sec
+    \the\numexpr\numexpr(\tabu@stoptime-\tabu@starttime)
+    -\numexpr(\tabu@stoptime-\tabu@starttime-32767)/65536\relax*65536\relax
+    *1000/65536\relax ms \tabu@spaces(\the\tabu@cnt\space
+                                        cycle\ifnum\tabu@cnt>\@ne s\fi)^^J^^J}}
+\def\tabu@message@verticalsp {%
+    \ifdim \@tempdima>\tabu@ht
+        \ifdim \@tempdimb>\tabu@dp
+        \expandafter\expandafter\expandafter\string\tabu@ht =
+            \tabu@msgalign \@tempdima { }{ }{ }{ }{ }\@@
+        \expandafter\expandafter\expandafter\string\tabu@dp =
+            \tabu@msgalign \@tempdimb { }{ }{ }{ }{ }\@@^^J%
+        \else
+        \expandafter\expandafter\expandafter\string\tabu@ht =
+            \tabu@msgalign \@tempdima { }{ }{ }{ }{ }\@@^^J%
+        \fi
+    \else\ifdim \@tempdimb>\tabu@dp
+        \tabu@spaces\tabu@spaces\tabu@spaces
+        \expandafter\expandafter\expandafter\string\tabu@dp =
+            \tabu@msgalign \@tempdimb { }{ }{ }{ }{ }\@@^^J\fi
+    \fi
+}% \tabu@message@verticalsp
+\edef\tabu@spaces{\@spaces}
+\def\tabu@strippt{\expandafter\tabu@pt\the}
+{\@makeother\P \@makeother\T\lowercase{\gdef\tabu@pt #1PT{#1}}}
+\def\tabu@msgalign{\expandafter\tabu@msg@align\the\dimexpr}
+\def\tabu@msgalign@PT{\expandafter\tabu@msg@align\romannumeral-`\0\tabu@strippt}
+\def\do #1{%
+    \def\tabu@msg@align##1.##2##3##4##5##6##7##8##9\@@{%
+    \ifnum##1<10 #1 #1\else
+    \ifnum##1<100 #1 \else
+    \ifnum##1<\@m #1\fi\fi\fi
+    ##1.##2##3##4##5##6##7##8#1}%
+    \def\tabu@header{(tabu) \ifnum\tabu@cnt<10 #1\fi\the\tabu@cnt) }%
+    \def\tabu@titles{\ifnum \tabu@nested=\z@
+      (tabu) Try#1 #1 tabu X #1 #1 #1tabu Width #1 #1 Target
+                  #1 #1 #1 Coefs #1 #1 #1 Update^^J\fi}%
+    \def\tabu@spreadheader{%
+      (tabu) Try#1 #1 Spread #1 #1 tabu Width #1 #1 #1 Nat. X #1 #1 #1 #1Nat. Min.
+                                                      #1 New Target^^J%
+      (tabu) sprd}
+    \def\tabu@message@save {\begingroup
+        \def\x ####1{\tabu@msg@align ####1{ }{ }{ }{ }{}\@@}
+        \def\z ####1{\expandafter\x\expandafter{\romannumeral-`\0\tabu@strippt
+                                                     \dimexpr####1\p@{ }{ }}}%
+        \let\color \relax \def\tabu@rulesstyle ####1####2{\detokenize{####1}}%
+        \let\CT@arc@ \relax \let\@preamble \@gobble
+        \let\tabu@savedpream  \@firstofone
+        \let\tabu@savedparams \@firstofone
+        \def\tabu@target ####1\relax   {(tabu) target #1 #1 #1 #1 #1 = \x{####1}^^J}%
+        \def\tabucolX ####1\relax      {(tabu) X columns width#1 = \x{####1}^^J}%
+        \def\tabu@nbcols ####1\relax   {(tabu) Number of columns: \z{####1}^^J}%
+        \def\tabu@aligndefault    ####1{(tabu) Default alignment: #1 #1 ####1^^J}%
+        \def\col@sep ####1\relax       {(tabu) column sep #1 #1 #1 = \x{####1}^^J}%
+        \def\arrayrulewidth ####1\relax{(tabu) arrayrulewidth #1 = \x{####1}}%
+        \def\doublerulesep ####1\relax { doublerulesep = \x{####1}^^J}%
+        \def\extratabsurround####1\relax{(tabu) extratabsurround = \x{####1}^^J}%
+        \def\extrarowheight ####1\relax{(tabu) extrarowheight #1 = \x{####1}}%
+        \def\extrarowdepth ####1\relax {extrarowdepth = \x{####1}^^J}%
+        \def\abovetabulinesep####1\relax{(tabu) abovetabulinesep=\x{####1} }%
+        \def\belowtabulinesep####1\relax{ belowtabulinesep=\x{####1}^^J}%
+        \def\arraystretch         ####1{(tabu) arraystretch #1 #1 = \z{####1}^^J}%
+        \def\minrowclearance####1\relax{(tabu) minrowclearance #1 = \x{####1}^^J}%
+        \def\tabu@arc@L           ####1{(tabu) taburulecolor #1 #1 = ####1^^J}%
+        \def\tabu@drsc@L          ####1{(tabu) tabudoublerulecolor=  ####1^^J}%
+        \def\tabu@evr@L           ####1{(tabu) everyrow #1 #1 #1 #1 = \detokenize{####1}^^J}%
+        \def\tabu@ls@L            ####1{(tabu) line style = \detokenize{####1}^^J}%
+        \def\NC@find ####1\@nil{(tabu) tabu preamble#1 #1 = \detokenize{####1}^^J}%
+        \def\tabu@wddef####1####2{(tabu) Natural width ####1 = \x{####2}^^J}%
+        \let\edef \@gobbletwo \let\def \@empty \let\let \@gobbletwo
+        \tabu@message{%
+         (tabu) \string\savetabu{\tabu@temp}: \on@line^^J%
+         \tabu@usetabu \@nil^^J}%
+        \endgroup}
+}\do{ }
+%% Measuring the natural width (varwidth) - store the results -------
+\def\tabu@startpboxmeasure #1{\bgroup   % entering \vtop
+    \edef\tabu@temp{\expandafter\@secondoftwo \ifx\tabu@hsize #1\else\relax\fi}%
+    \ifodd 1\ifx \tabu@temp\@empty 0 \else      % starts with \tabu@hsize ?
+            \iftabu@spread           \else      % if spread -> measure
+            \ifdim \tabu@temp\p@>\z@ 0 \fi\fi\fi% if coef>0 -> do not measure
+        \let\@startpbox \tabu@startpboxORI      % restore immediately (nesting)
+        \tabu@measuringtrue                     % for the quick option...
+        \tabu@Xcol =\expandafter\@firstoftwo\ifx\tabu@hsize #1\fi
+        \ifdim \tabu@temp\p@>\z@ \ifdim \tabu@temp\tabucolX<\tabu@target
+                                        \tabu@target=\tabu@temp\tabucolX \fi\fi
+        \setbox\tabu@box  \hbox \bgroup
+            \begin{varwidth}\tabu@target
+                \let\FV@ListProcessLine \tabu@FV@ListProcessLine  % \hbox to natural width...
+                \narrowragged \arraybackslash \parfillskip \@flushglue
+                \ifdefined\pdfadjustspacing \pdfadjustspacing\z@ \fi
+                \bgroup \aftergroup\tabu@endpboxmeasure
+                \ifdefined \cellspacetoplimit \tabu@cellspacepatch \fi
+    \else \expandafter\@gobble
+                            \tabu@startpboxquick{#1}% \@gobble \bgroup
+    \fi
+}% \tabu@startpboxmeasure
+\def\tabu@cellspacepatch{\def\bcolumn##1\@nil{}\let\ecolumn\@empty
+                                          \bgroup\color@begingroup}
+\def\tabu@endpboxmeasure {%
+    \@finalstrut \@arstrutbox
+                    \end{varwidth}\egroup    % <got my \tabu@box>
+    \ifdim \tabu@temp\p@ <\z@   % neg coef
+        \ifdim \tabu@wd\tabu@Xcol <\wd\tabu@box
+            \tabu@wddef\tabu@Xcol {\the\wd\tabu@box}%
+            \tabu@debug{\tabu@message@endpboxmeasure}%
+        \fi
+    \else                       % spread coef>0
+        \global\advance \tabu@naturalX \wd\tabu@box
+        \@tempdima =\dimexpr \wd\tabu@box *\p@/\dimexpr \tabu@temp\p@\relax \relax
+        \ifdim \tabu@naturalXmax <\tabu@naturalX
+            \xdef\tabu@naturalXmax {\the\tabu@naturalX}\fi
+        \ifdim \tabu@naturalXmin <\@tempdima
+            \xdef\tabu@naturalXmin {\the\@tempdima}\fi
+    \fi
+   \box\tabu@box \egroup % end of \vtop (measure) restore \tabu@target
+}% \tabu@endpboxmeasure
+\def\tabu@wddef #1{\expandafter\xdef
+                   \csname tabu@\the\tabu@nested.W\number#1\endcsname}
+\def\tabu@wd    #1{\csname tabu@\the\tabu@nested.W\number#1\endcsname}
+\def\tabu@message@endpboxmeasure{\tabu@spaces\tabu@spaces<-> % <-> save natural wd
+    \the\tabu@Xcol. X[\tabu@temp]:
+    target = \the\tabucolX \space
+    \expandafter\expandafter\expandafter\string\tabu@wd\tabu@Xcol
+    =\tabu@wd\tabu@Xcol
+}% \tabu@message@endpboxmeasure
+\def\tabu@startpboxquick {\bgroup
+    \let\@startpbox \tabu@startpboxORI  % restore immediately
+    \let\tabu \tabu@quick               % \begin is expanded before...
+    \expandafter\@gobble \@startpbox    % gobbles \bgroup
+}% \tabu@startpboxquick
+\def\tabu@quick {\begingroup \iffalse{\fi \ifnum0=`}\fi
+    \toks@{}\def\tabu@stack{b}\tabu@collectbody \tabu@endquick
+}% \tabu@quick
+\def\tabu@endquick {%
+    \ifodd 1\ifx\tabu@end@envir\tabu@endtabu  \else
+            \ifx\tabu@end@envir\tabu@endtabus \else 0\fi\fi\relax
+            \endgroup
+    \else   \let\endtabu \relax
+            \tabu@end@envir
+    \fi
+}% \tabu@quick
+\def\tabu@endtabu   {\end{tabu}}
+\def\tabu@endtabus  {\end{tabu*}}
+%% Measuring the heights and depths - store the results -------------
+\def\tabu@verticalmeasure{\everypar{}%
+    \ifnum \currentgrouptype>12         % 14=semi-simple, 15=math shift group
+        \setbox\tabu@box =\hbox\bgroup
+            \let\tabu@verticalspacing \tabu@verticalsp@lcr
+            \d@llarbegin                % after \hbox ...
+    \else
+        \edef\tabu@temp{\ifnum\currentgrouptype=5\vtop
+                        \else\ifnum\currentgrouptype=12\vcenter
+                        \else\vbox\fi\fi}%
+        \setbox\tabu@box \hbox\bgroup$\tabu@temp \bgroup
+            \let\tabu@verticalspacing \tabu@verticalsp@pmb
+    \fi
+}% \tabu@verticalmeasure
+\def\tabu@verticalsp@lcr{%
+    \d@llarend \egroup       % <got my \tabu@box>
+    \@tempdima \dimexpr \ht\tabu@box+\abovetabulinesep
+    \@tempdimb \dimexpr \dp\tabu@box+\belowtabulinesep \relax
+        \ifdim\tabustrutrule>\z@ \tabu@debug{\tabu@message@verticalsp}\fi
+    \ifdim \tabu@ht<\@tempdima    \tabu@htdef{\the\@tempdima}\fi
+    \ifdim \tabu@dp<\@tempdimb    \tabu@dpdef{\the\@tempdimb}\fi
+    \noindent\vrule height\@tempdima depth\@tempdimb
+}% \tabu@verticalsp@lcr
+\def\tabu@verticalsp@pmb{% inserts struts as needed
+    \par \expandafter\egroup
+            \expandafter$\expandafter
+                    \egroup \expandafter
+                            \@tempdimc \the\prevdepth
+    \@tempdima \dimexpr \ht\tabu@box+\abovetabulinesep
+    \@tempdimb \dimexpr \dp\tabu@box+\belowtabulinesep \relax
+        \ifdim\tabustrutrule>\z@ \tabu@debug{\tabu@message@verticalsp}\fi
+    \ifdim \tabu@ht<\@tempdima    \tabu@htdef{\the\@tempdima}\fi
+    \ifdim \tabu@dp<\@tempdimb    \tabu@dpdef{\the\@tempdimb}\fi
+    \let\@finalstrut \@gobble
+    \hrule height\@tempdima depth\@tempdimb width\hsize
+%%    \box\tabu@box
+}% \tabu@verticalsp@pmb
+
+\def\tabu@verticalinit{%
+    \ifnum \c@taburow=\z@ \tabu@rearstrut \fi       % after \tabu@reset !
+    \advance\c@taburow \@ne
+    \tabu@htdef{\the\ht\@arstrutbox}\tabu@dpdef{\the\dp\@arstrutbox}%
+    \advance\c@taburow \m@ne
+}% \tabu@verticalinit
+\def\tabu@htdef {\expandafter\xdef \csname tabu@\the\tabu@nested.H\the\c@taburow\endcsname}
+\def\tabu@ht                      {\csname tabu@\the\tabu@nested.H\the\c@taburow\endcsname}
+\def\tabu@dpdef {\expandafter\xdef \csname tabu@\the\tabu@nested.D\the\c@taburow\endcsname}
+\def\tabu@dp                      {\csname tabu@\the\tabu@nested.D\the\c@taburow\endcsname}
+\def\tabu@verticaldynamicadjustment {%
+    \advance\c@taburow \@ne
+        \extrarowheight \dimexpr\tabu@ht - \ht\strutbox
+        \extrarowdepth  \dimexpr\tabu@dp - \dp\strutbox
+        \let\arraystretch \@empty
+    \advance\c@taburow \m@ne
+}% \tabu@verticaldynamicadjustment
+\def\tabuphantomline{\crcr \noalign{%
+    {\globaldefs \@ne
+        \setbox\@arstrutbox     \box\voidb@x
+        \let\tabu@@celllalign   \tabu@celllalign
+        \let\tabu@@cellralign   \tabu@cellralign
+        \let\tabu@@cellleft     \tabu@cellleft
+        \let\tabu@@cellright    \tabu@cellright
+        \let\tabu@@thevline     \tabu@thevline
+        \let\tabu@celllalign    \@empty
+        \let\tabu@cellralign    \@empty
+        \let\tabu@cellright     \@empty
+        \let\tabu@cellleft      \@empty
+        \let\tabu@thevline      \relax}%
+    \edef\tabu@temp{\tabu@multispan \tabu@nbcols{\noindent &}}%
+    \toks@\expandafter{\tabu@temp \noindent\tabu@everyrowfalse \cr
+        \noalign{\tabu@rearstrut
+            {\globaldefs\@ne
+                \let\tabu@celllalign \tabu@@celllalign
+                \let\tabu@cellralign \tabu@@cellralign
+                \let\tabu@cellleft   \tabu@@cellleft
+                \let\tabu@cellright  \tabu@@cellright
+                \let\tabu@thevline   \tabu@@thevline}}}%
+    \expandafter}\the\toks@
+}% \tabuphantomline
+%% \firsthline and \lasthline corrections ---------------------------
+\def\tabu@firstline {\tabu@hlineAZ  \tabu@firsthlinecorrection     {}}
+\def\tabu@firsthline{\tabu@hlineAZ  \tabu@firsthlinecorrection \hline}
+\def\tabu@lastline  {\tabu@hlineAZ  \tabu@lasthlinecorrection      {}}
+\def\tabu@lasthline {\tabu@hlineAZ  \tabu@lasthlinecorrection  \hline}
+\def\tabu@hline {% replaces \hline if no colortbl (see \AtBeginDocument)
+    \noalign{\ifnum0=`}\fi
+    {\CT@arc@\hrule height\arrayrulewidth}%
+    \futurelet \tabu@temp \tabu@xhline
+}% \tabu@hline
+\def\tabu@xhline{%
+    \ifx \tabu@temp \hline
+        {\ifx \CT@drsc@\relax \vskip
+         \else\ifx \CT@drsc@\@empty \vskip
+         \else \CT@drsc@\hrule height
+         \fi\fi
+         \doublerulesep}%
+    \fi
+    \ifnum0=`{\fi}%
+}% \tabu@xhline
+\def\tabu@hlineAZ #1#2{\noalign{\ifnum0=`}\fi \dimen@ \z@ \count@ \z@
+    \toks@{}\def\tabu@hlinecorrection{#1}\def\tabu@temp{#2}%
+    \tabu@hlineAZsurround
+}% \tabu@hlineAZ
+\newcommand*\tabu@hlineAZsurround[1][\extratabsurround]{%
+    \extratabsurround #1\let\tabucline \tabucline@scan
+    \let\hline     \tabu@hlinescan \let\firsthline \hline
+    \let\cline     \tabu@clinescan \let\lasthline  \hline
+    \expandafter \futurelet \expandafter \tabu@temp
+                \expandafter \tabu@nexthlineAZ \tabu@temp
+}% \tabu@hlineAZsurround
+\def\tabu@hlinescan   {\tabu@thick \arrayrulewidth \tabu@xhlineAZ \hline}
+\def\tabu@clinescan #1{\tabu@thick \arrayrulewidth \tabu@xhlineAZ {\cline{#1}}}
+\def\tabucline@scan{\@testopt \tabucline@sc@n {}}
+\def\tabucline@sc@n #1[#2]{\tabu@xhlineAZ {\tabucline[{#1}]{#2}}}
+\def\tabu@nexthlineAZ{%
+    \ifx \tabu@temp\hline \else
+    \ifx \tabu@temp\cline \else
+    \ifx \tabu@temp\tabucline \else
+         \tabu@hlinecorrection
+    \fi\fi\fi
+}% \tabu@nexthlineAZ
+\def\tabu@xhlineAZ #1{%
+    \toks@\expandafter{\the\toks@ #1}%
+    \@tempdimc \tabu@thick                  % The last line width
+    \ifcase\count@ \@tempdimb \tabu@thick   % The first line width
+    \else \advance\dimen@ \dimexpr \tabu@thick+\doublerulesep \relax
+    \fi
+    \advance\count@ \@ne    \futurelet \tabu@temp \tabu@nexthlineAZ
+}% \tabu@xhlineAZ
+\def\tabu@firsthlinecorrection{% \count@ = number of \hline -1
+    \@tempdima \dimexpr \ht\@arstrutbox+\dimen@
+    \edef\firsthline{%      <local in \noalign>
+        \omit \hbox to\z@{\hss{\noexpand\tabu@DBG{yellow}\vrule
+                    height \the\dimexpr\@tempdima+\extratabsurround
+                    depth  \dp\@arstrutbox
+                    width  \tabustrutrule}\hss}\cr
+        \noalign{\vskip -\the\dimexpr   \@tempdima+\@tempdimb
+                                        +\dp\@arstrutbox \relax}%
+        \the\toks@
+   }\ifnum0=`{\fi
+            \expandafter}\firsthline % we are then !
+}% \tabu@firsthlinecorrection
+\def\tabu@lasthlinecorrection{%
+    \@tempdima \dimexpr  \dp\@arstrutbox+\dimen@+\@tempdimb+\@tempdimc
+    \edef\lasthline{%   <local in \noalign>
+        \the\toks@
+        \noalign{\vskip -\the\dimexpr\dimen@+\@tempdimb+\dp\@arstrutbox}%
+        \omit \hbox to\z@{\hss{\noexpand\tabu@DBG{yellow}\vrule
+                    depth \the\dimexpr \dp\@arstrutbox+\@tempdimb+\dimen@
+                                       +\extratabsurround-\@tempdimc
+                    height \z@
+                    width \tabustrutrule}\hss}\cr
+    }\ifnum0=`{\fi
+            \expandafter}\lasthline % we are then !
+}% \tabu@lasthlinecorrection
+\def\tabu@LT@@hline{%
+    \ifx\LT@next\hline
+        \global\let\LT@next \@gobble
+        \ifx \CT@drsc@\relax
+            \gdef\CT@LT@sep{%
+                \noalign{\penalty-\@medpenalty\vskip\doublerulesep}}%
+        \else
+            \gdef\CT@LT@sep{%
+                \multispan\LT@cols{%
+                \CT@drsc@\leaders\hrule\@height\doublerulesep\hfill}\cr}%
+        \fi
+    \else
+        \global\let\LT@next\empty
+        \gdef\CT@LT@sep{%
+            \noalign{\penalty-\@lowpenalty\vskip-\arrayrulewidth}}%
+    \fi
+    \ifnum0=`{\fi}%
+    \multispan\LT@cols
+        {\CT@arc@\leaders\hrule\@height\arrayrulewidth\hfill}\cr
+    \CT@LT@sep
+    \multispan\LT@cols
+        {\CT@arc@\leaders\hrule\@height\arrayrulewidth\hfill}\cr
+    \noalign{\penalty\@M}%
+    \LT@next
+}% \tabu@LT@@hline
+%% Horizontal lines : \tabucline ------------------------------------
+\let\tabu@start \@tempcnta
+\let\tabu@stop  \@tempcntb
+\newcommand*\tabucline{\noalign{\ifnum0=`}\fi \tabu@cline}
+\newcommand*\tabu@cline[2][]{\tabu@startstop{#2}%
+   \ifnum \tabu@stop<\z@   \toks@{}%
+   \else \tabu@clinearg{#1}\tabu@thestyle
+        \edef\tabucline{\toks@{%
+            \ifnum \tabu@start>\z@ \omit
+                  \tabu@multispan\tabu@start {\span\omit}&\fi
+            \omit \tabu@multispan\tabu@stop {\span\omit}%
+                                        \tabu@thehline\cr
+        }}\tabucline
+        \tabu@tracinglines{(tabu:tabucline) Style: #1^^J\the\toks@^^J^^J}%
+    \fi
+    \futurelet \tabu@temp \tabu@xcline
+}% \tabu@cline
+\def\tabu@clinearg #1{%
+    \ifx\\#1\\\let\tabu@thestyle \tabu@ls@
+    \else \@defaultunits \expandafter\let\expandafter\@tempa
+                                    \romannumeral-`\0#1\relax \@nnil
+        \ifx \hbox\@tempa           \tabu@clinebox{#1}%
+        \else\ifx \box\@tempa       \tabu@clinebox{#1}%
+        \else\ifx \vbox\@tempa      \tabu@clinebox{#1}%
+        \else\ifx \vtop\@tempa      \tabu@clinebox{#1}%
+        \else\ifx \copy\@tempa      \tabu@clinebox{#1}%
+        \else\ifx \leaders\@tempa   \tabu@clineleads{#1}%
+        \else\ifx \cleaders\@tempa  \tabu@clineleads{#1}%
+        \else\ifx \xleaders\@tempa  \tabu@clineleads{#1}%
+        \else\tabu@getline {#1}%
+        \fi\fi\fi\fi\fi\fi\fi\fi
+    \fi
+}% \tabu@clinearg
+\def\tabu@clinebox #1{\tabu@clineleads{\xleaders#1\hss}}
+\def\tabu@clineleads #1{%
+    \let\tabu@thestyle \relax \let\tabu@leaders \@undefined
+    \gdef\tabu@thehrule{#1}}
+\def\tabu@thehline{\begingroup
+    \ifdefined\tabu@leaders
+            \noexpand\tabu@thehleaders
+    \else   \noexpand\tabu@thehrule
+    \fi            \endgroup
+}% \tabu@thehline
+\def\tabu@xcline{%
+    \ifx \tabu@temp\tabucline
+        \toks@\expandafter{\the\toks@ \noalign
+        {\ifx\CT@drsc@\relax \vskip
+         \else \CT@drsc@\hrule height
+         \fi
+         \doublerulesep}}%
+    \fi
+    \tabu@docline
+}% \tabu@xcline
+\def\tabu@docline {\ifnum0=`{\fi \expandafter}\the\toks@}
+\def\tabu@docline@evr {\xdef\tabu@doclineafter{\the\toks@}%
+              \ifnum0=`{\fi}\aftergroup\tabu@doclineafter}
+\def\tabu@multispan #1#2{%
+    \ifnum\numexpr#1>\@ne #2\expandafter\tabu@multispan
+    \else                   \expandafter\@gobbletwo
+    \fi  {#1-1}{#2}%
+}% \tabu@multispan
+\def\tabu@startstop #1{\tabu@start@stop #1\relax 1-\tabu@nbcols \@nnil}
+\def\tabu@start@stop #1-#2\@nnil{%
+   \@defaultunits   \tabu@start\number 0#1\relax    \@nnil
+   \@defaultunits   \tabu@stop \number 0#2\relax    \@nnil
+   \tabu@stop   \ifnum \tabu@start>\tabu@nbcols     \m@ne
+                \else\ifnum \tabu@stop=\z@          \tabu@nbcols
+                \else\ifnum \tabu@stop>\tabu@nbcols \tabu@nbcols
+                \else                               \tabu@stop
+                \fi\fi\fi
+   \advance\tabu@start \m@ne
+   \ifnum \tabu@start>\z@ \advance\tabu@stop -\tabu@start \fi
+}% \tabu@start@stop
+%% Numbers: siunitx S columns  (and \tabudecimal) -------------------
+\def\tabu@tabudecimal #1{%
+    \def\tabu@decimal{#1}\@temptokena{}%
+    \let\tabu@getdecimal@ \tabu@getdecimal@ignorespaces
+    \tabu@scandecimal
+}% \tabu@tabudecimal
+\def\tabu@scandecimal{\futurelet \tabu@temp \tabu@getdecimal@}
+\def\tabu@skipdecimal#1{#1\tabu@scandecimal}
+\def\tabu@getdecimal@ignorespaces{%
+    \ifcase 0\ifx\tabu@temp\ignorespaces\else
+             \ifx\tabu@temp\@sptoken1\else
+             2\fi\fi\relax
+            \let\tabu@getdecimal@ \tabu@getdecimal
+            \expandafter\tabu@skipdecimal
+    \or     \expandafter\tabu@gobblespace\expandafter\tabu@scandecimal
+    \else   \expandafter\tabu@skipdecimal
+    \fi
+}% \tabu@getdecimal@ignorespaces
+\def\tabu@get@decimal#1{\@temptokena\expandafter{\the\@temptokena #1}%
+                        \tabu@scandecimal}
+\def\do#1{%
+    \def\tabu@get@decimalspace#1{%
+        \@temptokena\expandafter{\the\@temptokena #1}\tabu@scandecimal}%
+}\do{ }
+\let\tabu@@tabudecimal \tabu@tabudecimal
+\def\tabu@getdecimal{%
+   \ifcase    0\ifx 0\tabu@temp\else
+               \ifx 1\tabu@temp\else
+               \ifx 2\tabu@temp\else
+               \ifx 3\tabu@temp\else
+               \ifx 4\tabu@temp\else
+               \ifx 5\tabu@temp\else
+               \ifx 6\tabu@temp\else
+               \ifx 7\tabu@temp\else
+               \ifx 8\tabu@temp\else
+               \ifx 9\tabu@temp\else
+               \ifx .\tabu@temp\else
+               \ifx ,\tabu@temp\else
+               \ifx -\tabu@temp\else
+               \ifx +\tabu@temp\else
+               \ifx e\tabu@temp\else
+               \ifx E\tabu@temp\else
+               \ifx\tabu@cellleft\tabu@temp1\else
+               \ifx\ignorespaces\tabu@temp1\else
+               \ifx\@sptoken\tabu@temp2\else
+            3\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\relax
+       \expandafter\tabu@get@decimal
+   \or \expandafter\tabu@skipdecimal
+   \or \expandafter\tabu@get@decimalspace
+   \else\expandafter\tabu@printdecimal
+   \fi
+}% \tabu@getdecimal
+\def\tabu@printdecimal{%
+    \edef\tabu@temp{\the\@temptokena}%
+    \ifx\tabu@temp\@empty\else
+    \ifx\tabu@temp\space\else
+        \expandafter\tabu@decimal\expandafter{\the\@temptokena}%
+    \fi\fi
+}% \tabu@printdecimal
+%% Verbatim inside X columns ----------------------------------------
+\def\tabu@verbatim{%
+    \let\verb \tabu@verb
+    \let\FV@DefineCheckEnd \tabu@FV@DefineCheckEnd
+}% \tabu@verbatim
+\let\tabu@ltx@verb \verb
+\def\tabu@verb{\@ifstar {\tabu@ltx@verb*} \tabu@ltx@verb}
+\def\tabu@fancyvrb {%
+    \def\tabu@FV@DefineCheckEnd ##1{%
+        \def\tabu@FV@DefineCheckEnd{%
+            ##1% <original definition (if fancyvrb is loaded)>
+            \let\FV@CheckEnd     \tabu@FV@CheckEnd
+            \let\FV@@CheckEnd    \tabu@FV@@CheckEnd
+            \let\FV@@@CheckEnd   \tabu@FV@@@CheckEnd
+            \edef\FV@EndScanning{%
+            \def\noexpand\next{\noexpand\end{\FV@EnvironName}}%
+                \global\let\noexpand\FV@EnvironName\relax
+                \noexpand\next}%
+            \xdef\FV@EnvironName{\detokenize\expandafter{\FV@EnvironName}}}%
+    }\expandafter\tabu@FV@DefineCheckEnd\expandafter{\FV@DefineCheckEnd}
+}% \tabu@fancyvrb
+\def\tabu@FV@CheckEnd  #1{\expandafter\FV@@CheckEnd \detokenize{#1\end{}}\@nil}
+\edef\tabu@FV@@@CheckEnd {\detokenize{\end{}}}
+\begingroup
+\catcode`\[1      \catcode`\]2
+\@makeother\{     \@makeother\}
+   \edef\x[\endgroup
+      \def\noexpand\tabu@FV@@CheckEnd ##1\detokenize[\end{]##2\detokenize[}]##3%
+   ]\x               \@nil{\def\@tempa{#2}\def\@tempb{#3}}
+\def\tabu@FV@ListProcessLine #1{%
+  \hbox {%to \hsize{%
+    \kern\leftmargin
+    \hbox {%to \linewidth{%
+      \FV@LeftListNumber
+      \FV@LeftListFrame
+      \FancyVerbFormatLine{#1}\hss
+%% DG/SR modification begin - Jan. 28, 1998 (for numbers=right add-on)
+%%      \FV@RightListFrame}%
+      \FV@RightListFrame
+      \FV@RightListNumber}%
+%% DG/SR modification end
+    \hss}}
+%% \savetabu --------------------------------------------------------
+\newcommand*\savetabu[1]{\noalign{%
+    \tabu@sanitizearg{#1}\tabu@temp
+    \ifx \tabu@temp\@empty  \tabu@savewarn{}{The tabu will not be saved}\else
+        \@ifundefined{tabu@saved@\tabu@temp}{}{\tabu@savewarn{#1}{Overwriting}}%
+        \ifdefined\tabu@restored \expandafter\let
+            \csname tabu@saved@\tabu@temp \endcsname \tabu@restored
+        \else {\tabu@save}%
+        \fi
+    \fi}%
+}% \savetabu
+\def\tabu@save {%
+    \toks0\expandafter{\tabu@saved@}%
+    \iftabu@negcoef
+        \let\tabu@wddef \relax \let\tabu@ \tabu@savewd \edef\tabu@savewd{\tabu@Xcoefs}%
+        \toks0\expandafter{\the\toks\expandafter0\tabu@savewd}\fi
+    \toks1\expandafter{\tabu@savedpream}%
+    \toks2\expandafter{\tabu@savedpreamble}%
+    \let\@preamble \relax
+    \let\tabu@savedpream \relax \let\tabu@savedparams \relax
+    \edef\tabu@preamble{%
+        \def\noexpand\tabu@aligndefault{\tabu@align}%
+        \def\tabu@savedparams {\noexpand\the\toks0}%
+        \def\tabu@savedpream  {\noexpand\the\toks1}}%
+    \edef\tabu@usetabu{%
+        \def\@preamble {\noexpand\the\toks2}%
+        \tabu@target \the\tabu@target \relax
+        \tabucolX    \the\tabucolX    \relax
+        \tabu@nbcols \the\tabu@nbcols \relax
+        \def\noexpand\tabu@aligndefault{\tabu@align}%
+        \def\tabu@savedparams {\noexpand\the\toks0}%
+        \def\tabu@savedpream  {\noexpand\the\toks1}}%
+    \let\tabu@aligndefault \relax \let\@sharp \relax
+    \edef\@tempa{\noexpand\tabu@s@ved
+                          {\tabu@usetabu}
+                         {\tabu@preamble}
+                            {\the\toks1}}\@tempa
+    \tabu@message@save
+}% \tabu@save
+\long\def\tabu@s@ved #1#2#3{%
+    \def\tabu@usetabu{#1}% <for \tabu@message@save>
+    \expandafter\gdef\csname tabu@saved@\tabu@temp\endcsname ##1{%
+        \ifodd ##1%     \usetabu
+            \tabu@measuringfalse \tabu@spreadfalse  % Just in case...
+            \gdef\tabu@usetabu {%
+                \ifdim \tabu@target>\z@ \tabu@warn@usetabu \fi
+                \global\let\tabu@usetabu \@undefined
+                \def\@halignto {to\tabu@target}%
+                #1%
+                \ifx \tabu@align\tabu@aligndefault@text
+                \ifnum \tabu@nested=\z@
+                       \let\tabu@align \tabu@aligndefault \fi\fi}%
+        \else     %     \preamble
+            \gdef\tabu@preamble {%
+                \global\let\tabu@preamble \@undefined
+                #2%
+                \ifx \tabu@align\tabu@aligndefault@text
+                \ifnum \tabu@nested=\z@
+                       \let\tabu@align \tabu@aligndefault \fi\fi}%
+        \fi
+        #3}%
+}% \tabu@s@ved
+\def\tabu@aligndefault@text {\tabu@aligndefault}%
+\def\tabu@warn@usetabu {\PackageWarning{tabu}
+    {Specifying a target with \string\usetabu\space is useless
+    \MessageBreak The target cannot be changed!}}
+\def\tabu@savewd #1#2{\ifdim #2\p@<\z@ \tabu@wddef{#1}{\tabu@wd{#1}}\fi}
+\def\tabu@savewarn#1#2{\PackageInfo{tabu}
+    {User-name `#1' already used for \string\savetabu
+    \MessageBreak #2}}%
+\def\tabu@saveerr#1{\PackageError{tabu}
+    {User-name `#1' is unknown for \string\usetabu
+    \MessageBreak I cannot restore an unknown preamble!}\@ehd}
+%% \rowfont ---------------------------------------------------------
+\newskip \tabu@cellskip
+\def\tabu@rowfont{\ifdim \baselineskip=\z@\noalign\fi
+                    {\ifnum0=`}\fi    \tabu@row@font}
+\newcommand*\tabu@row@font[2][]{%
+    \ifnum7=\currentgrouptype
+        \global\let\tabu@@cellleft    \tabu@cellleft
+        \global\let\tabu@@cellright   \tabu@cellright
+        \global\let\tabu@@celllalign  \tabu@celllalign
+        \global\let\tabu@@cellralign  \tabu@cellralign
+        \global\let\tabu@@rowfontreset\tabu@rowfontreset
+    \fi
+    \global\let\tabu@rowfontreset \tabu@rowfont@reset
+    \expandafter\gdef\expandafter\tabu@cellleft\expandafter{\tabu@cellleft #2}%
+    \ifcsname tabu@cell@#1\endcsname       % row alignment
+            \csname tabu@cell@#1\endcsname \fi
+    \ifnum0=`{\fi}% end of group / noalign group
+}% \rowfont
+\def\tabu@ifcolorleavevmode #1{\let\color \tabu@leavevmodecolor #1\let\color\tabu@color}%
+\def\tabu@rowfont@reset{%
+    \global\let\tabu@rowfontreset \tabu@@rowfontreset
+    \global\let\tabu@cellleft     \tabu@@cellleft
+    \global\let\tabu@cellright    \tabu@@cellright
+    \global\let\tabu@cellfont     \@empty
+    \global\let\tabu@celllalign   \tabu@@celllalign
+    \global\let\tabu@cellralign   \tabu@@cellralign
+}% \tabu@@rowfontreset
+\let\tabu@rowfontreset \@empty     % overwritten \AtBeginDocument if colortbl
+%% \tabu@prepnext@tok -----------------------------------------------
+\newif \iftabu@cellright
+\def\tabu@prepnext@tok{%
+    \ifnum \count@<\z@   % <first initialisation>
+            \@tempcnta  \@M   % <not initialized by array.sty>
+            \tabu@nbcols\z@
+            \let\tabu@fornoopORI \@fornoop
+            \tabu@cellrightfalse
+    \else
+        \ifcase \numexpr \count@-\@tempcnta \relax % (case 0): prev. token is left
+                \advance \tabu@nbcols \@ne
+                \iftabu@cellright % before-previous token is right and is finished
+                    \tabu@cellrightfalse % <only once>
+                    \tabu@righttok
+                \fi
+                \tabu@lefttok
+        \or                     % (case 1) previous token is right
+                \tabu@cellrighttrue \let\@fornoop \tabu@lastnoop
+        \else % special column: do not change the token
+                \iftabu@cellright    % before-previous token is right
+                    \tabu@cellrightfalse
+                    \tabu@righttok
+                \fi
+        \fi % \ifcase
+    \fi
+    \tabu@prepnext@tokORI
+}% \tabu@prepnext@tok
+\long\def\tabu@lastnoop#1\@@#2#3{\tabu@lastn@@p #2\@nextchar \in@\in@@}
+\def\tabu@lastn@@p #1\@nextchar #2#3\in@@{%
+    \ifx \in@#2\else
+        \let\@fornoop \tabu@fornoopORI
+        \xdef\tabu@mkpreambuffer{\tabu@nbcols\the\tabu@nbcols \tabu@mkpreambuffer}%
+        \toks0\expandafter{\expandafter\tabu@everyrowtrue \the\toks0}%
+        \expandafter\prepnext@tok
+    \fi
+}% \tabu@lastnoop
+\def\tabu@righttok{%
+    \advance \count@ \m@ne
+    \toks\count@\expandafter {\the\toks\count@ \tabu@cellright \tabu@cellralign}%
+    \advance \count@ \@ne
+}% \tabu@righttok
+\def\tabu@lefttok{\toks\count@\expandafter{\expandafter\tabu@celllalign
+                                    \the\toks\count@ \tabu@cellleft}% after because of $
+}% \tabu@lefttok
+%% Neutralisation of glues ------------------------------------------
+\let\tabu@cellleft   \@empty
+\let\tabu@cellright  \@empty
+\tabu@celllalign@def{\tabu@cellleft}%
+\let\tabu@cellralign \@empty
+\def\tabu@cell@align #1#2#3{%
+    \let\tabu@maybesiunitx \toks@ \tabu@celllalign
+    \global \expandafter \tabu@celllalign@def \expandafter {\the\toks@ #1}%
+    \toks@\expandafter{\tabu@cellralign #2}%
+    \xdef\tabu@cellralign{\the\toks@}%
+    \toks@\expandafter{\tabu@cellleft #3}%
+    \xdef\tabu@cellleft{\the\toks@}%
+}% \tabu@cell@align
+\def\tabu@cell@l{% force alignment to left
+   \tabu@cell@align
+      {\tabu@removehfil \raggedright \tabu@cellleft}% left
+      {\tabu@flush1\tabu@ignorehfil}%                 right
+      \raggedright
+}% \tabu@cell@l
+\def\tabu@cell@c{% force alignment to center
+   \tabu@cell@align
+      {\tabu@removehfil \centering \tabu@flush{.5}\tabu@cellleft}
+      {\tabu@flush{.5}\tabu@ignorehfil}
+      \centering
+}% \tabu@cell@c
+\def\tabu@cell@r{% force alignment to right
+   \tabu@cell@align
+      {\tabu@removehfil \raggedleft \tabu@flush1\tabu@cellleft}
+      \tabu@ignorehfil
+      \raggedleft
+}% \tabu@cell@r
+\def\tabu@cell@j{% force justification (for p, m, b columns)
+      \tabu@cell@align
+         {\tabu@justify\tabu@cellleft}
+         {}
+         \tabu@justify
+}% \tabu@cell@j
+\def\tabu@justify{%
+   \leftskip\z@skip \@rightskip\leftskip \rightskip\@rightskip
+   \parfillskip\@flushglue
+}% \tabu@justify
+%% ragged2e settings
+\def\tabu@cell@L{% force alignment to left (ragged2e)
+   \tabu@cell@align
+      {\tabu@removehfil \RaggedRight \tabu@cellleft}
+      {\tabu@flush 1\tabu@ignorehfil}
+      \RaggedRight
+}% \tabu@cell@L
+\def\tabu@cell@C{% force alignment to center (ragged2e)
+   \tabu@cell@align
+      {\tabu@removehfil \Centering \tabu@flush{.5}\tabu@cellleft}
+      {\tabu@flush{.5}\tabu@ignorehfil}
+      \Centering
+}% \tabu@cell@C
+\def\tabu@cell@R{% force alignment to right (ragged2e)
+   \tabu@cell@align
+      {\tabu@removehfil \RaggedLeft \tabu@flush 1\tabu@cellleft}
+      \tabu@ignorehfil
+      \RaggedLeft
+}% \tabu@cell@R
+\def\tabu@cell@J{% force justification (ragged2e)
+   \tabu@cell@align
+      {\justifying \tabu@cellleft}
+      {}
+      \justifying
+}% \tabu@cell@J
+\def\tabu@flush#1{%
+    \iftabu@colortbl      % colortbl uses \hfill rather than \hfil
+        \hskip \ifnum13<\currentgrouptype \stretch{#1}%
+        \else  \ifdim#1pt<\p@ \tabu@cellskip
+        \else  \stretch{#1}
+        \fi\fi \relax
+    \else                % array.sty
+        \ifnum 13<\currentgrouptype
+                \hfil \hskip1sp \relax  \fi
+    \fi
+}% \tabu@flush
+\let\tabu@hfil  \hfil
+\let\tabu@hfill \hfill
+\let\tabu@hskip \hskip
+\def\tabu@removehfil{%
+    \iftabu@colortbl
+        \unkern \tabu@cellskip =\lastskip
+        \ifnum\gluestretchorder\tabu@cellskip =\tw@ \hskip-\tabu@cellskip
+        \else \tabu@cellskip \z@skip
+        \fi
+    \else
+        \ifdim\lastskip=1sp\unskip\fi
+        \ifnum\gluestretchorder\lastskip =\@ne
+            \hfilneg % \hfilneg for array.sty but not for colortbl...
+        \fi
+    \fi
+}% \tabu@removehfil
+\def\tabu@ignorehfil{\aftergroup \tabu@nohfil}
+\def\tabu@nohfil{% \hfil -> do nothing + restore original \hfil
+   \def\hfil{\let\hfil \tabu@hfil}%   local to (alignment template) group
+}% \tabu@nohfil
+\def\tabu@colortblalignments {% if colortbl
+    \def\tabu@nohfil{%
+        \def\hfil  {\let\hfil \tabu@hfil}% local to (alignment template) group
+        \def\hfill {\let\hfill \tabu@hfill}% (colortbl uses \hfill) pfff...
+        \def\hskip ####1\relax{\let\hskip \tabu@hskip}}% local
+}% \tabu@colortblalignments
+%% Taking care of footnotes and hyperfootnotes ----------------------
+\long\def\tabu@footnotetext #1{%
+   \edef\@tempa{\the\tabu@footnotes
+      \noexpand\footnotetext [\the\csname c@\@mpfn\endcsname]}%
+   \global\tabu@footnotes\expandafter{\@tempa {#1}}}%
+\long\def\tabu@xfootnotetext [#1]#2{%
+   \global\tabu@footnotes\expandafter{\the\tabu@footnotes
+                               \footnotetext [{#1}]{#2}}}
+\let\tabu@xfootnote \@xfootnote
+\long\def\tabu@Hy@ftntext{\tabu@Hy@ftntxt {\the \c@footnote }}
+\long\def\tabu@Hy@xfootnote [#1]{%
+   \begingroup
+      \value\@mpfn #1\relax
+      \protected@xdef \@thefnmark  {\thempfn}%
+   \endgroup
+   \@footnotemark \tabu@Hy@ftntxt {#1}%
+}% \tabu@Hy@xfootnote
+\long\def\tabu@Hy@ftntxt #1#2{%
+    \edef\@tempa{%
+        \the\tabu@footnotes
+        \begingroup
+            \value\@mpfn #1\relax
+            \noexpand\protected@xdef\noexpand\@thefnmark {\noexpand\thempfn}%
+            \expandafter \noexpand \expandafter
+                \tabu@Hy@footnotetext \expandafter{\Hy@footnote@currentHref}%
+    }%
+    \global\tabu@footnotes\expandafter{\@tempa {#2}%
+                                         \endgroup}%
+}% \tabu@Hy@ftntxt
+\long\def\tabu@Hy@footnotetext #1#2{%
+    \H@@footnotetext{%
+        \ifHy@nesting
+            \hyper@@anchor {#1}{#2}%
+        \else
+            \Hy@raisedlink{%
+                \hyper@@anchor {#1}{\relax}%
+            }%
+            \def\@currentHref {#1}%
+            \let\@currentlabelname \@empty
+            #2%
+        \fi
+    }%
+}% \tabu@Hy@footnotetext
+%% No need for \arraybackslash ! ------------------------------------
+\def\tabu@latextwoe {%
+\def\tabu@temp##1##2##3{{\toks@\expandafter{##2##3}\xdef##1{\the\toks@}}}
+\tabu@temp \tabu@centering   \centering   \arraybackslash
+\tabu@temp \tabu@raggedleft  \raggedleft  \arraybackslash
+\tabu@temp \tabu@raggedright \raggedright \arraybackslash
+}% \tabu@latextwoe
+\def\tabu@raggedtwoe {%
+\def\tabu@temp ##1##2##3{{\toks@\expandafter{##2##3}\xdef##1{\the\toks@}}}
+\tabu@temp \tabu@Centering   \Centering   \arraybackslash
+\tabu@temp \tabu@RaggedLeft  \RaggedLeft  \arraybackslash
+\tabu@temp \tabu@RaggedRight \RaggedRight \arraybackslash
+\tabu@temp \tabu@justifying  \justifying  \arraybackslash
+}% \tabu@raggedtwoe
+\def\tabu@normalcrbackslash{\let\\\@normalcr}
+\def\tabu@trivlist{\expandafter\def\expandafter\@trivlist\expandafter{%
+                       \expandafter\tabu@normalcrbackslash \@trivlist}}
+%% Utilities: \fbox  \fcolorbox  and \tabudecimal -------------------
+\def\tabu@fbox      {\leavevmode\afterassignment\tabu@beginfbox \setbox\@tempboxa\hbox}
+\def\tabu@beginfbox {\bgroup \kern\fboxsep
+                     \bgroup\aftergroup\tabu@endfbox}
+\def\tabu@endfbox   {\kern\fboxsep\egroup\egroup
+                     \@frameb@x\relax}
+\def\tabu@color@b@x #1#2{\leavevmode \bgroup
+    \def\tabu@docolor@b@x{#1{#2\color@block{\wd\z@}{\ht\z@}{\dp\z@}\box\z@}}%
+    \afterassignment\tabu@begincolor@b@x \setbox\z@ \hbox
+}% \tabu@color@b@x
+\def\tabu@begincolor@b@x {\kern\fboxsep \bgroup
+       \aftergroup\tabu@endcolor@b@x \set@color}
+\def\tabu@endcolor@b@x {\kern\fboxsep \egroup
+    \dimen@\ht\z@ \advance\dimen@ \fboxsep \ht\z@ \dimen@
+    \dimen@\dp\z@ \advance\dimen@ \fboxsep \dp\z@ \dimen@
+    \tabu@docolor@b@x \egroup
+}% \tabu@endcolor@b@x
+%% Corrections (arydshln, delarray, colortbl) -----------------------
+\def\tabu@fix@arrayright {%% \@arrayright is missing from \endarray
+    \iftabu@colortbl
+        \ifdefined\adl@array  % <colortbl + arydshln>
+        \def\tabu@endarray{%
+            \adl@endarray \egroup \adl@arrayrestore \CT@end \egroup %<original>
+            \@arrayright      % <FC>
+            \gdef\@preamble{}}% <FC>
+        \else                 % <colortbl / no arydshln>
+        \def\tabu@endarray{%
+            \crcr \egroup \egroup    %<original>
+            \@arrayright             % <FC>
+            \gdef\@preamble{}\CT@end}%
+        \fi
+    \else
+        \ifdefined\adl@array  % <arydshln / no colortbl>
+        \def\tabu@endarray{%
+            \adl@endarray \egroup \adl@arrayrestore \egroup %<original>
+            \@arrayright      % <FC>
+            \gdef\@preamble{}}% <FC>
+    \else                   % <no arydshln / no colotbl + \@arrayright missing>
+        \PackageWarning{tabu}
+        {\string\@arrayright\space is missing from the
+        \MessageBreak definition of \string\endarray.
+        \MessageBreak Compatibility with delarray.sty is broken.}%
+    \fi\fi
+}% \tabu@fix@arrayright
+\def\tabu@adl@xarraydashrule #1#2#3{%
+     \ifnum\@lastchclass=\adl@class@start\else
+     \ifnum\@lastchclass=\@ne\else
+     \ifnum\@lastchclass=5 \else % <FC> @-arg (class 5) and !-arg (class 1)
+             \adl@leftrulefalse \fi\fi           % must be treated the same
+     \fi
+     \ifadl@zwvrule\else \ifadl@inactive\else
+             \@addtopreamble{\vrule\@width\arrayrulewidth
+                     \@height\z@ \@depth\z@}\fi \fi
+     \ifadl@leftrule
+             \@addtopreamble{\adl@vlineL{\CT@arc@}{\adl@dashgapcolor}%
+                     {\number#1}#3}%
+     \else   \@addtopreamble{\adl@vlineR{\CT@arc@}{\adl@dashgapcolor}%
+                     {\number#2}#3}
+     \fi
+}% \tabu@adl@xarraydashrule
+\def\tabu@adl@act@endpbox {%
+    \unskip \ifhmode \nobreak \fi    \@finalstrut \@arstrutbox
+    \egroup \egroup
+    \adl@colhtdp \box\adl@box \hfil
+}% \tabu@adl@act@endpbox
+\def\tabu@adl@fix {%
+    \let\adl@xarraydashrule \tabu@adl@xarraydashrule % <fix> arydshln
+    \let\adl@act@endpbox    \tabu@adl@act@endpbox    % <fix> arydshln
+    \let\adl@act@@endpbox   \tabu@adl@act@endpbox    % <fix> arydshln
+    \let\@preamerror        \@preamerr               % <fix> arydshln
+}% \tabu@adl@fix
+%% Correction for longtable' \@startbox definition ------------------
+%%    => \everypar is ``missing'' : TeX should be in vertical mode
+\def\tabu@LT@startpbox #1{%
+    \bgroup
+        \let\@footnotetext\LT@p@ftntext
+        \setlength\hsize{#1}%
+        \@arrayparboxrestore
+        \everypar{%
+            \vrule \@height \ht\@arstrutbox \@width \z@
+            \everypar{}}%
+}% \tabu@LT@startpbox
+%% \tracingtabu  and  the package options ------------------
+\DeclareOption{delarray}{\AtEndOfPackage{\RequirePackage{delarray}}}
+\DeclareOption{linegoal}{%
+   \AtEndOfPackage{%
+      \RequirePackage{linegoal}[2010/12/07]%
+      \let\tabudefaulttarget \linegoal% \linegoal is \linewidth if not pdfTeX
+}}
+\DeclareOption{scantokens}{\tabuscantokenstrue}
+\DeclareOption{debugshow}{\AtEndOfPackage{\tracingtabu=\tw@}}
+\def\tracingtabu {\begingroup\@ifnextchar=%
+    {\afterassignment\tabu@tracing\count@}
+    {\afterassignment\tabu@tracing\count@1\relax}}
+\def\tabu@tracing{\expandafter\endgroup
+    \expandafter\tabu@tr@cing \the\count@ \relax
+}% \tabu@tracing
+\def\tabu@tr@cing #1\relax {%
+    \ifnum#1>\thr@@ \let\tabu@tracinglines\message
+    \else           \let\tabu@tracinglines\@gobble
+    \fi
+    \ifnum#1>\tw@   \let\tabu@DBG        \tabu@@DBG
+                    \def\tabu@mkarstrut {\tabu@DBG@arstrut}%
+                    \tabustrutrule      1.5\p@
+    \else           \let\tabu@DBG        \@gobble
+                    \def\tabu@mkarstrut {\tabu@arstrut}%
+                    \tabustrutrule      \z@
+    \fi
+    \ifnum#1>\@ne   \let\tabu@debug      \message
+    \else           \let\tabu@debug      \@gobble
+    \fi
+    \ifnum#1>\z@
+        \let\tabu@message             \message
+        \let\tabu@tracing@save        \tabu@message@save
+        \let\tabu@starttimer          \tabu@pdftimer
+    \else
+        \let\tabu@message             \@gobble
+        \let\tabu@tracing@save        \@gobble
+        \let\tabu@starttimer          \relax
+    \fi
+}% \tabu@tr@cing
+%% Setup \AtBeginDocument
+\AtBeginDocument{\tabu@AtBeginDocument}
+\def\tabu@AtBeginDocument{\let\tabu@AtBeginDocument \@undefined
+    \ifdefined\arrayrulecolor   \tabu@colortbltrue       % <colortbl>
+                                \tabu@colortblalignments % different glues are used
+    \else                       \tabu@colortblfalse \fi
+    \ifdefined\CT@arc@ \else \let\CT@arc@  \relax \fi
+    \ifdefined\CT@drsc@\else \let\CT@drsc@ \relax \fi
+    \let\tabu@arc@L \CT@arc@ \let\tabu@drsc@L \CT@drsc@
+    \ifodd 1\ifcsname siunitx_table_collect_begin:Nn\endcsname   % <siunitx: ok>
+            \expandafter\ifx
+                \csname siunitx_table_collect_begin:Nn\endcsname\relax 0\fi\fi\relax
+            \tabu@siunitxtrue
+    \else   \let\tabu@maybesiunitx   \@firstofone                % <not siunitx: setup>
+            \let\tabu@siunitx        \tabu@nosiunitx
+            \tabu@siunitxfalse
+    \fi
+    \ifdefined\adl@array        % <arydshln>
+    \else     \let\tabu@adl@fix \relax
+              \let\tabu@adl@endtrial \@empty \fi
+    \ifdefined\longtable        % <longtable>
+    \else     \let\longtabu \tabu@nolongtabu \fi
+    \ifdefined\cellspacetoplimit \tabu@warn@cellspace\fi
+    \csname\ifcsname ifHy@hyperfootnotes\endcsname % <hyperfootnotes>
+            ifHy@hyperfootnotes\else iffalse\fi\endcsname
+        \let\tabu@footnotetext \tabu@Hy@ftntext
+        \let\tabu@xfootnote    \tabu@Hy@xfootnote \fi
+    \ifdefined\FV@DefineCheckEnd% <fancyvrb>
+            \tabu@fancyvrb  \fi
+    \ifdefined\color            % <color / xcolor>
+        \let\tabu@color \color
+        \def\tabu@leavevmodecolor ##1{%
+            \def\tabu@leavevmodecolor {\leavevmode ##1}%
+        }\expandafter\tabu@leavevmodecolor\expandafter{\color}%
+    \else
+        \let\tabu@color           \tabu@nocolor
+        \let\tabu@leavevmodecolor \@firstofone \fi
+    \tabu@latextwoe
+    \ifdefined\@raggedtwoe@everyselectfont    % <ragged2e>
+        \tabu@raggedtwoe
+    \else
+        \let\tabu@cell@L \tabu@cell@l
+        \let\tabu@cell@R \tabu@cell@r
+        \let\tabu@cell@C \tabu@cell@c
+        \let\tabu@cell@J \tabu@cell@j   \fi
+    \expandafter\in@ \expandafter\@arrayright \expandafter{\endarray}%
+    \ifin@ \let\tabu@endarray \endarray
+    \else  \tabu@fix@arrayright \fi% <fix for colortbl & arydshln (delarray)>
+    \everyrow{}%
+}% \tabu@AtBeginDocument
+\def\tabu@warn@cellspace{%
+    \PackageWarning{tabu}{%
+                  Package cellspace has some limitations
+    \MessageBreak And redefines some macros of array.sty.
+    \MessageBreak Please use \string\tabulinesep\space to control
+    \MessageBreak vertical spacing of lines inside tabu environment}%
+}% \tabu@warn@cellspace
+%% tabu Package initialisation
+\tabuscantokensfalse
+\let\tabu@arc@G         \relax
+\let\tabu@drsc@G        \relax
+\let\tabu@evr@G         \@empty
+\let\tabu@rc@G          \@empty
+\def\tabu@ls@G          {\tabu@linestyle@}%
+\let\tabu@@rowfontreset \@empty % <init>
+\let\tabu@@celllalign   \@empty
+\let\tabu@@cellralign   \@empty
+\let\tabu@@cellleft     \@empty
+\let\tabu@@cellright    \@empty
+\def\tabu@naturalXmin   {\z@}
+\def\tabu@naturalXmax   {\z@}
+\let\tabu@rowfontreset  \@empty
+\def\tabulineon {4pt}\let\tabulineoff \tabulineon
+\tabu@everyrowtrue
+\ifdefined\pdfelapsedtime                   % <pdfTeX>
+        \def\tabu@pdftimer {\xdef\tabu@starttime{\the\pdfelapsedtime}}%
+\else   \let\tabu@pdftimer \relax \let\tabu@message@etime \relax
+\fi
+\tracingtabu=\z@
+\newtabulinestyle {=\maxdimen}% creates the 'factory' settings \tabu@linestyle@
+\tabulinestyle{}
+\taburowcolors{}
+\let\tabudefaulttarget  \linewidth
+\ProcessOptions*                % \ProcessOptions* is quicker !
+\endinput
+%%
+%% End of file `tabu.sty'.