mirror of
https://github.com/ptitSeb/Serious-Engine
synced 2025-02-05 18:45:49 +01:00
d228b6a7a7
The tags are often initially assigned from pointers and then copied around, even from one tag type to the other. As BSPTree::MoveSubTreeToArray() uses them to get the original pointer, we need the pointers anyway, so just CRC-ing the pointers doesn't seem like a good option. As the tags are assigned from other tag-types sometimes, I probably would have needed to add Pointers for the same values in addition to the ULONG tags, that are also copied around along the tags, to keep the tags ULONG - that seemed like a worse alternative. However, when writing (via BSPTree::Write_t()) the bn_ulPlaneTag tag needs to be ULONG, so there I actually use CRC for 64bit pointers (via IntPtrToID()) - when restoring (in Read_t()), the pointers aren't valid anymore anyway, so that all should somehow be fine. I assume that Write_t() is only used by the Editor, anyway, so I fear I won't be able to test that part of the code on Linux anytime soon.