pkgsrc-WIP-changes archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

gzdoom: update to gzdoom-4.10.0



Module Name:	pkgsrc-wip
Committed By:	Yorick Hardy <yorickhardy%gmail.com@localhost>
Pushed By:	yhardy
Date:		Thu Apr 27 14:30:24 2023 +0200
Changeset:	a8ba93c4ab4666fed9c391be5d86c1e081b05474

Modified Files:
	gzdoom/Makefile
	gzdoom/distinfo
Added Files:
	gzdoom/patches/patch-src_common_console_c__console.h
	gzdoom/patches/patch-src_common_platform_posix_sdl_i__system.cpp

Log Message:
gzdoom: update to gzdoom-4.10.0

GZDoom 4.10.0

  * 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.

GZDoom 4.9.0

Inportant note to Windows users:
GZDoom 4.9.0 changes where gzdoom.ini is stored. Unlike older
versions this one will always prefer the system's user folder and
place the INI in Documents/My Games/GZDoom if no INI is found. This
was done to bring handling in line with current guidelines and to
make it easier for commecial games that often get installed into
a folder without write access. If you still want to store the INI
in your game folder you have to create an empty file called
GZDoom_portable.ini there before launching. If you still have an
old INI in your folder, GZDoom will ask what to do with it, you
can either move it to the user folder or convert to a portable
install.

Change of savegame storage
This version introduces per-IWAD savegame folders. If you have old
savegames you still intend to use, please wait with the update
until you can safely delete them.

Highlights

  * IQM bone model support
  * textured particles

Details

  * added target check to A_MaulerTorpedoWave.
  * fixed: P_SpawnMapThing may not call playsim code.
  * added PARAM_NULLCHECK to the block iterator creation functions.
  * added [[noreturn]] to several functions that always throw exceptions.
  * Particle Rolling
  * Add Textured Particles
  * Add GFF_NOEXTCHANGE to Phasing Zorcher flash. The Plasma Rifle does not
    light the player's sprite, so we must assume the Phasing Zorcher also
    should not.
  * Fix HUD models not drawing if MODELDEF has been changed with A_ChangeModel
  * Fix inconsistent distance and hit position on traces that skip everything.
  * Fix canvas textures getting clipped by wrong scissor box
  * Fix vulkan backend clearing the canvas textures to undefined contents
  * made DMover and subclasses non-abstract so they can be inherited from.
  * added option to show hub and episode names on the alt HUD.
  * reworked CVARs to not use a linked list and to be initialized manually.
  * marked a few Printf calls in critical error paths as PRINT_NONOTIFY.
  * fixed: R_LoadVoxelDef did not fully initialize the voxel descriptor it
    creates.
  * don't crash on null pointers in V_GetFont.
  * zero the velocity of crunched sprites. Since their size is zeroed, they
    are no longer subject to collision detection and may slide out of the level
    otherwise.
  * don't crash when destroying incomplete textures. This can happen during
    TEXTURES parsing in case of an error.
  * try to keep the engine stable for as long as possible if a VM exception
    occurs in OnDestroy while running a cleanup. This will still crash, but
    run long enough for the exception message to be visible.
  * fixed F2DDrawer::SetClipRect.
  * added vanilla donut handling to compat_floormove.
  * Fixed: voxel models pitch/roll properties weren't initialized correctly
  * Added QF_SHAKEONLY. The QF_SHAKEONLY flag changes the behavior of
    earthquakes with a damage radius, so that they only shake actors around,
    without also harming them.
  * Added QF_AFFECTACTORS. The QF_AFFECTACTORS flag makes the thrusting and
    harming of damaging earthquakes also affect monsters.  Monsters with
    DONTTHRUST will not be flung around by earthquakes.
  * Added the QF_GROUNDONLY flag. The QF_GROUNDONLY flag makes earthquakes
    only shake the player while they are standing on the ground.
  * fixed DrawLine commands by giving them a consistent floating point
    interface.
  * heretic: e2m7 - missing texture
  * fixed direct native interface for Draw(Thick)Line.
  * fixed: The main loop never checked the cutscene flag for disabling wipes.
  * Sync movie video playback to the audio, when possible
  * Fix washed out colors in Vulkan HDR mode
  * normalize the timer with the app start, not the epoch. This ensures
    smaller values and less wraparounds with integer values in scripts.
  * un-deprecated the integer MSTime variant. Due to undefined downconversion
    rules from double to int, there is no way to safely downcast the return
    from MSTimef, meaning the function is completely useless for retrieving
    integral time stamps.
  * added Harmony ENDOOM screen.
  * added a config getter to the interface.
  * moved language CVAR to backend.
  * handle menu customization via callbacks.
  * move hud scale CVARs to the backend.
  * handle autoload flags in startup through function parameters instead of
    directly accessing the CVARs.
  * handle Build tiles via explicit callback to the init function.
  * add a system interface for CheckCheatmode and moved some sound code to
    the backend.
  * Exported GetDisplayTopOffset for font characters to ZScript
  * added missing obituary for Strife's turret.
  * Added support for BLOCKLANDMONSTERS in Line_SetBlocking.
  * Added APROP_FriendlySeeBlocks to Set/GetActorProperty
  * Fix planeval; add direct sector slope manipulation
  * Modify to have one GetVertexZ rather than IsVertexZSet / GetVertexZ
  * Add vertex height manipulation functions to LevelPostProcessor
  * Add sv_noextraammo. When set to true, disables that weird hardcoded
    behavior from original Doom that gives extra ammo when picking up weapons
    in deathmatch
  * fixed: all script methods adding an object to a dynamic array must
    perform a write barrier.
  * add freezetics actor property
  * allow notification of actor goal is reached inside of a SECF_NOATTACK sector
  * GLES2: Fix anistropic filtering
  * disabled discord-rpc debug info for configurations without it
  * fixed sky cap color handling
  * fix arti teleport and arti teleother not respecting useplayerstartz mapflag
  * UE1 models now handle frame index -1 properly.
  * Add support for the GOG releases of the Unity versions of Doom and Doom II.
  * carry over the tiling flag from the finished to the entering screen
  * Prevent Keyconf from adding duplicate playerclass
  * Add detection for the Final Doom WADs that were recently added to the
    Steam version of Doom II.
  * new method to define obituaries without modifying actors.
  * remove latch flag from sv_cheats
  * add openscreenshots opensaves and openconfig console commands on Windows
    and Linux and Mac
  * use consistent index types for array function return values.
  * pass clip rect as pointer to F2DDrawer::AddLine.
  * Export FindLumpFullName to ZScript.
  * Add support for nested user types
  * made adjustments for proper int type promotion to allow internal ZScript
    to compile with it on.
  * ZScript: fixed integer type promotion for shift operator
  * version-restrict int to uint promotion. Some mods depend on this not
    happening.
  * fixed: The compile context for constant evaluation did not initialize
    its Version member.
  * Don't throw away unsignedness when passing unsigned constants
    to the codegen
  * Add signed->unsigned promotion for binary operators
  * fix menu commands with semicolon separated commands
  * get rid of M_Malloc call in WriteSavePic
  * Fix definition order of ZScript structs. Do a first pass over the Structs
    array in CompileAllFields() to reorder them such that if a struct uses
    other structs, those structs will be resolved first.
  * Fix viewpoint buffer not getting cleared when in the menus
  * backported KDE detection from Raze.
  * removed the Softpoly backend.
  * Add a 2d drawer to canvas textures
  * Fix incorrect mapping of texture indices for UE1 models.
  * Added PitchFromMomentum, UseActorPitch and UseActorRoll to VOXELDEF.
    Behaves exactly like their 3D model counterparts. Hardware renderer only.
  * removed some redundant chaaracters from the Doom SmallFont.
  * Added IQM bone model support
  * Added A_ChangeModelDef
  * fixed return values of FTextureAnimator::AddAnim
  * add longsavemessages to simple menu. set longsavemessages default to
    false.
  * DirectInput cleanup. Removing ancient code that's only useful on
    pre-XP OSs.
  * also allocate FDoorAnimation's frame table from the texture manager's
    memory arena.
  * optimized storage for animation definitions.
  * Fixed vulkan crash when multisampling is enabled
  * add a method for filling a shape2d instead of using a texture (#1661)
  * add stencil buffer support for 2d drawing (#1660)
  * add a system for setting all of 2D drawing's transform, not just shapes
  * Expose ConsoleState to scripts
  * rewrote Windows console code for Windows 10's new terminal.
  * fixed and consolidated artifact check in cheat code.
  * removed volatile type punning for clipping against line portals.
  * fixed handling of *dive and *surface sounds.
    -let A_FireProjectile pass through the second return value of
     SpawnPlayerMissile.
  * fixed PoisonCloud's looping animation count.
  * weapons are not artifacts.
  * rename PrintString to PrintfEx and make it a vararg function
  * Expose Print Flags to ZScript
  * fixed names for A_PlaySoundEx
  * ENDOOM is not Windows only anymore.
  * fixed background tiling for summary screen. Since the background object
    gets recycled it must clear this flag before loading a new background.
  * let the "abort" button on the network pane of the startup screen do a
    hard exit on Windows.
  * make sure ticdup is initialized.
  * Add +ONLYVISIBLEINMIRRORS and +INVISIBLEINMIRRORS actor flags. The former
    makes the actor only visible in reflections, while the latter makes the
    actor not cast reflections in mirrors.
  * cleanup and refactoring of Vulkan backend
  * Improve vk_debug output a lot by throwing away the useless parts of the
    message and limit the callstack to the first 5 gzdoom calls
  * validate fountaincolor before using it.
  * added detection of macOS Ventura
  * ZScript: don't allow multiple assignment syntax with only one element.
  * fixed type of third argument of MBF21's MonsterMeleeAttack function. This
    is a sound, not an int.
  * added an override for NOTAUTOAIMED flag when using P_AimLineAttack for
    informative CCMDs.
  * allow taking screenshots in cutscenes.
  * fixed JIT target function for GetTimeFrac.
  * fixed: For cutscenes the alternative clean scaling factors need to be
    activated.
  * fixed setup of ready state with Dehacked. This needs to emulate the
    hard coded chainsaw sound when weapon states get reassigned.
  * Fix the discolored sky bug
  * check point pushers/pullers ...

To see a diff of this commit:
https://wip.pkgsrc.org/cgi-bin/gitweb.cgi?p=pkgsrc-wip.git;a=commitdiff;h=a8ba93c4ab4666fed9c391be5d86c1e081b05474

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

diffstat:
 gzdoom/Makefile                                    |  8 +++---
 gzdoom/distinfo                                    |  7 ++---
 .../patches/patch-src_common_console_c__console.h  | 13 +++++++++
 ...tch-src_common_platform_posix_sdl_i__system.cpp | 33 ++++++++++++++++++++++
 4 files changed, 53 insertions(+), 8 deletions(-)

diffs:
diff --git a/gzdoom/Makefile b/gzdoom/Makefile
index 03121242d6..69556dc9a9 100644
--- a/gzdoom/Makefile
+++ b/gzdoom/Makefile
@@ -1,11 +1,11 @@
 # $NetBSD$
 
-DISTNAME=	g4.8.2
+DISTNAME=	${GITHUB_TAG}
 PKGNAME=	${GITHUB_PROJECT}-${DISTNAME:S/^g//}
 CATEGORIES=	games
 MASTER_SITES=	${MASTER_SITE_GITHUB:=ZDoom/}
 GITHUB_PROJECT=	gzdoom
-GITHUB_TAG=	g4.8.2
+GITHUB_TAG=	g4.10.0
 DIST_SUBDIR=	${GITHUB_PROJECT}
 
 MAINTAINER=	pkgsrc-users%NetBSD.org@localhost
@@ -13,14 +13,14 @@ HOMEPAGE=	https://zdoom.org/
 COMMENT=	Zdoom game engine
 LICENSE=	gnu-gpl-v3
 
-WRKSRC=		${WRKDIR}/gzdoom-g4.8.2
-USE_CMAKE=	yes
+WRKSRC=		${WRKDIR}/gzdoom-${GITHUB_TAG}
 USE_LANGUAGES=	c c++
 CXXFLAGS+=	-D PKGSRC_DOOM_PATH='"${PREFIX}/share/games/doom"'
 
 .include "../../archivers/bzip2/buildlink3.mk"
 .include "../../audio/fluidsynth/buildlink3.mk"
 .include "../../devel/SDL2/buildlink3.mk"
+.include "../../devel/cmake/build.mk"
 .include "../../devel/libexecinfo/buildlink3.mk"
 .include "../../devel/zlib/buildlink3.mk"
 .include "../../graphics/MesaLib/buildlink3.mk"
diff --git a/gzdoom/distinfo b/gzdoom/distinfo
index b8184d6499..1ce3900351 100644
--- a/gzdoom/distinfo
+++ b/gzdoom/distinfo
@@ -1,7 +1,6 @@
 $NetBSD$
 
-BLAKE2s (gzdoom/g4.8.2.tar.gz) = df424df1b3dffefb8bd9642eaefe5fa1322e99c9e14c338771aad1bab41b7824
-SHA512 (gzdoom/g4.8.2.tar.gz) = 5f94aca016e87c8284b41d5c3beaeb752a4201e4562a528375addc976c7d7163d23a4885a223e4377856a2b75b71179efa80e99baf3edfe87fa19cf1e8bbfa42
-Size (gzdoom/g4.8.2.tar.gz) = 24247668 bytes
-SHA1 (patch-src_d__main.cpp) = 74b13c286d6dc1509a37cf66d54bdf149e379d43
+BLAKE2s (gzdoom/g4.10.0.tar.gz) = 178ae2f7f527c8523141b340866718055286a5248c52dbb1ac7d4f79993d8057
+SHA512 (gzdoom/g4.10.0.tar.gz) = fd2f6e34aaa59e3d153de6359211082398878dae3d396ab55fc736f94e1378d5e03193d7912a29a531cf1dc255d30af63ad1c6472784e3745db6ac4a3a9e6fe6
+Size (gzdoom/g4.10.0.tar.gz) = 24319337 bytes
 SHA1 (patch-src_gameconfigfile.cpp) = 4c30c413e7d4bc3b25e940f8d5cb7e5dabbc8092
diff --git a/gzdoom/patches/patch-src_common_console_c__console.h b/gzdoom/patches/patch-src_common_console_c__console.h
new file mode 100644
index 0000000000..2d7bd7953b
--- /dev/null
+++ b/gzdoom/patches/patch-src_common_console_c__console.h
@@ -0,0 +1,13 @@
+$NetBSD$
+
+--- src/common/console/c_console.h.orig	2022-12-04 14:35:20.000000000 +0000
++++ src/common/console/c_console.h
+@@ -68,6 +68,8 @@ void AddToConsole (int printlevel, const
+ int PrintString (int printlevel, const char *string);
+ int PrintStringHigh (const char *string);
+ int VPrintf (int printlevel, const char *format, va_list parms) GCCFORMAT(2);
++int Printf (int printlevel, const char *format, ...);
++int Printf (const char *format, ...);
+ 
+ void C_DrawConsole ();
+ void C_ToggleConsole (void);
diff --git a/gzdoom/patches/patch-src_common_platform_posix_sdl_i__system.cpp b/gzdoom/patches/patch-src_common_platform_posix_sdl_i__system.cpp
new file mode 100644
index 0000000000..368a78420e
--- /dev/null
+++ b/gzdoom/patches/patch-src_common_platform_posix_sdl_i__system.cpp
@@ -0,0 +1,33 @@
+$NetBSD$
+
+--- src/common/platform/posix/sdl/i_system.cpp.orig	2022-12-04 14:35:20.000000000 +0000
++++ src/common/platform/posix/sdl/i_system.cpp
+@@ -62,6 +62,7 @@
+ #include "i_sound.h"
+ #include "i_interface.h"
+ #include "v_font.h"
++#include "c_console.h"
+ #include "c_cvars.h"
+ #include "palutil.h"
+ #include "st_start.h"
+@@ -408,7 +409,8 @@ FString I_GetFromClipboard (bool use_pri
+ 
+ FString I_GetCWD()
+ {
+-	char* curdir = get_current_dir_name();
++	char* curdir;
++	curdir = getcwd(NULL, 0);
+ 	if (!curdir) 
+ 	{
+ 		return "";
+@@ -447,8 +449,9 @@ unsigned int I_MakeRNGSeed()
+ 
+ void I_OpenShellFolder(const char* infolder)
+ {
+-	char* curdir = get_current_dir_name();
++	char* curdir;
+ 
++	curdir = getcwd(NULL, 0);
+ 	if (!chdir(infolder))
+ 	{
+ 		Printf("Opening folder: %s\n", infolder);


Home | Main Index | Thread Index | Old Index