<?xml version="1.0"?>

<PropertyList>
	<name>rendering</name>
	<modal>false</modal>
	<layout>vbox</layout>
	<padding>20</padding>

	<group>
		<layout>hbox</layout>
		<empty>
			<stretch>1</stretch>
		</empty>

		<text>
			<label>Rendering Options</label>
		</text>

		<empty>
			<stretch>1</stretch>
		</empty>

		<button>
			<pref-width>16</pref-width>
			<pref-height>16</pref-height>
			<legend></legend>
			<keynum>27</keynum>
			<border>2</border>
			<binding>
				<command>dialog-close</command>
			</binding>
		</button>
	</group>

	<hrule/>

  <text>
    <visible>
      <equals>
        <property>/sim/gui/dialogs/rendering/shader-warning</property>
        <value>1</value>
      </equals>
    </visible>
    <color>
      <red>1.0</red>
      <green>0.6</green>
      <blue>0.6</blue>
    </color>
    <label>Warning: Intel integrated graphics detected.  Your graphics card may not support shaders or complex graphics.</label>
  </text>

	<group>
		<halign>center</halign>
		<layout>hbox</layout>

    <!-- only for a gap -->
    <group>
      <layout>vbox</layout>
      <default-padding>1</default-padding>
      <text>
        <label> </label>
      </text>
    </group>

		<group>
			<layout>vbox</layout>

			<group>
				<layout>hbox</layout>
				<text>
					<label>General</label>
					<halign>left</halign>
				</text>
				<hrule>
					<stretch>true</stretch>
				</hrule>
			</group>

			<checkbox>
				<halign>left</halign>
				<label>Wireframe</label>
				<name>wireframe</name>
				<property>/sim/rendering/wireframe</property>
				<binding>
					<command>dialog-apply</command>
					<object-name>wireframe</object-name>
				</binding>
			</checkbox>

			<!--
			<group>
				<layout>hbox</layout>
				<text>
				<label>Lighting</label>
				<halign>left</halign>
				</text>
				<hrule>
				<stretch>true</stretch>
				</hrule>
			</group>

			<checkbox>
				<halign>left</halign>
				<label>Sun/Moon horizon effect</label>
				<property>/sim/rendering/horizon-effect</property>
				<binding>
					<command>dialog-apply</command>
				</binding>
			</checkbox>
			-->

			<checkbox>
				<halign>left</halign>
				<label>Use point sprites for runway lights</label>
				<property>/sim/rendering/point-sprites</property>
				<binding>
					<command>dialog-apply</command>
				</binding>
			</checkbox>

			<!--
			<checkbox>
				<halign>left</halign>
				<label>Enhanced runway lighting</label>
				<property>/sim/rendering/enhanced-lighting</property>
				<binding>
					<command>dialog-apply</command>
				</binding>
			</checkbox>

			<checkbox>
				<halign>left</halign>
				<label>Runway light distance attenuation</label>
				<property>/sim/rendering/distance-attenuation</property>
				<binding>
					<command>dialog-apply</command>
				</binding>
			</checkbox>

			<checkbox>
				<halign>left</halign>
				<label>Specular reflections on objects</label>
				<property>/sim/rendering/specular-highlight</property>
				<binding>
					<command>dialog-apply</command>
				</binding>
			</checkbox>
			-->
			<group>
				<layout>hbox</layout>
				<halign>left</halign>

				<checkbox>
					<label>Throttle frame rate</label>
					<name>frame-rate-throttle</name>
					<property>/sim/gui/frame-rate-throttled</property>
					<binding>
						<command>dialog-apply</command>
						<object-name>frame-rate-throttle</object-name>
					</binding>
					<binding>
						<command>nasal</command>
						<script>
							var throttled = getprop("/sim/gui/frame-rate-throttled");
							if (throttled)
								setprop("/sim/frame-rate-throttle-hz", 50);
							else
								setprop("/sim/frame-rate-throttle-hz", 0);
						</script>
					</binding>
				</checkbox>
				<empty>
					<pref-width>46</pref-width>
				</empty>
				<slider>
					<name>frame-rate</name>
					<visible>
						<greater-than>
							<property>/sim/frame-rate-throttle-hz</property>
							<value>0</value>
						</greater-than>
					</visible>
					<min>15.0</min>
					<max>70.0</max>
					<step>1.0</step>
					<live>true</live>
					<property>/sim/frame-rate-throttle-hz</property>
					<binding>
						<command>dialog-apply</command>
						<object-name>frame-rate</object-name>
					</binding>
				</slider>
				<text>
					<visible>
						<greater-than>
							<property>/sim/frame-rate-throttle-hz</property>
							<value>0</value>
						</greater-than>
					</visible>
					<label>99 Hz</label>
					<format>%2.0f Hz</format>
					<live>true</live>
					<property>/sim/frame-rate-throttle-hz</property>
				</text>
			</group>

			<!--

			<checkbox>
				<halign>left</halign>
				<label>Lightning</label>
				<property>/sim/rendering/lightning-enable</property>
				<binding>
					<command>dialog-apply</command>
				</binding>
			</checkbox>

			-->

			<checkbox>
				<halign>left</halign>
				<label>Compensate field of view for wider screens</label>
				<property>sim/current-view/field-of-view-compensation</property>
				<binding>
					<command>nasal</command>
					<script>view.screenWidthCompens.toggle()</script>
				</binding>
			</checkbox>

			<checkbox>
				<halign>left</halign>
				<label>Animated jetways</label>
				<name>jetways</name>
				<property>/nasal/jetways/enabled</property>
				<binding>
					<command>dialog-apply</command>
					<object-name>jetways</object-name>
				</binding>
			</checkbox>


  		<empty>
  			<stretch>1</stretch>
  		</empty>

			<group>
				<layout>hbox</layout>
				<text>
					<label>Scenery Layers</label>
					<halign>left</halign>
				</text>
				<hrule>
					<stretch>true</stretch>
				</hrule>
			</group>

			<group>
				<layout>table</layout>

				<text>
					<row>0</row>
					<col>0</col>
					<halign>left</halign>
					<label>Pylons and power lines</label>
				</text>
				<combo>
					<row>0</row>
					<col>1</col>
					<name>pylons</name>
					<pref-width>200</pref-width>
					<property>/sim/gui/dialogs/rendering/pylons</property>
					<value>Disabled</value>
					<value>Enabled</value>
					<binding>
						<command>dialog-apply</command>
						<object-name>pylons</object-name>
					</binding>
					<binding>
						<command>nasal</command>
						<script>
							var val = getprop("/sim/gui/dialogs/rendering/pylons");
							if (val == "Enabled") {
								setScenerySuffix("Pylons", 1);
							} else {
							  setScenerySuffix("Pylons", 0);
							}
						</script>
					</binding>
				</combo>

				<text>
					<row>1</row>
					<col>0</col>
					<halign>left</halign>
					<label>Detailed Roads and Railways</label>
				</text>
				<combo>
					<row>1</row>
					<col>1</col>
					<name>roads</name>
					<pref-width>200</pref-width>
					<property>/sim/gui/dialogs/rendering/roads</property>
					<value>Disabled</value>
					<value>Enabled</value>
					<binding>
						<command>dialog-apply</command>
						<object-name>roads</object-name>
					</binding>
					<binding>
						<command>nasal</command>
						<script>
							var val = getprop("/sim/gui/dialogs/rendering/roads");
							if (val == "Enabled") {
								setScenerySuffix("Roads", 1);
							} else {
							  setScenerySuffix("Roads", 0);
							}
						</script>
					</binding>
				</combo>

				<text>
					<row>2</row>
					<col>0</col>
					<halign>left</halign>
					<label>Buildings</label>
				</text>
				<combo>
					<row>2</row>
					<col>1</col>
					<name>buildings</name>
					<pref-width>200</pref-width>
					<property>/sim/gui/dialogs/rendering/buildings</property>
					<value>Disabled</value>
					<value>Randomly Generated</value>
					<value>OpenStreetMap Data</value>
					<binding>
						<command>dialog-apply</command>
						<object-name>buildings</object-name>
					</binding>
					<binding>
						<command>nasal</command>
						<script>
							var val = getprop("/sim/gui/dialogs/rendering/buildings");
							if (val == "Disabled") {
								setprop("/sim/rendering/random-buildings", 0);
								setprop("/sim/rendering/osm-buildings", 0);
								setScenerySuffix("Buildings", 0);
							}

							if (val == "Randomly Generated") {
								setprop("/sim/rendering/random-buildings", 1);
								setprop("/sim/rendering/osm-buildings", 0);
								setScenerySuffix("Buildings", 0);
							}

							if (val == "OpenStreetMap Data") {
								setprop("/sim/rendering/random-buildings", 0);
								setprop("/sim/rendering/osm-buildings", 1);
								setScenerySuffix("Buildings", 1);
							}
						</script>
					</binding>
				</combo>

				<text>
					<row>3</row>
					<col>0</col>
					<halign>left</halign>
					<label>Random Scenery Objects</label>
				</text>
				<combo>
					<row>3</row>
					<col>1</col>
					<name>random-objects</name>
					<pref-width>200</pref-width>
					<property>/sim/gui/dialogs/rendering/random-objects</property>
					<value>Disabled</value>
					<value>Enabled</value>
					<binding>
						<command>dialog-apply</command>
						<object-name>random-objects</object-name>
					</binding>
					<binding>
						<command>nasal</command>
						<script>
							var val = getprop("/sim/gui/dialogs/rendering/random-objects");
							if (val == "Enabled") {
								setprop("/sim/rendering/random-objects", 1);
							} else {
							  setprop("/sim/rendering/random-objects", 0);
							}
						</script>
					</binding>
				</combo>

				<text>
					<row>4</row>
					<col>0</col>
					<halign>left</halign>
					<label>Vegetation</label>
				</text>
				<combo>
					<row>4</row>
					<col>1</col>
					<name>random-vegetation</name>
					<pref-width>200</pref-width>
					<property>/sim/gui/dialogs/rendering/random-vegetation</property>
					<value>Disabled</value>
					<value>Ultra Low Density</value>
					<value>Very Low Density</value>
					<value>Low Density</value>
					<value>Medium Density</value>
					<value>High Density</value>
					<value>Very High Density</value>
					<value>Ultra High Density</value>
					<binding>
						<command>dialog-apply</command>
						<object-name>random-vegetation</object-name>
					</binding>
					<binding>
						<command>nasal</command>
						<script>
							var val = getprop("/sim/gui/dialogs/rendering/random-vegetation");
							if (val == "Disabled") {
								setprop("/sim/rendering/random-vegetation", 0);
							}

							if (val == "Ultra Low Density") {
								setprop("/sim/rendering/random-vegetation", 1);
								setprop("/sim/rendering/vegetation-density", 0.1);
							}

							if (val == "Low Density") {
								setprop("/sim/rendering/random-vegetation", 1);
								setprop("/sim/rendering/vegetation-density", 0.25);
							}

							if (val == "Low Density") {
								setprop("/sim/rendering/random-vegetation", 1);
								setprop("/sim/rendering/vegetation-density", 0.5);
							}

							if (val == "Medium Density") {
								setprop("/sim/rendering/random-vegetation", 1);
								setprop("/sim/rendering/vegetation-density", 1.0);
							}

							if (val == "High Density") {
								setprop("/sim/rendering/random-vegetation", 1);
								setprop("/sim/rendering/vegetation-density", 2.0);
							}

							if (val == "Very High Density") {
								setprop("/sim/rendering/random-vegetation", 1);
								setprop("/sim/rendering/vegetation-density", 4.0);
							}

							if (val == "Ultra High Density") {
								setprop("/sim/rendering/random-vegetation", 1);
								setprop("/sim/rendering/vegetation-density", 8.0);
							}

						</script>
					</binding>
				</combo>

				<text>
					<row>5</row>
					<col>0</col>
					<halign>left</halign>
					<label>Vegetation Shadows</label>
				</text>
				<combo>
					<row>5</row>
					<col>1</col>
					<name>vegetation-shadows</name>
					<pref-width>200</pref-width>
					<property>/sim/gui/dialogs/rendering/vegetation-shadows</property>
					<value>Disabled</value>
					<value>Enabled</value>
					<binding>
						<command>dialog-apply</command>
						<object-name>vegetation-shadows</object-name>
					</binding>
					<binding>
						<command>nasal</command>
						<script>
							var val = getprop("/sim/gui/dialogs/rendering/vegetation-shadows");
							if (val == "Enabled") {
								setprop("/sim/rendering/random-vegetation-shadows", 1);
							} else {
								setprop("/sim/rendering/random-vegetation-shadows", 0);
							}
						</script>
					</binding>
				</combo>

				<text>
					<row>6</row>
					<col>0</col>
					<halign>left</halign>
					<label>Scenery Objects</label>
				</text>

				<combo>
					<row>6</row>
					<col>1</col>
					<name>placed-objects</name>
					<pref-width>200</pref-width>
					<property>/sim/gui/dialogs/rendering/placed-objects</property>
					<value>Disabled</value>
					<value>Enabled</value>
					<binding>
						<command>dialog-apply</command>
						<object-name>placed-objects</object-name>
					</binding>
					<binding>
						<command>nasal</command>
						<script>
							var val = getprop("/sim/gui/dialogs/rendering/placed-objects");
							if (val == "Enabled") {
								setScenerySuffix("Objects", 1);
							} else {
								setScenerySuffix("Objects", 0);
							}
						</script>
					</binding>
				</combo>

				<text>
					<row>7</row>
					<col>0</col>
					<halign>left</halign>
					<label>Terrain Textures</label>
        </text>

        <combo>
          <row>7</row>
          <col>1</col>
          <name>texture-set</name>
					<pref-width>200</pref-width>
          <property>sim/gui/dialogs/rendering/texture-set</property>
          <value>Region-specific</value>
          <value>Global</value>
          <value>Global alternative (DDS format)</value>
          <binding>
            <command>dialog-apply</command>
            <object-name>texture-set</object-name>
          </binding>
          <binding>
            <command>nasal</command>
            <script>
              var file = materials[getprop("/sim/gui/dialogs/rendering/texture-set")];
              setprop("/sim/rendering/materials-file", file);
            </script>
          </binding>
          <binding>
            <command>reload-materials</command>
          </binding>
        </combo>

				<text>
					<row>8</row>
					<col>0</col>
					<colspan>2</colspan>
					<halign>left</halign>
					<color>
			      <red>1.0</red>
			      <green>0.6</green>
			      <blue>0.6</blue>
			    </color>
					<label>Warning: Pylons, Detailed Roads, Buildings use a lot of memory</label>
        </text>

				<text>
					<row>9</row>
					<col>0</col>
					<colspan>2</colspan>
					<halign>left</halign>
					<color>
			      <red>1.0</red>
			      <green>0.6</green>
			      <blue>0.6</blue>
			    </color>
					<label>and disk space, and are only available in limited areas.</label>
        </text>

			</group>

			<group>
				<layout>vbox</layout>
				<stretch>1</stretch>
			</group>

		</group>

    <!-- only for a gap -->
    <group>
      <layout>vbox</layout>
      <default-padding>1</default-padding>
      <text>
        <label> </label>
      </text>
    </group>

		<vrule/>

    <!-- only for a gap -->
    <group>
      <layout>vbox</layout>
      <default-padding>1</default-padding>
      <text>
        <label> </label>
      </text>
    </group>

		<group>
			<layout>vbox</layout>

			<group>
				<layout>hbox</layout>
				<text>
					<label>Shader Effects</label>
					<halign>left</halign>
				</text>
				<hrule>
					<stretch>true</stretch>
				</hrule>
			</group>

			<group>
				<layout>table</layout>

				<checkbox>
					<halign>left</halign>
					<row>0</row>
					<col>0</col>
					<label>Custom settings (fine-tuning)</label>
					<name>custom-settings</name>
					<property>/sim/rendering/shaders/custom-settings</property>
					<binding>
						<command>dialog-apply</command>
						<object-name>custom-settings</object-name>
					</binding>
				</checkbox>

				<group>
					<layout>hbox</layout>
					<row>1</row>
					<col>0</col>
					<visible>
						<not>
							<property>/sim/rendering/shaders/custom-settings</property>
						</not>
					</visible>

					<text>
						<label>Performance</label>
					</text>
					<slider>
						<name>quality-level</name>
						<min>0.0</min>
						<max>5.0</max>
						<step>1.0</step>
						<fraction>0.17</fraction>
						<property>/sim/rendering/shaders/quality-level-internal</property>
						<binding>
							<command>dialog-apply</command>
							<object-name>quality-level</object-name>
						</binding>
					</slider>
					<text>
						<label>Quality</label>
					</text>
					<text>
						<label>12345678</label>
						<format>(%1.0f)</format>
						<live>true</live>
						<property>/sim/rendering/shaders/quality-level-internal</property>
					</text>

				</group>

				<group>
					<layout>hbox</layout>
					<row>1</row>
					<col>0</col>
					<visible>
						<and>
							<property>/sim/rendering/shaders/custom-settings</property>
							<not>
								<property>/sim/rendering/shaders/skydome</property>
							</not>
						</and>
					</visible>

					<button>
						<legend>Shader Options</legend>
						<halign>left</halign>
						<binding>
							<command>dialog-show</command>
							<dialog-name>shaders</dialog-name>
						</binding>
						<binding>
							<command>dialog-close</command>
							<dialog-name>rendering</dialog-name>
						</binding>
						<pref-width>200</pref-width>
					</button>

				</group>
				<group>
					<layout>hbox</layout>
					<row>1</row>
					<col>0</col>
					<visible>
						<and>
							<property>/sim/rendering/shaders/custom-settings</property>
							<property>/sim/rendering/shaders/skydome</property>
							<not>
								<property>/sim/rendering/rembrandt/enabled</property>
							</not>
						</and>
					</visible>

					<button>
						<legend>Shader Options</legend>
						<halign>left</halign>
						<binding>
							<command>dialog-show</command>
							<dialog-name>shaders-lightfield</dialog-name>
						</binding>
						<binding>
							<command>dialog-close</command>
							<dialog-name>rendering</dialog-name>
						</binding>
						<pref-width>200</pref-width>
					</button>

				</group>

			</group>

			<group>
				<layout>hbox</layout>
				<text>
					<label>Atmospheric Effects</label>
					<halign>left</halign>
				</text>
				<hrule>
					<stretch>true</stretch>
				</hrule>
			</group>

			<checkbox>
				<halign>left</halign>
				<label>Particles (smoke, dust, spray)</label>
				<name>particles</name>
				<property>/sim/rendering/particles</property>
				<binding>
					<command>dialog-apply</command>
					<object-name>particles</object-name>
				</binding>
			</checkbox>

			<checkbox>
				<halign>left</halign>
				<label>Precipitation</label>
				<name>precipitation</name>
				<property>/sim/rendering/precipitation-gui-enable</property>
				<binding>
					<command>dialog-apply</command>
					<object-name>precipitation</object-name>
				</binding>
			</checkbox>

			<!--

			<checkbox>
				<halign>left</halign>
				<label>2D clouds</label>
				<property>/sim/rendering/bump-mapping</property>
				<binding>
					<command>dialog-apply</command>
				</binding>
			</checkbox>

			-->

			<checkbox>
				<halign>left</halign>
				<label>3D clouds</label>
				<name>3d-clouds</name>
				<property>/sim/rendering/clouds3d-enable</property>
				<binding>
					<command>dialog-apply</command>
					<object-name>3d-clouds</object-name>
				</binding>
			</checkbox>

			<group>
				<layout>hbox</layout>
				<halign>right</halign>
				<text>
					<label>Cloud density</label>
					<enable>
						<property>/sim/rendering/clouds3d-enable</property>
					</enable>
				</text>
				<slider>
					<name>cloud-density</name>
					<min>0</min>
					<max>1.0</max>
					<property>/sim/rendering/clouds3d-density</property>
					<binding>
						<command>dialog-apply</command>
						<object-name>cloud-density</object-name>
					</binding>
					<binding>
						<command>property-toggle</command>
						<property>/sim/rendering/clouds3d-enable</property>
					</binding>
					<binding>
						<command>property-toggle</command>
						<property>/sim/rendering/clouds3d-enable</property>
					</binding>
				</slider>
				<text>
					<enable>
						<property>/sim/rendering/clouds3d-enable</property>
					</enable>
					<label>12345678</label>
					<format>%.2f</format>
					<live>true</live>
					<property>/sim/rendering/clouds3d-density</property>
				</text>
			</group>

			<group>
				<layout>hbox</layout>
				<halign>right</halign>
				<text>
					<label>Cloud visibility range</label>
					<enable>
						<property>/sim/rendering/clouds3d-enable</property>
					</enable>
				</text>
				<slider>
					<name>cloud-vis-range</name>
					<min>1000.0</min>
					<max>150000.0</max>
					<property>/sim/rendering/clouds3d-vis-range</property>
					<binding>
						<command>dialog-apply</command>
						<object-name>cloud-vis-range</object-name>
					</binding>
				</slider>
				<text>
					<enable>
						<property>/sim/rendering/clouds3d-enable</property>
					</enable>
					<label>12345678</label>
					<format>%.fm</format>
					<live>true</live>
					<property>/sim/rendering/clouds3d-vis-range</property>
				</text>
			</group>

      <!-- mhab modified -->
			<group>
				<layout>table</layout>

				<group>
					<layout>vbox</layout>
          <pref-height>35</pref-height>
					<halign>left</halign>
					<row>0</row>
					<col>0</col>
					<checkbox>
						<halign>left</halign>
						<label>Atmospheric Light Scattering (ALS)</label>
						<name>skydome-scattering</name>
						<enable>
							<not>
								<property>/sim/rendering/rembrandt/enabled</property>
							</not>
						</enable>
						<property>/sim/rendering/shaders/skydome</property>
						<binding>
							<command>dialog-apply</command>
							<object-name>skydome-scattering</object-name>
						</binding>
					</checkbox>
				</group>
				<button>
			                  <row>1</row>
			                  <col>0</col>
			                  <enable>
			                      <property>/sim/rendering/shaders/skydome</property>
			                  </enable>
			                  <legend>Filter settings (experimental)</legend>
			                  <halign>center</halign>
			                  <binding>
			                      <command>dialog-show</command>
			                      <dialog-name>als-filters</dialog-name>
			                  </binding>
			                  <binding>
			                      <command>dialog-close</command>
			                      <dialog-name>rendering</dialog-name>
			                  </binding>
			                  <pref-width>200</pref-width>
			        </button>


				<group>
					<layout>hbox</layout>
					<row>2</row>
					<col>0</col>

					<text>
						<label>Rembrandt</label>
						<halign>left</halign>
						<enable>
							<property>/sim/rendering/rembrandt/enabled</property>
						</enable>
					</text>
					<text>
						<label>(experimental)</label>
						<halign>left</halign>
						<color>
							<red>1.0</red>
							<green>0.6</green>
							<blue>0.6</blue>
						</color>
						<enable>
							<property>/sim/rendering/rembrandt/enabled</property>
						</enable>
					</text>
					<hrule>
						<stretch>true</stretch>
						<visible>
							<property>/sim/rendering/rembrandt/enabled</property>
						</visible>
					</hrule>
				</group>

				<button>
					<row>3</row>
					<col>0</col>
					<enable>
						<property>/sim/rendering/rembrandt/enabled</property>
					</enable>
					<legend>Rembrandt Options</legend>
					<halign>center</halign>
					<binding>
						<command>dialog-show</command>
						<dialog-name>rembrandt</dialog-name>
					</binding>
					<binding>
						<command>dialog-close</command>
						<dialog-name>rendering</dialog-name>
					</binding>
					<pref-width>200</pref-width>
				</button>

			</group>

			<empty>
				<stretch>1</stretch>
			</empty>

		</group>

    <!-- only for a gap -->
    <group>
      <layout>vbox</layout>
      <default-padding>1</default-padding>
      <text>
        <label> </label>
      </text>
    </group>

	</group>

	<hrule/>

	<button>
		<legend>  OK  </legend>
        <default>true</default>
        <binding>
            <command>nasal</command>
            <script>
              var reinit = 0;
              foreach (var p; reload_props) {
                if (reload_vals[p] != getprop(p)) {
                  reinit = 1;
                }
              }

              if (reinit) {
                fgcommand("reinit", props.Node.new({"subsystem": "scenery"}));
              }
            </script>
        </binding>
		<binding>
			<command>dialog-close</command>
		</binding>
	</button>

	<nasal>
		<open>
			<![CDATA[
			var getScenerySuffix = func(layer) {
				var suffixes = props.globals.getNode("/sim/rendering", 1).getChildren("scenery-path-suffix");
				#printf("Looking for suffix " ~ layer);

				foreach (var p; suffixes) {
				  #printf("Checking suffix " ~ p.getNode("name",1).getValue());
					#printf("Checking suffix enabled " ~ p.getNode("enabled",1).getValue());
				  if (p.getNode("name",1).getValue() == layer) {
						#printf("Found layer " ~ layer ~ " value: " ~ p.getNode("enabled", 1).getValue() ~ " " ~ p.getNode("enabled", 1).getBoolValue());
					  return p.getNode("enabled", 1).getBoolValue();
					}
				}

				return 0;
			}

			var setScenerySuffix = func(layer, enable) {
				var suffixes = props.globals.getNode("/sim/rendering", 1).getChildren("scenery-path-suffix");
				#printf("Setting scenery suffix" ~ layer ~ " to " ~ enable);

				foreach (var p; suffixes) {
				  if (p.getNode("name",1).getValue() == layer) {
						#printf("Matched scenery suffix" ~ layer ~ " to " ~ enable);
						p.getNode("enabled", 1).setBoolValue(enable);
					}
				}
			}

      var materials = { "Region-specific" : "Materials/regions/materials.xml",
                        "Global" : "Materials/default/materials.xml",
                        "Global alternative (DDS format)" : "Materials/dds/materials.xml" };


			gui.enable_widgets(cmdarg(), "shadows-debug", getprop("/sim/gui/devel-widgets"));
			props.globals.getNode("/sim/rendering/shaders/quality-level", 1).setAttribute("userarchive", 0);
			setprop("/sim/gui/frame-rate-throttled", (getprop("/sim/frame-rate-throttle-hz") > 0));

			var matfile = getprop("/sim/rendering/materials-file");
			foreach (var name; keys(materials)) {
			  if (matfile == materials[name]) {
          setprop("/sim/gui/dialogs/rendering/texture-set", name);
			  }
			}

      var vendor = getprop("/sim/rendering/gl-vendor");
      if (vendor != nil) {
        vendor = string.lc(vendor);
        if (find("intel", vendor) != -1) {
          setprop("/sim/gui/dialogs/rendering/shader-warning", 1);
        } else {
          setprop("/sim/gui/dialogs/rendering/shader-warning", 0);
        }
      }

			# Mapping from underlying properties to those used by the GUI.

			if (getScenerySuffix("Pylons")) {
			  setprop("/sim/gui/dialogs/rendering/pylons", "Enabled");
      } else {
				setprop("/sim/gui/dialogs/rendering/pylons", "Disabled");
			}

			if (getScenerySuffix("Roads")) {
			  setprop("/sim/gui/dialogs/rendering/roads", "Enabled");
      } else {
				setprop("/sim/gui/dialogs/rendering/roads", "Disabled");
			}

			if (getScenerySuffix("Buildings")) {
			  setprop("/sim/gui/dialogs/rendering/buildings", "OpenStreetMap Data");
      } else if (getprop("/sim/rendering/random-buildings")) {
			  setprop("/sim/gui/dialogs/rendering/buildings", "Random");
      } else {
			  setprop("/sim/gui/dialogs/rendering/buildings", "Disabled");
      }

			if (getprop("/sim/rendering/random-objects")) {
			  setprop("/sim/gui/dialogs/rendering/random-objects", "Enabled");
			} else {
				setprop("/sim/gui/dialogs/rendering/random-objects", "Disabled");
			}

			if (getprop("/sim/rendering/random-vegetation")) {
				var density = getprop("/sim/rendering/vegetation-density");
				if (density < 0.2) {
					setprop("/sim/gui/dialogs/rendering/random-vegetation", "Ultra Low Density");
					# 0.1
				} else if (density < 0.4) {
					setprop("/sim/gui/dialogs/rendering/random-vegetation", "Very Low Density");
					# 0.25
				} else if (density < 0.8) {
					setprop("/sim/gui/dialogs/rendering/random-vegetation", "Low Density");
					# 0.5
				} else if (density < 1.5) {
					setprop("/sim/gui/dialogs/rendering/random-vegetation", "Medium Density");
					# 1.0
				} else if (density < 3.0) {
					setprop("/sim/gui/dialogs/rendering/random-vegetation", "High Density");
					# 2.0
				} else if (density < 6.0) {
					setprop("/sim/gui/dialogs/rendering/random-vegetation", "Very High Density");
					# 4.0
				} else {
					setprop("/sim/gui/dialogs/rendering/random-vegetation", "Ultra High Density");
					# 8.0
				}
			} else {
				setprop("/sim/gui/dialogs/rendering/random-vegetation", "Disabled");
			}

			if (getprop("/sim/rendering/random-vegetation-shadows")) {
				setprop("/sim/gui/dialogs/rendering/vegetation-shadows", "Enabled");
			} else {
				setprop("/sim/gui/dialogs/rendering/vegetation-shadows", "Disabled");
			}

			if (getScenerySuffix("Objects")) {
			  setprop("/sim/gui/dialogs/rendering/placed-objects", "Enabled");
      } else {
				setprop("/sim/gui/dialogs/rendering/placed-objects", "Disabled");
			}


      var reload_props = [
        "/sim/rendering/materials-file",
        "/sim/rendering/osm-buildings",
        "/sim/rendering/random-buildings",
        "/sim/rendering/random-objects",
        "/sim/rendering/random-vegetation",
        "/sim/rendering/random-vegetation-shadows",
        "/sim/rendering/vegetation-density",
        "/sim/rendering/clouds3d-enable",
        "/sim/rendering/clouds3d-density",
				"/sim/rendering/scenery-path-suffix[0]/enabled",
				"/sim/rendering/scenery-path-suffix[1]/enabled",
				"/sim/rendering/scenery-path-suffix[2]/enabled",
				"/sim/rendering/scenery-path-suffix[3]/enabled",
				"/sim/rendering/scenery-path-suffix[4]/enabled",
				"/sim/rendering/scenery-path-suffix[5]/enabled",
				"/sim/rendering/scenery-path-suffix[6]/enabled"
				];

      var reload_vals = {};
      foreach (var p; reload_props) {
        reload_vals[p] = getprop(p);
      }


			]]>
		</open>
	</nasal>
</PropertyList>