<?xml version="1.0" encoding="UTF-8" ?>

<PropertyList>

 <path>lfga-hangar.ac</path>


 	<animation>
		<type>pick</type>
		<object-name>door1</object-name>
		<object-name>door2</object-name>
		<object-name>door3</object-name>
		<object-name>door4</object-name>
		<object-name>door5</object-name>
		<object-name>door6</object-name>
		<action>
			<button>0</button>
			<repeatable type="bool">false</repeatable>
			<binding>
				<command>nasal</command>
				<!-- Nasal pick code, based on jetway-movable.xml -->
				<script><![CDATA[
if (props.globals.getNode ("/scenery/airport/lfga-hangar") == nil)  {
    props.globals.initNode ("/scenery/airport/lfga-hangar", 0, "BOOL");
    setprop ("/scenery/airport/lfga-hangar-p", 0);
}

#nasal interpolation function - returns a value based on a set interpolation table, like the <interpolate> feature of XML animations
#takes an array with sub-arrays, like
#[[<ind>, <dep>], [<ind>, <dep>]]
var interpolateTable = func (table, value) {
  var newValue = 0;

  forindex (i; table) {
    if (value >= table[i][0]) {
	if (i + 1 < size (table)) {
	    newValue = (value - table[i][0]) / (table[i + 1][0] - table[i][0]) * (table[i + 1][1] - table[i][1]) + table[i][1];
	} else {
	    newValue = table[i][1];
	  }
      }
  }

  return newValue;
};

var xtranslate = 5.0;
var xtranslaterate = 1.0;
var xtranslatetable =[[0.0, 0.0],
		      [0.2, 0.2],
		      [0.6, 0.6],
		      [1.0, 1.0]
			];

var length = math.abs (xtranslate / xtranslaterate);

var setpos = func(p) {
	setprop ("/scenery/airport/lfga-hangar-p1-m", interpolateTable (xtranslatetable, p) * xtranslate);
};


if (!props.globals.getNode ("/scenery/airport/lfga-hangar").getBoolValue ()) {
  props.globals.getNode ("/scenery/airport/lfga-hangar").setBoolValue (1);
  interpolate ("/scenery/airport/lfga-hangar-p", 1, -getprop ("/scenery/airport/lfga-hangar-p") + 1 * length);

  var loop = func {
    var position = getprop ("/scenery/airport/lfga-hangar-p");
	setpos(position);

    if (position < 1 and props.globals.getNode ("/scenery/airport/lfga-hangar").getBoolValue ()) {
      settimer (loop, 0);
    }
  };
  loop ();
} else {
  props.globals.getNode ("/scenery/airport/lfga-hangar").setBoolValue (0);
  interpolate ("/scenery/airport/lfga-hangar-p", 0, getprop ("/scenery/airport/lfga-hangar-p") * length);

  var loop = func {
    var position = getprop ("/scenery/airport/lfga-hangar-p");
	setpos(position);

    if (position > 0 and ! props.globals.getNode ("/scenery/airport/lfga-hangar").getBoolValue ()) {
      settimer (loop, 0);
    }
  };
  loop ();
}
				]]></script>
			</binding>
		</action>
	</animation>

	<animation>
		<type>translate</type>
		<object-name>door1</object-name>
		<property>/scenery/airport/lfga-hangar-p1-m</property>
		<axis>
			<x>0</x>
			<y>-1</y>
			<z>0</z>
		</axis>
	</animation>
	<animation>
		<type>translate</type>
		<object-name>door2</object-name>
		<property>/scenery/airport/lfga-hangar-p1-m</property>
		<axis>
			<x>0</x>
			<y>1</y>
			<z>0</z>
		</axis>
	</animation>
	<animation>
		<type>translate</type>
		<object-name>door3</object-name>
		<property>/scenery/airport/lfga-hangar-p1-m</property>
		<axis>
			<x>0</x>
			<y>1</y>
			<z>0</z>
		</axis>
	</animation>
	<animation>
		<type>translate</type>
		<object-name>door4</object-name>
		<property>/scenery/airport/lfga-hangar-p1-m</property>
		<axis>
			<x>0</x>
			<y>-1</y>
			<z>0</z>
		</axis>
	</animation>
	<animation>
		<type>translate</type>
		<object-name>door5</object-name>
		<property>/scenery/airport/lfga-hangar-p1-m</property>
		<axis>
			<x>0</x>
			<y>-1</y>
			<z>0</z>
		</axis>
	</animation>
	<animation>
		<type>translate</type>
		<object-name>door6</object-name>
		<property>/scenery/airport/lfga-hangar-p1-m</property>
		<axis>
			<x>0</x>
			<y>1</y>
			<z>0</z>
		</axis>
	</animation>
	
    <nasal>
        <load>
	setprop ("/scenery/airport/lfga-hangar-p1-m", 0.0);
        </load>
    </nasal>

</PropertyList>

