From c617aa206d04346aaacc02c4acde38552e4ee98e Mon Sep 17 00:00:00 2001 From: Kurt Date: Tue, 16 Jan 2024 21:43:10 -0800 Subject: [PATCH] Misc tweaks Re-dump safari slots for HGSS; the repackaged narc accidentally shuffled files so the wrong water tables were output. Add error log output on reporting exception fail first to always dump an error log file. Don't trust the popup/form. Permit TID/OT duplication for in-game trades/N's pokemon. https://projectpokemon.org/home/forums/topic/57375-pkhex-new-update-legality-errors-contribution-page/?do=findComment&comment=287395 --- .../Legality/Bulk/DuplicateTrainerChecker.cs | 12 +++++++++--- .../legality/wild/Gen4/encounter_hg.pkl | Bin 88804 -> 88860 bytes .../legality/wild/Gen4/encounter_ss.pkl | Bin 88232 -> 88288 bytes PKHeX.WinForms/Program.cs | 9 ++++++++- 4 files changed, 17 insertions(+), 4 deletions(-) diff --git a/PKHeX.Core/Legality/Bulk/DuplicateTrainerChecker.cs b/PKHeX.Core/Legality/Bulk/DuplicateTrainerChecker.cs index d021226ab..6ba9690aa 100644 --- a/PKHeX.Core/Legality/Bulk/DuplicateTrainerChecker.cs +++ b/PKHeX.Core/Legality/Bulk/DuplicateTrainerChecker.cs @@ -49,9 +49,7 @@ private static void Verify(BulkAnalysis input, Dictionary enc switch + { + IFixedTrainer { IsFixedTrainer: true } => true, + MysteryGift { IsEgg: false } => true, + _ => false, + }; + private static bool IsSharedVersion(PKM pp, LegalityAnalysis pa, PKM cp, LegalityAnalysis ca) { if (pp.Version == cp.Version || pp.Version == 0 || cp.Version == 0) @@ -95,6 +100,7 @@ private static bool IsSharedVersion(PKM pp, LegalityAnalysis pa, PKM cp, Legalit static bool IsTradedEggVersionNoUpdate(PKM pk, LegalityAnalysis la) => la.Info.Generation switch { + 2 => true, // No version stored, just ignore. 3 => true, // No egg location, assume can be traded. Doesn't update version upon hatch. 4 => pk.WasTradedEgg, // Gen4 traded eggs do not update version upon hatch. _ => false, // Gen5+ eggs have an egg location, and update the version upon hatch. diff --git a/PKHeX.Core/Resources/legality/wild/Gen4/encounter_hg.pkl b/PKHeX.Core/Resources/legality/wild/Gen4/encounter_hg.pkl index 898477a419946cb9a7df3125c5340258c19961d4..e658237385d5dad8ea59eb9ad78025ebdc977a6f 100644 GIT binary patch delta 1925 zcmZ9MU1%It6vxk*nLD#v(`I*5vYVzcvH5B?n-6u-sI6M87_n+fYK_>3U_=%a$%9yh z(pfdoqInQ+9|G-zPm+g-3sa>JQA;gF)Jnl93V~KFB?Xmjnvb>w@qcr!gBbWTzrAxl z{^!h0E`O>{e5NY1Ug%vQ`tV1h1HTYW%o8nKBpUdg$h$%`bCoFfCs9k4Xc`*2M)Wf@ zx`;TabRAcyw1g{ETE-PBtq@hA@m1vCAew@5H&G8N+#)&+&8`uh`kO*JNlX=oX~tu^ z3~g0R`=Ci^Pry`@WcqFce%CPVs6||gsgP!xg1ijVI5ZEn)G=M!%rsQbbQC%b-GKVD zr~?f)Fzs$+dbo+{4X6SwH0dvtACBD4bOM@#a?MPe?_f%`A_Xc#r=Tjdy$vbtXw|_q z0=*A?4GnhUcNc7TqkRwB^)XFAv(OS$=x2Hn8oi6@KoPO`Aa(#FL1zazq%}bCKBiZo z(gO(IiQtD2yo>4BBWUy}f*(ULv<4LiF#}YAmY~Ap*b6lM1k64Ov(WaZPy?ERPC}I- z>=E+zVvo>k&)C3%;wjRVTw8L~d;@;Sc1cQkIm^P9i_1Ae}aM--09q#Bvwp2)#p;kh`E{ zd`4|;CKqSa-foGzx~NkQIiI(OPH*qO)YoT-=o@mBp1XFW7?kOC7?Sd!Af|*g!dX&G z9z@=HP2FC-JA^$Y=jUKq>W(ov{r$FnqHM;uV}V#IgX~x!S1OFeeL=P_$o72>8B+Cg z)RRtUTCrIvcm_tqD#(|DU!h%hw_aF$ch3u`y>X-Q1WIh$WGN}hI3q~`aVBH#Vq#A+ zKuR(|*pbd(@2HUjvqD$t@ujd%R%pv$Nt{k2@cyC%Vo!cdcDp#U4-{mbtQSn^>S8`+ z)+Q5~wPiA>wp+itJh2}h{rY<25fo&zmJ+#~rDQ{cp)qL77E9dNXb2Oyk_+-;QrWD| zuWa*8dr#@=$`KB9b@@R)s6Sc0Gt@B9)MWD41Mp1o`r2%ek~$z?+<>ev6DPjR-I%Ob zoGI~YGGem+u@zdctiN1sPQ8s^G7SiB^k1u!Ax2DebQoKpWT$!O&4|?6YKi6Rz?mao zhgpDR;2C)m2T~FT@+A%wNZd0_B%cn5gT6cEQmd+;%5pcQKX>kZDriz@Eunk|p+T!KpoL zZ7*9R8Io$`T*z6{)+CMSYT}THwqH<3Y;x)V2Sr9mNi&Bc`Z+`E24Ym;1yjWUeAj=su*7D>vC00uVd)A zDp7BIc%Lc-UfsLLip=xO_g7VSS*Fuz03yZ3;6r7E$}B0#+oGkVzUn7MMR_HmQi2S6 z)lg|cE^T^{d!K26;_d%dLYqSujY{AK9zoID{Z?kFsg!@B8C}h6%5a+}E;{CHwl=e~ z`QZ?M&dVL0yi|Ldql(4+SSlk_W~ictg}(O;v8=oj%W}_U6DNY8^Sr!JX+bz`dZ7F} zQF$l-Q>Y@`{$GU*cl?vHnREW1a>;*{bB}%QbaS~n_sy5oVwXb+2216ClRuwF&~!JO z+xqtq!%gQdiuo%r{^wrqqNz@YM?pn}zblo5N~x^O+tfhuinOXK-$oS)m0n$)w;6$A r5i{^oMFU$GLqa8i@^4Pp+a15`+%;ghiLb8z=geIfkKy%yJJR|C2}~v9 diff --git a/PKHeX.Core/Resources/legality/wild/Gen4/encounter_ss.pkl b/PKHeX.Core/Resources/legality/wild/Gen4/encounter_ss.pkl index 9670da2d15eff67c009a637e990c570c050aed38..a86532b0b3163d384b4cb30fcbed36eace797e35 100644 GIT binary patch delta 1899 zcmZ9MO=w(Y6o%h(@7y~xH9wOvW|B^-(M*yinI>r+{7tml`iG%WTQx!##fS^dVuYYw z6lT;wi)10aE&_GoLL`d_wl|9|EQBf&42ojGA5s`FSS(FCHi-=q#P`ejyoiB^`_A{B zpZA=Zo0+p-<*fJF`B-V;8{m~6fVLljCw~EEF9TZ@VBuGwcm-Ix3M{VxKsi zt1^z{|KOA4Z}3U-YkZRYIxt5H8_Xw1|KyVtZvs^^xe1j20#0n9gyVk$6A%;~!3?R8 zW>@eGNqK_re8Kw(e%>KKE#vA0RdTdmus{ka!AE47e4G|EHVTHxB>9}Ilhkd3nv5XP zB8X)LgJgotW{)tDqP10Uj7*ay^3&~tOKnWLQ*e-+AampznQdndY0U|akSS8r!OvYZ z-c19&L7m@J+TAC}4G7xy@v6Y9dpH9*MdryS8Ms%FzhAKXLBv5zs9 z%#%$r_&7b2^Q20OPYA}JqP3@Kja(zSVeW+-AC^OyIK;(~1%eU5eWXanpXH*+5@~#n z%OXYYp-PI+bG8>5KgxJgBr~KEuK0Vu3{QXmsUvQ<|I!)HiN%7E#XG{SpU=4Bh0~Y2 zT=B#C%9tzhFt*DLK+!CJp)^~&7R;EgWfLmV={!ztJ zDXTnHLx3NtcteA^eVb?omFO*%qv~BCp|@1Y=nT1>$>kY3I;@iJZglCP^z_(6r?2l{ z)!%Ov@HHGSn7)3p5HI6R8q)Gq@kk}K5zmrp@-60V*9?ANxw}Mro}Pb2%UX9#;0z4d z`iZg`-;PBkTA9j@MdfOR(Woz#?Mr3*zQhczdV%${)5UgfRtsLF5w%L?Yr!wruD3Us zt-d$>GHch?8c$S-x;m?pn#?n33YDbO=9Ux3G=s|13@Yv@Sgm%}=z&?G>ji}yrCW7{ zwhWgf4Gj!@prC==lOHL&U7p!5l*&5UE|>`Bsy!*QHl4_Vx4 z*(~q+Uz1(COoi5E8+%jlu#>u{ zV(;MG##D(TB|1Be394k5`Hh>A(B5v9=-a?EN8biBux4&Zq@I1iiS*s2l0AFO zfW}72)8*Tlxi-fjtgNJe7)cNawJ>nuLTnR_fn z=(z}LQ6S+WNP8`YauL-c)TBttLSdpILo_u*jZ= z;8hyqHVUF7Z!__o-?zo^aKY%I>`v}oMd(lcOjuuJj`hhlAxB~q>*$Plg^TtM)TMO zMHC}8?o=G28vg!=4$+K(*S9rs8ujmi}s+CKdX63$Mnx%Mm zf0fV{p^HX`6m6D!rdM^@>C#l5a(J#;V&s#xPczL!`t#H~jOPP0~@J?1!C}3~DQX!Y# zJrmi(Ij^Q%?n>qK{MmN>Ng{l6t}rY49(BNck4wKksG1&4l>guD(u0XMaVLY)|Jg%- zKi3{%`v?Tg-KfM?j>5vEO|cZOMJ*~aZB$NMX~o4!o6Ayc&uw|BQY>2sLu@6MGH*-M bS|VoI^=rVT$L4kO-?DyP^uxHiaHj4LrSl!> diff --git a/PKHeX.WinForms/Program.cs b/PKHeX.WinForms/Program.cs index c5f1b8e36..fc203f238 100644 --- a/PKHeX.WinForms/Program.cs +++ b/PKHeX.WinForms/Program.cs @@ -108,6 +108,14 @@ private static void CurrentDomain_UnhandledException(object sender, UnhandledExc private static void HandleReportingException(Exception? ex, Exception reportingException) { + try + { + EmergencyErrorLog(ex, reportingException); + } + catch (Exception) + { + // We've failed to even save the error details to a file. There's nothing else we can do. + } if (reportingException is FileNotFoundException x && x.FileName?.StartsWith("PKHeX.Core") == true) { Error("Could not locate PKHeX.Core.dll. Make sure you're running PKHeX together with its code library. Usually caused when all files are not extracted."); @@ -116,7 +124,6 @@ private static void HandleReportingException(Exception? ex, Exception reportingE try { Error("A fatal non-UI error has occurred in PKHeX, and there was a problem displaying the details. Please report this to the author."); - EmergencyErrorLog(ex, reportingException); } finally {