Commit graph

1329 commits

Author SHA1 Message Date
Ozkan Sezer
ae4bf378c0 fix getting stuck with loading plaque upon loading bad saves using menu
also change bad save versions to Host_Error and change a Sys_Error into
Host_Error.
2022-04-23 11:03:20 +03:00
Ozkan Sezer
c0cfba160d implemented PF_localsound && svc_localsound for 2021 re-release. 2022-04-22 18:11:20 +03:00
Ozkan Sezer
f86f1595f3 minor error messages / whitespace tidy-up & small stuff. 2022-04-22 17:50:02 +03:00
Ozkan Sezer
ddd1caebf5 SV_SendServerinfo: fixed off-by-one nummodels/numsounds for protocol 15 2022-04-22 11:41:20 +03:00
Ozkan Sezer
22c69dd59c actually, svc_strings[lastcmd] is always legal there... 2022-04-22 01:32:02 +03:00
Ozkan Sezer
707507e9a3 cl_parse.c: make sure not to out-of-bounds read svc_strings[] array 2022-04-22 01:20:00 +03:00
Ozkan Sezer
87a08ae157 more svc_?? macro updates, update cl_parse.c:svc_strings for reference 2022-04-22 01:10:50 +03:00
Ozkan Sezer
13907a2df2 added PF_walkpathtogoal stub for 2021 re-release update3 2022-04-21 23:55:10 +03:00
Ozkan Sezer
533a00262c protocol.h: added 2021 re-release server message defines
from https://steamcommunity.com/sharedfiles/filedetails/?id=2679459726
2022-04-21 23:55:10 +03:00
Ozkan Sezer
7bd751327d PF_sound: Remove the volume, attenuation, and channel boundary checks:
they are already checked the same way in SV_StartSound()
2022-04-21 23:55:10 +03:00
Ozkan Sezer
530cbecc7d update PR_PatchRereleaseBuiltins further:
invent and use an exbuiltin_t table. a good side-effect of this is that
it makes sure that the ex_??? builtins' first_statement is actually 0.
2022-04-21 11:33:32 +03:00
Ozkan Sezer
c17a750569 update PR_PatchRereleaseBuiltins for Quake 2021 rerelease update 3:
Quake 2021 release update 3 changes rerelease-specific builtins to be looked up
by name rather than hardcoded builtin nums to avoid conflict with other engines.
(https://steamcommunity.com/games/2310/announcements/detail/3177861894960065435)
Patch them to use the indices, and also add its new builtins.
2022-04-21 03:25:24 +03:00
Ozkan Sezer
43a85fb24f added PR_PatchRereleaseBuiltins for Quake 2021 rerelease update 1,
and removed the relevant centerprint, bprint, and sprint entries
from pr_builtins[].

cherry-picked from the original patch for vkQuake by Andrei Drexler
2022-04-21 03:25:24 +03:00
Ozkan Sezer
d119208ab2 silence 'Unknown command "scr_usekfont"' message from 2021 re-release. 2022-04-21 03:25:24 +03:00
Andrei Drexler
e6d65c5aa4 Don't autoplay next demo after a timedemo
This happened when starting the game
with either -fitz or cl_startdemos 1
and then executing 'timedemo demo1'
while a title demo was still playing
2022-04-02 11:50:10 +03:00
Andrei Drexler
f943e742dc Add cl_startdemos cvar
https://github.com/andrei-drexler/ironwail/issues/21
2022-04-02 11:50:10 +03:00
Andrei Drexler
0b30541ab9 Replace manual demo cdtrack parsing with evil fscanf
This fixes the missing music in hipdemo1 caused by a leading space
character before the cdtrack number, which ended up being parsed
incorrectly.  https://github.com/andrei-drexler/ironwail/issues/60

Note: original issue with fscanf (mentioned in the code comments)
was caused by the inclusion of the newline in the format string.
We work around it by reading the newline character separately.
2022-04-02 11:50:10 +03:00
Ozkan Sezer
ae97a7b5ed Key_Console: change strcpy to memmove for K_UPARROW and K_DOWNARROW 2022-03-31 23:02:20 +03:00
Ozkan Sezer
633fa48842 use _Static_assert for COMPILE_TIME_ASSERT if available 2022-03-31 17:01:02 +03:00
Ozkan Sezer
1baf872843 Mod_PointInLeaf: make declaration match its definition. 2022-03-29 23:02:02 +03:00
Ozkan Sezer
b0767dbc90 add back snd_modplug (disabled, for future ref.), update project files. 2022-03-29 17:04:02 +03:00
Ozkan Sezer
fb87b63d19 lodepng: fixed MSVC C4334 warnings in 64 bit builds
1>D:\sezero\quakespasm-git\Quake\lodepng.c(689,54): warning C4334: '<<': result of 32-bit shift implicitly converted to 64 bits (was 64-bit shift intended?)
1>D:\sezero\quakespasm-git\Quake\lodepng.c(708,39): warning C4334: '<<': result of 32-bit shift implicitly converted to 64 bits (was 64-bit shift intended?)
1>D:\sezero\quakespasm-git\Quake\lodepng.c(5467,33): warning C4334: '<<': result of 32-bit shift implicitly converted to 64 bits (was 64-bit shift intended?)

c.f.: https://github.com/lvandeve/lodepng/pull/142
2022-03-26 05:00:32 +03:00
Ozkan Sezer
d239a8911d snd_umx.c (get_objtype): make sure that 'sig' array is initialized. 2022-03-21 20:21:24 +03:00
Andrei Drexler
065c158254 Quad/pentagram dlights for 2021 rerelease 2022-03-11 23:55:10 +03:00
temx
6cf0547d01 Fix SZ_GetSpace server crashes
See https://github.com/Novum/vkQuake/pull/438.  Also see
    https://github.com/andrei-drexler/ironwail/issues/32

Note: Changing that 24 to 39 does prevent the crash, but
the buffer size is still insufficient, so some entities
(e.g. nails) are missing occasionally. A MAX_DATAGRAM of
48000 seems enough to fix that (MAX_DATAGRAM in ironwail
has been bumped to 64000.) Long term though, it would be
much better to add support for pkt fragmentation like in
QSS since this jumbo packet size is only used in single-
player mode - multiplayer uses the much smaller value of
DATAGRAM_MTU (just 1400 bytes.)
2022-03-11 23:55:10 +03:00
Andrei Drexler
32b1ebb828 Fix mouse input truncation with non-integral sensitivity 2022-03-11 23:55:10 +03:00
Ozkan Sezer
c5a45e7e58 move DEG2RAD macro to mathlib.h.
From a patch by Andrei Drexler
2022-03-11 23:55:10 +03:00
Ozkan Sezer
144b43f333 update lodepng to 20220109 version from mainstream. 2022-03-01 14:20:02 +03:00
Ozkan Sezer
b76d5e1b9f miniz updates:
- update from mainstream master to fix mainstream PR/159#issuecomment-1046220324
- fixes by Alice Rowan for mainstream issue 220
2022-03-01 11:56:10 +03:00
Andrei Drexler
14b7338946 Fix intermission camera angles during demo playback
(see https://github.com/sezero/quakespasm/issues/18)
2022-03-01 11:20:10 +03:00
Andrei Drexler
ec49ef2441 Add 'horde' cvar (for 2021 rerelease) 2022-03-01 11:20:10 +03:00
Andrei Drexler
9582f6c7b6 Change STRUCT_FROM_LINK to avoid potential undefined behavior 2022-03-01 11:20:10 +03:00
Andrei Drexler
a1f522701a Tweak PF_findradius 2022-03-01 11:20:10 +03:00
Andrei Drexler
6642ad63b7 Raise window after showing it
Potential fix for https://github.com/andrei-drexler/ironwail/issues/27:
The focused window is not the game window on initial startup until the
game window is clicked on with mouse. Confirmed that it doesn't happen
with only one screen.
2022-03-01 11:20:10 +03:00
Ozkan Sezer
743c983060 miniz: updates from mainstream PR/159
--
2022-01-27 08:10:04 +03:00
Ozkan Sezer
f260464d96 miniz: fixed a bad return introduced in previous update. 2022-01-23 10:02:02 +03:00
Andrei Drexler
8f4c5b3dfa Skip leading whitespace in Q_atoi and Q_atof
This matches the standard library and also fixes the following bug:
- load ad_sepulcher and move to an area where water is visible
- open up the console
- save waterbug
- load waterbug
Water is now invisible as long as the console is still active.

The issue stems from the fact that cvar_set is called at startup
with the arguments ("r_wateralpha", ftos(liquid_alpha)) [1],
and ftos pads its output ("  0.6"). Without skipping the leading
whitespace, Q_atof ends up returning 0, which then gets assigned
to r_wateralpha. This makes the water invisible until a stuffcmd
that sets r_wateralpha again is later received from the server.
With the console open at startup, however, the stuffcmd message
can be delayed indefinitely.

[1] 320f1cec45/world.qc (L641)
2022-01-09 01:25:50 +03:00
Ozkan Sezer
6071c47c91 miniz: fix shadowing warnings (from a patch by Axel Gneiting) 2022-01-07 11:03:04 +03:00
Ozkan Sezer
9c53316dcf updates to miniz:
merges upstream PRs 159, 217, and 220, tweaks to MZ_FORCEINLINE macro,
tweaks to mz_int64 typedefs for older MSVC.
2022-01-03 02:56:04 +03:00
Ozkan Sezer
1439cc0547 snd_umx: don't overzealously restrict the loader to known upkg versions. 2021-12-28 03:21:10 +03:00
Ozkan Sezer
2e0146c7fb disable assert()s by default in miniz 2021-12-23 15:55:02 +03:00
Ozkan Sezer
09396fd9ca bump version to 0.94.3, update documents. 2021-12-05 15:11:10 +03:00
Andrei Drexler
7f4e1c13e7 Handle sky textures with non-standard sizes 2021-12-05 14:10:50 +02:00
Andrei Drexler
e3d2fb9fd9 Check that sky texture size is 256x128
(taken from quakespasm-gl4 fork.)
2021-12-04 11:11:10 +03:00
Andrei Drexler
eeda766f12 Allow loading textures not aligned to 16 pixels
This fixes the mg1/horde2 loading error

(taken from quakespasm-gl4 fork.)
2021-12-04 11:11:10 +03:00
Ozkan Sezer
a4dcdda3d9 common.c (LOC_ParseArg): remove unused local var 'start' 2021-12-04 11:11:10 +03:00
Ozkan Sezer
0b946eda0e merged a minor update to miniz.h from mainstream 2021-12-04 11:11:10 +03:00
Andrew J. Hesford
b311f7e231 Fix format overflow warning with 32-bit gcc
(taken from vkquake.)
2021-12-04 11:11:10 +03:00
Ozkan Sezer
d5e9d1270c more parentheses around vector macro arguments. 2021-12-04 11:11:10 +03:00
Andrei Drexler
9c78f028f6 Add parentheses around vector macro arguments
(taken from quakespasm-gl4 fork.)
2021-12-04 11:11:10 +03:00
Ozkan Sezer
6cf4bbc198 reverted the previous NO_WINSDKVER_H patch - not needed after latest SDL 2021-11-06 12:00:00 +03:00
Ozkan Sezer
2492689d9e define NO_WINSDKVER_H for windows SDL2 builds
SDL_config_windows.h from development version of SDL added inclusion of
winsdkver.h which may not be available in old SDKs.  we have no use for
the functionality provided by it, therefore disable it.
2021-11-05 10:51:10 +03:00
Ozkan Sezer
3fbb11b048 bump version to 0.94.2, update documents. 2021-10-10 05:11:02 +03:00
Ozkan Sezer
7ed46cc3fd support for playing 2021 re-release latest update. 2021-10-10 05:10:50 +03:00
Ozkan Sezer
602b34f414 finaleFinished (builtin 79) of 2021 rerelease actually returns a boolean 2021-10-10 05:10:10 +03:00
Ozkan Sezer
081e73c709 host_cmd.c: make a lot of procedures static. 2021-10-01 11:10:04 +03:00
Ozkan Sezer
b58efad209 fix looking for QuakeEX.kpf under userdir 2021-10-01 11:02:02 +03:00
Ozkan Sezer
bf85bbb3e8 look for QuakeEX.kpf under userdir too.
Closes https://github.com/sezero/quakespasm/issues/8
2021-09-20 14:55:50 +03:00
Andrei Drexler
e632b79725 Start the light trace for alias models from slightly above their origin
This fixes the black candles in the DOTM start map (see vkQuake issue:
https://github.com/Novum/vkQuake/issues/367 )
2021-09-20 11:55:10 +03:00
Andrei Drexler
a1f9cce1f4 Fix pitch black models in lit areas in DOTM (mg1).
See: https://github.com/sezero/quakespasm/issues/7
2021-09-20 11:55:10 +03:00
Ozkan Sezer
e67dc8c0d1 added a safeguard, just in case.. 2021-09-05 11:37:10 +03:00
Ozkan Sezer
68c17d38f7 remove FitzTest_f - doesn't seem to test anything.. 2021-09-05 11:37:10 +03:00
Ozkan Sezer
86b0065d0b miscellaneous makefile updates 2021-09-04 23:56:50 +03:00
Ozkan Sezer
169ec72d0e miniz.c: silenced some stupid watcom warnings 2021-09-04 23:55:10 +03:00
Ozkan Sezer
ca051b3392 disable W303 warnings in watcom makefile 2021-09-04 23:55:10 +03:00
Ozkan Sezer
f78f74a03f renamed watcom makefile 2021-09-04 23:55:10 +03:00
Ozkan Sezer
83b8b76ca6 bump version to 0.94.1, update documents. 2021-09-04 20:50:50 +03:00
Ozkan Sezer
94db75126c Fix lightmap issues after vkQuake surface mark/cull optimizations merge
Fixes https://sourceforge.net/p/quakespasm/bugs/50/
Extracted from vkquake commits cae39a8fb0, c781043c4f, and e2d6c49b23.
2021-09-04 20:28:24 +03:00
Guillaume Plourde
0fc09fd95d q64 sky texture now display correctly
see https://github.com/Novum/vkQuake/pull/358
2021-09-03 01:37:50 -04:00
Andrei Drexler
401aa52d45 Compensate viewmodel distortion at fov > 90
See: https://github.com/Novum/vkQuake/issues/281

Controlled by new cvar cl_gun_fovscale (defaults to 1).
Based on code from Qrack:
3bc2862b1a/gl_rmain.c (L2384-L2392)
2021-09-02 20:50:50 +03:00
Guillaume Plourde
b796e366db q64 rerelease 2021 bsp support
see https://github.com/Novum/vkQuake/pull/356
2021-09-02 20:50:50 +03:00
Ozkan Sezer
3af9ad4e04 2021 rerelease support: read the localization file from QuakeEX.kpf
uses a customized and highly stripped down miniz version. also move
localization file reads to SDL_RWops, and update the documentation.
2021-09-01 14:00:00 +03:00
Ozkan Sezer
4e1d132f31 Raised MAX_GLTEXTURES limit from 2048 to 4096 for now per Eric's request 2021-08-31 15:50:28 +03:00
Andrei Drexler
9d7f9eac6f Fix bogus extra localization entries on Windows
Due to CRLF translation the value returned by fread in text mode can be less than the size of the file, leaving bogus data at the end of the buffer. Since the parser can already handle CRLF-terminated lines, and when reading directly from QuakeEX.kpf there would be no CRLF translation anyway, we can just open the file in binary mode.
2021-08-31 15:50:02 +03:00
Ozkan Sezer
e1f17a90ef bump version to 0.94.0, more documentation updates. 2021-08-30 11:35:00 +03:00
Andrei Drexler
83af8d060f Add basic localized strings support for 2021 re-release
See https://github.com/Novum/vkQuake/pull/345
2021-08-29 17:11:28 +03:00
Ozkan Sezer
2313298d14 window icon should be set after window creation in SDL2. 2021-08-29 17:04:40 +03:00
Ozkan Sezer
85683a04c9 fix my mis-merge of the ents patch. 2021-08-29 14:56:40 +03:00
Ozkan Sezer
dd874e34b7 workaround re-release default.cfg issue:
id1/pak0.pak from 2021 re-release doesn't have a default.cfg
embedding Quakespasm's customized default.cfg for that.
2021-08-29 14:55:24 +03:00
Andrei Drexler
5ae076ea2d Versioned map entity patches 2021-08-29 14:55:10 +03:00
Ozkan Sezer
6c1a97d755 regenerated quakespasm.pak 2021-08-28 03:10:00 +03:00
Ozkan Sezer
8797c8c384 r_brush.c (AllocBlock): use calloc() to not leave uninitialized memory.
keeps valgrind happy.
2021-08-27 17:03:00 +03:00
Ozkan Sezer
9f8b569f9b external vis file support 2021-08-27 14:00:32 +03:00
Andrei Drexler
8a72565fd0 Change 'model has a skin taller than 480' error into a warning.
See https://github.com/Novum/vkQuake/issues/347
2021-08-27 14:00:10 +03:00
Andrei Drexler
95845b9d2e Add no-op menu_credits command for quake '2021 release' version 2021-08-24 14:24:24 +03:00
Andrei Drexler
86c06eeb15 Add no-op finaleFinished QuakeC builtin 79 for quake '2021 release' version 2021-08-24 11:56:50 +03:00
Ozkan Sezer
bafb17495e cl_parse.c: update the svc_strings[] array after recent commits. 2021-08-22 20:25:40 +03:00
Andrei Drexler
c82ef652db map MOVETYPE_GIB of quake '2021 release' version to MOVETYPE_BOUNCE 2021-08-22 18:55:02 +03:00
Andrei Drexler
51b23fa30a ignore svc_achievement server message for quake '2021 release' version. 2021-08-22 18:55:02 +03:00
Andrei Drexler
65c1644849 add a 'campaign' cvar for quake '2021 release' version. 2021-08-22 18:55:02 +03:00
Ozkan Sezer
dd8f4fbd29 bump version to 0.93.3 and update the changelog 2021-08-20 18:11:20 +03:00
Ozkan Sezer
2d9eb310bc replace size_t casts to pointers with (u)intptr_t. 2021-08-10 01:04:50 +03:00
Andrei Drexler
3c8611f604 Reset pointers to sky textures on map unload/game change
This fixes a crash when loading a skyless map after one with a sky.
( From: https://github.com/Novum/vkQuake/pull/339 )
2021-08-10 01:00:02 +03:00
Ozkan Sezer
bd8615c235 snd_umx.c: revise sanity checks and check returned values from FS layer. 2021-07-14 03:37:00 +03:00
Ozkan Sezer
96b07d712d mingw makefiles: -lm is not needed. 2021-07-09 14:56:00 +03:00
Axel Gneiting
3fc32bf7fe Merge surface mark & cull optimization from vkQuake
* Remove separate surface culling pass. Instead always build texture chains every frame & cull in mark surfaces.
* Optimize R_CullBox & R_BackFaceCull
2021-07-07 23:55:50 +03:00
Ozkan Sezer
d6e68b6f19 minor tweak to the ow makefile 2021-07-07 23:55:50 +03:00
Ozkan Sezer
57748db955 add arm64 target to Makefile.darwin
SDL2 and music codec builds for arm64 should come later.
2021-06-28 03:01:02 +03:00
Ozkan Sezer
78323635a0 silence a few macOS deprecation warnings.
The IOHID deprecation (its use is in in_sdl.c for the mouse acceleration
hack) still needs addressing:

in_sdl.c:163:7: warning: 'IOHIDGetAccelerationWithKey' is deprecated: first deprecated in macOS 10.12 [-Wdeprecated-declarations]
                if (IOHIDGetAccelerationWithKey(mouseDev, CFSTR(kIOHIDMouseAccelerationType), &originalMouseSpeed) == kIOReturnSuccess)
                    ^
/opt/MacOSX11.3.sdk/System/Library/Frameworks/IOKit.framework/Headers/hidsystem/IOHIDLib.h:96:1: note: 'IOHIDGetAccelerationWithKey' has been explicitly marked deprecated here
IOHIDGetAccelerationWithKey( io_connect_t handle, CFStringRef key, double * acceleration ) __attribute__((availability(macos,introduced=10.0,deprecated=10.12)));
^
in_sdl.c:165:8: warning: 'IOHIDSetAccelerationWithKey' is deprecated: first deprecated in macOS 10.12 [-Wdeprecated-declarations]
                        if (IOHIDSetAccelerationWithKey(mouseDev, CFSTR(kIOHIDMouseAccelerationType), -1.0) != kIOReturnSuccess)
                            ^
/opt/MacOSX11.3.sdk/System/Library/Frameworks/IOKit.framework/Headers/hidsystem/IOHIDLib.h:99:1: note: 'IOHIDSetAccelerationWithKey' has been explicitly marked deprecated here
IOHIDSetAccelerationWithKey( io_connect_t handle, CFStringRef key, double acceleration ) __attribute__((availability(macos,introduced=10.0,deprecated=10.12)));
^
in_sdl.c:190:7: warning: 'IOHIDSetAccelerationWithKey' is deprecated: first deprecated in macOS 10.12 [-Wdeprecated-declarations]
                if (IOHIDSetAccelerationWithKey(mouseDev, CFSTR(kIOHIDMouseAccelerationType), originalMouseSpeed) != kIOReturnSuccess)
                    ^
/opt/MacOSX11.3.sdk/System/Library/Frameworks/IOKit.framework/Headers/hidsystem/IOHIDLib.h:99:1: note: 'IOHIDSetAccelerationWithKey' has been explicitly marked deprecated here
IOHIDSetAccelerationWithKey( io_connect_t handle, CFStringRef key, double acceleration ) __attribute__((availability(macos,introduced=10.0,deprecated=10.12)));
^
2021-06-28 03:01:02 +03:00
Ozkan Sezer
848aa26b3c silence opengl deprecation warnings from newer mac sdks. 2021-06-28 03:01:02 +03:00