Opened 16 years ago

Closed 15 years ago

Last modified 11 years ago

#1345 closed defect (fixed)

MANIAC: Walk infinite loop in bathroom (hack-in-cvs)

Reported by: SF/kruegerh Owned by: sev-
Priority: normal Component: Engine: SCUMM
Keywords: Cc:
Game: Maniac Mansion

Description

ScummVM 0.5.7cvs (Dec 18 2003 08:45:43)

Maniac Mansion (classic version) English Trying to start game 'Maniac Mansion' 7f45ddd6dbfbf8f80c0c0efea4c295bc 00.lfl Classic V1 game detected

The game freezes in bathroom for disabled (third floor), when pulling the shower curtain, regardless whether I use dave or razor... after freezing cpu usage is up to 100%. The party is bernard and razor.

Linux/gcc (GCC) 3.2

Ticket imported from: #862245. Ticket imported from: bugs/1345.

Attachments (1)

maniac64.s02 (3.3 KB ) - added by Kirben 16 years ago.
Save game in room

Download all attachments as: .zip

Change History (19)

by Kirben, 16 years ago

Attachment: maniac64.s02 added

Save game in room

comment:1 by Kirben, 16 years ago

I'm unable to reproduce the problem when using ScummVM cvs under Windows XP. My guess would be a possible sound related issue, that maybe only effects certain operating systems ?

comment:2 by Kirben, 16 years ago

Summary: game freezes in bathroom for disabledMANIAC: Game freezes in bathroom for disabled

comment:3 by SF/kruegerh, 16 years ago

when running scummvm with high debug level, the continuing output (when already freezed) is:

getResourceAddress(Matrix,1) == 0x83c0afc getResourceAddress(Matrix,2) == 0x83c0abc getResourceAddress(Matrix,2) == 0x83c0abc getResourceAddress(Matrix,2) == 0x83c0abc getResourceAddress(Matrix,2) == 0x83c0abc getResourceAddress(Matrix,1) == 0x83c0afc getResourceAddress(Matrix,2) == 0x83c0abc getResourceAddress(Matrix,2) == 0x83c0abc getResourceAddress(Matrix,2) == 0x83c0abc getResourceAddress(Matrix,2) == 0x83c0abc getResourceAddress(Matrix,1) == 0x83c0afc getResourceAddress(Matrix,2) == 0x83c0abc getResourceAddress(Matrix,2) == 0x83c0abc getResourceAddress(Matrix,2) == 0x83c0abc getResourceAddress(Matrix,2) == 0x83c0abc .. .. ..

comment:4 by fingolfin, 16 years ago

Resolution: worksforme

comment:5 by fingolfin, 16 years ago

I can't reproduce the problem either...

You might want to check if your data files are damaged... esp. file 24.LFL (which should be 4343 bytes big and have "a6705590760e9b2ec0115861230fc721" as MD5 checksum).

comment:6 by fingolfin, 16 years ago

Owner: set to fingolfin
Status: newpending

comment:7 by Kirben, 16 years ago

Finally managed to reproduce the problem, usng the save game I attached earlier. Just click on lower white section of the bath

comment:8 by Kirben, 16 years ago

Resolution: worksforme
Status: pendingnew

comment:9 by fingolfin, 16 years ago

Owner: fingolfin removed

comment:10 by fingolfin, 16 years ago

Ah indeed. What happens is that Actor::walkActorOld() gets stuck in an endless loop. Actor walking for V1/V2 games differs somewhat from that of newer games, and we still don't have it quite right :-(

comment:11 by SF/ender, 16 years ago

Summary: MANIAC: Game freezes in bathroom for disabledMANIAC: Walk infinite loop in bathroom (hack-in-cvs)

comment:12 by SF/ender, 16 years ago

Hacked around in CVS with a breakout recursion counter variable.

comment:13 by sev-, 15 years ago

Resolution: fixed
Status: newclosed

comment:14 by sev-, 15 years ago

Removed the hack. This doesn't appear anymore. Though See bugreport #1205445.

comment:15 by fingolfin, 15 years ago

Are you sure it doesn't occur anymore? As I recall, I had to try several times in just the right way to reproduce the issue, but after I had figured out how to do it, I was able to almost always reproduce it.

I can't test from here right now, I am just wondering whether you close it because you know of a change in the code which fixes this (I am not aware of anything in that direction), or whether you tried it, and in the latter case, how hard you tried exactly :-)

comment:16 by sev-, 15 years ago

I believe I clicked every pixel on the bath. There was support for v1 maniac and zak since that and a lot of code has changed. Which change exactly fixed it I am not sure.

Update: just checkd out old version and easily reproduced this bug. Does not occur with current CVS for sure (hack is already removed).

comment:17 by fingolfin, 15 years ago

OK, cool, thanks!

comment:18 by Kirben, 11 years ago

Owner: set to sev-
Note: See TracTickets for help on using tickets.