<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-GB">
	<id>https://wiki.splashdamage.com/index.php?action=history&amp;feed=atom&amp;title=Script%3AFiles%3Ascript%2Fvehicles%2Fcockpits%2Fplatypus.script</id>
	<title>Script:Files:script/vehicles/cockpits/platypus.script - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.splashdamage.com/index.php?action=history&amp;feed=atom&amp;title=Script%3AFiles%3Ascript%2Fvehicles%2Fcockpits%2Fplatypus.script"/>
	<link rel="alternate" type="text/html" href="https://wiki.splashdamage.com/index.php?title=Script:Files:script/vehicles/cockpits/platypus.script&amp;action=history"/>
	<updated>2026-04-08T00:00:23Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.31.0</generator>
	<entry>
		<id>https://wiki.splashdamage.com/index.php?title=Script:Files:script/vehicles/cockpits/platypus.script&amp;diff=1861&amp;oldid=prev</id>
		<title>Wizz at 10:05, 5 November 2007</title>
		<link rel="alternate" type="text/html" href="https://wiki.splashdamage.com/index.php?title=Script:Files:script/vehicles/cockpits/platypus.script&amp;diff=1861&amp;oldid=prev"/>
		<updated>2007-11-05T10:05:56Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt; &lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;// LEGS = left arm&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;// HEAD = right arm&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;object&amp;lt;/span&amp;gt; [[ScriptClass:vehicle_platypus_cockpit|vehicle_platypus_cockpit]] : [[ScriptClass:vehicle_basic_cockpit|vehicle_basic_cockpit]] {&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;void&amp;lt;/span&amp;gt;                preinit();&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;void&amp;lt;/span&amp;gt;                destroy();&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;void&amp;lt;/span&amp;gt;                AnimThread();&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;void&amp;lt;/span&amp;gt;                OnEntered();&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;float&amp;lt;/span&amp;gt;                HideSurface( &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;string&amp;lt;/span&amp;gt; surfaceName );&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;void&amp;lt;/span&amp;gt;                ShowSurface( &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;float&amp;lt;/span&amp;gt; id );&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;string&amp;lt;/span&amp;gt;                wheelAnim;&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;string&amp;lt;/span&amp;gt;                leverAnim;&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;float&amp;lt;/span&amp;gt;                wheelAnimFrames;&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;float&amp;lt;/span&amp;gt;                wheelAnimFramesMiddle;&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;float&amp;lt;/span&amp;gt;                leverAnimFrames;&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;float&amp;lt;/span&amp;gt;                leverAnimFrameMiddle;&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;float&amp;lt;/span&amp;gt;                surfaceId0;&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;float&amp;lt;/span&amp;gt;                surfaceId1;&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;float&amp;lt;/span&amp;gt;                surfaceId2;&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;float&amp;lt;/span&amp;gt;                surfaceId3;&lt;br /&gt;
 };&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;void&amp;lt;/span&amp;gt; [[ScriptClass:vehicle_platypus_cockpit|vehicle_platypus_cockpit]]::preinit() {&lt;br /&gt;
     surfaceId0 = -1;&lt;br /&gt;
     surfaceId1 = -1;&lt;br /&gt;
     surfaceId2 = -1;&lt;br /&gt;
     surfaceId3 = -1;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;void&amp;lt;/span&amp;gt; [[ScriptClass:vehicle_platypus_cockpit|vehicle_platypus_cockpit]]::destroy() {&lt;br /&gt;
     ShowSurface( surfaceId0 );&lt;br /&gt;
     ShowSurface( surfaceId1 );&lt;br /&gt;
     ShowSurface( surfaceId2 );&lt;br /&gt;
     ShowSurface( surfaceId3 );&lt;br /&gt;
 &lt;br /&gt;
     sys.[[ScriptEvent:killThread|killThread]]( &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;&amp;quot;vehicle_platypus_cockpit::AnimThread&amp;quot;&amp;lt;/span&amp;gt; );&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;void&amp;lt;/span&amp;gt; [[ScriptClass:vehicle_platypus_cockpit|vehicle_platypus_cockpit]]::OnEntered() {    &lt;br /&gt;
     wheelAnim                = &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;&amp;quot;left_to_right&amp;quot;&amp;lt;/span&amp;gt;;&lt;br /&gt;
     leverAnim                = &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;&amp;quot;reverse_to_forward&amp;quot;&amp;lt;/span&amp;gt;;&lt;br /&gt;
 &lt;br /&gt;
     wheelAnimFrames            = [[ScriptEvent:getNumFrames|getNumFrames]]( wheelAnim ) - 2;&lt;br /&gt;
     wheelAnimFramesMiddle    = wheelAnimFrames / 2;&lt;br /&gt;
 &lt;br /&gt;
     leverAnimFrames            = [[ScriptEvent:getNumFrames|getNumFrames]]( leverAnim ) - 2;&lt;br /&gt;
     leverAnimFrameMiddle    = leverAnimFrames / 2;&lt;br /&gt;
 &lt;br /&gt;
     surfaceId0 = HideSurface( [[ScriptEvent:getKey|getKey]]( &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;&amp;quot;surface_name0&amp;quot;&amp;lt;/span&amp;gt; ) );&lt;br /&gt;
     surfaceId1 = HideSurface( [[ScriptEvent:getKey|getKey]]( &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;&amp;quot;surface_name1&amp;quot;&amp;lt;/span&amp;gt; ) );&lt;br /&gt;
     surfaceId2 = HideSurface( [[ScriptEvent:getKey|getKey]]( &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;&amp;quot;surface_name2&amp;quot;&amp;lt;/span&amp;gt; ) );&lt;br /&gt;
     surfaceId3 = HideSurface( [[ScriptEvent:getKey|getKey]]( &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;&amp;quot;surface_name3&amp;quot;&amp;lt;/span&amp;gt; ) );&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;thread&amp;lt;/span&amp;gt; AnimThread();&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;void&amp;lt;/span&amp;gt; [[ScriptClass:vehicle_platypus_cockpit|vehicle_platypus_cockpit]]::AnimThread() {&lt;br /&gt;
     sys.[[ScriptEvent:threadName|threadName]]( &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;&amp;quot;vehicle_platypus_cockpit::AnimThread&amp;quot;&amp;lt;/span&amp;gt; );&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;float&amp;lt;/span&amp;gt; length = &lt;br /&gt;
     [[ScriptEvent:playAnim|playAnim]]( ANIMCHANNEL_LEGS, &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;&amp;quot;into&amp;quot;&amp;lt;/span&amp;gt; );&lt;br /&gt;
     [[ScriptEvent:playAnim|playAnim]]( ANIMCHANNEL_HEAD, &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;&amp;quot;into&amp;quot;&amp;lt;/span&amp;gt; );&lt;br /&gt;
 &lt;br /&gt;
     sys.[[ScriptEvent:wait|wait]]( length );&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;float&amp;lt;/span&amp;gt; wheelAngle = 0.f;&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;float&amp;lt;/span&amp;gt; leverAngle = 0.f;&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;while&amp;lt;/span&amp;gt; ( true ) {&lt;br /&gt;
         &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;entity&amp;lt;/span&amp;gt; driver = myVehicle.[[ScriptEvent:getDriver|getDriver]]();&lt;br /&gt;
 &lt;br /&gt;
         &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;vector&amp;lt;/span&amp;gt; move;&lt;br /&gt;
         &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( driver != &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;$null_entity&amp;lt;/span&amp;gt; ) {&lt;br /&gt;
             move = driver.[[ScriptEvent:getMove|getMove]]();&lt;br /&gt;
         } &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;else&amp;lt;/span&amp;gt; {&lt;br /&gt;
             move = '0 0 0';&lt;br /&gt;
         }&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
         &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;float&amp;lt;/span&amp;gt; oldWheelAngle = wheelAngle;&lt;br /&gt;
 &lt;br /&gt;
         &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( move_y &amp;lt; 0 ) {&lt;br /&gt;
             wheelAngle = wheelAngle - 1.f * sys.[[ScriptEvent:getFrameTime|getFrameTime]]();&lt;br /&gt;
             &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( wheelAngle &amp;lt; -1.f ) {&lt;br /&gt;
                 wheelAngle = -1.f;&lt;br /&gt;
             }&lt;br /&gt;
         } &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;else&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( move_y &amp;gt; 0 ) {&lt;br /&gt;
             wheelAngle = wheelAngle + 1.f * sys.[[ScriptEvent:getFrameTime|getFrameTime]]();&lt;br /&gt;
             &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( wheelAngle &amp;gt; 1.f ) {&lt;br /&gt;
                 wheelAngle = 1.f;&lt;br /&gt;
             }&lt;br /&gt;
         } &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;else&amp;lt;/span&amp;gt; {&lt;br /&gt;
             &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( wheelAngle &amp;gt; 0.f ) {&lt;br /&gt;
                 wheelAngle = wheelAngle - 0.8 * sys.[[ScriptEvent:getFrameTime|getFrameTime]]();&lt;br /&gt;
                 &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( wheelAngle &amp;lt; 0.f ) {&lt;br /&gt;
                     wheelAngle = 0.f;&lt;br /&gt;
                 }&lt;br /&gt;
             } &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;else&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( wheelAngle &amp;lt; 0.f ) {&lt;br /&gt;
                 wheelAngle = wheelAngle + 0.8 * sys.[[ScriptEvent:getFrameTime|getFrameTime]]();&lt;br /&gt;
                 &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( wheelAngle &amp;gt; 0.f ) {&lt;br /&gt;
                     wheelAngle = 0.f;&lt;br /&gt;
                 }&lt;br /&gt;
             }&lt;br /&gt;
         }&lt;br /&gt;
 &lt;br /&gt;
         &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( oldWheelAngle != wheelAngle ) {&lt;br /&gt;
             [[ScriptEvent:setAnimFrame|setAnimFrame]]( wheelAnim, ANIMCHANNEL_LEGS, ( 1 + wheelAngle ) * wheelAnimFramesMiddle );&lt;br /&gt;
         }&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
         &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;float&amp;lt;/span&amp;gt; oldLeverAngle = leverAngle;&lt;br /&gt;
 &lt;br /&gt;
         &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( move_x &amp;lt; 0 ) {&lt;br /&gt;
             leverAngle = leverAngle - 2.f * sys.[[ScriptEvent:getFrameTime|getFrameTime]]();&lt;br /&gt;
             &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( leverAngle &amp;lt; -1.f ) {&lt;br /&gt;
                 leverAngle = -1.f;&lt;br /&gt;
             }&lt;br /&gt;
         } &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;else&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( move_x &amp;gt; 0 ) {&lt;br /&gt;
             leverAngle = leverAngle + 2.f * sys.[[ScriptEvent:getFrameTime|getFrameTime]]();&lt;br /&gt;
             &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( leverAngle &amp;gt; 1.f ) {&lt;br /&gt;
                 leverAngle = 1.f;&lt;br /&gt;
             }&lt;br /&gt;
         } &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;else&amp;lt;/span&amp;gt; {&lt;br /&gt;
             &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( leverAngle &amp;gt; 0.f ) {&lt;br /&gt;
                 leverAngle = leverAngle - 1.8 * sys.[[ScriptEvent:getFrameTime|getFrameTime]]();&lt;br /&gt;
                 &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( leverAngle &amp;lt; 0.f ) {&lt;br /&gt;
                     leverAngle = 0.f;&lt;br /&gt;
                 }&lt;br /&gt;
             } &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;else&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( leverAngle &amp;lt; 0.f ) {&lt;br /&gt;
                 leverAngle = leverAngle + 1.8 * sys.[[ScriptEvent:getFrameTime|getFrameTime]]();&lt;br /&gt;
                 &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( leverAngle &amp;gt; 0.f ) {&lt;br /&gt;
                     leverAngle = 0.f;&lt;br /&gt;
                 }&lt;br /&gt;
             }&lt;br /&gt;
         }&lt;br /&gt;
 &lt;br /&gt;
         &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( oldLeverAngle != leverAngle ) {&lt;br /&gt;
             [[ScriptEvent:setAnimFrame|setAnimFrame]]( leverAnim, ANIMCHANNEL_HEAD, ( 1 + leverAngle ) * leverAnimFrameMiddle );&lt;br /&gt;
         }&lt;br /&gt;
 &lt;br /&gt;
         sys.[[ScriptEvent:waitFrame|waitFrame]]();&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;float&amp;lt;/span&amp;gt; [[ScriptClass:vehicle_platypus_cockpit|vehicle_platypus_cockpit]]::HideSurface( &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;string&amp;lt;/span&amp;gt; surfaceName ) {&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;float&amp;lt;/span&amp;gt; id = -1;&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( surfaceName != &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;&amp;quot;&amp;quot;&amp;lt;/span&amp;gt; ) {&lt;br /&gt;
         id = myVehicle.[[ScriptEvent:getSurfaceId|getSurfaceId]]( surfaceName );&lt;br /&gt;
         myVehicle.[[ScriptEvent:hideSurface|hideSurface]]( id );&lt;br /&gt;
     }&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;return&amp;lt;/span&amp;gt; id;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;void&amp;lt;/span&amp;gt; [[ScriptClass:vehicle_platypus_cockpit|vehicle_platypus_cockpit]]::ShowSurface( &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;float&amp;lt;/span&amp;gt; id ) {&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( id != -1 ) {&lt;br /&gt;
         myVehicle.[[ScriptEvent:showSurface|showSurface]]( id );&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;/div&gt;</summary>
		<author><name>Wizz</name></author>
		
	</entry>
</feed>