H-uru / Plasma

Cyan Worlds's Plasma game engine
http://h-uru.github.io/Plasma/
GNU General Public License v3.0
203 stars 80 forks source link

Fix ODR violation for `plFactory` and avoid including it everywhere #1452

Closed dgelessus closed 1 year ago

dgelessus commented 1 year ago

Touching the core plCreatable headers, part two.

The private members of plFactory were only conditionally defined in plFactory.h, which is an ODR violation and gives warnings with GCC for example (although apparently it has never caused any issues in practice). I'm not sure why it was done that way (perhaps to reduce header pollution very slightly?), but it seems safe to define everything unconditionally.

Regardless, to avoid pulling in plFactory in many places where it's not needed, I also adjusted plCreatable.h to not automatically include plFactory.h anymore. This required removing a couple of plCreatable methods, but they weren't used anywhere and are trivial to replace.