mirror of
https://github.com/kwsch/PKHeX.git
synced 2026-05-09 12:35:20 -05:00
Add extension methods for gym team get/set for all
Closes #2607 SAV6XY/AO had GymTeams get/set, this now makes similar logic accessible for even SAV5BW/B2W2.
This commit is contained in:
parent
be50abcc44
commit
f4bafe0809
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
namespace PKHeX.Core
|
||||
{
|
||||
public abstract class Misc5 : SaveBlock
|
||||
public abstract class Misc5 : SaveBlock, IGymTeamInfo
|
||||
{
|
||||
protected Misc5(SAV5 sav, int offset) : base(sav) => Offset = offset;
|
||||
|
||||
|
|
@ -36,7 +36,7 @@ public ushort GetBadgeVictorySpecies(uint badge, uint slot)
|
|||
return BitConverter.ToUInt16(Data, ofs);
|
||||
}
|
||||
|
||||
public void GetBadgeVictorySpecies(uint badge, uint slot, ushort species)
|
||||
public void SetBadgeVictorySpecies(uint badge, uint slot, ushort species)
|
||||
{
|
||||
var ofs = GetBadgeVictorySpeciesOffset(badge, slot);
|
||||
SAV.SetData(BitConverter.GetBytes(species), ofs);
|
||||
|
|
|
|||
39
PKHeX.Core/Saves/Substructures/Gen6/IGymTeamInfo.cs
Normal file
39
PKHeX.Core/Saves/Substructures/Gen6/IGymTeamInfo.cs
Normal file
|
|
@ -0,0 +1,39 @@
|
|||
namespace PKHeX.Core
|
||||
{
|
||||
public interface IGymTeamInfo
|
||||
{
|
||||
ushort GetBadgeVictorySpecies(uint badge, uint slot);
|
||||
void SetBadgeVictorySpecies(uint badge, uint slot, ushort species);
|
||||
}
|
||||
|
||||
public static class GymTeamInfoExtensions
|
||||
{
|
||||
public static ushort[][] GetGymTeams(this IGymTeamInfo info)
|
||||
{
|
||||
ushort[][] teams = new ushort[8][];
|
||||
for (uint badge = 0; badge < teams.Length; badge++)
|
||||
teams[badge] = GetGymTeam(info, badge);
|
||||
return teams;
|
||||
}
|
||||
|
||||
private static ushort[] GetGymTeam(IGymTeamInfo info, uint badge)
|
||||
{
|
||||
var team = new ushort[6];
|
||||
for (uint slot = 0; slot < team.Length; slot++)
|
||||
team[slot] = info.GetBadgeVictorySpecies(badge, slot);
|
||||
return team;
|
||||
}
|
||||
|
||||
public static void SetGymTeams(this IGymTeamInfo info, ushort[][] teams)
|
||||
{
|
||||
for (uint badge = 0; badge < teams.Length; badge++)
|
||||
info.SetGymTeam(badge, teams[badge]);
|
||||
}
|
||||
|
||||
public static void SetGymTeam(this IGymTeamInfo info, uint badge, ushort[] team)
|
||||
{
|
||||
for (uint slot = 0; slot < team.Length; slot++)
|
||||
info.SetBadgeVictorySpecies(badge, slot, team[slot]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
namespace PKHeX.Core
|
||||
{
|
||||
public abstract class SubEventLog6 : SaveBlock
|
||||
public abstract class SubEventLog6 : SaveBlock, IGymTeamInfo
|
||||
{
|
||||
protected SubEventLog6(SAV6 sav, int offset) : base(sav) => Offset = offset;
|
||||
|
||||
|
|
@ -24,7 +24,7 @@ public ushort GetBadgeVictorySpecies(uint badge, uint slot)
|
|||
return BitConverter.ToUInt16(Data, ofs);
|
||||
}
|
||||
|
||||
public void GetBadgeVictorySpecies(uint badge, uint slot, ushort species)
|
||||
public void SetBadgeVictorySpecies(uint badge, uint slot, ushort species)
|
||||
{
|
||||
var ofs = GetBadgeVictorySpeciesOffset(badge, slot);
|
||||
SAV.SetData(BitConverter.GetBytes(species), ofs);
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user