1
0
Fork 0

issue #281: tutorial's view direction messed-up/unusable by outside views

When user switched to a different view mode (e.g. chase/helicopter/tower
view) before or during a tutorial, everything went wrong...
Need to control (save/restore/switch) the view number (view mode) during
tutorials.  Also adds an option to explicitly change view mode during
a tutorial, i.e. tutorials can switch to tower view, chase view, ... now.
This commit is contained in:
ThorstenB 2011-06-03 00:39:05 +02:00
parent 957305f41b
commit f2d2b8e8b1
3 changed files with 9 additions and 0 deletions

View file

@ -341,8 +341,11 @@ view to a new view position/direction. All parameters are optional. If, for
example, only <field-of-view> is set, then the view will only zoom in -- the
direction and position will remain the same. This feature is meant for cockpit
tutorials, where the pilot's view is directed to some switch or instrument.
view-number can be used to switch between different views, i.e. to tower-view,
copilot view etc. Default view-number is 0 (captain's view).
<view>
<view-number>0</view-number> 0=captain's view, 1=copilot,...
<heading-offset-deg>20</heading-offset-deg> positive is left
<pitch-offset-deg>-4</pitch-offset-deg> positive is up
<roll-offset-deg>0</roll-offset-deg> positive is roll right

View file

@ -345,6 +345,9 @@ var set_view = func(node = nil) {
node != nil or return;
var v = node.getChild("view");
if (v != nil) {
# when changing view direction, switch to view 0 (captain's view),
# unless another view is explicitly specified
v.initNode("view-number", 0, "INT", 0);
view.point.move(v);
return 1;
}

View file

@ -593,6 +593,9 @@ var point = {
},
move : func(prop, time = nil) {
prop != nil or return;
var n = prop.getNode("view-number");
if (n != nil)
setprop("/sim/current-view/view-number",n.getValue());
foreach (var a; keys(me.axes)) {
var n = prop.getNode(a);
me.axes[a].reset();