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

Addresses issues with PapyrusActorValueInfo::GetPerk.* implementation. #40

Open
wants to merge 3 commits into
base: master
Choose a base branch
from

Conversation

sky-void0
Copy link

@sky-void0 sky-void0 commented Apr 11, 2024

Hello Ian,

First of all, my earnest apologies for the misunderstanding before. I made unrealistic assumptions based on PRs history. Please, take as long you need to review these and any future patches. Whether it takes a month or a year, I'm here if you've any questions/concerns/comments.

Cheers.

Rationale

In its current implementation, PapyrusActorValueInfo::GetPerkxxx functions can generate a stack overflow when traversing a malformed perk tree with cyclically linked nodes. e.g https://www.nexusmods.com/skyrimspecialedition/mods/20605. These patches address the issue by establishing a max recursion depth limit. Additionally, the added perks are checked to avoid repetitions in the resulting perk array, which is something that can happen even with conventional perk trees.

The last patch doesn't fix anything, it's just an "improvement" I made while I was debugging that section. Feel free to Ignore or merge it, if you feel so inclined.

@sky-void0 sky-void0 marked this pull request as ready for review April 11, 2024 23:07
@sky-void0 sky-void0 changed the title Addresses issues with PapyrusActorValueInfo's GetPerks/PerkTree implementation. Addresses issues with PapyrusActorValueInfo::GetPerk.* implementation. Apr 12, 2024
@ianpatt
Copy link
Owner

ianpatt commented Apr 12, 2024

Just as a heads up, Fallout 4 is about to be set on fire by the new update and I am going to have a ton of script extender stuff to do at very high priority with basically no free time, so this is going to take a bit to get to.

@sky-void0
Copy link
Author

Thanks for the update. I completely understand, please don't feel any pressure to get to this. It's honestly perplexing how you manage, maintain and support so many versions of the extender for so many games, and for this long. And how you still release lightning fast updates whenever Bethesda decides to unleash another round of mayhem.

Big kudos to you sir. The entire community owes you and the rest of team an enormous debt of gratitude 👍

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