Kurt
229bb0d05d
Merge dualbuffer into sav4
...
SAV3 has two general save chunks and storage
SAV4 also has the hall of fame block, which is a third block; no mo
silly names !
2019-09-14 11:39:48 -07:00
Kurt
dc10c057a0
Use correct boxdata buffer when doing box manip
...
Closes #2386 ; guess I forgot to finish this.
2019-09-12 19:01:06 -07:00
Kurt
edf36e8a34
Fix sav4 checksum calc
...
DPPt have a footer that's 0x14 bytes; HGSS is only 0x10 (first u32 was
removed from struct).
2019-09-03 18:16:10 -07:00
Kurt
b81a1e1e29
Refactoring
...
Increase abstraction for arbitrary slot get/set operations, and fracture
SAV4 behavior for each game type.
Adds: Undo/Redo of party slot changes
Fixes: Fixed Gen5 daycare slot 2 reading, and EXP reading
Fixes: Some slot color glitchiness
Fixed: Box layout editor now hides the flag label if no flags are
present
Fixed: Gen7 box flags are now shown (unknown purpose lol)
Changed: savefile objects are generally smaller (removed a few shared
offset fields)
2019-09-02 19:30:58 -07:00
Kurt
f0df115ccd
Fix box load on uninitialized box load
...
Closes #2376
probably will be rewritten at a later time; am reworking the slot info
messaging for drag/drop/display
2019-08-23 18:03:10 -07:00
Kurt
9ed47cc8fd
Minor tweaks, no functional change
2019-07-21 12:30:21 -07:00
Kurt
a608e0b252
Minor clean
...
Remove some unnecessary properties from SaveFile
Enumerate checksum flag results for GC memcard checking
Remove unnecessary checks on savefile type
Add some documentation
Decapitalize some method parameters
2019-07-14 15:06:45 -07:00
Kurt
1b028198ad
Split gen5-7 saves with inheritance ( #2319 )
...
refer to pull request comments for summary
2019-06-08 19:56:11 -07:00
Kurt
2b8ef9236a
use some explicit dex numbers as enum
2019-06-01 10:22:49 -07:00
Kurt
300ef4d60a
Minor simplifications
...
Use "SetData" method to automatically apply the Edited flag
Use appropriate method for CopyTo
simplify expressions a tad
2019-04-29 17:21:19 -07:00
Kurt
0bd6caf927
Fix male-only dex bit wiping
...
only wipe the index specific bits, don't wipe everything but the index
specific bits
2019-04-22 22:25:14 -07:00
Kurt
609db23dc5
Consolidate pouch load/set
2019-03-30 16:10:14 -07:00
Kurt
bb8cf5d3d8
Simplify get/decrypt pkm access
2019-03-29 19:43:33 -07:00
Kurt
b1ead9e630
Split StringConverter into smaller pieces
...
reduces loading time (don't have to allocate conversion arrays when
launching a gen7 game), and separates things to easier to manage
locations
reworks gen3 string encode/decode, no longer does 3->4->5 and 5->4->3;
instead goes straight to the end result without an intermediary format.
String sanitization should probably be broken up rather than reused, oh
well.
2019-03-20 21:50:44 -07:00
Kurt
13a6d16cb9
Relocate checksum/dexform logic
2019-03-16 12:01:21 -07:00
Kurt
8d49400b07
Change SecondsTo* from int to uint
...
having a year > 2050 can result in a 32bit seconds value (top bit set);
instead of being negative, keep it as a 32bit number.
2019-03-05 15:55:26 -08:00
Kurt
d792c0d3a0
use u/L
...
use 'u' to denote uint values, so that less IL ops are required
~(21->17) in the case of IVs
no functional change, just a fun exercise looking at generated IL and
finding ways to use less ops
2019-02-23 15:36:26 -08:00
Kurt
a385a8481d
Misc tweak to savefile export
...
Use flags to request header/footer in the output
gets rid of the DSV/GCI bool arguments
2019-02-18 21:59:57 -08:00
Kurt
383d4b7700
"" -> string.Empty
...
be explicit that the string is empty rather than possibly missing
disallow encrypted export for BK4 (they're not encrypted), removes type
check
simplify replaceall in showdownset (don't call ReplaceAll 4x, just get
valid chars and rebuild)
simplify get ribbon sprite name (precompute ToLower and appended values
2019-02-07 21:40:20 -08:00
Kurt
59b41937e1
Misc variable name changes
...
readability++
2019-02-06 23:28:02 -08:00
Kurt
f481404503
Misc clean
2019-02-02 10:19:41 -08:00
Kurt
6ed9f979de
Continued refactoring
...
removing null results as indicators of no data (c# 8 sooooon)
2019-02-01 23:26:43 -08:00
Kurt
e028214eab
Update dex form handling for dex4
...
still not sure if it's entirely right, but at least there's no more
exceptions
https://projectpokemon.org/home/forums/topic/48288-pokedex-error-gen-4/
2019-01-05 12:37:41 -08:00
Kurt
efb9b7eba2
Misc cleanup
...
removes clickonce logic/reference
2018-12-10 20:32:08 -08:00
Kurt
4c1232855f
Add getstring method with non-sav data
2018-12-04 22:00:57 -08:00
Kurt
0f01068d0d
Update mystery match for dppt
...
off by one
2018-12-01 10:44:38 -08:00
Kurt
b280ffcfef
style updates
...
should be pretty much it
2018-09-14 22:37:47 -07:00
Kurt
189fa5f7b3
Add button to give all seals + illegal ones
...
#2112
2018-09-04 15:26:16 -07:00
Kurt
cf3aba4f84
Add gen4 seal data get/set
...
closes #2112
adds methods to give/remove all, and get/set to retrieve array or
individual.
2018-09-04 15:12:35 -07:00
Kurt
02a6d26e1b
Break apart BAKName into smaller components
...
simplifies definition & makes it easier to update bakname usage later
2018-07-29 21:51:45 -07:00
Kurt
b16015e8e5
Split InventoryPouch to inheriting classes
2018-07-29 13:55:07 -07:00
Kurt
e8644280a1
Update sav4 block detect logic
...
#2070
desmume inits a savefile to FFFFFF... others instead init to 00's.
check both init states, add IsRangeAll method
5f39118b8a
Thanks @Filo97 !
2018-07-25 16:00:52 -07:00
Kurt
99005d8fc0
Refactoring
...
more discards & simplifications
2018-05-12 12:28:48 -07:00
Kurt
5a3c8f4147
Remove trailing whitespace
2018-05-12 08:41:29 -07:00
Kurt
71faaee31c
Refactor savefile tid/sid to int
...
can now use TrainerID editor control on a savefile... soon?
2018-04-28 11:06:58 -07:00
Kurt
828636856c
Change coin cap to fixed 50000
...
#1746
https://projectpokemon.org/home/forums/topic/44503-bug-report-gen-4-coin-counts/
max is 50000
https://bulbapedia.bulbagarden.net/wiki/Coin_Case
The Coin Case can hold up to 9,999 coins in Generations I, II, and III,
and up to 50,000 coins in Generation IV.
2018-03-24 17:29:48 -07:00
Kurt
0d69e803e1
Add gen4/5 synthetic trade logic
...
was previously present for gen6 and gen7 only, resulting in eggs in
gen4/5 not getting link trade values applied. that's really all.
https://projectpokemon.org/home/forums/topic/44437-bug-eggs-transfer-for-gen-4-dppt-and-hgss/
2018-03-21 21:10:23 -07:00
Kurt
9bb4120ff9
add faster pkm slot presence check
...
instead of checking if the array is empty, only check PID and species
2018-03-18 16:22:21 -07:00
Kurt
d1a789eeab
Fix some pokedex4 behavior
...
https://projectpokemon.org/home/forums/topic/44347-gen-4-pokédex-forms-incorrectly-readwritten/
2018-03-16 17:54:47 -07:00
Kurt
102550174e
Simplification
...
invalid/unknown usages were incorrectly interchangable; dex-sets were
looking at Unknown which was impossible for some cases.
only use GameVersion.Unknown as a temp placeholder for later resolution
by the user.
2018-03-11 18:07:48 -07:00
Kurt
24982fe8c5
Misc simplifications
2018-02-28 21:05:50 -08:00
Kurt
d706d825a9
Handle legal pichu form values
...
Closes #1828 , thanks @SpiredMoth !
slightly optimize batrev key init
fix exception for pkm loading switching between gen3->4 saves
2018-02-10 17:43:00 -08:00
Kurt
2063cef3e4
Fix arrays not being cloned
...
don't use the existing data array silly -- i was paranoid long ago for a
reason
all other SAV clone methods don't return the Data array, only these
#1764 additional behavior noted
2018-01-18 14:05:34 -08:00
Kurt
659f2098a9
Fix sav4 coin read
...
#1746
2018-01-06 21:36:44 -08:00
Kurt
218c20d804
Add sav4 coin edits to misc4
...
closes #1746
2018-01-06 14:02:55 -08:00
Kurt
a1f2f8708a
Refactoring
...
pass identifier on cloning pkm
remove unnecessary ref for passing Data (not modifying array reference)
const some magic numbers
2017-12-27 16:36:24 -08:00
Kurt
3445b46526
Remove unnecessary array cloning
...
new objects would always clone the input array; only clone on object
cloning (keep the original array reference on initial creation from
bytes)
2017-12-26 21:38:19 -08:00
Kurt
9e2bd8f64a
fix pokewalker course flag set
...
07FF_FFFF
not
7FFF_FFFF
2017-12-21 14:28:19 -08:00
Kurt
9263856845
Add apricorn pouch editing
2017-12-18 09:36:53 -08:00
Kurt
0588135b60
sync missing change
...
g already used
2017-12-11 11:01:57 -08:00
Kurt
f1cabdfa25
Handle setting decrypted pgt pkm gift data
2017-12-11 10:13:08 -08:00
Kurt
5bc2e6da88
Refactoring
...
de-linq some areas where direct accessing is possible (list/array)
2017-12-04 20:16:54 -08:00
Kurt
3d7b2a2b29
Misc tweaks
...
RNG frame mismatch -> fishy (for now)
fix xmldoc copypaste
clean up some resharper warnings
2017-12-04 16:26:26 -08:00
Kurt
60e719a65a
Misc refactoring
...
more usum prep
don't allocate empty array on every savefile creation (use linq All
comparison)
add percent seen/caught savefile properties for data analysis purposes
2017-10-31 09:24:54 -07:00
Kurt
69cf1eaa9c
add more pkhex.core xml documentation
...
adds a bunch of documentation useful for those unfamiliar with the core
library
2017-10-23 23:12:58 -07:00
Kurt
1e377c2963
interpolation++
...
no functional change (assumed)
2017-09-29 22:58:25 -07:00
Archit Date
1123c24b0c
Fix Gen4 Misc options when no Poketch is obtained. ( #1448 )
...
* Fix Gen4 Misc options when no Poketch is obtained.
closes #1447
2017-09-07 12:25:45 -07:00
Kurt
93f81d554f
Misc simplifications
...
#1417
I'm pretty sure these are trainer stats, so there may be a better way of
presenting these (ie all stats) in the future (if anyone cared). Refer
to gen6/7 trainer stats as reference.
2017-08-27 12:49:05 -07:00
Kurt
b26c670985
Merge remote-tracking branch 'origin/master'
...
# Conflicts:
# PKHeX.Core/Saves/SAV4.cs
2017-08-27 12:36:56 -07:00
Kurt
8aa5d9daf0
Add pokewalker initial flags
2017-08-27 12:33:04 -07:00
Egzon Qukovci Jusufi
d0b5ceb8ff
Underground Score Editor (help needed) ( #1416 )
...
* Underground Score Editor first commit
* not needed space
* changed anchor points
* added dp offsets, ug scores to underground, underground button click code
2017-08-27 12:32:43 -07:00
Kurt
8e1105e781
Misc fixes
...
Closes #1409 , fr entries weren't tab separated
Closes #1408 , editor interface was correct (refer to checkbox order
comment in Pokedex4.cs)
Closes #1407 , XY species were copypasted to AO's
2017-08-19 18:43:36 -07:00
Kurt
4edba19a19
Add platinum wallpaper mapping
...
dp wallpapers .. pt wallpapers .. hgss wallpapers
contiguous series
24 .. 8 .. 8
Closes #1381
2017-08-05 10:16:55 -07:00
Kurt
80196f75ef
Refactoring
...
split Core.PKX into smaller classes, only StringConverter is exposed for
outside namespaces
2017-07-31 23:03:51 -07:00
Kurt
04a11ae030
Update gen4 dex seen bitflag setting
...
now matches general format of SAV_Pokedex4, bit regions were off-by-one.
2017-07-08 19:33:20 -07:00
Kurt
33dff69fb2
Add dp current poketch offset
...
Closes #1311
2017-07-06 17:32:26 -07:00
sora10pls
951bd6fac4
Fix D/P Mail Item offset
2017-07-05 12:33:04 -04:00
sora10pls
9cd85bf1db
Misc4 updates
2017-06-23 15:47:52 -04:00
Kurt
86e0374efc
Update poketch dropdown/set
...
#1263
2017-06-22 19:18:14 -07:00
Kurt
1815a7f273
Add current poketch app selection
...
Closes #1260
2017-06-21 21:07:07 -07:00
Kurt
3f38b123a3
Refactoring
...
mostly renaming things, includes a little bit of added sugar and
splitting methods to simplify the codebase.
all methods are now PascalCase
2017-06-17 18:37:19 -07:00
Kurt
8f833d8171
Simplify max item count give/modify
...
999 is true max, set suggested give count to -4 from max (or 1).
Apply giveAll's max value restriction to modifyAll
Prevent giveall/modifyall for PCItems/FreeSpace due to mixed item types.
Closes #1228
Closes #1227
2017-06-14 18:43:28 -07:00
Kurt
21ab0296f3
small optimizations
...
Add ccitt method to checksum an existing array
reduce linq usage (faster save retrieval)
misc4 line endings?
2017-06-11 00:23:04 -07:00
pokecal
753964c138
fix Gen4 Misc Resources
...
add missing FlyDst and use MetLocation string.
add TrainerCard flags to FlagEditor.
add Pt resources.
fix HoneyTree, the BlockOffset needed.
2017-06-11 03:20:55 +09:00
Kurt
be80a6b9da
Fix HGSS wallpaper get/set & editing
...
the special wallpaper values are +0x10 (ie 0x20, 0x21... instead of
0x10, 0x11) from the contiguous sequence of regular box wallpaper IDs
(anti cheat probing?).
Xor tweak allows for single invert method; use this invert with the base
implementation's method.
Range check for setting the box wallpaper (just in case). The underlying
error was fixed; the 255 val was reading from the wrong offset (now
fixed).
Thanks Scarfy!
https://projectpokemon.org/forums/files/file/1-pkhex/?do=findComment&comment=344
2017-05-23 21:38:15 -07:00
pokecal
ea33a2cb77
add EventFlags resources HGSS
...
Fix DP for consistency.
(now all DP&HGSS flag/const position number is same as in game used)
Checked with HG. SS not checked. (Groudon flag unknown)
2017-05-19 11:21:27 +09:00
Kurt
a70a4d5e3f
Switch to c# 7 get/set expressions
...
Add gen5 battle box locked flags
no functional change otherwise, just shorter
2017-05-12 20:32:43 -07:00
pokecal
d134abcd4a
add EventFlags resources DP
...
This resources include some flags, not all,
that be changed when defeated/captured in game,
but sufficient to repop.
2017-05-13 10:15:13 +09:00
Evan Dixon
52c4fbbe97
Converted PKHeX.Core to .Net Standard
...
Refactored and rearranged things as needed to allow the change
2017-05-11 23:34:18 -05:00