Add: Campsite Editor to Map tab.
Allows users to set whether there is or is not a villager visiting the campsite, allows selecting that visitor and to edit the visit timestamp (defaults to current timestamp override so visitor is there on same day load).
Back-tracked offsets from old Cylindircal Earth save schemas for old save revs.
If campsite is not unlocked on the save, the UI is locked out with a message.
Cleanup: Moved UpdateFruitsFlag to misc editor class over save class because that was bad form. Oops.
Added fruits + flowers to Player Misc menu (kept field goods property manager in place still).
Saving fruits pushes change to flags block for fruits so that multiple edits aren't required when changing/saving it with new UpdateFruitFlags method.
Flowers added as enum class like Airport Color, but should be moved out to strings for localization later on.
Closes#684
Defensively allocate a copy so that the replacement does not overwrite the original sequence A=>B then continue doing B=>B swaps.
Wasn't a problem before since properties fetched byte[] (allocated separate slice); changing to span introduced this regression -- now fixed.
Allows for expansion in properties available for editing via updating Personal30's get/set list
Seems like a better compromise to only update 1 class for new additions, rather than backporting a stubbed invalid offset.
Behaves similar to WhereAreN being a nullable (optional) property.
In an ideal world, we'd have interfaces and concrete implementations for every structure revision, but that's far too much work to cleanly implement compared to the picky offset slicing.
Adds data for supporting 3.0.0, still needs savefile structures/hash range dumped and incorporated into MainOffsets30/PersonalOffsets30. Offsets/range is currently a copy of 2.0, which is obviously not correct. Saves will fail to load as encrypted values are not at the expected offset (pls no complaints).
CTRL-I from main form still opens the injector interface; RAM offset not yet documented.
Shifted HorizonSave into VillagerEditor in place of MainSave and adjusted accordingly to give VillagerEditor better access to save file offsets etc.
Added overwrite for Villager PRO patterns to set imported ones to be made/owned by the player for consistency. (town and player ID bytes)
Added code that zeroes out the 4 bytes beginning at offset `0x70` of the pattern array that seemingly causes mismatches in imported pattern ownership.
Exposed this fix via extra testing with different saves and different pattern dumps.
Added fix for two parts of pattern import problems:
1. PlayerID and TownID bytes need to be added to the pattern data from the personal.dat offsets to set them as owned and editable correctly. Added these code to get and force overwrite to fix.
2. Flags exist in main.dat for if the player has edited the pattern slot and if not, the name will not be updated correctly. Added offsets for these and added code to flag them as edited on import to fix.
Added a new icon that supports up to 256px and is "distinct".
Added translations to MessageStrings_jp.txt.