Offset requests - ship spinning & docking speed
-
So I noticed some peculiar behavior and was hoping someone would be able to shed light on this.
PhySys::GetCollisions seems to return all collision events, even those that involve beam weapons. Oddly, though, it doesn’t put a CBeam pointer in the second slot, instead it puts a pointer to what appears to be garbage. All I could notice was that the pointer would point to another pointer which would point to another pointer and so on until the last pointer goes to 0x0. All data around those pointers is 0xcdcdcdcd, so invalid.
I tried looking into how FL handles the CollisionEvent list, but it doesn’t seem to make any special case for those events, even though the second pointer obviously doesn’t work. Is there a straightforward way of identifying those “broken” events short of just trying to cast them to a CObject and seeing if it breaks?
Even better would be figuring out a way of tracing back which CBeam did it.
EDIT: So apparently if a beam weapon’s ammo has zero mass, it shows up in the CollisionEvent list, but does not refer to the proper object instance.