0) {
descD = sprintf("visible when viewpoint within\n%.0f meters", getprop("/sim/rendering/static-lod/aimp-detailed"));
} else {
descB = "always visible";
}
} else if (mode == "High Detail only") {
descW = "Always visible regardless of distance";
} else {
descW = "";
descD = sprintf("0 to %.0fm from viewpoint", getprop("/sim/rendering/static-lod/aimp-detailed"));
descB = sprintf("%.0fm to %.0fm", getprop("/sim/rendering/static-lod/aimp-detailed"), getprop("/sim/rendering/static-lod/aimp-detailed")+getprop("/sim/rendering/static-lod/aimp-bare"));
var lowDetailRange = getprop("/sim/rendering/static-lod/aimp-detailed") + getprop("/sim/rendering/static-lod/aimp-bare") ;
if (lowDetailRange < 1000)
descW = sprintf("WARNING: Low Detail too close, nothing drawn over %.0fm", lowDetailRange);
}
} else {
if (mode == "Low Detail only") {
if (getprop("/sim/rendering/static-lod/aimp-bare")>0) {
descD = sprintf("visible when larger than\n%.0f pixels in size on screen", getprop("/sim/rendering/static-lod/aimp-detailed"));
descB = "";
descW = sprintf("WARNING: When smaller than %.0f pixels nothing will be drawn", getprop("/sim/rendering/static-lod/aimp-bare"));
} else {
descW = "";
descD = "";
descB = "always visible";
}
} else if (mode == "High Detail only") {
descW = "Always visible regardless of distance";
} else {
descW = "";
if (getprop("/sim/rendering/static-lod/aimp-bare")>0)
descW = sprintf("WARNING: Below %.0f pixels in size nothing will be drawn", getprop("/sim/rendering/static-lod/aimp-bare"));
descD = sprintf("above %.0f pixels in size", getprop("/sim/rendering/static-lod/aimp-detailed"));
descB = sprintf("above %.0f pixels in size", getprop("/sim/rendering/static-lod/aimp-bare"));
}
}
setprop("/sim/gui/dialogs/static-lod/aimp-detailed-description", descD);
setprop("/sim/gui/dialogs/static-lod/aimp-bare-description", descB);
setprop("/sim/gui/dialogs/static-lod/aimp-bare-description1", descW);
};
# returns non zero if the value was adjusted and it can be adjusted (can_reload)
adjustValue = func(id, nodeId, value, can_reload){
var node = nodeId.getNode(id);
if (node != nil) {
var cv = node.getValue();
if (cv != value) {
node.setValue(value);
if (can_reload)
reload_sliders(1);
}
}
return 0; # no need to reload.
}
update_ai_mp = func(can_reload) {
var mode = update_enabling ();
var distance_mode = getprop("sim/rendering/static-lod/aimp-range-mode-distance");
update_description(mode);
if (mode == "Low Detail only") {
setprop("/sim/rendering/static-lod/aimp-detailed",getprop("/sim/rendering/static-lod/aimp-bare"));
can_reload = adjustValue("max", ai_mp_bare, 2000, can_reload);
reload_sliders(can_reload);
} else if (mode == "High Detail only") {
# setprop("/sim/rendering/static-lod/aimp-bare", 0);
# setprop("/sim/rendering/static-lod/aimp-detailed",-1);
} else {
if (!distance_mode) {
if (getprop("/sim/rendering/static-lod/aimp-bare") > getprop("/sim/rendering/static-lod/aimp-detailed")){
setprop("/sim/rendering/static-lod/aimp-bare", getprop("/sim/rendering/static-lod/aimp-detailed")-1 ) ;
}
can_reload = adjustValue("max", ai_mp_detailed, 2000, can_reload);
can_reload = adjustValue("max", ai_mp_bare, getprop("/sim/rendering/static-lod/aimp-detailed"), can_reload);
} else {
can_reload = adjustValue("max", ai_mp_detailed, 3000, can_reload);
can_reload = adjustValue("max", ai_mp_bare, 3000, can_reload);
}
}
}
update_aimp_mode = func{
var new_mode = getprop("/sim/gui/dialogs/static-lod/aimp-mp-mode");
if (new_mode != current_ai_mp_mode) {
if (current_ai_mp_mode == "Specify Ranges") {
current_detailed = getprop("/sim/rendering/static-lod/aimp-detailed");
current_bare =getprop("/sim/rendering/static-lod/aimp-bare");
}
if (current_ai_mp_mode == "Low Detail only" or current_ai_mp_mode == "High Detail only") {
if (current_detailed != nil)
setprop("/sim/rendering/static-lod/aimp-detailed", current_detailed );
if (current_bare != nil)
setprop("/sim/rendering/static-lod/aimp-bare",current_bare);
}
if (new_mode == "High Detail only") {
setprop("/sim/rendering/static-lod/aimp-detailed", -1);
setprop("/sim/rendering/static-lod/aimp-bare",0);
} else if (new_mode == "Low Detail only"){
setprop("/sim/rendering/static-lod/aimp-detailed", 0);
setprop("/sim/rendering/static-lod/aimp-bare",0);
}
current_ai_mp_mode = new_mode;
}
update_description(update_enabling());
}
# setlistener("/sim/gui/dialogs/static-lod/aimp-mp-mode", func(v){
# },0 ,0);
update_scenery_text ();
update_ai_mp (0);
]]>
static-lod
vbox
hbox
1
1
table
center
0
1
center
1
0
1
1
300
14
scenery-detailed
/sim/rendering/static-lod/detailed
1
0
100000
dialog-apply
scenery-detailed
nasal
1
2
left
true
/sim/rendering/static-lod/detailed-description
2
0
2
1
300
14
scenery-rough
/sim/rendering/static-lod/rough-delta
1
0
200000
dialog-apply
scenery-rough
nasal
2
2
left
true
/sim/rendering/static-lod/rough-delta-description
3
0
3
1
300
14
scenery-bare
/sim/rendering/static-lod/bare-delta
1
0
200000
dialog-apply
scenery-bare
nasal
3
2
left
true
/sim/rendering/static-lod/bare-delta-description
4
0
7
5
1
center
6
1
200
aimp-mode
/sim/gui/dialogs/static-lod/aimp-mp-mode
Specify Ranges
Low Detail only
High Detail only
false
dialog-apply
aimp-mode
nasal
6
2
left
distance
sim/rendering/static-lod/aimp-range-mode-distance
true
property-toggle
sim/rendering/static-lod/aimp-range-mode-distance
0
nasal
7
0
aimp-detailed-label
/sim/gui/dialogs/static-lod/aimp-mp-detailed-enabled
7
1
300
14
aimp-detailed
/sim/gui/dialogs/static-lod/aimp-mp-detailed-enabled
/sim/rendering/static-lod/aimp-detailed
1
0
1500
dialog-apply
aimp-detailed
nasal
dialog-update
7
2
left
true
/sim/gui/dialogs/static-lod/aimp-detailed-description
aimp-bare-label
/sim/gui/dialogs/static-lod/aimp-mp-bare-enabled
8
0
8
1
/sim/gui/dialogs/static-lod/aimp-mp-bare-enabled
300
14
aimp-bare
/sim/rendering/static-lod/aimp-bare
1
0
1500
dialog-apply
aimp-bare
nasal
dialog-update
8
2
left
top
true
/sim/gui/dialogs/static-lod/aimp-bare-description
9
1
left
top
true
/sim/gui/dialogs/static-lod/aimp-bare-description1
11
0
right
11
1
300
14
aimp-interior
/sim/rendering/static-lod/aimp-interior
1
0
1500
dialog-apply
aimp-interior
11
2
left
top
%.0f
true
/sim/rendering/static-lod/aimp-interior
hbox
left
true
hbox
left
hbox
left
hbox
center
table
4
center
0
0
/scenery/use-vpb
true
elev-lod
0
1
/scenery/use-vpb
true
1.0
10.0
1.0
0.17
/scenery/elevation-mesh/lod-range-factor
dialog-apply
elev-lod
nasal
0
2
/scenery/use-vpb
true
%dkm
true
/sim/gui/dialogs/static-lod/lod-range-km
1
0
/scenery/use-vpb
true
1
1
line-lod
/scenery/use-vpb
true
0.0
6.0
1.0
0.17
/sim/rendering/static-lod/line-features-lod-level
dialog-apply
line-lod
1
2
/scenery/use-vpb
true
%d
true
/sim/rendering/static-lod/line-features-lod-level
2
0
/scenery/use-vpb
true
2
1
veg-lod
/scenery/use-vpb
true
0.0
6.0
1.0
0.17
/sim/rendering/static-lod/vegetation-lod-level
dialog-apply
veg-lod
2
2
/scenery/use-vpb
true
%d
true
/sim/rendering/static-lod/vegetation-lod-level
hbox
center
table
4
center
0
0
0
1
2
1
0
1
1
line-width-lod0
/scenery/use-vpb
true
1.0
50.0
1.0
0.17
/sim/rendering/static-lod/lod-level[0]/line-features-min-width
dialog-apply
line-width-lod0
1
2
/scenery/use-vpb
true
%d
true
/sim/rendering/static-lod/lod-level[0]/line-features-min-width
2
0
2
1
line-width-lod1
/scenery/use-vpb
true
1.0
50.0
1.0
0.17
/sim/rendering/static-lod/lod-level[1]/line-features-min-width
dialog-apply
line-width-lod1
2
2
/scenery/use-vpb
true
%d
true
/sim/rendering/static-lod/lod-level[1]/line-features-min-width
3
0
3
1
line-width-lod2
/scenery/use-vpb
true
1.0
50.0
1.0
0.17
/sim/rendering/static-lod/lod-level[2]/line-features-min-width
dialog-apply
line-width-lod2
3
2
/scenery/use-vpb
true
%d
true
/sim/rendering/static-lod/lod-level[2]/line-features-min-width
4
0
4
1
line-width-lod3
/scenery/use-vpb
true
1.0
50.0
1.0
0.17
/sim/rendering/static-lod/lod-level[3]/line-features-min-width
dialog-apply
line-width-lod3
4
2
/scenery/use-vpb
true
%d
true
/sim/rendering/static-lod/lod-level[3]/line-features-min-width
5
0
5
1
line-width-lod4
/scenery/use-vpb
true
1.0
50.0
1.0
0.17
/sim/rendering/static-lod/lod-level[4]/line-features-min-width
dialog-apply
line-width-lod4
5
2
/scenery/use-vpb
true
%d
true
/sim/rendering/static-lod/lod-level[4]/line-features-min-width
6
0
6
1
line-width-lod5
/scenery/use-vpb
true
1.0
50.0
1.0
0.17
/sim/rendering/static-lod/lod-level[5]/line-features-min-width
dialog-apply
line-width-lod5
6
2
/scenery/use-vpb
true
%d
true
/sim/rendering/static-lod/lod-level[5]/line-features-min-width
7
0
7
1
line-width-lod6
/scenery/use-vpb
true
1.0
50.0
1.0
0.17
/sim/rendering/static-lod/lod-level[6]/line-features-min-width
dialog-apply
line-width-lod6
7
2
/scenery/use-vpb
true
%d
true
/sim/rendering/static-lod/lod-level[6]/line-features-min-width
hbox
10
true
true
true
true