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