Opened 6 years ago

Closed 6 years ago

#10846 closed defect (fixed)

QFG4: Reading 5, Card lands on pile and falls through previous card

Reported by: Vhati Owned by: bluegr
Priority: low Component: Engine: SCI
Version: Keywords: SCI32 original has-pull-request
Cc: Game: Quest for Glory 4

Description

ScummVM 2.1.0git4278-gd31e37683c (Dec 13 2018 04:20:25)
Windows 7 64bit
QFG4 CD (English)

The fortune teller's fifth reading deals all its cards to the center pile, periodically fading out to clear the table. Magda talks about each of the rituals.

For the Sense Ritual (beginning with a pseudo-tarot eye card)... Then "The Falling Tower"... "Six of Swords" lands on top then falls through and below the tower.

The original interpreter also does this.

File - 5kb MD5 - Full MD5
RESOURCE.000 - 263dce4aa34c49d3ad29bec889007b1c - 1364ba69e3c0abb68cc0170650a56692
RESOURCE.AUD - c39521bffb1d8b19a57394866184a0ca - 71098b9e97e20c8941c0e4812d5f906f
RESOURCE.MAP - aba367f2102e81782d961b14fbe3d630 - 801a04cc6aa5d437681a2dd0b6545248
RESOURCE.SFX - 3cf95e09dab8b11d675e0537e18b499a - 7c858d7253f86dab4cc6066013c5ecec

Change History (6)

comment:1 by Vhati, 6 years ago

Occurs in the floppy edition under ScummVM, and its original interpreter, too.


QFG4 Floppy 1.1a + note patch (English)

File - 5kb MD5 - Full MD5
RESOURCE.000 - f64fd6aa3977939a86ff30783dd677e1 - ff42260a665995a85aeb277ad80aac8a
RESOURCE.MAP - d10a4cc177d2091d744e2ad8c049b0ae - 3695b1b0a1d15f3d324ea9f0cc325245
RESOURCE.SFX - 3cf95e09dab8b11d675e0537e18b499a - 7c858d7253f86dab4cc6066013c5ecec

comment:2 by Vhati, 6 years ago

Quick and dirty way to skip to reading 5.

  • Create a new character.
  • Set plot flags for having seen previous readings (297, 298, 299, 300).
    • vv g 518 120
  • Teleport into the tarot room.
    • room 475

comment:3 by Vhati, 6 years ago

Each card is created and placed by sSetTheSignificator, with local0 used to pass the desired card view as an argument. The resulting object is stored in local1.


script 475 - sFifthReading::changeState()

(29
	# "The Falling Tower"
	(= loc0_myCardView 1031)
	(g0_hero setScript: sSetTheSignificator)
)
(30
	(g91_gloryMessager say: 1 6 69 0 self)
)
(31
	# "Six of Swords"
	(= loc0_myCardView 1048)
	(g0_hero setScript: sSetTheSignificator)
)
(32
	(loc1_myCard setPri: 1)
	(g91_gloryMessager say: 1 6 68 0 self)
)
(33
	(g0_hero setScript: sFadeIt)
)



script 475 - sSetTheSignificator::changeState()

(0
	(UpdatePlane
		((g2_myCurrentRoom plane?) back: 29 picture: -1 yourself:)
	)
	((= loc1_myCard (aTurnCard new:))
		view: local0
		posn: 148 189
		init:
		moveSpeed: 0
		setPri: 12
		setStep: 30 10
		setScaler: Scaler 100 100 189 0
	)
	(= seconds 2)
)
(1
	(loc1_myCard
		moveSpeed: 0
		setStep: 30 10
		setScaler: Scaler 100 35 189 110
		setMotion: MoveTo 145 110 self
	)
)
(2 (= seconds 1))
(3
	((g2_myCurrentRoom script?) cue:)
	(sSetTheSignificator dispose:)
)

When a card is initially dealt, it has priority 12.

After it lands, setPri() assigns something lower (0,1,2).


"The Falling Tower" is not getting assigned a new priority.
"Six of Swords" is getting assigned priority 1.

Assigning a higher priority to Swords would require making room.
"push1" is one byte. "pushi 13" is two.

So would inserting the missing low priority send to Tower.

However, by dropping the setPri() for "Six of Swords" altogether, they'll both have priority 12. The most recent one will be displayed on top. This is followed by a table-clearing fade, so there will be no other low-priority cards to worry about.

comment:4 by Vhati, 6 years ago

Keywords: has-pull-request added

Pull Request: SCI32: Fix QFG4 tarot readings

comment:5 by Vhati, 6 years ago

Summary: QFG4: Reading 5, Card lands on pile and falls throughQFG4: Reading 5, Card lands on pile and falls through previous card

comment:6 by bluegr, 6 years ago

Owner: set to bluegr
Resolution: fixed
Status: newclosed

Thanks for your work! The pull request has been merged, so this can be closed now

Note: See TracTickets for help on using tickets.