|
|
|
@ -73,8 +73,13 @@ tl::expected<item_cursor_graphic, std::string> ParseItemCursorGraphic(std::strin |
|
|
|
if (value == "GOLD_SMALL") return ICURS_GOLD_SMALL; |
|
|
|
if (value == "GOLD_SMALL") return ICURS_GOLD_SMALL; |
|
|
|
if (value == "GOLD_MEDIUM") return ICURS_GOLD_MEDIUM; |
|
|
|
if (value == "GOLD_MEDIUM") return ICURS_GOLD_MEDIUM; |
|
|
|
if (value == "GOLD_LARGE") return ICURS_GOLD_LARGE; |
|
|
|
if (value == "GOLD_LARGE") return ICURS_GOLD_LARGE; |
|
|
|
|
|
|
|
if (value == "THE_BLEEDER") return ICURS_THE_BLEEDER; |
|
|
|
|
|
|
|
if (value == "BRAMBLE") return ICURS_BRAMBLE; |
|
|
|
if (value == "RING_OF_TRUTH") return ICURS_RING_OF_TRUTH; |
|
|
|
if (value == "RING_OF_TRUTH") return ICURS_RING_OF_TRUTH; |
|
|
|
|
|
|
|
if (value == "RING_OF_REGHA") return ICURS_RING_OF_REGHA; |
|
|
|
if (value == "RING") return ICURS_RING; |
|
|
|
if (value == "RING") return ICURS_RING; |
|
|
|
|
|
|
|
if (value == "RING_OF_ENGAGEMENT") return ICURS_RING_OF_ENGAGEMENT; |
|
|
|
|
|
|
|
if (value == "CONSTRICTING_RING") return ICURS_CONSTRICTING_RING; |
|
|
|
if (value == "SPECTRAL_ELIXIR") return ICURS_SPECTRAL_ELIXIR; |
|
|
|
if (value == "SPECTRAL_ELIXIR") return ICURS_SPECTRAL_ELIXIR; |
|
|
|
if (value == "ARENA_POTION") return ICURS_ARENA_POTION; |
|
|
|
if (value == "ARENA_POTION") return ICURS_ARENA_POTION; |
|
|
|
if (value == "GOLDEN_ELIXIR") return ICURS_GOLDEN_ELIXIR; |
|
|
|
if (value == "GOLDEN_ELIXIR") return ICURS_GOLDEN_ELIXIR; |
|
|
|
@ -96,9 +101,13 @@ tl::expected<item_cursor_graphic, std::string> ParseItemCursorGraphic(std::strin |
|
|
|
if (value == "BRAIN") return ICURS_BRAIN; |
|
|
|
if (value == "BRAIN") return ICURS_BRAIN; |
|
|
|
if (value == "OPTIC_AMULET") return ICURS_OPTIC_AMULET; |
|
|
|
if (value == "OPTIC_AMULET") return ICURS_OPTIC_AMULET; |
|
|
|
if (value == "AMULET") return ICURS_AMULET; |
|
|
|
if (value == "AMULET") return ICURS_AMULET; |
|
|
|
|
|
|
|
if (value == "WIZARDSPIKE") return ICURS_WIZARDSPIKE; |
|
|
|
if (value == "DAGGER") return ICURS_DAGGER; |
|
|
|
if (value == "DAGGER") return ICURS_DAGGER; |
|
|
|
|
|
|
|
if (value == "BLACK_RAZOR") return ICURS_BLACK_RAZOR; |
|
|
|
|
|
|
|
if (value == "GONNAGALS_DIRK") return ICURS_GONNAGALS_DIRK; |
|
|
|
if (value == "BLADE") return ICURS_BLADE; |
|
|
|
if (value == "BLADE") return ICURS_BLADE; |
|
|
|
if (value == "BASTARD_SWORD") return ICURS_BASTARD_SWORD; |
|
|
|
if (value == "BASTARD_SWORD") return ICURS_BASTARD_SWORD; |
|
|
|
|
|
|
|
if (value == "THE_EXECUTIONERS_BLADE") return ICURS_THE_EXECUTIONERS_BLADE; |
|
|
|
if (value == "MACE") return ICURS_MACE; |
|
|
|
if (value == "MACE") return ICURS_MACE; |
|
|
|
if (value == "LONG_SWORD") return ICURS_LONG_SWORD; |
|
|
|
if (value == "LONG_SWORD") return ICURS_LONG_SWORD; |
|
|
|
if (value == "BROAD_SWORD") return ICURS_BROAD_SWORD; |
|
|
|
if (value == "BROAD_SWORD") return ICURS_BROAD_SWORD; |
|
|
|
@ -108,37 +117,48 @@ tl::expected<item_cursor_graphic, std::string> ParseItemCursorGraphic(std::strin |
|
|
|
if (value == "CLAYMORE") return ICURS_CLAYMORE; |
|
|
|
if (value == "CLAYMORE") return ICURS_CLAYMORE; |
|
|
|
if (value == "CLUB") return ICURS_CLUB; |
|
|
|
if (value == "CLUB") return ICURS_CLUB; |
|
|
|
if (value == "SABRE") return ICURS_SABRE; |
|
|
|
if (value == "SABRE") return ICURS_SABRE; |
|
|
|
|
|
|
|
if (value == "GRYPHONS_CLAW") return ICURS_GRYPHONS_CLAW; |
|
|
|
if (value == "SPIKED_CLUB") return ICURS_SPIKED_CLUB; |
|
|
|
if (value == "SPIKED_CLUB") return ICURS_SPIKED_CLUB; |
|
|
|
if (value == "SCIMITAR") return ICURS_SCIMITAR; |
|
|
|
if (value == "SCIMITAR") return ICURS_SCIMITAR; |
|
|
|
if (value == "FULL_HELM") return ICURS_FULL_HELM; |
|
|
|
if (value == "FULL_HELM") return ICURS_FULL_HELM; |
|
|
|
if (value == "MAGIC_ROCK") return ICURS_MAGIC_ROCK; |
|
|
|
if (value == "MAGIC_ROCK") return ICURS_MAGIC_ROCK; |
|
|
|
|
|
|
|
if (value == "HELM_OF_SPIRITS") return ICURS_HELM_OF_SPIRITS; |
|
|
|
if (value == "THE_UNDEAD_CROWN") return ICURS_THE_UNDEAD_CROWN; |
|
|
|
if (value == "THE_UNDEAD_CROWN") return ICURS_THE_UNDEAD_CROWN; |
|
|
|
|
|
|
|
if (value == "ROYAL_CIRCLET") return ICURS_ROYAL_CIRCLET; |
|
|
|
|
|
|
|
if (value == "FOOLS_CREST") return ICURS_FOOLS_CREST; |
|
|
|
|
|
|
|
if (value == "HARLEQUIN_CREST") return ICURS_HARLEQUIN_CREST; |
|
|
|
if (value == "HELM") return ICURS_HELM; |
|
|
|
if (value == "HELM") return ICURS_HELM; |
|
|
|
if (value == "BUCKLER") return ICURS_BUCKLER; |
|
|
|
if (value == "BUCKLER") return ICURS_BUCKLER; |
|
|
|
if (value == "VIEL_OF_STEEL") return ICURS_VIEL_OF_STEEL; |
|
|
|
if (value == "VEIL_OF_STEEL") return ICURS_VEIL_OF_STEEL; |
|
|
|
if (value == "BOOK_GREY") return ICURS_BOOK_GREY; |
|
|
|
if (value == "BOOK_GREY") return ICURS_BOOK_GREY; |
|
|
|
if (value == "BOOK_RED") return ICURS_BOOK_RED; |
|
|
|
if (value == "BOOK_RED") return ICURS_BOOK_RED; |
|
|
|
if (value == "BOOK_BLUE") return ICURS_BOOK_BLUE; |
|
|
|
if (value == "BOOK_BLUE") return ICURS_BOOK_BLUE; |
|
|
|
if (value == "BLACK_MUSHROOM") return ICURS_BLACK_MUSHROOM; |
|
|
|
if (value == "BLACK_MUSHROOM") return ICURS_BLACK_MUSHROOM; |
|
|
|
if (value == "SKULL_CAP") return ICURS_SKULL_CAP; |
|
|
|
if (value == "SKULL_CAP") return ICURS_SKULL_CAP; |
|
|
|
if (value == "CAP") return ICURS_CAP; |
|
|
|
if (value == "CAP") return ICURS_CAP; |
|
|
|
if (value == "HARLEQUIN_CREST") return ICURS_HARLEQUIN_CREST; |
|
|
|
if (value == "TORN_FLESH_OF_SOULS") return ICURS_TORN_FLESH_OF_SOULS; |
|
|
|
|
|
|
|
if (value == "THINKING_CAP") return ICURS_THINKING_CAP; |
|
|
|
if (value == "CROWN") return ICURS_CROWN; |
|
|
|
if (value == "CROWN") return ICURS_CROWN; |
|
|
|
if (value == "MAP_OF_THE_STARS") return ICURS_MAP_OF_THE_STARS; |
|
|
|
if (value == "MAP_OF_THE_STARS") return ICURS_MAP_OF_THE_STARS; |
|
|
|
if (value == "FUNGAL_TOME") return ICURS_FUNGAL_TOME; |
|
|
|
if (value == "FUNGAL_TOME") return ICURS_FUNGAL_TOME; |
|
|
|
if (value == "GREAT_HELM") return ICURS_GREAT_HELM; |
|
|
|
if (value == "GREAT_HELM") return ICURS_GREAT_HELM; |
|
|
|
|
|
|
|
if (value == "OVERLORDS_HELM") return ICURS_OVERLORDS_HELM; |
|
|
|
if (value == "BATTLE_AXE") return ICURS_BATTLE_AXE; |
|
|
|
if (value == "BATTLE_AXE") return ICURS_BATTLE_AXE; |
|
|
|
if (value == "HUNTERS_BOW") return ICURS_HUNTERS_BOW; |
|
|
|
if (value == "HUNTERS_BOW") return ICURS_HUNTERS_BOW; |
|
|
|
if (value == "FIELD_PLATE") return ICURS_FIELD_PLATE; |
|
|
|
if (value == "FIELD_PLATE") return ICURS_FIELD_PLATE; |
|
|
|
|
|
|
|
if (value == "STONECLEAVER") return ICURS_STONECLEAVER; |
|
|
|
if (value == "SMALL_SHIELD") return ICURS_SMALL_SHIELD; |
|
|
|
if (value == "SMALL_SHIELD") return ICURS_SMALL_SHIELD; |
|
|
|
if (value == "CLEAVER") return ICURS_CLEAVER; |
|
|
|
if (value == "CLEAVER") return ICURS_CLEAVER; |
|
|
|
if (value == "STUDDED_LEATHER_ARMOR") return ICURS_STUDDED_LEATHER_ARMOR; |
|
|
|
if (value == "STUDDED_LEATHER_ARMOR") return ICURS_STUDDED_LEATHER_ARMOR; |
|
|
|
|
|
|
|
if (value == "DEADLY_HUNTER") return ICURS_DEADLY_HUNTER; |
|
|
|
if (value == "SHORT_STAFF") return ICURS_SHORT_STAFF; |
|
|
|
if (value == "SHORT_STAFF") return ICURS_SHORT_STAFF; |
|
|
|
if (value == "TWO_HANDED_SWORD") return ICURS_TWO_HANDED_SWORD; |
|
|
|
if (value == "TWO_HANDED_SWORD") return ICURS_TWO_HANDED_SWORD; |
|
|
|
if (value == "CHAIN_MAIL") return ICURS_CHAIN_MAIL; |
|
|
|
if (value == "CHAIN_MAIL") return ICURS_CHAIN_MAIL; |
|
|
|
if (value == "SMALL_AXE") return ICURS_SMALL_AXE; |
|
|
|
if (value == "SMALL_AXE") return ICURS_SMALL_AXE; |
|
|
|
if (value == "KITE_SHIELD") return ICURS_KITE_SHIELD; |
|
|
|
if (value == "KITE_SHIELD") return ICURS_KITE_SHIELD; |
|
|
|
if (value == "SCALE_MAIL") return ICURS_SCALE_MAIL; |
|
|
|
if (value == "SCALE_MAIL") return ICURS_SCALE_MAIL; |
|
|
|
|
|
|
|
if (value == "SPLIT_SKULL_SHIELD") return ICURS_SPLIT_SKULL_SHIELD; |
|
|
|
|
|
|
|
if (value == "DRAGONS_BREACH") return ICURS_DRAGONS_BREACH; |
|
|
|
if (value == "SHORT_BOW") return ICURS_SHORT_BOW; |
|
|
|
if (value == "SHORT_BOW") return ICURS_SHORT_BOW; |
|
|
|
if (value == "LONG_BATTLE_BOW") return ICURS_LONG_BATTLE_BOW; |
|
|
|
if (value == "LONG_BATTLE_BOW") return ICURS_LONG_BATTLE_BOW; |
|
|
|
if (value == "LONG_WAR_BOW") return ICURS_LONG_WAR_BOW; |
|
|
|
if (value == "LONG_WAR_BOW") return ICURS_LONG_WAR_BOW; |
|
|
|
@ -157,11 +177,13 @@ tl::expected<item_cursor_graphic, std::string> ParseItemCursorGraphic(std::strin |
|
|
|
if (value == "LEATHER_ARMOR") return ICURS_LEATHER_ARMOR; |
|
|
|
if (value == "LEATHER_ARMOR") return ICURS_LEATHER_ARMOR; |
|
|
|
if (value == "SPLINT_MAIL") return ICURS_SPLINT_MAIL; |
|
|
|
if (value == "SPLINT_MAIL") return ICURS_SPLINT_MAIL; |
|
|
|
if (value == "ROBE") return ICURS_ROBE; |
|
|
|
if (value == "ROBE") return ICURS_ROBE; |
|
|
|
|
|
|
|
if (value == "THE_RAINBOW_CLOAK") return ICURS_THE_RAINBOW_CLOAK; |
|
|
|
if (value == "ANVIL_OF_FURY") return ICURS_ANVIL_OF_FURY; |
|
|
|
if (value == "ANVIL_OF_FURY") return ICURS_ANVIL_OF_FURY; |
|
|
|
if (value == "BROAD_AXE") return ICURS_BROAD_AXE; |
|
|
|
if (value == "BROAD_AXE") return ICURS_BROAD_AXE; |
|
|
|
if (value == "LARGE_AXE") return ICURS_LARGE_AXE; |
|
|
|
if (value == "LARGE_AXE") return ICURS_LARGE_AXE; |
|
|
|
if (value == "GREAT_AXE") return ICURS_GREAT_AXE; |
|
|
|
if (value == "GREAT_AXE") return ICURS_GREAT_AXE; |
|
|
|
if (value == "AXE") return ICURS_AXE; |
|
|
|
if (value == "AXE") return ICURS_AXE; |
|
|
|
|
|
|
|
if (value == "BLACKOAK_SHIELD") return ICURS_BLACKOAK_SHIELD; |
|
|
|
if (value == "LARGE_SHIELD") return ICURS_LARGE_SHIELD; |
|
|
|
if (value == "LARGE_SHIELD") return ICURS_LARGE_SHIELD; |
|
|
|
if (value == "GOTHIC_SHIELD") return ICURS_GOTHIC_SHIELD; |
|
|
|
if (value == "GOTHIC_SHIELD") return ICURS_GOTHIC_SHIELD; |
|
|
|
if (value == "CLOAK") return ICURS_CLOAK; |
|
|
|
if (value == "CLOAK") return ICURS_CLOAK; |
|
|
|
@ -172,10 +194,27 @@ tl::expected<item_cursor_graphic, std::string> ParseItemCursorGraphic(std::strin |
|
|
|
if (value == "RING_MAIL") return ICURS_RING_MAIL; |
|
|
|
if (value == "RING_MAIL") return ICURS_RING_MAIL; |
|
|
|
if (value == "STAFF_OF_LAZARUS") return ICURS_STAFF_OF_LAZARUS; |
|
|
|
if (value == "STAFF_OF_LAZARUS") return ICURS_STAFF_OF_LAZARUS; |
|
|
|
if (value == "ARKAINES_VALOR") return ICURS_ARKAINES_VALOR; |
|
|
|
if (value == "ARKAINES_VALOR") return ICURS_ARKAINES_VALOR; |
|
|
|
|
|
|
|
if (value == "THE_NEEDLER") return ICURS_THE_NEEDLER; |
|
|
|
|
|
|
|
if (value == "NAJS_LIGHT_PLATE") return ICURS_NAJS_LIGHT_PLATE; |
|
|
|
|
|
|
|
if (value == "THE_GRIZZLY") return ICURS_THE_GRIZZLY; |
|
|
|
|
|
|
|
if (value == "THE_GRANDFATHER") return ICURS_THE_GRANDFATHER; |
|
|
|
|
|
|
|
if (value == "THE_PROTECTOR") return ICURS_THE_PROTECTOR; |
|
|
|
|
|
|
|
if (value == "MESSERSCHMIDTS_REAVER") return ICURS_MESSERSCHMIDTS_REAVER; |
|
|
|
|
|
|
|
if (value == "WINDFORCE") return ICURS_WINDFORCE; |
|
|
|
if (value == "SHORT_WAR_BOW") return ICURS_SHORT_WAR_BOW; |
|
|
|
if (value == "SHORT_WAR_BOW") return ICURS_SHORT_WAR_BOW; |
|
|
|
if (value == "COMPOSITE_STAFF") return ICURS_COMPOSITE_STAFF; |
|
|
|
if (value == "COMPOSITE_STAFF") return ICURS_COMPOSITE_STAFF; |
|
|
|
if (value == "SHORT_BATTLE_BOW") return ICURS_SHORT_BATTLE_BOW; |
|
|
|
if (value == "SHORT_BATTLE_BOW") return ICURS_SHORT_BATTLE_BOW; |
|
|
|
|
|
|
|
if (value == "XORINES_RING") return ICURS_XORINES_RING; |
|
|
|
|
|
|
|
if (value == "AMULET_OF_WARDING") return ICURS_AMULET_OF_WARDING; |
|
|
|
|
|
|
|
if (value == "KARIKS_RING") return ICURS_KARIKS_RING; |
|
|
|
|
|
|
|
if (value == "MERCURIAL_RING") return ICURS_MERCURIAL_RING; |
|
|
|
|
|
|
|
if (value == "RING_OF_THUNDER") return ICURS_RING_OF_THUNDER; |
|
|
|
|
|
|
|
if (value == "GIANTS_KNUCKLE") return ICURS_GIANTS_KNUCKLE; |
|
|
|
if (value == "AURIC_AMULET") return ICURS_AURIC_AMULET; |
|
|
|
if (value == "AURIC_AMULET") return ICURS_AURIC_AMULET; |
|
|
|
|
|
|
|
if (value == "RING_OF_THE_MYSTICS") return ICURS_RING_OF_THE_MYSTICS; |
|
|
|
|
|
|
|
if (value == "ACOLYTES_AMULET") return ICURS_ACOLYTES_AMULET; |
|
|
|
|
|
|
|
if (value == "RING_OF_MAGMA") return ICURS_RING_OF_MAGMA; |
|
|
|
|
|
|
|
if (value == "GLADIATORS_RING") return ICURS_GLADIATORS_RING; |
|
|
|
if (value == "RUNE_BOMB") return ICURS_RUNE_BOMB; |
|
|
|
if (value == "RUNE_BOMB") return ICURS_RUNE_BOMB; |
|
|
|
if (value == "THEODORE") return ICURS_THEODORE; |
|
|
|
if (value == "THEODORE") return ICURS_THEODORE; |
|
|
|
if (value == "TORN_NOTE_1") return ICURS_TORN_NOTE_1; |
|
|
|
if (value == "TORN_NOTE_1") return ICURS_TORN_NOTE_1; |
|
|
|
@ -189,6 +228,15 @@ tl::expected<item_cursor_graphic, std::string> ParseItemCursorGraphic(std::strin |
|
|
|
if (value == "RUNE_OF_STONE") return ICURS_RUNE_OF_STONE; |
|
|
|
if (value == "RUNE_OF_STONE") return ICURS_RUNE_OF_STONE; |
|
|
|
if (value == "GREY_SUIT") return ICURS_GREY_SUIT; |
|
|
|
if (value == "GREY_SUIT") return ICURS_GREY_SUIT; |
|
|
|
if (value == "BROWN_SUIT") return ICURS_BROWN_SUIT; |
|
|
|
if (value == "BROWN_SUIT") return ICURS_BROWN_SUIT; |
|
|
|
|
|
|
|
if (value == "EATER_OF_SOULS") return ICURS_EATER_OF_SOULS; |
|
|
|
|
|
|
|
if (value == "ARMOR_OF_GLOOM") return ICURS_ARMOR_OF_GLOOM; |
|
|
|
|
|
|
|
if (value == "BONE_CHAIN_ARMOR") return ICURS_BONE_CHAIN_ARMOR; |
|
|
|
|
|
|
|
if (value == "THUNDERCLAP") return ICURS_THUNDERCLAP; |
|
|
|
|
|
|
|
if (value == "DIAMONDEDGE") return ICURS_DIAMONDEDGE; |
|
|
|
|
|
|
|
if (value == "FLAMBEAU") return ICURS_FLAMBEAU; |
|
|
|
|
|
|
|
if (value == "GNAT_STING") return ICURS_GNAT_STING; |
|
|
|
|
|
|
|
if (value == "BLITZEN") return ICURS_BLITZEN; |
|
|
|
|
|
|
|
if (value == "DEMON_PLATE_ARMOR") return ICURS_DEMON_PLATE_ARMOR; |
|
|
|
if (value == "BOVINE") return ICURS_BOVINE; |
|
|
|
if (value == "BOVINE") return ICURS_BOVINE; |
|
|
|
return tl::make_unexpected("Unknown enum value"); |
|
|
|
return tl::make_unexpected("Unknown enum value"); |
|
|
|
} |
|
|
|
} |
|
|
|
@ -411,7 +459,6 @@ tl::expected<item_effect_type, std::string> ParseItemEffectType(std::string_view |
|
|
|
if (value == "MULT_ARROWS") return IPL_MULT_ARROWS; |
|
|
|
if (value == "MULT_ARROWS") return IPL_MULT_ARROWS; |
|
|
|
if (value == "FIRE_ARROWS") return IPL_FIRE_ARROWS; |
|
|
|
if (value == "FIRE_ARROWS") return IPL_FIRE_ARROWS; |
|
|
|
if (value == "LIGHT_ARROWS") return IPL_LIGHT_ARROWS; |
|
|
|
if (value == "LIGHT_ARROWS") return IPL_LIGHT_ARROWS; |
|
|
|
if (value == "INVCURS") return IPL_INVCURS; |
|
|
|
|
|
|
|
if (value == "THORNS") return IPL_THORNS; |
|
|
|
if (value == "THORNS") return IPL_THORNS; |
|
|
|
if (value == "NOMANA") return IPL_NOMANA; |
|
|
|
if (value == "NOMANA") return IPL_NOMANA; |
|
|
|
if (value == "FIREBALL") return IPL_FIREBALL; |
|
|
|
if (value == "FIREBALL") return IPL_FIREBALL; |
|
|
|
@ -531,6 +578,7 @@ void LoadUniqueItemDat() |
|
|
|
RecordReader reader { record, filename }; |
|
|
|
RecordReader reader { record, filename }; |
|
|
|
UniqueItem &item = UniqueItems.emplace_back(); |
|
|
|
UniqueItem &item = UniqueItems.emplace_back(); |
|
|
|
reader.readString("name", item.UIName); |
|
|
|
reader.readString("name", item.UIName); |
|
|
|
|
|
|
|
reader.read("cursorGraphic", item.UICurs, ParseItemCursorGraphic); |
|
|
|
reader.read("uniqueBaseItem", item.UIItemId, ParseUniqueBaseItem); |
|
|
|
reader.read("uniqueBaseItem", item.UIItemId, ParseUniqueBaseItem); |
|
|
|
reader.readInt("minLevel", item.UIMinLvl); |
|
|
|
reader.readInt("minLevel", item.UIMinLvl); |
|
|
|
reader.readInt("value", item.UIValue); |
|
|
|
reader.readInt("value", item.UIValue); |
|
|
|
|