Commit graph

3314 commits

Author SHA1 Message Date
Christoph Oelckers
cda248df66 - localized some user-facing texts that were still string literals. 2019-03-19 00:37:43 +01:00
Christoph Oelckers
8f93dcc884 - fixed the option menu indentation.
This was yet another piece of code that essentially was unworkable thanks to the limited screen space with the old bitmap fonts.
With the new font there is enough screen space to do this properly.
2019-03-18 10:54:26 +01:00
Christoph Oelckers
86f9824c2a - updated the text data to the content of the Google spreadsheet. 2019-03-18 10:18:31 +01:00
Christoph Oelckers
54f5076b0f - fixed option menu selector and slider bar positioning. 2019-03-17 22:00:28 +01:00
Christoph Oelckers
13f3bf2331 - add an option to print the kill, item and secret stats on the alternative HUD with the NewSmallFont.
This has to be set in the console, the default is still the regular small font. Mainly added because some mods have really hard to read fonts where it is not easy to decipher the numbers.
2019-03-17 21:35:33 +01:00
Christoph Oelckers
b839da45ec - Found two more unlocalized texts in the color picker. Due to space constraints a proper localization is not possible so these were replaced by a non-text. 2019-03-17 20:56:49 +01:00
Alexander
dbb93d6c08 option search improvements
1. Top-level menu names are now properly handled.
2. Changing "Any or All terms" option now immediately updates the results.
3. Reformatted menu.zs to have tabs instead of spaces.
2019-03-17 20:28:38 +01:00
Christoph Oelckers
b515ac662e - cleaned up the coop summary screen.
This was one of the pieces that suffered badly from the proportions of the game provided SmallFonts, so now it uses the NewSmallFont.
2019-03-17 20:28:12 +01:00
Christoph Oelckers
478eef5628 - fixed positioning of "no files" message on load game screen. 2019-03-17 19:10:25 +01:00
Christoph Oelckers
95adbc58a8 - fixed the spacing for the sliders.
- moved the scroll indicators in the menu to the right and use a brighter color for them - the old ones were only barely visible.
2019-03-17 18:32:55 +01:00
Christoph Oelckers
1beaa8da58 - deleted obsolete and broken font characters. 2019-03-17 18:32:49 +01:00
Christoph Oelckers
a6051c8231 - moved the flag display in the gameplay and compatibility menus down below the headline. 2019-03-17 18:32:48 +01:00
Christoph Oelckers
59f0a377d4 - consolidate the dependencies on the font in the option menu. 2019-03-17 18:32:48 +01:00
Christoph Oelckers
2227c15010 - create a second font based on the VGA glyphs that is stylistically more similar to the SmallFont and use that for the option menus. 2019-03-17 18:32:48 +01:00
Christoph Oelckers
2e260c6367 - use the new console font for the options menu to gain space and better character support.
So far this is just an experiment, this needs a bit of work to become viable.
2019-03-17 18:32:47 +01:00
Christoph Oelckers
0ff703c361 - fixed: Doom's episode names were not translatable. 2019-03-17 10:11:02 +01:00
Christoph Oelckers
ba13a540e4 - changed default graphics substitution rules to be more localization friendly.
The default was changed to replace graphics if only known content is affected.
This also required blocking the feature for Hacx, Harmony and Action Doom 2 which have no localization yet and would fall back on Doom's texts if not blocked.
2019-03-17 09:27:40 +01:00
Alexander
aa9c484b3b automap options readability changes 2019-03-16 20:01:26 +01:00
Christoph Oelckers
9b76c47dbe - added some placeholder strings to language.def.
This is in preparation for the spreadsheet based text handling.
2019-03-16 18:56:20 +01:00
Alexander
73d81d3983 added option search menu 2019-03-16 18:40:13 +01:00
Christoph Oelckers
04281d4a0b - fixed positoning issues in the load/save menu. 2019-03-15 20:22:40 +01:00
Rachael Alexanderson
fd4295b38c - add some /0 guards in the load/save menu to prevent VM aborts 2019-03-11 20:19:40 -04:00
Christoph Oelckers
c0d333ee56 - adjusted the script-side MidPrint calls to honor the con_midconsolefont CVAR. 2019-03-11 22:44:28 +01:00
Christoph Oelckers
8b4690bc44 - use international date format for all places that print a date.
The most important one is the autosave tagging. This was done because the old printout was missing the year and printed the month as a 3 character English string, sabotaging any attempt to sort the autosaves by anything meaningful.
2019-03-11 21:21:37 +01:00
Christoph Oelckers
22cf35c1c7 - reworked the load/save menu to use the new console font.
Parts of this menu suffered badly from lack of screen space to convey the intended information due to the oversized fonts. With the new font this is a lot less problematic (unless using 320x200, of course)
2019-03-11 20:59:43 +01:00
Christoph Oelckers
0884057ae1 - use a higher resolution console font with better Unicode support. 2019-03-10 17:54:03 +01:00
Christoph Oelckers
5a891f3b0a - fixed color of status screen text. 2019-03-09 17:50:23 +01:00
Christoph Oelckers
392ba7ed2e - properly construct the reply texts for Strife's merchants. 2019-03-09 13:34:47 +01:00
Christoph Oelckers
99c8ba1288 - use uAddColor instead of uObjectColor2 for the ending color of a special colormap range.
Unlike uObjectColor2, this is more global state. uObjectColor2 is part of gradient calculation which may later be offloaded to a secondary buffer which already resulted in only conditionally setting it, resulting in broken special colormap application for the software renderer.
2019-03-09 12:12:33 +01:00
Sterling Parker
cabe0c583e Add LookScale property
As requested by @coelckers.
2019-03-07 21:22:33 +01:00
Sterling Parker
ae1a1df02d Add LookScale variable on weapon
This variable allows a weapon to set a custom look sensitivity multiplier without fiddling with FOVScale / DesiredFOV hacks.
2019-03-07 21:22:33 +01:00
Alexander
77cb9ae866 added MakeScreenShot and MakeAutoSave functions to FLevelLocals 2019-03-04 19:16:51 +01:00
Major Cooke
6327734659 Added CanTouchItem virtual.
- Allows an actor with +PICKUP flag to determine if it can pick up specific items or not.
2019-03-04 13:15:27 +01:00
Christoph Oelckers
43ec2cf8f2 . added the missing Cyrillic letters to the console font. 2019-03-03 20:09:25 +01:00
Nemrtvi
864b99a5a0 Split “Linear” option value into three
This option value is used for 4 different options, and splitting it up into three will allow for languages based on grammatical gender systems to have different endings. Necessary for e.g. Russian in order to sound correctly.

The corresponding strings are already in the language spreadsheet.
2019-03-03 16:12:46 +01:00
Christoph Oelckers
735e1d1a44 - allow localization of the fallback string "Person".
The corresponding text is in the translation spreadsheet which isn't part of the repo yet.
2019-03-03 09:16:21 +01:00
Christoph Oelckers
f15e3c871d - did a bit more tweaking to the menu dims.
Red on red in Doom was still not good, so the colors were darkened more and made more opaque.
2019-03-03 09:08:19 +01:00
Christoph Oelckers
af3b100b81 - split up the compatibility menu by making each subsection its own submenu.
This one, even more than the gameplay options has devolved into an overwhelming wall of text.
2019-03-03 08:58:49 +01:00
Christoph Oelckers
be0f2f3b74 - split up the automap colors menu.
The cheat and overlay settings are now in submenus. Like the gameplay menu, this was simply too long.
2019-03-03 08:47:05 +01:00
Christoph Oelckers
83fce134f2 - split out the deathmatch and coop gameplay settings into their own submenus. 2019-03-03 08:41:20 +01:00
Christoph Oelckers
cac032cb1c - made the menu dim darker and a bit more opaque.
The recent localization work has made it apparent that on many images the menu was extremely hard to read because its colors often clash with the background.
The choice of a bright overlay color with extremely low opacity is simply not enough to make the menus comfortable to navigate. Chex Quest was particularly bad but the problem existed in many Doom mods as well.
This also changes the CQ dim color to something a bit more green to better fit with the theme.
2019-03-03 08:29:10 +01:00
Christoph Oelckers
1c828b98c2 - fixed incorrect flag keyword in IWADINFO. 2019-03-03 08:16:41 +01:00
Christoph Oelckers
f3813c036f - filter out the BIGFONT lump in Chex Quest, now that we have a more complete font internally. 2019-03-03 07:50:10 +01:00
Christoph Oelckers
3903d957bd - moved the weapon bobbing options from the Display Options to the HUD Options menu. 2019-03-03 00:03:22 +01:00
Rachael Alexanderson
580c55f8a5 - moved language changer to miscellaneous menu
- removed spacing gaps in the customize controls menu
2019-03-02 13:59:42 -05:00
Christoph Oelckers
5682b1b5bb -corrected text placement on load+save menu. 2019-03-02 16:03:56 +01:00
Christoph Oelckers
0febe20a08 - fixed: Unmorphing a monster did not clear its UNMORPHED flag. 2019-03-02 13:15:38 +01:00
Christoph Oelckers
805cf6c098 - moved the sprite box on the player menu up a bit because this was badly overlapping with some long texts in most languages. 2019-03-02 12:20:58 +01:00
Christoph Oelckers
cad2f49ceb - use BigUpper font for option menu captions. 2019-02-28 22:19:53 +01:00
Major Cooke
b48f7da43e Renamed to musplaying. 2019-02-28 18:47:28 +01:00
Major Cooke
210af0d414 Exported MusPlayingInfo to ZScript.
- Allows grabbing the currently playing song, base order, and loop properties.
2019-02-28 18:47:28 +01:00
Rachael Alexanderson
612f198fcf - separate/group out the volume sliders, make them look slightly hierarchal in order to denote their importance 2019-02-27 14:56:12 -05:00
nashmuhandes
407983749a Added a master volume setting. 2019-02-27 14:17:45 -05:00
Rachael Alexanderson
baf5ebd1ce - fixed: menu language selection would not save on exit (this was due to CVAR protections from the menu)
- moved language entry up a bit in the menu
- converted the language entry into a proper CVAR string list selection, instead of a separate menu with said list.
2019-02-27 14:07:49 -05:00
Rachael Alexanderson
e719b9cf00 - merge the options menu properly - the language entry was separated in its own section 2019-02-26 13:39:42 -05:00
Christoph Oelckers
e8f690116b - removed unused gl_spritebrightfog CVAR. 2019-02-26 00:07:30 +01:00
Christoph Oelckers
b542d1371d - reorganized the ZScript content in gzdoom.pk3 and changed the files' extensions to something unique for easier syntax highlighting. 2019-02-23 12:08:27 +01:00
Christoph Oelckers
2874a36fbe - added the final missing piece of localization support, i.e. forcing text based menus.
Now a localization mod can disable the graphics patches containing text entirely so that it can properly localize the text based menu variant.
If this flag gets set in MAPINFO, it will override all user settings.
2019-02-23 10:40:07 +01:00
Nemrtvi
7060f9cc05 Add language menu to Options
In this menu, all languages supported by GZDoom are selectable with one simple click! Credits to @PROPHESSOR for making it!

(This only edits the English and French languages because they are the only languages currently up to date with GZDoom’s development. A Russian translation will follow suit at a later date.)
2019-02-21 17:54:13 +01:00
Christoph Oelckers
48fcdacf06 - more work on graphics substitutiion
* added a CVAR that sets how localizable graphics need to be dealt with.
* pass the substitution string to OkForLocalization so that proper checks can be performed.
* increased item spacing on Doom's list menus to 18 from 16 pixels, because otherwise the diacritic letters would not fit. 20 would have been more ideal but 18 was the limit without compromising its visual style
* added a second text-only main menu because here the spacing cannot be changed. Doing so would render any single-patch main menu non-functional. So here the rules are that if substitution takes place, it will swap out the entire menu class.
* fixed some issues with the summary screen's "entering" and "finished" graphics.
2019-02-21 00:35:27 +01:00
Christoph Oelckers
a0c10df387 - made some adjustments so that the BigFont works as intended.
The auto-calculated height of 24 is too tall, this requires a manual setting here. Also fix the space calculations for the "finished" graphic.
2019-02-21 01:13:42 +01:00
Christoph Oelckers
22781e3cb9 - BigFont update. 2019-02-21 00:43:58 +01:00
Christoph Oelckers
f580d85da6 - fixed typo in menu texts. 2019-02-21 00:24:09 +01:00
Christoph Oelckers
7ea2f135df - did not save the latest changes. 2019-02-21 00:23:49 +01:00
Christoph Oelckers
8bdbd2e915 - fixed layout of summary screen. 2019-02-21 00:16:48 +01:00
Christoph Oelckers
6a742f8d34 - changed all places which used a localized string as a format template for printf, String.Format et.al.
Passing something non-constant at compile time here is extremely dangerous, especially when users can replace those strings if they like.
It now uses FString::Substitute in all cases where something needs to be inserted into a template string.
2019-02-20 20:20:06 +01:00
Christoph Oelckers
74f5211046 - fixed accidental commit of incomplete test code. 2019-02-20 18:54:29 +01:00
Christoph Oelckers
a6a091c83a - reworked summary screen to use consistent contents, either all patches or all text but not mixed 2019-02-20 00:44:17 +01:00
Christoph Oelckers
9f59a84a37 - allow text substitution for StaticPatch items in ListMenus 2019-02-20 00:43:31 +01:00
Christoph Oelckers
5e288ef2d4 - fixed: Doom used Chex Quest's default settings for menu fonts. 2019-02-20 00:01:20 +01:00
Christoph Oelckers
c13e496107 - a bit of text cleanuo. Removed some unused strings and moved a few not-to-be-translated ones to language.def. 2019-02-19 23:18:46 +01:00
Christoph Oelckers
6b8303ed05 - moved the lump/resource names in the string table to their own file and removed them from other language files.
These are neither supposed to be translated nor overridden by other language tables.
Doing so may break later Dehacked refactorings.
2019-02-19 21:47:54 +01:00
Christoph Oelckers
5e7fb16d05 - preparation work for substituting the menu and intermission screen text graphics for localization 2019-02-19 01:22:12 +01:00
Christoph Oelckers
91206f12be - changed zstrformat to allow %c to emit non-ASCII characters as UTF-8. 2019-02-19 00:27:47 +01:00
Christoph Oelckers
b29975503d - fixed issues with text entering
* entering a savegame description did not work anymore
* the length check was too restrictive and always underestimated the available space
* use the console font for entering a savegame description. This has more characters and better contrast for this content.
* the interface to the text enterer used bad measurements.
2019-02-19 00:08:23 +01:00
Christoph Oelckers
aa550310f6 - allow the language table to supersede the title patches, if appropriate
For the Doom IWADs the provided font looks almost identical to the characters used on the title patches. So, for any level name that got replaced in some language, it will now check if the retrieved name comes from the default table, and if not, ignore the title patch and print the name with the specified font.

This also required removing the 'en' label from the default table,  because with this present, the text would always be picked from 'en' instead of 'default'. Since 'en' and 'default' had the same contents, in any English locale the 'default' table was never hit, so this won't make any difference for the texts being chosen.

Last but not least, wminfo has been made a local variable in G_DoCompleted. There were two places where this was accessed from outside the summary screen or its setup code, and both were incorrect.
2019-02-15 00:29:24 +01:00
Christoph Oelckers
3dce45545f - added U-100-U-17f to the console font.
This was mostly just accent edits of existing characters, so this also contains the less important characters.
2019-02-17 21:01:29 +01:00
Christoph Oelckers
45d75745f0 - reworked console font loading to use the glyph sheets directly and allowing to load more than one per font. 2019-02-17 19:15:57 +01:00
Christoph Oelckers
d39a624942 - fixed the player name display.
This was broken by several small unicode-incompatible code fragments.
This commit also removes the input limit for the player name and the savegame description. With multibyte encoding, limiting them to a fixed length did not work right.
Currently these will just overflow the fields if the text becomes too long, this needs some additional work.
2019-02-16 22:57:02 +01:00
Christoph Oelckers
deb233677e - made the menu's text input handler Unicode capable.
Also make sure that the savegame description remains readable. Unlike in-game text this can be done without double-encoding existing UTF-8.
2019-02-16 21:29:46 +01:00
Christoph Oelckers
d15e3391a0 Merge remote-tracking branch 'remotes/origin/master' into localization
# Conflicts:
#	src/v_font.cpp
2019-02-16 17:35:15 +01:00
Rachael Alexanderson
c7103cbe4d - autoload nerve.wad with Doom 2 2019-02-16 17:23:43 +01:00
Alexander
cce270ba72 moved controls to submenus in "Customize Controls" menu
What is done:
D1. Controls are separated by existing sections, each section is now a submenu;
D2. The original sections are preserved;
D3. The original controls order is preserved;
D4. "Controls" section is renamed to "Game", because "Controls" submenu of "Customize Controls" would be too confusing;
D5. Map (automap) controls are added as a section, map controls submenu is unchanged;
D6. Missing controls are added to "Other" section;
D7. Sections are given a title following the scheme "Customize <section> Controls", except N4 (see below).
D8. Inside the sections, spaces are added to group the related controls.

Things that I'm not sure about:
N1. "Game" controls section name is too generic - I'll gladly change it to something more suitable;
N2. "Other" controls section name is too generic - I'll gladly change it to something more suitable;
N3. Map controls submenu could use some spacing, and internal title ("Map Controls") is redundant;
N4. "Strife Popup Screens" section name is too long to fit in scheme described in D7, therefore the title is "Strife Popup Screens Controls";
N5. "Game" section could be divided further, but this will break the original menu structure.
2019-02-16 17:21:55 +01:00
Rachael Alexanderson
9f62289507 Merge branch 'master' of https://github.com/coelckers/gzdoom into localization 2019-02-16 10:50:49 -05:00
Ne Mrtvi
0356c2fc67 New BIGFONT, uppercase and lowercase
Now that GZDoom supports uppercase and lowercase characters in the BIGFONT format, this commit actually adds those characters. It contains full support for both the English and Russian (minus the letter Ё) alphabets for both Doom and Strife. As for the existing punctuation graphic lumps in Strife, all extra space is removed, and the sprite offsets are adjusted instead.

This also adjusts the English language file so that all menu header texts utilize these new characters. As a tiny extra, it also adds the letter Ё to the Strife smallfont.

(Credits to Skulltag for the uppercase B, Amuscaria for the uppercase X and Z, and @jnechaevsky for all Russian characters, taken from Russian Doom!)
2019-02-15 19:00:19 +01:00
Christoph Oelckers
6e9b62a43e Merge branch 'master' into localization 2019-02-14 22:24:12 +01:00
Christoph Oelckers
868ac5adf8 - switched the Windows backend to use the Windows Unicode API.
With localization for non-Latin languages on the support list the multibyte API doesn't cut it anymore. It neither can handle system text output outside the local code page nor can an ANSI window receive text input outside its own code page.
Similar problems exist for file names. With the multibyte API it is impossible to handle any file containing characters outside the active local code page.

So as of now, everything that may pass along some Unicode text will use the Unicode API with some text conversion functions. The only places where calls to the multibyte API were left are those where known string literals are passed or where the information is not used for anything but comparing it to other return values from the same API.
2019-02-14 22:23:33 +01:00
alexey.lysiuk
be6ce43045 - added ability to customize font of automap marks
Set am_markfont CVAR to a desired font name
Use am_markcolor to select a text color, has no effect with the default font, AMMNUMx
2019-02-13 21:47:53 +01:00
Christoph Oelckers
914818cb88 - fixed run health clamping.
This didn't scale the move factors properly.
2019-02-13 20:12:13 +01:00
Christoph Oelckers
6ff6a6af00 - made gameaction read only
The script side cannot do anything useful with this, because most actions require parameters in global variables, so this is a first grade candidate for rogue mods to make the engine misbehave.
2019-02-13 14:59:55 +01:00
Christoph Oelckers
e526cebc8e Merge remote-tracking branch 'origin/master' into localization 2019-02-12 00:20:00 +01:00
Christoph Oelckers
0b8fb3ac1a - cleanup of font init to have less special cases
To make things easier, DBIGFONT, SBIGFONT and HBIGFONT will now be renamed in the lump directory to make things a bit easier to handle.

Another change is to make font folders atomic units to prevent cross-pollution between incompatible fonts. The only exception to this are the def* folders because they need to piece together their fonts from both zd_extra.pk3 and the IWADs.
2019-02-12 00:19:44 +01:00
alexey.lysiuk
eaf0ac1f7b - added compatibility entries for maps affected by buggy CheckSwitchRange behavior 2019-02-11 17:57:03 +01:00
alexey.lysiuk
d4d010ac32 - added compatibility flag for buggy CheckSwitchRange behavior
https://forum.zdoom.org/viewtopic.php?t=63008
https://forum.zdoom.org/viewtopic.php?t=63650
2019-02-11 17:57:03 +01:00
Christoph Oelckers
3a440a5fa7 - moved the displayed text in strfhelp.o to the string table. 2019-02-11 00:43:57 +01:00
Christoph Oelckers
4bacde36c0 - moved Strife's map names to the string table. 2019-02-11 00:27:08 +01:00
Christoph Oelckers
88e227f1f3 Merge branch 'new_level_refactor' into localization 2019-02-09 12:22:15 +01:00
Christoph Oelckers
3c0c076226 - removed extraneous parameter in SpawnPlayerMissile call in A_FireProjectile.
The native variant has a MissileActor out parameter in this place, but in ZScript that's a secondary return value.
2019-02-09 09:25:29 +01:00
Christoph Oelckers
3d3f260137 - exported LevelLocals's compatibility flags to scripting and fixed all places where access to combined compatibility flags is needed. 2019-02-09 09:17:57 +01:00
Major Cooke
acc510dfb3 Added inflictor, source and flag parameters to GetModifiedDamage on actors and ModifyDamage on inventory.
- The flags are used by DamageMobj so modders can determine radius damage, for example, by checking for DMG_EXPLOSION.
2019-02-08 20:07:49 +01:00