GZDoom 4.10.0 released

News about ZDoom, its child ports, or any closely related projects.
[ZDoom Home] [Documentation (Wiki)] [Official News] [Downloads] [Discord]
[🔎 Google This Site]

Moderator: GZDoom Developers

User avatar
Graf Zahl
Lead GZDoom+Raze Developer
Lead GZDoom+Raze Developer
Posts: 49146
Joined: Sat Jul 19, 2003 10:19 am
Location: Germany

GZDoom 4.10.0 released

Post by Graf Zahl »

Notice: The survey is currently CLOSED. GZDoom 4.10.0 contains no survey code.

Please do not post bugs or issues in release threads! Click here

Download (OpenGLES 2.0 and higher Highlights:
  • Map<K, V> types in ZScript
  • Quaternion support for model rotations
  • Improved IQM support

Details
  • Italian language translation is now complete
  • Make the new scaled angle changes at frame rate opt-in behind new flag `SPF_SCALEDNOLERP`.
  • Set up interpolated camera angle changes to occur at framerate when all conditions in `P_NoInterpolation()` are met.
  • Make view angles interpolate on a separate flag to the one that forces interpolation for the entire frame.
  • Map<K,V> and MapIterator<K,V> for ZScript
  • Structified A_SpawnParticle/Ex
  • Look up named frames using the Animation ID (if any).
  • Allow Disabling of XY Billboard for Particles
  • Added Method For Getting Portal Group Count
  • Allow Getting Portal Group Offsets
  • Fixed A_Changemodel crash from invalid modeldef names
  • Fix SNDINFO $rolloff always changing global rolloff
  • Fix GC ignoring DynArrays inside fixed Arrays
  • AST debug cleanup
  • fixed: The raw texture caching in the texture manager did not work. This erroneously checked for FrontSkyLayer.
  • Allow assigning IQM frames by animation name plus frame offset.
  • Added animation support for OptionMenus
  • Fix crash if Animation is not explicitly assigned in MODELDEF.
  • internal cleanup of sound code
  • allow SNDINFO to declare sound mappings by using 'sound = soundfle' syntax.
  • process events every frame as well to ensure that menus can run at any framerate
  • Fix incorrect pixelratio handling on rotated models.
  • Added Font and TextureID types to Option and Image Scroller items (List items already have these)
  • Added "Class" instruction for Image Scrollers
  • Added ability for Option items to read in their OptionMenuDescriptor (List and Image Scroller items already have this)
  • Added "ForceList" instruction for Lists so that skill, playerclass, and episode menus don't get overridden
  • Fix checking of wrong variable in String..Float concatenation
  • Clearscoped getters for map data
  • CustomMessageBox
  • fix colormap remapping when colormap entries may have fullbright entries which should not be considered duplicates
  • stop all sound before showing ENDOOM.
  • disabled shortcutting the intermission code if no summary screen is wanted. This also disabled all cutscenes being attached to the completed map.
  • added 'foreach' loop to ZScript.
  • implementation of Quaternion type in ZScript
  • GLES: Added IQM bone support.
  • SendConsoleEvent function for EventHandlers
  • Future-proof particles by resetting them completely when replaced.
  • added PlusZ intrinsic to Vector3 and ToVector intrinsic to numeric values. These just mirror features of the internal vector classes.
  • added LengthSquared and Angle intrinsics for all vector types, also allow calling VectorAngle with a full vector as a single parameter.
  • Add PushSound property and Slide state
  • Added PS_REPLACE flag for A_SpawnParticle(Ex). When used, new particles that spawn when the limit is reached will replace the oldest particle.
  • add Vector4 to ZScript
  • avoid infinite portal recursion.
  • fix uncaught exception that rarely occurred with the intermission screen that would vm-abort out from any attempt to enter a level
  • Exposed LevelLocals' LookupString functionality
  • Improved Slam functionality.
  • Normalize angle in AngleToACS. Fixes GetActorAngle returning negative or large values with no range limit.
  • Enable ANIMDEFS for particles
  • add some more blacklisted cvars to defcvars
  • fixed background setup for intermissions to apply tiling only where intended.
  • removed the unused BaseBlend* variables and the testblend CCMD.
  • added a compile option to fully disable the software renderer. This is mainly for new games which have been designed for hardware rendering.
  • add the following command line parameters:
  • -noextras: disable loading of any extras (lights, brightmaps, widescreen)
  • -nolights: disable loading of lights
  • -nobrightmaps: disable loading of brightmaps
  • -nowidescreen: disable loading of included widescreen assets
  • fixed bad index check in CanWipe. This can be called with index == -1, which should check the first element of the intermission.
  • GC: Have a real finalizer stage for destroying objects instead of mixing them in to the sweep stage.
  • GC: Base GC rate on a running average of the allocation rate instead of basing it on the amount of time taken since the last sweep started.
  • More GC stats for better tweaking.
  • added characters U-0404 and U-0490 for Ukrainian language support.
  • reworked all accented characters of Doom's SmallFont. Also adding a few new ones that were easy to do
  • when converting to a portable install, flag the current session accordingly.
  • changed CalculateBones to receive the bone component data directly instead of the owning actor.
  • fixed FileExists check for -loadgame. This was done before the current savegame path was known so it always errored out.
User avatar
HorseJockey
Posts: 10
Joined: Sun Nov 27, 2022 7:52 pm
Preferred Pronouns: They/Them
Location: Self made purgatory.

Re: GZDoom 4.10.0 released

Post by HorseJockey »

Awesome, thanks for all your hard work. "Allow assigning IQM frames by animation name plus frame offset." Does this mean that we can now write the name of the animation we have in the action editor of Blender in Modeldef? So instead of:
FrameIndex 0000 A 0 0

we can write:
(Name of Action Editor animation) 0000 A 0 0

Apologies if I am not understanding that correctly.
User avatar
Rachael
Posts: 13741
Joined: Tue Jan 13, 2004 1:31 pm
Preferred Pronouns: She/Her

Re: GZDoom 4.10.0 released

Post by Rachael »

Tag for 4.10 is not pushed.
User avatar
Graf Zahl
Lead GZDoom+Raze Developer
Lead GZDoom+Raze Developer
Posts: 49146
Joined: Sat Jul 19, 2003 10:19 am
Location: Germany

Re: GZDoom 4.10.0 released

Post by Graf Zahl »

Sure it is. Without the tag I couldn't have made the release.
User avatar
Rachael
Posts: 13741
Joined: Tue Jan 13, 2004 1:31 pm
Preferred Pronouns: She/Her

Re: GZDoom 4.10.0 released

Post by Rachael »

Oh - for some reason it didn't come when I did a git fetch. But it is very clearly there. Well - my mistake. Don't know what went wrong, there, sorry.
User avatar
CandiceJoy
Posts: 95
Joined: Thu Jul 13, 2017 3:04 pm
Preferred Pronouns: She/Her
Operating System Version (Optional): Win11, MacOS Ventura
Graphics Processor: Apple M1

Re: GZDoom 4.10.0 released

Post by CandiceJoy »

Linux and Mac links still go to 4.9.0 :)
User avatar
Graf Zahl
Lead GZDoom+Raze Developer
Lead GZDoom+Raze Developer
Posts: 49146
Joined: Sat Jul 19, 2003 10:19 am
Location: Germany

Re: GZDoom 4.10.0 released

Post by Graf Zahl »

Yes, they haven't been built yet.
User avatar
CandiceJoy
Posts: 95
Joined: Thu Jul 13, 2017 3:04 pm
Preferred Pronouns: She/Her
Operating System Version (Optional): Win11, MacOS Ventura
Graphics Processor: Apple M1

Re: GZDoom 4.10.0 released

Post by CandiceJoy »

Graf Zahl wrote: Mon Dec 05, 2022 2:31 am Yes, they haven't been built yet.
Built the mac one for ya ^_^ :Dhttps://www.dropbox.com/sh/e157pzkhb7j5 ... _Q54a?dl=0
User avatar
Graf Zahl
Lead GZDoom+Raze Developer
Lead GZDoom+Raze Developer
Posts: 49146
Joined: Sat Jul 19, 2003 10:19 am
Location: Germany

Re: GZDoom 4.10.0 released

Post by Graf Zahl »

Thanks for the offer - but let's _mental_ do this. He's got his special setup to ensure everything is correct. Knowing Apple I am dead certain that if we use a differently set up package it will cause major headaches.
I can already see that his binary is much larger and it contains signing information so I seriously could not publish this in good faith without testing it first - and I no longer have a Mac available for testing.
User avatar
Xeotroid
Posts: 442
Joined: Sat Jun 23, 2012 7:44 am
Graphics Processor: nVidia with Vulkan support
Location: Czech Rep.

Re: GZDoom 4.10.0 released

Post by Xeotroid »

What is Map<K,V> about? Is it a generic type dictionary that allows for non-string types? Also I bet someone is already itching to use quaternions for some Descent-esque 6DOF movement. Very nice.
User avatar
kevansevans
Spotlight Team
Posts: 429
Joined: Tue Oct 05, 2010 12:04 am
Graphics Processor: nVidia with Vulkan support

Re: GZDoom 4.10.0 released

Post by kevansevans »

Can we make it a norm that whenever new features are brought into ZScript that it includes an example snippet on how it's used? Kinda tired of waiting for the wiki to update, or having my questions be missed/ignored over on the discord server. I've tried a decent handful of combinations on how to make these new for each loops, and none of them have worked. (This was answered as I was making this reply, but my point still stands)
User avatar
Marisa the Magician
Posts: 3886
Joined: Fri Feb 08, 2008 9:15 am
Preferred Pronouns: She/Her
Operating System Version (Optional): (btw I use) Arch
Graphics Processor: nVidia with Vulkan support
Location: Vigo, Galicia

Re: GZDoom 4.10.0 released

Post by Marisa the Magician »

HorseJockey wrote: Sun Dec 04, 2022 11:12 am Awesome, thanks for all your hard work. "Allow assigning IQM frames by animation name plus frame offset." Does this mean that we can now write the name of the animation we have in the action editor of Blender in Modeldef? So instead of:
FrameIndex 0000 A 0 0

we can write:
(Name of Action Editor animation) 0000 A 0 0

Apologies if I am not understanding that correctly.
Actually it's Frame 0000 A 0 "name:frame"
Blue Shadow
Posts: 5023
Joined: Sun Nov 14, 2010 12:59 am

Re: GZDoom 4.10.0 released

Post by Blue Shadow »

kevansevans wrote: Mon Dec 05, 2022 1:13 pm Can we make it a norm that whenever new features are brought into ZScript that it includes an example snippet on how it's used? Kinda tired of waiting for the wiki to update, or having my questions be missed/ignored over on the discord server. I've tried a decent handful of combinations on how to make these new for each loops, and none of them have worked. (This was answered as I was making this reply, but my point still stands)
The documentation of that feature has been there since it was added to the engine.
User avatar
kevansevans
Spotlight Team
Posts: 429
Joined: Tue Oct 05, 2010 12:04 am
Graphics Processor: nVidia with Vulkan support

Re: GZDoom 4.10.0 released

Post by kevansevans »

Blue Shadow wrote: Mon Dec 05, 2022 4:53 pmThe documentation of that feature has been there since it was added to the engine.
A few problems, however. Why would this be in the Actor States page, and not say in a dedicated Zscript topic? https://zdoom.org/wiki/ZScript#ZScript_topics. I'm not thinking about this functionality in a niche section of the language, it's a basic concept one would expect a language to have.

On top of that, searching for it isn't actually useful. Googling "zscript foreach" verbatim yields this for me: https://imgur.com/a/wmyaKfC, and while googling "zscript for each" (notice the space) *does* return a result that contains an answer: https://imgur.com/a/EWoXdah, but as I said, why would I be looking in ACTOR STATES to figure out the syntax for a for each loop?

So I could just use the wiki's search as well, but same two problems before of "Why would I look in ACTOR STATES?" and a single space makes the entire difference on whether or not that single result shows.

Something like a for each loop needs to be front and center in the documents, and these patch notes should offer some links or snippets to demonstrate their use.
User avatar
Nash
 
 
Posts: 17456
Joined: Mon Oct 27, 2003 12:07 am
Location: Kuala Lumpur, Malaysia

Re: GZDoom 4.10.0 released

Post by Nash »

That info being on an Actor States page seems a little out of place, I do agree.

Return to “ZDoom (and related) News”