Library globals

Source video.nas

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
#print("A");

var save = func()
{
  var _props = [
    "random-objects",
    "random-vegetation",
    "random-vegetation-shadows",
    "random-vegetation-normals",
    "vegetation-density",
    "random-buildings",
    "building-density",
    "point-sprites",
    "particles",
    "clouds3d-enable",
    "clouds3d-vis-range",
    "clouds3d-detail-range",
    "clouds3d-density",
    "shadows/enabled"];
  var sprop = props.globals.getNode("/sim/rendering/");
  var dprop = props.globals.getNode("/tmp/rendering/", 1);
  props.copy(sprop.getNode("shaders"), dprop.getNode("shaders", 1), 1);
  foreach (var p; _props) {
    var src = sprop.getNode(p);
    var dest = dprop.getNode(p, 1);
    var type = src.getType();
    var val = src.getValue();
    if(type == "ALIAS" or type == "NONE") return;
    elsif(type == "BOOL") dest.setBoolValue(val);
    elsif(type == "INT" or type == "LONG") dest.setIntValue(val);
    elsif(type == "FLOAT" or type == "DOUBLE") dest.setDoubleValue(val);
    else dest.setValue(val);
    dest.setAttribute(src.getAttribute());
  }

  var fg_home = getprop("/sim/fg-home");
  var renderer = getprop("/sim/rendering/gl-renderer");
  var file = renderer;
  var pos = find("x86/", renderer);
  if (pos == -1) pos = find("/", renderer);
  if (pos == -1) pos = find(" (", renderer);
  if (pos != -1) file = substr(renderer, 0, int(pos));

  var path = fg_home ~ "/Export/" ~ file ~ ".xml";
  io.write_properties( path, dprop);
  gui.popupTip("Configuration is written to:\n" ~ path, 6);
}