open-papyrus / papyrus-compiler

Open-source compiler for the Papyrus scripting language of Bethesda games.
https://open-papyrus.github.io/docs/papyrus-compiler/Introduction.html
MIT License
25 stars 3 forks source link

Psc source files - Resource #22

Open MrOctopus opened 2 years ago

MrOctopus commented 2 years ago

I see that you have manually included some .psc source files in the extern/ folder. I would just like to point out that I have made a github repository that automatically keeps a variety of popular papyrus sources up to date if you are in need of source files for testing.

erri120 commented 2 years ago

Thanks, that is very helpful.

MrOctopus commented 2 years ago

I should also note that the SkyUI source you are using is out-of-date. The up-to-date one can only be garnered by decompiling the SkyUI SSE compiled scripts and fixing up the default parameter assignments; which is what I have done in nl_online.

erri120 commented 2 years ago

I should also note that the SkyUI source you are using is out-of-date. The up-to-date one can only be garnered by decompiling the SkyUI SSE compiled scripts and fixing up the default parameter assignments; which is what I have done in nl_online.

on that note: the SkyUI sources I'm using have a very funny bug:

The decompiled sources you have in the repo: https://github.com/MrOctopus/nl_online/blob/main/skyui/source/ski_favoritesmanager.psc#L517

(0x80000000 is a positive integer overflow, the CK compiler doesn't care and let the overflow happen resulting in h < -2147483648)

MrOctopus commented 2 years ago

Good observation! Though it seems like that's also the actual correct Slot Mask according to this article. Of course, the while loop still remains bugged.

I am unsure if this is something that should be changed in the nl_online repository though, considering it's just intended as a 1 to 1 source of the original. As far as I am aware of, there's also other code bugs affecting the SkyUI MCM manager state. To that end, I've previously attempted to contact schlangster to gain the permission to fix some of these issues, but to no response.

In short, it's probably just best to leave it be(?).