From fd7b1d06cd61a23bd893fb403d2fc84503e01962 Mon Sep 17 00:00:00 2001
From: johns <>
Date: Tue, 13 Mar 2001 21:39:34 +0000
Subject: [PATCH] Made patrol working

---
 src/action/action_patrol.cpp | 14 +++++++++-----
 src/action/command.cpp       |  2 +-
 2 files changed, 10 insertions(+), 6 deletions(-)

diff --git a/src/action/action_patrol.cpp b/src/action/action_patrol.cpp
index 6247dd5d0..f1a1b3732 100644
--- a/src/action/action_patrol.cpp
+++ b/src/action/action_patrol.cpp
@@ -57,18 +57,22 @@ global void HandleActionPatrol(Unit* unit)
     if( DoActionMove(unit)<0 ) {	// reached end-point or stop
 
 #ifdef NEW_ORDERS
-	Order order;
+	//Order order;
+	int tmp;
 
 	unit->Orders[0].Action=UnitActionPatrol;
 
 	//
 	//	Swap the points.
 	//
-	order=unit->Orders[0];
-
-	DebugLevel0Fn("FIXME: patrol not written\n");
-
+	//order=unit->Orders[0];
+	tmp=(int)unit->Orders[0].Arg1;
+	unit->Orders[0].Arg1=(void*)((unit->Orders[0].X<<16)|unit->Orders[0].Y);
+	unit->Orders[0].X=tmp>>16;
+	unit->Orders[0].Y=tmp&0xFFFF;
 	ResetPath(unit->Orders[0]);
+
+	NewResetPath(unit);
 #else
 	unit->Command.Action=UnitActionPatrol;
 
diff --git a/src/action/command.cpp b/src/action/command.cpp
index beede81ff..60b6d571f 100644
--- a/src/action/command.cpp
+++ b/src/action/command.cpp
@@ -720,7 +720,7 @@ global void CommandPatrolUnit(Unit* unit,int x,int y,int flush)
 	order->Type=NULL;
 	DebugCheck( unit->X&~0xFFFF || unit->Y&~0xFFFF );
 	// BUG-ALERT: encode source into arg1 as two 16 bit values!
-	order->Arg1=(void*)(unit->X<<16|unit->Y);
+	order->Arg1=(void*)((unit->X<<16)|unit->Y);
     }
 #else
     Command* command;