Add tunnel/bridge entrance/exit values to entry direction conditional
This commit is contained in:
@@ -3177,6 +3177,7 @@ STR_TRACE_RESTRICT_CONDITIONAL_ORDER_DEPOT :{STRING} {STRIN
|
|||||||
STR_TRACE_RESTRICT_CONDITIONAL_CARGO :{STRING} train {STRING} cargo: {STRING} then
|
STR_TRACE_RESTRICT_CONDITIONAL_CARGO :{STRING} train {STRING} cargo: {STRING} then
|
||||||
STR_TRACE_RESTRICT_CONDITIONAL_ENTRY_DIRECTION :{STRING} train {STRING} entering from {STRING} tile edge then
|
STR_TRACE_RESTRICT_CONDITIONAL_ENTRY_DIRECTION :{STRING} train {STRING} entering from {STRING} tile edge then
|
||||||
STR_TRACE_RESTRICT_CONDITIONAL_ENTRY_SIGNAL_FACE :{STRING} train {STRING} entering from {STRING} of signal then
|
STR_TRACE_RESTRICT_CONDITIONAL_ENTRY_SIGNAL_FACE :{STRING} train {STRING} entering from {STRING} of signal then
|
||||||
|
STR_TRACE_RESTRICT_CONDITIONAL_ENTRY_SIGNAL_TYPE :{STRING} train {STRING} {STRING} then
|
||||||
STR_TRACE_RESTRICT_CONDITIONAL_TILE_INDEX :{STRING} {STRING} {STRING} at {NUM} x {NUM} then
|
STR_TRACE_RESTRICT_CONDITIONAL_TILE_INDEX :{STRING} {STRING} {STRING} at {NUM} x {NUM} then
|
||||||
STR_TRACE_RESTRICT_CONDITIONAL_GROUP :{STRING} train {STRING} in group: {GROUP} then
|
STR_TRACE_RESTRICT_CONDITIONAL_GROUP :{STRING} train {STRING} in group: {GROUP} then
|
||||||
STR_TRACE_RESTRICT_CONDITIONAL_GROUP_STR :{STRING} train {STRING} in group: {STRING} {BLACK}{STRING}then
|
STR_TRACE_RESTRICT_CONDITIONAL_GROUP_STR :{STRING} train {STRING} in group: {STRING} {BLACK}{STRING}then
|
||||||
@@ -3220,6 +3221,8 @@ STR_TRACE_RESTRICT_DIRECTION_NE :north-east
|
|||||||
STR_TRACE_RESTRICT_DIRECTION_SE :south-east
|
STR_TRACE_RESTRICT_DIRECTION_SE :south-east
|
||||||
STR_TRACE_RESTRICT_DIRECTION_SW :south-west
|
STR_TRACE_RESTRICT_DIRECTION_SW :south-west
|
||||||
STR_TRACE_RESTRICT_DIRECTION_NW :north-west
|
STR_TRACE_RESTRICT_DIRECTION_NW :north-west
|
||||||
|
STR_TRACE_RESTRICT_DIRECTION_TUNBRIDGE_ENTRANCE :entering tunnel/bridge
|
||||||
|
STR_TRACE_RESTRICT_DIRECTION_TUNBRIDGE_EXIT :exiting tunnel/bridge
|
||||||
STR_TRACE_RESTRICT_COMPANY :Company
|
STR_TRACE_RESTRICT_COMPANY :Company
|
||||||
STR_TRACE_RESTRICT_UNDEFINED_COMPANY :Undefined company
|
STR_TRACE_RESTRICT_UNDEFINED_COMPANY :Undefined company
|
||||||
STR_TRACE_RESTRICT_SLOT_OP :Slot operation
|
STR_TRACE_RESTRICT_SLOT_OP :Slot operation
|
||||||
|
@@ -328,13 +328,21 @@ void TraceRestrictProgram::Execute(const Train* v, const TraceRestrictProgramInp
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case TRDTSV_FRONT:
|
case TRDTSV_FRONT:
|
||||||
direction_match = IsTileType(input.tile, MP_RAILWAY) && HasSignalOnTrackdir(input.tile, input.trackdir);
|
direction_match = (IsTileType(input.tile, MP_RAILWAY) && HasSignalOnTrackdir(input.tile, input.trackdir)) || IsTileType(input.tile, MP_TUNNELBRIDGE);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case TRDTSV_BACK:
|
case TRDTSV_BACK:
|
||||||
direction_match = IsTileType(input.tile, MP_RAILWAY) && !HasSignalOnTrackdir(input.tile, input.trackdir);
|
direction_match = IsTileType(input.tile, MP_RAILWAY) && !HasSignalOnTrackdir(input.tile, input.trackdir);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case TRDTSV_TUNBRIDGE_ENTER:
|
||||||
|
direction_match = IsTunnelBridgeSignalSimulationEntranceTile(input.tile) && TrackdirEntersTunnelBridge(input.tile, input.trackdir);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case TRDTSV_TUNBRIDGE_EXIT:
|
||||||
|
direction_match = IsTunnelBridgeSignalSimulationExitTile(input.tile) && TrackdirExitsTunnelBridge(input.tile, input.trackdir);
|
||||||
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
NOT_REACHED();
|
NOT_REACHED();
|
||||||
break;
|
break;
|
||||||
|
@@ -194,6 +194,8 @@ enum TraceRestrictDirectionTypeSpecialValue {
|
|||||||
TRNTSV_NW = 3, ///< DIAGDIR_NW: entering at NW tile edge
|
TRNTSV_NW = 3, ///< DIAGDIR_NW: entering at NW tile edge
|
||||||
TRDTSV_FRONT = 4, ///< entering at front face of signal
|
TRDTSV_FRONT = 4, ///< entering at front face of signal
|
||||||
TRDTSV_BACK = 5, ///< entering at rear face of signal
|
TRDTSV_BACK = 5, ///< entering at rear face of signal
|
||||||
|
TRDTSV_TUNBRIDGE_ENTER = 32, ///< signal is a tunnel/bridge entrance
|
||||||
|
TRDTSV_TUNBRIDGE_EXIT = 33, ///< signal is a tunnel/bridge exit
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@@ -263,6 +263,8 @@ static const StringID _direction_value_str[] = {
|
|||||||
STR_TRACE_RESTRICT_DIRECTION_SE,
|
STR_TRACE_RESTRICT_DIRECTION_SE,
|
||||||
STR_TRACE_RESTRICT_DIRECTION_SW,
|
STR_TRACE_RESTRICT_DIRECTION_SW,
|
||||||
STR_TRACE_RESTRICT_DIRECTION_NW,
|
STR_TRACE_RESTRICT_DIRECTION_NW,
|
||||||
|
STR_TRACE_RESTRICT_DIRECTION_TUNBRIDGE_ENTRANCE,
|
||||||
|
STR_TRACE_RESTRICT_DIRECTION_TUNBRIDGE_EXIT,
|
||||||
INVALID_STRING_ID
|
INVALID_STRING_ID
|
||||||
};
|
};
|
||||||
static const uint _direction_value_val[] = {
|
static const uint _direction_value_val[] = {
|
||||||
@@ -272,6 +274,8 @@ static const uint _direction_value_val[] = {
|
|||||||
TRNTSV_SE,
|
TRNTSV_SE,
|
||||||
TRNTSV_SW,
|
TRNTSV_SW,
|
||||||
TRNTSV_NW,
|
TRNTSV_NW,
|
||||||
|
TRDTSV_TUNBRIDGE_ENTER,
|
||||||
|
TRDTSV_TUNBRIDGE_EXIT,
|
||||||
};
|
};
|
||||||
|
|
||||||
/** value drop down list for direction type strings and values */
|
/** value drop down list for direction type strings and values */
|
||||||
@@ -1125,7 +1129,9 @@ static void DrawInstructionString(const TraceRestrictProgram *prog, TraceRestric
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case TRVT_DIRECTION:
|
case TRVT_DIRECTION:
|
||||||
if (GetTraceRestrictValue(item) >= TRDTSV_FRONT) {
|
if (GetTraceRestrictValue(item) >= TRDTSV_TUNBRIDGE_ENTER) {
|
||||||
|
instruction_string = STR_TRACE_RESTRICT_CONDITIONAL_ENTRY_SIGNAL_TYPE;
|
||||||
|
} else if (GetTraceRestrictValue(item) >= TRDTSV_FRONT) {
|
||||||
instruction_string = STR_TRACE_RESTRICT_CONDITIONAL_ENTRY_SIGNAL_FACE;
|
instruction_string = STR_TRACE_RESTRICT_CONDITIONAL_ENTRY_SIGNAL_FACE;
|
||||||
} else {
|
} else {
|
||||||
instruction_string = STR_TRACE_RESTRICT_CONDITIONAL_ENTRY_DIRECTION;
|
instruction_string = STR_TRACE_RESTRICT_CONDITIONAL_ENTRY_DIRECTION;
|
||||||
|
Reference in New Issue
Block a user