<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.wowcube.com/index.php?action=history&amp;feed=atom&amp;title=SDK_6.3%2FC%2B%2B%2FNative_API</id>
	<title>SDK 6.3/C++/Native API - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.wowcube.com/index.php?action=history&amp;feed=atom&amp;title=SDK_6.3%2FC%2B%2B%2FNative_API"/>
	<link rel="alternate" type="text/html" href="https://wiki.wowcube.com/index.php?title=SDK_6.3/C%2B%2B/Native_API&amp;action=history"/>
	<updated>2026-07-26T22:43:35Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.33.0</generator>
	<entry>
		<id>https://wiki.wowcube.com/index.php?title=SDK_6.3/C%2B%2B/Native_API&amp;diff=16969&amp;oldid=prev</id>
		<title>WowBot: Split C++ Native API into per-module pages with minimal examples (WowBot)</title>
		<link rel="alternate" type="text/html" href="https://wiki.wowcube.com/index.php?title=SDK_6.3/C%2B%2B/Native_API&amp;diff=16969&amp;oldid=prev"/>
		<updated>2026-07-26T09:47:46Z</updated>

		<summary type="html">&lt;p&gt;Split C++ Native API into per-module pages with minimal examples (WowBot)&lt;/p&gt;
&lt;a href=&quot;https://wiki.wowcube.com/index.php?title=SDK_6.3/C%2B%2B/Native_API&amp;amp;diff=16969&amp;amp;oldid=16945&quot;&gt;Show changes&lt;/a&gt;</summary>
		<author><name>WowBot</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wowcube.com/index.php?title=SDK_6.3/C%2B%2B/Native_API&amp;diff=16945&amp;oldid=prev</id>
		<title>WowBot: Fix ROBODoc typo parsing (LB_getInfo/LB_getScore restored), detailed Scramble+Splashscreen (WowBot)</title>
		<link rel="alternate" type="text/html" href="https://wiki.wowcube.com/index.php?title=SDK_6.3/C%2B%2B/Native_API&amp;diff=16945&amp;oldid=prev"/>
		<updated>2026-07-26T09:38:59Z</updated>

		<summary type="html">&lt;p&gt;Fix ROBODoc typo parsing (LB_getInfo/LB_getScore restored), detailed Scramble+Splashscreen (WowBot)&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Revision as of 09:38, 26 July 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l292&quot; &gt;Line 292:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 292:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  i32_t LB_getInfo(Cubios::LB_info_t* info)&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  i32_t LB_getInfo(Cubios::LB_info_t* info)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Description:&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;: Get leaderboard description.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;: Players score and achievements can be saved and shared via mobile&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;: application and WOWCube Entertainment System servers. This function&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;: provides synced information necessary to display points table.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;: Outputs&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;:* info - structure describing leaderboard&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Return values:&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;: Error code:&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;: * 0 - success&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;: * -1 - incorrect arguments count&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;: * -2 - leaderboard is not synced&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;: * -3 - fail to fill output structure&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;===LB_getScore===&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;===LB_getScore===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l297&quot; &gt;Line 297:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 311:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  i32_t LB_getScore(uint8_t* leadTableBin, u32_t bufSize)&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  i32_t LB_getScore(uint8_t* leadTableBin, u32_t bufSize)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Description:&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;: Get best results data data.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;: Players score and achievements can be saved and shared via mobile&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;: application and WOWCube Entertainment System servers. This function&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;: provides best results table data.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Return values:&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;: Error code:&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;: * 0 - success&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;: * -1 - incorrect arguments count&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;: * -2 - leaderboard is not synced&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;: * -3 - fail to fill output structure&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;History:&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;: v5.0 - align error codes with LB_getInfo.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Motion Sensors ==&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Motion Sensors ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key wiki:diff::1.12:old-16937:rev-16945 --&gt;
&lt;/table&gt;</summary>
		<author><name>WowBot</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wowcube.com/index.php?title=SDK_6.3/C%2B%2B/Native_API&amp;diff=16937&amp;oldid=prev</id>
		<title>WowBot: C++ (WASM) and Rust API reference for SDK 6.3 (WowBot)</title>
		<link rel="alternate" type="text/html" href="https://wiki.wowcube.com/index.php?title=SDK_6.3/C%2B%2B/Native_API&amp;diff=16937&amp;oldid=prev"/>
		<updated>2026-07-26T09:14:53Z</updated>

		<summary type="html">&lt;p&gt;C++ (WASM) and Rust API reference for SDK 6.3 (WowBot)&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{notice|'''Official WOWCube SDK documentation.''' SDK 6.3, C++ (WebAssembly) API. Signatures are extracted from the canonical SDK headers shipped with the WOWCube Development Kit; the headers remain authoritative.}}&lt;br /&gt;
&lt;br /&gt;
{{SDK 6.3 nav}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''← [[SDK 6.3]] · C++ / Native API''&lt;br /&gt;
&lt;br /&gt;
The low-level C ABI available to C/C++ (and Rust) cubeapps, declared in &amp;lt;code&amp;gt;native.h&amp;lt;/code&amp;gt;. These are the same engine functions as the [[SDK 6.3/PAWN/Core|PAWN API]] — descriptions of shared functions below are taken from the official SDK reference. On top of this layer the SDK provides the object-oriented [[SDK 6.3/C++/Application|Application framework]] and the [[SDK 6.3/C++/GFX Engine|GFX Engine]].&lt;br /&gt;
&lt;br /&gt;
== Types and data structures ==&lt;br /&gt;
&lt;br /&gt;
Defined in &amp;lt;code&amp;gt;native.h&amp;lt;/code&amp;gt; / &amp;lt;code&amp;gt;native_defines.h&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
 typedef uint32_t u32_t;   typedef int32_t i32_t;&lt;br /&gt;
 typedef int32_t soundID_t; typedef int32_t spriteID_t;&lt;br /&gt;
 union AppVersion_t { uint32_t full; struct { uint16_t patch:16; uint8_t minor:4; uint8_t major:4; uint8_t reserved:8; }; };&lt;br /&gt;
 struct TOPOLOGY_faceletInfo_t { int32_t module; int32_t screen; int32_t connected; };&lt;br /&gt;
 struct TOPOLOGY_place_t      { int32_t face; int32_t position; };&lt;br /&gt;
 struct TOPOLOGY_twistInfo_t  { int32_t screen; int32_t count; int32_t direction; };&lt;br /&gt;
 struct LB_info_t   { int32_t boardCount; int32_t selfPosition; int32_t selfScore; int32_t wholeUserListCount; };&lt;br /&gt;
 struct GFX_Particle_t { ttl, vx, vy, ax, ay, explosion, velocity, duration, frequency, max, loop, time };&lt;br /&gt;
&lt;br /&gt;
Enumerations: &amp;lt;code&amp;gt;TOPOLOGY_twist_t&amp;lt;/code&amp;gt; (LEFT/RIGHT/DOUBLE), &amp;lt;code&amp;gt;TOPOLOGY_orientation_mode_t&amp;lt;/code&amp;gt; (MENU/GRAVITY/SPLASH), &amp;lt;code&amp;gt;TOPOLOGY_orientation_t&amp;lt;/code&amp;gt; (UP/DOWN/FRONT/BACK/LEFT/RIGHT), &amp;lt;code&amp;gt;TOPOLOGY_neighbor_t&amp;lt;/code&amp;gt; (SELF/LEFT/DIAGONAL/TOP/RIGHT/BOTTOM), &amp;lt;code&amp;gt;text_align_t&amp;lt;/code&amp;gt; (9 values), &amp;lt;code&amp;gt;GFX_mirror_t&amp;lt;/code&amp;gt; (BLANK/X/Y/XY), &amp;lt;code&amp;gt;GFX_PixelFormat_t&amp;lt;/code&amp;gt; (RGB565/ARGB6666/ARGB8888), &amp;lt;code&amp;gt;eventMask_t&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;LogLevel_t&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;uartID_t&amp;lt;/code&amp;gt;. Constant: &amp;lt;code&amp;gt;NET_BROADCAST = 0xFF&amp;lt;/code&amp;gt;; global &amp;lt;code&amp;gt;cubeN&amp;lt;/code&amp;gt; — the index of the module the code is running on.&lt;br /&gt;
&lt;br /&gt;
== Core ==&lt;br /&gt;
&lt;br /&gt;
===sendPacket===&lt;br /&gt;
Syntax:&lt;br /&gt;
 i32_t sendPacket(u32_t type, uint8_t* pkt, u32_t size)&lt;br /&gt;
&lt;br /&gt;
Description:&lt;br /&gt;
: Send a packet to another module. Use &amp;lt;code&amp;gt;NET_BROADCAST&amp;lt;/code&amp;gt; (0xFF) as the destination to reach all modules. Low-level counterpart of the PAWN &amp;lt;code&amp;gt;broadcastPacket()&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===recvPacket===&lt;br /&gt;
Syntax:&lt;br /&gt;
 i32_t recvPacket(u32_t size, uint32_t* type, uint8_t* pkt)&lt;br /&gt;
&lt;br /&gt;
Description:&lt;br /&gt;
: Read a pending inter-module packet into a buffer. Normally consumed by the &amp;lt;code&amp;gt;AppManager&amp;lt;/code&amp;gt; event loop, which dispatches it to &amp;lt;code&amp;gt;Application::on_Message()&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===getTime===&lt;br /&gt;
Syntax:&lt;br /&gt;
 i32_t getTime()&lt;br /&gt;
&lt;br /&gt;
Description:&lt;br /&gt;
: Get time in milliseconds since the module start.&lt;br /&gt;
&lt;br /&gt;
Return values:&lt;br /&gt;
: Time in milliseconds since the module start.&lt;br /&gt;
&lt;br /&gt;
===getUserName===&lt;br /&gt;
Syntax:&lt;br /&gt;
 i32_t getUserName(uint8_t* buffer, u32_t bufSize)&lt;br /&gt;
&lt;br /&gt;
Description:&lt;br /&gt;
: Get the name of a user who is logined on the cube.&lt;br /&gt;
: Get the user name configured in the WOWCube mobile application to save&lt;br /&gt;
: results for.&lt;br /&gt;
&lt;br /&gt;
===toggleDebugInfo===&lt;br /&gt;
Syntax:&lt;br /&gt;
 i32_t toggleDebugInfo()&lt;br /&gt;
&lt;br /&gt;
Description:&lt;br /&gt;
: Toggle overlay with debug information. TBD - move to GFX&lt;br /&gt;
&lt;br /&gt;
===saveState===&lt;br /&gt;
Syntax:&lt;br /&gt;
 i32_t saveState(void* data, u32_t size)&lt;br /&gt;
&lt;br /&gt;
Description:&lt;br /&gt;
: Request to save an application data&lt;br /&gt;
: Save user settings and/or progress on the flash to restore next time. Each&lt;br /&gt;
: save data has an incremental ID.&lt;br /&gt;
&lt;br /&gt;
Return values:&lt;br /&gt;
: True if save was successful.&lt;br /&gt;
&lt;br /&gt;
History:&lt;br /&gt;
: v5.0 - fixed a bug in which only part of a data saved on the flash&lt;br /&gt;
&lt;br /&gt;
===loadState===&lt;br /&gt;
Syntax:&lt;br /&gt;
 i32_t loadState(u32_t* id, void* data, u32_t size)&lt;br /&gt;
&lt;br /&gt;
Description:&lt;br /&gt;
: Request to load an application save data from the flash.&lt;br /&gt;
: Trigger state load event. It is asynchronous so access to flash memory will&lt;br /&gt;
: not affect an application performance.&lt;br /&gt;
&lt;br /&gt;
===random===&lt;br /&gt;
Syntax:&lt;br /&gt;
 i32_t random(u32_t min, u32_t max)&lt;br /&gt;
&lt;br /&gt;
Description:&lt;br /&gt;
: Generate random number in half-open range.&lt;br /&gt;
: Random number generator is initialized before each application start. Seed&lt;br /&gt;
: for initialization is generated by TRNG (True Random Number Generator).&lt;br /&gt;
&lt;br /&gt;
Return values:&lt;br /&gt;
: Pseudo random value from requested range.&lt;br /&gt;
&lt;br /&gt;
History:&lt;br /&gt;
: v5.0 - fixed a bug in which random does not generate numbers in a given&lt;br /&gt;
: range.&lt;br /&gt;
&lt;br /&gt;
===getAppVersion===&lt;br /&gt;
Syntax:&lt;br /&gt;
 i32_t getAppVersion(Cubios::AppVersion_t *version)&lt;br /&gt;
&lt;br /&gt;
Description:&lt;br /&gt;
: Get application version.&lt;br /&gt;
: WOWCube applications follow semantic versioning scheme (see&lt;br /&gt;
: https://semver.org). This interface allows to get version parts stored in&lt;br /&gt;
: the cube application descriptor.&lt;br /&gt;
: Outputs&lt;br /&gt;
:* version - structure describing application version&lt;br /&gt;
&lt;br /&gt;
History:&lt;br /&gt;
: v6.0 - added&lt;br /&gt;
&lt;br /&gt;
===LOG===&lt;br /&gt;
Syntax:&lt;br /&gt;
 i32_t LOG(uint8_t level, const char* text)&lt;br /&gt;
&lt;br /&gt;
Description:&lt;br /&gt;
: Write a log line with the given level. Prefer the &amp;lt;code&amp;gt;LOG_a/e/w/i/d/v&amp;lt;/code&amp;gt; printf-style macros (see &amp;lt;code&amp;gt;LogLevel_t&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
===getTap===&lt;br /&gt;
Syntax:&lt;br /&gt;
 i32_t getTap()&lt;br /&gt;
&lt;br /&gt;
Description:&lt;br /&gt;
: Get the pending tap event, if any. Normally consumed by the &amp;lt;code&amp;gt;AppManager&amp;lt;/code&amp;gt; event loop (&amp;lt;code&amp;gt;Application::on_Tap()&amp;lt;/code&amp;gt; / &amp;lt;code&amp;gt;on_Pat()&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
===sendBleData===&lt;br /&gt;
Syntax:&lt;br /&gt;
 i32_t sendBleData(u32_t type, uint8_t* pkt, u32_t size)&lt;br /&gt;
&lt;br /&gt;
Description:&lt;br /&gt;
: Send external data over BLE to the connected companion (WOWCube Connect) application.&lt;br /&gt;
&lt;br /&gt;
===recvBleData===&lt;br /&gt;
Syntax:&lt;br /&gt;
 i32_t recvBleData(uint8_t* pkt, u32_t size)&lt;br /&gt;
&lt;br /&gt;
Description:&lt;br /&gt;
: Receive pending external BLE data; dispatched by &amp;lt;code&amp;gt;AppManager&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;Application::on_ExternalMessage()&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===EVENT_getList===&lt;br /&gt;
Syntax:&lt;br /&gt;
 i32_t EVENT_getList()&lt;br /&gt;
&lt;br /&gt;
Description:&lt;br /&gt;
: Get the pending event mask for this module (see &amp;lt;code&amp;gt;eventMask_t&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
== Topology ==&lt;br /&gt;
&lt;br /&gt;
===TOPOLOGY_getAdjacentFacelet===&lt;br /&gt;
Syntax:&lt;br /&gt;
 i32_t TOPOLOGY_getAdjacentFacelet(u32_t module, u32_t screen, u32_t direction, Cubios::TOPOLOGY_faceletInfo_t* result)&lt;br /&gt;
&lt;br /&gt;
Description:&lt;br /&gt;
: Get a facelet neighbor in the given direction.&lt;br /&gt;
: Facelet can have neighbors on the same cube face or neighbors by module.&lt;br /&gt;
: This function provide a neighbor of the given facelet in the given&lt;br /&gt;
: direction. Connection status indicates if there is a connection between&lt;br /&gt;
: modules on which given facelet and its neighbor are located.&lt;br /&gt;
&lt;br /&gt;
Return values:&lt;br /&gt;
: Neighbor facelet in a given direction with its connection status. The&lt;br /&gt;
: module ID will be MODULES_MAX and the screen number will be SCREENS_MAX in&lt;br /&gt;
: case of an error (e.g. incorrect arguments or the topology malfunction).&lt;br /&gt;
&lt;br /&gt;
===TOPOLOGY_getFacelet===&lt;br /&gt;
Syntax:&lt;br /&gt;
 i32_t TOPOLOGY_getFacelet(u32_t face, u32_t position, Cubios::TOPOLOGY_orientation_mode_t mode, Cubios::TOPOLOGY_faceletInfo_t* result)&lt;br /&gt;
&lt;br /&gt;
Description:&lt;br /&gt;
: Get a facelet located in the given place.&lt;br /&gt;
&lt;br /&gt;
Return values:&lt;br /&gt;
: Facelet located in the given place, connection status indicates if there&lt;br /&gt;
: any connection to the module on which this facelet resides. The module ID&lt;br /&gt;
: will be MODULES_MAX and the screen screen will be SCREENS_MAX in case of an&lt;br /&gt;
: error (e.g. incorrect arguments or the topology malfunction).&lt;br /&gt;
&lt;br /&gt;
===TOPOLOGY_getPlace===&lt;br /&gt;
Syntax:&lt;br /&gt;
 i32_t TOPOLOGY_getPlace(u32_t module, u32_t screen, Cubios::TOPOLOGY_orientation_mode_t mode, Cubios::TOPOLOGY_place_t* result)&lt;br /&gt;
&lt;br /&gt;
Description:&lt;br /&gt;
: Get a place of the facelet.&lt;br /&gt;
&lt;br /&gt;
Return values:&lt;br /&gt;
: Place on cube surface where the given facelet located. Face will be&lt;br /&gt;
: TOPOLOGY_FACES_MAX and position will be TOPOLOGY_POSITIONS_MAX in case of&lt;br /&gt;
: an error (e.g. incorrect arguments or topology malfunction)&lt;br /&gt;
&lt;br /&gt;
===TOPOLOGY_getOppositeFacelet===&lt;br /&gt;
Syntax:&lt;br /&gt;
 i32_t TOPOLOGY_getOppositeFacelet(u32_t module, u32_t screen, Cubios::TOPOLOGY_faceletInfo_t* result)&lt;br /&gt;
&lt;br /&gt;
Description:&lt;br /&gt;
: Get an opposite facelet located on a diagonal counterpart module.&lt;br /&gt;
&lt;br /&gt;
Return values:&lt;br /&gt;
: Diagonal opposite counterpart facelet. Connection status indicates if there&lt;br /&gt;
: any connection to the module on which that facelet resides. The module ID&lt;br /&gt;
: will be MODULES_MAX and the screen number will be SCREENS_MAX in case of an&lt;br /&gt;
: error (e.g. incorrect arguments or topology malfunction).&lt;br /&gt;
&lt;br /&gt;
===TOPOLOGY_getAngle===&lt;br /&gt;
Syntax:&lt;br /&gt;
 i32_t TOPOLOGY_getAngle(u32_t module, u32_t screen, Cubios::TOPOLOGY_orientation_mode_t mode)&lt;br /&gt;
&lt;br /&gt;
Description:&lt;br /&gt;
: Get an angle to align images on a face according to the orientation mode.&lt;br /&gt;
: Display coordinates system is persistent on a module screen. Different&lt;br /&gt;
: angles are needed to align images on all modules with screens on the same&lt;br /&gt;
: face. This function returns the angle for the screen specified by the&lt;br /&gt;
: facelet. The angle is relative to the position 0 on the same face where the&lt;br /&gt;
: facelet is located in the given orientation mode.&lt;br /&gt;
&lt;br /&gt;
Return values:&lt;br /&gt;
: Angle to align images on the same face according to the orientation mode, 0&lt;br /&gt;
: in case of an error (e.g. incorrect arguments or the topology malfunction).&lt;br /&gt;
&lt;br /&gt;
===TOPOLOGY_getFaceletOrientation===&lt;br /&gt;
Syntax:&lt;br /&gt;
 i32_t TOPOLOGY_getFaceletOrientation(u32_t module, u32_t screen)&lt;br /&gt;
&lt;br /&gt;
Description:&lt;br /&gt;
: Get a face orientation on which the given facelet resides.&lt;br /&gt;
&lt;br /&gt;
Return values:&lt;br /&gt;
: Face orientation on which the given facelet resides, ORIENTATION_MAX in&lt;br /&gt;
: case of an error (e.g. incorrect arguments or the topology malfunction).&lt;br /&gt;
&lt;br /&gt;
History:&lt;br /&gt;
: v5.0 - renamed from TOPOLOGY_getFaceletLocation() to the&lt;br /&gt;
: TOPOLOGY_getFaceletOrientation()&lt;br /&gt;
&lt;br /&gt;
===TOPOLOGY_getPlaceOrientation===&lt;br /&gt;
Syntax:&lt;br /&gt;
 i32_t TOPOLOGY_getPlaceOrientation(u32_t face, u32_t position)&lt;br /&gt;
&lt;br /&gt;
Description:&lt;br /&gt;
: Get a face orientation on which the given place resides.&lt;br /&gt;
&lt;br /&gt;
Return values:&lt;br /&gt;
: Face orientation on which the given place resides, ORIENTATION_MAX in case&lt;br /&gt;
: of an error (e.g. incorrect arguments or the topology malfunction).&lt;br /&gt;
&lt;br /&gt;
History:&lt;br /&gt;
: v5.0 - renamed from TOPOLOGY_getPlaceLocation() to the&lt;br /&gt;
: TOPOLOGY_getPlaceOrientation()&lt;br /&gt;
&lt;br /&gt;
===TOPOLOGY_getFace===&lt;br /&gt;
Syntax:&lt;br /&gt;
 i32_t TOPOLOGY_getFace(u32_t orientation)&lt;br /&gt;
&lt;br /&gt;
Description:&lt;br /&gt;
: Get a face number which has the given orientation.&lt;br /&gt;
&lt;br /&gt;
Return values:&lt;br /&gt;
: Face number which has the given orientation, TOPOLOGY_FACES_MAX in case of&lt;br /&gt;
: an error (e.g. incorrect arguments or the topology malfunction).&lt;br /&gt;
&lt;br /&gt;
===TOPOLOGY_isAssembled===&lt;br /&gt;
Syntax:&lt;br /&gt;
 i32_t TOPOLOGY_isAssembled()&lt;br /&gt;
&lt;br /&gt;
Description:&lt;br /&gt;
: Check that all modules in a system are connected to each other.&lt;br /&gt;
&lt;br /&gt;
Return values:&lt;br /&gt;
: True if all modules in a system are connected to each other, false&lt;br /&gt;
: otherwise.&lt;br /&gt;
&lt;br /&gt;
===TOPOLOGY_getTwist===&lt;br /&gt;
Syntax:&lt;br /&gt;
 i32_t TOPOLOGY_getTwist(Cubios::TOPOLOGY_twistInfo_t* twist)&lt;br /&gt;
&lt;br /&gt;
Description:&lt;br /&gt;
: Read the pending twist event into a &amp;lt;code&amp;gt;TOPOLOGY_twistInfo_t&amp;lt;/code&amp;gt;. Normally consumed by &amp;lt;code&amp;gt;AppManager&amp;lt;/code&amp;gt;, which calls &amp;lt;code&amp;gt;Application::on_Twist()&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Leaderboard ==&lt;br /&gt;
&lt;br /&gt;
===LB_getInfo===&lt;br /&gt;
Syntax:&lt;br /&gt;
 i32_t LB_getInfo(Cubios::LB_info_t* info)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===LB_getScore===&lt;br /&gt;
Syntax:&lt;br /&gt;
 i32_t LB_getScore(uint8_t* leadTableBin, u32_t bufSize)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Motion Sensors ==&lt;br /&gt;
&lt;br /&gt;
===MS_getFaceAccelX===&lt;br /&gt;
Syntax:&lt;br /&gt;
 i32_t MS_getFaceAccelX(u32_t display)&lt;br /&gt;
&lt;br /&gt;
Description:&lt;br /&gt;
: Get accelerometer value along X axis of some display.&lt;br /&gt;
&lt;br /&gt;
Return values:&lt;br /&gt;
: Accelerometer value along X axis.&lt;br /&gt;
&lt;br /&gt;
===MS_getFaceAccelY===&lt;br /&gt;
Syntax:&lt;br /&gt;
 i32_t MS_getFaceAccelY(u32_t display)&lt;br /&gt;
&lt;br /&gt;
Description:&lt;br /&gt;
: Get accelerometer value along Y axis of some display.&lt;br /&gt;
&lt;br /&gt;
Return values:&lt;br /&gt;
: Accelerometer value along Y axis.&lt;br /&gt;
&lt;br /&gt;
===MS_getFaceAccelZ===&lt;br /&gt;
Syntax:&lt;br /&gt;
 i32_t MS_getFaceAccelZ(u32_t display)&lt;br /&gt;
&lt;br /&gt;
Description:&lt;br /&gt;
: Get accelerometer value along Z axis of some display.&lt;br /&gt;
&lt;br /&gt;
Return values:&lt;br /&gt;
: Accelerometer value along Z axis.&lt;br /&gt;
&lt;br /&gt;
===MS_getFaceGyroX===&lt;br /&gt;
Syntax:&lt;br /&gt;
 i32_t MS_getFaceGyroX(u32_t display)&lt;br /&gt;
&lt;br /&gt;
Description:&lt;br /&gt;
: Get gyroscope value around X axis of some display.&lt;br /&gt;
&lt;br /&gt;
Return values:&lt;br /&gt;
: Gyroscope value around X axis.&lt;br /&gt;
&lt;br /&gt;
===MS_getFaceGyroY===&lt;br /&gt;
Syntax:&lt;br /&gt;
 i32_t MS_getFaceGyroY(u32_t display)&lt;br /&gt;
&lt;br /&gt;
Description:&lt;br /&gt;
: Get gyroscope value around Y axis of some display.&lt;br /&gt;
&lt;br /&gt;
Return values:&lt;br /&gt;
: Gyroscope value around Y axis.&lt;br /&gt;
&lt;br /&gt;
===MS_getFaceGyroZ===&lt;br /&gt;
Syntax:&lt;br /&gt;
 i32_t MS_getFaceGyroZ(u32_t display)&lt;br /&gt;
&lt;br /&gt;
Description:&lt;br /&gt;
: Get gyroscope value around Z axis of some display.&lt;br /&gt;
&lt;br /&gt;
Return values:&lt;br /&gt;
: Gyroscope value around Z axis.&lt;br /&gt;
&lt;br /&gt;
== Graphics ==&lt;br /&gt;
&lt;br /&gt;
===GFX_getAssetId===&lt;br /&gt;
Syntax:&lt;br /&gt;
 i32_t GFX_getAssetId(const char* spriteName)&lt;br /&gt;
&lt;br /&gt;
Description:&lt;br /&gt;
: Get an image ID by the filename.&lt;br /&gt;
: Usually an application uses image IDs to draw sprites and backgrounds. But&lt;br /&gt;
: sometimes IDs are unknown, e.g. in common libraries, or they change rapidly&lt;br /&gt;
: during development. This interface can be used to get an ID of the image by&lt;br /&gt;
: its filename in the runtime. Maximum asset name length is 15 characters,&lt;br /&gt;
: remaining symbols are truncated during lookup.&lt;br /&gt;
&lt;br /&gt;
Return values:&lt;br /&gt;
: The ID of image with a given filename or -1 in case of error.&lt;br /&gt;
&lt;br /&gt;
History:&lt;br /&gt;
: v5.0 - renamed from GFX_getId() to GFX_getAssetId()&lt;br /&gt;
: v6.0 - truncate asset name in WASM API&lt;br /&gt;
&lt;br /&gt;
===GFX_clear===&lt;br /&gt;
Syntax:&lt;br /&gt;
 i32_t GFX_clear(u32_t color)&lt;br /&gt;
&lt;br /&gt;
Description:&lt;br /&gt;
: Clear a layer with a given color.&lt;br /&gt;
&lt;br /&gt;
History:&lt;br /&gt;
: v6.0 - changed color format&lt;br /&gt;
&lt;br /&gt;
===GFX_drawText===&lt;br /&gt;
Syntax:&lt;br /&gt;
 i32_t GFX_drawText(i32_t x, i32_t y, u32_t scale, u32_t angle, u32_t align, u32_t color, const char* text)&lt;br /&gt;
&lt;br /&gt;
Description:&lt;br /&gt;
: Draw a formatted text by the specified coordinates with a given color,&lt;br /&gt;
: scale, text align and a rotation angle.&lt;br /&gt;
&lt;br /&gt;
History:&lt;br /&gt;
: v5.0 - clarified documentation, added GFX_drawTextXY() alias&lt;br /&gt;
&lt;br /&gt;
===GFX_drawPoint===&lt;br /&gt;
Syntax:&lt;br /&gt;
 i32_t GFX_drawPoint(i32_t x, i32_t y, u32_t color)&lt;br /&gt;
&lt;br /&gt;
Description:&lt;br /&gt;
: Draw a point specified by its coordinates with a given color.&lt;br /&gt;
&lt;br /&gt;
History:&lt;br /&gt;
: v5.0 - added GFX_drawPointXY() alias&lt;br /&gt;
&lt;br /&gt;
===GFX_drawCircle===&lt;br /&gt;
Syntax:&lt;br /&gt;
 i32_t GFX_drawCircle(u32_t x, u32_t y, u32_t radius, u32_t width, u32_t color)&lt;br /&gt;
&lt;br /&gt;
Description:&lt;br /&gt;
: Draw a circle at the given point with given radius, color and line width.&lt;br /&gt;
&lt;br /&gt;
History:&lt;br /&gt;
: v5.0 - added GFX_drawCircleXY() alias&lt;br /&gt;
&lt;br /&gt;
===GFX_drawSolidCircle===&lt;br /&gt;
:'''Deprecated.''' use fill shader intead&lt;br /&gt;
Syntax:&lt;br /&gt;
 i32_t GFX_drawSolidCircle(u32_t x, u32_t y, u32_t radius, u32_t color)&lt;br /&gt;
&lt;br /&gt;
Description:&lt;br /&gt;
: Draw a solid circle at the given point with given radius and color.&lt;br /&gt;
&lt;br /&gt;
History:&lt;br /&gt;
: v5.0 - added GFX_drawSolidCircleXY() alias&lt;br /&gt;
: v6.0 - DEPRECATED, use GFX_setFillShader() instead&lt;br /&gt;
&lt;br /&gt;
===GFX_drawArc===&lt;br /&gt;
Syntax:&lt;br /&gt;
 i32_t GFX_drawArc(i32_t x, i32_t y, u32_t radius, u32_t width, u32_t angle0, u32_t angle1, u32_t color)&lt;br /&gt;
&lt;br /&gt;
Description:&lt;br /&gt;
: Draw an arc at the given point with given radius, line width, color and&lt;br /&gt;
: angles.&lt;br /&gt;
&lt;br /&gt;
History:&lt;br /&gt;
: v5.0 - added GFX_drawArcXY() alias&lt;br /&gt;
&lt;br /&gt;
===GFX_drawSector===&lt;br /&gt;
Syntax:&lt;br /&gt;
 i32_t GFX_drawSector(i32_t x, i32_t y, u32_t radius, u32_t angle0, u32_t angle1, u32_t color)&lt;br /&gt;
&lt;br /&gt;
Description:&lt;br /&gt;
: Draw a filled circular sector, connecting the arc to the circle's center&lt;br /&gt;
: like a piece of pie.&lt;br /&gt;
&lt;br /&gt;
History:&lt;br /&gt;
: v5.1 - created&lt;br /&gt;
&lt;br /&gt;
===GFX_drawLine===&lt;br /&gt;
Syntax:&lt;br /&gt;
 i32_t GFX_drawLine(i32_t x0, i32_t y0, i32_t x1, i32_t y1, u32_t thickness, u32_t color)&lt;br /&gt;
&lt;br /&gt;
Description:&lt;br /&gt;
: Draw a line with from a given point to another one and given width and&lt;br /&gt;
: color.&lt;br /&gt;
&lt;br /&gt;
History:&lt;br /&gt;
: v5.0 - added GFX_drawLineXY() alias&lt;br /&gt;
&lt;br /&gt;
===GFX_drawRectangle===&lt;br /&gt;
Syntax:&lt;br /&gt;
 i32_t GFX_drawRectangle(i32_t x, i32_t y, i32_t w, i32_t h, u32_t color)&lt;br /&gt;
&lt;br /&gt;
Description:&lt;br /&gt;
: Draw a solid rectangle at a given position with specified dimensions and a&lt;br /&gt;
: color.&lt;br /&gt;
&lt;br /&gt;
History:&lt;br /&gt;
: v5.0 - added GFX_drawRectangleXY() alias&lt;br /&gt;
&lt;br /&gt;
===GFX_bakeImage===&lt;br /&gt;
Syntax:&lt;br /&gt;
 i32_t GFX_bakeImage(spriteID_t id, u32_t width, u32_t height, GFX_PixelFormat_t format, u32_t overwrite)&lt;br /&gt;
&lt;br /&gt;
Description:&lt;br /&gt;
: Set an ID of a memory buffer to save next rendering result.&lt;br /&gt;
: Specifies the image that will be created by combining the group of&lt;br /&gt;
: graphical primitives used between GFX_bakeImage() and GFS_render()&lt;br /&gt;
: according their order and taking into account alpha channel in images. HW&lt;br /&gt;
: has a limitation and can combine no more than 4 layers simultaneously, so&lt;br /&gt;
: if there are more primitives then they will be combined in a cascade.&lt;br /&gt;
: Useful for creating complex images like backgrounds for later usage.&lt;br /&gt;
&lt;br /&gt;
History:&lt;br /&gt;
: v6.0 - added overwrite parameter&lt;br /&gt;
&lt;br /&gt;
===GFX_setRenderTarget===&lt;br /&gt;
Syntax:&lt;br /&gt;
 i32_t GFX_setRenderTarget(u32_t display)&lt;br /&gt;
&lt;br /&gt;
Description:&lt;br /&gt;
: Set a screen which will be used to display next rendering result.&lt;br /&gt;
: Cube module is a special device which has 3 independent screens to display&lt;br /&gt;
: graphics. GFX_setRenderTarget() specifies a screen number which will be&lt;br /&gt;
: used to display a next rendering result. Graphics primitives used in&lt;br /&gt;
: between GFX_setRenderTarget() and GFX_render() calls will be combined&lt;br /&gt;
: together according their order and taking into account alpha channel in&lt;br /&gt;
: images. Resulting image will be immediately flushed onto the given screen.&lt;br /&gt;
: HW has a limitation and can combine no more than 4 layers simultaneously,&lt;br /&gt;
: so if there are more primitives then they will be combined in a cascade. To&lt;br /&gt;
: display anything on the screen GFX_setRenderTarget() has to be always&lt;br /&gt;
: called.&lt;br /&gt;
&lt;br /&gt;
History:&lt;br /&gt;
: v5.0 - renamed from GFX_updateDisplay() to GFX_setRenderTarget()&lt;br /&gt;
&lt;br /&gt;
===GFX_drawImage===&lt;br /&gt;
Syntax:&lt;br /&gt;
 i32_t GFX_drawImage(spriteID_t id, i32_t x, i32_t y, u32_t opacity, u32_t colorKey, u32_t scale_x, u32_t scale_y, u32_t angle, u32_t mirror)&lt;br /&gt;
&lt;br /&gt;
Description:&lt;br /&gt;
: Draw an image from application assets at a specified position and with&lt;br /&gt;
: given transformations.&lt;br /&gt;
&lt;br /&gt;
History:&lt;br /&gt;
: v5.0 - added GFX_drawImageXY() alias, color argument clarified&lt;br /&gt;
: v6.0 - added scale parameters&lt;br /&gt;
&lt;br /&gt;
===GFX_drawBakedImage===&lt;br /&gt;
Syntax:&lt;br /&gt;
 i32_t GFX_drawBakedImage(i32_t x, i32_t y, u32_t opacity, u32_t colorKey, u32_t scale_x, u32_t scale_y, u32_t angle, u32_t mirror, spriteID_t id)&lt;br /&gt;
&lt;br /&gt;
Description:&lt;br /&gt;
: Draw a previously baked image at a specified position and with given&lt;br /&gt;
: transformations.&lt;br /&gt;
&lt;br /&gt;
History:&lt;br /&gt;
: v5.0 - added GFX_drawBakedImageXY() alias, color argument clarified&lt;br /&gt;
: v6.0 - added scale parameters&lt;br /&gt;
&lt;br /&gt;
===GFX_drawQrCode===&lt;br /&gt;
Syntax:&lt;br /&gt;
 i32_t GFX_drawQRCode(i32_t x, i32_t y, u32_t size, u32_t color0, u32_t color1, u32_t angle, u32_t id, const char *text)&lt;br /&gt;
&lt;br /&gt;
Description:&lt;br /&gt;
: Generate and draw QR-code for a given text string.&lt;br /&gt;
: Supported version 2 which is limited by 32 characters of input.&lt;br /&gt;
&lt;br /&gt;
History:&lt;br /&gt;
: v6.0 - added&lt;br /&gt;
&lt;br /&gt;
===GFX_render===&lt;br /&gt;
Syntax:&lt;br /&gt;
 i32_t GFX_render()&lt;br /&gt;
&lt;br /&gt;
Description:&lt;br /&gt;
: Start rendering process.&lt;br /&gt;
&lt;br /&gt;
===GFX_clearCache===&lt;br /&gt;
Syntax:&lt;br /&gt;
 i32_t GFX_clearCache()&lt;br /&gt;
&lt;br /&gt;
Description:&lt;br /&gt;
: Clear all cached images.&lt;br /&gt;
: Oldest accessed image cache will be automatically freed if there is not&lt;br /&gt;
: enough memory to cache a new image. This function forces this process, e.g.&lt;br /&gt;
: when switch game levels.&lt;br /&gt;
&lt;br /&gt;
===GFX_removeBakedImage===&lt;br /&gt;
Syntax:&lt;br /&gt;
 i32_t GFX_removeBakedImage(spriteID_t id)&lt;br /&gt;
&lt;br /&gt;
Description:&lt;br /&gt;
: Remove specified baked image from cache.&lt;br /&gt;
: Baked images do not automatically invalidate. This function allows to&lt;br /&gt;
: remove any baked image from cache to save some space.&lt;br /&gt;
&lt;br /&gt;
History:&lt;br /&gt;
: v6.0 - added&lt;br /&gt;
&lt;br /&gt;
===GFX_cacheImages===&lt;br /&gt;
Syntax:&lt;br /&gt;
 i32_t GFX_cacheImages(spriteID_t* spriteIDs, u32_t count)&lt;br /&gt;
&lt;br /&gt;
Description:&lt;br /&gt;
: Force platform to cache application images.&lt;br /&gt;
: Platform automatically reads and caches images from flash when the&lt;br /&gt;
: application draws an image. Flash operations are synchronous and may cause&lt;br /&gt;
: delays especially when reading large portions of data. To prevent the&lt;br /&gt;
: application from lags it is possible to cache image data in advance.&lt;br /&gt;
: However if application requests to draw a non-cached image and there is not&lt;br /&gt;
: enough memory then oldest accessed images will be removed from cache. Also&lt;br /&gt;
: there is a limit of 256 for a total number of cached images.&lt;br /&gt;
&lt;br /&gt;
Return values:&lt;br /&gt;
: Number of cached images or negative value if an error happened. Error&lt;br /&gt;
: codes:&lt;br /&gt;
: * -1 invalid function arguments count&lt;br /&gt;
: * -2 invalid imageList array&lt;br /&gt;
&lt;br /&gt;
History:&lt;br /&gt;
: v5.0 - moved from appCtrl module to graphics&lt;br /&gt;
&lt;br /&gt;
===GFX_setFpsWindow===&lt;br /&gt;
Syntax:&lt;br /&gt;
 i32_t GFX_setFpsWindow(u32_t size)&lt;br /&gt;
&lt;br /&gt;
Description:&lt;br /&gt;
: Set the averaging window (in frames) used by the on-screen FPS counter (see &amp;lt;code&amp;gt;Application::ShowFPSCounter()&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
===GFX_getAssetsCount===&lt;br /&gt;
Syntax:&lt;br /&gt;
 i32_t GFX_getAssetsCount()&lt;br /&gt;
&lt;br /&gt;
Description:&lt;br /&gt;
: Get the total count of graphic assets.&lt;br /&gt;
&lt;br /&gt;
Return values:&lt;br /&gt;
: Number of graphic assets.&lt;br /&gt;
&lt;br /&gt;
History:&lt;br /&gt;
: v6.0 - added&lt;br /&gt;
&lt;br /&gt;
===GFX_setFillShader===&lt;br /&gt;
Syntax:&lt;br /&gt;
 i32_t GFX_setFillShader(u32_t color)&lt;br /&gt;
&lt;br /&gt;
Description:&lt;br /&gt;
: Fill next primitives with specified color.&lt;br /&gt;
&lt;br /&gt;
History:&lt;br /&gt;
: v6.0 - added primitives shading&lt;br /&gt;
&lt;br /&gt;
===GFX_setLinearGradientShader===&lt;br /&gt;
Syntax:&lt;br /&gt;
 i32_t GFX_setLinearGradientShader(u32_t x0, u32_t y0, u32_t x1, u32_t y1, u32_t color0, u32_t color1)&lt;br /&gt;
&lt;br /&gt;
Description:&lt;br /&gt;
: Fill next primitives with linear gradient from a given point / color to&lt;br /&gt;
: another one.&lt;br /&gt;
&lt;br /&gt;
History:&lt;br /&gt;
: v6.0 - added primitives shading&lt;br /&gt;
&lt;br /&gt;
===GFX_setRadialGradientShader===&lt;br /&gt;
Syntax:&lt;br /&gt;
 i32_t GFX_setRadialGradientShader(u32_t x0, u32_t y0, u32_t radius, u32_t color0, u32_t color1)&lt;br /&gt;
&lt;br /&gt;
Description:&lt;br /&gt;
: Fill next primitives with radial gradient from a given point with radius&lt;br /&gt;
: and from a given color to another one.&lt;br /&gt;
&lt;br /&gt;
History:&lt;br /&gt;
: v6.0 - added primitives shading&lt;br /&gt;
&lt;br /&gt;
===GFX_removeShader===&lt;br /&gt;
Syntax:&lt;br /&gt;
 i32_t GFX_removeShader()&lt;br /&gt;
&lt;br /&gt;
Description:&lt;br /&gt;
: Do not use shading in next primitives.&lt;br /&gt;
&lt;br /&gt;
History:&lt;br /&gt;
: v6.0 - added primitives shading&lt;br /&gt;
&lt;br /&gt;
===GFX_drawSubImage===&lt;br /&gt;
Syntax:&lt;br /&gt;
 i32_t GFX_drawSubImage(spriteID_t id,i32_t x,i32_t y,u32_t rect_x,u32_t rect_y,u32_t rect_w,u32_t rect_h,u32_t opacity,u32_t colorKey,u32_t scale_x, u32_t scale_y,u32_t angle, u32_t mirror)&lt;br /&gt;
&lt;br /&gt;
Description:&lt;br /&gt;
: Draw a sub window of an image from application assets at a specified&lt;br /&gt;
: position and with given transformations.&lt;br /&gt;
&lt;br /&gt;
History:&lt;br /&gt;
: v6.2 - added&lt;br /&gt;
&lt;br /&gt;
== Sound ==&lt;br /&gt;
&lt;br /&gt;
===SND_getAssetId===&lt;br /&gt;
Syntax:&lt;br /&gt;
 i32_t SND_getAssetId(const char* soundName)&lt;br /&gt;
&lt;br /&gt;
Description:&lt;br /&gt;
: Get a sound ID by the filename.&lt;br /&gt;
&lt;br /&gt;
Return values:&lt;br /&gt;
: The ID of sound with a given filename or -1 in case of error.&lt;br /&gt;
&lt;br /&gt;
History:&lt;br /&gt;
: v5.0 - renamed from SND_getId() to SND_getAssetId()&lt;br /&gt;
: v6.0 - truncate asset name in WASM API&lt;br /&gt;
&lt;br /&gt;
===SND_play===&lt;br /&gt;
Syntax:&lt;br /&gt;
 i32_t SND_play(soundID_t soundID, u32_t volume)&lt;br /&gt;
&lt;br /&gt;
Description:&lt;br /&gt;
: Play sound by ID.&lt;br /&gt;
: Play any sound by its ID. Platform does not support audio mixing, so&lt;br /&gt;
: previously playing sound will be stopped if it has not yet finished.&lt;br /&gt;
: Supported audio formats:&lt;br /&gt;
:* WAV&lt;br /&gt;
:* MP3&lt;br /&gt;
:* MIDI&lt;br /&gt;
&lt;br /&gt;
===SND_cacheSounds===&lt;br /&gt;
Syntax:&lt;br /&gt;
 i32_t SND_cacheSounds(soundID_t* soundIDs, u32_t count)&lt;br /&gt;
&lt;br /&gt;
Description:&lt;br /&gt;
: Force platform to cache application sounds.&lt;br /&gt;
: Platform automatically reads and caches sounds from flash when the&lt;br /&gt;
: application plays a sound. Flash operations are synchronous and may cause&lt;br /&gt;
: delays especially when reading large portions of data. To prevent the&lt;br /&gt;
: application from lags it is possible to cache sound data in advance.&lt;br /&gt;
: However if application requests to play a non-cached sound and there is not&lt;br /&gt;
: enough memory then oldest accessed sounds will be removed from cache. Also&lt;br /&gt;
: there is a limit of 256 for a total number of cached sounds.&lt;br /&gt;
&lt;br /&gt;
Return values:&lt;br /&gt;
: Number of cached sounds or negative value if an error happened. Error&lt;br /&gt;
: codes:&lt;br /&gt;
: * -1 invalid function arguments count&lt;br /&gt;
: * -2 invalid soundList array&lt;br /&gt;
&lt;br /&gt;
History:&lt;br /&gt;
: v5.0 - moved from appCtrl module to sound&lt;br /&gt;
&lt;br /&gt;
===SND_isPlaying===&lt;br /&gt;
Syntax:&lt;br /&gt;
 i32_t SND_isPlaying()&lt;br /&gt;
&lt;br /&gt;
Description:&lt;br /&gt;
: Check if audio is playing.&lt;br /&gt;
&lt;br /&gt;
Return values:&lt;br /&gt;
: True if audio is playing, false otherwise.&lt;br /&gt;
&lt;br /&gt;
History:&lt;br /&gt;
: v6.0 - added&lt;br /&gt;
&lt;br /&gt;
===SND_stop===&lt;br /&gt;
Syntax:&lt;br /&gt;
 i32_t SND_stop()&lt;br /&gt;
&lt;br /&gt;
Description:&lt;br /&gt;
: Stop playing sound if any.&lt;br /&gt;
&lt;br /&gt;
History:&lt;br /&gt;
: v6.0 - added&lt;br /&gt;
&lt;br /&gt;
===SND_getAssetsCount===&lt;br /&gt;
Syntax:&lt;br /&gt;
 i32_t SND_getAssetsCount()&lt;br /&gt;
&lt;br /&gt;
Description:&lt;br /&gt;
: Get the total count of sound assets.&lt;br /&gt;
&lt;br /&gt;
Return values:&lt;br /&gt;
: Number of sound assets.&lt;br /&gt;
&lt;br /&gt;
History:&lt;br /&gt;
: v6.0 - added&lt;br /&gt;
&lt;br /&gt;
[[Category:SDK 6.3]]&lt;br /&gt;
[[Category:C++ API]]&lt;/div&gt;</summary>
		<author><name>WowBot</name></author>
		
	</entry>
</feed>