Kurt
803b8675fe
Rework batrev current slot handling
...
Show all slots even if they're uninitialized. Empty first slots but present second slots caused errors on init.
2021-01-20 20:29:26 -08:00
CanoeHope
121ae9b611
Rename SWSH blocks and update Chinese HGSS Event Constant ( #3131 )
...
* Update TrainerCard8.cs
* Update SaveBlockAccessor8SWSH.cs
* Update const_hgss_zh.txt
2021-01-19 12:46:54 -08:00
Kurt
b5c30193fa
Set initial capacity for stringbuilder to reduce reallocation
...
Default capacity is 16 so it's rarely an issue, but sometimes we don't need that much.
Update xmldoc for more clarity
2021-01-16 17:31:05 -08:00
Kurt
613e6db744
Use StringConverter api consistently; use stringbuilder when possible
...
Retain a stringbuilder to mutate the string rather than finalizing temporary strings
yields some speed improvements (less gen0 string objects allocated)
2021-01-14 22:50:13 -08:00
Kurt
6566b0ed1f
Add Pokedex flag properties
...
Closes #2954 ; can set directly from propertygrid already, but might as well clean things up a little bit to match the disassembly logic.
Open the simple editor center parent rather than next-form-position
2021-01-09 23:27:22 -08:00
Kurt
2deb51b365
Minor optimization for hashing
...
don't use FIPS compliant hashing methods explicitly, no real reason to. hash.Create() will select managed vs csp depending on the framework/core and reg flags.
add >net46 incremental hash logic for swsh
remove static sha256 instance (single threaded overkill)
2021-01-08 00:32:04 -08:00
Kurt
86d80a7d0b
Minor perf improvement for advancing keys
...
Further improvements can be made if there's a way to have a union struct (4 u16s, lumped u64) that has a simple 4bit diagonal mirror operation on it. Can be at least twice as fast.
Benchmarking with optimizations shows about 80-90% of the prior time taken, so at least a 10% speed optimization
Rarely used, was fun to try and optimize a little more.
Eliminate bounds checks by accessing/setting the highest element, and only index twice instead of 6x.
Eliminate u16 casts by leaving as int type (same result)
Eliminate temp value caching and instead directly write to storage. (no more _0123).
End result looks neat too, since the >> 0's removed looks like a diagonal, like the nibble rotation :D
2021-01-07 20:50:28 -08:00
Kurt
1138cd44bc
Minor rearranging
2021-01-07 18:05:21 -08:00
Kurt
19d40f61f5
Move save crypto types to focused folder
2021-01-07 16:01:34 -08:00
Kurt
f615814548
Add xmldoc, increase swish util flexibility
2021-01-07 15:34:26 -08:00
Kurt
5554651951
Mark scxorshift32 and xoro128p as ref structs
...
Prevents passing them as args, as intended. These are self mutating structs
2021-01-07 15:33:42 -08:00
Kurt
1c19bc86f4
Preallocate some holding objects to prevent doubling allocations
...
Saves 12 doubling reallocations for new List to hold blocks
Saves 21 for the memorystream on writing
2021-01-07 09:37:27 -08:00
Kurt
6e741a0cf0
Minor tweaks
...
Add xmldoc
Remove linq from memecrypto code (speed lmao)
Hide some methods that shouldn't be called directly
Name variables better for accessor const's
2021-01-06 23:30:30 -08:00
Kurt
9718d1d2aa
Add save handler abstraction for detecting atypical save formats
...
GCI, DSV, DUC are already supported, so I've written the abstraction for those and seed the Handler list on startup.
Can add a new class with recognition via SaveUtil.Handlers.Add(myHandler);
2021-01-06 15:46:43 -08:00
Kurt
373aecdf7c
Merge GO IV checks, behavior is now correct
...
Rename IV1/2/3 to HP/ATK/DEF in gp1 structure
2021-01-05 09:39:50 -08:00
Kurt
cc43550357
Simplify more expressions
2021-01-04 17:31:43 -08:00
Kurt
ad48f4e909
Set languageID if present for sav
...
Lowercase the "SAV" variable too
2021-01-04 16:28:46 -08:00
Kurt
cbc57dc794
Force sav1 BU to init as japanese
2021-01-04 15:18:16 -08:00
Kurt
0ab3493335
Skip save sub-type detection if we already it
2021-01-03 18:11:59 -08:00
Kurt
730640decc
Minor clean
2021-01-03 16:53:13 -08:00
Kurt
f785231692
Fix backup filenaming
2021-01-02 10:34:33 -08:00
Kurt
09089da14e
Use more expression return style
...
Reduces indentation & bracketing, a bit more concise
2021-01-01 17:08:49 -08:00
Kurt
1d22b74970
Remove unused block class
...
Copied from Gen7b, swsh is just a key,value list
2021-01-01 16:57:18 -08:00
Kurt
7523e0e200
Make ContestStat fields byte (from int)
2021-01-01 13:39:08 -08:00
Kurt
f4bf9dd208
Minor clean
...
add download count to changelog
move 2019 changelog to uncompiled resource (for record)
2020-12-31 10:36:09 -08:00
Kurt
2af9e800fb
Add RotomAffection and rotoloto1/2 flag editing to GUI
2020-12-29 11:39:19 -08:00
Kurt
d9a4eacaf4
Allow deactivating all raids
2020-12-29 10:53:47 -08:00
Kurt
e8c23f6644
Simplify some repeated comparisons with expressions
...
Less prone for bugs since it uses the same value for all comparisons without re-specifying
2020-12-29 00:37:59 -08:00
Kurt
c119f18af3
spec->species
2020-12-28 22:22:52 -08:00
Kurt
ee5349ff98
moar is or
2020-12-25 12:30:26 -08:00
Kurt
4a8a495d04
Condense some switch expressions
...
Should be it for now; exhaustively searched for all that made sense to change
2020-12-25 10:58:33 -08:00
Kurt
43dd390f21
Split IContestStats, mark trades as records
2020-12-24 00:06:40 -08:00
Kurt
93910df2c6
Use new switch statements
2020-12-23 17:14:38 -08:00
Kurt
324ce9d6ac
Minor clean
2020-12-23 09:34:29 -08:00
Kurt
e34c8df044
Revise some method signatures
2020-12-22 20:50:33 -08:00
Kurt
997e0751f3
Minor clean
...
Handle remainder of c#9 sugar
Fix some spelling mistakes
2020-12-21 23:37:07 -08:00
Kurt
514b60b447
Merge type check with usage in if statements
...
if x is y with z property true, then :D
2020-12-21 22:33:48 -08:00
Kurt
594db92ad0
Minor clean
...
Handle some stragglers
2020-12-21 17:48:08 -08:00
Kurt
98be0f6739
Target type'd new
2020-12-21 17:17:56 -08:00
Kurt
0303eada32
this is not that
...
clearer than before, yay
2020-12-21 17:12:39 -08:00
Kurt
5729718d68
Simplify ternary byte casts
...
No longer needed to explicitly cast, thanks c#9 !
2020-12-21 16:53:28 -08:00
Kurt
62018cce1a
Unify concepts with different names
...
AltForm & Form & Forme => Form
GenNumber & Generation => Generation
Extract out SpeciesForm interface, and re-add IGeneration
For those using PKHeX as a dependency, this should be a pretty straightforward manual replacement... GenNumber and AltForm should be quick find-replace`s.
2020-12-10 20:42:30 -08:00
Kurt
a13c2c852c
Add some comments, clean a little
2020-12-07 20:14:12 -08:00
Kurt
98ef0299b6
Add xmldoc for save meta/state tracking
...
Move some logic around to the more appropriate spot
2020-12-07 19:49:04 -08:00
Kurt
6f7602f2ad
Change signatures to use readonly if possible
...
Extract get/set team methods for battle video
2020-12-05 06:09:33 -08:00
Kurt
e72c80613e
Extract metadata/state tracking from SaveFile obj
2020-12-05 05:36:23 -08:00
Kurt
e54e94a734
Don't waste alloc on clearing titlescreen slot
...
Revisiting #3098 #3086
2020-12-01 07:19:21 -08:00
CanoeHope
228042b111
Properly set empty slots to Trainer Card ( #3098 )
...
#3086
Was only partially addressed -- it was only done for Title Screen and not League Card too.
2020-11-30 21:38:15 -08:00
Kurt
fefc38bacb
Minor debug optimizations
...
Trees:
- Only retain the objects needed after calculation
- Reduce size of TreeCoordinates and remove allocation penalty (now a struct)
No more warnings for Release compilation :D
2020-11-28 14:55:09 -08:00
Kurt
9b178fefe2
Xmldoc, minor tweaks
...
Move form-info logic from FormConverter to AltFormInfo; now FormConverter is entirely form=>string[]
Add a bunch of xmldoc
Make pogo no-end-date cmp agaisnt UTCnow rather than local now.
2020-11-27 11:51:02 -08:00
Kurt
d6294d42f7
Update SAV1.cs
2020-11-24 10:51:31 -08:00
Kurt
4a8ad8b149
Expose raw evolution chain methods
2020-11-17 14:23:15 -08:00
Kurt
b1ae53ec63
Set empty slots if party not full
...
Closes #3086
2020-11-15 14:31:33 -08:00
Kurt
df5ebd1f54
Minor clean
...
Resolve some messages
2020-11-11 21:01:41 -08:00
CanoeHope
a569d91c5e
Add CurrentDex Block ( #3081 )
...
Block-Key was present since IoA (1.2.0) update.
2020-11-05 14:08:04 -08:00
Kurt
ae85097c2d
Allow go shiny xor!0
...
Thanks @Lusamine for bruteforce testing to confirm
2020-11-04 20:55:47 -08:00
Kurt
23e765e550
Add opening for rental team dumps
...
Dunno why anyone would want these, lol
Closes #3074
2020-11-03 20:12:42 -08:00
Kurt
62073f5fd9
Update GP1.cs
2020-11-03 19:28:41 -08:00
Kurt
a2fb9c48eb
Add fused calyrex block
2020-11-01 17:55:52 -08:00
Kurt
ef7d1e2af5
Add lair start seed
...
ty zak
2020-11-01 14:40:16 -08:00
Kurt
28767df0fb
Split gamesync details to interface
2020-10-31 11:43:57 -07:00
Kurt
c9587c16c7
Adapt dropped/opened PKM to currently loaded savefile
...
Closes #3067
2020-10-30 22:44:08 -07:00
Matt
cd42abd915
Add Split-Decision Ruins save block key ( #3065 )
2020-10-30 13:17:25 -07:00
Matt
1b6a8d3ff6
Document Galarian Star Tournament save blocks ( #3060 )
2020-10-28 12:46:34 -07:00
CanoeHope
37053fb599
Add CrownDex complete to Trainer Card ( #3058 )
...
With this, all Dex markers can be displayed on your League Card as long as your save is from update 1.3.0. Expansion Pass DLC is not required.
2020-10-27 18:06:49 -07:00
Kurt
5b313210ed
Handle SWSH gender strings same as LGPE
...
See 6a0a6aa82a
for more context
2020-10-27 09:24:06 -07:00
CanoeHope
e22be71a26
Added one more Max Lair Block ( #3055 )
...
So I said that 0xF26B9151 was the first Max Lair Pokemon entry saved in my previous commit which turned out to be wrong and was in fact the Pokemon that is to be hinted by Peonia. Apologies for that mess up.
2020-10-26 21:24:04 -07:00
Lusamine
cce6402608
Fix incorrect offset for first Max Lair saved note ( #3053 )
2020-10-26 07:42:40 -07:00
CanoeHope
36a9ef05db
Added more Tundra Blocks ( #3051 )
...
Max Lair related.
2020-10-25 20:54:15 -07:00
CanoeHope
5722905e5d
Added Crown Tundra Block Data ( #3047 )
...
The Tundra League Card block literally only stores the Normal and Rare Peony League Cards, and nothing more.
2020-10-25 18:09:23 -07:00
Kurt
61fc0c7504
Update SaveBlockAccessor8SWSH.cs
2020-10-25 18:08:52 -07:00
Kurt
7e8a1a58d1
Set gender on pokdex registration
...
Closes #3045 , ty @xXAquaNightXx !
2020-10-24 15:42:17 -07:00
Kurt
919f3f2893
Update RaidSpawnList8.cs
...
Co-Authored-By: Leanny <1884062+Leanny@users.noreply.github.com>
2020-10-24 12:38:33 -07:00
Kurt
5fa4ddd4a2
Update internal data sources for Crown Tundra
...
Co-Authored-By: Matt <17801814+sora10pls@users.noreply.github.com>
Co-Authored-By: ReignOfComputer <2667537+ReignOfComputer@users.noreply.github.com>
2020-10-24 11:11:05 -07:00
Kurt
8a2a25fde1
Update data structures for Crown Tundra
...
Adds a wild area Raid den detail editor like mainland/armor raids.
2020-10-24 11:09:29 -07:00
Kurt
d35766649b
Fix initial blank sav language load
...
(uint)-1 <= max now returns false, causing it to fall back to english.
2020-10-18 19:59:22 -07:00
Kurt
14a678b57d
Revise save detect logic flow
...
Double-Clicking SAV tab no longer hides any error message; now shows it like the auto-detect would.
Move high-level detection method to Core
2020-10-18 19:49:46 -07:00
Kurt
cce4707604
Enable nullable for winforms csproj ( #3037 )
...
Handle all warnings
obviously the usage of null! could potentially be avoided if the object init wasn't such garbage, but here we are with years of old junk and lack of abstraction in the GUI project
2020-10-18 11:02:39 -07:00
Kurt
7a01b1249c
Minor clean
...
Handle more messages, add more xmldoc
2020-10-18 09:43:41 -07:00
Kurt
38b03a42b6
Fix hide flag get/set
...
Closes #3030
2020-10-16 16:12:42 -07:00
Kurt
7b6f30b779
Handle overflow case
...
Co-Authored-By: Matt <17801814+sora10pls@users.noreply.github.com>
2020-10-12 14:37:08 -07:00
Kurt
a71940bf75
Update CaptureRecords.cs
...
Co-Authored-By: Matt <17801814+sora10pls@users.noreply.github.com>
2020-10-12 14:34:44 -07:00
Kurt
0a6534a208
Extend individual transfer count to 999mil
...
Closes #3028
Thanks @CarlosofKalos !
Setting 9999 for both on Rattata; capturing the 10,000th didn't increment, but transferring the 10,000th did.
Co-Authored-By: Matt <17801814+sora10pls@users.noreply.github.com>
2020-10-12 14:16:55 -07:00
Kurt
3b4fd49af9
Catch any exception, show message in result
2020-10-12 10:42:26 -07:00
Kurt
d66c406751
Update SAV1StadiumJ.cs
2020-10-10 15:28:34 -07:00
Kurt
f821d698fe
Update SAV1StadiumJ.cs
2020-10-10 15:11:02 -07:00
Kurt
2e82636f1e
Fix slot writes
2020-10-10 14:59:51 -07:00
Kurt
7132750c9b
Placeholder crown tundra logic
...
To be updated:
- Tables8: magic numbers for maximums
- IGigantamax: any new gigantamax forms?
- FormConverter: any new forms? (calyrex)
2020-10-10 13:14:32 -07:00
Kurt
b97bee4412
Use correct filesize reference
2020-10-10 12:50:57 -07:00
Kurt
79f60d2236
Update SAV1Stadium.cs
2020-10-09 22:11:32 -07:00
Kurt
bb65f2d2c2
Show trainer name&id for registered Stadium teams in dropdown
2020-10-09 20:31:13 -07:00
Kurt
9d21e5acdd
Add GUI for Capture Records
...
Accessible from Pokedex window
ur welcome matt
2020-10-08 18:06:29 -07:00
Kurt
804b85ea33
Add CaptureRecord block interaction
...
No GUI
Co-Authored-By: Matt <17801814+sora10pls@users.noreply.github.com>
2020-10-08 15:28:25 -07:00
Kurt
aa43904869
Add stad2 boxnames, registered flag handling
2020-10-05 08:29:17 -07:00
Kurt
d4452ce3af
SK2 coerce to load to a hint language
...
This format won't be supported cleanly, so let's just try to allow language detection to work as best as it can without storing metadata in the SK2 bytes.
2020-10-04 14:42:48 -07:00
Kurt
09c6359e3a
Add flexibility for SK2 imports
...
Check language character table for English vs Japanese when loading for a destination
2020-10-04 10:25:34 -07:00
Kurt
3fd6817a42
Refactoring: Finalize Stadium savefile logic
...
Extract common abstract class for shared logic
Clean up property/field/method ordering to be consistent and logical (roughly: attributes, constructors, state management, retrievable values, static methods)
Apply default language OT name
2020-10-04 09:23:16 -07:00
Kurt
d13b893351
Use PKHeX as blanksav language
...
Closes #3009
Make QRPK7 implement IEncounterable and remove hardcoded PKHeX strings
Let force hatching for WC3 eggs try to hatch from the savefile's language, then revert to english if failed to set an OT.
2020-10-04 08:59:33 -07:00
Kurt
8a7ed99689
Fix s1 team export
...
oops
Add a tostring override to help visually debug
2020-10-04 08:06:44 -07:00
Kurt
fbc4c5038a
Set box metadata on write
...
Fix group export for 1U to exclude the right set of teams
0J now shows the correct amount of boxes & teams (halved)
2020-10-04 07:51:55 -07:00