about summary refs log tree commit diff
path: root/src/game/client
diff options
context:
space:
mode:
authoroy <Tom_Adams@web.de>2010-09-05 19:01:01 +0200
committeroy <Tom_Adams@web.de>2010-09-05 19:01:01 +0200
commit995d63d7f447d68771f0ea87a599a0d804cff8d3 (patch)
treecdf596cc646d6ac5ce002e84bcf5b7e1bf1d5630 /src/game/client
parent5588e1ec8caff39e2a21ce6d9d7c13c5f4d603f1 (diff)
downloadzcatch-995d63d7f447d68771f0ea87a599a0d804cff8d3.tar.gz
zcatch-995d63d7f447d68771f0ea87a599a0d804cff8d3.zip
added the possibility to rotate tiles in the editor by SushiTee
Diffstat (limited to 'src/game/client')
-rw-r--r--src/game/client/render_map.cpp42
1 files changed, 31 insertions, 11 deletions
diff --git a/src/game/client/render_map.cpp b/src/game/client/render_map.cpp
index 2d0875ca..1af41f99 100644
--- a/src/game/client/render_map.cpp
+++ b/src/game/client/render_map.cpp
@@ -244,26 +244,46 @@ void CRenderTools::RenderTilemap(CTile *pTiles, int w, int h, float Scale, vec4
 					int Px1 = Px0+(1024/16)-1;
 					int Py1 = Py0+(1024/16)-1;
 					
-					float u0 = Nudge + Px0/TexSize+Frac;
-					float v0 = Nudge + Py0/TexSize+Frac;
-					float u1 = Nudge + Px1/TexSize-Frac;
-					float v1 = Nudge + Py1/TexSize-Frac;
+					float x0 = Nudge + Px0/TexSize+Frac;
+					float y0 = Nudge + Py0/TexSize+Frac;
+					float x1 = Nudge + Px1/TexSize-Frac;
+					float y1 = Nudge + Py0/TexSize+Frac;
+					float x2 = Nudge + Px1/TexSize-Frac;
+					float y2 = Nudge + Py1/TexSize-Frac;
+					float x3 = Nudge + Px0/TexSize+Frac;
+					float y3 = Nudge + Py1/TexSize-Frac;
 					
 					if(Flags&TILEFLAG_VFLIP)
 					{
-						float Tmp = u0;
-						u0 = u1;
-						u1 = Tmp;
+						x0 = x2;
+						x1 = x3;
+						x2 = x3;
+						x3 = x0;
 					}
 
 					if(Flags&TILEFLAG_HFLIP)
 					{
-						float Tmp = v0;
-						v0 = v1;
-						v1 = Tmp;
+						y0 = y3;
+						y2 = y1;
+						y3 = y1;
+						y1 = y0;
 					}
 					
-					Graphics()->QuadsSetSubset(u0,v0,u1,v1);
+					if(Flags&TILEFLAG_ROTATE)
+					{
+						float Tmp = x0;
+						x0 = x3;
+						x3 = x2;
+						x2 = x1;
+						x1 = Tmp;		
+						Tmp = y0;
+						y0 = y3;
+						y3 = y2;
+						y2 = y1;
+						y1 = Tmp;
+ 					}
+
+					Graphics()->QuadsSetSubsetFree(x0, y0, x1, y1, x2, y2, x3, y3);
 					IGraphics::CQuadItem QuadItem(x*Scale, y*Scale, Scale, Scale);
 					Graphics()->QuadsDrawTL(&QuadItem, 1);
 				}