[Scummvm-tracker] [ScummVM] #10510: SHERLOCK: Scalpel quits when trying to load uncompressed animations
Adrian Frühwirth
trac at scummvm.org
Thu May 3 12:56:42 CEST 2018
#10510: SHERLOCK: Scalpel quits when trying to load uncompressed animations
-------------------------+-------------------------------------------------
Reporter: bonki | Owner: (none)
Type: defect | Status: new
Priority: blocker | Component: Engine: Sherlock
Keywords: | Game: Sherlock Holmes: Case of the
| Serrated Scalpel
-------------------------+-------------------------------------------------
Scalpel is currently unplayable due to the changes in
[https://github.com/scummvm/scummvm/commit/20d5a67f8b71c668ca304b85c1d8b91759922031
commit 20d5a67f8b71c668ca304b85c1d8b91759922031].
== Symptom:
To reproduce start a new game and try leaving the room:
{{{
$ ./scummvm
User picked target 'scalpel' (gameid 'scalpel')...
Looking for a plugin supporting this gameid... Sherlock Engine
Starting 'The Case of the Serrated Scalpel'
Could not load file - 04EXIT2.vgs!
}}}
== Analysis:
{{{ScalpelScene::startCAnim()}}} tries to cache (not solely) uncompressed
animation data with a special offset via {{{Resources::addToCache()}}}
which in turn calls {{{Cache::load()}}} which doesn't actually load
uncompressed resources anymore.
This leads to a cache miss in {{{Resources::load()}}} which then tries to
load the resource itself which fails because it doesn't do the same thing
as {{{startCAnim()}}}.
== Backtrace:
{{{
#0 error (s=0x6e6d8c "Could not load file - %s") at
common/textconsole.cpp:67
#1 0x00000000004ae8f7 in Sherlock::Resources::load (this=0xe0b2d0,
filename=...) at engines/sherlock/resources.cpp:185
#2 0x00000000004994ad in Sherlock::ImageFile::ImageFile (this=0x1f934f0,
name=..., skipPal=false, animImages=false) at
engines/sherlock/image_file.cpp:41
#3 0x00000000004c8bad in Sherlock::Scalpel::ScalpelScene::startCAnim
(this=0x1ef3310, cAnimNum=8, playRate=1) at
engines/sherlock/scalpel/scalpel_scene.cpp:596
#4 0x000000000043098f in Sherlock::UserInterface::checkAction
(this=0x1f18430, action=..., objNum=10,
fixedTextActionId=Sherlock::kFixedTextAction_Open) at
engines/sherlock/user_interface.cpp:175
#5 0x0000000000459a33 in
Sherlock::Scalpel::ScalpelUserInterface::doMiscControl (this=0x1f18430,
allowed=2) at engines/sherlock/scalpel/scalpel_user_interface.cpp:1539
#6 0x000000000045414b in
Sherlock::Scalpel::ScalpelUserInterface::handleInput (this=0x1f18430) at
engines/sherlock/scalpel/scalpel_user_interface.cpp:386
#7 0x0000000000425ec9 in Sherlock::SherlockEngine::handleInput
(this=0x11adba0) at engines/sherlock/sherlock.cpp:202
#8 0x0000000000425d7f in Sherlock::SherlockEngine::sceneLoop
(this=0x11adba0) at engines/sherlock/sherlock.cpp:181
#9 0x0000000000425c47 in Sherlock::SherlockEngine::run (this=0x11adba0)
at engines/sherlock/sherlock.cpp:165
#10 0x000000000040cfa5 in runGame (plugin=0xaded20, system=...,
edebuglevels=...) at base/main.cpp:264
#11 0x000000000040e16f in scummvm_main (argc=1, argv=0x7fffffffe2e8) at
base/main.cpp:530
#12 0x000000000040b132 in main (argc=1, argv=0x7fffffffe2e8) at
backends/platform/sdl/posix/posix-main.cpp:45
}}}
--
Ticket URL: <https://bugs.scummvm.org/ticket/10510>
ScummVM <https://bugs.scummvm.org>
ScummVM
More information about the Scummvm-tracker
mailing list