Commit Graph

868 Commits

Author SHA1 Message Date
Garux ba497e4139 SafeOpenWrite, SafeOpenRead funcs use 2021-02-09 18:05:06 +03:00
Garux 37c11990cb del struct StrBuf; CopiedString for mapShaderFile; 2021-02-09 13:03:48 +03:00
Garux b013f9954c simplify unlimited bsp entities code 2021-02-08 04:36:57 +03:00
Garux d5f55e7c35 safe strings in OnlyEnts() 2021-02-08 02:53:57 +03:00
Garux 92b2487875 fix string warnings 2021-02-08 01:33:36 +03:00
Garux ca34e8f38f enum class EFloodEntities 2021-02-07 07:34:57 +03:00
Garux a17bf05f5c more information in "StrList overflow" error 2021-02-07 07:23:46 +03:00
Garux 54f7daa887 more PathExtensionless use 2021-02-07 07:18:10 +03:00
Garux 5fd7b340df * discard excess portals in the void (great optimization for maps with void areas in between of playable areas and non rectangular maps)
(excess portals there are effect of _blocksize)
	* optimize FloodPortals() (also fix stack depth crash in debug mode due to recursive calls)
	* fix xml_Select() of leaked entity (was selecting last map entity always)
	* xml_Select() leaked entity exactly in the beginning of leak line
2021-02-06 22:22:59 +03:00
Garux e729f7b898 prevent stack overflow 2021-02-02 00:26:21 +03:00
Garux 2bf53ef643 fix overlook introduced in 36b63e1d2c 2021-01-30 16:50:40 +03:00
Garux 99a5ef0416 refactor entity key values routines 2021-01-30 16:23:31 +03:00
Garux 8425ce3c3e refactor foliage_t 2021-01-29 22:40:09 +03:00
Garux 762699287e refactor surfaceModel_t 2021-01-29 21:11:56 +03:00
Garux 276d1f5875 safe string in indexMap_t 2021-01-29 20:46:06 +03:00
Garux 40ab7fa26c remove excess string overflow checks, fix warnings 2021-01-29 05:14:33 +03:00
Garux b9d5f091e0 use fold expression, forwarding reference 2021-01-29 05:12:20 +03:00
Garux abc666ab7f use std::uint32_t in md4 2021-01-28 05:11:59 +03:00
Garux 623163ae9c remove unused markers 2021-01-28 02:12:15 +03:00
Garux e11aede11a refactor surfaceType_t enum 2021-01-27 19:43:53 +03:00
Garux 1efff8cdfe refactor enum vstatus_t 2021-01-27 11:53:32 +03:00
Garux 62a0ae5623 prevent string overflows 2021-01-26 22:31:19 +03:00
Garux 3ff224cbdf fix texture projection decompilation
in C this check was equal to
abs((int)dist) >= distanceEpsilon
comparing float dist to distanceEpsilon is not sufficient, as points are not precise enough, plus they are snapped
2021-01-25 08:36:16 +03:00
Garux d0dcce342b use LightFlags::FastActual shortcut 2021-01-25 07:29:46 +03:00
Garux bdfd864670 refactor enums
credits for class BitFlags go to Jelvan <3
2021-01-25 01:33:56 +03:00
Garux 7297e8758b remove unused light_shadows.cpp 2021-01-25 01:11:26 +03:00
Garux 20b908e31b remove excess typedef struct declarations 2021-01-23 19:26:50 +03:00
Garux 54c38610bf use std::list<epair_t> 2021-01-23 17:25:47 +03:00
Garux 36b63e1d2c turn entities array to std::vector<entity_t> 2021-01-23 15:39:42 +03:00
Garux b0e62198ba use safe strings more 2021-01-21 18:41:16 +03:00
Garux 0ab896b84a remove MAC_STATIC hack 2021-01-21 16:17:23 +03:00
Garux f3c26c791f use safe strings more 2021-01-21 16:08:53 +03:00
Garux 8b204ac054 add and use class PathExtensionless 2021-01-21 15:15:07 +03:00
Garux 7fc079c658 merge duplicated path_ functions
handle backslashes, which is out of convention, but safer, as practically paths may contain them in many spots
2021-01-21 08:53:34 +03:00
Garux 15e4b8e850 manage model shaders remapping 2021-01-21 07:19:15 +03:00
Garux fe5c0879b4 remove -tmpin & -tmpout switches, as at best they were prepending tmp/ to absolute path 2021-01-20 12:48:10 +03:00
Garux 3b39a5754d prevent filename overflow in model .skin loader
strip model extension during filename construction
add variadic template operator to StringOutputStream for inline strings creation
2021-01-20 11:59:16 +03:00
Garux cfa502df6e safe string for globalCelShader 2021-01-19 22:40:58 +03:00
Garux cbeccc7e3a use safe string in GetIndexedShader
fix custom shader overflow check
2021-01-19 22:12:53 +03:00
Garux c3437b7833 use safe strings in shaderInfo_s
turn ImageLoad() to expect extensionless path as input
2021-01-19 18:58:18 +03:00
Garux 9590d602d3 use String64 for shaderInfo_s::skyParmsImageBase
add variadic template operator to StringFixedSize for inline strings creation
2021-01-19 17:21:54 +03:00
Garux da3b05728c use safe string for shaderInfo_t.shader 2021-01-19 01:24:21 +03:00
Garux 3578370061 fix the build 2021-01-16 17:52:33 +03:00
Garux 13524d59ef fix the build 2021-01-16 15:10:59 +03:00
Garux fafa271a46 turn quake3 tools to cpp 2021-01-15 01:37:23 +03:00
Garux b2bc2077e5 prevent division by zero, which spreads darkness during bounces
source of the problem is located somewhere else
2021-01-05 01:34:55 +03:00
Garux e62c6f4bb3 fix warnings 2021-01-03 06:24:58 +03:00
Garux 3cbe922765 fix UB: fwrite with buffer = NULL 2021-01-01 17:42:08 +03:00
Garux d074634463 SetupGrid() after _ambient key read 2021-01-01 17:41:11 +03:00
Garux 97f0e61ccc initialize rawGridPoints.ambient correctly 2021-01-01 17:40:06 +03:00
Garux e1f3b25bc6 consider _decal in leak detection
point entities recognition is malformed in general
leak is about point entities, detection by origin key presence is weak, because there may exist entity w/o this key at 0 0 0
group entities may have origin too
detection by primitives presence haven't been working for _decal, as its primitive gets freed at this point
2020-12-14 08:36:55 +03:00
Garux db07c3459d * packer, repacker: handle nodraw patches correctly; warn on visible surface, having shader w/o maps (typically watercaulk) 2020-12-08 03:03:42 +03:00
Garux 5cedd26c75 * -repack -analyze switch: only analyze bsps and exit (to dump bsp resource calls) 2020-12-08 02:45:48 +03:00
Garux dd3db2f147 bump -repack bsp list size 2020-12-08 02:34:55 +03:00
Garux f30ee07376 * packer, repacker: also handle fogs without drawsurfaces 2020-11-25 10:29:49 +03:00
Garux d346f1ee07 packer, repacker: emit warning on "model2" key been found 2020-11-24 20:33:33 +03:00
Garux 06267e67cb repacker: fix odd WARNING3: %s : about to include shader for excluded texture
when repack.exclude has texture = shader from game.exclude
2020-11-24 19:59:51 +03:00
Garux 103ac6931e * fix -fixaas 2020-11-08 13:04:29 +03:00
Garux af71efc0e6 * no shaderlist.txt or empty one = load all shaders 2020-10-25 09:07:29 +03:00
Thomas Debesse 1cf7b72e6b q3map2/light_bounce: prevent infinite loop on obscure bias compute
New code produces same result without loop at all, so
it cannot fall in infinite loop, and it is faster in
use cases requiring more than one loop in previous code.

The Unvanquished vega map is known to trigger the bug:
https://github.com/UnvanquishedAssets/map-vega_src.dpkdir
I reproduced it multiple time on various hardware (8 core FX-9590,
12 core/24 thread Ryzen 9 3900X) with commit af40508 and using
final compilation profile edited to use -fastbounce instead
of -fast option.

The symptom is simple, q3map2 stucks there:

--- Radiosity (bounce 1 of 8) ---
--- RadCreateDiffuseLights ---
0...1...2...3..

Or somewhere else in that progression bar given your hardware
and the amount of core your CPU has.

When stuck, all the CPU cores are running 100% but the thread
never returns (a strace can reveals it, a gdb backtrace too).

Thanks to @slipher for the precious advices and improving my first
attempt to fix it.

For more information on the issue, I asked:

> which negative value never can become positive
> when incremented infinitely?

slipher said:

> for a double, any value less than -2^53 would have this property
> don't know for float off the top of my head

But then, it means that's theorically verified this loop was able
to run forever in some case.

I don't know what this code is doing anyway, but at least we can
keep the behaviour without requiring to understand it.
2020-08-19 08:32:36 +03:00
Garux 4bcce46a59 q3map2: -onlyents: support *.ent as map file param 2020-06-30 13:15:10 +03:00
Garux d8e8c10849 Add "slime" surfaceparam keyword to game_wolfet q3map2 for Quake 3 map shader compatibility.
#45
2020-06-30 12:55:52 +03:00
Garux ae9fe08159 * support -extlmhacksize N N input for non square lightmaps, for example -extlmhacksize 2048 1024
also enables this for -lightmapsize, legitimacy is questionable here
2020-06-14 15:49:16 +03:00
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
Garux 968e210f2d q3map2 * mark warning messages with respective flag for colorized monitoring output 2018-03-16 20:33:50 +03:00
Garux 5bf0dd5243 q3map2: * buffered broadcast xml stream to dramatically increase compilation monitoring speed 2018-03-13 22:51:30 +03:00
Garux 98270201b2 q3map2: * fix misspelled 'donotenterlarge' contentflag for RTCW & ET 2017-12-06 13:50:37 +03:00
Garux 80faa85d36 q3map2: fix -samplessearchboxsize msg printing 2017-10-27 21:10:18 +03:00
Garux 81c31337b5 q3map2 * add extra surfaceflags from quakelive 2017-10-27 17:02:41 +03:00
Garux 944f490a65 del BOM (some compilers complained) 2017-10-18 16:02:51 +03:00
Garux a2406ea3d7 q3map2: * Valve220 mapformat autodetection and support 2017-10-17 12:59:56 +03:00
Garux b0c4caa9d1 Radiant:
binds...
	* m3: apply texture name and alignment to selected primitives and faces
	cleaning
2017-08-02 09:46:24 +03:00
Garux 492f00b729 Radiant:
misc...
	* fix scaling for doom3 brush format
	* Pointfile function: try to also load .pts leak line file (q1), if .lin isn't found
	* snap transform origin for flip commands
	* change light intensity save format from %f to %g to prevent .99999 on transforms
	* support 'stupid quake bug' (invert pitch in angles)(generic and miscmodel ents)(cfg: entities="quake" in .game)
	* clipper: place 1st and 2nd points far, 3rd near to ease 3 points clipping
2017-08-02 09:44:51 +03:00
Garux e3fd576624 Q3map2:
code fixes

Radiant:

binds...
	* m1x2 on clipper point = do clip
menus...
	* misc->colors->opengl font selector
misc...
	* calculate farplane from g_MaxWorldCoord, g_MinWorldCoord (was const 32768)
	* 1.0f nearplane
	* numerous code fixes
2017-08-02 09:25:58 +03:00
Garux 461d008daa Q3map2:
* fix: parsing of /* */ comments, having * or / inside

Radiant:

misc...
	encapsulate RETURN_FALSE_IF_FAIL macros with do while 0: minus warnings
	* button to call color selector from ents inspector color entry
	* explanatory text on initial engine path configuration
	* don't show Global preferences by default, except first start
	* activate {xyview, camera, texbro glwidget} on mouse button press and scroll, so {texbro treeview and console} hotkeys do not override global ones
	* activate windows, containing xyview, camera, texbro on mouse scroll
	* fix: autoapplying trigger texture on entity creation is undoable
	* fix: texbro m1/2 x2 work, when some tag is loaded
	* bold key and spawnflags names in entity inspector entity description
	* fix: +CameraFreeMove* command, +shift, -CameraFreeMove*, -shift = still moving (reason: caps letter)
2017-08-02 09:20:56 +03:00
Garux 0261afc6df Q3map2:
* -backsplash (float)scale (float)distance: scale area lights backsplash fraction + set distance globally
		(distance < -900 to omit distance setting); def = 1 23; real area lights have no backsplash (scale = 0)
		q3map_backsplash shader keyword overrides this setting

Radiant:

binds...
	* alt + m1 click/drag in component modes: select objects
misc...
	* fix: selected entity and brush numbers display in 'Find brush' dialog
	* prefer to display texture width and height in status bar over name (PANGO_ELLIPSIZE_START)
	* allow search shortcut (ctr+f in win) in entity inspector -> entity class list
	* fix: don't save empty group entities (but worldspawn)
2017-08-02 09:19:22 +03:00
Garux dd7f4f1689 Radiant:
binds...
	* ctrl + shift + m1 (in texbro): open shader in external editor
misc...
	* fix: do not unmaximize external shader editor on win
	* fix: blank cursor in radiant after calling external shader editor on win
	* fix shader editors stuff for non uindowses
	* 'Shader Editor Command' preference is available on win (is used, if set; otherwise try default os action for file)
	* fix: 'Shader Editor Command' preference allows selecting executable via dialog
	* GDK_HAND2 cursor in clipper tool mode
	* fix: clipper points have numeric labels
	* '2d zoom in to mouse pointer' option works for alt + m2 zoom
	* '3d zoom in to mouse pointer' option (def = yes)
2017-08-02 09:18:45 +03:00
Garux 93ca259313 Q3map2:
* new slightly less careful, but much faster lightmaps packing algorithm (allocating... process)
	* -slowallocate switch to enable old lightmaps packing algorithm
	* Subsampling...collapsing...sorting...allocating...storing...projecting... timers
2017-08-02 09:16:57 +03:00
Garux ed4c8c2044 Q3map2:
* new area lights backsplash algorithm ( by Jelvan ), hijacking temp area lights ( to simulate volumetric behavior of source ones )
	* fix: create backsplash for area lights, while q3map_lightsubdivide'ing too
	* no backsplash for area lights, if surf == sky
	* report patches count in -info
	* -exportents to exports entities to a .ent file
	* unvanquished game support
	* -fs_basepath: can be used more than once to look in multiple paths (Sets the given path as main directory of the game)
	* -fs_game: can be used more than once (Sets a different game directory name (default for Q3A: baseq3))
	* -fs_pakpath <dir>: Specify additional custom path to assets (can be used more than once to look in multiple paths)
	* fix undocumented unexpected LokiInitPaths
	* -help option (-h, --help)
2017-08-02 09:16:24 +03:00
Garux 804c20949d Q3map2:
* _setmaxstdio(2048) for windows
	* game_qfusion update

Radiant:

misc...
	* wrap long command lines in build menu -> customize
	* map info dialog: + Total patches, Ingame entities, Group entities, Ingame group entities counts
	* fix: map info dialog -> sort by count works
	* fix of: minimize main wnd, close, start = cam, cons, texbro null size
2017-08-02 09:15:41 +03:00
Garux e7c45da823 Q3map2:
* code fixes
	* packer: !FAIL! msg for missing ingame resources, ~fail for the rest
	* bumped stack size to 4Mb to fix crash for huge skies, using old shaders with fairly useless q3map_surfacelight + q3map_lightsubdivide < 999 combo


Radiant:

binds...
	* F5: run first in the list or recently invoked build option
	* F11: fullscreen

misc...
	* opening *.map, sent via cmd line: enabled for non win32 too
	* fix: textures find/replace wnd better default pos, size
	* fix: crash in CSG::Subtract
	* fix crash: main wnd maximized + 'start on primary monitor' off + monitors > 1
	* correct save/restore of main wnd pos/size and maximized/fullscreened states
	* scale widgets consistently along with main wnd, while using regular layout
2017-08-02 09:06:17 +03:00
Garux bf6dd1f2d1 Q3map2:
* report full / full pk3 path on file syntax errors
2017-08-02 09:05:30 +03:00
Garux 0d5ebb17b2 Q3map2:
fix compilation on linux
	* packer: pack actual loaded bsp instead of one, found in vfs

Radiant:

binds...
	* Q - toggle QE/Scale tools (MouseDragOrScale command)
	* new MouseRotateOrScale command
	* shift + m3: set custom transform/pivot origin in pivoted mode
		switch manipulator mode = disable
		is snapped to (if SnapToGrid is on):
			grid
			selection bbox edges
			selection bbox origin

misc...
	* Scale tool: now scales bbox by gridsize increment
	* m1 selector fix: shift/ctrl + m1 drag, release shift/ctrl, release m1 = replace brush selection
	* m1 selector fix: do not select when dragged off pivot in pivoted mode
	* don't restore cursor pos after quit mlook (do center)
	* toggle and paint selectors do select matching stuff (depth threshold ~= 0.1 u)
2017-08-02 09:04:48 +03:00
Garux fa294e4215 Q3map2:
* do not delete q3map2_*.shader on minimap generation


Radiant:

misc...
	* fix: crash in CSG::BrushDeleteSelected
	* fix: crash in Brush::windingForClipPlane
	* disabled snapping of transform/pivot origin
2017-08-02 09:04:00 +03:00
Garux 173f350be7 Q3map2:
* fix crash with nonpthreads xmllib + multithreading + output to system console
	* number of code fixes
Radiant:

misc...
	* fix: clone group ent / map import / saving map as : group ents name labels at 0,0,0;
	* number of code fixes
2017-08-02 09:00:11 +03:00
Garux f8b2b1f25e Q3map2:
* decompiling: fix: broken brushes, empty brush definitions; shut down too usual warnings; with -force tries to decompile model autoclip too
	* decompiling: -fast mode for BSPToMap conversion


Radiant:
misc...
	* _setmaxstdio(2048): tested max pk3s count: 1021
	* curve: deform (randomize Z points coord at given amount)
2017-08-01 13:59:31 +03:00
Garux fe73dd74d0 Q3map2:
* fix: number of problems, found by Visual Studio's static code analyser
		(76ea7385dd)

Radiant:

misc...
	* fix of: convert group entity to diff one = entity w/o objects
	* asking for game path at 1st start, even if one, specified in .game exists (auto picking could make confused)
	* disabled game autodetecting: (~2min awaiting on w7 in non admin mode was confusing)
2017-08-01 13:58:52 +03:00
Garux 0fb65a91c7 Q3map2:
* -brightness 0..alot, def 1: mimics q3map_lightmapBrightness, but globally + affects vertexlight
	* -contrast -255..255, def 0: lighting contrast
	* packer improvements

Radiant:

binds...
	* entity inspector: Tab enters Key field, toggles between key/value fields; Del deletes keys; Esc quits

misc...
	* improved mwheel 2d zoom by Neumond
	* +makeRoom: like hollow, but extrudes faces outwards; for making rooms
	* deactivating tex dirs tree after loading dir, so SPACE and ENTER aren't broken for 2D after that
	* Regular, RegularLeft layouts: smaller console, bigger tex browser
	* Rotate, Scale dialogs: values aren't erased on Enter, OK, Apply (are on cancel, esc)
	* Rotate dialog: fix: new value in focused field wasn't taking in account on Enter
	* +updating texture directories list on 'flush and reload shaders' (reloading shaderlist aswell)
	* NumLock perspective window fix
	* ctrl+k(ConnectEntities): friendlier to complex connections, takes in account existing keys
		(priority: target > targetname > none)
	* +'all Supported formats' default option in open dialogs
	* defaulted show light radii
	* camera fov: 90->110
	* cubic clip: off by default; bigger def dist; fixed button's shortcut tip
	* prefs: Min & Max texture thumbnail size + dependant on scale;
		def = *scale .5, min 48, max 160 (makes range 96-320 visually differentiated)
2017-08-01 13:57:26 +03:00
Garux 7d7436ec3d Q3map2:
* packer: +warnings on implicitMaps, mapNoComps
	* packer: known problem: minizip crash, when trying to get file with 2039 year date from disk
	* -repack: repacks multiple maps, strips out only required shaders; main argument is single bsp path or txt with full pathes to bsps
		switches: -dbg: talkative mode; -png: include pngs, at highest priority; -complevel: -1..10, def 0, compression level
		uses additional exclusions file repack.exclude with different logic
2017-08-01 13:56:25 +03:00
Garux 2b85b7c20c Q3map2:
* packer: rewrote logic to make sure not to include excluded stuff
	* packer: preserves file date, if grabbing file from .pk3 too
	* packer: in case of missing *ingame* resources pk3 gets _FAILEDpack suffix
2017-08-01 13:54:01 +03:00
Garux 66d12fc237 Q3map2:
* -pk3 autopackager: alternative way to write
2017-08-01 13:53:05 +03:00
Garux eef3995202 Q3map2:
* -pk3: autopackager mode(complete Q3 support); bsp path as input; switches: -dbg - talkative mode, -png - include pngs, at highest priority
		is using file 'gamename.exclude' to exclude vanilla game resources
		tip: ioq3, netradiant, compiler (and packager) treat *.pk3dir directories as separate pk3 files
2017-08-01 13:51:52 +03:00
Garux af4e2d29cf Q3map2:
* shot down spammy warning about samplesize for lmsize<=128; -debugsamplesize to show
	* numBspModels ('brusmodels') stat emitting


Radiant:

misc...
	* filters toolbar (disableable)
	* fix: shift + m1 click in tex browser to open shader in internal/external editor;
		defaulted internal; focuses on wanted shader; correct opening/saving
	* fix: angles "0 x 0" autoconvert to angle "x" on transform (was getting deleted w/o a trace)
2017-08-01 13:50:06 +03:00
Garux 6e687efe88 Q3map2:
* content of brush is determined now not by 1st side in brush definition (inconsistency!)
		but on priority: liquid > fog > playerclip > nonsolid > solid
		ex.: nodraw solid shader works now for hiding liquid or fog volume splits / unwanted faces
		solid or nonsolid shader + face(s) of playerclip = playerclip
		solid shader + face(s) of nonsolid = nonsolid (b4 could happen: 5nonsolid sides + 1solid = solid brush )


Radiant:

binds...
	* make structural - alt+s
	* shift+n - cycle patch tex projection
	* ctrl+f - fit texture
	* bind a, d in no mlook mode - CameraStrafeLeft/Right

menus...
	* smartified content basically
	* hidden killconnect for games, which are not nexuiz
	* view-orthographic+: center 2d on selected (ctrl+shift+tab)
	* removed parent from menu, regroup does work + isn't bugged
	* edit+: SelectAllOfType (shift+a)
	* view->show+: ToggleCrosshair, show size info, show grid
	* view menu: +patch inspector
	* curve->texture+: flip patch tex ( {ctrl}shift+i ), naturalize, cycle projection
	* cleaned, updated help menu links,+: Mouse Shortcuts, recent offline&fixed Shader Manual,
		netRadiant specific docs, lists of q3map2 switches/entity keys/shader directives
misc...
	* removed note to save before going to preferences, project settings
	* fog is automatically transparent
	* Doom3LightRadius: failed to parse default light radius - spammy msg removed
	* 1.5x bigger light ents (8->12u)
	* longer list of recently opened (4->9)
	* crosshair display: is saving in prefs
	* defaulted Maya theme
	* removed question to override current compile monitoring
2017-08-01 13:36:40 +03:00
Garux a255fbd84e Q3map2:
* brush planes normals snap: +fix of vector-is-close-to-be-ON-axis case, was breaking slivers collisions, drawsurfs
	* alphamod scale: works now
clean shiftBspMain
2017-08-01 13:35:36 +03:00
Garux f73cc19a61 Q3map2:
* -clipdepth F, def 2, _clipdepth
	* fixed model autoclip (64u thick brushes/no collision at all in some cases)
	* pyramidal etc zillion (20!) of autoclip modes
	* removed stuctural caulk in models, was broken anyway

Radiant:

misc...
	* hollow: produces not intersecting brushes
2017-08-01 13:34:48 +03:00
Garux bf803dd851 Q3map2:
* -bounceColorRatio 0..1 (ratio of colorizing sample by texture)
	* -debugclip: autoclip debug, uses shaders debugclip, debugclip2
	* >2GB makefile option, allows up to 3GB ram on 32bit, 4GB on 64bit
	* speedup patch to use fast sqrt at some points of light phase, where precision is not needed

Radiant:

binds...
	* paste to camera - shift+v (alt+v was leading to texBro-View menu)
2017-08-01 13:33:37 +03:00
Garux 7ca7a54fe6 Q3map2:
fix * q3map_remapshader remaps anything fine, on all stages (effect is: postrenaming shader when things are have been done)
	* typo at -dirtmode

Radiant:

misc...
	* translucent textures are visible, while selected, too; +matching trans polys are visible simultaneously
2017-08-01 13:32:31 +03:00
Garux 9fed37bae0 Q3map2:
* native surfaceparm noob support (no -custinfoparms needed)
	* -noob in bsp phase: assign surfaceparm noob to all map surfaces
	* surfaceparm ob: skip assigning surfaceparm noob with -noob on that
	* farplane modes: radius+radius, origin2origin, exact (add r/o/e to the number to enable), < 0 works too
	* samples+filter - enabled again, makes sense
	* -vertexscale
	* fixed -novertex, (0..1) sets
	* quick q3map_novertexlight (?)
	* fixed _clone _ins _instance (_clonename)
	* -nolm - no lightmaps
	* ent keys aliases:_sa - shadeangle;_ss - samplesize
	* -shift N -shift X Y Z: shift whole map to some coords
	* more fogs (256) (ingame appearence lots of ones might be bugged due to engine arrangement, needs testing)
	* q3map_remapshader remaps anything fine, on all stages (effect is: postrenaming shader when things are have been done)
	* fixed 'unknown argument 1' at -lightanglehl
	* -nocmdline writting to worldspawn

Radiant:

binds...
	* wasd camera binds, c - deSelect, z - delete
	* ExpandSelectionToEntities - shift+e
	* make detail - alt+d
	* arbitrary rotation - shifr+r
	* arbitrary scale - ctrl+shift+s
misc...
	* fit width, fit height butts in surf inspector (for trims) (saves scales ratio)
	add old TODO with ideas
2017-08-01 13:26:50 +03:00
Rudolf Polzer 214d4c94ce Found why RadSubdivideDiffuseLight happens with !bouncing. Trying
another one now.
2013-09-24 14:51:54 +02:00
Rudolf Polzer a78573e0e9 HAHA. Fix a bug that prevented ANY non-sRGB builds with the current default build menu. For ages now. Also addd some attempt to track down a bounce issue. 2013-09-24 12:45:47 +02:00