mirror of https://github.com/OpenTTD/OpenTTD.git
(svn r1484) -Fix: [1099197] scrolling through console sometimes crashed the whole game. Also added MarkWholeScreenDirty() to have redrawing of console resize instant (sign_de)
This commit is contained in:
parent
4873c0b1ea
commit
1a450b0b39
12
console.c
12
console.c
|
@ -94,9 +94,6 @@ static void IConsoleClearCommand(void)
|
||||||
|
|
||||||
static void IConsoleWndProc(Window* w, WindowEvent* e)
|
static void IConsoleWndProc(Window* w, WindowEvent* e)
|
||||||
{
|
{
|
||||||
// only do window events with the console
|
|
||||||
w = FindWindowById(WC_CONSOLE, 0);
|
|
||||||
|
|
||||||
switch(e->event) {
|
switch(e->event) {
|
||||||
case WE_PAINT:
|
case WE_PAINT:
|
||||||
{
|
{
|
||||||
|
@ -104,7 +101,7 @@ static void IConsoleWndProc(Window* w, WindowEvent* e)
|
||||||
int max = (w->height / ICON_LINE_HEIGHT) - 1;
|
int max = (w->height / ICON_LINE_HEIGHT) - 1;
|
||||||
int delta = 0;
|
int delta = 0;
|
||||||
GfxFillRect(w->left, w->top, w->width, w->height - 1, 0);
|
GfxFillRect(w->left, w->top, w->width, w->height - 1, 0);
|
||||||
while ((i > _iconsole_scroll - max) && (_iconsole_buffer[i] != NULL)) {
|
while ((i > 0) && (i > _iconsole_scroll - max) && (_iconsole_buffer[i] != NULL)) {
|
||||||
DoDrawString(_iconsole_buffer[i], 5,
|
DoDrawString(_iconsole_buffer[i], 5,
|
||||||
w->height - (_iconsole_scroll + 2 - i) * ICON_LINE_HEIGHT, _iconsole_cbuffer[i]);
|
w->height - (_iconsole_scroll + 2 - i) * ICON_LINE_HEIGHT, _iconsole_cbuffer[i]);
|
||||||
i--;
|
i--;
|
||||||
|
@ -281,6 +278,9 @@ void IConsoleFree(void)
|
||||||
|
|
||||||
void IConsoleResize(void)
|
void IConsoleResize(void)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
_iconsole_win = FindWindowById(WC_CONSOLE, 0);
|
||||||
|
|
||||||
switch (_iconsole_mode) {
|
switch (_iconsole_mode) {
|
||||||
case ICONSOLE_OPENED:
|
case ICONSOLE_OPENED:
|
||||||
_iconsole_win->height = _screen.height / 3;
|
_iconsole_win->height = _screen.height / 3;
|
||||||
|
@ -293,6 +293,8 @@ void IConsoleResize(void)
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
MarkWholeScreenDirty();
|
||||||
}
|
}
|
||||||
|
|
||||||
void IConsoleSwitch(void)
|
void IConsoleSwitch(void)
|
||||||
|
@ -315,6 +317,8 @@ void IConsoleSwitch(void)
|
||||||
_iconsole_mode = ICONSOLE_CLOSED;
|
_iconsole_mode = ICONSOLE_CLOSED;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
MarkWholeScreenDirty();
|
||||||
}
|
}
|
||||||
|
|
||||||
void IConsoleClose(void)
|
void IConsoleClose(void)
|
||||||
|
|
Loading…
Reference in New Issue