Kurt
7911cd6d5c
Seal some classes
2022-03-06 12:16:36 -08:00
Kurt
e1414a0bea
Move some interfaces to different folder
...
No code changes
2022-03-06 12:06:50 -08:00
Kurt
c51d51d381
More specific primitives for Memories/others
2022-03-06 12:01:47 -08:00
Kurt
47f7efab2c
Update SCBlockAccessor.cs
2022-03-06 00:46:10 -08:00
Kurt
9632ad44fd
Span-ify HiddenPower methods
...
Zero heap allocation Hidden Power bruteforcing via Heap's algorithm
2022-03-06 00:43:49 -08:00
Kurt
41d2dd9294
Update EncounterTrade for Shiny metadata
...
Doesn't need to be stored in most cases
Now permits EncounterTrade1 to be shiny
2022-03-05 21:04:18 -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
1b266c1e4b
Handle PLA MMO formarg deferral
...
Can capture formarg evolved stuff directly in wild
2022-03-05 18:54:50 -08:00
Kurt
3d9c7dc750
Reduce IAwakened from int->byte
2022-03-05 18:46:03 -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
9696da2eb3
Minor clean
...
Seal ComboItem
Reorder methods for easier reading
Fix BulkGenerator living dex setting CurrentLevel -- needs to be after species,form as EXPGrowth can vary for forms.
2022-03-05 18:13:31 -08:00
Kurt
3c567c0c97
Rearrange some scblock logic
...
No functional change. just increasing robustness
Decouples exportable state from get/set values
2022-03-05 17:46:03 -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
90b075947d
Move some get/set operations into Accessor class
...
Adds exception-free get/set for revised saves.
2022-03-05 17:33:08 -08:00
Kurt
8f0035a577
Deduplicate savefile constructors
...
No longer necessary as we don't keep BAK reference anymore.
2022-03-05 17:15:38 -08:00
Kurt
8fdd96209c
Deduplicate some logic
...
No need to length check in the SwishCrypto hash check, as the methods pre-check length as well.
Extract checksum footer check for Gen5 saves
2022-03-05 17:14:25 -08:00
Kurt
1f07685921
Update MyStatus8b.cs
2022-03-05 15:17:13 -08:00
Kurt
f3b3f15035
Add exp > lvl100 check
...
stop directly writing EXP values lol
2022-03-05 09:12:43 -08:00
Kurt
3ebf5279cc
Add .X=*Y (property copy) feature
2022-03-04 22:35:04 -08:00
Kurt
d0f2b6eeb5
Add .CurrentLevel=$suggest for min legal level
2022-03-04 22:34:11 -08:00
Kurt
6ae59c509f
IGanbaru int->byte fields
2022-03-04 22:34:11 -08:00
Kurt
7443db3564
Update some xmldoc
2022-03-04 22:34:11 -08:00
Kurt
7cfdb8a466
Move hashing to SCBlockAccessor, fix #3455
...
Fixes #3455 by adding bool for insular sea, and adjusting overall progress values as listed.
Closes #3456 (supersedes)
Updates SCBlockAccessor to eliminate bounds check (integer overflow, which isn't possible with our array size), adds some overloads, and xmldoc.
Co-Authored-By: Jonathan Herbert <3344332+foohyfooh@users.noreply.github.com>
2022-03-02 18:05:13 -08:00
CanoeHope
e507d4ab91
Update SaveBlockAccessor8LA.cs ( #3453 )
2022-03-01 21:34:37 -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
415c5f5560
Update SCTypeCode.cs
2022-03-01 19:09:42 -08:00
Kurt
8c9c5e0198
Update 22.03.01
2022-02-28 23:16:17 -08:00
CanoeHope
e792c038b8
Label a new L:A update block ( #3452 )
2022-02-28 22:47:30 -08:00
Kurt
50828fa1bb
Change some field types, reduce memory usage
2022-02-28 22:46:59 -08:00
Kurt
2991f62052
Reduce allocation for eggmove loading
2022-02-28 18:24:11 -08:00
Kurt
b0f846ae35
Optimize bdsp eggmove bin
...
Strip out unused entries
Use form-less loader format (nothing has formed eggmoves), just let shellos-1 use shellos-0's table.
2022-02-28 18:24:11 -08:00
Kurt
21a77f2197
Guard against invalid egg move indexing
2022-02-28 16:57:51 -08:00
Kurt
d1e62fb6d1
Add dex solitude complete mark checkbox
2022-02-28 00:03:38 -08:00
Kurt
85e422c225
Compress PLA wild bin resource
...
Change the data structure so that different locations are tied to the table, rather than separate usages of the table.
This de-bloats from 344KB->85KB and has less runtime memory consumption.
2022-02-27 15:08:53 -08:00
Kurt
c2f7003f38
Update Encounters8a.cs
2022-02-27 14:13:35 -08:00
Kurt
c2e9401468
Add computed new huge outbreak slots
2022-02-27 13:51:33 -08:00
Kurt
e5e2a3427f
Rename Silver SV->SI
...
SV will likely be the lump for SCarlet and VIolet
2022-02-27 11:16:12 -08:00
Matt
0d96d801ac
Unban Sketch Seed Flare, Oak’s Letter hatch locs
2022-02-27 13:15:01 -05:00
Kurt
ff58d1bb68
BDSP Shaymin encounter uncomment
...
Now available via oak's letter
2022-02-27 09:00:11 -08:00
Kurt
b3cd4dea25
Initial support for PLA-v1.1
2022-02-27 07:56:47 -08:00
Kurt
044dfe46ae
Reduce allocation on encrypt/decrypt
...
Xor no longer allocates
Encrypt no longer allocates byte[0x60]
temp now allocated on stack instead of heap
Pre-size memorystream (prevents 0xF0 allocation)
2022-02-27 01:05:11 -08:00
Kurt
76afe91bbb
Allocation free besides ctor
2022-02-26 21:39:50 -08:00
Kurt
3bef0452d6
Update bdsp underground table for area6
...
819b90f931
Closes #3450
2022-02-26 11:54:24 -08:00
Kurt
dd4c2a349c
Fix moving 5th party slot between boxes
...
Thanks Burning Justice !
https://projectpokemon.org/home/forums/topic/60789-error-when-attempting-to-edit-pokemon-battle-revolution-save/
2022-02-25 16:32:15 -08:00
Kurt
fd07456ee1
Fix boolean value copy changes
...
a5710ee374
2022-02-25 16:10:49 -08:00
Kurt
ccca8abdad
Remove fixedball for go7, reset h/w/cp
...
Now that we have accurate calcs, let's just generate them with the values.
2022-02-25 13:52:50 -08:00
Kurt
a5710ee374
Fix PLA box flag setter
...
nice boo boo matt
2022-02-25 13:29:43 -08:00
Kurt
5a71ecc8bb
Minor clean
2022-02-24 23:17:16 -08:00
Kurt
cd043bce04
Extract egg met location
2022-02-24 23:14:40 -08:00
Kurt
ab62e76505
Handle alolan vulpix suggestion scenario
2022-02-24 22:47:48 -08:00
Kurt
a276975847
Don't throw exception in safe block search
...
Just duplicate the method to return fake default instead of trycatch overhead.
2022-02-24 21:02:08 -08:00
Kurt
32789d5609
Fix WB8 friendship check
...
Similar to WA8 friendship check. Previous personal table repoint didn't work because WB8 have .Version=BDSP.
7b05d0c056
Works fine now.
Closes #3448
2022-02-24 20:17:58 -08:00
Kurt
bdbd9fc899
Add error message if user moves file for backup
2022-02-23 21:53:01 -08:00
Kurt
65130a9ae1
temp fix for some fixed h/w statics
2022-02-22 23:18:10 -08:00
Kurt
fc3f142d16
Update 22.02.22
2022-02-22 21:40:01 -08:00
Kurt
2753927942
Ignore empty slots in pre-filter
...
Add Palma property to PK8 per bdsp disassembly
2022-02-22 07:34:43 -08:00
Kurt
75bd26d056
Add new Illegal (clone/glitch abuse) flag + check
2022-02-21 20:13:27 -08:00
Kurt
0404b94f86
Add support for BDSP 1.2.0 save files
2022-02-21 18:11:35 -08:00
Kurt
5b981f2832
Un-secret the bulk PKM validator
...
Now has its own button next to verify checksums.
2022-02-21 17:46:32 -08:00
Kurt
2870163fff
Don't check handler friendship if already invalid
...
prevents generating an unnecessary exception when gen == -1
2022-02-21 17:46:03 -08:00
Kurt
48742da4ae
Ignore BDSP backup paths
...
"Backup.bin"
2022-02-21 17:45:23 -08:00
Kurt
f1264a1a97
Handle struct default ctor 17.1 handling
...
Closes #3445
2022-02-21 16:11:58 -08:00
sora10pls
91d1a91142
Add Pokémon Day distribution raids
2022-02-21 19:05:34 -05:00
CanoeHope
61821c7986
Add L:A blocks and BDSP event constants ( #3444 )
...
* Update SaveBlockAccessor8LA.cs
* Update work_bdsp_en.txt
2022-02-20 22:46:20 -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
f2637168ab
Fix kor string writes
...
Was writing kor string, then writing en after (all terminators).
Make method signature match other SetString, with write buffer as first arg
Closes #3440
2022-02-17 23:11:13 -08:00
Kurt
51975e4bdd
Only push move if doesn't already have
...
Closes #3439
2022-02-17 20:53:21 -08:00
Kurt
dc3d8e7cec
Minor clean
2022-02-14 21:32:52 -08:00
Kurt
7b05d0c056
Fix base friendship check for PLA piplup WA8
2022-02-13 15:25:45 -08:00
Kurt
03b8ceb5ab
Allow TypeSuggestion to operate on interfaces
...
Add ganbaru clear/suggest, lgpe iawakened clear/suggest, hyperatrain/geolocation clear
2022-02-13 11:02:22 -08:00
Easy World
843e065fb4
Add batch command to suggest HeightAbsolute & WeightAbsolute ( #3435 )
...
Already available for PB7, this adds it for PA8.
2022-02-13 07:10:26 -08:00
Kurt
013fe95c8d
Update 22.02.14
2022-02-13 01:18:19 -08:00
Kurt
2267e1a879
Minor tweaks for api consumers
...
Indicate Shiny.Random on home shiny-possible gifts
More detailed exception message for GetLearnset/GetPersonal
2022-02-12 23:40:28 -08:00
Kurt
0eece2711a
Set the calc h/w float regardless of epsilon
...
epsilon no longer required per #3417
closes #3434
2022-02-12 18:48:33 -08:00
Kurt
cedf13c343
PK4: Fix DP met location write
...
Closes #3431
2022-02-11 16:28:51 -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
bb2b8e74c3
Update SCBlock xmldoc
2022-02-10 11:08:30 -08:00
Kurt
a5d1bf7900
Fix cxd pouch write, bk4 pid reads
...
Closes #3429
2022-02-10 10:57:59 -08:00
Kurt
a287efe3a1
Inline pk2/pk3 form setter, only SetGender if different
...
Helps out ALM generate unown
2022-02-09 20:20:32 -08:00
Kurt
6da235f0e8
Set 3 flawless IVs if randomizing alpha IVs
...
Closes #3428
2022-02-09 19:26:18 -08:00
Kurt
d17639f956
Add alpha move for encounter slots
...
oops
Closes #3427
2022-02-09 19:21:45 -08:00
Kurt
bc2549b24e
Minimize BAK file allocations ( #3426 )
...
Stop allocating an entire shadow copy of the save file whenever we create a new savefile object from file.
Prior commits added the clear SaveFileMetadata class to cleanly track the file path. Backups are copied from the original path.
2022-02-09 16:48:55 -08:00
Kurt
04856122b7
Simplify landmark alpha move match check
2022-02-09 16:17:44 -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
39e47dbb82
Flag SWSH tutor moves
2022-02-09 15:06:14 -08:00
Kurt
f5344452cf
Fix last funfest mission record r/w
...
Closes #3423
2022-02-09 10:36:46 -08:00
Kurt
988385e450
Add accurate Colo EReader PID generating
...
Closes #3421
Needed to force the locks, since they themselves are nature/gender locked.
2022-02-09 09:26:10 -08:00
Kurt
80eac48a49
Fix no alpha move bypass for alphas
...
https://projectpokemon.org/home/forums/topic/57375-pkhex-new-update-legality-errors-contribution-page/?do=findComment&comment=273294
2022-02-08 23:16:00 -08:00
Kurt
9c5955c104
Emulate Height & Weight float calculations matching the game ( #3417 )
...
* Accurately implement height/weight calc
* Handle GUI reads
Having Auto off will read and write the values correctly
F6 will handle all the decimal points possible
* Remove no longer needed tolerance check
2022-02-08 18:56:11 -08:00
CanoeHope
08f8b6e3d4
Add Legends: Arceus blocks ( #3403 )
...
* Update SaveBlockAccessor8LA.cs
2022-02-08 18:50:52 -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
556f711728
Remove random EC set for Trade8b
...
EC is fixed, in the template
2022-02-08 17:37:33 -08:00
Kurt
2f5635613e
Update TechnicalRecordApplicator.cs
2022-02-08 08:55:56 -08:00
Kurt
c7f24eecd0
Parse shiny/gmax Yes with any case/culture
2022-02-08 00:00:52 -08:00
Kurt
59144ddb0d
Check level for new evo methods
...
Can't learn move below this level
2022-02-07 21:46:05 -08:00
Kurt
b06f889cdd
Update 22.02.08
2022-02-07 20:13:19 -08:00
Kurt
e12f3004ad
Post-check defer if catchrate disallows tradeback
...
Closes #3412
2022-02-07 18:44:29 -08:00
Kurt
a7051107ea
Conditionally set PP Ups and Purchase/Mastery flags on set import
2022-02-07 15:40:02 -08:00
Kurt
b20fb39d77
Don't set dex on slot swap within save
...
Closes #3411
2022-02-07 15:03:26 -08:00