Tracerestrict: Import "Long Reserve" feature.

https://github.com/KeldorKatarn/OpenTTD_PatchPack

Minor code de-duplications.
This commit is contained in:
patch-import
2016-01-14 22:00:30 +00:00
committed by Jonathan G Rennison
parent b5b06351ac
commit 82cab7f31c
6 changed files with 188 additions and 45 deletions

View File

@@ -390,6 +390,14 @@ void TraceRestrictProgram::Execute(const Train* v, const TraceRestrictProgramInp
}
break;
case TRIT_LONG_RESERVE:
if (GetTraceRestrictValue(item)) {
out.flags &= ~TRPRF_LONG_RESERVE;
} else {
out.flags |= TRPRF_LONG_RESERVE;
}
break;
default:
NOT_REACHED();
}
@@ -492,6 +500,10 @@ CommandCost TraceRestrictProgram::Validate(const std::vector<TraceRestrictItem>
actions_used_flags |= TRPAUF_RESERVE_THROUGH;
break;
case TRIT_LONG_RESERVE:
actions_used_flags |= TRPAUF_LONG_RESERVE;
break;
default:
return_cmd_error(STR_TRACE_RESTRICT_ERROR_VALIDATE_UNKNOWN_INSTRUCTION);
}
@@ -544,6 +556,7 @@ void SetTraceRestrictValueDefault(TraceRestrictItem &item, TraceRestrictValueTyp
case TRVT_SPEED:
case TRVT_TILE_INDEX:
case TRVT_RESERVE_THROUGH:
case TRVT_LONG_RESERVE:
SetTraceRestrictValue(item, 0);
SetTraceRestrictAuxField(item, 0);
break;