Bugfixes
- Fixed levels being unlocked in Record Attack just from watching it on the titlescreen. (!1177 (merged))
- Fixed Special Stages being shown in the Co-op category of the level select, if you were playing another gametype. (!1180 (merged))
- Fixed ordinary players being able to skip credits in netgames and desync. (!1182 (merged))
- Fixed GIF recording crashing if Local Color Table was disabled. (!1196 (merged))
- Fixed inconsistent fade when holding Pause to retry in Record Attack. (!1193 (merged))
- Fixed a crash with loading ghosts in Record Attack. (!1203 (merged))
- Increased accuracy of momentum values in replays, which should reduce some desyncs, such as on slopes and moving platforms. (!1157 (merged))
- Increased accuracy of player height changes in replays. This should also reduce desyncing. (!1241 (merged))
- (Lua) Fixed
COM_BufInsertText
sometimes being delayed by a previous wait
command. (!1207 (merged))
- The selected save file is always drawn over the others. (!1228 (merged))
- Ghosts copy sprite rotation. (!1211 (merged))
-
objectplace -silent
works again. (!1214 (merged))
- Fixed a crash with UDMF maps. (!1221 (merged))
- Fixed inconsistent speeds when sliding across walls. (!1232 (merged))
- Fixed a crash that would happen on dedicated servers if the last player left during a Special Stage. (!1240 (merged))
- (Lua) Let
MobjSpawn
hooks modify object scale for mapthings. (This also fixes the size of the arrows above buttons in Castle Eggman 3.) (!1251 (merged))
- Fixed FOF planes sometimes being drawn over sprites when they should be behind. (!1235 (merged))
- Fixed
reloadbans
and clearbans
. (!1215 (merged))
- Fixed a lot of things not resetting when restarting Marathon Mode in the first level. (!1252 (merged))
- Fixed a number of spin related bugs, especially with regards to no spin characters. (!1256 (merged))
- (Lua) Fixed bitwise NOT causing a crash if used on non numeric values. (!1262 (merged))
- Fixed no spin getting crushed when rolling into tight spaces. (!1267 (merged))
- Mario 1-up sound always plays in Mario mode. (!1272 (merged))
- Fixed
TC_DASHMODE
being inaccessible to v.getColormap
. (!1273 (merged))
- Let non player objects apply
CR_PLAYER
. (!1274 (merged))
- Fixed forced super transformation lowering ring count to 50. (!1278 (merged))
- Fixed a division by zero by Metal Sonic (fight ver.) (!1283 (merged))
- Fixed
MF_FIRE
objects being allergic to lava. (!1287 (merged))
- Fixed Brak's electric barrier's size being too big. (!1294 (merged))
- Fixed minecart indifferent saloon doors being infinitely tall. (!1296 (merged))
- Fixed cropped patch drawing in OpenGL. (!1297 (merged))
- (Lua) Fixed the
MapChange
hook not firing for demos. (!1319 (merged))
- Fixed SPC music not looping in newer versions of libgme. (!1302 (merged))
- Fixed animated skin colors in OpenGL I guess. (!1301 (merged))
- Fixed firey spindash dust when using an Elemental Shield not being fullbright. (!1317 (merged))
- Fixed a crash when converting doom patches. (!1324 (merged))
- Fixed the Amy NPC spawning in mario mode if the player is also Amy. (!1330 (merged))
- (Lua) Fixed trying to access an invalid field on skincolors returning the field name instead of nil. (!1351 (merged))
- Fixed an epic division by zero. (!1374 (merged))
- (Lua) Fixed objects with
MF2_LINKDRAW
causing crashes when their scale differed from that of their tracer
. (!1420 (merged))
- Fixed inconsistencies with Fang's bounce height in reverse gravity. (!1373 (merged))
- Fixed incorrect dropshadow projection for papersprite objects. (!1408 (merged))
- (Lua) Fixed sector tags returning negative values. (!1417 (merged))
- Fixed a crash that could occur if an object using
A_Custom3DRotate
has no target. (!1430 (merged))
- Fixed an error when loading addons with custom savedata via the command line (notably, when testing from Zone Builder). (!1427 (merged))
- Fixed uppercase letters not sending through a dedicated server console. (!1449 (merged))
- (Lua) Fixed a crash that occured when a player with the
MT_METALJETFUME
followobject had their dashmode set higher than DASHMODE_MAX
.
- Fixed exploit in A_CustomPower that allowed for arbitrary memory access
Optimizations
Lua Features
- Sectors may now be used as an origin for sound related functions. (!1144 (merged))
- Added
MODVERSION
. (!1158 (merged))
- Added the
PlayerCmd
hook from Kart. This hook allows you modify the ticcmd locally, before it is sent to the server. (!1072 (merged))
- Added
v.getStringColormap
to hud hooks. (!1111 (merged))
- Added
P_CeilingzAtPos
. (!1164 (merged))
- Added
CV_Set
, CV_StealthSet
and CV_AddValue
to set cvars directly from Lua. (!1205 (merged))
- Added polyobject support. (!1140 (merged))
- Added
gamestate
. (!1229 (merged))
- Added
registerMetatable
and userdataMetatable
. More details on the merge request: (!1224 (merged))
- Added a bunch of music related functions. (!1230 (merged))
- Added a bunch of global variables:
emeralds
, token
, gravity
, stoppedclock
, displayplayer
, mapmusname
, mapmusflags
, skincolor_redteam
, skincolor_blueteam
, skincolor_redring
and skincolor_bluering
. (!1233 (merged))
- Added shorthand aliases for various fixed-point math functions. (!1247 (merged))
- Added
selectheading
to mapheader_t. (!1268 (merged))
- Added
player.skin
and player.availabilities
. (!1269 (merged))
-
player.lastlinehit
and lastsidehit
are now usable outside of climbing on walls, where they will represent the last wall collided with. (!1271 (merged))
-
GameQuit
hooks are now passed a boolean which tells if the hook is being called before the program closes. (!1276 (merged))
-
skin.sprites
(!1238 (merged))
- Added multitag library, which allows reading and manipulation of tags on mapthings, lines and sectors; also added tag iterator functions.(!1292 (merged))
- Changed the conditions under which players use their
spinheight
; added "PlayerHeight"
and "PlayerCanEnterSpinGaps"
hooks. (!1432 (merged))
Miscellaneous
- Attraction Shield's homing attack may now be chained. (!1109 (merged))
- Aliases can be autocompleted in the console. (!1113 (merged))
- Added a
-splitscreen
command line parameter. (!1175 (merged))
- Amy is no longer Toad. (!1183 (merged))
- The
addfile
command now supports adding multiple files. (!1176 (merged))
- A bunch of netvars are now saved to the config. Only the server will save a netvar's current value. Clients will save the value prior to joining the server. (!1179 (merged))
- The player will now smoothly slide across a sloped ceiling. (!1192 (merged))
- Replaced
renderstats
with perfstats
. This shows timings for rendering, game logic and Lua ThinkFrame. (!1186 (merged))
- Added
SF_CANBUSTWALLS
. Characters require this skin flag in order to break bustable walls like Knuckles. Therefore the bustable behavior is no longer tied to CA_GLIDEANDCLIMB
. (!1163 (merged))
- Updated the credits. (!1200 (merged))
- Added a dash state for Tails overlay. (!1210 (merged))
- Let more graphics lumps be replaced clientside. (!1189 (merged))
- Added a
gr_allowclientshaders
netvar which allows the server to disable clientside custom shaders. (!1181 (merged))
- UDMF multitagging support. (!1097 (merged))
- Added support for sprite translation, stretching, blending and "floor sprites" (splats). (!1257 (merged))
- Let
PLAYPAL
serve more than 14 palettes. Flashpals also apply while the game is paused. (!1255 (merged))
- The original camera movement is preserved in demo playback. You can revert to the old style camera with the
freedemocamera
cvar though. (!1243 (merged))
- Flame Shield and Thunder Shield now put no spin characters into a spin state when using the ability. (!1220 (merged))
- PK3 files with 'holes' may no longer be loaded. The reasoning for this change is that such files can be exploited to show different contents depending on the tool, which could've been used to hide innapropriate or malicious content. (!1275 (merged))
- Updated the credits. (!1308 (merged))
- Added downscaling for APNG. (!1197 (merged))
- Special text is printed when the player begins the final lap in Circuit mode. (!1303 (merged))
- Element shield's spin flame trail takes the player's color in competitive gametypes. (!1312)
- SOC now supports caret colors
^A
- ^F
. (!1295 (merged))
- Ring drain sectors play the ring depletion sound. (!1315 (merged))
- Added a
SF_NOSHIELDABILITY
skin flag. This flag prevents activating shield abilities for that character. It also disables the attraction shield's targetting arrow. (!1331 (merged))
- Extended font remaps to 16 continuous colors. (!1202 (merged))
- The
rejointimeout
cvar is now enabled by default, has a visual indicator in the tab HUD, and can be adjusted from Server Options. (!1403 (merged))
- Pausing the game is no longer possible during the score tally screen in Marathon Mode. (!1416 (merged))
- The game now prints a stack backtrace to
crash-log.txt
upon crashing on Mac/Linux. (!1288 (merged))
- The game now resends the whole gamestate when resyncing a player.
Resource Files
- Fixed bugs in the following levels:
- Greenflower 1 (#317 (closed), #439 (closed), #480 (closed))
- Techno Hill 2 (#533 (closed))
- Deep Sea 1 (#242 (closed), #344 (closed), #375 (closed), #513 (closed), MB link)
- Deep Sea 2 (#495 (closed), MB link)
- Castle Eggman 1 (#358 (closed), MB link)
- Castle Eggman 2 (#476 (closed), #500 (closed), #502 (closed), #513 (closed), MB link)
- Arid Canyon 1 (#479, MB link)
- Arid Canyon 2 (#423 (closed), #425 (closed), #490 (closed), #526 (closed), MB link 1, MB link 2)
- Red Volcano 1 (#446 (closed), #504 (closed), MB link)
- Egg Rock 2 (#456 (closed), #537 (closed), MB link 1, MB link 2, MB link 3)
- Aerial Garden (MB link 1, MB link 2)
- Toxic Plateau (#483 (closed))
- Flooded Cove (MB link)
- Dusty Wasteland (#460 (closed), #509 (closed))
- Black Hole (MB link 1, MB link 2)
- Alpine Paradise 1 (#454 (closed))
- Fixed loop points in Alpine Paradise 1 & 2 and Dream Hill's music tracks.
- Added acronym keywords to Co-op levels. For use with the map command, so e.g. you can warp to Green Flower 1 with
map GFZ1
.
Regressions fixed since 2.2.9 Prerelease 1
- (Lua) Removed the P_AproxDistance deprecation warning. (!1402 (merged))
- (Lua) The
Polyobjects
global array is now all in lowercase (polyobjects
) like all other Lua globals. (!1403 (merged))
- (Lua) Changes to the
player.speed
calculation were reverted. (!1418 (merged))
- Fixed animated skin colors not working for common translation types. (!1421 (merged))
- Fixed skybox HOMs in CEZ2. (!1424 (merged))
- Fixed fades for custom intros. (!1423 (merged))
- Fixed models briefly displaying with the wrong color on level load. (!1425 (merged))
- Fixed special stage tokens displaying weirdly during intermission in OpenGL. (!1412 (merged))
- Fixed floorsprites (splats) sometimes facing the wrong way or displaying jumbled. (!1443 (merged))
- Fixed spindash paths being accessible by Amy and Fang. (!1432 (merged))
- Fixed completely black window when entering a level when switching from OpenGL to Software. (!1440 (merged))
Regressions fixed since 2.2.9 Prerelease 2
- (Lua) Altered blendmodes to act more consistently with each other and translucency levels. (!1446 (merged))
- Fixed a crash that could occur if the renderer was switched from Software to OpenGL during score tally. (!1448 (merged))
- Fixed a crash that could occur when exiting a special stage on a dedicated server. (!1451 (merged))
- Fixed a crash that could occur due to garbage flag patches cached between Capture the Flag matches. (!1453 (merged))