@@ -778,107 +778,107 @@ public void processCulling(int plane) {
778
778
}
779
779
780
780
private void renderPlainTile (GenericTile plainTile , int arg1 , int tileX , int tileY ) {
781
- int xC ;
782
- int xA = xC = (tileX << 7 ) - currentCamera .getPosition ().x ;
783
- int yB ;
784
- int yA = yB = (tileY << 7 ) - currentCamera .getPosition ().y ;
785
- int xD ;
786
- int xB = xD = xA + 128 ;
787
- int yC ;
788
- int yD = yC = yA + 128 ;
789
- int zA = this .scene .landscape .tile_height [arg1 ][tileX ][tileY ] - currentCamera .getPosition ().z ;
790
- int zB = this .scene .landscape .tile_height [arg1 ][tileX + 1 ][tileY ] - currentCamera .getPosition ().z ;
791
- int zC = this .scene .landscape .tile_height [arg1 ][tileX + 1 ][tileY + 1 ] - currentCamera .getPosition ().z ;
792
- int zD = this .scene .landscape .tile_height [arg1 ][tileX ][tileY + 1 ] - currentCamera .getPosition ().z ;
793
-
794
- int [] resultA = Util3d .getProjectedPoint (currentCamera , xA , yA , zA );
781
+ int nwX ;
782
+ int swX = nwX = (tileX << 7 ) - currentCamera .getPosition ().x ;
783
+ int seY ;
784
+ int swY = seY = (tileY << 7 ) - currentCamera .getPosition ().y ;
785
+ int neX ;
786
+ int seX = neX = swX + 128 ;
787
+ int nwY ;
788
+ int neY = nwY = swY + 128 ;
789
+ int swZ = this .scene .landscape .tile_height [arg1 ][tileX ][tileY ] - currentCamera .getPosition ().z ;
790
+ int seZ = this .scene .landscape .tile_height [arg1 ][tileX + 1 ][tileY ] - currentCamera .getPosition ().z ;
791
+ int neZ = this .scene .landscape .tile_height [arg1 ][tileX + 1 ][tileY + 1 ] - currentCamera .getPosition ().z ;
792
+ int nwZ = this .scene .landscape .tile_height [arg1 ][tileX ][tileY + 1 ] - currentCamera .getPosition ().z ;
793
+
794
+ int [] resultA = Util3d .getProjectedPoint (currentCamera , swX , swY , swZ );
795
795
if (resultA == null ) {
796
796
return ;
797
797
}
798
798
799
- xA = resultA [0 ];
800
- yA = resultA [1 ];
801
- zA = resultA [2 ];
799
+ swX = resultA [0 ];
800
+ swY = resultA [1 ];
801
+ swZ = resultA [2 ];
802
802
803
- int [] resultB = Util3d .getProjectedPoint (currentCamera , xB , yB , zB );
803
+ int [] resultB = Util3d .getProjectedPoint (currentCamera , seX , seY , seZ );
804
804
if (resultB == null ) {
805
805
return ;
806
806
}
807
807
808
- xB = resultB [0 ];
809
- yB = resultB [1 ];
810
- zB = resultB [2 ];
808
+ seX = resultB [0 ];
809
+ seY = resultB [1 ];
810
+ seZ = resultB [2 ];
811
811
812
- int [] resultD = Util3d .getProjectedPoint (currentCamera , xD , yD , zC );
813
- if (resultD == null ) {
812
+ int [] resultNE = Util3d .getProjectedPoint (currentCamera , neX , neY , neZ );
813
+ if (resultNE == null ) {
814
814
return ;
815
815
}
816
816
817
- xD = resultD [0 ];
818
- yD = resultD [1 ];
819
- zC = resultD [2 ];
817
+ neX = resultNE [0 ];
818
+ neY = resultNE [1 ];
819
+ neZ = resultNE [2 ];
820
820
821
- int [] resultC = Util3d .getProjectedPoint (currentCamera , xC , yC , zD );
821
+ int [] resultC = Util3d .getProjectedPoint (currentCamera , nwX , nwY , nwZ );
822
822
if (resultC == null ) {
823
823
return ;
824
824
}
825
825
826
- xC = resultC [0 ];
827
- yC = resultC [1 ];
828
- zD = resultC [2 ];
829
-
830
- int screenXA = Rasterizer3D .center_x + (xA << 9 ) / yA ;
831
- int screenYA = Rasterizer3D .center_y + (zA << 9 ) / yA ;
832
- int screenXB = Rasterizer3D .center_x + (xB << 9 ) / yB ;
833
- int screenYB = Rasterizer3D .center_y + (zB << 9 ) / yB ;
834
- int screenXD = Rasterizer3D .center_x + (xD << 9 ) / yD ;
835
- int screenYD = Rasterizer3D .center_y + (zC << 9 ) / yD ;
836
- int screenXC = Rasterizer3D .center_x + (xC << 9 ) / yC ;
837
- int screenYC = Rasterizer3D .center_y + (zD << 9 ) / yC ;
826
+ nwX = resultC [0 ];
827
+ nwY = resultC [1 ];
828
+ nwZ = resultC [2 ];
829
+
830
+ int screenXSW = Rasterizer3D .center_x + (swX << 9 ) / swY ;
831
+ int screenYSW = Rasterizer3D .center_y + (swZ << 9 ) / swY ;
832
+ int screenXSE = Rasterizer3D .center_x + (seX << 9 ) / seY ;
833
+ int screenYSE = Rasterizer3D .center_y + (seZ << 9 ) / seY ;
834
+ int screenXNE = Rasterizer3D .center_x + (neX << 9 ) / neY ;
835
+ int screenYNE = Rasterizer3D .center_y + (neZ << 9 ) / neY ;
836
+ int screenXNW = Rasterizer3D .center_x + (nwX << 9 ) / nwY ;
837
+ int screenYNW = Rasterizer3D .center_y + (nwZ << 9 ) / nwY ;
838
838
Rasterizer3D .alpha = 0 ;
839
- if ((screenXD - screenXC ) * (screenYB - screenYC ) - (screenYD - screenYC ) * (screenXB - screenXC ) > 0 ) {
840
- Rasterizer3D .restrict_edges = screenXD < 0 || screenXC < 0 || screenXB < 0 || screenXD > Rasterizer3D .viewportRx || screenXC > Rasterizer3D .viewportRx || screenXB > Rasterizer3D .viewportRx ;
841
- if (this .scene .clicked && isMouseWithinTriangle (this .scene .clickX , this .scene .clickY , screenYD , screenYC , screenYB , screenXD , screenXC , screenXB )) {
839
+ if ((screenXNE - screenXNW ) * (screenYSE - screenYNW ) - (screenYNE - screenYNW ) * (screenXSE - screenXNW ) > 0 ) {
840
+ Rasterizer3D .restrict_edges = screenXNE < 0 || screenXNW < 0 || screenXSE < 0 || screenXNE > Rasterizer3D .viewportRx || screenXNW > Rasterizer3D .viewportRx || screenXSE > Rasterizer3D .viewportRx ;
841
+ if (this .scene .clicked && isMouseWithinTriangle (this .scene .clickX , this .scene .clickY , screenYNE , screenYNW , screenYSE , screenXNE , screenXNW , screenXSE )) {
842
842
this .scene .clickedTileX = tileX ;
843
843
this .scene .clickedTileY = tileY ;
844
844
}
845
- if (isMouseWithinTriangle (MouseHandler .mouseX , MouseHandler .mouseY , screenYD , screenYC , screenYB , screenXD , screenXC , screenXB )) {
845
+ if (isMouseWithinTriangle (MouseHandler .mouseX , MouseHandler .mouseY , screenYNE , screenYNW , screenYSE , screenXNE , screenXNW , screenXSE )) {
846
846
this .scene .hoveredTileX = tileX ;
847
847
this .scene .hoveredTileY = tileY ;
848
848
}
849
849
if (plainTile .texture == -1 ) {
850
850
if (plainTile .colourD != 12345678 ) {
851
- Rasterizer3D .drawShadedTriangle (screenYD , screenYC , screenYB , screenXD , screenXC , screenXB , plainTile .colourD , plainTile .colourC , plainTile .colourB );
851
+ Rasterizer3D .drawShadedTriangle (screenYNE , screenYNW , screenYSE , screenXNE , screenXNW , screenXSE , plainTile .colourD , plainTile .colourC , plainTile .colourB );
852
852
}
853
853
} else if (Scene .lowMemory ) {
854
854
int rgb = Rasterizer3D .interface3 .getAverageTextureColour (plainTile .texture );
855
- Rasterizer3D .drawShadedTriangle (screenYD , screenYC , screenYB , screenXD , screenXC , screenXB , Scene .adjustLightness (rgb , plainTile .colourD ), Scene .adjustLightness (rgb , plainTile .colourC ), Scene .adjustLightness (rgb , plainTile .colourB ));
855
+ Rasterizer3D .drawShadedTriangle (screenYNE , screenYNW , screenYSE , screenXNE , screenXNW , screenXSE , Scene .adjustLightness (rgb , plainTile .colourD ), Scene .adjustLightness (rgb , plainTile .colourC ), Scene .adjustLightness (rgb , plainTile .colourB ));
856
856
} else if (plainTile .flat ) {
857
- Rasterizer3D .drawTexturedTriangle (screenYD , screenYC , screenYB , screenXD , screenXC , screenXB , plainTile .colourD , plainTile .colourC , plainTile .colourB , xA , xB , xC , zA , zB , zD , yA , yB , yC , plainTile .texture );
857
+ Rasterizer3D .drawTexturedTriangle (screenYNE , screenYNW , screenYSE , screenXNE , screenXNW , screenXSE , plainTile .colourD , plainTile .colourC , plainTile .colourB , swX , seX , nwX , swZ , seZ , nwZ , swY , seY , nwY , plainTile .texture );
858
858
} else {
859
- Rasterizer3D .drawTexturedTriangle (screenYD , screenYC , screenYB , screenXD , screenXC , screenXB , plainTile .colourD , plainTile .colourC , plainTile .colourB , xD , xC , xB , zC , zD , zB , yD , yC , yB , plainTile .texture );
859
+ Rasterizer3D .drawTexturedTriangle (screenYNE , screenYNW , screenYSE , screenXNE , screenXNW , screenXSE , plainTile .colourD , plainTile .colourC , plainTile .colourB , neX , nwX , seX , neZ , nwZ , seZ , neY , nwY , seY , plainTile .texture );
860
860
}
861
861
}
862
- if ((screenXA - screenXB ) * (screenYC - screenYB ) - (screenYA - screenYB ) * (screenXC - screenXB ) > 0 ) {
863
- Rasterizer3D .restrict_edges = screenXA < 0 || screenXB < 0 || screenXC < 0 || screenXA > Rasterizer3D .viewportRx || screenXB > Rasterizer3D .viewportRx || screenXC > Rasterizer3D .viewportRx ;
864
- if (this .scene .clicked && isMouseWithinTriangle (this .scene .clickX , this .scene .clickY , screenYA , screenYB , screenYC , screenXA , screenXB , screenXC )) {
862
+ if ((screenXSW - screenXSE ) * (screenYNW - screenYSE ) - (screenYSW - screenYSE ) * (screenXNW - screenXSE ) > 0 ) {
863
+ Rasterizer3D .restrict_edges = screenXSW < 0 || screenXSE < 0 || screenXNW < 0 || screenXSW > Rasterizer3D .viewportRx || screenXSE > Rasterizer3D .viewportRx || screenXNW > Rasterizer3D .viewportRx ;
864
+ if (this .scene .clicked && isMouseWithinTriangle (this .scene .clickX , this .scene .clickY , screenYSW , screenYSE , screenYNW , screenXSW , screenXSE , screenXNW )) {
865
865
this .scene .clickedTileX = tileX ;
866
866
this .scene .clickedTileY = tileY ;
867
867
}
868
868
869
- if (isMouseWithinTriangle (MouseHandler .mouseX , MouseHandler .mouseY , screenYA , screenYB , screenYC , screenXA , screenXB , screenXC )) {
869
+ if (isMouseWithinTriangle (MouseHandler .mouseX , MouseHandler .mouseY , screenYSW , screenYSE , screenYNW , screenXSW , screenXSE , screenXNW )) {
870
870
this .scene .hoveredTileX = tileX ;
871
871
this .scene .hoveredTileY = tileY ;
872
872
}
873
873
if (plainTile .texture == -1 ) {
874
874
if (plainTile .colourA != 12345678 ) {
875
- Rasterizer3D .drawShadedTriangle (screenYA , screenYB , screenYC , screenXA , screenXB , screenXC , plainTile .colourA , plainTile .colourB , plainTile .colourC );
875
+ Rasterizer3D .drawShadedTriangle (screenYSW , screenYSE , screenYNW , screenXSW , screenXSE , screenXNW , plainTile .colourA , plainTile .colourB , plainTile .colourC );
876
876
}
877
877
} else if (Scene .lowMemory ) {
878
878
int i_209_ = Rasterizer3D .interface3 .getAverageTextureColour (plainTile .texture );
879
- Rasterizer3D .drawShadedTriangle (screenYA , screenYB , screenYC , screenXA , screenXB , screenXC , Scene .adjustLightness (i_209_ , plainTile .colourA ), Scene .adjustLightness (i_209_ , plainTile .colourB ), Scene .adjustLightness (i_209_ , plainTile .colourC ));
879
+ Rasterizer3D .drawShadedTriangle (screenYSW , screenYSE , screenYNW , screenXSW , screenXSE , screenXNW , Scene .adjustLightness (i_209_ , plainTile .colourA ), Scene .adjustLightness (i_209_ , plainTile .colourB ), Scene .adjustLightness (i_209_ , plainTile .colourC ));
880
880
} else {
881
- Rasterizer3D .drawTexturedTriangle (screenYA , screenYB , screenYC , screenXA , screenXB , screenXC , plainTile .colourA , plainTile .colourB , plainTile .colourC , xA , xB , xC , zA , zB , zD , yA , yB , yC , plainTile .texture );
881
+ Rasterizer3D .drawTexturedTriangle (screenYSW , screenYSE , screenYNW , screenXSW , screenXSE , screenXNW , plainTile .colourA , plainTile .colourB , plainTile .colourC , swX , seX , nwX , swZ , seZ , nwZ , swY , seY , nwY , plainTile .texture );
882
882
}
883
883
}
884
884
}
0 commit comments