diff --git a/src/Mass/Mass.cpp b/src/Mass/Mass.cpp index 86aa2d3..904c557 100644 --- a/src/Mass/Mass.cpp +++ b/src/Mass/Mass.cpp @@ -1032,5 +1032,25 @@ void Mass::getWeaponType(const char* prop_name, Containers::ArrayView we getAccessories(part.accessories, part_accs); } } + + auto custom_styles = weapon_prop->at("Styles_10_8C3C82444B986AD7A99595AD4985912D"); + if(!custom_styles) { + _state = State::Invalid; + return; + } + + if(custom_styles->items.size() != weapon.customStyles.size()) { + _state = State::Invalid; + return; + } + + getCustomStyles(weapon.customStyles, custom_styles); + + weapon.attached = weapon_prop->at("Attach_15_D00AABBD4AD6A04778D56D81E51927B3")->value; + weapon.damageType = weapon_prop->at("DamageType_18_E1FFA53540591A9087EC698117A65C83")->enumValue; + weapon.dualWield = weapon_prop->at("DualWield_20_B2EB2CEA4A6A233DC7575996B6DD1222")->value; + weapon.effectColourMode = weapon_prop->at("ColorEfxMode_24_D254BCF943E852BF9ADB8AAA8FD80014")->enumValue; + auto effect_colour = weapon_prop->at("ColorEfx_26_D921B62946C493E487455A831F4520AC"); + weapon.effectColour = Color4{effect_colour->r, effect_colour->g, effect_colour->b, effect_colour->a}; } }