diff --git a/src/action/action_board.cpp b/src/action/action_board.cpp index 6696b7a53..e343f3bad 100644 --- a/src/action/action_board.cpp +++ b/src/action/action_board.cpp @@ -48,11 +48,8 @@ local int MoveToTransporter(Unit* unit) int i; i=DoActionMove(unit); -#ifdef NEW_ORDERS - unit->Orders[0].Action=UnitActionBoard; -#else - unit->Command.Action=UnitActionBoard; -#endif + // New code has this as default. + DebugCheck( unit->Orders[0].Action!=UnitActionBoard ); return i; } @@ -69,45 +66,33 @@ local int WaitForTransporter(Unit* unit) unit->Wait=6; unit->Reset=1; -#ifdef NEW_ORDERS trans=unit->Orders[0].Goal; -#else - trans=unit->Command.Data.Move.Goal; -#endif - // FIXME: destination destroyed?? + if( !trans || !trans->Type->Transporter ) { - DebugLevel3Fn("TRANSPORTER NOT REACHED %d,%d\n",unit->X,unit->Y); + // FIXME: destination destroyed?? + DebugLevel2Fn("TRANSPORTER NOT REACHED %d,%d\n",unit->X,unit->Y); return 0; } + if( trans->Destroyed ) { - DebugLevel0Fn("Destroyed unit\n"); + DebugLevel0Fn("Destroyed transporter\n"); RefsDebugCheck( !trans->Refs ); if( !--trans->Refs ) { ReleaseUnit(trans); } -#ifdef NEW_ORDERS - unit->Orders[0].Goal=trans=NoUnitP; -#else - unit->Command.Data.Move.Goal=trans=NoUnitP; -#endif + unit->Orders[0].Goal=NoUnitP; return 0; } else if( trans->Removed || -#ifdef NEW_ORDERS !trans->HP || trans->Orders[0].Action==UnitActionDie ) { -#else - !trans->HP || trans->Command.Action==UnitActionDie ) { -#endif + DebugLevel0Fn("Unusable transporter\n"); RefsDebugCheck( !trans->Refs ); --trans->Refs; RefsDebugCheck( !trans->Refs ); -#ifdef NEW_ORDERS - unit->Orders[0].Goal=trans=NoUnitP; -#else - unit->Command.Data.Move.Goal=trans=NoUnitP; -#endif + unit->Orders[0].Goal=NoUnitP; return 0; } + // FIXME: can use pathfinder result? if( MapDistanceToUnit(unit->X,unit->Y,trans)==1 ) { DebugLevel3Fn("Enter transporter\n"); return 1; @@ -129,54 +114,32 @@ local void EnterTransporter(Unit* unit) int i; unit->Wait=1; -#ifdef NEW_ORDERS unit->Orders[0].Action=UnitActionStill; -#else - unit->Command.Action=UnitActionStill; -#endif unit->SubAction=0; -#ifdef NEW_ORDERS transporter=unit->Orders[0].Goal; -#else - transporter=unit->Command.Data.Move.Goal; -#endif if( transporter->Destroyed ) { - DebugLevel0Fn("Destroyed unit\n"); + DebugLevel0Fn("Destroyed transporter\n"); RefsDebugCheck( !transporter->Refs ); if( !--transporter->Refs ) { ReleaseUnit(transporter); } -#ifdef NEW_ORDERS unit->Orders[0].Goal=NoUnitP; -#else - unit->Command.Data.Move.Goal=NoUnitP; -#endif return; } else if( transporter->Removed || -#ifdef NEW_ORDERS !transporter->HP || transporter->Orders[0].Action==UnitActionDie ) { -#else - !transporter->HP || transporter->Command.Action==UnitActionDie ) { -#endif + DebugLevel0Fn("Unuseable transporter\n"); RefsDebugCheck( !transporter->Refs ); --transporter->Refs; RefsDebugCheck( !transporter->Refs ); -#ifdef NEW_ORDERS unit->Orders[0].Goal=NoUnitP; -#else - unit->Command.Data.Move.Goal=NoUnitP; -#endif return; } + RefsDebugCheck( !transporter->Refs ); --transporter->Refs; RefsDebugCheck( !transporter->Refs ); -#ifdef NEW_ORDERS unit->Orders[0].Goal=NoUnitP; -#else - unit->Command.Data.Move.Goal=NoUnitP; -#endif // // Find free slot in transporter. @@ -199,7 +162,7 @@ local void EnterTransporter(Unit* unit) /** ** The unit boards a transporter. ** -** FIXME: the transporter must drive to the meating point. +** @todo FIXME: the transporter must drive to the meating point. ** ** @param unit Pointer to unit. */ @@ -231,9 +194,7 @@ global void HandleActionBoard(Unit* unit) // Move to transporter // case 0: -#ifdef NEW_ORDERS NewResetPath(unit); -#endif unit->SubAction=1; // FALL THROUGH default: @@ -242,7 +203,6 @@ global void HandleActionBoard(Unit* unit) if( (i=MoveToTransporter(unit)) ) { if( i==PF_UNREACHABLE ) { if( ++unit->SubAction==200 ) { -#ifdef NEW_ORDERS unit->Orders[0].Action=UnitActionStill; if( unit->Orders[0].Goal ) { @@ -251,19 +211,9 @@ global void HandleActionBoard(Unit* unit) RefsDebugCheck(!unit->Orders[0].Goal->Refs); unit->Orders[0].Goal=NoUnitP; } -#else - unit->Command.Action=UnitActionStill; - if( unit->Command.Data.Move.Goal ) { - - RefsDebugCheck(!unit->Command.Data.Move.Goal - ->Refs); - --unit->Command.Data.Move.Goal->Refs; - RefsDebugCheck(!unit->Command.Data.Move.Goal - ->Refs); - unit->Command.Data.Move.Goal=NoUnitP; - } -#endif unit->SubAction=0; + } else { + unit->Wait=unit->SubAction; } } else if( i==PF_REACHED ) { unit->SubAction=201;