diff Render.cpp @ 63:a96ebf3123d2

23.01.13 (Rotate)
author Ritor1
date Wed, 23 Jan 2013 13:14:10 +0600
parents 63cfe63ac4c5
children f6e7d7110512
line wrap: on
line diff
--- a/Render.cpp	Tue Jan 22 17:50:36 2013 +0600
+++ b/Render.cpp	Wed Jan 23 13:14:10 2013 +0600
@@ -1621,10 +1621,10 @@
       }
 	  v103 = abs((int)pIndoorCamera->uMapGridCellZ - terrain_76D9C8[v70]);
       v104 = abs((int)pIndoorCamera->uMapGridCellX - terrain_76DBC8[v70]);
-	  if ( pRenderer->pRenderD3D )
-        Render::DrawTerrainD3D(v111, 0, (int)&v102);
-      else
-        Render::DrawTerrainSW(v111, 0, (int)&v102);
+	  //if ( pRenderer->pRenderD3D )
+        //Render::DrawTerrainD3D(v111, 0, (int)&v102);
+      //else
+        //Render::DrawTerrainSW(v111, 0, (int)&v102);
     }
   }
   else
@@ -1686,10 +1686,10 @@
       }
       v103 = abs((int)pIndoorCamera->uMapGridCellX - terrain_76DBC8[v86]);
 	  v104 = abs((int)pIndoorCamera->uMapGridCellZ - terrain_76D9C8[v86]);
-	  if ( pRenderer->pRenderD3D )
-        Render::DrawTerrainD3D(v111, 1, (int)&v102);
-      else
-        Render::DrawTerrainSW(v111, 1, (int)&v102);
+	  //if ( pRenderer->pRenderD3D )
+        //Render::DrawTerrainD3D(v111, 1, (int)&v102);
+      //else
+        //Render::DrawTerrainSW(v111, 1, (int)&v102);
     }
   }
   result = v126;
@@ -2836,7 +2836,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 i; // [sp+58h] [bp-Ch]@1
   int v17; // [sp+5Ch] [bp-8h]@2
   int v18; // [sp+60h] [bp-4h]@13
 
@@ -2850,39 +2850,41 @@
   billboard.uViewportW = pViewport->uViewportW;
   v0 = 0;
   pOutdoorCamera->uNumBillboards = uNumBillboardsToDraw;
-  v16 = 0;
-  if ( (signed int)uNumBillboardsToDraw > 0 )
+  //v16 = 0;
+  for (i = 0; i < uNumBillboardsToDraw; ++i)//if ( (signed int)uNumBillboardsToDraw > 0 )
   {
     v17 = 0;
+    struct RenderBillboard *pBillboard;
+    pBillboard = &pBillboardRenderList[i];
     v1 = (char *)&pBillboardRenderList[0].uScreenSpaceY;
-    do
-    {
-      billboard.uScreenSpaceX = *((short *)v1 - 1);
-      v2 = *((short *)v1 - 5);
-      billboard.uScreenSpaceY = *(short *)v1;
-      v3 = *((int *)v1 - 10);
-      billboard.uParentBillboardID = v0;
-      v4 = *((int *)v1 + 1);
-      billboard.field_10 = v3;
-      v5 = *((int *)v1 - 9);
-      billboard.uTintColor = v4;
-      v6 = *((short *)v1 - 8);
-      billboard.field_14 = v5;
-      v7 = *((int *)v1 - 6);
-      billboard.sZValue = *((int *)v1 - 6);
-      billboard.uFlags = v2;
-      if ( v6 != -1 )
-      {
-        v8 = *((short *)v1 + 1);
-        if ( pRenderer->pRenderD3D )
-        {
-          billboard.sZValue = v7;
-          billboard.uFlags = v2;
-          pRenderer->TransformBillboard(&billboard, &pSprites_LOD->pHardwareSprites[v6], v8, (RenderBillboard *)(v1 - 40));
-        }
-        else
-        {
-          if ( *(v1 - 10) & 2 )
+    //do
+    //{
+      billboard.uScreenSpaceX = pBillboard->uScreenSpaceX;;
+      v2 = pBillboard->field_1E;
+      billboard.uScreenSpaceY = pBillboard->uScreenSpaceY;
+      //v3 = *((int *)v1 - 10);
+      billboard.uParentBillboardID = i;
+      //v4 = *((int *)v1 + 1);
+      billboard.field_10 = pBillboard->field_0;
+      //v5 = *((int *)v1 - 9);
+      billboard.uTintColor = pBillboard->uTintColor;
+      //v6 = *((short *)v1 - 8);
+      billboard.field_14 = pBillboard->field_4;
+      //v7 = *((int *)v1 - 6);
+      billboard.sZValue = pBillboard->sZValue;
+      billboard.uFlags = pBillboard->field_1E;
+      if ( pBillboard->uHwSpriteID != -1 )
+      {
+        v8 = pBillboard->uPaletteSubindex;;
+        //if ( pRenderer->pRenderD3D )
+        //{
+          billboard.sZValue = pBillboard->sZValue;
+          billboard.uFlags = pBillboard->field_1E;
+          pRenderer->TransformBillboard(&billboard, &pSprites_LOD->pHardwareSprites[pBillboard->uHwSpriteID], pBillboard->uPaletteSubindex, pBillboard);
+        //}
+        //else
+        //{
+          /*if ( *(v1 - 10) & 2 )
             v9 = PaletteManager::Get_Dark_or_Red_LUT(*((short *)v1 - 7), 0, 1);
           else
             v9 = GetBillboardPalette((RenderBillboard *)(v1 - 40), *((short *)v1 - 7), v7, *((short *)v1 + 1));
@@ -2900,15 +2902,15 @@
           }
           v13 = *((short *)v1 - 8);
           if ( v13 >= 0 )
-            pSprites_LOD->pSpriteHeaders[v13]._4ACC38(&billboard, 1);
-        }
+            pSprites_LOD->pSpriteHeaders[v13]._4ACC38(&billboard, 1);*/
+        //}
       }
       v17 += 5;
-      v0 = v16 + 1;
+      //v0 = i + 1;
       v1 += 52;
-      ++v16;
-    }
-    while ( v16 < (signed int)uNumBillboardsToDraw );
+      //++v16;
+    //}
+    //while ( v16 < (signed int)uNumBillboardsToDraw );
   }
 }
 
@@ -7079,7 +7081,7 @@
   if (pRenderD3D)
   {
     pGame->draw_debug_outlines();
-    DoRenderBillboards_D3D(); //Ritor1: it's temporarily
+    //DoRenderBillboards_D3D(); //Ritor1: it's temporarily
     pGame->pStru6Instance->RenderSpecialEffects();
     pRenderD3D->pDevice->EndScene();
   }