Commit Graph

725 Commits

Author SHA1 Message Date
Garux 02a3b9c026 use ostream_write( CopiedString ) 2021-09-18 15:30:11 +03:00
Garux 8d71aea059 * Q2::surface inspector::brush face flags: add "Unset flags" button 2021-08-24 18:57:59 +03:00
Garux b58408344c Q2 optional brush face flags in BP, 220 mapformats 2021-08-24 18:55:34 +03:00
Garux aa4f3a1f72 reduce the use of GSlist
Quake3FileSystem::forEachFile: avoid double extension check, support "*", as advertised
2021-08-19 12:28:56 +03:00
Garux 8cc464014e improve Brush_ConstructPrism() readability 2021-07-11 16:30:48 +03:00
Garux a1daaa2946 remove commented out code 2021-07-02 17:19:56 +03:00
Garux da55e8cbb4 * ctrl + m3/drag: also paste texture seamlessly from brush face to patch and vice versa, when face edje is adjacent to patch edje 2021-07-02 17:16:50 +03:00
Garux 133b146712 limit camera workzone renderable data amount
fixes performance with big selection + small grid
fixes crash, while scaling brush + model to zero
2021-07-02 16:55:50 +03:00
Garux 4471302857 add and use BasicVector3.vec2() 2021-06-23 16:51:03 +03:00
Garux 6c00419653 fix spelling 2021-05-24 20:23:09 +03:00
Garux da98f5f9d9 add and use Entity::getClassName(), Entity::hasKeyValue()
do not return default value from getKeyValue()
2021-05-16 10:13:42 +03:00
Garux ed04f90497 * .ent: "direction" attribute presence enables -1/-2 angle support for EclassModel, GenericEntity
* .ent: "angles" attribute presence enables angles support for EclassModel
2021-05-15 23:38:41 +03:00
Garux 155c2624b1 * .ent: support setting default model value of MiscModel type (<model key="model" name="Model File" value="ass/spider.mdc">) 2021-05-15 18:10:34 +03:00
Garux 9cf755dfab lower default camera mouse sensitivity
screen resolution change over time ~= 640x480 -> fullHd ~= 3x
2021-05-08 11:05:13 +03:00
Garux d1dcc29fa0 * automatically add ExtraResoucePath to q3map2 arguments, if set 2021-05-08 10:48:06 +03:00
Garux 72248bd95f * add optional soundtypes keyword of .game config, affecting file types shown in sound browsing dialog 2021-05-07 16:30:52 +03:00
Garux 8d19be1c0e * fgd: support studio("display/model/path") and flags(Angles) 2021-04-07 03:06:38 +03:00
Garux ceb6ee6051 parse extra comment and url in fgd 2021-04-07 03:04:01 +03:00
Garux 281096da58 fix crash on EntityClassFGD:: re realise() 2021-04-07 03:00:10 +03:00
Garux c6c978a38f * load all found *.fgd, not just halflife.fgd 2021-04-07 02:31:28 +03:00
Garux 5008fa278f simplify TYPE_CONSTANT code 2021-03-25 21:59:31 +03:00
Garux edabdd157e shorten BernsteinPolynomial 2021-03-25 18:03:46 +03:00
Garux f8ab9a3b59 remove IntegralConstant hack 2021-03-25 05:50:17 +03:00
Garux dc5dea6d21 delete copy constructors and assignment operators explicitly 2021-03-24 15:48:29 +03:00
Garux 6aa8e432f7 change Preferences_Save_Safe code to not have small oob read 2021-03-24 04:26:54 +03:00
Garux 2222100316 indent classes, align by spaces 2021-03-24 00:25:15 +03:00
Garux 5b1b9b5e6c fix xml entity key description with escaped characters reading
handle special symbols in smartedit key description tooltip
2021-03-21 05:44:28 +03:00
Thomas Debesse c4b79d2194 radiant/texwindow: fix a minor typo 2021-03-20 20:31:35 +03:00
Garux 9feec41e31 minor tweaks 2021-03-20 20:15:43 +03:00
Garux e200ffc762 minor tweaks 2021-03-20 02:30:11 +03:00
Garux 812679236d * improve performance of big maps loading, undo/redo dramatically
determinant factor is amount of nodes in one container
2021-03-20 02:29:11 +03:00
Garux c0c9f49433 * common shaders deduction: fallback to .game "common_shaders_dir" param (default = "common/"), so they may be configured all at once
#64
2021-03-13 16:57:31 +03:00
Garux 4ce944444d rewrite q3map2 math in c++ 2021-02-25 19:41:43 +03:00
Garux 02874bebee shorten some StringOutputStream uses 2021-02-08 13:48:49 +03:00
Garux d734199601 manage path routines 2021-01-22 02:21:54 +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 2734cbd1e0 * ctrl + shift + z: redo alias 2021-01-05 01:40:44 +03:00
Garux e62c6f4bb3 fix warnings 2021-01-03 06:24:58 +03:00
Garux 77439d8b66 fix [-Wdeprecated-copy] 2021-01-01 19:22:30 +03:00
Garux f401facb4f fix main wnd splits being set before window is actually maximized/fullscreened 2020-12-30 12:51:04 +03:00
Garux 2f2140efa4 support map loading on autorestart from path with spaces 2020-12-20 17:01:23 +03:00
Garux 8b460b5318 * brush.icosahedron.truncate option 2020-12-14 08:46:36 +03:00
Garux a5be520748 swap RotateSelectionClockwise, RotateSelectionAnticlockwise toolbar buttons for visual logic "right button rotates to right" and reverse 2020-10-13 08:23:19 +03:00
Garux 24bed23fdd emit error on non ASCII home or radiant path 2020-09-02 11:21:42 +03:00
Garux bd8a597016 enable console logging by default to simplify troubleshooting
it is enabled anyway in Sys_Print() if ( level == SYS_ERR ), but later
2020-08-28 19:55:35 +03:00
Garux 2944cff834 * entity inspector: select entities by key, value, key+value buttons
replaces and complements obscure behavior of SelectAllOfType with entity inspector shown
2020-08-19 08:23:04 +03:00
Garux fdef42427d change sentinel 0 -> nullptr (was causing crash with win64 gcc) 2020-07-22 20:05:35 +03:00
Garux cc5008a365 fix: update model browser scrollbar on loading folder after empty folder 2020-06-22 00:44:45 +03:00
Garux b111d28053 * set clipper points to selected face on clipper tool switching-on 2020-06-17 19:36:33 +03:00
Garux 5977a04550 * unzoom from mouse pointer in 2D and 3D 2020-06-13 20:58:10 +03:00
Garux cc1f7ecd76 * new filter: Point Entities (nongroup entities besides misc_models and lights) 2020-06-12 20:41:27 +03:00
Garux 1c93ac30cf centerize gtk theme wnd 2020-06-12 20:24:04 +03:00
Garux 35309c8c6c fix Gdk-CRITICAL **: IA__gdk_window_get_window_type: assertion 'GDK_IS_WINDOW (window)' failed 2020-06-05 23:49:04 +03:00
Garux 3e7ee32ded make extension_equal() check case insensitive in Unix
allows most of file types with non lowercase extension
known issue: textures with non lowercase extension in loose folders are visible now, but they aren't loaded, because it leads to fopen( filename.lowercase_extension )
2020-06-05 21:11:26 +03:00
Garux 4fdb720123 fix Gtk-CRITICAL **: gtk_widget_grab_default: assertion 'gtk_widget_get_can_default (widget)' failed 2020-06-05 21:04:18 +03:00
Garux e11341f8f6 fix Gtk-CRITICAL **: gtk_window_realize_icon: assertion 'info->icon_pixmap == NULL' failed 2020-06-05 21:03:10 +03:00
Garux e357564ff8 remove more of deprecated Gtk stuff 2020-06-05 20:40:12 +03:00
Garux d46aaf514d refactor and fix filterbar 2020-05-28 09:11:59 +03:00
Garux 95809d79f5 use GtkToolItem in toolbars 2020-05-27 08:18:22 +03:00
Garux 495e90e6a9 gtk_notebook_set_page -> gtk_notebook_set_current_page
gtk_container_children -> gtk_container_get_children
gtk_notebook_set_page -> gtk_notebook_set_current_page
gtk_widget_hide_all -> gtk_widget_hide
gtk_check_menu_item_set_state -> gtk_check_menu_item_set_active
gtk_radio_menu_item_group -> gtk_radio_menu_item_get_group
2020-05-23 22:54:26 +03:00
Garux dac8fd48a3 gtk_timeout_add -> g_timeout_add
gtk_timeout_remove -> g_source_remove
2020-05-22 01:29:08 +03:00
Garux 0ba68e1a29 gtk_toolbar_set_orientation -> gtk_orientable_set_orientation 2020-05-22 01:16:05 +03:00
Garux 2e71534766 gtk_tooltips_set_tip -> gtk_widget_set_tooltip_text 2020-05-22 01:16:04 +03:00
Garux 64e0c125e8 replace gtk_toolbar_append_space() 2020-05-22 01:16:02 +03:00
Garux f6bf97f27e gtk_spin_button_get_value_as_float -> gtk_spin_button_get_value 2020-05-22 01:16:01 +03:00
Garux ded059f817 GTK_COMBO_BOX -> GTK_COMBO_BOX_TEXT 2020-05-22 01:15:54 +03:00
Garux ab7eb468ec gtk_widget_set_usize -> gtk_widget_set_size_request
-2 in gtk_widget_set_usize() means 'don't change given dimension'
-2 in gtk_widget_set_size_request() = early quit function w/o an effect, thus change to -1
2020-05-21 16:27:33 +03:00
Garux 62603d25fb don't check equality to gboolean FALSE and TRUE 2020-05-21 16:27:31 +03:00
Garux 70cf8c4bdd gtk_widget_ref/gtk_widget_unref -> g_object_ref/g_object_unref 2020-05-21 16:27:28 +03:00
Garux e8998ab4a8 replace gtk_radio_button_group() 2020-05-21 16:27:26 +03:00
Garux 9d34fca65c gtk_entry_set_editable -> gtk_editable_set_editable 2020-05-21 16:27:20 +03:00
Garux 620fbffea7 only #include <gdk/gdk.h> <gdk/gdkwin32.h> <gdk/gdkx.h> <gdk/gdkkeysyms.h> 2020-05-21 16:27:19 +03:00
Garux 0140da6e72 only #include <gtk/gtk.h> 2020-05-21 16:27:17 +03:00
Garux cd529b4fb0 replace gtk_signal_connect, GTK_OBJECT, GTK_SIGNAL_FUNC, gtk_object_set_data, gtk_object_get_data 2020-05-21 16:27:15 +03:00
Garux 4f8e6e7ee5 fix the rest of errors with CFLAGS+="-DGSEAL_ENABLE" except accel_label->accel_string required hack 2020-05-21 16:27:14 +03:00
Garux 50e1af1a16 update GtkWidget allocation access method 2020-05-21 16:27:03 +03:00
Garux d214be3911 update GtkColorSelectionDialog use 2020-05-21 16:24:52 +03:00
Garux 065862627e update GtkAdjustment data access methods 2020-05-21 16:24:50 +03:00
Garux 12263f74d1 use gtk_widget_get_window() instead of widget->window 2020-05-21 16:24:40 +03:00
Garux ff33df7d45 replace GTK_WIDGET_VISIBLE -> gtk_widget_get_visible() 2020-05-19 23:46:54 +03:00
Garux 112f66fb06 remove deprecated GTK_WIDGET_SET_FLAGS GTK_WIDGET_UNSET_FLAGS use 2020-05-19 22:08:00 +03:00
Garux e1a145c234 remove excess (GdkModifierType) casts 2020-05-19 21:40:52 +03:00
Garux 0831e0966d Replace GDK_<keyname> with GDK_KEY_<keyname> 2020-05-19 21:15:11 +03:00
Garux a0a47640b0 * new rendering system for volatile text
(symbols rendered to atlas texture)
deliver position via glRasterPos + glGet GL_CURRENT_RASTER_POSITION to avoid adding calculations of screen coords in many spots
solves problem: pango 1.44 switch freetype->harfbuzz = bitmap fonts aren't available, in particular no gdk_gl_font_use_pango_font()
text is rendered from font bottom (was from baseline)(latter is wanted less often)
wgl bitmap<->pango sizes do not match, thus realign all text positions, increase default font size
make 2D axes labels, view type text, sizing info adaptive to font size
#24
fixes #42
2020-05-14 07:51:34 +03:00
Garux fa2a179fd5 fix memory leaks in texture browser::tags functions 2020-05-05 23:36:48 +03:00
Garux ef2fdfa127 make bestPlaneDirect, bestPlaneIndirect const 2020-05-05 19:49:01 +03:00
Garux 002f45d6d9 minor refactoring 2020-05-05 12:32:44 +03:00
Garux 13f877b7db forward path slashes entered in surface inspector, find/replace dialog::replace 2020-05-05 12:31:53 +03:00
Garux d48ce73d01 reset texture browser origin on directory loading 2020-05-04 20:52:48 +03:00
Garux 7ae79b263d minor refactoring 2020-04-28 08:30:25 +03:00
Garux 06cd1e98ff * 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
2020-04-26 07:28:23 +03:00
Garux d26669d041 try to fix MAC compilation #40 : probably more elegant 'environ' variable access 2020-04-04 21:46:39 +03:00
Garux a7de623115 try to fix MAC compilation #40 : workaround ambiguous 'environ' global variable availability 2020-04-04 21:09:36 +03:00
Garux 56ecc1b0a5 reduce texwindow.h inclusions 2020-04-04 19:39:57 +03:00
Garux 5fb3d587a4 use std::next instead of std::advance 2020-03-19 03:07:19 +03:00
Garux 7acdf92d50 * QE tool mouse move: highlight PlaneSelectables with alt/ctrl+alt, components in component modes
improve bestPlaneIndirect pickup (resolve, when corner is closest)
support 2d in class DragPlanes::bestPlaneIndirect
2020-03-19 00:00:28 +03:00
Garux a4b61f88e5 * shortcuts list: add Reset All button (defaults all shortcuts) 2020-03-10 08:30:15 +03:00
Garux b122d19ec7 * shortcuts list: add Reset button (defaults selected shortcut) 2020-03-10 06:57:08 +03:00
Garux e301fce02e simplify command_list_dialog codes 2020-03-10 05:38:50 +03:00
Garux 64e2eebfb3 rewrite GlobalShortcuts_foreach() to use functor semantics 2020-03-09 23:06:45 +03:00
Garux e25f67ca29 use struct for ShortcutValue, add accelerator_default value 2020-03-09 20:34:39 +03:00
Garux 380d5547c5 use GlobalSelectionSystem().foreachSelected instead of GlobalSceneGraph().traverse in alt+m1 PlaneSelectable pickup 2020-03-09 06:34:28 +03:00
Garux e7b8e36db6 * DragExtrudeFaces: process with selected faces only, i.e. w/o objects selection 2020-03-09 05:53:14 +03:00
Garux 6e88e7b746 * DragExtrudeFaces: diagonal extruded brushes joints if extruding multiple faces per brush 2020-03-08 17:23:02 +03:00
Garux d664d15f17 * improved CSGTool::Hollow::diagonal algorithm (reliable for complex brushes complete extrude, handle simple brushes deep partial extrude) 2020-03-04 04:01:20 +03:00
Thomas Debesse 9f29864f50 lessen code duplication 2020-03-03 02:24:36 +03:00
Thomas Debesse 66e6781c9b use Instance_isSelected() function 2020-03-03 02:00:15 +03:00
Thomas Debesse 1acf0bb221 * alt + m1 2D view face vertex manipulator: use 'faces on the only best plane' pickup strategy 2020-03-03 01:57:56 +03:00
Thomas Debesse edb9abc546 use xdg-open to open url on Linux 2020-03-01 20:08:55 +03:00
Garux 4b2f9d6080 * open/save dialogs: use current file path, name, focus it, if present
brushexport plugin: case insensitive extension check
2020-03-01 19:38:27 +03:00
Garux 658819cfac support https in help menu 2020-02-29 05:12:38 +03:00
Garux 097a662814 * preferences->Grid->Max grid coordinate: how much big grid to render (visual aid for games with small world)
known minor issues:
preference change to smaller value doesn't trigger 2d view origin, scale constraints evaluation (ok after doing manually)
preference change during region mode resets grid region size
2020-02-27 21:03:04 +03:00
Garux 9304e9bfa5 bigger default grid spacing 2020-02-25 19:21:14 +03:00
Garux 94a6cc9cda lower default camera fov 2020-02-25 19:01:48 +03:00
Garux abcc47ad64 more csg tool refactoring 2020-02-24 21:44:20 +03:00
Garux 53676dcf31 * csg tool: +faces face specification mode (only process selected faces)
* csg tool: also process unselected brushes with selected faces
2020-02-24 21:43:27 +03:00
Thomas Debesse 07a06b5b89 * ctrl + alt + m1: extrude pointed faces of selected brushes and selected faces inside/outside
* improve alt + m1 resizing camera for slanted faces
2020-02-22 04:14:45 +03:00
wongit df7d260538 fix for spawnflags toolstips now showing when bits are skipped
(undefined)
2020-02-21 22:03:20 +00:00
Garux 37ae7f0794 * support Quake3 and Quake in -gamedetect (autodetects by availability of "baseq3/pak0.pk3" and "id1/pak0.pak" in folders prior to radiant's) 2020-01-28 19:38:03 +03:00
Garux 34e9b522b7 * 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)
			refactor
2019-11-09 15:13:59 +03:00
Garux bad1a965c0 fix shader editor text length and offset in linux 2019-11-06 13:02:24 +03:00
Garux b9d846ac32 build menu.customize: clear ... placeholder string on the "editing-started" signal 2019-11-03 23:51:22 +03:00
Garux e849c95216 * build menu.customize: ctrl + c / ctrl + insert = copy, ctrl + v / shift + insert = paste build presets and command lines 2019-10-09 15:05:13 +03:00
Garux 4809f1a27a * build menu.customize: show placeholder string in entries for creation of new ones 2019-10-08 23:42:13 +03:00
Garux 05d7db4e3e don't append excess slash to g_qeglobals.m_userGamePath 2019-09-12 20:21:24 +03:00
Garux a834981d53 binds... * shift + }/{: CameraModeNext/Prev 2019-09-08 18:28:48 +03:00
Garux 4ebfc1dcac refactor template class LatchedValue use
make m_sGameFile LatchedValue
fix odd prompt to restart after game change via global preferences dialog + OK in local preferences
sort games list alphabetically by .game file name
2019-09-07 23:04:10 +03:00
Garux 1a18246a1f * suggest to automatically restart editor on change of preferences, which require this
* suggest to restart after selected game preference change
import of https://gitlab.com/xonotic/netradiant/merge_requests/141 e2f605b12f
2019-09-06 11:22:28 +03:00
Garux 6c9870f941 * workaround gamma bug in 2D views and texture browser with fresh nvidia drivers 2019-08-31 12:22:47 +03:00
Garux 6e42edd1cb * calculate fov against max of 3D viewport width, height for consistency 2019-08-31 11:30:29 +03:00
Garux 3bb51ba6b9 * fix invisible radiant with floating 3D camera window hidden in non floating layout 2019-08-30 12:30:16 +03:00
Garux fb773e2bcb tweak XYWnd code 2019-08-30 00:54:53 +03:00
Garux 1e0f7ba781 tweak VIEWTYPE related code 2019-08-29 00:41:40 +03:00
Garux 15cf9d0b55 * focus all 2D views on map load, selection by q3map2, NextLeakSpot, selection by brush/entity number 2019-08-24 01:12:01 +03:00
Garux 446e1148a5 * prevent runouts of 2D views from grid area 2019-08-23 23:38:29 +03:00
Garux 154b5f3619 shorten XYWnd::ZoomIn() / Out logic
fix odd wxywnd updates on zoom out of scale bounds
2019-08-23 20:32:28 +03:00
Garux 4e82cdf2f4 shorten code 2019-08-23 19:21:39 +03:00
Garux da7c72547b remove MIN use 2019-08-23 14:57:34 +03:00
Garux 49d1c98d81 * 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
2019-08-23 13:06:16 +03:00
Garux 9c908392b9 fix warnings and error 2019-07-06 14:35:20 +03:00
Garux 04b4f5fb1d simplify TextureBrowser Texture_Draw() 2019-07-05 19:30:43 +03:00
Garux 58b786d6e6 * fix face centroids of small faces at big coordinates in 64 bit
(explicitly cast to double, which likely happens implicitly in 32 bit)
2019-07-05 19:27:00 +03:00
Garux 2426697f65 UV Tool: add patch support
patch controls move modifiers: shift = only move along the axis with the biggest move, ctrl = snap hard to grid and povit lines
fix a couple of Patch::Calculate_AvgNormal() and Patch::NaturalTexture() problems
2019-06-10 15:17:57 +03:00
Garux 684187c4ec fix clipping whole brush by clipper after 3ce07bb310
fix rotate manipulator selection after aa99f4d254
2019-06-01 19:25:01 +03:00
Garux aa99f4d254 * UV Tool (edit texture alignment of selected face) 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
		rotate: shift = rotate with step of 15 degrees, ctrl = snap hard to edges
2019-05-19 10:30:44 +03:00
Garux 3ce07bb310 change points order in plane3_for_points( const BasicVector3<Element>& p0, const BasicVector3<Element>& p1, const BasicVector3<Element>& p2 )
to be consistent over the related code
to omit points swap there and there
2019-05-01 12:38:58 +03:00
Garux 71c63fbdc6 * fix alt + m1 indirect faces picking, when object is partially or fully out of camera view
refactor math functions
2019-04-28 20:54:29 +03:00
Garux b9a43074f0 fix wrong alpha after negative float to byte conversion in RenderableCamWorkzone 2019-04-24 01:08:51 +03:00
Garux 8d1015c7c8 make RenderTextLabel OpenGLRenderable
render CamDrawSize in uniform way
2019-04-23 14:02:13 +03:00