diff Player.cpp @ 325:875ba5966ceb

Слияние
author Ritor1
date Wed, 20 Feb 2013 09:24:02 +0600
parents b7f0c5abca42 ce39b96acf5c
children 8e23edf57e27
line wrap: on
line diff
--- a/Player.cpp	Wed Feb 20 09:23:48 2013 +0600
+++ b/Player.cpp	Wed Feb 20 09:24:02 2013 +0600
@@ -1859,7 +1859,7 @@
       return result;
   }
 LABEL_16:
-  if ( BYTE1(pItem->uAttributes) & 1 )
+  if (pItem->Stolen())
     return 6;
 LABEL_26:
   //v14 = &p2DEvents_minus1__20[13 * a4];
@@ -1872,7 +1872,7 @@
     v23 = *v14;
     v24 = pItem->GetValue();
     v17 = v27->_4B8102(v24, v23);
-    if ( !(pItem->uAttributes & 2) )
+    if (!pItem->Broken())
       goto LABEL_39;
     goto LABEL_38;
   }
@@ -1895,7 +1895,7 @@
   v18 = *v14;
   v19 = pItem->GetValue();
   v17 = v27->_4B8102(v19, v18) / 2;
-  if ( pItem->uAttributes & 2 )
+  if (pItem->Broken())
     v17 = 1;
   if ( v17 >= 1 )
     goto LABEL_39;
@@ -2339,7 +2339,7 @@
   v20 = thos;
   v2 = pItem->uItemID;
   if ( !pItemsTable->pItems[v2].uItemID_Rep_St )
-    pItem->uAttributes |= 1u;
+    pItem->SetIdentified();
   ///v15 = 0;
   //v16 = 1;
   //v18 = 3;
@@ -3509,7 +3509,7 @@
     v10 = v5->pMonsterInfo.uLevel + 100 * (_steal_perm + reputation);
     if ( rand() % 100 < 5 || v10 > v29 + v7 * v30 || (_steal_perma = 2, BYTE2(v5->uAttributes) & 8) )
     {
-      Actor::_43AC45(uActorID, 1);
+      Actor::AggroSurroundingPeasants(uActorID, 1);
       _steal_perma = 0;
       v26 = (int)v31->pName;
       v25 = pGlobalTXT_LocalizationStrings[376];
@@ -3796,7 +3796,7 @@
       v13 = this->pInventoryItems;
       do
       {
-        if ( (signed int)v13->uItemID > 0 && (signed int)v13->uItemID <= 134 && !(v13->uAttributes & 2) )
+        if ( (signed int)v13->uItemID > 0 && (signed int)v13->uItemID <= 134 && !v13->Broken())
           v46[v4++] = v12;
         ++v12;
         ++v13;
@@ -7543,7 +7543,7 @@
       goto LABEL_92;
     }
     v15 = pParty->pPickedItem.uItemID - 400;
-    v72 = (char *)&v3->pConditions[0] + pParty->pPickedItem.uItemID + 2;
+    v72 = (char *)&v3->spellbook.pFireSpellbook+pParty->pPickedItem.uItemID-400;//(char *)&v3->pConditions[0] + pParty->pPickedItem.uItemID + 2;
     if ( *v72 )
     {
       v66 = pParty->pPickedItem.GetDisplayName();
@@ -8302,7 +8302,7 @@
       }
       if ( var <= VAR_Counter8 )
       {
-        if ( (signed int)var >= 245 )
+        if ( (signed int)var >= 0xF5 )
         {
           *(int *)&stru_AA1058[3].pSounds[8 * var + 44300] = LODWORD(pParty->uTimePlayed);
           *(int *)&stru_AA1058[3].pSounds[8 * var + 44304] = HIDWORD(pParty->uTimePlayed);
@@ -8329,7 +8329,7 @@
       }
       if ( var < VAR_Counter9 )
         return;
-      if ( (signed int)var <= 274 )
+      if ( (signed int)var <= 0x112 )
       {
         *(int *)&stru_AA1058[3].pSounds[8 * var + 44532] = LODWORD(pParty->uTimePlayed);
         *(int *)&stru_AA1058[3].pSounds[8 * var + 44536] = HIDWORD(pParty->uTimePlayed);
@@ -8765,7 +8765,7 @@
 
 
 //----- (0044AFFB) --------------------------------------------------------
-void Player::AddVariable(enum VariableType var, signed int val)
+void Player::AddVariable(enum VariableType var_type, signed int val)
 {
   char v3; // bl@1
   Player *v4; // esi@1
@@ -8794,7 +8794,7 @@
   DDM_DLV_Header *v27; // eax@153
   signed int v28; // eax@176
   int v29; // [sp-8h] [bp-40h]@84
-  signed int v30; // [sp-4h] [bp-3Ch]@4
+ // signed int v30; // [sp-4h] [bp-3Ch]@4
   int v31; // [sp-4h] [bp-3Ch]@84
   ItemGen item; // [sp+Ch] [bp-2Ch]@45
   unsigned int v33; // [sp+30h] [bp-8h]@34
@@ -8806,31 +8806,21 @@
   v4 = Dst;
   uPlayerIdx = 0;
   if ( Dst == pPlayers[2] )
-  {
     uPlayerIdx = 1;
-    goto LABEL_8;
-  }
-  if ( Dst == pPlayers[3] )
-  {
-    v30 = 2;
-  }
-  else
-  {
-    if ( Dst != pPlayers[4] )
-      goto LABEL_8;
-    v30 = 3;
-  }
-  uPlayerIdx = v30;
-LABEL_8:
-  if ( var <= VAR_AutoNotes )
-  {
-    if ( var != VAR_AutoNotes )
-    {
-      if ( var <= VAR_ActualMight )
-      {
-        if ( var != VAR_ActualMight )
+  else if ( Dst == pPlayers[3] )
+    uPlayerIdx = 2;
+  else if ( Dst == pPlayers[4] )  
+    uPlayerIdx = 3;
+ 
+  if ( var_type <= VAR_AutoNotes )
+  {
+    if ( var_type != VAR_AutoNotes )
+    {
+      if ( var_type <= VAR_ActualMight )
+      {
+        if ( var_type != VAR_ActualMight )
         {
-          switch ( var )
+          switch ( var_type )
           {
             case VAR_RandomGold:
               if ( !val )
@@ -9003,11 +8993,11 @@
         v19 = (__int16 *)&Dst->uMightBonus;
         goto LABEL_113;
       }
-      if ( var <= VAR_FireResistanceBonus )
-      {
-        if ( var != VAR_FireResistanceBonus )
+      if ( var_type <= VAR_FireResistanceBonus )
+      {
+        if ( var_type != VAR_FireResistanceBonus )
         {
-          switch ( var )
+          switch ( var_type )
           {
             case VAR_ActualIntellect:
 LABEL_66:
@@ -9086,13 +9076,13 @@
         pPlayers[uPlayerIdx + 1]->PlaySound((PlayerSpeech)v29, v31);
         goto _play_anim_and_maybe_sound;
       }
-      if ( var <= VAR_DisarmTrapSkill )
-      {
-        if ( var != VAR_DisarmTrapSkill )
+      if ( var_type <= VAR_DisarmTrapSkill )
+      {
+        if ( var_type != VAR_DisarmTrapSkill )
         {
-          if ( var <= VAR_BodyResistanceBonus )
+          if ( var_type <= VAR_BodyResistanceBonus )
           {
-            switch ( var )
+            switch ( var_type )
             {
               case VAR_BodyResistanceBonus:
                 v19 = &Dst->sResBodyBonus;
@@ -9110,43 +9100,43 @@
                 v19 = &Dst->sResSpiritBonus;
                 break;
               default:
-                if ( var != 62 )
+                if ( var_type != 62 )
                   return;
                 v19 = &Dst->sResMindBonus;
                 break;
             }
             goto LABEL_113;
           }
-          if ( var == VAR_LightResistanceBonus )
+          if ( var_type == VAR_LightResistanceBonus )
           {
             v19 = &Dst->sResLightBonus;
             goto LABEL_113;
           }
-          if ( var == VAR_DarkResistanceBonus )
+          if ( var_type == VAR_DarkResistanceBonus )
           {
             v19 = &Dst->sResDarkBonus;
             goto LABEL_113;
           }
-          if ( var == VAR_MagicResistanceBonus )
+          if ( var_type == VAR_MagicResistanceBonus )
           {
             v19 = &Dst->sResMagicBonus;
             goto LABEL_113;
           }
-          if ( var <= VAR_MagicResistanceBonus || var > VAR_DiplomacySkill )
+          if ( var_type <= VAR_MagicResistanceBonus || var_type > VAR_DiplomacySkill )
             return;
         }
         goto LABEL_106;
       }
-      if ( var == VAR_LearningSkill )
+      if ( var_type == VAR_LearningSkill )
       {
 LABEL_106:
         if ( val <= VAR_BodyResistanceBonus )
         {
-          *((short *)&Dst->pConditions[16] + var) = (unsigned __int8)val | *((char *)&Dst->pConditions[16] + 2 * var) & VAR_BodyResistanceBonus;
+          *((short *)&Dst->pConditions[16] + var_type) = (unsigned __int8)val | *((char *)&Dst->pConditions[16] + 2 * var_type) & VAR_BodyResistanceBonus;
         }
         else
         {
-          v20 = (char *)&Dst->pConditions[16] + 2 * var;
+          v20 = (char *)&Dst->pConditions[16] + 2 * var_type;
           v21 = *(short *)v20;
           v22 = (unsigned __int8)val + (v21 & VAR_BodyResistanceBonus);
           if ( v22 > 60 )
@@ -9156,22 +9146,22 @@
         }
         goto _play_anim_and_exit;
       }
-      if ( var <= VAR_LearningSkill )
+      if ( var_type <= VAR_LearningSkill )
         return;
-      if ( var <= VAR_Eradicated )
-      {
-        Dst->SetCondition(var - 105, 0);
+      if ( var_type <= VAR_Eradicated )
+      {
+        Dst->SetCondition(var_type - 105, 0);
       }
       else
       {
-        if ( var != VAR_MajorCondition )
+        if ( var_type != VAR_MajorCondition )
         {
-          if ( var > VAR_MajorCondition && var <= VAR_ActiveSpells )
+          if ( var_type > VAR_MajorCondition && var_type <= VAR_ActiveSpells )
           {
-            if ( (unsigned __int8)val + (unsigned __int8)byte_5E4C15[var] <= 255 )
-              byte_5E4C15[var] += val;
+            if ( (unsigned __int8)val + (unsigned __int8)byte_5E4C15[var_type] <= 255 )
+              byte_5E4C15[var_type] += val;
             else
-              byte_5E4C15[var] = -1;
+              byte_5E4C15[var_type] = -1;
           }
           return;
         }
@@ -9204,14 +9194,14 @@
       goto _maybe_play_sound;
     goto _play_anim_and_maybe_sound;
   }
-  if ( var > VAR_GoldInBank )
-  {
-    if ( var == 307 )
+  if ( var_type > VAR_GoldInBank )
+  {
+    if ( var_type == 307 )
     {
       pParty->uNumDeaths += val;
       goto LABEL_173;
     }
-    switch ( var )
+    switch ( var_type )
     {
       case 308:
         pParty->uNumBountiesCollected += val;
@@ -9235,21 +9225,21 @@
   }
   else
   {
-    if ( var == VAR_GoldInBank )
+    if ( var_type == VAR_GoldInBank )
     {
       pParty->uNumGoldInBank += val;
       return;
     }
-    if ( var <= VAR_Counter8 )
-    {
-      if ( (signed int)var >= 245 )
-      {
-        *(int *)&stru_AA1058[3].pSounds[8 * var + 44300] = LODWORD(pParty->uTimePlayed);
-        *(int *)&stru_AA1058[3].pSounds[8 * var + 44304] = HIDWORD(pParty->uTimePlayed);
+    if ( var_type <= VAR_Counter8 )
+    {
+      if ( (signed int)var_type >= 245 )
+      {
+        *(int *)&stru_AA1058[3].pSounds[8 * var_type + 44300] = LODWORD(pParty->uTimePlayed);
+        *(int *)&stru_AA1058[3].pSounds[8 * var_type + 44304] = HIDWORD(pParty->uTimePlayed);
       }
       else
       {
-        switch ( var )
+        switch ( var_type )
         {
           case VAR_MonthEquals|VAR_CurrentSP:
             _449B7E_toggle_bit((unsigned char *)Dst->field_1A50, val, 1u);
@@ -9267,22 +9257,22 @@
       }
       return;
     }
-    if ( var < VAR_Counter9 )
+    if ( var_type < VAR_Counter9 )
       return;
-    if ( (signed int)var <= 274 )
-    {
-      *(int *)&stru_AA1058[3].pSounds[8 * var + 44532] = LODWORD(pParty->uTimePlayed);
-      *(int *)&stru_AA1058[3].pSounds[8 * var + 44536] = HIDWORD(pParty->uTimePlayed);
+    if ( (signed int)var_type <= 274 )
+    {
+      *(int *)&stru_AA1058[3].pSounds[8 * var_type + 44532] = LODWORD(pParty->uTimePlayed);
+      *(int *)&stru_AA1058[3].pSounds[8 * var_type + 44536] = HIDWORD(pParty->uTimePlayed);
       goto _play_sound;
     }
-    if ( var != VAR_ReputationInCurrentLocation )
-    {
-      if ( var <= VAR_ReputationInCurrentLocation
-        || var > VAR_History_28
-        || (v25 = var - 276, pParty->field_3C.field_4F0[2 * v25 + 1] | pParty->field_3C.field_4F0[2 * v25])
-        || (pParty->field_3C.field_4F0[2 * (var - 276)] = LODWORD(pParty->uTimePlayed),
+    if ( var_type != VAR_ReputationInCurrentLocation )
+    {
+      if ( var_type <= VAR_ReputationInCurrentLocation
+        || var_type > VAR_History_28
+        || (v25 = var_type - 276, pParty->field_3C.field_4F0[2 * v25 + 1] | pParty->field_3C.field_4F0[2 * v25])
+        || (pParty->field_3C.field_4F0[2 * (var_type - 276)] = LODWORD(pParty->uTimePlayed),
             v26 = pStorylineText->StoreLine[v25].pText==0,//*(&pStorylineText->field_0 + 3 * v25) == 0,
-            pParty->field_3C.field_4F0[2 * (var - 276) + 1] = HIDWORD(pParty->uTimePlayed),
+            pParty->field_3C.field_4F0[2 * (var_type - 276) + 1] = HIDWORD(pParty->uTimePlayed),
             v26) )
         return;
       bFlashHistoryBook = 1;