I’m trying to build a recursive data structure for configuring weapon attachments that can have their own attachments. It’s more than just two levels, because of course you might put a canted rail mount in between them, etc. The intention is that it’s pretty freeform.
The problem I’m running into is that I can’t define the attachment structure ahead of time. If I use a Struct1 as a member of Struct2 (or Struct3 if Struct3 is a member of Struct2) if anywhere in the project Struct2 is a member of Struct1.
To make that statement clearer:
Struct1 contains Struct2. Struct2 can now not contain Struct1.
Struct 1 contains Struct2. Struct 2 contains Struct3. Struct3 can now not contain Struct1.
If you jumble the order up, the same is true. I can’t make Struct2 a member of Struct1 if anywhere down the line Struct1 is a member.
This can’t be by design. It’s irritating and I can’t think of any technical reason for it. At least in C++, direct inheritance has the same problem and causes a build error.
I could use a datatable with the connection between objects just being row names, but that’s not nearly as nice UI-wise.
Why is this like this?