diff --git a/src/GameData/WeaponParts.h b/src/GameData/WeaponParts.h index 36451eb..ca70e81 100644 --- a/src/GameData/WeaponParts.h +++ b/src/GameData/WeaponParts.h @@ -27,17 +27,21 @@ using namespace Containers::Literals; namespace mbst::GameData { +// As of this writing (2024-12-07T12:08+01:00), the IDs ending in 96 are not valid IDs in the game, but are used by the +// Save Tool to display a name instead of "ID: ". + // region Melee static const std::map melee_grips { - {0, "Combat Grip (1H)"_s}, - {1, "Knuckle Guard Grip (1H)"_s}, - {2, "Dual Guard Grip (1H)"_s}, - {3, "Sepal Grip (1H)"_s}, - {4, "Warrior Grip (1H)"_s}, - {5, "Guardian Grip (1H)"_s}, - {6, "Knight Guard Grip (1H)"_s}, - {7, "Saber Guard Grip (1H)"_s}, - {8, "Base Grip (1H)"_s}, + {0, "Combat Grip (1H)"_s}, + {1, "Knuckle Guard Grip (1H)"_s}, + {2, "Dual Guard Grip (1H)"_s}, + {3, "Sepal Grip (1H)"_s}, + {4, "Warrior Grip (1H)"_s}, + {5, "Guardian Grip (1H)"_s}, + {6, "Knight Guard Grip (1H)"_s}, + {7, "Saber Guard Grip (1H)"_s}, + {8, "Base Grip (1H)"_s}, + {96, " (1H)"_s}, {100, "Combat Side Grip (1H)"_s}, {101, "Hollowed Side Grip (1H)"_s}, @@ -48,12 +52,14 @@ static const std::map melee_grips { {106, "Concave Side Grip (1H)"_s}, {107, "Polehead Side Grip (1H)"_s}, {108, "Base Side Grip (1H)"_s}, + {196, " (1H)"_s}, {200, "Combat Dual Grip (1H)"_s}, {201, "Hollowed Dual Grip (1H)"_s}, {202, "Plated Dual Grip (1H)"_s}, {203, "Concave Dual Grip (1H)"_s}, {204, "Polehead Dual Grip (1H)"_s}, + {296, " (1H)"_s}, {400, "Combat Twin Grip (1H)"_s}, {401, "Sepal Twin Grip (1H)"_s}, @@ -63,6 +69,7 @@ static const std::map melee_grips { {405, "Handguard Twin Grip (1H)"_s}, {406, "Fullguard Twin Grip (1H)"_s}, {407, "Base Twin Grip (1H)"_s}, + {496, " (1H)"_s}, {1000, "Combat Knuckle (R/L)"_s}, {1001, "Battle Fist (R/L)"_s}, @@ -70,6 +77,7 @@ static const std::map melee_grips { {1003, "Heavy Fist (R/L)"_s}, {1004, "Thick Fist (R/L)"_s}, {1005, "Base Fist (R/L)"_s}, + {1096, " (R/L)"_s}, {2000, "Combat Polearm (2H)"_s}, {2001, "Dual Guard Polearm (2H)"_s}, @@ -79,6 +87,7 @@ static const std::map melee_grips { {2005, "Sharp Polearm (2H)"_s}, {2006, "Ring Polearm (2H)"_s}, {2007, "Base Polearm (2H)"_s}, + {2096, " (2H)"_s}, {2100, "Combat Side Polearm (2H)"_s}, {2101, "Plated Side Polearm (2H)"_s}, @@ -86,10 +95,12 @@ static const std::map melee_grips { {2103, "Fin Side Polearm (2H)"_s}, {2104, "Heavy Side Polearm (2H)"_s}, {2105, "Base Side Polearm (2H)"_s}, + {2196, " (2H)"_s}, {2200, "Combat Dual Polearm (2H)"_s}, {2201, "Studded Dual Polearm (2H)"_s}, {2202, "Circular Dual Polearm (2H)"_s}, + {2296, " (2H)"_s}, {2400, "Combat Twin Blade (2H)"_s}, {2401, "Guard Twin Blade (2H)"_s}, @@ -99,6 +110,7 @@ static const std::map melee_grips { {2405, "Holder Twin Blade (2H)"_s}, {2406, "Ring Twin Blade (2H)"_s}, {2407, "Base Twin Blade (2H)"_s}, + {2496, " (2H)"_s}, }; static const std::map melee_assaulters { @@ -115,39 +127,35 @@ static const std::map melee_assaulters { {10, "Long Curved Blade"_s}, {11, "Long Broad Blade"_s}, {12, "Base L Sword"_s}, - {20, "Long Combat Edge"_s}, {21, "Long Attached Edge"_s}, - {40, "Katana Blade"_s}, {41, "Custom Katana Blade"_s}, - {60, "Energy Blade (Motion)"_s}, {61, "Powered Blade"_s}, + {96, ""_s}, {100, "Short Metal Blade"_s}, {101, "Short Assault Blade"_s}, {102, "Short Fin Blade"_s}, {103, "Base S Sword"_s}, - {120, "Short Combat Edge"_s}, - {160, "Short Energy Blade (Motion)"_s}, {161, "Short Powered Blade"_s}, - {180, "Triclaw"_s}, {181, "Straight Triclaw"_s}, {182, "Griphold Claw"_s}, {183, "Energy Claw"_s}, {184, "Openhold Claw"_s}, {185, "Hooktusk Claw"_s}, + {196, ""_s}, {200, "Bracer"_s}, {201, "Custom Bracer"_s}, {202, "Base Hammer"_s}, - {210, "Expanded Bracer"_s}, {211, "Expanded Custom Bracer"_s}, + {296, ""_s}, {300, "Heavy Smasher"_s}, {301, "Heavy Basher"_s}, @@ -156,6 +164,7 @@ static const std::map melee_assaulters { {304, "Heavy Diamond Smasher"_s}, {305, "Heavy Spinning Smasher (Motion)"_s}, {306, "Base L Mace"_s}, + {396, ""_s}, {400, "Light Smasher"_s}, {401, "Light Basher"_s}, @@ -164,14 +173,13 @@ static const std::map melee_assaulters { {404, "Light Diamond Smasher"_s}, {405, "Light Spinning Smasher"_s}, {406, "Base S Mace"_s}, - {420, "War Hammer"_s}, {421, "Great Hammer"_s}, {422, "Spiked Hammer"_s}, {423, "Broadhead Hammer"_s}, - {440, "Morning Star"_s}, {441, "Spike Ball"_s}, + {496, ""_s}, {500, "Combat Lance"_s}, {501, "Gouger Lance"_s}, @@ -179,6 +187,7 @@ static const std::map melee_assaulters { {503, "Spinning Pointy Lance (Motion)"_s}, {504, "Crystal Lance"_s}, {510, "Piercer"_s}, + {596, ""_s}, {600, "Short Combat Lance"_s}, {601, "Short Pointy Lance"_s}, @@ -186,6 +195,7 @@ static const std::map melee_assaulters { {603, "Short Crystal Lance"_s}, {605, "Short Combat Drill (Motion)"_s}, {610, "Short Piercer"_s}, + {696, ""_s}, {700, "Combat Axe"_s}, {701, "Custom Combat Axe"_s}, @@ -193,57 +203,60 @@ static const std::map melee_assaulters { {703, "Frontbreak Axe"_s}, {704, "Maiming Axe"_s}, {705, "Delta Axe"_s}, + {796, ""_s}, {800, "Combat Scythe"_s}, {801, "Reaper Blade"_s}, {802, "Clawtooth Scythe"_s}, {803, "Wingpoint Scythe"_s}, {804, "Snakebone Scythe"_s}, + {896, ""_s}, {900, "Short Combat Scythe"_s}, {901, "Short Reaper Blade"_s}, {902, "Short Clawtooth Scythe"_s}, {903, "Short Wingpoint Scythe"_s}, {904, "Short Snakebone Scythe"_s}, + {996, ""_s}, }; // endregion // region Shields static const std::map shield_handles { - {0, "Balanced Handle"_s}, - {1, "Expanded Handle"_s}, - {2, "Lowguard Handle"_s}, - {3, "Longblocker Handle"_s}, - {4, "Winged Handle"_s}, - {5, "Stopper Handle"_s}, - {6, "Layered Handle"_s}, - {7, "Riotguard Handle"_s}, - {8, "Blitz Handle"_s}, - {9, "Foldable Handle"_s}, - {10, "Board Handle"_s}, - {11, "Knight Handle"_s}, - {12, "Cargwall Handle"_s}, - + {0, "Balanced Handle"_s}, + {1, "Expanded Handle"_s}, + {2, "Lowguard Handle"_s}, + {3, "Longblocker Handle"_s}, + {4, "Winged Handle"_s}, + {5, "Stopper Handle"_s}, + {6, "Layered Handle"_s}, + {7, "Riotguard Handle"_s}, + {8, "Blitz Handle"_s}, + {9, "Foldable Handle"_s}, + {10, "Board Handle"_s}, + {11, "Knight Handle"_s}, + {12, "Cargwall Handle"_s}, + {96, ""_s}, {100, "Buckler Handle"_s}, {101, "Star Handle"_s}, }; static const std::map shield_shells { - {0, "Balanced Shell"_s}, - {1, "Compass Shell"_s}, - {2, "Uppoint Shell"_s}, - {3, "Pointed Shell"_s}, - {4, "Padded Shell"_s}, - {5, "Pincer Shell"_s}, - {6, "Fang Shell"_s}, - {7, "Holder Shell"_s}, - {8, "Composite Shell"_s}, - {9, "Mechanical Shell"_s}, - {10, "Layered Shell"_s}, - {11, "Parted Shell"_s}, - {12, "Tapst Shell"_s}, - {13, "Sidloc Shell"_s}, - + {0, "Balanced Shell"_s}, + {1, "Compass Shell"_s}, + {2, "Uppoint Shell"_s}, + {3, "Pointed Shell"_s}, + {4, "Padded Shell"_s}, + {5, "Pincer Shell"_s}, + {6, "Fang Shell"_s}, + {7, "Holder Shell"_s}, + {8, "Composite Shell"_s}, + {9, "Mechanical Shell"_s}, + {10, "Layered Shell"_s}, + {11, "Parted Shell"_s}, + {12, "Tapst Shell"_s}, + {13, "Sidloc Shell"_s}, + {96, ""_s}, {100, "V-Cross Shell"_s}, }; // endregion @@ -257,6 +270,7 @@ static const std::map bshooter_triggers { {4, "Longhold Trigger (1H)"_s}, {5, "Downhold Trigger (1H)"_s}, {6, "Cellblock Trigger (1H)"_s}, + {96, " (1H)"_s}, {99, "Base Trigger (1H)"_s}, {100, "BL-Machine Trigger (2H)"_s}, @@ -264,6 +278,7 @@ static const std::map bshooter_triggers { {102, "Shielded Trigger (2H)"_s}, {103, "Platedframe Trigger (2H)"_s}, {104, "Sidebox Trigger (2H) (Motion)"_s}, + {196, " (2H)"_s}, {199, "2H Base Trigger (2H)"_s}, }; @@ -273,6 +288,7 @@ static const std::map bshooter_barrels { {2, "Muzzlemod Barrel (1 shot)"_s}, {3, "Triangular Barrel (1 shot)"_s}, {4, "Recoilblock Barrel (1 shot) (Motion)"_s}, + {96, " (1 shot)"_s}, {97, "Short S Base Barrel (1 shot)"_s}, {98, "Medium S Base Barrel (1 shot)"_s}, {99, "Long S Base Barrel (1 shot)"_s}, @@ -281,6 +297,7 @@ static const std::map bshooter_barrels { {101, "Modded Six-Barrel Gatling (Auto) (Motion)"_s}, {102, "Four-Barrel Gatling (Auto) (Motion)"_s}, {103, "Retro Style Gatling (Auto) (Motion)"_s}, + {196, " (Auto)"_s}, {197, "Short G Base Barrel (Auto)"_s}, {198, "Medium G Base Barrel (Auto)"_s}, {199, "Long G Base Barrel (Auto)"_s}, @@ -289,6 +306,7 @@ static const std::map bshooter_barrels { {201, "Wideblast Barrel (Spread) (Motion)"_s}, {202, "Pelleter Barrel (Spread) (Motion)"_s}, {203, "Lockhold Barrel (Spread) (Motion)"_s}, + {296, " (Spread)"_s}, {297, "Short B Base Barrel (Spread)"_s}, {298, "Medium B Base Barrel (Spread)"_s}, {299, "Long B Base Barrel (Spread)"_s}, @@ -297,6 +315,7 @@ static const std::map bshooter_barrels { {301, "Roundbox Barrel (Detonate)"_s}, {302, "ShieldDet Barrel (Detonate)"_s}, {303, "RecoilDet Barrel (Detonate) (Motion)"_s}, + {396, " (Detonate)"_s}, {397, "Short D Base Barrel (Detonate)"_s}, {398, "Medium D Base Barrel (Detonate)"_s}, {399, "Long D Base Barrel (Detonate)"_s}, @@ -304,6 +323,7 @@ static const std::map bshooter_barrels { {400, "Heavy Burst Barrel (Pile Bunker) (Motion)"_s}, {401, "Under Guard Barrel (Pile Bunker) (Motion)"_s}, {402, "Facthold Barrel (Pile Bunker) (Motion)"_s}, + {496, " (Pile Bunker)"_s}, {499, "Long P Base Barrel (Pile Bunker) (Motion)"_s}, }; // endregion @@ -317,6 +337,7 @@ static const std::map eshooter_triggers { {4, "EN-Needler Trigger (1H)"_s}, {5, "Angular Trigger (1H)"_s}, {6, "Exposed Trigger (1H)"_s}, + {96, " (1H)"_s}, {99, "Base EnTrigger (1H)"_s}, {100, "EN-Combat Trigger (2H)"_s}, @@ -324,6 +345,7 @@ static const std::map eshooter_triggers { {102, "Framed Trigger (2H) (Motion)"_s}, {103, "Stabilised Trigger (2H)"_s}, {104, "EN-Heavy Trigger (2H)"_s}, + {196, " (2H)"_s}, {199, "2H Base EnTrigger (2H)"_s}, }; @@ -332,6 +354,7 @@ static const std::map eshooter_busters { {1, "Delta Cycler (1 shot) (Motion)"_s}, {2, "EN-Longbarrel Buster (1 shot)"_s}, {3, "Kinetic Buster (1 shot) (Motion)"_s}, + {96, " (1 shot)"_s}, {97, "Short S Base Buster (1 shot)"_s}, {98, "Medium S Base Buster (1 shot)"_s}, {99, "Long S Base Buster (1 shot)"_s}, @@ -340,6 +363,7 @@ static const std::map eshooter_busters { {101, "EN-Focus Buster (Auto)"_s}, {102, "Machinist Buster (Auto)"_s}, {103, "EN-Precision Buster (Auto) (Motion)"_s}, + {196, " (Auto)"_s}, {197, "Short A Base Buster (Auto)"_s}, {198, "Medium A Base Buster (Auto)"_s}, {199, "Long A Base Buster (Auto)"_s}, @@ -348,6 +372,7 @@ static const std::map eshooter_busters { {201, "Clawcharge Buster (Ray)"_s}, {202, "Twizelcharge Buster (Ray)"_s}, {203, "Deltacharge Buster (Ray)"_s}, + {296, " (Ray)"_s}, {297, "Short R Base Buster (Ray)"_s}, {298, "Medium R Base Buster (Ray)"_s}, {299, "Long R Base Buster (Ray)"_s}, @@ -356,6 +381,7 @@ static const std::map eshooter_busters { {301, "Amplifier Buster (Wave) (Motion)"_s}, {302, "Cyclonwave Buster (Wave)"_s}, {303, "Warhorn Buster (Wave) (Motion)"_s}, + {396, " (Wave)"_s}, {397, "Short W Base Buster (Wave)"_s}, {398, "Medium W Base Buster (Wave)"_s}, {399, "Long W Base Buster (Wave)"_s}, @@ -363,6 +389,7 @@ static const std::map eshooter_busters { {400, "Wiredcharge Buster (Prism) (Motion)"_s}, {402, "Heavyclamp Buster (Prism) (Motion)"_s}, {402, "Curlescent Buster (Prism) (Motion)"_s}, + {496, " (Prism)"_s}, {499, "Long P Base Buster (Prism) (Motion)"_s}, }; // endregion @@ -374,6 +401,7 @@ static const std::map blauncher_pods { {2, "Detector Launcher (Missile x12)"_s}, {3, "BL-Triplet Pack Launcher (Missile x12)"_s}, {4, "Shielded Launcher (Missile x12)"_s}, + {96, " (Missile x12)"_s}, {99, "H Base Pod (Missile x12)"_s}, {100, "Warhead Pod (Nuke x2)"_s}, @@ -381,6 +409,7 @@ static const std::map blauncher_pods { {102, "Triangular Warhead Pod (Nuke x2)"_s}, {103, "Expanded Warhead Pod (Nuke x2)"_s}, {104, "Shielded Warhead Pod (Nuke x2)"_s}, + {196, " (Nuke x2)"_s}, {199, "N Base Pod (Nuke x2)"_s}, {200, "Widepack Launcher (Salvo x24)"_s}, @@ -388,6 +417,7 @@ static const std::map blauncher_pods { {202, "Double Delta Launcher (Salvo x24)"_s}, {203, "Hexagonal Launcher (Salvo x24)"_s}, {204, "Shielded Six Launcher (Salvo x24)"_s}, + {296, " (Salvo x24)"_s}, {299, "S Base Pod (Salvo x24)"_s}, {300, "Sentinel Cluster Pod (Cluster x40)"_s}, @@ -395,15 +425,17 @@ static const std::map blauncher_pods { {302, "Elliptical Cluster Pod (Cluster x40)"_s}, {303, "Sawed Cluster Pod (Cluster x40)"_s}, {304, "Pentagonal Cluster Pod (Cluster x40)"_s}, + {396, " (Cluster x24)"_s}, {399, "C Base Pod (Cluster x40)"_s}, }; static const std::map blauncher_projectiles { - {0, "Flathead Missile"_s}, - {1, "Warhead Missile"_s}, - {2, "Pointhead Missile"_s}, - {3, "Marker Missile"_s}, - {4, "ArB Missile"_s}, + {0, "Flathead Missile"_s}, + {1, "Warhead Missile"_s}, + {2, "Pointhead Missile"_s}, + {3, "Marker Missile"_s}, + {4, "ArB Missile"_s}, + {96, ""_s}, }; // endregion @@ -437,7 +469,8 @@ static const std::map elauncher_generators {25, "Carrier Unit"_s}, {26, "Compartment Unit"_s}, {27, "Flatedge Unit"_s}, - {99, "Base Generator"}, + {96, ""_s}, + {99, "Base Generator"_s}, }; static const std::map elauncher_pods { @@ -448,6 +481,7 @@ static const std::map elauncher_pods { {4, "EN-Needler Launcher (Echo)"_s}, {5, "Spark Launcher (Echo)"_s}, {6, "Pinpoint Launcher (Echo)"_s}, + {96, " (Echo)"_s}, {99, "E Base EPod (Echo)"_s}, {100, "Raystream Launcher (Beam)"_s}, @@ -457,6 +491,7 @@ static const std::map elauncher_pods { {104, "Crosshair Launcher (Beam)"_s}, {105, "Powerlined Launcher (Beam)"_s}, {106, "Attached Launcher (Beam)"_s}, + {196, " (Beam)"_s}, {199, "B Base EPod (Beam)"_s}, {200, "Hilt Launcher (Slash) (Motion)"_s}, @@ -466,6 +501,7 @@ static const std::map elauncher_pods { {204, "Spike Launcher (Slash)"_s}, {205, "Tri-Pronged Launcher (Slash) (Motion)"_s}, {206, "Heavyblade Launcher (Slash)"_s}, + {296, " (Slash)"_s}, {299, "S Base EPod (Slash)"_s}, {300, "Covering Launcher (Photon)"_s}, @@ -475,6 +511,7 @@ static const std::map elauncher_pods { {304, "Shelled Launcher (Photon)"_s}, {305, "Widearm Launcher (Photon)"_s}, {306, "Wingspan Launcher (Photon)"_s}, + {396, " (Photon)"_s}, {399, "P Base EPod (Photon)"_s}, }; // endregion