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 committed Jul 24, 2023
1 parent a8b14af commit 1d63b30
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 1d63b30

Please sign in to comment.