mirror of
https://github.com/kwsch/PKHeX
synced 2024-11-14 00:07:15 +00:00
fe989d48fe
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
448 lines
11 KiB
C#
448 lines
11 KiB
C#
namespace PKHeX.Core
|
|
{
|
|
/// <summary>
|
|
/// Game Version ID enum shared between actual Version IDs and lumped version groupings.
|
|
/// </summary>
|
|
public enum GameVersion
|
|
{
|
|
#region Indicators for method empty arguments & result indication. Not stored values.
|
|
Invalid = -2,
|
|
Any = -1,
|
|
Unknown = 0,
|
|
#endregion
|
|
|
|
// The following values are IDs stored within PKM data, and can also identify individual games.
|
|
|
|
#region Gen3
|
|
/// <summary>
|
|
/// Pokémon Sapphire (GBA)
|
|
/// </summary>
|
|
S = 1,
|
|
|
|
/// <summary>
|
|
/// Pokémon Ruby (GBA)
|
|
/// </summary>
|
|
R = 2,
|
|
|
|
/// <summary>
|
|
/// Pokémon Emerald (GBA)
|
|
/// </summary>
|
|
E = 3,
|
|
|
|
/// <summary>
|
|
/// Pokémon FireRed (GBA)
|
|
/// </summary>
|
|
FR = 4,
|
|
|
|
/// <summary>
|
|
/// Pokémon LeafGreen (GBA)
|
|
/// </summary>
|
|
LG = 5,
|
|
|
|
/// <summary>
|
|
/// Pokémon Colosseum & Pokémon XD (GameCube)
|
|
/// </summary>
|
|
CXD = 15,
|
|
#endregion
|
|
|
|
#region Gen4
|
|
/// <summary>
|
|
/// Pokémon Diamond (NDS)
|
|
/// </summary>
|
|
D = 10,
|
|
|
|
/// <summary>
|
|
/// Pokémon Pearl (NDS)
|
|
/// </summary>
|
|
P = 11,
|
|
|
|
/// <summary>
|
|
/// Pokémon Platinum (NDS)
|
|
/// </summary>
|
|
Pt = 12,
|
|
|
|
/// <summary>
|
|
/// Pokémon Heart Gold (NDS)
|
|
/// </summary>
|
|
HG = 7,
|
|
|
|
/// <summary>
|
|
/// Pokémon Soul Silver (NDS)
|
|
/// </summary>
|
|
SS = 8,
|
|
#endregion
|
|
|
|
#region Gen5
|
|
/// <summary>
|
|
/// Pokémon White (NDS)
|
|
/// </summary>
|
|
W = 20,
|
|
|
|
/// <summary>
|
|
/// Pokémon Black (NDS)
|
|
/// </summary>
|
|
B = 21,
|
|
|
|
/// <summary>
|
|
/// Pokémon White 2 (NDS)
|
|
/// </summary>
|
|
W2 = 22,
|
|
|
|
/// <summary>
|
|
/// Pokémon Black 2 (NDS)
|
|
/// </summary>
|
|
B2 = 23,
|
|
#endregion
|
|
|
|
#region Gen6
|
|
/// <summary>
|
|
/// Pokémon X (3DS)
|
|
/// </summary>
|
|
X = 24,
|
|
|
|
/// <summary>
|
|
/// Pokémon Y (3DS)
|
|
/// </summary>
|
|
Y = 25,
|
|
|
|
/// <summary>
|
|
/// Pokémon Alpha Sapphire (3DS)
|
|
/// </summary>
|
|
AS = 26,
|
|
|
|
/// <summary>
|
|
/// Pokémon Omega Ruby (3DS)
|
|
/// </summary>
|
|
OR = 27,
|
|
#endregion
|
|
|
|
#region Gen7
|
|
/// <summary>
|
|
/// Pokémon Sun (3DS)
|
|
/// </summary>
|
|
SN = 30,
|
|
|
|
/// <summary>
|
|
/// Pokémon Moon (3DS)
|
|
/// </summary>
|
|
MN = 31,
|
|
|
|
/// <summary>
|
|
/// Pokémon Ultra Sun (3DS)
|
|
/// </summary>
|
|
US = 32,
|
|
|
|
/// <summary>
|
|
/// Pokémon Ultra Moon (3DS)
|
|
/// </summary>
|
|
UM = 33,
|
|
#endregion
|
|
|
|
/// <summary>
|
|
/// Pokémon Pokémon GO (Unused)
|
|
/// </summary>
|
|
GO = 34,
|
|
|
|
#region Virtual Console (3DS) Gen1
|
|
/// <summary>
|
|
/// Pokémon Red (3DS Virtual Console)
|
|
/// </summary>
|
|
RD = 35,
|
|
|
|
/// <summary>
|
|
/// Pokémon Green[JP]/Blue[INT] (3DS Virtual Console)
|
|
/// </summary>
|
|
GN = 36,
|
|
|
|
/// <summary>
|
|
/// Pokémon Blue[JP] (3DS Virtual Console)
|
|
/// </summary>
|
|
BU = 37,
|
|
|
|
/// <summary>
|
|
/// Pokémon Yellow [JP] (3DS Virtual Console)
|
|
/// </summary>
|
|
YW = 38,
|
|
#endregion
|
|
|
|
#region Virtual Console (3DS) Gen2
|
|
/// <summary>
|
|
/// Pokémon Gold (3DS Virtual Console)
|
|
/// </summary>
|
|
GD = 39,
|
|
|
|
/// <summary>
|
|
/// Pokémon Silver (3DS Virtual Console)
|
|
/// </summary>
|
|
SV = 40,
|
|
|
|
/// <summary>
|
|
/// Pokémon Crystal (3DS Virtual Console)
|
|
/// </summary>
|
|
C = 41,
|
|
#endregion
|
|
|
|
#region Nintendo Switch
|
|
/// <summary>
|
|
/// Pokémon Let's Go Pikachu (NX)
|
|
/// </summary>
|
|
GP = 42,
|
|
|
|
/// <summary>
|
|
/// Pokémon Let's Go Eevee (NX)
|
|
/// </summary>
|
|
GE = 43,
|
|
#endregion
|
|
|
|
// The following values are not actually stored values in pkm data,
|
|
// These values are assigned within PKHeX as properties for various logic branching.
|
|
|
|
#region Game Groupings (SaveFile type, roughly)
|
|
/// <summary>
|
|
/// Pokémon Red & Blue [<see cref="SAV1"/>] identifier.
|
|
/// </summary>
|
|
/// <seealso cref="RD"/>
|
|
/// <seealso cref="GN"/>
|
|
/// <seealso cref="BU"/>
|
|
RB,
|
|
|
|
/// <summary>
|
|
/// Pokémon Red/Blue/Yellow [<see cref="SAV1"/>] identifier.
|
|
/// </summary>
|
|
/// <see cref="RD"/>
|
|
/// <see cref="GN"/>
|
|
/// <see cref="BU"/>
|
|
/// <see cref="YW"/>
|
|
RBY,
|
|
|
|
/// <summary>
|
|
/// Pokémon Gold & Silver [<see cref="SAV2"/>] identifier.
|
|
/// </summary>
|
|
/// <see cref="GD"/>
|
|
/// <see cref="SV"/>
|
|
GS,
|
|
|
|
/// <summary>
|
|
/// Pokémon Gold/Silver/Crystal [<see cref="SAV2"/>] identifier.
|
|
/// </summary>
|
|
/// <see cref="GD"/>
|
|
/// <see cref="SV"/>
|
|
/// <see cref="C"/>
|
|
GSC,
|
|
|
|
/// <summary>
|
|
/// Pokémon Ruby & Sapphire [<see cref="SAV3"/>] identifier.
|
|
/// </summary>
|
|
/// <see cref="R"/>
|
|
/// <see cref="S"/>
|
|
RS,
|
|
|
|
/// <summary>
|
|
/// Pokémon Ruby/Sapphire/Emerald [<see cref="SAV3"/>] identifier.
|
|
/// </summary>
|
|
/// <see cref="R"/>
|
|
/// <see cref="S"/>
|
|
/// <see cref="E"/>
|
|
RSE,
|
|
|
|
/// <summary>
|
|
/// Pokémon FireRed/LeafGreen [<see cref="SAV3"/>] identifier.
|
|
/// </summary>
|
|
/// <see cref="FR"/>
|
|
/// <see cref="LG"/>
|
|
FRLG,
|
|
|
|
/// <summary>
|
|
/// Pokémon Box Ruby & Sapphire [<see cref="SAV3RSBox"/>] identifier.
|
|
/// </summary>
|
|
RSBOX,
|
|
|
|
/// <summary>
|
|
/// Pokémon Colosseum [<see cref="SAV3Colosseum"/>] identifier.
|
|
/// </summary>
|
|
/// <see cref="CXD"/>
|
|
/// <remarks>Also used to mark Colosseum-only origin data as this game shares a version ID with <see cref="XD"/></remarks>
|
|
COLO,
|
|
|
|
/// <summary>
|
|
/// Pokémon XD [<see cref="SAV3XD"/>] identifier.
|
|
/// </summary>
|
|
/// <see cref="CXD"/>
|
|
/// <remarks>Also used to mark XD-only origin data as this game shares a version ID with <see cref="COLO"/></remarks>
|
|
XD,
|
|
|
|
/// <summary>
|
|
/// Pokémon Diamond & Pearl [<see cref="SAV4"/>] identifier.
|
|
/// </summary>
|
|
/// <see cref="D"/>
|
|
/// <see cref="P"/>
|
|
DP,
|
|
|
|
/// <summary>
|
|
/// Pokémon Diamond/Pearl/Platinum version group.
|
|
/// </summary>
|
|
/// <remarks>Used to lump data from the associated games as data assets are shared.</remarks>
|
|
/// <see cref="D"/>
|
|
/// <see cref="P"/>
|
|
/// <see cref="Pt"/>
|
|
DPPt,
|
|
|
|
/// <summary>
|
|
/// Pokémon Heart Gold & Soul Silver [<see cref="SAV4"/>] identifier.
|
|
/// </summary>
|
|
/// <see cref="HG"/>
|
|
/// <see cref="SS"/>
|
|
HGSS,
|
|
|
|
/// <summary>
|
|
/// Pokémon Battle Revolution [<see cref="SAV4BR"/>] identifier.
|
|
/// </summary>
|
|
BATREV,
|
|
|
|
/// <summary>
|
|
/// Pokémon Black & White version group.
|
|
/// </summary>
|
|
/// <remarks>Used to lump data from the associated games as data assets are shared.</remarks>
|
|
/// <see cref="B"/>
|
|
/// <see cref="W"/>
|
|
BW,
|
|
|
|
/// <summary>
|
|
/// Pokémon Black 2 & White 2 version group.
|
|
/// </summary>
|
|
/// <remarks>Used to lump data from the associated games as data assets are shared.</remarks>
|
|
/// <see cref="B2"/>
|
|
/// <see cref="W2"/>
|
|
B2W2,
|
|
|
|
/// <summary>
|
|
/// Pokémon X & Y
|
|
/// </summary>
|
|
/// <remarks>Used to lump data from the associated games as data assets are shared.</remarks>
|
|
/// <see cref="X"/>
|
|
/// <see cref="Y"/>
|
|
XY,
|
|
|
|
/// <summary>
|
|
/// Pokémon Omega Ruby & Alpha Sapphire Demo [<see cref="SAV7"/>] identifier.
|
|
/// </summary>
|
|
/// <see cref="ORAS"/>
|
|
ORASDEMO,
|
|
|
|
/// <summary>
|
|
/// Pokémon Omega Ruby & Alpha Sapphire version group.
|
|
/// </summary>
|
|
/// <see cref="OR"/>
|
|
/// <see cref="AS"/>
|
|
/// <remarks>Used to lump data from the associated games as data assets are shared.</remarks>
|
|
ORAS,
|
|
|
|
/// <summary>
|
|
/// Pokémon Sun & Moon
|
|
/// </summary>
|
|
/// <remarks>Used to lump data from the associated games as data assets are shared.</remarks>
|
|
/// <see cref="SN"/>
|
|
/// <see cref="MN"/>
|
|
SM,
|
|
|
|
/// <summary>
|
|
/// Pokémon Ultra Sun & Ultra Moon
|
|
/// </summary>
|
|
/// <remarks>Used to lump data from the associated games as data assets are shared.</remarks>
|
|
/// <see cref="US"/>
|
|
/// <see cref="UM"/>
|
|
USUM,
|
|
|
|
/// <summary>
|
|
/// Pokémon Let's Go Pikachu & Eevee
|
|
/// </summary>
|
|
/// <remarks>Used to lump data from the associated games as data assets are shared.</remarks>
|
|
/// <see cref="GP"/>
|
|
/// <see cref="GE"/>
|
|
GG,
|
|
|
|
/// <summary>
|
|
/// Generation 1 Games
|
|
/// </summary>
|
|
/// <see cref="RBY"/>
|
|
Gen1,
|
|
|
|
/// <summary>
|
|
/// Generation 2 Games
|
|
/// </summary>
|
|
/// <see cref="GSC"/>
|
|
Gen2,
|
|
|
|
/// <summary>
|
|
/// Generation 3 Games
|
|
/// </summary>
|
|
/// <see cref="RSE"/>
|
|
/// <see cref="FRLG"/>
|
|
Gen3,
|
|
|
|
/// <summary>
|
|
/// Generation 4 Games
|
|
/// </summary>
|
|
/// <see cref="DPPt"/>
|
|
/// <see cref="HGSS"/>
|
|
Gen4,
|
|
|
|
/// <summary>
|
|
/// Generation 5 Games
|
|
/// </summary>
|
|
/// <see cref="BW"/>
|
|
/// <see cref="B2W2"/>
|
|
Gen5,
|
|
|
|
/// <summary>
|
|
/// Generation 6 Games
|
|
/// </summary>
|
|
/// <see cref="XY"/>
|
|
/// <see cref="ORAS"/>
|
|
Gen6,
|
|
|
|
/// <summary>
|
|
/// Generation 7 Games
|
|
/// </summary>
|
|
/// <see cref="SM"/>
|
|
/// <see cref="USUM"/>
|
|
Gen7,
|
|
|
|
/// <summary>
|
|
/// Generation 1/2 Game Boy Cartridge Era Only
|
|
/// </summary>
|
|
/// <remarks>
|
|
/// Since the original run of <see cref="RBY"/> and <see cref="GSC"/> could not transfer to future games,
|
|
/// any special encounters (event data) can only be allowed if the savedata originated from that era.
|
|
/// </remarks>
|
|
GBCartEraOnly,
|
|
|
|
/// <summary>
|
|
/// Pokémon Stadium data origin identifier
|
|
/// </summary>
|
|
/// <see cref="GBCartEraOnly"/>
|
|
Stadium,
|
|
|
|
/// <summary>
|
|
/// Pokémon Stadium 2 data origin identifier
|
|
/// </summary>
|
|
/// <see cref="GBCartEraOnly"/>
|
|
Stadium2,
|
|
|
|
/// <summary>
|
|
/// Generation 1 Game Boy Cartridge Era Only data origin identifier
|
|
/// </summary>
|
|
EventsGBGen1,
|
|
|
|
/// <summary>
|
|
/// Generation 2 Game Boy Cartridge Era Only data origin identifier
|
|
/// </summary>
|
|
EventsGBGen2,
|
|
|
|
/// <summary>
|
|
/// Generation 1/2 3DS Virtual Console data origin identifier
|
|
/// </summary>
|
|
VCEvents,
|
|
#endregion
|
|
}
|
|
}
|