Skip to content

Releases: exdal/rmd

v1.8.2

Choose a tag to compare

@exdal exdal released this 28 Sep 16:05

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, and vis_contents in the bake runtime. null now empties the list, and a list value is copied, not shared.
  • Fixed overlays with a layer below FLOAT_LAYER, for example FLOAT_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

Choose a tag to compare

@exdal exdal released this 27 Sep 19:10

New features

  • Added a bundled SecondCity/Crimson Grid profile.
  • Map previews now show the transform of atoms and overlays. Sprites turn and scale about their center, and an overlay uses its parent's transform unless it sets RESET_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() for type and parent_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

Choose a tag to compare

@exdal exdal released this 25 Sep 13:52

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.
    • 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

Choose a tag to compare

@exdal exdal released this 23 Sep 12:48

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 rmdc commands 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

v1.7.0-preview1 Pre-release
Pre-release

Choose a tag to compare

@exdal exdal released this 20 Sep 14:25
add postlude injection

v1.6.0

Choose a tag to compare

@exdal exdal released this 19 Sep 12:40

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

Choose a tag to compare

@exdal exdal released this 13 Sep 17:01

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 R being unavailable for keybinding assignments.

v1.4.0

Choose a tag to compare

@exdal exdal released this 12 Sep 22:24

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

Choose a tag to compare

@exdal exdal released this 12 Sep 19:32

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

Choose a tag to compare

@exdal exdal released this 12 Sep 12:55

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.