Ah, so the argument to warpOut is indeed disabled...
If we could suggest an optimal solution, that would require the minimum amount of changes to other parts of the code, would that be sufficiently convincing/persuasive? I suspect that if you would have had to change all related SEXPs to make it work, you might have been doing it in a sub-optimal way...
Why couldn't you just say something like, when a ship is told to warpOut(false), as soon as it would normally be removed, instead of classifying it as warped out, just put it directly into limbo, and disable drawing/targeting/attacking/damage/etc.? That way, all you'd have to do (with high priority, anyway) would be:
- Add a limbo state
- Put ships that warpOut(false) into limbo instead of setting them as departed
- Create a SEXP and script function to determine if a ship is in limbo
- Disable all actions of the limbo'd ship until it is told to return from limbo
And lower priority items like:
- Add a way to control whether or not a wapOut(false) ship event appears in the events list
Of course, this is from an outside coder's perspective, I've never really looked at any part of the FS2 code that made much sense to me.