Changesets: DarkRadiant

master 4a0288c5

23.12.2025 16:58

orbweaver


Details Diff
De-duplicate some code in the map format classes

MapFormat::canLoad now has a default implementation returning true, so
this does not need a definition in all but one of the map format
classes. The code to parse a map format version, common to both
Doom3MapFormat and Quake4MapFormat, is now refactored into a static
utility method Doom3MapFormat::hasMapVersion.
mod - include/imapformat.h Diff File
mod - radiantcore/map/format/Doom3MapFormat.cpp Diff File
mod - radiantcore/map/format/Doom3MapFormat.h Diff File
mod - radiantcore/map/format/Quake3MapFormat.cpp Diff File
mod - radiantcore/map/format/Quake3MapFormat.h Diff File
mod - radiantcore/map/format/Quake4MapFormat.cpp Diff File
mod - radiantcore/map/format/Quake4MapFormat.h Diff File
mod - radiantcore/map/format/portable/PortableMapFormat.cpp Diff File
mod - radiantcore/map/format/portable/PortableMapFormat.h Diff File

master ff4234f1

23.12.2025 14:33

orbweaver


Details Diff
Reduce exceptions thrown by map format classes

Instead of canLoad() calling assertNextToken() and catching an exception
if the token does not match, just call nextToken() and examine the
value.
mod - radiantcore/map/format/Doom3MapFormat.cpp Diff File
mod - radiantcore/map/format/Quake3MapFormat.cpp Diff File
mod - radiantcore/map/format/Quake4MapFormat.cpp Diff File

master e51d4190

23.12.2025 14:04

orbweaver


Details Diff
Reduce exceptions during test execution

Introduce a new tryConvertToDouble helper function which (like the
existing tryConvertToFloat) does not use exceptions. This is used in the
Argument::tryNumberConversion method instead of std::stoi.
mod - include/icommandsystem.h Diff File
mod - libs/string/convert.h Diff File
mod - test/Basic.cpp Diff File
mod - test/Particles.cpp Diff File
mod - test/RadiantTest.h Diff File

master 4a32c274

13.12.2025 17:03

orbweaver


Details Diff
Reduce exceptions during test execution

MapResource::openFileStream() now signals a missing file by returning an
empty pointer, rather than throwing an exception. The calling code in
openMapFileStream() already has the filename so there is no change to
the warning message. Calling code in loadMapNode() contains its own
check for an empty pointer and throws its own exception if needed.
mod - radiantcore/map/MapResource.cpp Diff File

master a2376bf3

13.12.2025 16:48

orbweaver


Details Diff
Reduce startup exceptions during test execution

ModuleLoader::loadModulesFromPath() uses the non-throwing version of the
os::forEachItemInDirectory() function, checking the return value to
determine if the directory search was successful.
mod - radiantcore/modulesystem/ModuleLoader.cpp Diff File

master 7870d5cf

08.12.2025 14:22

orbweaver


Details Diff
Move several shader-related classes to scene library

This moves NamedBindable, HeightmapCreator, and ShaderExpression.
mod - include/ishaders.h Diff File
mod - libs/scene/CMakeLists.txt Diff File
add - libs/scene/shaders/NamedBindable.h Diff File
add - libs/scene/shaders/ShaderExpression.cpp Diff File
add - libs/scene/shaders/ShaderExpression.h Diff File
add - libs/scene/textures/HeightmapCreator.h Diff File
mod - radiantcore/CMakeLists.txt Diff File
mod - radiantcore/shaders/CShader.h Diff File
mod - radiantcore/shaders/CameraCubeMapDecl.h Diff File
mod - radiantcore/shaders/Doom3ShaderLayer.cpp Diff File
mod - radiantcore/shaders/Doom3ShaderLayer.h Diff File
mod - radiantcore/shaders/ExpressionSlots.cpp Diff File
mod - radiantcore/shaders/MapExpression.cpp Diff File
mod - radiantcore/shaders/MapExpression.h Diff File
mod - radiantcore/shaders/MaterialManager.cpp Diff File
mod - radiantcore/shaders/MaterialManager.h Diff File
rm - radiantcore/shaders/NamedBindable.h Diff
rm - radiantcore/shaders/ShaderExpression.cpp Diff
rm - radiantcore/shaders/ShaderExpression.h Diff
mod - radiantcore/shaders/ShaderTemplate.cpp Diff File
mod - radiantcore/shaders/TextureMatrix.cpp Diff File
rm - radiantcore/shaders/textures/HeightmapCreator.h Diff

master 5205846f

02.12.2025 17:02

orbweaver


Details Diff
RegisterableModule::getName returns string by value

This virtual method is still pure (since every module MUST have a unique
name), but now returns the std::string by value, so that modules are no
longer required to create a local static string to keep the reference
alive.
mod - include/imodule.h Diff File
mod - include/iregistry.h Diff File
mod - plugins/dm.conversation/plugin.cpp Diff File
mod - plugins/dm.difficulty/plugin.cpp Diff File
mod - plugins/dm.editing/plugin.cpp Diff File
mod - plugins/dm.gameconnection/GameConnection.cpp Diff File
mod - plugins/dm.gameconnection/GameConnection.h Diff File
mod - plugins/dm.gui/gui/GuiManager.cpp Diff File
mod - plugins/dm.gui/gui/GuiManager.h Diff File
mod - plugins/dm.gui/plugin.cpp Diff File
mod - plugins/dm.objectives/objectives.cpp Diff File
mod - plugins/dm.stimresponse/plugin.cpp Diff File
mod - plugins/script/ScriptingSystem.cpp Diff File
mod - plugins/script/ScriptingSystem.h Diff File
mod - plugins/sound/SoundManager.cpp Diff File
mod - plugins/sound/SoundManager.h Diff File
mod - plugins/vcs/GitModule.cpp Diff File
mod - plugins/vcs/GitModule.h Diff File
mod - radiant/camera/CameraWndManager.cpp Diff File
mod - radiant/camera/CameraWndManager.h Diff File
mod - radiant/clipboard/ClipboardModule.cpp Diff File
mod - radiant/clipboard/ClipboardModule.h Diff File
mod - radiant/eventmanager/EventManager.cpp Diff File
mod - radiant/eventmanager/EventManager.h Diff File
mod - radiant/eventmanager/MouseToolManager.cpp Diff File
mod - radiant/eventmanager/MouseToolManager.h Diff File
mod - radiant/map/StartupMapLoader.cpp Diff File
mod - radiant/map/StartupMapLoader.h Diff File
mod - radiant/settings/LocalisationModule.cpp Diff File
mod - radiant/settings/LocalisationModule.h Diff File
mod - radiant/ui/UserInterfaceModule.cpp Diff File
mod - radiant/ui/UserInterfaceModule.h Diff File
mod - radiant/ui/common/DialogManager.cpp Diff File
mod - radiant/ui/common/DialogManager.h Diff File
mod - radiant/ui/einspector/EntityInspectorModule.cpp Diff File
mod - radiant/ui/einspector/EntityInspectorModule.h Diff File
mod - radiant/ui/favourites/FavouritesUserInterfaceModule.cpp Diff File
mod - radiant/ui/filters/FilterUserInterface.cpp Diff File
mod - radiant/ui/filters/FilterUserInterface.h Diff File
mod - radiant/ui/gl/WxGLWidgetManager.cpp Diff File
mod - radiant/ui/gl/WxGLWidgetManager.h Diff File
mod - radiant/ui/grid/GridUserInterface.cpp Diff File
mod - radiant/ui/grid/GridUserInterface.h Diff File
mod - radiant/ui/mainframe/MainFrame.cpp Diff File
mod - radiant/ui/mainframe/MainFrame.h Diff File
mod - radiant/ui/materials/editor/MaterialEditorModule.cpp Diff File
mod - radiant/ui/mediabrowser/MediaBrowserModule.cpp Diff File
mod - radiant/ui/menu/MenuManager.cpp Diff File
mod - radiant/ui/menu/MenuManager.h Diff File
mod - radiant/ui/ortho/OrthoContextMenu.cpp Diff File
mod - radiant/ui/ortho/OrthoContextMenu.h Diff File
mod - radiant/ui/script/ScriptUserInterfaceModule.cpp Diff File
mod - radiant/ui/statusbar/StatusBarManager.cpp Diff File
mod - radiant/ui/statusbar/StatusBarManager.h Diff File
mod - radiant/ui/texturebrowser/TextureBrowserManager.cpp Diff File
mod - radiant/ui/texturebrowser/TextureBrowserManager.h Diff File
mod - radiant/ui/toolbar/ToolbarManager.cpp Diff File
mod - radiant/ui/toolbar/ToolbarManager.h Diff File
mod - radiant/xyview/GlobalXYWnd.cpp Diff File
mod - radiant/xyview/GlobalXYWnd.h Diff File
mod - radiantcore/Radiant.cpp Diff File
mod - radiantcore/Radiant.h Diff File
mod - radiantcore/brush/BrushModule.cpp Diff File
mod - radiantcore/brush/BrushModule.h Diff File
mod - radiantcore/camera/CameraManager.cpp Diff File
mod - radiantcore/camera/CameraManager.h Diff File
mod - radiantcore/clipper/Clipper.cpp Diff File
mod - radiantcore/clipper/Clipper.h Diff File
mod - radiantcore/commandsystem/CommandSystem.cpp Diff File
mod - radiantcore/commandsystem/CommandSystem.h Diff File
mod - radiantcore/decl/DeclarationManager.cpp Diff File
mod - radiantcore/decl/DeclarationManager.h Diff File
mod - radiantcore/decl/FavouritesManager.cpp Diff File
mod - radiantcore/decl/FavouritesManager.h Diff File
mod - radiantcore/eclass/EClassColourManager.cpp Diff File
mod - radiantcore/eclass/EClassColourManager.h Diff File
mod - radiantcore/eclass/EClassManager.cpp Diff File
mod - radiantcore/eclass/EClassManager.h Diff File
mod - radiantcore/entity/EntityModule.cpp Diff File
mod - radiantcore/entity/EntityModule.h Diff File
mod - radiantcore/filetypes/FileTypeRegistry.cpp Diff File
mod - radiantcore/filetypes/FileTypeRegistry.h Diff File
mod - radiantcore/filters/BasicFilterSystem.cpp Diff File
mod - radiantcore/filters/BasicFilterSystem.h Diff File
mod - radiantcore/fonts/FontManager.cpp Diff File
mod - radiantcore/fonts/FontManager.h Diff File
mod - radiantcore/fx/FxManager.cpp Diff File
mod - radiantcore/fx/FxManager.h Diff File
mod - radiantcore/grid/GridManager.cpp Diff File
mod - radiantcore/grid/GridManager.h Diff File
mod - radiantcore/imagefile/ImageLoader.cpp Diff File
mod - radiantcore/imagefile/ImageLoader.h Diff File
mod - radiantcore/layers/LayerModule.cpp Diff File
mod - radiantcore/map/CounterManager.cpp Diff File
mod - radiantcore/map/CounterManager.h Diff File
mod - radiantcore/map/EditingStopwatch.cpp Diff File
mod - radiantcore/map/EditingStopwatch.h Diff File
mod - radiantcore/map/Map.cpp Diff File
mod - radiantcore/map/Map.h Diff File
mod - radiantcore/map/MapResourceManager.cpp Diff File

master 85f1533c

01.12.2025 17:10

orbweaver


Details Diff
RegisterableModule::getDependencies returns StringSet by value

Modules with no dependencies (of which there are several) are no longer
forced to create a local empty static StringSet just to have a valid
reference to return.
mod - include/imodule.h Diff File
mod - plugins/dm.conversation/plugin.cpp Diff File
mod - plugins/dm.difficulty/plugin.cpp Diff File
mod - plugins/dm.editing/plugin.cpp Diff File
mod - plugins/dm.gameconnection/GameConnection.cpp Diff File
mod - plugins/dm.gameconnection/GameConnection.h Diff File
mod - plugins/dm.gui/gui/GuiManager.cpp Diff File
mod - plugins/dm.gui/gui/GuiManager.h Diff File
mod - plugins/dm.gui/plugin.cpp Diff File
mod - plugins/dm.objectives/objectives.cpp Diff File
mod - plugins/dm.stimresponse/plugin.cpp Diff File
mod - plugins/script/ScriptingSystem.cpp Diff File
mod - plugins/script/ScriptingSystem.h Diff File
mod - plugins/sound/SoundManager.cpp Diff File
mod - plugins/sound/SoundManager.h Diff File
mod - plugins/vcs/GitModule.cpp Diff File
mod - plugins/vcs/GitModule.h Diff File
mod - radiant/camera/CameraWndManager.cpp Diff File
mod - radiant/camera/CameraWndManager.h Diff File
mod - radiant/clipboard/ClipboardModule.cpp Diff File
mod - radiant/clipboard/ClipboardModule.h Diff File
mod - radiant/eventmanager/EventManager.cpp Diff File
mod - radiant/eventmanager/EventManager.h Diff File
mod - radiant/eventmanager/MouseToolManager.cpp Diff File
mod - radiant/eventmanager/MouseToolManager.h Diff File
mod - radiant/map/StartupMapLoader.cpp Diff File
mod - radiant/map/StartupMapLoader.h Diff File
mod - radiant/settings/LocalisationModule.cpp Diff File
mod - radiant/settings/LocalisationModule.h Diff File
mod - radiant/ui/UserInterfaceModule.cpp Diff File
mod - radiant/ui/UserInterfaceModule.h Diff File
mod - radiant/ui/common/DialogManager.cpp Diff File
mod - radiant/ui/common/DialogManager.h Diff File
mod - radiant/ui/einspector/EntityInspectorModule.cpp Diff File
mod - radiant/ui/einspector/EntityInspectorModule.h Diff File
mod - radiant/ui/favourites/FavouritesUserInterfaceModule.cpp Diff File
mod - radiant/ui/filters/FilterUserInterface.cpp Diff File
mod - radiant/ui/filters/FilterUserInterface.h Diff File
mod - radiant/ui/gl/WxGLWidgetManager.cpp Diff File
mod - radiant/ui/gl/WxGLWidgetManager.h Diff File
mod - radiant/ui/grid/GridUserInterface.cpp Diff File
mod - radiant/ui/grid/GridUserInterface.h Diff File
mod - radiant/ui/mainframe/MainFrame.cpp Diff File
mod - radiant/ui/mainframe/MainFrame.h Diff File
mod - radiant/ui/materials/editor/MaterialEditorModule.cpp Diff File
mod - radiant/ui/mediabrowser/MediaBrowserModule.cpp Diff File
mod - radiant/ui/menu/MenuManager.cpp Diff File
mod - radiant/ui/menu/MenuManager.h Diff File
mod - radiant/ui/ortho/OrthoContextMenu.cpp Diff File
mod - radiant/ui/ortho/OrthoContextMenu.h Diff File
mod - radiant/ui/script/ScriptUserInterfaceModule.cpp Diff File
mod - radiant/ui/statusbar/StatusBarManager.cpp Diff File
mod - radiant/ui/statusbar/StatusBarManager.h Diff File
mod - radiant/ui/texturebrowser/TextureBrowserManager.cpp Diff File
mod - radiant/ui/texturebrowser/TextureBrowserManager.h Diff File
mod - radiant/ui/toolbar/ToolbarManager.cpp Diff File
mod - radiant/ui/toolbar/ToolbarManager.h Diff File
mod - radiant/xyview/GlobalXYWnd.cpp Diff File
mod - radiant/xyview/GlobalXYWnd.h Diff File
mod - radiantcore/Radiant.cpp Diff File
mod - radiantcore/Radiant.h Diff File
mod - radiantcore/brush/BrushModule.cpp Diff File
mod - radiantcore/brush/BrushModule.h Diff File
mod - radiantcore/camera/CameraManager.cpp Diff File
mod - radiantcore/camera/CameraManager.h Diff File
mod - radiantcore/clipper/Clipper.cpp Diff File
mod - radiantcore/clipper/Clipper.h Diff File
mod - radiantcore/commandsystem/CommandSystem.cpp Diff File
mod - radiantcore/commandsystem/CommandSystem.h Diff File
mod - radiantcore/decl/DeclarationManager.cpp Diff File
mod - radiantcore/decl/DeclarationManager.h Diff File
mod - radiantcore/decl/FavouritesManager.cpp Diff File
mod - radiantcore/decl/FavouritesManager.h Diff File
mod - radiantcore/eclass/EClassColourManager.cpp Diff File
mod - radiantcore/eclass/EClassColourManager.h Diff File
mod - radiantcore/eclass/EClassManager.cpp Diff File
mod - radiantcore/eclass/EClassManager.h Diff File
mod - radiantcore/entity/EntityModule.cpp Diff File
mod - radiantcore/entity/EntityModule.h Diff File
mod - radiantcore/filetypes/FileTypeRegistry.cpp Diff File
mod - radiantcore/filetypes/FileTypeRegistry.h Diff File
mod - radiantcore/filters/BasicFilterSystem.cpp Diff File
mod - radiantcore/filters/BasicFilterSystem.h Diff File
mod - radiantcore/fonts/FontManager.cpp Diff File
mod - radiantcore/fonts/FontManager.h Diff File
mod - radiantcore/fx/FxManager.cpp Diff File
mod - radiantcore/fx/FxManager.h Diff File
mod - radiantcore/grid/GridManager.cpp Diff File
mod - radiantcore/grid/GridManager.h Diff File
mod - radiantcore/imagefile/ImageLoader.cpp Diff File
mod - radiantcore/imagefile/ImageLoader.h Diff File
mod - radiantcore/layers/LayerModule.cpp Diff File
mod - radiantcore/map/CounterManager.cpp Diff File
mod - radiantcore/map/CounterManager.h Diff File
mod - radiantcore/map/EditingStopwatch.cpp Diff File
mod - radiantcore/map/EditingStopwatch.h Diff File
mod - radiantcore/map/Map.cpp Diff File
mod - radiantcore/map/Map.h Diff File
mod - radiantcore/map/MapResourceManager.cpp Diff File
mod - radiantcore/map/MapResourceManager.h Diff File

master 11a80405

01.12.2025 16:35

orbweaver


Details Diff
RegisterableModule::initialiseModule() has empty default implementation

Changing from a pure virtual to an empty default implementation saves a
few lines in several modules which do not need to do any initialisation.
mod - include/imodule.h Diff File
mod - include/ipreferencesystem.h Diff File
mod - radiant/ui/gl/WxGLWidgetManager.cpp Diff File
mod - radiant/ui/gl/WxGLWidgetManager.h Diff File
mod - radiantcore/Radiant.cpp Diff File
mod - radiantcore/Radiant.h Diff File
mod - radiantcore/eclass/EClassColourManager.cpp Diff File
mod - radiantcore/eclass/EClassColourManager.h Diff File
mod - radiantcore/map/CounterManager.cpp Diff File
mod - radiantcore/map/CounterManager.h Diff File
mod - radiantcore/map/MapResourceManager.cpp Diff File
mod - radiantcore/map/MapResourceManager.h Diff File
mod - radiantcore/map/aas/AasFileManager.cpp Diff File
mod - radiantcore/map/aas/AasFileManager.h Diff File
mod - radiantcore/map/format/MapFormatManager.cpp Diff File
mod - radiantcore/map/format/MapFormatManager.h Diff File
mod - radiantcore/map/infofile/InfoFileManager.cpp Diff File
mod - radiantcore/map/infofile/InfoFileManager.h Diff File
mod - radiantcore/map/namespace/NamespaceFactory.cpp Diff File
mod - radiantcore/map/namespace/NamespaceFactory.h Diff File
mod - radiantcore/model/md5/MD5AnimationCache.cpp Diff File
mod - radiantcore/model/md5/MD5AnimationCache.h Diff File
mod - radiantcore/rendersystem/RenderSystemFactory.cpp Diff File
mod - radiantcore/rendersystem/RenderSystemFactory.h Diff File
mod - radiantcore/rendersystem/SharedOpenGLContextModule.cpp Diff File
mod - radiantcore/rendersystem/SharedOpenGLContextModule.h Diff File
mod - radiantcore/scenegraph/SceneGraph.cpp Diff File
mod - radiantcore/scenegraph/SceneGraph.h Diff File
mod - radiantcore/scenegraph/SceneGraphFactory.cpp Diff File
mod - radiantcore/scenegraph/SceneGraphFactory.h Diff File
mod - radiantcore/settings/PreferenceSystem.cpp Diff File
mod - radiantcore/settings/PreferenceSystem.h Diff File
mod - radiantcore/versioncontrol/VersionControlManager.cpp Diff File
mod - radiantcore/versioncontrol/VersionControlManager.h Diff File
mod - radiantcore/vfs/Doom3FileSystem.cpp Diff File
mod - radiantcore/vfs/Doom3FileSystem.h Diff File
mod - test/FakeClipboardModule.h Diff File
mod - test/HeadlessOpenGLContext.cpp Diff File
mod - test/HeadlessOpenGLContext.h Diff File
mod - test/TestOrthoViewManager.cpp Diff File
mod - test/TestOrthoViewManager.h Diff File

master 6556c3b3

25.11.2025 16:44

orbweaver


Details Diff
Merge "Map Files" and "Model Export" preferences pages

These settings are now located on a single "Files" page.
mod - include/ipreferencesystem.h Diff File
mod - radiantcore/map/mru/MRU.cpp Diff File
mod - radiantcore/model/ModelFormatManager.cpp Diff File

master 0ef1f0c6

25.11.2025 16:25

orbweaver


Details Diff
Move TextureManipulator into scene library
mod - libs/scene/CMakeLists.txt Diff File
mv - radiantcore/shaders/textures/TextureManipulator.cpp → libs/scene/textures/TextureManipulator.cpp Diff File
mv - radiantcore/shaders/textures/TextureManipulator.h → libs/scene/textures/TextureManipulator.h Diff File
mod - radiantcore/CMakeLists.txt Diff File
mod - radiantcore/shaders/MapExpression.cpp Diff File
mod - radiantcore/shaders/MaterialManager.cpp Diff File
mod - radiantcore/shaders/textures/GLTextureManager.cpp Diff File

master 641cb035

21.10.2025 18:47

orbweaver


Details Diff
Merge Clipper and Textures preference pages

All of these options relate in some way to textures, so there is no need
to split them over two mostly-empty pages.
mod - radiantcore/clipper/Clipper.cpp Diff File

master 25220f05

21.10.2025 18:39

orbweaver


Details Diff
Fix re-appeared unwanted "Settings" root node in prefs dialog

Commit c264b2a3b0b495 fixed the non-appearance of the TextureManipulator
settings in preferences, but the code was setting the page path as
"Settings/Textures" which resulted in the re-appearance of the empty
Settings root node.
mod - radiant/ui/prefdialog/PrefDialog.cpp Diff File
mod - radiant/ui/prefdialog/PrefDialog.h Diff File
mod - radiantcore/shaders/MaterialManager.cpp Diff File

master 4bcb15bd

08.10.2025 18:40

orbweaver


Details Diff
Fix squashed widgets in preferences dialog on GTK

Specify that column 1 of the preference page layout is "growable", which
means it can expand to fill the available space. Without this flag, the
column does not expand regardless of the expansion settings of the
containing sizer.
mod - radiant/ui/prefdialog/PrefPage.cpp Diff File

master c264b2a3

07.10.2025 18:40

orbweaver


Details Diff
TextureManipulator preferences now visible in dialog

TextureManipulator was a static object constructed on demand, and the
only call to construct it came from MapExpression when handling a
map expression that requires a texture to be resized. This meant that
under many circumstances the TextureManipulator was never constructed
and its constructPreferences method never called.

The TextureManipulator is now a component of MaterialManager and follows
its life cycle. The code to construct the preference page has been moved
out of TextureManipulator altogether, and now takes place during the
construction of MaterialManager, which makes the preference page visible
as soon as the application has started.
mod - .gitignore Diff File
mod - radiantcore/shaders/MapExpression.cpp Diff File
mod - radiantcore/shaders/MaterialManager.cpp Diff File
mod - radiantcore/shaders/MaterialManager.h Diff File
mod - radiantcore/shaders/textures/TextureManipulator.cpp Diff File
mod - radiantcore/shaders/textures/TextureManipulator.h Diff File

master 656ba889

10.09.2025 19:26

orbweaver


Details Diff
0005255: initial filters::FilterGroup class

This will store a set of filters to activate as a whole. Unit tests
confirm that it can be constructed from an xml::Node and read its name
and contents, although the new class is not yet used within the
application.
Affected Issues
0005255
mod - libs/scene/CMakeLists.txt Diff File
add - libs/scene/filters/FilterGroup.cpp Diff File
add - libs/scene/filters/FilterGroup.h Diff File
mod - libs/xmlutil/Node.cpp Diff File
mod - libs/xmlutil/Node.h Diff File
mod - test/Filters.cpp Diff File

master 61b177e1

12.08.2025 18:33

orbweaver


Details Diff
0005525: saving filters to XML is now handled by SceneFilter

A new method saveToNode contains the code for serialising filter objects
to XML, which was previously in BasicFilterSystem. As a result, this
code can now be unit tested.
Affected Issues
0005525
mod - libs/scene/filters/SceneFilter.cpp Diff File
mod - libs/scene/filters/SceneFilter.h Diff File
mod - radiantcore/filters/BasicFilterSystem.cpp Diff File
mod - test/Filters.cpp Diff File

master 074f2711

04.08.2025 18:29

orbweaver


Details Diff
0005525: SceneFilter can be constructed from xml::Node

Move the parsing code from BasicFilterSystem into a new SceneFilter
constructor, allowing it to be unit tested more easily.
Affected Issues
0005525
mod - libs/scene/CMakeLists.txt Diff File
mod - libs/scene/filters/SceneFilter.cpp Diff File
mod - libs/scene/filters/SceneFilter.h Diff File
mod - radiantcore/filters/BasicFilterSystem.cpp Diff File
mod - radiantcore/filters/BasicFilterSystem.h Diff File
mod - radiantcore/filters/SetObjectSelectionByFilterWalker.h Diff File
mod - test/Filters.cpp Diff File

master b4059e27

30.07.2025 18:22

orbweaver


Details Diff
0005525: remove type parameter from SceneFilter::isEntityVisible

Move the two-stage check for ECLASS and SPAWNARG down into the method
implementation so that it doesn't have to be repeated at each call site.
Affected Issues
0005525
mod - libs/scene/filters/SceneFilter.cpp Diff File
mod - libs/scene/filters/SceneFilter.h Diff File
mod - radiantcore/filters/BasicFilterSystem.cpp Diff File
mod - radiantcore/filters/SetObjectSelectionByFilterWalker.h Diff File
mod - test/Filters.cpp Diff File

master 225db35d

23.07.2025 18:34

orbweaver


Details Diff
0005525: remove type parameter from IFilterSystem::isEntityVisible

The only user of this method was calling twice, once with ECLASS and
again with SPAWNARG. This two-stage check is now moved into the method
itself.
Affected Issues
0005525
mod - include/ientity.h Diff File
mod - include/ifilter.h Diff File
mod - radiantcore/filters/BasicFilterSystem.cpp Diff File
mod - radiantcore/filters/BasicFilterSystem.h Diff File
mod - radiantcore/filters/InstanceUpdateWalker.h Diff File
mod - test/Filters.cpp Diff File

master ac26547c

15.07.2025 18:33

orbweaver


Details Diff
0005525: FilterRule now initialised with filters::Query variant

Replace the two Create methods and the two private constructors with a
single public constructor which accepts a filters::Query variant. Each
of the variant's subtypes corresponds to one of the filter types, and
contains the necessary parameters for that type.

Currently this only affects the construction parameters, not the
internal storage. FilterRule is still exposing the same set of
individual member variables containing the filter parameters, since
these are used elsewhere.
Affected Issues
0005525
mod - libs/scene/filters/FilterRule.h Diff File
mod - libs/scene/filters/SceneFilter.h Diff File
mod - radiant/ui/filters/editor/FilterEditor.cpp Diff File
mod - radiantcore/filters/BasicFilterSystem.cpp Diff File
mod - test/Filters.cpp Diff File

master f51287c7

08.07.2025 19:43

orbweaver


Details Diff
0005525: add FilterRule::getTypeString()

This new method replaces two almost-duplicate code blocks which map
filter types to string representations: one for the filter editor UI,
and another for serialising the custom filters to XML.
Affected Issues
0005525
mod - libs/scene/filters/FilterRule.h Diff File
mod - libs/scene/filters/SceneFilter.h Diff File
mod - radiant/ui/filters/editor/FilterEditor.cpp Diff File
mod - radiant/ui/filters/editor/FilterEditor.h Diff File
mod - radiantcore/filters/BasicFilterSystem.cpp Diff File
mod - test/Filters.cpp Diff File

master a836b384

02.07.2025 19:03

orbweaver


Details Diff
0005525: implement operator== for FilterRule Affected Issues
0005525
mod - libs/scene/filters/FilterRule.h Diff File
mod - test/Filters.cpp Diff File

master 579040b6

02.07.2025 18:43

orbweaver


Details Diff
0005525: update to a new, flatter filter icon Affected Issues
0005525
mod - install/bitmaps/iconFilter16.png Diff File

master fd2a9e2d

01.07.2025 18:42

orbweaver


Details Diff
0006511: add a CMake option to enable/disable the Git plugin Affected Issues
0006511
mod - CMakeLists.txt Diff File
mod - install.cmake Diff File
 First  Prev  1 2 3 4 5 6 7 ... 30 ... 60 ... 90 ... 120 ... 150 ... 180 ... 210 ... 240 ... 270 271 272  Next  Last