Commit Graph
173 Commits
Author SHA1 Message Date
AndywinXp 85d3c5f5ac SCUMM: COMI: Implement remaining banners for demo 2022-08-06 13:33:56 +02:00
AndywinXp fabaeb4b83 SCUMM: COMI: Implement original GUI 2022-08-06 13:33:56 +02:00
Torbjörn Andersson 682330f8bd SCUMM: Remove adjustment setting from MI1 SE Talkie
The tracks built for the SE Talkie already have little to no silence at
the beginning, and the outlook has its own separate track instead of a
continuation of the first one.

That means the settings are of limited use here, and removing them
simplifies the code.
2022-06-03 21:03:58 +02:00
Torbjörn Andersson 6a040e3ea2 SCUMM: Add adjustment sliders for VGA Loom (CD) and MI1 (CD)
When ripping the audio tracks from CD, you may not get quite what the
game expects, e.g. my copy of Loom has less silence at the start of the
track than the CDDA.SOU file from the Steam version. And the MI1 intro
appears to be timed with the assumption that there is no silence at all
at the start of that track.

This makes it possible to compensate for that without having to edit the
audio file. It may also be of some help with fan soundtrack replacements
for MI1, though I have little experience with that.
2022-06-03 21:03:58 +02:00
Torbjörn Andersson 608a334c22 SCUMM: Make recent Loom workarounds optional
Unfortunately that means I had to add the enhancements checkbox to the
EGA Loom settings widget, because I can't see any way to automatically
combine the static and dynamic settings widget. Oh well.
2022-03-23 16:02:49 +01:00
Torbjörn Andersson 51867690c4 SCUMM: Fix EGA Loom options in RTL mode
There is a special case for adjusting the padding in Widget::draw() that
is applied, among other things, to widgets whose name contains
"GameOptions". We want that special case to apply to the EGA Loom
options as well, so this is simply another renaming.

At some point, it would probably be a good idea for this special case to
go away.
2022-03-09 08:53:14 +01:00
Torbjörn Andersson fe09c9ad4f SCUMM: Rename EGA Loom settings elements
Because if I constantly have to double-check which is which, even though
there are only three of them, I clearly made a mistake when I first
named them.
2022-03-09 08:35:22 +01:00
Torbjörn Andersson 1212930938 SCUMM: Rename EgaLoomOptionsiWidget to LoomEgaOptionsWidget
This is ito be more consistent with LoomTownsDifficultyDialog.
2022-03-08 18:21:04 +01:00
Torbjörn Andersson 52c46f0b03 SCUMM: Adjust slider range for Loom overture timing
After checking a number of different recordings, I've decided that in
order to cover most sensible ones (I'm not going to cater to some
ridiculously slow guitar version!), I really need a range of about 1:40
- 2:50. Apparently the Ozawa version is one of the faster ones.

This is larger than I had hoped for, but you should still have pretty
good control over it at sensible screen resolutions.
2022-03-01 14:53:06 +01:00
Torbjörn Andersson 8eb911d6c3 SCUMM: Minor Loom settings cleanup 2022-02-15 15:35:35 +01:00
Torbjörn Andersson dc4cfa05fe SCUMM: Display Loom Overture Timing value as time, not a magic number
It makes it less obvious what the default was, but I think this is a lot
more user friendly. For some reason, it looks awful in RTL languages,
but I have no idea how to fix that.
2022-02-12 12:02:55 +01:00
Torbjörn Andersson 3899a50503 SCUMM: Fix bugs when initializing default Loom Overture tempo
We now store the difference compared to the default value, rather than
the actual SCUMM ticks. Therefore, the default value for the setting is
0, not DEFAULT_LOOM_OVERTURE_TICKS.
2022-02-08 13:31:39 +01:00
Torbjörn Andersson 871ddc819c SCUMM: Clarify the Loom Overture slider tooltip a bit 2022-02-08 13:31:39 +01:00
Torbjörn Andersson c80adc3e8b SCUMM: Add setting for the Loom Overture tempo on the Engine tab
It's hard to make this appear only on EGA Loom, so the tooltip has to
document the fact that it's only useful there. The setting is made
relative to the default tempo, which I feel is a much more sensible way
of presenting it to the user than the raw ticks value.
2022-02-08 13:31:39 +01:00
Eugene Sandulenko abea37c9bb ALL: Update ScummVM project license to GPLv3+ 2021-12-26 18:48:43 +01:00
Andrea Boscarino f731cfd648 SCUMM: DiMUSE: New Digital iMUSE Engine (#3368)
SCUMM: DiMUSE: Add new implementation of the engine
2021-11-16 00:05:18 +01:00
trembyle c740f96f63 COMMON: Normalize and document language maintenance
* Add documentation to add or maintain language values
* Fix and reorder existing entries to match ISO standards
2021-11-11 12:06:15 +01:00
Orgad Shaneh 2602d0fe8e SCUMM: Fix encoding for Hebrew dialogs
Like Pause dialog.
2021-07-22 00:06:25 +03:00
Orgad Shaneh 3f63b3c42d SCUMM: Minor cleanup 2021-07-17 09:28:55 +03:00
Eugene Sandulenko 5e7fe2dc57 JANITORIAL: Replace spaces in indentation with tabs 2021-04-15 21:20:36 +02:00
Eugene Sandulenko a03b3091d2 SCUMM: Avoid double scaling in Help dialog 2021-04-11 21:21:44 +02:00
Cameron Cawley 438c2d8714 DS: Rewrite event handling 2021-02-04 01:59:14 +01:00
Vladimir Serbinenko 0d521a12b8 SCUMM: Decode resource strings using CP866 for Russian translations 2020-11-23 17:13:15 +01:00
Cameron Cawley c877097b49 ALL: Remove use of "" in Common::U32String constructors 2020-11-16 16:56:58 +00:00
Vladimir Serbinenko 68a9136e4d COMMON: Rewrite Encoder and drop dependency on iconv (#2586)
Different platforms have different levels of support of encodings and
often have slight variations. We already have tables for most encoding
with only CJK missing. Full transcoding inclusion allows us to get reliable
encoding results independently of platform. The biggest con is the need for
external tables encoding.dat.

It removes a duplicate table for korean in graphics/korfont.cpp
2020-11-15 16:20:35 +01:00
athrxx 59c5980d42 SCUMM: (CJK) - change Korean Ansi codepage name
(use iconv name instead of .NET name)
2020-10-30 21:36:27 +01:00
athrxx 5b6ffeaa3d GUI: allow ingame CJK dialogs regardless of the launcher language
This allows a text widget to be expressly marked as Japanese, Korean or Chinese, so that the theme engine may use an appropriate font.
2020-10-30 21:36:23 +01:00
athrxx fb834e55fb SCUMM: (CJK) - proper display of the pause/restart dialogs
This is yet incomplete, since it requires the launcher to be configured in the exact same language as the game (e. g. launcher must be set to Japanese for Japanese FM-Towns games or the pause/restart dialog will be empty). This will be fixed in an extra commit.
2020-10-30 21:36:19 +01:00
aryanrawlani28 86b8c23f78 SCUMM: DIALOGS: Return U32 for queryResString. 2020-08-30 14:43:41 +02:00
aryanrawlani28 840f08d537 GUI: U32: Code cleanup & misc fixes
- Fix a translation for scumm subtitle settings dialogs.
2020-08-30 14:43:41 +02:00
aryanrawlani28 12e4f871a3 GUI: U32: Improve u32 in all engine subsystems
- 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.
2020-08-30 14:43:41 +02:00
aryanrawlani28 4b6976c558 GUI: U32: Reduce number of files changed and fixes
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
2020-08-30 14:43:41 +02:00
aryanrawlani28 bd19eaa5bf GUI: U32: More code improvements in engines and misc fixes
- Xeen's GUIError now takes in U32String
- Scumm's ValueDisplayDialog takes in U32
- Mohawk's InfoDialog & PauseDialog takes in U32
- Mohawk - in riven.cpp, Some assignment fixes
- Backends -in sdl.cpp, Remove incorrect conversion from iso8859 when setting text in clipboard
- Graphics - Add u32 strings instead of decoding each piece in format
2020-08-30 14:43:41 +02:00
aryanrawlani28 185fb72783 GUI: U32: Improve U32 code
- Revert accidentally put translations in mt32.cpp
- Use U32::format in some places earlier missed
- Add %u and %i for u32::format
- Add support for GUIErrorMsgFormat to use u32::format internally
- Use the above whereever needed
- Improve linux tts by removing redundant code
- Some places I had changed nullptr -> "". Revert this
2020-08-30 14:43:41 +02:00
aryanrawlani28 bed05ea134 GUI: U32: Fix compilation errors across entire project
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
2020-08-30 14:43:41 +02:00
Cameron Cawley 2c1065188e SYMBIAN: Deprecate the actions system 2020-08-24 14:19:30 +02:00
aryanrawlani28 dde4200d35 GUI: RTL: Overload and simplify getWidgetData for getting rtl flag 2020-06-22 00:03:02 +02:00
aryanrawlani28 07ab77d065 GUI: RTL: Get internal widget RTL flag from theme 2020-06-22 00:03:02 +02:00
Eugene Sandulenko 6aacdb1938 GUI: Normalize width/height parameters
The fact that ThemeLayout had them int, and GuiObject as uint, was
leading to number of unexpected overflows.
2020-05-09 21:59:07 +02:00
Bastien Bouclet 730a1ee4cc SCUMM: Add override keywords 2020-02-09 12:43:16 +01:00
Bastien Bouclet c0d8b6d9fc GUI: Introduce dynamic layouts
Prior to this change, a GUI layout was only affected by the screen size.
Now, a layout can additionally be influenced by the GUI dialog and widgets
that uses it. This capability is leveraged to implement the following
features:

* Layout elements that are not bound to a GUI widget do not take space.
   This means that dialogs where the widgets shown depend on for example
   a feature being enabled at configure time no longer have blank spaces.
* Widgets can define a minimal required size for their contents not to be
   cut. For now this is only used for buttons so their width is always
   sufficient for their caption not to be cut. This mechanism could be
   applied to other widget types in the future.
2020-01-04 10:56:25 +01:00
Bastien Bouclet 4d0bb753e4 GUI: Remove the ThemeItem draw queues
Drawing nows happens directly when the Dialog or Widget draw methods are
called. This makes it easy to debug why a particular low level draw
method was called, by inspecting the call stack.

This replaces the notion of "buffering" by two independant ways to
control what is drawn and where:
- The active layer is used to select whether the foreground or
  background part of the dialogs are rendered by the draw calls.
- The active surface is used to select if the draw calls affect the back
  buffer or the screen.

The foreground layer of the active dialog is drawn directly to the
screen. Its background layer is drawn to the back buffer. This way
widgets can restore the back buffer in order to update without having to
redraw the dialog's background.

Dialogs lower in the dialog stack are drawn entirely to the back buffer.
2018-03-12 11:46:04 +01:00
Bastien Bouclet 5878c618c9 GUI: Remove Dialog::markAsDirty to expose full GUI redraws 2018-01-27 18:12:34 +01:00
Eugene Sandulenko 0ebe534771 SCUMM: Fix dialog initialization 2016-11-27 14:02:52 +01:00
Ben Castricum 6a2059e13f SCUMM: Use exact strings in stringtable, fixes bug #6886
Similar (fix) to bug #6739
2016-07-01 07:33:36 +02:00
Ori Avtalion 3564032330 JANITORIAL: Reduce audio header dependencies 2016-04-14 16:10:21 +03:00
Ori Avtalion 253e18c440 JANITORIAL: Reduce GUI header dependencies 2016-04-14 13:30:14 +03:00
Eugene Sandulenko 777e6fde39 ALL: Split SMALL_SCREEN_DEVICE into GUI_ENABLE_KEYSDIALOG and GUI_ONLY_FULLSCREEN 2016-04-10 13:02:27 +02:00
Eugene Sandulenko deb7623fbf SCUMM: Add safety check 2015-11-28 00:06:47 +01:00
Ben Castricum df12402a58 SCUMM: Fix bug 6739 - Untranslated dialogs 2014-10-27 16:33:09 +01:00