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