Servers should get enough free for a healthy launch ecosystem, but not everything.
We'll give the relevant password out after, like, the first week probably? Please be patient, commit-diver
Simplify copyright to just us. I think if this isn't OK, then Doom Legacy and id Software *at minimum* also need to also be included in this, and that's kind of a rabbit hole.
- If the framerate is normally dropping below 60, drop 3d
rendering frames while in the menu to compensate
- The lower the average framerate, the more 3d rendering
frames are dropped
- Let menus render at full framerate, without expensive
3d rendering time cutting into it
- Opening the menu pauses the game offline, so this is
perfect
- Software preserves the last frame if rendering stops
The problem with adding files mid-netgame was that the order is:
- menu code sends netxcmd for addfile
- getpackets processes addfile, sets refreshdirmenu
- NEW GAMETIC
- refreshdirmenu is set to 0
- menu code looks for refreshdirmenu, comes up empty
Now, the order is:
- menu code sends netxcmd for addfile
- refreshdirmenu is set to 0
- getpackets processes addfile, sets refreshdirmenu
- NEW GAMETIC
- menu code looks for refreshdirmenu, successfully finds it
- refreshdirmenu is set to 0
Fixes two bugs:
- Attract mode carrying over to gameplay if an attract
demo is allowed to finish without interrupting it
- Credits ending after the first replay ends
- Most R_SkinAvailable calls should be returning index into demo.skinlist (same numerical value as when demo was recorded), for demo sync
- A handful of general things permit exception for this
- Expose `replaynumskins` (calculated as `(demo.playback ? demo.numskins : numskins)`) to Lua
- There's *always* more that can be done for this, but this is the minimum spec that can at least be somewhat stable
- All inputs create input events that get stored in a very
small buffer
- Normally, the game listens for some inputs and then
immediately processes them and updates the button state
in-game
- However, during wipes the processing step would not
happen and it would just let the events pile up
- Because the buffer is small though, it would quickly
fill up and lose some events
- This would lead to button states getting stuck on some
controllers if you released a button during a wipe
- If you spun an analog stick around, this would cause
it to happen more frequently, because there is a new
event for every slight change of an analog stick's
position