diff mm7_3.cpp @ 2144:cfe04d858766

ODM_ProcessPartyActions continue
author Ritor1
date Mon, 06 Jan 2014 19:29:01 +0600
parents f9b55be70c1b
children af349bd395ff
line wrap: on
line diff
--- a/mm7_3.cpp	Thu Jan 02 17:57:09 2014 +0600
+++ b/mm7_3.cpp	Mon Jan 06 19:29:01 2014 +0600
@@ -3110,7 +3110,7 @@
   //int v7; // ecx@6
   //int v8; // edx@6
   //int v9; // eax@6
-  //int v10; // esi@10
+  int y_min; // esi@10
   //int v11; // [sp+14h] [bp-8h]@1
   //int v12; // [sp+18h] [bp-4h]@1
 
@@ -3160,25 +3160,45 @@
                                     y3     */
   }
 
-  int y_min = min(y1, min(y2, y3)),
-      y_max = max(y1, max(y2, y3));
-  return (y_max - y_min) > 512;
-
-  /*if ( y1 >= y2 )
+  //int y_min = min(y1, min(y2, y3)),// не верно при подъёме на склон
+      //y_max = max(y1, max(y2, y3));
+  //return (y_max - y_min) > 512;
+
+  if ( y1 >= y2 )
   {
     y_min = y2;
     if ( y2 < y3 )
-      goto LABEL_13;
-LABEL_12:
+    {
+      if ( y1 <= y2 )
+      {
+        if ( y2 > y3 )
+          y3 = y2;
+      }
+      else
+      {
+        if ( y1 > y3 )
+          y3 = y1;
+      }
+      return y3 - y_min > 512;
+    }
     y_min = y3;
-    goto LABEL_13;
+    if ( y1 <= y2 )
+    {
+      if ( y2 > y3 )
+        y3 = y2;
+    }
+    else
+    {
+      if ( y1 > y3 )
+        y3 = y1;
+    }
+    return y3 - y_min > 512;
   }
   else if ( y1 >= y3 )
-    goto LABEL_12;
+    y_min = y3;
   else
-  y_min = y1;
-
-LABEL_13:
+    y_min = y1;
+
   if ( y1 <= y2 )
   {
     if ( y2 > y3 )
@@ -3189,7 +3209,7 @@
     if ( y1 > y3 )
       y3 = y1;
   }
-  return y3 - v10 > 512;*/
+  return y3 - y_min > 512;
 }
 
 //----- (0048257A) --------------------------------------------------------