Commit graph

169 commits

Author SHA1 Message Date
Kurt
c751c987a9 Add DebutGeneration get
https://projectpokemon.org/home/forums/topic/43378-generation-search-in-pkmdb-andor-batch-editor/

(less than) < and (greater than) > not currently supported (no plan to
add, would need to rewrite value eval logic)
2018-01-10 15:40:33 -08:00
Kurt
8cf97f3761 Add pom-pom edge case
dash was stripped out during conversion
closes #1744
2018-01-06 09:40:30 -08:00
Kurt
6a9e2ed4b9 Refactoring
improve speed for resource fetch, add optional Shiny parameter
(currently unused)
#1735
2018-01-02 16:53:39 -08:00
Kurt
e79a35d387 Fix long OT name length setting
StringLength is the raw buffer size, needs to be offset by 1 as the
string length enforced does not consider the terminator

12char OT name in sav7 loaded to tabs -> load gen1/2 save = exception
(now fixed)
2018-01-01 11:27:45 -08:00
Kurt
14821dfb82 Fix catchrate set auto-fix
https://projectpokemon.org/home/forums/topic/43252-pk1-pokémon-files-arent-holding-items-when-imported-to-gen-2/?tab=comments#comment-225459
2017-12-30 10:40:28 -08:00
Kurt
ca20e78269 pkm crypto Refactoring r2
condense repeated logic, reduce overall operations
removes 1 array alloc for pkm encryption (shuffle clones the array, so
don't clone->clone)
removes 1 array alloc for pkm decryption (mutate encrypted array), be
aware that no current use cases input an encrypted region and expect the
reference to stay encrypted (always was a temp array).
remove duplicate bounds checks (early return & for loop)
2017-12-29 15:29:31 -08:00
Kurt
1d405d63c8 speed up pkm crypt
GetBytes returns an array that is immediately discarded (GC pressure)
reduces overhead when loading large pkm collections from save files
(shaved off a couple seconds from my loading from 200+ bak saves)

could probably go faster with unsafe code to r/w ushort directly
then again im profiling under debug but i'd assume the improvements made
actually do improve speed for release builds
2017-12-28 23:24:12 -08:00
Kurt
dccad6c2f4 Simplify/fix UnSanitizeString
Species and Nicknamed params were never used; foreign always resulted in
true for cases when it actually mattered.

Filter to the non-fullwidth characters, check the char type (latin base
vs jp/zh/ko) in order to determine if the full/half symbols should be
squished

could be faster replacing char instead of string, so change those

add two test cases for half width & full width string
sanitization/unsanitization
2017-12-28 22:50:32 -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
dbe000d08e Add some overloads for non-specified generation
fetches current gen if used without generation parameter
2017-12-26 18:54:07 -08:00
Kurt
5580d6a7d4 Extend set obj to apply to pkm data
var psimSet = new ShowdownSet(Clipboard.GetText());
psimSet.ApplyToPKM(pkm);
2017-12-26 18:54:07 -08:00
Kurt
18796d6f92 Misc tweaks
fix bk4 ribbon checks (lacked interface inheritance)
change MN -> UM for get blank save (unused in PKHeX solution)
prevent inheriting from derived pkm classes
2017-12-16 14:11:41 -08:00
Kurt
e5aa39a6bb Refactoring
get language list now doesn't return new objects (or re-enumerate)
update rand usage to be inclusive for top bound, extend shuffle to
collections
remove unnecessary location overrides (already overriden in legal fetch)
2017-12-14 20:58:55 -08:00
wwwwwwzx
6c4a4ff4ec Fix chinese language ID check
Some species have the same unicode name in CHS and in CHT, so it will lose language info after converting from a in-game string to textbox (The game will use different fonts to distinguish them, bad GF)
This change will give CHT encoding a higher priorty if the pkm is in CHT, although it's possible to get CHS encoding default species name with CHT language ID.
Also fixed previous editing error
2017-12-14 19:30:59 -08:00
Kurt
b5640de538 Misc tweaks
reorder some args, reuse some standard methods;
add spanish for gen1/2 egg name case
2017-12-14 16:16:47 -08:00
Kurt
a9ff74059a Misc perf tweaks
checking untraded should just check for the first character (rather than
creating string object)
hashset for wild6 balls
2017-12-13 16:12:53 -08:00
Kurt
f9946368a0 Remove usage of LegalityAnalysis from PK*
CK3<->XK3 transfers to PK3 first now (no direct transfer legally)
2017-12-06 21:28:34 -08:00
Kurt
55c2a603d7 Purge non-dp data for BK4 transfer
#1690
2017-12-03 13:10:14 -08:00
Kurt
805efdbdfa Add missing bk4 property for abilitynum
used in legality analysis, was returning 0 (invalid)
Closes #1690
2017-12-03 12:40:10 -08:00
Kurt
593612740f Fix bk4 IV read order
still pending ability mismatch
#1690
2017-12-03 12:35:51 -08:00
pokecal
0f52f94222 fix MailBoxEditor
add Mail5, almost same as Mail4.
2017-12-04 00:00:14 +09:00
pokecal
c4ca3aba75 add MailBox Editor
I just wanted to fix PK3 heldMailID.
2017-12-03 07:21:07 +09:00
Kurt
0aa4dad921 Add species parse edge case
dashes in species name && dash for forme name, handle edge case.
Closes #1673
2017-11-30 18:24:31 -08:00
Kurt
a7866d3ed0 Simplify crystal detection
any crystal-only data => crystal
no change in overall function for legal pkms being transferred
2017-11-24 18:12:30 -08:00
Kurt
1aea5ac7de Switch crystal detect to gender 2017-11-24 16:21:52 -08:00
Kurt
3483b4bb91 Clean up vc2 legality/transfer stuff 2017-11-24 10:13:42 -08:00
Kurt
c8bd6d8aea misc kor encoding updates
transporter/bank parsed:
fix 벵벴 swaps (verified ingame)
switch ⋯ for … to match bank
add blank space (u3000) for 0xFF to match bank
note 0xB6C is incorrectly 0xB6D in transporter (=> "."); not an issue as
not a valid char choice ingame.

table data dump: https://pastebin.com/R254mB9p
reproduce via exefs: (kor1-B table followed by english analog
kor_table0)
int ofs0 = 0x1BE3C0;
int ofsK = 0x1BBE48;
int len0 = 0x130;
int lenK = ofs0-ofsK;

A+ parsing: https://pastebin.com/FAxpadxs
2017-11-23 10:18:09 -08:00
Kurt
b8a5657d5a misc tweaks
pull out transfer locations to const references
add vc2 & crown beast/celebi met location suggesting
add vc2 crystal sensitive detection
add 2 more usum trainer stats (thanks holla!)
2017-11-22 21:45:30 -08:00
Kurt
1e5fc96e8e fix gs met location errors
override current location if format is GB
update GS transfer location ID
2017-11-20 09:11:37 -08:00
Kurt
f5aa3c3b0a Fix form not specified check for totems
Closes #1634
2017-11-19 14:16:28 -08:00
Kurt
f7e20a3c43 Misc tweaks
fix roamer3 not setting IVs
fix usum z items rightmost pixel getting chopped off
use Gen* instead of GenNumber for specific cases (faster)
add WasGiftEgg location case for Gen7
remove some unnecessary array allocations
2017-11-17 22:19:23 -08:00
Kurt
b111b9dad4 Add totem showdown export
soontm
https://github.com/kwsch/PKHeX/issues/1626#issuecomment-345417263
2017-11-17 20:38:43 -08:00
Kurt
9d1ca22b6d Add usum showdown forme/species i/o
Closes #1626
2017-11-17 19:14:27 -08:00
Kurt
523c03606e Add guard check for out of range gen1 species
Thanks ShadowMario3!
2017-11-17 17:07:12 -08:00
Kurt
025b8da52c Flag invalid forms on sav compatibility check
closes #1615
2017-11-16 14:30:18 -08:00
Michael Scire
e8d1d1f521 Add "IsSMCompatible" helper method to PK7.
Translated from official game code (PokeRegulation::CheckNijiCompatible).
Potentially for future use in USUM -> SM transfers?
2017-11-16 12:23:35 -08:00
Kurt
a39f92cac6 Add rockruff forme list items
revert form selection filtering, screwed up scatterbug and other
forced-forme lists. behavior works fine without the list filtering
2017-11-10 04:01:36 -08:00
Kurt
b3436cb791 Add totem forms selection/spritemod and req changes 2017-11-09 21:52:11 -08:00
Kurt
665e94b0aa misc cleanup
add german forme names
truncate some forme names
fix nidoran gender symbols

adds null check for invalid (caught error) pkm

disables accessory giving (needs more research)
2017-11-08 22:56:42 -08:00
wwwwwwzx
9ab2938b84 Fix USUM Chinese species names encoding 2017-11-08 20:20:41 -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
062684f4a6 Relocate transfer block cases to separate method
#1559
2017-11-06 18:34:35 -08:00
Kurt
a00f3ed894 random IVs with specified count
Closes #1553
removes duplicate logic in batch editor
2017-11-02 09:05:44 -07: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
021ecbfe47 move pkm load compat check to pkmconverter
closes #1550 , mgdb/pkmdb throw unconverted files which need conversion;
move main file load conversion to a reusable method and have pkmeditor
call it on every load.

add skip argument to ignore the conversion check (ie if the file is
loaded from an undoubtedly same type source).
2017-10-28 14:26:27 -07:00
Kurt
52b2fd2778 Add fullwidth 0-9 for kor tables
since _0 and _B are the same, just share a reference instead of separate
tables with same values.

Closes #1548 , thanks @host1126 !
2017-10-27 16:30:02 -07:00
Kurt
f6927e4fe5 Add gen2 KOR localization exceptions
Closes #1547
Thanks @host1126 !
2017-10-26 20:37:11 -07:00
Kurt
c2cf824afd Fix {0xE8, "췄"} - {"츄", 0xF2} KOR swap
that's silly lol
#1547
2017-10-26 20:18:32 -07:00