NEW_ORDERS are now only supported, old code removed.
This commit is contained in:
parent
8b3eb0e3b0
commit
3ca283c0d0
3 changed files with 7 additions and 133 deletions
|
@ -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.
|
||||
*/
|
||||
|
|
|
@ -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
|
||||
}
|
||||
|
||||
//@}
|
||||
|
|
|
@ -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;
|
||||
|
|
Loading…
Add table
Reference in a new issue