Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

SCI: Handle recursive view loop references #1610

Merged
merged 1 commit into from
May 1, 2019

Conversation

sluicebox
Copy link
Member

This adds support for view loops that mirror loops that mirror loops, and so on. ScummVM only supports one level of loop referencing. Sierra's interpreter loops through all the mirror references until it finds a "real" loop and then mirrors that. FPFP depends on this this when the cook leaves the town in room 200, otherwise ScummVM doesn't populate these loops and fails an assert, bug #10953.

FPFP View 844's relevant loops:

  • loop 0: the cook walking to the right
  • loop 1: mirror of loop 0
  • loop 3: mirror of loop 1
  • loop 5: mirror of loop 3

The script uses loops 3 and 5. Since they both trace back to loop 0, they are both loops of the cook walking to the left, just like loop 1. SCI Companion displays loops 3 and 5 backwards as it applies mirroring to the previous loop instead of the root. SCI Viewer doesn't display them at all.

@digitall digitall requested review from bluegr and m-kiewitz May 1, 2019 04:11
@bluegr
Copy link
Member

bluegr commented May 1, 2019

Thanks for your work! Merging

@bluegr bluegr merged commit 6790855 into scummvm:master May 1, 2019
@sluicebox sluicebox deleted the sciviewlooplooploop branch June 16, 2019 00:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants