Opened 7 years ago
Closed 7 years ago
#9801 closed defect (fixed)
SCI: QFG4: Crash when sliding down slippery slope
Reported by: | tsoliman | Owned by: | m-kiewitz |
---|---|---|---|
Priority: | normal | Component: | Engine: SCI |
Version: | Keywords: | sci32 | |
Cc: | Game: | Quest for Glory 4 |
Description
git d9807b0fca self built on MacOS 10.2.5 SDL2
lookupSelector: Attempt to send to non-object or invalid script. Address 0000:0000, method Grooper::doit (room 800, script 64977, localCall ffffffff)!
Call stack (current base: 0x9): 0: script 64994 - Glory::replay() obj@0001:4520 pc=0003:0551 sp=ST:0007 fp=ST:0000 argp:ST:0001 1: script 0 - Glory::doit() by 0 obj@0001:4520 pc=0001:02b3 sp=ST:000d fp=ST:0009 argp:ST:0008 2: script 64994 - Game::doit() by 1 obj@0001:4520 pc=0003:06ab sp=ST:0012 fp=ST:000f argp:ST:000e 3: script 64999 - cast::doit() by 2 obj@0003:14c0 pc=0004:038a sp=ST:0014 fp=ST:0014 argp:ST:0013 4: script 64999 - cast::eachElementDo(0000:0045) by 3 obj@0003:14c0 pc=0004:046e sp=ST:0019 fp=ST:0017 argp:ST:0015 5:[4] kListEachElementDo(001c:0000, 0000:0045) by 4 obj@0000:0000 pc:none argp:ST:0019 6: script 64998 - hero::doit() by 5 obj@0013:1b8e pc=0006:0871 sp=ST:0023 fp=ST:001e argp:ST:001d 7: script 64992 - PolyPath::doit() by 6 obj@0012:0462 pc=0017:04a6 sp=ST:002b fp=ST:0025 argp:ST:0024 8:[7] kDoBresen(0012:0462) by 7 obj@0000:0000 pc:none argp:ST:002b 9: script 64945 - PolyPath::moveDone() by 8 obj@0012:0462 pc=001b:0268 sp=ST:002f fp=ST:002f argp:ST:002e a: script 64945 - PolyPath::init() by 9 obj@0012:0462 pc=001b:0136 sp=ST:005c fp=ST:0033 argp:ST:0032 b: script 64992 - Motion::init() by a obj@0012:0462 pc=0017:0456 sp=ST:0060 fp=ST:005e argp:ST:005d c: script 64998 - hero::setHeading(0000:0101) by b obj@0013:1b8e pc=0006:0f31 sp=ST:0063 fp=ST:0063 argp:ST:0061 d: script 28 - stopGroop::doit(0013:1b8e, 0000:0101, 0000:0000) by c obj@0013:1c2a pc=0013:1b12 sp=ST:0068 fp=ST:0068 argp:ST:0064 e: script 64977 - Grooper::doit(0013:1b8e, 0000:0101, 0000:0000) by d obj@0013:1c2a pc=0015:0143 sp=ST:0072 fp=ST:006d argp:ST:0069
Steps to reproduce:
1 - load game
2 - go west
3 - click walk on the bottom left part of the screen
4 - a dialogue will say something like "this is slippery" - skip it
5 - crash
It doesn't always happen so that's annoying
Attachments (1)
Change History (12)
by , 7 years ago
Attachment: | qfg4-cd-thief.003 added |
---|
comment:3 by , 7 years ago
Grooper::doit is getting the cycler of the client (client is ego, called "hero" in QfG4).
Grooper::doit then tries to call cycler::isKindOf, followed by cycler::vStopped.
cycler is 0:0 at that point, which causes the error.
It seems it's some kind of timing issue. Right now I plan to patch the system script responsible for Grooper::doit and check if cycler is actually set.
comment:4 by , 7 years ago
Keywords: | SCI32 added |
---|
comment:5 by , 7 years ago
Keywords: | sci32 added; SCI32 removed |
---|
comment:6 by , 7 years ago
Summary: | SCI32: QFG4: Crash when sliding down slippery slope → SCI: QFG4: Crash when sliding down slippery slope |
---|
comment:7 by , 7 years ago
Just for reference: This is one of the (many) known timing bugs in QFG4:
http://www.sierrahelp.com/Games/QuestForGlory/QfG4Help.html
comment:8 by , 7 years ago
I hope I finally solved it with commit bd94bbc3e309c8107688640023b95d7601651e05.
Please try it out, it doesn't always happen, which makes it difficult to make sure that it's really solved.
comment:9 by , 7 years ago
Owner: | set to |
---|---|
Resolution: | → fixed |
Status: | new → pending |
comment:11 by , 7 years ago
Status: | pending → closed |
---|
savegame