changeset 1891:ecab40f41fe8

Actor::GetActorsRelation cleanup 2
author Grumpy7
date Sun, 20 Oct 2013 00:12:37 -0700
parents eafc12a77a92
children 9995cbcc62e0
files Actor.cpp
diffstat 1 files changed, 37 insertions(+), 82 deletions(-) [+]
line wrap: on
line diff
--- a/Actor.cpp	Sat Oct 19 23:08:02 2013 -0700
+++ b/Actor.cpp	Sun Oct 20 00:12:37 2013 -0700
@@ -2500,8 +2500,6 @@
 //----- (0040104C) --------------------------------------------------------
 signed int Actor::GetActorsRelation(Actor *otherActPtr)
 {
-  int v3; // ebp@5
-  int v4; // edi@11
   unsigned int v5; // edx@15
   unsigned int v6; // eax@16
   unsigned int v7; // ebp@19
@@ -2521,105 +2519,62 @@
   {
     if (this->pActorBuffs[ACTOR_BUFF_BERSERK].uExpireTime > 0)
       return 4;
-    v3 = this->pMonsterInfo.uID;
+    v9 = this->uAlly;
+    if ( this->pActorBuffs[ACTOR_BUFF_ENSLAVED].uExpireTime > 0 || v9 == 9999)
+      v7 = 0;
+    else if ( v9 > 0 )
+    {
+      v7 = v9;
+    }
+    else
+    {
+      v7 = (this->pMonsterInfo.uID - 1) / 3 + 1;
+    }
   }
   else
   {
-    v3 = 0;
+    v7 = 0;
   }
   if ( otherActPtr )
   {
     if (otherActPtr->pActorBuffs[ACTOR_BUFF_BERSERK].uExpireTime > 0)
       return 4;
-    v4 = otherActPtr->pMonsterInfo.uID;
+    v10 = otherActPtr->uAlly;
+    if ( otherActPtr->pActorBuffs[ACTOR_BUFF_ENSLAVED].uExpireTime > 0 || v10 == 9999)
+      v8 = 0;
+    else  if ( v10 > 0 )
+    {
+      v8 = v10;
+    }
+    else
+    {
+      v8 = (otherActPtr->pMonsterInfo.uID - 1) / 3 + 1;
+    }
   }
   else
   {
-    v4 = 0;
+    v8 = 0;
   }
-  if ( v3 )
-    v7 = (v3 - 1) / 3 + 1;
-  else
-    v7 = 0;
-  if ( v4 )
-    v8 = (v4 - 1) / 3 + 1;
-  else
-    v8 = 0;
-  if ( this )
-  {
-    if ( this->pActorBuffs[ACTOR_BUFF_ENSLAVED].uExpireTime > 0 )
-      v7 = 0;
-    else
-    {
-      v9 = this->uAlly;
-      if ( v9 > 0 )
-      {
-        if ( v9 != 9999 )
-        {
-          v7 = this->uAlly;
-        }
-        else
-          v7 = 0;
-      }
-    }
-  }
-  if ( otherActPtr )
-  {
-    if ( otherActPtr->pActorBuffs[ACTOR_BUFF_ENSLAVED].uExpireTime > 0 )
-      v8 = 0;
-    else
-    {
-      v10 = otherActPtr->uAlly;
-      if ( (signed int)v10 > 0 )
-      {
-        if ( v10 != 9999 )
-        {
-          v8 = otherActPtr->uAlly;
-        }
-        else
-        {
-          v8 = 0;
-        }
-      }
-    }
-  }
-  if ( this && this->pActorBuffs[ACTOR_BUFF_CHARM].uExpireTime > 0 && !v8
+
+  if ( this->pActorBuffs[ACTOR_BUFF_CHARM].uExpireTime > 0 && !v8
     || otherActPtr && otherActPtr->pActorBuffs[ACTOR_BUFF_CHARM].uExpireTime > 0 && !v7 )
     return 0;
-  if ( this && this->pActorBuffs[ACTOR_BUFF_ENSLAVED].uExpireTime <= 0 && this->uAttributes & 0x80000 && !v8 )
+  if ( this->pActorBuffs[ACTOR_BUFF_ENSLAVED].uExpireTime <= 0 && this->uAttributes & 0x80000 && !v8 )
     return 4;
-  if ( otherActPtr && this && this->pActorBuffs[ACTOR_BUFF_ENSLAVED].uExpireTime <= 0 && otherActPtr->uAttributes & 0x80000 )
+  if (v7 >= 89 || v8 >= 89)
+    return 0;
+
+  if ( v7 == 0  )
   {
-    if ( v7 )
-    {
-      if ( (signed int)v7 < 89 )
-      {
-        if ( v8 < 89 )
-          return pFactionTable->relations[v7][v8];
-        return 0;
-      }
-      return 0;
-    }
-    return 4;
+    if ( (!otherActPtr || this->pActorBuffs[ACTOR_BUFF_ENSLAVED].uExpireTime > 0 && !(otherActPtr->uAttributes & 0x80000)) && !pFactionTable->relations[v8][0])
+      return pFactionTable->relations[0][v8];
+    else
+      return 4;
   }
-  if ( !v7 )
+  else
   {
-    if ( (!otherActPtr || otherActPtr->pActorBuffs[ACTOR_BUFF_ENSLAVED].uExpireTime > 0 || !(otherActPtr->uAttributes & 0x80000))
-      && !pFactionTable->relations[v8][0]) 
-    {
-      if ( v8 < 89 )
-        return pFactionTable->relations[v7][v8];
-      return 0;
-    }
-    return 4;
+    return pFactionTable->relations[v7][v8];
   }
-  if ( v7 < 89 )
-  {
-    if ( v8 < 89 )
-      return pFactionTable->relations[v7][v8];
-    return 0;
-  }
-  return 0;
 }
 
 //----- (0045976D) --------------------------------------------------------