Exemplo n.º 1
0
 public SaveBlockAccessorAODemo(SAV6AODemo sav)
 {
     Items     = new MyItem6AO(sav, 0x00000);
     ItemInfo  = new ItemInfo6(sav, 0x00C00);
     GameTime  = new GameTime6(sav, 0x00E00);
     Situation = new Situation6(sav, 0x01000);
     Played    = new PlayTime6(sav, 0x01400);
     Status    = new MyStatus6(sav, 0x03C00);
     Records   = new RecordBlock6(sav, 0x05400);
     Misc      = new Misc6AO(sav, 0x03A00);
 }
Exemplo n.º 2
0
 public SaveBlockAccessorXY(SAV6XY sav)
 {
     Puff        = new Puff6(sav, 0x00000);
     Items       = new MyItem6XY(sav, 0x00400);
     ItemInfo    = new ItemInfo6(sav, 0x01000);
     GameTime    = new GameTime6(sav, 0x01200);
     Situation   = new Situation6(sav, 0x01400);
     Played      = new PlayTime6(sav, 0x01800);
     Fashion     = new Fashion6XY(sav, 0x1A00);
     Misc        = new Misc6XY(sav, 0x4200);
     BoxLayout   = new BoxLayout6(sav, 0x4400);
     BattleBox   = new BattleBox6(sav, 0x04A00);
     Status      = new MyStatus6XY(sav, 0x14000);
     Zukan       = new Zukan6XY(sav, 0x15000, 0x3C8);
     OPower      = new OPower6(sav, 0x16A00);
     MysteryGift = new MysteryBlock6(sav, 0x1BC00);
     Records     = new RecordBlock6(sav, 0x1E400);
     SuperTrain  = new SuperTrainBlock(sav, 0x1F200);
     Link        = new LinkBlock6(sav, 0x1FE00);
     Maison      = new MaisonBlock(sav, 0x1B000);
 }
Exemplo n.º 3
0
 public SaveBlockAccessorAO(SAV6AO sav)
 {
     Puff        = new Puff6(sav, 0x0000);
     Items       = new MyItem6AO(sav, 0x00400);
     ItemInfo    = new ItemInfo6(sav, 0x1000);
     GameTime    = new GameTime6(sav, 0x01200);
     Situation   = new Situation6(sav, 0x01400);
     Played      = new PlayTime6(sav, 0x01800);
     Misc        = new Misc6AO(sav, 0x04200);
     BoxLayout   = new BoxLayout6(sav, 0x04400);
     BattleBox   = new BattleBox6(sav, 0x04A00);
     Status      = new MyStatus6(sav, 0x14000);
     Zukan       = new Zukan6AO(sav, 0x15000, 0x400);
     OPower      = new OPower6(sav, 0x17400);
     Maison      = new MaisonBlock(sav, 0x1BA00);
     MysteryGift = new MysteryBlock6(sav, 0x1CC00);
     Records     = new RecordBlock6(sav, 0x1F400);
     SuperTrain  = new SuperTrainBlock(sav, 0x20200);
     Link        = new LinkBlock6(sav, 0x20E00);
     Sango       = new SangoInfoBlock(sav, 0x2B600);
 }
Exemplo n.º 4
0
        public SaveBlockAccessor7SM(SAV7SM sav)
        {
            var bi = BlockInfo;

            Items       = new MyItem7SM(sav, 0);
            Situation   = new Situation7(sav, bi[01].Offset);
            MyStatus    = new MyStatus7(sav, bi[03].Offset);
            Zukan       = new Zukan7(sav, bi[06].Offset, 0x550);
            Misc        = new Misc7(sav, bi[09].Offset);
            FieldMenu   = new FieldMenu7(sav, bi[10].Offset);
            Config      = new ConfigSave7(sav, bi[11].Offset);
            GameTime    = new GameTime7(sav, bi[12].Offset);
            BoxLayout   = new BoxLayout7(sav, bi[13].Offset);
            ResortSave  = new ResortSave7(sav, bi[15].Offset);
            Played      = new PlayTime6(sav, bi[16].Offset);
            Overworld   = new FieldMoveModelSave7(sav, bi[17].Offset);
            Fashion     = new FashionBlock7(sav, bi[18].Offset);
            Festa       = new JoinFesta7(sav, bi[21].Offset);
            PokeFinder  = new PokeFinder7(sav, bi[26].Offset);
            MysteryGift = new MysteryBlock7(sav, bi[27].Offset);
            Records     = new RecordBlock6(sav, bi[28].Offset);
            BattleTree  = new BattleTree7(sav, bi[32].Offset);
            Daycare     = new Daycare7(sav, bi[33].Offset);
        }
Exemplo n.º 5
0
        private void Initialize()
        {
            /* 00: 00000-002C8, 002C8 */                            // Puff = 0x00000;
            /* 01: 00400-00F88, 00B88 */                            // MyItem = 0x00400; // Bag
            /* 02: 01000-0102C, 0002C */                            // ItemInfo = 0x1000; // Select Bound Items
            /* 03: 01200-01238, 00038 */                            // GameTime = 0x01200;
            /* 04: 01400-01550, 00150 */ Trainer1 = 0x1400;         // Situation
            /* 05: 01600-01604, 00004 */                            // RandomGroup (rand seeds)
            /* 06: 01800-01808, 00008 */                            // PlayTime
            /* 07: 01A00-01BC0, 001C0 */ Accessories = 0x1A00;      // Fashion
            /* 08: 01C00-01CBE, 000BE */                            // amie minigame records
            /* 09: 01E00-01E24, 00024 */                            // temp variables (u32 id + 32 u8)
            /* 10: 02000-04100, 02100 */                            // FieldMoveModelSave
            /* 11: 04200-04340, 00140 */ Trainer2  = 0x4200;        // Misc
            /* 12: 04400-04840, 00440 */ PCLayout  = 0x4400;        // BOX
            /* 13: 04A00-04F74, 00574 */ BattleBox = 0x04A00;       // BattleBox
            /* 14: 05000-09E28, 04E28 */ PSS       = 0x05000;
            /* 15: 0A000-0EE28, 04E28 */                            // PSS2
            /* 16: 0F000-13E28, 04E28 */                            // PSS3
            /* 17: 14000-14170, 00170 */                            // MyStatus
            /* 18: 14200-1481C, 0061C */ Party      = 0x14200;      // PokePartySave
            /* 19: 14A00-14F04, 00504 */ EventConst = 0x14A00;      // EventWork
            /* 20: 15000-156A0, 006A0 */ PokeDex    = 0x15000;      // ZukanData
            /* 21: 15800-15E44, 00644 */                            // hologram clips
            /* 22: 16000-16104, 00104 */ Fused = 0x16000;           // UnionPokemon
            /* 23: 16200-16204, 00004 */                            // ConfigSave
            /* 24: 16400-16820, 00420 */                            // Amie decoration stuff
            /* 25: 16A00-16A64, 00064 */                            // OPower = 0x16A00;
            /* 26: 16C00-16FF0, 003F0 */                            // Strength Rock position (xyz float: 84 entries, 12bytes/entry)
            /* 27: 17000-1770C, 0070C */                            // Trainer PR Video
            /* 28: 17800-17980, 00180 */ GTS = 0x17800;             // GtsData
            /* 29: 17A00-17A04, 00004 */                            // Packed Menu Bits
            /* 30: 17C00-17C0C, 0000C */                            // PSS Profile Q&A (6*questions, 6*answer)
            /* 31: 17E00-17E48, 00048 */                            // Repel Info, (Swarm?) and other overworld info (roamer)
            /* 32: 18000-18054, 00054 */                            // BOSS data fetch history (serial/mystery gift), 4byte intro & 20*4byte entries
            /* 33: 18200-18844, 00644 */                            // Streetpass history (4 byte intro, 20*4byte entries, 20*76 byte entries)
            /* 34: 18A00-18FC8, 005C8 */                            // LiveMatchData/BattleSpotData
            /* 35: 19000-192F8, 002F8 */                            // MAC Address & Network Connection Logging (0x98 per entry, 5 entries)
            /* 36: 19400-1AF40, 01B40 */ HoF         = 0x19400;     // Dendou
            /* 37: 1B000-1B1F4, 001F4 */ MaisonStats = 0x1B1C0;     // BattleInstSave
            /* 38: 1B200-1B3F0, 001F0 */ Daycare     = 0x1B200;     // Sodateya
            /* 39: 1B400-1B616, 00216 */                            // BattleInstSave
            /* 40: 1B800-1BB90, 00390 */ BerryField      = 0x1B800;
            /* 41: 1BC00-1D690, 01A90 */ WondercardFlags = 0x1BC00; // MysteryGiftSave
            /* 42: 1D800-1DB08, 00308 */ SUBE            = 0x1D890; // PokeDiarySave
            /* 43: 1DC00-1E218, 00618 */                            // Storyline Records
            /* 44: 1E400-1E65C, 0025C */                            // Record = 0x1E400;
            /* 45: 1E800-1F034, 00834 */                            // Friend Safari (0x15 per entry, 100 entries)
            /* 46: 1F200-1F518, 00318 */ SuperTrain = 0x1F200;
            /* 47: 1F600-1FDD0, 007D0 */                            // Unused (lmao)
            /* 48: 1FE00-20A48, 00C48 */ LinkInfo = 0x1FE00;
            /* 49: 20C00-20C78, 00078 */                            // PSS usage info
            /* 50: 20E00-21000, 00200 */                            // GameSyncSave
            /* 51: 21000-21C84, 00C84 */                            // PSS Icon (bool32 data present, 40x40 u16 pic, unused)
            /* 52: 21E00-22428, 00628 */                            // ValidationSave (updatabale Public Key for legal check api calls)
            /* 53: 22600-570D0, 34AD0 */ Box  = 0x22600;
            /* 54: 57200-65258, 0E058 */ JPEG = 0x57200;

            Items          = new MyItem6XY(this, 0x00400);
            PuffBlock      = new Puff6(this, 0x00000);
            GameTime       = new GameTime6(this, 0x01200);
            Situation      = new Situation6(this, 0x01400);
            Played         = new PlayTime6(this, 0x01800);
            BoxLayout      = new BoxLayout6(this, 0x4400);
            BattleBoxBlock = new BattleBox6(this, 0x04A00);
            Status         = new MyStatus6XY(this, 0x14000);
            Zukan          = new Zukan6XY(this, 0x15000, 0x3C8);
            OPowerBlock    = new OPower6(this, 0x16A00);
            MysteryBlock   = new MysteryBlock6(this, 0x1BC00);
            Records        = new Record6(this, 0x1E400, Core.Records.MaxType_XY);

            EventFlag      = EventConst + 0x2FC;
            WondercardData = WondercardFlags + 0x100;

            HeldItems = Legal.HeldItem_XY;
            Personal  = PersonalTable.XY;
        }
Exemplo n.º 6
0
        private void GetSAVOffsets()
        {
            /* 00 */ Bag      = Blocks[00].Offset;        // 0x00000  // [DE0]    MyItem
            /* 01 */ Trainer1 = Blocks[01].Offset;        // 0x00E00  // [07C]    Situation
            /* 02 */                                      //  = Blocks[02].Offset; // 0x01000  // [014]    RandomGroup
            /* 03 */ TrainerCard   = Blocks[03].Offset;   // 0x01200  // [0C0]    MyStatus
            /* 04 */ Party         = Blocks[04].Offset;   // 0x01400  // [61C]    PokePartySave
            /* 05 */ EventConst    = Blocks[05].Offset;   // 0x01C00  // [E00]    EventWork
            /* 06 */ PokeDex       = Blocks[06].Offset;   // 0x02A00  // [F78]    ZukanData
            /* 07 */ GTS           = Blocks[07].Offset;   // 0x03A00  // [228]    GtsData
            /* 08 */ Fused         = Blocks[08].Offset;   // 0x03E00  // [104]    UnionPokemon
            /* 09 */ Misc          = Blocks[09].Offset;   // 0x04000  // [200]    Misc
            /* 10 */ Trainer2      = Blocks[10].Offset;   // 0x04200  // [020]    FieldMenu
            /* 11 */ ConfigSave    = Blocks[11].Offset;   // 0x04400  // [004]    ConfigSave
            /* 12 */ AdventureInfo = Blocks[12].Offset;   // 0x04600  // [058]    GameTime
            /* 13 */ PCLayout      = Blocks[13].Offset;   // 0x04800  // [5E6]    BOX
            /* 14 */ Box           = Blocks[14].Offset;   // 0x04E00  // [36600]  BoxPokemon
            /* 15 */ Resort        = Blocks[15].Offset;   // 0x3B400  // [572C]   ResortSave
            /* 16 */ PlayTime      = Blocks[16].Offset;   // 0x40C00  // [008]    PlayTime
            /* 17 */ Overworld     = Blocks[17].Offset;   // 0x40E00  // [1080]   FieldMoveModelSave
            /* 18 */ Fashion       = Blocks[18].Offset;   // 0x42000  // [1A08]   Fashion
            /* 19 */                                      //  = Blocks[19].Offset; // 0x43C00  // [6408]   JoinFestaPersonalSave
            /* 20 */                                      //  = Blocks[20].Offset; // 0x4A200  // [6408]   JoinFestaPersonalSave
            /* 21 */ JoinFestaData = Blocks[21].Offset;   // 0x50800  // [3998]   JoinFestaDataSave
            /* 22 */                                      //  = Blocks[22].Offset; // 0x54200  // [100]    BerrySpot
            /* 23 */                                      //  = Blocks[23].Offset; // 0x54400  // [100]    FishingSpot
            /* 24 */                                      //  = Blocks[24].Offset; // 0x54600  // [10528]  LiveMatchData
            /* 25 */                                      //  = Blocks[25].Offset; // 0x64C00  // [204]    BattleSpotData
            /* 26 */ PokeFinderSave  = Blocks[26].Offset; // 0x65000  // [B60]    PokeFinderSave
            /* 27 */ WondercardFlags = Blocks[27].Offset; // 0x65C00  // [3F50]   MysteryGiftSave
            /* 28 */ Record          = Blocks[28].Offset; // 0x69C00  // [358]    Record
            /* 29 */                                      //  = Blocks[29].Offset; // 0x6A000  // [728]    ValidationSave
            /* 30 */                                      //  = Blocks[30].Offset; // 0x6A800  // [200]    GameSyncSave
            /* 31 */                                      //  = Blocks[31].Offset; // 0x6AA00  // [718]    PokeDiarySave
            /* 32 */ BattleTree = Blocks[32].Offset;      // 0x6B200  // [1FC]    BattleInstSave
            /* 33 */ Daycare    = Blocks[33].Offset;      // 0x6B400  // [200]    Sodateya
            /* 34 */                                      //  = Blocks[34].Offset; // 0x6B600  // [120]    WeatherSave
            /* 35 */ QRSaveData = Blocks[35].Offset;      // 0x6B800  // [1C8]    QRReaderSaveData
            /* 36 */                                      //  = Blocks[36].Offset; // 0x6BA00  // [200]    TurtleSalmonSave

            // USUM only
            /* 37 */                                      //  = Blocks[37].Offset;   BattleFesSave
            /* 38 */                                      //  = Blocks[38].Offset;   FinderStudioSave

            EventFlag = EventConst + (EventConstMax * 2); // After Event Const (u16)*n
            HoF       = EventFlag + (EventFlagMax / 8);   // After Event Flags (1b)*(1u8/8b)*n

            PokeDexLanguageFlags = 0x550;
            WondercardData       = WondercardFlags + 0x100;

            Played          = new PlayTime6(this, PlayTime);
            MysteryBlock    = new MysteryBlock7(this, WondercardFlags);
            PokeFinder      = new PokeFinder7(this, PokeFinderSave);
            Festa           = new JoinFesta7(this, JoinFestaData);
            DaycareBlock    = new Daycare7(this, Daycare);
            Situation       = new Situation7(this, Overworld);
            MyStatus        = new MyStatus7(this, TrainerCard);
            OverworldBlock  = new FieldMoveModelSave7(this, Overworld);
            Config          = new ConfigSave7(this, ConfigSave);
            GameTime        = new GameTime7(this, AdventureInfo);
            MiscBlock       = new Misc7(this, Misc);
            BoxLayout       = new BoxLayout7(this, PCLayout);
            BattleTreeBlock = new BattleTree7(this, BattleTree);
            ResortSave      = new ResortSave7(this, Resort);
            FieldMenu       = new FieldMenu7(this, Trainer2);
            FashionBlock    = new FashionBlock7(this, Fashion);

            TeamSlots = BoxLayout.TeamSlots;
        }
Exemplo n.º 7
0
        private void Initialize()
        {
            /* 00: 00000-002C8, 002C8 */                            // Puff = 0x00000;
            /* 01: 00400-00F90, 00B90 */                            // MyItem = 0x00400; // Bag
            /* 02: 01000-0102C, 0002C */                            // ItemInfo = 0x1000; // Select Bound Items
            /* 03: 01200-01238, 00038 */                            // GameTime = 0x01200;
            /* 04: 01400-01550, 00150 */ Trainer1 = 0x01400;        // Situation
            /* 05: 01600-01604, 00004 */                            // RandomGroup (rand seeds)
            /* 06: 01800-01808, 00008 */ PlayTime    = 0x1800;      // PlayTime
            /* 07: 01A00-01BC0, 001C0 */ Accessories = 0x1A00;      // Fashion
            /* 08: 01C00-01CBE, 000BE */                            // amie minigame records
            /* 09: 01E00-01E24, 00024 */                            // temp variables (u32 id + 32 u8)
            /* 10: 02000-04100, 02100 */                            // FieldMoveModelSave
            /* 11: 04200-04330, 00130  */ Trainer2  = 0x04200;      // Misc
            /* 12: 04400-04840, 00440  */ PCLayout  = 0x04400;      // BOX
            /* 13: 04A00-04F74, 00574  */ BattleBox = 0x04A00;      // BattleBox
            /* 14: 05000-09E28, 04E28 */ PSS        = 0x05000;
            /* 15: 0A000-0EE28, 04E28 */                            // PSS2
            /* 16: 0F000-13E28, 04E28 */                            // PSS3
            /* 17: 14000-14170, 00170 */                            // MyStatus
            /* 18: 14200-1481C, 0061C */ Party      = 0x14200;      // PokePartySave
            /* 19: 14A00-14F04, 00504 */ EventConst = 0x14A00;      // EventWork
            /* 20: 15000-161CC, 011CC */ PokeDex    = 0x15000;      // ZukanData
            /* 21: 16200-16844, 00644 */                            // hologram clips
            /* 22: 16A00-16B04, 00104 */ Fused = 0x16A00;           // UnionPokemon
            /* 23: 16C00-16C04, 00004 */                            // ConfigSave
            /* 24: 16E00-17220, 00420 */                            // Amie decoration stuff
            /* 25: 17400-17464, 00064 */                            // OPower = 0x17400;
            /* 26: 17600-179F0, 003F0 */                            // Strength Rock position (xyz float: 84 entries, 12bytes/entry)
            /* 27: 17A00-1810C, 0070C */                            // Trainer PR Video
            /* 28: 18200-18380, 00180 */ GTS = 0x18200;             // GtsData
            /* 29: 18400-18404, 00004 */                            // Packed Menu Bits
            /* 30: 18600-1860C, 0000C */                            // PSS Profile Q&A (6*questions, 6*answer)
            /* 31: 18800-18848, 00048 */                            // Repel Info, (Swarm?) and other overworld info (roamer)
            /* 32: 18A00-18A54, 00054 */                            // BOSS data fetch history (serial/mystery gift), 4byte intro & 20*4byte entries
            /* 33: 18C00-19244, 00644 */                            // Streetpass history
            /* 34: 19400-199C8, 005C8 */                            // LiveMatchData/BattleSpotData
            /* 35: 19A00-19CF8, 002F8 */                            // MAC Address & Network Connection Logging (0x98 per entry, 5 entries)
            /* 36: 19E00-1B940, 01B40 */ HoF         = 0x19E00;     // Dendou
            /* 37: 1BA00-1BBF4, 001F4 */ MaisonStats = 0x1BBC0;     // BattleInstSave
            /* 38: 1BC00-1BFE0, 003E0 */ Daycare     = 0x1BC00;     // Sodateya
            /* 39: 1C000-1C216, 00216 */                            // BattleInstSave
            /* 40: 1C400-1CA40, 00640 */ BerryField      = 0x1C400;
            /* 41: 1CC00-1E690, 01A90 */ WondercardFlags = 0x1CC00; // MysteryGiftSave
            /* 42: 1E800-1EC00, 00400 */                            // Storyline Records
            /* 43: 1EC00-1F218, 00618 */ SUBE = 0x1D890;            // PokeDiarySave
            /* 44: 1F400-1F65C, 0025C */                            // Record = 0x1F400;
            /* 45: 1F800-20034, 00834 */                            // Friend Safari (0x15 per entry, 100 entries)
            /* 46: 20200-20518, 00318 */ SuperTrain = 0x20200;
            /* 47: 20600-20DD0, 007D0 */                            // Unused (lmao)
            /* 48: 20E00-21A48, 00C48 */ LinkInfo = 0x20E00;
            /* 49: 21C00-21C78, 00078 */                            // PSS usage info
            /* 50: 21E00-22000, 00200 */                            // GameSyncSave
            /* 51: 22000-22C84, 00C84 */                            // PSS Icon (bool32 data present, 40x40 u16 pic, unused)
            /* 52: 22E00-23428, 00628 */                            // ValidationSave (updatabale Public Key for legal check api calls)
            /* 53: 23600-23A00, 00400 */ Contest    = 0x23600;
            /* 54: 23A00-2B4D0, 07AD0 */ SecretBase = 0x23A00;
            /* 55: 2B600-32EB0, 078B0 */ EonTicket  = 0x319B8;
            /* 56: 33000-67AD0, 34AD0 */ Box        = 0x33000;
            /* 57: 67C00-75C58, 0E058 */ JPEG       = 0x67C00;

            Items        = new MyItem6XY(this, 0x00400);
            PuffBlock    = new Puff6(this, 0x0000);
            GameTime     = new GameTime6(this, 0x01200);
            Situation    = new Situation6(this, 0x01400);
            Played       = new PlayTime6(this, 0x01800);
            BoxLayout    = new BoxLayout6(this, 0x04400);
            Status       = new MyStatus6(this, 0x14000);
            Zukan        = new Zukan6(this, 0x15000, 0x15000 + 0x400);
            OPowerBlock  = new OPower6(this, 0x17400);
            MysteryBlock = new MysteryBlock6(this, 0x1CC00);
            Records      = new Record6(this, 0x1F400, Core.Records.MaxType_AO);
            Sango        = new SangoInfoBlock(this, 0x2B600);

            EventFlag            = EventConst + 0x2FC;
            PokeDexLanguageFlags = PokeDex + 0x400;
            Spinda         = PokeDex + 0x680;
            EncounterCount = PokeDex + 0x686;
            WondercardData = WondercardFlags + 0x100;
            Daycare2       = Daycare + 0x1F0;

            HeldItems = Legal.HeldItem_XY;
            Personal  = PersonalTable.XY;
        }