-
Notifications
You must be signed in to change notification settings - Fork 169
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
Updated InvalidateItem() to find multiple appearances #85
base: master
Are you sure you want to change the base?
Updated InvalidateItem() to find multiple appearances #85
Conversation
InvalidateItem() only invalidates the first appearances of an item in the _itemIds list. If the item appears again in the list, the later appearances are not invalidated. This leads to 'ghost' items that cause problems with other parts of the script, such as ProcessItem(). e.g. An invalid item, a_itemId, appears in both Group 1 @ index 2 and Group 4 @ index 96. _itemIds1.Find(a_itemId) returns 2 and sets _itemInvalidFlags1[2] = true. Processing stops and the instance in group 4 is not detected.
Looks great. So as review comment; please increase the CurrentVersion, check in OnVersionUpdate for version increases and invalidate everything. |
This should also work to fix the issue mid-game and the testing I've done so far on broken saves seems to confirm this. There is already a SKSE function that successfully finds invalid items and triggers the OnFoundInvalidItem event in this script. All my correction is doing is ensuring all the occurrences are flagged and not just the first. |
I understand, they will indeed be found in the groupdata and reported as invalid. Nice. |
So, now, how to get this in a release? SkyUI hasn't been update for 4 to 6 years it seems. Do you have a compiled version of this? |
This repository doesn't have the most up to date code unfortunately
…On Tue, 27 Apr 2021, 12:44 RullGit, ***@***.***> wrote:
So, now, how to get this in a release? SkyUI hasn't been update for 4 to 6
years it seems. Do you have a compiled version of this?
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
<#85 (comment)>, or
unsubscribe
<https://github.com/notifications/unsubscribe-auth/AAB2QMKVH3LOH3DWOJTT5HLTK2PQ3ANCNFSM42WZ7FIQ>
.
|
I've asked Schlangster for permission to upload a compiled version of this Papyrus script to Nexus Mods. We'll see what comes of that. |
Hello, what's the status of this PR? I'm currently having this issue in-game and its really frustrating, would be good to get this fix added. |
Fixes #52
InvalidateItem() only invalidates the first appearances of an item in the _itemIds list. If the item appears again in the list, the later appearances are not invalidated. This leads to 'ghost' items that cause problems with other parts of the script, such as ProcessItem().
e.g. An invalid item, a_itemId, appears in both Group 1 @ index 2 and Group 4 @ index 96.
_itemIds1.Find(a_itemId) returns 2 and sets _itemInvalidFlags1[2] = true. Processing stops and the instance in group 4 is not detected.