Zandronum 3.2-alpha-240405-2229

All released Zandronum builds

Moderator: Developers

Post Reply
User avatar
Kaminsky
Developer
Posts: 195
Joined: Sun Apr 14, 2013 7:17 pm
Location: Canada

Zandronum 3.2-alpha-240405-2229

#1

Post by Kaminsky » Sun Apr 07, 2024 11:30 pm

At long last, we're back with a new beta build of 3.2! A lot of changes happened since the previous beta release from last year. Here are some of the major changes:

1. You might've also noticed a few unofficial test builds we uploaded a few months ago that featured the new voice chat feature. Well, we're happy to announce that voice chat support is now complete and finally included in an official beta build! Special thanks to Br0leg, his followers, and everyone else involved for volunteering to test this feature out. Here's a summary of the feature:
  • Audio is encoded and transmitted at 24kHz using Opus, providing excellent quality and minimal bandwidth usage.
  • Unwanted noise in the audio is also removed using RNNoise.
  • Audio can be recorded using one of two modes:
    1. push-to-talk via the "+voicerecord" button.
    2. voice activity, the sensitivity of which can be adjusted with the CVar "voice_recordsensitivity".
  • Server hosts can enable proximity-based voice chat (i.e. how loud a player is depends on how close they are from your view) with the CVar "voice_proximityvoicechat".
    • The distances at which a player's voice becomes quieter and/or hearable are also controlled with the CVars "sv_minproximityrolloffdist" and "sv_maxproximityrolloffdist".
  • Input and output volumes can be adjusted with "voice_recordvolume" and "voice_outputvolume" respectively, and can be raised up to 2.0 to amplify the volume.
  • The volume of a single player's voice can be adjusted, anywhere between 0.0-2.0 in the player list menu or with the CCMDs "voice_chanvolume" and "voice_chanvolume_idx".
  • A player's voice can also be ignored in the same way as chat messages, in the player list menu or with the CCMDs "voice_ignore" and "voice_ignore_idx".
  • Which group of players (e.g. everyone, teammates only, spectators or live players only) that you want to hear or talk to are controlled using the CVars "voice_listenfilter" and "voice_transmitfilter" respectively.
  • Features a basic panel that lists everyone that's currently talking on the HUD.
Remember to check out the voice chat options menu, located in the sound options menu, to see a whole list of options and a way to test your microphone if you need to!

2. Some scoreboard additions and/or improvements have also been made:
  • The values of any custom data that use strings or textures as data types can now be changed properly with SetCustomPlayerValue.
  • Fixed rows on the scoreboard being drawn incorrectly on the intermission screen when a player spectates or leaves the game.
  • New SCORINFO column flags:
    • SPECTATORSONLY: the contents are only drawn for true spectators.
    • NOENEMIES: the contents are only drawn for teammates.
    • SORTWHENDISABLED: ensures that the column sorts players on the scoreboard even when it's disabled but still usable.
  • New SCORINFO scoreboard flags:
    • DONTSTRETCHROWHEIGHT: The heights of all rows on the scoreboard now increase if the contents of any row are too tall to fit. Enabling this flag prevents this from happening.
    • SEPARATEDEADSPECTATORS: forces dead spectators to be sorted underneath live players on the scoreboard.
  • New SCORINFO margin commands:
    • IfSpying: executes a block if the local player's spying on another player.
    • IfSpectator and IfDeadSpectator: executes a block if the local player's a (dead) spectator.
  • Added support for "else if" statements, and "&&" and "||" operators, for margin flow control commands in SCORINFO.
  • Extended the column's "cvar" property by giving the option of specifying a min and max range of values that the CVar's value must be in to keep the column active. This means that the CVARMUSTBEZERO column flag is now useless and has been removed.
  • There are now buttons to scroll up or down on the scoreboard when it's too tall to fit on the screen.
  • The scoreboard can now be aligned (e.g. left/right, top/bottom) and moved anywhere on your screen. It doesn't always have to be centred anymore.
  • A max width or height for the scoreboard, based on a percentage of the screen's width/height, can now be used if a smaller size is desirable.
  • The scoreboard can now be scaled at any resolution, independent of text scaling.
3. Dusk's VOTEINFO (previously named VOTEDEF) lump that he worked on many years ago has finally made it to this build. This allows mods to create custom votes that can be called like any other vote.

4. TDRR made some significant changes to the lump reading API, offering better performance and a more robust system to parse data from lumps. Here's a current overview of the API:
  • LumpOpen: Opens the specified lump.
  • LumpRead: Reads an integer from the lump.
  • LumpReadString: Reads a string from the lump.
  • LumpReadArray: Reads a certain number of bytes from the lump and saves them into an array.
  • LumpGetInfo: used to returns the buffer size or full name of the lump.
  • LumpClose: closes the specified lump.
5. New ACS functions: 6. Other notable changes:
  • Strife's conversation system now has client-server netcode, thanks a lot to Sean!
  • Fixed servers from freezing if they ran for too long (e.g. 24 days). It should now be possible for servers to run virtually forever.
  • New ACS EVENT script type: GAMEEVENT_PLAYERLEAVESSERVER.
  • New DECORATE weapon properties to control the sway and view pitch offsets of any weapon.
  • New weapon sway styles when the player moves or jumps up/down, and a new "still" bob setting that bobs the weapon up/down while the player stands still.
  • A "source-engine like" noclipping mode that allows spectators to always pass through walls, floors, and ceilings, and also not bob while floating in the air. Based on the "zcc_spectsource" feature from ZCC.
  • SetCurrentGameMode now resets the current level instead of restarting the entire game.
  • Clients running Freedoom 0.12.x and 0.13.0/Doom are now allowed to join Doom/Freedoom 0.12.x and 0.13.0 servers.
  • Lots and lots of bug fixes. A special thanks to Ru5tK1ng for jumping on board with development and offering his help to fix many outstanding issues.
Check out the changelog on the wiki to get a full summary of all of the changes in 3.2 so far. As always, here is the full Mercurial changelog:

Code: Select all

changeset:	11181:054a305d9f6b
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Fixed: strings with "\c[X]x]" at the end were still being treated as a trailing color code.

changeset:	11182:505888f4e2d8
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Fixed: new line characters in the MOTD weren't converted into their corresponding escape code.

changeset:	11183:16041a843645
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Optimization: don't try to scale text when the virtual screen's size is the same as the native screen's.

changeset:	11184:14f0c2350e85
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Fixed: ACS function "SetCustomPlayerValue" would never change the value of any custom data that used strings or textures as data types.

changeset:	11185:383d96ad76b4
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Fixed: opening the text scaling menu sometimes changed the user's con_virtualwidth and/or con_virtualheight CVars when it shouldn't.

changeset:	11186:383eed760954
user:		Adam Kaminski <kaminskiadam9@gmail.com>
HudMessages that are scaled to the virtual screen now respect con_scaletext_usescreenratio.

changeset:	11187:f3ac676bd1b7
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Always leave a gap above the spectator header, even when there's no active player rows.

changeset:	11188:ae69dd0c45f5
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Added SPECTATORSONLY and NOENEMIES column flags in SCORINFO, meaning the contents are only drawn for true spectators and teammates respectively.

changeset:	11189:b1b1d7e85ced
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Fixed: a player's ScoreIcon would disappear from the scoreboard if their current body derived from APlayerChunk due to A_SkullPop.

changeset:	11190:bbbec0e2d40a
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Always override a texture's left and top offsets to zero when drawing it on the scoreboard. This particularly fixes the player class icons in Hexen being cut off on the scoreboard.

changeset:	11191:c98255d6119f
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Update custom player values to a client every time they authenticate the level. This fixes desyncs caused by changing custom player values on the server's end while the client's authenticating the level.

changeset:	11192:27ee4af6f921
user:		Adam Kaminski <kaminskiadam9@gmail.com>
The heights of all rows on the scoreboard now increase if the contents of any row are too tall to fit. Enabling the scoreboard flag DONTSTRETCHROWHEIGHT prevents this from happening.

changeset:	11193:aba10cd12862
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Added support for "else if" statements for margin flow control commands.

changeset:	11194:6834253b22fc
user:		Teemu Piippo <teemu.s.piippo@gmail.com>
Added support for custom vote types using the new voteinfo lump

changeset:	11195:98447d6e9903
user:		Sean Baggaley <sean@csnxs.uk>
Authentication errors now use all authenticated WADs instead of just PWADs, allowing for zandronum.pk3, the IWAD, and auto-loaded WADs to be displayed in the error (address 4047).

changeset:	11196:d1dbf6be2ada
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Extended a column's "cvar" property by giving the option of specifying a min and max range of values that the CVar's value must be in to keep the column active. This means that the CVARMUSTBEZERO column flag is now useless and can be removed.

changeset:	11197:edde71aee2f4
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Changed the display and short name of the damage column to "Points" and "Pts" respectively. This is what damage was labelled as on the old scoreboard.

changeset:	11198:bf76a99772fb
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Added checks to prevent columns from having the INTERMISSIONONLY and NOINTERMISSION flags, or the SPECTATORSONLY and NOSPECTATORS flags, enabled at the same time.

changeset:	11199:a008e435f824
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Added support for "&&" and "||" operators for margin flow control commands.

changeset:	11200:bc7194a6b271
user:		Adam Kaminski <kaminskiadam9@gmail.com>
It's no longer required for sub-columns to be aligned to the left, or have the DONTSHOWHEADER flag enabled, when they're inside a composite column.

changeset:	11201:2d1fb4a15155
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Fixed: the scoreboard wasn't reset when the game mode was changed because of a level's campaign info.

changeset:	11202:c2aedf7f2b52
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Any static text in a DrawString margin command that begins with a '$' is now looked up in the LANGUAGE lumps.

changeset:	11203:0a00f79be389
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Fixed: strings in the LANGUAGE lump not being found when used in a column's display/short name, or true/false text for bool columns.

changeset:	11204:8730616fe5c5
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Added a SORTWHENDISABLED column flag in SCORINFO, which ensures that the column sorts players on the scoreboard even when it's disabled but still usable.

changeset:	11205:9f99c74dfe40
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Refresh the scoreboard first before setting up the clipping rectangle that draws the scoreboard's background.

changeset:	11206:5552a670500f
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Added a "contentalpha" command for scoreboard blocks in SCORINFO, which controls the opacity of all the contents on the scoreboard (excluding the backgrounds).

changeset:	11207:e5ddf9f04794
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Added the SEPARATEDEADSPECTATORS scoreboard flag in SCORINFO, which forces dead spectators to be sorted underneath live players on the scoreboard.

changeset:	11208:9209a77eb0b7
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Changed the default value of Scoreboard::fDeadTextAlpha to 1.0f.

changeset:	11209:849ce697e03f
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Added the member function NetCommand::addBuffer to allow data buffers to be sent with network commands.

changeset:	11210:50abeed89dc9
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Merged the client commands CLC_STARTCHAT, CLC_ENDCHAT, CLC_ENTERCONSOLE, CLC_EXITCONSOLE, CLC_ENTERMENU, and CLC_EXITMENU into one single command: CLC_SETSTATUS. Compared to the old commands, this requires sending an extra byte containing the status type and value, but this shouldn't be a problem considering how infrequent these commands are sent.

changeset:	11211:ee032c70c27b
user:		TDRR <srb2gamer@gmail.com>
Lump reading API redesign.

changeset:	11212:1601b1b423d9
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Fixed: the coop info wasn't getting drawn in clientside demos.

changeset:	11213:43774e7b5df5
user:		Sean Baggaley <me@drinkybird.net>
Added the forcerename and forcerename_idx CCMDs, which forcibly change a...

changeset:	11214:748ad2c15908
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Added an acknowledgements section in README.md, specially to thank Octobus and Clever Cloud for their hosting services.

changeset:	11222:dddc5bbf2ea8
user:		Moises Aguirre <srb2gamer@gmail.com>
Lump reading fixes and cleanup

changeset:	11502:04afde5a8b45
user:		Sean Baggaley <me@drinkybird.net>
Added the GAMEEVENT_PLAYERLEAVESSERVER EVENT script type

changeset:	11503:9e0f75dd49b9
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Added the dmflag "sv_nospawntelefog", preventing teleport fog from spawning when a player does (addresses 3565).

changeset:	11504:e06a7a0d5385
user:		Adam Kaminski <kaminskiadam9@gmail.com>
The scoreboard is now reset every time the game mode is changed using GAMEMODE_SetCurrentMode.

changeset:	11505:20e4330dc3ee
user:		Adam Kaminski <kaminskiadam9@gmail.com>
The ACS function "SetCurrentGameMode" now resets the current level upon successfully changing the game mode instead of restarting the entire game, thus no longer requiring clients to reconnect to the server.

changeset:	11506:a97faf41c14a
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Added a comment to clarify that custom vote commands defined in VOTEINFO are indexed after NUM_VOTECMDS.

changeset:	11507:4f775318d2ec
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Added a missing entry to zandronum-history.txt.

changeset:	12460:17757ad8e820
user:		Ru5tK1ng
Fixed: Floatbob items having incorrect z-height after a map reset and glitchy GL floor clipping (addresses 2361).

changeset:	12663:d41b0c99c108
user:		Binary Code
Added +NOMORPHLIMITATIONS flag from Q-Zandronum, allowing morphs to switch weapons, play sounds, and be affected by speed powerups.

changeset:	12694:b80faa81dd46
user:		Ru5tK1ng
Fixed: Monsters spawned by BossBrain cubes would move before being spawned on the clients therefore triggering warning messages (addresses 2655).

changeset:	12695:ab6cd88378f0
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Added files from the RNNoise library, modified and restructured to be compilable in MSVC by jagger2048. Files were retrieved from: https://github.com/jagger2048/rnnoise-windows

changeset:	12696:c08ae8b05145
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Renamed a few RNNoise functions. This will prevent clashing symbols between RNNoise and Opus when statically linking the latter.

changeset:	12697:3f2faab86e42
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Fixed compiler warnings when compiling RNNoise.

changeset:	12698:85e9e5411b6d
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Save the player's index in a local variable in ServerCommands::DisconnectPlayer::Execute to reduce duplicated code.

changeset:	12751:e3c6f5883952
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Separated code that checks if two players are teammates before sending a private message into its own function.

changeset:	12752:d44f57100df3
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Added support for voice chat:
- Audio is encoded and decoded using Opus, allowing it to be transmitted over the network with minimal bandwidth usage and decent quality.
- Noise suppression, using RNNoise, cleans the audio of any unwanted noise before it's sent to the server.
- Includes the option to transmit VoIP audio packets using either push-to-talk or voice activity. For the latter, the sensitivity, in decibels, can be adjusted to suit the user's needs.

changeset:	12753:de8becbba3f4
user:		Adam Kaminski <kaminskiadam9@gmail.com>
An icon now appears over the player's head and on the scoreboard while they're talking with the voice chat.

changeset:	12754:5f8883b6bbdd
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Added support for proximity voice chat.

changeset:	12755:93171f241280
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Added the function FCommandLine::GetPlayerFromArg to get a valid player's index from a console command's argument, either by name or number.

changeset:	12756:6eafa7f3c9cf
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Added the CCMDs "voice_chanvolume" and "voice_chanvolume_idx" to set a specific VoIP channel's volume.

changeset:	12757:f49f99b147b2
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Changed the code that handles the "ignore", "ignore_idx", "unignore", and "unignore_idx" CCMDs, while for the most part preserving the original behaviour.

changeset:	12758:8a4c188a80c9
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Refactored chat_GetIgnoredPlayers, which now returns a string instead of passing one by reference.

changeset:	12759:4373c7c8cfe1
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Added the CVar "voice_recordvolume" to control the volume of the recording device, up to 2.0.

changeset:	12760:f46ab13b972a
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Added an option to change the input device in the "voice chat options" menu. It's now also possible to change the device without restarting the entire sound module.

changeset:	12761:3a8704f3fb4a
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Added a feature that lets the client test their own microphone while in the "voice chat options" menu.

changeset:	12762:f54ca15eb00e
user:		Adam Kaminski <kaminskiadam9@gmail.com>
VoIP audio packets that are transmitted in the same tick are now merged together using Opus's repacketizer function. This helps optimize the network traffic when sending commands to or from the server.

changeset:	12763:20b2f120fc2f
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Added CVars for adjusting the min/max rolloff distances of the proximity voice chat.

changeset:	12764:a8cdcfc1c613
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Added the function FFont::StringHeight, which returns the height of a string in a certain font.

changeset:	12765:786df50e1e30
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Added a basic voice chat panel, which shows a list of who's talking on the screen.

changeset:	12766:1fb57dbe62e1
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Added a new option to "sv_allowvoicechat" that allows live players and (dead) spectators to use voice chat with each other separately.

changeset:	12924:ddc58081a5eb
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Added new userinfo CVars that control who the client can receive and/or transmit VoIP audio packets to/from.

changeset:	12925:a2bbf624aaa9
user:		Adam Kaminski <kaminskiadam9@gmail.com>
The client now tells the server what volume they set another player's VoIP channel to. This way, if that player reconnects to the server under the same IP address, the server can tell the client what volume to set their VoIP channel back to.

changeset:	12926:0df5420ae2b6
user:		Adam Kaminski <kaminskiadam9@gmail.com>
The "voice_chanvolume" and "voice_chanvolume_idx" CCMDs now print the current volume of a player's VoIP channel if no volume was passed with the command's arguments.

changeset:	12927:87db3c21fc2e
user:		Adam Kaminski <kaminskiadam9@gmail.com>
The server now tells the client when they're (un)ignored, so they won't try sending chat messages to the server if they're supposed to be ignored. This changes the "please refrain from chatting so much" message that printed when a player chatted too frequently.

changeset:	12928:38bc4b7d51e3
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Renamed some variables and removed any use of Hungarian notation in chat_ExecuteIgnoreCmd and chat_ExecuteUnignoreCmd.

changeset:	12929:6b899eb94672
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Moved the definitions of chat_ExecuteIgnoreCmd and chat_ExecuteUnignoreCmd and added their prototypes in "chat.h".

changeset:	12930:0661ac883ba6
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Added a new struct to handle muting a player's communications. This consolidates all of the "ignore chat" members in player_t into a single variable.

changeset:	12931:701b13ea31e4
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Renamed some variables and removed any use of Hungarian notation in CLIENTCOMMANDS_Ignore and SERVER_GetPlayerIgnoreTic.

changeset:	12932:ce8179809966
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Added the CCMDs "voice_ignore" and "voice_unignore" (and their index equivalents) to mute a specific player's voice.

changeset:	12933:66e32614ce36
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Overhauled the "ignore a player" menu (now called the "player list" menu), adding options to ignore a player's voice or adjust their VoIP channel's volume.

changeset:	12995:e79d46b757f2
user:		Ru5tK1ng
Fixed: Cleric's CircleFlame projectile did not rotate properly online (addresses 2101).

changeset:	12996:862b2108145b
user:		Adam Kaminski <kaminskiadam9@gmail.com>
The first two arguments of CSkullBot's constructor are now const.

changeset:	12997:95de3b0f4eb9
user:		Adam Kaminski <kaminskiadam9@gmail.com>
The only argument in BOTS_IsValidName is now const.

changeset:	12998:4d07126225cc
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Separated code that removes a random bot when the "removebot" CCMD is executed without any arguments into its own function.

changeset:	12999:98b88028bd41
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Added ACS functions: "AddBot" and "RemoveBot", to add or remove bots from the game.

changeset:	13000:bac5a88196e7
user:		Sean Baggaley <sean@csnxs.uk>
Added a GitLab CI configuration for automated builds.

changeset:	13002:99b578b1eec1
user:		Sean Baggaley <sean@csnxs.uk>
Refactored Freedoom network compatibility code to use lists of hashes instead of long if statements.

changeset:	13003:9c9f3d2c7cc4
user:		Sean Baggaley <sean@csnxs.uk>
Added hashes for Freedoom 0.12 lumps.

changeset:	13005:2f091ebae857
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Added ACS functions: "OpenMenu" and "CloseMenu", to open or close menus defined in MENUDEF.

changeset:	13007:4647a6aecf75
user:		Sean Baggaley <sean@csnxs.uk>
The Windows CI script now includes the job ID in the build directory name.

changeset:	13010:1c3ed4429cec
user:		Binary Code
Add ACS function BanFromGame, and CVar sv_allowacsbanfunction, to allow mods to give timed bans to players if the CVar is enabled.

changeset:	13051:09e5f688f244
user:		Sean Baggaley <sean@csnxs.uk>
Added hashes for Freedoom 0.13.0 lumps.

changeset:	13240:b2403c3caec9
user:		Ru5tK1ng
Fixed: Fighter's flechettes weren't working properly online (addresses 796, 2948 and 2949).

changeset:	13271:61711055ddca
user:		Ru5tK1ng <16673-Ru5tK1ng@users.noreply.foss.heptapod.net>
Voting will no longer end when traversing through maps and portals when in a hub (addresses 711).

changeset:	13309:4a61eeb1e1f9
user:		Ru5tK1ng <16673-Ru5tK1ng@users.noreply.foss.heptapod.net>
Fixed: Porkalator and Morph Ovum couldn't spawn bloodsplatter actors online (addresses 3007).

changeset:	13310:2739569349fb
user:		Ru5tK1ng
Clients tried to destroy pillars twice which would cause out of sequence errors between building and destroying them (addresses 2946).

changeset:	13311:7a3668147351
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Fixed a compiler warning.

changeset:	13351:8515d153e6dd
user:		Ru5tK1ng <16673-Ru5tK1ng@users.noreply.foss.heptapod.net>
Fixed: P_CheckMissileSpawn would instruct clients to explode a missile they...

changeset:	13352:ae409a05f709
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Fixed a regression where a player status didn't update properly in clientside demos.

changeset:	13390:c4cd0b617a38
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Renamed the network-related flags that are used in PLAYER_SetStatus.

changeset:	13391:ced6583a3f7d
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Added a network flag for PLAYER_SetStatus to prohibit the server from sending any status updates to the clients.

changeset:	13398:8c0d2c9ec0b1
user:		Adam Kaminski <kaminskiadam9@gmail.com>
- Consolidated all player status booleans (i.e. chatting, in console/menu, lagging, and ready to go) into a single bitfield.
- CLC_SETSTATUS and SVC2_SETPLAYERSTATUS now syncs all necessary statuses in one command instead of one at a time.
- Removed the SETPLAYERSTATUS_SERVERSKIPSCLIENT flag, which is no longer needed.

changeset:	13399:c16a393a92b5
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Moved the SetPlayerStatusFlag enum definition somewhere else in "network.h".

changeset:	13400:d2e67ebaf898
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Added a new player status that indicates if the player is talking on the microphone.

changeset:	13402:39b964524692
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Added ACS function: "GetPlayerStatus", which returns a bitfield of all the player's statuses (i.e. typing a chat message, talking on the microphone, in the console/menu, or lagging).

changeset:	13404:ab6bc2b7cd6a
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Updated a comment to highlight some of the recent player status code changes in greater detail.

changeset:	13405:64d8251ec63a
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Changed the color of the "SPKRA0" sprite to orange and made it low-res to fit with Doom's aesthetics better.

changeset:	13406:d107d5a6b1cf
user:		Ru5tK1ng <16673-Ru5tK1ng@users.noreply.foss.heptapod.net>
Fixed: ShareKeys was not working properly with dehacked keys, with puzzle...

changeset:	13422:a144a4df3872
user:		Ru5tK1ng <16673-Ru5tK1ng@users.noreply.foss.heptapod.net>
Fixed: Enter scripts would stack repeatedly in hubs each time a map was visted...

changeset:	13423:610a7a0fa4fc
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Fixed: a player with an incredibly long name that won the game after the timer expired could crash the game.

changeset:	13424:5a044f6f9b99
user:		Sean Baggaley <sean@csnxs.uk>
Add ARM64 server-only build job

changeset:	13425:1570e1f95f6b
user:		Ru5tK1ng <16673-Ru5tK1ng@users.noreply.foss.heptapod.net>
More flechette fixes

changeset:	13466:4973e1da8d1a
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Added ACS function: "SetPlayerWeaponZoomFactor" from Q-Zandronum, the ACS-equivalent to the A_ZoomFactor DECORATE function.

changeset:	13485:1cfcbc5554a3
user:		StrikerTheHedgefox <mossj32@gmail.com>
- Renamed the weapon view pitch styles to better match actual behaviour.
- Added a new "centered" (a la Dark Forces) view pitch style option.
- Added SwayStyle, SwaySpeed, ViewPitchStyle, and ViewPitchOffset DECORATE properties for weapons. The DECORATE properties can be overridden using the CVars "cl_usecustomsway" and "cl_usecustompitch".

changeset:	13486:45b143f39f2f
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Replaced PLAYER_IsUsingWeaponSkin with PLAYER_GetWeaponSkin, which returns the index of the skin if one's being used, or -1 if not.

changeset:	13487:40d2ac7592d9
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Added ACS function: "SetPlayerSkin" from Q-Zandronum, to change a player's skin.

changeset:	13488:13846ea36187
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Added null checks to PLAYER_ApplySkinScaleToBody.

changeset:	13492:6c3e59d01b2e
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Added ACS function: "GetPlayerSkin", to retrieve the name of a player's skin.

changeset:	13545:f15955f77fdf
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Replaced the "sv_allowacsbanfunction" CVar with "sv_maxacsbanduration", offering more control over how long the "BanFromGame" ACS function can ban players for while maintaining the same level of security that the original CVar provided.

changeset:	13548:fd68c1ebcaff
user:		Ru5tK1ng
Fixed: STRFTIME would crash Zandronum if a negative was passed into the first argument (addresses 4144).

changeset:	13549:06d22f902eb3
user:		Ru5tK1ng
Fixed: Floatbob items would be out of position if they were on a 3DFloor when a map reset occurred.

changeset:	13550:586b83c52c81
user:		Adam Kaminski <kaminskiadam9@gmail.com>
The ACS function "GetPlayerSkin" now returns the player's base skin instead of their personal skin if "cl_skins" forbids showing their skin, the player's class has the NOSKIN flag enabled, or they're morphed.

changeset:	13551:0adfda9e1f99
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Changed the expiration time/date of a QueryIPQueue object from signed to unsigned long.

changeset:	13552:02f3c5a724fa
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Removed any remaining use of Hungarian notation in QueryIPQueue for consistency.

changeset:	13553:21c7d80fb5ad
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Fixed: the server would freeze after running for long enough (e.g. 24 days on Windows) due to an integer overflow in SERVER_Tick (addresses 822).

changeset:	13554:40f408667934
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Removed any local use of Hungarian notation and trailing whitespaces in SERVER_Tick.

changeset:	13555:8bbb2240f35b
user:		Ru5tK1ng <16673-Ru5tK1ng@users.noreply.foss.heptapod.net>
Fixed: ArcOfDeath did not lock onto targets on the clients end (addresses 723).

changeset:	13556:a2a378098047
user:		Sean Baggaley <sean@csnxs.uk>
Fixed: the SendToCommunicator special didn't stop the previous sound when online.

changeset:	13557:2f59d4a1f4d1
user:		Ru5tK1ng
Maps that have team spawns but no deathmatch spawns should load and spawn the players in when running modes like TeamDM or TeamLMS (addresses 1327).

changeset:	13558:f449fd05983a
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Added a missing legend to one of the entries in zandronum-history.txt.

changeset:	13559:e7872589deb3
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Fixed: a spectator could still kill themselves if they committed suicide in the same tick as when they spectated (e.g. typing "kill; spectate" in the console).

changeset:	13560:6f5a6c9346b3
user:		Ru5tK1ng <16673-Ru5tK1ng@users.noreply.foss.heptapod.net>
Fixed: A_SkullPop would keep the old body as the activator of the player's...

changeset:	13561:6fa5c7725d0f
user:		Ru5tK1ng
Fixed: A_LookEx did not account for the +LOOKALLAROUND flag (addresses 3886).

changeset:	13562:d79f8adc5162
user:		Ru5tK1ng
Fixed: Friendly monsters could still be killed by splash damage even with sv_shootthroughallies being set to true (addresses 4013).

changeset:	13563:2426e8ed1310
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Fixed: a player's time and death count didn't reset on the client's end upon resetting the map in online games.

changeset:	13564:b44c4945de68
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Fixed: rows on the scoreboard would be drawn incorrectly on the intermission screen after a player spectated or left the game.

changeset:	13569:3d8f1ec82b75
user:		Nash Muhandes <nashbackslash@gmail.com>
Fix player not being able to talk to a Strife NPC during netplay, if another player talked to that NPC first. (#1312)

The ConversationNPC and ConversationPC fields were not cleared if the conversation was closed by selecting the goodbye option, or if the conversation was closed from the item checks.

https://forum.zdoom.org/viewtopic.php?f=2&t=53655

changeset:	13570:1173323c1598
user:		nashmuhandes <nashbackslash@gmail.com>
Made Strife NPC's dialog voice audible for all players.

changeset:	13571:b7e28be5383b
user:		Sean Baggaley <sean@csnxs.uk>
Added client-server netcode for Strife conversations.

changeset:	13572:4925a269b562
user:		Braden Obrzut <admin@maniacsvault.net>
- Added IfHealth based on Blue Shadow's patch.

changeset:	13573:e3eb4ae1a26c
user:		Sean Baggaley <sean@csnxs.uk>
Replaced "DrinkyBird" in the history file with "Sean".

changeset:	13574:ec270ae05f8e
user:		Ru5tK1ng
Fixed: Hexen effects were causing MissileExplode warnings due to not having NETFL_SERVERSIDEONLY set (partially addresses 4187).

changeset:	13576:16b17c5eae1f
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Renamed constants used by the ACS function "GetPlayerSkin".

changeset:	13577:abe5ffed9508
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Added ACS function: "GetPlayerCountry", to return the alpha-2 or alpha-3 code, or full name, of the country a player's connecting from. This also respects a player's choice to hide their country.

changeset:	13578:64146ef9f089
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Fixed: if the wrong password was used to log into RCON through the menu, and then the correct password was sent through the console, the server setup menu suddenly popped up again despite being closed.

changeset:	13585:b4dc5854a3a0
user:		Adam Kaminski <kaminskiadam9@gmail.com>
The first argument of GAMEEVENT_ACTOR_SPAWNED is now true for any actors spawned by RandomSpawners that were spawned when the level loaded.

changeset:	13586:a3a66f953c4a
user:		Adam Kaminski <kaminskiadam9@gmail.com>
A server's settings (i.e. any serverinfo CVars the server syncs with the client) are now discarded when the client disconnects and won't be saved into their config file.

changeset:	13587:f7d1faf6a0d4
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Fixed: serverinfo CVars didn't always save into the "LocalServerInfo" subsection of a config file in offline games (e.g. when multiplayer emulation is on).

changeset:	13588:33c13bea2dce
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Fixed: when a player changed their color or colorset, it didn't immediately update the status bar correctly in online games.

changeset:	13589:faca87b011b6
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Fixed a regression where unescaped new line characters appeared between the "scored by" and "assisted by" messages when a player captured a flag or skull.

changeset:	13590:7252077c7d42
user:		Ru5tK1ng <16673-Ru5tK1ng@users.noreply.foss.heptapod.net>
Fixed: A regression from a codebase update was introduced that caused +TOUCHY...

changeset:	13591:df7fad620217
user:		Adam Kaminski <kaminskiadam9@gmail.com>
The position of the weapon sprite while swaying now only updates at 35 Hz instead of at the refresh rate.

changeset:	13592:ec693306ecd1
user:		Moises Aguirre <srb2gamer@gmail.com>
Fix not incrementing lump handle reference count on LumpOpen.

changeset:	13593:75a8bf29c784
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Fixed: a skin's death sound didn't get used if the player respawned before the death sound could play on the corpse.

changeset:	13606:0913905b803e
user:		Ru5tK1ng <16673-Ru5tK1ng@users.noreply.foss.heptapod.net>
Fixed: Player_SetTeam would cause players to select the fist instead of the...

changeset:	13607:9122e7a188ec
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Fixed: a dummy player would be spawned behind if a morphed player dies and is forced to dead spectate in a gamemode with dead spectators. Based on patches by Edward-san.

changeset:	13608:102904edb0a4
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Fixed: a dummy sprite of the player's overridden skin (e.g. their weapon's preferred skin) appeared when they bursted into chunks after dying from ice.

changeset:	13609:6c7ecf69b892
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Fixed: actors that didn't need to respawn upon resetting the map didn't trigger GAMEEVENT_ACTOR_SPAWNED.

changeset:	13613:6fc50034efe7
user:		Ru5tK1ng
Fixed: Monsters in sectors marked with Damage_End (e1m8) weren't being removed from the monster count when sv_nocountendmonst was true (addresses 3475).

changeset:	13614:d00f7b01d607
user:		Ru5tK1ng <16673-Ru5tK1ng@users.noreply.foss.heptapod.net>
Fixed: A player holding a hellstone could still cycle through their weapon tags (addresses 409).

changeset:	13616:762f627edd14
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Added the CVars "cl_motionswayspeed" and "cl_jumpswayspeed" (and MotionSwaySpeed and JumpSwaySpeed DECORATE weapon properties), to add additional sway to a player's weapon when they move, crouch, or jump up or down.

changeset:	13617:1c9b1f0d2daf
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Renamed "cl_swayspeed" to "cl_viewswayspeed" (and the SwaySpeed DECORATE weapon property to ViewSwaySpeed), to distinguish it from the new weapon sway speeds.

changeset:	13618:c4b85a4370fa
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Added the CVars "cl_stillbobspeed" and "cl_stillbobrange" (and StillBobSpeed and StillBobRange DECORATE weapon properties), to also bob the weapon up and down while the player stands still.

changeset:	13629:0aabef51f978
user:		Ru5tK1ng <16673-Ru5tK1ng@users.noreply.foss.heptapod.net>
Fixed: Voodoo dolls weren't being pushed by barrel explosions in order to trigger linedef actions online (addresses 3963).

changeset:	13633:2ce52dbe3378
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Simplified and merged all free chasecam functions into a namespace, and the local player's view no longer changes while moving the free chasecam around.

changeset:	13634:035620301973
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Fixed: while using the free chasecam, 3D sounds played as though the player was hearing them in first person instead of using the free chasecam's orientation (addresses 4044).

changeset:	13636:e577a05ea628
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Fixed: the player couldn't move the free chasecam around while they were dead (addresses 4061).

changeset:	13643:0cafa51c77e6
user:		Ru5tK1ng <16673-Ru5tK1ng@users.noreply.foss.heptapod.net>
Fixed: Numerous Heretic/Hexen actors and code pointers were sending invalid commands to clients that could not be executed (addresses 4187).

changeset:	13647:1a8a5f5d76eb
user:		Ru5tK1ng <16673-Ru5tK1ng@users.noreply.foss.heptapod.net>
Fixed: +SPAWNSOUNDSOURCE wouldn't play the missile sound at the source online (addresses 807).

changeset:	13677:3eacbe5001db
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Fixed: the player couldn't move the free chasecam around while the game was suspended or when they're totally frozen.

changeset:	13780:c319cbb0dd2a
user:		Ru5tK1ng
Fixed: ThingCountNameSector would count spectators that were present in the tagged sector (addresses 2447).

changeset:	13781:81dfa87ddaaf
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Fixed: a player's override skin (i.e. their weapon's preferred skin or their skin set from ACS) wasn't used if it was explicitly set to "base".

changeset:	13782:ec1c85dd9f3a
user:		Adam Kaminski <kaminskiadam9@gmail.com>
PLAYER_ShouldForceBaseSkin now uses the correct flagset to check for MF4_NOSKIN.

changeset:	13823:814e6a8b3d5f
user:		Sean Baggaley <sean@csnxs.uk>
Remove the unused copy of GetWAD from the repository.

changeset:	13824:737fa1988305
user:		Sean Baggaley <sean@csnxs.uk>
Remove the statsmaker utility from the repository.

changeset:	13825:04df5fbe854c
user:		Sean Baggaley <sean@csnxs.uk>
Remove a dummy byte array from usercmd_t that existed to defeat Skulltag-era cheats.

changeset:	13839:9c0993d805fb
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Made the mini flag icons that appear on the HUD and scoreboard bigger and easier to see.

changeset:	13874:813240efcf86
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Added the CVar "cl_spectatorsource", which enables source-engine like noclipping that allows spectators to pass through floors and ceilings. Based on the "zcc_spectsource" feature from ZCC.

changeset:	13875:2aab379b3563
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Added a new special value to the DrawString margin command that returns the name of the current player.

changeset:	13876:ddddb47983cf
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Use a switch instead of a bunch of if-statements when validating the command type of a TrueOrFalseFlowControl margin command.

changeset:	13877:ce155aa06375
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Added the IfSpying margin command, to execute a block if the local player's spying on another player.

changeset:	13878:a66285f220ef
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Added the IfSpectator and IfDeadSpectator margin commands, to execute blocks if the local player's a (dead) spectator.

changeset:	13899:4a1d56a9e4dd
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Added new buttons to scroll the scoreboard up or down when it's too big to fit on the screen. How fast the scoreboard can scroll is controlled by the CVar "cl_scoreboardscrollspeed".

changeset:	13900:1050a6d251c6
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Added the CVars "cl_maxscoreboardwidth" and "cl_maxscoreboardheight", which limit the width and height of the scoreboard to a certain percentage of the screen.

changeset:	13901:489a936388af
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Added CVars that align and/or offset the scoreboard anywhere on the screen.

changeset:	13904:91603d0645d9
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Added CVars to scale the scoreboard independent of text scaling.

changeset:	13972:3290e223f2e5
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Added a new property to texture columns, and a new parameter to the DrawTexture margin command, to scale textures up or down.

changeset:	13978:ae34aedddd6f
user:		Ru5tK1ng <16673-Ru5tK1ng@users.noreply.foss.heptapod.net>
Fixed: The removebot commands could crash singleplayer when using OpenGL (addresses 1112).

changeset:	13979:d6971f687d1e
user:		Moises Aguirre <srb2gamer@gmail.com>
Fixed: gl_PrintStartupLog wasn't being called when not compiled with MSVC.

changeset:	13980:a5cc910c36c1
user:		Moises Aguirre <srb2gamer@gmail.com>
Make GL extension printing optional (using the developer CVAR)

changeset:	13981:701909afc38a
user:		Moises Aguirre <srb2gamer@gmail.com>
Fixed: bots keep aiming at players when totally frozen.

changeset:	13982:de96f9575e5c
user:		Moises Aguirre <srb2gamer@gmail.com>
Fixed: bots stop aiming and shooting when frozen.

changeset:	13983:da48bf1babf8
user:		StrikerTheHedgefox <mossj32@gmail.com>
Move GAMEMODE_HandleDamageEvent calls up so they can fire for enemies/objects without an inventory.

changeset:	13984:54a1afe561e7
user:		StrikerTheHedgefox <mossj32@gmail.com>
Rename GAMEEVENT_ACTOR_ARMORDAMAGED to GAMEEVENT_ACTOR_DAMAGED_PREMOD to more descriptively match its behaviour (as armor hasn't actually been damaged yet).

changeset:	13986:03157cf11bfc
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Added an arbitrary cap limit to the player's z-delta when applying motion sway to their weapon sprite.

changeset:	13989:24cb4e787ef6
user:		Trillster
Fixed: A_SpawnItemEx now always syncs AAPTR_TARGET for +MISSILE actors (addresses 4200).

changeset:	13996:0277a1516d16
user:		Trillster <sonicfam1102@gmail.com>
Last skin in a SKININFO file was not properly parsed.

changeset:	14000:00afb8d1543a
user:		Ru5tK1ng <16673-Ru5tK1ng@users.noreply.foss.heptapod.net>
Fixed: Shotgun starts could crash if the replacement wasn't a weapon (addresses 1844) and clients didn't have the right ammo on spawn (addresses 1059).

changeset:	14001:ec2e32b05ed8
user:		Ru5tK1ng
Fixed a regression in P_PlaySpawnSound.
Download

Happy testing everyone!

User avatar
Sean
IRC Operator
Posts: 953
Joined: Thu Jan 16, 2014 9:09 pm
Location: United Kingdom
Contact:

Re: Zandronum 3.2-alpha-240405-2229

#2

Post by Sean » Sun Apr 07, 2024 11:33 pm

\o/
<capodecima> i dont say any more word without my loyer jenova

User avatar
TDRR
Forum Regular
Posts: 220
Joined: Thu Jun 28, 2018 9:13 pm
Location: Venezuela
Contact:

Re: Zandronum 3.2-alpha-240405-2229

#3

Post by TDRR » Sun Apr 07, 2024 11:41 pm

This is awesome! Voice chat may be one of the biggest MP features Zandro's gotten in a while. Remember when everyone was like "just use Discord lol"? Good times :p
One thing I have asked from the Lord, that I shall seek: That I may dwell in the house of the Lord all the days of my life, to behold the beauty of the Lord and to meditate in His temple. (Psalm 27:4, NASB)
My Discord tag is @tdrr, and it's my preferred contact method. I also check PMs here from time to time.

Samuzero15tlh
Forum Regular
Posts: 256
Joined: Wed Sep 09, 2015 2:21 pm
Location: In home, sweet Home
Clan Tag: <skr>

Re: Zandronum 3.2-alpha-240405-2229

#4

Post by Samuzero15tlh » Sun Apr 07, 2024 11:49 pm

Voteinfo is here! Finally! And a improved Lump Reading API! Good work people!
Everyone wants happiness without pain, but you cant have a rainbow without a rain.

I'm working in the Shotgun Frenzy Plus mod in my free time.
Yes, I have a pet that helps me to build doom projects, the Pack-O-Daemon, ain't it cute?.

Spoiler: My Other zandro stuff! (Open)


Samuzero15tlh

kevansevans
New User
Posts: 2
Joined: Tue Sep 01, 2015 1:41 am

Re: Zandronum 3.2-alpha-240405-2229

#5

Post by kevansevans » Sun Apr 07, 2024 11:55 pm

I'm curious to know what functionality was envisioned with the new Lump reading that isn't already possible with ACS/Decorate. I can't see it being practical as the developer would have to make their own storage method for an arbitrary text/binary file, and then having to by hand make the parser.

User avatar
TDRR
Forum Regular
Posts: 220
Joined: Thu Jun 28, 2018 9:13 pm
Location: Venezuela
Contact:

Re: Zandronum 3.2-alpha-240405-2229

#6

Post by TDRR » Mon Apr 08, 2024 12:02 am

kevansevans wrote:
Sun Apr 07, 2024 11:55 pm
I'm curious to know what functionality was envisioned with the new Lump reading that isn't already possible with ACS/Decorate. I can't see it being practical as the developer would have to make their own storage method for an arbitrary text/binary file, and then having to by hand make the parser.
I would write a bunch of reasons it's useful without even going into custom lump territory, but I already did that when initially pitching the feature so here you go.
https://zandronum.com/tracker/view.php?id=4134
One thing I have asked from the Lord, that I shall seek: That I may dwell in the house of the Lord all the days of my life, to behold the beauty of the Lord and to meditate in His temple. (Psalm 27:4, NASB)
My Discord tag is @tdrr, and it's my preferred contact method. I also check PMs here from time to time.

Samuzero15tlh
Forum Regular
Posts: 256
Joined: Wed Sep 09, 2015 2:21 pm
Location: In home, sweet Home
Clan Tag: <skr>

Re: Zandronum 3.2-alpha-240405-2229

#7

Post by Samuzero15tlh » Mon Apr 08, 2024 12:13 am

kevansevans wrote:
Sun Apr 07, 2024 11:55 pm
I'm curious to know what functionality was envisioned with the new Lump reading that isn't already possible with ACS/Decorate. I can't see it being practical as the developer would have to make their own storage method for an arbitrary text/binary file, and then having to by hand make the parser.
Some of the things that you can do with lump reading:
  • Retrieve info from the current lumps and custom lumps, such as reading all the mapsinfo's files in the server.
  • With the parser on your side, you can implement a custom database for objects, or maybe read functions to be executed in acs (pretty much like implementing your own language, lua for example).
  • If any modder uses your custom lump, you can also read their data and manage it on ACS. This is a big plus for someone who want's to skip ACS compilation by just adding data with a custom lump.
  • When language lumps requires a certain format to be followed in order to read custom data from there, lump reading gives you more flexibility, since YOU are specifing the data format.
  • With a little bit of knowlege of file parsing, you might be cappable of reading images, sounds or sprites by reading the bytes of a file.
  • Even 3D Objects can be read with the lump reading api!
Everyone wants happiness without pain, but you cant have a rainbow without a rain.

I'm working in the Shotgun Frenzy Plus mod in my free time.
Yes, I have a pet that helps me to build doom projects, the Pack-O-Daemon, ain't it cute?.

Spoiler: My Other zandro stuff! (Open)


Samuzero15tlh

User avatar
MameXLIII
New User
Posts: 2
Joined: Wed Nov 16, 2022 1:37 am
Location: 5DDM Map04, 5th Dimension
Contact:

Re: Zandronum 3.2-alpha-240405-2229

#8

Post by MameXLIII » Mon Apr 08, 2024 12:14 am

We're back!, hopefully this will release soon!

kevansevans
New User
Posts: 2
Joined: Tue Sep 01, 2015 1:41 am

Re: Zandronum 3.2-alpha-240405-2229

#9

Post by kevansevans » Mon Apr 08, 2024 12:35 am

Wouldn't it make more sense to A) Add in dedicated functions for a few of those examples, offering a clear method to access that data and expanding their functionality, and B) add in JSON support? For example, on the GZDoom end of things, there's the LevelLocals struct, which has all that mapinfo data accessible from anywhere. It'd make more sense to me personally if that was the approach instead of tasking the developer with having to invent their own approach to reading those lumps. On top, the JSON reader would cover the use cases in the situations where arbitrary data was needed, on top of being a well established and understood standard.

User avatar
TDRR
Forum Regular
Posts: 220
Joined: Thu Jun 28, 2018 9:13 pm
Location: Venezuela
Contact:

Re: Zandronum 3.2-alpha-240405-2229

#10

Post by TDRR » Mon Apr 08, 2024 1:01 am

kevansevans wrote:
Mon Apr 08, 2024 12:35 am
add in JSON support?
kevansevans wrote:
Mon Apr 08, 2024 12:35 am
On top, the JSON reader would cover the use cases in the situations where arbitrary data was needed, on top of being a well established and understood standard.
I'm not exactly keen on the JSON format, nor forcing a single format upon everyone. If you wanted that, you don't even have to write it yourself- just compile some random C library supporting it with GDCC and all you have to make is a basic header for ACS/BCS. GDCC already supports the lump reading API with fopen (thanks again to DavidPH for adding it!) and so many formats are pretty much immediately usable.
kevansevans wrote:
Mon Apr 08, 2024 12:35 am
Wouldn't it make more sense to A) Add in dedicated functions for a few of those examples, offering a clear method to access that data and expanding their functionality, and B) add in JSON support? For example, on the GZDoom end of things, there's the LevelLocals struct, which has all that mapinfo data accessible from anywhere. It'd make more sense to me personally if that was the approach instead of tasking the developer with having to invent their own approach to reading those lumps.
I know, and yes I do agree. But Zandronum development is a bit restricted because at least as of writing, Zandro still has to update some more to GZDoom so not everything can be changed or added to as desired, we're close to running out of ACSF indices, as well as any reasons Torr may have to not accept a feature, I don't know about all of them. This is a way to implement a lot of features modders may need, sometimes as a stopgap and sometimes as a more permanent fix.

I also intend to write many of the libraries myself, but one step at a time, this is the first time it's in a more stable release with any really workable API. I don't have the time for everything right now.

Why the pushback for something that ultimately should've gotten in anyway? It's not for no reason GZDoom got an equivalent as soon as ZScript became a thing, and GLOOME got it pretty much instantly after becoming it's own thing, if a bit limited (though admittedly the implementations weren't exactly great, and only very recently GZDoom got a better API).
One thing I have asked from the Lord, that I shall seek: That I may dwell in the house of the Lord all the days of my life, to behold the beauty of the Lord and to meditate in His temple. (Psalm 27:4, NASB)
My Discord tag is @tdrr, and it's my preferred contact method. I also check PMs here from time to time.

User avatar
Fused
Contributor
Posts: 665
Joined: Sat Nov 09, 2013 9:47 am
Location: Netherlands
Contact:

Re: Zandronum 3.2-alpha-240405-2229

#11

Post by Fused » Mon Apr 08, 2024 6:44 am

One of the greatest updates seen so far for this engine.
The shared contribution from many combined into one system, making it an even better solution for Doom modding.
You guys should be proud of yourselves for getting things this far, and I am looking forward to seeing more. :cool:
My mods
Image Image

My socials
Image Image

MikeAndreas1
Registered just to make one post
Posts: 1
Joined: Wed Jul 17, 2024 8:16 pm
Clan: None
Clan Tag: None

Re: Zandronum 3.2-alpha-240405-2229

#12

Post by MikeAndreas1 » Wed Jul 17, 2024 9:15 pm

TDRR wrote:
Mon Apr 08, 2024 1:01 am
kevansevans wrote:
Mon Apr 08, 2024 12:35 am
add in JSON support?
kevansevans wrote:
Mon Apr 08, 2024 12:35 am
On top, the JSON reader would cover the use cases in the situations where arbitrary data was needed, on top of being a well established and understood standard.
I'm not exactly keen on the JSON format, nor forcing a single format upon everyone. If you wanted that, you don't even have to write it yourself- just compile some random C library supporting it with GDCC and all you have to make is a basic header for ACS/BCS. GDCC already supports the lump reading API with fopen (thanks again to DavidPH for adding it!) and so many formats are pretty much immediately usable.
kevansevans wrote:
Mon Apr 08, 2024 12:35 am
Wouldn't it make more sense to A) Add in dedicated functions for a few of those examples, offering a clear method to access that data and expanding their functionality, and B) add in JSON support? For example, on the GZDoom end of things, there's the LevelLocals struct, which has all that mapinfo data accessible from anywhere. It'd make more sense to me personally if that was the approach instead of tasking the developer with having to invent their own approach to reading those lumps.
I know, and yes I do agree. But Zandronum development is a bit restricted because at least as of writing, Zandro still has to update some more to GZDoom so not everything can be changed or added to as desired, we're close to running out of ACSF indices, as well as any reasons Torr may have to not accept a feature, I don't know about all of them. This is a way to implement a lot of features modders may need, sometimes as a stopgap and sometimes as a more permanent fix.

I also intend to write many of the libraries myself, but one step at a time, this is the first time it's in a more stable release with any really workable API. I don't have the time for everything right now.

Why the pushback for something that ultimately should've gotten in anyway? It's not for no reason GZDoom got an equivalent as soon as ZScript became a thing, and GLOOME got it pretty much instantly after becoming it's own thing, if a bit limited (though admittedly the implementations weren't exactly great, and only very recently GZDoom got a better API).
Given the constraints and ongoing updates needed for Zandronum, what are some specific features or functionalities you believe are critical to prioritize for future releases, and how do you envision these changes improving the overall development experience for modders?

Post Reply