changeset 1274:351bc06722f2

Player::_4B807C changed to Player::GetTempleHealCostModifier, cleaned up
author Grumpy7
date Sat, 15 Jun 2013 05:08:48 +0200
parents fbb7428fa58c
children 7569c88d9cb0
files Player.cpp Player.h UIHouses.cpp
diffstat 3 files changed, 51 insertions(+), 66 deletions(-) [+]
line wrap: on
line diff
--- a/Player.cpp	Sat Jun 15 03:00:36 2013 +0200
+++ b/Player.cpp	Sat Jun 15 05:08:48 2013 +0200
@@ -259,56 +259,44 @@
 }
 
 //----- (004B807C) --------------------------------------------------------
-int Player::_4B807C(float a2)
-{
-  Player *v2; // edi@1
-  unsigned int v3; // eax@1
-  int v4; // esi@1
-  unsigned int v5; // ebx@7
+int Player::GetTempleHealCostModifier(float a2)
+{
+  unsigned int conditionIdx; // eax@1
+  int conditionTimeMultiplier; // esi@1
   int v6; // eax@8
-  signed __int64 v7; // qax@13
-  unsigned int v9; // [sp-4h] [bp-14h]@4
-  signed int v10; // [sp+8h] [bp-8h]@4
-  int v11; // [sp+Ch] [bp-4h]@6
-
-  v2 = this;
-  v3 = GetMajorConditionIdx();
-  v4 = 0;
-  if ( (signed int)v3 >= 14 )
-  {
-    if ( (signed int)v3 <= 15 )
-    {
-      v10 = 5;
-      v9 = v3;
-      goto LABEL_6;
-    }
-    if ( v3 == 16 )
-    {
-      v10 = 10;
-      v9 = 16;
-LABEL_6:
-      v11 = GetConditionDayOfWeek(v9);
-      goto LABEL_13;
-    }
-  }
-  v10 = 1;
-  v5 = 0;
-  do
-  {
-    v6 = GetConditionDayOfWeek(v5);
-    if ( v6 > v4 )
-      v4 = v6;
-    ++v5;
-  }
-  while ( (signed int)v5 <= 13 );
-  v11 = v4;
-  if ( !v4 )
-    v11 = 1;
-LABEL_13:
-  v7 = (signed __int64)((double)v11 * (double)v10 * a2);
-  if ( (signed int)v7 < 1 )
-    LODWORD(v7) = 1;
-  return v7;
+  signed int result; // qax@13
+  signed int baseConditionMultiplier; // [sp+8h] [bp-8h]@4
+  
+  conditionIdx = GetMajorConditionIdx();
+  if ( conditionIdx >= 14 )
+  {
+    if ( conditionIdx <= 15 )
+    {
+      baseConditionMultiplier = 5;
+    }
+    if ( conditionIdx == 16 )
+    {
+      baseConditionMultiplier = 10;
+    }
+    conditionTimeMultiplier = GetConditionDayOfWeek(conditionIdx);
+  }
+  else
+  {
+    baseConditionMultiplier = 1;
+    conditionTimeMultiplier = 0;
+    for (int i = 0; i <= 13; i++)
+    {
+      v6 = GetConditionDayOfWeek(i);
+      if ( v6 > conditionTimeMultiplier )
+        conditionTimeMultiplier = v6;
+    }
+    if ( !conditionTimeMultiplier )
+      conditionTimeMultiplier = 1;
+  }
+  result = ((double)conditionTimeMultiplier * (double)baseConditionMultiplier * a2);
+  if ( result < 1 )
+    result = 1;
+  return result;
 }
 
 //----- (004B8102) --------------------------------------------------------
@@ -6504,9 +6492,6 @@
 //----- (0049070F) --------------------------------------------------------
 void Player::Zero()
 {
-  Player *v1; // esi@1
-
-  v1 = this;
   this->sLevelModifier = 0;
   this->sACModifier = 0;
   this->uLuckBonus = 0;
@@ -6526,18 +6511,18 @@
   this->field_E4 = 0;
   this->field_E0 = 0;
   memset(&this->sResFireBonus, 0, 0x16u);
-  v1->field_1A97 = 0;
-  v1->_ranged_dmg_bonus = 0;
-  v1->field_1A95 = 0;
-  v1->_ranged_atk_bonus = 0;
-  v1->field_1A93 = 0;
-  v1->_melee_dmg_bonus = 0;
-  v1->field_1A91 = 0;
-  v1->_some_attack_bonus = 0;
-  v1->_mana_related = 0;
-  v1->uFullManaBonus = 0;
-  v1->_health_related = 0;
-  v1->uFullHealthBonus = 0;
+  this->field_1A97 = 0;
+  this->_ranged_dmg_bonus = 0;
+  this->field_1A95 = 0;
+  this->_ranged_atk_bonus = 0;
+  this->field_1A93 = 0;
+  this->_melee_dmg_bonus = 0;
+  this->field_1A91 = 0;
+  this->_some_attack_bonus = 0;
+  this->_mana_related = 0;
+  this->uFullManaBonus = 0;
+  this->_health_related = 0;
+  this->uFullHealthBonus = 0;
 }
 
 //----- (004907E7) --------------------------------------------------------
--- a/Player.h	Sat Jun 15 03:00:36 2013 +0200
+++ b/Player.h	Sat Jun 15 05:08:48 2013 +0200
@@ -584,7 +584,7 @@
   int GetPriceIdentification(float a2);
   int GetBuyingPrice(unsigned int uRealValue, float price_multiplier);
   int GetPriceSell(int uRealValue, float price_multiplier);
-  int _4B807C(float a2);
+  int GetTempleHealCostModifier(float a2);
   int GetConditionDayOfWeek(unsigned int uCondition);
   bool _43EEF3();
   void SalesProcess(unsigned int inventory_idnx, int item_index, int _2devent_idx);//0x4BE2DD
--- a/UIHouses.cpp	Sat Jun 15 03:00:36 2013 +0200
+++ b/UIHouses.cpp	Sat Jun 15 05:08:48 2013 +0200
@@ -4748,7 +4748,7 @@
     HIDWORD(v59) = TargetColor(0xFFu, 0xFFu, 0x9Bu);
     v1 = pPlayers[uActiveCharacter];
     //v2 = pPlayers[uActiveCharacter]->_4B807C(p2DEvents_minus1__20[13 * (unsigned int)v0->ptr_1C]);
-    v2 = pPlayers[uActiveCharacter]->_4B807C(p2DEvents[v0->par1C - 1].fPriceMultiplier);
+    v2 = pPlayers[uActiveCharacter]->GetTempleHealCostModifier(p2DEvents[v0->par1C - 1].fPriceMultiplier);
     HIDWORD(v60) = v2;
     if ( dialog_menu_id != HOUSE_DIALOGUE_MAIN )
     {