The end result of these rules is palette adjustments, so there's no
reason to create custom code for each effect. Searching for palette
mods has an O(n) complexity, but the dataset is quite small, so it
should be negligible.
This adds a devtools script to convert scifx config files from FreeSCI
into C++ code to apply the palette mods.
The actual palette mods are by Matt Hargett, and from FreeSCI.
When using original save/load screens, the games list wasn't properl
aligned, if contained Hebrew text. Fixed by calling the BiDi algorithm
in drawListControl.
Adds boundary checks to handle characters with pixels that
are to the left or above the screen. This occurs in the fan
game Soulshade Asylum which draws a large window whose title
is above the screen and not meant to be seen. The window code
clips the rectangles but the text was drawn outside the buffer.
Fixes the existing boundary checks so that the correct pixels
are drawn when there's overlap with the right edge of the screen.
Workarounds for this excellent fan patch were deliberately
excluded because previous versions were distributed with a full
version of the game, but 1.3 is distributed as a true patch set.
Confirmed that this version is now completable.
- Common: add wordWrap function to ustr.cpp
- Bladerunner: Explicitly state we have a U32String in subs (same as Subtitles::loadOuttakeSubsText)
- Don't use translations for engine specific "put strings", because they might not support.
- SCI: Use const references for showScummVMDialog
- SCUMM:
-- Don't use translation in md5 warning. left comments with the translated version.
-- Remove some redundant headers in help.cpp
-- Don't use translation in handleSaveload when printing to console
-- Also, display success transaction correctly via u32::format
- TESTBED: Use fake constructor when setting label of button
- SKY: Correctly use translation when using SaveStateDescription
- ULTIMA: Don't use translations when display_string
- ENGINES:
-- GenerateUnknownGameReport correctly, with proper translations.
-- There was an error, where a function had been declared twice, in a header file. Correct this.
- Where necessary as in, where translated messages are used.
- GUIErrorMessage now takes in U32String
- error messages across some engines use U32Strings. they are changed because they show a message dialog.
After the initial changes just to scummvm/gui for u32, this commit includes the whole project
- Widget creations now always have u32 descriptions, labels, or tooltips
- Message dialogs make use of default arguments instead of providing the same argument explicitly
- encode String::format properly before passing on as argument where necessary
- Modify hugo utils (yesNoBox and notify box) to use u32
- Also provide fake constructors for the above which redirect to the u32 constructor
- Convert all keymap descriptions to u32 across all engines
- showConfirmationDialog in mohawk now uses u32
- showScummVMDialog also uses u32
- Scumm engine has dialogs now which use u32
- General fixes and wrapping convertToU32String for setLabels and related functions
- Add a fake constructor to MesssageDialog which redirects to the u32 constructor
This avoids an issue with MSVC where if (non-SCI) "graphics/font.h" is
included through another include file from the SCI engine root, it finds
"sci/graphics/font.h" first and uses that instead.
Fixes color 0 in QFG1VGA at night. This is the menu bar background.
QFG1VGA uses a soft black (27,27,27) for color 0 during the day and
regular black (0,0,0) at night. Until recently, ScummVM didn't display
the soft black, because it didn't include color 0 when copying pic
palettes to the system palette. Now that color 0 is included, it's
exposed that PalVary has been excluding colors 0 and 255 when
calculating the new palette, preventing QFG1VGA's soft black from
transitioning to regular black at night.
SSCI includes all entries when calculating the new palette.
In SCI 1.1 most palette operations copy entry 0 to the system palette,
such as when drawing a view. This continues an earlier fix which
included entry 0 when drawing a pic and exposed that this needs to
happen in other places too: 3de471de36
Fixes bug #11544 where a KQ6 RAVE resource ended up with the wrong
color in room 380. System palette entry 0 ended up as [7,7,7] when
the RAVE was drawn instead of black, the expected color, causing the
RAVE palette to merge incorrectly. [7,7,7] comes from pic 380's
palette, after which entry 0 should be set to black when drawing
view 5 and copying its palette, which is what now happens.
Fixes two pic transitions which were backwards. The oldTransitionIDs
table masked this bug in several games. These are the transitions that
go to and from the edge of the screen and the center from all sides.
Examples of both transitions:
KQ6 entering oracle room 380
ECO2 restarting from any room
Example with the two-part blackout effect:
KQ4 looking through keyhole in room 51
GfxFontFromResource::getCharData() calculates the size of a character's
bitmap by assuming that it's followed by the next character's bitmap,
but the bitmap order isn't relied upon by Sierra's interpreter or the
major resource viewers. Several Polish games have fonts whose bitmaps
appear in arbitrary orders and also have extra bytes between them.
Fixed by calculating bitmap size by dimensions, which is what the
drawing code uses anyway.
Fixes Polish versions of KQ5, LSL1VGA, LSL5, and LSL6. Bug #10509