@@ -608,6 +608,7 @@ class TQuestGuard
608608 // Игроки, посетившие этот объект.
609609 // offset: +0x4 = +4, size = 0x1 = 1
610610 uint8_t visitedPlayers;
611+
611612};
612613#pragma pack(pop)
613614
@@ -628,30 +629,85 @@ enum TSeerRewardType : uint32_t
628629 eRewardCreature = 10 , // Существо
629630};
630631
632+ #pragma pack(push, 4)
633+ // Seer hut quest completion reward as a creature /
634+ // Награда хижины провидца - существо.
635+ // size = 0x8 = 8, align = 4
636+ struct TCreatureStack
637+ {
638+ public:
639+ // Creature type /
640+ // Тип существа.
641+ // offset: +0x0 = +0, size = 0x4 = 4
642+ TCreatureType Creature;
643+
644+ // Number of creatures /
645+ // Количество существ.
646+ // offset: +0x4 = +4, size = 0x2 = 2
647+ int16_t numTroops;
648+
649+ protected:
650+ byte_t gap6[2 ];
651+
652+ };
653+ #pragma pack(pop)
654+
655+ #pragma pack(push, 4)
656+ // Seer hut quest completion reward as a game resource /
657+ // Награда хижины провидца - игровой ресурс.
658+ // size = 0x8 = 8, align = 4
659+ struct TSeerResourceReward
660+ {
661+ public:
662+ // Resource type /
663+ // Тип ресурса.
664+ // offset: +0x0 = +0, size = 0x4 = 4
665+ EGameResource resType;
666+
667+ // Resource quantity /
668+ // Количество ресурса.
669+ // offset: +0x4 = +4, size = 0x4 = 4
670+ uint32_t resQty;
671+
672+ };
673+ #pragma pack(pop)
674+
675+ #pragma pack(push, 4)
676+ // Seer hut quest completion reward as a primary skill /
677+ // Награда хижины провидца - первичный навык.
678+ // size = 0x8 = 8, align = 4
679+ struct TSeerPrimarySkillReward
680+ {
681+ public:
682+ // Primary skill type /
683+ // Тип первичного навыка.
684+ // offset: +0x0 = +0, size = 0x4 = 4
685+ TPrimarySkill skillType;
686+
687+ // Primary skill level increment /
688+ // Уровень первичного навыка.
689+ // offset: +0x4 = +4, size = 0x1 = 1
690+ uint8_t bonus;
691+ protected:
692+ byte_t gap5[3 ];
693+
694+ };
695+ #pragma pack(pop)
696+
631697#pragma pack(push, 4)
632698// Seerhut reward /
633699// Информация о вознаграждении хижины провидца.
634700// size = 0xC = 12, align = 4
635701struct TSeerReward
636702{
637703 public:
638- NH3API_FORCEINLINE NH3API_CONSTEXPR
639- TSeerReward (TSeerRewardType reward_type,
640- int32_t reward_value1,
641- int32_t reward_value2) NH3API_NOEXCEPT
642- : rewardType(reward_type),
643- rewardValue1 (reward_value1),
644- rewardValue2(reward_value2)
645- {}
646-
647- NH3API_FORCEINLINE NH3API_CONSTEXPR
704+ NH3API_FORCEINLINE
648705 TSeerReward () NH3API_NOEXCEPT
649- : rewardType(eRewardNone), rewardValue1(0 ), rewardValue2(0 )
650- {}
706+ { nh3api::trivial_zero<sizeof (TSeerReward)>(this ); }
651707
652708 NH3API_FORCEINLINE
653709 TSeerReward (const nh3api::dummy_tag_t & tag) NH3API_NOEXCEPT
654- { NH3API_IGNORE (rewardType, rewardValue1, rewardValue2 ); }
710+ { NH3API_IGNORE (rewardType); }
655711
656712 public:
657713 int32_t getValue (hero* current_hero)
@@ -669,11 +725,49 @@ struct TSeerReward
669725 // offset: +0x0 = +5, size = 0x4 = 4
670726 TSeerRewardType rewardType;
671727
672- // offset: +0x9 = +9, size = 0x4 = 4
673- int32_t rewardValue1;
728+ union
729+ {
730+ // Experience increment reward /
731+ // Кол-во опыта в виде вознаграждения.
732+ int32_t ExperienceBonus;
733+
734+ // Mana reward /
735+ // Вознаграждение в виде маны.
736+ int32_t ManaBonus;
737+
738+ // Morale reward /
739+ // Вознаграждение в виде боевого духа.
740+ int8_t MoraleBonus;
741+
742+ // Luck reward /
743+ // Вознаграждение в виде удачи.
744+ int8_t LuckBonus;
745+
746+ // Resource reward /
747+ // Вознаграждение в виде ресурсов
748+ TSeerResourceReward ResourceReward;
749+
750+ // Primary skill increment reward /
751+ // Увеличение уровня первичного навыка в виде вознаграждения.
752+ TSeerPrimarySkillReward PrimarySkillReward;
753+
754+ // Secondary skill learning reward /
755+ // Обучение вторичным навыком в качестве вознаграждения.
756+ SecondarySkillData SecondarySkillReward;
757+
758+ // Artifact reward /
759+ // Вознаграждение в виде артефакта.
760+ TArtifact ArtifactReward;
761+
762+ // Spell learning reward /
763+ // Обучение заклинанию в качестве вознаграждения.
764+ SpellID SpellReward;
765+
766+ // Creature reward /
767+ // Вознаграждение в существа.
768+ TCreatureStack CreatureReward;
674769
675- // offset: +0xD = +13, size = 0x4 = 4
676- int32_t rewardValue2;
770+ } NH3API_MSVC_LAYOUT;
677771};
678772#pragma pack(pop)
679773
0 commit comments