diff Render.cpp @ 2097:2b39f6b451f9

Minimap fix
author Ritor1
date Fri, 13 Dec 2013 11:51:51 +0600
parents 115373c2d1cd
children 7810cb3a5fb7
line wrap: on
line diff
--- a/Render.cpp	Fri Dec 13 01:21:07 2013 +0600
+++ b/Render.cpp	Fri Dec 13 11:51:51 2013 +0600
@@ -3595,21 +3595,25 @@
     HIDWORD(v36) = 8;
   if ( (signed int)uX > this->raster_clip_z )
     HIDWORD(v36) |= 4;
+
   v8 = uY;
   if ( (signed int)uY < this->raster_clip_y )
     HIDWORD(v36) |= 2;
   if ( (signed int)uY > this->raster_clip_w )
     HIDWORD(v36) |= 1;
+
   v10 = uZ;
   if ( (signed int)uZ < this->raster_clip_x )
     LODWORD(v36) = 8;
   if ( (signed int)uZ > this->raster_clip_z )
     LODWORD(v36) = v36 | 4;
+
   v11 = uW;
   if ( (signed int)uW < this->raster_clip_y )
     LODWORD(v36) = v36 | 2;
   if ( (signed int)uW > this->raster_clip_w )
     LODWORD(v36) = v36 | 1;
+
   LOBYTE(v12) = v36;
   if ( (unsigned int)v36 & HIDWORD(v36) )
     return v12;
@@ -3641,8 +3645,9 @@
       }
       v25 = 0;
 
-      //__debugbreak(); //target sruface will most likely be 32bits/pixel, but this sub awaits 16 bits
       v26 = (unsigned __int16 *)this->pTargetSurface;
+      int y = 0;
+      int x = 0;
       if ( v26 )
       {
         if ( (signed int)uXa <= v23 )//рисуем вертикальную линию
@@ -3653,13 +3658,12 @@
             v31 = 2 * v24;
             v32 = 2 * v21;
             v12 = (int)&v26[v12];
-            int y = 0;
             for ( v30; v30; --v30 )
             {
               v25 += uXa;
               //*(short *)v12 = uColor;
               //v12 += v32;
-              WritePixel16(uX + v25, uY + y, uColor);
+              WritePixel16(uX + x, uY + y, uColor);
               if ( v32 >= 0 )
                 y += 1;
               else
@@ -3667,7 +3671,11 @@
               if ( v25 > 0 )
               {
                 v25 -= uYb;
-                v12 += v31;
+                //v12 += v31;
+                if ( v31 >= 0 )
+                  x += 1;
+                else
+                  x -= 1;
               }
             }
           }
@@ -3686,7 +3694,7 @@
               v25 += uYb;
               //*(short *)v12 = uColor;
               //v12 += v29;
-              WritePixel16(uX + x, uY + v25, uColor);
+              WritePixel16(uX + x, uY + y, uColor);
               if ( v29 >= 0 )
                 x += 1;
               else
@@ -3694,7 +3702,11 @@
               if ( v25 > (signed int)uXa )
               {
                 v25 -= uXa;
-                v12 += v28;
+                //v12 += v28;
+                if ( v28 >= 0 )
+                  y += 1;
+                else
+                  y -= 1;
               }
             }
           }