diff Player.cpp @ 1536:e264ce95f27d

Player:GetSkillBonus cleanup, undoing part of previous changeset to better track file modifications
author Grumpy7
date Sat, 07 Sep 2013 04:15:06 +0200
parents a18076b22fb7
children fed56133bf8a
line wrap: on
line diff
--- a/Player.cpp	Sat Sep 07 04:13:22 2013 +0200
+++ b/Player.cpp	Sat Sep 07 04:15:06 2013 +0200
@@ -5148,16 +5148,27 @@
       }
       v71 = 0;
       v23 = (PLAYER_SKILL_TYPE)pItemsTable->pItems[v22].uSkillType;
-      v25 = v2->GetActualSkillLevel(v23);
-      v26 = SkillToMastery(v25);
+      LOBYTE(v24) = v2->GetActualSkillLevel(v23);
+      v25 = v24;
+      v26 = SkillToMastery(v24);
       switch (v23)
       {
         case PLAYER_SKILL_STAFF:
           if ( (signed int)SkillToMastery(v25) >= 4 && v2->GetActualSkillLevel(PLAYER_SKILL_UNARMED) > 0)
           {
             v31 = v2->GetActualSkillLevel(PLAYER_SKILL_UNARMED);
-            multiplier = GetMultiplierForMastery(v31, 0, 1, 2, 2);
-            return multiplier * (v31 & 0x3F);
+            if ( v31 )
+            {
+              v32 = SkillToMastery(v31);
+              switch (v32)
+              {
+              case 1: multiplier=0; break;
+              case 2: multiplier=1; break;
+              case 3: multiplier=2; break;
+              case 4: multiplier=2; break;
+              }
+              return multiplier * (v31 & 0x3F);
+            }
           }
           else
           {
@@ -5166,7 +5177,14 @@
           break;
 
         case PLAYER_SKILL_DAGGER:
-          multiplier = GetMultiplierForMastery(v25, 0, 0, 0, 1);
+          v29 = SkillToMastery(v25);
+          switch (v29)
+          {
+            case 1: multiplier=0; break;
+            case 2: multiplier=0; break;
+            case 3: multiplier=0; break;
+            case 4: multiplier=1; break;
+          }
           v30 = multiplier * (v29 & 0x3F);
           return arm_bonus + v30;
           break;
@@ -5175,12 +5193,26 @@
           break;
         case PLAYER_SKILL_MACE:
         case PLAYER_SKILL_SPEAR:
-          multiplier = GetMultiplierForMastery(v25, 0, 1, 1, 1);
+          v29 = SkillToMastery(v25);
+          switch (v29)
+          {
+            case 1: multiplier=0; break;
+            case 2: multiplier=1; break;
+            case 3: multiplier=1; break;
+            case 4: multiplier=1; break;
+          }
           v30 = multiplier * (v29 & 0x3F);
           return arm_bonus + v30;
           break;
         case PLAYER_SKILL_AXE:
-          multiplier = GetMultiplierForMastery(v25, 0, 0, 1, 1);
+          v29 = SkillToMastery(v25);
+          switch (v29)
+          {
+            case 1: multiplier=0; break;
+            case 2: multiplier=0; break;
+            case 3: multiplier=1; break;
+            case 4: multiplier=1; break;
+          }
           v30 = multiplier * (v29 & 0x3F);
           return arm_bonus + v30;
           break;
@@ -5189,19 +5221,9 @@
   default:
     return 0;
   }
-}
-
-unsigned int Player::GetMultiplierForMastery(unsigned int skillValue, int mult1, int mult2, int mult3, int mult4)
-{
-  int masteryLvl = SkillToMastery(skillValue);
-  switch (masteryLvl)
-  {
-    case 1: return mult1;
-    case 2: return mult2;
-    case 3: return mult3;
-    case 4: return mult4;
-  }
-}
+    
+}
+
 //----- (00490109) --------------------------------------------------------
 // faces are:  0  1  2  3   human males
 //             4  5  6  7   human females