Kurt
9c58903f55
Fix blank sav3 : sapphire init
...
lol it's been this way for 7+mo
Closes #2369 ty @CorvusAtrox !
2019-08-04 00:59:59 -07:00
Kurt
f462f49eec
Fix sav7 map data rw
...
https://projectpokemon.org/home/forums/topic/54197-issues-with-newest-version-of-pkhex/
2019-08-02 15:11:22 -07:00
Kurt
9ed47cc8fd
Minor tweaks, no functional change
2019-07-21 12:30:21 -07:00
Kurt
894237449b
Allow differentiation between SAV2 blanks
...
Choosing G/S will initialize as GS
Choosing C will initialize as C
calling via their own code (GSC/GS) will choose the most recent (crystal
if possible).
Closes #2359
2019-07-14 15:13:13 -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
839500a7ee
Fix medicine offset for AO
2019-07-13 17:43:29 -07:00
Kurt
82f305cd36
Fix dex gender set again
...
Closes #2356
update test case to actually set a genderless gender
2019-07-12 23:43:12 -07:00
Kurt
face8d64a9
Fix gen5 dexflag set
...
Add unit tests to check
Closes #2356
2019-07-11 00:13:52 -07:00
Kurt
c64ff5dd76
Fix sav5 behavior
...
Closes #2356 ty @Ammako
2019-07-10 00:19:59 -07:00
Kurt
cf0908a21e
Remove check for impossible conditions
...
#2354
SUBE is never < 0 with the latest change (blank saves behave same as
retail saves).
2019-07-08 10:03:53 -07:00
NotTsunami
e29da1a8e8
Remove check for impossible condition in XY Save ( #2354 )
...
XY can't be ORASDEMO
2019-07-07 22:58:33 -07:00
Kurt
15c44139c3
Fix record read offset
...
Closes #2353
first 100 are u32, second 100 are u16; shift accordingly
2019-07-07 14:54:38 -07:00
Kurt
8f88e630c2
Fix ORAS inventory class type
...
now no longer removes items from pouch
https://projectpokemon.org/home/forums/topic/53761-oras-item-problems-with-new-version/
2019-07-07 08:43:58 -07:00
Kurt
772a2715c0
Fix SecondsTo* read offset
...
copypasted from gen6's, oops
Thanks CreamatedReptile2018!
2019-07-07 08:43:04 -07:00
Kurt
f2ac29ff4e
Relocate some logic
...
slightly reduces savefile.cs footprint
2019-07-05 22:02:29 -07:00
Kurt
9a61f0de0f
Minor relocation of logic
...
and the gradual shift to full-oop continues
2019-07-05 21:39:47 -07:00
Kurt
c0eda5eb61
Add more dex bulk manip options
...
unused, not sure how an abstraction can work for all games (needs some
virtual methods to actually work, since 1-3 don't have langflags)
2019-07-05 18:49:43 -07:00
Kurt
aa94c70df2
Hide gen6 dex logic behind zukan class
...
Same as prior commit for gen5 & gen7
2019-07-05 18:04:36 -07:00
Kurt
adbb3e842a
Hide gen7 dex logic behind zukan class
...
Same as prior commit for gen5
2019-07-05 17:05:42 -07:00
Kurt
79a9269fbe
Hide gen5 dex logic in Zukan class
...
Didn't change any of the bulk modifications, but the data get/set is now
done via the Zukan object rather than raw data manipulation
2019-07-05 16:21:53 -07:00
Kurt
7f186048fb
Really fix dex lang flag offset style
...
c345688f6d
base(x) -> base(x - y) resulted in incorrect offsets for LGPE. Great.
Just make PokeDexLanguageFlags a shift offset instead of absolute;
update all usages.
Closes #2348
2019-07-05 12:16:09 -07:00
Kurt
599ec4ed45
Fix checksum offset fetch
...
#2348
2019-07-05 11:57:40 -07:00
Kurt
810f7271c6
Clear boxes after initialize
...
Closes #2349
2019-07-05 11:53:13 -07:00
pokecal
6b3d6999d1
update MailBoxEditor ( #2344 )
...
fixed FRLG offset, etc.
2019-07-04 21:48:18 -07:00
Kurt
5a8b421672
Add jp crystal eventflag offset
...
was pointing to an FF'd region, was added back via
e86b8c670f
Closes #2347
2019-07-04 15:07:37 -07:00
Kurt
c345688f6d
Fix dex lang bitflag offset write
...
LangFlags is expected to be less than 0x500 or whatever, zero indexed to
the start of the dex block; NOT an absolute position.
I don't feel like making every usage consistent (gen5, gui editors)
which use the absolute position, so just adjust in the zukan
constructors
2019-06-22 16:53:25 -07:00
Kurt
e81e5f31da
Remove shadow info index shift
...
Thanks @PP-theSLAYER !
https://projectpokemon.org/home/forums/topic/53405-bug-oddity-with-shadow-recognition/?do=findComment&comment=246125
2019-06-20 20:39:34 -07:00
Kurt
dc813da2f7
Add DisplayTID/SID getset
2019-06-19 17:49:56 -07:00
Matt
08835d5d97
Fix ORAS held items/personal reference ( #2329 )
2019-06-19 12:18:09 -07:00
Kurt
de77f949da
Prevent assert on non-exportable saves
2019-06-17 20:55:01 -07:00
Kurt
7225b2b87b
Add more sav1/2 option properties
...
Closes #2321
Closes #2322
no gui as SimpleTrainer is kinda getting overloaded; use linqpad or wait
for someone to make a GUI for the specific games
2019-06-09 14:15:42 -07:00
Kurt
455ab32722
Retain override version on clone
...
Also hide the pika friend label when YW features hidden #2283
2019-06-09 13:48:51 -07:00
Kurt
a30a00317f
Add missing trainer location overrides
...
Was missing from #2319
2019-06-08 20:19:39 -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
de774ed131
readonly ComboItem
...
create once, never modified after
2019-06-01 19:12:41 -07:00
Kurt
2b8ef9236a
use some explicit dex numbers as enum
2019-06-01 10:22:49 -07:00
Kurt
144a78d688
Relocate method
2019-05-29 16:42:48 -07:00
Kurt
8d781fd167
Simplify sorting to remove linq usage
...
create custom comparer to do the work
reorder some parameters
simplify gb hm set (All and FindIndex is duplicate work)
only usages of linq remaining are for the bulk action Where filtering
(ok)
2019-05-28 22:55:41 -07:00
Kurt
a45cddd3ed
Add missing hax item clamp early return
...
Closes #2281
remove unnecessary "else", and break for visual separation
2019-05-27 21:38:04 -07:00
Kurt
827eb94f3c
Add GameSync r/w for lgpe
...
https://projectpokemon.org/home/forums/topic/52797-request-lgpe-game-sync-like-value-to-be-added/
ty @PP-theSLAYER !
2019-05-16 22:26:51 -07:00
ReignOfComputer
7625ab66b4
Fix Import Count on Load Boxes ( #2308 )
...
Calculation was wrong if non-overwrite is selected. Also fixed OCD-triggering extra space in output message.
2019-05-15 09:11:48 -07:00
Kurt
be8e8851e2
Update 19.05.15
2019-05-14 22:47:48 -07:00
Kurt
091b9e2281
Add g4 poffin editor (misc edits)
...
Thanks @sora10pls for docs!
https://pastebin.com/jNeVJQi0
2019-05-13 22:56:45 -07:00
Kurt
76e3174d8c
Add gen4 poffin logic
...
800 bytes starting at Offset = SAV.DP ? 0x5050 : 0x52E0;
8 bytes per poffin, 100 poffins.
2019-05-13 18:42:30 -07:00
Kurt
15f93216bd
Fix record flag clearing
...
yay missing ~, Closes #2301 ty @CanoeHope !
rewrite flag loading to not use linq
2019-05-12 15:08:04 -07:00
Kurt
bad16adcee
Fix sav7b clone method
...
underlying data should be a different reference when cloned
2019-05-12 15:06:50 -07:00
Kurt
21e7f4317e
Minor updates
...
increase readability, simplifly some expressions
relocate hot path for legality report string creation
2019-05-11 10:12:14 -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
7c380a29c3
Make sort skip delegate more general
2019-04-29 17:20:16 -07:00
Kurt
0dc45c00ec
Check block index before calculating
...
Missing/Duplicate blocks (???) result in -1, so skip them.
https://projectpokemon.org/home/forums/topic/52437-cant-export-unmodified-sav-file/
replace linq with manual allocation
2019-04-27 17:19:54 -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
934595126f
Simplify qr gender
...
use personalinfo object to do majority of work,
end result has the 4 sequential bytes set neatly
2019-04-15 15:43:48 -07:00
Kurt
27dfffd5b2
Add model-gender/starter-gender get/set
...
https://projectpokemon.org/home/forums/topic/52127-lgpe-save-research/?tab=comments#comment-243751
Thanks theSlayer!
(starter gender not modifiable via gui)
2019-04-10 17:03:05 -07:00
Kurt
82fb95b436
Add ConfigSave language get/set
...
This value is what determines what language the game runs with
2019-04-09 21:19:08 -07:00
Kurt
2f2512b09c
Reduce allocations for checking file write time
...
FileInfo inherits from FileSystemInfo, which initializes a bunch of
strings that we don't need
this isn't a great optimization, just a fun exercise finding a quicker
approach to get these values
2019-04-05 18:45:59 -07:00
Kurt
bbe56a3318
Simplify trade trainer parameters
...
Bank was always false, don't try to minimalize gets by fetching before
call (be simple)
remove unreachable branches now that dust has settled
2019-03-30 22:05:28 -07:00
Kurt
e614aa9ac8
Relocate xd/batrev encryption
...
update some xmldoc too
2019-03-30 21:28:32 -07:00
Kurt
f212ba29c9
Misc reductions
...
same stuff as previous commit but for Gen2
EventConstMax is always > 0, remove guards
2019-03-30 16:38:52 -07:00
Kurt
4f347fbfa9
Misc reductions
...
no functional change
2019-03-30 16:21:45 -07:00
Kurt
609db23dc5
Consolidate pouch load/set
2019-03-30 16:10:14 -07:00
Kurt
e1a3c8edb3
Add RTC reset, allows game to define on continue
...
Closes #2273 , thanks @SatoMew !
2019-03-30 12:34:51 -07:00
Kurt
bb8cf5d3d8
Simplify get/decrypt pkm access
2019-03-29 19:43:33 -07:00
Kurt
5dcf2f4dc8
Use enum instead of nullable bool tristate
2019-03-29 17:52:26 -07:00
Kurt
4f2b9baede
Add missing stamp
...
Closes #2274
2019-03-29 09:40:31 -07:00
Kurt
4650a6f5b5
Reduce sizes
2019-03-22 21:19:47 -07:00
Kurt
cce362b98a
Relocate FFFF trim (and 0000) to same location
2019-03-20 22:13:09 -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
8a08d32dff
Simplify pkm constructors
...
remove Identifier param. 99% of the time, identifier is not provided,
resulting in a useless call
end result:
provide 'create new' and 'create from' constructors
2019-03-16 18:41:56 -07:00
Kurt
5765ce8229
Extract gc version IDs to separate logic
2019-03-16 16:48:38 -07:00
Kurt
ebc7c6ae29
Remove PKX.LCRNG method
...
Duplicate with RNG.LCRNG
reuse cryptarray for gen5 mysterygift r/w
2019-03-16 16:25:25 -07:00
Kurt
13a6d16cb9
Relocate checksum/dexform logic
2019-03-16 12:01:21 -07:00
Benjamin Sinkula
e4d59b8b98
Add PlayerNames and MatchDate to BV7
2019-03-15 14:35:55 -05:00
Kurt
41bc3f6182
Fix header'ed file export
...
For xd, getfinaldata returned a standard 344KB save, but then slapped it together with the inner savedata (0x28000 bytes) rather than using the GCI header. Don't use 'Data'
2019-03-15 10:26:16 -07:00
Kurt
e8a5a55323
Add union/berry crush stat ids
2019-03-09 10:26:43 -08:00
Kurt
0d5ee9489b
Fix memcard sav cloning
...
Closes #2267 , Thanks @PMArkive && @Subject21J !
2019-03-07 18:05:55 -08:00
Kurt
bd00680545
Fix incorrect block index ref
...
https://github.com/kwsch/PKHeX/issues/2267
Still doesn't fix the underlying issue
2019-03-07 17:30:50 -08:00
Kurt
ee787a0f71
Fix HoF size check
...
now matches the code in ChecksumsValid (< instead of <=)
2019-03-07 15:45:51 -08:00
Kurt
61bf82e2bd
Add gs event flags
...
https://projectpokemon.org/home/forums/topic/49717-pkhex-flag-editing/?tab=comments#comment-240804
via pret repo; looks like 2000 event flags, and 0x100 event
consts/work-vals (byte)
add more rebattle toggles
2019-03-05 23:06:05 -08: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
bb2c7e22cb
Add HoF checksum verification and saving
...
Thanks @av🥑 cado#0315 (discord)
2019-03-02 09:16:03 -08:00
Kurt
30e36579be
Misc updates
...
add more xmldoc
revise some comments for clarity
redo a little bit of logic for perf
rename some methods for better description
2019-02-24 13:57:10 -08:00
Kurt
993bb00a61
Remove powersave unused logic
...
unused & deprecated in favor of using cfw (powersaves price >>>
ntrboot-b9s flashcart)
2019-02-23 18:02:50 -08:00
Kurt
7ba21c5d8c
Use subsection fetch
2019-02-23 17:59:46 -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
5b29e71954
Misc tweaks
...
no functional change, just rewrite some logic for better flow
fix subform popup count restriction (OwnedForms requires forms to be
added/removed manually; it doesn't automatically update)
sanitize box names when dumping boxes with separate folders (and bad box
names)
2019-02-23 14:58:48 -08:00
Kurt
17f954b4e8
Xmldoc
...
Reorder to match parameter order
add more xmldoc
2019-02-23 14:57:35 -08:00
Kurt
ca51edbdcf
Change sav.LoadBoxes to return int
...
make MysteryGift specific method flexible so that any IEncounterable
enumerable can be passed.
2019-02-23 14:37:06 -08:00
Kurt
a339cc9289
Extract pouch manipulation logic
...
add overloads for API syntactic sugar
make ItemConverter internal again
2019-02-22 22:48:34 -08:00
Kurt
df94afa711
Misc updates
...
extract some enums to core, use Enum.GetNames to do string fetch
make stamp listbox taller
clean up Display*ID setters
2019-02-21 21:54:41 -08:00
Kurt
cffa6e681d
Add OT name setter
2019-02-20 21:52:22 -08:00
Kurt
ba6a958a1d
Add xmldoc, make manip not fetch all BoxData
2019-02-20 19:39:49 -08:00
Kurt
d3dd4fb2a5
Track slot modified count on sort/delete/mod
...
Sorting will always show multiples of boxcount since it repositions
empty slots
2019-02-20 17:59:54 -08:00
Kurt
40963c012a
Add sav3 BP Earned editing
...
misc editor, first tab (main)
2019-02-19 20:59:47 -08:00
Kurt
fa4318ae2f
Add gen3 record editing
...
in misc edits window
2019-02-19 20:46:58 -08:00
Kurt
fb8aa3bba0
Lowercase parameter
2019-02-19 20:26:20 -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
7c3e5aa83c
Make RandomGender a method instead of property
...
See pkNX for similar change; the functionality is really *method*
2019-02-17 22:13:40 -08:00
Kurt
258f0f0ad4
Minor refactoring
...
clean up some gc logic, no functional changes
2019-02-17 10:42:43 -08:00
Kurt
d1f6a5a3ff
Misc clean
...
no functional change
2019-02-15 11:46:46 -08:00
Kurt
858760fa28
Misc updates
...
relocate program language enum
test that test case is proper
move getcompatible & gettemplate to core
remove catch rate changing for pk1 (catchrate editor now used instead)
2019-02-15 00:50:23 -08:00