<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version="1.9.7" xml:lang="en-US">
  <compounddef id="d8/d6b/classComponent" kind="class" language="C++" prot="public">
    <compoundname>Component</compoundname>
    <derivedcompoundref refid="d1/ddc/classControllerComponent" prot="public" virt="non-virtual">ControllerComponent</derivedcompoundref>
    <derivedcompoundref refid="dd/d81/classHealthComponent" prot="public" virt="non-virtual">HealthComponent</derivedcompoundref>
    <derivedcompoundref refid="d9/d15/classIPhysicsComponent" prot="public" virt="non-virtual">IPhysicsComponent</derivedcompoundref>
    <derivedcompoundref refid="d2/d89/classIScript" prot="public" virt="non-virtual">IScript</derivedcompoundref>
    <derivedcompoundref refid="dd/d7a/classProjectileComponent" prot="public" virt="non-virtual">ProjectileComponent</derivedcompoundref>
    <derivedcompoundref refid="d6/d77/classSpriteComponent" prot="public" virt="non-virtual">SpriteComponent</derivedcompoundref>
    <derivedcompoundref refid="d9/d56/classTileMapComponent" prot="public" virt="non-virtual">TileMapComponent</derivedcompoundref>
    <derivedcompoundref refid="d2/d0a/classTransformComponent" prot="public" virt="non-virtual">TransformComponent</derivedcompoundref>
    <includes refid="df/d1f/Component_8hpp" local="no">Component.hpp</includes>
      <sectiondef kind="protected-attrib">
      <memberdef kind="variable" id="d8/d6b/classComponent_1ab9b45a6a11e943c86770a1b3e085c25c" prot="protected" static="no" mutable="no">
        <type>std::vector&lt; ComponentTag &gt;</type>
        <definition>std::vector&lt;ComponentTag&gt; Component::tags</definition>
        <argsstring></argsstring>
        <name>tags</name>
        <qualifiedname>Component::tags</qualifiedname>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="include/Component.hpp" line="105" column="17" bodyfile="include/Component.hpp" bodystart="105" bodyend="-1"/>
      </memberdef>
      <memberdef kind="variable" id="d8/d6b/classComponent_1a929d29b8cdb9447b70f5e7d990c7d0f0" prot="protected" static="no" mutable="no">
        <type>std::vector&lt; std::string &gt;</type>
        <definition>std::vector&lt;std::string&gt; Component::previousBroadcasts</definition>
        <argsstring></argsstring>
        <name>previousBroadcasts</name>
        <qualifiedname>Component::previousBroadcasts</qualifiedname>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="include/Component.hpp" line="106" column="17" bodyfile="include/Component.hpp" bodystart="106" bodyend="-1"/>
      </memberdef>
      <memberdef kind="variable" id="d8/d6b/classComponent_1a7d03b8c23a6fa95fd83f08ad88cd59ee" prot="protected" static="no" mutable="no">
        <type>std::vector&lt; std::string &gt;</type>
        <definition>std::vector&lt;std::string&gt; Component::pendingBroadcasts</definition>
        <argsstring></argsstring>
        <name>pendingBroadcasts</name>
        <qualifiedname>Component::pendingBroadcasts</qualifiedname>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="include/Component.hpp" line="107" column="17" bodyfile="include/Component.hpp" bodystart="107" bodyend="-1"/>
      </memberdef>
      </sectiondef>
      <sectiondef kind="public-func">
      <memberdef kind="function" id="d8/d6b/classComponent_1a8775db6d1a2c1afc2e77cd3c8f39da6f" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type></type>
        <definition>Component::Component</definition>
        <argsstring>()</argsstring>
        <name>Component</name>
        <qualifiedname>Component::Component</qualifiedname>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
<para>Construct a new <ref refid="d8/d6b/classComponent" kindref="compound">Component</ref> object </para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="include/Component.hpp" line="43" column="5" bodyfile="src/Component.cpp" bodystart="5" bodyend="6"/>
      </memberdef>
      <memberdef kind="function" id="d8/d6b/classComponent_1ab8378fa275af98e568a7e91d33d867af" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type></type>
        <definition>Component::~Component</definition>
        <argsstring>()</argsstring>
        <name>~Component</name>
        <qualifiedname>Component::~Component</qualifiedname>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
<para>Destroy the <ref refid="d8/d6b/classComponent" kindref="compound">Component</ref> object </para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="include/Component.hpp" line="48" column="5" bodyfile="src/Component.cpp" bodystart="8" bodyend="9"/>
      </memberdef>
      <memberdef kind="function" id="d8/d6b/classComponent_1a9c764c2a5607ef52629458d361ebf16e" prot="public" static="no" const="no" explicit="no" inline="no" virt="virtual">
        <type>void</type>
        <definition>void Component::Update</definition>
        <argsstring>(SDL_Event e, int frame, std::vector&lt; std::string &gt; broadcastList)</argsstring>
        <name>Update</name>
        <qualifiedname>Component::Update</qualifiedname>
        <reimplementedby refid="d1/ddc/classControllerComponent_1a15980f62cf3400a2829e78d6e0073ea1">Update</reimplementedby>
        <reimplementedby refid="dd/d7a/classProjectileComponent_1a38c9c6161b276691004f672991795b54">Update</reimplementedby>
        <reimplementedby refid="de/d87/classRigidbodyComponent_1afc82759bee18cd1bd0cc90d7482307c1">Update</reimplementedby>
        <reimplementedby refid="d6/d77/classSpriteComponent_1ae8f47512e84273fd8f5312920affb275">Update</reimplementedby>
        <reimplementedby refid="d9/d56/classTileMapComponent_1a767f1d52ce56bde32a2366f18e6dcd50">Update</reimplementedby>
        <reimplementedby refid="d2/d0a/classTransformComponent_1ae808ac3be0106babc97e92afb8f93a96">Update</reimplementedby>
        <reimplementedby refid="dd/d81/classHealthComponent_1ab754979c3a0ac83d2fb7e163dd168d18">Update</reimplementedby>
        <param>
          <type>SDL_Event</type>
          <declname>e</declname>
        </param>
        <param>
          <type>int</type>
          <declname>frame</declname>
        </param>
        <param>
          <type>std::vector&lt; std::string &gt;</type>
          <declname>broadcastList</declname>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
<para>Updates the state of the component object. Called by the <ref refid="d1/db6/classEngine" kindref="compound">Engine</ref> every tick</para>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>e</parametername>
</parameternamelist>
<parameterdescription>
<para>any inputs given by the user </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>frame</parametername>
</parameternamelist>
<parameterdescription>
<para>what frame is the game currently displaying </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>broadcastList</parametername>
</parameternamelist>
<parameterdescription>
<para>a list to be used to send messages between components </para>
</parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="see"><para><ref refid="d8/d6b/classComponent_1aea8f0f460a62d86183020bd667b6cbf0" kindref="member">ParseAndUpdateBroadcast()</ref> </para>
</simplesect>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="include/Component.hpp" line="59" column="18" bodyfile="src/Component.cpp" bodystart="15" bodyend="15"/>
      </memberdef>
      <memberdef kind="function" id="d8/d6b/classComponent_1ab856bdb8c4357a080d7abcf99871a573" prot="public" static="no" const="no" explicit="no" inline="no" virt="virtual">
        <type>void</type>
        <definition>void Component::Render</definition>
        <argsstring>(SDL_Renderer *ren)</argsstring>
        <name>Render</name>
        <qualifiedname>Component::Render</qualifiedname>
        <reimplementedby refid="dd/d81/classHealthComponent_1a196e71923fbf5458a243846e5b71fa6f">Render</reimplementedby>
        <reimplementedby refid="dd/d7a/classProjectileComponent_1aee9362f7012bd2f0ca5088c63a175dd7">Render</reimplementedby>
        <reimplementedby refid="d6/d77/classSpriteComponent_1a843ce3d3a2f37cce8ecc8418969b3607">Render</reimplementedby>
        <reimplementedby refid="d9/d56/classTileMapComponent_1a76dc9312b1d3c4b0193598e55661749f">Render</reimplementedby>
        <reimplementedby refid="d2/d0a/classTransformComponent_1aedc094eb1922c3cfe116e6d67191400e">Render</reimplementedby>
        <param>
          <type>SDL_Renderer *</type>
          <declname>ren</declname>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
<para>Renders the component (if it has anything to render)</para>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>ren</parametername>
</parameternamelist>
<parameterdescription>
<para>the SDL renderer to be displayed upon </para>
</parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="see"><para><ref refid="d7/dea/classIGraphicsEngineRenderer" kindref="compound">IGraphicsEngineRenderer</ref> </para>
</simplesect>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="include/Component.hpp" line="67" column="18" bodyfile="src/Component.cpp" bodystart="17" bodyend="17"/>
      </memberdef>
      <memberdef kind="function" id="d8/d6b/classComponent_1a92af5bb942ea9633515a0c0e16a0bb8c" prot="public" static="no" const="no" explicit="no" inline="no" virt="virtual">
        <type>void</type>
        <definition>void Component::ShowComponentEditor</definition>
        <argsstring>(bool *showEditor)</argsstring>
        <name>ShowComponentEditor</name>
        <qualifiedname>Component::ShowComponentEditor</qualifiedname>
        <reimplementedby refid="d1/ddc/classControllerComponent_1ac55c98ab7c759f014314998b9db372a4">ShowComponentEditor</reimplementedby>
        <reimplementedby refid="dd/d81/classHealthComponent_1a8ee269e60d65fb673c09ed1678ee433d">ShowComponentEditor</reimplementedby>
        <reimplementedby refid="de/d87/classRigidbodyComponent_1a397796f2f8deb197ee0f0d96eb6ba23d">ShowComponentEditor</reimplementedby>
        <reimplementedby refid="d6/d77/classSpriteComponent_1a574dfd6e371ececbcb9067a9d18453ea">ShowComponentEditor</reimplementedby>
        <reimplementedby refid="d9/d56/classTileMapComponent_1a93f28aae22fc29581cd56cc710760ce5">ShowComponentEditor</reimplementedby>
        <reimplementedby refid="d2/d0a/classTransformComponent_1a2db75c6b70fcf13c086f02ac41953057">ShowComponentEditor</reimplementedby>
        <param>
          <type>bool *</type>
          <declname>showEditor</declname>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
<para>Using Imgui, render an editor for this component</para>
<para><simplesect kind="see"><para><ref refid="d5/d3b/classGameMakerGUI_1a2cc6da97c0f4b45175ddc9683308866e" kindref="member">GameMakerGUI::RenderEditor()</ref> </para>
</simplesect>
<parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>showEditor</parametername>
</parameternamelist>
<parameterdescription>
<para></para>
</parameterdescription>
</parameteritem>
</parameterlist>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="include/Component.hpp" line="75" column="18" bodyfile="src/Component.cpp" bodystart="19" bodyend="28"/>
        <referencedby refid="d5/d3b/classGameMakerGUI_1a2cc6da97c0f4b45175ddc9683308866e" compoundref="d8/da4/GameMakerGUI_8cpp" startline="53" endline="108">GameMakerGUI::RenderEditor</referencedby>
      </memberdef>
      <memberdef kind="function" id="d8/d6b/classComponent_1aed93a0ec70ebc71f34f02eb0a3ad4006" prot="public" static="no" const="no" explicit="no" inline="no" virt="virtual">
        <type>bool</type>
        <definition>bool Component::HasTag</definition>
        <argsstring>(ComponentTag t)</argsstring>
        <name>HasTag</name>
        <qualifiedname>Component::HasTag</qualifiedname>
        <param>
          <type>ComponentTag</type>
          <declname>t</declname>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
<para>Checks if the component has the given tag</para>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>t</parametername>
</parameternamelist>
<parameterdescription>
<para>the tag to be checked </para>
</parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>true if the component has t </para>
</simplesect>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="include/Component.hpp" line="83" column="18" bodyfile="src/Component.cpp" bodystart="30" bodyend="35"/>
      </memberdef>
      <memberdef kind="function" id="d8/d6b/classComponent_1a6ad359e7f57daa4ba249aaf5c88da052" prot="public" static="no" const="no" explicit="no" inline="yes" virt="virtual">
        <type>const char *</type>
        <definition>virtual const char * Component::ComponentTypeName</definition>
        <argsstring>()</argsstring>
        <name>ComponentTypeName</name>
        <qualifiedname>Component::ComponentTypeName</qualifiedname>
        <reimplementedby refid="d1/ddc/classControllerComponent_1a8bf49679c87b14a4eb1e90e8046b0b67">ComponentTypeName</reimplementedby>
        <reimplementedby refid="dd/d81/classHealthComponent_1a14144ba98cdc2ce2fbb96ec31cf38a6d">ComponentTypeName</reimplementedby>
        <reimplementedby refid="de/d87/classRigidbodyComponent_1a4e89f2337c4ebe6f720bdad08ece917b">ComponentTypeName</reimplementedby>
        <reimplementedby refid="d6/d77/classSpriteComponent_1a9f2e32f4d314f0b5f903c0730011656e">ComponentTypeName</reimplementedby>
        <reimplementedby refid="d9/d56/classTileMapComponent_1a4883b607bd0e6aec69e1d6a95e572eac">ComponentTypeName</reimplementedby>
        <reimplementedby refid="d2/d0a/classTransformComponent_1aebd4b99e08cce915dd3929ad54befcbc">ComponentTypeName</reimplementedby>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
<para>The name of the component type. Used by the GUI</para>
<para><simplesect kind="see"><para><ref refid="d5/d3b/classGameMakerGUI_1a39546dd352c9c5d198f61e34011131b4" kindref="member">GameMakerGUI::CreateComponent()</ref> </para>
</simplesect>
<simplesect kind="return"><para>the name of the component </para>
</simplesect>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="include/Component.hpp" line="92" column="24" bodyfile="include/Component.hpp" bodystart="92" bodyend="92"/>
        <referencedby refid="d5/d3b/classGameMakerGUI_1a234477cd3aefa75d38b00aa81c848525" compoundref="d8/da4/GameMakerGUI_8cpp" startline="178" endline="213">GameMakerGUI::EditGameObject</referencedby>
        <referencedby refid="d5/d3b/classGameMakerGUI_1a7161039330e8a8cc81dbd9a813d34038" compoundref="d8/da4/GameMakerGUI_8cpp" startline="144" endline="161">GameMakerGUI::ShowDebugWindow</referencedby>
      </memberdef>
      <memberdef kind="function" id="d8/d6b/classComponent_1aea8f0f460a62d86183020bd667b6cbf0" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>void</type>
        <definition>void Component::ParseAndUpdateBroadcast</definition>
        <argsstring>(std::vector&lt; std::string &gt; broadcastList)</argsstring>
        <name>ParseAndUpdateBroadcast</name>
        <qualifiedname>Component::ParseAndUpdateBroadcast</qualifiedname>
        <param>
          <type>std::vector&lt; std::string &gt;</type>
          <declname>broadcastList</declname>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
<para>Communicate with other components. Removes previous broadcasts by this <ref refid="d8/d6b/classComponent" kindref="compound">Component</ref> and adds any new ones. Reads any relevant broadcasts from other Components.</para>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>broadcastList</parametername>
</parameternamelist>
<parameterdescription>
<para>the persistent list of broadcasts </para>
</parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="see"><para><ref refid="d8/d6b/classComponent_1a9c764c2a5607ef52629458d361ebf16e" kindref="member">Update()</ref> </para>
</simplesect>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="include/Component.hpp" line="102" column="10" bodyfile="src/Component.cpp" bodystart="37" bodyend="50"/>
        <referencedby refid="d1/ddc/classControllerComponent_1a15980f62cf3400a2829e78d6e0073ea1" compoundref="d3/d17/ControllerComponent_8cpp" startline="12" endline="25">ControllerComponent::Update</referencedby>
        <referencedby refid="dd/d7a/classProjectileComponent_1a38c9c6161b276691004f672991795b54" compoundref="db/d41/ProjectileComponent_8cpp" startline="40" endline="52">ProjectileComponent::Update</referencedby>
        <referencedby refid="de/d87/classRigidbodyComponent_1afc82759bee18cd1bd0cc90d7482307c1" compoundref="d4/d4e/RigidbodyComponent_8cpp" startline="30" endline="33">RigidbodyComponent::Update</referencedby>
        <referencedby refid="d6/d77/classSpriteComponent_1ae8f47512e84273fd8f5312920affb275" compoundref="d0/dff/Sprite_8cpp" startline="19" endline="44">SpriteComponent::Update</referencedby>
        <referencedby refid="d9/d56/classTileMapComponent_1a767f1d52ce56bde32a2366f18e6dcd50" compoundref="d2/d69/TileMap_8cpp" startline="168" endline="171">TileMapComponent::Update</referencedby>
        <referencedby refid="d2/d0a/classTransformComponent_1ae808ac3be0106babc97e92afb8f93a96" compoundref="da/d4e/TransformComponent_8cpp" startline="37" endline="39">TransformComponent::Update</referencedby>
        <referencedby refid="dd/d81/classHealthComponent_1ab754979c3a0ac83d2fb7e163dd168d18" compoundref="db/d77/HealthComponent_8cpp" startline="18" endline="20">HealthComponent::Update</referencedby>
      </memberdef>
      </sectiondef>
    <briefdescription>
    </briefdescription>
    <detaileddescription>
<para>Virtual class for all components to inherit from. Contains all the functionality for Game Objects.</para>
<para><simplesect kind="see"><para><ref refid="de/d1c/classGameObject" kindref="compound">GameObject</ref> </para>
</simplesect>
</para>
    </detaileddescription>
    <inheritancegraph>
      <node id="1">
        <label>Component</label>
        <link refid="d8/d6b/classComponent"/>
      </node>
      <node id="2">
        <label>ControllerComponent</label>
        <link refid="d1/ddc/classControllerComponent"/>
        <childnode refid="1" relation="public-inheritance">
        </childnode>
      </node>
      <node id="3">
        <label>HealthComponent</label>
        <link refid="dd/d81/classHealthComponent"/>
        <childnode refid="1" relation="public-inheritance">
        </childnode>
      </node>
      <node id="4">
        <label>IPhysicsComponent</label>
        <link refid="d9/d15/classIPhysicsComponent"/>
        <childnode refid="1" relation="public-inheritance">
        </childnode>
      </node>
      <node id="6">
        <label>IScript</label>
        <link refid="d2/d89/classIScript"/>
        <childnode refid="1" relation="public-inheritance">
        </childnode>
      </node>
      <node id="7">
        <label>ProjectileComponent</label>
        <link refid="dd/d7a/classProjectileComponent"/>
        <childnode refid="1" relation="public-inheritance">
        </childnode>
      </node>
      <node id="5">
        <label>RigidbodyComponent</label>
        <link refid="de/d87/classRigidbodyComponent"/>
        <childnode refid="4" relation="public-inheritance">
        </childnode>
      </node>
      <node id="8">
        <label>SpriteComponent</label>
        <link refid="d6/d77/classSpriteComponent"/>
        <childnode refid="1" relation="public-inheritance">
        </childnode>
      </node>
      <node id="9">
        <label>TileMapComponent</label>
        <link refid="d9/d56/classTileMapComponent"/>
        <childnode refid="1" relation="public-inheritance">
        </childnode>
      </node>
      <node id="10">
        <label>TransformComponent</label>
        <link refid="d2/d0a/classTransformComponent"/>
        <childnode refid="1" relation="public-inheritance">
        </childnode>
      </node>
    </inheritancegraph>
    <location file="include/Component.hpp" line="38" column="1" bodyfile="include/Component.hpp" bodystart="38" bodyend="108"/>
    <listofallmembers>
      <member refid="d8/d6b/classComponent_1a8775db6d1a2c1afc2e77cd3c8f39da6f" prot="public" virt="non-virtual"><scope>Component</scope><name>Component</name></member>
      <member refid="d8/d6b/classComponent_1a6ad359e7f57daa4ba249aaf5c88da052" prot="public" virt="virtual"><scope>Component</scope><name>ComponentTypeName</name></member>
      <member refid="d8/d6b/classComponent_1aed93a0ec70ebc71f34f02eb0a3ad4006" prot="public" virt="virtual"><scope>Component</scope><name>HasTag</name></member>
      <member refid="d8/d6b/classComponent_1aea8f0f460a62d86183020bd667b6cbf0" prot="public" virt="non-virtual"><scope>Component</scope><name>ParseAndUpdateBroadcast</name></member>
      <member refid="d8/d6b/classComponent_1a7d03b8c23a6fa95fd83f08ad88cd59ee" prot="protected" virt="non-virtual"><scope>Component</scope><name>pendingBroadcasts</name></member>
      <member refid="d8/d6b/classComponent_1a929d29b8cdb9447b70f5e7d990c7d0f0" prot="protected" virt="non-virtual"><scope>Component</scope><name>previousBroadcasts</name></member>
      <member refid="d8/d6b/classComponent_1ab856bdb8c4357a080d7abcf99871a573" prot="public" virt="virtual"><scope>Component</scope><name>Render</name></member>
      <member refid="d8/d6b/classComponent_1a92af5bb942ea9633515a0c0e16a0bb8c" prot="public" virt="virtual"><scope>Component</scope><name>ShowComponentEditor</name></member>
      <member refid="d8/d6b/classComponent_1ab9b45a6a11e943c86770a1b3e085c25c" prot="protected" virt="non-virtual"><scope>Component</scope><name>tags</name></member>
      <member refid="d8/d6b/classComponent_1a9c764c2a5607ef52629458d361ebf16e" prot="public" virt="virtual"><scope>Component</scope><name>Update</name></member>
      <member refid="d8/d6b/classComponent_1ab8378fa275af98e568a7e91d33d867af" prot="public" virt="non-virtual"><scope>Component</scope><name>~Component</name></member>
    </listofallmembers>
  </compounddef>
</doxygen>
