@@ -23,7 +23,8 @@ void InitItemUserType(sol::state_view &lua)
2323 SetDocumented (itemType, " type" , " ItemType" , " Item type" , [](const Item &i) { return i._itype ; }, [](Item &i, int val) { i._itype = static_cast <ItemType>(val); });
2424 SetDocumented (itemType, " animFlag" , " boolean" , " Animation flag" , [](const Item &i) { return i._iAnimFlag ; }, [](Item &i, bool val) { i._iAnimFlag = val; });
2525 SetDocumented (itemType, " position" , " Point" , " Item world position" , [](const Item &i) { return i.position ; }, [](Item &i, Point val) { i.position = val; });
26- SetDocumented (itemType, " animInfo" , " AnimationInfo" , " Animation information" , [](const Item &i) { return i.AnimInfo ; }, [](Item &i, AnimationInfo val) { i.AnimInfo = val; });
26+ // TODO: Add AnimationInfo usertype
27+ // SetDocumented(itemType, "animInfo", "AnimationInfo", "Animation information", [](const Item &i) { return i.AnimInfo; }, [](Item &i, AnimationInfo val) { i.AnimInfo = val; });
2728 SetDocumented (itemType, " delFlag" , " boolean" , " Deletion flag" , [](const Item &i) { return i._iDelFlag ; }, [](Item &i, bool val) { i._iDelFlag = val; });
2829 SetDocumented (itemType, " selectionRegion" , " number" , " Selection region" , [](const Item &i) { return static_cast <int >(i.selectionRegion ); }, [](Item &i, int val) { i.selectionRegion = static_cast <SelectionRegion>(val); });
2930 SetDocumented (itemType, " postDraw" , " boolean" , " Post-draw flag" , [](const Item &i) { return i._iPostDraw ; }, [](Item &i, bool val) { i._iPostDraw = val; });
@@ -74,8 +75,8 @@ void InitItemUserType(sol::state_view &lua)
7475 SetDocumented (itemType, " lMinDam" , " number" , " Lightning minimum damage" , [](const Item &i) { return i._iLMinDam ; }, [](Item &i, int val) { i._iLMinDam = val; });
7576 SetDocumented (itemType, " lMaxDam" , " number" , " Lightning maximum damage" , [](const Item &i) { return i._iLMaxDam ; }, [](Item &i, int val) { i._iLMaxDam = val; });
7677 SetDocumented (itemType, " PLEnAc" , " number" , " Damage target AC bonus" , [](const Item &i) { return i._iPLEnAc ; }, [](Item &i, int val) { i._iPLEnAc = val; });
77- SetDocumented (itemType, " prePower" , " ItemEffect " , " Prefix power" , [](const Item &i) { return i._iPrePower ; }, [](Item &i, int val) { i._iPrePower = static_cast <item_effect_type>(val); });
78- SetDocumented (itemType, " sufPower" , " ItemEffect " , " Suffix power" , [](const Item &i) { return i._iSufPower ; }, [](Item &i, int val) { i._iSufPower = static_cast <item_effect_type>(val); });
78+ SetDocumented (itemType, " prePower" , " ItemEffectType " , " Prefix power" , [](const Item &i) { return i._iPrePower ; }, [](Item &i, int val) { i._iPrePower = static_cast <item_effect_type>(val); });
79+ SetDocumented (itemType, " sufPower" , " ItemEffectType " , " Suffix power" , [](const Item &i) { return i._iSufPower ; }, [](Item &i, int val) { i._iSufPower = static_cast <item_effect_type>(val); });
7980 SetDocumented (itemType, " vAdd1" , " number" , " Value addition 1" , [](const Item &i) { return i._iVAdd1 ; }, [](Item &i, int val) { i._iVAdd1 = val; });
8081 SetDocumented (itemType, " vMult1" , " number" , " Value multiplier 1" , [](const Item &i) { return i._iVMult1 ; }, [](Item &i, int val) { i._iVMult1 = val; });
8182 SetDocumented (itemType, " vAdd2" , " number" , " Value addition 2" , [](const Item &i) { return i._iVAdd2 ; }, [](Item &i, int val) { i._iVAdd2 = val; });
@@ -113,6 +114,23 @@ void InitItemUserType(sol::state_view &lua)
113114
114115void RegisterItemEnums (sol::state_view &lua)
115116{
117+ lua.new_enum (" ItemType" ,
118+ " Misc" , ItemType::Misc,
119+ " Sword" , ItemType::Sword,
120+ " Axe" , ItemType::Axe,
121+ " Bow" , ItemType::Bow,
122+ " Mace" , ItemType::Mace,
123+ " Shield" , ItemType::Shield,
124+ " LightArmor" , ItemType::LightArmor,
125+ " Helm" , ItemType::Helm,
126+ " MediumArmor" , ItemType::MediumArmor,
127+ " HeavyArmor" , ItemType::HeavyArmor,
128+ " Staff" , ItemType::Staff,
129+ " Gold" , ItemType::Gold,
130+ " Ring" , ItemType::Ring,
131+ " Amulet" , ItemType::Amulet,
132+ " None" , ItemType::None);
133+
116134 lua.new_enum (" ItemEquipType" ,
117135 " None" , ILOC_NONE,
118136 " OneHand" , ILOC_ONEHAND,
@@ -133,6 +151,35 @@ void RegisterItemEnums(sol::state_view &lua)
133151 " Gold" , ICLASS_GOLD,
134152 " Quest" , ICLASS_QUEST);
135153
154+ lua.new_enum (" ItemSpecialEffect" ,
155+ " None" , ItemSpecialEffect::None,
156+ " RandomStealLife" , ItemSpecialEffect::RandomStealLife,
157+ " RandomArrowVelocity" , ItemSpecialEffect::RandomArrowVelocity,
158+ " FireArrows" , ItemSpecialEffect::FireArrows,
159+ " FireDamage" , ItemSpecialEffect::FireDamage,
160+ " LightningDamage" , ItemSpecialEffect::LightningDamage,
161+ " DrainLife" , ItemSpecialEffect::DrainLife,
162+ " MultipleArrows" , ItemSpecialEffect::MultipleArrows,
163+ " Knockback" , ItemSpecialEffect::Knockback,
164+ " StealMana3" , ItemSpecialEffect::StealMana3,
165+ " StealMana5" , ItemSpecialEffect::StealMana5,
166+ " StealLife3" , ItemSpecialEffect::StealLife3,
167+ " StealLife5" , ItemSpecialEffect::StealLife5,
168+ " QuickAttack" , ItemSpecialEffect::QuickAttack,
169+ " FastAttack" , ItemSpecialEffect::FastAttack,
170+ " FasterAttack" , ItemSpecialEffect::FasterAttack,
171+ " FastestAttack" , ItemSpecialEffect::FastestAttack,
172+ " FastHitRecovery" , ItemSpecialEffect::FastHitRecovery,
173+ " FasterHitRecovery" , ItemSpecialEffect::FasterHitRecovery,
174+ " FastestHitRecovery" , ItemSpecialEffect::FastestHitRecovery,
175+ " FastBlock" , ItemSpecialEffect::FastBlock,
176+ " LightningArrows" , ItemSpecialEffect::LightningArrows,
177+ " Thorns" , ItemSpecialEffect::Thorns,
178+ " NoMana" , ItemSpecialEffect::NoMana,
179+ " HalfTrapDamage" , ItemSpecialEffect::HalfTrapDamage,
180+ " TripleDemonDamage" , ItemSpecialEffect::TripleDemonDamage,
181+ " ZeroResistance" , ItemSpecialEffect::ZeroResistance);
182+
136183 lua.new_enum (" ItemMiscId" ,
137184 " None" , IMISC_NONE,
138185 " FullHeal" , IMISC_FULLHEAL,
@@ -207,6 +254,162 @@ void RegisterItemEnums(sol::state_view &lua)
207254 " RuneOfImmolation" , SpellID::RuneOfImmolation,
208255 " RuneOfStone" , SpellID::RuneOfStone,
209256 " Invalid" , SpellID::Invalid);
257+
258+ lua.new_enum (" _item_indexes" ,
259+ " IDI_GOLD" , IDI_GOLD,
260+ " IDI_WARRIOR" , IDI_WARRIOR,
261+ " IDI_WARRSHLD" , IDI_WARRSHLD,
262+ " IDI_WARRCLUB" , IDI_WARRCLUB,
263+ " IDI_ROGUE" , IDI_ROGUE,
264+ " IDI_SORCERER" , IDI_SORCERER,
265+ " IDI_CLEAVER" , IDI_CLEAVER,
266+ " IDI_FIRSTQUEST" , IDI_FIRSTQUEST,
267+ " IDI_SKCROWN" , IDI_SKCROWN,
268+ " IDI_INFRARING" , IDI_INFRARING,
269+ " IDI_ROCK" , IDI_ROCK,
270+ " IDI_OPTAMULET" , IDI_OPTAMULET,
271+ " IDI_TRING" , IDI_TRING,
272+ " IDI_BANNER" , IDI_BANNER,
273+ " IDI_HARCREST" , IDI_HARCREST,
274+ " IDI_STEELVEIL" , IDI_STEELVEIL,
275+ " IDI_GLDNELIX" , IDI_GLDNELIX,
276+ " IDI_ANVIL" , IDI_ANVIL,
277+ " IDI_MUSHROOM" , IDI_MUSHROOM,
278+ " IDI_BRAIN" , IDI_BRAIN,
279+ " IDI_FUNGALTM" , IDI_FUNGALTM,
280+ " IDI_SPECELIX" , IDI_SPECELIX,
281+ " IDI_BLDSTONE" , IDI_BLDSTONE,
282+ " IDI_MAPOFDOOM" , IDI_MAPOFDOOM,
283+ " IDI_LASTQUEST" , IDI_LASTQUEST,
284+ " IDI_EAR" , IDI_EAR,
285+ " IDI_HEAL" , IDI_HEAL,
286+ " IDI_MANA" , IDI_MANA,
287+ " IDI_IDENTIFY" , IDI_IDENTIFY,
288+ " IDI_PORTAL" , IDI_PORTAL,
289+ " IDI_ARMOFVAL" , IDI_ARMOFVAL,
290+ " IDI_FULLHEAL" , IDI_FULLHEAL,
291+ " IDI_FULLMANA" , IDI_FULLMANA,
292+ " IDI_GRISWOLD" , IDI_GRISWOLD,
293+ " IDI_LGTFORGE" , IDI_LGTFORGE,
294+ " IDI_LAZSTAFF" , IDI_LAZSTAFF,
295+ " IDI_RESURRECT" , IDI_RESURRECT,
296+ " IDI_OIL" , IDI_OIL,
297+ " IDI_SHORTSTAFF" , IDI_SHORTSTAFF,
298+ " IDI_BARDSWORD" , IDI_BARDSWORD,
299+ " IDI_BARDDAGGER" , IDI_BARDDAGGER,
300+ " IDI_RUNEBOMB" , IDI_RUNEBOMB,
301+ " IDI_THEODORE" , IDI_THEODORE,
302+ " IDI_AURIC" , IDI_AURIC,
303+ " IDI_NOTE1" , IDI_NOTE1,
304+ " IDI_NOTE2" , IDI_NOTE2,
305+ " IDI_NOTE3" , IDI_NOTE3,
306+ " IDI_FULLNOTE" , IDI_FULLNOTE,
307+ " IDI_BROWNSUIT" , IDI_BROWNSUIT,
308+ " IDI_GREYSUIT" , IDI_GREYSUIT,
309+ " IDI_BOOK1" , IDI_BOOK1,
310+ " IDI_BOOK2" , IDI_BOOK2,
311+ " IDI_BOOK3" , IDI_BOOK3,
312+ " IDI_BOOK4" , IDI_BOOK4,
313+ " IDI_BARBARIAN" , IDI_BARBARIAN,
314+ " IDI_SHORT_BATTLE_BOW" , IDI_SHORT_BATTLE_BOW,
315+ " IDI_RUNEOFSTONE" , IDI_RUNEOFSTONE,
316+ " IDI_SORCERER_DIABLO" , IDI_SORCERER_DIABLO,
317+ " IDI_ARENAPOT" , IDI_ARENAPOT,
318+ " IDI_LAST" , IDI_LAST,
319+ " IDI_NONE" , IDI_NONE);
320+
321+ lua.new_enum (" ItemEffectType" ,
322+ " IPL_TOHIT" , IPL_TOHIT,
323+ " IPL_TOHIT_CURSE" , IPL_TOHIT_CURSE,
324+ " IPL_DAMP" , IPL_DAMP,
325+ " IPL_DAMP_CURSE" , IPL_DAMP_CURSE,
326+ " IPL_TOHIT_DAMP" , IPL_TOHIT_DAMP,
327+ " IPL_TOHIT_DAMP_CURSE" , IPL_TOHIT_DAMP_CURSE,
328+ " IPL_ACP" , IPL_ACP,
329+ " IPL_ACP_CURSE" , IPL_ACP_CURSE,
330+ " IPL_FIRERES" , IPL_FIRERES,
331+ " IPL_LIGHTRES" , IPL_LIGHTRES,
332+ " IPL_MAGICRES" , IPL_MAGICRES,
333+ " IPL_ALLRES" , IPL_ALLRES,
334+ " IPL_SPLLVLADD" , IPL_SPLLVLADD,
335+ " IPL_CHARGES" , IPL_CHARGES,
336+ " IPL_FIREDAM" , IPL_FIREDAM,
337+ " IPL_LIGHTDAM" , IPL_LIGHTDAM,
338+ " IPL_STR" , IPL_STR,
339+ " IPL_STR_CURSE" , IPL_STR_CURSE,
340+ " IPL_MAG" , IPL_MAG,
341+ " IPL_MAG_CURSE" , IPL_MAG_CURSE,
342+ " IPL_DEX" , IPL_DEX,
343+ " IPL_DEX_CURSE" , IPL_DEX_CURSE,
344+ " IPL_VIT" , IPL_VIT,
345+ " IPL_VIT_CURSE" , IPL_VIT_CURSE,
346+ " IPL_ATTRIBS" , IPL_ATTRIBS,
347+ " IPL_ATTRIBS_CURSE" , IPL_ATTRIBS_CURSE,
348+ " IPL_GETHIT_CURSE" , IPL_GETHIT_CURSE,
349+ " IPL_GETHIT" , IPL_GETHIT,
350+ " IPL_LIFE" , IPL_LIFE,
351+ " IPL_LIFE_CURSE" , IPL_LIFE_CURSE,
352+ " IPL_MANA" , IPL_MANA,
353+ " IPL_MANA_CURSE" , IPL_MANA_CURSE,
354+ " IPL_DUR" , IPL_DUR,
355+ " IPL_DUR_CURSE" , IPL_DUR_CURSE,
356+ " IPL_INDESTRUCTIBLE" , IPL_INDESTRUCTIBLE,
357+ " IPL_LIGHT" , IPL_LIGHT,
358+ " IPL_LIGHT_CURSE" , IPL_LIGHT_CURSE,
359+ " IPL_MULT_ARROWS" , IPL_MULT_ARROWS,
360+ " IPL_FIRE_ARROWS" , IPL_FIRE_ARROWS,
361+ " IPL_LIGHT_ARROWS" , IPL_LIGHT_ARROWS,
362+ " IPL_THORNS" , IPL_THORNS,
363+ " IPL_NOMANA" , IPL_NOMANA,
364+ " IPL_FIREBALL" , IPL_FIREBALL,
365+ " IPL_ABSHALFTRAP" , IPL_ABSHALFTRAP,
366+ " IPL_KNOCKBACK" , IPL_KNOCKBACK,
367+ " IPL_STEALMANA" , IPL_STEALMANA,
368+ " IPL_STEALLIFE" , IPL_STEALLIFE,
369+ " IPL_TARGAC" , IPL_TARGAC,
370+ " IPL_FASTATTACK" , IPL_FASTATTACK,
371+ " IPL_FASTRECOVER" , IPL_FASTRECOVER,
372+ " IPL_FASTBLOCK" , IPL_FASTBLOCK,
373+ " IPL_DAMMOD" , IPL_DAMMOD,
374+ " IPL_RNDARROWVEL" , IPL_RNDARROWVEL,
375+ " IPL_SETDAM" , IPL_SETDAM,
376+ " IPL_SETDUR" , IPL_SETDUR,
377+ " IPL_NOMINSTR" , IPL_NOMINSTR,
378+ " IPL_SPELL" , IPL_SPELL,
379+ " IPL_ONEHAND" , IPL_ONEHAND,
380+ " IPL_3XDAMVDEM" , IPL_3XDAMVDEM,
381+ " IPL_ALLRESZERO" , IPL_ALLRESZERO,
382+ " IPL_DRAINLIFE" , IPL_DRAINLIFE,
383+ " IPL_RNDSTEALLIFE" , IPL_RNDSTEALLIFE,
384+ " IPL_SETAC" , IPL_SETAC,
385+ " IPL_ADDACLIFE" , IPL_ADDACLIFE,
386+ " IPL_ADDMANAAC" , IPL_ADDMANAAC,
387+ " IPL_AC_CURSE" , IPL_AC_CURSE,
388+ " IPL_LASTDIABLO" , IPL_LASTDIABLO,
389+ " IPL_FIRERES_CURSE" , IPL_FIRERES_CURSE,
390+ " IPL_LIGHTRES_CURSE" , IPL_LIGHTRES_CURSE,
391+ " IPL_MAGICRES_CURSE" , IPL_MAGICRES_CURSE,
392+ " IPL_DEVASTATION" , IPL_DEVASTATION,
393+ " IPL_DECAY" , IPL_DECAY,
394+ " IPL_PERIL" , IPL_PERIL,
395+ " IPL_JESTERS" , IPL_JESTERS,
396+ " IPL_CRYSTALLINE" , IPL_CRYSTALLINE,
397+ " IPL_DOPPELGANGER" , IPL_DOPPELGANGER,
398+ " IPL_ACDEMON" , IPL_ACDEMON,
399+ " IPL_ACUNDEAD" , IPL_ACUNDEAD,
400+ " IPL_MANATOLIFE" , IPL_MANATOLIFE,
401+ " IPL_LIFETOMANA" , IPL_LIFETOMANA,
402+ " IPL_INVALID" , IPL_INVALID);
403+
404+ lua.new_enum (" ItemSpecialEffectHf" ,
405+ " None" , ItemSpecialEffectHf::None,
406+ " Devastation" , ItemSpecialEffectHf::Devastation,
407+ " Decay" , ItemSpecialEffectHf::Decay,
408+ " Peril" , ItemSpecialEffectHf::Peril,
409+ " Jesters" , ItemSpecialEffectHf::Jesters,
410+ " Doppelganger" , ItemSpecialEffectHf::Doppelganger,
411+ " ACAgainstDemons" , ItemSpecialEffectHf::ACAgainstDemons,
412+ " ACAgainstUndead" , ItemSpecialEffectHf::ACAgainstUndead);
210413}
211414
212415} // namespace
0 commit comments