Update 2.2.12 authored by Sal's avatar Sal
## New features
* Allow saving in modified games (!1749)
* Multiplayer emblems and unlockables (!1756)
* Implement per-texture offsets in UDMF (!2018)
* New skincolors, color grid view for skincolor selection (!2027)
* Single-player files can now save when using mods! (!1749)
* Emblems and unlockables now work in Coop mode! (!1756)
* These are handled per-player, but the gamestate for unlockables is based on what the server has. (what levels are available in level select, linedef executor triggers, etc...)
* The multiplayer pause menu now displays the same stats as singleplayer, and use Emblem Hints + Emblem Radar.
* Modders: Added the "ShareEmblems" option to MainCfg, which makes Emblems collected by clients share with the server host, intended for progression-based level packs.
* Several new skincolor features: (!2027)
* Added 44 new base skincolor options.
* Updated the default colors for Knuckles, Amy, and Fang.
* Added color grid view for skincolor selection. Press Enter on the Color selector!
* Added the ability to press PageUp/PageDown to scroll through colors faster.
* Added some extra keys to the Player Setup menu for modders:
* Press Pause/Break to pause the character's walking animation.
* Press Insert to preview the current skincolor's opposite color shade on the background.
* Added the `renderhitbox` console variable, for modders to debug & fine-tune custom object hitboxes.
* UDMF: Implement per-texture offsets. (!2018)
* SOC: Added A_Shockwave, which spawns a ring of objects like Sea Egg's attack. (!1777)
* Lua: Added player power `pw_strong`. This allows for fine-tuning of player attack interactions. (!1366)
* Lua: Added time/date functions from the `os` library. (!2060)
* Christmas Mode will nevah die.
* Lua: Add `dispoffset` as a property for `mobj_t` userdata. This allows you to edit this directly instead of being tied to their `mobjinfo`. (!1708)
* Lua: Added access to floor/ceiling plane offsets, angle, and lighting. (!1884)
* Lua: Added R_TextureNameForNum and R_CheckTextureNameForNum, for getting strings from texture IDs. (!1880)
* Lua: Added `ping` as a read-only property for `player_t` userdata. (!2025)
* Dedicated servers: Added the "dedicatedidletime" console variable. This stops game logic from running when your server has no players interacting with it after the specified amount of time. Defaults to 10 seconds, can be turned back off by setting to 0. (!2019)
## Improvements
* Turn dispoffset into a mobj field (!1708)
* LUA_EnumLib optimizations for constant value access (!1721, !2017)
* Refresh Sprite2s (!1750)
* Plane scroller & wind/current/pusher improvements (!1811)
* Reallow score chains from rolling (!1833)
* Interpolate console animation, make con_height update on the fly (!1878)
* Allow targeting invulnerable bosses & don't break targeting when they take damage (!1917)
* Add HUD icons for timed NiGHTS powerups (!1949)
* Don't attract bomb spheres with Attraction shield (!1953)
* Small text colormap tweaks (!1971)
* Optimize field lookups in Lua metatables (!2024)
* Simplified the way invcolor works (!2027)
* Using an unlockable Level Select now gives you the option to use it again from the pause menu. (!1756)
* Raised several unlockable-related limits. (!1988)
* Allow targeting invulnerable bosses. (!1917)
* Don't break targeting when bosses take damage. (!1917)
* Added HUD icons for timed NiGHTS powerups if powerup display is enabled. (!1949)
* Bomb spheres are no longer attracted by the Attraction shield. (!1953)
* Score chains can be gotten from rolling again. (!1833)
* Interpolated console animation. (!1878)
* Drop shadows are now interpolated while their caster is scaling. (!1986)
* Added extra colors to the NiGHTS Link palette cycle past 600. (!1811)
* 3D model improvements: (!1840)
* Support sprite x/y offset, adjusts the model position sideways relative to the camera.
* Support sprite x/y scale; x scale adjusts model horizontal scale, y scale adjusts model vertical scale.
* Sprite roll angle is now handled like Software, where the roll is done relative to the camera.
* Note for modders: `rotaxis` in spriteinfo has been deprecated, as it is now handled automatically.
* Console improvements:
* Added "true" and "false" as possible values for console variables. (!2049)
* Show list of aliases when typing "alias" alone. (!2055)
* Replace existing aliases if there's already one with the same name. (!2055)
* Changed function key behaviors:
* F10 now toggles fullscreen and windowed mode. There is also now a separate resolution used for windowed mode.
* F11 now toggles the current renderer.
* Netcode improvements:
* Drastically improved input pacing when connected as a client with interpolation turned on. (!2046)
* The game puts you in a "waiting for next level" state when trying to join on intermission, avoiding a desync. (!2019)
* Prevent connection timeouts during fade transitions. (!2019)
* Clients are now consistently given a connection timeout when their delay reaches past the end of the backup buffer. (!2019)
* Refresh all character sprites when new Sprite2s are added. This makes characters able to supply animations for level packs without being load order dependent. (!1750)
* Binary map format: Plane scroller & wind/current/pusher improvements: (!1811)
* Adds new linedef actions 516-518, 526-528 and 536-538, for scrolling/carrying both floors and ceilings simultaneously.
* Checking the Effect 6 flag on these actions allows setting the scrolling/carrying/pushing speed/strength via the front X offset, instead of the linedef's length.
* SOC: Custom gametypes with both teams and lives now shows your lives count. (!1579)
* SOC: Simplified the way the `invcolor` property for skincolors works. (!2027)
* Lua: Overriding SOC actions using `super` now respects other loaded mods. (!1737)
* Lua: Optimized `LUA_EnumLib` constant value access. (!1721, !2017, !2034)
* Lua: Optimized field lookups in metatables. (!2024)
* Small tweaks were made to text colormaps for custom graphics. (!1971)
* Crash handler messages were made more descriptive. (!2042)
## Bugfixes
* Fix IPv6 (!1612)
* Allow adding cosmetic addons mid-save (!1877)
* Handle other sidedef correctly when attaching to a wall to climb it (!1908)
* Refactor P_CheckSector to prevent crushing oddities with multiple players (!1946)
* Fix linedef action 420 being unable to lower light levels properly by default (!1977)
* Fix segfault when P_RemoveMobj is called within A_FaceTarget action (!1974)
* Fix segfault when shields are removed after thinking (!1975)
* Fix segfault when going up steep slopes in rare cases (!1978)
* Fix segfault when Crushstaceans hit a player with Armageddon shield (!1980)
* Fix I_GetFreeMem for 64-bit platforms (!1982)
* Fix scrolling backgrounds (!1985)
* Interpolate shadows when scaling mobjs (!1986)
* Fix flung spheres not using the blue sphere collection effect (!1995)
* Fix camera interpolation never being reset (!2008)
* Fix collision issues with thinner and wider players (!2013)
* Fix segfault when ghost dies from a death pit (!2026)
* Fixed Mario mode's invincibility & NiGHTS score sprite color cycling (!2027)
* Fixed IPv6 support being broken. (!1612)
* Allowed adding cosmetic addons mid-game. (!1877)
* Improved collision detection & slope interactions for players with different sizes than normal. (!2013)
* Fixed linedef action 420 being unable to lower light levels properly by default. (!1977)
* Fixed linedef actions 319 and 320 being unable to use the last unlockable. (!1988)
* Refactor `P_CheckSector` to prevent crushing oddities with multiple players. (!1946)
* The Emblem Radar now automatically turns off when all emblems are collected in Emerald Hunt maps. (!1946)
* Updated a line slope error message to be more helpful. (!2040)
* No longer crash when getting a character with missing sprite frames. (!2039)
* Spikes no longer eject non-solid objects. (!1674)
* Fix instances of string arguments being used as constants being converted incorrectly by the UDMF converter. (!2061)
* Fix cutscenes being desynced in netgames since v2.1. (!2022)
* Fix A_FishJump regression in binary format maps. (!2035)
* Fix 0 being considered a valid linedef executor tag for bosses. (!2037)
* Fix a few instances of linedef exeuctors being canceled early. (!1944)
* Fix Mario Mode's invincibility color cycle not working. (!2027)
* Fix NiGHTS score color cycle not working. (!2027)
* Fix scrolling menu backgrounds overflowing. (!1985)
* Fix flung spheres not using the blue sphere collection effect. (!1995)
* Fix camera interpolation resets. (!2008, !2011)
* Fix `con_hudlines`'s value being off by one. (!1931)
* Fix time overflow with `con_hudtime`. (!1931)
* Fix wall climbing not taking into account the other side of the wall. (!1908)
* Fix credits zig zag being colored differently than in-game. (!1746)
* Fix inaccurate FPS counter. (!2047)
* Fix crash when fading music. (!2043)
* Fix crash when a ghost dies from a death pit. (!2026)
* Fix crash when `P_RemoveMobj` is called within `A_FaceTarget` action. (!1974)
* Fix crash when shields are removed after thinking. (!1975)
* Fix crash when going up steep slopes in rare cases. (!1978)
* Fix crash when Crushstaceans hit a player with Armageddon shield. (!1980)
* Fix crash when attempting to set read-only properties on players. (!2032)
* Fix crash when exiting game with devmode automap open. (!2044)
* Fix `I_GetFreeMem` for 64-bit platforms. (!1982)
* Removed the last remaining traces of a temporary FOF type from UDMF development. (!2038)
\ No newline at end of file