Commit Graph

458 Commits

Author SHA1 Message Date
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
Yamagi Burmeister 5501c38736 Move qal.c and qal.h to the other sound system sources.
The OpenAL backends used only by the sound system, there no need to
have them in the generic part of the sources.
2018-08-07 09:23:07 +02:00
Yamagi Burmeister 333d19766f Remove SDL 1.2 support from the build systems. 2018-07-31 14:32:13 +02:00