Skip to content

v1.3.8 final prep#302

Open
darkshade9 wants to merge 197 commits intoaqtionfrom
aqtion-alpha
Open

v1.3.8 final prep#302
darkshade9 wants to merge 197 commits intoaqtionfrom
aqtion-alpha

Conversation

@darkshade9
Copy link

No description provided.

darkshade9 and others added 30 commits October 30, 2023 19:42
Fix memory leaks. Fix draining decoder.
If client is minimized, mix ahead 0.125 sec minimum. 0.1 sec results in
choppy sound when client runs at 10 FPS.
Has the benefit of supporting more than just Ogg Vorbis format for
music.
Some broken servers/demos may try to send configstring updates before
serverdata. This would result in error because configstring mapping is
not initialized yet.

Fixes #330.
Just save to fixed ‘save1’ slot for now. Needed to differentiate
regular saves from autosaves in the menu.
Fixes GL_INVALID_ENUM error with GL ES 3.x.
Shared struct fields and computations common to client and server.
If we are loading LOAD_LEVEL_START autosave with existing level file,
this means we have re-entered this level from another level, and we need
to run it for 10 seconds.

Fixes buggy mgu3m2 -> mgu3m3 -> mgu3m2 transition if after re-entering
mgu3m2 player is killed and level is reloaded.
* Added listsound command for server

* Updated comment

* Backwards compat is broken currently

* Encapsulated AQtion-specific items with preprocessors

* Still no dice yet

* Works locally

* Had to hard-set some enums

* Converted #ifdef to #if for USE_AQTION
Andrey Nazarov and others added 30 commits February 5, 2024 15:14
Master skuller sync to aqtion-alpha
…step sound from all loaded step sounds in the player's sound directory. This was problematic because the default pak-file for action now contains twelve step sounds, unintentionally activating the func cl_enhanced_footsteps for everyone. This was not optimal as many players have only four original step sounds in their personal pak-files, resulting in the player having their personal step1.wav - step4.wav mixed up with step5 - step12.wav from baseaq/pak0.pkz

To address this, the use of the cvar cl_enhanced_footsteps has been enforced. Now, it must be set to 1 for CL_PlayFootstepSfx to play more than the first four step#.wav sounds.
Fixed an issue in CL_PlayFootstepSfx where it always played a random …
Set defines for referencing OpenAL header files for MacOS
* Fix double assignment.

* Fix missing break statement.

* Make hash map allocations tagged.

* Templatize BSP loading code.

* Update libjpeg-turbo to 3.0.4.

* Update libpng to 1.6.44.

* Update libcurl to 8.10.1.

* Update openal-soft to 1.23.1.

* Update khr-headers to 20240924.

* Unignore subprojects/packagefiles.

* Update README.md.

* Silence compiler warning.

* Add CI workflow for nightly builds.

* Use enum instead of magic constant.

* Warn if DECOUPLED_LM lump has invalid offsets.

* Added check if roundtimelimit >= 1 to make announcement

* Added bot_reportasclient cvar to de-list bots as players

* Revamped a lot of USE_AQTION macro conditional compilation, change to check if stats are enabled

* Removed redundant -lcurl from meson

* Re-arranged writing stats functionality

* Some cleanup, formatting

* Some cleanup, menu add, taking care for cases where the option isn't available

* Added documentation, use_pickup to enable/disable

* Synced with skuller build changes

* Missed updating OpenAL-soft

* Updated libjpeg-turbo and linpng as well

* Removed unneeded preprocessor

* Somehow git is not picking up changes to g_cmds.c

* MSVC is a joke

* Windows is amazing

* Added support for multiple game modes

* Changed some preprocessing items, reverting small/large in Cmd_Players_f to test

* Moved Windows-specific botlib stuff to its own file

* helps to add your source files

* Removed windows.h from botlib

* Simpler method

* Done with the windows nonsense, just renaming the vars

* Simplified allocating buffer room for request message

* Simplified format for pickup requests

* Add COM_ParseToken().

Allow parsing into user supplied buffer. Also add line number counter.

* Set bot_enable checks in various places

* Some documentation additions

* Retrying reverting small and large

* Trying adding LEAN_AND_MEAN to rpc.h

* Define, not include, dummy

* Replaced small/large with playerInfo/playerList in g_cmds.c

* Some documentation editing

* Use real JSON parser to parse MD5 scales.

* Factor MD5 skin loading into separate function.

* Refactor MD5 code more.

Use longjmp instead of macros for error handling.
Get rid of md5_joint_t::parent.
Get rid of md5_model_t::base_skeleton.
Verify joint parent has been processed before use.
Reduce size of md5_vertex_t and md5_weight_t to 16 bytes.
Allow joint names up to 48 chars.

* Simplify Quat_SLerp() close angle check.

* Add VectorRotate() macro.

* Optimize MD5 interpolation more.

Get rid of Quat_RotatePoint() in hot path. Replace it with matrix
multiply. Gives some nice FPS boost.

* Un-inline quaternion functions.

* Only warn if MD5 has less frames than MD2.

* Added comments

* Added sv_load_ent toggle cvar

* Fixed documentation

* Fixed crashing bug that tried to find a null edict

* Build changes to fix sync/aq2-tng

* Fixed ETV capture issue, client crash on GL_ColorBytePointer and GL_VertexPointer

* Refactored setting and determining espionage modes, removed atl/etv cvars

* Removed redundant settings

* Added TestEntityPosition check on leader respawns

* Needed to rename VectorRotate because it was reintroduced..?

* Returning if bots are disabled

* Removed extra debug info

* Flush uniform buffer explicitly.

* Add GL_DeleteBuffer() function.

* Add R_Malloc() macro.

* Prepare hunk API for GPU lerp.

Add Hunk_FreeToWatermark(). Make Hunk_*Alloc() accept alignment
parameter.

* Add GL_BindingForTarget().

* Allow binding VA_NONE.

* Reduce scope of variable.

* Move glBindBufferBase to GL 3.0.

* Print freed models count.

* Fixing bot scaling issues in teamplay

* Commenting out TE_DAMAGE_DEALT

* Support alias model interpolation on GPU.

Can work on ≥ GL 3.1, but only enable on ≥ GL 4.3 by default to avoid
performance regressions.

Depending on hardware capabilities, this can make MD5 rendering a lot
(up to 10x) faster.

* Always use 16-bit indices for meshes.

* Update bug report template.

* Update INSTALL.md.

Mention that pkg-config search path must be updated in cross files.
Closes #360.

* Optimize skipping MD5 bounds.

* Update FreeBSD VM to 14.1.

* Fix rendering error if classic sky texture is missing.

Don't attempt to use cubemap as classic sky. Regression since 47656f8.

* Use VectorRotate() macro in more places.

* Use system meson package.

* No longer precaching AQtion gun sounds, saves us memory and sound slots

* Allow message write buffer to overflow.

With extended protocol limits, overflowing MAX_MSGLEN with single
message is possible in MVD and client demo code.

Allow msg_write to overflow and add explicit overflow checks to avoid
crashing with fatal error.

* Fixed Espionage bugs

* Added weapon options in docs

* Set timelimit and fraglimit to 0 if we issue nav_edit

* Quick and dirty expose gl_shaders value to gamelib

* Reduced special weapon/item respawn timers if bots are in the game

* Added option to not include bots in highscores, ctf fix

* Synced with skuller build changes

* Reverted mingw change, why fix if not broken

* Changed bot radio to use streakKills instead of score

* Use mat4_t for GL matrices.

* Add re-release fog effect support.

Keep fog parameters in player_state_t for proper delta compression.
Height fog seems broken but that's how it is in re-release.

* Set fog params too if only for sky factor.

* Explicitly use ubuntu-24.04 for mingw CI.

* Enable fog for shadows/celshading.

* Make ‘gl_fog’ a simple off/on toggle.

* rebased ch_hide_while_zoomed

* Fixed some old typos

* renamed to currently_scoped_in

* Set hc_boost default to 0, zoom crosshair default to 1

* Nade bonk is a little more accurate on hit location

* Nade bonk is a little more accurate on hit location

* Setup CTFSetupStatusbar

* Added documentation

* Statically linking some libraries

* Building libjansson from source

* sudo make install

* Fixed wording on pickup command errors

* Added ctf_dyn_respawn, sv bots fixed in TP mode, some optimizations..

* Adjusted the respawn timer to use a static value to subtract from

* Check for invalid node on dropped flag and return to avoid segfault

* Adjusted messaging criteria, updated docs

* Moved SteamCloud definition before fs_game/fs_home

* Refined documentation around bots

* unified AQTION_EXTENSION check to an #ifdef instead of an #if

* Fixed AQTION_EXTENSION pmove fields being stripped when player state was packed

* removed hack to strip protocol 38 support on non-listen servers

* restored customizeentityforclient, restored CvarSync_Updated

* fixed double tempent parse and filtered hitmarker sending

* Additional check on round number > 0

* Better CTF rules messages, fixed highscores crash

* Report all players in a pickup match in the Discord webhook

* Set bot ping to BOT if bot_reportasclient is 0

* Re-added duplicate CL_ParseTEnt();

* Initial save point on player stat bar in GHUD

* Looking a little better

* Re-colorized, fixed stat bar drawing

* Fixed team 1 bug

* Added center clock timer

* Hiding timer if timelimit is 0

* Reduced timer border thickness

* SetAnchor'd timer

* Using SetAnchor, center stat bar compatible with scr_scale

* Using SetAnchor, center stat bar compatible with scr_scale

* Fixed vertical alignment of stat values

* Moved stats horizontally, added award tallies

* GHUD Player stat and timer Deathmatch compatible

* Removed MOD_TELEFRAG from recording 100000 damage

* Set timer values to 0 if negative (overtime)

* Some cleanup, darkened gray bar

* A/I/E icons

* Unhide timer elements

* Re-draw the GHUD if going spectator

* Support for CTF scores in GHUD

* Moved HUD score a bit, CTF/Esp team logos render in GHUD now

* Team scores moved to center, matchmode has its own format

* Save point

* Static link libjpeg

* re-add xhair

* Added nice features from TNG upstream, thanks Raptor007

* Updated doc on missing stats_mode code

* Added teamnone command

* Added check for Espionage leader and documentation

* Updated documentation

* A potential fix for crashing when refreshing due to crosshair loading

* MSVC always bitches about something

* Removed debug statements

* Removed scr_crosshair_changed in scr_scale_changed

* Fix for Espionage not starting in ATL mode

* Set chosenItem to 0 if no item to log

* Check gl_shaders value before using legacy gl in DrawNullModel

* Client will not try to download jpg textures if r_override_textures is 0 (#245)

* Client will not try to download jpg textures if r_override_textures is 0

* Lovely how Mac built it fine but Linux did not

* Compiler warnings

* Non-static declarations, also checking for r_texture_overrides

* Non-static declarations, also checking for r_texture_overrides

* Removed commented cvars

* Setting r_override_textures to 2 for downloading jpg files now

* Variety of null/value checks (#244)

* Added knife_catch (#224)

* Fix uncommon spawnpoints (#255)

* Fixed one more warning

* This should fix maps with only one info_player_start spawn

* trying to fix a meson bug

* trying to fix a meson bug

* trying to fix a meson bug

* trying to fix a meson bug

* trying to fix a meson bug

* Gamemode fixes (#260)

* Moved gamemode server settings to Gamemode()

* Fixed some gamemodes, bots serverinfo

* Fixed 'atl' and 'etv' settings

* Add missing stats (#258)

* Fixed one more warning

* Added shot stats for punches and grenade throws

* auto_menu 2 and gl_shader check (#250)

* Fixed one more warning

* auto_menu 2 prints the menu AFTER the motd is printed

* Added IS_BOT macro, bot_reportpings cvar (#246)

* Minor CTF revamp (#247)

* ctf_rewards added, replacing ctf_mode, fixed stat collection

* Models disappeared somehow

* vwep works

* Limiting briefcase pickup to guns isn't working yet

* Added two todos

* Updated to macos-15-intel

* Added lrcon support directly to the gamelib (#261)

* Support for Extended Status and Rules queries (#262)

* Autoghost (#259)

* Fixed one more warning

* use_ghosts 2 to autoghost restore

* Fail early if ghosts isnt even enabled

* NULL check and doc update

* Keeping track of CTF/Dom/TeamDM scores in t1/t2/t3 cvars now (#263)

* Fixed implicit declaration

* Automatic demo recording, including deathmatch, without lua needed (#243)

* Automatic demo recording, including deathmatch, without lua needed

* Set ServerAutoRecordDemo to static

* Auto demo recording and sv_status_ext doc

* training mode (#254)

* training mode bot spawnpoint initial support

* Added spawn settings for training mode

* A few more behavior flags, logic gates

* Initial minor success?

* Still some debug statements, but bots spawn in.. player doesn't

* Renamed training_mode to just training

* Segfaults look to be addressed

* Botflags are properly set

* Fixed a few edge cases

* Fixed respawning issue

* Added BOT_DUMMY and BOT_IGNORE_ALL aliases

* Minor cleanup

* Adjusted some training mode specific settings, and botflags

* Smarter about auto adding bots

* Keep the doors around in training mode

* Blocking idle sounds and auto disabling use_rewards

* Item drop timer reduce, giving bots only a knife to start with

* Fixed idle sounds played in training mode

* Reduced complexity of item/weapon respawn

* More elegant way to force item respawns

* Should finally silence insane sounds in training mode

* Testing if doors are causing bglass to pop

* Reverted door removal code

* Set glass to no_knockback to prevent movement

* Added comment in glass

* Experimental trigger_gravity changes

* Set the if statement above the trigger statement

* Trying CONTENTS_MIST as the 'vacuum of space' option

* Trying CONTENTS_MIST as the 'vacuum of space' option

* Added CONTENTS_MIST as part of MASK_WATER

* Revert "Added comment in glass"

This reverts commit 8efba3d.

* Reverted

* Fixed some training mode bugs

* Fixed static dec bug

* Add timeout functionality for matchmode (#253)

* Fixed one more warning

* Draft timeout feature

* Revert main.c changes

* Optional ref whistle sound, some minor changes

* Minor rearragement

* Grant the timeout before the next round begins

* Fixed a few critical bugs, added documentation

* CTF fixes, null checks (#264)

* More CTF Fixes (#265)

* CTF fixes, null checks

* More ctf_mode fixes

* Restored ctf_mode design, added docs, fixes (#266)

* Restored ctf_mode design

* If statement fix for CTB

* Lrcon map and limchasecam->spectatorhud fixes

* Aliasing lrcon map to lrcon softmap

* Skullernet to Sync branch merge (#267)

* Add command to set/inspect custom fog.

* Don't add heatbeam particles if paused.

* Interpolate BFG lightramp in extended mode.

* Improve RandomDir() uniformity.

* Improve tracker shell effect.

Make entity black. Add more particles and make particles larger
depending on radius.

* Avoid NaNs in heightfog shader.

Fixes small ‘dead pixel’ artifacts visible in dark areas.

* Reduce indentation.

* Add re-release bloom effect support.

Based on code from: Jonathan <jonno.5000@gmail.com>
Suggestions by: @res2k

Closes #362.

* Delete program if it fails to compile/link.

Using incomplete program may crash the GPU.

* Clean up uniforms binding code.

* Fix uniforms block size mismatch.

ANGLE doesn't like it, but Nvidia/Mesa are fine with it.

* Add GL_BindBufferBase() wrapper.

* Remove unused argument.

* Make glStateBits_t 64-bit.

* Print shader source with ‘developer 3’.

* Add color shell to weapon model too.

* Improve visibility of typewritten strings.

* Update mgu6m2 checksum.

* Don't OR contents in CM_ClipEntity().

It turns out fire_lead() water detection logic has been broken all this
time due to this change. Revert to original Q2 behavior.

* Fix BFG laser sparks color.

* Fix PSX skies.

* Draw PSX flare as default flare.

* Better smoothing of short steps.

* Re-add debug graph support.

Can still be useful for some things. Also include packet size mode from
R1Q2.

* Update libcurl to 8.11.0.

* Turn ‘PF_cprintf to a non-client’ error into warning.

No reason for this to be an error when other similar conditions are
warnings.

* Don't put shadows on alpha surfaces.

* Use separate cvar for skybox texture filter.

Skybox textures are typically very low-res, and having them nearest
filtered can be undesirable even if the rest of textures are.

* Remove unneeded image type bit.

* Reset flare visibility if entity disappeared.

Prevents previously visible flares from popping up behind the wall. Use
2.5 sec timeout so that flashing flares still work.

* Scale flares up with distance for occlusion.

* Fix BFG lightramp lerp with variable FPS.

Regression since 9e99f37.

* Add N64 electric sparks effect.

Partially based on:
Paril@fd255ef

* Only print 24-bit PCX warning in developer mode.

* Fix broken maps that set skyrotate but not skyaxis.

* Only call GL_InitFramebuffers() if using shaders.

* Allow arbitrary length image extensions.

Don't just assume 3 chars. Allows some broken maps to work.

* Only print game API warnings in developer mode.

* Mask vwep index with 255 in extended mode.

More data may be packed after it in the future.

* Fix misrendered window icon

* Add missing parens for Com_DWPrintf

Ran into this when trying to make a release build from ade82fd

* Add clipmask parameter to new pmove trace function.

Allows ladders to work more reliably in some re-release maps.

* Update comments.

* Merge brush contents into solid leaf contents.

Fixes annoying issue with CONTENTS_LADDER tracing not working as
expected, because solid leafs only have CONTENTS_SOLID bit.

To avoid regressions, only do this in extended protocol mode.

* Remove ill-defined ‘map_allsolid_bug’ cvar.

It could cause prediction misses if desynced between client/server.

* Reduce size of mnode_t/mleaf_t.

* Print missing models with ‘developer 2’.

* Build some CI targets in release mode.

To catch errors like 0b790d7.

* Cast zlib malloc size to size_t before multiply.

* Support scaling sprites too.

* Interpolate blend in extended mode.

* Remove unused defines.

* Add BSPX header presence flag.

* Ignore SURF_NODRAW bit in vanilla maps.

Commit 0dbe1bb disabled rendering of NODRAW surfaces in attempt to fix
re-release maps, but this in turn broke vanilla maps which have NODRAW
bit randomly set on visible surfaces.

Only account for NODRAW if map has BSPX header.

Originally reported in Paril#132.

* Allow lightmapped SURF_FLOWING faces.

These are allowed to have lightmaps in vanilla Q2.

* Show surface flags for ‘cl_surface’ macro.

* Remove fake sky faces if using cubemaps.

Some vanilla maps use fake sky faces for lighting and backface culling.
These faces should be invisible, and must be removed if using cubemaps.

Originally reported in Paril#132.

* Calc vertex buffer size after removing sky faces.

* Consider more flags for N64 detection.

* Align code for readability.

* Ignore prediction misses of 1/8 units or less.

Prevents tiny oscillations when standing on top of another entity in
some cases. Follow-up fix to d019074.

* Fix race condition when retrieving thread return value.

Return value is not used anywhere currently.

* Rename CHAR_WIDTH to CONCHAR_WIDTH.

Prevents conflict with limits.h when compiling in C23 mode. Also rename
CHAR_HEIGHT.

* Better protect against multiple nextserver commands.

Users could kill the server by sending multiple nextserver
commands with crafted spawncount.

* Change debug level comparisons to >= for readability.

* Add shadow alpha fading with distance.

Also fix wrong projected point being used for shadow culling.

* Count culled shadows separately.

* Const-ify server state pointers in client_t.

* Assert input field buffer is nul-terminated.

* Update libcurl to 8.11.1.

* Update libjpeg-turbo to 3.1.0.

* More strictly check stat index bounds.

Don't allow referencing stats >= 32 without protocol extensions.

* Tweak BSP feature detection logic a bit.

Lightmapped liquids are compiler specific feature independent from
DECOUPLED_LM. Make them depend on BSPX header instead.

Also restrict bmodel skies to BSPX maps only, not N64.

* Skip cinematic demos if running coop server.

Hack to prevent the server from being killed if mod uses demos as
cinematics. Serving demos to multiple clients has never worked
in vanilla Q2 anyway.

* Skip cinematic existence check if running dedicated server.

* Move CRC to common code, expose CRC_Block().

* Support hashed format for entity string overrides.

For compatibility with YQ2 mapfixes.

* Fixed a few warnings and one error

* Fixed CON_WIDTH error

---------

Co-authored-by: Andrey Nazarov <skuller32@gmail.com>
Co-authored-by: Karolis Stasaitis <contact@carlossless.io>

* Autodownload on map conflict (#272)

* Auto download map once if local copy does not match server

* Hopefully fixing client autodnld bug

* Testing a fix to the dead body projectile blocking bug (#269)

* Testing a fix to the dead body projectile blocking bug

* Added use_buggy_ent_hitbox to toggle this feature

* Added documentation

* Refined docs

* Decoupled gl_dynamic (#270)

* Decoupled gl_dynamic

* Added documentation

* Null cvar deref fix

* Fixed CRC check value

* Test fix on flashing team bars for 1 frame on player death (#273)

* Test fix on flashing team bars for 1 frame on player death

* Fixed protocol issue

* Hopefully fixing the flicker

* Issue 298 fix

* Added potential fedora build system (#274)

* Added potential fedora build system

* Removed install step since we only want to do this once (self hosted runner)

* Updated for Fedora, uuid, bot_file_path fix

* Some notes

* Resolved discrepancies with skin/index paths (#299)

* A few GHUD score fixes (#300)

* Fixed team score digit placements (#301)

---------

Co-authored-by: Andrey Nazarov <skuller@skuller.net>
Co-authored-by: Andrey Nazarov <skuller32@gmail.com>
Co-authored-by: Lovro Grgic <lovrogrgic0@gmail.com>
Co-authored-by: Reki <spiper212@gmail.com>
Co-authored-by: Karolis Stasaitis <contact@carlossless.io>
Resolve build-system conflicts by taking aqtion newer dependency
versions (curl 8.15.0, libpng 1.6.50, zlib-ng 2.2.4) and zlib-compat
option for zlib-ng support.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* Add mm_carryover cvar for matchmode score carryover across maps

Allows team scores (t1/t2/t3) from map 1 to persist into map 2 in
matchmode multi-map matches. Scores are stored in game_locals_t which
survives map changes. Carryover auto-clears after map 2. Stat logging
subtracts carried-over scores for accurate per-map statistics.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* Removed .DS_Store

* Auto reset scores on carry over

---------

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants