Opened 6 years ago
Closed 6 years ago
#10510 closed defect (fixed)
SHERLOCK: Scalpel quits when trying to load uncompressed animations
Reported by: | bonki | Owned by: | dreammaster |
---|---|---|---|
Priority: | blocker | Component: | Engine: Sherlock |
Version: | Keywords: | ||
Cc: | Game: | Sherlock Holmes: Case of the Serrated Scalpel |
Description
Scalpel is currently unplayable due to the changes in 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
Change History (2)
comment:1 by , 6 years ago
Owner: | set to |
---|
comment:2 by , 6 years ago
Resolution: | → fixed |
---|---|
Status: | new → closed |
Note:
See TracTickets
for help on using tickets.