Commit graph

1320 commits

Author SHA1 Message Date
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
Ozkan Sezer
824f01031e silence misleading indentation warnings from clang. 2021-06-28 03:01:02 +03:00
Ozkan Sezer
9ca7d499e5 fixed -Wshadow warnings. 2021-06-23 04:37:10 +03:00
Ozkan Sezer
9fc38410dd VID_InitModelist (SDL-1.2): zero the whole format,
.. instead of only setting its palette fiel to NULL. This makes it work
with sdl12-compat (see: https://github.com/libsdl-org/sdl12-compat.git)
2021-04-12 12:37:04 +03:00
Ozkan Sezer
f88bdb7d0b fix rendering bug when cl_bobcycle was set to zero (sf.net bug/41)
fix taken from Kevin Shanahan's Tyr-Quake
2021-03-31 23:51:10 +03:00
Ozkan Sezer
81adf62374 Updates for tracker music:
- New console command music_jump: Jump to given order in music,
  like Unreal's music change.  Only for module (tracker) music.
- stream layer: Store the loop setting.
- umx reader: Replaced questionable byte-swap.
- libxmp backend: Handled the loop setting through libxmp apis.
- mikmod backend: Enabled in-module loops. Respect global loop
  setting. More compatible reader callback structure.
2021-02-04 23:28:00 +03:00
Ozkan Sezer
75e9bc385f snd_xmp.c updates. 2021-01-31 20:50:00 +03:00
Ozkan Sezer
66df5d09f4 Merge /u/smcvittie/quakespasm/ branch cross-pkg-config into master
https://sourceforge.net/p/quakespasm/quakespasm/merge-requests/2/
2021-01-07 14:55:24 +00:00
Helmut Grohne
a7503e2be2 Make pkg-config substitutable
This helps with cross-compilation. When cross-compiling, the environment
variable PKG_CONFIG is typically set to a version of pkg-config that is
configured to look in appropriate locations for the cross architecture.

For example, a build for 64-bit ARM might use:

    make \
        CC=aarch64-linux-gnu-gcc \
        STRIP=aarch64-linux-gnu-strip \
        PKG_CONFIG=aarch64-linux-gnu-pkg-config \
        release

On a Debian system, this would look in
/usr/lib/aarch64-linux-gnu/pkgconfig for details of 64-bit ARM Opus
libraries.

Bug-Debian: https://bugs.debian.org/900217
2020-12-22 12:17:31 +00:00
Stephen Kitt
9bd1cc8d1d Spelling fixes 2020-12-22 12:05:37 +00:00