Instead of modifying the game, cheats now set a separate "cheats were used in this session" variable, which returns some of the old behavior.
HOWEVER, cheats will STILL allow spawning / collecting emblems & unlocking unlockables. Cheats will purely prevent saving progress. (It was always frustrating that devmode would make debugging unlockable features harder...)
Lastly, the function to set no-saving was exposed to Lua (`G_SetUsedCheats(silent)`). Just thought it'd be useful for large-scale gamedata-using mods that want to add their own cheat commands.
System layer is greatly simplified and framecap
logic has been moved internally. I_Sleep now
takes a sleep duration and I_SleepDuration
generically implements a precise sleep with spin
loop.
Time is now tracked internally in the game using I_GetPreciseTime
and I_UpdateTime. I_Time now pulls from this internal timer. The
system code no longer needs to keep track of time itself.
This significantly improves frame and tic timing in interp mode,
resulting in a much smoother image with essentially no judder at
any framerate.
- Renamed Simple to Automatic, and made it the default
- Renamed Standard to Manual
- Changed some camera settings to make Automatic easier to control
- Changed most default gamepad controls, to fit Automatic playstyle
- Changed a few default keyboard controls
- Added default binds for custom actions 1-3
- Removed forced camera settings in the tutorial (to account for
upcoming tutorial update)
- Also lowered default sound/music volume a little bit
- bot ticcmds are generated and sent by the server only
- fix issue where server would not send all ticcmds to clients if bots were in the game
- fix bots still responding to P1's inputs while P1's controls are locked
- fix bot player's directional controls being rotated when controlled by P2
This was done by storing flag-for-removal status as a boolean inside the player struct.
Bot players are instead removed at the start of G_Ticker, rather than being removed immediately by G_RemovePlayer.