Commit graph

195 commits

Author SHA1 Message Date
Christoph Oelckers
35ff0a42a6 - restructured the option menu drawer for easier replacement of the caption handler. 2020-10-16 22:57:26 +02:00
Christoph Oelckers
cc9cadfac1 - moved compatibility cruft out of main implementation file. 2020-10-16 22:57:26 +02:00
Christoph Oelckers
0b317b432e - split the Doom specific menu extensions into their own file. 2020-10-16 22:57:24 +02:00
Christoph Oelckers
e0d8241a50 - use the backend's GameTicRate in the scripts where applicable.
This should replace TICRATE globally as it is the backend's actual ticking speed (still locked to 35, though.)
2020-10-16 22:57:24 +02:00
Player701
7da9f33cf9 - Fixed truncation warnings in playerdisplay.zs 2020-10-11 09:02:14 +02:00
Christoph Oelckers
756caede51 - fixed misnamed variable and removed restriction for draw pass in GetFullscreenRect. 2020-10-05 18:32:16 +02:00
Christoph Oelckers
497c474fee - transform mouse coordinates for menu with fullscreen scale 2020-10-05 00:03:00 +02:00
Christoph Oelckers
63a338fd73 - changed display in key binding menu to list all bound keys for an action, not just the first two. 2020-10-04 19:28:20 +02:00
Christoph Oelckers
f3d75469c9 - moved two native player menu functions out of the main menu class.
These manipulate entries of that menu and have no business being called from anywhere else than this menu and its subclasses.
2020-10-04 19:08:14 +02:00
Christoph Oelckers
43eb7d61e7 - helper function for setting up the summary screen. 2020-10-04 15:14:30 +02:00
Christoph Oelckers
f1b0f32786 - add an option to the ListMenu class to draw to a fixed virtual screen size.
This allows proper dimensions in the stock menus and should make menu layout for mods a lot easier because coordinates are more predictable than with the clean factors.
The feature is opt-in for custom content. As long as only stock elements are used, the menu will be able to switch between both on its own, but as soon as custom classes or custom elements are used, the virtual size must be declared explicitly, defaulting to clean scaling.
2020-10-04 15:03:29 +02:00
Christoph Oelckers
acd71f7019 - groundwork for menus with a fixed virtual screen size. 2020-10-04 09:16:20 +02:00
Christoph Oelckers
2016f56a7e - added a new scaling mode to the level summary screen to scale to a given size.
In this mode the clean scaling factors are ignored and content is always scaled to fit the screen as efficently as possible.
For the default summary screens an option was added to use this mode, which is a lot closer to the original look of this screen.
It is not 100% identical because it still factors in the author, if given and long level names that may be broken into multiple lines of text.
2020-10-03 13:32:18 +02:00
nashmuhandes
f467e4bc33 Add grayed-out support to sliders 2020-09-30 18:27:50 +02:00
Christoph Oelckers
d304e86354 - fixed: Artiflash is not translatable. 2020-09-26 19:22:17 +02:00
Maarten Lensink
5ef02df827 Count up to level time only 2020-08-31 18:48:20 +02:00
Maarten Lensink
90f40bd8eb Display own and total in coop alt hud 2020-08-30 19:41:17 +02:00
Rachael Alexanderson
0868f65199 Merge commit 'refs/pull/1168/head' of https://github.com/coelckers/gzdoom
# Conflicts:
#	wadsrc/static/zscript/ui/statscreen/statscreen_coop.zs
2020-08-30 09:43:03 -04:00
Maarten Lensink
34dd9625fc
Display other kills in coop tally screen (#1167)
* Display other kills in coop tally screen

* Showing other when skipping counter
2020-08-30 09:34:53 -04:00
Maarten Lensink
c81370a9ec Showing time when skipping counter 2020-08-30 15:40:26 +03:00
Maarten Lensink
2e0289e501 Making use of String.Format 2020-08-30 15:12:23 +03:00
Maarten Lensink
005f13b853 Time in coop tally 2020-08-30 03:53:05 +03:00
3saster
5803b78147
Implemented Clock Class (#977)
* Simplified some stuff, made up-to-date

* Dealt with DST problems

* Made SystemTime.Format clearscope, as there is no reason for this function to be limited to the ui
2020-08-27 12:43:50 -04:00
Nash Muhandes
09a7a0d944
Allow conversation menu cursor graphic replacement. (#1134)
If "graphics/DialogReplyCursor.png" is present, it will be used for the reply cursor. Otherwise, the default ConFont cursor is used.
2020-08-25 11:55:43 -04:00
Kevin Caccamo
b6f0c4071d
Fix the health bar on Strife status bar (#1080)
* Fix the health bar on Strife status bar

Now, if the player's health is above 100, the green health bar won't be shortened any more.

* Fix the bar properly

Now, the blue and green bars don't overlap. Also, health above 100 goes from right to left, like in Strife: Veteran Edition.
2020-08-08 01:26:59 -04:00
Christoph Oelckers
90befff479 - moved out the Doom specific parts from menu.cpp and messagebox.cpp. 2020-06-13 22:43:35 +02:00
Christoph Oelckers
3a23cc69d6 - since we already got lots of CVAR descriptions from the menu's content, let's use that as CVAR description if none is explicitly provided.
This also necessitated localization support for CVAR descriptions because menu content is multi-language.
2020-06-08 23:37:22 +02:00
alexey.lysiuk
f58027311e - fixed incomplete disabling of number field menu option
https://forum.zdoom.org/viewtopic.php?t=68075
2020-06-07 15:50:10 +03:00
Christoph Oelckers
09d163cb2f - fixed: the last frame of the intermission screen wasn't rendered. 2020-06-06 10:38:35 +02:00
Christoph Oelckers
794a53f0c9 - fixed font selection on intermission screen. 2020-06-06 09:39:14 +02:00
Christoph Oelckers
328d9c75c4 - redid mouse control for the conversation menu.
Since the page operates on different coordinate systems, the only working way to check the mouse is to store the real coordinates when drawing and check the mouse position against those.
2020-06-04 14:11:36 +02:00
alexey.lysiuk
331f3d85d6 - fixed secondary ammo display in strife status bar
https://forum.zdoom.org/viewtopic.php?t=68315
2020-04-30 16:26:12 +03:00
nashmuhandes
d563b0339c Apply alpha to the background texture in DrawBar 2020-04-29 21:01:13 -03:00
nashmuhandes
f65a97322e Add an alpha parameter to StatusBar.DrawBar 2020-04-29 21:01:13 -03:00
Major Cooke
a56177f178 Begin TICRATE conversion.
- Moved TICRATE from Thinker to Object in ZScript so status bars have access to it.
2020-04-12 22:43:33 +02:00
alexey.lysiuk
3b8ddb6b9b - fixed resetting of music volume after closing dialogue
https://forum.zdoom.org/viewtopic.php?t=67035
2020-01-20 22:05:15 +01:00
Alexander Kromm
1f011cda7f make enter key toggle Option Search mode too 2020-01-16 17:53:28 +01:00
Christoph Oelckers
4646273569 - fixed: menu sounds no longer got the CHANF_UI flag. 2020-01-04 19:36:22 +01:00
Christoph Oelckers
c0b9bb6e76 - bumped ZScript version to 4.3 and silenced the remaining deprecation warnings. 2020-01-04 14:25:56 +01:00
alexey.lysiuk
59f09d4893 - move setting status bar defaults to proper location
BaseStatusBar.Init() method isn't suitable for this because it will override SBarInfoWrapper setup done in native code

https://forum.zdoom.org/viewtopic.php?t=66676
https://forum.zdoom.org/viewtopic.php?t=66339
2019-12-18 15:40:39 +02:00
Christoph Oelckers
e82565373f - separated the channel number from the flags in the sound interface so that the 8 channel limit can be eliminated.
- added Marisa Kirisame's CHAN_OVERLAP flag.
- exported S_IsActorPlayingSomething to ZScript.

The sound API change required deprecating A_PlaySound and S_Sound. There are now new variants S_StartSound and A_StartSound which have two distinct parameters for channel and flags.
2019-12-16 23:52:39 +01:00
Christoph Oelckers
6023b69693 - added null check to the dialogue lines array so that it doesn't crash if the text is never word wrapped. 2019-11-30 22:04:26 +01:00
alexey.lysiuk
e21c9e0ef8 - made most of AltHud class functions virtual
This allows arbitrary customization of alternative HUD
2019-11-26 15:45:18 +02:00
alexey.lysiuk
a7f2df4fef - added ability to set custom alternative HUD
Use GAMEINFO key 'althudclass' to specify own class derived from AltHud

https://forum.zdoom.org/viewtopic.php?t=66422
2019-11-26 15:45:18 +02:00
Player701
db1359f98e - Implemented scale parameter for BaseStatusBar::DrawString 2019-11-24 10:45:07 +01:00
Marisa Kirisame
12bbb5b6f9 Localize level/author strings on intermission startup, fixes misalignments. 2019-11-10 18:14:42 +01:00
alexey.lysiuk
093901a561 - set meaningful defaults on initialization of BaseStatusBar
https://forum.zdoom.org/viewtopic.php?t=66339
2019-11-09 15:00:03 +02:00
Alexander
0c2ed71cdd fix bug when down arrow gave no result after mouse move in main menu
Steps to reproduce:
1. Load game.
2. Press any key to bring up the main menu.
3. Move the mouse anywhere out of the menu entries.
4. Press Down arrow.

Expected result: the menu cursor sound is played, the first menu element is selected.
Actual result: the menu cursor sound is played, no menu element is selected.

Repeated Down arrow pressing doesn't give any result, either.

If on step 4 Up arrow is pressed, the last element in the menu is selected.
2019-09-30 20:04:44 +02:00
alexey.lysiuk
ef7a356644 - fixed inventory scroll arrows in alternative HUD
https://forum.zdoom.org/viewtopic.php?t=65976
2019-09-29 16:07:25 +03:00
PaulyB
0535961a7a Added Armor to Hexen fullscreen display
Since the armor icon is much larger than the flask icon, both have been moved to the right slightly
2019-09-11 00:02:39 +02:00
alexey.lysiuk
31ebeaf833 - removed useless conditions from options menu 2019-09-08 10:01:10 +03:00
alexey.lysiuk
526a576d89 - fixed VM abort when entering search menu
https://forum.zdoom.org/viewtopic.php?t=65833
2019-09-08 09:52:16 +03:00
Alexander
d6396e79fb add empty line after standard options
Rationale:
When a mod adds a custom option menu, it adds a space before it, like this:
```
AddOptionMenu OptionsMenu
{
  StaticText ""
  Submenu "$MYTITLE", MyOptions
}
```
to prevent custom option menu being in the same block as the last entries in the
standard options list. It's okay.

But when more than one such mod is loaded, each one of them adds a space before
their option menu entry, and Options Menu becomes unnecessary bloated.

This simple edit allows mods to not add a space, still be separated from
standard options.
2019-08-31 21:34:09 +02:00
PaulyB
78c5a8ae92 Fix typo in Heretic status bar 2019-08-31 03:46:05 -04:00
Rachael Alexanderson
9456eeb8ec - oops, this didn't get through 2019-08-23 05:56:10 -04:00
PaulyB
179e526981 Let Hexen Cleric and Mage use unique health chains
- (changed slightly by Rachelle)

Hexen's characters incorrectly only used the Fighter's health chain previously.
2019-08-23 05:54:39 -04:00
Marisa Kirisame
14dc288f22 Allow custom status bars to override notifications, centered prints and chat prompt. 2019-08-19 11:19:36 +02:00
alexey.lysiuk
1bd249677b - fixed core script warnings with developer CVAR set to 2 or greater
Script warning, "gzdoom.pk3:zscript/ui/menu/conversationmenu.zs" line 159:
Truncation of floating point value
Script warning, "gzdoom.pk3:zscript/ui/menu/conversationmenu.zs" line 161:
Truncation of floating point value
2019-08-13 14:48:40 +03:00
Christoph Oelckers
34c2c65bb6 - fixed: Do not use BasicArmor's save percentage when no armor present.
This function is only for the Hexen status bar and printed incorrect values.
2019-08-10 08:26:55 +02:00
Christoph Oelckers
3b4184816b - do not blur the background for portrait-less conversations. 2019-08-09 15:22:52 +02:00
Christoph Oelckers
352d5d098d - fixed mouse coordinate checks when using the generic VGA font with Strife conversations. 2019-08-07 20:24:45 +02:00
Christoph Oelckers
43041c21d8 - made author names work with title patches.
Most importantly, specifying a patch may optionally disallow showing the autor's name - this is for cases where a styled patch gets used for English but text-based translations of the map name should still be possible.
2019-08-07 12:09:47 +02:00
Christoph Oelckers
3e99216967 - added option to print a map author's name on the summary screen
For now only with font-printed map names. Allowing this with titlepatches will require more work and an option to disable.
2019-08-02 09:11:40 +02:00
Christoph Oelckers
154af34cd9 - added an option to always display the log and the subtitles with the generic font.
If this is on it will disable the status bar's pop screen for the log and always use the HUD overlay instead.
2019-07-31 17:02:39 +02:00
Christoph Oelckers
c36dc137ba - made adjustments to the text placement on the summary screen.
With extended fonts much of the old code did not work anymore, this needed more precise checks for the sources of the printed texts.
2019-07-30 10:53:02 +02:00
Christoph Oelckers
1dd98a5c89 - when using the VGA font, confine the speaker's text in Strife dialogues to the backdrop picture.
This looks a lot better. Unfortunately for the regular SmallFont this would severely reduce the available space for the text so it isn't done here, even though for shorter texts the formatting would look better as well.
2019-07-27 09:35:45 +02:00
Christoph Oelckers
86d2742798 - allow switching the Strife conversation screen to the VGA font for all languages by a CVAR.
This is for readability purposes because the styled SmallFont may be problematic for some players.
2019-07-26 20:23:46 +02:00
Christoph Oelckers
95349822c4 - for the map name on the automap, fall back to the original SmallFont if the actual one cannot print it.
This is mainly for mods which provide a new font but do not alter the automap texts, a good example is Hell Revealed 2.
2019-07-17 20:28:07 +02:00
Christoph Oelckers
c64aedb262 - reimplemented the Harmony status bar in ZScript
* the Doom status bar has been partially virtualized to allow overriding specific parts of it, most notably the ammo display
* the internal Harmony status bar has been removed because it only works with the now disabled Dehacked patch.
* the SBARINFO definition has been removed, instead it uses a ZScript-based status bar now which overrides the ammo display to use the new ammo types instead.
2019-07-17 00:36:38 +02:00
Christoph Oelckers
cd7438c02e - made some adjustments to the text spacing on the level summary screen.
With the extended fonts some parts here caused too large gaps.
2019-07-14 12:44:42 +02:00
Christoph Oelckers
32dd6b049c - offset text in statscreen if it gets too wide.
German and Hungarian were creating problems in Hacx here, others could also become too wide with huge amounts of monsters.
2019-07-14 10:03:50 +02:00
Christoph Oelckers
2fd170b06e - allow setting the font used for the status screen's content text.
This was needed to give Hacx's screen the proper colors.
2019-07-14 09:08:19 +02:00
Alexander
c161635cca localize custom menu titles in option search results 2019-06-12 17:37:29 +02:00
alexey.lysiuk
5c0562ca7a - check for presence of fonts in message box menu
https://forum.zdoom.org/viewtopic.php?t=64958
2019-06-07 11:49:01 +03:00
Christoph Oelckers
61ead74492 - made the colorset names and the texts in the color picker localizable. 2019-05-19 18:57:39 +02:00
alexey.lysiuk
7298ba2707 - do not show par time when it's zero
https://forum.zdoom.org/viewtopic.php?t=64551
2019-05-13 11:04:55 +03:00
alexey.lysiuk
6d1a85af3c - fixed deprecation warnings in core scripts
Script warning, "gzdoom.pk3:zscript/ui/statscreen/statscreen.zs" line 24:
Call to deprecated function CharAt
Script warning, "gzdoom.pk3:zscript/ui/statscreen/statscreen.zs" line 24:
Accessing deprecated function CharAt - deprecated since 4.1.0
Script warning, "gzdoom.pk3:zscript/ui/menu/search/query.zs" line 64:
Call to deprecated function ToLower
Script warning, "gzdoom.pk3:zscript/ui/menu/search/query.zs" line 64:
Accessing deprecated function ToLower - deprecated since 4.1.0
Script warning, "gzdoom.pk3:zscript/ui/menu/search/query.zs" line 65:
Call to deprecated function ToLower
Script warning, "gzdoom.pk3:zscript/ui/menu/search/query.zs" line 65:
Accessing deprecated function ToLower - deprecated since 4.1.0
Script warning, "gzdoom.pk3:zscript/ui/menu/conversationmenu.zs" line 202:
Call to deprecated function CharAt
Script warning, "gzdoom.pk3:zscript/ui/menu/conversationmenu.zs" line 202:
Accessing deprecated function CharAt - deprecated since 4.1.0
Script warning, "gzdoom.pk3:zscript/ui/menu/conversationmenu.zs" line 235:
Call to deprecated function CharAt
Script warning, "gzdoom.pk3:zscript/ui/menu/conversationmenu.zs" line 235:
Accessing deprecated function CharAt - deprecated since 4.1.0
2019-04-28 11:26:01 +03:00
Christoph Oelckers
e0d57e5464 - added smarter font replacement logic to the confirmation screen. 2019-04-23 08:47:06 +02:00
Christoph Oelckers
8357f2b16b - re-enabled code block commented out for testing. 2019-04-22 18:52:21 +02:00
Christoph Oelckers
6f3982865f - refinement of font substitution logic. 2019-04-22 10:23:28 +02:00
Christoph Oelckers
e0a0be4f7b - added a CanPrint function to FFont and used that to handle the statistics display on the automap HUD to only replace the font when actually needed, not based on the language. 2019-04-22 09:08:43 +02:00
Christoph Oelckers
13841655aa - add color remapping for NewSmallFont as well. 2019-04-21 10:49:27 +02:00
Christoph Oelckers
fcbde757c9 - do not mix game-specified fonts with the extensions for the stock version.
This generally doesn't look good when different colors are mixed or the mismatch in color ranges causes bad translations to be generated.
2019-04-21 08:09:31 +02:00
Christoph Oelckers
cbc3bc500f - fixed inverted logic for displaying the generic log in Strife. 2019-04-20 09:04:31 +02:00
Christoph Oelckers
23412a4f28 - fixed a few developer warnings. 2019-04-19 09:08:31 +02:00
Christoph Oelckers
a5d743cc3b - fixed: The color sliders in the player setup menu may not be selected when inactive. 2019-04-19 07:50:52 +02:00
Christoph Oelckers
68597da75d - removed debug output. 2019-04-19 07:24:23 +02:00
Christoph Oelckers
35186e9fd7 - adjustments to the player menu so that the display isn't cut off on the smallest screen sizes. 2019-04-18 00:16:09 +02:00
Christoph Oelckers
2a329950f6 - fixed menu caption for languages which use the VGA font. 2019-04-17 23:40:05 +02:00
Christoph Oelckers
c45c7cdb4b - reimplemented as an OptionsMenu.
This is both for consistency and better localizability. The old code is retained to ensure that mods inheriting from the old menu continue to work.
2019-04-14 14:03:24 +02:00
Player701
747906730c Added support for monospacing alignment modes to HUDFont / BaseStatusBar.DrawString (#810)
* - Added support for monospacing alignment modes to HUDFont / BaseStatusBar.DrawString

* - added underlying type declaration for EMonospacing

* - replaced "#include v_video.h" with a declaration of EMonospacing
2019-04-13 18:10:58 +02:00
Christoph Oelckers
d73f8faafa - added monospacing support to Screen.DrawText and its native counterparts. 2019-04-13 12:17:38 +02:00
Christoph Oelckers
bcf7bc8d34 - added some UTF-8 utilities to FString.
This deprecated CharAt and CharCodeAt for being unsuitable for text processing and in the case of CharCodeAt also for being buggy.
A new replacement, ByteAt has been added that reads a string byte by byte, as well as CodePointCount, which counts the amount of Unicode code points in a string and GetNextCodePoint which reads the string code point by code point.
Note that while this woll work as intended with the currently supported languages as a means to read single characters, there is no guarantee that this will remain so if Unicode support gets extended to things which break the "one code point == one character" assumption.
2019-04-13 09:31:36 +02:00
Christoph Oelckers
c0b322c51a - make the switch between game and generic fonts automatic by adding a key value to the language table 2019-04-12 00:20:42 +02:00
Christoph Oelckers
1090c4b345 - added generic font support to the dialogue system. 2019-04-11 18:56:13 +02:00
Christoph Oelckers
9f5b0001fe - handle generic fonts on the summary screen. 2019-04-11 02:00:51 +02:00
Christoph Oelckers
9fddc38030 - allow all list menu items to fall back on the Unicode font for languages which are not supported by the bitmap font.
This allows the primary menus to display Korean text without any further special handling.
2019-04-10 22:25:31 +02:00
Christoph Oelckers
b423caa8d6 - removed the rather pointless hud_althudfont CVAR and the tiny piece of code it activated.
This was meant for using the VGA font in the alternative HUD but this never went beyond the Kill/Item/Secret display which isn't useful for localization.
2019-04-10 21:57:24 +02:00
Christoph Oelckers
5e5780dd65 - allow using the VGA font for map name display on the alternative HUD. 2019-04-10 21:21:33 +02:00
Christoph Oelckers
31d1f8ba50 - fixed redundant map name display on alternative HUD's automap HUD. 2019-04-10 20:56:24 +02:00