aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engines/sci/graphics/ports.cpp5
1 files changed, 3 insertions, 2 deletions
diff --git a/engines/sci/graphics/ports.cpp b/engines/sci/graphics/ports.cpp
index 0a0e49235e..32a9db5ae3 100644
--- a/engines/sci/graphics/ports.cpp
+++ b/engines/sci/graphics/ports.cpp
@@ -446,14 +446,15 @@ void GfxPorts::removeWindow(Window *pWnd, bool reanimate) {
_paint16->kernelGraphRedrawBox(pWnd->restoreRect);
_windowList.remove(pWnd);
setPort(_windowList.back());
- // We will actually free this window after 10 kSetPort-calls
+ // We will actually free this window after 15 kSetPort-calls
// Sierra sci freed the pointer immediately, but pointer to that port
// still worked till the memory got overwritten. Some games depend
// on this (dispose a window and then kSetPort to it again for once)
// Those are actually script bugs, but patching all of those out
// would be quite a hassle and this just keeps compatibility
// (examples: hoyle 4 game menu and sq4cd inventory)
- pWnd->counterTillFree = 10;
+ // sq4cd gum wrapper requires more than 10
+ pWnd->counterTillFree = 15;
_freeCounter++;
}