]> git.mxchange.org Git - simgear.git/commitdiff
Taxiway signs: print out more meaningful error messages on wrong size
authorChristian Schmitt <chris@ilovelinux.de>
Wed, 20 Jun 2012 10:54:41 +0000 (12:54 +0200)
committerJames Turner <zakalawe@mac.com>
Fri, 22 Jun 2012 12:39:45 +0000 (14:39 +0200)
settings and fall back to the default value in such cases.

simgear/scene/tgdb/apt_signs.cxx

index 3bd313aa163d3ed17be26fd55b848aebff54c839..1bc15f37f3e97ca66aa11d0172d1d38776e9c6df 100644 (file)
@@ -373,36 +373,44 @@ void AirportSignBuilder::addSign(const SGGeod& pos, double heading, const std::s
                     n = n.substr(0, 2);
                 }
                 if (n == "@Y") {
-                    if (size < 4) {
-                        sign_height = HT[size < 0 ? 3 : size];
-                        newmat = "YellowSign";
-                        newtype = 'Y';
-                        continue;
+                    if (size > 3) {
+                        size = -1;
+                        SG_LOG(SG_TERRAIN, SG_ALERT, SIGN "Wrong size for " << name << ". Allowed values are 1 to 3");
                     }
+                    sign_height = HT[size < 0 ? 3 : size];
+                    newmat = "YellowSign";
+                    newtype = 'Y';
+                    continue;
 
                 } else if (n == "@R") {
-                    if (size < 4) {
-                        sign_height = HT[size < 0 ? 3 : size];
-                        newmat = "RedSign";
-                        newtype = 'R';
-                        continue;
+                    if (size > 3) {
+                        size = -1;
+                        SG_LOG(SG_TERRAIN, SG_ALERT, SIGN "Wrong size for " << name << ". Allowed values are 1 to 3");
                     }
+                    sign_height = HT[size < 0 ? 3 : size];
+                    newmat = "RedSign";
+                    newtype = 'R';
+                    continue;
 
                 } else if (n == "@L") {
-                    if (size < 4) {
-                        sign_height = HT[size < 0 ? 3 : size];
-                        newmat = "FramedSign";
-                        newtype = 'L';
-                        continue;
+                    if (size > 3) {
+                        size = -1;
+                        SG_LOG(SG_TERRAIN, SG_ALERT, SIGN "Wrong size for " << name << ". Allowed values are 1 to 3");
                     }
+                    sign_height = HT[size < 0 ? 3 : size];
+                    newmat = "FramedSign";
+                    newtype = 'L';
+                    continue;
 
                 } else if (n == "@B") {
-                    if (size < 0 || size == 4 || size == 5) {
-                        sign_height = HT[size < 0 ? 4 : size];
-                        newmat = "BlackSign";
-                        newtype = 'B';
-                        continue;
+                    if ( (size != -1) && (size != 4) && (size != 5) ) {
+                        size = -1;
+                        SG_LOG(SG_TERRAIN, SG_ALERT, SIGN "Wrong size for " << name << ". Allowed values are 4 or 5");
                     }
+                    sign_height = HT[size < 0 ? 4 : size];
+                    newmat = "BlackSign";
+                    newtype = 'B';
+                    continue;
                 }
             }