From b09f116653dd549302a4e2cc0de1122aefca39c1 Mon Sep 17 00:00:00 2001 From: Richard Senior Date: Fri, 24 Apr 2015 15:17:27 +0100 Subject: [PATCH 1/2] Checklists: Fix bug where first checklist has multiple pages The change introduced in commit 8c7fc119 to go to the last checklist on open causes a problem when the first checklist has multiple pages. If the last opened checklist did not have multiple pages, the previous and next page buttons are still shown. This commit runs the same binding as used by the combo box to reset the visibility of these buttons immediately before the page is displayed. --- gui/dialogs/checklist.xml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/gui/dialogs/checklist.xml b/gui/dialogs/checklist.xml index 941705285..97fb4389b 100644 --- a/gui/dialogs/checklist.xml +++ b/gui/dialogs/checklist.xml @@ -214,6 +214,12 @@ } } } + + var s = getprop("/sim/gui/dialogs/checklist/selected-checklist"); + setprop("/sim/gui/dialogs/checklist/selected-checklist-max-pages", checklist_size[s]); + setprop("/sim/gui/dialogs/checklist/selected-page", 0); + setprop("/sim/gui/dialogs/checklist/next-available", 1); + setprop("/sim/gui/dialogs/checklist/selected-page-text", "1 / " ~ checklist_size[s]); } else { var group = gui.findElementByName(dlgRoot, "checklist-table-group"); From e033ac2f106efd45155341f877242b448dd8ded5 Mon Sep 17 00:00:00 2001 From: janodesbois Date: Sat, 6 Jun 2015 07:00:31 +0200 Subject: [PATCH 2/2] FgData part for the MP patch, we allow lag compensation only if the mp plane is close enough, we check only one plane each frame --- Nasal/lag_adjust.nas | 89 ++++++++++++++++++ Translations/en/menu.xml | 1 + Translations/fr/menu.xml | 2 +- gui/dialogs/lag-adjust.xml | 180 +++++++++++++++++++++++++++++++++++++ gui/menubar.xml | 7 ++ preferences.xml | 8 ++ 6 files changed, 286 insertions(+), 1 deletion(-) create mode 100644 Nasal/lag_adjust.nas create mode 100644 gui/dialogs/lag-adjust.xml diff --git a/Nasal/lag_adjust.nas b/Nasal/lag_adjust.nas new file mode 100644 index 000000000..5bac505fa --- /dev/null +++ b/Nasal/lag_adjust.nas @@ -0,0 +1,89 @@ +var i = 0; +var net_raw = "false"; +var spectator = "false"; +var spectator_offset = 0.5; +var range = 3.0; +var offset = 0.0; +var apply_close = "false"; +var master = 0; +var close = 0; + +var mpCheck = func() { + var mpname = getprop("/ai/models/multiplayer["~i~"]/callsign"); + if (mpname != nil) { + if (spectator) { + setprop("/ai/models/multiplayer["~i~"]/controls/compensate-lag", 3); + setprop("/ai/models/multiplayer["~i~"]/controls/player-lag", -spectator_offset); + } else { + var server = getprop("/sim/multiplay/txhost"); + var lag = offset + } if (apply_close) { + var self = geo.aircraft_position(); + var x = getprop("/ai/models/multiplayer["~i~"]/position/global-x"); + var y = getprop("/ai/models/multiplayer["~i~"]/position/global-y"); + var z = getprop("/ai/models/multiplayer["~i~"]/position/global-z"); + var ac = geo.Coord.new().set_xyz(x, y, z); + var distance = self.distance_to(ac)*M2NM; + if ((distance > range)or(distance==nil)) { + setprop("/ai/models/multiplayer["~i~"]/controls/compensate-lag", 1); + } else { + setprop("/ai/models/multiplayer["~i~"]/controls/compensate-lag", 2); + setprop("/ai/models/multiplayer["~i~"]/controls/player-lag", lag); + }; + } else { + setprop("/ai/models/multiplayer["~i~"]/controls/compensate-lag", 1); + } + i += 1; + } else { + i = 0; + if (close) close = 0; + } + if ((master) or (close)) { + settimer(mpCheck, 1); + } +} + +var mpInit = func() { + print("initialising the mp lag system"); + var ls_spect = setlistener("/sim/multiplay/lag/spectator",func { spectator = getprop("/sim/multiplay/lag/spectator")}, 1); + var ls_spctoffset = setlistener("/sim/multiplay/lag/spectator-offset",func { spectator_offset = getprop("/sim/multiplay/lag/spectator-offset")}, 1); + var ls_range = setlistener("/sim/multiplay/lag/range",func { range = getprop("/sim/multiplay/lag/range")}, 1); + var ls_wingmen = setlistener("/sim/multiplay/lag/apply-to-wingmen",func { apply_to_wingmen = getprop("/sim/multiplay/lag/apply-to-wingmen")}, 1); + var ls_offset = setlistener("/sim/multiplay/lag/offset",func { offset = getprop("/sim/multiplay/lag/offset")}, 1); + var ls_close = setlistener("/sim/multiplay/lag/apply-close", func { apply_close = getprop("/sim/multiplay/lag/apply-close")}, 1); +} + +var mpClean = func() { + i = 0; + spectator = 0; + spectator_offset = 0.5; + range = 3.0; + apply_to_wingmen = 0; + apply_close = 0; + offset = 0.0; + close = 1; + master = 0; +} + +var mpStart = func() { + var test = getprop("/sim/multiplay/lag/master"); + if (test == nil) { + settimer(mpStart, 2); + } else { + mpInit(); + setlistener("/sim/multiplay/lag/master", masterSwitch,1); + } +} + +var masterSwitch = func() { + master = getprop("/sim/multiplay/lag/master"); + if (master) { + mpInit(); + mpCheck(); + } else { + mpClean(); + } +} + + +_setlistener("/sim/signals/nasal-dir-initialized", mpStart); diff --git a/Translations/en/menu.xml b/Translations/en/menu.xml index 410f56a3e..f5c37d243 100644 --- a/Translations/en/menu.xml +++ b/Translations/en/menu.xml @@ -83,6 +83,7 @@ Chat Menu Pilot List MPCarrier Selection + lag options Debug diff --git a/Translations/fr/menu.xml b/Translations/fr/menu.xml index 6f3cece82..2455d7448 100644 --- a/Translations/fr/menu.xml +++ b/Translations/fr/menu.xml @@ -97,7 +97,7 @@ Menu de clavardage Liste des pilotes Choix du porte-avions multijoueurs - + Correction de lag Débogage + + hbox + 1 + + + + + + 1 + + + + + + + + table + center + + + 0 + 0 + right + + + + 0 + 1 + 2 + left + master + /sim/multiplay/lag/master + + dialog-apply + master + + + + + 1 + 0 + right + + + + 1 + 1 + lag-adjustment + -0.1 + 0.15 + 0.001 + /sim/multiplay/lag/offset + + dialog-apply + lag-adjustment + + + + + 1 + 3 + left + + %.3f s + /sim/multiplay/lag/offset + true + + + + 2 + 0 + + right + + + 2 + 1 + 2 + left + apply-close + /sim/multiplay/lag/apply-close + + dialog-apply + apply-close + + + + 2 + 2 + Range + 1 + 15 + 0.1 + /sim/multiplay/lag/range + + dialog-apply + range + + + + + 2 + 3 + left + + %.1f nm + /sim/multiplay/lag/range + true + + + + 3 + 0 + + right + + + 3 + 1 + 2 + left + spectator + + /sim/multiplay/lag/spectator + + dialog-apply + spectator + + + + 3 + 2 + spectator-offset + 0 + 1 + 0.05 + /sim/multiplay/lag/spectator-offset + + dialog-apply + spectator-offset + + + + + 3 + 3 + left + + %.2f s + /sim/multiplay/lag/spectator-offset + true + + + + diff --git a/gui/menubar.xml b/gui/menubar.xml index 1baac7008..8bba3a626 100644 --- a/gui/menubar.xml +++ b/gui/menubar.xml @@ -547,6 +547,13 @@ + + lag-adjust + + dialog-show + lag-adjust + + diff --git a/preferences.xml b/preferences.xml index 2584813f5..505e65d23 100644 --- a/preferences.xml +++ b/preferences.xml @@ -771,6 +771,14 @@ Started September 2000 by David Megginson, david@megginson.com callsign + + 3.0 + 0 + 0 + 0 + 0 + 0 + Golf Foxtrot Sierra