SpaghettiKart/Track_8h_source.html

589 lines
123 KiB
HTML

<!-- HTML header for doxygen 1.10.0-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.13.2"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Mario Kart 64: src/engine/tracks/Track.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>
<script type="text/javascript" src="clipboard.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="cookie.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="doxygen-awesome.css" rel="stylesheet" type="text/css"/>
<link href="doxygen-awesome-sidebar-only.css" rel="stylesheet" type="text/css"/>
<link href="doxygen-awesome-sidebar-only-darkmode-toggle.css" rel="stylesheet" type="text/css"/>
<link href="docs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="doxygen-awesome-darkmode-toggle.js"></script>
<script type="text/javascript">
DoxygenAwesomeDarkModeToggle.init()
</script>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">Mario Kart 64
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.13.2 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
/* @license-end */
</script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() { codefold.init(0); });
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search',true);
$(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function(){initNavTree('Track_8h_source.html',''); initResizable(true); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div class="header">
<div class="headertitle"><div class="title">Track.h</div></div>
</div><!--header-->
<div class="contents">
<a href="Track_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span><span class="preprocessor">#ifndef ENGINE_TRACK_H</span></div>
<div class="line"><a id="l00002" name="l00002"></a><span class="lineno"> 2</span><span class="preprocessor">#define ENGINE_TRACK_H</span></div>
<div class="line"><a id="l00003" name="l00003"></a><span class="lineno"> 3</span> </div>
<div class="line"><a id="l00004" name="l00004"></a><span class="lineno"> 4</span><span class="preprocessor">#include &lt;libultraship/libultraship.h&gt;</span></div>
<div class="line"><a id="l00005" name="l00005"></a><span class="lineno"> 5</span><span class="preprocessor">#include &quot;<a class="code" href="CoreMath_8h.html">CoreMath.h</a>&quot;</span></div>
<div class="line"><a id="l00006" name="l00006"></a><span class="lineno"> 6</span> </div>
<div class="line"><a id="l00007" name="l00007"></a><span class="lineno"> 7</span><span class="preprocessor">#ifdef __cplusplus</span></div>
<div class="line"><a id="l00008" name="l00008"></a><span class="lineno"> 8</span><span class="preprocessor">#include &quot;<a class="code" href="SpawnParams_8h.html">engine/SpawnParams.h</a>&quot;</span></div>
<div class="line"><a id="l00009" name="l00009"></a><span class="lineno"> 9</span><span class="preprocessor">#include &lt;optional&gt;</span></div>
<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span><span class="preprocessor">#include &lt;nlohmann/json.hpp&gt;</span></div>
<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"> 11</span><span class="preprocessor">#include &quot;<a class="code" href="Lakitu_8h.html">engine/objects/Lakitu.h</a>&quot;</span></div>
<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span><span class="preprocessor">#include &quot;<a class="code" href="TourCamera_8h.html">engine/cameras/TourCamera.h</a>&quot;</span></div>
<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span><span class="keyword">extern</span> <span class="stringliteral">&quot;C&quot;</span> {</div>
<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span> </div>
<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span><span class="preprocessor">#include &quot;<a class="code" href="defines_8h.html">defines.h</a>&quot;</span></div>
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span><span class="preprocessor">#include &quot;<a class="code" href="camera_8h.html">camera.h</a>&quot;</span></div>
<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span><span class="preprocessor">#include &quot;<a class="code" href="src_2data_2some__data_8h.html">data/some_data.h</a>&quot;</span></div>
<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span><span class="preprocessor">#include &quot;<a class="code" href="bomb__kart_8h.html">bomb_kart.h</a>&quot;</span></div>
<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span><span class="preprocessor">#include &quot;<a class="code" href="path__spawn__metadata_8h.html">path_spawn_metadata.h</a>&quot;</span></div>
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span><span class="preprocessor">#include &quot;<a class="code" href="waypoints_8h.html">waypoints.h</a>&quot;</span></div>
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span><span class="preprocessor">#include &quot;<a class="code" href="sounds_8h.html">sounds.h</a>&quot;</span></div>
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span><span class="preprocessor">#include &quot;<a class="code" href="common__structs_8h.html">common_structs.h</a>&quot;</span></div>
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span><span class="preprocessor">#include &quot;<a class="code" href="code__800029B0_8h.html">code_800029B0.h</a>&quot;</span></div>
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span> </div>
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span><span class="preprocessor">#ifdef __cplusplus</span></div>
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span>}</div>
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span> </div>
<div class="foldopen" id="foldopen00030" data-start="{" data-end="};">
<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"><a class="line" href="structSkyboxColours.html"> 30</a></span><span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code hl_struct" href="structSkyboxColours.html">SkyboxColours</a> {</div>
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"><a class="line" href="structSkyboxColours.html#a2f0d950679a557ad46d5fa4a5ac7680a"> 31</a></span> <a class="code hl_struct" href="structRGB8.html">RGB8</a> <a class="code hl_variable" href="structSkyboxColours.html#a2f0d950679a557ad46d5fa4a5ac7680a">TopRight</a>;</div>
<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"><a class="line" href="structSkyboxColours.html#a2181f9cceb42a4483dcc7606c3907781"> 32</a></span> <a class="code hl_struct" href="structRGB8.html">RGB8</a> <a class="code hl_variable" href="structSkyboxColours.html#a2181f9cceb42a4483dcc7606c3907781">BottomRight</a>;</div>
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"><a class="line" href="structSkyboxColours.html#a00c9ce1642a26b9469556631de7c7243"> 33</a></span> <a class="code hl_struct" href="structRGB8.html">RGB8</a> <a class="code hl_variable" href="structSkyboxColours.html#a00c9ce1642a26b9469556631de7c7243">BottomLeft</a>;</div>
<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"><a class="line" href="structSkyboxColours.html#a5fc79df7b53785df0805278ab362bbf6"> 34</a></span> <a class="code hl_struct" href="structRGB8.html">RGB8</a> <a class="code hl_variable" href="structSkyboxColours.html#a5fc79df7b53785df0805278ab362bbf6">TopLeft</a>;</div>
<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"><a class="line" href="structSkyboxColours.html#a97f193351ea4b1931e7c2ae691008c42"> 35</a></span> <a class="code hl_struct" href="structRGB8.html">RGB8</a> <a class="code hl_variable" href="structSkyboxColours.html#a97f193351ea4b1931e7c2ae691008c42">FloorTopRight</a>;</div>
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"><a class="line" href="structSkyboxColours.html#a0ac1cea76e1da20cff9cb370433ca63c"> 36</a></span> <a class="code hl_struct" href="structRGB8.html">RGB8</a> <a class="code hl_variable" href="structSkyboxColours.html#a0ac1cea76e1da20cff9cb370433ca63c">FloorBottomRight</a>;</div>
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"><a class="line" href="structSkyboxColours.html#a2be030d439269ee112dad8c957c4b018"> 37</a></span> <a class="code hl_struct" href="structRGB8.html">RGB8</a> <a class="code hl_variable" href="structSkyboxColours.html#a2be030d439269ee112dad8c957c4b018">FloorBottomLeft</a>;</div>
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"><a class="line" href="structSkyboxColours.html#ab0925054e9155d18a93065bba12c0019"> 38</a></span> <a class="code hl_struct" href="structRGB8.html">RGB8</a> <a class="code hl_variable" href="structSkyboxColours.html#ab0925054e9155d18a93065bba12c0019">FloorTopLeft</a>;</div>
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"><a class="line" href="Track_8h.html#ac7f336f5f580b2fcc002c314ae1a7f97"> 39</a></span>} <a class="code hl_struct" href="structSkyboxColours.html">SkyboxColours</a>;</div>
</div>
<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span> </div>
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span><span class="comment">// Extends infinitely in the Y direction</span></div>
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span><span class="comment">// If a player is overtop of a water volume then it should use its height</span></div>
<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"> 43</span><span class="comment">// Recommend using the new water surface type. This is here to support the stock tracks.</span></div>
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span><span class="comment">// Albeit, there&#39;s no reason you cannot use this so long as you input a square.</span></div>
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span><span class="comment">// How to use: WaterVolumes.push_back({0, -100, 100, -100, 100});</span></div>
<div class="foldopen" id="foldopen00046" data-start="{" data-end="};">
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"><a class="line" href="structWaterVolume.html"> 46</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structWaterVolume.html">WaterVolume</a> {</div>
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"><a class="line" href="structWaterVolume.html#a31ecbcc71bbafd82069645202cba5953"> 47</a></span> <span class="keywordtype">float</span> <a class="code hl_variable" href="structWaterVolume.html#a31ecbcc71bbafd82069645202cba5953">Height</a>; <span class="comment">// Y coordinate of the Water level</span></div>
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"><a class="line" href="structWaterVolume.html#aae4914d2c831314fb1d05d72cdaa02bd"> 48</a></span> <span class="keywordtype">float</span> <a class="code hl_variable" href="structWaterVolume.html#aae4914d2c831314fb1d05d72cdaa02bd">MinX</a>;</div>
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"><a class="line" href="structWaterVolume.html#a714e6184ab84abaa2bdefa7a474a1143"> 49</a></span> <span class="keywordtype">float</span> <a class="code hl_variable" href="structWaterVolume.html#a714e6184ab84abaa2bdefa7a474a1143">MaxX</a>;</div>
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"><a class="line" href="structWaterVolume.html#a8db06ca9443170b12554d3ad9c923ab1"> 50</a></span> <span class="keywordtype">float</span> <a class="code hl_variable" href="structWaterVolume.html#a8db06ca9443170b12554d3ad9c923ab1">MinZ</a>;</div>
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"><a class="line" href="structWaterVolume.html#af39a4134d3dcedc062b969caebf337e2"> 51</a></span> <span class="keywordtype">float</span> <a class="code hl_variable" href="structWaterVolume.html#af39a4134d3dcedc062b969caebf337e2">MaxZ</a>;</div>
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span>};</div>
</div>
<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"> 53</span> </div>
<div class="foldopen" id="foldopen00054" data-start="{" data-end="};">
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"><a class="line" href="structMinimapProps.html"> 54</a></span><span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code hl_struct" href="structMinimapProps.html">MinimapProps</a> {</div>
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"><a class="line" href="structMinimapProps.html#a8f10ce7ca14b8b2d98005d06ca70b5a3"> 55</a></span> <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code hl_variable" href="structMinimapProps.html#a8f10ce7ca14b8b2d98005d06ca70b5a3">Texture</a>;</div>
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"><a class="line" href="structMinimapProps.html#a1a841d178badc847b4ab2278e903fa73"> 56</a></span> int16_t <a class="code hl_variable" href="structMinimapProps.html#a1a841d178badc847b4ab2278e903fa73">Width</a>;</div>
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"><a class="line" href="structMinimapProps.html#ae2171b1e398bc7b40dbea0f4b30114ee"> 57</a></span> int16_t <a class="code hl_variable" href="structMinimapProps.html#ae2171b1e398bc7b40dbea0f4b30114ee">Height</a>;</div>
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"><a class="line" href="structMinimapProps.html#a068aaf6c703b5e97b6cd38f8aa4f8521"> 58</a></span> <a class="code hl_struct" href="structIVector2D.html">IVector2D</a> <a class="code hl_variable" href="structMinimapProps.html#a068aaf6c703b5e97b6cd38f8aa4f8521">Pos</a>[2]; <span class="comment">// Minimap position for players 1 and 2. 3/4 player mode is hard-coded to the center.</span></div>
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"><a class="line" href="structMinimapProps.html#ab47e2a98b449dadddfaaeb4cc0c0ab8e"> 59</a></span> int32_t <a class="code hl_variable" href="structMinimapProps.html#ab47e2a98b449dadddfaaeb4cc0c0ab8e">PlayerX</a>; <span class="comment">// The offset to place the player markers</span></div>
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"><a class="line" href="structMinimapProps.html#a528a6ced00cb540deaf898a3c1270384"> 60</a></span> int32_t <a class="code hl_variable" href="structMinimapProps.html#a528a6ced00cb540deaf898a3c1270384">PlayerY</a>;</div>
<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"><a class="line" href="structMinimapProps.html#a98ea605536b65f3313dfc1ef1e38044a"> 61</a></span> <span class="keywordtype">float</span> <a class="code hl_variable" href="structMinimapProps.html#a98ea605536b65f3313dfc1ef1e38044a">PlayerScaleFactor</a>; <span class="comment">// Scale factor of the player markers</span></div>
<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"><a class="line" href="structMinimapProps.html#aa55508e6cbd030aae3bc4756784e7bb4"> 62</a></span> <span class="keywordtype">float</span> <a class="code hl_variable" href="structMinimapProps.html#aa55508e6cbd030aae3bc4756784e7bb4">FinishlineX</a>; <span class="comment">// The offset to place the finishline texture on the minimap</span></div>
<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"><a class="line" href="structMinimapProps.html#a4df790445833e2b50fe1ce3b1ca2809f"> 63</a></span> <span class="keywordtype">float</span> <a class="code hl_variable" href="structMinimapProps.html#a4df790445833e2b50fe1ce3b1ca2809f">FinishlineY</a>;</div>
<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"><a class="line" href="structMinimapProps.html#a23091b18c4a06400ab831d795ea880f0"> 64</a></span> <a class="code hl_struct" href="structRGB8.html">RGB8</a> <a class="code hl_variable" href="structMinimapProps.html#a23091b18c4a06400ab831d795ea880f0">Colour</a>; <span class="comment">// Colour of the visible pixels (the track path)</span></div>
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"><a class="line" href="Track_8h.html#a89db40153c22dd024742de86f0677170"> 65</a></span>} <a class="code hl_struct" href="structMinimapProps.html">MinimapProps</a>;</div>
</div>
<div class="line"><a id="l00066" name="l00066"></a><span class="lineno"> 66</span> </div>
<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"> 67</span><span class="keywordtype">void</span> <a class="code hl_function" href="Track_8h.html#ab8fe8a85340279ffa324d3c475c49e29">ResizeMinimap</a>(<a class="code hl_struct" href="structMinimapProps.html">MinimapProps</a>* minimap);</div>
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"><a class="line" href="Track_8h.html#a1b6e700962942667fd74b58759f2fe88"> 68</a></span><span class="keywordtype">void</span> <a class="code hl_function" href="Track_8h.html#a1b6e700962942667fd74b58759f2fe88">ReverseGfx</a>(Gfx* gfx);</div>
<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"> 69</span> </div>
<div class="line"><a id="l00070" name="l00070"></a><span class="lineno"> 70</span><span class="keywordtype">void</span> <a class="code hl_function" href="Track_8h.html#ac52c9c0df477631c475ff9b2fd5e61d7">InvertTriangleWinding</a>(Gfx* gfx);</div>
<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"> 71</span><span class="keywordtype">void</span> <a class="code hl_function" href="Track_8h.html#a0406803b8f06bfcaf7e1bd3ad2ab2e12">InvertTriangleWindingByName</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* name);</div>
<div class="line"><a id="l00072" name="l00072"></a><span class="lineno"> 72</span><span class="keywordtype">void</span> <a class="code hl_function" href="Track_8h.html#a25bb7651ef416f5d015085c5b8a0fa43">RestoreTriangleWinding</a>();</div>
<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"> 73</span><span class="keywordtype">bool</span> <a class="code hl_function" href="Track_8h.html#af09715bddd34d67a01095b92a34f0a5d">IsTriangleWindingInverted</a>();</div>
<div class="line"><a id="l00074" name="l00074"></a><span class="lineno"> 74</span></div>
<div class="foldopen" id="foldopen00081" data-start="{" data-end="};">
<div class="line"><a id="l00081" name="l00081"></a><span class="lineno"><a class="line" href="structTrackSections.html"> 81</a></span><span class="keyword">typedef</span> <span class="keyword">struct </span>{</div>
<div class="line"><a id="l00082" name="l00082"></a><span class="lineno"><a class="line" href="structTrackSections.html#a4616695b955d9f9c5f654f2d8fb18430"> 82</a></span> uint64_t <a class="code hl_variable" href="structTrackSections.html#a4616695b955d9f9c5f654f2d8fb18430">crc</a>;</div>
<div class="line"><a id="l00083" name="l00083"></a><span class="lineno"><a class="line" href="structTrackSections.html#a5da9422111f0325e591566d162776c1d"> 83</a></span> u8 <a class="code hl_variable" href="structTrackSections.html#a5da9422111f0325e591566d162776c1d">surfaceType</a>; <span class="comment">// Determines what kind of surface the player drives on (ex. dirt, asphalt, etc.)</span></div>
<div class="line"><a id="l00084" name="l00084"></a><span class="lineno"><a class="line" href="structTrackSections.html#a53d5aca8370d2850514a4507044dcbd3"> 84</a></span> u8 <a class="code hl_variable" href="structTrackSections.html#a53d5aca8370d2850514a4507044dcbd3">sectionId</a>;</div>
<div class="line"><a id="l00085" name="l00085"></a><span class="lineno"><a class="line" href="structTrackSections.html#ad5b479d66f3ab630872a6a2042ad8270"> 85</a></span> u16 <a class="code hl_variable" href="structTrackSections.html#ad5b479d66f3ab630872a6a2042ad8270">flags</a>;</div>
<div class="line"><a id="l00086" name="l00086"></a><span class="lineno"> 86</span>} <a class="code hl_struct" href="structTrackSections.html">TrackSections</a>;</div>
</div>
<div class="line"><a id="l00087" name="l00087"></a><span class="lineno"> 87</span> </div>
<div class="foldopen" id="foldopen00088" data-start="{" data-end="};">
<div class="line"><a id="l00088" name="l00088"></a><span class="lineno"><a class="line" href="structProperties.html"> 88</a></span><span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code hl_struct" href="structProperties.html">Properties</a> {</div>
<div class="line"><a id="l00089" name="l00089"></a><span class="lineno"><a class="line" href="structProperties.html#a02d92883b677bdb1f213852128b0c17a"> 89</a></span> <span class="keywordtype">char</span> <a class="code hl_variable" href="structProperties.html#a02d92883b677bdb1f213852128b0c17a">Name</a>[128];</div>
<div class="line"><a id="l00090" name="l00090"></a><span class="lineno"><a class="line" href="structProperties.html#acea54ae83279167c2b4de58d6cd232be"> 90</a></span> <span class="keywordtype">char</span> <a class="code hl_variable" href="structProperties.html#acea54ae83279167c2b4de58d6cd232be">DebugName</a>[128];</div>
<div class="line"><a id="l00091" name="l00091"></a><span class="lineno"><a class="line" href="structProperties.html#ac6c76f0d3fd68ef6f705442fa23cb028"> 91</a></span> <span class="keywordtype">char</span> <a class="code hl_variable" href="structProperties.html#ac6c76f0d3fd68ef6f705442fa23cb028">TrackLength</a>[128];</div>
<div class="line"><a id="l00092" name="l00092"></a><span class="lineno"><a class="line" href="structProperties.html#a5bccedc8fe7f1ed2ec45f301b78b5be6"> 92</a></span> int32_t <a class="code hl_variable" href="structProperties.html#a5bccedc8fe7f1ed2ec45f301b78b5be6">LakituTowType</a>;</div>
<div class="line"><a id="l00093" name="l00093"></a><span class="lineno"><a class="line" href="structProperties.html#aecbff1a07e347fac02490e5072977de1"> 93</a></span> <a class="code hl_struct" href="structMinimapProps.html">MinimapProps</a> <a class="code hl_variable" href="structProperties.html#aecbff1a07e347fac02490e5072977de1">Minimap</a>;</div>
<div class="line"><a id="l00094" name="l00094"></a><span class="lineno"><a class="line" href="structProperties.html#a7c6a3e0bc33fd62d0fc3880ecb0a16d0"> 94</a></span> <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code hl_variable" href="structProperties.html#a7c6a3e0bc33fd62d0fc3880ecb0a16d0">AIBehaviour</a>;</div>
<div class="line"><a id="l00095" name="l00095"></a><span class="lineno"><a class="line" href="structProperties.html#a4c4b787ed2d18f881ac2ce43a1568660"> 95</a></span> <span class="keywordtype">float</span> <a class="code hl_variable" href="structProperties.html#a4c4b787ed2d18f881ac2ce43a1568660">AIMaximumSeparation</a>;</div>
<div class="line"><a id="l00096" name="l00096"></a><span class="lineno"><a class="line" href="structProperties.html#ac648a9185de6ef81db7cc70f4ee08dea"> 96</a></span> <span class="keywordtype">float</span> <a class="code hl_variable" href="structProperties.html#ac648a9185de6ef81db7cc70f4ee08dea">AIMinimumSeparation</a>;</div>
<div class="line"><a id="l00097" name="l00097"></a><span class="lineno"><a class="line" href="structProperties.html#ab4770f66f45517c45796bf048e326c83"> 97</a></span> <span class="keywordtype">float</span> <a class="code hl_variable" href="structProperties.html#ab4770f66f45517c45796bf048e326c83">NearPersp</a>;</div>
<div class="line"><a id="l00098" name="l00098"></a><span class="lineno"><a class="line" href="structProperties.html#aeb221251bfd0ef55f3c357e590edfd71"> 98</a></span> <span class="keywordtype">float</span> <a class="code hl_variable" href="structProperties.html#aeb221251bfd0ef55f3c357e590edfd71">FarPersp</a>;</div>
<div class="line"><a id="l00099" name="l00099"></a><span class="lineno"><a class="line" href="structProperties.html#ace330536ddb7d9a9dc586ba6bd1bb46b"> 99</a></span> int16_t* <a class="code hl_variable" href="structProperties.html#ace330536ddb7d9a9dc586ba6bd1bb46b">AIDistance</a>;</div>
<div class="line"><a id="l00100" name="l00100"></a><span class="lineno"><a class="line" href="structProperties.html#a5ff4a55296adc51c015520728605b82c"> 100</a></span> uint32_t <a class="code hl_variable" href="structProperties.html#a5ff4a55296adc51c015520728605b82c">AISteeringSensitivity</a>;</div>
<div class="line"><a id="l00101" name="l00101"></a><span class="lineno"><a class="line" href="structProperties.html#a9288c516957161c0c4d2c83d811f50fa"> 101</a></span> <a class="code hl_struct" href="structTrackPathSizes.html">TrackPathSizes</a> <a class="code hl_variable" href="structProperties.html#a9288c516957161c0c4d2c83d811f50fa">PathSizes</a>;</div>
<div class="line"><a id="l00102" name="l00102"></a><span class="lineno"><a class="line" href="structProperties.html#a387dfb070695c9b1e218c5469512bc52"> 102</a></span> <a class="code hl_typedef" href="common__structs_8h.html#aa9446b0f4d1af8a6823e90015d37b030">Vec4f</a> <a class="code hl_variable" href="structProperties.html#a387dfb070695c9b1e218c5469512bc52">CurveTargetSpeed</a>;</div>
<div class="line"><a id="l00103" name="l00103"></a><span class="lineno"><a class="line" href="structProperties.html#af839b1223590498402d9389a7218d2cc"> 103</a></span> <a class="code hl_typedef" href="common__structs_8h.html#aa9446b0f4d1af8a6823e90015d37b030">Vec4f</a> <a class="code hl_variable" href="structProperties.html#af839b1223590498402d9389a7218d2cc">NormalTargetSpeed</a>;</div>
<div class="line"><a id="l00104" name="l00104"></a><span class="lineno"><a class="line" href="structProperties.html#a316fd9e1ee2dd9d91994a62086dd079d"> 104</a></span> <a class="code hl_typedef" href="common__structs_8h.html#aa9446b0f4d1af8a6823e90015d37b030">Vec4f</a> <a class="code hl_variable" href="structProperties.html#a316fd9e1ee2dd9d91994a62086dd079d">D_0D0096B8</a>;</div>
<div class="line"><a id="l00105" name="l00105"></a><span class="lineno"><a class="line" href="structProperties.html#a5d03cff5d613b7f1bf327cc7c28158f9"> 105</a></span> <a class="code hl_typedef" href="common__structs_8h.html#aa9446b0f4d1af8a6823e90015d37b030">Vec4f</a> <a class="code hl_variable" href="structProperties.html#a5d03cff5d613b7f1bf327cc7c28158f9">OffTrackTargetSpeed</a>;</div>
<div class="line"><a id="l00106" name="l00106"></a><span class="lineno"><a class="line" href="structProperties.html#a7a3eb51cc47be9c2bcbd1b2f18622f1e"> 106</a></span> <a class="code hl_struct" href="structTrackPathPoint.html">TrackPathPoint</a>* <a class="code hl_variable" href="structProperties.html#a7a3eb51cc47be9c2bcbd1b2f18622f1e">PathTable</a>[4]; <span class="comment">// Only used for podium ceremony</span></div>
<div class="line"><a id="l00107" name="l00107"></a><span class="lineno"><a class="line" href="structProperties.html#a2a82bd54b19123b9c4a4477c029baf80"> 107</a></span> <a class="code hl_struct" href="structTrackPathPoint.html">TrackPathPoint</a>* <a class="code hl_variable" href="structProperties.html#a2a82bd54b19123b9c4a4477c029baf80">PathTable2</a>[5]; <span class="comment">// The fifth entry is for vehicles</span></div>
<div class="line"><a id="l00108" name="l00108"></a><span class="lineno"><a class="line" href="structProperties.html#a03cd75aab731622f02d631906ab7d481"> 108</a></span> uint8_t* <a class="code hl_variable" href="structProperties.html#a03cd75aab731622f02d631906ab7d481">CloudTexture</a>;</div>
<div class="line"><a id="l00109" name="l00109"></a><span class="lineno"><a class="line" href="structProperties.html#a2e98c1e2daf66a1c8450e105f7ba5a4b"> 109</a></span> <a class="code hl_typedef" href="objects_8h.html#a8e51edac51cf5b53412c91933520c855">CloudData</a> *<a class="code hl_variable" href="structProperties.html#a2e98c1e2daf66a1c8450e105f7ba5a4b">Clouds</a>;</div>
<div class="line"><a id="l00110" name="l00110"></a><span class="lineno"><a class="line" href="structProperties.html#ae58982c5d539015dea9697ac68c35970"> 110</a></span> <a class="code hl_typedef" href="objects_8h.html#a8e51edac51cf5b53412c91933520c855">CloudData</a> *<a class="code hl_variable" href="structProperties.html#ae58982c5d539015dea9697ac68c35970">CloudList</a>;</div>
<div class="line"><a id="l00111" name="l00111"></a><span class="lineno"><a class="line" href="structProperties.html#ac3c175569725579891325503e37e0bce"> 111</a></span> <a class="code hl_struct" href="structSkyboxColours.html">SkyboxColours</a> <a class="code hl_variable" href="structProperties.html#ac3c175569725579891325503e37e0bce">Skybox</a>;</div>
<div class="line"><a id="l00112" name="l00112"></a><span class="lineno"><a class="line" href="structProperties.html#acd753e07362c52af62ea8b632c50570e"> 112</a></span> <span class="keyword">enum</span> <a class="code hl_enumeration" href="sounds_8h.html#a462955cf4ece430059af4e4185a8727c">MusicSeq</a> <a class="code hl_variable" href="structProperties.html#acd753e07362c52af62ea8b632c50570e">Sequence</a>;</div>
<div class="line"><a id="l00113" name="l00113"></a><span class="lineno"><a class="line" href="structProperties.html#a5a569b3eb054872e27543cf171a609c3"> 113</a></span> <span class="keywordtype">float</span> <a class="code hl_variable" href="structProperties.html#a5a569b3eb054872e27543cf171a609c3">WaterLevel</a>; <span class="comment">// Used for effects, and Lakitu pick up height. Not necessarily the visual water model height.</span></div>
<div class="line"><a id="l00114" name="l00114"></a><span class="lineno"> 114</span> </div>
<div class="line"><a id="l00115" name="l00115"></a><span class="lineno"> 115</span><span class="preprocessor">#ifdef __cplusplus</span></div>
<div class="line"><a id="l00116" name="l00116"></a><span class="lineno"> 116</span> nlohmann::json to_json()<span class="keyword"> const </span>{</div>
<div class="line"><a id="l00117" name="l00117"></a><span class="lineno"> 117</span> nlohmann::json <a class="code hl_define" href="load_8c.html#aa8c84707b22bdc99b810d3c7d3ec5d52">j</a>;</div>
<div class="line"><a id="l00118" name="l00118"></a><span class="lineno"> 118</span> <a class="code hl_define" href="load_8c.html#aa8c84707b22bdc99b810d3c7d3ec5d52">j</a>[<span class="stringliteral">&quot;Name&quot;</span>] = <a class="code hl_variable" href="structProperties.html#a02d92883b677bdb1f213852128b0c17a">Name</a> ? <a class="code hl_variable" href="structProperties.html#a02d92883b677bdb1f213852128b0c17a">Name</a> : <span class="stringliteral">&quot;&quot;</span>;</div>
<div class="line"><a id="l00119" name="l00119"></a><span class="lineno"> 119</span> <a class="code hl_define" href="load_8c.html#aa8c84707b22bdc99b810d3c7d3ec5d52">j</a>[<span class="stringliteral">&quot;DebugName&quot;</span>] = <a class="code hl_variable" href="structProperties.html#acea54ae83279167c2b4de58d6cd232be">DebugName</a> ? <a class="code hl_variable" href="structProperties.html#acea54ae83279167c2b4de58d6cd232be">DebugName</a> : <span class="stringliteral">&quot;&quot;</span>;</div>
<div class="line"><a id="l00120" name="l00120"></a><span class="lineno"> 120</span> <a class="code hl_define" href="load_8c.html#aa8c84707b22bdc99b810d3c7d3ec5d52">j</a>[<span class="stringliteral">&quot;TrackLength&quot;</span>] = <a class="code hl_variable" href="structProperties.html#ac6c76f0d3fd68ef6f705442fa23cb028">TrackLength</a> ? <a class="code hl_variable" href="structProperties.html#ac6c76f0d3fd68ef6f705442fa23cb028">TrackLength</a> : <span class="stringliteral">&quot;&quot;</span>;</div>
<div class="line"><a id="l00121" name="l00121"></a><span class="lineno"> 121</span> <span class="comment">//j[&quot;AIBehaviour&quot;] = AIBehaviour ? AIBehaviour : &quot;&quot;;</span></div>
<div class="line"><a id="l00122" name="l00122"></a><span class="lineno"> 122</span> <a class="code hl_define" href="load_8c.html#aa8c84707b22bdc99b810d3c7d3ec5d52">j</a>[<span class="stringliteral">&quot;LakituTowType&quot;</span>] = <a class="code hl_variable" href="structProperties.html#a5bccedc8fe7f1ed2ec45f301b78b5be6">LakituTowType</a>;</div>
<div class="line"><a id="l00123" name="l00123"></a><span class="lineno"> 123</span> <a class="code hl_define" href="load_8c.html#aa8c84707b22bdc99b810d3c7d3ec5d52">j</a>[<span class="stringliteral">&quot;AIMaximumSeparation&quot;</span>] = <a class="code hl_variable" href="structProperties.html#a4c4b787ed2d18f881ac2ce43a1568660">AIMaximumSeparation</a>;</div>
<div class="line"><a id="l00124" name="l00124"></a><span class="lineno"> 124</span> <a class="code hl_define" href="load_8c.html#aa8c84707b22bdc99b810d3c7d3ec5d52">j</a>[<span class="stringliteral">&quot;AIMinimumSeparation&quot;</span>] = <a class="code hl_variable" href="structProperties.html#ac648a9185de6ef81db7cc70f4ee08dea">AIMinimumSeparation</a>;</div>
<div class="line"><a id="l00125" name="l00125"></a><span class="lineno"> 125</span> <a class="code hl_define" href="load_8c.html#aa8c84707b22bdc99b810d3c7d3ec5d52">j</a>[<span class="stringliteral">&quot;NearPersp&quot;</span>] = <a class="code hl_variable" href="structProperties.html#ab4770f66f45517c45796bf048e326c83">NearPersp</a>;</div>
<div class="line"><a id="l00126" name="l00126"></a><span class="lineno"> 126</span> <a class="code hl_define" href="load_8c.html#aa8c84707b22bdc99b810d3c7d3ec5d52">j</a>[<span class="stringliteral">&quot;FarPersp&quot;</span>] = <a class="code hl_variable" href="structProperties.html#aeb221251bfd0ef55f3c357e590edfd71">FarPersp</a>;</div>
<div class="line"><a id="l00127" name="l00127"></a><span class="lineno"> 127</span> </div>
<div class="line"><a id="l00128" name="l00128"></a><span class="lineno"> 128</span> <span class="comment">// AIDistance as a JSON array</span></div>
<div class="line"><a id="l00129" name="l00129"></a><span class="lineno"> 129</span> <a class="code hl_define" href="load_8c.html#aa8c84707b22bdc99b810d3c7d3ec5d52">j</a>[<span class="stringliteral">&quot;AIDistance&quot;</span>] = std::vector&lt;int16_t&gt;(<a class="code hl_variable" href="structProperties.html#ace330536ddb7d9a9dc586ba6bd1bb46b">AIDistance</a>, <a class="code hl_variable" href="structProperties.html#ace330536ddb7d9a9dc586ba6bd1bb46b">AIDistance</a> + 32); <span class="comment">// gAIDistances array size of 32</span></div>
<div class="line"><a id="l00130" name="l00130"></a><span class="lineno"> 130</span> </div>
<div class="line"><a id="l00131" name="l00131"></a><span class="lineno"> 131</span> <a class="code hl_define" href="load_8c.html#aa8c84707b22bdc99b810d3c7d3ec5d52">j</a>[<span class="stringliteral">&quot;AISteeringSensitivity&quot;</span>] = <a class="code hl_variable" href="structProperties.html#a5ff4a55296adc51c015520728605b82c">AISteeringSensitivity</a>;</div>
<div class="line"><a id="l00132" name="l00132"></a><span class="lineno"> 132</span> </div>
<div class="line"><a id="l00133" name="l00133"></a><span class="lineno"> 133</span> <span class="comment">// PathSizes - Assuming TrackPathSizes can be serialized similarly</span></div>
<div class="line"><a id="l00134" name="l00134"></a><span class="lineno"> 134</span> <span class="comment">// j[&quot;PathSizes&quot;] = PathSizes; // Implement your serialization logic here</span></div>
<div class="line"><a id="l00135" name="l00135"></a><span class="lineno"> 135</span> </div>
<div class="line"><a id="l00136" name="l00136"></a><span class="lineno"> 136</span> <a class="code hl_define" href="load_8c.html#aa8c84707b22bdc99b810d3c7d3ec5d52">j</a>[<span class="stringliteral">&quot;CurveTargetSpeed&quot;</span>] = { <a class="code hl_variable" href="structProperties.html#a387dfb070695c9b1e218c5469512bc52">CurveTargetSpeed</a>[0], <a class="code hl_variable" href="structProperties.html#a387dfb070695c9b1e218c5469512bc52">CurveTargetSpeed</a>[1], <a class="code hl_variable" href="structProperties.html#a387dfb070695c9b1e218c5469512bc52">CurveTargetSpeed</a>[2], <a class="code hl_variable" href="structProperties.html#a387dfb070695c9b1e218c5469512bc52">CurveTargetSpeed</a>[3] };</div>
<div class="line"><a id="l00137" name="l00137"></a><span class="lineno"> 137</span> <a class="code hl_define" href="load_8c.html#aa8c84707b22bdc99b810d3c7d3ec5d52">j</a>[<span class="stringliteral">&quot;NormalTargetSpeed&quot;</span>] = { <a class="code hl_variable" href="structProperties.html#af839b1223590498402d9389a7218d2cc">NormalTargetSpeed</a>[0], <a class="code hl_variable" href="structProperties.html#af839b1223590498402d9389a7218d2cc">NormalTargetSpeed</a>[1], <a class="code hl_variable" href="structProperties.html#af839b1223590498402d9389a7218d2cc">NormalTargetSpeed</a>[2], <a class="code hl_variable" href="structProperties.html#af839b1223590498402d9389a7218d2cc">NormalTargetSpeed</a>[3] };</div>
<div class="line"><a id="l00138" name="l00138"></a><span class="lineno"> 138</span> <a class="code hl_define" href="load_8c.html#aa8c84707b22bdc99b810d3c7d3ec5d52">j</a>[<span class="stringliteral">&quot;D_0D0096B8&quot;</span>] = { <a class="code hl_variable" href="structProperties.html#a316fd9e1ee2dd9d91994a62086dd079d">D_0D0096B8</a>[0], <a class="code hl_variable" href="structProperties.html#a316fd9e1ee2dd9d91994a62086dd079d">D_0D0096B8</a>[1], <a class="code hl_variable" href="structProperties.html#a316fd9e1ee2dd9d91994a62086dd079d">D_0D0096B8</a>[2], <a class="code hl_variable" href="structProperties.html#a316fd9e1ee2dd9d91994a62086dd079d">D_0D0096B8</a>[3] };</div>
<div class="line"><a id="l00139" name="l00139"></a><span class="lineno"> 139</span> <a class="code hl_define" href="load_8c.html#aa8c84707b22bdc99b810d3c7d3ec5d52">j</a>[<span class="stringliteral">&quot;OffTrackTargetSpeed&quot;</span>] = { <a class="code hl_variable" href="structProperties.html#a5d03cff5d613b7f1bf327cc7c28158f9">OffTrackTargetSpeed</a>[0], <a class="code hl_variable" href="structProperties.html#a5d03cff5d613b7f1bf327cc7c28158f9">OffTrackTargetSpeed</a>[1], <a class="code hl_variable" href="structProperties.html#a5d03cff5d613b7f1bf327cc7c28158f9">OffTrackTargetSpeed</a>[2], <a class="code hl_variable" href="structProperties.html#a5d03cff5d613b7f1bf327cc7c28158f9">OffTrackTargetSpeed</a>[3] };</div>
<div class="line"><a id="l00140" name="l00140"></a><span class="lineno"> 140</span> </div>
<div class="line"><a id="l00141" name="l00141"></a><span class="lineno"> 141</span> <span class="comment">// Serialize arrays PathTable and PathTable2 (convert pointers into a JSON array if possible)</span></div>
<div class="line"><a id="l00142" name="l00142"></a><span class="lineno"> 142</span> <span class="comment">//j[&quot;PathTable&quot;] = {{}};</span></div>
<div class="line"><a id="l00143" name="l00143"></a><span class="lineno"> 143</span> <span class="comment">//j[&quot;PathTable2&quot;] = {{}};</span></div>
<div class="line"><a id="l00144" name="l00144"></a><span class="lineno"> 144</span> <span class="comment">// Populate PathTable and PathTable2</span></div>
<div class="line"><a id="l00145" name="l00145"></a><span class="lineno"> 145</span> </div>
<div class="line"><a id="l00146" name="l00146"></a><span class="lineno"> 146</span> <span class="comment">//j[&quot;Clouds&quot;] = Clouds ? nlohmann::json{{&quot;x&quot;, Clouds-&gt;x, &quot;y&quot;, Clouds-&gt;y, &quot;z&quot;, Clouds-&gt;z}} : nullptr;</span></div>
<div class="line"><a id="l00147" name="l00147"></a><span class="lineno"> 147</span> <span class="comment">//j[&quot;CloudList&quot;] = CloudList ? nlohmann::json{{&quot;x&quot;, CloudList-&gt;x, &quot;y&quot;, CloudList-&gt;y, &quot;z&quot;, CloudList-&gt;z}} : nullptr;</span></div>
<div class="line"><a id="l00148" name="l00148"></a><span class="lineno"> 148</span> </div>
<div class="line"><a id="l00149" name="l00149"></a><span class="lineno"> 149</span> <a class="code hl_define" href="load_8c.html#aa8c84707b22bdc99b810d3c7d3ec5d52">j</a>[<span class="stringliteral">&quot;MinimapPosition&quot;</span>] = {<a class="code hl_variable" href="structProperties.html#aecbff1a07e347fac02490e5072977de1">Minimap</a>.Pos[0].X, <a class="code hl_variable" href="structProperties.html#aecbff1a07e347fac02490e5072977de1">Minimap</a>.Pos[0].Y};</div>
<div class="line"><a id="l00150" name="l00150"></a><span class="lineno"> 150</span> <a class="code hl_define" href="load_8c.html#aa8c84707b22bdc99b810d3c7d3ec5d52">j</a>[<span class="stringliteral">&quot;MinimapPosition2P&quot;</span>] = {<a class="code hl_variable" href="structProperties.html#aecbff1a07e347fac02490e5072977de1">Minimap</a>.Pos[1].X, <a class="code hl_variable" href="structProperties.html#aecbff1a07e347fac02490e5072977de1">Minimap</a>.Pos[1].Y};</div>
<div class="line"><a id="l00151" name="l00151"></a><span class="lineno"> 151</span> <a class="code hl_define" href="load_8c.html#aa8c84707b22bdc99b810d3c7d3ec5d52">j</a>[<span class="stringliteral">&quot;MinimapPlayerX&quot;</span>] = <a class="code hl_variable" href="structProperties.html#aecbff1a07e347fac02490e5072977de1">Minimap</a>.PlayerX;</div>
<div class="line"><a id="l00152" name="l00152"></a><span class="lineno"> 152</span> <a class="code hl_define" href="load_8c.html#aa8c84707b22bdc99b810d3c7d3ec5d52">j</a>[<span class="stringliteral">&quot;MinimapPlayerY&quot;</span>] = <a class="code hl_variable" href="structProperties.html#aecbff1a07e347fac02490e5072977de1">Minimap</a>.PlayerY;</div>
<div class="line"><a id="l00153" name="l00153"></a><span class="lineno"> 153</span> <a class="code hl_define" href="load_8c.html#aa8c84707b22bdc99b810d3c7d3ec5d52">j</a>[<span class="stringliteral">&quot;MinimapPlayerScaleFactor&quot;</span>] = <a class="code hl_variable" href="structProperties.html#aecbff1a07e347fac02490e5072977de1">Minimap</a>.PlayerScaleFactor;</div>
<div class="line"><a id="l00154" name="l00154"></a><span class="lineno"> 154</span> <a class="code hl_define" href="load_8c.html#aa8c84707b22bdc99b810d3c7d3ec5d52">j</a>[<span class="stringliteral">&quot;MinimapFinishlineX&quot;</span>] = <a class="code hl_variable" href="structProperties.html#aecbff1a07e347fac02490e5072977de1">Minimap</a>.FinishlineX;</div>
<div class="line"><a id="l00155" name="l00155"></a><span class="lineno"> 155</span> <a class="code hl_define" href="load_8c.html#aa8c84707b22bdc99b810d3c7d3ec5d52">j</a>[<span class="stringliteral">&quot;MinimapFinishlineY&quot;</span>] = <a class="code hl_variable" href="structProperties.html#aecbff1a07e347fac02490e5072977de1">Minimap</a>.FinishlineY;</div>
<div class="line"><a id="l00156" name="l00156"></a><span class="lineno"> 156</span> <a class="code hl_define" href="load_8c.html#aa8c84707b22bdc99b810d3c7d3ec5d52">j</a>[<span class="stringliteral">&quot;MinimapColour&quot;</span>] = {<span class="keyword">static_cast&lt;</span><span class="keywordtype">int</span><span class="keyword">&gt;</span>(<a class="code hl_variable" href="structProperties.html#aecbff1a07e347fac02490e5072977de1">Minimap</a>.Colour.r), <span class="keyword">static_cast&lt;</span><span class="keywordtype">int</span><span class="keyword">&gt;</span>(<a class="code hl_variable" href="structProperties.html#aecbff1a07e347fac02490e5072977de1">Minimap</a>.Colour.g), <span class="keyword">static_cast&lt;</span><span class="keywordtype">int</span><span class="keyword">&gt;</span>(<a class="code hl_variable" href="structProperties.html#aecbff1a07e347fac02490e5072977de1">Minimap</a>.Colour.b)};</div>
<div class="line"><a id="l00157" name="l00157"></a><span class="lineno"> 157</span> <span class="comment">// SkyboxColors - assuming SkyboxColors can be serialized similarly</span></div>
<div class="line"><a id="l00158" name="l00158"></a><span class="lineno"> 158</span> </div>
<div class="line"><a id="l00159" name="l00159"></a><span class="lineno"> 159</span><span class="preprocessor"> #define TO_INT(value) static_cast&lt;int&gt;(value)</span></div>
<div class="line"><a id="l00160" name="l00160"></a><span class="lineno"> 160</span> <a class="code hl_define" href="load_8c.html#aa8c84707b22bdc99b810d3c7d3ec5d52">j</a>[<span class="stringliteral">&quot;Skybox&quot;</span>] = {</div>
<div class="line"><a id="l00161" name="l00161"></a><span class="lineno"> 161</span> TO_INT(<a class="code hl_variable" href="structProperties.html#ac3c175569725579891325503e37e0bce">Skybox</a>.TopRight.r), TO_INT(<a class="code hl_variable" href="structProperties.html#ac3c175569725579891325503e37e0bce">Skybox</a>.TopRight.g), TO_INT(<a class="code hl_variable" href="structProperties.html#ac3c175569725579891325503e37e0bce">Skybox</a>.TopRight.b),</div>
<div class="line"><a id="l00162" name="l00162"></a><span class="lineno"> 162</span> TO_INT(<a class="code hl_variable" href="structProperties.html#ac3c175569725579891325503e37e0bce">Skybox</a>.BottomRight.r), TO_INT(<a class="code hl_variable" href="structProperties.html#ac3c175569725579891325503e37e0bce">Skybox</a>.BottomRight.g), TO_INT(<a class="code hl_variable" href="structProperties.html#ac3c175569725579891325503e37e0bce">Skybox</a>.BottomRight.b),</div>
<div class="line"><a id="l00163" name="l00163"></a><span class="lineno"> 163</span> TO_INT(<a class="code hl_variable" href="structProperties.html#ac3c175569725579891325503e37e0bce">Skybox</a>.BottomLeft.r), TO_INT(<a class="code hl_variable" href="structProperties.html#ac3c175569725579891325503e37e0bce">Skybox</a>.BottomLeft.g), TO_INT(<a class="code hl_variable" href="structProperties.html#ac3c175569725579891325503e37e0bce">Skybox</a>.BottomLeft.b),</div>
<div class="line"><a id="l00164" name="l00164"></a><span class="lineno"> 164</span> TO_INT(<a class="code hl_variable" href="structProperties.html#ac3c175569725579891325503e37e0bce">Skybox</a>.TopLeft.r), TO_INT(<a class="code hl_variable" href="structProperties.html#ac3c175569725579891325503e37e0bce">Skybox</a>.TopLeft.g), TO_INT(<a class="code hl_variable" href="structProperties.html#ac3c175569725579891325503e37e0bce">Skybox</a>.TopLeft.b),</div>
<div class="line"><a id="l00165" name="l00165"></a><span class="lineno"> 165</span> TO_INT(<a class="code hl_variable" href="structProperties.html#ac3c175569725579891325503e37e0bce">Skybox</a>.FloorTopRight.r), TO_INT(<a class="code hl_variable" href="structProperties.html#ac3c175569725579891325503e37e0bce">Skybox</a>.FloorTopRight.g), TO_INT(<a class="code hl_variable" href="structProperties.html#ac3c175569725579891325503e37e0bce">Skybox</a>.FloorTopRight.b),</div>
<div class="line"><a id="l00166" name="l00166"></a><span class="lineno"> 166</span> TO_INT(<a class="code hl_variable" href="structProperties.html#ac3c175569725579891325503e37e0bce">Skybox</a>.FloorBottomRight.r), TO_INT(<a class="code hl_variable" href="structProperties.html#ac3c175569725579891325503e37e0bce">Skybox</a>.FloorBottomRight.g), TO_INT(<a class="code hl_variable" href="structProperties.html#ac3c175569725579891325503e37e0bce">Skybox</a>.FloorBottomRight.b),</div>
<div class="line"><a id="l00167" name="l00167"></a><span class="lineno"> 167</span> TO_INT(<a class="code hl_variable" href="structProperties.html#ac3c175569725579891325503e37e0bce">Skybox</a>.FloorBottomLeft.r), TO_INT(<a class="code hl_variable" href="structProperties.html#ac3c175569725579891325503e37e0bce">Skybox</a>.FloorBottomLeft.g), TO_INT(<a class="code hl_variable" href="structProperties.html#ac3c175569725579891325503e37e0bce">Skybox</a>.FloorBottomLeft.b),</div>
<div class="line"><a id="l00168" name="l00168"></a><span class="lineno"> 168</span> TO_INT(<a class="code hl_variable" href="structProperties.html#ac3c175569725579891325503e37e0bce">Skybox</a>.FloorTopLeft.r), TO_INT(<a class="code hl_variable" href="structProperties.html#ac3c175569725579891325503e37e0bce">Skybox</a>.FloorTopLeft.g), TO_INT(<a class="code hl_variable" href="structProperties.html#ac3c175569725579891325503e37e0bce">Skybox</a>.FloorTopLeft.b)</div>
<div class="line"><a id="l00169" name="l00169"></a><span class="lineno"> 169</span> };</div>
<div class="line"><a id="l00170" name="l00170"></a><span class="lineno"> 170</span> <a class="code hl_define" href="load_8c.html#aa8c84707b22bdc99b810d3c7d3ec5d52">j</a>[<span class="stringliteral">&quot;Sequence&quot;</span>] = <span class="keyword">static_cast&lt;</span><span class="keywordtype">int</span><span class="keyword">&gt;</span>(<a class="code hl_variable" href="structProperties.html#acd753e07362c52af62ea8b632c50570e">Sequence</a>);</div>
<div class="line"><a id="l00171" name="l00171"></a><span class="lineno"> 171</span> </div>
<div class="line"><a id="l00172" name="l00172"></a><span class="lineno"> 172</span> <a class="code hl_define" href="load_8c.html#aa8c84707b22bdc99b810d3c7d3ec5d52">j</a>[<span class="stringliteral">&quot;WaterLevel&quot;</span>] = <span class="keyword">static_cast&lt;</span><span class="keywordtype">float</span><span class="keyword">&gt;</span>(<a class="code hl_variable" href="structProperties.html#a5a569b3eb054872e27543cf171a609c3">WaterLevel</a>);</div>
<div class="line"><a id="l00173" name="l00173"></a><span class="lineno"> 173</span><span class="preprocessor"> #undef CAST_TO_INT</span></div>
<div class="line"><a id="l00174" name="l00174"></a><span class="lineno"> 174</span> </div>
<div class="line"><a id="l00175" name="l00175"></a><span class="lineno"> 175</span> <span class="keywordflow">return</span> <a class="code hl_define" href="load_8c.html#aa8c84707b22bdc99b810d3c7d3ec5d52">j</a>;</div>
<div class="line"><a id="l00176" name="l00176"></a><span class="lineno"> 176</span> }</div>
<div class="line"><a id="l00177" name="l00177"></a><span class="lineno"> 177</span> </div>
<div class="line"><a id="l00178" name="l00178"></a><span class="lineno"> 178</span> <span class="comment">// Function to load struct from JSON</span></div>
<div class="line"><a id="l00179" name="l00179"></a><span class="lineno"> 179</span> <span class="keywordtype">void</span> from_json(<span class="keyword">const</span> nlohmann::json&amp; <a class="code hl_define" href="load_8c.html#aa8c84707b22bdc99b810d3c7d3ec5d52">j</a>) {</div>
<div class="line"><a id="l00180" name="l00180"></a><span class="lineno"> 180</span> strncpy(<a class="code hl_variable" href="structProperties.html#a02d92883b677bdb1f213852128b0c17a">Name</a>, <a class="code hl_define" href="load_8c.html#aa8c84707b22bdc99b810d3c7d3ec5d52">j</a>.at(<span class="stringliteral">&quot;Name&quot;</span>).get&lt;std::string&gt;().c_str(), <span class="keyword">sizeof</span>(<a class="code hl_variable" href="structProperties.html#a02d92883b677bdb1f213852128b0c17a">Name</a>) - 1);</div>
<div class="line"><a id="l00181" name="l00181"></a><span class="lineno"> 181</span> <a class="code hl_variable" href="structProperties.html#a02d92883b677bdb1f213852128b0c17a">Name</a>[<span class="keyword">sizeof</span>(<a class="code hl_variable" href="structProperties.html#a02d92883b677bdb1f213852128b0c17a">Name</a>) - 1] = <span class="charliteral">&#39;\0&#39;</span>; <span class="comment">// Ensure null termination</span></div>
<div class="line"><a id="l00182" name="l00182"></a><span class="lineno"> 182</span> </div>
<div class="line"><a id="l00183" name="l00183"></a><span class="lineno"> 183</span> strncpy(<a class="code hl_variable" href="structProperties.html#acea54ae83279167c2b4de58d6cd232be">DebugName</a>, <a class="code hl_define" href="load_8c.html#aa8c84707b22bdc99b810d3c7d3ec5d52">j</a>.at(<span class="stringliteral">&quot;DebugName&quot;</span>).get&lt;std::string&gt;().c_str(), <span class="keyword">sizeof</span>(<a class="code hl_variable" href="structProperties.html#acea54ae83279167c2b4de58d6cd232be">DebugName</a>) - 1);</div>
<div class="line"><a id="l00184" name="l00184"></a><span class="lineno"> 184</span> <a class="code hl_variable" href="structProperties.html#acea54ae83279167c2b4de58d6cd232be">DebugName</a>[<span class="keyword">sizeof</span>(<a class="code hl_variable" href="structProperties.html#acea54ae83279167c2b4de58d6cd232be">DebugName</a>) - 1] = <span class="charliteral">&#39;\0&#39;</span>; <span class="comment">// Ensure null termination</span></div>
<div class="line"><a id="l00185" name="l00185"></a><span class="lineno"> 185</span> </div>
<div class="line"><a id="l00186" name="l00186"></a><span class="lineno"> 186</span> strncpy(<a class="code hl_variable" href="structProperties.html#ac6c76f0d3fd68ef6f705442fa23cb028">TrackLength</a>, <a class="code hl_define" href="load_8c.html#aa8c84707b22bdc99b810d3c7d3ec5d52">j</a>.at(<span class="stringliteral">&quot;TrackLength&quot;</span>).get&lt;std::string&gt;().c_str(), <span class="keyword">sizeof</span>(<a class="code hl_variable" href="structProperties.html#ac6c76f0d3fd68ef6f705442fa23cb028">TrackLength</a>) - 1);</div>
<div class="line"><a id="l00187" name="l00187"></a><span class="lineno"> 187</span> <a class="code hl_variable" href="structProperties.html#ac6c76f0d3fd68ef6f705442fa23cb028">TrackLength</a>[<span class="keyword">sizeof</span>(<a class="code hl_variable" href="structProperties.html#ac6c76f0d3fd68ef6f705442fa23cb028">TrackLength</a>) - 1] = <span class="charliteral">&#39;\0&#39;</span>; <span class="comment">// Ensure null termination</span></div>
<div class="line"><a id="l00188" name="l00188"></a><span class="lineno"> 188</span> </div>
<div class="line"><a id="l00189" name="l00189"></a><span class="lineno"> 189</span> <span class="comment">//AIBehaviour = j.at(&quot;AIBehaviour&quot;).get&lt;std::string&gt;().c_str();</span></div>
<div class="line"><a id="l00190" name="l00190"></a><span class="lineno"> 190</span> <a class="code hl_variable" href="structProperties.html#a5bccedc8fe7f1ed2ec45f301b78b5be6">LakituTowType</a> = <a class="code hl_define" href="load_8c.html#aa8c84707b22bdc99b810d3c7d3ec5d52">j</a>.at(<span class="stringliteral">&quot;LakituTowType&quot;</span>).get&lt;<span class="keywordtype">int</span>&gt;();</div>
<div class="line"><a id="l00191" name="l00191"></a><span class="lineno"> 191</span> </div>
<div class="line"><a id="l00192" name="l00192"></a><span class="lineno"> 192</span> <a class="code hl_variable" href="structProperties.html#a4c4b787ed2d18f881ac2ce43a1568660">AIMaximumSeparation</a> = <a class="code hl_define" href="load_8c.html#aa8c84707b22bdc99b810d3c7d3ec5d52">j</a>.at(<span class="stringliteral">&quot;AIMaximumSeparation&quot;</span>).get&lt;<span class="keywordtype">float</span>&gt;();</div>
<div class="line"><a id="l00193" name="l00193"></a><span class="lineno"> 193</span> <a class="code hl_variable" href="structProperties.html#ac648a9185de6ef81db7cc70f4ee08dea">AIMinimumSeparation</a> = <a class="code hl_define" href="load_8c.html#aa8c84707b22bdc99b810d3c7d3ec5d52">j</a>.at(<span class="stringliteral">&quot;AIMinimumSeparation&quot;</span>).get&lt;<span class="keywordtype">float</span>&gt;();</div>
<div class="line"><a id="l00194" name="l00194"></a><span class="lineno"> 194</span> <a class="code hl_variable" href="structProperties.html#ab4770f66f45517c45796bf048e326c83">NearPersp</a> = <a class="code hl_define" href="load_8c.html#aa8c84707b22bdc99b810d3c7d3ec5d52">j</a>.at(<span class="stringliteral">&quot;NearPersp&quot;</span>).get&lt;<span class="keywordtype">float</span>&gt;();</div>
<div class="line"><a id="l00195" name="l00195"></a><span class="lineno"> 195</span> <a class="code hl_variable" href="structProperties.html#aeb221251bfd0ef55f3c357e590edfd71">FarPersp</a> = <a class="code hl_define" href="load_8c.html#aa8c84707b22bdc99b810d3c7d3ec5d52">j</a>.at(<span class="stringliteral">&quot;FarPersp&quot;</span>).get&lt;<span class="keywordtype">float</span>&gt;();</div>
<div class="line"><a id="l00196" name="l00196"></a><span class="lineno"> 196</span> </div>
<div class="line"><a id="l00197" name="l00197"></a><span class="lineno"> 197</span> <span class="keyword">const</span> <span class="keyword">auto</span> temp = <a class="code hl_define" href="load_8c.html#aa8c84707b22bdc99b810d3c7d3ec5d52">j</a>.at(<span class="stringliteral">&quot;AIDistance&quot;</span>).get&lt;std::vector&lt;int16_t&gt;&gt;();</div>
<div class="line"><a id="l00198" name="l00198"></a><span class="lineno"> 198</span> </div>
<div class="line"><a id="l00199" name="l00199"></a><span class="lineno"> 199</span> <span class="comment">// Ensure the vector has 32 entries</span></div>
<div class="line"><a id="l00200" name="l00200"></a><span class="lineno"> 200</span> <span class="keywordflow">if</span> (temp.size() == 32) {</div>
<div class="line"><a id="l00201" name="l00201"></a><span class="lineno"> 201</span> <span class="comment">// Copy the data into the existing AIDistances array</span></div>
<div class="line"><a id="l00202" name="l00202"></a><span class="lineno"> 202</span> std::copy(temp.begin(), temp.end(), <a class="code hl_variable" href="structProperties.html#ace330536ddb7d9a9dc586ba6bd1bb46b">AIDistance</a>);</div>
<div class="line"><a id="l00203" name="l00203"></a><span class="lineno"> 203</span> } <span class="keywordflow">else</span> {</div>
<div class="line"><a id="l00204" name="l00204"></a><span class="lineno"> 204</span> printf(<span class="stringliteral">&quot;[Track.h] [from_json()] AIDistance array not size of 32\n&quot;</span>);</div>
<div class="line"><a id="l00205" name="l00205"></a><span class="lineno"> 205</span> }</div>
<div class="line"><a id="l00206" name="l00206"></a><span class="lineno"> 206</span> </div>
<div class="line"><a id="l00207" name="l00207"></a><span class="lineno"> 207</span> <a class="code hl_variable" href="structProperties.html#a5ff4a55296adc51c015520728605b82c">AISteeringSensitivity</a> = <a class="code hl_define" href="load_8c.html#aa8c84707b22bdc99b810d3c7d3ec5d52">j</a>.at(<span class="stringliteral">&quot;AISteeringSensitivity&quot;</span>).get&lt;uint32_t&gt;();</div>
<div class="line"><a id="l00208" name="l00208"></a><span class="lineno"> 208</span> </div>
<div class="line"><a id="l00209" name="l00209"></a><span class="lineno"> 209</span> <span class="comment">// Deserialize PathSizes and other custom structs if needed</span></div>
<div class="line"><a id="l00210" name="l00210"></a><span class="lineno"> 210</span> </div>
<div class="line"><a id="l00211" name="l00211"></a><span class="lineno"> 211</span> <a class="code hl_variable" href="structProperties.html#a387dfb070695c9b1e218c5469512bc52">CurveTargetSpeed</a>[0] = <a class="code hl_define" href="load_8c.html#aa8c84707b22bdc99b810d3c7d3ec5d52">j</a>.at(<span class="stringliteral">&quot;CurveTargetSpeed&quot;</span>)[0].get&lt;<span class="keywordtype">float</span>&gt;();</div>
<div class="line"><a id="l00212" name="l00212"></a><span class="lineno"> 212</span> <a class="code hl_variable" href="structProperties.html#a387dfb070695c9b1e218c5469512bc52">CurveTargetSpeed</a>[1] = <a class="code hl_define" href="load_8c.html#aa8c84707b22bdc99b810d3c7d3ec5d52">j</a>.at(<span class="stringliteral">&quot;CurveTargetSpeed&quot;</span>)[1].get&lt;<span class="keywordtype">float</span>&gt;();</div>
<div class="line"><a id="l00213" name="l00213"></a><span class="lineno"> 213</span> <a class="code hl_variable" href="structProperties.html#a387dfb070695c9b1e218c5469512bc52">CurveTargetSpeed</a>[2] = <a class="code hl_define" href="load_8c.html#aa8c84707b22bdc99b810d3c7d3ec5d52">j</a>.at(<span class="stringliteral">&quot;CurveTargetSpeed&quot;</span>)[2].get&lt;<span class="keywordtype">float</span>&gt;();</div>
<div class="line"><a id="l00214" name="l00214"></a><span class="lineno"> 214</span> <a class="code hl_variable" href="structProperties.html#a387dfb070695c9b1e218c5469512bc52">CurveTargetSpeed</a>[3] = <a class="code hl_define" href="load_8c.html#aa8c84707b22bdc99b810d3c7d3ec5d52">j</a>.at(<span class="stringliteral">&quot;CurveTargetSpeed&quot;</span>)[3].get&lt;<span class="keywordtype">float</span>&gt;();</div>
<div class="line"><a id="l00215" name="l00215"></a><span class="lineno"> 215</span> </div>
<div class="line"><a id="l00216" name="l00216"></a><span class="lineno"> 216</span> <a class="code hl_variable" href="structProperties.html#af839b1223590498402d9389a7218d2cc">NormalTargetSpeed</a>[0] = <a class="code hl_define" href="load_8c.html#aa8c84707b22bdc99b810d3c7d3ec5d52">j</a>.at(<span class="stringliteral">&quot;NormalTargetSpeed&quot;</span>)[0].get&lt;<span class="keywordtype">float</span>&gt;();</div>
<div class="line"><a id="l00217" name="l00217"></a><span class="lineno"> 217</span> <a class="code hl_variable" href="structProperties.html#af839b1223590498402d9389a7218d2cc">NormalTargetSpeed</a>[1] = <a class="code hl_define" href="load_8c.html#aa8c84707b22bdc99b810d3c7d3ec5d52">j</a>.at(<span class="stringliteral">&quot;NormalTargetSpeed&quot;</span>)[1].get&lt;<span class="keywordtype">float</span>&gt;();</div>
<div class="line"><a id="l00218" name="l00218"></a><span class="lineno"> 218</span> <a class="code hl_variable" href="structProperties.html#af839b1223590498402d9389a7218d2cc">NormalTargetSpeed</a>[2] = <a class="code hl_define" href="load_8c.html#aa8c84707b22bdc99b810d3c7d3ec5d52">j</a>.at(<span class="stringliteral">&quot;NormalTargetSpeed&quot;</span>)[2].get&lt;<span class="keywordtype">float</span>&gt;();</div>
<div class="line"><a id="l00219" name="l00219"></a><span class="lineno"> 219</span> <a class="code hl_variable" href="structProperties.html#af839b1223590498402d9389a7218d2cc">NormalTargetSpeed</a>[3] = <a class="code hl_define" href="load_8c.html#aa8c84707b22bdc99b810d3c7d3ec5d52">j</a>.at(<span class="stringliteral">&quot;NormalTargetSpeed&quot;</span>)[3].get&lt;<span class="keywordtype">float</span>&gt;();</div>
<div class="line"><a id="l00220" name="l00220"></a><span class="lineno"> 220</span> </div>
<div class="line"><a id="l00221" name="l00221"></a><span class="lineno"> 221</span> <a class="code hl_variable" href="structProperties.html#a316fd9e1ee2dd9d91994a62086dd079d">D_0D0096B8</a>[0] = <a class="code hl_define" href="load_8c.html#aa8c84707b22bdc99b810d3c7d3ec5d52">j</a>.at(<span class="stringliteral">&quot;D_0D0096B8&quot;</span>)[0].get&lt;<span class="keywordtype">float</span>&gt;();</div>
<div class="line"><a id="l00222" name="l00222"></a><span class="lineno"> 222</span> <a class="code hl_variable" href="structProperties.html#a316fd9e1ee2dd9d91994a62086dd079d">D_0D0096B8</a>[1] = <a class="code hl_define" href="load_8c.html#aa8c84707b22bdc99b810d3c7d3ec5d52">j</a>.at(<span class="stringliteral">&quot;D_0D0096B8&quot;</span>)[1].get&lt;<span class="keywordtype">float</span>&gt;();</div>
<div class="line"><a id="l00223" name="l00223"></a><span class="lineno"> 223</span> <a class="code hl_variable" href="structProperties.html#a316fd9e1ee2dd9d91994a62086dd079d">D_0D0096B8</a>[2] = <a class="code hl_define" href="load_8c.html#aa8c84707b22bdc99b810d3c7d3ec5d52">j</a>.at(<span class="stringliteral">&quot;D_0D0096B8&quot;</span>)[2].get&lt;<span class="keywordtype">float</span>&gt;();</div>
<div class="line"><a id="l00224" name="l00224"></a><span class="lineno"> 224</span> <a class="code hl_variable" href="structProperties.html#a316fd9e1ee2dd9d91994a62086dd079d">D_0D0096B8</a>[3] = <a class="code hl_define" href="load_8c.html#aa8c84707b22bdc99b810d3c7d3ec5d52">j</a>.at(<span class="stringliteral">&quot;D_0D0096B8&quot;</span>)[3].get&lt;<span class="keywordtype">float</span>&gt;();</div>
<div class="line"><a id="l00225" name="l00225"></a><span class="lineno"> 225</span> </div>
<div class="line"><a id="l00226" name="l00226"></a><span class="lineno"> 226</span> <a class="code hl_variable" href="structProperties.html#a5d03cff5d613b7f1bf327cc7c28158f9">OffTrackTargetSpeed</a>[0] = <a class="code hl_define" href="load_8c.html#aa8c84707b22bdc99b810d3c7d3ec5d52">j</a>.at(<span class="stringliteral">&quot;OffTrackTargetSpeed&quot;</span>)[0].get&lt;<span class="keywordtype">float</span>&gt;();</div>
<div class="line"><a id="l00227" name="l00227"></a><span class="lineno"> 227</span> <a class="code hl_variable" href="structProperties.html#a5d03cff5d613b7f1bf327cc7c28158f9">OffTrackTargetSpeed</a>[1] = <a class="code hl_define" href="load_8c.html#aa8c84707b22bdc99b810d3c7d3ec5d52">j</a>.at(<span class="stringliteral">&quot;OffTrackTargetSpeed&quot;</span>)[1].get&lt;<span class="keywordtype">float</span>&gt;();</div>
<div class="line"><a id="l00228" name="l00228"></a><span class="lineno"> 228</span> <a class="code hl_variable" href="structProperties.html#a5d03cff5d613b7f1bf327cc7c28158f9">OffTrackTargetSpeed</a>[2] = <a class="code hl_define" href="load_8c.html#aa8c84707b22bdc99b810d3c7d3ec5d52">j</a>.at(<span class="stringliteral">&quot;OffTrackTargetSpeed&quot;</span>)[2].get&lt;<span class="keywordtype">float</span>&gt;();</div>
<div class="line"><a id="l00229" name="l00229"></a><span class="lineno"> 229</span> <a class="code hl_variable" href="structProperties.html#a5d03cff5d613b7f1bf327cc7c28158f9">OffTrackTargetSpeed</a>[3] = <a class="code hl_define" href="load_8c.html#aa8c84707b22bdc99b810d3c7d3ec5d52">j</a>.at(<span class="stringliteral">&quot;OffTrackTargetSpeed&quot;</span>)[3].get&lt;<span class="keywordtype">float</span>&gt;();</div>
<div class="line"><a id="l00230" name="l00230"></a><span class="lineno"> 230</span> </div>
<div class="line"><a id="l00231" name="l00231"></a><span class="lineno"> 231</span> <span class="comment">// Deserialize arrays PathTable and PathTable2 similarly</span></div>
<div class="line"><a id="l00232" name="l00232"></a><span class="lineno"> 232</span> </div>
<div class="line"><a id="l00233" name="l00233"></a><span class="lineno"> 233</span> <span class="comment">//Clouds = nullptr; // Deserialize if data is present</span></div>
<div class="line"><a id="l00234" name="l00234"></a><span class="lineno"> 234</span> <span class="comment">//CloudList = nullptr; // Deserialize if data is present</span></div>
<div class="line"><a id="l00235" name="l00235"></a><span class="lineno"> 235</span> <a class="code hl_variable" href="structProperties.html#aecbff1a07e347fac02490e5072977de1">Minimap</a>.Pos[0].X = <a class="code hl_define" href="load_8c.html#aa8c84707b22bdc99b810d3c7d3ec5d52">j</a>.at(<span class="stringliteral">&quot;MinimapPosition&quot;</span>)[0].get&lt;int32_t&gt;();</div>
<div class="line"><a id="l00236" name="l00236"></a><span class="lineno"> 236</span> <a class="code hl_variable" href="structProperties.html#aecbff1a07e347fac02490e5072977de1">Minimap</a>.Pos[0].Y = <a class="code hl_define" href="load_8c.html#aa8c84707b22bdc99b810d3c7d3ec5d52">j</a>.at(<span class="stringliteral">&quot;MinimapPosition&quot;</span>)[1].get&lt;int32_t&gt;();</div>
<div class="line"><a id="l00237" name="l00237"></a><span class="lineno"> 237</span> <a class="code hl_variable" href="structProperties.html#aecbff1a07e347fac02490e5072977de1">Minimap</a>.Pos[1].X = <a class="code hl_define" href="load_8c.html#aa8c84707b22bdc99b810d3c7d3ec5d52">j</a>.at(<span class="stringliteral">&quot;MinimapPosition2P&quot;</span>)[0].get&lt;int32_t&gt;();</div>
<div class="line"><a id="l00238" name="l00238"></a><span class="lineno"> 238</span> <a class="code hl_variable" href="structProperties.html#aecbff1a07e347fac02490e5072977de1">Minimap</a>.Pos[1].Y = <a class="code hl_define" href="load_8c.html#aa8c84707b22bdc99b810d3c7d3ec5d52">j</a>.at(<span class="stringliteral">&quot;MinimapPosition2P&quot;</span>)[1].get&lt;int32_t&gt;();</div>
<div class="line"><a id="l00239" name="l00239"></a><span class="lineno"> 239</span> <a class="code hl_variable" href="structProperties.html#aecbff1a07e347fac02490e5072977de1">Minimap</a>.PlayerX = <a class="code hl_define" href="load_8c.html#aa8c84707b22bdc99b810d3c7d3ec5d52">j</a>.at(<span class="stringliteral">&quot;MinimapPlayerX&quot;</span>).get&lt;int32_t&gt;();</div>
<div class="line"><a id="l00240" name="l00240"></a><span class="lineno"> 240</span> <a class="code hl_variable" href="structProperties.html#aecbff1a07e347fac02490e5072977de1">Minimap</a>.PlayerY = <a class="code hl_define" href="load_8c.html#aa8c84707b22bdc99b810d3c7d3ec5d52">j</a>.at(<span class="stringliteral">&quot;MinimapPlayerY&quot;</span>).get&lt;int32_t&gt;();</div>
<div class="line"><a id="l00241" name="l00241"></a><span class="lineno"> 241</span> <a class="code hl_variable" href="structProperties.html#aecbff1a07e347fac02490e5072977de1">Minimap</a>.PlayerScaleFactor = <a class="code hl_define" href="load_8c.html#aa8c84707b22bdc99b810d3c7d3ec5d52">j</a>.at(<span class="stringliteral">&quot;MinimapPlayerScaleFactor&quot;</span>).get&lt;<span class="keywordtype">float</span>&gt;();</div>
<div class="line"><a id="l00242" name="l00242"></a><span class="lineno"> 242</span> <a class="code hl_variable" href="structProperties.html#aecbff1a07e347fac02490e5072977de1">Minimap</a>.FinishlineX = <a class="code hl_define" href="load_8c.html#aa8c84707b22bdc99b810d3c7d3ec5d52">j</a>.at(<span class="stringliteral">&quot;MinimapFinishlineX&quot;</span>).get&lt;<span class="keywordtype">float</span>&gt;();</div>
<div class="line"><a id="l00243" name="l00243"></a><span class="lineno"> 243</span> <a class="code hl_variable" href="structProperties.html#aecbff1a07e347fac02490e5072977de1">Minimap</a>.FinishlineY = <a class="code hl_define" href="load_8c.html#aa8c84707b22bdc99b810d3c7d3ec5d52">j</a>.at(<span class="stringliteral">&quot;MinimapFinishlineY&quot;</span>).get&lt;<span class="keywordtype">float</span>&gt;();</div>
<div class="line"><a id="l00244" name="l00244"></a><span class="lineno"> 244</span> <a class="code hl_variable" href="structProperties.html#aecbff1a07e347fac02490e5072977de1">Minimap</a>.Colour.r = <a class="code hl_define" href="load_8c.html#aa8c84707b22bdc99b810d3c7d3ec5d52">j</a>.at(<span class="stringliteral">&quot;MinimapColour&quot;</span>)[0].get&lt;uint8_t&gt;();</div>
<div class="line"><a id="l00245" name="l00245"></a><span class="lineno"> 245</span> <a class="code hl_variable" href="structProperties.html#aecbff1a07e347fac02490e5072977de1">Minimap</a>.Colour.g = <a class="code hl_define" href="load_8c.html#aa8c84707b22bdc99b810d3c7d3ec5d52">j</a>.at(<span class="stringliteral">&quot;MinimapColour&quot;</span>)[1].get&lt;uint8_t&gt;();</div>
<div class="line"><a id="l00246" name="l00246"></a><span class="lineno"> 246</span> <a class="code hl_variable" href="structProperties.html#aecbff1a07e347fac02490e5072977de1">Minimap</a>.Colour.b = <a class="code hl_define" href="load_8c.html#aa8c84707b22bdc99b810d3c7d3ec5d52">j</a>.at(<span class="stringliteral">&quot;MinimapColour&quot;</span>)[2].get&lt;uint8_t&gt;();</div>
<div class="line"><a id="l00247" name="l00247"></a><span class="lineno"> 247</span> <span class="comment">//textures = nullptr; // Deserialize textures if present</span></div>
<div class="line"><a id="l00248" name="l00248"></a><span class="lineno"> 248</span> </div>
<div class="line"><a id="l00249" name="l00249"></a><span class="lineno"> 249</span> <a class="code hl_variable" href="structProperties.html#ac3c175569725579891325503e37e0bce">Skybox</a>.TopRight.r = <a class="code hl_define" href="load_8c.html#aa8c84707b22bdc99b810d3c7d3ec5d52">j</a>.at(<span class="stringliteral">&quot;Skybox&quot;</span>)[0].get&lt;uint8_t&gt;();</div>
<div class="line"><a id="l00250" name="l00250"></a><span class="lineno"> 250</span> <a class="code hl_variable" href="structProperties.html#ac3c175569725579891325503e37e0bce">Skybox</a>.TopRight.g = <a class="code hl_define" href="load_8c.html#aa8c84707b22bdc99b810d3c7d3ec5d52">j</a>.at(<span class="stringliteral">&quot;Skybox&quot;</span>)[1].get&lt;uint8_t&gt;();</div>
<div class="line"><a id="l00251" name="l00251"></a><span class="lineno"> 251</span> <a class="code hl_variable" href="structProperties.html#ac3c175569725579891325503e37e0bce">Skybox</a>.TopRight.b = <a class="code hl_define" href="load_8c.html#aa8c84707b22bdc99b810d3c7d3ec5d52">j</a>.at(<span class="stringliteral">&quot;Skybox&quot;</span>)[2].get&lt;uint8_t&gt;();</div>
<div class="line"><a id="l00252" name="l00252"></a><span class="lineno"> 252</span> </div>
<div class="line"><a id="l00253" name="l00253"></a><span class="lineno"> 253</span> <a class="code hl_variable" href="structProperties.html#ac3c175569725579891325503e37e0bce">Skybox</a>.BottomRight.r = <a class="code hl_define" href="load_8c.html#aa8c84707b22bdc99b810d3c7d3ec5d52">j</a>.at(<span class="stringliteral">&quot;Skybox&quot;</span>)[3].get&lt;uint8_t&gt;();</div>
<div class="line"><a id="l00254" name="l00254"></a><span class="lineno"> 254</span> <a class="code hl_variable" href="structProperties.html#ac3c175569725579891325503e37e0bce">Skybox</a>.BottomRight.g = <a class="code hl_define" href="load_8c.html#aa8c84707b22bdc99b810d3c7d3ec5d52">j</a>.at(<span class="stringliteral">&quot;Skybox&quot;</span>)[4].get&lt;uint8_t&gt;();</div>
<div class="line"><a id="l00255" name="l00255"></a><span class="lineno"> 255</span> <a class="code hl_variable" href="structProperties.html#ac3c175569725579891325503e37e0bce">Skybox</a>.BottomRight.b = <a class="code hl_define" href="load_8c.html#aa8c84707b22bdc99b810d3c7d3ec5d52">j</a>.at(<span class="stringliteral">&quot;Skybox&quot;</span>)[5].get&lt;uint8_t&gt;();</div>
<div class="line"><a id="l00256" name="l00256"></a><span class="lineno"> 256</span> </div>
<div class="line"><a id="l00257" name="l00257"></a><span class="lineno"> 257</span> <a class="code hl_variable" href="structProperties.html#ac3c175569725579891325503e37e0bce">Skybox</a>.BottomLeft.r = <a class="code hl_define" href="load_8c.html#aa8c84707b22bdc99b810d3c7d3ec5d52">j</a>.at(<span class="stringliteral">&quot;Skybox&quot;</span>)[6].get&lt;uint8_t&gt;();</div>
<div class="line"><a id="l00258" name="l00258"></a><span class="lineno"> 258</span> <a class="code hl_variable" href="structProperties.html#ac3c175569725579891325503e37e0bce">Skybox</a>.BottomLeft.g = <a class="code hl_define" href="load_8c.html#aa8c84707b22bdc99b810d3c7d3ec5d52">j</a>.at(<span class="stringliteral">&quot;Skybox&quot;</span>)[7].get&lt;uint8_t&gt;();</div>
<div class="line"><a id="l00259" name="l00259"></a><span class="lineno"> 259</span> <a class="code hl_variable" href="structProperties.html#ac3c175569725579891325503e37e0bce">Skybox</a>.BottomLeft.b = <a class="code hl_define" href="load_8c.html#aa8c84707b22bdc99b810d3c7d3ec5d52">j</a>.at(<span class="stringliteral">&quot;Skybox&quot;</span>)[8].get&lt;uint8_t&gt;();</div>
<div class="line"><a id="l00260" name="l00260"></a><span class="lineno"> 260</span> </div>
<div class="line"><a id="l00261" name="l00261"></a><span class="lineno"> 261</span> <a class="code hl_variable" href="structProperties.html#ac3c175569725579891325503e37e0bce">Skybox</a>.TopLeft.r = <a class="code hl_define" href="load_8c.html#aa8c84707b22bdc99b810d3c7d3ec5d52">j</a>.at(<span class="stringliteral">&quot;Skybox&quot;</span>)[9].get&lt;uint8_t&gt;();</div>
<div class="line"><a id="l00262" name="l00262"></a><span class="lineno"> 262</span> <a class="code hl_variable" href="structProperties.html#ac3c175569725579891325503e37e0bce">Skybox</a>.TopLeft.g = <a class="code hl_define" href="load_8c.html#aa8c84707b22bdc99b810d3c7d3ec5d52">j</a>.at(<span class="stringliteral">&quot;Skybox&quot;</span>)[10].get&lt;uint8_t&gt;();</div>
<div class="line"><a id="l00263" name="l00263"></a><span class="lineno"> 263</span> <a class="code hl_variable" href="structProperties.html#ac3c175569725579891325503e37e0bce">Skybox</a>.TopLeft.b = <a class="code hl_define" href="load_8c.html#aa8c84707b22bdc99b810d3c7d3ec5d52">j</a>.at(<span class="stringliteral">&quot;Skybox&quot;</span>)[11].get&lt;uint8_t&gt;();</div>
<div class="line"><a id="l00264" name="l00264"></a><span class="lineno"> 264</span> </div>
<div class="line"><a id="l00265" name="l00265"></a><span class="lineno"> 265</span> <a class="code hl_variable" href="structProperties.html#ac3c175569725579891325503e37e0bce">Skybox</a>.FloorTopRight.r = <a class="code hl_define" href="load_8c.html#aa8c84707b22bdc99b810d3c7d3ec5d52">j</a>.at(<span class="stringliteral">&quot;Skybox&quot;</span>)[12].get&lt;uint8_t&gt;();</div>
<div class="line"><a id="l00266" name="l00266"></a><span class="lineno"> 266</span> <a class="code hl_variable" href="structProperties.html#ac3c175569725579891325503e37e0bce">Skybox</a>.FloorTopRight.g = <a class="code hl_define" href="load_8c.html#aa8c84707b22bdc99b810d3c7d3ec5d52">j</a>.at(<span class="stringliteral">&quot;Skybox&quot;</span>)[13].get&lt;uint8_t&gt;();</div>
<div class="line"><a id="l00267" name="l00267"></a><span class="lineno"> 267</span> <a class="code hl_variable" href="structProperties.html#ac3c175569725579891325503e37e0bce">Skybox</a>.FloorTopRight.b = <a class="code hl_define" href="load_8c.html#aa8c84707b22bdc99b810d3c7d3ec5d52">j</a>.at(<span class="stringliteral">&quot;Skybox&quot;</span>)[14].get&lt;uint8_t&gt;();</div>
<div class="line"><a id="l00268" name="l00268"></a><span class="lineno"> 268</span> </div>
<div class="line"><a id="l00269" name="l00269"></a><span class="lineno"> 269</span> <a class="code hl_variable" href="structProperties.html#ac3c175569725579891325503e37e0bce">Skybox</a>.FloorBottomRight.r = <a class="code hl_define" href="load_8c.html#aa8c84707b22bdc99b810d3c7d3ec5d52">j</a>.at(<span class="stringliteral">&quot;Skybox&quot;</span>)[15].get&lt;uint8_t&gt;();</div>
<div class="line"><a id="l00270" name="l00270"></a><span class="lineno"> 270</span> <a class="code hl_variable" href="structProperties.html#ac3c175569725579891325503e37e0bce">Skybox</a>.FloorBottomRight.g = <a class="code hl_define" href="load_8c.html#aa8c84707b22bdc99b810d3c7d3ec5d52">j</a>.at(<span class="stringliteral">&quot;Skybox&quot;</span>)[16].get&lt;uint8_t&gt;();</div>
<div class="line"><a id="l00271" name="l00271"></a><span class="lineno"> 271</span> <a class="code hl_variable" href="structProperties.html#ac3c175569725579891325503e37e0bce">Skybox</a>.FloorBottomRight.b = <a class="code hl_define" href="load_8c.html#aa8c84707b22bdc99b810d3c7d3ec5d52">j</a>.at(<span class="stringliteral">&quot;Skybox&quot;</span>)[17].get&lt;uint8_t&gt;();</div>
<div class="line"><a id="l00272" name="l00272"></a><span class="lineno"> 272</span> </div>
<div class="line"><a id="l00273" name="l00273"></a><span class="lineno"> 273</span> <a class="code hl_variable" href="structProperties.html#ac3c175569725579891325503e37e0bce">Skybox</a>.FloorBottomLeft.r = <a class="code hl_define" href="load_8c.html#aa8c84707b22bdc99b810d3c7d3ec5d52">j</a>.at(<span class="stringliteral">&quot;Skybox&quot;</span>)[18].get&lt;uint8_t&gt;();</div>
<div class="line"><a id="l00274" name="l00274"></a><span class="lineno"> 274</span> <a class="code hl_variable" href="structProperties.html#ac3c175569725579891325503e37e0bce">Skybox</a>.FloorBottomLeft.g = <a class="code hl_define" href="load_8c.html#aa8c84707b22bdc99b810d3c7d3ec5d52">j</a>.at(<span class="stringliteral">&quot;Skybox&quot;</span>)[19].get&lt;uint8_t&gt;();</div>
<div class="line"><a id="l00275" name="l00275"></a><span class="lineno"> 275</span> <a class="code hl_variable" href="structProperties.html#ac3c175569725579891325503e37e0bce">Skybox</a>.FloorBottomLeft.b = <a class="code hl_define" href="load_8c.html#aa8c84707b22bdc99b810d3c7d3ec5d52">j</a>.at(<span class="stringliteral">&quot;Skybox&quot;</span>)[20].get&lt;uint8_t&gt;();</div>
<div class="line"><a id="l00276" name="l00276"></a><span class="lineno"> 276</span> </div>
<div class="line"><a id="l00277" name="l00277"></a><span class="lineno"> 277</span> <a class="code hl_variable" href="structProperties.html#ac3c175569725579891325503e37e0bce">Skybox</a>.FloorTopLeft.r = <a class="code hl_define" href="load_8c.html#aa8c84707b22bdc99b810d3c7d3ec5d52">j</a>.at(<span class="stringliteral">&quot;Skybox&quot;</span>)[21].get&lt;uint8_t&gt;();</div>
<div class="line"><a id="l00278" name="l00278"></a><span class="lineno"> 278</span> <a class="code hl_variable" href="structProperties.html#ac3c175569725579891325503e37e0bce">Skybox</a>.FloorTopLeft.g = <a class="code hl_define" href="load_8c.html#aa8c84707b22bdc99b810d3c7d3ec5d52">j</a>.at(<span class="stringliteral">&quot;Skybox&quot;</span>)[22].get&lt;uint8_t&gt;();</div>
<div class="line"><a id="l00279" name="l00279"></a><span class="lineno"> 279</span> <a class="code hl_variable" href="structProperties.html#ac3c175569725579891325503e37e0bce">Skybox</a>.FloorTopLeft.b = <a class="code hl_define" href="load_8c.html#aa8c84707b22bdc99b810d3c7d3ec5d52">j</a>.at(<span class="stringliteral">&quot;Skybox&quot;</span>)[23].get&lt;uint8_t&gt;();</div>
<div class="line"><a id="l00280" name="l00280"></a><span class="lineno"> 280</span> </div>
<div class="line"><a id="l00281" name="l00281"></a><span class="lineno"> 281</span> <a class="code hl_variable" href="structProperties.html#acd753e07362c52af62ea8b632c50570e">Sequence</a> = <span class="keyword">static_cast&lt;</span><a class="code hl_enumeration" href="sounds_8h.html#a462955cf4ece430059af4e4185a8727c">MusicSeq</a><span class="keyword">&gt;</span>(<a class="code hl_define" href="load_8c.html#aa8c84707b22bdc99b810d3c7d3ec5d52">j</a>.at(<span class="stringliteral">&quot;Sequence&quot;</span>).get&lt;int&gt;());</div>
<div class="line"><a id="l00282" name="l00282"></a><span class="lineno"> 282</span> <a class="code hl_variable" href="structProperties.html#a5a569b3eb054872e27543cf171a609c3">WaterLevel</a> = <a class="code hl_define" href="load_8c.html#aa8c84707b22bdc99b810d3c7d3ec5d52">j</a>.at(<span class="stringliteral">&quot;WaterLevel&quot;</span>).get&lt;<span class="keywordtype">float</span>&gt;();</div>
<div class="line"><a id="l00283" name="l00283"></a><span class="lineno"> 283</span> }</div>
<div class="line"><a id="l00284" name="l00284"></a><span class="lineno"> 284</span> <span class="keywordtype">void</span> SetText(<span class="keywordtype">char</span>* name, <span class="keyword">const</span> <span class="keywordtype">char</span>* title, <span class="keywordtype">size_t</span> bufferSize) {</div>
<div class="line"><a id="l00285" name="l00285"></a><span class="lineno"> 285</span> <span class="comment">// Copy the title into the name buffer, ensuring it&#39;s null-terminated and within bounds</span></div>
<div class="line"><a id="l00286" name="l00286"></a><span class="lineno"> 286</span> std::strncpy(name, title, bufferSize - 1);</div>
<div class="line"><a id="l00287" name="l00287"></a><span class="lineno"> 287</span> name[bufferSize - 1] = <span class="charliteral">&#39;\0&#39;</span>; <span class="comment">// Ensure the string is null-terminated</span></div>
<div class="line"><a id="l00288" name="l00288"></a><span class="lineno"> 288</span> }</div>
<div class="line"><a id="l00289" name="l00289"></a><span class="lineno"> 289</span> </div>
<div class="line"><a id="l00290" name="l00290"></a><span class="lineno"> 290</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* GetName() {</div>
<div class="line"><a id="l00291" name="l00291"></a><span class="lineno"> 291</span> <span class="keywordflow">return</span> <a class="code hl_variable" href="structProperties.html#a02d92883b677bdb1f213852128b0c17a">Name</a>;</div>
<div class="line"><a id="l00292" name="l00292"></a><span class="lineno"> 292</span> }</div>
<div class="line"><a id="l00293" name="l00293"></a><span class="lineno"> 293</span> </div>
<div class="line"><a id="l00294" name="l00294"></a><span class="lineno"> 294</span> <span class="keywordtype">void</span> New() {</div>
<div class="line"><a id="l00295" name="l00295"></a><span class="lineno"> 295</span> SetText(<a class="code hl_variable" href="structProperties.html#a02d92883b677bdb1f213852128b0c17a">Name</a>, <span class="stringliteral">&quot;&quot;</span>, <span class="keyword">sizeof</span>(<a class="code hl_variable" href="structProperties.html#a02d92883b677bdb1f213852128b0c17a">Name</a>));</div>
<div class="line"><a id="l00296" name="l00296"></a><span class="lineno"> 296</span> SetText(<a class="code hl_variable" href="structProperties.html#acea54ae83279167c2b4de58d6cd232be">DebugName</a>, <span class="stringliteral">&quot;&quot;</span>, <span class="keyword">sizeof</span>(<a class="code hl_variable" href="structProperties.html#acea54ae83279167c2b4de58d6cd232be">DebugName</a>));</div>
<div class="line"><a id="l00297" name="l00297"></a><span class="lineno"> 297</span> SetText(<a class="code hl_variable" href="structProperties.html#ac6c76f0d3fd68ef6f705442fa23cb028">TrackLength</a>, <span class="stringliteral">&quot;&quot;</span>, <span class="keyword">sizeof</span>(<a class="code hl_variable" href="structProperties.html#ac6c76f0d3fd68ef6f705442fa23cb028">TrackLength</a>));</div>
<div class="line"><a id="l00298" name="l00298"></a><span class="lineno"> 298</span> }</div>
<div class="line"><a id="l00299" name="l00299"></a><span class="lineno"> 299</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l00300" name="l00300"></a><span class="lineno"> 300</span> </div>
<div class="line"><a id="l00301" name="l00301"></a><span class="lineno"><a class="line" href="Track_8h.html#a8ecef2d534cf6f255c04ca4378080410"> 301</a></span>} <a class="code hl_struct" href="structProperties.html">Properties</a>;</div>
</div>
<div class="line"><a id="l00302" name="l00302"></a><span class="lineno"> 302</span> </div>
<div class="line"><a id="l00303" name="l00303"></a><span class="lineno"> 303</span><span class="preprocessor">#ifdef __cplusplus</span></div>
<div class="line"><a id="l00304" name="l00304"></a><span class="lineno"> 304</span> </div>
<div class="line"><a id="l00305" name="l00305"></a><span class="lineno"> 305</span> </div>
<div class="line"><a id="l00306" name="l00306"></a><span class="lineno"> 306</span><span class="keyword">class </span><a class="code hl_class" href="classWorld.html">World</a>; <span class="comment">// &lt;-- Forward declare</span></div>
<div class="line"><a id="l00307" name="l00307"></a><span class="lineno"> 307</span> </div>
<div class="line"><a id="l00308" name="l00308"></a><span class="lineno"> 308</span><span class="keyword">class </span><a class="code hl_class" href="classTrack.html">Track</a> {</div>
<div class="line"><a id="l00309" name="l00309"></a><span class="lineno"> 309</span> </div>
<div class="line"><a id="l00310" name="l00310"></a><span class="lineno"> 310</span><span class="keyword">public</span>:</div>
<div class="line"><a id="l00311" name="l00311"></a><span class="lineno"> 311</span> <span class="comment">// Required to save scenefile data</span></div>
<div class="line"><a id="l00312" name="l00312"></a><span class="lineno"> 312</span> std::shared_ptr&lt;Ship::Archive&gt; Archive;</div>
<div class="line"><a id="l00313" name="l00313"></a><span class="lineno"> 313</span> std::string ResourceName;</div>
<div class="line"><a id="l00314" name="l00314"></a><span class="lineno"> 314</span> <a class="code hl_typedef" href="Track_8h.html#a8ecef2d534cf6f255c04ca4378080410">Properties</a> Props;</div>
<div class="line"><a id="l00315" name="l00315"></a><span class="lineno"> 315</span> </div>
<div class="line"><a id="l00316" name="l00316"></a><span class="lineno"> 316</span> <span class="comment">// This allows multiple water levels in a map.</span></div>
<div class="line"><a id="l00317" name="l00317"></a><span class="lineno"> 317</span> <span class="comment">// Ex. DK Jungle where there&#39;s a waterfall and you can drive above and below it.</span></div>
<div class="line"><a id="l00318" name="l00318"></a><span class="lineno"> 318</span> std::vector&lt;WaterVolume&gt; WaterVolumes;</div>
<div class="line"><a id="l00319" name="l00319"></a><span class="lineno"> 319</span> </div>
<div class="line"><a id="l00320" name="l00320"></a><span class="lineno"> 320</span> <span class="keywordtype">bool</span> bSpawnFinishline = <span class="keyword">true</span>;</div>
<div class="line"><a id="l00321" name="l00321"></a><span class="lineno"> 321</span> std::optional&lt;FVector&gt; FinishlineSpawnPoint;</div>
<div class="line"><a id="l00322" name="l00322"></a><span class="lineno"> 322</span> </div>
<div class="line"><a id="l00323" name="l00323"></a><span class="lineno"> 323</span> </div>
<div class="line"><a id="l00324" name="l00324"></a><span class="lineno"> 324</span> <span class="keywordtype">bool</span> bIsMod = <span class="keyword">false</span>;</div>
<div class="line"><a id="l00325" name="l00325"></a><span class="lineno"> 325</span> std::vector&lt;SpawnParams&gt; SpawnList;</div>
<div class="line"><a id="l00326" name="l00326"></a><span class="lineno"> 326</span> </div>
<div class="line"><a id="l00327" name="l00327"></a><span class="lineno"> 327</span> <span class="keywordtype">bool</span> bTourEnabled = <span class="keyword">false</span>;</div>
<div class="line"><a id="l00328" name="l00328"></a><span class="lineno"> 328</span> std::vector&lt;TourCamera::CameraShot&gt; TourShots;</div>
<div class="line"><a id="l00329" name="l00329"></a><span class="lineno"> 329</span> </div>
<div class="line"><a id="l00330" name="l00330"></a><span class="lineno"> 330</span> <span class="keyword">explicit</span> Track();</div>
<div class="line"><a id="l00331" name="l00331"></a><span class="lineno"> 331</span> </div>
<div class="line"><a id="l00332" name="l00332"></a><span class="lineno"> 332</span> <span class="keyword">virtual</span> ~Track() {</div>
<div class="line"><a id="l00333" name="l00333"></a><span class="lineno"> 333</span> <a class="code hl_function" href="Track_8cpp.html#a25bb7651ef416f5d015085c5b8a0fa43">RestoreTriangleWinding</a>();</div>
<div class="line"><a id="l00334" name="l00334"></a><span class="lineno"> 334</span> };</div>
<div class="line"><a id="l00335" name="l00335"></a><span class="lineno"> 335</span> </div>
<div class="line"><a id="l00336" name="l00336"></a><span class="lineno"> 336</span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> Load(); <span class="comment">// Decompress and load stock tracks or from o2r but TrackSectionsPtr must be set.</span></div>
<div class="line"><a id="l00337" name="l00337"></a><span class="lineno"> 337</span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> Load(Vtx* vtx, Gfx *gfx); <span class="comment">// Load custom track from code. Load must be overridden and then call to this base class method impl.</span></div>
<div class="line"><a id="l00338" name="l00338"></a><span class="lineno"> 338</span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> ParseTrackSections(TrackSections* sections, <span class="keywordtype">size_t</span> size);</div>
<div class="line"><a id="l00339" name="l00339"></a><span class="lineno"> 339</span></div>
<div class="line"><a id="l00344" name="l00344"></a><span class="lineno"> 344</span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> BeginPlay();</div>
<div class="line"><a id="l00345" name="l00345"></a><span class="lineno"> 345</span> <span class="keywordtype">void</span> <a class="code hl_function" href="namespaceTrackEditor.html#ad0035fe3dfdf036a30b099d2e25fc414">SpawnActors</a>();</div>
<div class="line"><a id="l00346" name="l00346"></a><span class="lineno"> 346</span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> TestPath();</div>
<div class="line"><a id="l00347" name="l00347"></a><span class="lineno"> 347</span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> InitClouds();</div>
<div class="line"><a id="l00348" name="l00348"></a><span class="lineno"> 348</span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> TickClouds(s32, Camera*);</div>
<div class="line"><a id="l00349" name="l00349"></a><span class="lineno"> 349</span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> SomeCollisionThing(Player *player, <a class="code hl_typedef" href="common__structs_8h.html#a5290523279339ea495248ab3a36cb46e">Vec3f</a> arg1, <a class="code hl_typedef" href="common__structs_8h.html#a5290523279339ea495248ab3a36cb46e">Vec3f</a> arg2, <a class="code hl_typedef" href="common__structs_8h.html#a5290523279339ea495248ab3a36cb46e">Vec3f</a> arg3, f32* arg4, f32* arg5, f32* arg6, f32* arg7);</div>
<div class="line"><a id="l00350" name="l00350"></a><span class="lineno"> 350</span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> InitTrackObjects();</div>
<div class="line"><a id="l00351" name="l00351"></a><span class="lineno"> 351</span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> TickTrackObjects();</div>
<div class="line"><a id="l00352" name="l00352"></a><span class="lineno"> 352</span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> DrawTrackObjects(s32 cameraId);</div>
<div class="line"><a id="l00353" name="l00353"></a><span class="lineno"> 353</span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> SomeSounds();</div>
<div class="line"><a id="l00354" name="l00354"></a><span class="lineno"> 354</span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> CreditsSpawnActors();</div>
<div class="line"><a id="l00355" name="l00355"></a><span class="lineno"> 355</span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> WhatDoesThisDo(Player*, int8_t);</div>
<div class="line"><a id="l00356" name="l00356"></a><span class="lineno"> 356</span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> WhatDoesThisDoAI(Player*, int8_t);</div>
<div class="line"><a id="l00357" name="l00357"></a><span class="lineno"> 357</span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> SetStaffGhost();</div>
<div class="line"><a id="l00358" name="l00358"></a><span class="lineno"> 358</span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> Draw(ScreenContext*);</div>
<div class="line"><a id="l00359" name="l00359"></a><span class="lineno"> 359</span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> DrawCredits();</div>
<div class="line"><a id="l00360" name="l00360"></a><span class="lineno"> 360</span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> Waypoints(Player* player, int8_t playerId);</div>
<div class="line"><a id="l00361" name="l00361"></a><span class="lineno"> 361</span> <span class="keyword">virtual</span> <a class="code hl_enumvalue" href="namespaceSF64.html#a1130ee4440f43e7a45454de29f6bc813a512dc597be7ae761876315165dc8bd2e">f32</a> GetWaterLevel(FVector pos, Collision* collision);</div>
<div class="line"><a id="l00362" name="l00362"></a><span class="lineno"> 362</span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> ScrollingTextures();</div>
<div class="line"><a id="l00363" name="l00363"></a><span class="lineno"> 363</span> <span class="comment">// Draw transparent models (water, signs, arrows, etc.) </span></div>
<div class="line"><a id="l00364" name="l00364"></a><span class="lineno"> 364</span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> DrawWater(ScreenContext* screen, uint16_t pathCounter, uint16_t cameraRot,</div>
<div class="line"><a id="l00365" name="l00365"></a><span class="lineno"> 365</span> uint16_t playerDirection);</div>
<div class="line"><a id="l00366" name="l00366"></a><span class="lineno"> 366</span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code hl_function" href="namespaceGameUI.html#aae41f6af9e88d2f956d45cb1a5c576d1">Destroy</a>();</div>
<div class="line"><a id="l00367" name="l00367"></a><span class="lineno"> 367</span> <span class="keyword">virtual</span> <span class="keywordtype">bool</span> IsMod();</div>
<div class="line"><a id="l00368" name="l00368"></a><span class="lineno"> 368</span> </div>
<div class="line"><a id="l00369" name="l00369"></a><span class="lineno"> 369</span> <span class="keyword">private</span>:</div>
<div class="line"><a id="l00370" name="l00370"></a><span class="lineno"> 370</span> <span class="keywordtype">void</span> Init();</div>
<div class="line"><a id="l00371" name="l00371"></a><span class="lineno"> 371</span>};</div>
<div class="line"><a id="l00372" name="l00372"></a><span class="lineno"> 372</span> </div>
<div class="line"><a id="l00373" name="l00373"></a><span class="lineno"> 373</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l00374" name="l00374"></a><span class="lineno"> 374</span> </div>
<div class="line"><a id="l00375" name="l00375"></a><span class="lineno"> 375</span><span class="preprocessor">#endif </span><span class="comment">// ENGINE_TRACK_H</span></div>
<div class="ttc" id="aCoreMath_8h_html"><div class="ttname"><a href="CoreMath_8h.html">CoreMath.h</a></div></div>
<div class="ttc" id="aLakitu_8h_html"><div class="ttname"><a href="Lakitu_8h.html">Lakitu.h</a></div></div>
<div class="ttc" id="aSpawnParams_8h_html"><div class="ttname"><a href="SpawnParams_8h.html">SpawnParams.h</a></div></div>
<div class="ttc" id="aTourCamera_8h_html"><div class="ttname"><a href="TourCamera_8h.html">TourCamera.h</a></div></div>
<div class="ttc" id="aTrack_8cpp_html_a25bb7651ef416f5d015085c5b8a0fa43"><div class="ttname"><a href="Track_8cpp.html#a25bb7651ef416f5d015085c5b8a0fa43">RestoreTriangleWinding</a></div><div class="ttdeci">void RestoreTriangleWinding()</div><div class="ttdef"><b>Definition</b> Track.cpp:300</div></div>
<div class="ttc" id="aTrack_8h_html_a0406803b8f06bfcaf7e1bd3ad2ab2e12"><div class="ttname"><a href="Track_8h.html#a0406803b8f06bfcaf7e1bd3ad2ab2e12">InvertTriangleWindingByName</a></div><div class="ttdeci">void InvertTriangleWindingByName(const char *name)</div><div class="ttdef"><b>Definition</b> Track.cpp:283</div></div>
<div class="ttc" id="aTrack_8h_html_a1b6e700962942667fd74b58759f2fe88"><div class="ttname"><a href="Track_8h.html#a1b6e700962942667fd74b58759f2fe88">ReverseGfx</a></div><div class="ttdeci">void ReverseGfx(Gfx *gfx)</div></div>
<div class="ttc" id="aTrack_8h_html_a25bb7651ef416f5d015085c5b8a0fa43"><div class="ttname"><a href="Track_8h.html#a25bb7651ef416f5d015085c5b8a0fa43">RestoreTriangleWinding</a></div><div class="ttdeci">void RestoreTriangleWinding()</div><div class="ttdef"><b>Definition</b> Track.cpp:300</div></div>
<div class="ttc" id="aTrack_8h_html_a8ecef2d534cf6f255c04ca4378080410"><div class="ttname"><a href="Track_8h.html#a8ecef2d534cf6f255c04ca4378080410">Properties</a></div><div class="ttdeci">struct Properties Properties</div></div>
<div class="ttc" id="aTrack_8h_html_ab8fe8a85340279ffa324d3c475c49e29"><div class="ttname"><a href="Track_8h.html#ab8fe8a85340279ffa324d3c475c49e29">ResizeMinimap</a></div><div class="ttdeci">void ResizeMinimap(MinimapProps *minimap)</div><div class="ttdef"><b>Definition</b> Track.cpp:36</div></div>
<div class="ttc" id="aTrack_8h_html_ac52c9c0df477631c475ff9b2fd5e61d7"><div class="ttname"><a href="Track_8h.html#ac52c9c0df477631c475ff9b2fd5e61d7">InvertTriangleWinding</a></div><div class="ttdeci">void InvertTriangleWinding(Gfx *gfx)</div><div class="ttdef"><b>Definition</b> Track.cpp:279</div></div>
<div class="ttc" id="aTrack_8h_html_af09715bddd34d67a01095b92a34f0a5d"><div class="ttname"><a href="Track_8h.html#af09715bddd34d67a01095b92a34f0a5d">IsTriangleWindingInverted</a></div><div class="ttdeci">bool IsTriangleWindingInverted()</div><div class="ttdef"><b>Definition</b> Track.cpp:349</div></div>
<div class="ttc" id="abomb__kart_8h_html"><div class="ttname"><a href="bomb__kart_8h.html">bomb_kart.h</a></div></div>
<div class="ttc" id="acamera_8h_html"><div class="ttname"><a href="camera_8h.html">camera.h</a></div></div>
<div class="ttc" id="aclassTrack_html"><div class="ttname"><a href="classTrack.html">Track</a></div></div>
<div class="ttc" id="aclassWorld_html"><div class="ttname"><a href="classWorld.html">World</a></div><div class="ttdef"><b>Definition</b> World.h:39</div></div>
<div class="ttc" id="acode__800029B0_8h_html"><div class="ttname"><a href="code__800029B0_8h.html">code_800029B0.h</a></div></div>
<div class="ttc" id="acommon__structs_8h_html"><div class="ttname"><a href="common__structs_8h.html">common_structs.h</a></div></div>
<div class="ttc" id="acommon__structs_8h_html_a5290523279339ea495248ab3a36cb46e"><div class="ttname"><a href="common__structs_8h.html#a5290523279339ea495248ab3a36cb46e">Vec3f</a></div><div class="ttdeci">f32 Vec3f[3]</div><div class="ttdef"><b>Definition</b> common_structs.h:10</div></div>
<div class="ttc" id="acommon__structs_8h_html_aa9446b0f4d1af8a6823e90015d37b030"><div class="ttname"><a href="common__structs_8h.html#aa9446b0f4d1af8a6823e90015d37b030">Vec4f</a></div><div class="ttdeci">f32 Vec4f[4]</div><div class="ttdef"><b>Definition</b> common_structs.h:11</div></div>
<div class="ttc" id="adefines_8h_html"><div class="ttname"><a href="defines_8h.html">defines.h</a></div></div>
<div class="ttc" id="aload_8c_html_aa8c84707b22bdc99b810d3c7d3ec5d52"><div class="ttname"><a href="load_8c.html#aa8c84707b22bdc99b810d3c7d3ec5d52">j</a></div><div class="ttdeci">#define j</div></div>
<div class="ttc" id="anamespaceGameUI_html_aae41f6af9e88d2f956d45cb1a5c576d1"><div class="ttname"><a href="namespaceGameUI.html#aae41f6af9e88d2f956d45cb1a5c576d1">GameUI::Destroy</a></div><div class="ttdeci">void Destroy()</div><div class="ttdef"><b>Definition</b> ImguiUI.cpp:90</div></div>
<div class="ttc" id="anamespaceSF64_html_a1130ee4440f43e7a45454de29f6bc813a512dc597be7ae761876315165dc8bd2e"><div class="ttname"><a href="namespaceSF64.html#a1130ee4440f43e7a45454de29f6bc813a512dc597be7ae761876315165dc8bd2e">SF64::ArrayType::f32</a></div><div class="ttdeci">@ f32</div><div class="ttdef"><b>Definition</b> GenericArray.h:59</div></div>
<div class="ttc" id="anamespaceTrackEditor_html_ad0035fe3dfdf036a30b099d2e25fc414"><div class="ttname"><a href="namespaceTrackEditor.html#ad0035fe3dfdf036a30b099d2e25fc414">TrackEditor::SpawnActors</a></div><div class="ttdeci">void SpawnActors(std::vector&lt; std::pair&lt; std::string, SpawnParams &gt; &gt; spawnList)</div></div>
<div class="ttc" id="aobjects_8h_html_a8e51edac51cf5b53412c91933520c855"><div class="ttname"><a href="objects_8h.html#a8e51edac51cf5b53412c91933520c855">CloudData</a></div><div class="ttdeci">struct StarData CloudData</div></div>
<div class="ttc" id="apath__spawn__metadata_8h_html"><div class="ttname"><a href="path__spawn__metadata_8h.html">path_spawn_metadata.h</a></div></div>
<div class="ttc" id="asounds_8h_html"><div class="ttname"><a href="sounds_8h.html">sounds.h</a></div></div>
<div class="ttc" id="asounds_8h_html_a462955cf4ece430059af4e4185a8727c"><div class="ttname"><a href="sounds_8h.html#a462955cf4ece430059af4e4185a8727c">MusicSeq</a></div><div class="ttdeci">MusicSeq</div><div class="ttdef"><b>Definition</b> sounds.h:118</div></div>
<div class="ttc" id="asrc_2data_2some__data_8h_html"><div class="ttname"><a href="src_2data_2some__data_8h.html">some_data.h</a></div></div>
<div class="ttc" id="astructIVector2D_html"><div class="ttname"><a href="structIVector2D.html">IVector2D</a></div><div class="ttdef"><b>Definition</b> CoreMath.h:115</div></div>
<div class="ttc" id="astructMinimapProps_html"><div class="ttname"><a href="structMinimapProps.html">MinimapProps</a></div><div class="ttdef"><b>Definition</b> Track.h:54</div></div>
<div class="ttc" id="astructMinimapProps_html_a068aaf6c703b5e97b6cd38f8aa4f8521"><div class="ttname"><a href="structMinimapProps.html#a068aaf6c703b5e97b6cd38f8aa4f8521">MinimapProps::Pos</a></div><div class="ttdeci">IVector2D Pos[2]</div><div class="ttdef"><b>Definition</b> Track.h:58</div></div>
<div class="ttc" id="astructMinimapProps_html_a1a841d178badc847b4ab2278e903fa73"><div class="ttname"><a href="structMinimapProps.html#a1a841d178badc847b4ab2278e903fa73">MinimapProps::Width</a></div><div class="ttdeci">int16_t Width</div><div class="ttdef"><b>Definition</b> Track.h:56</div></div>
<div class="ttc" id="astructMinimapProps_html_a23091b18c4a06400ab831d795ea880f0"><div class="ttname"><a href="structMinimapProps.html#a23091b18c4a06400ab831d795ea880f0">MinimapProps::Colour</a></div><div class="ttdeci">RGB8 Colour</div><div class="ttdef"><b>Definition</b> Track.h:64</div></div>
<div class="ttc" id="astructMinimapProps_html_a4df790445833e2b50fe1ce3b1ca2809f"><div class="ttname"><a href="structMinimapProps.html#a4df790445833e2b50fe1ce3b1ca2809f">MinimapProps::FinishlineY</a></div><div class="ttdeci">float FinishlineY</div><div class="ttdef"><b>Definition</b> Track.h:63</div></div>
<div class="ttc" id="astructMinimapProps_html_a528a6ced00cb540deaf898a3c1270384"><div class="ttname"><a href="structMinimapProps.html#a528a6ced00cb540deaf898a3c1270384">MinimapProps::PlayerY</a></div><div class="ttdeci">int32_t PlayerY</div><div class="ttdef"><b>Definition</b> Track.h:60</div></div>
<div class="ttc" id="astructMinimapProps_html_a8f10ce7ca14b8b2d98005d06ca70b5a3"><div class="ttname"><a href="structMinimapProps.html#a8f10ce7ca14b8b2d98005d06ca70b5a3">MinimapProps::Texture</a></div><div class="ttdeci">const char * Texture</div><div class="ttdef"><b>Definition</b> Track.h:55</div></div>
<div class="ttc" id="astructMinimapProps_html_a98ea605536b65f3313dfc1ef1e38044a"><div class="ttname"><a href="structMinimapProps.html#a98ea605536b65f3313dfc1ef1e38044a">MinimapProps::PlayerScaleFactor</a></div><div class="ttdeci">float PlayerScaleFactor</div><div class="ttdef"><b>Definition</b> Track.h:61</div></div>
<div class="ttc" id="astructMinimapProps_html_aa55508e6cbd030aae3bc4756784e7bb4"><div class="ttname"><a href="structMinimapProps.html#aa55508e6cbd030aae3bc4756784e7bb4">MinimapProps::FinishlineX</a></div><div class="ttdeci">float FinishlineX</div><div class="ttdef"><b>Definition</b> Track.h:62</div></div>
<div class="ttc" id="astructMinimapProps_html_ab47e2a98b449dadddfaaeb4cc0c0ab8e"><div class="ttname"><a href="structMinimapProps.html#ab47e2a98b449dadddfaaeb4cc0c0ab8e">MinimapProps::PlayerX</a></div><div class="ttdeci">int32_t PlayerX</div><div class="ttdef"><b>Definition</b> Track.h:59</div></div>
<div class="ttc" id="astructMinimapProps_html_ae2171b1e398bc7b40dbea0f4b30114ee"><div class="ttname"><a href="structMinimapProps.html#ae2171b1e398bc7b40dbea0f4b30114ee">MinimapProps::Height</a></div><div class="ttdeci">int16_t Height</div><div class="ttdef"><b>Definition</b> Track.h:57</div></div>
<div class="ttc" id="astructProperties_html"><div class="ttname"><a href="structProperties.html">Properties</a></div><div class="ttdef"><b>Definition</b> Track.h:88</div></div>
<div class="ttc" id="astructProperties_html_a02d92883b677bdb1f213852128b0c17a"><div class="ttname"><a href="structProperties.html#a02d92883b677bdb1f213852128b0c17a">Properties::Name</a></div><div class="ttdeci">char Name[128]</div><div class="ttdef"><b>Definition</b> Track.h:89</div></div>
<div class="ttc" id="astructProperties_html_a03cd75aab731622f02d631906ab7d481"><div class="ttname"><a href="structProperties.html#a03cd75aab731622f02d631906ab7d481">Properties::CloudTexture</a></div><div class="ttdeci">uint8_t * CloudTexture</div><div class="ttdef"><b>Definition</b> Track.h:108</div></div>
<div class="ttc" id="astructProperties_html_a2a82bd54b19123b9c4a4477c029baf80"><div class="ttname"><a href="structProperties.html#a2a82bd54b19123b9c4a4477c029baf80">Properties::PathTable2</a></div><div class="ttdeci">TrackPathPoint * PathTable2[5]</div><div class="ttdef"><b>Definition</b> Track.h:107</div></div>
<div class="ttc" id="astructProperties_html_a2e98c1e2daf66a1c8450e105f7ba5a4b"><div class="ttname"><a href="structProperties.html#a2e98c1e2daf66a1c8450e105f7ba5a4b">Properties::Clouds</a></div><div class="ttdeci">CloudData * Clouds</div><div class="ttdef"><b>Definition</b> Track.h:109</div></div>
<div class="ttc" id="astructProperties_html_a316fd9e1ee2dd9d91994a62086dd079d"><div class="ttname"><a href="structProperties.html#a316fd9e1ee2dd9d91994a62086dd079d">Properties::D_0D0096B8</a></div><div class="ttdeci">Vec4f D_0D0096B8</div><div class="ttdef"><b>Definition</b> Track.h:104</div></div>
<div class="ttc" id="astructProperties_html_a387dfb070695c9b1e218c5469512bc52"><div class="ttname"><a href="structProperties.html#a387dfb070695c9b1e218c5469512bc52">Properties::CurveTargetSpeed</a></div><div class="ttdeci">Vec4f CurveTargetSpeed</div><div class="ttdef"><b>Definition</b> Track.h:102</div></div>
<div class="ttc" id="astructProperties_html_a4c4b787ed2d18f881ac2ce43a1568660"><div class="ttname"><a href="structProperties.html#a4c4b787ed2d18f881ac2ce43a1568660">Properties::AIMaximumSeparation</a></div><div class="ttdeci">float AIMaximumSeparation</div><div class="ttdef"><b>Definition</b> Track.h:95</div></div>
<div class="ttc" id="astructProperties_html_a5a569b3eb054872e27543cf171a609c3"><div class="ttname"><a href="structProperties.html#a5a569b3eb054872e27543cf171a609c3">Properties::WaterLevel</a></div><div class="ttdeci">float WaterLevel</div><div class="ttdef"><b>Definition</b> Track.h:113</div></div>
<div class="ttc" id="astructProperties_html_a5bccedc8fe7f1ed2ec45f301b78b5be6"><div class="ttname"><a href="structProperties.html#a5bccedc8fe7f1ed2ec45f301b78b5be6">Properties::LakituTowType</a></div><div class="ttdeci">int32_t LakituTowType</div><div class="ttdef"><b>Definition</b> Track.h:92</div></div>
<div class="ttc" id="astructProperties_html_a5d03cff5d613b7f1bf327cc7c28158f9"><div class="ttname"><a href="structProperties.html#a5d03cff5d613b7f1bf327cc7c28158f9">Properties::OffTrackTargetSpeed</a></div><div class="ttdeci">Vec4f OffTrackTargetSpeed</div><div class="ttdef"><b>Definition</b> Track.h:105</div></div>
<div class="ttc" id="astructProperties_html_a5ff4a55296adc51c015520728605b82c"><div class="ttname"><a href="structProperties.html#a5ff4a55296adc51c015520728605b82c">Properties::AISteeringSensitivity</a></div><div class="ttdeci">uint32_t AISteeringSensitivity</div><div class="ttdef"><b>Definition</b> Track.h:100</div></div>
<div class="ttc" id="astructProperties_html_a7a3eb51cc47be9c2bcbd1b2f18622f1e"><div class="ttname"><a href="structProperties.html#a7a3eb51cc47be9c2bcbd1b2f18622f1e">Properties::PathTable</a></div><div class="ttdeci">TrackPathPoint * PathTable[4]</div><div class="ttdef"><b>Definition</b> Track.h:106</div></div>
<div class="ttc" id="astructProperties_html_a7c6a3e0bc33fd62d0fc3880ecb0a16d0"><div class="ttname"><a href="structProperties.html#a7c6a3e0bc33fd62d0fc3880ecb0a16d0">Properties::AIBehaviour</a></div><div class="ttdeci">const char * AIBehaviour</div><div class="ttdef"><b>Definition</b> Track.h:94</div></div>
<div class="ttc" id="astructProperties_html_a9288c516957161c0c4d2c83d811f50fa"><div class="ttname"><a href="structProperties.html#a9288c516957161c0c4d2c83d811f50fa">Properties::PathSizes</a></div><div class="ttdeci">TrackPathSizes PathSizes</div><div class="ttdef"><b>Definition</b> Track.h:101</div></div>
<div class="ttc" id="astructProperties_html_ab4770f66f45517c45796bf048e326c83"><div class="ttname"><a href="structProperties.html#ab4770f66f45517c45796bf048e326c83">Properties::NearPersp</a></div><div class="ttdeci">float NearPersp</div><div class="ttdef"><b>Definition</b> Track.h:97</div></div>
<div class="ttc" id="astructProperties_html_ac3c175569725579891325503e37e0bce"><div class="ttname"><a href="structProperties.html#ac3c175569725579891325503e37e0bce">Properties::Skybox</a></div><div class="ttdeci">SkyboxColours Skybox</div><div class="ttdef"><b>Definition</b> Track.h:111</div></div>
<div class="ttc" id="astructProperties_html_ac648a9185de6ef81db7cc70f4ee08dea"><div class="ttname"><a href="structProperties.html#ac648a9185de6ef81db7cc70f4ee08dea">Properties::AIMinimumSeparation</a></div><div class="ttdeci">float AIMinimumSeparation</div><div class="ttdef"><b>Definition</b> Track.h:96</div></div>
<div class="ttc" id="astructProperties_html_ac6c76f0d3fd68ef6f705442fa23cb028"><div class="ttname"><a href="structProperties.html#ac6c76f0d3fd68ef6f705442fa23cb028">Properties::TrackLength</a></div><div class="ttdeci">char TrackLength[128]</div><div class="ttdef"><b>Definition</b> Track.h:91</div></div>
<div class="ttc" id="astructProperties_html_acd753e07362c52af62ea8b632c50570e"><div class="ttname"><a href="structProperties.html#acd753e07362c52af62ea8b632c50570e">Properties::Sequence</a></div><div class="ttdeci">enum MusicSeq Sequence</div><div class="ttdef"><b>Definition</b> Track.h:112</div></div>
<div class="ttc" id="astructProperties_html_ace330536ddb7d9a9dc586ba6bd1bb46b"><div class="ttname"><a href="structProperties.html#ace330536ddb7d9a9dc586ba6bd1bb46b">Properties::AIDistance</a></div><div class="ttdeci">int16_t * AIDistance</div><div class="ttdef"><b>Definition</b> Track.h:99</div></div>
<div class="ttc" id="astructProperties_html_acea54ae83279167c2b4de58d6cd232be"><div class="ttname"><a href="structProperties.html#acea54ae83279167c2b4de58d6cd232be">Properties::DebugName</a></div><div class="ttdeci">char DebugName[128]</div><div class="ttdef"><b>Definition</b> Track.h:90</div></div>
<div class="ttc" id="astructProperties_html_ae58982c5d539015dea9697ac68c35970"><div class="ttname"><a href="structProperties.html#ae58982c5d539015dea9697ac68c35970">Properties::CloudList</a></div><div class="ttdeci">CloudData * CloudList</div><div class="ttdef"><b>Definition</b> Track.h:110</div></div>
<div class="ttc" id="astructProperties_html_aeb221251bfd0ef55f3c357e590edfd71"><div class="ttname"><a href="structProperties.html#aeb221251bfd0ef55f3c357e590edfd71">Properties::FarPersp</a></div><div class="ttdeci">float FarPersp</div><div class="ttdef"><b>Definition</b> Track.h:98</div></div>
<div class="ttc" id="astructProperties_html_aecbff1a07e347fac02490e5072977de1"><div class="ttname"><a href="structProperties.html#aecbff1a07e347fac02490e5072977de1">Properties::Minimap</a></div><div class="ttdeci">MinimapProps Minimap</div><div class="ttdef"><b>Definition</b> Track.h:93</div></div>
<div class="ttc" id="astructProperties_html_af839b1223590498402d9389a7218d2cc"><div class="ttname"><a href="structProperties.html#af839b1223590498402d9389a7218d2cc">Properties::NormalTargetSpeed</a></div><div class="ttdeci">Vec4f NormalTargetSpeed</div><div class="ttdef"><b>Definition</b> Track.h:103</div></div>
<div class="ttc" id="astructRGB8_html"><div class="ttname"><a href="structRGB8.html">RGB8</a></div><div class="ttdef"><b>Definition</b> common_structs.h:427</div></div>
<div class="ttc" id="astructSkyboxColours_html"><div class="ttname"><a href="structSkyboxColours.html">SkyboxColours</a></div><div class="ttdef"><b>Definition</b> Track.h:30</div></div>
<div class="ttc" id="astructSkyboxColours_html_a00c9ce1642a26b9469556631de7c7243"><div class="ttname"><a href="structSkyboxColours.html#a00c9ce1642a26b9469556631de7c7243">SkyboxColours::BottomLeft</a></div><div class="ttdeci">RGB8 BottomLeft</div><div class="ttdef"><b>Definition</b> Track.h:33</div></div>
<div class="ttc" id="astructSkyboxColours_html_a0ac1cea76e1da20cff9cb370433ca63c"><div class="ttname"><a href="structSkyboxColours.html#a0ac1cea76e1da20cff9cb370433ca63c">SkyboxColours::FloorBottomRight</a></div><div class="ttdeci">RGB8 FloorBottomRight</div><div class="ttdef"><b>Definition</b> Track.h:36</div></div>
<div class="ttc" id="astructSkyboxColours_html_a2181f9cceb42a4483dcc7606c3907781"><div class="ttname"><a href="structSkyboxColours.html#a2181f9cceb42a4483dcc7606c3907781">SkyboxColours::BottomRight</a></div><div class="ttdeci">RGB8 BottomRight</div><div class="ttdef"><b>Definition</b> Track.h:32</div></div>
<div class="ttc" id="astructSkyboxColours_html_a2be030d439269ee112dad8c957c4b018"><div class="ttname"><a href="structSkyboxColours.html#a2be030d439269ee112dad8c957c4b018">SkyboxColours::FloorBottomLeft</a></div><div class="ttdeci">RGB8 FloorBottomLeft</div><div class="ttdef"><b>Definition</b> Track.h:37</div></div>
<div class="ttc" id="astructSkyboxColours_html_a2f0d950679a557ad46d5fa4a5ac7680a"><div class="ttname"><a href="structSkyboxColours.html#a2f0d950679a557ad46d5fa4a5ac7680a">SkyboxColours::TopRight</a></div><div class="ttdeci">RGB8 TopRight</div><div class="ttdef"><b>Definition</b> Track.h:31</div></div>
<div class="ttc" id="astructSkyboxColours_html_a5fc79df7b53785df0805278ab362bbf6"><div class="ttname"><a href="structSkyboxColours.html#a5fc79df7b53785df0805278ab362bbf6">SkyboxColours::TopLeft</a></div><div class="ttdeci">RGB8 TopLeft</div><div class="ttdef"><b>Definition</b> Track.h:34</div></div>
<div class="ttc" id="astructSkyboxColours_html_a97f193351ea4b1931e7c2ae691008c42"><div class="ttname"><a href="structSkyboxColours.html#a97f193351ea4b1931e7c2ae691008c42">SkyboxColours::FloorTopRight</a></div><div class="ttdeci">RGB8 FloorTopRight</div><div class="ttdef"><b>Definition</b> Track.h:35</div></div>
<div class="ttc" id="astructSkyboxColours_html_ab0925054e9155d18a93065bba12c0019"><div class="ttname"><a href="structSkyboxColours.html#ab0925054e9155d18a93065bba12c0019">SkyboxColours::FloorTopLeft</a></div><div class="ttdeci">RGB8 FloorTopLeft</div><div class="ttdef"><b>Definition</b> Track.h:38</div></div>
<div class="ttc" id="astructTrackPathPoint_html"><div class="ttname"><a href="structTrackPathPoint.html">TrackPathPoint</a></div><div class="ttdef"><b>Definition</b> waypoints.h:14</div></div>
<div class="ttc" id="astructTrackPathSizes_html"><div class="ttname"><a href="structTrackPathSizes.html">TrackPathSizes</a></div><div class="ttdef"><b>Definition</b> path_spawn_metadata.h:9</div></div>
<div class="ttc" id="astructTrackSections_html"><div class="ttname"><a href="structTrackSections.html">TrackSections</a></div><div class="ttdef"><b>Definition</b> Track.h:81</div></div>
<div class="ttc" id="astructTrackSections_html_a4616695b955d9f9c5f654f2d8fb18430"><div class="ttname"><a href="structTrackSections.html#a4616695b955d9f9c5f654f2d8fb18430">TrackSections::crc</a></div><div class="ttdeci">uint64_t crc</div><div class="ttdef"><b>Definition</b> Track.h:82</div></div>
<div class="ttc" id="astructTrackSections_html_a53d5aca8370d2850514a4507044dcbd3"><div class="ttname"><a href="structTrackSections.html#a53d5aca8370d2850514a4507044dcbd3">TrackSections::sectionId</a></div><div class="ttdeci">u8 sectionId</div><div class="ttdef"><b>Definition</b> Track.h:84</div></div>
<div class="ttc" id="astructTrackSections_html_a5da9422111f0325e591566d162776c1d"><div class="ttname"><a href="structTrackSections.html#a5da9422111f0325e591566d162776c1d">TrackSections::surfaceType</a></div><div class="ttdeci">u8 surfaceType</div><div class="ttdef"><b>Definition</b> Track.h:83</div></div>
<div class="ttc" id="astructTrackSections_html_ad5b479d66f3ab630872a6a2042ad8270"><div class="ttname"><a href="structTrackSections.html#ad5b479d66f3ab630872a6a2042ad8270">TrackSections::flags</a></div><div class="ttdeci">u16 flags</div><div class="ttdef"><b>Definition</b> Track.h:85</div></div>
<div class="ttc" id="astructWaterVolume_html"><div class="ttname"><a href="structWaterVolume.html">WaterVolume</a></div><div class="ttdef"><b>Definition</b> Track.h:46</div></div>
<div class="ttc" id="astructWaterVolume_html_a31ecbcc71bbafd82069645202cba5953"><div class="ttname"><a href="structWaterVolume.html#a31ecbcc71bbafd82069645202cba5953">WaterVolume::Height</a></div><div class="ttdeci">float Height</div><div class="ttdef"><b>Definition</b> Track.h:47</div></div>
<div class="ttc" id="astructWaterVolume_html_a714e6184ab84abaa2bdefa7a474a1143"><div class="ttname"><a href="structWaterVolume.html#a714e6184ab84abaa2bdefa7a474a1143">WaterVolume::MaxX</a></div><div class="ttdeci">float MaxX</div><div class="ttdef"><b>Definition</b> Track.h:49</div></div>
<div class="ttc" id="astructWaterVolume_html_a8db06ca9443170b12554d3ad9c923ab1"><div class="ttname"><a href="structWaterVolume.html#a8db06ca9443170b12554d3ad9c923ab1">WaterVolume::MinZ</a></div><div class="ttdeci">float MinZ</div><div class="ttdef"><b>Definition</b> Track.h:50</div></div>
<div class="ttc" id="astructWaterVolume_html_aae4914d2c831314fb1d05d72cdaa02bd"><div class="ttname"><a href="structWaterVolume.html#aae4914d2c831314fb1d05d72cdaa02bd">WaterVolume::MinX</a></div><div class="ttdeci">float MinX</div><div class="ttdef"><b>Definition</b> Track.h:48</div></div>
<div class="ttc" id="astructWaterVolume_html_af39a4134d3dcedc062b969caebf337e2"><div class="ttname"><a href="structWaterVolume.html#af39a4134d3dcedc062b969caebf337e2">WaterVolume::MaxZ</a></div><div class="ttdeci">float MaxZ</div><div class="ttdef"><b>Definition</b> Track.h:51</div></div>
<div class="ttc" id="awaypoints_8h_html"><div class="ttname"><a href="waypoints_8h.html">waypoints.h</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_2052808828190f934b76e979ee65af8a.html">engine</a></li><li class="navelem"><a class="el" href="dir_8955581d22ca769fa1400ba486b7589a.html">tracks</a></li><li class="navelem"><a class="el" href="Track_8h.html">Track.h</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.2 </li>
</ul>
</div>
</body>
</html>