-
Notifications
You must be signed in to change notification settings - Fork 17
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
Fix Bahro Cave Kadish pole snow animation #244
Conversation
It appears that this PR changes a number of the ObjIDs for textures used in the YeeshaCave PRP file. Can you verify that these references have not been shattered by an old PRP Shop? If you're working with a current build of PRP Shop with all PRPs opened, I would not expect for any ObjIDs to change in this PR. |
Looking at bhro_lightsupport*0#0.hsm in BahroCave_District_Textures.prp, its ObjID is 9. When I open BahroCave.age in prpshop and save it, it seems to change BahroCave_District_YeeshaCave.prp to match. If open all 3 .prps individually in prpshop, the ObjID for the same texture is still 9. This happens in the build I have from January and the installed version currently up as the release in the repo. |
YeeshaCave prp was saved first, then the textures prp following a series of events culminating in H-uru/libhsplasma#279. Everything looks okay on my end after this. |
I'm still seeing reference shattering |
97abb1d
to
e46b7ea
Compare
I cannot make this change to the PRP without it affecting the ObjIDs, no matter what combination of plasmashop version and order in which things are saved I try. What's more, even though I save the textures PRP, there are no changes to the file and it cannot be pushed along with the YeeshaCave prp on my branch. I also can't explain why it works properly in-game with the ObjIDs changed the way they are. There are no errors shown from broken texture references, despite replacing only the YeeshaCave prp in the game files with the new version. I've done all I can think of to make this edit without affecting the ObjIDs, which much help from chat. I am completely at a loss for what else to try at this point. |
I've reproduced the changes with PRPShop 2022.05.19 and pushed the result to this PR. I see no evidence of ObjID shattering in my commit. The changes in the GenericPhysicals is expected. Can you make sure the fix still works as expected? |
This looks like it might be identical to another version of this file I created by either opening just YeeshaCave's prp or all 3 without the .age file. Regardless, the visual effect is the same (many of the textures in the age are scrambled). The only time it's worked for me has been when the ObjIDs get messed with, and this happens when I open the .age file in prpshop. The .age file needed to be modified to have the nonexistent page removed in order to be opened in this way. |
Snow ("static") animation for the Kadish pole in the Bahro Cave did not actually move due to what is likely a copy-paste error
I reverted my commit to this PR because I see the same breakage. According to libHSPlasma, the changes to ObjIDs made by @DamnBriggsy actually fix incorrect references already in YeeshaCave.prp. What's weird is that the game does not report any problems with the current dataset. |
Previously, when a uoid is read in from the stream, the ObjID from the stream is discarded and reassigned to the value we already know. If the key is not already known, then the next sequential ID is given. If we want to preserve IDs, then we probably want to preserve *all* IDs, even those mid-stream. This is most apparent when diffing PRPs. IDs of zero are special values to the game client that mean "always look this up by name." This situation exists in the wild, right now, on MOULa's BahroCave_District_YeeshaCave.prp. When this file is read, libHSPlasma assigns sequential IDs to the `plMipmap` references in the layers if the Textures PRP is not already loaded. If the common PRP_as_Text.py is used to diff the PRP, a comparison is made against a random/junk value, resulting in a spurious looking change. See H-uru/moul-assets#244 for an example of the confusion.
As a recap, the original PRP files use an ObjID of zero to reference the textures. libHSPlasma is replacing those zeros with the actual ObjIDs in the Textures PRP. |
Could a maintainer please remove the tag |
Snow ("static") animation for the Kadish pole in the Bahro Cave did not actually move due to what is likely a copy-paste error. A small change to this prp fixes the issue mentioned in #231
The Layer Animation
Snow1_LayerAnim_1
had line 10 of the UVW Transform animation controller changed to<hsMatrix44 identity="True" />
where previously it was a duplicate of line 7.