Opened 4 years ago
Closed 4 years ago
#12057 closed defect (fixed)
TWINE: Crash near ferry
Reported by: | vvs- | Owned by: | vvs- |
---|---|---|---|
Priority: | normal | Component: | Engine: TwinE |
Version: | Keywords: | ||
Cc: | Game: | Little Big Adventure |
Description
Trying to speak with ferry captain produced a crash.
Attachments (1)
Change History (7)
by , 4 years ago
comment:1 by , 4 years ago
Unfortunately, this is not easily reproducible from the saved game. Though, I was able to crash it again after many attempts. Alas, I don't have ScummVM compiled with debug information. But anyway, here is backtrace:
#5 0x09e76258 in SurfaceSdlGraphicsManager::copyRectToScreen(void const*, int, int, int, int, int) ()
#6 0x0993577b in TwinE::TwinEEngine::copyBlockPhys(int, int, int, int, bool) ()
#7 0x09935825 in TwinE::TwinEEngine::copyBlockPhys(Common::Rect const&, bool) ()
#8 0x09945ebc in TwinE::Redraw::drawBubble(int) ()
#9 0x0995bf20 in TwinE::lMESSAGE(TwinE::TwinEEngine*, TwinE::LifeScriptContext&) ()
#10 0x0995ecf6 in TwinE::ScriptLife::processLifeScript(int) ()
#11 0x09935b86 in TwinE::TwinEEngine::runGameEngine() ()
#12 0x09936901 in TwinE::TwinEEngine::gameEngineLoop() ()
#13 0x09938cd5 in TwinE::TwinEEngine::run() ()
#14 0x080923b7 in runGame(Plugin const*, OSystem&, Common::String const&) ()
#15 0x080940ff in scummvm_main ()
#16 0x08068f77 in main ()
comment:2 by , 4 years ago
It most likely depends on the location of the text bubble on the screen. Is this a release build? I'm asking because there should be an assert to catch a potential error in copyBlockPhys() already. This it looks like this isn't triggered.
It looks suspicious, that we are validating a different rect in Redraw::drawBubble than we sending over to the copyBlockPhys call.
Talking about:
if (_engine->_interface->textWindow.left <= _engine->_interface->textWindow.right && _engine->_interface->textWindow.top <= _engine->_interface->textWindow.bottom) {
_engine->copyBlockPhys(renderRect, true);
}
should maybe be
if (renderRect.left <= renderRect.right && renderRect.top <= renderRect.bottom) {
_engine->copyBlockPhys(renderRect, true);
}
comment:3 by , 4 years ago
Is this a release build?
It's configured with --enable-release
. I could try a debug build instead, but I doubt this would help in this particular case.
comment:4 by , 4 years ago
This should be fixed in 1b4bffe1adec81e31cc368819df02d1eda236651..ba92c33d812cac0e598bb7ca124c9d16ed3ce6d3
comment:5 by , 4 years ago
Owner: | set to |
---|---|
Resolution: | → fixed |
Status: | new → pending |
comment:6 by , 4 years ago
Owner: | changed from | to
---|---|
Status: | pending → closed |
Ok, thanks. Let's hope it's fixed for good.
save game before a crash