<?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%2Fdeployables%2Ffiresupportstate.script</id>
	<title>Script:Files:script/deployables/firesupportstate.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%2Fdeployables%2Ffiresupportstate.script"/>
	<link rel="alternate" type="text/html" href="https://wiki.splashdamage.com/index.php?title=Script:Files:script/deployables/firesupportstate.script&amp;action=history"/>
	<updated>2026-04-07T14:54:14Z</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/deployables/firesupportstate.script&amp;diff=1745&amp;oldid=prev</id>
		<title>Wizz at 17:59, 2 November 2007</title>
		<link rel="alternate" type="text/html" href="https://wiki.splashdamage.com/index.php?title=Script:Files:script/deployables/firesupportstate.script&amp;diff=1745&amp;oldid=prev"/>
		<updated>2007-11-02T17:59:06Z</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:blue&amp;quot;&amp;gt;#define&amp;lt;/span&amp;gt; FS_GUI_NONE                0&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;#define&amp;lt;/span&amp;gt; FS_GUI_RELOADING        1&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;#define&amp;lt;/span&amp;gt; FS_GUI_INVALID            2&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;#define&amp;lt;/span&amp;gt; FS_GUI_LOCKING            3&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;#define&amp;lt;/span&amp;gt; FS_GUI_LOCKED            4&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;#define&amp;lt;/span&amp;gt; FS_GUI_CHARGING            5&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;#define&amp;lt;/span&amp;gt; FS_GUI_ENROUTE            6&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;#define&amp;lt;/span&amp;gt; FS_GUI_OUT_OF_RANGE        7&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:fireSupportStatus|fireSupportStatus]] {&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;void&amp;lt;/span&amp;gt;                Update( [[ScriptClass:player|player]] myPlayer, &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;object&amp;lt;/span&amp;gt; artyTrace, &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;float&amp;lt;/span&amp;gt; lockStatus, &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;float&amp;lt;/span&amp;gt; lockFraction );&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;boolean&amp;lt;/span&amp;gt;                locationValid;&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;float&amp;lt;/span&amp;gt;                status;&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;float&amp;lt;/span&amp;gt;                timerStatus;&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;float&amp;lt;/span&amp;gt;                lockState;&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;float&amp;lt;/span&amp;gt;                keepLock;&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;float&amp;lt;/span&amp;gt;                guiStatus;&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;handle&amp;lt;/span&amp;gt;                statusString;&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:fireSupportStatus|fireSupportStatus]]::Update( [[ScriptClass:player|player]] myPlayer, &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;object&amp;lt;/span&amp;gt; artyTrace, &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;float&amp;lt;/span&amp;gt; lockStatus, &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;float&amp;lt;/span&amp;gt; lockFraction ) {&lt;br /&gt;
     [[ScriptClass:deployable_base|deployable_base]] targetItem = myPlayer.targetingItem;&lt;br /&gt;
 &lt;br /&gt;
     status = -1;&lt;br /&gt;
     timerStatus = 0;&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;vector&amp;lt;/span&amp;gt; end;&lt;br /&gt;
 &lt;br /&gt;
     lockState = TARGET_LOCK_NOT_LOCKED;&lt;br /&gt;
     locationValid = true;&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( targetItem != &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;$null_entity&amp;lt;/span&amp;gt; ) {&lt;br /&gt;
         keepLock = ( targetItem.vGetFireSupportMode() == TARGET_ROCKETS ) &amp;amp;&amp;amp; ( targetItem.vGetTimerState() &amp;gt; 0.75f );&lt;br /&gt;
         &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( keepLock &amp;amp;&amp;amp; !myPlayer.[[ScriptEvent:getButton|getButton]]( PK_ATTACK ) ) {&lt;br /&gt;
             keepLock = 2;&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; ( !targetItem.vIsDeployed() ) {&lt;br /&gt;
             status = MPS_NONE_ACTIVE;&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; ( !targetItem.vTargetPlayerEligible( myPlayer ) &amp;amp;&amp;amp; artyTrace != &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;$null&amp;lt;/span&amp;gt; ) {&lt;br /&gt;
             status = MPS_DISABLED;&lt;br /&gt;
         } &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;else&amp;lt;/span&amp;gt; {&lt;br /&gt;
             status = targetItem.vGetFiringStatus( artyTrace );&lt;br /&gt;
             &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( status == MPS_READY &amp;amp;&amp;amp; artyTrace != &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;$null&amp;lt;/span&amp;gt; ) {&lt;br /&gt;
                  end = artyTrace.[[ScriptEvent:getTraceEndPos|getTraceEndPos]]();&lt;br /&gt;
                 end_z = end_z + 65536.f;&lt;br /&gt;
 &lt;br /&gt;
                 &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( artyTrace.[[ScriptEvent:getTraceFraction|getTraceFraction]]() == 1.f || artyTrace.[[ScriptEvent:getTraceSurfaceFlags|getTraceSurfaceFlags]]() &amp;amp; SURF_NOIMPACT ) {&lt;br /&gt;
                     status = MPS_OUT_OF_RANGE;&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; ( status != MPS_INVALID ) {&lt;br /&gt;
                     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;float&amp;lt;/span&amp;gt; targetWorldZone = sys.[[ScriptEvent:getWorldPlayZoneIndex|getWorldPlayZoneIndex]]( artyTrace.[[ScriptEvent:getTraceEndPos|getTraceEndPos]]() );&lt;br /&gt;
                     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;float&amp;lt;/span&amp;gt; itemWorldZone = sys.[[ScriptEvent:getWorldPlayZoneIndex|getWorldPlayZoneIndex]]( targetItem.[[ScriptEvent:getWorldOrigin|getWorldOrigin]]() );&lt;br /&gt;
                     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( targetWorldZone != itemWorldZone ) {&lt;br /&gt;
                         status = MPS_INVALID;&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; ( status != MPS_INVALID &amp;amp;&amp;amp; status != MPS_OUT_OF_RANGE ) {&lt;br /&gt;
                     sys.[[ScriptEvent:tracePoint|tracePoint]]( artyTrace.[[ScriptEvent:getTraceEndPos|getTraceEndPos]](), end, CONTENTS_SOLID, &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;$null_entity&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; ( sys.[[ScriptEvent:getTraceFraction|getTraceFraction]]() == 1.f ) {&lt;br /&gt;
                         status = MPS_INVALID;&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; ( !( sys.[[ScriptEvent:getTraceSurfaceFlags|getTraceSurfaceFlags]]() &amp;amp; SURF_NOIMPACT ) ) {&lt;br /&gt;
                         status = MPS_INVALID;&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; ( !G_CheckFireSupportBlock( artyTrace.[[ScriptEvent:getTraceEndPos|getTraceEndPos]](), myPlayer ) ) {&lt;br /&gt;
                     status = MPS_INVALID;&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; ( status == MPS_READY ) {                &lt;br /&gt;
                     lockState = lockStatus;&lt;br /&gt;
                     timerStatus = lockFraction;&lt;br /&gt;
 &lt;br /&gt;
                     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( lockState == TARGET_LOCK_LOCKING ) {&lt;br /&gt;
                         status = MPS_LOCKING;&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; ( lockState == TARGET_LOCK_LOCKED ) {&lt;br /&gt;
                         status = MPS_LOCKED;&lt;br /&gt;
                     }&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; ( status == MPS_RELOADING || artyTrace == &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;$null&amp;lt;/span&amp;gt; ) {&lt;br /&gt;
                 timerStatus = targetItem.vGetTimerState();&lt;br /&gt;
             }&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;
         status = MPS_DISABLED;&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; ( status == MPS_INVALID || status == MPS_OUT_OF_RANGE ) {&lt;br /&gt;
         locationValid = false;&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; ( lockStatus == TARGET_LOCK_LOCKED ) {&lt;br /&gt;
         &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( targetItem.vGetFireSupportMode() == TARGET_ROCKETS ) {&lt;br /&gt;
             guiStatus = MPS_LOCKED_ROCKETS;&lt;br /&gt;
         } &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;else&amp;lt;/span&amp;gt; {&lt;br /&gt;
             guiStatus = MPS_LOCKED;&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; ( targetItem != &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;$null&amp;lt;/span&amp;gt; ) {&lt;br /&gt;
         guiStatus = status;&lt;br /&gt;
         &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( guiStatus == MPS_FIRING &amp;amp;&amp;amp; targetItem.vGetFireSupportMode() == TARGET_ROCKETS ) {&lt;br /&gt;
             guiStatus = MPS_LOCKED_ROCKETS;&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; ( guiStatus == MPS_FIRING ) {&lt;br /&gt;
             guiStatus = MPS_LOCKED;&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; ( status == MPS_DISABLED ) {&lt;br /&gt;
         guiStatus = MPS_INVALID;&lt;br /&gt;
     } &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;else&amp;lt;/span&amp;gt; {&lt;br /&gt;
         guiStatus = status;&lt;br /&gt;
     }&lt;br /&gt;
 &lt;br /&gt;
     G_StringForFireSupportState( guiStatus );&lt;br /&gt;
     statusString = g_fireSupportStateStr;&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( guiStatus == MPS_LOCKING ) {                guiStatus = FS_GUI_LOCKING;&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; ( guiStatus == MPS_LOCKED ) {            guiStatus = FS_GUI_LOCKED;&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; ( guiStatus == MPS_INVALID ) {        guiStatus = FS_GUI_INVALID;&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; ( guiStatus == MPS_RELOADING ) {        guiStatus = FS_GUI_RELOADING;&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; ( guiStatus == MPS_WAITING ) {        guiStatus = FS_GUI_CHARGING;&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; ( guiStatus == MPS_DISABLED ) {        guiStatus = FS_GUI_INVALID;&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; ( guiStatus == MPS_OUT_OF_RANGE ) {    guiStatus = FS_GUI_OUT_OF_RANGE;&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; ( guiStatus == MPS_LOCKED_ROCKETS ) { guiStatus = FS_GUI_LOCKED;&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; ( guiStatus == MPS_NONE_ACTIVE ) {    guiStatus = FS_GUI_ENROUTE;&lt;br /&gt;
     } &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;else&amp;lt;/span&amp;gt; {                                        guiStatus = FS_GUI_NONE;            &lt;br /&gt;
     }&lt;br /&gt;
 }&lt;/div&gt;</summary>
		<author><name>Wizz</name></author>
		
	</entry>
</feed>