diff Player.cpp @ 179:f102bbff6fd8

15.02.13 Water
author Ritor1
date Fri, 15 Feb 2013 17:14:24 +0600
parents 9abdd40a107b
children 49728858c35e 038a4d09406f
line wrap: on
line diff
--- a/Player.cpp	Fri Feb 15 10:41:54 2013 +0600
+++ b/Player.cpp	Fri Feb 15 17:14:24 2013 +0600
@@ -1983,9 +1983,9 @@
   char *v7; // esi@7
   signed int uSkillMultiplier; // [sp-4h] [bp-14h]@2
 
-  LOBYTE(v2) = pPlayers[uActiveCharacter]->GetActualSkillLevel(PLAYER_SKILL_ITEM_ID);
+  v2 = pPlayers[uActiveCharacter]->GetActualSkillLevel(PLAYER_SKILL_ITEM_ID);
   v3 = v2;
-  if ( HIBYTE(v2) & 1 )
+  if ( v2 & 1 )
   {
     uSkillMultiplier = 5;
   }
@@ -1994,21 +1994,34 @@
     if ( (v2 & 0x80u) == 0 )
     {
       uSkillMult = ((v2 & 0x40) != 0) + 1;
-      goto LABEL_7;
+      v5 = uSkillMult * (v3 & 0x3F);
+      v6 = 0;
+      v7 = (char *)&pItemsTable->pItems[pItem->uItemID].pIconName;
+      if ( CheckHiredNPCSpeciality(4) )
+      {
+        v6 = 1;
+        return v6;
+      }
+      if ( (signed int)SkillToMastery(v3) >= 4 )
+        v6 = 1;
+      if ( v5 >= (unsigned __int8)v7[46] )
+        v6 = 1;
+      return v6;
     }
     uSkillMultiplier = 3;
   }
   uSkillMult = uSkillMultiplier;
-LABEL_7:
   v5 = uSkillMult * (v3 & 0x3F);
   v6 = 0;
   v7 = (char *)&pItemsTable->pItems[pItem->uItemID].pIconName;
-  if ( CheckHiredNPCSpeciality(4u) )
-    goto LABEL_15;
+  if ( CheckHiredNPCSpeciality(4) )
+  {
+    v6 = 1;
+    return v6;
+  }
   if ( (signed int)SkillToMastery(v3) >= 4 )
     v6 = 1;
   if ( v5 >= (unsigned __int8)v7[46] )
-LABEL_15:
     v6 = 1;
   return v6;
 }