Skip to content

Commit

Permalink
Fix Commanders disappearing from transporter group too early
Browse files Browse the repository at this point in the history
If trying to use enumCargo() during an eventTransporterLanded the Commander was already removed from the transporter group.
  • Loading branch information
KJeff01 authored and pull[bot] committed May 15, 2024
1 parent b5b57a7 commit 11588ac
Showing 1 changed file with 8 additions and 7 deletions.
15 changes: 8 additions & 7 deletions src/mission.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1731,13 +1731,6 @@ void unloadTransporter(DROID *psTransporter, UDWORD x, UDWORD y, bool goingHome)
}
droidSetPosition(psDroid, world_coord(droidX), world_coord(droidY));
updateDroidOrientation(psDroid);
// a commander needs to get it's group back
if (psDroid->droidType == DROID_COMMAND)
{
psGroup = grpCreate();
psGroup->add(psDroid);
clearCommandDroidFactory(psDroid);
}

//reset droid orders
orderDroid(psDroid, DORDER_STOP, ModeImmediate);
Expand All @@ -1764,6 +1757,14 @@ void unloadTransporter(DROID *psTransporter, UDWORD x, UDWORD y, bool goingHome)
&& psDroid != psTransporter; psDroid = psNext)
{
psNext = psDroid->psGrpNext;
// a commander needs to get it's group back
if (psDroid->droidType == DROID_COMMAND)
{
psGroup = grpCreate();
psGroup->add(psDroid);
clearCommandDroidFactory(psDroid);
continue;
}
psTransporter->psGroup->remove(psDroid);
}
}
Expand Down

0 comments on commit 11588ac

Please sign in to comment.