diff Items.cpp @ 1709:8251e59fd7c1

ITEM_ENCHANTED to ITEM_HARDENED, created helper functions to get params from itemtable for ItemGens
author Grumpy7
date Tue, 24 Sep 2013 07:29:55 +0200
parents 2a309997c42f
children bdac32c645c5
line wrap: on
line diff
--- a/Items.cpp	Mon Sep 23 07:07:06 2013 +0200
+++ b/Items.cpp	Tue Sep 24 07:29:55 2013 +0200
@@ -1479,7 +1479,7 @@
   const char *nameModificator; 
   const char *format_str; 
 
-  equip_type = pItemsTable->pItems[uItemID].uEquipType;
+  equip_type = GetItemEquipType();
   if ( (equip_type == EQUIP_REAGENT) || (equip_type == EQUIP_POTION) || (equip_type == EQUIP_GOLD) )
   {
     sprintf(item__getname_buffer.data(), "%s", pItemsTable->pItems[uItemID].pName);
@@ -1699,7 +1699,7 @@
                 while ( tmp_chance < current_chance );
             }
 
-        if (pItems[out_item->uItemID].uEquipType == EQUIP_POTION && out_item->uItemID != ITEM_POTION_BOTTLE )
+        if (out_item->GetItemEquipType() == EQUIP_POTION && out_item->uItemID != ITEM_POTION_BOTTLE )
             {// if it potion set potion spec
             out_item->uEnchantmentType = 0;
             for (int i=0; i<2; ++i)
@@ -1742,7 +1742,7 @@
             out_item->uItemID = 1;
         if ( !out_item->uItemID )
             out_item->uItemID = 1;
-        if (pItems[out_item->uItemID].uEquipType == EQUIP_POTION && out_item->uItemID != ITEM_POTION_BOTTLE )
+        if (out_item->GetItemEquipType() == EQUIP_POTION && out_item->uItemID != ITEM_POTION_BOTTLE )
             {// if it potion set potion spec
             out_item->uEnchantmentType = 0;
             for (int i=0; i<2; ++i)
@@ -1760,13 +1760,13 @@
     else
         out_item->uAttributes = 1;
 
-    if ( pItems[out_item->uItemID].uEquipType != EQUIP_POTION )
+    if ( out_item->GetItemEquipType() != EQUIP_POTION )
         {
         out_item->uSpecEnchantmentType = 0;
         out_item->uEnchantmentType = 0;
         }
     //try get special enhansment
-    switch (pItems[out_item->uItemID].uEquipType)
+    switch (out_item->GetItemEquipType())
         {
     case EQUIP_OFF_HAND:
     case EQUIP_MAIN_HAND :   
@@ -1790,15 +1790,15 @@
         special_chance = rand() % 100;
         if ( special_chance < uBonusChanceStandart[v6])
             {
-              v26 = rand() %pEnchantmentsSumm[pItems[out_item->uItemID].uEquipType-3]; 
+              v26 = rand() %pEnchantmentsSumm[out_item->GetItemEquipType()-3]; 
             out_item->uEnchantmentType = 0;
-            v27=pEnchantments[out_item->uEnchantmentType].to_item[pItems[out_item->uItemID].uEquipType-3];
+            v27=pEnchantments[out_item->uEnchantmentType].to_item[out_item->GetItemEquipType()-3];
             if (v26>v27 )
                 {
                 do 
                 {
                 ++out_item->uEnchantmentType;
-                v27+=pEnchantments[out_item->uEnchantmentType].to_item[pItems[out_item->uItemID].uEquipType-3];
+                v27+=pEnchantments[out_item->uEnchantmentType].to_item[out_item->GetItemEquipType()-3];
                 } while (v26>v27);
             }
             ++out_item->uEnchantmentType;
@@ -1820,7 +1820,7 @@
             return;
         break;
     case EQUIP_WAND:
-        out_item->uNumCharges = rand() % 6 + pItemsTable->pItems[out_item->uItemID].uDamageMod + 1;
+        out_item->uNumCharges = rand() % 6 + out_item->GetDamageMod() + 1;
         out_item->uMaxCharges = out_item->uNumCharges;
     default:
         return;
@@ -1838,7 +1838,7 @@
         case 2:
             if ((tr_lv==1)||(tr_lv==0))
                 {
-                spc=pSpecialEnchantments[i].to_item_apply[pItems[out_item->uItemID].uEquipType];
+                spc=pSpecialEnchantments[i].to_item_apply[out_item->GetItemEquipType()];
                 spc_sum+=spc;
                 if(spc)
                     {
@@ -1849,7 +1849,7 @@
         case 3:
             if ((tr_lv==2)||(tr_lv==1)||(tr_lv==0))
                 {
-                spc=pSpecialEnchantments[i].to_item_apply[pItems[out_item->uItemID].uEquipType];
+                spc=pSpecialEnchantments[i].to_item_apply[out_item->GetItemEquipType()];
                 spc_sum+=spc;
                 if(spc)
                     {
@@ -1860,7 +1860,7 @@
         case 4:
             if ((tr_lv==3)||(tr_lv==2)||(tr_lv==1))
                 {
-                spc=pSpecialEnchantments[i].to_item_apply[pItems[out_item->uItemID].uEquipType];
+                spc=pSpecialEnchantments[i].to_item_apply[out_item->GetItemEquipType()];
                 spc_sum+=spc;
                 if(spc)
                     {
@@ -1871,7 +1871,7 @@
         case 5:
             if (tr_lv==3)
                 {
-                spc=pSpecialEnchantments[i].to_item_apply[pItems[out_item->uItemID].uEquipType];
+                spc=pSpecialEnchantments[i].to_item_apply[out_item->GetItemEquipType()];
                 spc_sum+=spc;     
                 if(spc)
                     {
@@ -1885,14 +1885,14 @@
     v46 = rand()%spc_sum+1;
     j=0;
     out_item->uSpecEnchantmentType =val_list[j];
-    v45=pSpecialEnchantments[val_list[j]].to_item_apply[pItems[out_item->uItemID].uEquipType];
+    v45=pSpecialEnchantments[val_list[j]].to_item_apply[out_item->GetItemEquipType()];
     if (v45<v46)
         {
         do 
             {
             ++j;
             out_item->uSpecEnchantmentType=val_list[j];
-            v45+=pSpecialEnchantments[val_list[j]].to_item_apply[pItems[out_item->uItemID].uEquipType];
+            v45+=pSpecialEnchantments[val_list[j]].to_item_apply[out_item->GetItemEquipType()];
             } while (v45<v46);
         }
     ++out_item->uSpecEnchantmentType;
@@ -2398,6 +2398,35 @@
   return false;
 }
 
+ITEM_EQUIP_TYPE ItemGen::GetItemEquipType()
+{
+  return pItemsTable->pItems[this->uItemID].uEquipType;
+}
+
+unsigned char ItemGen::GetPlayerSkillType()
+{
+  return pItemsTable->pItems[this->uItemID].uSkillType;
+}
+
+char* ItemGen::GetIconName()
+{
+  return pItemsTable->pItems[this->uItemID].pIconName;
+}
+
+unsigned __int8 ItemGen::GetDamageDice()
+{
+  return pItemsTable->pItems[this->uItemID].uDamageDice;
+}
+
+unsigned __int8 ItemGen::GetDamageRoll()
+{
+  return pItemsTable->pItems[this->uItemID].uDamageRoll;
+}
+
+unsigned __int8 ItemGen::GetDamageMod()
+{
+  return pItemsTable->pItems[this->uItemID].uDamageMod;
+}
 //----- (004B8E3D) --------------------------------------------------------
 void GenerateStandartShopItems()
 	{