Opened 13 years ago

Closed 13 years ago

#3062 closed defect (fixed)

KQ4: Crash in introduction

Reported by: SF/jonww Owned by: bluegr
Priority: normal Component: Engine: AGI
Keywords: Cc:
Game: King's Quest 4

Description

ScummVM version: ScummVM 0.10.0svn (Feb 13 2007 00:03:03)

Bug details: Game freezes when ESC key is pressed 3 times
durning introduction.
"event AC:32 occured" is displayed with ESC

AGI engine 0.10svn is ready.
Emulating Sierra AGI v3.002.086
Loading objects: object
Decrypting objects... done.
Reading objects: 45 objects read.
Loading dictionary: words.tok
Running AGI script.
script.size(250)
Game ID: "KQ4"
Priority base set to 73
event AC:32 occured
event AC:32 occured
event AC:32 occured

Language of game: English

Version of game: King's Quest IV: The Perils of Rosella (2.0 1988-07-27 3.5"/DOS/English)

Platform and Compiler: Win32

Ticket imported from: #1660158. Ticket imported from: bugs/3062.

Change History (5)

comment:1 by Kirben, 13 years ago

Component: Engine: AGI
Game: King's Quest 4
Summary: King's Quest 4 crash in introductionKQ4: Crash in introduction

comment:2 by bluegr, 13 years ago

There's also a relevant closed bug in the old sarien project (where the AGI engine is inherited from), which has been closed.

The bug is #417927 - Can't skip KQ4 titles ---> http://sourceforge.net/tracker/index.php?func=detail&aid=417927&group_id=24759&atid=382570

The relevant change in the Sarien code seems to be in cycle.c (ScummVM's agi/cycle.cpp), here:
http://sarien.cvs.sourceforge.net/sarien/sarien/src/core/cycle.c?r1=1.34&r2=1.35

comment:3 by sev-, 13 years ago

With that patch it looks like it simply looks like setvar() should be applied to in default case too. Our code seems to be similar. Weird. Perhaps origin of the bug is deeper. You told that NAGI behaves correctly there, perhaps it would be best to investigate its codepath better?

comment:4 by bluegr, 13 years ago

Owner: set to bluegr
Resolution: fixed
Status: newclosed

comment:5 by bluegr, 13 years ago

It was (yet) another issue with how esc key is handled by handleController. It seems that in the case of KQ4, the special case of key == KEY_ESCAPE has to be checked as well as key == 0.

It should be fixed in the current SVN version now

Note: See TracTickets for help on using tickets.