<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.frictionalgames.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=0Dangel</id>
	<title>Frictional Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.frictionalgames.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=0Dangel"/>
	<link rel="alternate" type="text/html" href="https://wiki.frictionalgames.com/page/Special:Contributions/0Dangel"/>
	<updated>2026-04-24T17:21:47Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.34.2</generator>
	<entry>
		<id>https://wiki.frictionalgames.com/page?title=HPL3/SOMA/Scripting/Input_Types&amp;diff=6225</id>
		<title>HPL3/SOMA/Scripting/Input Types</title>
		<link rel="alternate" type="text/html" href="https://wiki.frictionalgames.com/page?title=HPL3/SOMA/Scripting/Input_Types&amp;diff=6225"/>
		<updated>2021-09-14T01:57:39Z</updated>

		<summary type="html">&lt;p&gt;0Dangel: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==What are Input types?==&lt;br /&gt;
Input types ''(InputHandler_types.hps)'' is a script consisting of two Shared '''Enum classes''' which can be considered as a list of possible actions.&lt;br /&gt;
&lt;br /&gt;
?&amp;lt;sub&amp;gt;Be sure to use them correctly as trying to add own Enum Class while trying to use them as a part of gameplay should not work.&amp;lt;/sub&amp;gt;?&lt;br /&gt;
&lt;br /&gt;
Names of these classes are somewhat self-explanatory:&lt;br /&gt;
&lt;br /&gt;
==eAction==&lt;br /&gt;
- Button-like action (fixed step)&lt;br /&gt;
&lt;br /&gt;
===Handler===&lt;br /&gt;
These interactions are directly handled by ''&amp;quot;OnAction ( alAction, abPressed )&amp;quot;''. However the game some of these actions later converts to Analog type and then handles just like [[HPL3/SOMA/Scripting/Input Types#eAnalogTypes|eAnalogTypes]]&lt;br /&gt;
&lt;br /&gt;
====Params:====&lt;br /&gt;
&lt;br /&gt;
=====(int)   alAction=====&lt;br /&gt;
&lt;br /&gt;
*Number representation &amp;lt;sub&amp;gt;(?of input type position?)&amp;lt;/sub&amp;gt; in eAction&lt;br /&gt;
**addressable using one of the '''eAction enum''' entries&lt;br /&gt;
&lt;br /&gt;
=====(bool)   abPressed=====&lt;br /&gt;
&lt;br /&gt;
*Has it been pressed?&lt;br /&gt;
&lt;br /&gt;
====Typical use====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c++&amp;quot;&amp;gt;&lt;br /&gt;
void OnAction(int alAction, bool abPressed)&lt;br /&gt;
	{	&lt;br /&gt;
		///////////////////////////////////&lt;br /&gt;
		// Flashlight&lt;br /&gt;
		if(abPressed &amp;amp;&amp;amp; alAction==eAction_Flashlight)&lt;br /&gt;
		{&lt;br /&gt;
			&lt;br /&gt;
			SetFlashlightOn(!mbFlashlightOn);&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;code that takes care of FlashLight. &amp;lt;u&amp;gt;(- script/player/Player.hps)&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==eAnalogTypes==&lt;br /&gt;
- Joystick-like action (Analog step)&lt;br /&gt;
&lt;br /&gt;
===Handler===&lt;br /&gt;
These are being handled by functions ''&amp;quot;OnAnalogInput ( alAnalogID, avAmount )&amp;quot;'' .&lt;br /&gt;
&lt;br /&gt;
====Params:====&lt;br /&gt;
&lt;br /&gt;
*(int)   alAnalogId&lt;br /&gt;
**number representation &amp;lt;sub&amp;gt;(?of input type position?)&amp;lt;/sub&amp;gt; in eAnalogTypes&lt;br /&gt;
***addressable using one of the '''eAnalogTypes enum''' entries&lt;br /&gt;
*(cVector3f)   avAmount&lt;br /&gt;
**3D vector &amp;lt;sub&amp;gt;(?Basket class?)&amp;lt;/sub&amp;gt; with parameters:&lt;br /&gt;
***X&lt;br /&gt;
***Y&lt;br /&gt;
***Z&lt;br /&gt;
**Values of [-1.0f ; 1.0f]&lt;br /&gt;
&lt;br /&gt;
====Typical use====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c++&amp;quot;&amp;gt;&lt;br /&gt;
	void OnAnalogInput(int alAnalogId, const cVector3f &amp;amp;in avAmount)&lt;br /&gt;
	{&lt;br /&gt;
         //....................&lt;br /&gt;
         //////////////////////&lt;br /&gt;
         // Move&lt;br /&gt;
         if(alAnalogId == eAnalogType_Move || alAnalogId == eAnalogType_GamepadMove)&lt;br /&gt;
		{&lt;br /&gt;
			iCharacterBody@ pCharBody = mBaseObj.GetCharacterBody();&lt;br /&gt;
			float fLength = avAmount.Length();&lt;br /&gt;
			&lt;br /&gt;
			if(fLength &amp;gt; 0.1f)&lt;br /&gt;
			{&lt;br /&gt;
				//////////////////////////////&lt;br /&gt;
				// Lean&lt;br /&gt;
				if(mbAnalogLeanPressed)&lt;br /&gt;
				{&lt;br /&gt;
					Lean(avAmount.x);		&lt;br /&gt;
				}&lt;br /&gt;
				//////////////////////////////&lt;br /&gt;
				// Movement&lt;br /&gt;
				else&lt;br /&gt;
				{&lt;br /&gt;
					if(cMath_Abs(avAmount.y) &amp;gt; 0.001f)&lt;br /&gt;
						pCharBody.Move(eCharDir_Forward, avAmount.y);&lt;br /&gt;
				&lt;br /&gt;
					if(cMath_Abs(avAmount.x) &amp;gt; 0.001f)&lt;br /&gt;
						pCharBody.Move(eCharDir_Right, avAmount.x);&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
         //....................&lt;br /&gt;
	}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Here you can see also already mentioned analog type ''(eAnalogType_Move)'' that was earlier sampled and quantized from ''eAction_Forward / _Backward / _Right / _Left'', by other script. &amp;lt;u&amp;gt;(- script/player/Player.hps)&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Uses==&lt;br /&gt;
This class could be considered a Weak Spot in case you ever wanted to do some new player implementations or to make your game controllable by virtually anything.&lt;br /&gt;
&lt;br /&gt;
With a slight combination of [[HPL3/SOMA/Scripting/Input Handler|Input Handler]] and [[HPL3/SOMA/Scripting/Player Overview|Player]] scripts even [https://youtu.be/ZS0fIS2qrSA implementing a Microphone is possible.]&lt;/div&gt;</summary>
		<author><name>0Dangel</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.frictionalgames.com/page?title=HPL3/SOMA/Scripting/Input_Types&amp;diff=6224</id>
		<title>HPL3/SOMA/Scripting/Input Types</title>
		<link rel="alternate" type="text/html" href="https://wiki.frictionalgames.com/page?title=HPL3/SOMA/Scripting/Input_Types&amp;diff=6224"/>
		<updated>2021-09-14T01:56:27Z</updated>

		<summary type="html">&lt;p&gt;0Dangel: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==What are Input types?==&lt;br /&gt;
Input types ''(InputHandler_types.hps)'' is a script consisting of two Shared '''Enum classes''' which can be considered as a list of possible actions.&lt;br /&gt;
&lt;br /&gt;
?&amp;lt;sub&amp;gt;Be sure to use them correctly as trying to add own Enum Class while trying to use them as a part of gameplay should not work.&amp;lt;/sub&amp;gt;?&lt;br /&gt;
&lt;br /&gt;
Names of these classes are somewhat self-explanatory:&lt;br /&gt;
&lt;br /&gt;
==eAction==&lt;br /&gt;
- Button-like action (fixed step)&lt;br /&gt;
&lt;br /&gt;
===Handler===&lt;br /&gt;
These interactions are directly handled by ''&amp;quot;OnAction ( alAction, abPressed )&amp;quot;''. However the game some of these actions later converts to Analog type and then handles just like [[HPL3/SOMA/Scripting/Input Types#eAnalogTypes|eAnalogTypes]]&lt;br /&gt;
&lt;br /&gt;
====Params:====&lt;br /&gt;
&lt;br /&gt;
=====(int)   alAction=====&lt;br /&gt;
&lt;br /&gt;
*Number representation &amp;lt;sub&amp;gt;(?of input type position?)&amp;lt;/sub&amp;gt; in eAction&lt;br /&gt;
**addressable using one of the '''eAction enum''' entries&lt;br /&gt;
&lt;br /&gt;
=====(bool)   abPressed=====&lt;br /&gt;
&lt;br /&gt;
*Has it been pressed?&lt;br /&gt;
&lt;br /&gt;
====Typical use====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c++&amp;quot;&amp;gt;&lt;br /&gt;
void OnAction(int alAction, bool abPressed)&lt;br /&gt;
	{	&lt;br /&gt;
		///////////////////////////////////&lt;br /&gt;
		// Flashlight&lt;br /&gt;
		if(abPressed &amp;amp;&amp;amp; alAction==eAction_Flashlight)&lt;br /&gt;
		{&lt;br /&gt;
			&lt;br /&gt;
			SetFlashlightOn(!mbFlashlightOn);&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;code that takes care of FlashLight. &amp;lt;u&amp;gt;(- script/player/Player.hps)&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==eAnalogTypes==&lt;br /&gt;
- Joystick-like action (Analog step)&lt;br /&gt;
&lt;br /&gt;
===Handler===&lt;br /&gt;
These are being handled by functions ''&amp;quot;OnAnalogInput ( alAnalogID, avAmount )&amp;quot;'' .&lt;br /&gt;
&lt;br /&gt;
====Params:====&lt;br /&gt;
&lt;br /&gt;
*(int)   alAnalogId&lt;br /&gt;
**number representation &amp;lt;sub&amp;gt;(?of input type position?)&amp;lt;/sub&amp;gt; in eAnalogTypes&lt;br /&gt;
***addressable using one of the '''eAnalogTypes enum''' entries&lt;br /&gt;
*(cVector3f)   avAmount&lt;br /&gt;
**3D vector &amp;lt;sub&amp;gt;(?Basket class?)&amp;lt;/sub&amp;gt; with parameters:&lt;br /&gt;
***X&lt;br /&gt;
***Y&lt;br /&gt;
***Z&lt;br /&gt;
**Values of [-1.0f ; 1.0f]&lt;br /&gt;
&lt;br /&gt;
====Typical use====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c++&amp;quot;&amp;gt;&lt;br /&gt;
	void OnAnalogInput(int alAnalogId, const cVector3f &amp;amp;in avAmount)&lt;br /&gt;
	{&lt;br /&gt;
         //....................&lt;br /&gt;
         //////////////////////&lt;br /&gt;
         // Move&lt;br /&gt;
         if(alAnalogId == eAnalogType_Move || alAnalogId == eAnalogType_GamepadMove)&lt;br /&gt;
		{&lt;br /&gt;
			iCharacterBody@ pCharBody = mBaseObj.GetCharacterBody();&lt;br /&gt;
			float fLength = avAmount.Length();&lt;br /&gt;
			&lt;br /&gt;
			if(fLength &amp;gt; 0.1f)&lt;br /&gt;
			{&lt;br /&gt;
				//////////////////////////////&lt;br /&gt;
				// Lean&lt;br /&gt;
				if(mbAnalogLeanPressed)&lt;br /&gt;
				{&lt;br /&gt;
					Lean(avAmount.x);		&lt;br /&gt;
				}&lt;br /&gt;
				//////////////////////////////&lt;br /&gt;
				// Movement&lt;br /&gt;
				else&lt;br /&gt;
				{&lt;br /&gt;
					if(cMath_Abs(avAmount.y) &amp;gt; 0.001f)&lt;br /&gt;
						pCharBody.Move(eCharDir_Forward, avAmount.y);&lt;br /&gt;
				&lt;br /&gt;
					if(cMath_Abs(avAmount.x) &amp;gt; 0.001f)&lt;br /&gt;
						pCharBody.Move(eCharDir_Right, avAmount.x);&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
         //....................&lt;br /&gt;
	}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Here you can see also already mentioned analog type ''(eAnalogType_Move)'' that was earlier sampled and quantized from ''eAction_Forward / _Backward / _Right / _Left'', by other script. &amp;lt;u&amp;gt;(- script/player/Player.hps)&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Uses==&lt;br /&gt;
This class could be considered a Weak Spot in case you ever wanted to do some new player implementations or to make your game controllable by virtually anything.&lt;br /&gt;
&lt;br /&gt;
With a slight combination of [[Input Handler]] and [[Player Overview|Player]] scripts even [https://youtu.be/ZS0fIS2qrSA implementing a Microphone is possible.]&lt;/div&gt;</summary>
		<author><name>0Dangel</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.frictionalgames.com/page?title=HPL3/SOMA/Scripting/Input_Types&amp;diff=6223</id>
		<title>HPL3/SOMA/Scripting/Input Types</title>
		<link rel="alternate" type="text/html" href="https://wiki.frictionalgames.com/page?title=HPL3/SOMA/Scripting/Input_Types&amp;diff=6223"/>
		<updated>2021-09-14T01:54:33Z</updated>

		<summary type="html">&lt;p&gt;0Dangel: Possible mod uses (&amp;quot;why should I care&amp;quot;) section added&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==What are Input types?==&lt;br /&gt;
Input types ''(InputHandler_types.hps)'' is a script consisting of two Shared '''Enum classes''' which can be considered as a list of possible actions.&lt;br /&gt;
&lt;br /&gt;
?&amp;lt;sub&amp;gt;Be sure to use them correctly as trying to add own Enum Class while trying to use them as a part of gameplay should not work.&amp;lt;/sub&amp;gt;?&lt;br /&gt;
&lt;br /&gt;
Names of these classes are somewhat self-explanatory:&lt;br /&gt;
&lt;br /&gt;
==eAction==&lt;br /&gt;
- Button-like action (fixed step)&lt;br /&gt;
&lt;br /&gt;
===Handler===&lt;br /&gt;
These interactions are directly handled by ''&amp;quot;OnAction ( alAction, abPressed )&amp;quot;''. However the game some of these actions later converts to Analog type and then handles just like [[Input Types#eAnalogTypes|eAnalogTypes]]&lt;br /&gt;
&lt;br /&gt;
====Params:====&lt;br /&gt;
&lt;br /&gt;
=====(int)   alAction=====&lt;br /&gt;
&lt;br /&gt;
*Number representation &amp;lt;sub&amp;gt;(?of input type position?)&amp;lt;/sub&amp;gt; in eAction&lt;br /&gt;
**addressable using one of the '''eAction enum''' entries&lt;br /&gt;
&lt;br /&gt;
=====(bool)   abPressed=====&lt;br /&gt;
&lt;br /&gt;
*Has it been pressed?&lt;br /&gt;
&lt;br /&gt;
====Typical use====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c++&amp;quot;&amp;gt;&lt;br /&gt;
void OnAction(int alAction, bool abPressed)&lt;br /&gt;
	{	&lt;br /&gt;
		///////////////////////////////////&lt;br /&gt;
		// Flashlight&lt;br /&gt;
		if(abPressed &amp;amp;&amp;amp; alAction==eAction_Flashlight)&lt;br /&gt;
		{&lt;br /&gt;
			&lt;br /&gt;
			SetFlashlightOn(!mbFlashlightOn);&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;code that takes care of FlashLight. &amp;lt;u&amp;gt;(- script/player/Player.hps)&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==eAnalogTypes==&lt;br /&gt;
- Joystick-like action (Analog step)&lt;br /&gt;
&lt;br /&gt;
===Handler===&lt;br /&gt;
These are being handled by functions ''&amp;quot;OnAnalogInput ( alAnalogID, avAmount )&amp;quot;'' .&lt;br /&gt;
&lt;br /&gt;
====Params:====&lt;br /&gt;
&lt;br /&gt;
*(int)   alAnalogId&lt;br /&gt;
**number representation &amp;lt;sub&amp;gt;(?of input type position?)&amp;lt;/sub&amp;gt; in eAnalogTypes&lt;br /&gt;
***addressable using one of the '''eAnalogTypes enum''' entries&lt;br /&gt;
*(cVector3f)   avAmount&lt;br /&gt;
**3D vector &amp;lt;sub&amp;gt;(?Basket class?)&amp;lt;/sub&amp;gt; with parameters:&lt;br /&gt;
***X&lt;br /&gt;
***Y&lt;br /&gt;
***Z&lt;br /&gt;
**Values of [-1.0f ; 1.0f]&lt;br /&gt;
&lt;br /&gt;
====Typical use====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c++&amp;quot;&amp;gt;&lt;br /&gt;
	void OnAnalogInput(int alAnalogId, const cVector3f &amp;amp;in avAmount)&lt;br /&gt;
	{&lt;br /&gt;
         //....................&lt;br /&gt;
         //////////////////////&lt;br /&gt;
         // Move&lt;br /&gt;
         if(alAnalogId == eAnalogType_Move || alAnalogId == eAnalogType_GamepadMove)&lt;br /&gt;
		{&lt;br /&gt;
			iCharacterBody@ pCharBody = mBaseObj.GetCharacterBody();&lt;br /&gt;
			float fLength = avAmount.Length();&lt;br /&gt;
			&lt;br /&gt;
			if(fLength &amp;gt; 0.1f)&lt;br /&gt;
			{&lt;br /&gt;
				//////////////////////////////&lt;br /&gt;
				// Lean&lt;br /&gt;
				if(mbAnalogLeanPressed)&lt;br /&gt;
				{&lt;br /&gt;
					Lean(avAmount.x);		&lt;br /&gt;
				}&lt;br /&gt;
				//////////////////////////////&lt;br /&gt;
				// Movement&lt;br /&gt;
				else&lt;br /&gt;
				{&lt;br /&gt;
					if(cMath_Abs(avAmount.y) &amp;gt; 0.001f)&lt;br /&gt;
						pCharBody.Move(eCharDir_Forward, avAmount.y);&lt;br /&gt;
				&lt;br /&gt;
					if(cMath_Abs(avAmount.x) &amp;gt; 0.001f)&lt;br /&gt;
						pCharBody.Move(eCharDir_Right, avAmount.x);&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
         //....................&lt;br /&gt;
	}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Here you can see also already mentioned analog type ''(eAnalogType_Move)'' that was earlier sampled and quantized from ''eAction_Forward / _Backward / _Right / _Left'', by other script. &amp;lt;u&amp;gt;(- script/player/Player.hps)&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Uses ==&lt;br /&gt;
This class could be considered a Weak Spot in case you ever wanted to do some new player implementations or to make your game controllable by virtually anything.&lt;br /&gt;
&lt;br /&gt;
With a slight combination of [[Input Handler]] and [[Player Overview|Player]] scripts even [https://youtu.be/ZS0fIS2qrSA implementing a Microphone is possible.]&lt;/div&gt;</summary>
		<author><name>0Dangel</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.frictionalgames.com/page?title=HPL3/SOMA/Scripting/Input_Types&amp;diff=6222</id>
		<title>HPL3/SOMA/Scripting/Input Types</title>
		<link rel="alternate" type="text/html" href="https://wiki.frictionalgames.com/page?title=HPL3/SOMA/Scripting/Input_Types&amp;diff=6222"/>
		<updated>2021-09-14T01:48:04Z</updated>

		<summary type="html">&lt;p&gt;0Dangel: Rough outline of InputHandler_types script&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== What are Input types? ==&lt;br /&gt;
Input types ''(InputHandler_types.hps)'' is a script consisting of two Shared '''Enum classes''' which can be considered as a list of possible actions.&lt;br /&gt;
&lt;br /&gt;
?&amp;lt;sub&amp;gt;Be sure to use them correctly as trying to add own Enum Class while trying to use them as a part of gameplay should not work.&amp;lt;/sub&amp;gt;?&lt;br /&gt;
&lt;br /&gt;
Names of these classes are somewhat self-explanatory:&lt;br /&gt;
&lt;br /&gt;
== eAction ==&lt;br /&gt;
- Button-like action (fixed step)&lt;br /&gt;
&lt;br /&gt;
=== Handler ===&lt;br /&gt;
These interactions are directly handled by ''&amp;quot;OnAction ( alAction, abPressed )&amp;quot;''. However the game some of these actions later converts to Analog type and then handles just like [[Input Types#eAnalogTypes|eAnalogTypes]]&lt;br /&gt;
&lt;br /&gt;
==== Params: ====&lt;br /&gt;
&lt;br /&gt;
===== (int)   alAction =====&lt;br /&gt;
&lt;br /&gt;
* Number representation &amp;lt;sub&amp;gt;(?of input type position?)&amp;lt;/sub&amp;gt; in eAction&lt;br /&gt;
** addressable using one of the '''eAction enum''' entries&lt;br /&gt;
&lt;br /&gt;
===== (bool)   abPressed =====&lt;br /&gt;
&lt;br /&gt;
* Has it been pressed?&lt;br /&gt;
&lt;br /&gt;
==== Typical use ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c++&amp;quot;&amp;gt;&lt;br /&gt;
void OnAction(int alAction, bool abPressed)&lt;br /&gt;
	{	&lt;br /&gt;
		///////////////////////////////////&lt;br /&gt;
		// Flashlight&lt;br /&gt;
		if(abPressed &amp;amp;&amp;amp; alAction==eAction_Flashlight)&lt;br /&gt;
		{&lt;br /&gt;
			&lt;br /&gt;
			SetFlashlightOn(!mbFlashlightOn);&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;code that takes care of FlashLight. &amp;lt;u&amp;gt;(- script/player/Player.hps)&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== eAnalogTypes ==&lt;br /&gt;
- Joystick-like action (Analog step)&lt;br /&gt;
&lt;br /&gt;
=== Handler ===&lt;br /&gt;
These are being handled by functions ''&amp;quot;OnAnalogInput ( alAnalogID, avAmount )&amp;quot;'' .&lt;br /&gt;
&lt;br /&gt;
==== Params: ====&lt;br /&gt;
&lt;br /&gt;
* (int)   alAnalogId&lt;br /&gt;
** number representation &amp;lt;sub&amp;gt;(?of input type position?)&amp;lt;/sub&amp;gt; in eAnalogTypes&lt;br /&gt;
*** addressable using one of the '''eAnalogTypes enum''' entries&lt;br /&gt;
* (cVector3f)   avAmount&lt;br /&gt;
** 3D vector &amp;lt;sub&amp;gt;(?Basket class?)&amp;lt;/sub&amp;gt; with parameters:&lt;br /&gt;
*** X&lt;br /&gt;
*** Y&lt;br /&gt;
*** Z&lt;br /&gt;
** Values of [-1.0f ; 1.0f]&lt;br /&gt;
&lt;br /&gt;
==== Typical use ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c++&amp;quot;&amp;gt;&lt;br /&gt;
	void OnAnalogInput(int alAnalogId, const cVector3f &amp;amp;in avAmount)&lt;br /&gt;
	{&lt;br /&gt;
         //....................&lt;br /&gt;
         //////////////////////&lt;br /&gt;
         // Move&lt;br /&gt;
         if(alAnalogId == eAnalogType_Move || alAnalogId == eAnalogType_GamepadMove)&lt;br /&gt;
		{&lt;br /&gt;
			iCharacterBody@ pCharBody = mBaseObj.GetCharacterBody();&lt;br /&gt;
			float fLength = avAmount.Length();&lt;br /&gt;
			&lt;br /&gt;
			if(fLength &amp;gt; 0.1f)&lt;br /&gt;
			{&lt;br /&gt;
				//////////////////////////////&lt;br /&gt;
				// Lean&lt;br /&gt;
				if(mbAnalogLeanPressed)&lt;br /&gt;
				{&lt;br /&gt;
					Lean(avAmount.x);		&lt;br /&gt;
				}&lt;br /&gt;
				//////////////////////////////&lt;br /&gt;
				// Movement&lt;br /&gt;
				else&lt;br /&gt;
				{&lt;br /&gt;
					if(cMath_Abs(avAmount.y) &amp;gt; 0.001f)&lt;br /&gt;
						pCharBody.Move(eCharDir_Forward, avAmount.y);&lt;br /&gt;
				&lt;br /&gt;
					if(cMath_Abs(avAmount.x) &amp;gt; 0.001f)&lt;br /&gt;
						pCharBody.Move(eCharDir_Right, avAmount.x);&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
         //....................&lt;br /&gt;
	}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Here you can see also already mentioned analog type ''(eAnalogType_Move)'' that was earlier sampled and quantized from ''eAction_Forward / _Backward / _Right / _Left'', by other script. &amp;lt;u&amp;gt;(- script/player/Player.hps)&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''Weakspot''&lt;br /&gt;
&lt;br /&gt;
''This is your weakspot in case you want to control the game using almost anything imaginable. Only thing needed is an Controller emulator that translates''&lt;/div&gt;</summary>
		<author><name>0Dangel</name></author>
		
	</entry>
</feed>