If a wingman attempts to get their armor repaired at a station without any free docking slots they can get stuck in the docking queue and will no longer follow the player or respond to orders.

nms 1 May 2017:

I think this pull request should fix this issue: https://github.com/kronosaur/Transcendence/pull/38/commits/256f97487a2e1fc7ca7bbacb4e1616a5bb324d9f
(Have I finally figured out how to use git correctly?)

Maybe wingmen should be allowed to use the last docking port, like escort mission targets, but I'm not sure how that works. If that were implemented, the numbers would need to be changed.

giantcabbage 1 May 2017:

I had forgotten about this one! I tried adding the initial check in srvFindRepairArmor (like this) which is probably enough to change it from a rare to very rare bug, but having the second check to abort the behavior is a definite improvement.

Regarding the use of the last docking port, the logic appears to be in CDockingPorts.cpp

I don't think there is an easy way to dectect if a spaceobject is a wingman, but it should be possible to add an attribute check like: !pObj->HasAttribute(CONSTLIT("canUseLastDockingPort"))

nms 1 May 2017:

I tried adding the initial check in srvFindRepairArmor

That is slightly better in the case where there are multiple stations with the service within 60 ls and some but not all of them are full.

I don't think there is an easy way to dectect if a spaceobject is a wingman, but it should be possible to add an attribute check like: !pObj->HasAttribute(CONSTLIT("canUseLastDockingPort"))

Seems like pObj->GetProperty(someContext, CONSTLIT("playerWingman")) should work. Also, ideally it would check whether the ship is the target for any of the player's missions, so accepting another mission doesn't cause it to stop working. (See Better control over mission targets)

ferdinand 2 May 2017:

This also happens when wingman take damage in the arena (should not take them there, but sometimes they manage to sneak in real easy with the new arena. see: http://ministry.kronosaur.com/record.hexm?id=61197

nms 2 May 2017:

Yes, that's because the arena can repair, but has only one docking port, which is reserved. Either giantcabbage's or my fix should stop that from happening. Mine should also fix it in games where it's already happened.

george moromisato 28 Jun 2017:

Fixed in 1.8 Alpha 2.

I applied @NMS's fix and I also added code to CDockingPorts.cpp to ignore the port limit if the ship is a wingman.