2560 Commits

Author SHA1 Message Date
ceski
6f6629ac56 Add "last used weapon" binding 2024-09-23 09:50:08 -07:00
ceski
ede79db438 Add vanilla input_weapon9 support 2024-09-23 09:50:08 -07:00
ceski
a2253b0699 "Critical" restriction for SSG in Doom 1 2024-09-23 09:49:45 -07:00
Roman Fomin
5426138de7
umapinfo: proper fix levelpic for fullscreen patches (#1918)
* Revert "umapinfo: fix levelpic for fullscreen patches (#1841)"

This reverts commit 0880d6f52c14c013188cfbe0ffda55d6af2c6093.

* proper fix for fullscreen patches
2024-09-22 16:26:00 +07:00
Roman Fomin
5c952ca4a6 remove sub millisecond check in MIDI player loop
From my tests, it appears that I_SleepUS for periods < 500 us just return
immediately, at least on Windows.
2024-09-20 14:48:20 +07:00
jpernst
d931f75d93
Activate OPL3 chips on-demand based on voice pressure (#1911)
* Remove opl_sample_rate variable since it has no practical effect

* Deactivate idle OPL chips
Allocate free OPL voices from active chips before inactive ones

* Add comments for new constants

* Ensure OPL chip LFOs are kept in sync after dormancy

* Check for chip activations before sample generation to preserve sync
2024-09-17 07:47:29 +02:00
Fabian Greffrath
e3ceb7f727
fix broken/inconsistent weapon switching (#1902)
* fix broken/inconsistent weapon switching

Fixes #1901

* get rid of doom_weapon_toggles

* switch weapons like PrBoom+

* Revert "get rid of doom_weapon_toggles"

This reverts commit 36f6408bc46894decd6e3f4410658cc5eef50652.

* fix stuck behavior

* select SSG with the "9" key again

* doom_weapon_toggles does not affect prev/next weapon again

* Revert "select SSG with the "9" key again"

This reverts commit e708a6fac568548ef774bc12ed912e43474916c3.

* Revert "doom_weapon_toggles does not affect prev/next weapon again"

This reverts commit 0ab51f59b6364f3f2914602a342bdfa30a5290a2.

* cosmetics
2024-09-16 15:20:42 +02:00
Roman Fomin
58b7bdd0e9
make death use action demo compatible (#1910) 2024-09-16 17:59:39 +07:00
Roman Fomin
e87ac53bb0
interpolation of wipe melt animation, adapted from R&R (#1903)
* no need to skip DRS
2024-09-16 07:45:06 +07:00
Roman Fomin
4e6ed4a1a0 fix build 2024-09-15 15:51:36 +07:00
Roman Fomin
6143dd500c fix version check 2024-09-15 15:49:10 +07:00
Roman Fomin
036af1d0c8 json lump: add type and version checking 2024-09-15 15:44:31 +07:00
Roman Fomin
e5dc32642c
implement m_json wrapper (#1904) 2024-09-15 14:19:55 +07:00
Roman Fomin
ad47fe9d73 "Back" button/key works in help screen 2024-09-15 13:22:22 +07:00
Roman Fomin
3e05f8ca3d fix clang-tidy padding warning 2024-09-15 12:33:19 +07:00
jpernst
3bee945f2f
OPL3 Improvements (#1907)
* Use correct OPL3 channel polarity by default

* Support multiple OPL3 chips

* Use native OPL sample rate and allow OpenAL to resample it

* Bind DMX OPL stereo correction to a config variable; default to vanilla

* Consolidate num_opl_chips variables; remove menu item
Use BETWEEN macro for mix clamping

* Disable upper register banks when dmx is in OPL2 mode
2024-09-15 12:18:56 +07:00
Roman Fomin
a4eb56e4ce
increase the height of the fire sky texture (#1909) 2024-09-14 18:43:56 +07:00
Roman Fomin
707cd5c5c6
Revert "don't use SDL_RenderSetLogicalSize (#1847)" (#1906)
This reverts commit 8a8a47c29ef7d9a3c1f03fc8daaf0bbd7b05544a.
2024-09-14 13:03:21 +07:00
Fabian Greffrath
dad1c68407
automap: properly highlight death exit sectors (#1900)
Fixes #1898
2024-09-13 13:21:53 +02:00
Roman Fomin
43fd3869fd
id24: skies (#1894) 2024-09-13 18:20:03 +07:00
dbalsom
c0d3ae55bf fix reference to timer2.enabled 2024-09-12 15:59:25 +02:00
Roman Fomin
af695877f8 fix wrong parameter of WideCharToMultiByte function 2024-09-11 19:26:07 +07:00
ceski
47e59972c4
Add secondary menus (#1895)
* Support secondary menus

* Move gyro to secondary menu

* Add sfx to gyro calibration popup

* Move EQ to secondary menu
2024-09-10 07:31:39 -07:00
Roman Fomin
45dcc36258 fix dark overlay flickering 2024-09-10 15:12:28 +07:00
Roman Fomin
0daec4958c
fix game speed affect DRS (#1889) 2024-09-09 07:36:19 +07:00
Roman Fomin
05f0927196
bring back old shade screen method (#1891) 2024-09-09 07:19:18 +07:00
ceski
8b4f4c3582
More menu tweaks (#1890)
* Use more consistent help text

Only switch between gamepad and keyboard prompts (ignore mouse movement and buttons). This provides better support for simultaneous input devices.

* Add `menu_help` config setting

Automatically switch between keyboard and gamepad help text like usual, or force a preference. This provides better support for simultaneous input devices.

* Allow more actions to confirm/cancel "delete save"

So that gamepad users can confirm/cancel.

* Center all notification boxes

Along with some cosmetic changes. Now the text fits when using wide fonts.

* Change Video tab alignment

---------

Co-authored-by: Roman Fomin <rfomin@gmail.com>
2024-09-08 08:54:05 -07:00
Roman Fomin
b1f0684083 fix M_StringJoin 2024-09-08 13:53:41 +07:00
Roman Fomin
7a50a0317e
more efficient use of zone memory features (#1888)
* use PU_RENDERER for allocation of renderer buffers

* add Z_StrDup function
2024-09-08 11:47:27 +07:00
Roman Fomin
be5f634318 net: Hide public IP addresses for privacy (from Chocolate Doom)
labnove19 on the Chocolate Doom Discord expressed safety concerns [1]
about playing on public servers and pointed out that the lobby screen
reveals the IP address of every player that is connected to the server.
There's no actual reason why we need to do this, and an IP address is
usually considered personally identifiable information that can also be
used to identify a person's physical location.

This change therefore changes the server code so that players on the
public Internet will not be able to see each others' IP addresses.
However, I've been careful to preserve the behavior for non-public
addresses:

1. If a localhost player and a public player are both connected to the
   server, the localhost player can see public IP addresses, since the
   owner of the server ought to be able to see the addresses of players
   who connect to their own server. Conversely, public players can see
   localhost addresses since they're not publicly accessible and reveal
   no private information anyway.

2. If two LAN players are connected to a server they can see each
   others' IP addresses, since they're presumably physically colocated
   anyway. It could actually be pretty frustrating for players to not
   be able to see each others' IP addresses if they're trying to set
   up a LAN game, having problems and could use the address to debug.

3. If a LAN player and a public player are both connected to the server,
   situation, the server and the LAN player are presumably physically
   colocated, which effectively is the same case as (1) above, so the
   LAN player can see the public player's IP address. However, the
   public player only sees "[LAN player]" as we should not disclose
   details of the server owner's internal network.

This change is consistent with the "pet name" change we already made to
hide people's names unless they make a deliberate choice to reveal them.

[1] https://discord.com/channels/435469554173476866/829452135078428722/1281374017164677161
2024-09-08 11:22:41 +07:00
Roman Fomin
388ee0b8ad rewrite win_opendir.c (from Chocolate Doom) 2024-09-08 10:47:13 +07:00
ceski
3ee1bb572c
Add gamepad rumble support (#1876) 2024-09-07 07:13:47 -07:00
Roman Fomin
10c64223e9
same rules for highlight thermo as for other items (#1886) 2024-09-07 18:46:51 +07:00
Roman Fomin
246864ff75
rename "Level Brightness"->"Extra Lighting", like in KEX port (#1887) 2024-09-07 18:46:29 +07:00
Fabian Greffrath
e61b634d8a
move Exit Sequence to the Misc menu, remove Menu Backdrop (#1881)
* move Exit Sequence to the Misc menu

* remove Menu Backdrop from the menu

* remove Menu Backdrop remnants
2024-09-06 17:39:13 +02:00
Roman Fomin
6f1d7f1beb fix variable initialization in U_BuildEpisodes 2024-09-06 14:30:06 +07:00
Fabian Greffrath
a34a6662b9 update README.md 2024-09-06 09:17:18 +02:00
Roman Fomin
a5796a3b9b simplify 2024-09-05 22:01:04 +07:00
Roman Fomin
a95d35538d small CI workflow updates 2024-09-05 21:44:49 +07:00
Roman Fomin
2f7e6cd9a4 fix "update vcpkg" step 2024-09-05 20:49:50 +07:00
Roman Fomin
fd4e5e0f8c update vcpkg 2024-09-05 19:43:56 +07:00
ceski
0a5ac67a13 Add SDL version check for Joy-Cons 2024-09-04 21:05:37 -07:00
Roman Fomin
9b56ae1bd8 remove lump number "caching" in WI_Ticker 2024-09-04 15:42:32 +07:00
Roman Fomin
507e99a26e forgot target_woof_settings 2024-09-04 12:23:28 +07:00
Roman Fomin
cd63e89417
move libraries to "third-party" directory (#1879) 2024-09-04 01:52:17 +07:00
Roman Fomin
bbead25071 store the size of the decoded image for flats 2024-09-04 01:29:57 +07:00
Roman Fomin
4bc92a14c3 check background_lump, cosmetic changes 2024-09-04 01:27:29 +07:00
Roman Fomin
6663fba661
id24: intermissions (#1833)
* use cJSON library

* implement array_foreach, custom memory allocator for m_array

* use Doom 1 duration of the "entering" screen for id24 animation

* add player->visitedlevels array

* add U_BuildEpisodes function, try to emulate behaviour of KEX port and R&R
2024-09-03 14:44:46 +07:00
ceski
dfc450d844
Replace show_endoom with exit_sequence (#1873) 2024-09-02 08:36:59 -07:00
ceski
55a65d98dd
Add extra gyro calibration step, increase calibration time (#1875)
Give players time to place gamepad on a flat surface.
2024-09-02 00:07:38 -07:00