Opened 11 years ago

Closed 11 years ago

Last modified 11 years ago

#3866 closed defect (fixed)

FW: Impossible to survive entering monastery (regression)

Reported by: eriktorbjorn Owned by: SF/buddha_
Priority: blocker Component: Engine: Cine
Keywords: script Cc:
Game: Future Wars

Description

Latest 0.12 branch English DOS floppy version

It is no longer possible to survive entering the monastery. As soon as you do, the monks claim that you have "violated the rule".

Buddha^ has tracked down this regression to revision 32257 (Patch #1969189: "CinE renderer rewrite"), but has not yet figured out why it happens. It is, unfortunately, a fairly large commit.

(Note that the savegame does not work with the trunk, only the branch. That should probably also be considered a bug.)

Ticket imported from: #2054882. Ticket imported from: bugs/3866.

Attachments (2)

fw-1.3 (2.2 KB ) - added by eriktorbjorn 11 years ago.
Save game outside monastery
compare.diff (706 bytes ) - added by eriktorbjorn 11 years ago.
Patch against current 0.12 branch

Download all attachments as: .zip

Change History (13)

by eriktorbjorn, 11 years ago

Attachment: fw-1.3 added

Save game outside monastery

comment:1 by eriktorbjorn, 11 years ago

Summary: FW: Impossible to survive enteringthe monastery (regression)FW: Impossible to survive entering monastery (regression)

by eriktorbjorn, 11 years ago

Attachment: compare.diff added

Patch against current 0.12 branch

comment:2 by eriktorbjorn, 11 years ago

Owner: set to SF/buddha_

comment:3 by eriktorbjorn, 11 years ago

I think I see which part of that patch broke Future Wars. I'm attaching a patch to revert that change. I could commit it right away, but perhaps someone has any bright ideas about why it's needed in the first place? There may be a proper fix. File Added: compare.diff

comment:4 by cyxx, 11 years ago

IIRC FW expects globalVar[255] to be equal to 143 if the protection check succeeded at the beginning of the game (this why the original interpreter never save/load this particular var).

minor remark about the patch : what about changing 1 to kCmpEQ ?

comment:5 by sev-, 11 years ago

Priority: normalblocker

comment:6 by sev-, 11 years ago

Yes, this has to be re-added, with comments provided by cyx here.

comment:7 by SF/buddha_, 11 years ago

I'll add it shortly.

comment:8 by SF/buddha_, 11 years ago

Priority: blockernormal

comment:9 by SF/buddha_, 11 years ago

Keywords: script added
Priority: normalblocker
Resolution: fixed
Status: newclosed

comment:10 by SF/buddha_, 11 years ago

Committed the patch with cyx's suggestion added and some comments:

Fixed in branch-0-12-0 in r33951: http://scummvm.svn.sourceforge.net/scummvm/?rev=33951&view=rev

Fixed in trunk in r33950: http://scummvm.svn.sourceforge.net/scummvm/?rev=33950&view=rev

Thanks to eriktorbjorn for spotting what caused this regression from that revision 32257's diff, nice catch!

P.S. And yes, loading the provided savegame doesn't work in the trunk currently but that is a separate bug.

comment:11 by eriktorbjorn, 11 years ago

I've played through the game with 0.12 now. The game tested the variable at numerous points during the game (entering the monastery was just the first). I tried disabling the workaround for a few of them, just to see what would happen. Usually, some crucial event wouldn't happen (e.g. the father superior wouldn't react when you brought him a cup of wine), or the game would hang.

It never compared the variable to anything else than 143, so we could probably set the variable to that and remove the workaround. Though I would suggest only making that change on the trunk, not the 0.12 branch.

Note: See TracTickets for help on using tickets.