(svn r12633) -Fix: could not make a (go-to) depot order.
authorrubidium
Tue, 08 Apr 2008 22:41:14 +0000
changeset 8866 3b965b2985e7
parent 8865 723529b427d3
child 8867 f6019b3c193b
(svn r12633) -Fix: could not make a (go-to) depot order.
src/order_base.h
src/order_cmd.cpp
--- a/src/order_base.h	Tue Apr 08 21:28:47 2008 +0000
+++ b/src/order_base.h	Tue Apr 08 22:41:14 2008 +0000
@@ -169,7 +169,7 @@
 	/** What caused us going to the depot? */
 	inline OrderDepotTypeFlags GetDepotOrderType() const { return (OrderDepotTypeFlags)this->flags; }
 	/** What are we going to do when in the depot. */
-	inline OrderDepotActionFlags GetDepotActionType() const { return (OrderDepotActionFlags)this->flags; }
+	inline OrderDepotActionFlags GetDepotActionType() const { return (OrderDepotActionFlags)(this->flags & ODATFB_HALT); }
 
 	/** Set how the consist must be loaded. */
 	inline void SetLoadType(OrderLoadFlags load_type) { SB(this->flags, 2, 1, !!load_type); }
--- a/src/order_cmd.cpp	Tue Apr 08 21:28:47 2008 +0000
+++ b/src/order_cmd.cpp	Tue Apr 08 22:41:14 2008 +0000
@@ -43,7 +43,7 @@
 
 OrderNonStopFlags Order::GetNonStopType() const
 {
-	if (_patches.new_nonstop || this->IsType(OT_GOTO_DEPOT)) {
+	if (_patches.new_nonstop) {
 		return (this->flags & 0x08) ? ONSF_NO_STOP_AT_ANY_STATION : ONSF_NO_STOP_AT_INTERMEDIATE_STATIONS;
 	}
 
@@ -316,7 +316,7 @@
 			}
 
 			/* Non stop not allowed for non-trains. */
-			if (new_order.GetNonStopType() != ONSF_STOP_EVERYWHERE && v->type != VEH_TRAIN) return CMD_ERROR;
+			// TODO: implement properly once savegame bump is done. if ((new_order.GetNonStopType() & ONSF_NO_STOP_AT_INTERMEDIATE_STATIONS) != 0 && v->type != VEH_TRAIN) return CMD_ERROR;
 
 			/* Full load and unload are mutual exclusive. */
 			if ((new_order.GetLoadType() & OLFB_FULL_LOAD) && (new_order.GetUnloadType() & OUFB_UNLOAD)) return CMD_ERROR;
@@ -363,7 +363,7 @@
 				}
 			}
 
-			if (new_order.GetNonStopType() != ONSF_STOP_EVERYWHERE && v->type != VEH_TRAIN) return CMD_ERROR;
+			// TODO: implement properly once savegame bump is done. if (new_order.GetNonStopType() != ONSF_STOP_EVERYWHERE && v->type != VEH_TRAIN) return CMD_ERROR;
 			if (new_order.GetDepotOrderType() & ~ODTFB_PART_OF_ORDERS) return CMD_ERROR;
 			if (new_order.GetDepotActionType() & ~ODATFB_HALT) return CMD_ERROR;
 			break;
@@ -381,7 +381,7 @@
 			/* Order flags can be any of the following for waypoints:
 			 * [non-stop]
 			 * non-stop orders (if any) are only valid for trains */
-			if (new_order.GetNonStopType() != ONSF_STOP_EVERYWHERE && v->type != VEH_TRAIN) return CMD_ERROR;
+			// TODO: implement properly once savegame bump is done. if (new_order.GetNonStopType() != ONSF_STOP_EVERYWHERE && v->type != VEH_TRAIN) return CMD_ERROR;
 
 			break;
 		}