server
server copied to clipboard
[cpp] Preserve ALL pet zoning info after loadautomaton
I affirm:
- [x] I understand that if I do not agree to the following points by completing the checkboxes my PR will be ignored.
- [x] I understand I should leave resolving conversations to the LandSandBoat team so that reviewers won't miss what was said.
- [x] I have read and understood the Contributing Guide and the Code of Conduct.
- [x] I have tested my code and the things my code has changed since the last commit in the PR and will test after any later commits.
What does this pull request do?
Continuation of this PR.
After the second PR, zoning with an automaton would summon a fire spirit after going into the new zone. This would be in the log:
I could have sworn i tested both permutations, but apparently not.
This new change only messes with the petZoningInfo
if the pet type is not an automaton and the petZoningInfo
was such that we needed to preserve the pet
I've tried smn/pup, pup/smn, drg/pup, pup/drg and zoning with and without a pet seems to all work like it should
Edit: changed to draft because i got a crash re-doing the steps below:
I'm guessing that's the wyvern listener...
Steps to test these changes
- change job to pup, zone and see that your automaton setup menu loads (no active pet)
- change sub job to smn, summon avatar, zone and see that your avatar persists
- change main job to drg, call wyvern, zone and see that your wyvern persists
- change subjob to pup, zone and see wyvern persists
- (note that the automaton setup UI takes a few ticks to show up before zoning, as the changesjob lua binding doesn't immediately send the CCharJobsPacket... might need to open the equipment screen)
i believe the steps to crash are:
- change drg/thf
- call wyvern
- zone in place
- changesjob pup
- zone in place
- you'll see your old wyvern still there dead and you won't have a pet
- call wyvern and zone in place
Sorry i have to step out for the afternoon, i'll keep cracking at this later tonight
The crash condition i ran into appears to be uniquely related to using !changejob
or !changesjob
with a pet out. More details in https://github.com/LandSandBoat/server/issues/5441