diff stru6.cpp @ 1483:223605b325b3

Слияние
author Ritor1
date Thu, 29 Aug 2013 12:04:55 +0600
parents 2ca62c9e7b3c
children a395359afc8f
line wrap: on
line diff
--- a/stru6.cpp	Thu Aug 29 12:04:33 2013 +0600
+++ b/stru6.cpp	Thu Aug 29 12:04:55 2013 +0600
@@ -28,6 +28,80 @@
 
 
 
+//----- (0042620A) --------------------------------------------------------
+bool sr_42620A(RenderVertexSoft *p)
+{
+  __int16 v1; // fps@1
+  unsigned __int8 v2; // c0@2
+  char v3; // c2@2
+  unsigned __int8 v4; // c3@2
+  bool result; // eax@2
+  unsigned __int8 v6; // c0@4
+  char v7; // c2@4
+  unsigned __int8 v8; // c3@4
+  unsigned __int8 v9; // c0@6
+  char v10; // c2@6
+  unsigned __int8 v11; // c3@6
+  double v12; // st6@7
+  float v13; // ST04_4@7
+  float v14; // ST00_4@7
+  double v15; // st7@7
+  double v16; // st6@8
+  float v17; // ST04_4@8
+  float v18; // ST00_4@8
+  double v19; // st7@8
+
+  //UNDEF(v1);
+  if ( p->vWorldViewPosition.x < 300.0
+    || (v2 = 300.0 < p[1].vWorldViewPosition.x,
+        v3 = 0,
+        v4 = 300.0 == p[1].vWorldViewPosition.x,
+        //BYTE1(result) = HIBYTE(v1),
+        !(v2 | v4)) )
+  {
+    if ( p->vWorldViewPosition.x < 300.0 )
+    {
+      v6 = 300.0 < p[1].vWorldViewPosition.x;
+      v7 = 0;
+      v8 = 300.0 == p[1].vWorldViewPosition.x;
+      //BYTE1(result) = HIBYTE(v1);
+      if ( !(v6 | v8) )
+      {
+        //LOBYTE(result) = 0;
+        return false;
+      }
+    }
+    v9 = 300.0 < p->vWorldViewPosition.x;
+    v10 = 0;
+    v11 = 300.0 == p->vWorldViewPosition.x;
+    //BYTE1(result) = HIBYTE(v1);
+    if ( v9 | v11 )
+    {
+      v16 = 1.0 / (p->vWorldViewPosition.x - p[1].vWorldViewPosition.x);
+      v17 = (p->vWorldViewPosition.y - p[1].vWorldViewPosition.y) * v16;
+      v18 = (p->vWorldViewPosition.z - p[1].vWorldViewPosition.z) * v16;
+      v19 = 300.0 - p[1].vWorldViewPosition.x;
+      p[1].vWorldViewPosition.x = v19 + p[1].vWorldViewPosition.x;
+      p[1].vWorldViewPosition.y = v17 * v19 + p[1].vWorldViewPosition.y;
+      p[1].vWorldViewPosition.z = v19 * v18 + p[1].vWorldViewPosition.z;
+    }
+    else
+    {
+      v12 = 1.0 / (p[1].vWorldViewPosition.x - p->vWorldViewPosition.x);
+      v13 = (p[1].vWorldViewPosition.y - p->vWorldViewPosition.y) * v12;
+      v14 = (p[1].vWorldViewPosition.z - p->vWorldViewPosition.z) * v12;
+      v15 = 300.0 - p->vWorldViewPosition.x;
+      p->vWorldViewPosition.x = v15 + p->vWorldViewPosition.x;
+      p->vWorldViewPosition.y = v13 * v15 + p->vWorldViewPosition.y;
+      p->vWorldViewPosition.z = v15 * v14 + p->vWorldViewPosition.z;
+    }
+  }
+  //LOBYTE(result) = 1;
+  return true;
+}
+
+
+
 //----- (004775C4) --------------------------------------------------------
 stru6_stru1_indoor_sw_billboard::~stru6_stru1_indoor_sw_billboard()
 {