Releases: exdal/rmd
Releases · exdal/rmd
Release list
v1.8.2
New features
- Editor windows can now move outside the main window.
- Added a "UI scale" setting to General settings. By default the editor uses the OS scale.
- Added the
demir_rotatable(subtype, directions)profile procedure. - The tgstation and SecondCity profiles now let atmospherics machinery rotate to the four cardinal directions.
- Added a "Show backups" button to General settings.
- "Reset keybindings" now asks which keybind preset to use.
- Toolbar tooltips now show each tool's keybind and a short usage hint.
- Settings sections now have larger headings, which makes them easier to find.
- Showing or hiding a type in the viewport is faster. The editor now updates only the affected atoms instead of the full map.
Fixes
- Fixed assignments to
overlays,underlays, andvis_contentsin the bake runtime.nullnow empties the list, and a list value is copied, not shared. - Fixed overlays with a layer below
FLOAT_LAYER, for exampleFLOAT_LAYER - 1, which drew over their parent. They now draw under it. - Fixed tgstation layer manifold connections, which drew under the floor on hidden manifolds.
v1.8.1
New features
- Added a bundled SecondCity/Crimson Grid profile.
- Map previews now show the
transformof atoms and overlays. Sprites turn and scale about their center, and an overlay uses its parent's transform unless it setsRESET_TRANSFORM. - Added matrix support to the bake runtime:
matrix(),Translate,Scale,Turn,turn()on a matrix,*, and~. - The tgstation profile now runs the overlay light component to draw lights, and it initializes grass and ash turfs.
- The goonstation profile now shows cable, cable spawner, and disposal pipe connections.
- Map edits are faster on large maps. The editor now updates only the changed part of the sprite buffer.
- Codebase loads use less memory on large maps.
Fixes
- Fixed
x = locate(/type) in container, which did not search the container. - Fixed
initial()fortypeandparent_type. - Fixed icons in list variables, which the editor did not load.
- Fixed appearance variables that a runtime initializer sets, for example
icon_state = pick("a", "b"). The bake now exports them. - Fixed new map views that did not dock in the center after an earlier session saved a different layout.
v1.8.0
New features
- Added Git integration for maps. Turn it on or off in the new Git settings category.
-
- a three-way merge for map files. The viewport shows each merge conflict with its base, HEAD, and incoming versions.
-
- conflict resolution. Use the HEAD or incoming version for a tile, a region, the selection, or all conflicts.
-
- "Mark resolved". It stages the map with
git add.
- "Mark resolved". It stages the map with
-
- per-tile blame. It shows the last commit that changed each tile, and it can show a heatmap.
-
- a "Blame history depth" setting. It sets the maximum number of commits that blame reads.
-
- a Git panel with Status, Conflicts, Blame, and Diff tabs.
-
- map diffs. Compare the working map with HEAD, a commit, a branch, or a tag.
-
- a restore action for diffs. It copies changed tiles from an earlier version into the working map.
-
- tile tooltips now show the changed objects and variables for conflicts and diffs.
- Added a Search panel. It finds all instances of a type, with options for subtypes and for the selected area only.
- You can go to, replace, or delete each search result, or all results at once.
- Added an inspector option to edit all identical instances of an object on the map.
- Added a variable filter and a "Modified only" option to the inspector.
- Added variable pinning to the inspector. Pinned variables show at the top for all objects.
- Added a Replace tool. Click an atom to replace it with the selected brush.
- Added an alternate tool action. Hold its keybind to make an object brush replace the objects on a tile, or to make a Delete drag remove all visible atoms.
- Added Cut and Delete for block selections.
- Added a Resize map dialog.
- Resize map and new Z levels now use the turf and area that you select, not the defaults.
- Added a Go to dialog. It moves the camera to a coordinate.
- Added New map, Recent maps, Save all, Close map, and Close all to the File menu.
- Added Copy, Cut, Paste, Delete, Deselect, Search, Go to, and Resize map to the Edit menu.
- Added keybinds to show or hide the area, turf, object, and mob layers, and to show all layers.
- Added screenshots of the full map or the selection. Save them as PNG files or copy them to the clipboard.
- Added a "Sanitize variables" option. When you save, the editor removes variables that are equal to the type default.
- The editor now merges identical dictionary entries when it opens a map.
- Added automatic map backups. The editor makes a backup when you open a map, and it deletes backups that are older than three days.
- Added a check for new releases at startup. Turn it off in General settings.
- Added keyboard camera controls. Arrow keys pan, Shift makes panning faster, Space with a drag pans, and = and - zoom.
- Held keybinds can now use a single modifier key, for example Shift.
- Added "Find on map" and "Copy type path" to the object tree context menu.
- Added "Mirror camera". It keeps pan, zoom, and Z level the same in all map views.
- Added Window > Reset layout.
- Updated stddef.dm for BYOND 516.1688.
Fixes
- Fixed new dictionary keys that made the key length longer when shorter keys were free.
- Fixed map saves that wrote dictionary keys past the BYOND limit.
- Fixed copy, cut, delete, and paste changing types that are hidden in the viewport.
- Fixed a middle click outside the map context menu. The menu now closes and the map pans.
- Fixed the welcome panel, which accepted input while a codebase loaded.
- Fixed the "Find similar..." button, which moved to a different line than the tile information.
- Fixed the tile grid of an inactive map view, which used the size of the active map.
v1.7.0
New features
- Added a DM compiler and bounded VM that run codebase profile hooks to preview maps without changing the map file.
- Profiles can bake atom appearances, including icon states, overlays, underlays, and lighting data. The editor and viewer display the results.
- Map edits, undo, and redo now rebake affected areas. Safe appearance previews are cached to reduce repeated work.
- Added profile selection in Compiler settings. Changing profiles rebakes open maps while preserving unsaved edits.
- Bundled profiles for CMSS13, Goonstation, Monkestation, tgstation, and Vanderlin, with an option to force a bundled profile.
- Profiles can define connection guides and map highlights for selected or hovered atoms, including Z-level labels on cross-level guides.
- Added profile-driven ImGui panels, selection popups, and controls that request targeted rebakes.
- Added a Node tool for connecting and routing profile-defined networks around blockers. A completed drag is one undoable edit.
- Profiles can register icon directions and connection openings so routed node segments orient automatically.
- Added a map context menu with clipboard actions, atom selection and replacement, layer ordering, selection mirroring, and node deletion.
- Added profile-driven lighting with point and cone sources, ambient light, blockers, emissive overlays, moving sources, and multiple Z levels.
- Added a lighting toggle and a minimum brightness slider for reducing darkness in the editor viewport.
- Added
rmdccommands to inspect IR and bytecode, execute a DM entry point, and bake a map from the command line. - Added source locations and grouped fault counts to compiler and bake diagnostics.
- Reduced compilation and bake work with reachable-procedure code generation, IR optimizations, and cached preview results.
Fixes
- Fixed connection guides lagging behind map edits.
- Fixed transform gizmos acting on a selected sprite from another Z level.
- Fixed offset light fixtures failing to illuminate tiles within their range.
- Fixed emissive overlays and appearance flags being applied incorrectly to baked lighting.
- Fixed visibility-buffer layering during sprite rendering.
- Fixed tgstation preview handling for multi-Z pipes and glass airlock overlays.
- Fixed focus-on-hover pulling focus away from open popups.
- Fixed map context-menu actions while the Node tool is active.
- Added a visible checkerboard placeholder for missing icons.
- Fixed trailing commas in DM
list()calls creating an unintended empty entry.
v1.7.0-preview1
add postlude injection
v1.6.0
New features
- Reworked the select tool: selections can now be resized by dragging edge/corner handles, and bucket fill now respects the active selection for full or hollow (border) regions.
- Added a tile grid overlay and a pixel grid for the selected tile, each with a configurable minimum zoom before auto-hiding and an optional axis-color highlight.
- Added keybinds for toggling the tile grid (G) and pixel grid (Shift+G).
- Added a "Focus windows on hover" option to focus editor windows when hovered.
Fixes
- Fixed a regression that dropped underlay outline (sprite edge) rendering.
- Fixed #if 0 (and other inactive preprocessor branches) leaking lexer errors from code inside the dead branch.
- Fixed DM string literals not decoding escape sequences (\n, \t, \r, \, ", ', [, ]).
- Fixed unbounded memory growth from interned symbols never being freed.
- Hardened the parser and object tree against panics: the parser now rejects a file once its expression limit is hit instead of overflowing, and a parent_type cycle is now rejected instead of corrupting the tree.
v1.5.0
New Features
- Added a dedicated Settings window with configurable viewport, object tree, general, and keybinding options.
- Added keybindings for recent palette entries.
- Added StrongDMM-compatible keybinding presets.
- Added support for creating additional Z levels in maps.
- Added GPU sprite culling with indirect drawing for improved rendering performance.
Fixes
- Fixed
Rbeing unavailable for keybinding assignments.
v1.4.0
New features
- Selecting an instance on the map now reveals and scrolls to it in the object tree.
- Object tree can now draw line indicators connecting parent and child entries, toggleable in settings.
- Added a confirmation prompt when closing the editor with unsaved changes, matching the existing prompt for closing a map.
- Added a dedicated Save keybind (Ctrl+S by default).
Fixes
- Undo and redo keybinds now repeat while held instead of requiring a fresh press each time.
- Rendering now always presents with vsync (FIFO) instead of preferring mailbox, avoiding tearing and unnecessary GPU usage.
- Fixed the object tree search bar shifting position instead of staying pinned above the list while scrolling.
v1.3.0
New features
- Open in editor: jump straight from a prefab instance to its definition in your preferred code editor, with a configurable command template.
- Undo/redo support in the UI, with correct tracking of the saved state across merged edits.
- Jump to similar instances: find and jump to every other instance of the same prefab on the map.
Fixes
- Fixed the selection/offset guide being projected incorrectly when the viewport was scaled or resized.
v1.2.0
New features
- Multiple map views: open and work with several maps side by side in independent, dockable views.
- Object tree filtering by base type (atom/movable/obj/turf) or a custom type path.
- Object tree search can now match atom/object names in addition to type paths, with a toggle for each mode.
- Object tree list now uses a virtualized list clipper, keeping large object trees responsive.
Fixes
- Fixed the settings window opening at an inconsistent/off-center position.