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

Names patcher ignored removed FULL subrecord #304

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

Names patcher ignored removed FULL subrecord #304

Arthmoor opened this issue May 14, 2016 · 22 comments
Assignees
Labels
A-patchers Area: Patchers (Everything in the patcher package) C-bug Category: Bug, an acknowledged defect in the program M-relnotes Misc: Issue should be listed in the version history for its milestone
Milestone

Comments

@Arthmoor
Copy link
Contributor

The names patcher is supposed to respect a mod tagged for Names that removed the FULL subrecord from the record it's in. This should not happen.

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

File attached to reproduce the issue.
NamesFULLError.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
@Utumno
Copy link
Member

Utumno commented May 15, 2016

Minimal patch options/Load order ?

@Utumno Utumno added the M-need-info Misc: Not enough info (yet) to determine if valid issue label May 15, 2016
@Utumno
Copy link
Member

Utumno commented May 22, 2016

Oopsie - woppsie - this has dragon born as master - could you give one that doesn't ?

@Arthmoor
Copy link
Contributor Author

Arthmoor commented Oct 2, 2016

As of 307.201610020028 this issue is still present.

@Utumno
Copy link
Member

Utumno commented Oct 3, 2016

Minimal patch options/Load order ?

@Arthmoor
Copy link
Contributor Author

Arthmoor commented Oct 3, 2016

Is there something wrong with the zip file provided back in May?

@Utumno
Copy link
Member

Utumno commented Oct 3, 2016

It had dragonborn as master - got over that but I also need the minimal patch options.

In general please always provide the minimal load order and minimal patch options to reproduce the bug. I have to run the debugger to squash those and the time it takes grows exponentially with load order and patch options

@Arthmoor
Copy link
Contributor Author

Arthmoor commented Oct 3, 2016

Well I'm rather frustrated at this point. The test case file I gave you for this in May doesn't want to reproduce the problem, but I'm still able to do so with USLEEP itself, so here you go:

00 Skyrim.esm
01 Update.esm
02 Dawnguard.esm
03 HearthFires.esm
04 Dragonborn.esm
05 Unofficial Skyrim Legendary Edition Patch.esp [Version 3.0.6]

Names patcher is the only thing being selected for this, with All files except Skyrim.esm selected for that.

That's the best I can do. If you want anything more detailed than this, it's not possible to provide it.

@Utumno
Copy link
Member

Utumno commented Oct 5, 2016

I hope I will get round to this soon - just a last question though - I am still looking at "Lygrleid" ?

@Arthmoor
Copy link
Contributor Author

Arthmoor commented Oct 5, 2016

Yes, still looking at Lygrleid.

@Utumno Utumno removed the M-need-info Misc: Not enough info (yet) to determine if valid issue label Oct 5, 2016
@Infernio
Copy link
Member

Can't reproduce with the linked plugin - that edit gets forwarded correctly - and USLEEP does not appear to change DLC2RRLygrleidWindhelm "Lygrleid" [NPC_:040376F2] anymore?

@Infernio Infernio added M-need-info Misc: Not enough info (yet) to determine if valid issue and removed C-bug Category: Bug, an acknowledged defect in the program labels Nov 10, 2019
@Infernio
Copy link
Member

Please comment / reopen if this can be reproduced again.

@Infernio Infernio added R-works-for-me Rejection: Bug report could not be reproduced and removed M-need-info Misc: Not enough info (yet) to determine if valid issue labels Dec 18, 2019
@Infernio Infernio changed the title [Skyrim] Names patcher ignored removed FULL subrecord Names patcher ignored removed FULL subrecord Dec 18, 2019
@Arthmoor
Copy link
Contributor Author

I'm still able to reproduce this one with 307.201912131952.

@Arthmoor Arthmoor reopened this Dec 18, 2019
@Infernio
Copy link
Member

See my post here - I need plugins that reproduce this, since USLEEP no longer seems to touch that NPC.

@Arthmoor
Copy link
Contributor Author

USLEEP (and USSEP too) both still have that record in them, producing exactly the same issue as originally posted.

I'll see about constructing a new set to reproduce this in SSE since that's where I just ran the patch on this version.

@Infernio Infernio added M-need-info Misc: Not enough info (yet) to determine if valid issue and removed R-works-for-me Rejection: Bug report could not be reproduced labels Dec 18, 2019
@Infernio
Copy link
Member

Ah, I was looking at DLC2RRLygrleidWindhelm "Lygrleid" [NPC_:040376F2], but USSEP touches DLC2RRLygrleidSolstheim [NPC_:040376F5].
With a default patch config for vanilla SSE + USSEP, I can't reproduce it. So yes, a minimal reproducer for SSE would be appreciated :)

@Arthmoor
Copy link
Contributor Author

I just ran a test on the file from the original post (after converting it for SSE) and I can still reproduce the result. The only difference I see is that in your patch config, Dragonborn.esm doesn't have the Names tag, where in my testing it does, and the Names tag is thus ignored for any mod touching the same thing after it, even if it too has the Names tag.

USSEP's change should be propagated to the patch because the removal of the FULL there is intentional, and Dragonborn.esm is the master file which is being altered.

@Utumno
Copy link
Member

Utumno commented Dec 18, 2019

Thanks for cleaning issues up @Infernio - if you are to try and fix this please do so on the 312-patchers branch

@Infernio
Copy link
Member

This seems to be intended, from parsers.FullNames.readFromMod:

full = record.full or (type_ == 'LIGH' and u'NO NAME')
if record.eid and full:
    id_name[longid] = (record.eid,full)

It specifically checks if the FULL subrecord is present and contains a non-empty string and only allows that if the record type is LIGH. Otherwise, such removed/empty names are ignored when scanning the source mods. Not sure what to do here, perhaps this is needed in Oblivion?

@Infernio Infernio added this to the 308 milestone Jan 23, 2020
@Infernio
Copy link
Member

Interesting thing I just noticed: the code above originally compared type != 'LIGH', it got changed to use == instead in cce2b19 (giant commit, so expand bosh.py and search for NO NAME). Neither commit messages nor the version history mention anything about this change, but I don't really see how it could have been an accident...

@Infernio Infernio self-assigned this Aug 5, 2020
@Infernio Infernio added C-bug Category: Bug, an acknowledged defect in the program and removed M-need-info Misc: Not enough info (yet) to determine if valid issue labels Aug 5, 2020
@Infernio Infernio modified the milestones: 308, 307 Aug 5, 2020
@Infernio
Copy link
Member

Infernio commented Aug 6, 2020

Should be fixed now, I dropped the weird logic entirely. Let's see if something breaks :)

@Infernio Infernio removed the G-skyrim Game: TES V: Skyrim label Aug 6, 2020
@Utumno
Copy link
Member

Utumno commented Aug 6, 2020 via email

@Infernio
Copy link
Member

Infernio commented Aug 6, 2020

I pushed a commit to inf-312-tweak-pooling that absorbs the fid conversions entirely into load/save. I was afraid of slowdown, especially on startup, but it seems to have cost pretty much no performance? So maybe the impact isn't nearly as bad as we thought it might be?
Needed rewriting some ancient and ancient parts of the code (_saves.py and faces.py) though, so it's still high risk.

@Infernio Infernio added the M-relnotes Misc: Issue should be listed in the version history for its milestone label Nov 22, 2020
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) C-bug Category: Bug, an acknowledged defect in the program M-relnotes Misc: Issue should be listed in the version history for its milestone
Projects
None yet
Development

No branches or pull requests

3 participants