Fix for stop playing engine sound when scenario is going to disable
This commit is contained in:
parent
1982df9f16
commit
5aa5f731a6
@ -43,11 +43,6 @@
|
|||||||
<property>/addons/by-id/org.flightgear.addons.Aerotow/addon-devel/ai-model</property>
|
<property>/addons/by-id/org.flightgear.addons.Aerotow/addon-devel/ai-model</property>
|
||||||
<value type="string">Cub</value>
|
<value type="string">Cub</value>
|
||||||
</binding>
|
</binding>
|
||||||
<binding>
|
|
||||||
<command>property-assign</command>
|
|
||||||
<property>/addons/by-id/org.flightgear.addons.Aerotow/addon-devel/sound/enable</property>
|
|
||||||
<value type="bool">true</value>
|
|
||||||
</binding>
|
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<label>Call for Robin DR400 aircraft</label>
|
<label>Call for Robin DR400 aircraft</label>
|
||||||
@ -56,11 +51,6 @@
|
|||||||
<property>/addons/by-id/org.flightgear.addons.Aerotow/addon-devel/ai-model</property>
|
<property>/addons/by-id/org.flightgear.addons.Aerotow/addon-devel/ai-model</property>
|
||||||
<value type="string">DR400</value>
|
<value type="string">DR400</value>
|
||||||
</binding>
|
</binding>
|
||||||
<binding>
|
|
||||||
<command>property-assign</command>
|
|
||||||
<property>/addons/by-id/org.flightgear.addons.Aerotow/addon-devel/sound/enable</property>
|
|
||||||
<value type="bool">true</value>
|
|
||||||
</binding>
|
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<label>Call for Cessna 182 aircraft</label>
|
<label>Call for Cessna 182 aircraft</label>
|
||||||
@ -69,11 +59,6 @@
|
|||||||
<property>/addons/by-id/org.flightgear.addons.Aerotow/addon-devel/ai-model</property>
|
<property>/addons/by-id/org.flightgear.addons.Aerotow/addon-devel/ai-model</property>
|
||||||
<value type="string">c182</value>
|
<value type="string">c182</value>
|
||||||
</binding>
|
</binding>
|
||||||
<binding>
|
|
||||||
<command>property-assign</command>
|
|
||||||
<property>/addons/by-id/org.flightgear.addons.Aerotow/addon-devel/sound/enable</property>
|
|
||||||
<value type="bool">true</value>
|
|
||||||
</binding>
|
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<label>Disable tow aircraft</label>
|
<label>Disable tow aircraft</label>
|
||||||
@ -84,7 +69,14 @@
|
|||||||
</binding>
|
</binding>
|
||||||
<binding>
|
<binding>
|
||||||
<command>nasal</command>
|
<command>nasal</command>
|
||||||
<script><![CDATA[aerotow.stopAerotow();]]></script>
|
<script><![CDATA[
|
||||||
|
# Run stopAerotow() with a delay to ensure that the engine sound turns off
|
||||||
|
var timer = maketimer(1, func () {
|
||||||
|
aerotow.stopAerotow();
|
||||||
|
});
|
||||||
|
timer.singleShot = 1;
|
||||||
|
timer.start();
|
||||||
|
]]></script>
|
||||||
</binding>
|
</binding>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
|
47
aerotow.nas
47
aerotow.nas
@ -41,7 +41,7 @@ var g_towListeners = [];
|
|||||||
var init = func () {
|
var init = func () {
|
||||||
# Listener for ai-model property triggered when the user select a tow aircraft from add-on menu
|
# Listener for ai-model property triggered when the user select a tow aircraft from add-on menu
|
||||||
append(g_towListeners, setlistener(ADDON_NODE_PATH ~ "/addon-devel/ai-model", func () {
|
append(g_towListeners, setlistener(ADDON_NODE_PATH ~ "/addon-devel/ai-model", func () {
|
||||||
startAerotow();
|
restartAerotow();
|
||||||
}));
|
}));
|
||||||
|
|
||||||
append(g_towListeners, setlistener("/sim/presets/longitude-deg", func () {
|
append(g_towListeners, setlistener("/sim/presets/longitude-deg", func () {
|
||||||
@ -104,6 +104,44 @@ var uninit = func () {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#
|
||||||
|
# Function for restart AI scenario with delay when the sound has to stop.
|
||||||
|
#
|
||||||
|
# Return 1 on successful, otherwise 0.
|
||||||
|
#
|
||||||
|
var restartAerotow = func () {
|
||||||
|
messages.displayOk("Aerotow in the way");
|
||||||
|
|
||||||
|
# Stop playing engine sound
|
||||||
|
setprop(ADDON_NODE_PATH ~ "/addon-devel/sound/enable", 0);
|
||||||
|
|
||||||
|
# Wait a second for the engine sound to turn off
|
||||||
|
var timer = maketimer(1, func () {
|
||||||
|
unloadScenario();
|
||||||
|
});
|
||||||
|
timer.singleShot = 1;
|
||||||
|
timer.start();
|
||||||
|
}
|
||||||
|
|
||||||
|
#
|
||||||
|
# Unload scenario and start a new one
|
||||||
|
#
|
||||||
|
var unloadScenario = func () {
|
||||||
|
if (g_isScenarioLoaded) {
|
||||||
|
var args = props.Node.new({ "name": SCENARIO_ID });
|
||||||
|
if (fgcommand("unload-scenario", args)) {
|
||||||
|
g_isScenarioLoaded = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
# Start aerotow with delay to avoid duplicate engine sound playing
|
||||||
|
var timer = maketimer(1, func () {
|
||||||
|
startAerotow();
|
||||||
|
});
|
||||||
|
timer.singleShot = 1;
|
||||||
|
timer.start();
|
||||||
|
}
|
||||||
|
|
||||||
#
|
#
|
||||||
# Main function to prepare AI scenario and run it.
|
# Main function to prepare AI scenario and run it.
|
||||||
#
|
#
|
||||||
@ -111,8 +149,11 @@ var uninit = func () {
|
|||||||
#
|
#
|
||||||
var startAerotow = func () {
|
var startAerotow = func () {
|
||||||
var args = props.Node.new({ "name": SCENARIO_ID });
|
var args = props.Node.new({ "name": SCENARIO_ID });
|
||||||
|
|
||||||
if (g_isScenarioLoaded) {
|
if (g_isScenarioLoaded) {
|
||||||
fgcommand("unload-scenario", args);
|
if (fgcommand("unload-scenario", args)) {
|
||||||
|
g_isScenarioLoaded = 0;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
generateScenarioXml();
|
generateScenarioXml();
|
||||||
@ -124,6 +165,8 @@ var startAerotow = func () {
|
|||||||
if (fgcommand("load-scenario", args)) {
|
if (fgcommand("load-scenario", args)) {
|
||||||
g_isScenarioLoaded = 1;
|
g_isScenarioLoaded = 1;
|
||||||
messages.displayOk("Let's fly!");
|
messages.displayOk("Let's fly!");
|
||||||
|
|
||||||
|
setprop(ADDON_NODE_PATH ~ "/addon-devel/sound/enable", 1);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user