Kurt
70ea1f7048
Move some files around
2022-03-15 19:23:03 -07:00
Kurt
b45ce123da
Show rainbow bean index
...
14 -> 15
Clean up some API functions
2022-03-08 21:02:06 -08:00
Kurt
4e1276a954
-8 bytes from each encounter template
...
saves about ~1MB RAM savings (>=179,142 objects)
2022-03-06 23:25:47 -08:00
Kurt
ba9d3c95af
Fix bean get/set
2022-03-06 15:33:33 -08:00
Kurt
9049ef99fd
Minor allocation reduction
2022-03-06 13:03:39 -08:00
Kurt
7911cd6d5c
Seal some classes
2022-03-06 12:16:36 -08:00
Kurt
e17483fe46
some linq reduction
2022-03-05 20:03:52 -08:00
Kurt
1c0f842173
Remove unnecessary Clone method for Items
...
Remove linq using by doing things slightly more efficiently
2022-03-05 19:51:16 -08:00
Kurt
1370d9ab0f
Merge SAV8 into SAV8SWSH
...
Was originally expected that gen8 was going to be a pair+revision generation, but with BDSP and PLA being totally different games, there's no need to have inheritance complicating a single SWSH class.
2022-03-05 17:34:09 -08:00
Kurt
1f07685921
Update MyStatus8b.cs
2022-03-05 15:17:13 -08:00
Kurt
d1e62fb6d1
Add dex solitude complete mark checkbox
2022-02-28 00:03:38 -08:00
Kurt
b3cd4dea25
Initial support for PLA-v1.1
2022-02-27 07:56:47 -08:00
Kurt
0404b94f86
Add support for BDSP 1.2.0 save files
2022-02-21 18:11:35 -08:00
Kurt
f1264a1a97
Handle struct default ctor 17.1 handling
...
Closes #3445
2022-02-21 16:11:58 -08:00
Kurt
d5be6254f3
Add logic for PLA wild RNG correlation ( #3443 )
...
Adds structures to read/write saved spawner data such as seeds, counts.
Adds generator and validator to emulate the FixInitSpec builder used by the game logic
Similar to SW/SH raids, validating these in-process is not feasible due to the number crunching required.
This does not handle the encounter slot call or the follow-up level range call. Just the inner FixInitSpec ctor & fill.
level is calc'd:
randFloat(sum) -> slot float
rand.Next() -> gen_seed (for all the details)
rand.NextInt(delta) +min -> level
Co-Authored-By: Lusamine <30205550+Lusamine@users.noreply.github.com>
2022-02-20 17:59:48 -08:00
Kurt
dc3d8e7cec
Minor clean
2022-02-14 21:32:52 -08:00
Kurt
574a7f43a0
BDSP: Handle uninitialized box names
...
span refactoring didn't catch this
also apply same change for gen4 battle revolution string reads
2022-02-11 10:43:27 -08:00
Kurt
a5d1bf7900
Fix cxd pouch write, bk4 pid reads
...
Closes #3429
2022-02-10 10:57:59 -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
5cdfe18b8e
Add 7b Starter choice
...
Closes #3420
Co-Authored-By: GiftedK <99304781+GiftedK@users.noreply.github.com>
2022-02-08 18:49:44 -08:00
Kurt
5c33245221
Update MyItem8a.cs
2022-02-04 22:28:07 -08:00
Kurt
e2bafab3c2
Clamp pouch inventory per satchel size
...
Closes #3384
2022-02-04 22:18:57 -08:00
Kurt
0b32cbf132
Update PKHeX.Core abstractions with latest logic
...
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:35:15 -08:00
Kurt
691f941bb6
Add savedata models
...
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:31:20 -08:00
Kurt
752ddc1a88
Move SWSH save abstractions to subfolder
2022-02-04 17:22:33 -08:00
Kurt
da9d09ea76
Misc tweaks
...
No functional change
2022-01-11 22:53:20 -08:00
Kurt
1992f36c5b
Fix gen3 item quantity reads
...
Oops :)
Closes #3369
ty @MichiS97 !
2022-01-09 20:34:55 -08:00
Kurt
9cde291595
Enumerate ability permissions in encounter templates, misc updates ( #3368 )
2022-01-08 22:34:04 -08:00
Kurt
7743b30b2f
Fix species being replaced with incorrect mapping
...
XD shadow monitor stores the Gen3-mainline-SpeciesID instead of nationaldex ID.
Remap the values on the fly.
Pass the data via span to save a 8KB allocation for sav ctor
Closes #3365
2022-01-07 17:48:12 -08: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
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
4e7e23cb88
Add battle tower record editing
2021-12-20 23:48:05 -08:00
Kurt
36a97a6eda
Add misc edit to defeat all trainers & rebattle all
2021-12-20 19:26:07 -08:00
Kurt
98713f4d7b
Move inventory item clearing to class
...
Fixes ClearItem offset being wrong
2021-12-13 18:31:00 -08:00
Kurt
cacd6e9965
More records/sealing
2021-12-05 23:54:59 -08:00
Kurt
7e4877e7de
Add 3 more useless blocks
...
Spinda registers correctly now, lol
2021-12-04 23:52:33 -08:00
Kurt
88ddc5822e
c#10: readonly record structs
...
Reduces some boilerplate constructors/equality compares
2021-12-04 18:32:35 -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
Kurt
e50bb8f288
Abstract-ify pouch items; acknowledge sort order
...
Closes #3320
Should better handle bdsp inventory format; shows sort order with the now-zero slots
2021-12-02 23:31:48 -08:00
Kurt
b74283560d
Add more useless bdsp saveblock objects
2021-11-30 22:05:20 -08:00
Kurt
8c9fb3a872
Add FieldObjectSave browser
2021-11-30 17:31:46 -08:00
Kurt
1c82b707f3
Add xmldoc, add egglevel get central location
2021-11-30 17:09:46 -08:00
Kurt
1bb3255ab1
Add randomgroup block
...
Still does the same silly ARNG as gen4:
seed = 0x6C078965 * seed + 1;
to advance on each day
Do note that it sets event flag 1711 to true, and sets the absolute value of the "Random" to Work[436]. FLAG_DAILY_RANDOM, WK_DAILY_RANDOM, assumedly for easy use with scripts.
2021-11-28 23:31:01 -08:00
Kurt
0189e84263
Clear all flags on seen none
2021-11-28 11:55:31 -08:00
Kurt
be3af9fba9
Add bdsp poffin editor
...
The RAM is pretty dirty for unallocated poffins; slots that have never been filled will have junk with whatever the unallocated pointer was looking at.
An empty poffin slot is just marked as FF, ignores the stats for that slot. Not sure on the naming, but Matt had a single Level 60 poffin -> must be Mild? Thus, all the names are -1 from the textfile array...
2021-11-27 02:06:35 -08:00
Kurt
fd4dd6e2fb
Indicate teamlocks in boxes
2021-11-26 19:54:07 -08:00
sora10pls
8bce248d95
Crop BDSP Box Wallpapers, re-tile Grass, and fix off-by-one
2021-11-26 22:11:54 -05:00
Kurt
2560d0eb28
Change safari seed to uint
...
matches community handling of seeds
2021-11-26 11:31:00 -08:00
Kurt
5d4a8e5328
Add Mystery Gift records for BDSP
2021-11-26 11:08:51 -08:00
Kurt
6fb1634a2f
Show internal affixed seal enum name for tostring
2021-11-26 09:35:25 -08:00
Kurt
b50791530c
Add ENC_SV_DATA, PLAYER_SAVE_DATA, capsules, UgCountRecord
2021-11-26 01:21:38 -08:00
Kurt
b7c9993bac
Add Misc editor form for bdsp
...
Three clickables so people can stop getting confused about event-bound encounters like Darkrai/Shaymin/Spiritomb
2021-11-25 22:48:09 -08:00
Kurt
02dc4dc8a7
Automatically update v1.1 expanded records on TID/SID change
...
Closes #3305
I think it was actually crashing due to the bad GameClear date record, not this extra record data, but we'll still update the head record
Fix note of ENC_SV_DATA start offset now that we know the real size of Record8b
Add actual maximums for all record entries
2021-11-25 20:05:39 -08:00
Kurt
1a9f9fcfe5
Add more savedata notes
2021-11-25 18:09:05 -08:00
Kurt
95bdde69a7
Add more savedata abstractions
...
Array sizes for the top level structures are now noted, should make it easier to determine the shape of them & offsets.
2021-11-25 16:38:58 -08:00
Kurt
d79864b049
Add seal list editor
...
Inject all the stickers you want.
2021-11-24 17:51:12 -08:00
Kurt
a7ab45746c
Set both gender flags for genderless species
...
Nice deviation from mainline logic :)
2021-11-24 17:02:29 -08:00
Kurt
dc0f56e790
Add underground save structure documentation
2021-11-24 00:45:11 -08:00
Kurt
086c6492f2
Add trainer rebattle status block logic
2021-11-22 20:54:12 -08:00
Kurt
97960d4439
Add placeholder berrytree+poffin blocks
2021-11-22 20:20:57 -08:00
Kurt
1ab895a6c4
Restrict constructor to BDSP save type
2021-11-22 19:31:19 -08:00
Kurt
d81f832a61
Fix Record8b capping first record (uncapped)
2021-11-22 19:30:51 -08:00
Kurt
4b40414b8b
Add BattleTower work reader, move BP get/set into it
2021-11-22 19:30:28 -08:00
Kurt
a9bc86bb13
Clear deleted item slots
...
Closes #3304 ty @MewtwoFanz
2021-11-21 17:49:34 -08:00
Kurt
9b8f1c8305
Allow multiple diggerdrill
2021-11-21 12:52:16 -08:00
Kurt
32edb660ce
BDSP: Add underground item-inventory editor
2021-11-21 11:33:04 -08:00
Kurt
ee567a7d15
Add systemtime, (underground item, poketch, both no GUI)
...
systemtime to be integrated to trainer info editor later
2021-11-20 23:54:27 -08:00
Kurt
9d5cff5221
Add daycare reader, show playtime in backup filename
2021-11-20 19:10:42 -08:00
Kurt
6980026ca2
Add BDSP trainer stat records
...
Continue crawling down the serialized savedata structure :)
2021-11-20 15:40:18 -08:00
Kurt
723514e89c
Update 21.11.19 - Brilliant Diamond & Shining Pearl ( #3289 )
...
Big thanks to @SciresM @sora10pls @Lusamine @architdate @ReignOfComputer for testing and contributing code / test cases. Can't add co-authors from the PR menu :(
Builds will fail because azure pipelines not yet updated with net6.
2021-11-19 18:23:49 -08:00
Kurt
3bf8d2fe07
Add rival string editing for all remaining games
...
Block Editor for direct edits, no GUI
Co-Authored-By: FeralFalcon <33670476+FeralFalcon@users.noreply.github.com>
2021-10-10 16:11:46 -07:00
Kurt
40031fd94d
Fix give all goods for ORAS secret base
...
was overwriting pokepuffs, oops
2021-10-08 12:43:24 -07:00
Kurt
08b7d7ebfe
Update Misc5.cs
...
#3259
2021-09-18 17:52:58 -07:00
Kurt
0c83da7c1b
Add Poké Transfer minigame score editing (Gen 5)
...
Closes #3259
Co-Authored-By: FeralFalcon <33670476+FeralFalcon@users.noreply.github.com>
2021-09-18 16:31:22 -07:00
Kurt
4fb0f96dc4
Add daycare slot view for lgpe
...
Co-Authored-By: Matt <17801814+sora10pls@users.noreply.github.com>
2021-09-16 14:21:44 -07:00
Kurt
26422bc17c
Add Crystal blue card points get/set
...
Co-Authored-By: FeralFalcon <33670476+FeralFalcon@users.noreply.github.com>
#3258
2021-09-16 13:16:12 -07:00
Kurt
819b884b19
Update EventWork7b.cs
2021-09-05 13:07:33 -07:00
Kurt
a7ed5b400f
Add Trainer Class / Title property for LGPE
2021-09-04 22:04:49 -07:00
Kurt
f9d9bcfb80
XD: Purification is stored differently for jp games
...
A more condensed data structure, 72->60 bytes for each entry instead.
Closes #3255
Related? #2956
2021-09-03 18:16:09 -07:00
Kurt
6e9f230dee
Add cxd/rsbox event data for mainline sav3
...
Closes #3248
2021-08-22 18:52:29 -07:00
Kurt
8f0fb902d1
ArgumentException -> ArgumentOutOfRangeException
2021-08-21 16:51:50 -07:00
Kurt
5da9b4a70a
Force alignment
...
FieldOffset isn't implied, fun.
2021-08-20 22:07:09 -07:00
Kurt
05364212ba
Update Encount5.cs
2021-08-20 20:53:23 -07:00
Kurt
9ef93552c9
Add ability to set swarms for gen3
2021-08-20 20:50:16 -07:00
Kurt
48024f1245
Add Swarm data get/set for gen3-5
...
#3245
2021-08-20 19:52:31 -07:00
Kurt
bedc52943e
Trailing commas
...
No functional change
2021-08-20 13:49:20 -07:00
Kurt
c6342a163f
Minor clean
...
variable swaps, simplifications
2021-08-20 13:42:25 -07:00
Kurt
9793e9f1a0
Minor clean
...
Slap on interface for EntreeSlot
De-magic some 💯 numbers to indicate what they're doing
Improve perf of move-match-relearn check
Add an "else" as valid is never both values (history verifier)
2021-08-13 15:36:30 -07:00
Kurt
0f3e5095c5
Replace more linq usage
2021-08-05 22:39:38 -07:00
Kurt
5c472a400d
Expand shorthand parameters
...
int i => int index, or whatever the value is representing.
2021-08-05 20:33:25 -07:00
Kurt
cc0397f087
Misc tweaks
...
Improved readability
2021-08-05 15:18:43 -07:00
sora10pls
bfcf081e5b
Fix XY multiplayer sprite display
...
Reorder enums; Serena before Calem
2021-08-05 16:22:06 -04:00
Kurt
1efebe51d3
Simplify Country/Region/ConsoleRegion to byte from int
...
Only exists in gen6/7 games.
2021-08-02 19:43:57 -07:00
sora10pls
3fdf1396aa
Update TrainerFashion6 structure
...
Rename EyeShadow => Eyeliner, fixes labeling for fields and getters for lip color and freckles data
2021-07-31 16:00:10 -04:00
Kurt
0c6254835d
Add battle agency slots to main window misc viewables
2021-07-26 23:57:05 -07:00
Kurt
4ed0e30ace
Minor tweaks
...
Muh infinitesimally small perf gainz found while waiting for next dota match
2021-07-26 23:33:56 -07:00
Kurt
c9640f8561
Comments: forme->form
2021-07-26 14:14:39 -07:00