[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