Repository navigation
Starts the implementation of retail fishing - #11902
Frankie-hz wants to merge 17 commits into
Conversation
|
✨ Hello and thanks for the PR! ✨ 🤖: This is a friendly automated reminder that the maintainers won't look at your PR until you've properly completed all of the checkboxes in the pre-filled template. |
| { | ||
| return PacketValidator(PChar) | ||
| .blockedBy({ BlockedState::InEvent, BlockedState::AbnormalStatus }) | ||
| .blockedBy({ BlockedState::InEvent, BlockedState::AbnormalStatus, BlockedState::Fishing }) |
There was a problem hiding this comment.
Might be one for @sruon , is there any reason we wouldn't/shouldn't treat fishing as "being in an event" and not having to specify a new type for it? That would already handle trading, equipping, etc.
| for (auto fish : FishingGroups[groupId]) | ||
| { | ||
| if (FishList[fish.first]->item) | ||
| auto* fishEntry = GetFish(fish.first); |
There was a problem hiding this comment.
If GetFish() returned Maybe<FishEntry> it would be a lot harder to use wrongly
There was a problem hiding this comment.
There is a TODO inside maybe.h saying it cant hold a reference type yet. Let me know how to proceed, I don't really understand how to fix that exactly.
There was a problem hiding this comment.
Unfortunately, Maybe = std::optional and T& support isn't coming until C++26, so what we should do instead is swap out that alias for Sy Brand's implementation: https://github.com/TartanLlama/optional
- Add a section in ext for it like this: https://github.com/LandSandBoat/server/blob/base/ext/CMakeLists.txt#L103
- Update the alias to use it here: https://github.com/LandSandBoat/server/blob/base/src/common/types/maybe.h
- Everything should "just work", and Maybe will get
T&support
If you have any trouble with this let me know and I'll do it this weekend
Refs:
https://www.sandordargo.com/blog/2025/10/01/cpp26-optional-of-reference
I affirm:
What does this pull request do?
Split into many many PRs so its actually reviewable.
All code is based off captures and retail data. This is how we understand the system to the best of our knowledge. Fishing is still disabled and will remained disabled until the system is fully finished.
Sheet with explanations: https://docs.google.com/document/d/1UWTWKHZZcnmk-z_R6kJ_3Fd6rOLkj9AM/edit?usp=drivesdk&ouid=103812223323366345202&rtpof=true&sd=true
Lots and lots and lots of captures: https://www.dropbox.com/scl/fi/y91su3vc6o90btlrlxc5u/Fishing.zip?rlkey=pi29o0gfxem515xifbr0hs3b8&st=dhg6hqmu&dl=0
Steps to test these changes
Fish.
I can write more detailed steps