-
-
Notifications
You must be signed in to change notification settings - Fork 1k
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
SCUMM: Implement Macintosh GUI for the remaining SCUMM games #6326
Conversation
I'm planning on fixing the Fate of Atlantis Mac demo, at least partially. Enough that the About dialog looks ok and doesn't crash. From what I understand, it's not supposed to be interactive, but it is in ScummVM, so it's not a well supported demo anyway. I'll do it in this branch to avoid conflicts. |
09de713
to
1f40deb
Compare
I was bypassing it by going directly to the palette manager.
This doesn't quite work, but I want to save this before trying to fix it, because it could get so much worse...
Also made some functions overridable, one of which should keep the game from crashing on exit.
I don't know why I thought they should have one menu less.
Apparently we need to figure out the appropriate size from the DITL resource, which doesn't contain that information yet ResEdit somehow remembers it? Hmm...
It's getting a bit messy, but I'm just exploring...
I.e. not just when opening them from the menu.
Oddly enough, only Day of the Tentacle (and, by extension, Maniac Mansion) seems to have one?
The shortcut command doesn't work, though.
But the whole palette save/restore thing doesn't work properly here. I guess we need to save the actual palette, not the engine palette.
The engine palette doesn't always properly reflect what's on screen (e.g. during SMUSH movies), so we have to use the real palette.
This isn't really ready for use, but I want to commit because I embark on another experiment.
We have visitors, so I'm not going to turn up the volume to verify that the volume sliders work correctly!
I have added the music and sfx mute menu options for SCUMM6. I don't have FT Mac. But I could imagine that for the "Spooled Music" option you can just do what I did for the SCUMM6 sound menu. I did insert v7 code into syncSoundSettings, but it is untested, since I don't have it. |
Full Throttle and The Dig don't have one, for one thing. At the moment, we just restart without asking. Let's see how annoying that becomes.
With the exception of Maniac Mansion, the Mac version apparently uses 1-9 instead of 0-9 as the text speed interval.
This simplifies support for translated versions of v6-7 games where apparently they sometimes kept the English texts and just added another text on top of it.
That was easy! bringing up the Mac menu pauses the game, and "to resume playing again, choose Resume Game from he Game menu, or simply click the mouse somewhere away from the menubar." Well, we don't do the latter. But doing the former is just a matter of doing... well, nothing.
Primarily for the Mac GUI, where the sound would pause but the movie would keep playing. There's still something awkward about bringing up the Mac GUI during Full Throttle's biker fights, but once they're there they seem to work fine.
I think that the GUI not woking correctly when the game is paused is the only known issue I would consider blocking. My suggestion would be to suppress the GUI while the game is paused by anything else than the GUI itself. |
Perhaps this will fix the remaining Mac GUI SMUSH glitch?
This is similar to the fix we already had for Loom and Last Crusade, except now we also look for the SCUMM engine's own message banners.
I think I've fixed so that the Mac GUI is inactive while there is a pause banner on screen. Actually, I just extended the already existing So, barring any regressions with the older games, or other last minute issues, I've done everything I set out to do here. And then some. Anything else can probably be dealt with in-tree, I think. |
This is consistent with other masking.
This should be in graphics, not engines/scumm/macgui but I'm keeping it here for now to avoid conflict, because there's been some activity in graphics lately.
It's theoretically possible that the node will only have one child, and then the number of leaves will stay the same.
I've backported the pause banner fix to 2.9. It doesn't seem to corrupt the graphics in the older games, but loading a game while paused is still confusing. |
Mostly comments, but I also don't understand why reduceTree() would reduce the height of the entire octree, and not just the subtree it is pruning. So I've changed that, but added a comment to describe what I did there.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nice work! LGTM
// There are several possible approaches to picking the node to | ||
// reduce. Picking the one with the largest number of pixels | ||
// may leave more color for fine details. Picking the one with | ||
// the smallest may will sacrifice detail, but may preserve |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I may be wrong, but does "may will" work here, or is it an oversight?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yeah, that's my error. I'll fix it later. Thanks!
Thanks for your work @eriktorbjorn! This is in a good state to be merged. We've talked with @AndywinXp, and he has no objection to merge this. Merging. Any further work on this can be done in-tree |
This is work in progress, but I don't know how much more time I will have before Christmas.
The goal is to implement the Mac GUI for the remaining V6 and V7 games, and Maniac Mansion. Here is the current status:
About screens have been implemented:
The demos have less fancy dialogs. Currently the sizes of the dialogs (but not the contents) are hard-coded. The demos on our downloads page are broken, but the ones I've been able to track down are at least temporarily available from https://drive.google.com/drive/folders/19quZK2R9A067El36tcG41dZSP0CnHEbv
Options dialogs have been implemented. There are some minor color differences, but the layout should be pixel perfect for all five dialogs. Settings are saved and applied, though this needs testing.
I think all of the menu items have been either implemented or disabled.
Save and load dialogs are there. Thumbnail support is there, too. I used an octree color quantization algorithm adapted from Dr. Dobb's Journal. This is clearly over-engineering, but I figured it could be cleaned up and moved into
Graphics
later.As an extra bonus, I've done some work on the Fate of Atlantis demo.
Known issues, in rough order of seriousness:
Graphics
.