Commit graph

1254 commits

Author SHA1 Message Date
Kurt
41930dd2bd Handle crossover flying dragonite
Update pkl from pkNX
2022-12-16 22:34:01 -08:00
Lusamine
46d96f2822 Document blocks for Gimmighoul, fixed symbols, and records 2022-12-15 13:14:26 -06:00
Kurt
8190a12d13 Label properties for language and entity count 2022-12-10 19:55:24 -08:00
Kurt
d4835392a0 Update SAV3GCMemoryCard.cs
Move SaveGameCount field reset outside of the loop.
Closes #3682 ty @TheZett !

Make if-if-if an if-else since entry to one will never enter the others.
2022-12-10 14:01:59 -08:00
sora10pls
b2cbcd5139 Clamp picnic table accessory counts 2022-12-08 22:59:23 -05:00
Kurt
b29d9a65e1 Allow static encounter deerling form change match
Closes #3678
2022-12-07 23:28:47 -08:00
Kurt
0c0651f719 Show ride legend stored data
Hidden in box 33. All alone.
2022-12-05 21:05:16 -08:00
sora10pls
40701ced73 Add Mass Outbreak save blocks 2022-12-04 20:14:43 -05:00
MewTracker
703ddb866a
Added spawn points to raid editor (#3668) 2022-12-04 07:52:31 -08:00
sora10pls
fcff2925f1 Add 7 Star Raid record editor 2022-12-02 22:20:43 -05:00
Kurt
2e67526db1 Update 22.12.01 2022-12-01 22:40:11 -08:00
sora10pls
1ffd6872a8 Unban Lansat Berry 2022-11-29 21:47:42 -05:00
sora10pls
d64fdb68ad Label event raid identifier save block
0 for no event active
20221125 for Eevee
2022-11-27 21:31:04 -05:00
Kurt
6002611c80 Fix block value set cast on change language
Closes #3657
2022-11-27 10:52:01 -08:00
Kurt
4df9198ff5 Fix SeenAll/CaughtAll/CaughtNone set/clearing 2022-11-26 15:31:36 -08:00
Kurt
cee97ada26 Minor clean 2022-11-26 14:22:57 -08:00
Kurt
184c206910 Set form seen on SAV pk9 dex set
Set seen gender too
private unused flag names
2022-11-25 19:11:25 -08:00
Kurt
f1b8992989 Handle Item flag set correctly
Remove v1.0.0 bug replication
Ensure the IsUpdated flag is set when writing a non-null pouch
2022-11-25 11:21:18 -08:00
sora10pls
b4253909d7 SV cheat adjustments and additions
Remove story scenario flags from fly loc cheat
Modify shrine work value to lift seals and make sub-legendaries ready to catch
Add cheats to unlock all TM recipes and bike upgrades
Closes #3635
2022-11-25 08:21:10 -05:00
Kurt
721159b0db Add rental teams block label 2022-11-24 22:44:59 -08:00
Kurt
719ec1c6cc Add Collect All Stakes (sublegend x4) cheat button 2022-11-24 21:58:47 -08:00
Kurt
7d7d7e91c0 Add gen9 flyto unlock button 2022-11-24 21:25:52 -08:00
Kurt
25d0ff268f Fix dex species/form iteration cheats
Update Zukan9.cs
2022-11-24 19:58:32 -08:00
Kurt
b6ac0de3f7 Fix changing sav language setter block set 2022-11-24 19:13:19 -08:00
Kurt
0ea152770a Fix IsNew/IsFavorite flag clear 2022-11-24 18:32:32 -08:00
Kurt
03182ebd3d Update 22.11.24
Adds support for Scarlet & Violet.

Co-Authored-By: SciresM <8676005+SciresM@users.noreply.github.com>
Co-Authored-By: Matt <17801814+sora10pls@users.noreply.github.com>
Co-Authored-By: Lusamine <30205550+Lusamine@users.noreply.github.com>
2022-11-24 17:42:17 -08:00
Kurt
e1cf36e2c4 Add method to write both save slots 2022-10-19 20:36:56 -07:00
BlackShark
b2f5bd5bd6
Added SIZE_G3EMU (#3603) 2022-10-14 07:29:52 -07:00
Kurt
58f729122e Tweak party undo/redo logic 2022-10-09 16:15:50 -07:00
Zazsona
b804557627
Expand My Pokémon Ranch Support (#3595)
* Add RanchMii for SAV4Ranch

* Add RanchToy

* Add RanchTrainerMii

* Add RanchLevel

* Add RanchToy class; make existing RanchToy RanchToyType

* Add RanchToy and RanchLevel to SAV4Ranch

* Remove incorrect MaxPkmCount entry from RanchLevel

* Move code to remove PtHGSS data to a function in G$PKM

* Add RK4 for My Pokemon Ranch Pokemon

* Add RanchPkOwnershipType

* SAV4Ranch updates

* Fix PK4/RK4 conversion logic to stop breaking nicknames/OTs

* Fix EntityDetection.IsPresent() check tripping on the data end marker for SAV4Ranch

* Add .rk4 to README translations

* Minor tweaks

Fix RK4 TID/SID endianness/order, split Ownership enum into two enums
Condense mii classes to get/set properties
Make RanchLevel a static class for logic
Remove ClearFF for TrainerMii -- the FFFF is the string terminator char for gen4
Make Toy byte enum, with unused alignment bytes

Co-authored-by: Kurt <kaphotics@gmail.com>
2022-10-02 13:14:42 -07:00
Kurt
83d6402fd4 Add gen3 unown form-pid check 2022-09-26 07:27:51 -07:00
Kurt
0a9fbfc8c3 Size 7->8, make properties u8 instead of s32 2022-09-22 11:57:58 -07:00
Kurt
d5cdd3e6cc Update SAV1.cs
Closes #3583
2022-09-12 11:54:35 -07:00
Kurt
c5908b2b97 Disassociate metadata's SAV reference from clone
Necessary for gen3 manual overrides; the fetched properties for Metadata should refer to the cloned data that it is using, not the original reference.

Closes #3582
2022-09-11 09:59:00 -07:00
Kurt
bbc45d8b0c CXD played: Use TotalHours to set elapsed hours 2022-09-07 14:39:58 -07:00
Kurt
06196e0440 Minor tweaks
Less alloc
2022-09-04 22:23:35 -07:00
Kurt
1960b335fd Remove PersonalInfo.Abilities, use interfaces
If you must get a list of abilities, then use the span extension methods.
Also reworks some initial moveset fetching to allocate less
2022-09-02 10:20:19 -07:00
Kurt
66e0613d82 Minor clean 2022-08-30 15:00:45 -07:00
Kurt
319a671a6d Simplify munchlax tree list usage 2022-08-29 17:38:27 -07:00
Kurt
d8fe34011d Remove some bounds checks, int->byte form oops
https://github.com/kwsch/PKHeX/pull/3575#issuecomment-1229244453
ty @Kermalis !
2022-08-27 12:53:30 -07:00
Kurt
3c232505e5
Refactoring: Narrow some value types (Species, Move, Form) (#3575)
In this pull request I've changed a ton of method signatures to reflect the more-narrow types of Species, Move# and Form; additionally, I've narrowed other large collections that stored lists of species / permitted values, and reworked them to be more performant with the latest API spaghetti that PKHeX provides. Roamer met locations, usually in a range of [max-min]<64, can be quickly checked using a bitflag operation on a UInt64. Other collections (like "Is this from Colosseum or XD") were eliminated -- shadow state is not transferred COLO<->XD, so having a Shadow ID or matching the met location from a gift/wild encounter is a sufficient check for "originated in XD".
2022-08-26 23:43:36 -07:00
Kurt
eb2cef10c9 Minor clean
Stability intensifies
2022-08-22 23:18:53 -07:00
Kurt
3dde8a7cfa Reduce linq usage, minor perf 2022-08-17 23:48:37 -07:00
tastymeatball
5f3516c3ce
Fixed error getting Z coordinate (#3567) 2022-08-12 07:58:23 -07:00
Kurt
59fad0e8cf Minor tweaks
Extract some logic (origin markings)
Revise directives for NET7 targeting, remove old net5 refs
2022-08-05 16:18:42 -07:00
Kurt
94668b4672 Fix clearing of clones (off by 1 last box)
Clamp end box in the clear/modify actions too, just in case.
2022-08-05 11:24:54 -07:00
Kurt
ec45ca1a83 Set species flag on ck3/xk3->pk3
Make GetG3Species return ushort

Fixes regression caused by 5942a74147
Copying SpeciesID3 instead of Species is fine as it skips the map/unmap step, but it also skips the setting of the HasSpecies flag. So we'll just set it in the individual ConvertToPK3 methods.
2022-08-04 09:53:15 -07:00
Kurt
9166d0eb64
Refactoring: Move Source (Legality) (#3560)
Rewrites a good amount of legality APIs pertaining to:
* Legal moves that can be learned
* Evolution chains & cross-generation paths
* Memory validation with forgotten moves

In generation 8, there are 3 separate contexts an entity can exist in: SW/SH, BD/SP, and LA. Not every entity can cross between them, and not every entity from generation 7 can exist in generation 8 (Gogoat, etc). By creating class models representing the restrictions to cross each boundary, we are able to better track and validate data.

The old implementation of validating moves was greedy: it would iterate for all generations and evolutions, and build a full list of every move that can be learned, storing it on the heap. Now, we check one game group at a time to see if the entity can learn a move that hasn't yet been validated. End result is an algorithm that requires 0 allocation, and a smaller/quicker search space.

The old implementation of storing move parses was inefficient; for each move that was parsed, a new object is created and adjusted depending on the parse. Now, move parse results are `struct` and store the move parse contiguously in memory. End result is faster parsing and 0 memory allocation.

* `PersonalTable` objects have been improved with new API methods to check if a species+form can exist in the game.
* `IEncounterTemplate` objects have been improved to indicate the `EntityContext` they originate in (similar to `Generation`).
* Some APIs have been extended to accept `Span<T>` instead of Array/IEnumerable
2022-08-03 16:15:27 -07:00
Kurt
45af203a26 Fix C/XD playtime reading
ty @trigger-segfault
e611c9661e
apparently Japanese XD uses 32bit instead of 64bit, different struct size. Seems the same as the memo size being different for japanese XD too.

Since we're now using Config, apply the correct CurrentRegion/OriginalRegion values when setting a pk* to sav.
2022-07-06 17:33:15 -07:00
Kurt
e4984b203c Update SAV3GCMemoryCard.cs 2022-06-30 07:17:47 -07:00