(svn r22243) -Codechange: Make AIDebugWindow::OnInvalidateData() handle command-/GUI-scope itself.

replace/41b28d7194a279bdc17475d4fbe2ea6ec885a466
frosch 13 years ago
parent 51ddbbb13d
commit 0ff4f31723

@ -1057,10 +1057,9 @@ struct AIDebugWindow : public QueryStringBaseWindow {
*/
virtual void OnInvalidateData(int data = 0, bool gui_scope = true)
{
if (!gui_scope) return;
if (data == -1 || ai_debug_company == data) this->SetDirty();
if (data == -2) {
if (gui_scope && data == -2) {
/* The continue button should be disabled when the game is unpaused and
* it was previously paused by the break string ( = a line in the log
* was highlighted )*/
@ -1072,8 +1071,9 @@ struct AIDebugWindow : public QueryStringBaseWindow {
}
}
/* If the log message is related to the active company tab, check the break string */
if (data == ai_debug_company && this->break_check_enabled && !StrEmpty(this->edit_str_buf)) {
/* If the log message is related to the active company tab, check the break string.
* This needs to be done in gameloop-scope, so the AI is suspended immediately. */
if (!gui_scope && data == ai_debug_company && this->break_check_enabled && !StrEmpty(this->edit_str_buf)) {
/* Get the log instance of the active company */
Backup<CompanyByte> cur_company(_current_company, ai_debug_company, FILE_LINE);
AILog::LogData *log = (AILog::LogData *)AIObject::GetLogPointer();

@ -75,7 +75,7 @@
/* Also still print to debug window */
DEBUG(ai, level, "[%d] [%c] %s", (uint)_current_company, logc, log->lines[log->pos]);
InvalidateWindowData(WC_AI_DEBUG, 0, _current_company, true); // breakpoint handling needs calling Invalidate immediately.
InvalidateWindowData(WC_AI_DEBUG, 0, _current_company);
}
/* static */ void AILog::FreeLogPointer()

Loading…
Cancel
Save