Maniac Mansion Mania Forum
MMM-International => International Board => Thema gestartet von: CyberTentacle am 05. April 2024, 15:05:12
-
Hi all!
Maybe it's already known, but I'd like to point out that the wiki page related to ScummVM is quite outdated.
Since version 2.8.0 the fonts should match the AGS implementation, so there are no more problems with squashed characters or broken outlines.
Additionally, daily development builds include a fix for the stairs bug in Bernard's house ;D
-
Hi all!
Maybe it's already known, but I'd like to point out that the wiki page related to ScummVM is quite outdated.
Since version 2.8.0 the fonts should match the AGS implementation, so there are no more problems with squashed characters or broken outlines.
Additionally, daily development builds include a fix for the stairs bug in Bernard's house ;D
Wow, that's interesting!
Thank you for your great work ;D
-
Thank you, funnily I just read about the stairs bug in ScummVM earlier this year.
Back then there was the opinion prevailed that it's not a bug. Glad to here hear that changed.
ScummVM rocks!
-
Thank you. I will update the wiki page once I have the time for it.
Out of curiosity, how was the stairs bug fixed?
-
https://github.com/adventuregamestudio/ags/issues/663
-
There was a problem with the walkable area search function which returned wrong coordinates with the default value of 3 pixel granularity. For older game engine versions, the granularity now is pixel perfect within a range of 100 pixels around the target position.
Commit: https://github.com/scummvm/scummvm/commit/c3a0553e25983651f4f823503e9c56ba8bcd3432 (https://github.com/scummvm/scummvm/commit/c3a0553e25983651f4f823503e9c56ba8bcd3432)
if (tempw->GetPixel(tox, toy) != 232) {
// Destination pixel is not walkable
// Try the 100x100 square around the target first at 3-pixel granularity
int tryFirstX = tox - 50, tryToX = tox + 50;
int tryFirstY = toy - 50, tryToY = toy + 50;
// This is a fix for the Treppenbug in old (pre-3.0) Maniac Mansion Mania games.
// Using a higher granularity the find_nearest_walkable_area sets a wrong coordinate that prevents
// the staircase in Bernard's home from working.
int sweep_granularity = _G(loaded_game_file_version) > kGameVersion_272 ? 3 : 1;
if (!find_nearest_walkable_area(tempw, tryFirstX, tryFirstY, tryToX, tryToY, tox, toy, sweep_granularity)) {
// Nothing found, sweep the whole room at 5 pixel granularity
find_nearest_walkable_area(tempw, 0, 0, tempw->GetWidth(), tempw->GetHeight(), tox, toy, 5);
}
-
Not that it matters, but I just noticed that my original posting about the stairs is now nearly 10 years old: https://www.maniac-mansion-mania.de/forum/index.php?topic=2304.0
Finally!
-
I was about to link the commit and add an explanation but you were faster :D
Just a note: the fix is currently in ScummVM but not in the upstream AGS implementation, so if you use the interpreter downloaded from the ags website (or github) you'll still have the bug