* 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
* 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
* 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
* 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>
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