Commit graph

244 commits

Author SHA1 Message Date
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
98b21eaaa8 Add clone deletion quick action
kinda slow, if a save has 900 mons, it has to check 900*900 which is
O(n^2), takes a few seconds
as opposed to just doing a hashset checking contains, would be O(n)
gotta do some fun stuff to make it faster
2019-02-18 17:00:16 -08:00
Kurt
9171055fd4 Add box sort by encounter type
grabs encounter name and orders by that (Egg/Static/Wild etc)
2019-02-18 15:34:55 -08:00
Kurt
d1f6a5a3ff Misc clean
no functional change
2019-02-15 11:46:46 -08:00
Kurt
48e2bbcfed Refactor DumpBox to return 1 value
count < 0 implies an error; values >= 0 can be used to indicate actual
dumped count
2019-02-09 20:19:55 -08:00
Kurt
dc5cdc34d7 Remove FieldsInitialized and rename check method 2019-02-09 17:07:44 -08:00
Kurt
19ae752937 Extract color config to separate class 2019-02-09 13:15:37 -08:00
Kurt
29253ed636 More cleaning 2019-02-03 20:28:03 -08:00
Kurt
893f98d667 Misc clarity
no functional change
make batch editor prefix list readonly
2019-02-03 10:28:33 -08:00
Kurt
2eef523475 Misc clean
meh
2019-02-02 15:20:08 -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
aa022fad40 Misc refactoring
remove some null usages, return an empty array instead
reduce as arg
2019-02-01 23:08:03 -08:00
Kurt
ae6010f169 Add ranch r(/w?) support
not gonna edit the metadata

properly handle an irregular sized display box
2019-01-14 21:31:53 -08:00
Kurt
ad7d1c645d Fix GetPKMSetOverride yes/no return value
lets be explicit here
Closes #2240 , thanks @bpxhmemcpy !
2019-01-11 18:27:29 -08:00
Kurt
9a4f12c279 Misc updates
rearrange pkm version groups for clear break between
twins/siblings/family
clear pokelist for sav7b on non-exportable saves (prevents b1s1 from
showing markings)
rename horohoro (pgo) to non romaji lol, hide daycare/party tabs on
nonexportable save
remove some unnecessary operations
rewrite getallcontrolsoftype to remove ToList() and make generic
2019-01-05 15:40:25 -08:00
Kurt
6f22599baf Prevent slot overwriting on bulk import
https://projectpokemon.org/home/forums/topic/48912-how-to-batch-import-pokemon-boxes-without-erasing-existing-pokemon/
2018-12-28 17:58:13 -08:00
Kurt
d5a8d29088 Misc updates
reduce some allocs, clearer names/enum usage
2018-12-27 20:24:24 -08:00
Kurt
423afa4518 Fix boxviewer not being initialized
2d774ac7cc
had removed the Reset() call from the Setup method; call afterwards.

Thanks RoC!
2018-12-26 13:06:58 -08:00
Kurt
2d774ac7cc Allow dynamic default savefile type load
Make extrabytes a pkm property (don't mutate array pls)
reconfigure startup loading to only initialize after initial load of sav
& pkm (using blanks if not provided)
2018-12-19 22:10:32 -08:00
Kurt
d7a501c168 Relocate some logic to interfaces 2018-12-18 17:15:35 -08:00
Kurt
ff649009ca Misc tweaks
misc perf adjustments
add utility for slot locked check (without box argument, absolute slot
index)
localize dragdrop strings
increase dragdrop file delete delay (dropping files into discord waits
until you confirm; 10s gives enough time to hit confirm)
2018-12-17 11:17:19 -08:00
Kurt
efb9b7eba2 Misc cleanup
removes clickonce logic/reference
2018-12-10 20:32:08 -08:00
Kurt
71fab815bf Provide more slot information
remove lockedslots, store & save all teamslots for sav7
differentiate locked slots from overwrite protected slots by emitting an
enum containing info about the slot

locked = can't be replaced, period.
starter/battleteam = can't be pasted over by bulk-pastes

can eventually show more specific sprite layers to denote party
indexes/team#/starter
2018-12-04 22:59:28 -08:00
Kurt
bca8924437 Add favorite flag editing
Closes #2199
2018-12-04 18:38:47 -08:00
Kurt
f27816e622 Add party pointer sort
Pulls party members (and follower index if not already in party?) to the
first slot(s) in the (current/all) box.
2018-11-22 23:02:57 -08:00
Kurt
95776d8520 Set default savefile to gg 2018-11-21 13:51:26 -08:00
Kurt
8f70aa0113 Only allow main window box to change sav.currentbox 2018-11-20 23:53:17 -08:00
Kurt
644fa4e929 Call slot compression
Doesn't work correctly (data shifted down still persists)
2018-11-14 22:20:59 -08:00
Kurt
e109c1ba64 Show new sav editors for gg 2018-11-13 19:23:31 -08:00
Kurt
78446a4d7f Show new pb7 sorting methods 2018-11-13 19:21:33 -08:00
Kurt
3cd45cf5c4 Continue extracting logic 2018-09-16 12:44:00 -07:00
Matt
789449f4d6 Fix alt form cries from not playing (#2119) 2018-09-12 10:37:13 -07:00
Kurt
d8c355cf64 use sprite resource name instead of species-form
Closes #2113
2018-09-07 19:11:22 -07:00
Kurt
81f6988d3e Prevent sort/clear reverse on shortcut use
Closes #2111 by preventing the user error
2018-09-04 15:01:14 -07:00
Kurt
53216333e6 Misc updates
extract final pkm manipulation logic from pkm editor
add xmldoc to boxmanipulator, add utility class for enum->manip fetching
fix xmldoc referencing removed enum member
relocate boxmanip overview logic to utility class
move SAVPaths file pointer to Main for reuse #2109 , will add to
autodetect in a later commit
open/save dialog with extra extensions: ignore ones already present
2018-09-03 10:30:35 -07:00
Kurt
493bef75eb Misc updates
condense repeated logic
extract properties
extract reusable methods
2018-09-02 18:02:25 -07:00
Kurt
f57e7bf686 Separate box manipulator to ui-less class
clear separation of functionality
2018-09-02 11:31:34 -07:00
Kurt
6abeec507f Catch gdi exception & ignore
#2072
2018-08-28 18:21:46 -07:00
Kurt
dfdcc28789 reduce animation fragility
#2072
no idea if this works since I can't repro on my end
2018-08-28 16:40:27 -07:00
Kurt
c7aea9cad2 add option to hide pid/ec
hides pid & ec in pkmeditor, gamesync & securevalue in saveditor
easier to share screenshots/stream without leaking identifying
information

fix auto-centering of pkmeditor subwindows when a savefile is detected
on program load(tab_otmisc isn't initialized and reads an incorrect
width)
2018-08-19 18:22:07 -07:00
Kurt
af87752475 Reference underlying control visibility
closes #2092
2018-08-14 19:39:14 -07:00
Kurt
61013b8f18 Simplify drop/set into party
would reset the battle box sprites legality to not shown; also, the
prior fix for #2069 did not work for reloaded save files since
GetSlotFiller was called instead.
2018-08-12 19:28:35 -07:00
Kurt
6edc828cc3 misc style updates 2018-08-12 19:27:11 -07:00
Kurt
1c718e641e Prevent box scrolling if contextmenu is open 2018-08-12 11:01:21 -07:00
Kurt
c3136187de Style updates 2018-08-04 10:06:06 -07:00
Kurt
1486b7f14a Misc style & minor tweaks
Remove move combobox flicker hack (no longer necessary)
Add more Array.Empty usages
cache mysterygift sizes
seal some classes

no functionality changes
2018-08-02 20:11:42 -07:00
Kurt
f35712fcf2 Extract experience logic to separate file
add exp bar logic, unused.
2018-07-29 17:43:30 -07:00
Kurt
1313d84d5d re-add lock to avoid race condition
enough pls
2018-07-29 11:05:48 -07:00
Kurt
5d4c3d3390 Update slot drag / view/set/delete behavior 2018-07-28 09:56:13 -07:00
Kurt
2e88da9d3c Make BitmapAnimator usage single-object
Don't unlock/lock the GlowBase bitmap repeatedly; store the bytes
separately for frame generating. Fixes any memory access exceptions
(unlock->unlock due to program lag).
Do more preprocessing of egg glow sprites for cleaner appearance (now
glow inside sprite)

extract glow method for easier reuse
2018-07-27 19:59:14 -07:00
Kurt
c8563a3737 Respacening
Style guidelines, handle a bunch of files
no functional change
2018-07-26 19:34:27 -07:00
Kurt
7d4309970c Stop animation on box change
slot glow can bleed into another box
2018-07-25 19:50:44 -07:00
Kurt
91f39d74db Add box scrolling
https://projectpokemon.org/home/forums/topic/46370-bug-cant-scroll-between-boxes/
2018-07-25 19:29:41 -07:00
Kurt
c24a48e815 Remove picturebox references
sprite gen is more than adequate
2018-07-25 19:23:48 -07:00
Kurt
64284eafef Add pk1/pk2 direct import checks
dragdrop: check
import files from folder: check
no other paths convert afaik

Closes #2074
2018-07-24 15:49:00 -07:00
Kurt
d6f623ecfb Fix #2072
Just a guess; don't dispose of the bitmaps
suspected race where two beginhovers happen and one cancels the other
2018-07-23 18:31:01 -07:00
Kurt
68d251f89c Pass -1 for party/battlebox slot arg
Sprite creation uses slot>=0 for determining if it's in a box or not;
kinda should redo the logic but there's no upside to passing 0-6 to the
sprite generator for these.

Closes #2069 thanks @iiippppk !
2018-07-23 16:45:47 -07:00
Kurt
922cbdf583 Add glow animation to slothover 2018-07-22 20:04:28 -07:00
Kurt
3c4ba0d52b Misc cleanup 2018-07-22 17:26:19 -07:00
Kurt
e1365c837c Glow sprite edges
Continue using the hover frost effect on the edges too
doesn't really play well with the colorized slot image since it's 1px,
whatever.
2018-07-21 21:55:37 -07:00
Kurt
c7175fbdb4 Misc reorg
bye bye SAVUtil and PKMUtil
2018-07-20 21:32:33 -07:00
Kurt
6ee534c4b1 Update undo/redo
Closes #2059
2018-07-16 06:40:35 -07:00
Kurt
fae36e2086 Add layerimage overload
transparency=1 is no opacity change
remove Rectangle use, just provide coordinates (looks to be simpler in
the .net src too)
2018-07-14 18:43:46 -07:00
Kurt
4d73fa70d8 Simplify binding to ComboItem logic
could probably look into better binding but meh
2018-07-14 16:00:28 -07:00
Kurt
5d20c79568 Add showdownset localization for slot previews
Localization only for game strings (not Ability/Nature/Stat/etc labels)
feels kinda goofy but it works
2018-07-13 19:13:25 -07:00
Kurt
296d1c20ed Use ITrainerInfo interface for trdata 2018-07-12 18:15:20 -07:00
Kurt
2e02ec9719 Refactoring
Move some logic out of saveditor/subs
2018-07-07 11:20:05 -07:00
Kurt
9f8edc89bf Refactoring
put some string[] behind IReadOnlyList to prevent any consumer from
modifying it
2018-06-30 09:59:48 -07:00
Kurt
3a7a257a01 Add export current box to showdown pastes
Rework box fetch in SaveFile to be a little more flexible, can now fetch
a single box

Hold control to... export all boxes :)

I wonder if there's a decorator that showdown skips when importing lines
that can help differentiate the boxes since there's the potential for
hundreds output (ie comments in a showdown set?) doubt it.
2018-06-16 21:56:16 -07:00
Kurt
39ce7e56e4 Cancel boxmenu if not clicking tab
contextmenu is set causing it to open for anywhere in the box area
that's white
only show if right clicking the tab at the top
2018-06-16 17:03:22 -07:00
Kurt
be3eeb4036 Hide batrev trainer/inventory buttons
Closes #2010
2018-06-16 07:52:45 -07:00
Kurt
33fb382c3c Hide ResetMoves for Gen1/2
Legally resetting data is too much of a pain, just hide the option.
Closes #2000
2018-06-12 17:54:21 -07:00
Kurt
26f45d44d0 Rework OPower editor
https://projectpokemon.org/home/forums/topic/45683-pkhex-made-odd-number-of-zygarde-cells-usm/?do=findComment&comment=232476

Thanks @sora10pls for documenting what each flag does
2018-06-09 21:04:34 -07:00
Kurt
cb4761403a Relocate oras setopower data to sav6 2018-06-09 12:32:55 -07:00
Kurt
e0aa1934e7 Update translations
yield the Box Sort/Modify/Delete menustrip
2018-06-01 19:10:05 -07:00
Kurt
f237476ccc Add nickname reset modify
nickname reset clears except for encountertrades (some have fixed
nicknames).

remove untraded check for HT memory verification, has to be traded if it
has a HT memory.
2018-05-31 19:49:47 -07:00
Kurt
abe3567174 Update db search
search caused cross thread exception due to ConfigurAwait not returning
context
finish await -> update controls with after restoring context.

don't rebox results 2x lmao; keep results as list due to other Remove
operations being present in other events.
2018-05-24 21:22:44 -07:00
Kurt
13fe1a2948 Ignore redirected load request results on dragdrop
Closes #1964 ; any redirected load request has its own 'fail to load'
message.

(dragdrop a save file on a box slot; message is no longer presented that
'could not set to this slot').
2018-05-24 19:05:13 -07:00
Kurt
6c2a864dcc show/hide box options based on savefile
retain save provider
add optional visibility toggle criteria (not present => always visible)

now hides sort/mod/delete if the criteria is not applicable to the
current format
2018-05-23 18:29:30 -07:00
Kurt
199512a9f7 Add box name & repoint party offset
refresh box names on saveslot swap
rework saveslot list to be (name, slotIndex) of valid slots
2018-05-22 19:02:56 -07:00
Kurt
d3ea1968bd Add hypertrain quick modify 2018-05-22 16:51:24 -07:00
Kurt
4d0007f49b Show nature of pk1/2 via slothover
derived via EXP%25 as if it were converted to pk7.
#1954
2018-05-20 18:33:38 -07:00
Kurt
199b6f2caf Add move rand for batch editor
Also add Move Rand & Move Reset to box modify contextmenu
2018-05-20 14:29:13 -07:00
Kurt
e216c38151 Misc updates
Add GetShowdownSets text output methods
Add party/box overload methods for easier slot setting api
Protect locked slots when importing BoxData
Misc saveditor simplifications
Add wc3->pk3 test
2018-05-19 20:48:03 -07:00
Kurt
b391faa494 sync missing commit
i swear
2018-05-19 16:39:01 -07:00
Kurt
9fd5df6e99 Misc pbr ui fixes
remove todo comment
fix exception when refreshing slot coloring
update box when saveslot index changed, not validated.
update boxviewers when saveslot changes
2018-05-19 16:33:06 -07:00
Kurt
128fd1331f sync missing content 2018-05-18 20:02:49 -07:00
Kurt
95b4d0820d Minor reorganization
amount of pkm obj classes is pretty high, move the static utility
classes to another folder

breaks usage of pkm.ShowdownText; removes a dependency from PKM.
2018-05-18 19:33:11 -07:00
Kurt
5f2f295541 Restore old clicksort functionality
no longer reverses sort
Closes #1946
2018-05-15 15:56:48 -07:00
Kurt
b798da9b03 Use altform first
Closes #1947
2018-05-15 15:23:31 -07:00
Evan Dixon
bbdb94007e Simplify logic in PlayCry (#1944)
Local functions are cool and all, but for something this simple, it just hurts readability and makes things needlessly complex.
2018-05-14 20:04:15 -07:00
Kurt
663ec5c536 Add sound path
Closes #1943
2018-05-14 15:46:36 -07:00
Kurt
857919bd28 Add basic plugin sys
reference PKHeX.Core, main window loads assemblies & initializes
providing an ISaveProvider and the menustrip control (to insert controls
into)

pretty rough but should allow for inserting external control buttons &
allowing it to edit the UI a little

example: https://github.com/kwsch/PKHeXPluginExample
feedback is appreciated
2018-05-13 12:49:29 -07:00
Kurt
28ef791014 Update hovered slot on box change
using keyboard instead of mouse can change box without moving mouse
outside the slot picturebox
trigger an update when the box is changed, but only if the updating
parent has the hovered child (ie a boxviewer changing box while hovering
the main window won't re-cry the main window slot since it wasn't
updated)
Closes #1940

add some gender threshold properties to personalinfo
2018-05-13 08:14:46 -07:00
Kurt
19f2420670 Add settings for slotText & slotCry
Closes #1939
2018-05-12 20:04:58 -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
c2644cc9f0 Flag gendered pkm without gender
for lack of a better message
#1936

add some docs & trycatch bad wavs
2018-05-11 21:05:15 -07:00
Kurt
4fdff9581f Add forme specific cry detect
dex-form.wav
if not found, reverts to none (dex.wav)

47be96e92d (commitcomment-28950071)
2018-05-11 17:40:00 -07:00