Commit graph

101 commits

Author SHA1 Message Date
smallmodel
bd021b109c
Fix a terrible mistake in TIKI_FindTiki with uninitialized variable
This was using an uninitialized buffer to find the cached TIKI, in most configurations it always returned false, but when compiled with GCC it would return true
2024-12-18 19:31:21 +01:00
smallmodel
28bdd1b2b3
Made the renderer modular and loadable
This removes coupling between the renderer and UI/client functions. An option USE_RENDERER_DLOPEN was added to specify whether a renderer module should be compiled and loaded, instead of integrating the renderer into the executable directly. This opens the door for a new renderer
2024-12-06 00:15:19 +01:00
smallmodel
d7c0ee47fe
Check if the skel is valid before freeing it 2024-12-05 00:42:50 +01:00
smallmodel
8446a655bb
Print an error when the skel file extension is unknown 2024-12-04 22:33:42 +01:00
smallmodel
01d098dab5
Clear the number of uses of the skel cache when registering a new skeleton 2024-12-04 22:33:28 +01:00
smallmodel
b6dd3914be
Correctly free skels when freeing TIKIs
This fixes a potential memory leak that would occur when the first skelcache's skel is NULL
2024-12-04 22:30:26 +01:00
smallmodel
c2e45710ad
Improve code clarity 2024-12-04 22:15:01 +01:00
smallmodel
387ccd5cc3
Bump the minimum CMake version to 3.12 2024-11-30 00:36:33 +01:00
smallmodel
23f776d3c7
Fix typo 2024-11-17 14:32:44 +01:00
smallmodel
54b9a0c340
Fix incorrect SKB offsets 2024-11-11 18:28:42 +01:00
smallmodel
2cf380c15d
Add scale field for skel header 2024-11-11 18:12:50 +01:00
smallmodel
c2291e92c4
Add Anim_AngularDelta 2024-11-08 19:32:53 +01:00
smallmodel
d1fca3e499
Check for valid skeletor 2024-11-08 19:24:07 +01:00
smallmodel
66b882346f
Clear the animation delta when the animation is invalid 2024-11-08 19:13:56 +01:00
smallmodel
22e7d1e2e4
Only put animation definitions that exist, rather than setting a NULL animation definition
This fixes issues when searching animations by name
2024-10-29 22:27:22 +01:00
smallmodel
c9b844b9ea
Count the number of loaded anims and don't return a valid animation definition if there are no loaded animations 2024-10-28 22:57:52 +01:00
smallmodel
d78d8abb9f
Correctly load SKB models on big endian architectures 2024-10-15 23:07:58 +02:00
smallmodel
26a1e24e3a
Fix TIKI_ParseAnimations incorrectly swallowing the full animation file when the map doesn't match
This fixes missing animations
2024-10-01 19:53:33 +02:00
smallmodel
9ee0e0a3c9
Correctly copy data on big-endian (#365) 2024-09-28 20:09:42 +02:00
smallmodel
1848506f09
Properly pass the size of the path buffer into Q_strncpyz 2024-09-21 23:09:16 +02:00
smallmodel
f9d264058b
Use safe version of sprintf and strcpy 2024-09-20 23:08:53 +02:00
smallmodel
0dfb1a3a2a
Use Com_DPrintf for TIKI/alias warnings/errors
This prevent the console from getting spammed with developer errors in production
2024-09-08 18:22:12 +02:00
smallmodel
81b8fe3f61
Use a pointer to an array instead of accessing the tiki mesh field directly to avoid loop badly optimized due to the compiler thinking there can be only 1 element
This fixes #337
2024-08-13 20:55:12 +02:00
smallmodel
2a485a6b69
Fixes the endianness when loading LOD from file 2024-06-22 15:34:38 +02:00
smallmodel
f41e92de6e
Fixes possible memory corruption when generating a LOD curve 2024-06-22 15:34:00 +02:00
smallmodel
835c0b0d9a
Adds constants for LOD curve values 2024-06-22 15:30:59 +02:00
smallmodel
de874874e4
Use an enum for setup case rather than raw values 2024-06-13 23:11:28 +02:00
smallmodel
332a635031
Use MAX_GLOBAL_FROM_LOCAL 2024-06-13 21:25:02 +02:00
smallmodel
fb15f0f2b3
Fixed a tiny mistake that prevented morphs from working correctly
Actors now have a working dynamic facial expression (moving eyes/mouth/brown...)
2024-06-11 00:12:59 +02:00
smallmodel
ebb3173322
Added skeletorMorphCache_t as an alias to int 2024-06-10 22:06:47 +02:00
smallmodel
c1604c0c8c
Handle animation file endianness 2024-06-08 14:59:52 +02:00
smallmodel
e27f2443e8
Fixed skel loading on big-endian systems 2024-06-08 00:53:39 +02:00
smallmodel
28ea95b9ff
Added scale field 2024-06-08 00:08:54 +02:00
smallmodel
e3b9e48d8c
Added TIKI_SKEL_LOD_INDEXES 2024-06-07 22:38:45 +02:00
smallmodel
026b6b2562
Ignore endianness on skd/skb header signature, as it's a string 2024-06-07 22:08:46 +02:00
smallmodel
2b66672d2d
Added MAX_GLOBAL_FROM_LOCAL constant and implemented skelChannelList_s::GlobalChannel and skelChannelList_s::LocalChannel 2024-06-04 21:06:43 +02:00
smallmodel
2ee1a2099d
Ignore map name case sensitivity when parsing map-specific animations 2024-06-02 19:46:14 +02:00
smallmodel
7fe7e74fe2
Replaced all stricmp calls with Q_stricmp 2024-06-02 19:44:06 +02:00
smallmodel
e89262ed3b
Fixed TIKI_ParseAnimations improperly returning, even when a map was specified, causing parsing issues 2024-05-28 21:38:17 +02:00
smallmodel
21fda4cabd
Removed redundant code 2024-05-28 21:31:28 +02:00
smallmodel
b76f9a9a6c
Fixed skel_entity_cache initialization 2024-02-20 22:42:34 +01:00
smallmodel
cbe6d85bcd
Added multiple cache per entity 2024-02-20 20:44:55 +01:00
smallmodel
f018c2c15a
Ignore shaders for surface starting with the name "material" 2024-02-07 23:36:04 +01:00
smallmodel
e8109076f4
Assign shaders to surfaces that don't have a shader assigned 2024-02-03 23:03:41 +01:00
smallmodel
5f3ee10bc0
Fixed Linux compilation error because of stupid CL accepting anything 2024-01-29 00:01:39 +01:00
smallmodel
bca71ade85
Added automatic addition of idle animation when there is none (from 2.30 code) 2024-01-28 23:16:47 +01:00
smallmodel
3f8aeac7e6
Exported WriteSkelmodel 2024-01-28 20:27:58 +01:00
smallmodel
c4a9a87929
Added TIKI_AddDefaultIdleAnim 2024-01-28 20:24:17 +01:00
smallmodel
7eca455795
Set the idle skelmodel and increase the number of skels 2024-01-28 20:24:04 +01:00
smallmodel
cb9ac23b23
Added TIKI_AllocAnim 2024-01-28 20:23:05 +01:00