diff --git a/src/lang/english.txt b/src/lang/english.txt index 98475ad4e7..14b1ef695e 100644 --- a/src/lang/english.txt +++ b/src/lang/english.txt @@ -2420,9 +2420,8 @@ STR_PROGSIG_COND_ALWAYS :always STR_PROGSIG_COND_NEVER :never STR_PROGSIG_COND_COMPARE :{STRING} {STRING} {NUM} STR_PROGSIG_COND_SIGNAL_STATE :signal state -STR_PROGSIG_CONDVAR_SIGNAL_STATE :{STRING1} is green -STR_PROGSIG_CONDVAR_SIGNAL_STATE_SPECIFIED :specified signal -STR_PROGSIG_CONDVAR_SIGNAL_STATE_UNSPECIFIED :{RED}unspecified signal{STRING} +STR_PROGSIG_CONDVAR_SIGNAL_STATE_SPECIFIED :signal at {NUM} x {NUM} is green +STR_PROGSIG_CONDVAR_SIGNAL_STATE_UNSPECIFIED :{RED}unspecified signal{STRING} is green STR_PROGSIG_CONDVAR_NUM_RED :red signals STR_PROGSIG_CONDVAR_NUM_GREEN :green signals diff --git a/src/programmable_signals_gui.cpp b/src/programmable_signals_gui.cpp index 29cba83c96..90d11f5b69 100644 --- a/src/programmable_signals_gui.cpp +++ b/src/programmable_signals_gui.cpp @@ -137,10 +137,15 @@ static char *GetConditionString(SignalCondition *cond, char *buf, char *buflast, } else { string = _program_condvar[cond->ConditionCode()]; if (cond->ConditionCode() == PSC_SIGNAL_STATE) { - string = STR_PROGSIG_CONDVAR_SIGNAL_STATE; - SetDParam(0, static_cast(cond)->IsSignalValid() - ? STR_PROGSIG_CONDVAR_SIGNAL_STATE_SPECIFIED : STR_PROGSIG_CONDVAR_SIGNAL_STATE_UNSPECIFIED); - SetDParam(1, selected ? STR_WHITE : STR_BLACK); + SignalStateCondition *sig_cond = static_cast(cond); + if (sig_cond->IsSignalValid()) { + string = STR_PROGSIG_CONDVAR_SIGNAL_STATE_SPECIFIED; + 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);