progsig: Show target coordinates in signal state conditional.

This commit is contained in:
Jonathan G Rennison
2015-10-03 14:31:51 +01:00
parent 0577d7cbf8
commit 8760187899
2 changed files with 11 additions and 7 deletions

View File

@@ -2420,9 +2420,8 @@ STR_PROGSIG_COND_ALWAYS :always
STR_PROGSIG_COND_NEVER :never STR_PROGSIG_COND_NEVER :never
STR_PROGSIG_COND_COMPARE :{STRING} {STRING} {NUM} STR_PROGSIG_COND_COMPARE :{STRING} {STRING} {NUM}
STR_PROGSIG_COND_SIGNAL_STATE :signal state STR_PROGSIG_COND_SIGNAL_STATE :signal state
STR_PROGSIG_CONDVAR_SIGNAL_STATE :{STRING1} is green STR_PROGSIG_CONDVAR_SIGNAL_STATE_SPECIFIED :signal at {NUM} x {NUM} is green
STR_PROGSIG_CONDVAR_SIGNAL_STATE_SPECIFIED :specified signal STR_PROGSIG_CONDVAR_SIGNAL_STATE_UNSPECIFIED :{RED}unspecified signal{STRING} is green
STR_PROGSIG_CONDVAR_SIGNAL_STATE_UNSPECIFIED :{RED}unspecified signal{STRING}
STR_PROGSIG_CONDVAR_NUM_RED :red signals STR_PROGSIG_CONDVAR_NUM_RED :red signals
STR_PROGSIG_CONDVAR_NUM_GREEN :green signals STR_PROGSIG_CONDVAR_NUM_GREEN :green signals

View File

@@ -137,10 +137,15 @@ static char *GetConditionString(SignalCondition *cond, char *buf, char *buflast,
} else { } else {
string = _program_condvar[cond->ConditionCode()]; string = _program_condvar[cond->ConditionCode()];
if (cond->ConditionCode() == PSC_SIGNAL_STATE) { if (cond->ConditionCode() == PSC_SIGNAL_STATE) {
string = STR_PROGSIG_CONDVAR_SIGNAL_STATE; SignalStateCondition *sig_cond = static_cast<SignalStateCondition*>(cond);
SetDParam(0, static_cast<SignalStateCondition*>(cond)->IsSignalValid() if (sig_cond->IsSignalValid()) {
? STR_PROGSIG_CONDVAR_SIGNAL_STATE_SPECIFIED : STR_PROGSIG_CONDVAR_SIGNAL_STATE_UNSPECIFIED); string = STR_PROGSIG_CONDVAR_SIGNAL_STATE_SPECIFIED;
SetDParam(1, selected ? STR_WHITE : STR_BLACK); SetDParam(0, TileX(sig_cond->sig_tile));
SetDParam(1, TileY(sig_cond->sig_tile));
} else {
string = STR_PROGSIG_CONDVAR_SIGNAL_STATE_UNSPECIFIED;
SetDParam(0, selected ? STR_WHITE : STR_BLACK);
}
} }
} }
return GetString(buf, string, buflast); return GetString(buf, string, buflast);