Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Make patch merger check for ITMs/ITPOs #303

Closed
Arthmoor opened this issue May 14, 2016 · 7 comments
Closed

Make patch merger check for ITMs/ITPOs #303

Arthmoor opened this issue May 14, 2016 · 7 comments
Labels
A-patchers Area: Patchers (Everything in the patcher package) R-wont-fix Rejection: Bug will not be fixed (usually due to technical reasons)

Comments

@Arthmoor
Copy link
Contributor

When mods alter leveled lists one expects them to be merge processed.

However, when only one record for leveled lists has been altered, the Bashed Patch should not be taking that record into the resulting ESP file. It doesn't need to be there as the winning record should already take care of that.

https://i.imgur.com/LODx5sd.jpg

File attached to reproduce with.
LeveledListWinningRecordError.zip

@Arthmoor Arthmoor added C-bug Category: Bug, an acknowledged defect in the program G-skyrim Game: TES V: Skyrim A-patchers Area: Patchers (Everything in the patcher package) labels May 14, 2016
@Arthmoor
Copy link
Contributor Author

Arthmoor commented Oct 2, 2016

As of 307.201610020028 this issue is still present.

@Infernio Infernio added C-enhancement Category: Enhancement, a request to add or enhance a feature and removed C-bug Category: Bug, an acknowledged defect in the program labels Nov 10, 2019
@Infernio
Copy link
Member

This is currently expected behavior. Merging does no checks for ITMs and ITPOs, so changing this to an enhancement request to add such checks instead.

@Infernio Infernio changed the title [Skyrim] Winning records for leveled lists are not ignored by the patch Make patch merger check for ITMs/ITPOs Nov 10, 2019
@Infernio Infernio removed the G-skyrim Game: TES V: Skyrim label Nov 10, 2019
@Infernio Infernio added this to the 308 milestone Nov 10, 2019
@Infernio Infernio added the M-good-first-issue Misc: A good issue for newcomers to start with label Jan 23, 2020
@Infernio Infernio removed the M-good-first-issue Misc: A good issue for newcomers to start with label Jul 5, 2020
@Infernio Infernio added the M-backburner Misc: On backburner - not rejected, but won't be tackled for a while label Nov 19, 2020
@Infernio Infernio modified the milestones: 309, 310 Feb 22, 2021
@Infernio Infernio added R-wont-fix Rejection: Bug will not be fixed (usually due to technical reasons) and removed C-enhancement Category: Enhancement, a request to add or enhance a feature M-backburner Misc: On backburner - not rejected, but won't be tackled for a while labels Mar 4, 2021
@Infernio
Copy link
Member

Infernio commented Mar 4, 2021

In hindsight, this is not feasible. Our ITM/ITPO checks work in reverse: basically, we keep a record around if we have made any changes to it through the patchers. But the merger works differently: it takes arbitrary records from plugins and forwards them into the BP. Adding ITM/ITPO detection to this would mean replicating what xEdit does for conflict detection, which is way out of scope for WB.

@Infernio Infernio modified the milestones: 310, 309 Mar 4, 2021
@Utumno
Copy link
Member

Utumno commented Mar 4, 2021

replicating what xEdit does for conflict detection

what that would be just out of curiosity

@Infernio
Copy link
Member

Infernio commented Mar 4, 2021

We'd need defaults, information about conflicts 'priority' for each subrecord (critical, normal, benign), etc.
Most of the implementation sits in https://github.com/TES5Edit/TES5Edit/blob/dev-4.1.4/Core/wbImplementation.pas.

Basically, we'd have to write a headless xEdit :P

@Utumno
Copy link
Member

Utumno commented Mar 4, 2021

Dear lord that looks like cint

@Infernio
Copy link
Member

Infernio commented Mar 4, 2021

Low level stuff, much of it built for performance. Here's some hand-written assembly: https://github.com/TES5Edit/TES5Edit/blob/5f33eed0075aea37b31ebec21cb7eafc0007f789/Core/wbImplementation.pas#L1889-L1916

@Infernio Infernio removed this from the 309 milestone Jul 1, 2022
@Infernio Infernio closed this as not planned Won't fix, can't repro, duplicate, stale Jul 1, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-patchers Area: Patchers (Everything in the patcher package) R-wont-fix Rejection: Bug will not be fixed (usually due to technical reasons)
Projects
None yet
Development

No branches or pull requests

3 participants