summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lang/english.txt1
-rw-r--r--order_cmd.c3
-rw-r--r--order_gui.c8
3 files changed, 10 insertions, 2 deletions
diff --git a/lang/english.txt b/lang/english.txt
index 57306926d..faf265d49 100644
--- a/lang/english.txt
+++ b/lang/english.txt
@@ -1086,6 +1086,7 @@ STR_HEADING_FOR_WAYPOINT :{LTBLUE}Heading for {WAYPOINT}
STR_HEADING_FOR_WAYPOINT_VEL :{LTBLUE}Heading for {WAYPOINT}, {VELOCITY}
STR_GO_TO_WAYPOINT :Go via {WAYPOINT}
+STR_GO_NON_STOP_TO_WAYPOINT :Go non-stop via {WAYPOINT}
STR_WAYPOINTNAME_CITY :Waypoint {TOWN}
STR_WAYPOINTNAME_CITY_SERIAL :Waypoint {TOWN} #{COMMA16}
diff --git a/order_cmd.c b/order_cmd.c
index 2ce7da4d6..4627dc679 100644
--- a/order_cmd.c
+++ b/order_cmd.c
@@ -177,7 +177,8 @@ int32 CmdModifyOrder(int x, int y, uint32 flags, uint32 p1, uint32 p2)
sched = &v->schedule_ptr[sel];
if (sched->type != OT_GOTO_STATION &&
- (sched->type != OT_GOTO_DEPOT || (p2 >> 8) == 1))
+ (sched->type != OT_GOTO_DEPOT || (p2 >> 8) == 1) &&
+ (sched->type != OT_GOTO_WAYPOINT || (p2 >> 8) != 2))
return CMD_ERROR;
if (flags & DC_EXEC) {
diff --git a/order_gui.c b/order_gui.c
index 0722215e0..f3bd90a51 100644
--- a/order_gui.c
+++ b/order_gui.c
@@ -72,6 +72,12 @@ static void DrawOrdersWindow(Window *w)
SETBIT(w->disabled_state, 9); /* unload */
SetDParam(2,STR_SERVICE);
break;
+
+ case OT_GOTO_WAYPOINT:
+ SETBIT(w->disabled_state, 8); /* full load */
+ SETBIT(w->disabled_state, 9); /* unload */
+ break;
+
default:
SETBIT(w->disabled_state, 6); /* nonstop */
SETBIT(w->disabled_state, 8); /* full load */
@@ -118,7 +124,7 @@ static void DrawOrdersWindow(Window *w)
SetDParam(1, s);
} else if (ord.type == OT_GOTO_WAYPOINT) {
SetDParam(2, ord.station);
- SetDParam(1, STR_GO_TO_WAYPOINT);
+ SetDParam(1, (ord.flags & OF_NON_STOP) ? STR_GO_NON_STOP_TO_WAYPOINT : STR_GO_TO_WAYPOINT);
}
}
{