]> git.mxchange.org Git - flightgear.git/blobdiff - src/Cockpit/panel_io.cxx
Fix line endings
[flightgear.git] / src / Cockpit / panel_io.cxx
index a8ae3f8828671afba0b13098dd3814674eb93604..edfc072b0fabf6fe7993cdc97c4de7916f7cc141 100644 (file)
@@ -171,6 +171,19 @@ readConditions (SGConditional *component, const SGPropertyNode *node)
 static FGPanelAction *
 readAction (const SGPropertyNode * node, float w_scale, float h_scale)
 {
+  unsigned int i, j;
+  SGPropertyNode *binding;
+  vector<SGPropertyNode_ptr>bindings = node->getChildren("binding");
+
+  // button-less actions are fired initially
+  if (!node->hasValue("w") || !node->hasValue("h")) {
+    for (i = 0; i < bindings.size(); i++) {
+      FGBinding b(bindings[i]);
+      b.fire();
+    }
+    return 0;
+  }
+
   string name = node->getStringValue("name");
 
   int button = node->getIntValue("button");
@@ -182,11 +195,8 @@ readAction (const SGPropertyNode * node, float w_scale, float h_scale)
 
   FGPanelAction * action = new FGPanelAction(button, x, y, w, h, repeatable);
 
-  vector<SGPropertyNode_ptr>bindings = node->getChildren("binding");
   SGPropertyNode * dest = fgGetNode("/sim/bindings/panel", true);
 
-  SGPropertyNode *binding;
-  unsigned int i, j;
   for (i = 0; i < bindings.size(); i++) {
     SG_LOG(SG_INPUT, SG_INFO, "Reading binding "
       << bindings[i]->getStringValue("command"));
@@ -429,6 +439,7 @@ readLayer (const SGPropertyNode * node, float w_scale, float h_scale)
   string type = node->getStringValue("type");
   int w = node->getIntValue("w", -1);
   int h = node->getIntValue("h", -1);
+  bool emissive = node->getBoolValue("emissive", false);
   if (w != -1)
     w = int(w * w_scale);
   if (h != -1)
@@ -447,6 +458,11 @@ readLayer (const SGPropertyNode * node, float w_scale, float h_scale)
   if (type == "texture") {
     FGCroppedTexture texture = readTexture(node->getNode("texture"));
     layer = new FGTexturedLayer(texture, w, h);
+    if (emissive) {
+      FGTexturedLayer *tl=(FGTexturedLayer*)layer;
+      tl->setEmissive(true);
+    }
+
   }
 
                                // A group of sublayers.