Skip to content

Commit

Permalink
Make the droidOrder*() functions take a ModeQueue/ModeImmediate param…
Browse files Browse the repository at this point in the history
…eter.

Removes the need for turnOffMultiMsg() in some places.
Should reduce the number of messages sent over the network a bit.
Also removes two unused functions in src/transporter.[ch].
  • Loading branch information
Cyp committed Oct 24, 2010
1 parent 40ffee5 commit 6f1fbbd
Show file tree
Hide file tree
Showing 22 changed files with 132 additions and 250 deletions.
16 changes: 8 additions & 8 deletions src/action.c
Expand Up @@ -991,7 +991,7 @@ void actionUpdateDroid(DROID *psDroid)
psDroid->pos.y = droidY;
//fly Transporter back to get some more droids
orderDroidLoc( psDroid, DORDER_TRANSPORTIN,
getLandingX(selectedPlayer), getLandingY(selectedPlayer));
getLandingX(selectedPlayer), getLandingY(selectedPlayer), ModeImmediate);
}
else
{
Expand Down Expand Up @@ -1951,7 +1951,7 @@ void actionUpdateDroid(DROID *psDroid)
psDroid->action = DACTION_NONE;
if (psNextWreck)
{
orderDroidObj(psDroid, DORDER_CLEARWRECK, (BASE_OBJECT *)psNextWreck);
orderDroidObj(psDroid, DORDER_CLEARWRECK, (BASE_OBJECT *)psNextWreck, ModeImmediate);
}
}
else
Expand Down Expand Up @@ -2273,7 +2273,7 @@ void actionUpdateDroid(DROID *psDroid)
//if the order is RTR then resubmit order so that the unit will go to repair facility point
if (orderState(psDroid,DORDER_RTR))
{
orderDroid(psDroid, DORDER_RTR);
orderDroid(psDroid, DORDER_RTR, ModeImmediate);
}
}
else
Expand Down Expand Up @@ -2343,7 +2343,7 @@ void actionUpdateDroid(DROID *psDroid)
{
// totally bunged up - give up
objTrace(psDroid->id, "Couldn't find a clear tile near rearm pad - returning to base");
orderDroid(psDroid, DORDER_RTB);
orderDroid(psDroid, DORDER_RTB, ModeImmediate);
break;
}
moveDroidToDirect(psDroid, droidX,droidY);
Expand Down Expand Up @@ -2526,7 +2526,7 @@ static void actionDroidBase(DROID *psDroid, DROID_ACTION_DATA *psAction)
if (!actionVTOLLandingPos(psDroid, &droidX, &droidY))
{
// totally bunged up - give up
orderDroid(psDroid, DORDER_RTB);
orderDroid(psDroid, DORDER_RTB, ModeImmediate);
break;
}
moveDroidToDirect(psDroid, droidX, droidY);
Expand All @@ -2540,7 +2540,7 @@ static void actionDroidBase(DROID *psDroid, DROID_ACTION_DATA *psAction)
if (!actionVTOLLandingPos(psDroid, &droidX, &droidY))
{
// totally bunged up - give up
orderDroid(psDroid, DORDER_RTB);
orderDroid(psDroid, DORDER_RTB, ModeImmediate);
break;
}
moveDroidToDirect(psDroid, droidX, droidY);
Expand Down Expand Up @@ -2826,7 +2826,7 @@ void moveToRearm(DROID *psDroid)
{
// no order set - use the rearm order to ensure the unit goes back
// to the landing pad
orderDroidObj(psDroid, DORDER_REARM, (BASE_OBJECT *)psStruct);
orderDroidObj(psDroid, DORDER_REARM, (BASE_OBJECT *)psStruct, ModeImmediate);
chosen=1;
}
else
Expand All @@ -2838,7 +2838,7 @@ void moveToRearm(DROID *psDroid)
else
{
//return to base un-armed
orderDroid( psDroid, DORDER_RTB );
orderDroid(psDroid, DORDER_RTB, ModeImmediate);
chosen =3;
}
}
Expand Down
6 changes: 3 additions & 3 deletions src/ai.c
Expand Up @@ -1057,7 +1057,7 @@ static BOOL updateAttackTarget(BASE_OBJECT * psAttacker, SDWORD weapon_slot)
orderState(psDroid, DORDER_ATTACKTARGET)) &&
weapon_slot == 0) //Watermelon:only primary slot(0) updates affect order
{
orderDroidObj((DROID *)psAttacker, DORDER_ATTACKTARGET, psBetterTarget);
orderDroidObj((DROID *)psAttacker, DORDER_ATTACKTARGET, psBetterTarget, ModeImmediate);
}
else //can't override current order
{
Expand Down Expand Up @@ -1207,14 +1207,14 @@ void aiUpdateDroid(DROID *psDroid)
{
if (aiChooseSensorTarget((BASE_OBJECT *)psDroid, &psTarget))
{
orderDroidObj(psDroid, DORDER_OBSERVE, psTarget);
orderDroidObj(psDroid, DORDER_OBSERVE, psTarget, ModeImmediate);
}
}
else
{
if (aiChooseTarget((BASE_OBJECT *)psDroid, &psTarget, 0, true, NULL))
{
orderDroidObj(psDroid, DORDER_ATTACKTARGET, psTarget);
orderDroidObj(psDroid, DORDER_ATTACKTARGET, psTarget, ModeImmediate);
}
}
}
Expand Down
2 changes: 1 addition & 1 deletion src/cmddroid.c
Expand Up @@ -104,7 +104,7 @@ void cmdDroidAddDroid(DROID *psCommander, DROID *psDroid)
secondarySetState(psDroid, DSO_ATTACK_LEVEL, (SECONDARY_STATE)(psCommander->secondaryOrder & DSS_ALEV_MASK));
secondarySetState(psDroid, DSO_HALTTYPE, (SECONDARY_STATE)(psCommander->secondaryOrder & DSS_HALT_MASK));

orderDroidObj(psDroid, DORDER_GUARD, (BASE_OBJECT *)psCommander);
orderDroidObj(psDroid, DORDER_GUARD, (BASE_OBJECT *)psCommander, ModeQueue);
}
}

Expand Down
2 changes: 1 addition & 1 deletion src/combat.c
Expand Up @@ -434,7 +434,7 @@ void counterBatteryFire(BASE_OBJECT *psAttacker, BASE_OBJECT *psTarget)
//inform viewer of target
if (psViewer->type == OBJ_DROID)
{
orderDroidObj((DROID *)psViewer, DORDER_OBSERVE, psAttacker);
orderDroidObj((DROID *)psViewer, DORDER_OBSERVE, psAttacker, ModeImmediate);
}
else if (psViewer->type == OBJ_STRUCTURE)
{
Expand Down
6 changes: 3 additions & 3 deletions src/display.c
Expand Up @@ -1811,7 +1811,7 @@ static void dealWithLMBDroid(DROID* psDroid, SELECTION_TYPE selection)
droidSensorDroidWeapon((BASE_OBJECT *)psDroid, psCurr))
{
bSensorAssigned = true;
orderDroidObj(psCurr, DORDER_FIRESUPPORT, (BASE_OBJECT *)psDroid);
orderDroidObj(psCurr, DORDER_FIRESUPPORT, (BASE_OBJECT *)psDroid, ModeQueue);
FeedbackOrderGiven();
}
}
Expand Down Expand Up @@ -2091,7 +2091,7 @@ static void dealWithLMBFeature(FEATURE* psFeature)
}
else
{
orderDroidStatsLocDir(psCurr, DORDER_BUILD, (BASE_STATS*) &asStructureStats[i], psFeature->pos.x, psFeature->pos.y, player.r.y);
orderDroidStatsLocDir(psCurr, DORDER_BUILD, (BASE_STATS*) &asStructureStats[i], psFeature->pos.x, psFeature->pos.y, player.r.y, ModeQueue);
}
++numTrucks;
}
Expand Down Expand Up @@ -2125,7 +2125,7 @@ static void dealWithLMBFeature(FEATURE* psFeature)
/* If so then find the nearest unit! */
if (psNearestUnit) // bloody well should be!!!
{
orderDroidObj(psNearestUnit, DORDER_RECOVER, (BASE_OBJECT *)psFeature);
orderDroidObj(psNearestUnit, DORDER_RECOVER, (BASE_OBJECT *)psFeature, ModeQueue);
FeedbackOrderGiven();
}
else
Expand Down
2 changes: 1 addition & 1 deletion src/drive.c
Expand Up @@ -461,7 +461,7 @@ static void driveMoveFollower(DROID *psDroid)
// if the droid is currently guarding we need to change the order to a move
if (psDroid->order==DORDER_GUARD)
{
orderDroidLoc(psDroid,DORDER_MOVE, psDrivenDroid->pos.x,psDrivenDroid->pos.y);
orderDroidLoc(psDroid, DORDER_MOVE, psDrivenDroid->pos.x, psDrivenDroid->pos.y, ModeQueue);
}
else
{
Expand Down
6 changes: 3 additions & 3 deletions src/droid.c
Expand Up @@ -672,7 +672,7 @@ void droidBurn(DROID *psDroid)
audio_PlayObjDynamicTrack( psDroid, ID_SOUND_BARB_SCREAM+(rand()%3), NULL );

/* set droid running */
orderDroid( psDroid, DORDER_RUNBURN );
orderDroid(psDroid, DORDER_RUNBURN, ModeImmediate);
}

void _syncDebugDroid(const char *function, DROID *psDroid, char ch)
Expand Down Expand Up @@ -4294,7 +4294,7 @@ DROID * giftSingleDroid(DROID *psD, UDWORD to)
if (bMultiPlayer)
{
// reset order
orderDroid(psD, DORDER_STOP);
orderDroid(psD, DORDER_STOP, ModeQueue);

if (droidRemove(psD, apsDroidLists)) // remove droid from one list
{
Expand Down Expand Up @@ -4363,7 +4363,7 @@ DROID * giftSingleDroid(DROID *psD, UDWORD to)
{
if (psCurr->psTarget == (BASE_OBJECT *)psD || psCurr->psActionTarget[0] == (BASE_OBJECT *)psD)
{
orderDroid(psCurr, DORDER_STOP);
orderDroid(psCurr, DORDER_STOP, ModeQueue);
}
// check through order list
for (i = 0; i < psCurr->listSize; i++)
Expand Down
4 changes: 2 additions & 2 deletions src/e3demo.c
Expand Up @@ -171,7 +171,7 @@ PROPULSION_STATS *psPropStats;
// if(orderState(psDroid,DORDER_ATTACK) == false)
// {
orderDroidLoc(psDroid,DORDER_MOVE,
apsStructLists[otherPlayer]->pos.x, apsStructLists[otherPlayer]->pos.y);
apsStructLists[otherPlayer]->pos.x, apsStructLists[otherPlayer]->pos.y, ModeQueue);
// }

if(!getWarCamStatus())
Expand Down Expand Up @@ -286,7 +286,7 @@ UDWORD i,numWith;
{
/* Make the droid attack the building - it'll indirectly route there too */
orderDroidLoc(psDroid,DORDER_SCOUT,
apsStructLists[otherPlayer]->pos.x, apsStructLists[otherPlayer]->pos.y);
apsStructLists[otherPlayer]->pos.x, apsStructLists[otherPlayer]->pos.y, ModeQueue);
}
}
}
Expand Down
4 changes: 2 additions & 2 deletions src/game.c
Expand Up @@ -3766,7 +3766,7 @@ BOOL saveGame(char *aFileName, GAME_TYPE saveType)
//this is mainly for VTOLs
setSaveDroidBase(psDroid, NULL);
psDroid->cluster = 0;
orderDroid(psDroid, DORDER_STOP);
orderDroid(psDroid, DORDER_STOP, ModeImmediate);
}
}

Expand Down Expand Up @@ -5501,7 +5501,7 @@ static DROID* buildDroidFromSaveDroidV19(SAVE_DROID_V18* psSaveDroid, UDWORD ver
{
ASSERT( false,"loadUnit TargetStat not found" );
psDroid->psTarStats = NULL;
orderDroid(psDroid, DORDER_STOP);
orderDroid(psDroid, DORDER_STOP, ModeImmediate);
}
}
//warning V14 - v17 only
Expand Down
44 changes: 7 additions & 37 deletions src/group.c
Expand Up @@ -323,7 +323,7 @@ void orderGroup(DROID_GROUP *psGroup, DROID_ORDER order)

for (psCurr = psGroup->psList; psCurr; psCurr=psCurr->psGrpNext)
{
orderDroid(psCurr, order);
orderDroid(psCurr, order, ModeQueue);
}
}

Expand All @@ -335,26 +335,11 @@ void orderGroupLoc(DROID_GROUP *psGroup, DROID_ORDER order, UDWORD x, UDWORD y)
ASSERT(grpInitialized, "Group code not initialized yet");
ASSERT_OR_RETURN(, psGroup != NULL,
"orderGroupLoc: invalid droid group" );
ASSERT_OR_RETURN(, validOrderForLoc(order), "SendGroupOrderGroup: Bad order");

if(bMultiMessages)
for (psCurr = psGroup->psList; psCurr != NULL; psCurr = psCurr->psGrpNext)
{
SendGroupOrderGroup(psGroup,order,x,y,NULL);
return; // Wait for our order before changing the droids.
bMultiMessages = false;

for(psCurr=psGroup->psList; psCurr; psCurr = psCurr->psGrpNext)
{
orderDroidLoc(psCurr, order, x,y);
}

bMultiMessages = true;
}
else
{
for(psCurr=psGroup->psList; psCurr; psCurr = psCurr->psGrpNext)
{
orderDroidLoc(psCurr, order, x,y);
}
orderDroidLoc(psCurr, order, x, y, bMultiMessages? ModeQueue : ModeImmediate);
}
}

Expand All @@ -365,26 +350,11 @@ void orderGroupObj(DROID_GROUP *psGroup, DROID_ORDER order, BASE_OBJECT *psObj)

ASSERT_OR_RETURN(, psGroup != NULL,
"orderGroupObj: invalid droid group" );
ASSERT_OR_RETURN(, validOrderForObj(order), "SendGroupOrderGroup: Bad order");

if(bMultiMessages)
{
SendGroupOrderGroup(psGroup,order,0,0,psObj);
return; // Wait for our order before changing the droids.
bMultiMessages = false;

for(psCurr = psGroup->psList; psCurr; psCurr = psCurr->psGrpNext)
{
orderDroidObj(psCurr, order, (BASE_OBJECT *)psObj);
}

bMultiMessages = true;
}
else
for (psCurr = psGroup->psList; psCurr != NULL; psCurr = psCurr->psGrpNext)
{
for(psCurr = psGroup->psList; psCurr; psCurr = psCurr->psGrpNext)
{
orderDroidObj(psCurr, order, (BASE_OBJECT *)psObj);
}
orderDroidObj(psCurr, order, (BASE_OBJECT *)psObj, bMultiMessages? ModeQueue : ModeImmediate);
}
}

Expand Down
8 changes: 4 additions & 4 deletions src/hci.c
Expand Up @@ -2018,7 +2018,7 @@ INT_RETVAL intRunWidgets(void)
&& intNumSelectedDroids(DROID_CYBORG_CONSTRUCT) == 0
&& psObjSelected != NULL)
{
orderDroidStatsTwoLocDir((DROID *)psObjSelected, DORDER_LINEBUILD, psPositionStats, structX, structY, structX2, structY2, player.r.y);
orderDroidStatsTwoLocDir((DROID *)psObjSelected, DORDER_LINEBUILD, psPositionStats, structX, structY, structX2, structY2, player.r.y, ModeQueue);
}
else
{
Expand Down Expand Up @@ -2063,7 +2063,7 @@ INT_RETVAL intRunWidgets(void)
&& intNumSelectedDroids(DROID_CYBORG_CONSTRUCT) == 0
&& psObjSelected != NULL)
{
orderDroidStatsLocDir((DROID *)psObjSelected, DORDER_BUILD, psPositionStats, structX, structY, player.r.y);
orderDroidStatsLocDir((DROID *)psObjSelected, DORDER_BUILD, psPositionStats, structX, structY, player.r.y, ModeQueue);
}
else
{
Expand Down Expand Up @@ -6142,13 +6142,13 @@ static BOOL setConstructionStats(BASE_OBJECT *psObj, BASE_STATS *psStats)
}
else
{
orderDroid(psDroid,DORDER_STOP);
orderDroid(psDroid, DORDER_STOP, ModeQueue);
}
}
else
{
psDroid = (DROID *)psObj;
orderDroid(psDroid,DORDER_STOP);
orderDroid(psDroid, DORDER_STOP, ModeQueue);
}
return true;
}
Expand Down
2 changes: 1 addition & 1 deletion src/keybind.c
Expand Up @@ -2339,7 +2339,7 @@ void kf_SetDroidMoveHold( void )
{
if (psDroid->selected)
{
orderDroid(psDroid, DORDER_TEMP_HOLD);
orderDroid(psDroid, DORDER_TEMP_HOLD, ModeQueue);
}
}
}
Expand Down

0 comments on commit 6f1fbbd

Please sign in to comment.