Commit graph

421 commits

Author SHA1 Message Date
Kurt
13e1debe3e Add sav7b object & detection util 2018-11-13 19:18:29 -08:00
Kurt
5f456d705c Add misc setup objects 2018-11-13 19:16:14 -08:00
Kurt
025a290bc9 Update saveblock template for stored offset fetch 2018-11-13 19:15:27 -08:00
Kurt
486445897e Add 7b inventory r/w object 2018-11-13 19:15:11 -08:00
Kurt
707f7b5893 Fix displayed dex index for g7
off by 1 starting with formes
2018-11-13 19:14:42 -08:00
Kurt
49c4043e19 Update dex abstractions, add gg dex 2018-11-13 19:14:23 -08:00
Kurt
98ebf4c5cb Add sort pointer repointing
LGPE uses a list of pkm for boxes, and has pointers indicating where
each party member is at
need some logic for handling the sorting. Had suspected this a while
back so this pre-work came in handy (untested tho)

make eventflags offset ptr virtual, I might end up doing things
differently for event flags
2018-11-10 21:04:24 -08:00
Kurt
fe989d48fe Misc prep updates
Update comments / xmldoc
Add a savefile storage compressor (ie array[] with empty interstitials
-> list); return true if the compression moved anything (repopulate
views), and the count of occupied slots in the list.
Add saveblock base class; I haven't really liked how SAV6/7 do all the
logic; I'll still expose properties that will then point to a saveblock.
Cuts down clutter.
Add template Dex manipulator, with gen6/7 implementations
Speculate sequential gp/ge gameversion IDs
2018-11-01 15:38:09 -07:00
Kurt
8f9cc6cd7e Fix xmldoc ampersands 2018-10-31 13:52:09 -07:00
Kurt
39f98a4a94 Misc qol updates
Check max case for level first, then iterate upwards (eliminates inner
if)
change wc* nature to sbyte (update comparisons, 0xFF too magic-y)
use Rand.Next(x) instead of (0, x)
2018-10-27 21:59:31 -07:00
Kurt
ed3699fbb4 Update Ho-Oh mattle check
More languages than Italian have a rule-breaking name. Rework checks a
bit
Flag eggs more accurately
Update force hatch to move Link Trade met location to Egg Location

fix Ho-oh -> Ho-Oh text strings (correctness is key!)
2018-10-27 16:06:06 -07:00
Kurt
93af3e61b7 Add handling for Mt Battle Ho-Oh (italian) edgecase
https://projectpokemon.org/home/forums/topic/47917-colosseum-italian-ho-oh/

there's no shadow ID, so it can have both the short (transferred back)
or full name (never transferred) as CK3 without side effects.

allow 10chars in pkmeditor
2018-10-13 08:07:15 -07:00
Kurt
f7f5d78beb Misc perf tweaks
hopefully resolves the image corruption issue (dont use unsafe?)
remove some linq
2018-10-13 08:02:55 -07:00
Kurt
4deb5080d1 Misc tweaks
rearrange getmove with respect to tutors; verifycurrentmoves was getting
tutor moves in levelup
extract not-found hint fetch
Expose gen5 block objects (so I can play with saves in linqpad)
2018-10-06 18:45:15 -07:00
Kurt
2a2361220d Add more accurate daycare egg detection
uses eventflag, different index for each game

frlg:
https://www.pokecommunity.com/showthread.php?t=302347
"Flag 0x266 is set by the game engine if an Egg is in the Daycare."

emerald:
https://www.pokecommunity.com/showthread.php?t=330008
"0x86 : Daycare Centre has egg"

rs:
https://gist.github.com/rboninsegna/a4a63c2b66c42e371a94f860eae55361
" 0x86  Egg ready at Daycare"
2018-09-30 21:27:36 -07:00
Kurt
a3421a881d bounds check record set
closes #2129
2018-09-27 21:30:20 -07:00
Kurt
ca0a533779 Add frlg flag toggles from thread 2018-09-27 20:01:34 -07:00
Kurt
10d73d1bf3 Redirect eventflag r/w for frlg
can't just re-call base.SetEventFlag with an adjusted flag ID since the
exception checks max.
just override the geteventflag method with a silly adjustment -- we
can't be sure if Block2 is immediately after Block2, so just adjust the
flag r/w to a different offset&flag when appropriate.

fixes r/s badgeflag get/set, oops, meant to modify FRLG's value in the
last commit.
2018-09-26 21:05:06 -07:00
Kurt
a38a0fed60 Update event flag index for frlg
was block2+0x64
8*((0xF80-0xEE0)+0x64) = 0x820

this highlights a critical flaw in event flag reading; it expects the
region to be contiguous in the savedata. it's not. that's super bad, and
event flag r/w for flags >1280 won't work until I work something out
2018-09-26 20:32:38 -07:00
Kurt
62d8abb69c Update frlg flag/var offset
https://www.pokecommunity.com/showthread.php?t=349936

https://projectpokemon.org/home/forums/topic/47715-help-frlg-flags-research/
2018-09-26 20:08:25 -07:00
Kurt
4a81f326eb Update trade/egg/capture record set
#2128
it's still an imprecise thing, as ingame gifts aren't counted by either
release count isn't tracked, so the number should be roughly >= total
box+party count.
2018-09-26 19:06:05 -07:00
Kurt
55de21afc4 Add records when setting to slot
Closes #2128
2018-09-26 19:00:52 -07:00
Kurt
40a0206a5d Misc style updates
whitespace / brackets
2018-09-26 18:56:29 -07:00
Kurt
5760860c8e Add check for uninitialized save data
a 512KB NDS save can be 'picked up' as a memory card if it's not
initialized; this also rejects the binary in that scenario
2018-09-26 12:42:39 -07:00
Kurt
13bcc4bdc7 Add more enum values
pr video stuff is meh, anyone can contribute that
2018-09-25 16:33:11 -07:00
Kurt
a7f02bf27b Enumerate some trainer appearance values
thanks @sora10pls for gathering resources
2018-09-24 21:20:55 -07:00
Kurt
4ac1cccaa1 Move fashion to another folder
incoming enums
2018-09-24 19:44:12 -07:00
Kurt
e0e628844f Update copyto protection
skip over write protected slots (locked/team), may eventually weaken the
GUI to allow modding boxdata with locked slots (which will be skipped).
2018-09-24 19:43:59 -07:00
Kurt
164a26e757 Misc reorg + skeleton for slot editor
SlotChangeManager is pretty glue-y, might eventually shift to this
implementation
2018-09-21 21:20:28 -07:00
Kurt
39c3a0eea7 Rework sav3 version detect
Might still be flaky for FRLG, but can now (99.99999999%) determine RS
vs E...
2018-09-16 13:57:09 -07:00
Kurt
668b8611d5 Fix sav3 active partition detect logic
change < to >
the lower updated count is the backup partition, not the one to load
from

Closes #2122 , thanks @FaronBracy !
2018-09-16 12:49:00 -07:00
Kurt
3cd45cf5c4 Continue extracting logic 2018-09-16 12:44:00 -07:00
Kurt
b280ffcfef style updates
should be pretty much it
2018-09-14 22:37:47 -07:00
Kurt
87b270dd17 add more gen7 record labels 2018-09-13 22:06:44 -07:00
Kurt
316341e140 Misc updates
Remove unused sav properties
Add translatable strings for autodetect SAV error suggestion

add speculated gg dex formtable
- no eevee forms
- increments 1 for pikachu since it already exists in table
- stops at mewtwo (no other formed-species available)

im currently setting up skeleton stuff for lgpe since we're <70 days
from release; by doing some pre-work like prior games I can get a good
idea of what needs to be adjusted prior to crunchtime!
2018-09-06 20:35:55 -07:00
Kurt
189fa5f7b3 Add button to give all seals + illegal ones
#2112
2018-09-04 15:26:16 -07:00
Kurt
cf3aba4f84 Add gen4 seal data get/set
closes #2112
adds methods to give/remove all, and get/set to retrieve array or
individual.
2018-09-04 15:12:35 -07:00
Kurt
42deb0ad12 Add extra backup locations for savedetect
Closes #2109
Program boots -> load extra locations rather than constantly fetching.
These files won't change location or presence (not an external drive).

just store the locations instead of constantly fetching, we already call
detect once when loading the form anyway.
2018-09-03 10:40:40 -07:00
Kurt
493bef75eb Misc updates
condense repeated logic
extract properties
extract reusable methods
2018-09-02 18:02:25 -07:00
Kurt
91c37ab573 Update legality check message string style
V### names weren't enjoyable to work with; use similar verbose style as
the program message strings.

updating the translation files with the remapped variable names shortly

remap list: https://pastebin.com/jybkVDAK
2018-09-01 14:11:12 -07:00
Kurt
9dae7dad67 Misc updates
move encountertype datasource providing to core
fix rerolling EC not updating characteristic
remove some repeat logic calls
relocate geolocation name fetch to separate class, add tests to ensure
functionality, add languageID->country/region fetch method
2018-08-25 17:04:01 -07:00
Kurt
d40b10f4a4 Remove unused method
SaveFile already has ModifyBoxes which has better built in checks for
locked slots.
2018-08-22 22:35:50 -07:00
Kurt
ebb1e8a704 Update 'cant hold item' message
#2101
2018-08-21 07:46:55 -07:00
Kurt
7ef5d9e547 Add pk1 current level property party->box setter
https://projectpokemon.org/home/forums/topic/47086-bug-trades-between-two-saves-1g/?do=findComment&comment=235241

fresh encounters have yet to be boxed and don't have the value; set it
whenever setting a Stored slot.
2018-08-19 13:35:20 -07:00
Kurt
a200dc85c7 Add bvid util 2018-08-18 20:10:34 -07:00
Kurt
633f0e1da9 Extract filetype detection, add xmldoc 2018-08-17 23:23:44 -07:00
Kurt
b526d4657b rework tile flip check flow, remove goto 2018-08-17 16:22:54 -07:00
Kurt
e366f9a93d Misc tweaks
only have one empty forme array object
rename method for clarity
show version ID for hidden savefile program window titles
2018-08-15 21:15:06 -07:00
Kurt
75d700c171 Fix sav1 jp load order
oops
2018-08-14 20:12:10 -07:00
Kurt
d3ec969187 Style updates
split pcd/pgt
add more xmldoc
2018-08-09 21:53:39 -07:00
Kurt
8187606a89 Clarify sav6 boxflag in src
7 wallpaper flags (not all used), top bit unlocks box 31

https://projectpokemon.org/home/forums/topic/34466-box-31-is-unlocked-but-not-showing-on-bank-any-ideas/

PCFlags + 2 is just CurrentBox, don't include it anymore.
2018-08-08 22:02:06 -07:00
Kurt
6b62dd29ee Update xy fashion edits
different for each gender
2018-08-08 21:27:14 -07:00
Kurt
975759e53c Update str<->val base32 encoder
simpler
2018-08-07 16:32:31 -07:00
Kurt
259feae038 re-allow event flag editing on gen1
closes #2088
2018-08-07 07:54:14 -07:00
Kurt
421c522eb4 Fix gen1 sav load
Starter fetches via Offsets, which was null, reorder the init
Thanks @Ninjistix !
Closes #2087
2018-08-06 21:29:47 -07:00
Kurt
98f21a12dd Relocate gen6 trainer stat records to core
use trainerstat editor control in gen6 editor

fill in some details from the disassembly via setrecord usages
still slightly fuzzy on some:
fureai (based on usum idb name, similar logic)
soaring sky counts

looks like there's some other usages of the fields which were outside
the stat range, throwing an exception when loading to NumericUpDown,
added bypass logic

Thanks Holla!
2018-08-06 21:27:31 -07:00
Kurt
37e5c9fc69 Add record details for gen6
pulled from exefs data
2018-08-06 16:52:43 -07:00
Kurt
48a61a00a2 Relocate record stat id's to core
can potentially add localization by changing the method of fetching
2018-08-06 16:17:32 -07:00
Kurt
0296f98777 Add offset table for sav1
calling Japanese ? X : Y on every single access is too excessive, just
compute one layout for each type whenever the first sav1 requires it.

could probably reduce the amount of properties by reusing others + shift
value; offsets are different due to string lengths being different
2018-08-05 20:27:25 -07:00
Kurt
fc73eee570 Extract PokemonList* to inherited class
Logic is essentially identical; implement a base class and have the
generation specific structures implment the differences.

Reduce the verbosity a little
2018-08-05 17:28:54 -07:00
Kurt
84185dc6c9 misc improvements
add records class for managing info for trainer records
add more b2w2 block docs
2018-08-05 12:39: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
f4bfdb8311 Remove unnecessary empty array allocations
yay net 4.6
read more: http://justinvp.com/2015/07/20/array-empty/
2018-08-01 18:30:51 -07:00
Kurt
32b90fab13 Simplify some logic 2018-07-29 21:54:02 -07:00
Kurt
02a6d26e1b Break apart BAKName into smaller components
simplifies definition & makes it easier to update bakname usage later
2018-07-29 21:51:45 -07:00
Kurt
3fd21db51e Style & function extracting 2018-07-29 16:39:15 -07:00
Kurt
0de335d52b Misc reorg 2018-07-29 14:04:16 -07:00
Kurt
b16015e8e5 Split InventoryPouch to inheriting classes 2018-07-29 13:55:07 -07:00
Kurt
d916be1020 Style updates 2018-07-29 13:27:48 -07:00
Kurt
c8563a3737 Respacening
Style guidelines, handle a bunch of files
no functional change
2018-07-26 19:34:27 -07:00
Kurt
9551d4e707 Relocate logic to core
probable/possible lgpe uses similar dex stuff, so best I totally
understand it (assuming quirks will be present)
2018-07-26 18:01:16 -07:00
Kurt
e8644280a1 Update sav4 block detect logic
#2070
desmume inits a savefile to FFFFFF... others instead init to 00's.
check both init states, add IsRangeAll method

5f39118b8a

Thanks @Filo97 !
2018-07-25 16:00:52 -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
da839988af Simplify RBY checksum calc
utilize unchecked byte overflow
remove unnecessary zeroing -- t's immediately after the checksummed
region. even if it was included, chk += 0 is still 0.
2018-07-21 19:24:09 -07:00
Kurt
0c5c9bc33c Misc clean / xmldoc updates
remove unused label in QR (use window Font)
escape & -> &amp; for xmldoc proper style
2018-07-21 19:20:11 -07:00
Kurt
1c49b0681d Extract dex logic 2018-07-21 11:46:38 -07:00
Kurt
63b9b72a49 Relocate save detection to core
Environment.GetLogicalDrives is not present in net standard 1.3;
relocate code and add it as a parameter
2018-07-21 10:23:15 -07:00
Kurt
0c632604d2 Move files
Saves now has a similar folder structure to PKM
2018-07-20 21:33:55 -07:00
Kurt
c7175fbdb4 Misc reorg
bye bye SAVUtil and PKMUtil
2018-07-20 21:32:33 -07:00
Kurt
f27f11bfc8 Clean up pk7/sav6/sav7 simple methods
extract GetFormDuration to method, remove unused GetIsCompatible
specialized variant (there's a generalized version in SAVUtil.cs,
IsPKMCompatible -- might do another round of WinForms->Core absorption
2018-07-20 20:25:28 -07:00
Kurt
99c790a4b0 Update File name/path/folder fields
original file path is not saved with the two listed properties, add
FileFolder and relcoate existing FilePath functions to that field

move some GetVariantSAV usages to the string method instead of byte[]
2018-07-16 21:00:43 -07:00
Kurt
a81c28f114 Upgrade FolderList to show recent/backups
sortable grid like the ReportGrid for pkm, can open/browse individual
files
2018-07-15 17:48:31 -07:00
Kurt
99673706a0 Rework recent savefile detection
return a reference to the savefile rather than the path, since a
SaveFile has a FilePath property.
2018-07-15 13:35:58 -07:00
Kurt
ebed1026cd Update national dex magic setting
bulbapedia is wrong, first 4 bytes are info values:

0x0 = dex order (alphabetical, numerical), unused in frlg
0x1 = mode (unused in frlg), regional vs national
0x2 = national magic rse (always set in frlg)
0x3 = national magic frlg (never set in rse)

refer to disassembly (pokefirered isn't too helpful, less developed.
just compare save files & edit ram!)
the other 2 values being set are the eventflag & event const, could use
the abstraction for those rather than direct ofs writes
2018-07-12 23:23:36 -07:00
Kurt
d42cc7cacd Add spinda/unown PID properties 2018-07-12 22:07:44 -07:00
Kurt
97701787a6 Add sav2 daycare view
tfw they store full egg data there too -- show that in the sidebar

Tested on C & GS (english), assumedly works fine for other languages
(based on the disassembly?)
2018-07-08 15:46:37 -07:00
Kurt
3bcda0eb33 Add frlg other daycare slot view
guess that was easy?
2018-07-08 11:06:39 -07:00
Kurt
1e8dd3c823 Add gen3 daycare offsets
idc about frlg single mon daycare
2018-07-08 11:00:50 -07:00
Kurt
373b4ffcbb Add block offset fetch util
according to the disassembly it all makes more sense; a small block and
a large block are stored in RAM

util calc helps convert between contiguous section offset to a chunked
offset

eg: emerald daycare starts at large 0x3030, which converts to
chunk4@0x1B0
2018-07-08 09:56:01 -07:00
Kurt
f04bc214ec Use OT class calc (mod 5)
remove setter as it's derived from TID's low byte
2018-07-08 09:54:17 -07:00
Kurt
f592be75d1 Add gen3 secret base classes
don't plan on using them at this time, just an implementation if anyone
wants to play with it
2018-07-08 00:26:31 -07:00
Kurt
b745d59552 Rearranging
group gen3 structures to their own folder
2018-07-07 21:47:29 -07:00
Kurt
0b1ae2ec67 Add pokeblock3 interaction
no gui but can use core with a rse save file
2018-07-07 21:31:41 -07:00
Kurt
4dcac24f34 Add roamer3 active/level editing 2018-07-07 21:31:07 -07:00
Kurt
ae04218c5f Update eventflagmax for e/frlg
globals.h defines as 288 bytes for RS, and 300 for E & FR respectively

verified event const vals for Emerald making sense
2018-07-07 18:03:52 -07:00
Kurt
d4c1093dd9 Add RS badge flags
make logic generic
2018-07-07 17:01:47 -07:00
Kurt
990eb73f8a Misc simplifications
recordmax is simplified
2018-07-07 15:38:11 -07:00
Kurt
e46aed4b0b Relocate bean logic to core 2018-07-07 15:37:47 -07:00
Kurt
e915cd170b Extract trainer stat to interface / usercontrol 2018-07-07 11:48:03 -07:00
Kurt
2e02ec9719 Refactoring
Move some logic out of saveditor/subs
2018-07-07 11:20:05 -07:00
Alexander Hoischen
517441a982 Implement IsDaycareOccupied for SAV1 (#2036)
This commit implements IsDaycareOccupied for generation 1 saves. The
byte which tracks if the daycare is occupied should normally only be
0x01 or 0x00, so I decided that all other values mean that the daycare
is probably corrupted and thus not occupied. SetDaycareOccupied is not
implemented, since I am not sure what other flags the game normally sets
in this scenario and daycare is read-only anyway.

The GUI displays the Pokemon's index to the right for some reason, but I
don't have saves to test this for other generations, so it might be
unrelated to this change.
2018-06-29 16:18:42 -07:00
Kurt
d15acea6b4 Flag KOR on Battle Revolution savefiles
Closes #2013
2018-06-17 09:27:14 -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
cb5e1239ae Refactoring
Extract game value limits
Rearrange GameVersion util logic extensions
add better gameversion fetch for generator (equivalent to pkmeditor)
2018-06-15 16:00:28 -07:00
Kurt
4778c9c758 Fix RSBOX checksum
Closes #1995
clean up variable names
2018-06-11 09:12:41 -07:00
Kurt
c6765fd26b Remove ORAS arg
...
2018-06-10 14:07:36 -07:00
Kurt
19cb2cda2e Remove MAX giveRegular for ORAS
level 3 is the legitimate max
2018-06-10 12:27:53 -07:00
Kurt
75f4318335 Split S/MAX from base 1-3 levels
ORAS can unlock MAX & Full Recovery flags, add special handling for that
2018-06-10 11:28:20 -07:00
Kurt
29c610870e Rename opower6
match type
2018-06-10 11:03:14 -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
79f0b3665f Differentiate C/XD cologne IDs
https://projectpokemon.org/home/forums/topic/45685-pokémon-xd-and-scent-bag/
Thanks Asia81!
2018-06-09 12:44:30 -07:00
Kurt
cb4761403a Relocate oras setopower data to sav6 2018-06-09 12:32:55 -07:00
Kurt
5475da05c3 entree forest updates
clamp species list based on savefile
fix form control index set
remove slot from list (avoid duplicates, there's 530 slots and both
games have more than that available).

Closes #1974
2018-05-28 12:49:41 -07:00
Kurt
4b8cb9b8fb Add entree forest editor & randomizer
ezpz

(clear trailing spaces from entree forest comments)
2018-05-28 08:26:52 -07:00
Kurt
730709b33b Add entree forest abstractions
make cryptarray public
2018-05-27 14:19:19 -07:00
Kurt
700ce00d8e Add setting of batrev boxname
unused in gui, no wallpapers
2018-05-23 16:30:22 -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
400774595e 0 indexed -> 1 indexed
fixes regression from 2 days ago

e216c38151 (diff-37bd5b548e2b340e5c38fd0961a3eb04L165)

Thanks @ReignOfComputer for pointing this out:
https://github.com/kwsch/PKHeX/pull/1956

(also, update GetSprite since slot is 1-30; box is now -1(and below) if
not originating from a box. Now matches the legality check side
2018-05-21 18:28:54 -07:00
Kurt
620d822fef Misc changes
swallow error for invalid filenames in saveutil -- don't bother
detecting those files.
on fail to getmoveset, return the current moves instead of null.
2018-05-21 17:02:48 -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
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
047272c2ba Add batrev party viewing/handling
ezpz

party 4 bytes at end:
pkm, 0 (b) party index (b), 0x8000 (be u16)

not sure if there's a better way to detect party count...
2018-05-19 14:42:21 -07:00
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