Mon 04 Aug 2008 04:44:00 AM UTC, comment #3:
I found the reason for this, but I didn't have time to make a patch yet.
The problem is that when the droid (cyborg) goes into the transporter, it gets removed from the apsDroidLists. (I don't really know the logic behind that, I would just set a flag that it is on a transport ship, not remove it from the list.)
When it exits the transporter, we check apsDroidList first, and we notice it isn't there (well duh! We removed it), and then it bails out with that error in IdToDroid().
Also, unless I am blind, I don't see a sendDroidDisEmbark() when we remove a droid from the transport. (Though, that routine also checks IdToDroid().)
In short, we need to get the droid back in apsDroidList via addDroid() (which is already done), then after that, we must send the same info to all other clients (which isn't done), so they update their apsDroidList also.
If nobody beats me to it, I will have a patch ready when I get some time.
This is also a trunk issue.
|