Commit Graph

4472 Commits

Author SHA1 Message Date
Denis Pauk cfd1e5f346 renders: fix parse of SiN def format
Some of files could have name of animation and skin, but some of files
does no have naming of action and textures. Search include file by extention
instead use name + filename format.
2024-05-08 01:42:35 +03:00
Denis Pauk eff91e34c0 renders: check for SiN format in player models 2024-05-08 01:42:21 +03:00
Denis Pauk 9145c0a923 renders: additional validation cleanups for SiN 2024-05-08 01:41:46 +03:00
Denis Pauk 13e1df2bda renders: inital support of SiN def/sbm/sam load
Added only file format support without model overwrite.

Based on https://web.archive.org/web/20001212060900/http://starbase.neosoft.com:80/~otaku/program.html
2024-05-08 01:41:14 +03:00
Denis Pauk e463721665 maps: Use LUMP defines instead numbers in rules 2024-05-05 15:55:23 +03:00
Denis Pauk 1b73b4ea5b maps: move IBSP to QBSP code to separate file 2024-05-05 12:36:14 +03:00
Denis Pauk dbc7a5fbe5 maps: prepare code for use formats with different position of lumps 2024-05-05 12:23:06 +03:00
Denis Pauk fbc91514eb Merge remote-tracking branch 'yquake2/master' 2024-05-05 12:00:43 +03:00
Yamagi d50408ff0b Bump SDL 3 support to the latest preview, SDL 3.1.2.
SDL 3.1.1 -> 3.1.2 brings another round of API changes. Only one of them
is relevant for us: the SDL_RENDERER_ACCELERATED flag was removed.
2024-05-05 09:37:36 +02:00
Denis Pauk fb85150702 maps: move entity add null terminate to sv_init 2024-05-04 17:18:48 +03:00
Denis Pauk 7e53c83c88 maps: fix lump size calculation 2024-05-04 15:39:01 +03:00
Denis Pauk f1d9bd6f47 game: port TRAIN_FIX_OFFSET and TRAIN_USE_ORIGIN from ReRelease
Fix platforms in `train` level.
2024-05-02 23:42:05 +03:00
Denis Pauk ded6f0c962 game: change level hack
Look like ReRelease code just ignore spawn target if target has not found.

`base2` has `eou1_.cin+*bunk1$start` as target but `bunk1` does not have such target.

Look to:
* 8dc1fc9794/rerelease/p_client.cpp (L1492)
* https://github.com/yquake2/yquake2remaster/issues/22
2024-05-02 00:25:38 +03:00
Denis Pauk 78c7f62aba CMod_LoadAreaPortals: reuse cache as map_areaportals 2024-05-01 19:07:42 +03:00
Denis Pauk bf81d4e427 maps: cache QBSP in collision map list 2024-05-01 14:23:49 +03:00
Denis Pauk 98cc9c1ea0 models: move Mod_LoadFile to client side 2024-05-01 11:00:33 +03:00
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