Kurt
d772a82953
Move batch editor logic to core
...
previous hurdle a year ago was propertyinfo fetching not looking at the
base class's properties; dig deeper for all properties to mimic existing
code for netframework
end result is batch editing now possible without gui
2018-05-17 22:43:07 -07:00
Kurt
51a4d8095d
Handle jp OT string length copy
...
Closes #1949
was using international length (11) instead of (6)
2018-05-16 16:58:00 -07:00
Kurt
99005d8fc0
Refactoring
...
more discards & simplifications
2018-05-12 12:28:48 -07:00
Kurt
e2f11edc43
Refactoring
...
discards, Array.Find over FirstOrDefault
2018-05-12 08:41:29 -07:00
Kurt
5a3c8f4147
Remove trailing whitespace
2018-05-12 08:41:29 -07:00
Kurt
7ce89f0e16
Fix frlg inventory encryptionkey offset
...
72af1f7880/include/global.h (L219)
0xAF8 is berry powder! Thanks HaiPhuong!
2018-05-11 19:55:40 -07:00
Kurt
232427d002
Rework slot interactivity a little
...
decentralize some logic, individual view providers now provide the
details rather than detecting from a huge array.
#1925
2018-05-05 08:07:22 -07:00
Kurt
4c9177fcb3
Add sort force-reverse
...
hold control when triggering the sort
sneaky linq to reverse a sort by:
* re-doing the initial sort, then
* reversing the sorted pkm data by using a throwaway increment
* re-doing the final sort
2018-04-30 21:39:12 -07:00
Kurt
57c625d089
Add delete criteria method providing for box clear
...
Can opt to not delete a slot
2018-04-30 17:29:13 -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
15ce1acfdb
update box manipulation
...
closes #1911 , changes end to be inclusive rather than exclusive. abuse
the optional to let it fill in the end caps.
2018-04-23 19:11:55 -07:00
Kurt
9e874a0784
Add modify handling to 'sorter' dropdown
...
adds hatch all eggs in box(es, with shift)
2018-04-22 12:43:18 -07:00
Kurt
488b5215a7
add optional sort param
2018-04-21 15:07:58 -07:00
Kurt
5d8ccf12d4
Fix kor playtime read
...
Closes #1888
Thanks @Bl4ckSh4rk !
2018-04-06 17:15:34 -07:00
Kurt
1122a3f21e
Shift kor gs pokedex bitflag region
...
-0x20 yields a match for seen/caught
https://projectpokemon.org/home/forums/topic/44692-i-have-a-question-about-gen2-of-pkhex/
Thanks BLACKBIRD!
2018-04-05 17:00:55 -07:00
Kurt
f56696bf5c
expand sorting capability
...
can replace the sorting function in SaveFile with any of the other
behaviors (or can just get->sort->set BoxData)
2018-04-04 20:30:49 -07:00
Kurt
2f30eb7c78
Fix rsbox checksum calc/write in blockinfo
...
F004-chk returned 32bits instead of 16
writing was writing to the head of the save file (lol)
2018-03-30 15:56:59 -07:00
Kurt
a0eb658ef2
Extract minimum trainer information requirements
...
If one wanted to extend ConvertToPKM to other IEncounterables, this
would be the provided obj containing the receiver's info
allows pkm gen without a savefile, which is nice?
2018-03-28 15:55:19 -07:00
Kurt
99a4c55579
Relocate some logic to core
...
party stats set when setting a slot to a save file
simplify set/delete slotchange duplicate logic
suggest better met locations beyond VC transfers
hatching a gen6 egg applies memories automatically
2018-03-25 19:05:49 -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
c229d5cef4
Add RS & FRLG mail offsets
...
was only emerald prior
Thansk @Bl4ckSh4rk !
https://projectpokemon.org/home/forums/topic/44433-bug-rubysapphire-mailbox/?do=findComment&comment=228885
2018-03-23 23:06:51 -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
f103a84fbd
add duc reading
...
i dont really want to add more than this, header/footer conversion can
be done separately.
2018-03-21 17:01:07 -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
88ce27f26b
Add R/S roamer data offset
...
is different from emerald
Thanks TetsuyaGR!
https://projectpokemon.org/home/forums/topic/44407-bug-rubysapphire-roamer-bug/
(use concatall in encounters4)
2018-03-18 08:37:40 -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
22bde0af52
Fix incorrect variable reference
...
new SAV3() throws exception, no more!
2018-03-11 14:42:56 -07:00
Kurt
24982fe8c5
Misc simplifications
2018-02-28 21:05:50 -08:00
Kurt
934757eac1
Add Bank7 r/w
2018-02-24 13:03:32 -08:00
Kurt
f9002c6cc9
Add trashbyte copy for OT import on gen1/2
...
Closes #1849
NAME_LENGTH is 11 for both gens and the offsets don't vary between
languages, so it's a simple fetch.
2018-02-22 22:42:50 -08:00
Kurt
ee1196a57d
Set playedtime accurately
...
closes #1847
override playtimestring if max time... better than nothing
2018-02-21 15:22:43 -08:00
Kurt
d20f14504e
Refactoring
...
pull out BlockInfo logic, standardize common block checking
reduces array allocations
2018-02-19 11:33:37 -08:00
Matt
43d8f74342
Fix Swampert dex forms ( #1839 )
2018-02-16 16:30:34 -08:00
Kurt
f8bf3e400b
Misc tweaks
...
Add bulkstorage SaveFile template
remove unused using
un-virtual box property (don't override behavior)
Split new-USUM island names (unused)
Remove island names from valid egg locations (thanks Davil !)
https://projectpokemon.org/home/forums/topic/43874-bug-met-location/?tab=comments#comment-227684
2018-02-15 17:05:45 -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
07bd2412cb
Add all deco unlock
...
#1819
not exposed via GUI
2018-02-07 18:29:45 -08:00
Kurt
af0e05f6af
Fix sav editing from direct memcard saves
...
Thanks @sora10pls for finding this
(just use the existing MC data)
2018-02-06 20:33:32 -08:00
Kurt
d9d27a52b7
Refactoring
...
explode xorpad into more reusable ideas
2018-02-01 22:09:31 -08:00
Kurt
1ca9180e21
use SlotList view to dynamically show slots ( #1798 )
...
Closes #1795 by redoing the controls
Allows for a specified slot type & offset to be passed, can easily add extra slots by updating the GetExtraSlots extension method.
2018-01-30 18:52:55 -08:00
Kurt
834d115e3a
Add extra slot fetch utility
...
fix resort offset fetch (+=4)
2018-01-29 20:15:51 -08:00
Kurt
e472bfe278
Refactoring
...
move slotchange to core
2018-01-29 17:52:21 -08:00
Kurt
9085dfd950
Allow backwards conversion on hax
...
works somewhat on drag&drop individual files, not guaranteed to work for
all pkm formats
https://i.imgur.com/v3i3ON9.png
Closes #1792
2018-01-28 22:47:03 -08:00
Kurt
eb505303bb
Fix vc backups acting like gb era saves
...
ends with .dat only works if the real file ends with dat
load the filename data after stripping off the bak filename data
#1787
2018-01-28 00:03:49 -08:00
Kurt
4c93183575
Add jp vc gen2 sizes
...
so many so consistent
2018-01-25 18:30:09 -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
b74bf7d499
Misc simplification
...
no functional change, just compute hash over array span instead
2018-01-15 17:51:33 -08:00
Kurt
06733d6e34
Refactoring
...
Split up c-gear skin bitmap, move generic handling to core
2018-01-13 21:31:02 -08:00
Kurt
6caefef181
Add cgb->psk & misc clarifications
...
Closes #1699
tested on black2 & white, skin isn't corrupt on game boot and appears
correctly
still don't like setpixel/System.Drawing reliance (maybe split logic to
CGearSkin & CGearSkinVisualizer) for PKHeX.Core compat
2018-01-13 16:32:57 -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
34188f275a
misc perf improvements
...
reduce linq usage / reduce obj creation in tight loops
speed++
2017-12-29 10:40:00 -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
61b65198f2
Allow box name editing on gen2
2017-12-27 15:52:29 -08:00
Kurt
1e388fb85a
Add first unown seen on dex set
...
immediately after unown dex:
c2a7216d9b/wram.asm (L2714-L2722)
per discussion on forums:
https://projectpokemon.org/home/forums/topic/43179-bug-unown-sprite-glitched-in-pokédex-in-gen2/?tab=comments#comment-225342
expose some useful properties for the pkhex.core api (unlock all, unlock
individual, define which unown shows up)
2017-12-27 09:56:04 -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
47eee3aa98
Add roto powers as held items
...
not gonna add sprites because these are useless, anyone can submit via
pr (image might need downscaling to <15x15)
Closes #1703
remove useless null checks (throws the exact same exception it would if
it were not there, except without detail)
2017-12-16 19:52:06 -08:00
Kurt
2dbdb35955
Misc tweaks
...
possibly fix UI not-1x scaling screwing up drawn pkm images with
items/shiny/illegal.
simplify some logic -> speed improvements (wow so noticable /s)
2017-12-16 18:29:10 -08:00
Kurt
06ea6d94a2
Allow box layout / wallpaper editing for sav5
...
was temporarily disabled during sav5 implementation 2y ago, now noticed.
Closes #1702
2017-12-16 14:15:09 -08:00
Kurt
278f7cad25
Add pwt record get/set
...
thanks @sora10pls
2017-12-14 12:34:03 -08:00
Kurt
816ebf6b0e
Refactoring
...
no functional change
2017-12-11 16:01:24 -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
5a69f1d596
Rework gen3 crc32 to not require a new obj for byte[]
...
removes toarray in favor of iterating over the source array
maybe with the next c# (span)...
2017-12-04 16:13:18 -08:00
Kurt
a5dbdf91bd
Misc tweaks
...
detect antishiny cxd
remove unused using
don't set caught for seenAll (gen7 dex)
2017-12-04 13:18:28 -08:00
Kurt
792910a485
Merge pull request #1689 from pokecal/master
...
fix MailBoxEditor
2017-12-03 07:14:49 -08:00
Kurt
09a41f66ba
Fix z coordinate writeback
2017-12-03 07:12:52 -08:00
pokecal
0f52f94222
fix MailBoxEditor
...
add Mail5, almost same as Mail4.
2017-12-04 00:00:14 +09:00
Kurt
bdc9d7edce
fix plaza get set
...
closes #1684
2017-12-02 21:37:46 -08:00
Kurt
2d3203fc1a
Refactoring
...
extract out Mail classes to core
2017-12-02 19:12:04 -08:00
Kurt
fdc52e2c19
Add pkm league starter EC for gen7
...
Closes #1671
2017-11-29 20:04:01 -08:00
Kurt
4a898b0829
Leave empty item slots for gen7+
...
game depends on an existing value to check for if the item is truly
"New"
Closes #1670
Don't clear count=0 slots for gen7+
For sorting, put all the count=0 at the near top (any feedback on how
this actually works?)
2017-11-29 19:47:27 -08:00
Kurt
f13cc289a7
Move eventflag offset fetch to SAV2Offsets obj
2017-11-27 16:46:14 -08:00
pokecal
e86b8c670f
add Crystal GS EventFlags
...
have checked with US ver.
2017-11-28 03:35:55 +09:00
Kurt
b30cc933e5
Extract festafacility from gui code
...
move to core project as a structure/class
2017-11-26 08:47:25 -08:00
Kurt
61ca9232e2
fix sav3 dexflag get/set
...
incorrectly added bit offset twice
Closes #1660
switch /8 to >>3 for consistency with gets
2017-11-26 08:37:08 -08:00
Kurt
6534ef1919
Refactoring
...
Reworks festa facility into a get/set object, simplify some operations
naming convention (PascalCase) for methods/properties
closes #1635
2017-11-19 21:25:46 -08:00
Kurt
70ec1fda5e
cleanup
...
wasn't able to view the designer layout so I removed & readded to
project -- works fine now.
uppercase method names
2017-11-19 16:16:44 -08:00
pokecal
3c85b0ead3
add G7 FestivalPlaza Editor
...
There are too many phrases,
I have no plan to complete all list of phrases.
But I think user can edit phrases of each facility
by using their phrase settings.
2017-11-20 06:50:39 +09:00
Kurt
469587bbbd
Add Rotom OT name
...
"nah lets just store the OT in the save file twice"
add a double check if OT != RotOT to remind the user
2017-11-18 22:26:57 -08:00
Kurt
3e60bcd5dc
fix minior dex set clamp
...
[0],[cores), ignore all other meteor forms
thanks @sora10pls
2017-11-14 21:55:52 -08:00
Kurt
dbf10d1c29
Add surf score editing
...
trainer7 Ultra tab
Closes #1605
2017-11-14 21:35:28 -08:00
Kurt
c4f8dabd26
rework dex getting
...
changes iteration to be per-species rather than per list.
uses the internal 'should i set a bitflag' code rather than a banlist.
2017-11-14 19:14:02 -08:00
Kurt
953f6939a5
Fix double save export memecrypto issue
...
Closes #1600 , memecrypto is applied on first export but not cleared
prior to second export, thus resulting in a checksum over garbage data
that is permanently lost when the new memecrypto sig is applied.
Solve this by keeping track of memecrypto application status.
2017-11-13 19:34:50 -08:00
Kurt
dbabcb9ef0
Misc updates
...
fix hall of fame fixed offset
fix ball throw type unlock/learned flags using fixed offset
fix current throw type defaulting to -1 when Nihilist (new USUM style)
by adding in for USUM
add fused slot offset fetching
convert event flag combined byte fetch to use Get/SetEventFlag with
event flag references.
add ZRingUnlocked sav properties & checkbox for toggling
set AlolaTime only if the combobox is enabled (only disabled if not yet
set by game)
Closes #1595
2017-11-12 21:28:34 -08:00
Kurt
fbab1cfbe6
Update usum eventflag max
...
now these event flags are making sense
2017-11-11 18:58:57 -08:00
Kurt
6127dd7a08
split record maxes
...
slightly different in USUM, any difference increased the cap:
070 999999->999999999
071 999999->999999999
072 999999->999999999
073 999999->999999999
074 999999->999999999
192 9999->65535
193 9999->65535
194 9999->65535
197 9999->65535
Worth noting that these were undocumented record IDs and likely unused
in Sun/Moon; don't really need to split these tables but good for
documentation purposes.
Trainer7 grabs maxes from the save without specifying version, so add an
overload to default to USUM (even though the unused records will have
bad caps, they're unused in SM so whatever).
2017-11-10 17:37:04 -08:00
Kurt
8ab39cae7b
Update dex form handling
2017-11-10 17:08:47 -08:00
Kurt
6057780b4b
Fix blank saves array accessing
...
old blanks modeled sm saves with fixed offsets; since the conversion to
dynamic block offsets, a few offsets need to be manually defined.
2017-11-09 19:26:31 -08:00
Kurt
da5dd5ccb3
remove usum early return for dex bit setting
...
I highly doubt this is causing save corruption; looked through the
disassembly and the offset ptrs are the same relative to sun/moon.
Implementation is flexible for both as gamefreak allocated enough space
in each bit array.
pokedex editor recognizes bools correctly (including for formes).
2017-11-08 19:34:07 -08:00
Kurt
800ba6cf90
encounter additions
...
add ingame trade data
add placeholder SOS data containers
add refs to all wild encounters (pelago is same as sm)
unmark some todo's
2017-11-08 15:07:04 -08:00
Kurt
97dcd1a845
Add pokedex forme flag correlation table
2017-11-08 13:29:06 -08:00
Michael Scire
78acb8e13b
Fix save resigning for USUM, add resources for new pokemon
2017-11-08 11:31:09 -08:00
Kurt
ece66e1a02
Misc tweaks
...
allows loading of species > 720 lol
still nowhere near done (large task is resource acquisition)
2017-11-08 00:51:08 -08:00
Kurt
543736d568
Early rough USUM compatibility
...
need to dump string resources, sprites, and repoint the form list string
fetch later. tons more to do
no guarantee of any working functions
2017-11-08 00:34:32 -08:00
Kurt
d08bd25b4f
always clear memecrypto sig on load
...
allows verification & resigning to work as intended
reverts to code prior to refactor
b1641772e6 (diff-1681616e650971296aa4b549afadd0eaL116)
cleanup suggestions for tests
2017-11-07 16:57:18 -08:00