Commit graph

4256 commits

Author SHA1 Message Date
Trey Harrison
bbcc0ed222 renders: add SAM/SBM/DEF model files definitions
Author: Trey Harrison <trey@u.washington.edu>
Based on: https://web.archive.org/web/20001212060900/http://starbase.neosoft.com:80/~otaku/program.html
2024-04-30 00:23:56 +03:00
Denis Pauk
9abc88e6ab gl4: support multimesh models 2024-04-30 00:13:48 +03:00
Jaime Moreira
b81e910929 GL1 multitexture, refactored memory allocation
It was missing error checking and cleanup at shutdown.
Also, reset state when needed. Fixes "death by laser" in boss1 map.
2024-04-29 14:39:48 -04:00
Denis Pauk
19f6e5df62 Version bump 8.31RR7
* Rework map load logic,
 * Support SiN map load,
 * Support track names,
 * Support N64 flags,
 * SDL3 build support (by Yamagi),
 * Fixes for sort render (by dkoreshkov),
 * Added cvar cl_laseralpha (by BjossiAlfreds),
 * VectorLength reduces complexity (by devnexen),
 * Sync with latest yquake 2 code.
2024-04-27 00:22:00 +03:00
Denis Pauk
dfb1818aa9 Readme update 2024-04-25 00:09:23 +03:00
Denis Pauk
42b4a61794 renders: support SURF_N64_UV 2024-04-24 23:54:52 +03:00
Denis Pauk
f7ec7d268e server: use game api version for protocol detect 2024-04-24 00:55:53 +03:00
Jaime Moreira
ba71af2af8 GL1 multitexture: fast dynamic lighting
Using MH's solution, which is keeping all lightmaps in memory
to modify and upload them as a batch when possible.
lightmap_buffer is now an array; index 0 is used as the legacy
lightmap buffer (when no mtex), and the rest of the indexes are
to store the different lightmaps (only when using mtex).
2024-04-23 12:26:44 -04:00
Jaime Moreira
86528d7812 GL1 multitexture, first version
Unlike the old, buggy one, this implementation follows the
texture chain, just like the standard execution path. It also
avoids doing the lightmap chains, since it has already done it
in the second TMU; there's no duplicated work for lightmaps.
No errors appear in the lava on the "boss1" map either.
It's still slow when having an overdraw of dynamic lights.
Further work is needed.
2024-04-23 12:25:38 -04:00
Jaime Moreira
3faa3db167 GL1 multitexture, initialization
While it is based on the old, buggy multitexture implementation
(removed in 68a12d4e & 8fe8f832), rework will be done to make it
function as intended this time.
For this commit, just init and function declarations.
2024-04-23 12:24:20 -04:00
Jaime Moreira
79bb13d3a7 Updated OpenGL definitions in qgl.h
Using GL 1.4 declarations in code, although 'point parameters' will
use legacy extensions if they're the only ones found.
Moved stuff out of local.h; better to have definitions in one place.
Extracted from <glext.h>.
2024-04-23 12:23:00 -04:00
Jaime Moreira
3dde0d5859 Texture chains working properly
Somehow, R_TextureAnimation() returns different results for the same
surface when called consecutively. We force it to be called once, so
the chains in R_DrawTextureChains() are getting respected now.
2024-04-23 12:21:40 -04:00
Denis Pauk
1364e4703f renders: implement SURF_N64_SCROLL 2024-04-22 00:35:54 +03:00
Denis Pauk
eb344a030e renders: Move scroll logic to R_FlowingScroll 2024-04-22 00:04:21 +03:00
Denis Pauk
dbccc9353f Update readme. 2024-04-21 19:26:12 +03:00
Denis Pauk
9a13efe9b4 game: fix door open in base3
Partial revert f95ca597 with sorting of fields.
2024-04-21 18:46:17 +03:00
Denis Pauk
067a30e83d savegame: fix load/save Q64 maps 2024-04-20 18:40:32 +03:00
Denis Pauk
85dcc852b7 cmodels: Add quake2 map type for remove all ReRelease flags 2024-04-20 17:21:51 +03:00
Denis Pauk
119e1f6993 cmodels: extend texture name size to 64 2024-04-20 13:07:19 +03:00
Denis Pauk
cca9317a55 cmodels: add surface and contents flags convert logic
Based on:
* https://github.com/NightDive-Studio/sin-ex-game
* https://github.com/TrenchBroom/TrenchBroom/
2024-04-20 01:35:12 +03:00
Denis Pauk
9b6bae3454 renders: remove custom function for non QBSP format
Also remove Little* function usage, QBSP come with correct byte order.
2024-04-18 01:06:06 +03:00
Denis Pauk
8d21ed6874 renders: remove support of QBSP map format
Map should be converted from any format to QBSP before render by
Mod_Load2QBSP
2024-04-18 00:29:14 +03:00
Denis Pauk
c3af9815e6 renders: use converted to QBSP format map
Mod_LoadValidateLumps is fully removed.
2024-04-17 01:14:22 +03:00
Denis Pauk
606451cc9c collision: move surface flag to QBSP convert logic
Only Mod_LoadVisibility has LittleLong format convertion logic on
server side.
2024-04-17 00:34:36 +03:00
Denis Pauk
3e46e777c0 cmodel: implement left QBSP to QBSP convert 2024-04-17 00:28:43 +03:00
Denis Pauk
becea2987b collision: direct QBSP map load 2024-04-17 00:22:10 +03:00
Denis Pauk
1bc2d7d18b collision: add DKBSP callbacks 2024-04-17 00:20:23 +03:00
Denis Pauk
aefea127e2 cmodel: move convert callback to rules tables 2024-04-17 00:16:33 +03:00
Denis Pauk
c0e3a86f30 collision: use RBSP to QBSP converted maps 2024-04-16 23:55:39 +03:00
Denis Pauk
3cd279248d cmodel: Split Mod_Load2QBSP_IBSP to separate functions 2024-04-16 23:38:49 +03:00
Denis Pauk
53d69f98e5 collision: create IBSP -> QBSP convert logic 2024-04-16 23:22:36 +03:00
Denis Pauk
12aaebf80e maps: validate read outside of BSPX section 2024-04-16 01:17:09 +03:00
Denis Pauk
2f0d3e2189 render: support texture name with full field size 2024-04-16 00:12:43 +03:00
Denis Pauk
ea91764196 collision: make firstbrushside unsigned 2024-04-16 00:12:24 +03:00
Denis Pauk
446224467d Fix memory use after free detected by ASAN 2024-04-15 00:30:30 +03:00
Denis Pauk
701defd4ad maps: move get rules to separate function 2024-04-13 15:58:32 +03:00
Denis Pauk
2d6241b31e renders: move lightmap calls to LM_CreateLightmapsPoligon 2024-04-13 14:44:40 +03:00
Denis Pauk
02b8e85c01 opengl renders: support of gl_version_override cvar
Provides way to check render with lower officialy
reported OpenGL version.

Same as:
* MESA_GL_VERSION_OVERRIDE=4.6
* MESA_GLSL_VERSION_OVERRIDE=460
2024-04-13 13:25:34 +03:00
Denis Pauk
5babb3b96a renders: fix function name in GL4*_InitContext errors 2024-04-13 01:03:42 +03:00
Denis Pauk
4ab6777e1f renders: move lightmap creation call outside of LoadFace code 2024-04-13 00:15:31 +03:00
Denis Pauk
310c0fdb58 maps: load code cleanup 2024-04-12 00:13:14 +03:00
Denis Pauk
7a5154bd6b renders: Add RBSP initial support
Surfaces/faces/tetures flags is incorrect.
2024-04-11 00:35:43 +03:00
Denis Pauk
c13074758a client: Add RBSP initial support
Structures sizes should be mosly correct and have found by estimate
sizes that could have lump size mod equal to zero as for other formats.
Possition of fields are taken from IBSP structures, that could be
incorrect. All other fields marked as unknow/unused.
2024-04-11 00:13:10 +03:00
Denis Pauk
d4bc315363 client: play arbitrary CDTRACK ogg file
Initial implementation of https://github.com/yquake2/yquake2remaster/issues/18
2024-04-09 00:34:47 +03:00
Denis Pauk
1e935a5879 collision: fix crash without vis info 2024-04-08 23:07:01 +03:00
Yamagi
e5ee2a74a5
Merge pull request #1102 from 0lvin/gles
client: fix gles3 name
2024-04-07 18:06:39 +02:00
Denis Pauk
c1920e3ec4 client: fix gles3 name
Fix regression introduced in e61d9444c

https://github.com/yquake2/yquake2/issues/1097
2024-04-07 18:50:01 +03:00
Denis Pauk
30861e07ef filesystem: sort files in pack and use binary search in packs 2024-04-07 18:46:40 +03:00
Denis Pauk
ae4845782c readme: Add swl to supported textures 2024-04-07 18:46:40 +03:00
Denis Pauk
e3a1b0ef11 maps: Mod_CalcNonModelLumpHunkSize combine QBSP cases 2024-04-07 18:46:40 +03:00