Fix regurgitated message IV/EV shuffling, max move PP for imported sets,
fix array range access exceptions (invalid moves threw exceptions)
uncollapse the first line creation
Add gen2->4 item translation table,
Recreate the gen3->4 item translation table,
Fix string accessors for items for past gen games, would throw
exceptions for invalid (65535) gen3 items. Use an unused invalid-item
index instead.
Refactors code so that the 'validity' check is done by the object not by
the form evaluating properties. Can be expanded upon to mark pk3's
invalid if species is >386 etc; however, it wasn't necessary to do
before for pk6's out-of-bounds.
Thanks theSLAYER!
Communicate between forms to notify when a refresh of the sprites is
needed.
Open up boxviewer to box 1, and have Main on box 1. Move pokemon between
in Main, and the boxviewer now is notified and updates. Only updates if
it is viewing the box that was updated, and wasn't a source/dest that
already initiated its own update.
Even works for dragging pkm files in from another PKHeX.exe or file. No
cross-exe communication.
Realistically, this code should never be triggered, but users may have
multiple copies of the same box viewed (why???).
Closes#269
Thanks @JHorbach !
Didn't feel like modifying CalculateChecksum as it may be misleading;
it's only used for creating a FileName, so only use it in FileName.
As per bulbapedia
http://bulbapedia.bulbagarden.net/wiki/Ability
Air Lock was 77 in gen3, but moved to 76 (76 was unused in gen3). Since
only Ability Number 0/1 is stored in a pk3, we can just manually modify
the Personal Entry.
Thanks Delta Blast Burn!
sav1storage = uninit
sav0storage = init
sav1general = uninit
sav0general = init
both states are possible (and inverse possible). So we check all 4
states. Split the method.
Gen4 sets to sav1 (not sav0) when the game is first started, leaving
sav0 uninitialized (0xFF'd).
SaveUtil.cs:
When checking the save, check both sav0 and sav1 for the footer bytes.
SAV4:
When checking for the active blocks, check for this uninitialization
(and return appropriately).
Also fixed the map position offsets (didn't point to sav0/sav1, were
static to sav0).
Minor comment fix (end+=4 to range to match the Take length).
Hide it if daycare isn't documented.
Also, fix drag&drop cursor feedback for non-box slots. Previously,
initiating a d&d on a party slot would reset the drag cursor to the
default (arrow + square) instead of keeping the sprite-cursor.
GiveFeedback -> UseDefaultCursors = false :)
Add gen3/2/1 text files to Resources (existing code would fall back to
english).
L_Form is autosized now; the combobox may stick out on the right for
other languages -- the combobox shouldn't be made smaller just because
the form label is too big.
Closes#259
Sneaks in typo fix in ShowdownSet
Initialization variable is captured, reset, then the pkm is loaded. If
an exception is thrown, the initialization state is not restored.
There's other capture-reset-restore cases but pkm loading is the only
one exposed to bad input.
Should prevent #261 from happening. fieldsInitialized is checked in a
bunch of events.
Thanks @sora10pls !
Premier Ball already in Balls pocket (remove from General Items list)
Hide [Give All] button in Gen3, same treatment as Gen1/2.
Closes#257
Thanks @ricksee !
Gen3 second ability for same-ability mons is stored as 0, same deal for
gen4.
MainPK4 alteration is an unneeded-code removal, gen4 only has abil0&1,
not 2 (hidden) like gen5.
Closes#256
We're gonna call them IVs for gen1/2 because this is {CURRENT YEAR}.
Too much of a hassle to have multiple controls hidden just for
generation specific nomenclature differences.
Change the Readonly for HP & SpD to Enabled (and flip bool states); mask
now appears to enforce non-centering, no need to pad with 0 to fake that
it's centered.
Closes#255, 8 bits down.