diff options
Diffstat (limited to 'src/Decals.cpp')
-rw-r--r-- | src/Decals.cpp | 26 |
1 files changed, 11 insertions, 15 deletions
diff --git a/src/Decals.cpp b/src/Decals.cpp index 92888ec..1522053 100644 --- a/src/Decals.cpp +++ b/src/Decals.cpp @@ -31,7 +31,7 @@ int Decals::MakeDecal(int atype, XYZ location, float size, XYZ normal, int poly, XYZ axis[3]; XYZ temp; - nothing=0; + nothing = {}; axis[0].x=1; axis[1].y=1; @@ -44,20 +44,16 @@ int Decals::MakeDecal(int atype, XYZ location, float size, XYZ normal, int poly, if(normalv[1]>normalv[major])major=1; if(normalv[2]>normalv[major])major=2; - if (normalv[0] == 1 || normalv[1] == 1 || normalv[2] == 1) - { - if ((major == 0 && normal.x > 0) || major == 1){ - right=0; - right.z=-1;} - else if (major == 0){ - right=0; - right.z=1;} - else { - right=0; - right.x=normal.z;} - } - else - CrossProduct(axis[major], normal, &right); + if (normalv[0] == 1 || normalv[1] == 1 || normalv[2] == 1) { + if (major == 0 && normal.x > 0 || major == 1) + right = {0.0f, 0.0f, -1.0f}; + else if (major == 0) + right = {0.0f, 0.0f, 1.0f}; + else if (major == 0) + right = {normal.z, 0.0f, 0.0f}; + } else { + CrossProduct(axis[major], normal, &right); + } CrossProduct(normal, right, &up); Normalise(&up); |