comparison Player.cpp @ 1356:301e227439e7

Player::CanEquip_RaceAndAlignmentCheck condition reorganizing, label removal, using GetSexByVoice()
author Grumpy7
date Sat, 13 Jul 2013 16:05:24 +0200
parents af2fc30d765f
children 06926081358f
comparison
equal deleted inserted replaced
1355:af2fc30d765f 1356:301e227439e7
681 bool Player::CanEquip_RaceAndAlignmentCheck(unsigned int uItemID) 681 bool Player::CanEquip_RaceAndAlignmentCheck(unsigned int uItemID)
682 { 682 {
683 char v2; // zf@9 683 char v2; // zf@9
684 __int16 v4; // dx@13 684 __int16 v4; // dx@13
685 char v5; // zf@15 685 char v5; // zf@15
686 686 // if (uItemID == 530) // item093 Гибель Эльфа артефакт, гоблин
687 if ( (signed int)uItemID > 532 ) // if (uItemID == 514 || // item233 Посох Этрика артефакт, зло 687 if ( (signed int)uItemID > 532 ) // if (uItemID == 514 || // item233 Посох Этрика артефакт, зло
688 // uItemID == 516 || // item221 Старый Ник артефакт, зло 688 // uItemID == 516 || // item221 Старый Ник артефакт, зло
689 // uItemID == 524) // item325 Сумрак реликвия, зло 689 // uItemID == 524) // item325 Сумрак реликвия, зло
690 { 690 {
691 if ( uItemID == 533 ) 691 if ( uItemID == 533 ) // if (uItemID == 533) // item113 Кованые Латные Рукавицы артефакт, гном
692 { 692 {
693 v2 = GetRace() == 1; 693 v2 = GetRace() == CHARACTER_RACE_ELF;
694 }
695 else if ( uItemID == 534 ) // if (uItemID == 534) // item104 Пояс Героя артефакт, мужчина
696 {
697 v2 = GetRace() == CHARACTER_RACE_DWARF;
698 }
699 else if ( uItemID == 535 ) //
700 {
701 if (this->GetSexByVoice() == SEX_MALE)// if (uItemID == 535) // item129 Эскорт Леди артефакт, женщина
702 {
703 return 1;
704 }
705 else
706 {
707 return 0;
708 }
709 }
710 else if ( uItemID == 536 )
711 {
712 if (this->GetSexByVoice() == SEX_FEMALE)
713 {
714 return 1;
715 }
716 else
717 {
718 return 0;
719 }
720 }
721 else if ( uItemID == 604 )
722 {
723 v5 = NothingOrJustBlastersEquipped() == 0;
724 if ( !v5 )
725 return 1;
726 return 0;
727 }
728 else
729 return 1;
730 }
731 else
732 {
733 if ( uItemID == 532 ) // if (uItemID == 532) // item073 Эльфийская Кольчуга артефакт, эльф
734 {
735 v2 = GetRace() == CHARACTER_RACE_HUMAN;
736 }
737 else if ( uItemID == 515 || uItemID == 517 || uItemID == 525) //
738 {
739 v5 = (unsigned __int16)_449B57_test_bit(pParty->_quest_bits, 100) == 0;
740 if ( !v5 )
741 return 1;
742 return 0;
743 }
744 else if ( uItemID == 521 || uItemID == 527) // if (uItemID == 521 || // item239 Шлем Таледона артефакт, добро
745 // uItemID == 526) // item230 Справедливость реликвия, добро
746 {
747 v5 = (unsigned __int16)_449B57_test_bit(pParty->_quest_bits, 99) == 0;
748 if ( !v5 )
749 return 1;
750 return 0;
751 }
752 else if ( uItemID == 531 ) // if (uItemID == 531) // item093 Око Мысли артефакт, человек
753 {
754 v2 = GetRace() == CHARACTER_RACE_GOBLIN;
755 if ( v2 )
756 return 1;
757 return 0;
694 } 758 }
695 else 759 else
696 { 760 {
697 if ( uItemID != 534 ) 761 return 1;
698 { 762 }
699 if ( uItemID == 535 ) // 763 }
700 // if (uItemID == 530) // item093 Гибель Эльфа артефакт, гоблин 764 }
701 {
702 switch ( this->uVoiceID )
703 {
704 default:
705 return 1;
706 case 4u:
707 case 5u:
708 case 6u:
709 case 7u:
710 case 0xAu:
711 case 0xBu:
712 case 0xEu: //
713 // if (uItemID == 535) // item129 Эскорт Леди артефакт, женщина
714 case 0xFu:
715 case 0x12u:
716 case 0x13u:
717 case 0x15u:
718 case 0x18u:
719 return 0;
720 }
721 return 0;
722 }
723 if ( uItemID == 536 ) //
724 // if (uItemID == 531) // item093 Око Мысли артефакт, человек
725 {
726 switch ( this->uVoiceID )
727 {
728 case 4u:
729 case 5u:
730 case 6u:
731 case 7u:
732 case 0xAu:
733 case 0xBu:
734 case 0xEu:
735 case 0xFu:
736 case 0x12u:
737 case 0x13u:
738 case 0x15u:
739 case 0x18u:
740 return 1;
741 default:
742 return 0;
743 }
744 return 0;
745 }
746 if ( uItemID != 604 ) //
747 // if (uItemID == 532) // item073 Эльфийская Кольчуга артефакт, эльф
748 return 1;
749 v5 = NothingOrJustBlastersEquipped() == 0;
750 goto LABEL_23;
751 }
752 v2 = GetRace() == 3; //
753 // if (uItemID == 533) // item113 Кованые Латные Рукавицы артефакт, гном
754 }
755 }
756 else
757 {
758 if ( uItemID != 532 )
759 {
760 if ( uItemID != 515 && uItemID != 517 ) //
761 // if (uItemID == 534) // item104 Пояс Героя артефакт, мужчина
762 {
763 if ( uItemID == 521 ) // if (uItemID == 521 || // item239 Шлем Таледона артефакт, добро
764 // uItemID == 526) // item230 Справедливость реликвия, добро
765 {
766 LABEL_13:
767 v4 = 99;
768 LABEL_15:
769 v5 = (unsigned __int16)_449B57_test_bit(pParty->_quest_bits, v4) == 0;
770 LABEL_23:
771 if ( !v5 )
772 return 1;
773 return 0;
774 }
775 if ( uItemID != 525 )
776 {
777 if ( uItemID != 527 )
778 {
779 if ( uItemID != 531 )
780 return 1;
781 v2 = GetRace() == 2;
782 goto LABEL_10;
783 }
784 goto LABEL_13;
785 }
786 }
787 v4 = 100;
788 goto LABEL_15;
789 }
790 v2 = GetRace() == 0;
791 }
792 LABEL_10:
793 if ( v2 )
794 return 1;
795 return 0;
796 }
797
798 //----- (00492D65) -------------------------------------------------------- 765 //----- (00492D65) --------------------------------------------------------
799 int Player::SetCondition(unsigned int uConditionIdx, int a3) 766 int Player::SetCondition(unsigned int uConditionIdx, int a3)
800 { 767 {
801 768
802 signed int player_sex; // ecx@77 769 signed int player_sex; // ecx@77