Skip to content

Commit c7f4e71

Browse files
committed
Add support for getting/setting Requirements/MemorizationRequirements
1 parent a48cc8d commit c7f4e71

File tree

4 files changed

+586
-88
lines changed

4 files changed

+586
-88
lines changed

OsiInterface/Enumerations.cpp

Lines changed: 176 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,182 @@ namespace osidbg
6767
};
6868

6969

70+
EnumInfo<RequirementType>::Label const EnumInfo<RequirementType>::Values[] = {
71+
{ RequirementType::None, "None" },
72+
{ RequirementType::Level, "Level" },
73+
{ RequirementType::Strength, "Strength" },
74+
{ RequirementType::Finesse, "Finesse" },
75+
{ RequirementType::Intelligence, "Intelligence" },
76+
{ RequirementType::Constitution, "Constitution" },
77+
{ RequirementType::Memory, "Memory" },
78+
{ RequirementType::Wits, "Wits" },
79+
{ RequirementType::WarriorLore, "WarriorLore" },
80+
{ RequirementType::RangerLore, "RangerLore" },
81+
{ RequirementType::RogueLore, "RogueLore" },
82+
{ RequirementType::SingleHanded, "SingleHanded" },
83+
{ RequirementType::TwoHanded, "TwoHanded" },
84+
{ RequirementType::PainReflection, "PainReflection" },
85+
{ RequirementType::Ranged, "Ranged" },
86+
{ RequirementType::Shield, "Shield" },
87+
{ RequirementType::Reflexes, "Reflexes" },
88+
{ RequirementType::PhysicalArmorMastery, "PhysicalArmorMastery" },
89+
{ RequirementType::MagicArmorMastery, "MagicArmorMastery" },
90+
{ RequirementType::Vitality, "Vitality" },
91+
{ RequirementType::Sourcery, "Sourcery" },
92+
{ RequirementType::Telekinesis, "Telekinesis" },
93+
{ RequirementType::FireSpecialist, "FireSpecialist" },
94+
{ RequirementType::WaterSpecialist, "WaterSpecialist" },
95+
{ RequirementType::AirSpecialist, "AirSpecialist" },
96+
{ RequirementType::EarthSpecialist, "EarthSpecialist" },
97+
{ RequirementType::Necromancy, "Necromancy" },
98+
{ RequirementType::Summoning, "Summoning" },
99+
{ RequirementType::Polymorph, "Polymorph" },
100+
{ RequirementType::Repair, "Repair" },
101+
{ RequirementType::Sneaking, "Sneaking" },
102+
{ RequirementType::Pickpocket, "Pickpocket" },
103+
{ RequirementType::Thievery, "Thievery" },
104+
{ RequirementType::Loremaster, "Loremaster" },
105+
{ RequirementType::Crafting, "Crafting" },
106+
{ RequirementType::Barter, "Barter" },
107+
{ RequirementType::Charm, "Charm" },
108+
{ RequirementType::Intimidate, "Intimidate" },
109+
{ RequirementType::Reason, "Reason" },
110+
{ RequirementType::Persuasion, "Persuasion" },
111+
{ RequirementType::Leadership, "Leadership" },
112+
{ RequirementType::Luck, "Luck" },
113+
{ RequirementType::DualWielding, "DualWielding" },
114+
{ RequirementType::Wand, "Wand" },
115+
{ RequirementType::Perseverance, "Perseverance" },
116+
{ RequirementType::TALENT_ItemMovement, "TALENT_ItemMovement" },
117+
{ RequirementType::TALENT_ItemCreation, "TALENT_ItemCreation" },
118+
{ RequirementType::TALENT_Flanking, "TALENT_Flanking" },
119+
{ RequirementType::TALENT_AttackOfOpportunity, "TALENT_AttackOfOpportunity" },
120+
{ RequirementType::TALENT_Backstab, "TALENT_Backstab" },
121+
{ RequirementType::TALENT_Trade, "TALENT_Trade" },
122+
{ RequirementType::TALENT_Lockpick, "TALENT_Lockpick" },
123+
{ RequirementType::TALENT_ChanceToHitRanged, "TALENT_ChanceToHitRanged" },
124+
{ RequirementType::TALENT_ChanceToHitMelee, "TALENT_ChanceToHitMelee" },
125+
{ RequirementType::TALENT_Damage, "TALENT_Damage" },
126+
{ RequirementType::TALENT_ActionPoints, "TALENT_ActionPoints" },
127+
{ RequirementType::TALENT_ActionPoints2, "TALENT_ActionPoints2" },
128+
{ RequirementType::TALENT_Criticals, "TALENT_Criticals" },
129+
{ RequirementType::TALENT_IncreasedArmor, "TALENT_IncreasedArmor" },
130+
{ RequirementType::TALENT_Sight, "TALENT_Sight" },
131+
{ RequirementType::TALENT_ResistFear, "TALENT_ResistFear" },
132+
{ RequirementType::TALENT_ResistKnockdown, "TALENT_ResistKnockdown" },
133+
{ RequirementType::TALENT_ResistStun, "TALENT_ResistStun" },
134+
{ RequirementType::TALENT_ResistPoison, "TALENT_ResistPoison" },
135+
{ RequirementType::TALENT_ResistSilence, "TALENT_ResistSilence" },
136+
{ RequirementType::TALENT_ResistDead, "TALENT_ResistDead" },
137+
{ RequirementType::TALENT_Carry, "TALENT_Carry" },
138+
{ RequirementType::TALENT_Kinetics, "TALENT_Kinetics" },
139+
{ RequirementType::TALENT_Repair, "TALENT_Repair" },
140+
{ RequirementType::TALENT_ExpGain, "TALENT_ExpGain" },
141+
{ RequirementType::TALENT_ExtraStatPoints, "TALENT_ExtraStatPoints" },
142+
{ RequirementType::TALENT_ExtraSkillPoints, "TALENT_ExtraSkillPoints" },
143+
{ RequirementType::TALENT_Durability, "TALENT_Durability" },
144+
{ RequirementType::TALENT_Awareness, "TALENT_Awareness" },
145+
{ RequirementType::TALENT_Vitality, "TALENT_Vitality" },
146+
{ RequirementType::TALENT_FireSpells, "TALENT_FireSpells" },
147+
{ RequirementType::TALENT_WaterSpells, "TALENT_WaterSpells" },
148+
{ RequirementType::TALENT_AirSpells, "TALENT_AirSpells" },
149+
{ RequirementType::TALENT_EarthSpells, "TALENT_EarthSpells" },
150+
{ RequirementType::TALENT_Charm, "TALENT_Charm" },
151+
{ RequirementType::TALENT_Intimidate, "TALENT_Intimidate" },
152+
{ RequirementType::TALENT_Reason, "TALENT_Reason" },
153+
{ RequirementType::TALENT_Luck, "TALENT_Luck" },
154+
{ RequirementType::TALENT_Initiative, "TALENT_Initiative" },
155+
{ RequirementType::TALENT_InventoryAccess, "TALENT_InventoryAccess" },
156+
{ RequirementType::TALENT_AvoidDetection, "TALENT_AvoidDetection" },
157+
{ RequirementType::TALENT_AnimalEmpathy, "TALENT_AnimalEmpathy" },
158+
{ RequirementType::TALENT_Escapist, "TALENT_Escapist" },
159+
{ RequirementType::TALENT_StandYourGround, "TALENT_StandYourGround" },
160+
{ RequirementType::TALENT_SurpriseAttack, "TALENT_SurpriseAttack" },
161+
{ RequirementType::TALENT_LightStep, "TALENT_LightStep" },
162+
{ RequirementType::TALENT_ResurrectToFullHealth, "TALENT_ResurrectToFullHealth" },
163+
{ RequirementType::TALENT_Scientist, "TALENT_Scientist" },
164+
{ RequirementType::TALENT_Raistlin, "TALENT_Raistlin" },
165+
{ RequirementType::TALENT_MrKnowItAll, "TALENT_MrKnowItAll" },
166+
{ RequirementType::TALENT_WhatARush, "TALENT_WhatARush" },
167+
{ RequirementType::TALENT_FaroutDude, "TALENT_FaroutDude" },
168+
{ RequirementType::TALENT_Leech, "TALENT_Leech" },
169+
{ RequirementType::TALENT_ElementalAffinity, "TALENT_ElementalAffinity" },
170+
{ RequirementType::TALENT_FiveStarRestaurant, "TALENT_FiveStarRestaurant" },
171+
{ RequirementType::TALENT_Bully, "TALENT_Bully" },
172+
{ RequirementType::TALENT_ElementalRanger, "TALENT_ElementalRanger" },
173+
{ RequirementType::TALENT_LightningRod, "TALENT_LightningRod" },
174+
{ RequirementType::TALENT_Politician, "TALENT_Politician" },
175+
{ RequirementType::TALENT_WeatherProof, "TALENT_WeatherProof" },
176+
{ RequirementType::TALENT_LoneWolf, "TALENT_LoneWolf" },
177+
{ RequirementType::TALENT_Zombie, "TALENT_Zombie" },
178+
{ RequirementType::TALENT_Demon, "TALENT_Demon" },
179+
{ RequirementType::TALENT_IceKing, "TALENT_IceKing" },
180+
{ RequirementType::TALENT_Courageous, "TALENT_Courageous" },
181+
{ RequirementType::TALENT_GoldenMage, "TALENT_GoldenMage" },
182+
{ RequirementType::TALENT_WalkItOff, "TALENT_WalkItOff" },
183+
{ RequirementType::TALENT_FolkDancer, "TALENT_FolkDancer" },
184+
{ RequirementType::TALENT_SpillNoBlood, "TALENT_SpillNoBlood" },
185+
{ RequirementType::TALENT_Stench, "TALENT_Stench" },
186+
{ RequirementType::TALENT_Kickstarter, "TALENT_Kickstarter" },
187+
{ RequirementType::TALENT_WarriorLoreNaturalArmor, "TALENT_WarriorLoreNaturalArmor" },
188+
{ RequirementType::TALENT_WarriorLoreNaturalHealth, "TALENT_WarriorLoreNaturalHealth" },
189+
{ RequirementType::TALENT_WarriorLoreNaturalResistance, "TALENT_WarriorLoreNaturalResistance" },
190+
{ RequirementType::TALENT_RangerLoreArrowRecover, "TALENT_RangerLoreArrowRecover" },
191+
{ RequirementType::TALENT_RangerLoreEvasionBonus, "TALENT_RangerLoreEvasionBonus" },
192+
{ RequirementType::TALENT_RangerLoreRangedAPBonus, "TALENT_RangerLoreRangedAPBonus" },
193+
{ RequirementType::TALENT_RogueLoreDaggerAPBonus, "TALENT_RogueLoreDaggerAPBonus" },
194+
{ RequirementType::TALENT_RogueLoreDaggerBackStab, "TALENT_RogueLoreDaggerBackStab" },
195+
{ RequirementType::TALENT_RogueLoreMovementBonus, "TALENT_RogueLoreMovementBonus" },
196+
{ RequirementType::TALENT_RogueLoreHoldResistance, "TALENT_RogueLoreHoldResistance" },
197+
{ RequirementType::TALENT_NoAttackOfOpportunity, "TALENT_NoAttackOfOpportunity" },
198+
{ RequirementType::TALENT_WarriorLoreGrenadeRange, "TALENT_WarriorLoreGrenadeRange" },
199+
{ RequirementType::TALENT_RogueLoreGrenadePrecision, "TALENT_RogueLoreGrenadePrecision" },
200+
{ RequirementType::TALENT_ExtraWandCharge, "TALENT_ExtraWandCharge" },
201+
{ RequirementType::TALENT_DualWieldingDodging, "TALENT_DualWieldingDodging" },
202+
{ RequirementType::TALENT_Human_Civil, "TALENT_Human_Civil" },
203+
{ RequirementType::TALENT_Human_Inventive, "TALENT_Human_Inventive" },
204+
{ RequirementType::TALENT_Dwarf_Sneaking, "TALENT_Dwarf_Sneaking" },
205+
{ RequirementType::TALENT_Dwarf_Sturdy, "TALENT_Dwarf_Sturdy" },
206+
{ RequirementType::TALENT_Elf_CorpseEater, "TALENT_Elf_CorpseEater" },
207+
{ RequirementType::TALENT_Elf_Lore, "TALENT_Elf_Lore" },
208+
{ RequirementType::TALENT_Lizard_Persuasion, "TALENT_Lizard_Persuasion" },
209+
{ RequirementType::TALENT_Lizard_Resistance, "TALENT_Lizard_Resistance" },
210+
{ RequirementType::TALENT_Perfectionist, "TALENT_Perfectionist" },
211+
{ RequirementType::TALENT_Executioner, "TALENT_Executioner" },
212+
{ RequirementType::TALENT_QuickStep, "TALENT_QuickStep" },
213+
{ RequirementType::TALENT_ViolentMagic, "TALENT_ViolentMagic" },
214+
{ RequirementType::TALENT_Memory, "TALENT_Memory" },
215+
{ RequirementType::TALENT_LivingArmor, "TALENT_LivingArmor" },
216+
{ RequirementType::TALENT_Torturer, "TALENT_Torturer" },
217+
{ RequirementType::TALENT_Ambidextrous, "TALENT_Ambidextrous" },
218+
{ RequirementType::TALENT_Unstable, "TALENT_Unstable" },
219+
{ RequirementType::TALENT_Sourcerer, "TALENT_Sourcerer" },
220+
{ RequirementType::TRAIT_Forgiving, "TRAIT_Forgiving" },
221+
{ RequirementType::TRAIT_Vindictive, "TRAIT_Vindictive" },
222+
{ RequirementType::TRAIT_Bold, "TRAIT_Bold" },
223+
{ RequirementType::TRAIT_Timid, "TRAIT_Timid" },
224+
{ RequirementType::TRAIT_Altruistic, "TRAIT_Altruistic" },
225+
{ RequirementType::TRAIT_Egotistical, "TRAIT_Egotistical" },
226+
{ RequirementType::TRAIT_Independent, "TRAIT_Independent" },
227+
{ RequirementType::TRAIT_Obedient, "TRAIT_Obedient" },
228+
{ RequirementType::TRAIT_Pragmatic, "TRAIT_Pragmatic" },
229+
{ RequirementType::TRAIT_Romantic, "TRAIT_Romantic" },
230+
{ RequirementType::TRAIT_Spiritual, "TRAIT_Spiritual" },
231+
{ RequirementType::TRAIT_Materialistic, "TRAIT_Materialistic" },
232+
{ RequirementType::TRAIT_Righteous, "TRAIT_Righteous" },
233+
{ RequirementType::TRAIT_Renegade, "TRAIT_Renegade" },
234+
{ RequirementType::TRAIT_Blunt, "TRAIT_Blunt" },
235+
{ RequirementType::TRAIT_Considerate, "TRAIT_Considerate" },
236+
{ RequirementType::TRAIT_Compassionate, "TRAIT_Compassionate" },
237+
{ RequirementType::TRAIT_Heartless, "TRAIT_Heartless" },
238+
{ RequirementType::Combat, "Combat" },
239+
{ RequirementType::MinKarma, "MinKarma" },
240+
{ RequirementType::MaxKarma, "MaxKarma" },
241+
{ RequirementType::Immobile, "Immobile" },
242+
{ RequirementType::Tag, "Tag" }
243+
};
244+
245+
70246
EnumInfo<AbilityType>::Label const EnumInfo<AbilityType>::Values[] = {
71247
{ AbilityType::WarriorLore, "WarriorLore" },
72248
{ AbilityType::RangerLore, "RangerLore" },

OsiInterface/GameDefinitions/Enumerations.h

Lines changed: 179 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -210,6 +210,185 @@ namespace osidbg
210210
MAKE_ENUM_INFO(StatGetterType, 27);
211211

212212

213+
enum class RequirementType : uint32_t
214+
{
215+
None = 0,
216+
Level = 1,
217+
Strength = 2,
218+
Finesse = 3,
219+
Intelligence = 4,
220+
Constitution = 5,
221+
Memory = 6,
222+
Wits = 7,
223+
WarriorLore = 8,
224+
RangerLore = 9,
225+
RogueLore = 10,
226+
SingleHanded = 11,
227+
TwoHanded = 12,
228+
PainReflection = 13,
229+
Ranged = 14,
230+
Shield = 15,
231+
Reflexes = 16,
232+
PhysicalArmorMastery = 17,
233+
MagicArmorMastery = 18,
234+
Vitality = 19,
235+
Sourcery = 20,
236+
Telekinesis = 21,
237+
FireSpecialist = 22,
238+
WaterSpecialist = 23,
239+
AirSpecialist = 24,
240+
EarthSpecialist = 25,
241+
Necromancy = 26,
242+
Summoning = 27,
243+
Polymorph = 28,
244+
Repair = 30,
245+
Sneaking = 31,
246+
Pickpocket = 32,
247+
Thievery = 33,
248+
Loremaster = 34,
249+
Crafting = 35,
250+
Barter = 36,
251+
Charm = 37,
252+
Intimidate = 38,
253+
Reason = 39,
254+
Persuasion = 40,
255+
Leadership = 41,
256+
Luck = 42,
257+
DualWielding = 43,
258+
Wand = 44,
259+
Perseverance = 45,
260+
TALENT_ItemMovement = 46,
261+
TALENT_ItemCreation = 47,
262+
TALENT_Flanking = 48,
263+
TALENT_AttackOfOpportunity = 49,
264+
TALENT_Backstab = 50,
265+
TALENT_Trade = 51,
266+
TALENT_Lockpick = 52,
267+
TALENT_ChanceToHitRanged = 53,
268+
TALENT_ChanceToHitMelee = 54,
269+
TALENT_Damage = 55,
270+
TALENT_ActionPoints = 56,
271+
TALENT_ActionPoints2 = 57,
272+
TALENT_Criticals = 58,
273+
TALENT_IncreasedArmor = 59,
274+
TALENT_Sight = 60,
275+
TALENT_ResistFear = 61,
276+
TALENT_ResistKnockdown = 62,
277+
TALENT_ResistStun = 63,
278+
TALENT_ResistPoison = 64,
279+
TALENT_ResistSilence = 65,
280+
TALENT_ResistDead = 66,
281+
TALENT_Carry = 67,
282+
TALENT_Kinetics = 68,
283+
TALENT_Repair = 69,
284+
TALENT_ExpGain = 70,
285+
TALENT_ExtraStatPoints = 71,
286+
TALENT_ExtraSkillPoints = 72,
287+
TALENT_Durability = 73,
288+
TALENT_Awareness = 74,
289+
TALENT_Vitality = 75,
290+
TALENT_FireSpells = 76,
291+
TALENT_WaterSpells = 77,
292+
TALENT_AirSpells = 78,
293+
TALENT_EarthSpells = 79,
294+
TALENT_Charm = 80,
295+
TALENT_Intimidate = 81,
296+
TALENT_Reason = 82,
297+
TALENT_Luck = 83,
298+
TALENT_Initiative = 84,
299+
TALENT_InventoryAccess = 85,
300+
TALENT_AvoidDetection = 86,
301+
TALENT_AnimalEmpathy = 87,
302+
TALENT_Escapist = 88,
303+
TALENT_StandYourGround = 89,
304+
TALENT_SurpriseAttack = 90,
305+
TALENT_LightStep = 91,
306+
TALENT_ResurrectToFullHealth = 92,
307+
TALENT_Scientist = 93,
308+
TALENT_Raistlin = 94,
309+
TALENT_MrKnowItAll = 95,
310+
TALENT_WhatARush = 96,
311+
TALENT_FaroutDude = 97,
312+
TALENT_Leech = 98,
313+
TALENT_ElementalAffinity = 99,
314+
TALENT_FiveStarRestaurant = 100,
315+
TALENT_Bully = 101,
316+
TALENT_ElementalRanger = 102,
317+
TALENT_LightningRod = 103,
318+
TALENT_Politician = 104,
319+
TALENT_WeatherProof = 105,
320+
TALENT_LoneWolf = 106,
321+
TALENT_Zombie = 107,
322+
TALENT_Demon = 108,
323+
TALENT_IceKing = 109,
324+
TALENT_Courageous = 110,
325+
TALENT_GoldenMage = 111,
326+
TALENT_WalkItOff = 112,
327+
TALENT_FolkDancer = 113,
328+
TALENT_SpillNoBlood = 114,
329+
TALENT_Stench = 115,
330+
TALENT_Kickstarter = 116,
331+
TALENT_WarriorLoreNaturalArmor = 117,
332+
TALENT_WarriorLoreNaturalHealth = 118,
333+
TALENT_WarriorLoreNaturalResistance = 119,
334+
TALENT_RangerLoreArrowRecover = 120,
335+
TALENT_RangerLoreEvasionBonus = 121,
336+
TALENT_RangerLoreRangedAPBonus = 122,
337+
TALENT_RogueLoreDaggerAPBonus = 123,
338+
TALENT_RogueLoreDaggerBackStab = 124,
339+
TALENT_RogueLoreMovementBonus = 125,
340+
TALENT_RogueLoreHoldResistance = 126,
341+
TALENT_NoAttackOfOpportunity = 127,
342+
TALENT_WarriorLoreGrenadeRange = 128,
343+
TALENT_RogueLoreGrenadePrecision = 129,
344+
TALENT_ExtraWandCharge = 130,
345+
TALENT_DualWieldingDodging = 131,
346+
TALENT_Human_Civil = 133,
347+
TALENT_Human_Inventive = 132,
348+
TALENT_Dwarf_Sneaking = 134,
349+
TALENT_Dwarf_Sturdy = 135,
350+
TALENT_Elf_CorpseEater = 136,
351+
TALENT_Elf_Lore = 137,
352+
TALENT_Lizard_Persuasion = 139,
353+
TALENT_Lizard_Resistance = 138,
354+
TALENT_Perfectionist = 140,
355+
TALENT_Executioner = 141,
356+
TALENT_QuickStep = 143,
357+
TALENT_ViolentMagic = 142,
358+
TALENT_Memory = 144,
359+
TALENT_LivingArmor = 145,
360+
TALENT_Torturer = 146,
361+
TALENT_Ambidextrous = 147,
362+
TALENT_Unstable = 148,
363+
TALENT_Sourcerer = 149,
364+
TRAIT_Forgiving = 150,
365+
TRAIT_Vindictive = 151,
366+
TRAIT_Bold = 152,
367+
TRAIT_Timid = 153,
368+
TRAIT_Altruistic = 154,
369+
TRAIT_Egotistical = 155,
370+
TRAIT_Independent = 156,
371+
TRAIT_Obedient = 157,
372+
TRAIT_Pragmatic = 158,
373+
TRAIT_Romantic = 159,
374+
TRAIT_Spiritual = 160,
375+
TRAIT_Materialistic = 161,
376+
TRAIT_Righteous = 162,
377+
TRAIT_Renegade = 163,
378+
TRAIT_Blunt = 164,
379+
TRAIT_Considerate = 165,
380+
TRAIT_Compassionate = 166,
381+
TRAIT_Heartless = 167,
382+
Combat = 168,
383+
MinKarma = 169,
384+
MaxKarma = 170,
385+
Immobile = 171,
386+
Tag = 172,
387+
};
388+
389+
MAKE_ENUM_INFO(RequirementType, 173);
390+
391+
213392
enum class AbilityType
214393
{
215394
WarriorLore = 0,

0 commit comments

Comments
 (0)