@@ -448,7 +448,7 @@ static void makeFastFace(TileSpec tile, u16 li0, u16 li1, u16 li2, u16 li3,
448
448
v3f p, v3s16 dir, v3f scale, u8 light_source, std::vector<FastFace> &dest)
449
449
{
450
450
FastFace face;
451
-
451
+
452
452
// Position is at the center of the cube.
453
453
v3f pos = p * BS;
454
454
@@ -460,7 +460,9 @@ static void makeFastFace(TileSpec tile, u16 li0, u16 li1, u16 li2, u16 li3,
460
460
v3f vertex_pos[4 ];
461
461
v3s16 vertex_dirs[4 ];
462
462
getNodeVertexDirs (dir, vertex_dirs);
463
+
463
464
v3s16 t;
465
+ u16 t1;
464
466
switch (tile.rotation )
465
467
{
466
468
case 0 :
@@ -471,6 +473,11 @@ static void makeFastFace(TileSpec tile, u16 li0, u16 li1, u16 li2, u16 li3,
471
473
vertex_dirs[3 ] = vertex_dirs[2 ];
472
474
vertex_dirs[2 ] = vertex_dirs[1 ];
473
475
vertex_dirs[1 ] = t;
476
+ t1=li0;
477
+ li0=li3;
478
+ li3=li2;
479
+ li2=li1;
480
+ li1=t1;
474
481
break ;
475
482
case 2 : // R180
476
483
t = vertex_dirs[0 ];
@@ -479,20 +486,36 @@ static void makeFastFace(TileSpec tile, u16 li0, u16 li1, u16 li2, u16 li3,
479
486
t = vertex_dirs[1 ];
480
487
vertex_dirs[1 ] = vertex_dirs[3 ];
481
488
vertex_dirs[3 ] = t;
489
+ t1 = li0;
490
+ li0 = li2;
491
+ li2 = t1;
492
+ t1 = li1;
493
+ li1 = li3;
494
+ li3 = t1;
482
495
break ;
483
496
case 3 : // R270
484
497
t = vertex_dirs[0 ];
485
498
vertex_dirs[0 ] = vertex_dirs[1 ];
486
499
vertex_dirs[1 ] = vertex_dirs[2 ];
487
500
vertex_dirs[2 ] = vertex_dirs[3 ];
488
501
vertex_dirs[3 ] = t;
502
+ t1 = li0;
503
+ li0 = li1;
504
+ li1 = li2;
505
+ li2 = li3;
506
+ li3 = t1;
489
507
break ;
490
508
case 4 : // FXR90
491
509
t = vertex_dirs[0 ];
492
510
vertex_dirs[0 ] = vertex_dirs[3 ];
493
511
vertex_dirs[3 ] = vertex_dirs[2 ];
494
512
vertex_dirs[2 ] = vertex_dirs[1 ];
495
513
vertex_dirs[1 ] = t;
514
+ t1 = li0;
515
+ li0 = li3;
516
+ li3 = li2;
517
+ li2 = li1;
518
+ li1 = t1;
496
519
y0 += h;
497
520
h *= -1 ;
498
521
break ;
@@ -502,6 +525,11 @@ static void makeFastFace(TileSpec tile, u16 li0, u16 li1, u16 li2, u16 li3,
502
525
vertex_dirs[1 ] = vertex_dirs[2 ];
503
526
vertex_dirs[2 ] = vertex_dirs[3 ];
504
527
vertex_dirs[3 ] = t;
528
+ t1 = li0;
529
+ li0 = li1;
530
+ li1 = li2;
531
+ li2 = li3;
532
+ li3 = t1;
505
533
y0 += h;
506
534
h *= -1 ;
507
535
break ;
@@ -511,6 +539,11 @@ static void makeFastFace(TileSpec tile, u16 li0, u16 li1, u16 li2, u16 li3,
511
539
vertex_dirs[3 ] = vertex_dirs[2 ];
512
540
vertex_dirs[2 ] = vertex_dirs[1 ];
513
541
vertex_dirs[1 ] = t;
542
+ t1 = li0;
543
+ li0 = li3;
544
+ li3 = li2;
545
+ li2 = li1;
546
+ li1 = t1;
514
547
x0 += w;
515
548
w *= -1 ;
516
549
break ;
@@ -520,6 +553,11 @@ static void makeFastFace(TileSpec tile, u16 li0, u16 li1, u16 li2, u16 li3,
520
553
vertex_dirs[1 ] = vertex_dirs[2 ];
521
554
vertex_dirs[2 ] = vertex_dirs[3 ];
522
555
vertex_dirs[3 ] = t;
556
+ t1 = li0;
557
+ li0 = li1;
558
+ li1 = li2;
559
+ li2 = li3;
560
+ li3 = t1;
523
561
x0 += w;
524
562
w *= -1 ;
525
563
break ;
@@ -534,6 +572,7 @@ static void makeFastFace(TileSpec tile, u16 li0, u16 li1, u16 li2, u16 li3,
534
572
default :
535
573
break ;
536
574
}
575
+
537
576
for (u16 i=0 ; i<4 ; i++)
538
577
{
539
578
vertex_pos[i] = v3f (
@@ -551,7 +590,7 @@ static void makeFastFace(TileSpec tile, u16 li0, u16 li1, u16 li2, u16 li3,
551
590
vertex_pos[i] += pos;
552
591
}
553
592
554
- f32 abs_scale = 1 .;
593
+ f32 abs_scale = 1.0 ;
555
594
if (scale.X < 0.999 || scale.X > 1.001 ) abs_scale = scale.X ;
556
595
else if (scale.Y < 0.999 || scale.Y > 1.001 ) abs_scale = scale.Y ;
557
596
else if (scale.Z < 0.999 || scale.Z > 1.001 ) abs_scale = scale.Z ;
@@ -574,7 +613,6 @@ static void makeFastFace(TileSpec tile, u16 li0, u16 li1, u16 li2, u16 li3,
574
613
core::vector2d<f32>(x0+w*abs_scale, y0 ));
575
614
576
615
face.tile = tile;
577
-
578
616
dest.push_back (face);
579
617
}
580
618
0 commit comments