Max number of variables in a Struct?

Split that weapon struct, into assets part, weapon stats, bullet type. Make bullet type enum, and give it own (bullet) struct.
You want be able to swap visuals separately from weapon stats (rate of fire, or if it is automatic\single shoot, bullet spread) and from type of projectiles it spawns.
That will save time when adding new weapon types. Also create base weapon with all code, then inherit it into separate weapons.
First rethink how you code all those weapons.