NEW_ORDERS are now only supported, old code removed.

This commit is contained in:
johns 2001-03-25 21:54:33 +00:00
parent 8b3eb0e3b0
commit 3ca283c0d0
3 changed files with 7 additions and 133 deletions

View file

@ -163,6 +163,8 @@ local void EnterTransporter(Unit* unit)
** The unit boards a transporter.
**
** @todo FIXME: the transporter must drive to the meating point.
** While waiting for the transporter the units must defend
** themselfs.
**
** @param unit Pointer to unit.
*/

View file

@ -70,54 +70,14 @@ local int ActionMoveGeneric(Unit* unit,const Animation* anim)
// FIXME: Reset flag is cleared by HandleUnitAction.
if( !(state=unit->State) ) {
//
// Target killed?
//
#ifdef NEW_ORDERS
#else
Unit* goal;
if( (goal=unit->Command.Data.Move.Goal) ) {
// FIXME: should this be handled here? JOHNS: No see NEW_ORDERS
// FIXME: Can't choose a better target here!
if( goal->Destroyed ) {
DebugLevel0Fn("destroyed unit\n");
unit->Command.Data.Move.DX=goal->X+goal->Type->TileWidth/2;
unit->Command.Data.Move.DY=goal->Y+goal->Type->TileHeight/2;
RefsDebugCheck( !goal->Refs );
if( !--goal->Refs ) {
ReleaseUnit(goal);
}
unit->Command.Data.Move.Goal=NoUnitP;
ResetPath(unit->Command);
} else if( goal->Removed ||
!goal->HP || goal->Command.Action==UnitActionDie ) {
DebugLevel0Fn("killed unit\n");
RefsDebugCheck( !goal->Refs );
--goal->Refs;
RefsDebugCheck( !goal->Refs );
unit->Command.Data.Move.DX=goal->X;
unit->Command.Data.Move.DY=goal->Y;
unit->Command.Data.Move.Goal=NoUnitP;
ResetPath(unit->Command);
}
}
#endif
switch( d=NextPathElement(unit,&xd,&yd) ) {
case PF_UNREACHABLE: // Can't reach, stop
unit->Reset=unit->Wait=1;
unit->Moving=0;
#ifndef NEW_ORDERS
unit->Command.Action=UnitActionStill;
#endif
return d;
case PF_REACHED: // Reached goal, stop
unit->Reset=unit->Wait=1;
unit->Moving=0;
#ifndef NEW_ORDERS
unit->Command.Action=UnitActionStill;
#endif
return d;
case PF_WAIT: // No path, wait
unit->Reset=unit->Wait=1;
@ -254,9 +214,7 @@ global int DoActionMove(Unit* unit)
*/
global void HandleActionMove(Unit* unit)
{
#ifdef NEW_ORDERS
Unit* goal;
#endif
DebugLevel3Fn("%Zd: %Zd %d,%d \n",UnitNumber(unit),
unit->Orders[0].Goal ? UnitNumber(unit->Orders[0].Goal) : -1,
@ -264,7 +222,6 @@ global void HandleActionMove(Unit* unit)
if( !unit->SubAction ) { // first entry
unit->SubAction=1;
#ifdef NEW_ORDERS
NewResetPath(unit);
//
// FIXME: should use a reachable place to reduce pathfinder time.
@ -273,7 +230,6 @@ global void HandleActionMove(Unit* unit)
if( !PlaceReachable(unit,unit->Orders[0].X,unit->Orders[0].Y,1) ) {
DebugLevel0Fn("FIXME: should use other goal.\n");
});
#endif
DebugCheck( unit->State!=0 );
}
@ -283,9 +239,6 @@ global void HandleActionMove(Unit* unit)
// Some tries to reach the goal
//
if( unit->SubAction++<10 ) {
#ifndef NEW_ORDERS
unit->Command.Action=UnitActionMove;
#endif
// To keep the load low, retry delayed.
unit->Wait=FRAMES_PER_SECOND/10+unit->SubAction;
// FIXME: Now the units didn't defend themself :(((((((
@ -294,7 +247,6 @@ global void HandleActionMove(Unit* unit)
// FALL THROUGH
case PF_REACHED:
unit->SubAction=0;
#ifdef NEW_ORDERS
// Release target, if any.
if( (goal=unit->Orders[0].Goal) ) {
RefsDebugCheck( !goal->Refs );
@ -309,16 +261,11 @@ global void HandleActionMove(Unit* unit)
UpdateButtonPanel();
}
return;
#else
if( IsSelected(unit) ) { // update display for new action
UpdateButtonPanel();
}
#endif
default:
break;
}
#ifdef NEW_ORDERS
//
// Target destroyed?
//
@ -333,7 +280,6 @@ global void HandleActionMove(Unit* unit)
}
NewResetPath(unit);
}
#endif
}
//@}

View file

@ -153,9 +153,7 @@ global void HandleActionRepair(Unit* unit)
switch( unit->SubAction ) {
case 0:
#ifdef NEW_ORDERS
NewResetPath(unit);
#endif
unit->SubAction=1;
// FALL THROUGH
//
@ -168,11 +166,7 @@ global void HandleActionRepair(Unit* unit)
//
// No goal: if meeting damaged building repair it.
//
#ifdef NEW_ORDERS
goal=unit->Orders[0].Goal;
#else
goal=unit->Command.Data.Move.Goal;
#endif
//
// Target is dead, choose new one.
@ -181,7 +175,6 @@ global void HandleActionRepair(Unit* unit)
// FIXME: should I do a function for this?
if( goal ) {
if( goal->Destroyed ) {
#ifdef NEW_ORDERS
DebugLevel0Fn("destroyed unit\n");
unit->Orders[0].X=goal->X;
unit->Orders[0].Y=goal->Y;
@ -192,7 +185,6 @@ global void HandleActionRepair(Unit* unit)
// FIXME: should I clear this here?
unit->Orders[0].Goal=goal=NULL;
NewResetPath(unit);
ResetPath(unit->Orders[0]);
} else if( !goal->HP ||
goal->Orders[0].Action==UnitActionDie ) {
unit->Orders[0].X=goal->X;
@ -203,29 +195,6 @@ global void HandleActionRepair(Unit* unit)
RefsDebugCheck( !goal->Refs );
// FIXME: should I clear this here?
NewResetPath(unit);
ResetPath(unit->Orders[0]);
#else
DebugLevel0Fn("destroyed unit\n");
unit->Command.Data.Move.DX=goal->X;
unit->Command.Data.Move.DY=goal->Y;
RefsDebugCheck( !goal->Refs );
if( !--goal->Refs ) {
ReleaseUnit(goal);
}
// FIXME: should I clear this here?
unit->Command.Data.Move.Goal=goal=NULL;
ResetPath(unit->Command);
} else if( !goal->HP ||
goal->Command.Action==UnitActionDie ) {
unit->Command.Data.Move.DX=goal->X;
unit->Command.Data.Move.DY=goal->Y;
RefsDebugCheck( !goal->Refs );
--goal->Refs;
RefsDebugCheck( !goal->Refs );
// FIXME: should I clear this here?
unit->Command.Data.Move.Goal=goal=NULL;
ResetPath(unit->Command);
#endif
}
}
//
@ -236,30 +205,19 @@ global void HandleActionRepair(Unit* unit)
unit->State=0;
unit->SubAction=2;
} else if( err<0 ) {
#ifdef NEW_ORDERS
DebugCheck( unit->Orders[0].Action!=UnitActionStill );
if( goal ) { // release reference
RefsDebugCheck( !goal->Refs );
goal->Refs--;
RefsDebugCheck( !goal->Refs );
unit->Orders[0].Goal=NoUnitP;
}
unit->Orders[0].Action=UnitActionStill;
unit->State=0;
unit->SubAction=0;
return;
}
// FIXME: Should be it already?
unit->Orders[0].Action=UnitActionRepair;
#else
DebugCheck( unit->Command.Action!=UnitActionStill );
if( goal ) { // release reference
RefsDebugCheck( !goal->Refs );
goal->Refs--;
RefsDebugCheck( !goal->Refs );
unit->Command.Data.Move.Goal=NoUnitP;
}
return;
}
unit->Command.Action=UnitActionRepair;
#endif
DebugCheck( unit->Orders[0].Action!=UnitActionRepair );
}
break;
@ -269,11 +227,7 @@ global void HandleActionRepair(Unit* unit)
case 2:
AnimateActionRepair(unit);
if( unit->Reset ) {
#ifdef NEW_ORDERS
goal=unit->Orders[0].Goal;
#else
goal=unit->Command.Data.Move.Goal;
#endif
//
// Target is dead, choose new one.
@ -282,7 +236,6 @@ global void HandleActionRepair(Unit* unit)
// FIXME: should I do a function for this?
if( goal ) {
if( goal->Destroyed ) {
#ifdef NEW_ORDERS
DebugLevel0Fn("destroyed unit\n");
unit->Orders[0].X=goal->X;
unit->Orders[0].Y=goal->Y;
@ -293,7 +246,6 @@ global void HandleActionRepair(Unit* unit)
// FIXME: should I clear this here?
unit->Orders[0].Goal=goal=NULL;
NewResetPath(unit);
ResetPath(unit->Orders[0]);
} else if( !goal->HP
|| goal->Orders[0].Action==UnitActionDie ) {
// FIXME: should I clear this here?
@ -301,26 +253,6 @@ global void HandleActionRepair(Unit* unit)
unit->Orders[0].Y=goal->Y;
unit->Orders[0].Goal=goal=NULL;
NewResetPath(unit);
ResetPath(unit->Orders[0]);
#else
DebugLevel0Fn("destroyed unit\n");
unit->Command.Data.Move.DX=goal->X;
unit->Command.Data.Move.DY=goal->Y;
RefsDebugCheck( !goal->Refs );
if( !--goal->Refs ) {
ReleaseUnit(goal);
}
// FIXME: should I clear this here?
unit->Command.Data.Move.Goal=goal=NULL;
ResetPath(unit->Command);
} else if( !goal->HP
|| goal->Command.Action==UnitActionDie ) {
// FIXME: should I clear this here?
unit->Command.Data.Move.DX=goal->X;
unit->Command.Data.Move.DY=goal->Y;
unit->Command.Data.Move.Goal=goal=NULL;
ResetPath(unit->Command);
#endif
}
}
if( goal ) {
@ -335,15 +267,9 @@ global void HandleActionRepair(Unit* unit)
RefsDebugCheck( !goal->Refs );
goal->Refs--;
RefsDebugCheck( !goal->Refs );
#ifdef NEW_ORDERS
unit->Orders[0].Goal=NULL;
}
unit->Orders[0].Action=UnitActionStill;
#else
unit->Command.Data.Move.Goal=NULL;
}
unit->Command.Action=UnitActionStill;
#endif
unit->SubAction=0;
unit->State=0;
return;