Mercurial > mm7
diff Items.h @ 0:9c0607679772
init
author | Ritor1 |
---|---|
date | Sat, 12 Jan 2013 09:45:18 +0600 |
parents | |
children | 821fd955c379 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Items.h Sat Jan 12 09:45:18 2013 +0600 @@ -0,0 +1,223 @@ +#pragma once + + + + + + +/* 338 */ +enum ITEM_FLAGS +{ + ITEM_IDENTIFIED = 0x1, + ITEM_BROKEN = 0x2, + ITEM_TEMP_BONUS = 0x8, + ITEM_STOLEN = 0x100, + ITEM_ENCHANTED = 0x200, +}; + + +/* 330 */ +enum ITEM_TYPE +{ + ITEM_LONGSWORD_1 = 0x1, + ITEM_DAGGER_1 = 0xF, + ITEM_AXE_1 = 0x17, + ITEM_SPEAR_1 = 0x1F, + ITEM_CROSSBOW_1 = 0x2F, + ITEM_MACE_1 = 0x32, + ITEM_STAFF_1 = 0x3D, + ITEM_LEATHER_1 = 0x42, + ITEM_CHAINMAIL_1 = 0x47, + ITEM_PLATE_1 = 0x4C, + ITEM_BUCKLER_1 = 0x54, + ITEM_GAUNTLETS_1 = 0x6E, + ITEM_BOOTS_1 = 0x73, + ITEM_WAND_FIRE = 0x87, + ITEM_WAND_STUN = 0x8A, + ITEM_WAND_INCENERATION = 0x9F, + ITEM_TROLL_BLOOD = 0xCA, + ITEM_DRAGON_EYE = 0xCC, + ITEM_HARPY_FEATHER = 0xCF, + ITEM_DEVIL_ICHOR = 0xD6, + ITEM_OOZE_ECTOPLASM_BOTTLE = 0xD9, + ITEM_POTION_BOTTLE = 0xDC, + ITEM_SPELLBOOK_FIRE_STRIKE = 0x191, + ITEM_SPELLBOOK_AIR_FEATHER_FALL = 0x19C, + ITEM_SPELLBOOK_WATER_POISON_SPRAY = 0x1A7, + ITEM_SPELLBOOK_EARTH_SLOW = 0x1B2, + ITEM_SPELLBOOK_SPIRIT_BLESS = 0x1BD, + ITEM_SPELLBOOK_MIND_MIND_BLAST = 0x1C8, + ITEM_SPELLBOOK_BODY_FIRST_AID = 0x1D3, + ITEM_SPELLBOOK_BODY_HEAL = 0x1D6, + ITEM_SPELLBOOK_BODY_BREAK_POISON = 0x1D7, + ITEM_SPELLBOOK_LIGHT_LIGHT_BOLT = 0x1DD, + ITEM_SPELLBOOK_LIGHT_SUN_BURST = 0x1E6, + ITEM_SPELLBOOK_LIGHT_DIVINE_INTERVENTION = 0x1E7, + ITEM_ARTIFACT_PUCK = 0x1F4, + ITEM_RELIC_MEKORIGS_HAMMER = 0x210, +}; + +/* 331 */ +enum ITEM_EQUIP_TYPE +{ + EQUIP_ONE_OR_TWO_HANDS = 0x0, + EQUIP_TWO_HANDED = 0x1, + EQUIP_BOW = 0x2, + EQUIP_ARMOUR = 0x3, + EQUIP_SHIELD = 0x4, + EQUIP_HELMET = 0x5, + EQUIP_BELT = 0x6, + EQUIP_CLOAK = 0x7, + EQUIP_GAUNTLETS = 0x8, + EQUIP_BOOTS = 0x9, + EQUIP_RING = 0xA, + EQUIP_AMULET = 0xB, + EQUIP_C = 0xC, + EQUIP_REAGENT = 0xD, + EQUIP_POTION = 0xE, + EQUIP_F = 0xF, + EQUIP_BOOK = 0x10, + EQUIP_11 = 0x11, + EQUIP_GOLD = 0x12, + EQUIP_GEM = 0x13, +}; + + + +/* 64 */ +#pragma pack(push, 1) +struct ItemGen +{ + //----- (0042EB25) -------------------------------------------------------- + inline ItemGen() + { + Reset(); + } + + bool GenerateArtifact(); + unsigned int GetValue(); + const char *GetDisplayName(); + const char *GetIdentifiedName(); + void UpdateTempBonus(__int64 uTimePlayed); + void Reset(); + int _439DF3_get_additional_damage(int *a2, int *a3); + + + + unsigned int uItemID; + int _bonus_type; + int _bonus_strength; + int uAdditionalValue; + int uNumCharges; + unsigned int uAttributes; + unsigned __int8 uBodyAnchor; + char uMaxCharges; + char field_1A; + char field_1B; + unsigned __int64 uExpireTime; +}; +#pragma pack(pop) + + + +/* 175 */ +#pragma pack(push, 1) +struct ItemDesc +{ + unsigned int uItemID; + char *pIconName; + char *pName; + char *pUnidentifiedName; + char *pDescription; + unsigned int uValue; + unsigned __int16 uSpriteID; + __int16 field_1A; + unsigned __int16 uEquipX; + unsigned __int16 uEquipY; + unsigned __int8 uEquipType; + unsigned __int8 uSkillType; + unsigned __int8 uDamageDice; + unsigned __int8 uDamageRoll; + unsigned __int8 uDamageMod; + unsigned __int8 uMaterial; + char _additional_value; + char _bonus_type; + char _bonus_strength; + char field_29; + char field_2A; + char field_2B; + char field_2C; + char field_2D; + char field_2E; + char field_2F; +}; +#pragma pack(pop) + + + +/* 177 */ +#pragma pack(push, 1) +struct ItemEnchantment +{ + char *pName; + char *pParam; + char field_8[12]; +}; +#pragma pack(pop) + +/* 178 */ +#pragma pack(push, 1) +struct ItemSpecialEnchantment +{ + char *pName; + char *pParam; + char field_8[12]; + int field_14; + int field_18; +}; +#pragma pack(pop) + + +/* 176 */ +#pragma pack(push, 1) +struct ItemsTable +{ + void Initialize(); + void LoadPotions(); + void LoadPotionNotes(); + void GenerateItem(int a2, int a3, ItemGen *pItem); + void SetSpecialBonus(ItemGen *pItem); + bool _456D43_is_material_equals_3(ItemGen *pItem); + bool _456D5E_is_some_material(ItemGen *pItem); + char *Release(); + + + ItemDesc pItems[800]; + ItemEnchantment pEnchantments[24]; + ItemSpecialEnchantment pSpecialEnchantments[72]; + char field_9FC0[5000]; + char field_B348[5000]; + char field_C6D0[5000]; + char field_DA58[5000]; + char field_EDE0[5000]; + char field_10168[5000]; + char field_114F0[388]; + char *pItemsTXT_Raw; + char *pRndItemsTXT_Raw; + char *pStdItemsTXT_Raw; + char *pSpcItemsTXT_Raw; + int field_11684[6]; + char field_1169C[60]; + int field_116D8[24]; + int field_11738[24]; + int field_11798; + char field_1179C; +}; +#pragma pack(pop) + + + + +extern ItemGen *ptr_50C9A4; + +extern struct ItemsTable *pItemsTable; \ No newline at end of file