Commit graph

952 commits

Author SHA1 Message Date
Kurt
a61d8d1efc Extract IMultiplayerSprite from SaveFile
only used by gen6 saves
2022-04-15 14:58:40 -07:00
Kurt
a681783f1a Extract interface for SaveBlock, allow strict
External users shouldn't be using SaveBlock
2022-04-15 11:45:04 -07:00
Kurt
a85737b8f6 Fix event flag row click set 2022-04-11 14:49:06 -07:00
Kurt
a5ee845c3b Decouple event flag/work from SaveFile 2022-04-09 18:12:57 -07:00
Kurt
0389624508 Extract unnecessary stringbuilding from pkmconvert 2022-04-09 11:58:52 -07:00
Kurt
e6cf5d0baf Split PKMConverter into multiple classes
EntityFormat -> detects byte[] -> ctor() PKM
EntityConverter -> converts between pkm formats
RecentTrainerCache -> used by other classes (not within EntityConverter!)
EntityBlank -> creates blank PKM objects indirectly
2022-04-09 01:39:34 -07:00
Kurt
274b613487 Change signature to set stackalloc ivs 2022-04-08 20:43:31 -07:00
Kurt
13eb244bbd Add arrows to move mail slots for gen2/3
#3470
2022-04-02 23:36:39 -07:00
Kurt
4199a93be1 Fix gen6 HoF write for TID 2022-03-27 21:37:32 -07:00
Kurt
92708ddc03 Fix some misbehaviors in mg slot swaps
PCD->PGT empty slot drops don't select the lowest empty slot, now fixed
dragdrop of empty slots (as the source) is now disallowed
2022-03-27 21:37:06 -07:00
Kurt
d02537f16e Make dragdrop work with exporting to discord
Hold shift when dropping into discord to have discord auto-send it; bump time delay to 20s for file deletes

Seems like it just wanted Effects.Copy instead of Effects.Move, nice. Used to work for a while until it didn't.
2022-03-22 23:02:46 -07:00
Kurt
46c83faa0e Refactor hall extradata to read as a separate block 2022-03-21 18:53:24 -07:00
Kurt
b45ce123da Show rainbow bean index
14 -> 15
Clean up some API functions
2022-03-08 21:02:06 -08:00
Kurt
c51d51d381 More specific primitives for Memories/others 2022-03-06 12:01:47 -08:00
Kurt
e17483fe46 some linq reduction 2022-03-05 20:03:52 -08:00
Kurt
b20566eb59 Use actual primitive instead of int
Some interfaces aren't needed to be exposed as int
2022-03-05 18:30:35 -08:00
Kurt
e5296fc51a Add IoA diglett button in Trainer editor
Closes #3454
Use ahtb sourced (hash,string) correlation from pkNX to dynamically generate block keys.

Co-Authored-By: Jonathan Herbert <3344332+foohyfooh@users.noreply.github.com>
2022-03-01 21:34:16 -08:00
Kurt
d1e62fb6d1 Add dex solitude complete mark checkbox 2022-02-28 00:03:38 -08:00
Kurt
ae74ee7931 Minor tweaks
Translation util only for debug build (unused in release)
Simplify some plugin load expressions
2022-02-26 21:45:31 -08:00
Kurt
5a71ecc8bb Minor clean 2022-02-24 23:17:16 -08:00
Kurt
adda0af96e Rework apricorn/bean editors to be text entry
Combobox for count is an antipattern, just parse like all the other quantity datagrids
2022-02-14 21:46:22 -08:00
Kurt
dc3d8e7cec Minor clean 2022-02-14 21:32:52 -08:00
Kurt
16da1deadc Revise battle subway flag handling
Retain all flag bits; expose the other 5 flag bits as some saves do have them.

Undocumented.

Closes #3422
2022-02-09 15:41:00 -08:00
Kurt
f5344452cf Fix last funfest mission record r/w
Closes #3423
2022-02-09 10:36:46 -08:00
Kurt
17495fafca Remove RightToLeft textbox setting
Closes #3410
no more occurrences of RightToLeft.Yes
2022-02-07 14:37:54 -08:00
Kurt
81c8d80bb8 Use datagrid for better performing event flag rendering
Closes #3400
Lots of controls are slow to render; datagrid is fine. Wire it up so that it detects & updates the custom research checkbox on the other tab.
2022-02-06 01:10:51 -08:00
Kurt
cd19d1d700 Fix folder list backup fetch
Introduces an option to disable reading .bak / "backup" files; trickle the changes up to all surface users so that SAV_FolderList can correctly load all .bak saves into its Backup tab.

The "ignore backups" was added in the latest feature push to ignore "backup" from being detected as the latest save.
2022-02-05 09:49:47 -08:00
sora10pls
dea2eeb0e2 Fix TR editor move strings
Thanks GlacierWolf on Discord!
2022-02-05 10:40:27 -05:00
Kurt
9bbb6f1e20 Allow GiveAll for PLA PCItems storage
Big storage box
https://projectpokemon.org/home/forums/topic/60579-pokemon-legend-of-arceus-items-issue/#comment-273030
2022-02-05 01:05:58 -08:00
Michael Scire
cb92166aa2 Fix incorrect form when saving on close without ever viewing multi-form pokemon (Closes #3386) 2022-02-04 21:07:03 -08:00
Kurt
18ecad9743 Update program GUI abstractions
Co-Authored-By: Matt <17801814+sora10pls@users.noreply.github.com>
Co-Authored-By: SciresM <8676005+SciresM@users.noreply.github.com>
2022-02-04 17:36:51 -08:00
Kurt
b0e7e86c68 Add savedata sub-menu editors
Co-Authored-By: Matt <17801814+sora10pls@users.noreply.github.com>
Co-Authored-By: SciresM <8676005+SciresM@users.noreply.github.com>
Co-Authored-By: Lusamine <30205550+Lusamine@users.noreply.github.com>
2022-02-04 17:32:16 -08:00
Kurt
36bf73818e Source trainers for encounter database
Closes #3364
Related: #3358
2022-01-03 19:33:10 -08:00
sora10pls
3f1335e19f Add Zone unlock cheat to BDSP Misc Editor
As with most event work tampering, make sure you keep save backups. Accessing areas before you're intended to will almost certainly break story progression.
2022-01-03 11:06:06 -05:00
Kurt
47071b41f3
Refactoring: Span-based value writes and method signatures (#3361)
Existing `get`/`set` logic is flawed in that it doesn't work on Big Endian operating systems, and it allocates heap objects when it doesn't need to.

`System.Buffers.Binary.BinaryPrimitives` in the `System.Memory` NuGet package provides both Little Endian and Big Endian methods to read and write data; all the `get`/`set` operations have been reworked to use this new API. This removes the need for PKHeX's manual `BigEndian` class, as all functions are already covered by the BinaryPrimitives API.

The `StringConverter` has now been rewritten to accept a Span to read from & write to, no longer requiring a temporary StringBuilder.

Other Fixes included:
- The Super Training UI for Gen6 has been reworked according to the latest block structure additions.
- Cloning a Stadium2 Save File now works correctly (opening from the Folder browser list).
- Checksum & Sanity properties removed from parent PKM class, and is now implemented via interface.
2022-01-02 21:35:59 -08:00
MewTracker
d5a79079c0
Added named constant for BDSP swarms (#3362) 2022-01-02 15:43:18 -08:00
Kurt
0cf7b22363 Fix init of custom work value, fix write of named workval
Closes #3357
2022-01-01 23:23:44 -08:00
Kurt
ae70525fd5 Use correct reference for unlocking events
Was unlocking the real save file, not the editing-shadow. Oops
2022-01-01 23:15:37 -08:00
Kurt
76cac85243 Minor clean 2021-12-27 13:50:21 -08:00
Kurt
cc8ac7a4f1 Remove unnecessary warning suppression
fixed dat .editorconfig in vs22
Catching general exceptions is okay because this program handles user modified data that can potentially be corrupt.
2021-12-27 12:09:15 -08:00
Kurt
11039f1119 Extract some event unlocking logic for core 2021-12-26 18:21:34 -08:00
Kurt
5db5f04066 Don't iterate battle forms when displaying encounter lists 2021-12-26 00:44:16 -08:00
Kurt
13e0f35e00 Add munchlax slot checking for DPPt/BDSP honey trees
Closes #3352
2021-12-25 13:48:28 -08:00
Kurt
36a97a6eda Add misc edit to defeat all trainers & rebattle all 2021-12-20 19:26:07 -08:00
sora10pls
3e92d5a85d Add Dialga/Palkia + Roamer resets to Misc Editor
For roamers, go back to Lake Valor/Fullmoon Island, and re-interact with Mesprit/Cresselia so that the game can generate a new one.

Also add Rotom rebattle event flag, and fix consistency with flag labels.
2021-12-12 11:28:48 -05:00
Kurt
aa968f56aa File scoped namespace for drawing projects
Extract color util to separate class as it's not entirely image related.
2021-12-10 00:15:04 -08:00
Kurt
f1fe2f6a8c Minor clean 2021-12-09 19:30:12 -08:00
Kurt
c7de0154e3 Handle net6 warnings for nullability 2021-12-04 22:29:51 -08:00
Kurt
f55c5bea66 Minor clean
no functional change
2021-12-04 17:56:56 -08:00
Kurt
9a1b2719ec Add simple legal item filtering for giveall
Closes #3318

Gen8: if held item, only give if can be legally held; if dmax crystal, only give if available.
Gen8b: if held item, only give if can be legally held
Others: unimplemented; pull requests accepted.
2021-12-04 12:24:32 -08:00