Commit graph

4790 commits

Author SHA1 Message Date
furo 149e5b6864 Show AFK status in info tab 2023-11-02 13:18:00 +01:00
Robert Müller ebe2ddea9f Add gameclient warnings to queue instead of overriding others
Using `CMenus::PopupWarning` will immediately set the popup and override the current warning, which can hide warnings when multiple are shown at the same time. Now all warnings are added to the queue with `IClient::AddWarning`.
2023-11-01 22:17:01 +01:00
Robert Müller 8482e9475c Show warning popup when map image/sound cannot be loaded
Show a warning popup when a map image or sound cannot be loaded for any reason. Only one generic warning popup is shown for images and sounds individually.
2023-10-31 21:21:09 +01:00
Robert Müller 525cc59927 Allow loading embedded images without valid image name
The image name is only required for external images. For embedded images it was only used in log messages. This fixes rendering with various maps that have embedded images with invalid names.
2023-10-31 21:19:49 +01:00
Dennis Felsing 795a2699ef
Merge pull request #7391 from furo321/incorrect-ghost
Fix incorrect ghost being loaded with `cl_race_ghost_save_best`
2023-10-30 09:40:25 +00:00
furo 05e7c284ea Fix incorrect ghost being loaded with cl_race_ghost_save_best 2023-10-30 00:53:00 +01:00
Dennis Felsing 911880a982
Merge pull request #7390 from Patiga/remove-parallax-zoom-from-map
Remove Parallax Zoom from map file
2023-10-29 23:11:32 +00:00
Patiga a9fc2207ac Remove Parallax Zoom from map file
Parallax Zoom improves the appearance of maps visually when zooming.
Contrary to initial tests, it does not interfere with certain map
locations such as the shop on the map Timeshop.
The default value appears to be correct for all existing maps.

The value in the map file is non-trivial to manage, and provides little
benefit. See https://github.com/ddnet/ddnet/issues/6196 for further
discussion.
2023-10-29 23:43:19 +01:00
Robert Müller 751343c846 Fix client crash on maps with invalid image and sound indices
Limit number of sounds being loaded in the client to 64, instead of writing sample indices out of bounds.

Check if sound indices are out of bounds. It was only checked whether the sound index is -1 but no other bounds checking was performed.

Check if image indices are out of bounds. It was not checked for all negative image indices, only -1 was considered.

Add popup message in the editor when trying to add more than 64 sounds, same as for images.

Limit number of images in `map_convert_07` tool, instead of writing out of bounds.
2023-10-29 17:55:20 +01:00
Robert Müller 110247f08f
Merge pull request #7383 from furo321/align-killmessages
Align kill messages properly in demos when using `cl_showpred`
2023-10-28 13:54:30 +00:00
furo d9beeaa8b4 Align kill messages properly in demos 2023-10-28 15:27:16 +02:00
Robert Müller 25a776cb23
Merge pull request #7382 from furo321/improve-ghosts-fixes
Small fixes to ghosts
2023-10-28 13:23:40 +00:00
furo e61ed1c3b4 Small fixes for cl_race_ghost_strict_map
- Better description
- Remove redudant map check
2023-10-28 14:54:35 +02:00
furo 2ca8330543 Render ghosts before players 2023-10-28 14:45:43 +02:00
Robert Müller e66fe2c70e Add event dates to time_season: easter, halloween, xmas
Add easter, halloween and xmas to `enum ETimeSeason` and `time_season` function. This unifies the logic for detecting these events and seasons in one function. This allows adding support for special easter, halloween and xmas theme maps in the future. The `localtime` function is not used outside `system.c` anymore. The code for detecting easter is taken from upstream.
2023-10-28 12:10:41 +02:00
Dennis Felsing 28f4739e46
Merge pull request #7375 from furo321/improve-ghosts
Various improvements to ghosts
2023-10-27 22:06:00 +00:00
furo dadb142f4e Add cl_race_ghost_alpha, add title for ghost settings. 2023-10-27 20:56:57 +02:00
furo b90995da06 Add option to always save ghosts, not only personal bests. 2023-10-27 20:55:35 +02:00
furo dc439a804b Ghost browser UI Improvements
- Use Refresh icon instead of text.
- Add button to open ghost directory.
- Button to (de)active all ghosts.
- Grey out ghosts that failed to load.
2023-10-27 20:55:33 +02:00
furo 4f6ce37b3a Add date column to ghost browser 2023-10-27 20:51:19 +02:00
furo c743ed5848 Increase MAX_ACTIVE_GHOSTS from 8 to 256 2023-10-27 20:51:19 +02:00
Robert Müller d167f0042a
Merge pull request #7371 from furo321/conf-argument-completion
Add argument completion for `reset`, `toggle`, `access_level`
2023-10-27 17:50:18 +00:00
furo 686948e659 Remove m_ArgumentCompletionFlagmask 2023-10-27 18:12:37 +02:00
Robert Müller 68e481945b Fix incorrect menu behavior when quitting/restarting
Only consider `STATE_ONLINE` and `STATE_DEMOPLAYBACK` as ingame.

Closes #7178.
2023-10-26 21:41:03 +02:00
Robert Müller 7312721743 Remove redundant server browser refresh on client start
The `RefreshBrowserTab` function already does the respective `ServerBrowser()->Refresh(...)` calls.
2023-10-26 21:26:34 +02:00
furo adc36e8215 Add argument completion for reset, toggle, access_level 2023-10-25 19:00:12 +02:00
Dennis Felsing 92206044d1
Merge pull request #7366 from furo321/SoundsDetail
Remove "Detail" from sound layers.
2023-10-25 09:21:05 +00:00
furo 18f389fb17 Remove "Detail" from sound layers. 2023-10-24 19:34:09 +02:00
Dennis Felsing 31031f5cc1
Merge pull request #7365 from Robyt3/Menus-Demo-Fixes
Fix crash when directly rendering demo after slicing, fix demo slice confirmation popup not being shown anymore
2023-10-23 22:00:06 +00:00
Robert Müller 61ff171fcd
Merge pull request #7364 from furo321/hookcollsize
Use correct max value for "Hook collision width" setting
2023-10-23 21:36:52 +00:00
Robert Müller 7c06553056 Fix crash when directly rendering demo after slicing
Use `m_aCurrentDemoSelectionName` and `m_DemolistStorageType` for the demo render popup instead of using `m_DemolistSelectedIndex`, which can be invalid when the demo render popup is not opened from the demo browser.

Closes #7347.
2023-10-23 23:30:20 +02:00
Robert Müller f32e8eb8de Fix demo slice confirmation popup not being shown anymore 2023-10-23 23:08:44 +02:00
furo 9b3f34a74f Use correct max value for "Hook collision width" setting 2023-10-23 22:49:51 +02:00
furo 816fd751c7 Change chat input size to 256 2023-10-23 22:14:49 +02:00
Robert Müller f8af7542c6 Move CHostLookup to separate compilation unit
The host lookup job and the engine interface are independent so they are moved to separate files.

The include of `engine.h` in `client.h` is therefore unnecessary and other includes also had to be adjusted because of this.

The variable `m_VersionServeraddr` is unused and therefore removed. The host lookup job is currently not used on the client-side.
2023-10-22 13:38:35 +02:00
Robert Müller 1fde694565 Improve positioning of IME candidate window for multi-line text
Previously, the IME candidate window was aligned with the top-right corner of the text bounding box (when rendering the text until the caret offset). This does not work correctly for text spanning multiple lines, causing the IME candidate window to be displayed at the X position of the longest line instead. Additionally, text clipping in the chat was not considered, as `CLineInput` is not aware of the clipping implemented in `CChat`, causing the IME candidate window to be moved up too far.

This is fixed by getting the correct rendered position of the caret offset using `m_CursorRenderedPosition`. Vertical alignment is also changed so only one line of text is considered, which makes the behavior more consistent with Windows' native IME candidate window and avoids larger changes in `CLineInput` to make it aware of clipping.
2023-10-20 17:51:01 +02:00
Robert Müller 0e4f174f78 Check for all file errors in demo player, show demo error popup
Handle the return values of all uses of the `io_read`, `io_skip` and `io_tell` functions in `CDemoPlayer`, to handle truncated demo files and other unexpected file reading and seeking errors during demo playback.

Show more detailed error message popups when demos cannot be loaded due to errors and when demo playback is stopped unexpectedly due to errors. Previously, only a generic message "Error loading demo" was shown when loading failed and no error message was shown when demo playback is stopped due to errors.
2023-10-19 21:48:04 +02:00
Robert Müller 6951795619 Add title to engine warnings and make auto-hiding optional
Make the title of warnings adjustable, with the default title being "Warning" to preserve existing code.

Make auto-hiding configurable, so the automatic closing of warning popups after 10 seconds can be toggled.
2023-10-19 21:40:55 +02:00
Robert Müller a0c0d7efba Fix incorrect minimum value of dbg_tuning velramp graph
This was causing the curve to clip outside the graph area.
2023-10-17 20:24:47 +02:00
Robert Müller dc7fa1fbb2 Use ColorRGBA for CGraph entry color 2023-10-17 20:23:16 +02:00
Robert Müller 1a83a17db8 Fix client crash on player info snapshot item with invalid ID
The player info snapshot item (`CNetObj_PlayerInfo`) has its own `m_ClientID` member variable in addition to the generic snapshot item ID. The snapshot item ID was only used to set `m_Snap.m_LocalClientID` but without being checked for invalid values. Now it is checked that both IDs are identical and only `m_ClientID` is used consistently.
2023-10-15 17:06:12 +02:00
Robert Müller 172f316a40 Disable demo slice button while demo is being rendered
There is no reason to slice a demo while currently rendering it and it may cause issues because multiple demo players would access the same `IVideo` instance.
2023-10-13 22:06:17 +02:00
Robert Müller aeb1530966 Improve layout of demo render popup on 5:4 resolutions 2023-10-12 19:20:12 +02:00
Dennis Felsing 01958378f1
Merge pull request #7336 from Robyt3/Demo-Render-Popup-Android
Remove Android-specific layout code for demo render popup
2023-10-11 21:54:21 +00:00
Robert Müller 1dfdd752f8 Remove Android-specific layout code for demo render popup
The filename editbox and buttons of the demo render popup were rendered excessively large on Android. While too small buttons could be an issue with smaller screens, this should not be implemented solely this popup, if Android support is revived in the future, as it makes the UI layout code harder to maintain.
2023-10-11 18:20:11 +02:00
Dennis Felsing 60fa51ff13
Merge pull request #7309 from infclass/kaffeine/merge-client-data-structs
Extract client 'six' data types and use them for 'seven' data
2023-10-10 21:55:55 +00:00
Dennis Felsing cc62d958c6
Merge pull request #7253 from JSaurusRex/midTickAim
firing/hooking takes aim when action happened not when tick
2023-10-08 21:29:34 +00:00
JSaurusRex 3c7ad1490b done requested code changes 2023-10-08 17:31:43 +02:00
Dennis Felsing dc57cc38c4
Merge pull request #7323 from furo321/move-background-setting
Move "Regular background color" setting to background
2023-10-08 10:59:34 +00:00
furo 88e1988d96 Move "Regular background color" setting to background
Fixed capitalization (only captialize first letter)
2023-10-08 12:26:03 +02:00