Update all tracerestrict windows when a restricted signal is removed.
This fixes share counts in any open windows sharing the same program not being updated.
This commit is contained in:
@@ -647,8 +647,9 @@ void TraceRestrictCreateProgramMapping(TraceRestrictRefId ref, TraceRestrictProg
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Remove a program mapping
|
* Remove a program mapping
|
||||||
|
* @return true if a mapping was actually removed
|
||||||
*/
|
*/
|
||||||
void TraceRestrictRemoveProgramMapping(TraceRestrictRefId ref)
|
bool TraceRestrictRemoveProgramMapping(TraceRestrictRefId ref)
|
||||||
{
|
{
|
||||||
TraceRestrictMapping::iterator iter = _tracerestrictprogram_mapping.find(ref);
|
TraceRestrictMapping::iterator iter = _tracerestrictprogram_mapping.find(ref);
|
||||||
if (iter != _tracerestrictprogram_mapping.end()) {
|
if (iter != _tracerestrictprogram_mapping.end()) {
|
||||||
@@ -678,6 +679,9 @@ void TraceRestrictRemoveProgramMapping(TraceRestrictRefId ref)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
return true;
|
||||||
|
} else {
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -717,8 +721,9 @@ TraceRestrictProgram *GetTraceRestrictProgram(TraceRestrictRefId ref, bool creat
|
|||||||
void TraceRestrictNotifySignalRemoval(TileIndex tile, Track track)
|
void TraceRestrictNotifySignalRemoval(TileIndex tile, Track track)
|
||||||
{
|
{
|
||||||
TraceRestrictRefId ref = MakeTraceRestrictRefId(tile, track);
|
TraceRestrictRefId ref = MakeTraceRestrictRefId(tile, track);
|
||||||
TraceRestrictRemoveProgramMapping(ref);
|
bool removed = TraceRestrictRemoveProgramMapping(ref);
|
||||||
DeleteWindowById(WC_TRACE_RESTRICT, ref);
|
DeleteWindowById(WC_TRACE_RESTRICT, ref);
|
||||||
|
if (removed) InvalidateWindowClassesData(WC_TRACE_RESTRICT);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@@ -513,7 +513,7 @@ static inline Track GetTraceRestrictRefIdTrack(TraceRestrictRefId ref)
|
|||||||
}
|
}
|
||||||
|
|
||||||
void TraceRestrictCreateProgramMapping(TraceRestrictRefId ref, TraceRestrictProgram *prog);
|
void TraceRestrictCreateProgramMapping(TraceRestrictRefId ref, TraceRestrictProgram *prog);
|
||||||
void TraceRestrictRemoveProgramMapping(TraceRestrictRefId ref);
|
bool TraceRestrictRemoveProgramMapping(TraceRestrictRefId ref);
|
||||||
|
|
||||||
TraceRestrictProgram *GetTraceRestrictProgram(TraceRestrictRefId ref, bool create_new);
|
TraceRestrictProgram *GetTraceRestrictProgram(TraceRestrictRefId ref, bool create_new);
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user