diff Render.cpp @ 150:d92c78ab54fe

Слияние
author Ritor1
date Tue, 12 Feb 2013 10:17:35 +0600
parents 2b0c652cc165 b099dd069171
children 796b79187c27
line wrap: on
line diff
--- a/Render.cpp	Tue Feb 12 10:17:11 2013 +0600
+++ b/Render.cpp	Tue Feb 12 10:17:35 2013 +0600
@@ -2938,7 +2938,7 @@
 //----- (0047BACF) --------------------------------------------------------
 void Render::TransformBillboardsAndSetPalettesODM()
 {
-  int v0; // edi@1
+  //int v0; // edi@1
   char *v1; // esi@2
   unsigned int v2; // edx@3
   int v3; // eax@3
@@ -2954,7 +2954,7 @@
   int v13; // eax@14
   RenderBillboardTransform_local0 billboard; // [sp+4h] [bp-60h]@1
   int v15; // [sp+54h] [bp-10h]@13
-  int v16; // [sp+58h] [bp-Ch]@1
+  //int v16; // [sp+58h] [bp-Ch]@1
   int v17; // [sp+5Ch] [bp-8h]@2
   int v18; // [sp+60h] [bp-4h]@13
 
@@ -2966,20 +2966,22 @@
   billboard.uViewportY = pViewport->uViewportY;
   billboard.uViewportZ = pViewport->uViewportZ - 1;
   billboard.uViewportW = pViewport->uViewportW;
-  v0 = 0;
+  //v0 = 0;
   pOutdoorCamera->uNumBillboards = uNumBillboardsToDraw;
-  v16 = 0;
-  if ( (signed int)uNumBillboardsToDraw > 0 )
-  {
+
+  //v16 = 0;
+  for (int i = 0; i < uNumBillboardsToDraw; ++i)
+  {
+    auto pBillboard = pBillboardRenderList + i;
     v17 = 0;
-    v1 = (char *)&pBillboardRenderList[0].uScreenSpaceY;
-    do
-    {
-      billboard.uScreenSpaceX = *((short *)v1 - 1);
+    v1 = (char *)&pBillboardRenderList[i].uScreenSpaceY;
+    //do
+    //{
+      billboard.uScreenSpaceX = pBillboard->uScreenSpaceX;
       v2 = *((short *)v1 - 5);
-      billboard.uScreenSpaceY = *(short *)v1;
+      billboard.uScreenSpaceY = pBillboard->uScreenSpaceY;
       v3 = *((int *)v1 - 10);
-      billboard.uParentBillboardID = v0;
+      billboard.uParentBillboardID = i;
       v4 = *((int *)v1 + 1);
       billboard.field_10 = v3;
       v5 = *((int *)v1 - 9);
@@ -3022,11 +3024,11 @@
         }
       }
       v17 += 5;
-      v0 = v16 + 1;
+      //v0 = v16 + 1;
       v1 += 52;
-      ++v16;
-    }
-    while ( v16 < (signed int)uNumBillboardsToDraw );
+      //++v16;
+    //}
+    //while ( v16 < (signed int)uNumBillboardsToDraw );
   }
 }