Mercurial > mm7
comparison Player.cpp @ 652:1ff57450f090
* Some fixes to TravelByTransport
* Minor bug with npc profession names
* Fixed not loading npc profession decriptions
* NPC professions enum
author | Nomad |
---|---|
date | Tue, 12 Mar 2013 04:45:38 +0200 |
parents | cfca6297e4ae |
children | eb67721c5268 |
comparison
equal
deleted
inserted
replaced
651:2bf48d11d742 | 652:1ff57450f090 |
---|---|
1963 int uSkillMult; // eax@3 | 1963 int uSkillMult; // eax@3 |
1964 int v5; // edi@7 | 1964 int v5; // edi@7 |
1965 signed int v6; // ebp@7 | 1965 signed int v6; // ebp@7 |
1966 char *v7; // esi@7 | 1966 char *v7; // esi@7 |
1967 signed int uSkillMultiplier; // [sp-4h] [bp-14h]@2 | 1967 signed int uSkillMultiplier; // [sp-4h] [bp-14h]@2 |
1968 | |
1969 if (CheckHiredNPCSpeciality(Scholar)) | |
1970 return true; | |
1968 | 1971 |
1969 v2 = pPlayers[uActiveCharacter]->GetActualSkillLevel(PLAYER_SKILL_ITEM_ID); | 1972 v2 = pPlayers[uActiveCharacter]->GetActualSkillLevel(PLAYER_SKILL_ITEM_ID); |
1970 v3 = v2; | 1973 v3 = v2; |
1971 if ( v2 & 1 ) | 1974 if ( v2 & 1 ) |
1972 { | 1975 { |
1978 { | 1981 { |
1979 uSkillMult = ((v2 & 0x40) != 0) + 1; | 1982 uSkillMult = ((v2 & 0x40) != 0) + 1; |
1980 v5 = uSkillMult * (v3 & 0x3F); | 1983 v5 = uSkillMult * (v3 & 0x3F); |
1981 v6 = 0; | 1984 v6 = 0; |
1982 v7 = (char *)&pItemsTable->pItems[pItem->uItemID].pIconName; | 1985 v7 = (char *)&pItemsTable->pItems[pItem->uItemID].pIconName; |
1983 if ( CheckHiredNPCSpeciality(4) ) | 1986 |
1984 { | |
1985 v6 = 1; | |
1986 return v6; | |
1987 } | |
1988 if ( (signed int)SkillToMastery(v3) >= 4 ) | 1987 if ( (signed int)SkillToMastery(v3) >= 4 ) |
1989 v6 = 1; | 1988 v6 = 1; |
1990 if ( v5 >= (unsigned __int8)v7[46] ) | 1989 if ( v5 >= (unsigned __int8)v7[46] ) |
1991 v6 = 1; | 1990 v6 = 1; |
1992 return v6; | 1991 return v6; |
1995 } | 1994 } |
1996 uSkillMult = uSkillMultiplier; | 1995 uSkillMult = uSkillMultiplier; |
1997 v5 = uSkillMult * (v3 & 0x3F); | 1996 v5 = uSkillMult * (v3 & 0x3F); |
1998 v6 = 0; | 1997 v6 = 0; |
1999 v7 = (char *)&pItemsTable->pItems[pItem->uItemID].pIconName; | 1998 v7 = (char *)&pItemsTable->pItems[pItem->uItemID].pIconName; |
2000 if ( CheckHiredNPCSpeciality(4) ) | 1999 |
2001 { | |
2002 v6 = 1; | |
2003 return v6; | |
2004 } | |
2005 if ( (signed int)SkillToMastery(v3) >= 4 ) | 2000 if ( (signed int)SkillToMastery(v3) >= 4 ) |
2006 v6 = 1; | 2001 v6 = 1; |
2007 if ( v5 >= (unsigned __int8)v7[46] ) | 2002 if ( v5 >= (unsigned __int8)v7[46] ) |
2008 v6 = 1; | 2003 v6 = 1; |
2009 return v6; | 2004 return v6; |
2018 int v5; // edi@7 | 2013 int v5; // edi@7 |
2019 signed int v6; // ebp@7 | 2014 signed int v6; // ebp@7 |
2020 char v8; // al@10 | 2015 char v8; // al@10 |
2021 signed int v10; // [sp-4h] [bp-14h]@2 | 2016 signed int v10; // [sp-4h] [bp-14h]@2 |
2022 | 2017 |
2018 | |
2019 auto v7 = &pItemsTable->pItems[a2->uItemID]; | |
2020 if (CheckHiredNPCSpeciality(Smith) && v7->uEquipType <= 2 || | |
2021 CheckHiredNPCSpeciality(Armorer) && v7->uEquipType >= 3 && v7->uEquipType <= 9 || | |
2022 CheckHiredNPCSpeciality(Alchemist) && v7->uEquipType >= 9 ) | |
2023 return true; | |
2024 | |
2023 LOBYTE(v2) = GetActualSkillLevel(PLAYER_SKILL_REPAIR); | 2025 LOBYTE(v2) = GetActualSkillLevel(PLAYER_SKILL_REPAIR); |
2024 v3 = v2; | 2026 v3 = v2; |
2025 if ( HIBYTE(v2) & 1 ) | 2027 if ( HIBYTE(v2) & 1 ) |
2026 { | 2028 { |
2027 v10 = 5; | 2029 v10 = 5; |
2037 } | 2039 } |
2038 v4 = v10; | 2040 v4 = v10; |
2039 LABEL_7: | 2041 LABEL_7: |
2040 v5 = v4 * (v3 & 0x3F); | 2042 v5 = v4 * (v3 & 0x3F); |
2041 v6 = 0; | 2043 v6 = 0; |
2042 auto v7 = &pItemsTable->pItems[a2->uItemID]; | |
2043 if (CheckHiredNPCSpeciality(1) && v7->uEquipType <= 2 || | |
2044 CheckHiredNPCSpeciality(2) && v7->uEquipType >= 3 && v7->uEquipType <= 9 || | |
2045 CheckHiredNPCSpeciality(3) && v7->uEquipType >= 9 ) | |
2046 return true; | |
2047 if ( (signed int)SkillToMastery(v3) >= 4 ) | 2044 if ( (signed int)SkillToMastery(v3) >= 4 ) |
2048 return true; | 2045 return true; |
2049 if ( v5 >= *((char *)(v7 + 1) + 2) ) | 2046 if ( v5 >= *((char *)(v7 + 1) + 2) ) |
2050 { | 2047 { |
2051 __debugbreak(); // really odd | 2048 __debugbreak(); // really odd |
2627 int v6; // ebp@11 | 2624 int v6; // ebp@11 |
2628 signed int v8; // [sp+10h] [bp-4h]@1 | 2625 signed int v8; // [sp+10h] [bp-4h]@1 |
2629 | 2626 |
2630 v8 = 0; | 2627 v8 = 0; |
2631 v1 = this; | 2628 v1 = this; |
2632 if ( CheckHiredNPCSpeciality(0x1Bu) ) | 2629 if ( CheckHiredNPCSpeciality(Fool) ) |
2633 v8 = 5; | 2630 v8 = 5; |
2634 if ( CheckHiredNPCSpeciality(0x1Cu) ) | 2631 if ( CheckHiredNPCSpeciality(ChimneySweep) ) |
2635 v8 += 20; | 2632 v8 += 20; |
2636 if ( CheckHiredNPCSpeciality(0x2Fu) ) | 2633 if ( CheckHiredNPCSpeciality(Psychic) ) |
2637 v8 += 10; | 2634 v8 += 10; |
2638 v2 = v1->sAgeModifier + GetBaseAge(); | 2635 v2 = v1->sAgeModifier + GetBaseAge(); |
2639 v3 = 0; | 2636 v3 = 0; |
2640 while ( (signed int)v2 >= (signed int)pAgeingTable[v3] ) | 2637 while ( (signed int)v2 >= (signed int)pAgeingTable[v3] ) |
2641 { | 2638 { |
4497 v2 = 0; | 4494 v2 = 0; |
4498 v3 = this; | 4495 v3 = this; |
4499 v10 = 0; | 4496 v10 = 0; |
4500 v9 = 0; | 4497 v9 = 0; |
4501 v4 = GetRace(); | 4498 v4 = GetRace(); |
4502 if ( CheckHiredNPCSpeciality(0x25u) ) | 4499 if ( CheckHiredNPCSpeciality(Enchanter) ) |
4503 v10 = 20; | 4500 v10 = 20; |
4504 if ( (a2 == CHARACTER_ATTRIBUTE_RESIST_FIRE | 4501 if ( (a2 == CHARACTER_ATTRIBUTE_RESIST_FIRE |
4505 || a2 == CHARACTER_ATTRIBUTE_RESIST_AIR | 4502 || a2 == CHARACTER_ATTRIBUTE_RESIST_AIR |
4506 || a2 == CHARACTER_ATTRIBUTE_RESIST_WATER | 4503 || a2 == CHARACTER_ATTRIBUTE_RESIST_WATER |
4507 || a2 == CHARACTER_ATTRIBUTE_RESIST_EARTH) | 4504 || a2 == CHARACTER_ATTRIBUTE_RESIST_EARTH) |
5651 v2 = 0; | 5648 v2 = 0; |
5652 switch (uSkillType) | 5649 switch (uSkillType) |
5653 { | 5650 { |
5654 case PLAYER_SKILL_MONSTER_ID: | 5651 case PLAYER_SKILL_MONSTER_ID: |
5655 { | 5652 { |
5656 if ( CheckHiredNPCSpeciality(58) ) | 5653 if ( CheckHiredNPCSpeciality(Hunter) ) |
5657 v2 = 6; | 5654 v2 = 6; |
5658 if ( CheckHiredNPCSpeciality(57) ) | 5655 if ( CheckHiredNPCSpeciality(Sage) ) |
5659 v2 += 6; | 5656 v2 += 6; |
5660 v8 = (CHARACTER_ATTRIBUTE_TYPE)20; | 5657 v8 = (CHARACTER_ATTRIBUTE_TYPE)20; |
5661 v2 += GetItemsBonus(v8, 0); | 5658 v2 += GetItemsBonus(v8, 0); |
5662 } | 5659 } |
5663 break; | 5660 break; |
5664 | 5661 |
5665 case PLAYER_SKILL_ARMSMASTER: | 5662 case PLAYER_SKILL_ARMSMASTER: |
5666 { | 5663 { |
5667 if ( CheckHiredNPCSpeciality(15) ) | 5664 if ( CheckHiredNPCSpeciality(Armsmaster) ) |
5668 v2 = 2; | 5665 v2 = 2; |
5669 if ( CheckHiredNPCSpeciality(16) ) | 5666 if ( CheckHiredNPCSpeciality(Weaponsmaster) ) |
5670 v2 += 3; | 5667 v2 += 3; |
5671 v8 = (CHARACTER_ATTRIBUTE_TYPE)21; | 5668 v8 = (CHARACTER_ATTRIBUTE_TYPE)21; |
5672 v2 += GetItemsBonus(v8, 0); | 5669 v2 += GetItemsBonus(v8, 0); |
5673 } | 5670 } |
5674 break; | 5671 break; |
5675 | 5672 |
5676 case PLAYER_SKILL_STEALING: | 5673 case PLAYER_SKILL_STEALING: |
5677 { | 5674 { |
5678 if (CheckHiredNPCSpeciality(51)) | 5675 if (CheckHiredNPCSpeciality(Burglar)) |
5679 v2 = 8; | 5676 v2 = 8; |
5680 v8 = (CHARACTER_ATTRIBUTE_TYPE)17; | 5677 v8 = (CHARACTER_ATTRIBUTE_TYPE)17; |
5681 v2 += GetItemsBonus(v8, 0); | 5678 v2 += GetItemsBonus(v8, 0); |
5682 } | 5679 } |
5683 break; | 5680 break; |
5684 | 5681 |
5685 | 5682 |
5686 case PLAYER_SKILL_ALCHEMY: | 5683 case PLAYER_SKILL_ALCHEMY: |
5687 { | 5684 { |
5688 if ( CheckHiredNPCSpeciality(23) ) | 5685 if ( CheckHiredNPCSpeciality(Herbalist) ) |
5689 v2 = 4; | 5686 v2 = 4; |
5690 if ( CheckHiredNPCSpeciality(24) ) | 5687 if ( CheckHiredNPCSpeciality(Apothecary) ) |
5691 v2 += 8; | 5688 v2 += 8; |
5692 v8 = (CHARACTER_ATTRIBUTE_TYPE)16; | 5689 v8 = (CHARACTER_ATTRIBUTE_TYPE)16; |
5693 v2 += GetItemsBonus(v8, 0); | 5690 v2 += GetItemsBonus(v8, 0); |
5694 } | 5691 } |
5695 break; | 5692 break; |
5696 | 5693 |
5697 case PLAYER_SKILL_LEARNING: | 5694 case PLAYER_SKILL_LEARNING: |
5698 { | 5695 { |
5699 if ( CheckHiredNPCSpeciality(13) ) | 5696 if ( CheckHiredNPCSpeciality(Teacher) ) |
5700 v2 = 10; | 5697 v2 = 10; |
5701 if ( CheckHiredNPCSpeciality(14) ) | 5698 if ( CheckHiredNPCSpeciality(Instructor) ) |
5702 v2 += 15; | 5699 v2 += 15; |
5703 if ( CheckHiredNPCSpeciality(4) ) | 5700 if ( CheckHiredNPCSpeciality(Scholar) ) |
5704 v2 += 5; | 5701 v2 += 5; |
5705 v8 = (CHARACTER_ATTRIBUTE_TYPE)46; | 5702 v8 = (CHARACTER_ATTRIBUTE_TYPE)46; |
5706 v2 += GetItemsBonus(v8, 0); | 5703 v2 += GetItemsBonus(v8, 0); |
5707 } | 5704 } |
5708 break; | 5705 break; |
5709 | 5706 |
5710 case PLAYER_SKILL_UNARMED: | 5707 case PLAYER_SKILL_UNARMED: |
5711 { | 5708 { |
5712 if (CheckHiredNPCSpeciality(56) ) | 5709 if (CheckHiredNPCSpeciality(Monk) ) |
5713 v2 = 2; | 5710 v2 = 2; |
5714 v8 = (CHARACTER_ATTRIBUTE_TYPE)23; | 5711 v8 = (CHARACTER_ATTRIBUTE_TYPE)23; |
5715 v2 += GetItemsBonus(v8, 0); | 5712 v2 += GetItemsBonus(v8, 0); |
5716 } | 5713 } |
5717 break; | 5714 break; |
5718 | 5715 |
5719 case PLAYER_SKILL_DODGE: | 5716 case PLAYER_SKILL_DODGE: |
5720 { | 5717 { |
5721 if ( CheckHiredNPCSpeciality(56) ) | 5718 if ( CheckHiredNPCSpeciality(Monk) ) |
5722 v2 = 2; | 5719 v2 = 2; |
5723 v8 = (CHARACTER_ATTRIBUTE_TYPE)22; | 5720 v8 = (CHARACTER_ATTRIBUTE_TYPE)22; |
5724 v2 += GetItemsBonus(v8, 0); | 5721 v2 += GetItemsBonus(v8, 0); |
5725 } | 5722 } |
5726 break; | 5723 break; |
5733 v8 = (CHARACTER_ATTRIBUTE_TYPE)45; | 5730 v8 = (CHARACTER_ATTRIBUTE_TYPE)45; |
5734 v2 += GetItemsBonus(v8, 0); | 5731 v2 += GetItemsBonus(v8, 0); |
5735 break; | 5732 break; |
5736 | 5733 |
5737 case PLAYER_SKILL_EARTH: | 5734 case PLAYER_SKILL_EARTH: |
5738 if ( CheckHiredNPCSpeciality(17) ) | 5735 if ( CheckHiredNPCSpeciality(Apprentice) ) |
5739 v2 = 2; | 5736 v2 = 2; |
5740 if ( CheckHiredNPCSpeciality(18) ) | 5737 if ( CheckHiredNPCSpeciality(Mystic) ) |
5741 v2 += 3; | 5738 v2 += 3; |
5742 if ( CheckHiredNPCSpeciality(19) ) | 5739 if ( CheckHiredNPCSpeciality(Spellmaster) ) |
5743 v2 += 4; | 5740 v2 += 4; |
5744 if ( classType == PLAYER_CLASS_WARLOCK && PartyHasDragon() ) | 5741 if ( classType == PLAYER_CLASS_WARLOCK && PartyHasDragon() ) |
5745 v2 += 3; | 5742 v2 += 3; |
5746 v8 = (CHARACTER_ATTRIBUTE_TYPE)37; | 5743 v8 = (CHARACTER_ATTRIBUTE_TYPE)37; |
5747 v2 += GetItemsBonus(v8, 0); | 5744 v2 += GetItemsBonus(v8, 0); |
5748 break; | 5745 break; |
5749 case PLAYER_SKILL_FIRE: | 5746 case PLAYER_SKILL_FIRE: |
5750 if ( CheckHiredNPCSpeciality(17) ) | 5747 if ( CheckHiredNPCSpeciality(Apprentice) ) |
5751 v2 = 2; | 5748 v2 = 2; |
5752 if ( CheckHiredNPCSpeciality(18) ) | 5749 if ( CheckHiredNPCSpeciality(Mystic) ) |
5753 v2 += 3; | 5750 v2 += 3; |
5754 if ( CheckHiredNPCSpeciality(19) ) | 5751 if ( CheckHiredNPCSpeciality(Spellmaster) ) |
5755 v2 += 4; | 5752 v2 += 4; |
5756 if ( classType == PLAYER_CLASS_WARLOCK && PartyHasDragon() ) | 5753 if ( classType == PLAYER_CLASS_WARLOCK && PartyHasDragon() ) |
5757 v2 += 3; | 5754 v2 += 3; |
5758 v8 = (CHARACTER_ATTRIBUTE_TYPE)34; | 5755 v8 = (CHARACTER_ATTRIBUTE_TYPE)34; |
5759 v2 += GetItemsBonus(v8, 0); | 5756 v2 += GetItemsBonus(v8, 0); |
5760 break; | 5757 break; |
5761 case PLAYER_SKILL_AIR: | 5758 case PLAYER_SKILL_AIR: |
5762 if ( CheckHiredNPCSpeciality(17) ) | 5759 if ( CheckHiredNPCSpeciality(Apprentice) ) |
5763 v2 = 2; | 5760 v2 = 2; |
5764 if ( CheckHiredNPCSpeciality(18) ) | 5761 if ( CheckHiredNPCSpeciality(Mystic) ) |
5765 v2 += 3; | 5762 v2 += 3; |
5766 if ( CheckHiredNPCSpeciality(19) ) | 5763 if ( CheckHiredNPCSpeciality(Spellmaster) ) |
5767 v2 += 4; | 5764 v2 += 4; |
5768 if ( classType == PLAYER_CLASS_WARLOCK && PartyHasDragon() ) | 5765 if ( classType == PLAYER_CLASS_WARLOCK && PartyHasDragon() ) |
5769 v2 += 3; | 5766 v2 += 3; |
5770 v8 = (CHARACTER_ATTRIBUTE_TYPE)35; | 5767 v8 = (CHARACTER_ATTRIBUTE_TYPE)35; |
5771 v2 += GetItemsBonus(v8, 0); | 5768 v2 += GetItemsBonus(v8, 0); |
5772 break; | 5769 break; |
5773 case PLAYER_SKILL_WATER: | 5770 case PLAYER_SKILL_WATER: |
5774 if ( CheckHiredNPCSpeciality(17) ) | 5771 if ( CheckHiredNPCSpeciality(Apprentice) ) |
5775 v2 = 2; | 5772 v2 = 2; |
5776 if ( CheckHiredNPCSpeciality(18) ) | 5773 if ( CheckHiredNPCSpeciality(Mystic) ) |
5777 v2 += 3; | 5774 v2 += 3; |
5778 if ( CheckHiredNPCSpeciality(19) ) | 5775 if ( CheckHiredNPCSpeciality(Spellmaster) ) |
5779 v2 += 4; | 5776 v2 += 4; |
5780 if ( classType == PLAYER_CLASS_WARLOCK && PartyHasDragon() ) | 5777 if ( classType == PLAYER_CLASS_WARLOCK && PartyHasDragon() ) |
5781 v2 += 3; | 5778 v2 += 3; |
5782 v8 = (CHARACTER_ATTRIBUTE_TYPE)36; | 5779 v8 = (CHARACTER_ATTRIBUTE_TYPE)36; |
5783 v2 += GetItemsBonus(v8, 0); | 5780 v2 += GetItemsBonus(v8, 0); |
5784 break; | 5781 break; |
5785 case PLAYER_SKILL_SPIRIT: | 5782 case PLAYER_SKILL_SPIRIT: |
5786 if ( CheckHiredNPCSpeciality(53) ) | 5783 if ( CheckHiredNPCSpeciality(Acolyte2) ) |
5787 v2 = 2; | 5784 v2 = 2; |
5788 if ( CheckHiredNPCSpeciality(54) ) | 5785 if ( CheckHiredNPCSpeciality(Initiate) ) |
5789 v2 += 3; | 5786 v2 += 3; |
5790 if ( CheckHiredNPCSpeciality(55) ) | 5787 if ( CheckHiredNPCSpeciality(Prelate) ) |
5791 v2 += 4; | 5788 v2 += 4; |
5792 v8 = (CHARACTER_ATTRIBUTE_TYPE)38; | 5789 v8 = (CHARACTER_ATTRIBUTE_TYPE)38; |
5793 v2 += GetItemsBonus(v8, 0); | 5790 v2 += GetItemsBonus(v8, 0); |
5794 break; | 5791 break; |
5795 case PLAYER_SKILL_MIND: | 5792 case PLAYER_SKILL_MIND: |
5796 if ( CheckHiredNPCSpeciality(53) ) | 5793 if ( CheckHiredNPCSpeciality(Acolyte2) ) |
5797 v2 = 2; | 5794 v2 = 2; |
5798 if ( CheckHiredNPCSpeciality(54) ) | 5795 if ( CheckHiredNPCSpeciality(Initiate) ) |
5799 v2 += 3; | 5796 v2 += 3; |
5800 if ( CheckHiredNPCSpeciality(55) ) | 5797 if ( CheckHiredNPCSpeciality(Prelate) ) |
5801 v2 += 4; | 5798 v2 += 4; |
5802 v8 = (CHARACTER_ATTRIBUTE_TYPE)39; | 5799 v8 = (CHARACTER_ATTRIBUTE_TYPE)39; |
5803 v2 += GetItemsBonus(v8, 0); | 5800 v2 += GetItemsBonus(v8, 0); |
5804 break; | 5801 break; |
5805 case PLAYER_SKILL_BODY: | 5802 case PLAYER_SKILL_BODY: |
5806 if ( CheckHiredNPCSpeciality(53) ) | 5803 if ( CheckHiredNPCSpeciality(Acolyte2) ) |
5807 v2 = 2; | 5804 v2 = 2; |
5808 if ( CheckHiredNPCSpeciality(54) ) | 5805 if ( CheckHiredNPCSpeciality(Initiate) ) |
5809 v2 += 3; | 5806 v2 += 3; |
5810 if ( CheckHiredNPCSpeciality(55) ) | 5807 if ( CheckHiredNPCSpeciality(Prelate) ) |
5811 v2 += 4; | 5808 v2 += 4; |
5812 v8 = (CHARACTER_ATTRIBUTE_TYPE)40; | 5809 v8 = (CHARACTER_ATTRIBUTE_TYPE)40; |
5813 v2 += GetItemsBonus(v8, 0); | 5810 v2 += GetItemsBonus(v8, 0); |
5814 break; | 5811 break; |
5815 case PLAYER_SKILL_LIGHT: | 5812 case PLAYER_SKILL_LIGHT: |
5823 } | 5820 } |
5824 break; | 5821 break; |
5825 | 5822 |
5826 case PLAYER_SKILL_MERCHANT: | 5823 case PLAYER_SKILL_MERCHANT: |
5827 { | 5824 { |
5828 if ( CheckHiredNPCSpeciality(20) ) | 5825 if ( CheckHiredNPCSpeciality(Trader) ) |
5829 v2 = 4; | 5826 v2 = 4; |
5830 if ( CheckHiredNPCSpeciality(21) ) | 5827 if ( CheckHiredNPCSpeciality(Merchant) ) |
5831 v2 += 6; | 5828 v2 += 6; |
5832 if ( CheckHiredNPCSpeciality(48) ) | 5829 if ( CheckHiredNPCSpeciality(Gypsy) ) |
5833 v2 += 3; | 5830 v2 += 3; |
5834 if ( CheckHiredNPCSpeciality(50) ) | 5831 if ( CheckHiredNPCSpeciality(Duper) ) |
5835 v2 += 8; | 5832 v2 += 8; |
5836 } | 5833 } |
5837 break; | 5834 break; |
5838 | 5835 |
5839 case PLAYER_SKILL_PERCEPTION: | 5836 case PLAYER_SKILL_PERCEPTION: |
5840 { | 5837 { |
5841 if ( CheckHiredNPCSpeciality(22) ) | 5838 if ( CheckHiredNPCSpeciality(Scout) ) |
5842 v2 = 6; | 5839 v2 = 6; |
5843 if ( CheckHiredNPCSpeciality(47) ) | 5840 if ( CheckHiredNPCSpeciality(Psychic) ) |
5844 v2 += 5; | 5841 v2 += 5; |
5845 } | 5842 } |
5846 break; | 5843 break; |
5847 | 5844 |
5848 case PLAYER_SKILL_ITEM_ID: | 5845 case PLAYER_SKILL_ITEM_ID: |
5853 v8 = (CHARACTER_ATTRIBUTE_TYPE)43; | 5850 v8 = (CHARACTER_ATTRIBUTE_TYPE)43; |
5854 v2 += GetItemsBonus(v8, 0); | 5851 v2 += GetItemsBonus(v8, 0); |
5855 break; | 5852 break; |
5856 case PLAYER_SKILL_TRAP_DISARM: | 5853 case PLAYER_SKILL_TRAP_DISARM: |
5857 { | 5854 { |
5858 if ( CheckHiredNPCSpeciality(25) ) | 5855 if ( CheckHiredNPCSpeciality(Tinker) ) |
5859 v2 = 4; | 5856 v2 = 4; |
5860 if ( CheckHiredNPCSpeciality(26) ) | 5857 if ( CheckHiredNPCSpeciality(Locksmith) ) |
5861 v2 += 6; | 5858 v2 += 6; |
5862 if ( CheckHiredNPCSpeciality(51) ) | 5859 if ( CheckHiredNPCSpeciality(Burglar) ) |
5863 v2 += 8; | 5860 v2 += 8; |
5864 v8 = (CHARACTER_ATTRIBUTE_TYPE)18; | 5861 v8 = (CHARACTER_ATTRIBUTE_TYPE)18; |
5865 v2 += GetItemsBonus(v8, 0); | 5862 v2 += GetItemsBonus(v8, 0); |
5866 } | 5863 } |
5867 break; | 5864 break; |