Skip to content

WIP: TIDE - Use project name for .trproj files#1137

Draft
Copilot wants to merge 6 commits intodevelopfrom
copilot/update-trproj-file-naming
Draft

WIP: TIDE - Use project name for .trproj files#1137
Copilot wants to merge 6 commits intodevelopfrom
copilot/update-trproj-file-naming

Conversation

Copy link
Copy Markdown
Contributor

Copilot AI commented Feb 20, 2026

.trproj files were always named after the engine executable (e.g., TombEngine.trproj, tomb4.trproj), making them indistinguishable in OS jump lists and recent files. Renaming a project did not update the .trproj filename.

Changes

  • GameProjectBase: Added TrprojFileName property to track the actual .trproj filename. GetTrprojFilePath() now uses this instead of deriving from the engine executable name.
    • New projects: TrprojFileName = name + ".trproj"
    • Loaded projects: TrprojFileName = Path.GetFileName(trproj.FilePath) (preserves existing name)
  • Rename(): Accepts optional renameTrprojFile parameter. When true, updates TrprojFileName to match the new project name.
  • FormRenameProject: Added "Rename .trproj file as well" checkbox (checked by default). Old .trproj file is deleted only after successful save to prevent data loss.
  • IProject.Rename / LevelProject.Rename: Signature updated with bool renameTrprojFile = false for interface conformance.

Behavior

Scenario Before After
New project "MyLevel" (TEN) TombEngine.trproj MyLevel.trproj
Open existing TombEngine.trproj TombEngine.trproj TombEngine.trproj (preserved)
Rename project to "NewName" .trproj unchanged .trproj renamed if checkbox checked
Original prompt

This section details on the original issue you should resolve

<issue_title>TIDE: Use project name for .trproj files</issue_title>
<issue_description>> Currently, when you create a project with TombIDE, the .trproj file is always named after the engine.

For example:

  • A TRNG project will get a tomb4.trproj file
  • A TEN project will get a TombEngine.trproj file

A nice QOL feature to have would be to name the .trproj files automatically following the project's actual name.

This way, when opening a project via jump lists *, we'd know right away which project it is.
Right now, it gets a bit confusing because the names are identical (we need to hover over it to see the full path).


* "Jump lists" are the "recent files" list (specific to an app) that you get when you right click the pinned application icon in the task bar.
If you use OpenShell, you can also get the same jump lists for each application pinned in it.
Image Image

The cool thing with jump lists is you can open your project right away, without having to wait for TIDE to boot before you can select it.


Right now, we could rename the .trproj file after its creation. But there's a weird behaviour to it:

When you open such a file, TIDE will instantly re-create a new {engine}.trproj file and work with this file, instead of the {custom_name}.trproj file.

Then: if you re-open the {custom_name}.trproj after the {engine}.trproj was already created, TIDE will read from and write to the {engine}.trproj file, completely ignoring your {custom_name}.trproj completely.
(you could say for the use case of jump lists, that's ok because in the end, for the user who doesn't realize this behavior, things actually work as they expect)

Also, if you open TIDE "normally", only the {engine}.trproj is registered in the list. Meaning, as soon as you remove the {engine}.trproj file, TIDE won't remember the project at the next startup.

This was tested by editing the .trproj files manually, and changing the project's Name to see how it was reflected in TombIDE.
</issue_description>

<agent_instructions>Please implement this feature and make sure that renaming the project inside TombIDE also updates the .trproj file name. Please add a checkbox to make this action optional, similar to how we do that for renaming individual Levels. I don't think there's any need to rename the project directory though. Generally, the name of the .trproj file doesn't matter as far as I'm aware, the current naming scheme was for quick engine identification, but the presented example in the issue shows that it would be much better if it had a custom name, that matches the given project name instead.</agent_instructions>

Comments on the Issue (you are @copilot in this section)


🔒 GitHub Advanced Security automatically protects Copilot coding agent pull requests. You can protect all pull requests by enabling Advanced Security for your repositories. Learn more about Advanced Security.

Copilot AI and others added 2 commits February 20, 2026 19:43
- Add TrprojFileName property to GameProjectBase to track actual .trproj file name
- New projects now get {projectName}.trproj instead of {engineName}.trproj
- Existing projects preserve their current .trproj file name when loaded
- GetTrprojFilePath() now uses the stored TrprojFileName
- Rename() supports optional renameTrprojFile parameter to rename the .trproj file
- FormRenameProject gets a "Rename .trproj file as well" checkbox (checked by default)
- Update IProject.Rename interface to include renameTrprojFile parameter

Co-authored-by: Nickelony <20436882+Nickelony@users.noreply.github.com>
Address code review: delete old .trproj file only after successfully
saving the new one, preventing data loss if save fails.

Co-authored-by: Nickelony <20436882+Nickelony@users.noreply.github.com>
Copilot AI changed the title [WIP] Update .trproj file naming to use project name TIDE: Use project name for .trproj files Feb 20, 2026
Copilot AI requested a review from Nickelony February 20, 2026 19:48
@Nickelony Nickelony changed the base branch from master to develop February 20, 2026 19:50
@Nickelony Nickelony changed the title TIDE: Use project name for .trproj files WIP: TIDE - Use project name for .trproj files Feb 23, 2026
@Nickelony Nickelony added work in progress The Pull Request is not finished yet or needs some extra work done to it. labels Feb 23, 2026
@Lwmte Lwmte added TombEngine Task specific to TEN. and removed TombEngine Task specific to TEN. labels Mar 7, 2026
@Nickelony Nickelony added the enhancement A task which adds something new or improves on existing features. label Mar 23, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement A task which adds something new or improves on existing features. work in progress The Pull Request is not finished yet or needs some extra work done to it.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

TIDE: Use project name for .trproj files

4 participants