Garux
8cdce0e07c
undo searching for q3map_<surfaceparm> removal in f560e2703b
...
#43
2020-06-06 12:31:18 +03:00
Garux
49b725a1b2
Fix q3 compatibility bug with lightgrid and only one light.
...
Correct math requires the ambient component of the lightgrid to be zero
in that case. However, q3 ignores lightgrid cells with all zero ambient
value, EVEN if the directed value is nonzero.
This change sets the ambient value to #010101 if it'd be pitch black. This
should be a minimal change without affecting light hue that fixes
lightgrid rendering. In engines like DarkPlaces, almost no map should
look different from this.
Fixes https://gitlab.com/xonotic/netradiant/-/issues/137
2020-04-18 09:16:57 +03:00
Garux
ab80efd198
try to fix MAC compilation #40
2020-04-04 20:46:04 +03:00
Garux
85e5807397
try to fix MAC compilation #40
2020-04-04 19:40:56 +03:00
Garux
1a614efce1
q3map2 * fix: do not affect styled lightmaps by floodlight
...
port of https://github.com/id-tech-3-tools/map-compiler/pull/12
87b8589a3a
2020-03-25 21:21:07 +03:00
Garux
7fd32180e2
* support misc_model::_remap facility of q3map2
...
q3map2: fix inconsistency, introduced in d92c32d453
(_remap result could depend on _remap keys order, e.g. remapping src: moo/rock, moo/sand-rock by: rock, sand-rock suffix matches; rock could be used for moo/sand-rock)
2020-03-25 11:53:14 +03:00
Garux
b136b1a829
mbspc: * deduce OutputFile path out of input file path in -bsp2map, -bsp2map220, -entlist, -texinfo modes (like for .aas)
...
* append _decompiled suffix to decompiled map file names
2020-02-29 04:03:12 +03:00
Garux
5a032a991a
mbspc: make builtin, html help, command line options consistent
...
enable -grapplereach: bugged in vanilla engine, but is likely fixed in OpenArena
remove -onlyents doc: doesn't exist in the code (wtf)
2020-02-29 02:05:38 +03:00
Thomas Debesse
4292115ef7
bsp lump write: pad with zeros, not with random unitialized memory data
2020-02-13 05:39:39 +03:00
Garux
065c415839
nullify unused space of bspShaders.shader to write cleaner bsp
2020-02-13 05:12:57 +03:00
Garux
0b1389b5a4
rename entities in AddTriangleModels() for consistency
2020-02-12 23:30:46 +03:00
Garux
c956102065
support variable number of key names in entity key value reading functions
2020-02-12 23:21:15 +03:00
Garux
aa44982b20
define more architectures in mbspc -> q_platform.h, as we do not define them in Makefile
2020-02-11 18:46:41 +03:00
Garux
64f6b4a4ac
fix some warnings
2020-02-07 23:00:19 +03:00
Garux
1805e42582
make C code to compile with -std=c11 (though still many implicit function declarations)
2020-02-07 22:45:06 +03:00
Garux
70b6cc8696
make C code ODR compliant (-fno-common)
2020-02-07 22:41:56 +03:00
Garux
a1fe170f38
fix null pointer dereferencing introduced in 80e95ac165
2020-02-07 22:35:58 +03:00
Garux
433b9e776b
manage entity key value reading routines
2020-02-07 15:49:29 +03:00
Garux
1f59dac119
manage strstr() use
2020-02-05 19:54:44 +03:00
Garux
325a46a102
wrap 'string empty' logic
2020-02-05 18:20:13 +03:00
Garux
234b0cf1d4
wrap strncmp use
2020-02-04 05:53:30 +03:00
Garux
9048028faa
wrap Q_strncasecmp use
2020-02-04 05:08:54 +03:00
Garux
c7f1391177
wrap Q_stricmp use
2020-02-04 04:33:58 +03:00
Garux
3409de2cb0
change EPAIR_STRCMP semantics
2020-02-04 03:50:33 +03:00
Garux
cf98275ee4
wrap strcmp use
2020-02-04 03:40:27 +03:00
Garux
9485b925ff
add common string functions
2020-02-04 03:38:24 +03:00
Garux
416b1f7d54
delete some unused q3 cmdlib stuff
...
fix q3data -writedir
2020-02-04 02:07:13 +03:00
Garux
0290bd76fe
remove NeXT preprocessor conditions
2020-02-03 23:58:43 +03:00
Garux
eb70faddc8
use standard C bool type:
...
get rid of qfalse, qtrue aliases everywhere
replace qboolean in q3map2, q3data
redefine qboolean type in q2 tools, mbspc
2020-02-03 01:15:30 +03:00
Garux
e5d040a770
fix simple warnings
2020-02-02 14:53:18 +03:00
Garux
b2eb13b049
manage windows only strlwr(), strupr()
2020-01-29 16:42:03 +03:00
Garux
9cb2ab691e
del myoffsetof macro
2020-01-29 04:09:12 +03:00
Garux
be007466f9
fix [-Wincompatible-pointer-types] in RunThreadsOn()
2020-01-28 21:35:17 +03:00
Garux
c7010884b6
manage strlwr, strlower->strLower
2020-01-28 21:33:37 +03:00
Garux
e6ce77d031
use capital letter in strClear, strEmpty, strIstr to lessen names collision probability
2020-01-28 21:05:41 +03:00
Garux
a258ebf887
fix warning: comparison between signed and unsigned integer expressions
2020-01-28 00:29:53 +03:00
Garux
93eb360104
fix Usage: help strings
2020-01-27 23:41:46 +03:00
Garux
08fee05b37
remove odd closing parenthesis from bsp marker
2020-01-27 21:30:10 +03:00
Garux
25d94dbd2f
add and use path_set_extension()
...
fix -bsp crash with .bsp sent as map path
* fix: qer_editorimage, q3map_lightImage etc work with file names, containing period
(i.e. 'file.name.ext' names; don't StripExtension() twice in ImageLoad() for that)
2020-01-27 01:22:10 +03:00
Garux
80e95ac165
refactor paths related codes
2020-01-26 19:01:57 +03:00
Garux
437004713f
fix q3data warnings
2020-01-24 17:02:46 +03:00
Garux
3a95f8bb53
use StripExtension() in q3data
2020-01-24 04:20:04 +03:00
Garux
09953b82be
minor tweaks
2020-01-24 03:48:13 +03:00
Garux
854eb14a69
use path_get_extension()
2020-01-24 03:20:17 +03:00
Garux
ba26c2d02b
add common functions:
...
strempty
strclear
path_is_absolute
path_get_filename_start
path_get_filename_base_end
path_get_extension
simplify functions:
DefaultExtension
StripFilename
StripExtension
ExtractFilePath
ExtractFileBase
ExtractFileExtension
2020-01-23 21:55:43 +03:00
Garux
0bc1a2a280
workaround safe_*alloc size print on error (was negative due to %i format specifier for size_t)
2020-01-23 07:25:12 +03:00
Garux
2d839e524f
allocate just once in CopyBrushSidesLump()
2020-01-23 05:01:46 +03:00
Garux
ad05e553b9
use realloc() instead of safe_malloc() + free()
...
add AUTOEXPAND_BY_REALLOC_ADD macro, use it
2020-01-23 05:01:44 +03:00
Garux
e4eae18f5f
use safe_malloc_info instead of unreachable code
2020-01-23 05:01:21 +03:00
Garux
de8171f1ea
use snprintf instead of strcpy, strcat
2020-01-22 00:03:16 +03:00
Garux
1c73baa8b9
don't check safe_malloc() result for NULL
2020-01-21 23:45:57 +03:00
Garux
3f8d708bc4
repackBSPMain(): do Error on bspList overflow
2020-01-20 19:46:19 +03:00
Garux
d58454d718
repackBSPMain(): don't check for NULL before free()
...
reset counts (isn't required at the moment, just for potential safety)
2020-01-20 19:33:02 +03:00
Garux
dfae69d446
don't check for NULL, while doing free()
2020-01-20 19:14:52 +03:00
Garux
67820df935
simplify phrasing in vsf.c
2020-01-20 17:49:44 +03:00
Garux
bc8cc6e213
fix compilation in Linux (Q_stricmp was function before and was implicitly linked w/o direct inclusion)
...
remove platform dependent branching in q3data
2020-01-20 16:33:33 +03:00
Garux
7492d3d8c5
use memcpy in CopyWindingAccuIncreaseSizeAndFreeOld
...
rephrase ChopWindingInPlaceAccu::fineEpsilon
2020-01-13 12:43:18 +03:00
Garux
4d9a6cc2a9
const pointer in copy functions
2020-01-13 04:31:05 +03:00
Garux
5dc0244ef9
remove unused statistic variables
2020-01-13 00:39:55 +03:00
Garux
a626907ba9
use offsetof( type, flexible_array_member[size] ) semantics
2020-01-13 00:37:44 +03:00
Garux
99bae99b36
add safe_calloc(), safe_calloc_info() functions, use them (optimization, code shortening)
2020-01-12 18:55:03 +03:00
Thomas Köppe
23a166a4dd
Change winding_t, winding_accu_t and brush_t to use flexible array members rather than fixed-sized arrays.
...
The arrays were always meant to be variably sized, and objects are only ever allocated dynamically. Object size computations are simplified with this change.
Flexible arrays were introduced in C99, so this change means that we will require a C99-conforming compiler henceforth.
2020-01-12 01:32:43 +03:00
Thomas Köppe
1e2ccf5f06
Use standard "offsetof" facility rather than manual code involving null pointer dereferences.
2020-01-12 00:49:05 +03:00
Thomas Köppe
07c14c71a1
[unzip.c{,pp}] Change zc{alloc,free} to internal linkage
2020-01-11 20:29:10 +03:00
Thomas Köppe
78bc1dcec6
[q3map2] Unwind script stack in case of script loading error.
...
Also avoid type punning read into char* variable (even though char* and void* happen to be layout-compatible).
2020-01-11 20:16:26 +03:00
Garux
d320ac3a4b
optimize copystring(), use it
2020-01-10 20:43:15 +03:00
Garux
d9bad45a3d
emit error on shader name string overflow in ShaderInfoForShader instead of silent truncation 202a05461f
2020-01-09 20:30:21 +03:00
Zack Middleton
48444683ee
q3map2: add missing help for q3map2 stage arguments
...
Move -keeplights help from -light stage to -bsp. Add other ~40 arguments
that were missing from help. My main focus was on the -convert stage
but I tried to document the rest as well. Some descriptions are copied
from message when enabling the option.
2019-12-28 12:40:14 +03:00
Zack Middleton
c9a33917e3
q3map2: fix crash if command-line argument is missing
...
Running `q3map2 -fs_forbiddenpath -v mapname.map` would crash because
-v gets replaced with NULL in main().
Running `q3map2 -threads` would crash because missing next argument
for number of threads.
2019-12-28 12:06:36 +03:00
Zack Middleton
9c60ebea68
q3map2: fix not displaying default args for some q3map2 stages
...
Fix not displaying default arguments, and possibly segfaulting, when
running q3map2 -bsp, -analyze, -convert, -exportents, -export, or
-import.
2019-12-28 11:52:56 +03:00
Garux
19accfbbab
fix Convert_ReferenceLightmaps() from 42ab06e363
2019-12-28 00:59:50 +03:00
Garux
48f3a19d87
repackBSPMain(): use StrBuf struct for shader dump (safer, faster)
2019-12-28 00:32:12 +03:00
Garux
d0032126cd
repackBSPMain(): use pointer to array of chars semantics for bspList
2019-12-27 14:07:40 +03:00
Garux
3b4f22ee32
use pushStringCallback in vfsListShaderFiles()
2019-12-27 09:07:55 +03:00
Garux
02fce47d00
add -complevel to -pk3
2019-12-27 07:32:54 +03:00
Garux
05be4d4936
add autopk3.c::packResource(), packTexture()
2019-12-27 07:28:18 +03:00
Garux
5d46d88d2d
refactor autopk3.c
...
generalize Q_stricmp, Q_strncasecmp defines instead of local implementations
replace Q_strncpyz, Q_strcat, Q_strncat with strlcpy, strlcat versions: strcpyQ, strcatQ, strncatQ
fix ExtractFilePath, ExtractFileBase, ExtractFileExtension edge case (empty path string)
ExtractFileBase() : mimic StripExtension() logic
BeginMapShaderFile() : use ExtractFileBase(), ExtractFilePath()
2019-12-27 06:01:28 +03:00
Garux
8373782b75
generalize FixDOSName function and its use
2019-12-20 20:10:49 +03:00
Garux
3cbbbaf7e9
move main.c::pk3 business->autopk3.c
2019-12-20 20:05:42 +03:00
Garux
853633efd1
move main.c::FixAAS()->convert_bsp.c
2019-12-20 17:39:04 +03:00
Thomas Debesse
68f8cabf95
split bsp conversion stuff from q3map2
2019-12-20 08:02:06 +03:00
Thomas Debesse
27b1549a2d
split minimap stuff from q3map2
2019-12-20 06:57:02 +03:00
Thomas Debesse
18d7d50444
[q3map2] unvanquished expects white minimap
2019-12-20 06:34:57 +03:00
Garux
c401adfe3e
* -brightness only affects lightmap brightness, like q3map_lightmapBrightness, as there are -vertexscale and -gridscale for the rest
...
is multipled with q3map_lightmapBrightness
2019-12-12 00:20:00 +03:00
Garux
3f2825b8ec
* -extlmhacksize N (external lightmaps hack size) -light switch
...
similar to -lightmapsize N: Size of lightmaps to generate (must be a power of two)
but instead of native external lightmaps enables hack to reference them in autogenerated shader (for vanilla Q3 etc)
2019-12-06 00:55:16 +03:00
Garux
42ab06e363
* -lightmapsastexcoord conversion: support 'external lightmaps, referenced by shader' hack
2019-12-05 22:56:42 +03:00
Garux
b96aed7190
* support -shadersasbitmap in -lightmapsastexcoord conversion mode
2019-12-04 22:35:50 +03:00
Garux
661e8b00de
use EXTERNAL_LIGHTMAP macro, shorten code
2019-12-04 22:18:44 +03:00
Garux
74a5d6cf8d
* support -lightmapsastexcoord conversion to .ase
2019-12-04 21:56:02 +03:00
Garux
6a5d148284
q3map2 * -fillpink in light stage: fill unoccupied pixels with pink colour
2019-11-11 04:13:13 +03:00
Garux
3464341167
refactor WriteTGA24()
2019-11-11 03:28:26 +03:00
Garux
d92c32d453
q3map2 * misc_model::_remap: also remap 'abrakadabraNAME' shaders by _remap = 'NAME;newname'
...
exact match has priority over this
2019-11-11 01:14:10 +03:00
Garux
c0b5454fd8
q3map2::misc_model::_remap: more persistent input error check
2019-11-10 22:45:14 +03:00
Garux
8dab7339d9
rephrase -trianglecheck and -extravisnudge code
2019-09-30 18:51:29 +03:00
Garux
f2f36df58f
q3map2 * _maxlight worldspawn key (works unless exposure is used) (for those, who know, what they do)
2019-07-25 19:55:16 +03:00
Garux
070161fd13
shorten code
2019-07-25 19:23:13 +03:00
Garux
635c732e72
fix warnings
2019-07-21 00:49:53 +03:00
Garux
12d010446b
* Brush->AutoCaulk Selected (F4); camera must be there, where legit player respawn could be, i.e. close to selection and not inside of a brush
2019-03-23 19:10:41 +03:00
Garux
00bb22e458
q3map2 * fix unwanted culling of both matching brush faces
2019-03-19 16:54:23 +03:00
Garux
b75d061ff0
fix mbspc linux compilation
2019-03-15 21:41:15 +03:00
Garux
4b1b789fa8
mbspc: use newer q_platform.h from ioq3, enables win64 compilation
2019-03-07 17:10:31 +03:00
Garux
812a8b6001
q3map2: follow ODR
...
enables compilation with -fno-common
2019-02-23 00:09:42 +03:00
Garux
202a05461f
prevent shader name string overflow in ShaderInfoForShader
2019-02-23 00:06:57 +03:00
Garux
e55e622d2f
prevent buffer read overflow
2019-02-23 00:05:25 +03:00
Garux
6680d394e8
fix use after free (freed by realloc in EmitShader)
2019-02-23 00:02:58 +03:00
Garux
d1ac937b50
mbspc: add -bsp2map220 switch, writting map in Valve 220 format with correct textures alignment for Quake 1/2, SiN and Half-Life BSPs
...
+various improvements of decompiling
2019-02-11 18:25:50 +03:00
Garux
a21a5c7290
mbspc: bump hl limits (by Garey)
2019-02-10 19:35:52 +03:00
Garux
c0f417b9cb
mbspc: bump limits to handle complex maps (by SpaKK)
...
http://www.quake3world.com/forum/viewtopic.php?f=10&t=51522
2019-02-10 19:05:19 +03:00
Garux
0a09aff18a
mbspc: fix fixes
2019-02-10 17:22:42 +03:00
Thomas Köppe
8875e2dd80
Change winding_t and bspbrush_t to use flexible array members rather than size-1 arrays.
...
The arrays were always meant to be variably sized, and objects are only ever allocated dynamically. Object size computations are simplified with this change.
Flexible arrays were introduced in C99, so this change means that we will require a C99-conforming compiler henceforth.
2019-02-10 17:07:42 +03:00
TTimo
5064c1f163
more cleanups
2019-02-10 16:46:50 +03:00
Thomas Köppe
fee0e36602
[bspc.c] Change directory variables to have static storage; they're
...
quite large for automatic storage.
2019-02-10 16:41:04 +03:00
Thomas Köppe
13a3b91cc3
[l_bsp_{hl,q1}.c] Fix erroneous use of comma operator
2019-02-10 16:37:32 +03:00
Thomas Köppe
39c70072da
[l_bsp_{q1,q2,sin}.c] Fix undefined behaviour in array access
2019-02-10 16:36:35 +03:00
Victor Luchits
39a3819765
Fix compilation warnings caused by abs/fabs confusion
2019-02-10 16:31:09 +03:00
Victor Luchits
8143f33548
Do not call CheckPlaneAgainstParents on tiny splits
2019-02-10 16:29:34 +03:00
Joel Baxter
e8522ae2c9
make AAS_LoadAASFile work with zero-sized lumps
...
AAS_LoadAASLump will return 0/NULL in an error case. However it will also
return the input buffer pointer if length is 0, and the input buffer pointer
may be 0/NULL in the case where AAS_LoadAASLump is meant to allocate memory.
This means that it can return 0/NULL in a perfectly legal case where the lump
length is 0. Since AAS_LoadAASFile inteprets this as a fatal error, that's
bad.
I'm not sure how to best disambiguate this, but a low-touch fix is for the
caller of AAS_LoadAASLump to be OK with a returned NULL pointer if the lump
length is 0.
Also: added a missing break statement to avoid a spurious "don't know what to
do" message when using the aasinfo switch.
2019-02-10 16:24:16 +03:00
Joel Baxter
4443f667cf
update fields in the example custom config file
...
The settings in cfgq3.c had diverged from the actual fields and defaults in
these ways:
- extra field phys_maxacceleration
- missing fields phys_walkaccelerate, phys_swimaccelerate, rs_maxfallheight
- different defaults for phys_airaccelerate, phys_maxstep, phys_maxwaterjump
Also the code in aas_cfg.[ch] for reading the settings was missing
rs_maxfallheight.
It's brittle to require multiple different files to agree on these fields, but
rather than fix that issue this is just a band-aid to bring things back into
alignment so that custom configs based on the example file can be used again.
2019-02-10 16:22:18 +03:00
Chris Brooke
777cd9e09a
QuakeLive fix-ups.
2019-02-10 16:17:16 +03:00
Chris Brooke
2d96a0053e
Initial QuakeLive support.
2019-02-10 16:15:31 +03:00
Ben Noordhuis
d8462c5831
Include func_static in AAS calculations unless spawnflags has bit 1 set.
2019-02-10 15:35:51 +03:00
Ben Noordhuis
c897b97e01
Source and destination should not overlap in call to strcpy(), use memmove().
2019-02-10 15:34:31 +03:00
Ben Noordhuis
2cba675936
Fix warning: format not a string literal and no format arguments.
2019-02-10 15:30:30 +03:00
Ben Noordhuis
91bcbfc593
Export function Q_strncpyz().
2019-02-10 15:22:53 +03:00
Ben Noordhuis
693be64e51
Remove unused variables.
2019-02-10 15:12:40 +03:00
Ben Noordhuis
d15f8e4baa
Fix warning: warning: format ‘%d’ expects type ‘int’, but argument 2 has type ‘long int’.
2019-02-10 14:59:22 +03:00
Ben Noordhuis
11f606b68a
Fix warning: array subscript is above array bounds.
2019-02-10 14:51:00 +03:00
Ben Noordhuis
5dbe479244
Fix warnings: cast from pointer to integer of different size.
2019-02-10 14:45:24 +03:00
Ben Noordhuis
fd22d6abbf
Add #include, fixes 'implicit declaration of function' warnings.
2019-02-10 14:42:25 +03:00
Ben Noordhuis
b6ebec81cb
Fix warning: format not a string literal and no format arguments. Also: use vsnprintf(), not vsprintf() - that's a buffer overrun waiting to happen.
2019-02-10 14:15:34 +03:00
Ben Noordhuis
a265802dff
Fix warning: cast from pointer to integer of different size.
2019-02-10 14:09:43 +03:00
Ben Noordhuis
ca7fb9b9ed
Replace non-standard #include <malloc.h> with <stdlib.h>
2019-02-10 13:50:57 +03:00
Ben Noordhuis
9cfed859cf
Fix potential buffer overflow.
2019-02-10 13:42:03 +03:00
Garux
4485ebf780
apply mbspc changes
...
http://linradiant.intron-trans.hu/downloads/mbspc.tar.gz
cfgq3.c, gldraw.c, botlib\l_log.c are not used
2019-02-10 01:36:18 +03:00
Garux
a91a1c510f
add bspc sources from Q3A 1.32 release
2019-02-10 01:18:46 +03:00
Garux
43a5b5513f
fix indentation and typos
2019-01-27 21:37:37 +03:00
Garux
7884d9f1cd
q3map2 * assign surfaceflags to brush 'bevel' planes, so physics like slick/nodamage/metalsteps function at brush edges and vertices
...
non bitwise materials in certain games are not handled
2019-01-27 19:41:16 +03:00
maek
01962a5afe
Fix a bug that prevent -fast to behave correctly
2019-01-16 23:13:56 +03:00
Garux
034f06f18d
* brushexport plugin: write Kd (diffuse color) and map_Kd (diffuse map) data to .mtl
...
* brushexport plugin fix: invert Y during YZ swap; invert V of UV coords (correct texturing)
* brushexport plugin: default to 'Don't collapse' option
q3map2: * obj export: save in popular 'Y = Up, -Z = Forward' format
* picomodel::obj: load as popular 'Y = Up, -Z = Forward' format
* picomodel::obj: fix support of back references in faces
2019-01-10 00:44:27 +03:00
Garux
5e50ac9ccf
q3map2 * allow maps with only point entity@( 0, 0, 0 )
...
more informative prints
2018-12-26 02:59:12 +03:00
Garux
048b4a50f2
q3map2 * model autoclip: handle 'triangle points almost on line' case
2018-12-22 13:03:22 +03:00
Garux
674eacf842
q3map2: * fix map region -light compilation: load lights from .reg, not .map
2018-12-21 14:52:47 +03:00
Garux
d716c4d0b9
tweak new miniz
2018-10-23 19:43:04 +03:00
Garux
2384269177
update miniz to recent version https://github.com/richgel999/miniz
2018-10-23 19:32:18 +03:00
Garux
614885f1fb
fix typos
2018-10-07 23:36:13 +03:00
Garux
f99cf57f27
fix some strncpy use
2018-09-29 21:34:03 +03:00
Garux
6ad88b42fa
Q3map2: * fix reading of old wolf, et, etut bsps
2018-08-12 19:18:43 +03:00
Garux
3da4012f1e
add required message_flush calls
2018-03-21 20:59:30 +03:00
Garux
43202af380
q3map2 * modify message flags system to allow SYS_WRN | SYS_VRB, SYS_ERR | SYS_NOXML etc combinations
2018-03-20 19:37:47 +03:00
Garux
0f65e67896
q3map2 * colored warnings and errors in Windows console
2018-03-17 20:39:10 +03:00