Closes#4407
Bug: 0th PCD slot not being provided would set PGT slot0 to "inactive", rather than setting pcd slot0.
The modeled GUI is still very clunky (editing DP just ignores the flag, and assumes if data exists it is active).
fix a typo while we're on the topic of Gen4 :) -- ty 0blivion0athkeeper on discord
For those who think it is funny to RNG abuse egg PID/IVs to match a recognizable algorithm type. Opt-in setting because 99.9% of the time it's going to be a hack.
#4347#3894#3092
Too many permutations of optional blocks to want to think about.
Since we already rely on hash validity, a range check should be more than sufficient to eager-check and prevent size clashes.
Was annoying cycling through all these versions that start with the same character. Works well enough to just do it
bv5: ignore checksum integrity, the checksum is over the decrypted data (not while encrypted).
Detect the current box buffer, initialize boxes if not already, and hide (delete) slots that aren't present (ignore ghost slots).
Compress storage before export.
Closes#4454
Closes#4418
Introduce a readonly record struct to contain all the settings selected. Add simple static get for none/all to disable/force the updates.
Split the UpdateRecord behavior out of UpdatePKM (adapt to save file) so that it behaves similarly to UpdateDex.
Only AdaptToSaveFile when opening a file in the PKM Editor.
* WC8: Handle HOME Keldeo
* WB7: Handle HOME Meltan fixed ability, scalars, AND HeightAbsolute and WeightAbsolute
* WB7: Fix PID get/set offset
* PB7: add ribbon get/set (Meltan has Souvenir ribbon and is retained on transfer to LGP/E)
* Legality: Verify Size Absolute for WB7 Home gifts, only check absolute scale when PB7
The function `IsTimeValid` checks if the received hour, minute, and
second of the Pokémon is below 24, 60, and 60 respectively. For some
reason the current code includes a "+1" for each check, which results in
some legitimate Pokémon being marked as having an invalid timestamp.
Fixed edge cases:
- Received on the 23rd hour.
- Received on the 59th minute.
- Received on the 59th second.
Shiny Meltan marks the first (and likely only) time where a LGPE event is server date restricted, so we need to extend those checks to include WB7s.
Also revise Manaphy & Enamorus start dates due to server date assignment logic changing at some point. In the past, it was always assigned according to UTC, but it is now determined by local server time, making January 27 possible in early time zones (Mountain, Pacific, etc.)
* Add Pokémon Day 2025 Flying Tera Type Eevee's date
* Refactor: add date bias for generate
---------
Co-authored-by: Kurt <kwsch@users.noreply.github.com>