public G1OverworldSpawner(SAV1 sav) { SAV = sav; EventFlags = sav.GetEventFlags(); SpawnFlags = sav.EventSpawnFlags; bool yellow = SAV.Yellow; // FlagPairs set for Red/Blue when appropriate. FlagEevee = new FlagPairG1(0x45); FlagAerodactyl = new FlagPairG1(0x069, 0x34); FlagHitmonlee = new FlagPairG1(0x356, 0x4A); FlagHitmonchan = new FlagPairG1(0x357, 0x4B); FlagVoltorb_1 = new FlagPairG1(0x461, 0x4D); FlagVoltorb_2 = new FlagPairG1(0x462, 0x4E); FlagVoltorb_3 = new FlagPairG1(0x463, 0x4F); FlagElectrode_1 = new FlagPairG1(0x464, 0x50); FlagVoltorb_4 = new FlagPairG1(0x465, 0x51); FlagVoltorb_5 = new FlagPairG1(0x466, 0x52); FlagElectrode_2 = new FlagPairG1(0x467, 0x53); FlagVoltorb_6 = new FlagPairG1(0x468, 0x54); FlagZapdos = new FlagPairG1(0x469, 0x55); FlagMoltres = new FlagPairG1(0x53E, 0x5B); FlagKabuto = new FlagPairG1(0x57E, 0x6D); FlagOmanyte = new FlagPairG1(0x57F, 0x6E); FlagMewtwo = new FlagPairG1(0x8C1, 0xD1); FlagArticuno = new FlagPairG1(0x9DA, 0xE3); if (yellow) // slightly different { FlagKabuto = new FlagPairG1(0x578, 0x6D); FlagAerodactyl = new FlagPairG1(0x069, 0x33); FlagMewtwo = new FlagPairG1(0x8C1, 0xD7); FlagArticuno = new FlagPairG1(0x9DA, 0xEB); FlagKabuto = new FlagPairG1(0x57E, 0x6F); FlagOmanyte = new FlagPairG1(0x57F, 0x70); FlagBulbasaur = new FlagPairG1(0x0A8, 0x34); FlagSquirtle = new FlagPairG1(0x147, 0); // Given by Officer Jenny after badged FlagCharmander = new FlagPairG1(0x54F, 0); // Given by Damian, doesn't despawn } }
/// <summary>Creates an instance of a SaveFile using the given save data.</summary> /// <param name="data">Save data from which to create a SaveFile.</param> /// <returns>An appropriate type of save file for the given data, or null if the save data is invalid.</returns> public static SaveFile getVariantSAV(byte[] data) { // Pre-check for header/footer signatures SaveFile sav; byte[] header = new byte[0], footer = new byte[0]; CheckHeaderFooter(ref data, ref header, ref footer); switch (getSAVGeneration(data)) { // Main Games case GameVersion.Gen1: sav = new SAV1(data); break; case GameVersion.Gen2: sav = new SAV2(data); break; case GameVersion.Gen3: sav = new SAV3(data); break; case GameVersion.Gen4: sav = new SAV4(data); break; case GameVersion.Gen5: sav = new SAV5(data); break; case GameVersion.Gen6: sav = new SAV6(data); break; case GameVersion.Gen7: sav = new SAV7(data); break; // Side Games case GameVersion.COLO: sav = new SAV3Colosseum(data); break; case GameVersion.XD: sav = new SAV3XD(data); break; case GameVersion.RSBOX: sav = new SAV3RSBox(data); break; case GameVersion.BATREV: sav = new SAV4BR(data); break; // No pattern matched default: return(null); } sav.Header = header; sav.Footer = footer; return(sav); }
public G1OverworldSpawner(SAV1 sav) { SAV = sav; EventFlags = sav.EventFlags; SpawnFlags = sav.EventSpawnFlags; bool yellow = SAV.Yellow; // FlagPairs set for Red/Blue when appropriate. FlagEevee = new FlagPair { SpawnFlag = 0x45 }; FlagAerodactyl = new FlagPair { EventFlag = 0x069, SpawnFlag = 0x34 }; FlagHitmonlee = new FlagPair { EventFlag = 0x356, SpawnFlag = 0x4A }; FlagHitmonchan = new FlagPair { EventFlag = 0x357, SpawnFlag = 0x4B }; FlagVoltorb_1 = new FlagPair { EventFlag = 0x461, SpawnFlag = 0x4D }; FlagVoltorb_2 = new FlagPair { EventFlag = 0x462, SpawnFlag = 0x4E }; FlagVoltorb_3 = new FlagPair { EventFlag = 0x463, SpawnFlag = 0x4F }; FlagElectrode_1 = new FlagPair { EventFlag = 0x464, SpawnFlag = 0x50 }; FlagVoltorb_4 = new FlagPair { EventFlag = 0x465, SpawnFlag = 0x51 }; FlagVoltorb_5 = new FlagPair { EventFlag = 0x466, SpawnFlag = 0x52 }; FlagElectrode_2 = new FlagPair { EventFlag = 0x467, SpawnFlag = 0x53 }; FlagVoltorb_6 = new FlagPair { EventFlag = 0x468, SpawnFlag = 0x54 }; FlagZapdos = new FlagPair { EventFlag = 0x469, SpawnFlag = 0x55 }; FlagMoltres = new FlagPair { EventFlag = 0x53E, SpawnFlag = 0x5B }; FlagKabuto = new FlagPair { EventFlag = 0x57E, SpawnFlag = 0x6D }; FlagOmanyte = new FlagPair { EventFlag = 0x57F, SpawnFlag = 0x6E }; FlagMewtwo = new FlagPair { EventFlag = 0x8C1, SpawnFlag = 0xD1 }; FlagArticuno = new FlagPair { EventFlag = 0x9DA, SpawnFlag = 0xE3 }; if (yellow) // slightly different { FlagKabuto.EventFlag = 0x578; FlagAerodactyl.SpawnFlag = 0x33; FlagMewtwo.SpawnFlag = 0xD7; FlagArticuno.SpawnFlag = 0xEB; FlagKabuto.SpawnFlag += 2; FlagOmanyte.SpawnFlag += 2; FlagBulbasaur = new FlagPair { EventFlag = 0x0A8, SpawnFlag = 0x34 }; FlagSquirtle = new FlagPair { EventFlag = 0x147 }; // Given by Officer Jenny after badged FlagCharmander = new FlagPair { EventFlag = 0x54F }; // Given by Damian, doesn't despawn } }
/// <summary>Creates an instance of a SaveFile using the given save data.</summary> /// <param name="data">Save data from which to create a SaveFile.</param> /// <returns>An appropriate type of save file for the given data, or null if the save data is invalid.</returns> public static SaveFile getVariantSAV(byte[] data) { // Pre-check for header/footer signatures SaveFile sav; byte[] header = new byte[0], footer = new byte[0]; CheckHeaderFooter(ref data, ref header, ref footer); switch (getSAVGeneration(data)) { // Main Games case GameVersion.Gen1: sav = new SAV1(data); break; case GameVersion.Gen2: sav = new SAV2(data); break; case GameVersion.Gen3: sav = new SAV3(data); break; case GameVersion.Gen4: sav = new SAV4(data); break; case GameVersion.Gen5: sav = new SAV5(data); break; case GameVersion.Gen6: sav = new SAV6(data); break; case GameVersion.Gen7: sav = new SAV7(data); break; // Side Games case GameVersion.COLO: sav = new SAV3Colosseum(data); break; case GameVersion.XD: sav = new SAV3XD(data); break; case GameVersion.RSBOX: sav = new SAV3RSBox(data); break; case GameVersion.BATREV: sav = new SAV4BR(data); break; // No pattern matched default: return null; } sav.Header = header; sav.Footer = footer; return sav; }