Skyrat-SS13 / Skyrat-tg

A Skyrat downstream of /tg/station SS13.
GNU Affero General Public License v3.0
120 stars 687 forks source link

Sheaths tend to go invisible. #22230

Open sergeirocks100 opened 1 year ago

sergeirocks100 commented 1 year ago

Round ID:

Not sure about the round ID where it started, but it's been going on for at least 2 or 3 months.

Testmerges:

I doubt this has anything to do with any testmerges, but here they are anyway.

#18110: 'Antag Revamp*: The Nuclear-ish Option' by Zonespace27 at commit 375f1f67c1 #21360: '[TM] (Maybe) fixes enormous RSC bloat' by AffectedArc07 at commit bb8672d33e #21708: 'restrict imbuing to ashwalkers & icecats' by jjpark-kb at commit a29140e56d #22045: '(testmerge only) Makes jetpacks work again' by Stonetear at commit bc9eebea54

Reproduction:

For reasons unknown to me, certain penises have the tendency to make their sheaths disappear, if there's a sheath selected. The sheath is still there, it's just that the sprite is missing. From what i can tell, it seems utterly random from round-to-round as to what penises do and don't show their sheaths (For example, a flared one might show up with its sheath, but a tapered one might not.). I've done local testing on this, and i can't figure out why it happens.

vinylspiders commented 1 year ago

Are you sure the penis is not fully aroused when this is happening? The sheath is supposed to not be visible in those cases. It would look like just the normal unsheathed version if that is in fact what is happening.

I looked through the code and didn't see anything that might cause this right off the bat. Doesn't mean there isn't an issue though...

The only possible thing I can think of is maybe for some reason losing arousal doesn't update the penis sprite correctly. Before I delve deeper I'll wait to make sure you know about the arousal thing.

sergeirocks100 commented 1 year ago

Are you sure the penis is not fully aroused when this is happening? The sheath is supposed to not be visible in those cases. It would look like just the normal unsheathed version if that is in fact what is happening.

I looked through the code and didn't see anything that might cause this right off the bat. Doesn't mean there isn't an issue though...

The only possible thing I can think of is maybe for some reason losing arousal doesn't update the penis sprite correctly. Before I delve deeper I'll wait to make sure you know about the arousal thing.

This is happening when the penis is in its normal, unaroused state. In fact, it even happens with the regular "Naked" preview in the character preferences. If you're looking at it from the front, you can even still see the penis-colored pixel that's supposed to be the penis in its sheath; it's just that the sheath itself, again, has a tendency to vanish.

vinylspiders commented 1 year ago

Are you sure the penis is not fully aroused when this is happening? The sheath is supposed to not be visible in those cases. It would look like just the normal unsheathed version if that is in fact what is happening. I looked through the code and didn't see anything that might cause this right off the bat. Doesn't mean there isn't an issue though... The only possible thing I can think of is maybe for some reason losing arousal doesn't update the penis sprite correctly. Before I delve deeper I'll wait to make sure you know about the arousal thing.

This is happening when the penis is in its normal, unaroused state. In fact, it even happens with the regular "Naked" preview in the character preferences. If you're looking at it from the front, you can even still see the penis-colored pixel that's supposed to be the penis in its sheath; it's just that the sheath itself, again, has a tendency to vanish.

That is indeed strange. I am not able to get that myself, it's showing up both in game and in the character preview in all my attempts to get it to break.

nsfw ![image](https://github.com/Skyrat-SS13/Skyrat-tg/assets/13398309/b5b6afc8-4788-4934-98d6-d4817c16a9cd)

This sounds to me like it could potentially be a corrupt cache issue. I have seen a few issues similar to this with invisible icons that could not be reproduced by others and that ended up being the cause.

Have you tried that yet? In the Byond launcher it's the gear icon -> preferences -> clear cache

image

sergeirocks100 commented 1 year ago

Okay.

I cleared my BYOND cache, and i went to the server to test.

Not only did the bug still happen, but i kept note of what penis types were and weren't affected, and that didn't change between before and after i cleared the cache.

Considering that you don't seem to be experiencing any problems, i'm thinking it might be an issue with my BYOND version (I'm using 514.1589, by the way.). I'm gonna download the latest 515 release, and see if anything changes there.

sergeirocks100 commented 1 year ago

Okay.

I cleared my BYOND cache, and i went to the server to test.

Not only did the bug still happen, but i kept note of what penis types were and weren't affected, and that didn't change between before and after i cleared the cache.

Considering that you don't seem to be experiencing any problems, i'm thinking it might be an issue with my BYOND version (I'm using 514.1589, by the way.). I'm gonna download the latest 515 release, and see if anything changes there.

I connected to the server with 515.1608, and the bug still happened. However, when i compiled and ran it with 515.1608 locally, it seemed to work fine.

There, i went through every last penis in the character preferences screen, and all of them seemed to show up with their sheaths as they should.

I'm going to try and do some more local testing with 514.1589, just to be certain, but i think the issue is that the server is running some strange revision (515.1609) which you can't even download off of the BYOND website, and i think that might possibly be screwing with how the sheath icons load.

Either way, it might be worth it to try to refactor how that stuff works, if possible, so it can better deal with different BYOND versions.

UPDATE: I did local testing with 514.1589, and the bug failed to reappear, I also connected to a 515.1608 server with a 514.1589 client, and vice versa, and it also failed to reappear. So either the bug got fixed within the past couple of days, and the server's out of date, or it's an issue with 515.1609.

UPDATE 2: The server seems to have updated to the latest revision, yet the bug is still there. With no other obvious leads to follow, the bug is probably an issue with 515.1609, although i can't be absolutely certain, considering that i have no access to this revision to do local bug testing.

vinylspiders commented 1 year ago

UPDATE: I did local testing with 514.1589, and the bug failed to reappear, I also connected to a 515.1608 server with a 514.1589 client, and vice versa, and it also failed to reappear. So either the bug got fixed within the past couple of days, and the server's out of date, or it's an issue with 515.1609.

For what it's worth I'm on 514.1589 as well. It could very well be a bug with that version. I'll look into that as a possible issue. I'm not sure what can be done about though as it may just be an engine bug with the Dreamseeker client in 515.1608 (which is a beta version). Similar to the icon flickering issue that sideplane introduced...Code wise everything looks solid to me.

I appreciate all the testing!

vinylspiders commented 1 year ago

Okay, I am going to be closing this---nothing we can do about the beta version being unstable, as it's out of our control and still being developed. Hopefully once that version comes around it will no longer be an issue.

Floofies commented 11 months ago

I've done a bit of community outreach to confirm that this is still an issue, and happening for multiple people simultaneously. Personally I see this bug every few rounds, and I also have issues reproducing the bug locally. While it's not good to make wanton guesses here I can reasonably surmise that we're looking at the result of our own bodyparts cache being corrupted non-deterministically, not Byond's cache.

This actually impacts people every few rounds on a seemingly random basis. I think it's very reproducible so we should be able to debug this.