- } else if (distance < .02 && abs(facenormals[i].x) > abs(facenormals[i].y) && abs(facenormals[i].x) > abs(facenormals[i].z)) {
- decalposition[numdecals] = where;
- decaltype[numdecals] = atype;
- decalrotation[numdecals] = rotation;
- decalalivetime[numdecals] = 0;
- decalopacity[numdecals] = opacity - distance / 10;
-
- if (decalopacity[numdecals > 0]) {
- placex = vertex[Triangles[i].vertex[0]].y;
- placez = vertex[Triangles[i].vertex[0]].z;
-
- decaltexcoords[numdecals][0][0] = (placex - where.y) / (size) / 2 + .5;
- decaltexcoords[numdecals][0][1] = (placez - where.z) / (size) / 2 + .5;
-
- decalvertex[numdecals][0].x = vertex[Triangles[i].vertex[0]].x;
- decalvertex[numdecals][0].z = placez;
- decalvertex[numdecals][0].y = placex;
-
-
- placex = vertex[Triangles[i].vertex[1]].y;
- placez = vertex[Triangles[i].vertex[1]].z;
-
- decaltexcoords[numdecals][1][0] = (placex - where.y) / (size) / 2 + .5;
- decaltexcoords[numdecals][1][1] = (placez - where.z) / (size) / 2 + .5;
-
- decalvertex[numdecals][1].x = vertex[Triangles[i].vertex[1]].x;
- decalvertex[numdecals][1].z = placez;
- decalvertex[numdecals][1].y = placex;
-
-
- placex = vertex[Triangles[i].vertex[2]].y;
- placez = vertex[Triangles[i].vertex[2]].z;
-
- decaltexcoords[numdecals][2][0] = (placex - where.y) / (size) / 2 + .5;
- decaltexcoords[numdecals][2][1] = (placez - where.z) / (size) / 2 + .5;
-
- decalvertex[numdecals][2].x = vertex[Triangles[i].vertex[2]].x;
- decalvertex[numdecals][2].z = placez;
- decalvertex[numdecals][2].y = placex;
-
- if (!(decaltexcoords[numdecals][0][0] < 0 && decaltexcoords[numdecals][1][0] < 0 && decaltexcoords[numdecals][2][0] < 0))
- if (!(decaltexcoords[numdecals][0][1] < 0 && decaltexcoords[numdecals][1][1] < 0 && decaltexcoords[numdecals][2][1] < 0))
- if (!(decaltexcoords[numdecals][0][0] > 1 && decaltexcoords[numdecals][1][0] > 1 && decaltexcoords[numdecals][2][0] > 1))
- if (!(decaltexcoords[numdecals][0][1] > 1 && decaltexcoords[numdecals][1][1] > 1 && decaltexcoords[numdecals][2][1] > 1)) {
- if (decalrotation[numdecals]) {
- for (j = 0; j < 3; j++) {
+ } else if (distance < .02 && abs(Triangles[i].facenormal.x) > abs(Triangles[i].facenormal.y) && abs(Triangles[i].facenormal.x) > abs(Triangles[i].facenormal.z)) {
+ if ((opacity - distance / 10) > 0) {
+ Decal decal(where, atype, opacity - distance / 10, rotation, size, *this, i, 1);
+
+ if (!(decal.texcoords[0][0] < 0 && decal.texcoords[1][0] < 0 && decal.texcoords[2][0] < 0)) {
+ if (!(decal.texcoords[0][1] < 0 && decal.texcoords[1][1] < 0 && decal.texcoords[2][1] < 0)) {
+ if (!(decal.texcoords[0][0] > 1 && decal.texcoords[1][0] > 1 && decal.texcoords[2][0] > 1)) {
+ if (!(decal.texcoords[0][1] > 1 && decal.texcoords[1][1] > 1 && decal.texcoords[2][1] > 1)) {
+ if (decal.rotation) {
+ for (int j = 0; j < 3; j++) {