Skip to content
Compare
Choose a tag to compare

Q3map2:

* fix: do not affect styled lightmaps by floodlight
* support -extlmhacksize N N input for non square lightmaps, for example -extlmhacksize 2048 1024
* no shaderlist.txt or empty one = load all shaders
* fix -fixaas
* packer, repacker: also handle fogs without drawsurfaces
* -repack -analyze switch: only analyze bsps and exit (to dump bsp resource calls)
* packer, repacker: handle nodraw patches correctly; warn on visible surface, having shader w/o maps (typically watercaulk)

Radiant:

binds...

* ctrl + shift + z: redo alias

misc...

* support misc_model::_remap facility of q3map2
* support indexed tga formats: (24/32bit palette)x(8bit colour index)x(rle/not)
* Model Browser: default bind '/'
	m1 = assign model to selected entity nodes (shift + e to select nodes of group entities)
	m1x2 = insert "misc_model" with given model
	m1 drag = rotate model
	Preferences.Model Browser: list of * separated folderToLoad/depth values, e.g. *models/mapobjects/99*maps/1*; */99* loads root
* new rendering system for volatile text
* new filter: Point Entities (nongroup entities besides misc_models and lights)
* unzoom from mouse pointer in 2D and 3D
* set clipper points to selected face on clipper tool switching-on
* entity inspector: select entities by key, value, key+value buttons
* no shaderlist.txt or empty one = load all shaders
* brush.icosahedron.truncate option
Compare
Choose a tag to compare

Q3map2:

* _maxlight worldspawn key (works unless exposure is used) (for those, who know, what they do)
* misc_model::_remap: also remap 'abrakadabraNAME' shaders by _remap = 'NAME;newname'
* -fillpink in light stage: fill unoccupied lightmap pixels with pink colour
* support -lightmapsastexcoord conversion to .ase
* support -shadersasbitmap in -lightmapsastexcoord conversion mode
* -lightmapsastexcoord conversion: support 'external lightmaps, referenced by shader' hack
* -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)
* -brightness only affects lightmap brightness, like q3map_lightmapBrightness, as there are -vertexscale and -gridscale for the rest
	is multipled with q3map_lightmapBrightness
* fix: qer_editorimage, q3map_lightImage etc work with file names, containing period

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

Radiant:

binds...

* shift + }/{: CameraModeNext/Prev
* build menu.customize: ctrl + c / ctrl + insert = copy, ctrl + v / shift + insert = paste build presets and command lines
* ctrl + alt + m1: extrude pointed faces of selected brushes and selected faces inside/outside

misc...

* disable overlay front buffer rendering hack in 3D camera and completely in 64bit builds
* render 2D crosshair, as overlay, update it during manipulations
* fix active 2D view outline rendering in 2x2 layout
* prevent runouts of 2D views from grid area (world bounds)
* focus all 2D views on map load, selection by q3map2, NextLeakSpot, selection by brush/entity number
* fix invisible radiant with floating 3D camera window hidden in non floating layout
* calculate fov against max of 3D viewport width, height for consistency
* workaround gamma bug in 2D views and texture browser with fresh nvidia drivers
* suggest to automatically restart editor on change of preferences, which require this
* suggest to restart after selected game preference change
* build menu.customize: show placeholder string in entries for creation of new ones
* shader editor: support files with crlf line feeds in linux
		preserve line feeds on saving
		indicate 'modified' state by save button and window name
		view shaders from packs too (read only)
* brushexport plugin: "Weld vertices" option (welds inside group or object, thus result depends on collapse option)
* brushexport plugin: add Save button to reexport to recently specified file directly
* brushexport plugin: add 'Ignored materials' on Enter, delete on Delete
* brushexport plugin: for 'Ignored materials' use input after last slash, as comparison is only using this part
* brushexport plugin: make comparison with 'Ignored materials' case insensitive
* brushexport plugin: hide window on closing = preserve settings
* support Quake3 and Quake in -gamedetect (autodetects by availability of "baseq3/pak0.pk3" and "id1/pak0.pak" in folders prior to radiant's)
* improve alt + m1 resizing in camera for slanted faces
* csg tool: +faces face specification mode (only process selected faces)
* csg tool: also process unselected brushes with selected faces
* preferences->Grid->Max grid coordinate: how much big grid to render (visual aid for games with small world)
* open/save dialogs: use current file path, name, focus it, if present
* alt + m1 2D view face vertex manipulator: use 'faces on the only best plane' pickup strategy
* improved CSGTool::Hollow::diagonal algorithm (reliable for complex brushes complete extrude, handle simple brushes deep partial extrude)
* DragExtrudeFaces: diagonal extruded brushes joints if extruding multiple faces per brush
* DragExtrudeFaces: process with selected faces only, i.e. w/o objects selection
* shortcuts list: add Reset button (defaults selected shortcut)
* shortcuts list: add Reset All button (defaults all shortcuts)
* QE tool mouse move: highlight PlaneSelectables with alt/ctrl+alt, components in component modes

UPD 20200325

  • picomodel::ase: support standard empty bitmap name 'none'
  • support misc_model::_remap facility of q3map2
  • fix: do not affect styled lightmaps by floodlight
Compare
Choose a tag to compare

Q3map2:

* fix map region -light compilation: load lights from .reg, not .map
* model autoclip: handle 'triangle points almost on line' case
* allow maps with only point entity@( 0, 0, 0 )
* 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
* picomodel::obj: support polygons > quads
* assign surfaceflags to brush 'bevel' planes, so physics like slick/nodamage/metalsteps function at brush edges and vertices
* picomodel: fix md2 loader
* fix unwanted culling of both matching brush faces

MBSPC:

* add MBSPC fork of BSPC utility to the project
* import fixes and QuakeLive support from mainstream BSPC
* bump hardcoded limits for Q3 and HL maps
* 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

Radiant:

binds...

* ctrl + r: clone stuff and repeat recent transforms; clipper tool toggle resets transforms stack
* bindable commands TextureProjectAxial/Ortho/Cam, using default texdef, unlike surface inspector buttons
* all plugins commands are bindable
* G: UV Tool (edit texture alignment of selected face or patch), modifiers:
	pivot control point and lines: ctrl = snap hard to face vertices and grid
	grid density controls: shift = change density of both axes synchronously, ctrl = power of two grid
	scale lines: shift = scale axes synchronously, ctrl = snap hard to vertices
	alt + m1 on grid = skew texture (is possible alright in BP and Valve220 map formats, not in AP); ctrl = snap hard to edges
	texture move: shift = only move along the axis with the biggest move, ctrl = snap grid lines hard to vertices and pivot
	patch controls move: shift = only move along the axis with the biggest move, ctrl = snap hard to grid and povit lines
	rotate: shift = rotate with step of 15 degrees, ctrl = snap hard to edges

menus...

* 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

misc...

* fix crashy assertions on vertices/edges selection (also = during vertex manipulations)
* disable points snapping to .125 grid during edge manipulation (already disabled for vertex mode)
* lower Winding_Clip ON_EPSILON to play with weird brushes w/o error
* fix brush shader names handling by bobtoolz
* "BuildMenu" preference: store filename (def. build_menu.xml) instead of absolute path for portability; absolute path is supported too, if set
* fix: load customized build_menu.xml from settings folder on the very first start and with senseless "BuildMenu" value
* 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
* entity inspector::smartEdit: display real key names
* entity inspector::smartEdit: show tooltips with extended names and descriptions for keys and flags
* prtview plugin: support PRT2 and PRT1-AM .prt formats
* bobToolz::Vis Viewer repair (shows current vis cluster brush drawsurfaces in green and rest visible ones in other colours for Q3 and Wolf/QL .bsp):
	don't crash on bsp w/o vis
	don't crash with origin in the void (includes inside of structural brush)(do reset)
	grab point to analyse from camera position with nothing selected; grab from any objects selection too
	fix rendering issues
	read surfaces written by q3map2 correctly + faster rendering code
	print number of loaded drawsurfaces to console for evaluation of optimization done
	fix a couple of of leaks and crashes after new/delete
* Shortcuts edit: fix "already assigned" check
* special mWheel scrolling mode during orbiting in camera (alt + m2)
* region XY: only deselect excluded objects for convenience
* fix precision of brush vertex editing and wrap merge
* fix sloped brushes evaluation at big coordinates (aka disappearing faces and brushes)
* prevent resizing brushes to zero volume by faces drag, try to stop at minimal configuration
* bigger components handles
* render occluded brush vertices differently
* consider texture alpha channel during rendering of shaders with qer_trans
* override fully transparent alpha of tga images by fully opaque
* fix alt + m1 indirect faces picking, when object is partially or fully out of camera view
* fix face centroids of small faces at big coordinates in 64 bit
Compare
Choose a tag to compare

Update 2018-12-16:

  • workaround for very slow fontconfig initialization @windows by Zarr
  • Ubuntu build by Fjoggs

Q3map2:

* picomodel::obj: fix black default vertex color, also use one from .mtl
* picomodel: fix parser->curLine for line number report (was increased twice)
* fix reading of old wolf, et, etut bsps
* picomodel: do some guessings about shader paths to handle more cases out of the box; ones are based on material and diffuse map names:
	name w/o path: assume textures are in the folder, where model file is
	absolute path or with ..: try to cut at "/models/" or "/textures/" (as if leading to game folders); do previous case, if not
	strip extensions and turn slashes to forward ones anytime
* picomodel::obj: fix diffuse map paths loading from .mtl
* picomodel::obj: fix over allocating vertices with multiple surfaces (by zturtleman)

Radiant:

binds...

* bindable commands FitTextureWidth, FitTextureHeight, FitTextureWidthOnly, FitTextureHeightOnly
* bindable commands EntityMovePrimitivesToLast, EntityMovePrimitivesToFirst, EntityUngroup, EntityUngroupPrimitives
* m3: copy texture name, alignment +new: color, light power, color
* alt + m3/drag: paste texture name (to pointed and selected stuff)
* shift + m3/drag: paste texture name, alignment +new: light power
* ctrl + m3/drag: paste texture seamlessly between brush faces +new: light color
* ctrl + shift + m3/drag: project texture from copied brush face +new: paste light power, color
* alt + ctrl/shift/ctrl+shift + m3/drag: respective texture alignment paste w/o texture name
* alt + m1 in camera: new resizing mode for brushes, curves and doom3 lights with direct and indirect selection methods
* alt + m2 in camera: orbit around clicked point
* ctrl + u: new uniform CSG wrap merge algorithm, merging selected brushes, components and clipper points
* z, backspace (DeleteSelection): also delete selected components (vertices/edges/faces) of brush in a component mode
* clipper::enter, shift+enter, doubleclick: merge brushes and components with clipper points, if no cut occured
* 3d camera clipper: move points in XY + Z style with shift, ctrl, alt; snap to grid with ctrl

misc...

* replace reGroup command with simpler to use Move Primitives to Entity one (select primitives to move, select target entity primitive, go)
* remove entity->ungroup command: change classname to worldspawn does equal job; 'create worldspawn' click ungroups selected primitives only
* add statusbar->patches count
* statusbar: show selected brushes/patches/entities counts, if anything is selected; total, if not
* default (QE) tool: new translation styles: "XY plane + Z with Alt", "View plane + Forward with Alt" (prefs->Selection->Move style in 3D)
* up/down floor walker: examine all types of scene nodes (was brushes only)
			consider only top/down and selected instances (was whole scene)
			fix jam at close coords
			also jump to bottommost coord of considered objects				
* enable entity->killconnect for game type="q1"
* map objects counts statusbar icons
* omit textures/ prefix in texture clipboard status
* disable clipper cut action on doubleclick, if click has set second point
* selector size: bump default 8->12
		clipper's one = user preference + 4
		hardcode for pivoted manipulators to 8 (since their size is constant)
* handle degenerate cases of 2 points clipper in camera (points on the line of view direction)
* preferences->Clipper->On DoubleClick do: clip or split (def = split)
* use external textures mipmaps generation, draw NPoT textures correctly
* update Texture Quality (mip level) preference without restart
* fix group entities name position with origin key used
* more robust open/save/import dialog path handling (could crash by opening file w/o extension or with illegal one)
	likely fix for extensions in uppercase in OSes with case dependent FSes
* rectangular selector gestures, enabling select, deselect and toggle behaviors
* fix clone, clone-make-unique, select all of type, expand selection to entities/primitives for maps w/o worldspawn
* fix automatic connection names resolving of cloned entities
* render direction arrow for group entities, having angle/angles key set or having angle/angles/direction attribute in .ent
* render workzone in 3d camera
* render size info in 3d camera
* rewrite and fix 2d background image feature; fix bug on intels (glPushAttrib)
* represent grid by 3d camera workzone
* arbitrary rotation dialog fix: also handle extra precision of values on execution by button press
* improve skew manipulation consistency in camera
* XY + Z style of transform manipulator translations
* improve rotation manipulations consistency in camera
* also filter "textures/common/donotenter" by Botclips filter
* fix: update component modes toolbar buttons on entering clipper mode
* new vertex editing mode, preserving non modified vertices (=adding/removing faces automatically)
* Snap to grid in a component mode: snap whole objects, if no components selected
* Snap brush/its vertices to grid: rebuild brush from snapped vertices with optional texture vertex lock
* insert brush vertices in vertex mode by clicking with no ones selected
* massive supplement/fixing of Q3 entities.ent; defrag.def->defrag.ent
Compare
Choose a tag to compare

Q3map2:

* buffered broadcast xml stream to dramatically increase compilation monitoring speed
* mark warning messages with respective flag for colorized monitoring output
* colored warnings and errors in Windows console
* modify message flags system to allow SYS_WRN | SYS_VRB, SYS_ERR | SYS_NOXML etc combinations

Radiant:

* fix filter structural filtering point entities for q1
* introduce globalWarningStream()
* fix RadiantSelectionSystem::getSelectionAABB() for PlaneSelectables
* orange console warnings
* new robust (working well in camera too) algorithm of indirect faces selection for brushes, patches, doom3 lights, transform tool
* select only plane of planeselectables in camera (since it's not easy to select multiple ones on purpose anyway)
* build system: prevent empty commands execution
* build monitoring: determine if pending stack got monitorable commands, use non monitorable path, if not
* preferences->Build->Dump non Monitored Builds Log (default = no)
* catch degenerate cases in texture vertex lock (ex: verts edit to noncontributing face, then back)
* brush creation in camera; alt = modify height
* entity based structural/detail filters depend on brushtypes="quake" in .game to make detail surfaceflags usable for quake 1
* lower alt+m2 (2d zoom) sensitivity
* support mouse_moved_epsilon system in camera freelook
* preferences->Camera->Strafe Speed slider
* camera strafe: m1 one is disableable by mode 'none'
		do not block strafe by pressed shift in up/forward modes
		enable forward strafe with only shift pressed in 'both' modes (no ctrl is required)
* remove hack, making freelook move speed fps dependent and harsh move start
* preferences->Camera->Scroll Move Speed slider
* change freelook move speed units to game units; expand range; simplify
* print speed values on change by CameraSpeedDec/CameraSpeedInc commands to console
* preferences->Camera->Time to Max Speed slider (camera key moves acceleration)
* fix backslashes in opened by cmd line map path = fix duplicates in recent maps list
* check move amount (56 pixels) in M2 toggle freelook or keep strafemode condition to allow fast strafe moves
* texbro: show tags frame on M2 release after small or zero move to enable (m2 drag = scroll pan) with tags on
* change GDK_KP_Home, GDK_KP_Page_Down, GDK_KP_End binds to GDK_KP_7, GDK_KP_3, GDK_KP_1: works under Windows at least
* fix mixed up ViewFront and ViewSide commands, NextView menu entry typo
* preferences->Selection->Selector size (pixels)
* turn off 64u deep selection of components in QE tool
* fix qer_alphafunc equal/greater/less/lequal alphatest modes (was always 'gequal')
* clipper tool total rewrite; works in 3d viewport
* fix: update BrushClipPlane rendering on selection change
* clipper points are draggable right after been dropped
* preferences->Clipper->"Reset Flipped State" (on cut done and on manipulator changed), "Reset Points on Split", "2 Points in 2D Views"
* wysiwyg lights selection (was bbox based)
* fix: update BrushClipPlane rendering on undo
* snap Clipper points to brush planes, edges and vertices (in 3d camera)
* Valve220: transform basis in special way with texture lock off
Compare
Choose a tag to compare

Hotfix!

* fix: FBO creation was random
* disable MSAA with samples = 0, even if more is forced via driver
Compare
Choose a tag to compare

Q3map2:

* add extra surfaceflags from quakelive
* fix misspelled 'donotenterlarge' contentflag for RTCW & ET

Radiant:

binds...

* m2 in Surface Inspector->fit width/height = fit width/height, keep height/width
* shift + n: brush texture reset + patch texture cap

menus...

* View->Show->Entity Connections option
* Brush->Copy/PasteFaceTexture: show contextual Copy/Paste commands (dependant on faces selected)

misc...

* increased Patch::Calculate_AvgNormal() robustness; affects Patch::CapTexture() & Patch::ProjectTexture()
* round AP and Valve220 rotation values to f.xx instead of int
* swap shift+pgup/pgdn to match SI behavior (up = +value, down = -value) & to improve ergonomics
* invert BP fake angle to synchronise shift+pgup/pgdn behavior with rotation by SI
* preferences->Camera->Selection filling option (filling highlighting), def=on
* fix: selected faces wire color is updated immediately on colour theme change
* fix/improvement of arrows, showing direction of entity connections; now are definitely visible in all orthogonal projections :)
* don't save .map and snapshots during .reg (region) compilations
* fix: don't exclude worldspawn node on region() functions, so newly created brushes are visible afterwards
* fix: region() functions work for entities, having model, which is instantiated multiple times in a scene
* warn on Map_RegionBrush with none selected
* fix: 'region set brush' is deleting ultimateselected only (is using one to get bounds)
* deselect components on any region() function: could be texturized or edited implicitly
* allow 'region set selection' in components mode
* Map_RegionXY: deselect anything (could leave stuff selected + invisible)
* Valve220: keep basis on 'paintTexture&Projection' (shift+m3); 'projectTexture' (ctrl+shift+m3) performs basis copy
* fix: reset hide button on Map_Free()
* deselect components on HideSelected(): could be texturized or edited implicitly
* fix AP texture lock for faces with 45 degrees angle
* support scale 0 in BP Texdef_transformLocked (is usable, while scaling faces in component mode by 0)
* support scale 0 in AP Texdef_transformLocked
* BP to AP brush type conversion: one is lossless, when it is possible
* Valve220 to AP brush type conversion: one is lossless, when it is possible
* texture locking during vertex and edge manipulations
* fix unwanted brush face texture transformations on brush resizing with texture lock on
* close Map Info dialog by ESC
* fix: reread values from SI on FitTexture command
* change default Map Info window position to centered
* statusbar: del "R:" info (rotate increment from SI)
	+current map format info (F:AP/BP/220)
	+explanatory tooltip, describing shown infos
* increase precision of camera mouse sensitivity setting from int to float to make it adapted for new hardware/software
* change mouse sensitivity handling by factor of 3 (old default 3 == new default 9)
* fix: consider rotation value for Valve220 arbitrary projections
* disable MSAA in Texture Browser, even if forced via driver
* rotate rotation manipulator representation during manipulation
* new manipulator, applying skew transform
* restyle manipulators icons in GtkRadiant 1.5 way
* transform manipulator: also perform translation, if grabbed bbox
* fix crash, if renaming tag w/o shaders assigned
* transform manipulator: add scale transformation; bbox resizing style
* transform manipulator: draw arrowheads, while some line is selected for skew
* Valve220 texture lock: catch QNAN, if projection direction is parallel to face
* BP to AP, BP to 220, 220 to AP format conversions, Valve220 texture vertex lock: handle degenerate BP basis case
* Valve220: optimize ST coords calculation (rotation value is irrelevant)
* move path settings to separate preferences group to simplify finding one
* prefs->game->paths: +Extra Resource Path option
* point entities are understood as miscmodels, if <model attribute is present in xml .ent definition
* <model key= is not hardcoded to 'model' anymore, can use 'mdl'(q1) or w/e
* add func_detail* to world and detail filters
* entity based structural/detail filters for entities="quake" in .game
* entity inspector -> clear all: keep origin key
* fix accidental negative rotation by rotate tool in camera, caused by low precision
* transform manipulator: add rotate transformation with handles in corner points
* turn SI->project texture radiobuttons to label and 3 buttons to save clicks
* miscmodel filter: simplify and support miscmodels, defined by new way (xml .ent)
* do 'project from face' in face2face seamless function for parallel faces
* toggle transform origin lock by clicking it
* represent locked transform origin with special colours
* support q1 liquids filtering with entities="quake" in .game
* Entity Inspector->smartedit angle(s), direction fields: add "set from camera view direction" button
* Entity Inspector->smartedit->color chooser sets actual key, was always _color
* Entity Inspector->smartedit: enable array, target, targetname, skin attribute types
* Entity Inspector->smartedit: enable texture attribute type, add full shader path autocompletion
* fix lags, caused by texture entries autocompletion
* fix and improve light power adjusting by mouse drag
* texbro tree: display only wad names + full paths as tooltips
* texbro tree: do not try to load root of texture directories group
* texbro: show all used textures on 'flush and reload shaders'
* Valve220: fix uninitialized texture buffer basis
Compare
Choose a tag to compare

Q3map2:

* Valve220 mapformat autodetection and support

Radiant:

* draggable renderable transform origin for translate, rotate & scale manipulators
	click w/o move = reset
	move is constraintable to axis with shift pressed
* highlight manipulators' renderables on mouse hover
* mouse_moved_epsilon system (0.5% of viewport size) for m1, tunnel selectors, manipulators (except freelook) to make them more fail-safe
* fix FreezePointer in linux with custom input coordinate tranformation and in win10
* filterbar: removed barely used areaportal button, moved 'apply nodraw/nodrawnonsolid' functions to translucent button
* brush resize, face shear: select single face with angle, closest to view direction (or multiple ones with equal angles)
* "Entity Names = Targetnames" option:
	also affects Entity List
	moved from View->Show menu to prefs->display->entities
	prompt about restart on change
* shortcuts list: search in the middle of strings too
* texbro->search entry: ESC = clear
* entity list+: search entry with start/any position modes:
	mouse wheel, uparrow/downarrow = scroll through search results
	ESC = clear
	mwheel in empty entry = scroll through selected/child selected entities
* entity list: expand map's root node on dialog display for convenience
* "BrushAlwaysCaulk" option is saveable for brush types other than q3
* brush format is preference for [maptypes, brushtypes]: [mapq1, quake], [mapq2, quake2], [mapq3, quake3]:
	preferences->Brush->Brush type: Axial projection, Brush primitives, Valve 220
* autodetect brush type on map opening
* brush face surfaceflags are optional on loading for flexibility
* 'Snap planes to integer grid' option is always off by default (is snapping 3 points, defining face plane, to integers)
* Valve220: use face projection by default
* Valve220: Project {axial, ortho, cam, from face} functions
* conversions between AP, BP and Valve220 brush types; conversions to Brush Primitives and Valve220 formats are lossless
* detect brush format and automatically convert to current one on map Import and Paste
* Valve220: fixed Reset function, implemented Rotate one
* Valve220: fix overwriting basis on brush clone/map import ( in Face( Face ) constructor )
* BP: fix: normalize shift values during import, arbitrary projections and face->fit
* Valve220: fix texture lock for scaling, fix for negative texdef.scale
* Valve220: fix patch.CapTexture (patch had invalid control points: define basis)
* Curve->Simple patch mesh: CapTexture() instead of NaturalTexture() for convinience