Notable features since 3.2.1:
- new timer code, GZDoom now appears a lot smoother in interpolated frames
- more bugfixes, including some for non-Windows platforms
- improve speed for ARMv7 processors by setting tuning options to the Cortex-a7 CPU (for Raspberry Pi 2)
- Several ZScript extensions and fixes
- Improved OpenGL profile selection on Linux
- Rather than giving version info, GZDoom now displays the name of the game you are currently playing in the window title. This can be disabled via i_friendlywindowtitle
- Implemented unicode handling in some functions
- improved handling of temporary files on timidity++
- added latch keyword to CVARINFO
- new grenade and ice shard sprites, removed non-GPL copyrighted assets
More-complete changelog since 3.2.1:
- let the 3 relevant text functions handle UTF-8 strings
These functions are: DCanvas::DrawTextCommon, V_BreakLines and FFont::StringWidth.
This will allow strings from UTF-8 encoded assets to display properly, but also handle the OpenAL device name on international systems, as this will be returned as an UTF-8 string.
Due to backwards compatibility needs the decoding function is rather lax to allow both UTF-8 and ISO 8859-1 to pass through correctly - and this also implies that it will allow mixed encodings which may happen if strings from different sources get concatenated. - sanitization of temporary file stuff for Timidity++.
- do not use the global temp directory. Instead create one in the AppData folder.
- removed lots of unneeded code from tmpfileplus.
- use C++ strings in there.
- fixed potential memory leak in M_VerifyPNG.
- Fixed incomplete ACS string pool state after loading of saved game
- Added 'static' to CreateCeiling (base.txt)
- Fix 'Requested invalid render buffer sizes' when executing the reverbedit command from fullscreen
- fixed upscaled fuzz drawing in swrenderer
- UMAPINFO parser, including some convenience additions to FScanner.
- fix shader targets being case sensitive
- i_friendlywindowtitle cvar: Show name of the game instead of GZDoom's version/last commit data
- Fixed applying of brightmaps to overridden textures
- Fixed detection of the first entry from internal IWADINFO
- fixed: high uptime was causing overloads in uint32_t and float structures (float losing loss of precision) - this caused any computer online for more than a few days to experience jankiness with internal animations such as rotations and shader timers. Unfortunately, this sounds the death knell for 32-bit platforms, since uint64_t is now required in time-critical structures, which will hurt performance tremendeously, but 64-bit systems will be unaffected.
- exported P_Thing_Warp to ZScript.
- Inside the renderer, use only the time value being passed to RenderView.
- get the timer used for animation only once at the very beginning of the frame and pass it on to the renderer to avoid any dependencies on the timer's implementation.
- Exposed String.Remove() function to ZScript
- Upgrade timer code to use nanosecond accuracy internally
- Fixed return state of player entered event
- Switch to C++11 steady clock, and Remove the platform specific timer implementations
- add doom e1m6 to rebuildnodes list.
- Fix freeze interpolation bug
- added latching CVARs to CVARINFO
- fixed: put limits on A_SoundVolume
- Improved OpenGL profile selection in SDL backend
- Extended LineAttack() with offsets and new flags
- Place the HUD model correctly in the world so that shader light calculations work
- Removed unused parameter from several functions in FStateDefinitions class
- Fix wrong math for model/light distance check
- Added runtime check for negative array indices in VM
- Added implicit scope for if/else, while and do/while statements in ZScript
Scope is added only for variable or constant definition so it will no longer leak to outer scope - Added string representation of 'static const' token - No more 'Unknown(-141)' in 'Expecting ...' error message
- Extended String.LastIndexOf() with endIndex parameter
- de-init DoomStartupInfo on 'restart' ccmd so that the window title always contains the correct game information.
- Added workaround for MSVC 2017 internal compiler error
- Added Wads.CheckNumForFullName() to ZScript
- Added Wads.ReadLump() to ZScript
- Added Wads.FindLump() to ZScript
- Exposed string split functionality to ZScript
- Added ability to split FString on tokens
- Fixed potential crash in resolving of multiple assignment
- Fixed wrong owner for *evillaugh sound
- improve speed for ARMv7 processors by specifying hardware float calculations, and tuning it specifically for the Cortex-a7 CPU (for Raspberry Pi 2).
- Made dynamic array's Find() and Max() functions contant
- Added ZScript functions GetBool() and SetBool() to CVar class
- Fixed non-portable usage of __solaris__ preprocessor definition
- Added ability to get texture name from script
Use TexMan.GetName(TextureID tex) member function - removed the ugly grenades from the extra .pk3, now that the main file contains a much nicer and unproblematic replacement.
- added 'classicflight' user cvar which allows players to move forward and backward without pitch when flying
- Fixed out of bound read in zip file loader
- New grenade sprites
sprites from Eriguns1:
https://github.com/XaserAcheron/eriguns - added new Ice Shards, and removed the zd_extra version
- removed