changeset 2325:846e28e41fb4

for bloodsplat
author Ritor1
date Fri, 28 Mar 2014 12:32:18 +0600
parents b2e3ac05f2b3
children 5133eea7a4ca
files DecalBuilder.cpp Indoor.cpp LightmapBuilder.cpp Render.cpp
diffstat 4 files changed, 47 insertions(+), 64 deletions(-) [+]
line wrap: on
line diff
--- a/DecalBuilder.cpp	Thu Mar 27 23:30:02 2014 +0100
+++ b/DecalBuilder.cpp	Fri Mar 28 12:32:18 2014 +0600
@@ -244,7 +244,7 @@
 {
   //DecalBuilder *v12; // esi@1
   Decal *v13; // edi@2
-  int *v14; // eax@2
+  //int *v14; // eax@2
   //double v15; // st7@4
   //double v16; // st7@4
   //int v17; // eax@4
@@ -280,11 +280,11 @@
   if ( a6 == 0.0 )
     return 1;
   v13 = &this->std__vector_pDecals[this->field_308008];
-  v14 = &this->std__vector_pDecals[this->field_308008].field_C1C;
+  //v14 = &this->std__vector_pDecals[this->field_308008].field_C1C;
   this->std__vector_pDecals[this->field_308008].field_C18 = (DecalBuilder_stru0 *)a4;
-  *v14 = 0;
+  this->std__vector_pDecals[this->field_308008].field_C1C = 0;
   if ( a3 & 2 )
-    *v14 = 1;
+    this->std__vector_pDecals[this->field_308008].field_C1C = 1;
   //v15 = a6 - a8;
   this->field_30C028 = a6 - a8;
   //v16 = sqrt((a6 + a6 - this->field_30C028) * this->field_30C028);
--- a/Indoor.cpp	Thu Mar 27 23:30:02 2014 +0100
+++ b/Indoor.cpp	Fri Mar 28 12:32:18 2014 +0600
@@ -516,7 +516,7 @@
         if (stru_F8AD28.uNumLightsApplied > 0 && !pFace->Indoor_sky())
           pGame->pLightmapBuilder->ApplyLights(&stru_F8AD28, &stru_F7B60C, uNumVerticesa, array_507D30, pVertices, 0);
 
-        if (pDecalBuilder->uNumDecals > 0)
+        if (pDecalBuilder->uNumDecals > 0)//отрисовка пятен крови
           pDecalBuilder->ApplyDecals(a4a, 1, &stru_F7B60C, uNumVerticesa, array_507D30, pVertices, 0, pFace->uSectorID);
 
         if (pFace->Fluid())
--- a/LightmapBuilder.cpp	Thu Mar 27 23:30:02 2014 +0100
+++ b/LightmapBuilder.cpp	Fri Mar 28 12:32:18 2014 +0600
@@ -240,7 +240,7 @@
   if (!v11->uNumVertices)
     return true;
 
-  v45 = _45C6D6(uNumVertices, a9, v11);//освещён ли фейс(есть ошибка)
+  v45 = _45C6D6(uNumVertices, a9, v11);
   if ( v45 != uNumVertices && v45 > 0 )
     _45C4B9(uNumVertices, a9, v11);
   //v59 = v11->uNumVertices;
@@ -340,7 +340,7 @@
   char v26; // [sp+1Eh] [bp-2h]@17
   char v27; // [sp+1Fh] [bp-1h]@17
 
-  __debugbreak();//Ritor1: needed cleaning
+  //__debugbreak();//Ritor1: needed cleaning
 
   v4 = pLightmap;
   v5 = 0;
@@ -487,7 +487,7 @@
                   : pLightmap->pVertices[i].vWorldPosition.z - a3[j].vWorldPosition.z;
               if ( v11 < 2.0 )
               {
-                v12 = v9 + v11 + v10;//Ritor1: Ошибка: В ИДА сюда заходит в данже рядом с факелом, а у нас нет, причину не нашёл
+                v12 = v9 + v11 + v10;
                 if ( v12 < v16 )
                 {
                   v16 = v12;
--- a/Render.cpp	Thu Mar 27 23:30:02 2014 +0100
+++ b/Render.cpp	Fri Mar 28 12:32:18 2014 +0600
@@ -7335,17 +7335,11 @@
 //----- (004A68EF) --------------------------------------------------------
 void Render::DrawMasked(signed int a2, signed int a3, Texture *pTexture, unsigned __int16 mask)
 {
-  Texture *v4; // edi@2
   unsigned int v5; // ebx@4
-  //unsigned __int16 *v6; // eax@4
-  signed int v7; // edx@5
-  int v8; // edx@6
-  signed int v9; // edx@7
   int v10; // edx@8
   signed int v11; // edx@9
   signed int v12; // esi@12
   signed int v13; // esi@15
-  unsigned int v14; // edx@17
   signed int v15; // esi@18
   unsigned __int8 *v16; // ebx@22
   char v17; // zf@28
@@ -7354,65 +7348,54 @@
   int v20; // [sp+1Ch] [bp-4h]@4
   int v21; // [sp+28h] [bp+8h]@24
   unsigned int v22; // [sp+2Ch] [bp+Ch]@22
-  unsigned int pTexturea; // [sp+30h] [bp+10h]@11
 
   if (!uNumSceneBegins || !pTexture)
     return;
 
-    v4 = pTexture;
-
-      if ( pTexture->pPalette16 )
-      {
-        v5 = pTexture->uTextureHeight;
-        //v6 = &this->pTargetSurface[a2 + a3 * this->uTargetSurfacePitch];
-        v19 = pTexture->pLevelOfDetail0_prolly_alpha_mask;
-        v20 = pTexture->uTextureWidth;
-        v18 = pTexture->uTextureWidth;
-        int clipped_out_x = a2;
-        int clipped_out_y = a3;
-        if ( this->bClip )
-        {
-          v7 = this->uClipX;
-          if ( a2 < v7 )
-          {
-            v8 = v7 - a2;
-            v19 += v8;
-            v20 += a2 - this->uClipX;
-            //v6 += v8;
-            clipped_out_x = uClipX;
-          }
-          v9 = this->uClipY;
-          v5 = pTexture->uTextureHeight;
-          if ( a3 < v9 )
-          {
-            v10 = v9 - a3;
-            v19 += v18 * v10;
-            v5 = a3 - this->uClipY + pTexture->uTextureHeight;
-            v4 = pTexture;
-            //v6 += this->uTargetSurfacePitch * v10;
-            clipped_out_y = uClipY;
-          }
-          v11 = this->uClipX;
-          if ( v11 < a2 )
-            v11 = a2;
-          pTexturea = this->uClipZ;
-          if ( v11 + v20 > (signed int)pTexturea )
-          {
-            v12 = this->uClipX;
-            if ( v12 < a2 )
-              v12 = a2;
-            v20 = pTexturea - v12;
+  if ( pTexture->pPalette16 )
+  {
+    v5 = pTexture->uTextureHeight;
+    //v6 = &this->pTargetSurface[a2 + a3 * this->uTargetSurfacePitch];
+    v19 = pTexture->pLevelOfDetail0_prolly_alpha_mask;
+    v20 = pTexture->uTextureWidth;
+    v18 = pTexture->uTextureWidth;
+    int clipped_out_x = a2;
+    int clipped_out_y = a3;
+    if ( this->bClip )
+    {
+      if ( a2 < this->uClipX )
+      {
+        v19 += this->uClipX - a2;
+        v20 += a2 - this->uClipX;
+        clipped_out_x = uClipX;
+      }
+      v5 = pTexture->uTextureHeight;
+      if ( a3 < this->uClipY )
+      {
+        v10 = this->uClipY - a3;
+        v19 += v18 * v10;
+        v5 = a3 - this->uClipY + pTexture->uTextureHeight;
+        clipped_out_y = uClipY;
+      }
+      v11 = this->uClipX;
+      if ( this->uClipX < a2 )
+        v11 = a2;
+      if ( v11 + v20 > (signed int)this->uClipZ )
+      {
+        v12 = this->uClipX;
+        if ( v12 < a2 )
+          v12 = a2;
+            v20 = this->uClipZ - v12;
           }
           v13 = this->uClipY;
-          if ( v13 < a3 )
+          if ( this->uClipY < a3 )
             v13 = a3;
-          v14 = this->uClipW;
-          if ( (signed int)(v5 + v13) > (signed int)v14 )
+          if ( (signed int)(v5 + v13) > (signed int)this->uClipW )
           {
             v15 = this->uClipY;
-            if ( v15 < a3 )
+            if ( this->uClipY < a3 )
               v15 = a3;
-            v5 = v14 - v15;
+            v5 = this->uClipW - v15;
           }
         }
         
@@ -7422,7 +7405,7 @@
           for (int x = 0; x < v20; ++x)
           {
                 if ( *v16 )
-                  WritePixel16(clipped_out_x + x, clipped_out_y + y, v4->pPalette16[*v16] & mask);
+                  WritePixel16(clipped_out_x + x, clipped_out_y + y, pTexture->pPalette16[*v16] & mask);
                 ++v16;
           }
             v16 += v18 - v20;