I thought maybe you were creating something to release since you said this:
What I showed were simply examples. Yes, 2d weapon with bools “locked” would be totally useless. That’s what I’ve been trying to say about your current system. Unless I’m mistaken, every item created will have lots of unneeded variables.
So what I would do, is simply make a different struct for a 2d weapon with its own specific variables. I would show you however I already deleted everything…