Mercurial > mm7
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 |