mirror of
https://github.com/kwsch/PKHeX.git
synced 2026-03-21 17:48:28 -05:00
Handle initial OT trash bytes for enc3->pk3
This commit is contained in:
parent
51a012ff78
commit
6e48856bec
|
|
@ -58,12 +58,16 @@ public PK3 ConvertToPKM(ITrainerInfo tr, EncounterCriteria criteria)
|
|||
|
||||
// Force Hatch
|
||||
Language = language,
|
||||
OriginalTrainerName = tr.OT,
|
||||
Nickname = SpeciesName.GetSpeciesNameGeneration(Species, language, Generation),
|
||||
OriginalTrainerFriendship = 120,
|
||||
MetLevel = 0,
|
||||
MetLocation = Location,
|
||||
};
|
||||
// Copy from SaveFile's OT name. Trash bytes here should be pure, but our OT name might not always source from a PK3/SAV3.
|
||||
// Condition the buffer as if it came from a correct SAV3 named after the OT.
|
||||
var ot = pk.OriginalTrainerTrash;
|
||||
ot[..(language == 1 ? 6 : 7)].Fill(0xFF);
|
||||
pk.OriginalTrainerName = EncounterUtil.GetTrainerName(tr, language);
|
||||
|
||||
SetEncounterMoves(pk);
|
||||
|
||||
|
|
|
|||
|
|
@ -64,11 +64,15 @@ public PK3 ConvertToPKM(ITrainerInfo tr, EncounterCriteria criteria)
|
|||
Ball = (byte)GetRequiredBall(Ball.Poke),
|
||||
|
||||
Language = language,
|
||||
OriginalTrainerName = tr.OT,
|
||||
OriginalTrainerGender = tr.Gender,
|
||||
ID32 = tr.ID32,
|
||||
Nickname = SpeciesName.GetSpeciesNameGeneration(Species, language, Generation),
|
||||
};
|
||||
// Copy from SaveFile's OT name. Trash bytes here should be pure, but our OT name might not always source from a PK3/SAV3.
|
||||
// Condition the buffer as if it came from a correct SAV3 named after the OT.
|
||||
var ot = pk.OriginalTrainerTrash;
|
||||
ot[..(language == 1 ? 6 : 7)].Fill(0xFF);
|
||||
pk.OriginalTrainerName = EncounterUtil.GetTrainerName(tr, language);
|
||||
|
||||
SetPINGA(pk, criteria, pi);
|
||||
SetEncounterMoves(pk);
|
||||
|
|
|
|||
|
|
@ -41,7 +41,7 @@ public sealed record EncounterStatic3(ushort Species, byte Level, GameVersion Ve
|
|||
|
||||
public PK3 ConvertToPKM(ITrainerInfo tr, EncounterCriteria criteria)
|
||||
{
|
||||
int lang = GetTemplateLanguage(tr);
|
||||
int language = GetTemplateLanguage(tr);
|
||||
var version = this.GetCompatibleVersion(tr.Version);
|
||||
var pi = PersonalTable.E[Species];
|
||||
var pk = new PK3
|
||||
|
|
@ -56,12 +56,16 @@ public PK3 ConvertToPKM(ITrainerInfo tr, EncounterCriteria criteria)
|
|||
Ball = (byte)(FixedBall != Ball.None ? FixedBall : Ball.Poke),
|
||||
FatefulEncounter = FatefulEncounter,
|
||||
|
||||
Language = lang,
|
||||
OriginalTrainerName = EncounterUtil.GetTrainerName(tr, lang),
|
||||
Language = language,
|
||||
OriginalTrainerGender = tr.Gender,
|
||||
ID32 = tr.ID32,
|
||||
Nickname = SpeciesName.GetSpeciesNameGeneration(Species, lang, Generation),
|
||||
Nickname = SpeciesName.GetSpeciesNameGeneration(Species, language, Generation),
|
||||
};
|
||||
// Copy from SaveFile's OT name. Trash bytes here should be pure, but our OT name might not always source from a PK3/SAV3.
|
||||
// Condition the buffer as if it came from a correct SAV3 named after the OT.
|
||||
var ot = pk.OriginalTrainerTrash;
|
||||
ot[..(language == 1 ? 6 : 7)].Fill(0xFF);
|
||||
pk.OriginalTrainerName = EncounterUtil.GetTrainerName(tr, language);
|
||||
|
||||
if (IsEgg)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -19,6 +19,10 @@ internal void Verify(LegalityAnalysis data, G3PKM pk)
|
|||
if (ParseSettings.AllowGBACrossTransferRSE(pk))
|
||||
return;
|
||||
|
||||
// Notes:
|
||||
// Nicknamed by player: all FF'd trash.
|
||||
// In-game trade: clean 00'd with a single FF on each.
|
||||
|
||||
// Only FR/LG are released. Only can originate from FR/LG.
|
||||
if (pk.Version is not (GameVersion.FR or GameVersion.LG))
|
||||
data.AddLine(GetInvalid(TradeNotAvailable));
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user