On some, apparently "ripped off" versions of the game, where they
removed all videos, we are switching to 16-bit video too early.
This leads to a state when we switched to true color and attempt to set
up a palette which triggers an assert.
Noticed on Android devices. So, switching the screen initalization
around, so we do not request 16-bits mode too early.
This engine automatically saves to slot zero on every room change.
Enabling ScummVM autosave caused the game to be frequently interrupted
with message boxes prompting how to handle the conflict.
The buttons still look nothing like their Windows counterparts, but at
least they blend in a bit better this way. I've tried it with several
different themes, and I thought it looked ok.
This fixes a crash when the Hock-A-Loogie minigame ends, when
buildDrawList3() would previously try to draw every object, even ones
where 'anim' was null which caused it to crash.
I don't know if this fix is exactly what the original did, but it seems
to match the original behavior when I've tried it in Wine. I've tried
both the standalone minigame, and the minigame as it appears in the full
game.
Don't scale the button sizes by the GUI scale factor, because they're
specifically designed to fit the game window. The GUI scale factor still
affects the text size within the buttons, which may or may not be a
feature. I don't know how to change that, and they look nothing like the
original buttons anyway.
The autosave refactoring that was done in
7adad5aaf5 used g_engine for identifying the
autosave slot. This worked for in-game save/load, but doesn't fit when
called from the launcher.
Fix by passing MetaEngine to SaveStateDescriptor ctor and using it for this
query.
Amends 7adad5aaf5.
Some engines call setAutosave and some don't. isAutosave is used to
determine if a saved game is an autosave, but in fact, on most cases it
just falls back to comparing the name to "Autosave".
This is wrong for several reasons:
* Older versions of ScummVM used Autosave 0.
* The name "Autosave" is translated, so if you change the language, it
won't be detected.
Instead of relying on the name, use the well-known getAutosaveSlot() from
Engine/MetaEngine.
Fixes#12735.
This employs a "lazy" approach: the "format" for the credits stays
exactly as it was, i.e., perl code. Of course one may want to change
this to another format (e.g. YAML, JSON, XML; or also shell script or
AWK, like `configure.engine` uses). But I deliberately kept it simple,
to get a minimal change that is easy to verify. Any further changes to
e.g. the format can be layered atop this.
Russian text is in ISO8859-5. When GUI was converted to UTF-32 thos spot
was missed and ended up being interpreted as Latin1. Then iconv rewrite
changed to UTF-8. Change them to UTF-8 and mark as UTF-8 explicitly.
Fix spelling mistake while on it
GF_GUILANGSWITCH and GF_LOOGIE_DEMO have the same value and hence the code
treats Russian version as loogie demo and crashes as bbloogie.000 is in
an unexpected directory for the demo
For each engine:
- Make a new folder detection
- Move detection-related files inside the folder
- Add a new module "enginename/detection"
- Add DETECT_OBJS here
- Adjust the normal engine module to remove detect_objs
- Adjust every file for the new changes.
Up until last commit, everything was working fine but the amount of files changed was too large. This commit tries to reduce the changes.
- Add a fake constructor to Keymap, text-to-speech, setDescription (save-state)
- Redirecting functions for PopUpWidget::appendEntry, ButtonWidget::setLabel, GUIErrorMessage
- Use the above functions and constructors to reduce changes in Engines
- Fix warnings being in unicode. Only output english text in - Warnings, Errors, etc.
- Mark some strings as "translation" strings. (Not yet added to POTFILES)
- Remove some CP related things from po/modules.mk
- Previously used some Common::convertToU32 where it was not necessary, replace this with u32constructor
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 removes filename methods when it matched the Engine method.
Secondly, ensuring there was an overriden getSaveStateName method
for engines that didn't do the standard target.00x save filenames