Commit graph

460 commits

Author SHA1 Message Date
Denis Pauk
2b69f3774f game: sync ctf hud/trail 2023-11-04 17:01:06 +02:00
Denis Pauk
16dee61c78 game: sync ctf g_{spawn,phys} 2023-11-03 01:00:51 +02:00
Denis Pauk
9947744114 game: sync ctf g_{chase,func,items,misc,weapon} 2023-11-03 00:36:57 +02:00
Denis Pauk
c41b72125a game: sync with ctf g_svcmds, g_target, g_trigger 2023-11-02 00:58:27 +02:00
Denis Pauk
d68c31e0e4 ctf: Add game monsters 2023-11-02 00:38:33 +02:00
Denis Pauk
2fe5162add game: ctf g_utils sync 2023-11-02 00:26:48 +02:00
Denis Pauk
258d041b5d cin: Add ogv video support 2023-10-27 19:43:41 +03:00
Denis Pauk
5c49886d7b game: sync ctf g_weapon 2023-10-24 17:23:01 +03:00
Denis Pauk
675ce35e75 game: Add g_ctf to game 2023-10-24 17:07:43 +03:00
Denis Pauk
59e3207bed game: sync ctf moster move code 2023-10-23 01:25:43 +03:00
Denis Pauk
91ffbeea08 game: final merge of rogue 2023-10-22 17:59:13 +03:00
Denis Pauk
a46d6a2d83 game: sync all rogue monsters to game 2023-10-22 14:46:26 +03:00
Denis Pauk
5c87db6e88 game: sync rogue player code 2023-10-22 13:05:13 +03:00
Denis Pauk
5103bd6f72 game: sync rogue g_* files 2023-10-22 12:19:30 +03:00
Denis Pauk
17f223eada game: Add ctf to default build 2023-10-21 23:41:22 +03:00
Denis Pauk
1e39328655 game: sync rogue soldier logic 2023-10-21 19:06:01 +03:00
Denis Pauk
30fa1d6b83 game: sync g_* rogue logic 2023-10-21 18:42:18 +03:00
Denis Pauk
1ec141c954 game: final merge of xatrix 2023-10-21 13:15:54 +03:00
Denis Pauk
5b7696b789 game: sync game logic from xatrix 2023-10-21 02:28:43 +03:00
Denis Pauk
0956f965f7 game: sync up xatrix player 2023-10-21 01:12:13 +03:00
Denis Pauk
689e54c7eb game: sync up all xatrix monsters 2023-10-21 00:45:32 +03:00
Denis Pauk
5ca0b0ce5d game: sync flipper and float with xatrix 2023-10-20 22:54:02 +03:00
Denis Pauk
00fc171350 game: sync boss3 with rogue 2023-10-20 22:54:02 +03:00
Denis Pauk
2dcad44128 game: sync boss2,boss3,brain and chick with xatrix 2023-10-20 22:54:02 +03:00
Denis Pauk
159dde8c2f game: combine monsters from separate files
Move to game all monsters defined in separate files, without real
usage for now.
2023-10-20 22:54:02 +03:00
Denis Pauk
9702700225 Temporary build rogue as separate library 2023-10-20 22:54:02 +03:00
Denis Pauk
7f74db318b Temporary build xatrix as separate library 2023-10-20 22:54:02 +03:00
Denis Pauk
03bfc581e2 gl1,gl3,gl4,vk: Parial share of warp code 2023-10-12 00:29:47 +03:00
Denis Pauk
a89ff8c0a0 Use hunk allocation for CMod_LoadAreas 2023-10-08 15:19:33 +03:00
Denis Pauk
8f5a40710b R_RecursiveLightPoint: Share part of light logic 2023-10-06 18:38:24 +03:00
Denis Pauk
21ceb16de4 Move BSPX lighting code to shared code 2023-10-05 19:24:15 +03:00
atsb
637933a23c Add the OpenGL 4.6 renderer for YQ2
https://github.com/yquake2/ref_gl4
2023-09-20 01:23:22 +03:00
Denis Pauk
42465a6b03 Add Vulkan render 2023-09-17 14:17:14 +03:00
Denis Pauk
c898573885 Add support of smacker files
https://sourceforge.net/projects/libsmacker/files/libsmacker-1.2/

libsmacker is released under the Lesser GNU Public License, v2.1.
2023-09-17 11:54:57 +03:00
Denis Pauk
318cd69318 Add nolerp filtering by * 2023-09-16 10:56:50 +03:00
Jaime Moreira
9821c4b0a2 Show correct replacement for gl_lightmap cvar
Typos corrected
2023-08-26 19:18:24 -04:00
Yamagi
3a9b8de2ab Don't enforce a C standard in Makefile.
This matches the behavior of cmake. Besides that we have some optional
C11 code and it should be used if the compiler has support for it. And
C99 as default is a remnant from the old times were we didn't want C11
in the standard code path, because several old Linux distros didn't
support it...
2023-04-15 19:57:26 +02:00
Denis Pauk
c17210b34a Share R_TextureAnimation 2023-01-21 18:24:55 +02:00
Denis Pauk
ae13c7e034 Share MD2/SP2 files 2022-10-17 22:43:39 +03:00
Yamagi
d29e551773 Remove work around for msys2 / mingw64 not setting CC.
This was a upstream bug which has been resolved long ago. Closes #901.
2022-10-08 16:29:59 +02:00
Yamagi
b59077b972 Normalize arm64 to aarch64.
This ensures that we call ARM64 `aarch64` on all platform, which aren't
MacOS or Windows. And it fixes the bug, that `arm64` was normalized to
`arm`, making incompatible savegames between 32 bit and 64 bit ARM
loadable. Leading to crashes.
2022-05-20 12:56:22 +02:00
Daniel Gibson
2a8bd9e7a6 GL3: build ref_gles3 in addition to ref_gl3
instead of making it a compile-time option, just build both
2022-04-27 00:33:46 +02:00
Daniel Gibson
8737ce64fc GL3: Support OpenGL ES3.0 (compile time option GL3_GLES=yes)
the option defaults to no, of course.
2022-04-26 04:09:38 +02:00
David CARLIER
a15e53ce60 build fix proposal on mac where archs are well defined.
the arch normalization leads to arm32 bit build under mac m1.
2021-07-03 16:02:58 +01:00
Yamagi
376d97c54f Correct braino in LDFLAGS / LDLIBS, Windows build fix 2/2. 2021-06-29 09:01:13 +02:00
Yamagi
61c08eee13 Fix ASAN and UBSAN builds, enhance sanitizers a little bit.
At least for LLVM / Clang the -fsanitize= option must be passed to the
linker before any objects or libraries, otherwise the sanitizers will
either noch link or are disfunctional. Split LDFLAGS into LDFLAGS for
flags and LDLIBS for librariers, pass LDFLAGS before any objects and
LDLIBS after all objects. While at it set RTLD_NODELETE so that shared
libs opened by dlopen() are never deleted from memory when building
with sanitizers.
2021-06-26 16:28:08 +02:00
David Carlier
53c684525f solairs/illumos build fix proposal. 2021-06-13 08:25:56 +01:00
Yamagi
bb7bf8ef9e Disable floating-point expression contraction on gcc builds.
While this shouldn't be a problem with C code, better be safe than
sorry. @DanielGibson stumbled over this while debugging some strange
RB-Doom3 / dhewm3 issues with gcc. See this bug report for details:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100839
2021-06-06 18:48:38 +02:00
Yamagi
ce10213d91 Remove rev_vk from the Makefile. 2021-05-28 09:32:42 +02:00
Yamagi
2a18f02186 Don't build the vk renderer when WITH_REFVK is no.
This is the third or forth try, already. *grrr* WITH_REFVK isn't enough,
as long as the target is there. Wrap the whole target in an if-block.
2021-03-10 10:50:02 +01:00
Yamagi
d745e16523
Merge pull request #642 from DanielGibson/fix-lm-glitch
Makefile: Fix architecture detection on Windows
2021-01-13 18:11:03 +01:00
Daniel Gibson
ee7923a9dd Fix architecture detection on Windows in Makefile, bump SAVEGAMEVER
$PROCESSOR_ARCHITECTURE seems to contain the architecture of the host,
but we need the architecture the current MinGW shell is targeting.
$MINGW_CHOST seems to be just that, and on my system it's either
i686-w64-mingw32 (mingw32.exe) or x86_64-w64-mingw32 (mingw64.exe)
(No idea what it looks like for Windows on ARM...)

As fixing this would otherwise break existing savegames, I bumped the
SAVEGAMEVER to "YQ2-4" and added a quirk for older savegameversions:
On Windows i386 savegames that contain "AMD64" instead of "i386" as
architecture are also accepted.
(For YQ2-1 this didn't seem necessary, apparently "i386" was hardcoded)
2021-01-12 05:04:11 +01:00
Yamagi
a52402fd3c Add undefined behaviour sanitizer to the Makefile.
While here update some comments and add a comment sections for the
command line variables.
2021-01-10 18:55:42 +01:00
Yamagi
85b9f84b3d Don't link against the Vulkan loader, load it at runtime. 2020-12-12 14:45:04 +01:00
Denis Pauk
896346cf1a Fix MINGW64 windows build 2020-12-12 14:45:04 +01:00
Denis Pauk
b94afbc6c1 remove unused vk_mem_alloc 2020-12-12 14:45:04 +01:00
Denis Pauk
518f46953b Build vk_util as part of ref_vk 2020-12-12 14:45:04 +01:00
Yamagi
d291e0bbc5 Add header dependencies for the Vulkan renderer.
While here load the software renderer header dependencies. No one ever
complained about that... -_- And fix a long standing typo.
2020-12-12 14:45:04 +01:00
Yamagi
9801db5c5c Simplify the Vulkan renderer build.
* No need for global CXXFLAGS. The only difference to CFLAGS is the
  standard selector, use $(subst) to derive them from CFLAGS.
* libstd++ must never be manually linked. Doing so only works for the
  GNU C++ stack, not for the LLVM stack and anything else. Link with
  the C++ frontend instead.
* Force MingW to g++ as CXX.Force MingW to g++ as CXX.
* No need to specify -lm, libm is already part of the global LDFLAGS.
* Windows doesn't need -fPIC.
* The Vulkan renderer doesn't use glad.
2020-12-12 14:45:04 +01:00
Yamagi
c895d004d2 Remove artificial Linux only limitation for the Vulkan renderer. 2020-12-12 14:45:04 +01:00
Denis Pauk
ca60275694 move headers to right place 2020-12-12 14:45:03 +01:00
Denis Pauk
823e0eb915 Add experemental vulkan render 2020-12-12 14:45:03 +01:00
nia
e814446595 Set runtime library paths 2020-11-24 14:11:19 +01:00
nia
c211176149 Support building on NetBSD with the GNU make build system 2020-11-24 14:07:58 +01:00
Yamagi
e9a0162eea -fvisibility=hidden is a compiler option, don't pass it to the linker. 2020-10-08 12:02:35 +02:00
Yamagi
bf83db4d6d Add an ASAN option to the Makefile.
ASAN includes DEBUG. ASAN can be overriden by the environment.
2020-10-08 11:56:41 +02:00
David Carlier
1412d0201c Backport changes to old Makefile 2020-08-09 15:52:11 +00:00
David Carlier
3e63226bad Translate changes to the Makefile build too 2020-06-26 12:43:06 +00:00
Alex Petty
a2d6cc9cdc Mac OS uses @executable_path not for rpath 2020-05-20 19:39:09 -05:00
Alex Petty
895c7bc850 Enable rpath with Mac OS linker 2020-05-20 19:30:52 -05:00
Yamagi
00e6eb6303 Remove unnecessary OSX_ARCH setting, replace it with YQ2_ARCH. 2020-04-21 13:57:09 +02:00
Yamagi
5b327c0417 Don't use yield opcode if unsupported.
This is an enhancement to the previous `yield` work:

* Don't enforce `-march=armv8-a` for aarch64 builds, because it is the
  initial ARMv8 revision and compilers will either use that or something
  newer.
* Refine preprocessor guards around `asm("yield");` so the code isn't
  compiled in if unsupported by the current `-march='.

Submitted by @smcv in #535.
2020-04-03 08:30:41 +02:00
Yamagi
9f7c5c205b Enforce the YQ2_OSTYPE override for mingw. 2020-03-24 13:37:31 +01:00
Yamagi
142690e164 Enforce a minimum architecture for ARM.
This was added in 558ee7 to master.
2020-03-23 16:48:56 +01:00
Yamagi
c904880dc9 Another round of small Makefile fixes:
* ZIPCFLAGS was never defined, just appended to.
* Make INCLUDE overrideable.
2020-03-23 16:47:34 +01:00
Yamagi
11cb64ede2 Mark global additions to CFLAGS and LDFLAGS as override.
This prevents them from being overriden by command line variables, e.g.
something like `make CFLAGS=-0`. Requested by @smcv in #523.
2020-03-23 16:47:34 +01:00
Yamagi
b48cc47465 Make setting the RPATH optional.
When WITH_RPATH is set to no, the default RPATH to $ORIGIN/lib isn't
set.

This was requested in #523.
2020-03-23 16:47:34 +01:00
Yamagi
aa36dcad6c Make YQ2_OSTYPE and the hardcoded CC define for Windows overrideable. 2020-03-23 16:47:34 +01:00
Yamagi
a26666d805 Mention CURL in the header and the build config. 2020-03-23 16:47:34 +01:00
Yamagi
36f77aa318 Make LDFLAGS overrideable. 2020-03-23 16:47:34 +01:00
Yamagi
09aad64202 Make the base CFLAGS overridable.
This was requested several times, the last time in pull request #523.
Only the optimization level, warning level and debug stuff may be
overridden. All other options are enforces because they're required.

While here add a new variable to force a debug build: `make DEBUG=1`.
2020-03-23 16:47:34 +01:00
Denis Pauk
eeff4dae43 fix march armv8 2020-03-20 08:01:36 +02:00
David Carlier
558ee70b3e Issue 'yield' in main loop to give CPU time to cool down.
This is functional equvalent to the 'pause' instruction on x86.
2020-03-18 15:50:45 +01:00
Denis Pauk
07c472cfd2 Remove adivtab 2019-01-30 22:42:21 +02:00
Yamagi Burmeister
04a1a6958d Fix USE_CURL build under Windows. 2018-12-20 18:01:38 +01:00
Yamagi Burmeister
f0d244e7b4 Rename cl_http.c to curl/download.c and http.h to download.h.
This is more in line with our file structure and other changes that
added functionality to the client.
2018-12-20 18:01:38 +01:00
Yamagi Burmeister
c0a6e4270f Load libcurl.so at runtime.
Loading libcurl at runtime instead of linking it at compile time makes
things a lot easier and more reliable on Windows. On other platform
libcurl can be installed as optional dependency instead as an hard one.
2018-12-20 18:01:38 +01:00
Yamagi Burmeister
0a94a8ee92 Port the HTTP / CURL download stuff from q2dos.
This is a very first cut:
* It compiles
* It doesn't crash

What's missing:
* cmake integration
* CURL should be loaded dynamically
* Integration between download code and filesystem
* Likely UTF-8 stuff
* cl_http.c needs cleanup
* Windows support
2018-12-20 18:01:38 +01:00
Elkan Roelen
0043977566
Fix macOs build 2018-09-11 15:05:19 +02:00
Yamagi Burmeister
f7e80c1428 General cleanup to the Makefile. 2018-08-14 15:01:45 +02:00
Yamagi Burmeister
cf09fb2a99 Remove support for static linked OpenAL.
We haven't used that for years and it just complicates things.
2018-08-14 11:51:55 +02:00
Yamagi Burmeister
daf3dc6f41 Remove ZIP compile time option.
Having ZIP optional only complicates things and is unnecessary now that
the dependency to zlib is gone.
2018-08-14 11:12:38 +02:00
Yamagi Burmeister
0264c6d946 Remove DOGG compile time option.
Having OGG optional only complicates things and is unnecessary now that
the dependencies to libvorbis and libogg are gone.
2018-08-14 10:40:50 +02:00
Yamagi Burmeister
e7fa5518a9 Replace zlib dependency by miniz single header library.
I've chosen the minimal invasive way for this:

  * Import miniz and remove -lz linker flags.
  * Create a short header minizconf.h roviding everything we need
    originally defined by zconf.h and not provided by miniz.
  * Replace zlib.h with miniz.h and minizconf.h.
2018-08-10 10:24:25 +02:00
Yamagi Burmeister
79e8c1377b Replace libvorbisfile with stb_vorbis single header lib.
This is (or at least should) work exactly the same a before but
saves us the dependencies to libogg, libvorbis and libvorbisfile.
2018-08-08 15:05:23 +02:00
Yamagi Burmeister
10bdaaec06 Move stb_image_write.h into vid. It's used there, only. 2018-08-07 11:45:26 +02:00
Yamagi Burmeister
5bff7e1568 Move refresh.c into the client and rename to glimp_sdl.c.
The GL backends have been an integral part of the vid interface for
years.
2018-08-07 10:08:20 +02:00
Yamagi Burmeister
b805b4e044 Move vid.c and dependencies into the client.
The vid interface has been exclusive to the client for years, trace
that in the file hierarchy.
2018-08-07 10:00:21 +02:00
Yamagi Burmeister
61400d1ae8 Move input.c and input.h into the client and rename to sdl.c.
The input system backend was once used in the client and the renderers,
but for some years now it has been an integral part of the client only.
Move it there.
2018-08-07 09:43:34 +02:00
Yamagi Burmeister
956902538f Move sound.c into the sound system source and rename to sdl.c.
The OpenAL backend was already part of the sound system source. And
there's no need for the SDL backend to be part of the generic backends.
2018-08-07 09:31:08 +02:00