Changeset - r8057:4678d48e6121
[Not reviewed]
master
0 3 0
glx - 17 years ago 2007-12-11 17:44:55
glx@openttd.org
(svn r11618) -Fix: buoys are just waypoints, so don't allow load/unload/transfert for them
3 files changed with 20 insertions and 8 deletions:
0 comments (0 inline, 0 general)
src/openttd.cpp
Show inline comments
 
@@ -2254,6 +2254,16 @@ bool AfterLoadGame()
 
		}
 
	}
 

	
 
	/* Update go to buoy orders because they are just waypoints */
 
	if (CheckSavegameVersion(84)) {
 
		Order *order;
 
		FOR_ALL_ORDERS(order) {
 
			if (order->type == OT_GOTO_STATION && GetStation(order->dest)->IsBuoy()) {
 
				order->flags = 0;
 
			}
 
		}
 
	}
 

	
 
	return InitializeWindowsAndCaches();
 
}
 

	
src/order_cmd.cpp
Show inline comments
 
@@ -676,7 +676,7 @@ CommandCost CmdModifyOrder(TileIndex til
 
	if (sel_ord >= v->num_orders) return CMD_ERROR;
 

	
 
	order = GetVehicleOrder(v, sel_ord);
 
	if (order->type != OT_GOTO_STATION &&
 
	if ((order->type != OT_GOTO_STATION  || GetStation(order->dest)->IsBuoy()) &&
 
			(order->type != OT_GOTO_DEPOT    || p2 == OFB_UNLOAD) &&
 
			(order->type != OT_GOTO_WAYPOINT || p2 != OFB_NON_STOP)) {
 
		return CMD_ERROR;
src/order_gui.cpp
Show inline comments
 
@@ -152,7 +152,15 @@ static void DrawOrdersWindow(Window *w)
 

	
 
	if (order != NULL) {
 
		switch (order->type) {
 
			case OT_GOTO_STATION: break;
 
			case OT_GOTO_STATION:
 
				if (!GetStation(order->dest)->IsBuoy()) break;
 
				/* Fall-through */
 

	
 
			case OT_GOTO_WAYPOINT:
 
				w->DisableWidget(ORDER_WIDGET_FULL_LOAD);
 
				w->DisableWidget(ORDER_WIDGET_UNLOAD);
 
				w->DisableWidget(ORDER_WIDGET_TRANSFER);
 
				break;
 

	
 
			case OT_GOTO_DEPOT:
 
				w->DisableWidget(ORDER_WIDGET_TRANSFER);
 
@@ -163,12 +171,6 @@ static void DrawOrdersWindow(Window *w)
 
				SetDParam(2,STR_SERVICE);
 
				break;
 

	
 
			case OT_GOTO_WAYPOINT:
 
				w->DisableWidget(ORDER_WIDGET_FULL_LOAD);
 
				w->DisableWidget(ORDER_WIDGET_UNLOAD);
 
				w->DisableWidget(ORDER_WIDGET_TRANSFER);
 
				break;
 

	
 
			default: // every other orders
 
				w->DisableWidget(ORDER_WIDGET_NON_STOP);
 
				w->DisableWidget(ORDER_WIDGET_FULL_LOAD);
0 comments (0 inline, 0 general)