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.
working on it, untested.
decoupled 99% of the logic, need to ensure the rendering uses the correct item grid which now includes deepsea L+R sides for 3.0.0
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.
v1.5 increased the size of GSaveLightMemory by 0xC each; with 160 entries, everything stored after this field (at 0x2F84) increased its offset by 0x780.
GSaveItemName ClothesPTops; // @0x14c size 0x8, align 4
s16 _58b5e808; // @0x154 size 0x2, align 2
s8 ClothesPTarget; // @0x156 size 0x1, align 1
Should be possible to convert the first revision of villager data to the current format and vice versa. Someone would need to document how they pre-fill these new fields (listed above).
game stores all donation types in the same array (chunked into date[], item[], playerID[]); no dedicated indexes for a donation, so no empty slots, and all donation types are intermixed (based on donation date)
Different means of expression for the 8 byte item structure's FreeParam
Will be expanding the ItemEditor so that it has a checkmark to toggle Extension Item editing behavior.
Removes IHeldItem as there's no need to abstract it.
isActive: indicates if the tile is animated (eg: bonfire has fire or is extinguished)
isSupported: layer2 tile checks beneath it (layer1) to see if there's something to hold it up on that layer (sanity check)
Dunno how to handle the isActive set-on-save. I saw there was an isActive flag in my plaza, assumedly left there from a radio or something. NHSE does not change flag state at this time.
Extracts logic from the building & terrain & field item editors for reuse / separation of concerns
Have FieldItemEditor select between Items & Terrain so that you can change the popup menu mode (view set delete)
Not sure how I want to show the terrain names...
only some surface appearance properties; interior item layout nope
use enum values for house info interface
Closes#95Closes#96
Changes the displayed villager indexes from 1-indexed to 0-indexed to match the game's references.