OpenFusionProject / OpenFusion

Open source server for the FusionFall client
MIT License
351 stars 64 forks source link

Nano icons will occasionally not appear on the Academy build #262

Closed xmrshoot closed 5 months ago

xmrshoot commented 1 year ago

image

xmrshoot commented 1 year ago

and its not only problem for me, i asked other players and same problem

CakeLancelot commented 1 year ago

It might be worth trying to send a sP_FE2CL_REP_RELOAD_CHAR packet after the first sP_CL2FE_REQ_PC_LOADING_COMPLETE. I wouldn't be surprised if this is what the original game did to work around potential race conditions surrounding resizing the nano array.

yungcomputerchair commented 5 months ago

The aNanoBank and aNanoSlots fields in sP_FE2CL_REP_RELOAD_CHAR appear to be ignored by the client. I don't actually think we need more than our existing sendNanoBookSubset() function; moving the call to after (or during) handling of sP_CL2FE_REQ_PC_LOADING_COMPLETE as you suggested might be the right move.

I don't think we can be sure what the right solution is until we fully understand why this race condition is happening in the first place; I'll dig into the client code and see if I can root cause the issue.

yungcomputerchair commented 5 months ago

Actually, this bug seems to have 100% repro if the client manages to processes P_FE2CL_REP_NANO_BOOK_SUBSET after loading in, so the solution seems to be reliably getting that packet over before sending P_FE2CL_REP_PC_ENTER_SUCC.. investigating