<?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%2Fmisc%2Fzoomwidget.script</id>
	<title>Script:Files:script/misc/zoomwidget.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%2Fmisc%2Fzoomwidget.script"/>
	<link rel="alternate" type="text/html" href="https://wiki.splashdamage.com/index.php?title=Script:Files:script/misc/zoomwidget.script&amp;action=history"/>
	<updated>2026-04-07T18:25:27Z</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/misc/zoomwidget.script&amp;diff=1730&amp;oldid=prev</id>
		<title>Wizz at 17:55, 2 November 2007</title>
		<link rel="alternate" type="text/html" href="https://wiki.splashdamage.com/index.php?title=Script:Files:script/misc/zoomwidget.script&amp;diff=1730&amp;oldid=prev"/>
		<updated>2007-11-02T17:55:36Z</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; &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;/***********************************************************************&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;zoomWidget.script&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;***********************************************************************/&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:zoomWidget|zoomWidget]] {&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;        Init( &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;entity&amp;lt;/span&amp;gt; other );&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;void&amp;lt;/span&amp;gt;        Enable();&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;void&amp;lt;/span&amp;gt;        Disable();&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;float&amp;lt;/span&amp;gt;        GetZoomState();&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;float&amp;lt;/span&amp;gt;        GetNumZoomStates();&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;float&amp;lt;/span&amp;gt;        GetZoomFov( &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;float&amp;lt;/span&amp;gt; indexValue );&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;// cycle the zoom levels one by one&amp;lt;/span&amp;gt;&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;void&amp;lt;/span&amp;gt;        Cycle();&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;// zoom in or zoom out by 1/4 levels of zoom&amp;lt;/span&amp;gt;&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;void&amp;lt;/span&amp;gt;        Zoom( &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;float&amp;lt;/span&amp;gt; delta );&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;void&amp;lt;/span&amp;gt;        ZoomIn();&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;void&amp;lt;/span&amp;gt;        ZoomOut();&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;float&amp;lt;/span&amp;gt;        numZoomStates;&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;float&amp;lt;/span&amp;gt;        zoomTime;&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;float&amp;lt;/span&amp;gt;        currentZoomState;&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;boolean&amp;lt;/span&amp;gt;        enabled;&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;entity&amp;lt;/span&amp;gt;        owner;&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;boolean&amp;lt;/span&amp;gt;        IsFullyZoomedIn() { &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;return&amp;lt;/span&amp;gt; currentZoomState == numZoomStates - 1; }&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;boolean&amp;lt;/span&amp;gt;        IsFullyZoomedOut() { &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;return&amp;lt;/span&amp;gt; currentZoomState == 0.0f; }&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;boolean&amp;lt;/span&amp;gt;        IsEnabled() { &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;return&amp;lt;/span&amp;gt; enabled; }&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:zoomWidget|zoomWidget]]::destroy() {&lt;br /&gt;
     Disable();&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:zoomWidget|zoomWidget]]::Init( &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;entity&amp;lt;/span&amp;gt; other ) {&lt;br /&gt;
     owner            = other;&lt;br /&gt;
 &lt;br /&gt;
     numZoomStates    = other.[[ScriptEvent:getIntKey|getIntKey]]( &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;&amp;quot;num_zoom_levels&amp;quot;&amp;lt;/span&amp;gt; );&lt;br /&gt;
     zoomTime        = other.[[ScriptEvent:getFloatKeyWithDefault|getFloatKeyWithDefault]]( &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;&amp;quot;zoom_time&amp;quot;&amp;lt;/span&amp;gt;, 0.5f );&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:zoomWidget|zoomWidget]]::GetZoomState() {&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;return&amp;lt;/span&amp;gt; currentZoomState;&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:zoomWidget|zoomWidget]]::GetNumZoomStates() {&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;return&amp;lt;/span&amp;gt; numZoomStates;&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:zoomWidget|zoomWidget]]::Enable() {&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( enabled ) {&lt;br /&gt;
         &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;return&amp;lt;/span&amp;gt;;&lt;br /&gt;
     }&lt;br /&gt;
     enabled = true;&lt;br /&gt;
     owner.[[ScriptEvent:setFov|setFov]]( sys.[[ScriptEvent:getDefaultFov|getDefaultFov]](), GetZoomFov( currentZoomState ), zoomTime );&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:zoomWidget|zoomWidget]]::Disable() {&lt;br /&gt;
     currentZoomState = 0;&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( !enabled ) {&lt;br /&gt;
         &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;return&amp;lt;/span&amp;gt;;&lt;br /&gt;
     }&lt;br /&gt;
     enabled = false;&lt;br /&gt;
     owner.[[ScriptEvent:setFov|setFov]]( GetZoomFov( currentZoomState ), sys.[[ScriptEvent:getDefaultFov|getDefaultFov]](), zoomTime );&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:zoomWidget|zoomWidget]]::GetZoomFov( &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;float&amp;lt;/span&amp;gt; indexValue ) {&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( numZoomStates &amp;lt;= 1 ) {&lt;br /&gt;
         &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;return&amp;lt;/span&amp;gt; owner.[[ScriptEvent:getFloatKeyWithDefault|getFloatKeyWithDefault]]( &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;&amp;quot;zoom_fov&amp;quot;&amp;lt;/span&amp;gt;, 45 );&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; index = int( indexValue );&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;float&amp;lt;/span&amp;gt; interpValue = indexValue - index;&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;float&amp;lt;/span&amp;gt; fov = owner.[[ScriptEvent:getFloatKey|getFloatKey]]( &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;&amp;quot;zoom_fov_&amp;quot;&amp;lt;/span&amp;gt; + ( index + 1 ) );&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( fov &amp;lt;= 0 ) {&lt;br /&gt;
         fov = 90;&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; ( interpValue &amp;gt; 0 ) {&lt;br /&gt;
         &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;float&amp;lt;/span&amp;gt; fov2 = owner.[[ScriptEvent:getFloatKey|getFloatKey]]( &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;&amp;quot;zoom_fov_&amp;quot;&amp;lt;/span&amp;gt; + ( index + 2 ) );&lt;br /&gt;
         &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( fov2 &amp;lt;= 0 ) {&lt;br /&gt;
             fov2 = 90;&lt;br /&gt;
         }&lt;br /&gt;
 &lt;br /&gt;
         fov = fov + interpValue * ( fov2 - fov );&lt;br /&gt;
     }&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;return&amp;lt;/span&amp;gt; fov;&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:zoomWidget|zoomWidget]]::Cycle() {&lt;br /&gt;
     sys.[[ScriptEvent:assert|assert]]( enabled );&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;float&amp;lt;/span&amp;gt; oldFov = owner.[[ScriptEvent:getFov|getFov]]();&lt;br /&gt;
 &lt;br /&gt;
     currentZoomState = currentZoomState + 1;&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( currentZoomState &amp;gt;= numZoomStates ) {&lt;br /&gt;
         currentZoomState = 0;&lt;br /&gt;
     } &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;else&amp;lt;/span&amp;gt; {&lt;br /&gt;
         currentZoomState = int( currentZoomState );&lt;br /&gt;
     }&lt;br /&gt;
 &lt;br /&gt;
     owner.[[ScriptEvent:setFov|setFov]]( oldFov, GetZoomFov( currentZoomState ), zoomTime );&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:zoomWidget|zoomWidget]]::Zoom( &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;float&amp;lt;/span&amp;gt; delta ) {&lt;br /&gt;
     sys.[[ScriptEvent:assert|assert]]( enabled );&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;float&amp;lt;/span&amp;gt; oldZoomState = currentZoomState;&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;float&amp;lt;/span&amp;gt; oldFov = owner.[[ScriptEvent:getFov|getFov]]();&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;float&amp;lt;/span&amp;gt; oldTargetFov = GetZoomFov( oldZoomState );&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;float&amp;lt;/span&amp;gt; maxZoomState = numZoomStates - 1;&lt;br /&gt;
 &lt;br /&gt;
     currentZoomState = currentZoomState + delta;&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( currentZoomState &amp;gt; maxZoomState ) {&lt;br /&gt;
         currentZoomState = maxZoomState;&lt;br /&gt;
     }&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( currentZoomState &amp;lt; 0 ) {&lt;br /&gt;
         currentZoomState = 0;&lt;br /&gt;
     }&lt;br /&gt;
 &lt;br /&gt;
     owner.[[ScriptEvent:setFov|setFov]]( oldFov, GetZoomFov( currentZoomState ), zoomTime );&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:zoomWidget|zoomWidget]]::ZoomIn() {&lt;br /&gt;
     Zoom( 0.25 );&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:zoomWidget|zoomWidget]]::ZoomOut() {&lt;br /&gt;
     Zoom( -0.25 );&lt;br /&gt;
 }&lt;/div&gt;</summary>
		<author><name>Wizz</name></author>
		
	</entry>
</feed>