Skip to content

Tomb Engine: Electrical Field and Fusebox#1132

Draft
Stranger1992 wants to merge 4 commits intodevelopfrom
Stranger1992-Electrical-Field-Fusebox
Draft

Tomb Engine: Electrical Field and Fusebox#1132
Stranger1992 wants to merge 4 commits intodevelopfrom
Stranger1992-Electrical-Field-Fusebox

Conversation

@Stranger1992
Copy link
Copy Markdown
Member

Companion PR to:

  • Only merge when the above has been on the Tomb Engine side.

  • Adds the ELECTRICAL_FIELD and FUSEBOX from Tomb Raider III to Tomb Engine

  • Adds appropriate slot conversions

  • Adds automatic heavy trigger assignment for Tomb Engine and TR3 Targets. As shown below, this object required a HEAVY trigger in Tomb Raider III and the behaviour has been replicated for Tomb Engine:

image

commit 0bf2418
Merge: c78081f 518ba87
Author: Kewin Kupilas <k.kupilas@outlook.com>
Date:   Wed Mar 25 20:09:00 2026 +0000

    Merge pull request #1166 from TombEngine/Nickelony/FxCompile-Improvements

    Improved HLSL shader compiler calls - should now build from CLI

commit 518ba87
Author: Kewin Kupilas <k.kupilas@outlook.com>
Date:   Wed Mar 25 19:55:56 2026 +0000

    Cleanups

commit 28d2953
Author: Kewin Kupilas <k.kupilas@outlook.com>
Date:   Wed Mar 25 19:47:19 2026 +0000

    Apply Copilot suggestions

commit de53656
Author: Kewin Kupilas <k.kupilas@outlook.com>
Date:   Wed Mar 25 19:33:16 2026 +0000

    Improved HLSL shader compiler calls - should now build from CLI

commit c78081f
Merge: 222cf00 5c70d40
Author: Kewin Kupilas <k.kupilas@outlook.com>
Date:   Sun Mar 22 13:56:46 2026 +0000

    Merge pull request #1163 from TombEngine/copilot/fix-texture-corruption-issue

    Revert MaxDirectImageArea to fix texture corruption in large levels

commit 5c70d40
Author: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Date:   Sun Mar 22 13:37:42 2026 +0000

    Fix texture corruption in larger levels by reverting MaxDirectImageArea to 256 * 256

    Co-authored-by: Nickelony <20436882+Nickelony@users.noreply.github.com>
    Agent-Logs-Url: https://github.com/TombEngine/Tomb-Editor/sessions/1f0d12e3-e5ca-43c6-bf5a-854cb3e886ad

commit 9a6da27
Author: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Date:   Sun Mar 22 13:16:32 2026 +0000

    Initial plan

commit 222cf00
Merge: a000b62 3c290e7
Author: Kewin Kupilas <k.kupilas@outlook.com>
Date:   Mon Mar 16 20:58:33 2026 +0000

    Merge pull request #1063 from TombEngine/Nickelony/Conditional-Relight

    Conditional Relight

commit 3c290e7
Author: Kewin Kupilas <k.kupilas@outlook.com>
Date:   Mon Mar 16 20:56:14 2026 +0000

    Make lighting quality param optional

    Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

commit 0ab947e
Author: Kewin Kupilas <k.kupilas@outlook.com>
Date:   Mon Mar 16 20:35:43 2026 +0000

    Apply Copilot suggestions

commit 5898f9e
Author: Kewin Kupilas <k.kupilas@outlook.com>
Date:   Mon Mar 16 20:21:59 2026 +0000

    Restore deltas

commit fe06f68
Merge: 0106a03 a000b62
Author: Kewin Kupilas <k.kupilas@outlook.com>
Date:   Mon Mar 16 20:20:09 2026 +0000

    Merge remote-tracking branch 'origin/develop' into Nickelony/Conditional-Relight

    # Conflicts:
    #	TombLib/TombLib/LevelData/RoomGeometry.cs

commit a000b62
Merge: f28d67e 214982f
Author: Kewin Kupilas <k.kupilas@outlook.com>
Date:   Mon Mar 16 20:17:14 2026 +0000

    Merge pull request #1138 from TombEngine/Nickelony/RoomGeometry-Refactor

    Refactored `RoomGeometry.cs`

commit 214982f
Author: Kewin Kupilas <k.kupilas@outlook.com>
Date:   Mon Mar 16 20:07:28 2026 +0000

    Implement divide by 0 protections

commit f28d67e
Merge: a93b1da d6a4991
Author: Kewin Kupilas <k.kupilas@outlook.com>
Date:   Sun Mar 15 22:14:06 2026 +0000

    Merge pull request #1126 from TombEngine/Nickelony/Texture-Size-Limit-Lift

    Lift texture size limit for TEN and warn for other engines

commit a93b1da
Merge: 9b4fe26 48cd008
Author: Lwmte <3331699+Lwmte@users.noreply.github.com>
Date:   Sun Mar 15 14:06:12 2026 +0200

    Merge pull request #1128 from TombEngine/Nickelony/Content-Browser

    Content Browser + Object Placement toolset

commit 48cd008
Author: Lwmte <3331699+Lwmte@users.noreply.github.com>
Date:   Sun Mar 15 13:03:05 2026 +0100

    Remove extra splitter

commit a6bc882
Author: Lwmte <3331699+Lwmte@users.noreply.github.com>
Date:   Sun Mar 15 12:52:02 2026 +0100

    Address Copilot comments

commit 9b4fe26
Author: Lwmte <3331699+Lwmte@users.noreply.github.com>
Date:   Sat Mar 14 23:25:04 2026 +0100

    Update API.xml

commit d678101
Author: davidmarr <116632612+davidmarr@users.noreply.github.com>
Date:   Sat Mar 14 22:48:14 2026 +0100

    Update timer argument ranges and debug logs (#1135)

    * Update timer argument ranges and debug logs

    Adjust timer node numerical argument metadata (change numeric field from 1 to 2 and increase upper bound to 65535 in relevant nodes) to allow larger/updated value ranges. Remove ticking checks so GetRemainingTime and GetTotalTime always log when the timer exists. Simplify debug logging in IfRemainingTimeIs by removing operator-specific tick gating and normalize float formatting for log output.

    * Clarify timer duration argument descriptions

    Updated timer argument descriptions to clarify that durations can be rounded to the nearest game frame (1/30 of a second).

    * Increase timer max duration to 65535

    Update numeric argument metadata in Timers.lua to allow timer durations up to 65535 seconds (previously 1000). The change updates the argument range for the simple countdown, LevelFuncs callback, volume event, and global event timer nodes in TombLib/TombLib/Catalogs/TEN Node Catalogs/Timers.lua to reflect the expanded maximum duration.

    * Increase timer arg max from 1000 to 65535

    Update the argument metadata in Timers.lua for Timer node conditions: change the Numerical argument upper bound from 1000 to 65535 for both "Remaining time" and "Total Time" (in seconds). This is a comment/metadata change only; no runtime logic was modified. Values are still rounded internally to the nearest game frame (1/30s).

    * Increase timer max from 65535 to 86400

    Update timer argument metadata in TombLib/TombLib/Catalogs/TEN Node Catalogs/Timers.lua to allow durations up to 86400 seconds (24 hours) instead of 65535. The numerical range for various timer-related nodes and checks (simple countdown, LevelFuncs callback, volume/global event timers, SetRemainingTime, SetTotalTime, IfRemainingTimeIs, IfTotalTimeIs) was adjusted in the annotation/comments so the editor/UI will accept longer timer values. No runtime logic was changed; only the argument metadata was updated.

    * Update timer argument comments to Centiseconds

    Replace incorrect "Deciseconds" label with "Centiseconds" in TEN Node Catalogs/Timers.lua (four occurrences). This clarifies the timer argument unit and normalizes comment syntax for consistency.

    * Add newline at end of Timers.lua

    Add a missing newline at the end of TombLib/TombLib/Catalogs/TEN Node Catalogs/Timers.lua. This is a non-functional change to satisfy POSIX/editor expectations and avoid spurious diff warnings.

    * Update timer argument precision to 0.03

    Adjust timer argument documentation in TEN Node Catalogs/Timers.lua to use 0.03 (≈1/30s) as the finer timer increment instead of 0.1. The Numerical argument allowed values were updated for several Timer nodes (simple countdown, LevelFuncs callback, volume event, global event, IfRemainingTimeIs, IfTotalTimeIs) to reflect rounding to the nearest game frame (1/30 of a second). These are comment/meta changes describing argument precision; no runtime logic was modified.

    * Init nodeTimers and simplify timer color

    Ensure LevelVars.nodeTimers[name] is initialized before reading .debug in multiple timer functions (StartTimer, StopTimer, SetPausedTimer, SetRemainingTime, SetTotalTime, SetLooping, IfRemainingTimeIs, IfTotalTimeIs) to avoid nil indexing errors and enable per-timer debug logging. Also simplify SetTimerColor and SetTimerPauseColor by setting the alpha on the provided color table (color.a = 255 * tColor / paused) and passing it directly to SetUnpausedColor/SetPausedColor instead of constructing a new TEN.Color.

    * Refactor timer init and update doc ranges

    Refactor timer handling in TEN Node Timers: introduce a local SetTimer function (replacing in-file LevelFuncs.Engine.Node.SetTimer usage) and add a CreateStruct helper to centralize/ensure LevelVars.nodeTimers[name] initialization. Replace many repetitive nil-checks with CreateStruct calls. Also update several node argument comment ranges for timer durations/precision (e.g. max reduced from 86400 to 1000 and rounding/precision values adjusted). Minor comment formatting tweaks included.

    * Shorten tooltips and descriptions

    * Use direct SetTimer call in CreateTimerWithGEventSet

    Replace the fully-qualified LevelFuncs.Engine.Node.SetTimer call with a direct SetTimer invocation in CreateTimerWithGEventSet. This aligns the call with the intended local/global SetTimer function and ensures consistent resolution without changing timer creation logic.

    * Fix typos

    ---------

    Co-authored-by: Lwmte <3331699+Lwmte@users.noreply.github.com>

commit 968b789
Author: Lwmte <3331699+Lwmte@users.noreply.github.com>
Date:   Sat Mar 14 22:44:27 2026 +0100

    Update TEN.zip

commit f20edf2
Merge: a9b8b1e e9f483d
Author: Kewin Kupilas <k.kupilas@outlook.com>
Date:   Sat Mar 14 16:31:51 2026 +0000

    Merge pull request #1153 from lahm86/fix-tr3-monkeyswing-pathing

    Restrict monkeyswing overlap flag to TR4+

commit e9f483d
Author: lahm86 <33758420+lahm86@users.noreply.github.com>
Date:   Sat Mar 14 16:25:46 2026 +0000

    Restrict monkeyswing overlap flag to TR4+

    This avoids adding the monkeyswing pathfinding flag to TR3 overlaps, as no
    enemies there use the mechanism. It avoids engine crashes as the overlap indices
    are interpreted directly in box lookups.

commit a9b8b1e
Author: Lwmte <3331699+Lwmte@users.noreply.github.com>
Date:   Sat Mar 14 13:35:17 2026 +0100

    Fixed crawl climbout sound in the TEN base wad

commit b0b9b42
Author: Lwmte <3331699+Lwmte@users.noreply.github.com>
Date:   Sat Mar 14 12:52:58 2026 +0100

    Update TEN preset and API.xml

commit 3c5af2b
Author: Lwmte <3331699+Lwmte@users.noreply.github.com>
Date:   Thu Mar 12 07:00:43 2026 +0100

    Disable lighting in object placement mode

commit 164ef37
Author: Lwmte <3331699+Lwmte@users.noreply.github.com>
Date:   Thu Mar 12 06:29:35 2026 +0100

    Fixed crash with opening a project with imported geometry present

commit 34ea870
Merge: f02e350 1232d5b
Author: Lwmte <3331699+Lwmte@users.noreply.github.com>
Date:   Thu Mar 12 00:41:23 2026 +0100

    Merge branch 'develop' into Nickelony/Content-Browser

commit 1232d5b
Author: Lwmte <3331699+Lwmte@users.noreply.github.com>
Date:   Tue Mar 10 01:09:52 2026 +0100

    Fixed occasional race condition with matrix recalculation for disposing objects

commit 7ca848b
Merge: 90d37a9 7fa24f2
Author: Kewin Kupilas <k.kupilas@outlook.com>
Date:   Wed Mar 11 20:26:03 2026 +0000

    Merge pull request #1151 from lahm86/trx-131

    Add TRX monkeyswing support and update presets

commit 7fa24f2
Author: lahm86 <33758420+lahm86@users.noreply.github.com>
Date:   Fri Mar 6 21:53:16 2026 +0000

    Update TRX presets

    This updates the TRX presets to 1.3.1.

commit c8a3b6d
Author: lahm86 <33758420+lahm86@users.noreply.github.com>
Date:   Mon Feb 23 21:13:38 2026 +0000

    Add TRX monkeyswing support

    This adds support for monkeyswing sectors in TRX levels.

commit f02e350
Author: Lwmte <3331699+Lwmte@users.noreply.github.com>
Date:   Tue Mar 10 21:00:44 2026 +0100

    Fix mousewheel param combo

commit 0ced678
Author: Lwmte <3331699+Lwmte@users.noreply.github.com>
Date:   Tue Mar 10 20:25:10 2026 +0100

    Fixed brush getting stuck when pushing Ctrl while moving the mouse

commit 1306fa0
Author: Lwmte <3331699+Lwmte@users.noreply.github.com>
Date:   Tue Mar 10 20:22:36 2026 +0100

    Fixed mouse sensitivity issues and swap Ctrl/Shift modifiers

commit 7950ed9
Author: Lwmte <3331699+Lwmte@users.noreply.github.com>
Date:   Tue Mar 10 20:15:49 2026 +0100

    Fixed disabled rotation controls in fill mode, fixed renderer state setting

commit 90a0189
Author: Lwmte <3331699+Lwmte@users.noreply.github.com>
Date:   Tue Mar 10 20:03:27 2026 +0100

    Remove favorites filter hiding as it's very slow

commit 6412d37
Author: Kewin Kupilas <k.kupilas@outlook.com>
Date:   Tue Mar 10 08:48:19 2026 +0000

    Simplify view model favourites removal logic + Fix combobox data bug

commit 0743571
Author: Lwmte <3331699+Lwmte@users.noreply.github.com>
Date:   Tue Mar 10 09:10:19 2026 +0100

    Render thumbnails only in view, hide favorites entry if no favorites are selected

commit 9b93e1c
Author: Lwmte <3331699+Lwmte@users.noreply.github.com>
Date:   Tue Mar 10 08:53:53 2026 +0100

    Add favorites

commit 2b29b13
Author: Lwmte <3331699+Lwmte@users.noreply.github.com>
Date:   Tue Mar 10 08:28:59 2026 +0100

    Fixed view model for brush toolbox

commit f59fda4
Author: Lwmte <3331699+Lwmte@users.noreply.github.com>
Date:   Tue Mar 10 08:23:12 2026 +0100

    Fixed localization

commit d062424
Author: Lwmte <3331699+Lwmte@users.noreply.github.com>
Date:   Tue Mar 10 08:17:20 2026 +0100

    Added original selection tool to object placement mode

commit b7e5acd
Author: Lwmte <3331699+Lwmte@users.noreply.github.com>
Date:   Tue Mar 10 07:56:11 2026 +0100

    Add object selection icon

commit c2b5ab0
Author: Lwmte <3331699+Lwmte@users.noreply.github.com>
Date:   Tue Mar 10 07:27:42 2026 +0100

    Introduce extents tolerance to avoid sinking objects into room geometry

commit 3570d9c
Author: Lwmte <3331699+Lwmte@users.noreply.github.com>
Date:   Tue Mar 10 07:04:30 2026 +0100

    Allow bogus deselection in ContentBrowser again

commit 8a1f9f0
Author: Lwmte <3331699+Lwmte@users.noreply.github.com>
Date:   Tue Mar 10 02:34:26 2026 +0100

    Simplify object selection logic

commit 007911f
Author: Lwmte <3331699+Lwmte@users.noreply.github.com>
Date:   Tue Mar 10 00:35:00 2026 +0100

    Fixes for imported geometry brush placement

commit 61545fb
Author: Lwmte <3331699+Lwmte@users.noreply.github.com>
Date:   Mon Mar 9 09:10:31 2026 +0100

    Added align to grid option to a pencil tool

commit e0fb718
Author: Lwmte <3331699+Lwmte@users.noreply.github.com>
Date:   Mon Mar 9 08:58:29 2026 +0100

    UI consistency fixes

commit c990e3f
Merge: 6425eda 90d37a9
Author: Lwmte <3331699+Lwmte@users.noreply.github.com>
Date:   Mon Mar 9 08:35:20 2026 +0100

    Merge branch 'develop' into Nickelony/Content-Browser

commit 90d37a9
Author: Lwmte <3331699+Lwmte@users.noreply.github.com>
Date:   Mon Mar 9 08:23:05 2026 +0100

    Update AGENTS.md

commit 6425eda
Author: Lwmte <3331699+Lwmte@users.noreply.github.com>
Date:   Mon Mar 9 01:25:03 2026 +0100

    Display density for fill tool, draw correct rotation indicator for square brush

commit 259fdb6
Author: Lwmte <3331699+Lwmte@users.noreply.github.com>
Date:   Mon Mar 9 00:28:13 2026 +0100

    Update only necessary thumbnails when loading or shuffling wads

commit a477683
Author: Lwmte <3331699+Lwmte@users.noreply.github.com>
Date:   Mon Mar 9 00:17:24 2026 +0100

    Disable alignment to grid for any other tools but line

commit bb2265c
Author: Kewin Kupilas <k.kupilas@outlook.com>
Date:   Sun Mar 8 21:49:38 2026 +0000

    More fixes

commit d52c6bd
Author: Kewin Kupilas <k.kupilas@outlook.com>
Date:   Sun Mar 8 21:30:47 2026 +0000

    ToolBar fixes

commit 326aeb0
Author: Lwmte <3331699+Lwmte@users.noreply.github.com>
Date:   Sun Mar 8 21:38:36 2026 +0100

    Fixed align to grid, rename Flip to Orthogonal

commit 9364f94
Author: Kewin Kupilas <k.kupilas@outlook.com>
Date:   Sun Mar 8 20:26:28 2026 +0000

    Standardise sizes

commit c63d859
Author: Kewin Kupilas <k.kupilas@outlook.com>
Date:   Sun Mar 8 17:10:10 2026 +0000

    Tabify

commit fa493c3
Author: Kewin Kupilas <k.kupilas@outlook.com>
Date:   Sun Mar 8 17:08:14 2026 +0000

    Remove unnecessary props

commit bdd5a53
Author: Kewin Kupilas <k.kupilas@outlook.com>
Date:   Sun Mar 8 17:05:07 2026 +0000

    Rework ObjectBrushToolbox XAML and fix broken Designer

commit c784273
Author: Lwmte <3331699+Lwmte@users.noreply.github.com>
Date:   Sun Mar 8 17:02:54 2026 +0100

    Added align to grid option

commit b0ce108
Author: Lwmte <3331699+Lwmte@users.noreply.github.com>
Date:   Sun Mar 8 16:35:42 2026 +0100

    Add double-click on empty content area to load wad

commit 4070f23
Author: Lwmte <3331699+Lwmte@users.noreply.github.com>
Date:   Sun Mar 8 15:42:43 2026 +0100

    UX

commit 9fba182
Author: Lwmte <3331699+Lwmte@users.noreply.github.com>
Date:   Sun Mar 8 15:09:48 2026 +0100

    Refactors

commit 626251e
Author: Lwmte <3331699+Lwmte@users.noreply.github.com>
Date:   Sun Mar 8 12:10:29 2026 +0100

    Added deadzone, slight cleanups

commit 0d3b558
Author: Lwmte <3331699+Lwmte@users.noreply.github.com>
Date:   Sun Mar 8 11:16:06 2026 +0100

    Change parameter settings on mouse hover

commit 66ac9d6
Author: Lwmte <3331699+Lwmte@users.noreply.github.com>
Date:   Sun Mar 8 10:37:48 2026 +0100

    Rewrite brush logic

commit ea7c156
Merge: 72d03a0 a8d8039
Author: Kewin Kupilas <k.kupilas@outlook.com>
Date:   Sat Mar 7 20:18:27 2026 +0000

    Merge pull request #1147 from TombEngine/Nickelony/CB-Refactor

    Content Browser branch refactor

commit a8d8039
Author: Kewin Kupilas <k.kupilas@outlook.com>
Date:   Sat Mar 7 20:17:48 2026 +0000

    Apply Copilot suggestions

commit 7111939
Author: Kewin Kupilas <k.kupilas@outlook.com>
Date:   Sat Mar 7 20:09:59 2026 +0000

    Final cleanups

commit ef7cc65
Author: Kewin Kupilas <k.kupilas@outlook.com>
Date:   Sat Mar 7 19:29:26 2026 +0000

    Apply Copilot suggestions

commit cf57f2e
Author: Kewin Kupilas <k.kupilas@outlook.com>
Date:   Sat Mar 7 18:25:45 2026 +0000

    More cleanups

commit 077e425
Author: Kewin Kupilas <k.kupilas@outlook.com>
Date:   Sat Mar 7 18:13:32 2026 +0000

    Cleanups

commit a7568e4
Author: Kewin Kupilas <k.kupilas@outlook.com>
Date:   Sat Mar 7 17:42:39 2026 +0000

    More fixes

commit 9fdf2f4
Author: Kewin Kupilas <k.kupilas@outlook.com>
Date:   Sat Mar 7 17:07:57 2026 +0000

    Additional fixes

commit 102b2e3
Author: Kewin Kupilas <k.kupilas@outlook.com>
Date:   Sat Mar 7 16:41:25 2026 +0000

    Progress report

commit 72d03a0
Author: Kewin Kupilas <k.kupilas@outlook.com>
Date:   Sat Mar 7 13:52:00 2026 +0000

    Fix startup error

commit e831e6e
Author: Kewin Kupilas <k.kupilas@outlook.com>
Date:   Sat Mar 7 13:28:35 2026 +0000

    Reformat ObjectBrushToolboxView

commit 54b4f42
Author: Kewin Kupilas <k.kupilas@outlook.com>
Date:   Sat Mar 7 13:20:20 2026 +0000

    Reformat ToolBoxView

commit 07f5a3d
Author: Kewin Kupilas <k.kupilas@outlook.com>
Date:   Sat Mar 7 13:10:29 2026 +0000

    Refactors #1

commit da66adf
Merge: 45efb4a 56fe37b
Author: Lwmte <3331699+Lwmte@users.noreply.github.com>
Date:   Sat Mar 7 14:00:43 2026 +0100

    Merge branch 'develop' into Nickelony/Content-Browser

commit 56fe37b
Author: Lwmte <3331699+Lwmte@users.noreply.github.com>
Date:   Sat Mar 7 13:56:45 2026 +0100

    Disable room deletion in 3D mode if no objects are selected

commit 45efb4a
Author: Lwmte <3331699+Lwmte@users.noreply.github.com>
Date:   Sat Mar 7 13:54:29 2026 +0100

    Cleanups, changes to brush selection/deselection workflow

commit e6bfb2f
Author: Lwmte <3331699+Lwmte@users.noreply.github.com>
Date:   Sat Mar 7 12:32:57 2026 +0100

    Update EditorActions.cs

commit 2cf1206
Author: Lwmte <3331699+Lwmte@users.noreply.github.com>
Date:   Sat Mar 7 11:34:04 2026 +0100

    Use bounding box intersection test for eraser, cleanup picking code

commit 09d118d
Author: Lwmte <3331699+Lwmte@users.noreply.github.com>
Date:   Sat Mar 7 10:39:04 2026 +0100

    Fixed brush draw reset

commit 0ae38bc
Merge: 416ff6e 62397fa
Author: Lwmte <3331699+Lwmte@users.noreply.github.com>
Date:   Sat Mar 7 10:03:11 2026 +0100

    Merge branch 'Nickelony/Content-Browser' into object_brush

commit 62397fa
Author: Lwmte <3331699+Lwmte@users.noreply.github.com>
Date:   Sat Mar 7 09:49:18 2026 +0100

    Simplify ResetCamera

commit 9c56775
Author: Lwmte <3331699+Lwmte@users.noreply.github.com>
Date:   Sat Mar 7 09:26:06 2026 +0100

    Simplify thumbnail rendering code

commit 505072a
Author: Lwmte <3331699+Lwmte@users.noreply.github.com>
Date:   Sat Mar 7 05:40:45 2026 +0100

    Cherrypick input filter from the property system branch

commit d12d528
Author: Lwmte <3331699+Lwmte@users.noreply.github.com>
Date:   Sat Mar 7 05:35:22 2026 +0100

    Update AGENTS.md

commit 416ff6e
Author: Lwmte <3331699+Lwmte@users.noreply.github.com>
Date:   Sat Mar 7 05:10:08 2026 +0100

    Update Panel3DDraw.cs

commit 9b534a9
Merge: dc268c5 92188ad
Author: Lwmte <3331699+Lwmte@users.noreply.github.com>
Date:   Sat Mar 7 04:59:55 2026 +0100

    Merge branch 'Nickelony/Content-Browser' into object_brush

commit 92188ad
Author: Lwmte <3331699+Lwmte@users.noreply.github.com>
Date:   Sat Mar 7 04:59:36 2026 +0100

    Cleanup Editor.cs

commit 4fa7907
Merge: 6e01546 c4ceeb6
Author: Lwmte <3331699+Lwmte@users.noreply.github.com>
Date:   Sat Mar 7 04:49:04 2026 +0100

    Merge branch 'develop' into Nickelony/Content-Browser

commit c4ceeb6
Author: Lwmte <3331699+Lwmte@users.noreply.github.com>
Date:   Sat Mar 7 04:46:31 2026 +0100

    Update AGENTS.md

commit dc268c5
Author: Lwmte <3331699+Lwmte@users.noreply.github.com>
Date:   Sat Mar 7 04:23:34 2026 +0100

    Added brush highlight for objects

commit 48e7e79
Author: Lwmte <3331699+Lwmte@users.noreply.github.com>
Date:   Sat Mar 7 02:40:45 2026 +0100

    Smoothen direction follow, cleanups

commit a353e36
Author: Lwmte <3331699+Lwmte@users.noreply.github.com>
Date:   Fri Mar 6 23:47:26 2026 +0100

    Update AGENTS.md

commit 4d5eb8c
Author: Lwmte <3331699+Lwmte@users.noreply.github.com>
Date:   Fri Mar 6 09:37:57 2026 +0100

    Simplify code

commit 3edcf71
Author: Lwmte <3331699+Lwmte@users.noreply.github.com>
Date:   Fri Mar 6 09:22:32 2026 +0100

    Add mouse follow option

commit 30773cc
Author: Lwmte <3331699+Lwmte@users.noreply.github.com>
Date:   Fri Mar 6 08:49:29 2026 +0100

    Update brush on tool switch

commit 7c6c2af
Merge: c5b4993 6e01546
Author: Lwmte <3331699+Lwmte@users.noreply.github.com>
Date:   Fri Mar 6 08:42:04 2026 +0100

    Merge branch 'Nickelony/Content-Browser' into object_brush

commit 6e01546
Merge: 3806f85 16bce32
Author: Lwmte <3331699+Lwmte@users.noreply.github.com>
Date:   Fri Mar 6 08:41:36 2026 +0100

    Merge branch 'develop' into Nickelony/Content-Browser

commit 16bce32
Author: Lwmte <3331699+Lwmte@users.noreply.github.com>
Date:   Fri Mar 6 08:41:26 2026 +0100

    Update AGENTS.md

commit 3806f85
Author: Lwmte <3331699+Lwmte@users.noreply.github.com>
Date:   Fri Mar 6 08:40:20 2026 +0100

    Update ContentBrowserView.xaml.cs

commit 5b64e0e
Author: Lwmte <3331699+Lwmte@users.noreply.github.com>
Date:   Fri Mar 6 08:39:25 2026 +0100

    Cleanups

commit 32559e1
Author: Lwmte <3331699+Lwmte@users.noreply.github.com>
Date:   Fri Mar 6 08:14:52 2026 +0100

    Cleanups

commit c5b4993
Merge: 8bf4765 336ecd7
Author: Lwmte <3331699+Lwmte@users.noreply.github.com>
Date:   Fri Mar 6 07:17:32 2026 +0100

    Merge branch 'Nickelony/Content-Browser' into object_brush

commit 336ecd7
Author: Lwmte <3331699+Lwmte@users.noreply.github.com>
Date:   Fri Mar 6 07:17:22 2026 +0100

    Maintain legacy selection workflow

commit cc61b2d
Author: Lwmte <3331699+Lwmte@users.noreply.github.com>
Date:   Fri Mar 6 01:26:32 2026 +0100

    Fix multiselection

commit 82bfa36
Author: Lwmte <3331699+Lwmte@users.noreply.github.com>
Date:   Thu Mar 5 23:30:18 2026 +0100

    Add drag-n-drop

commit cfef865
Author: Lwmte <3331699+Lwmte@users.noreply.github.com>
Date:   Thu Mar 5 22:04:23 2026 +0100

    Create AGENTS.md

commit 8bf4765
Author: Lwmte <3331699+Lwmte@users.noreply.github.com>
Date:   Thu Mar 5 21:43:41 2026 +0100

    Fixed toolbox width, added object placement icon

commit 44fc585
Author: Kewin Kupilas <k.kupilas@outlook.com>
Date:   Thu Mar 5 20:41:42 2026 +0000

    Update Changes.txt

commit 5ff21cb
Author: Kewin Kupilas <k.kupilas@outlook.com>
Date:   Thu Mar 5 20:40:27 2026 +0000

    Update FLEP.zip

commit 3966255
Author: Lwmte <3331699+Lwmte@users.noreply.github.com>
Date:   Thu Mar 5 20:34:20 2026 +0100

    Fix UI

commit 0df79f4
Author: Lwmte <3331699+Lwmte@users.noreply.github.com>
Date:   Thu Mar 5 09:32:04 2026 +0100

    Update ObjectBrushHelper.cs

commit 8d1630f
Author: Lwmte <3331699+Lwmte@users.noreply.github.com>
Date:   Thu Mar 5 09:07:40 2026 +0100

    Fixed white light mode

commit 59947dd
Author: Lwmte <3331699+Lwmte@users.noreply.github.com>
Date:   Thu Mar 5 08:47:15 2026 +0100

    Move mouse handling code to a separate document

commit 6978fdb
Author: Lwmte <3331699+Lwmte@users.noreply.github.com>
Date:   Thu Mar 5 04:37:05 2026 +0100

    Split tools

commit 6fe5d1e
Author: Lwmte <3331699+Lwmte@users.noreply.github.com>
Date:   Thu Mar 5 03:08:53 2026 +0100

    Update RoomShaderPS.hlsl

commit 487c715
Author: Lwmte <3331699+Lwmte@users.noreply.github.com>
Date:   Thu Mar 5 02:29:42 2026 +0100

    Iteration 8

commit e9f5393
Author: Lwmte <3331699+Lwmte@users.noreply.github.com>
Date:   Thu Mar 5 01:19:39 2026 +0100

    Iteration 7

commit 5203de0
Author: Lwmte <3331699+Lwmte@users.noreply.github.com>
Date:   Wed Mar 4 23:31:26 2026 +0100

    Iteration 6

commit 57fbc12
Merge: 48da83e 67432c8
Author: Lwmte <3331699+Lwmte@users.noreply.github.com>
Date:   Wed Mar 4 21:21:33 2026 +0100

    Merge branch 'develop' into object_brush

commit 67432c8
Author: Lwmte <3331699+Lwmte@users.noreply.github.com>
Date:   Wed Mar 4 21:19:57 2026 +0100

    Create AGENTS.md

commit 48da83e
Author: Lwmte <3331699+Lwmte@users.noreply.github.com>
Date:   Wed Mar 4 00:53:24 2026 +0100

    Auto-anchor object brush toolbox

commit a148bf2
Merge: bfe23ba 0713674
Author: Lwmte <3331699+Lwmte@users.noreply.github.com>
Date:   Wed Mar 4 00:45:00 2026 +0100

    Merge branch 'Nickelony/Content-Browser' into object_brush

commit 0713674
Author: Lwmte <3331699+Lwmte@users.noreply.github.com>
Date:   Wed Mar 4 00:44:31 2026 +0100

    Add stub message

commit e8147a1
Merge: 8f2ff20 0e33749
Author: Lwmte <3331699+Lwmte@users.noreply.github.com>
Date:   Wed Mar 4 00:25:33 2026 +0100

    Merge branch 'develop' into Nickelony/Content-Browser

commit 0e33749
Author: Lwmte <3331699+Lwmte@users.noreply.github.com>
Date:   Wed Mar 4 00:24:43 2026 +0100

    Fixed occasional incorrect floating toolbox position

commit 8f2ff20
Author: Lwmte <3331699+Lwmte@users.noreply.github.com>
Date:   Tue Mar 3 23:46:19 2026 +0100

    Eyeball and deslop WadObjectRendererHelper

commit a700fa2
Author: davidmarr <116632612+davidmarr@users.noreply.github.com>
Date:   Tue Mar 3 23:45:34 2026 +0100

    Clarify console for printed error message

    Update TIDE/TEN/API.xml docs to specify that when the optional boolean is true, the error message will be printed in the console if parameters are invalid, improving clarity about where the feedback appears.

commit c4d84ba
Author: Lwmte <3331699+Lwmte@users.noreply.github.com>
Date:   Tue Mar 3 23:38:25 2026 +0100

    Eyeball and deslop ContentBrowser.cs

commit bfe23ba
Author: Lwmte <3331699+Lwmte@users.noreply.github.com>
Date:   Tue Mar 3 23:24:26 2026 +0100

    Eyeball and deslop

commit 719ff10
Author: Lwmte <3331699+Lwmte@users.noreply.github.com>
Date:   Tue Mar 3 20:56:26 2026 +0100

    Fix perfo issues

commit 831f452
Merge: e186f19 da18e5d
Author: Lwmte <3331699+Lwmte@users.noreply.github.com>
Date:   Tue Mar 3 09:15:31 2026 +0100

    Merge branch 'Nickelony/Content-Browser' into object_brush

commit da18e5d
Author: Lwmte <3331699+Lwmte@users.noreply.github.com>
Date:   Tue Mar 3 09:13:37 2026 +0100

    Use HideInternalObjects

commit e186f19
Author: Lwmte <3331699+Lwmte@users.noreply.github.com>
Date:   Tue Mar 3 04:45:13 2026 +0100

    Update RoomShaderPS.hlsl

commit 63d2d02
Author: Lwmte <3331699+Lwmte@users.noreply.github.com>
Date:   Tue Mar 3 04:29:08 2026 +0100

    First iteration

commit edc5615
Author: Lwmte <3331699+Lwmte@users.noreply.github.com>
Date:   Tue Mar 3 00:06:57 2026 +0100

    Update ContentBrowserViewModel.cs

commit 1f66ff4
Author: Lwmte <3331699+Lwmte@users.noreply.github.com>
Date:   Tue Mar 3 00:01:52 2026 +0100

    Address some PR notes

commit 39063f5
Author: Lwmte <3331699+Lwmte@users.noreply.github.com>
Date:   Mon Mar 2 23:21:41 2026 +0100

    Fix multiselection

commit 4adc311
Author: Lwmte <3331699+Lwmte@users.noreply.github.com>
Date:   Mon Mar 2 22:40:54 2026 +0100

    Update ContentBrowserViewModel.cs

commit 4e56038
Author: Lwmte <3331699+Lwmte@users.noreply.github.com>
Date:   Mon Mar 2 22:36:51 2026 +0100

    Iteration 5

commit d762fef
Author: Lwmte <3331699+Lwmte@users.noreply.github.com>
Date:   Mon Mar 2 09:12:42 2026 +0100

    Rollback test trcatalog

commit 1ff3df2
Author: Lwmte <3331699+Lwmte@users.noreply.github.com>
Date:   Mon Mar 2 09:11:33 2026 +0100

    Add categorization

commit 728ab43
Author: Lwmte <3331699+Lwmte@users.noreply.github.com>
Date:   Mon Mar 2 04:30:51 2026 +0100

    Iteration 4

commit b16c11d
Author: Lwmte <3331699+Lwmte@users.noreply.github.com>
Date:   Mon Mar 2 04:09:57 2026 +0100

    Use NaturalComparer

commit 58ed7eb
Author: Lwmte <3331699+Lwmte@users.noreply.github.com>
Date:   Mon Mar 2 03:56:07 2026 +0100

    Third iteration

commit 062429b
Author: Lwmte <3331699+Lwmte@users.noreply.github.com>
Date:   Mon Mar 2 02:57:05 2026 +0100

    Second iteration

commit 2dbd350
Author: Stranger1992 <84292688+Stranger1992@users.noreply.github.com>
Date:   Sun Mar 1 18:52:29 2026 +0000

    Address #1133 : Add TR1 human enemy speeches and special death sounds

    Updated sounds are included in the next update.

commit 29744e3
Merge: 492c82e 024430e
Author: Kewin Kupilas <k.kupilas@outlook.com>
Date:   Sun Mar 1 18:17:25 2026 +0000

    Merge pull request #1143 from TombEngine/Nickelony/Lua-Api-Gen-Fixes

    Improve Lua Api builder for optional fields and static methods

commit 024430e
Author: Kewin Kupilas <k.kupilas@outlook.com>
Date:   Sun Mar 1 18:05:09 2026 +0000

    Apply Copilot suggestion

commit 50b4093
Author: Kewin Kupilas <k.kupilas@outlook.com>
Date:   Sun Mar 1 17:42:20 2026 +0000

    Apply Copilot suggestion

commit 801bfc1
Author: Kewin Kupilas <k.kupilas@outlook.com>
Date:   Sun Mar 1 17:37:42 2026 +0000

    Update API.xml

commit 5682b8c
Author: Kewin Kupilas <k.kupilas@outlook.com>
Date:   Sun Mar 1 17:18:07 2026 +0000

    Improve Lua Api builder for optional fields and static methods

commit 492c82e
Author: davidmarr <116632612+davidmarr@users.noreply.github.com>
Date:   Sun Mar 1 00:06:11 2026 +0100

    Refine API.xml summaries and settings docs

    Clean up and clarify API documentation in TEN/API.xml: remove redundant type prefixes from <summary> fields and trim or consolidate duplicate <description> entries across many classes and fields; remove the obsolete DisplayItem.name parameter from the constructor definition; expand Flow.Settings documentation to explain sub-table structure, reference the settings.lua file and note per-level override behavior; update Weapons table summary/description to mention default values and point to settings.lua. These changes improve readability and point users to the canonical source for default values.

commit b42d121
Author: Lwmte <3331699+Lwmte@users.noreply.github.com>
Date:   Sat Feb 28 15:03:28 2026 +0100

    Change TEN flyby camera data type to allow more than 255 sequences

commit 50eb37a
Author: Lwmte <3331699+Lwmte@users.noreply.github.com>
Date:   Fri Feb 27 20:55:23 2026 +0100

    Fixed unresponsive wad tree control after switching focus from source to dest wad

commit 496618b
Author: Lwmte <3331699+Lwmte@users.noreply.github.com>
Date:   Thu Feb 26 22:15:47 2026 +0100

    Fixed #1140

commit 3bad1ea
Author: Kewin Kupilas <k.kupilas@outlook.com>
Date:   Mon Feb 23 18:40:30 2026 +0000

    More refactors

commit 8262255
Author: Lwmte <3331699+Lwmte@users.noreply.github.com>
Date:   Mon Feb 23 09:33:33 2026 +0300

    Added a TEN node to clear all input keys

commit 374c603
Merge: 4efad4d 3831049
Author: Kewin Kupilas <k.kupilas@outlook.com>
Date:   Sat Feb 21 09:59:09 2026 +0000

    Merge pull request #1139 from TombEngine/copilot/sub-pr-1138

    Fix Point Light intensity truncation and redundant distance conditions in RoomGeometry refactor

commit 3831049
Author: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Date:   Sat Feb 21 09:56:03 2026 +0000

    Fix Point Light integer truncation and remove redundant distance checks

    Co-authored-by: Nickelony <20436882+Nickelony@users.noreply.github.com>

commit 219996b
Author: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Date:   Sat Feb 21 09:52:02 2026 +0000

    Initial plan

commit 4efad4d
Author: Kewin Kupilas <k.kupilas@outlook.com>
Date:   Fri Feb 20 22:08:37 2026 +0000

    Remove unused code

commit b1a2c38
Author: Kewin Kupilas <k.kupilas@outlook.com>
Date:   Fri Feb 20 21:59:44 2026 +0000

    Refactored `RoomGeometry.cs`

commit 481c8a3
Author: Lwmte <3331699+Lwmte@users.noreply.github.com>
Date:   Fri Feb 20 19:56:35 2026 +0300

    Don't try to build overlaps if there's no boxes

commit 7869088
Author: Lwmte <3331699+Lwmte@users.noreply.github.com>
Date:   Thu Feb 19 12:22:34 2026 +0200

    TEN: Support for levels bigger than 2 gbytes (#1136)

    * Allow level size to go beyond 2 GB; Changed DDS texture compressor;

    * Fixed to compression with large data streams

    * Use chunked LZ4

    * Use 64-bit block sizes in level format

    * Update Hash.cs

    ---------

    Co-authored-by: MontyTRC89 <montyhammet@hotmail.it>

commit 3611482
Author: davidmarr <116632612+davidmarr@users.noreply.github.com>
Date:   Wed Feb 18 13:27:19 2026 +0100

    Add GetGlobalGameTime and fix inventory wording

    Add a new Flow.GetGlobalGameTime entry to API.xml to expose the global game session time (Time since game launch). Also correct three parameter descriptions in the file by replacing "preset in the inventory" with "present in the inventory" for clarity. Changes made in TombIDE/TombIDE.Shared/TIDE/TEN/API.xml.

commit f035764
Merge: 6703543 ce57572
Author: Kewin Kupilas <k.kupilas@outlook.com>
Date:   Tue Feb 17 21:59:25 2026 +0000

    Merge pull request #1134 from lahm86/fix-tr2x-8bit

    Fix TR2X 8-bit textures

commit ce57572
Author: lahm86 <33758420+lahm86@users.noreply.github.com>
Date:   Tue Feb 17 13:11:00 2026 +0000

    Fix TR2X 8-bit textures

    This resolves incorrect colours being used if 8-bit textures are selected for
    TR2X. A dummy colour is needed for index 0 to mark transparency and avoid losing
    black pixels, and the colour components need multiplying by 4 to reverse the
    action in PackTextureMap32To8Bit.

commit 6703543
Author: davidmarr <116632612+davidmarr@users.noreply.github.com>
Date:   Tue Feb 17 10:20:23 2026 +0100

    Add View.DisplayItem API documentation

    Add comprehensive XML API docs for the View.DisplayItem class in TEN. Documents creation, global camera and ambient controls, setters/getters for position/rotation/scale/color, meshBits and per-mesh visibility, joint rotation, animation/frame controls, bounds projection and Draw method — providing a complete Lua reference for manipulating 3D display items in 2D display space.

commit bff25e6
Author: Kewin Kupilas <k.kupilas@outlook.com>
Date:   Sun Feb 15 09:48:05 2026 +0000

    Push missing code

commit 3969550
Author: Kewin Kupilas <k.kupilas@outlook.com>
Date:   Fri Feb 13 14:53:10 2026 +0000

    Upload rough implementation

commit d6a4991
Author: Kewin Kupilas <k.kupilas@outlook.com>
Date:   Thu Feb 12 22:25:49 2026 +0000

    Remove unused fields

commit 3343894
Author: Kewin Kupilas <k.kupilas@outlook.com>
Date:   Thu Feb 12 22:00:25 2026 +0000

    Lift texture size limit for TEN and warn for other engines

commit 0106a03
Merge: ddfbe7f 10aa900
Author: Kewin Kupilas <k.kupilas@outlook.com>
Date:   Sat Sep 20 12:06:51 2025 +0100

    Merge branch 'develop' into Nickelony/Conditional-Relight

commit ddfbe7f
Author: Kewin Kupilas <k.kupilas@outlook.com>
Date:   Sun Nov 24 18:09:33 2024 +0000

    #957 - Relight rooms only when entering or in Lighting mode
Copilot AI review requested due to automatic review settings March 29, 2026 08:44
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR extends TombLib/TombEditor support for Tomb Engine + TR3 parity features, notably adding TR3’s Electrical Field and Fusebox objects, improving object placement workflows, and updating several engine/compiler/rendering pipelines (compression, textures, shaders, UI).

Changes:

  • Added new catalog slots/conversions (ELECTRIC_FIELD, FUSEBOX) and updated sound catalogs/mappings.
  • Introduced/expanded Object Placement mode and Content Browser/brush UX (WPF tooling, thumbnails, favorites, overlays).
  • Updated tooling/compilers/rendering internals (chunked LZ4 streaming, DirectXTexNet texture compression, shader build pipeline, brush overlay rendering).

Reviewed changes

Copilot reviewed 126 out of 144 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
TombLib/TombLib/Wad/Catalog/TrCatalog.cs Adds catalog categories and lookup helpers for moveables/statics.
TombLib/TombLib/Utils/Texture.cs Reworks out-of-bounds checks to be parameterized by max span.
TombLib/TombLib/Utils/TextExtensions.cs Updates data size formatting to accept long.
TombLib/TombLib/Utils/LZ4.cs Introduces chunked stream-based LZ4 compression for >2GB support.
TombLib/TombLib/Utils/Hash.cs Adds checksum hashing for streams and refactors reduction.
TombLib/TombLib/TombLib.csproj Swaps texture compressor dependency and adds recyclable streams package.
TombLib/TombLib/LevelData/SectorStructs/SectorFaceIdentity.cs Fixes equality implementation.
TombLib/TombLib/LevelData/SectorGeometry/SectorWallData.cs Refines middle wall face clamping for overdraw handling.
TombLib/TombLib/LevelData/SectorGeometry/SectorFaceData.cs Adds/expands documentation for vertical face constructors.
TombLib/TombLib/LevelData/SectorGeometry/RoomExtensionMethods.cs Adds extensive docs; refactors wall geometry computations.
TombLib/TombLib/LevelData/SectorGeometry/LegacyWallGeometry.cs Adds docs for legacy PRJ conversion geometry behavior.
TombLib/TombLib/LevelData/Room.cs Adds Rebuild(relight, ...) flow + pending relight tracking; updates texture coord bounds logic.
TombLib/TombLib/LevelData/LevelSettings.cs Adds Favorites persistence state.
TombLib/TombLib/LevelData/Level.cs Adds GetAllLuaNames() helper; updates geometry rebuild calls.
TombLib/TombLib/LevelData/Instances/ObjectInstance.cs Optimizes Lua name allocation and adds batch-friendly overload.
TombLib/TombLib/LevelData/Instances/ItemInstance.cs Adds conversion helper to IWadObject.
TombLib/TombLib/LevelData/IO/PrjLoader.cs Uses new rebuild pathway after load.
TombLib/TombLib/LevelData/IO/Prj2Writer.cs Persists Favorites into PRJ2.
TombLib/TombLib/LevelData/IO/Prj2Loader.cs Loads Favorites; updates rebuild pathway after load.
TombLib/TombLib/LevelData/IO/Prj2Chunks.cs Adds PRJ2 chunk IDs for Favorites.
TombLib/TombLib/LevelData/Enumerations.cs Adds game-version capability helper for monkeyswing.
TombLib/TombLib/LevelData/Compilers/Util/TrxInjector.cs Encodes monkeyswing sector flag into TRX climb direction.
TombLib/TombLib/LevelData/Compilers/Util/TexInfoManager.cs Updates UV bounds checks to use parameterized methods.
TombLib/TombLib/LevelData/Compilers/Trx.cs Adds TRX climb/texture packing tweaks and palette scaling fix.
TombLib/TombLib/LevelData/Compilers/TombEngine/TombEngine.cs Switches to pooled streams + streaming compression to file; changes block headers and checksum inputs.
TombLib/TombLib/LevelData/Compilers/TombEngine/Textures.cs Migrates DDS compression from BCnEncoder to DirectXTexNet.
TombLib/TombLib/LevelData/Compilers/TombEngine/Structs.cs Adds TombEngine flyby camera struct and comparer.
TombLib/TombLib/LevelData/Compilers/TombEngine/Rooms.cs Updates UV bounds checks for TEN.
TombLib/TombLib/LevelData/Compilers/TombEngine/PathfindingDecompiled.cs Adds empty-box early exit for overlap building.
TombLib/TombLib/LevelData/Compilers/TombEngine/LevelCompilerTombEngine.cs Switches flyby camera storage to TEN-specific struct.
TombLib/TombLib/LevelData/Compilers/Rooms.cs Updates UV bounds checks for classic compilers.
TombLib/TombLib/LevelData/Compilers/PathfindingDecompiled.cs Fixes monkeyswing overlap flag emission threshold (TR4+).
TombLib/TombLib/Catalogs/TEN Sound Catalogs/TEN_ALL_SOUNDS.xml Updates and adds TEN sound entries/samples.
TombLib/TombLib/Catalogs/TEN Node Catalogs/Input.lua Adds “Clear all controls” node.
TombLib/TombLib/Catalogs/Engines/TombEngine/Sounds.xml Updates TEN sound mapping for new IDs.
TombLib/TombLib/Catalogs/Engines/TombEngine/Moveables.xml Adds ELECTRIC_FIELD and FUSEBOX TEN moveables.
TombLib/TombLib/Catalogs/Engines/TR3/Moveables.xml Maps TR3 moveables to TEN slots for electric field/fusebox.
TombLib/TombLib/Catalogs/Engines/TR1/Sounds.xml Updates TR1 sound-to-TEN mapping.
TombLib/TombLib.WPF/Resources/Localization/EN/TombEditor.json Adds localization keys for new Content Browser/Toolbox UI.
TombLib/TombLib.Scripting.ClassicScript/Utils/ErrorDetector.cs Removes dependency and fixes Count('>') usage via LINQ.
TombLib/TombLib.Rendering/TombLib.Rendering.csproj Replaces shader build pipeline and embeds/copies shader includes.
TombLib/TombLib.Rendering/ResolveFxcPath.ps1 Adds helper to locate fxc.exe across Windows SDK layouts.
TombLib/TombLib.Rendering/Rendering/RenderingTextureAllocator.cs Removes stray legacy comment and retains cap constant.
TombLib/TombLib.Rendering/Rendering/RenderingStateBuffer.cs Adds brush overlay state to rendering state.
TombLib/TombLib.Rendering/Rendering/Legacy/Model.fx Adds brush overlay support + world position plumbing for legacy model shader.
TombLib/TombLib.Rendering/Rendering/Legacy/BrushOverlay.hlsli Implements brush outline/fill overlay shader logic.
TombLib/TombLib.Rendering/Rendering/DirectX11/RoomShaderVS.hlsl Adds world position to PS input for brush overlay.
TombLib/TombLib.Rendering/Rendering/DirectX11/RoomShaderPS.hlsl Applies brush overlay to room rendering and adds cbuffer params.
TombLib/TombLib.Rendering/Rendering/DirectX11/Dx11RenderingStateBuffer.cs Extends constant buffer layout and upload for brush params.
TombLib/TombLib.Rendering/Rendering/DirectX11/Dx11RenderingDrawingRoom.cs Uses configurable UV span for out-of-bounds handling.
TombLib/TombLib.Rendering/HlslShaderCompile.targets Adds MSBuild target to compile shaders using fxc.exe.
TombLib/TombLib.Rendering/FxCompileEx.targets Removes prior FxCompileEx MSBuild task-based pipeline.
TombLib/TombLib.Rendering/FxCompile.cs Removes old Microsoft FxCompile task implementation.
TombLib/TombLib.Forms/Utils/WinFormsUtils.cs Improves key handling with ElementHost/WPF TextBox focus checks.
TombLib/TombLib.Forms/TombLib.Forms.csproj Adds design-time WPF resource dictionary for VS designer.
TombLib/TombLib.Forms/Properties/DesignTimeResources.xaml Provides merged dictionaries for design-time DarkUI WPF resources.
TombLib/TombLib.Forms/Controls/WadTreeControl.cs Updates selection changed event wiring.
TombLib/TombLib.Forms/Controls/TextureMapBase.cs Raises max texture size for selection/quantization.
TombLib/TombLib.Forms/Controls/PanelItemPreview.cs Refactors rendering/camera logic into helper calls.
TombLib/TombLib.Forms/Controls/OffscreenItemRenderer.cs Adds offscreen thumbnail rendering with DX11 readback.
TombIDE/TombIDE/TombIDE.csproj Adds design-time WPF resource dictionary for VS designer.
TombIDE/TombIDE/Properties/DesignTimeResources.xaml Provides merged dictionaries for design-time DarkUI WPF resources.
TombIDE/TombIDE.ProjectMaster/Services/EngineUpdate/TRXUpdateService.cs Updates TRX minimum auto-update version and message.
TombEditor/Views/ToolBoxView.xaml.cs Introduces WPF toolbox view with sizing + WinForms context menu hosting.
TombEditor/Views/ObjectBrushToolboxView.xaml.cs Adds WPF object brush toolbox view + cleanup.
TombEditor/Views/ObjectBrushToolboxView.xaml Adds WPF UI for object brush configuration.
TombEditor/ViewModels/ToolBoxViewModel.cs Adds MVVM toolbox state, commands, localized tooltips/icons.
TombEditor/ViewModels/ObjectBrushToolboxViewModel.cs Adds MVVM bindings for object brush settings + enablement.
TombEditor/Undo.cs Updates rebuild/relight behavior and supports room override in undo.
TombEditor/ToolWindows/SectorOptions.cs Uses new capability helper for monkeyswing enablement.
TombEditor/ToolWindows/ObjectList.cs Improves performance with incremental object list updates.
TombEditor/ToolWindows/MainView.cs Ensures 3D panel visibility for ObjectPlacement mode.
TombEditor/ToolWindows/ItemBrowser.cs Migrates selection syncing to new multi-selection model and helper rendering.
TombEditor/ToolWindows/ImportedGeometryBrowser.cs Migrates selection syncing to new multi-selection model.
TombEditor/TombEditor.csproj Adds WPF references/resources and ContentBrowser compilation entry.
TombEditor/Properties/Resources.resx Adds new icon resources.
TombEditor/Properties/DesignTimeResources.xaml Adds design-time resources for DarkUI WPF styling.
TombEditor/Hotkey.cs Adds default hotkey for Object Placement mode.
TombEditor/Forms/FormTextureRemap.cs Updates room rebuild calls to new API.
TombEditor/Forms/FormSearch.cs Updates selection to use new rich IWadObject model.
TombEditor/Forms/FormMain.cs Adds ContentBrowser window and object brush toolbox hosting/positioning.
TombEditor/EditorState.cs Adds ObjectPlacement mode and new tool/brush shape enums.
TombEditor/EditorCommands.cs Adds command for ObjectPlacement mode and default hotkey set.
TombEditor/Editor.cs Replaces ChosenItem/ChosenImportedGeometry with ChosenItems and adds relight policy.
TombEditor/Controls/TriggerManager.cs Debounces node list refresh to avoid event floods.
TombEditor/Controls/ToolBox.resx Formatting adjustments and tray height metadata.
TombEditor/Controls/ToolBox.cs Replaces WinForms toolbox UI with WPF-hosted implementation.
TombEditor/Controls/PanelRenderingItem.cs Uses new ChosenItems model and simplifies drag/drop source.
TombEditor/Controls/PanelRenderingImportedGeometry.cs Uses new ChosenItems model for imported geometry previews.
TombEditor/Controls/Panel3D/Panel3DPicking.cs Adds ability to skip object picking for object placement workflows.
TombEditor/Controls/Panel3D/Panel3DDraw.cs Adds brush overlay rendering and object placement texture behavior.
TombEditor/Controls/Panel3D/Panel3D.cs Invalidates on brush settings change and tool changes.
TombEditor/Controls/Panel3D/MouseHandler/Panel3DMouseMove.cs Adds brush hover updates via mouse move.
TombEditor/Controls/Panel3D/MouseHandler/Panel3DMouseDown.cs Adds object placement mode input handling and ChosenItems picking.
TombEditor/Controls/Panel3D/MouseHandler/Panel3DMouse.cs Adds brush wheel adjustment and supports multi-object drag/drop.
TombEditor/Controls/ObjectBrush/ObjectBrushToolbox.resx Adds resource container for object brush toolbox control.
TombEditor/Controls/ObjectBrush/ObjectBrushToolbox.cs Adds floating toolbox hosting WPF object brush UI.
TombEditor/Controls/ObjectBrush/ObjectBrushConstants.cs Adds constants for brush adjustments and limits.
TombEditor/Controls/ObjectBrush/ObjectBrushActions.cs Implements brush stroke sessions (place/erase/select/fill) with undo buffering.
TombEditor/Configuration.cs Adds content browser + object brush configuration and UI toolbar changes.
TombEditor/Command.cs Adds ObjectPlacement mode command; gates room delete in 2D mode; updates chosen item usage.
LuaApiBuilder/Objects/ApiParameter.cs Moves optional/default concerns into shared interface.
LuaApiBuilder/Objects/ApiField.cs Adds optional/default fields and implements shared interface.
LuaApiBuilder/Interfaces/IOptionalObject.cs Adds new interface for optional/default metadata.
LuaApiBuilder/ApiXmlParser.cs Parses optional/defaultValue for fields.
LuaApiBuilder/ApiConverter.cs Improves method name parsing and consolidates optional formatting logic.
Installer/install_script_NET6_x64.nsi Updates uninstall list for DirectXTexNet runtime/native artifacts.
Installer/Changes.txt Updates changelog entries for new features/fixes and TRX preset version.
DarkUI/DarkUI.WPF/Styles/Slider.xaml Adds DarkUI WPF Slider styling.
DarkUI/DarkUI.WPF/Generic.xaml Includes new slider styles.
DarkUI/DarkUI.WPF/Extensions/DependencyObjectExtensions.cs Adds ancestor-or-self visual lookup helper.
DarkUI/DarkUI.WPF/CustomControls/SpacedGrid.cs Adds grid with row/column spacing dependency properties.
DarkUI/DarkUI.WPF/Converters/InverseBoolToVisibilityConverter.cs Adds converter for inverse boolean visibility binding.
AGENTS.md Adds repository contribution/style/build guidance.
Files not reviewed (7)
  • TombEditor/Controls/ObjectBrush/ObjectBrushToolbox.Designer.cs: Language not supported
  • TombEditor/Controls/ToolBox.Designer.cs: Language not supported
  • TombEditor/Forms/FormMain.Designer.cs: Language not supported
  • TombEditor/Properties/Resources.Designer.cs: Language not supported
  • TombEditor/ToolWindows/ContentBrowser.Designer.cs: Language not supported
  • TombEditor/ToolWindows/MainView.Designer.cs: Language not supported
  • WadTool/Forms/FormAnimationEditor.Designer.cs: Language not supported
Comments suppressed due to low confidence (10)

TombLib/TombLib/Utils/LZ4.cs:1

  • This numChunks calculation can overflow for large inputs because inData.Length + ChunkSize - 1 is computed in int and may wrap negative (e.g., near ~2GB). Compute in long (or checked arithmetic) and only cast to int after clamping/validation.
    TombLib/TombLib/Utils/LZ4.cs:1
  • The new stream overload assumes inStream supports Length and Position (i.e., is seekable). Either (mandatory) validate inStream.CanSeek and throw a clear exception, or (better) support non-seekable streams by reading until EOF without using Length/Position.
    TombLib/TombLib/Utils/Hash.cs:1
  • This unconditionally rewinds the stream via data.Position = 0, which throws for non-seekable streams and also mutates caller state. Prefer checking data.CanSeek (and optionally restoring the original position after hashing), or document that the stream must be seekable.
    TombLib/TombLib/LevelData/Compilers/TombEngine/TombEngine.cs:1
  • The TEN file format layout changes here: lengths are now written with long (8 bytes) where older builds wrote int (4 bytes). Ensure the Tomb Engine reader expects 64-bit sizes and that the compiler version/header semantics reflect this breaking change (e.g., bump format version or maintain backward compatibility).
    TombLib/TombLib.Forms/Controls/OffscreenItemRenderer.cs:1
  • Rendering to an offscreen target updates the device viewport and OM targets, but this code doesn’t restore the previous render targets/viewport afterwards. This can break subsequent rendering in the app. Save prior viewport + OM targets before BindRenderTarget and restore them in a finally.
    TombLib/TombLib.Forms/Controls/OffscreenItemRenderer.cs:1
  • The catch block drops the exception details, making failures hard to diagnose. Log the exception (e.g., logger.Error(ex, ...)) and avoid calling wadObject.ToString(version) inside the catch unless you’re sure it can’t throw (or compute the display string before entering the try).
    TombEditor/EditorCommands.cs:1
  • Default hotkey for Object Placement mode is inconsistent: Hotkey.cs assigns Keys.F7, but GenerateDefaultHotkeys() uses Keys.F5. Pick one and align both sources to prevent confusing defaults and mismatched UI/config behaviors.
    TombLib/TombLib/LevelData/Level.cs:1
  • GetAllLuaNames() uses a case-sensitive HashSet by default, while AllocateNewLuaName() generates lowercase IDs. Existing mixed-case Lua names may not be detected as collisions, leading to duplicates differing only by case. Use StringComparer.OrdinalIgnoreCase for the set (and consistently apply the same comparer everywhere names are checked).
    TombEditor/Views/ToolBoxView.xaml.cs:1
  • The view starts a DispatcherTimer and subscribes to Tick, but on unload it only calls _viewModel.Cleanup() (which doesn’t stop/detach the timer). This risks keeping the view alive longer than intended and can invoke context menu logic after unload. Stop the timer and unsubscribe Tick in Unloaded/Cleanup.
    TombLib/TombLib.Forms/Controls/TextureMapBase.cs:1
  • This raises the maximum texture coordinate space to 1024 globally. If classic engines still rely on 256-sized assumptions in editor tooling, this can introduce invalid selections/quantization for non-TEN levels. Consider making this depend on the active game/version (or overriding in TEN-specific subclasses) rather than a blanket increase.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@@ -0,0 +1,114 @@
## General Project Information

- Language: **C# targeting .NET 8** (desktop application).
Copy link

Copilot AI Mar 29, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This states the project targets .NET 8, but multiple .csproj files in this PR target net6.0-windows. Update AGENTS.md to match the repository’s actual target framework(s) to avoid misleading contributors/tooling.

Suggested change
- Language: **C# targeting .NET 8** (desktop application).
- Language: **C# targeting .NET 6 (`net6.0-windows`)** (desktop application).

Copilot uses AI. Check for mistakes.
@Stranger1992 Stranger1992 marked this pull request as draft March 29, 2026 08:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants