Merge branch 'pret:main' into PoketchData_Calendar

This commit is contained in:
TrainerRiley 2024-03-24 15:09:09 -07:00 committed by GitHub
commit 1a6121494b
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
351 changed files with 1066 additions and 1054 deletions

View File

@ -3,7 +3,10 @@
enum HeapId {
HEAP_ID_SYSTEM = 0,
HEAP_ID_SAVE,
HEAP_ID_DEBUG,
HEAP_ID_APPLICATION,
HEAP_ID_BATTLE = 5,
};

View File

@ -0,0 +1,70 @@
#ifndef POKEPLATINUM_CONSTANTS_SAVE_TABLE_H
#define POKEPLATINUM_CONSTANTS_SAVE_TABLE_H
enum SaveBlockID {
SAVE_BLOCK_ID_NORMAL = 0,
SAVE_BLOCK_ID_BOXES,
SAVE_BLOCK_ID_MAX
};
enum SaveTableEntryID {
SAVE_TABLE_ENTRY_SYSTEM = 0,
SAVE_TABLE_ENTRY_PLAYER,
SAVE_TABLE_ENTRY_PARTY,
SAVE_TABLE_ENTRY_BAG,
SAVE_TABLE_ENTRY_EVENTS,
SAVE_TABLE_ENTRY_POKETCH,
SAVE_TABLE_ENTRY_FIELD_PLAYER_STATE,
SAVE_TABLE_ENTRY_POKEDEX,
SAVE_TABLE_ENTRY_DAYCARE,
SAVE_TABLE_ENTRY_PAL_PAD,
SAVE_TABLE_ENTRY_MISC,
SAVE_TABLE_ENTRY_FIELD_OVERWORLD_STATE,
SAVE_TABLE_ENTRY_UNDERGROUND,
SAVE_TABLE_ENTRY_REGULATION_BATTLES,
SAVE_TABLE_ENTRY_IMAGE_CLIPS,
SAVE_TABLE_ENTRY_MAIL,
SAVE_TABLE_ENTRY_POFFINS,
SAVE_TABLE_ENTRY_RANDOM_GROUP,
SAVE_TABLE_ENTRY_JOURNAL,
SAVE_TABLE_ENTRY_TRAINER_CARD,
SAVE_TABLE_ENTRY_GAME_RECORDS,
SAVE_TABLE_ENTRY_BALL_SEALS,
SAVE_TABLE_ENTRY_CHATOT,
SAVE_TABLE_ENTRY_FRONTIER,
SAVE_TABLE_ENTRY_RIBBONS,
SAVE_TABLE_ENTRY_ENCOUNTERS,
SAVE_TABLE_ENTRY_GLOBAL_TRADE,
SAVE_TABLE_ENTRY_TV_BROADCAST,
SAVE_TABLE_ENTRY_RANKINGS,
SAVE_TABLE_ENTRY_WIFI_LIST,
SAVE_TABLE_ENTRY_WIFI_HISTORY,
SAVE_TABLE_ENTRY_MYSTERY_GIFT,
SAVE_TABLE_ENTRY_PAL_PARK_TRANSFER,
SAVE_TABLE_ENTRY_CONTESTS,
SAVE_TABLE_ENTRY_SENTENCE,
SAVE_TABLE_ENTRY_EMAIL,
SAVE_TABLE_ENTRY_WIFI_QUESTIONS,
SAVE_TABLE_ENTRY_PC_BOXES,
SAVE_TABLE_ENTRY_MAX
};
enum ExtraSaveTableEntryID {
EXTRA_SAVE_TABLE_ENTRY_HALL_OF_FAME = 0,
EXTRA_SAVE_TABLE_ENTRY_FRONTIER,
EXTRA_SAVE_TABLE_ENTRY_MY_RECORDINGS,
EXTRA_SAVE_TABLE_ENTRY_DL_RECORDINGS_0,
EXTRA_SAVE_TABLE_ENTRY_DL_RECORDINGS_1,
EXTRA_SAVE_TABLE_ENTRY_DL_RECORDINGS_2,
EXTRA_SAVE_TABLE_ENTRY_MAX
};
#define SAVE_PAGE_MAX 32
#define SAVE_SECTOR_SIZE (0x1000)
#define EXTRA_SAVE_TABLE_ENTRY_NONE 0xFFFFFFFF
#endif // POKEPLATINUM_CONSTANTS_SAVE_TABLE_H

View File

@ -0,0 +1,27 @@
#ifndef POKEPLATINUM_CONSTANTS_SAVEDATA_H
#define POKEPLATINUM_CONSTANTS_SAVEDATA_H
enum {
LOAD_RESULT_EMPTY,
LOAD_RESULT_OK,
LOAD_RESULT_CORRUPT,
LOAD_RESULT_ERROR,
};
enum {
SAVE_RESULT_PROCEED,
SAVE_RESULT_PROCEED_FINAL,
SAVE_RESULT_OK,
SAVE_RESULT_CORRUPT,
};
#define SECTOR_SIGNATURE 0x20060623
#define NORMAL_LOAD_CORRUPT (1 << 0)
#define NORMAL_LOAD_ERROR (1 << 1)
#define FRONTIER_LOAD_CORRUPT (1 << 2)
#define FRONTIER_LOAD_ERROR (1 << 3)
#define VIDEO_LOAD_CORRUPT (1 << 4)
#define VIDEO_LOAD_ERROR (1 << 5)
#endif // POKEPLATINUM_CONSTANTS_SAVEDATA_H

View File

@ -1,7 +1,7 @@
#ifndef POKEPLATINUM_OV4_021D0D80_H
#define POKEPLATINUM_OV4_021D0D80_H
#include "struct_decls/struct_021C0794_decl.h"
#include "savedata.h"
#include "overlay004/funcptr_ov4_021D1104.h"
#include "overlay004/funcptr_ov4_021D1120.h"
#include "overlay004/funcptr_ov4_021D113C.h"

View File

@ -8,7 +8,7 @@
#include "struct_decls/struct_0203CDB0_decl.h"
#include "pokemon.h"
#include "struct_decls/struct_party_decl.h"
#include "struct_decls/struct_021C0794_decl.h"
#include "savedata.h"
u8 ov5_021E6238(UnkStruct_02026310 * param0);
int ov5_021E6270(UnkStruct_02026310 * param0);

View File

@ -17,7 +17,7 @@
#include "struct_decls/struct_0207D3C0_decl.h"
#include "struct_decls/struct_0207D99C_decl.h"
#include "struct_defs/struct_0209C370.h"
#include "struct_decls/struct_021C0794_decl.h"
#include "savedata.h"
#include "overlay006/struct_ov6_02240D5C_sub1.h"
typedef struct {

View File

@ -2,7 +2,7 @@
#define POKEPLATINUM_OV6_02246BF4_H
#include "struct_decls/struct_0203CDB0_decl.h"
#include "struct_decls/struct_021C0794_decl.h"
#include "savedata.h"
BOOL ov6_02246BF4(SaveData * param0, UnkStruct_0203CDB0 * param1);

View File

@ -1,7 +1,7 @@
#ifndef POKEPLATINUM_OV6_022475B0_H
#define POKEPLATINUM_OV6_022475B0_H
#include "struct_decls/struct_021C0794_decl.h"
#include "savedata.h"
void ov6_022475B0(SaveData * param0);
int ov6_02247624(SaveData * param0);

View File

@ -2,7 +2,7 @@
#define POKEPLATINUM_OV7_0224BE9C_H
#include "struct_decls/struct_02018340_decl.h"
#include "struct_decls/struct_021C0794_decl.h"
#include "savedata.h"
#include "overlay007/struct_ov7_0224BEFC_decl.h"
UnkStruct_ov7_0224BEFC * ov7_0224BE9C(u32 param0, SaveData * param1, BGL * param2);

View File

@ -17,7 +17,7 @@
#include "struct_decls/struct_0202CD88_decl.h"
#include "struct_decls/struct_020507E4_decl.h"
#include "struct_defs/struct_0205AA50.h"
#include "struct_decls/struct_021C0794_decl.h"
#include "savedata.h"
#include "overlay005/struct_ov5_021D30A8.h"
typedef struct {

View File

@ -6,7 +6,7 @@
#include "trainer_info.h"
#include "struct_decls/struct_02029894_decl.h"
#include "struct_decls/struct_0203CDB0_decl.h"
#include "struct_decls/struct_021C0794_decl.h"
#include "savedata.h"
#include "overlay023/struct_ov23_0224271C_decl.h"
#include "overlay023/funcptr_ov23_022427DC.h"
#include "overlay023/funcptr_ov23_022431EC.h"

View File

@ -4,7 +4,7 @@
#include "strbuf.h"
#include "struct_decls/struct_02029894_decl.h"
#include "struct_decls/struct_0203CDB0_decl.h"
#include "struct_decls/struct_021C0794_decl.h"
#include "savedata.h"
#include "overlay023/struct_ov23_0224271C_decl.h"
void ov23_0224B144(void * param0, UnkStruct_0203CDB0 * param1);

View File

@ -5,7 +5,7 @@
#include "trainer_info.h"
#include "struct_decls/struct_0202855C_decl.h"
#include "struct_decls/struct_020298B0_decl.h"
#include "struct_decls/struct_021C0794_decl.h"
#include "savedata.h"
#include "overlay023/struct_ov23_02253598_decl.h"
#include "overlay023/funcptr_ov23_02253834.h"

View File

@ -4,7 +4,7 @@
#include "struct_decls/struct_02018340_decl.h"
#include "struct_decls/struct_0203CDB0_decl.h"
#include "poketch_data.h"
#include "struct_decls/struct_021C0794_decl.h"
#include "savedata.h"
#include "overlay025/struct_ov25_02253CE0_decl.h"
#include "overlay025/funcptr_ov25_02254238.h"
#include "overlay025/funcptr_ov25_02254238_1.h"

View File

@ -1,7 +1,7 @@
#ifndef POKEPLATINUM_OV57_021D0F30_H
#define POKEPLATINUM_OV57_021D0F30_H
#include "struct_decls/struct_021C0794_decl.h"
#include "savedata.h"
void ov57_021D0F30(int param0, SaveData * param1);
void ov57_021D0F44(int param0, SaveData * param1);

View File

@ -3,7 +3,7 @@
#include "struct_decls/struct_0202440C_decl.h"
#include "struct_decls/struct_0202E794_decl.h"
#include "struct_decls/struct_021C0794_decl.h"
#include "savedata.h"
u32 ov59_021D2B44(const SaveData * param0);
u32 ov59_021D2B4C(const SaveData * param0);

View File

@ -1,7 +1,7 @@
#ifndef POKEPLATINUM_OV59_021D2F88_H
#define POKEPLATINUM_OV59_021D2F88_H
#include "struct_decls/struct_021C0794_decl.h"
#include "savedata.h"
#include "overlay059/struct_ov59_021D30E0.h"
void ov59_021D30E0(SaveData * param0, UnkStruct_ov59_021D30E0 * param1);

View File

@ -4,7 +4,7 @@
#include "struct_decls/struct_02029C68_decl.h"
#include "struct_decls/struct_02030A80_decl.h"
#include "struct_decls/struct_020797DC_decl.h"
#include "struct_decls/struct_021C0794_decl.h"
#include "savedata.h"
#include "overlay061/struct_ov61_0222AE80.h"
#include "overlay061/struct_ov61_0222AFC0.h"
#include "overlay061/struct_ov61_0222AFCC.h"

View File

@ -2,7 +2,7 @@
#define POKEPLATINUM_OV62_02248408_H
#include "struct_decls/struct_0202F264_decl.h"
#include "struct_decls/struct_021C0794_decl.h"
#include "savedata.h"
#include "overlay006/battle_params.h"
void ov62_02248408(BattleRecording * param0, BattleParams * param1, int param2);

View File

@ -4,7 +4,7 @@
#include "message.h"
#include "struct_decls/struct_0200B358_decl.h"
#include "strbuf.h"
#include "struct_decls/struct_021C0794_decl.h"
#include "savedata.h"
#include "overlay061/struct_ov61_0222B138.h"
#include "overlay061/struct_ov61_0222B920.h"
#include "overlay062/funcptr_ov62_022349A8.h"

View File

@ -1,7 +1,7 @@
#ifndef POKEPLATINUM_STRUCT_OV62_02241130_H
#define POKEPLATINUM_STRUCT_OV62_02241130_H
#include "struct_decls/struct_021C0794_decl.h"
#include "savedata.h"
#include "overlay062/funcptr_ov62_022349A8.h"
#include "overlay062/struct_ov62_022349A8_sub2.h"

View File

@ -17,7 +17,7 @@
#include "struct_decls/struct_0202B370_decl.h"
#include "struct_defs/struct_0205AA50.h"
#include "struct_defs/struct_0207DFAC.h"
#include "struct_decls/struct_021C0794_decl.h"
#include "savedata.h"
#include "overlay061/struct_ov61_0222C3B0.h"
#include "overlay065/struct_ov65_0222E99C.h"
#include "overlay065/struct_ov65_02234E50.h"

View File

@ -2,7 +2,7 @@
#define POKEPLATINUM_OV66_0222DDF0_H
#include "trainer_info.h"
#include "struct_decls/struct_021C0794_decl.h"
#include "savedata.h"
#include "overlay066/struct_ov66_0222DFF8_decl.h"
#include "overlay066/struct_ov66_0222E294.h"
#include "overlay066/struct_ov66_0222E71C_decl.h"

View File

@ -1,7 +1,7 @@
#ifndef POKEPLATINUM_OV66_02230C44_H
#define POKEPLATINUM_OV66_02230C44_H
#include "struct_decls/struct_021C0794_decl.h"
#include "savedata.h"
#include "overlay066/struct_ov66_0222DCE0_sub1.h"
#include "overlay066/struct_ov66_0222DFF8_decl.h"
#include "overlay066/struct_ov66_02230C90_decl.h"

View File

@ -1,7 +1,7 @@
#ifndef POKEPLATINUM_OV66_022324F0_H
#define POKEPLATINUM_OV66_022324F0_H
#include "struct_decls/struct_021C0794_decl.h"
#include "savedata.h"
#include "overlay066/struct_ov66_022324F0.h"
#include "overlay066/struct_ov66_02232B20.h"

View File

@ -1,7 +1,7 @@
#ifndef POKEPLATINUM_STRUCT_OV66_0222DCE0_H
#define POKEPLATINUM_STRUCT_OV66_0222DCE0_H
#include "struct_decls/struct_021C0794_decl.h"
#include "savedata.h"
#include "overlay066/struct_ov66_0222DCE0_sub1.h"
typedef struct {

View File

@ -1,7 +1,7 @@
#ifndef POKEPLATINUM_STRUCT_OV66_02230E68_H
#define POKEPLATINUM_STRUCT_OV66_02230E68_H
#include "struct_decls/struct_021C0794_decl.h"
#include "savedata.h"
#include "overlay066/struct_ov66_0222DFF8_decl.h"
#include "overlay070/struct_ov70_02263910.h"

View File

@ -1,7 +1,7 @@
#ifndef POKEPLATINUM_STRUCT_OV66_02230F50_H
#define POKEPLATINUM_STRUCT_OV66_02230F50_H
#include "struct_decls/struct_021C0794_decl.h"
#include "savedata.h"
#include "overlay066/struct_ov66_0222DFF8_decl.h"
#include "overlay066/struct_ov66_02231428.h"
#include "overlay066/struct_ov66_02231560.h"

View File

@ -1,7 +1,7 @@
#ifndef POKEPLATINUM_STRUCT_OV66_02231024_H
#define POKEPLATINUM_STRUCT_OV66_02231024_H
#include "struct_decls/struct_021C0794_decl.h"
#include "savedata.h"
#include "overlay066/struct_ov66_0222DCE0_sub1.h"
#include "overlay066/struct_ov66_0222DFF8_decl.h"

View File

@ -1,7 +1,7 @@
#ifndef POKEPLATINUM_STRUCT_OV66_02231134_H
#define POKEPLATINUM_STRUCT_OV66_02231134_H
#include "struct_decls/struct_021C0794_decl.h"
#include "savedata.h"
#include "overlay066/struct_ov66_02230DBC.h"
typedef struct {

View File

@ -1,7 +1,7 @@
#ifndef POKEPLATINUM_STRUCT_OV66_02231300_H
#define POKEPLATINUM_STRUCT_OV66_02231300_H
#include "struct_decls/struct_021C0794_decl.h"
#include "savedata.h"
#include "overlay066/struct_ov66_0222DFF8_decl.h"
typedef struct {

View File

@ -1,7 +1,7 @@
#ifndef POKEPLATINUM_STRUCT_OV66_02231374_H
#define POKEPLATINUM_STRUCT_OV66_02231374_H
#include "struct_decls/struct_021C0794_decl.h"
#include "savedata.h"
#include "overlay066/struct_ov66_0222DFF8_decl.h"
typedef struct {

View File

@ -8,7 +8,7 @@
#include "trainer_info.h"
#include "struct_decls/struct_0202B628_decl.h"
#include "struct_defs/struct_0205AA50.h"
#include "struct_decls/struct_021C0794_decl.h"
#include "savedata.h"
typedef struct {
BGL * unk_00;

View File

@ -6,7 +6,7 @@
#include "struct_decls/struct_0202AB28_decl.h"
#include "struct_decls/struct_0202B628_decl.h"
#include "struct_decls/struct_0207D3C0_decl.h"
#include "struct_decls/struct_021C0794_decl.h"
#include "savedata.h"
typedef struct {
u8 padding_00[4];

View File

@ -11,7 +11,7 @@
#include "struct_decls/struct_0203CDB0_decl.h"
#include "pokemon.h"
#include "struct_decls/struct_party_decl.h"
#include "struct_decls/struct_021C0794_decl.h"
#include "savedata.h"
typedef struct {
UnkStruct_0203CDB0 * unk_00;

View File

@ -1,7 +1,7 @@
#ifndef POKEPLATINUM_STRUCT_OV90_021D0D80_H
#define POKEPLATINUM_STRUCT_OV90_021D0D80_H
#include "struct_decls/struct_021C0794_decl.h"
#include "savedata.h"
typedef struct {
SaveData * unk_00;

View File

@ -1,7 +1,7 @@
#ifndef POKEPLATINUM_OV97_0222D04C_H
#define POKEPLATINUM_OV97_0222D04C_H
#include "struct_decls/struct_021C0794_decl.h"
#include "savedata.h"
#include "overlay097/struct_ov97_0222D04C.h"
void ov97_0222D1C4(UnkStruct_ov97_0222D04C * param0, SaveData * param1, int param2);

View File

@ -2,7 +2,7 @@
#define POKEPLATINUM_OV97_02232054_H
#include "struct_decls/struct_02018340_decl.h"
#include "struct_decls/struct_021C0794_decl.h"
#include "savedata.h"
#include "overlay097/struct_ov97_0223829C.h"
void ov97_02232054(void);

View File

@ -7,7 +7,7 @@
#include "struct_decls/struct_02022550_decl.h"
#include "struct_defs/struct_0202DF40.h"
#include "struct_defs/struct_0205AA50.h"
#include "struct_decls/struct_021C0794_decl.h"
#include "savedata.h"
#include "overlay097/union_ov97_0222D2B0.h"
#include "overlay097/struct_ov97_02237808.h"
#include "overlay097/struct_ov97_02237AEC.h"

View File

@ -14,7 +14,7 @@
#include "strbuf.h"
#include "struct_defs/options.h"
#include "struct_defs/struct_0205AA50.h"
#include "struct_decls/struct_021C0794_decl.h"
#include "savedata.h"
#include "overlay019/struct_ov19_021DA864.h"
#include "overlay097/union_ov97_0222D2B0.h"
#include "overlay097/struct_ov97_0223829C.h"

View File

@ -4,7 +4,7 @@
#include "struct_decls/struct_020067E8_decl.h"
#include "strbuf.h"
#include "struct_defs/options.h"
#include "struct_decls/struct_021C0794_decl.h"
#include "savedata.h"
#include "overlay096/struct_ov96_0223B574.h"
#include "overlay096/struct_ov96_0223B574_1.h"

View File

@ -1,7 +1,7 @@
#ifndef POKEPLATINUM_STRUCT_OV98_02247168_H
#define POKEPLATINUM_STRUCT_OV98_02247168_H
#include "struct_decls/struct_021C0794_decl.h"
#include "savedata.h"
typedef struct {
SaveData * unk_00;

View File

@ -8,7 +8,7 @@
#include "struct_defs/struct_0204B1E8.h"
#include "pokemon.h"
#include "struct_decls/struct_party_decl.h"
#include "struct_decls/struct_021C0794_decl.h"
#include "savedata.h"
#include "overlay006/battle_params.h"
#include "overlay104/struct_ov104_0223A348.h"
#include "overlay104/struct_ov104_0223A348_sub1.h"

View File

@ -1,7 +1,7 @@
#ifndef POKEPLATINUM_OV104_022339B4_H
#define POKEPLATINUM_OV104_022339B4_H
#include "struct_decls/struct_021C0794_decl.h"
#include "savedata.h"
#include "overlay104/struct_ov104_0223ADA0.h"
UnkStruct_ov104_0223ADA0 * ov104_022339B4(SaveData * param0, u16 param1, u8 param2, u8 param3);

View File

@ -1,7 +1,7 @@
#ifndef POKEPLATINUM_OV104_02234DB4_H
#define POKEPLATINUM_OV104_02234DB4_H
#include "struct_decls/struct_021C0794_decl.h"
#include "savedata.h"
#include "overlay104/struct_ov104_0223B5C0.h"
UnkStruct_ov104_0223B5C0 * ov104_02234DB4(SaveData * param0, u16 param1, u8 param2, u8 param3, u8 param4);

View File

@ -1,7 +1,7 @@
#ifndef POKEPLATINUM_OV104_022361B4_H
#define POKEPLATINUM_OV104_022361B4_H
#include "struct_decls/struct_021C0794_decl.h"
#include "savedata.h"
#include "overlay104/struct_ov104_022320B4_decl.h"
#include "overlay104/struct_ov104_0223BA10.h"

View File

@ -2,7 +2,7 @@
#define POKEPLATINUM_OV104_02237DD8_H
#include "struct_decls/struct_party_decl.h"
#include "struct_decls/struct_021C0794_decl.h"
#include "savedata.h"
#include "overlay104/struct_ov104_0223BFFC.h"
#include "overlay104/struct_ov104_0223C4CC_decl.h"

View File

@ -2,7 +2,7 @@
#define POKEPLATINUM_OV104_022394A4_H
#include "struct_defs/struct_0204AFC4.h"
#include "struct_decls/struct_021C0794_decl.h"
#include "savedata.h"
void ov104_022394A4(UnkStruct_0204AFC4 * param0, SaveData * param1);
u16 ov104_02239588(UnkStruct_0204AFC4 * param0, u16 param1);

View File

@ -3,7 +3,7 @@
#include "struct_decls/struct_0209B75C_decl.h"
#include "struct_defs/struct_0209BBA4.h"
#include "struct_decls/struct_021C0794_decl.h"
#include "savedata.h"
UnkStruct_0209BBA4 * ov104_02239C58(SaveData * param0);
void ov104_02239C7C(UnkStruct_0209BBA4 * param0);

View File

@ -3,7 +3,7 @@
#include "struct_defs/struct_0204AFC4.h"
#include "struct_defs/struct_0204B404.h"
#include "struct_decls/struct_021C0794_decl.h"
#include "savedata.h"
#include "overlay006/battle_params.h"
#include "overlay104/struct_ov104_02230BE4.h"
#include "overlay104/struct_ov104_0223A348.h"

View File

@ -6,7 +6,7 @@
#include "struct_decls/struct_0203CDB0_decl.h"
#include "struct_decls/struct_0207D99C_decl.h"
#include "struct_defs/struct_0209C370.h"
#include "struct_decls/struct_021C0794_decl.h"
#include "savedata.h"
typedef struct {
void * unk_00;

View File

@ -2,7 +2,7 @@
#define POKEPLATINUM_STRUCT_OV104_02234130_H
#include "struct_decls/struct_party_decl.h"
#include "struct_decls/struct_021C0794_decl.h"
#include "savedata.h"
typedef struct {
SaveData * unk_00;

View File

@ -2,7 +2,7 @@
#define POKEPLATINUM_STRUCT_OV104_02235208_H
#include "struct_decls/struct_party_decl.h"
#include "struct_decls/struct_021C0794_decl.h"
#include "savedata.h"
typedef struct {
SaveData * unk_00;

View File

@ -2,7 +2,7 @@
#define POKEPLATINUM_STRUCT_OV104_0223597C_H
#include "struct_decls/struct_party_decl.h"
#include "struct_decls/struct_021C0794_decl.h"
#include "savedata.h"
typedef struct {
SaveData * unk_00;

View File

@ -2,7 +2,7 @@
#define POKEPLATINUM_STRUCT_OV104_02238240_H
#include "struct_decls/struct_party_decl.h"
#include "struct_decls/struct_021C0794_decl.h"
#include "savedata.h"
typedef struct {
SaveData * unk_00;

View File

@ -4,7 +4,7 @@
#include "struct_decls/sys_task.h"
#include "struct_defs/struct_0202FF58.h"
#include "struct_decls/struct_party_decl.h"
#include "struct_decls/struct_021C0794_decl.h"
#include "savedata.h"
#include "overlay104/struct_ov104_0223A348.h"
#include "overlay104/struct_ov104_0223A348_sub2.h"

View File

@ -4,7 +4,7 @@
#include "struct_decls/struct_02030114_decl.h"
#include "pokemon.h"
#include "struct_decls/struct_party_decl.h"
#include "struct_decls/struct_021C0794_decl.h"
#include "savedata.h"
#include "overlay104/struct_ov104_0223A348.h"
#include "overlay104/struct_ov104_0223A348_sub2.h"

View File

@ -3,7 +3,7 @@
#include "struct_decls/struct_020302DC_decl.h"
#include "struct_decls/struct_party_decl.h"
#include "struct_decls/struct_021C0794_decl.h"
#include "savedata.h"
#include "overlay104/struct_ov104_0223A348.h"
#include "overlay104/struct_ov104_0223A348_sub2.h"

View File

@ -4,7 +4,7 @@
#include "struct_decls/cell_actor_data.h"
#include "struct_decls/struct_020304A0_decl.h"
#include "struct_decls/struct_party_decl.h"
#include "struct_decls/struct_021C0794_decl.h"
#include "savedata.h"
#include "overlay104/struct_ov104_0223A348.h"
#include "overlay104/struct_ov104_0223A348_sub2.h"

View File

@ -2,7 +2,7 @@
#define POKEPLATINUM_OV107_02249C98_H
#include "struct_decls/struct_0200B358_decl.h"
#include "struct_decls/struct_021C0794_decl.h"
#include "savedata.h"
u8 ov107_02249C98(u8 param0, u8 param1);
u8 ov107_02249C9C(u8 param0, u8 param1);

View File

@ -3,7 +3,7 @@
#include "struct_decls/struct_020218BC_decl.h"
#include "trainer_info.h"
#include "struct_decls/struct_021C0794_decl.h"
#include "savedata.h"
#include "overlay066/struct_ov66_02230DBC.h"
#include "overlay114/struct_ov114_0225C76C.h"
#include "overlay114/struct_ov114_0225C9A8.h"

View File

@ -1,7 +1,7 @@
#ifndef POKEPLATINUM_STRUCT_OV114_0225C76C_H
#define POKEPLATINUM_STRUCT_OV114_0225C76C_H
#include "struct_decls/struct_021C0794_decl.h"
#include "savedata.h"
#include "overlay066/struct_ov66_02230DBC.h"
typedef struct {

View File

@ -1,7 +1,7 @@
#ifndef POKEPLATINUM_STRUCT_OV115_02260440_H
#define POKEPLATINUM_STRUCT_OV115_02260440_H
#include "struct_decls/struct_021C0794_decl.h"
#include "savedata.h"
#include "overlay066/struct_ov66_02230DBC.h"
typedef struct {

View File

@ -1,7 +1,7 @@
#ifndef POKEPLATINUM_STRUCT_OV117_02260440_H
#define POKEPLATINUM_STRUCT_OV117_02260440_H
#include "struct_decls/struct_021C0794_decl.h"
#include "savedata.h"
#include "overlay066/struct_ov66_02230DBC.h"
typedef struct {

View File

@ -3,7 +3,7 @@
#include "pokemon.h"
#include "struct_decls/struct_party_decl.h"
#include "struct_decls/struct_021C0794_decl.h"
#include "savedata.h"
int Party_SaveSize(void);
Party * Party_New(u32 param0);

View File

@ -3,7 +3,7 @@
#include "struct_defs/struct_0202A93C.h"
#include "struct_decls/struct_0202AB28_decl.h"
#include "struct_decls/struct_021C0794_decl.h"
#include "savedata.h"
typedef enum {
POFFIN_ATTRIBUTEID_FLAVOR,

View File

@ -5,7 +5,7 @@
#include "pokemon.h"
#include "struct_defs/pokemon_summary_app.h"
#include "struct_defs/pokemon_summary.h"
#include "struct_decls/struct_021C0794_decl.h"
#include "savedata.h"
BOOL PokemonSummary_ShowContestData(SaveData * param0);
void PokemonSummary_FlagVisiblePages(PokemonSummary * param0, const u8 * param1);

View File

@ -2,7 +2,7 @@
#define POKEPLATINUM_POKETCH_DATA_H
#include "pokemon.h"
#include "struct_decls/struct_021C0794_decl.h"
#include "savedata.h"
/** Poketch app IDs, used to register and switch between apps in the Poketch */
enum PoketchAppID {

View File

@ -2,7 +2,7 @@
#define POKEPLATINUM_ROAMING_POKEMON_H
#include "struct_defs/struct_0202D7B0.h"
#include "struct_decls/struct_021C0794_decl.h"
#include "savedata.h"
#define ROAMING_SLOT_MESPRIT (0)
#define ROAMING_SLOT_CRESSELIA (1)

112
include/savedata.h Normal file
View File

@ -0,0 +1,112 @@
#ifndef POKEPLATINUM_SAVEDATA_H
#define POKEPLATINUM_SAVEDATA_H
#include "constants/savedata/savedata.h"
#include "constants/savedata/save_table.h"
typedef struct SaveBlockFooter {
u32 saveCounter;
u32 blockCounter;
u32 size;
u32 signature;
u8 saveBlockID;
u16 checksum;
} SaveBlockFooter;
typedef struct SaveBlockInfo {
u8 saveBlockID;
u8 sectorStartPos;
u8 sectorsInUse;
u32 offset;
u32 size;
} SaveBlockInfo;
typedef struct SavePageInfo {
int pageID;
u32 size;
u32 location;
u16 checksum;
u16 blockID;
} SavePageInfo;
typedef struct SaveDataBody {
u8 data[SAVE_SECTOR_SIZE * SAVE_PAGE_MAX];
} SaveDataBody;
typedef struct UnkStruct_020250DC {
BOOL unk_00;
int unk_04;
int unk_08;
int unk_0C;
s32 unk_10;
int unk_14;
u32 unk_18;
u32 unk_1C[2];
volatile BOOL unk_24;
} UnkStruct_020250DC;
typedef struct SaveData {
BOOL backupExists;
BOOL dataExists;
BOOL isNewGameData;
BOOL fullSaveRequired;
u32 loadCheckStatus;
SaveDataBody body;
u32 globalCounter;
u32 unk_20018[SAVE_BLOCK_ID_MAX];
u8 unk_20020[SAVE_BLOCK_ID_MAX];
SavePageInfo pageInfo[SAVE_TABLE_ENTRY_MAX];
SaveBlockInfo blockInfo[SAVE_BLOCK_ID_MAX];
UnkStruct_020250DC unk_2029C;
int unk_202C4;
u32 unk_202C8;
} SaveData;
typedef struct UnkStruct_02024860 {
BOOL unk_00;
u32 unk_04;
u32 unk_08;
} UnkStruct_02024860;
typedef struct UnkStruct_020253B4 {
u32 unk_00;
u32 unk_04;
u32 unk_08;
u16 unk_0C;
u16 unk_0E;
} UnkStruct_020253B4;
SaveData* SaveData_Init(void);
SaveData* SaveData_Ptr(void);
void* SaveData_SaveTable(SaveData *saveData, int saveTableID);
const void* SaveData_SaveTableConst(const SaveData *saveData, int saveTableID);
BOOL SaveData_Erase(SaveData *saveData);
BOOL SaveData_Load(SaveData *saveData);
int SaveData_Save(SaveData *saveData);
int SaveData_SaveBlock(SaveData *saveData, int saveBlockID);
void SaveData_Clear(SaveData *saveData);
BOOL SaveData_BackupExists(const SaveData *saveData);
u32 SaveData_LoadCheckStatus(const SaveData *saveData);
BOOL SaveData_DataExists(const SaveData *saveData);
BOOL SaveData_IsNewGameData(const SaveData *saveData);
BOOL sub_020247C8(SaveData *saveData);
BOOL SaveData_OverwriteCheck(const SaveData *saveData);
BOOL SaveData_FullSaveRequired(const SaveData *saveData);
void SaveData_SetFullSaveRequired(void);
void sub_02024814(SaveData * param0, int param1);
int sub_02024828(SaveData * param0);
void sub_02024850(SaveData * param0);
u16 SaveData_CalculateChecksum(const SaveData *saveData, const void * param1, u32 size);
int sub_020251A4(int param0);
void sub_02025340(SaveData * param0);
int SaveDataExtra_Save(const SaveData * param0, int param1, void * param2);
int SaveDataExtra_SaveMirror(SaveData * param0, int param1, void * param2);
void * SaveDataExtra_Get(SaveData * param0, int param1, int param2, int * param3);
void * SaveDataExtra_Mirror(SaveData * param0, int param1, int param2, int * param3, BOOL * param4);
BOOL sub_02025A3C(void);
BOOL sub_02025A9C(u32 param0, void * param1, u32 param2);
BOOL sub_02025AC0(u32 param0, void * param1, u32 param2);
BOOL SaveData_CRC(int param0);
void sub_02025C84(int param0);
#endif // POKEPLATINUM_SAVEDATA_H

View File

@ -8,10 +8,8 @@
#include "struct_defs/struct_0202F264.h"
#include "struct_decls/struct_020308A0_decl.h"
#include "struct_decls/struct_020797DC_decl.h"
#include "struct_decls/struct_021C0794_decl.h"
#define SAVE_PAGE_MAX 32
#define SAVE_SECTOR_SIZE (0x1000)
#include "savedata.h"
#include "constants/savedata/save_table.h"
typedef int (*SaveEntrySizeFunc)(void);
typedef void (*SaveEntryInitFunc)(void*);
@ -23,67 +21,6 @@ typedef struct SaveTableEntry {
SaveEntryInitFunc initFunc; //< Function for initializing an empty entry.
} SaveTableEntry;
enum SaveBlockID {
SAVE_BLOCK_ID_NORMAL = 0,
SAVE_BLOCK_ID_BOXES,
SAVE_BLOCK_ID_MAX
};
enum SaveTableEntryID {
SAVE_TABLE_ENTRY_SYSTEM = 0,
SAVE_TABLE_ENTRY_PLAYER,
SAVE_TABLE_ENTRY_PARTY,
SAVE_TABLE_ENTRY_BAG,
SAVE_TABLE_ENTRY_EVENTS,
SAVE_TABLE_ENTRY_POKETCH,
SAVE_TABLE_ENTRY_FIELD_PLAYER_STATE,
SAVE_TABLE_ENTRY_POKEDEX,
SAVE_TABLE_ENTRY_DAYCARE,
SAVE_TABLE_ENTRY_PAL_PAD,
SAVE_TABLE_ENTRY_MISC,
SAVE_TABLE_ENTRY_FIELD_OVERWORLD_STATE,
SAVE_TABLE_ENTRY_UNDERGROUND,
SAVE_TABLE_ENTRY_REGULATION_BATTLES,
SAVE_TABLE_ENTRY_IMAGE_CLIPS,
SAVE_TABLE_ENTRY_MAIL,
SAVE_TABLE_ENTRY_POFFINS,
SAVE_TABLE_ENTRY_RANDOM_GROUP,
SAVE_TABLE_ENTRY_JOURNAL,
SAVE_TABLE_ENTRY_TRAINER_CARD,
SAVE_TABLE_ENTRY_GAME_RECORDS,
SAVE_TABLE_ENTRY_BALL_SEALS,
SAVE_TABLE_ENTRY_CHATOT,
SAVE_TABLE_ENTRY_FRONTIER,
SAVE_TABLE_ENTRY_RIBBONS,
SAVE_TABLE_ENTRY_ENCOUNTERS,
SAVE_TABLE_ENTRY_GLOBAL_TRADE,
SAVE_TABLE_ENTRY_TV_BROADCAST,
SAVE_TABLE_ENTRY_RANKINGS,
SAVE_TABLE_ENTRY_WIFI_LIST,
SAVE_TABLE_ENTRY_WIFI_HISTORY,
SAVE_TABLE_ENTRY_MYSTERY_GIFT,
SAVE_TABLE_ENTRY_PAL_PARK_TRANSFER,
SAVE_TABLE_ENTRY_CONTESTS,
SAVE_TABLE_ENTRY_SENTENCE,
SAVE_TABLE_ENTRY_EMAIL,
SAVE_TABLE_ENTRY_WIFI_QUESTIONS,
SAVE_TABLE_ENTRY_PC_BOXES,
SAVE_TABLE_ENTRY_MAX
};
enum ExtraSaveTableEntryID {
EXTRA_SAVE_TABLE_ENTRY_HALL_OF_FAME = 0,
EXTRA_SAVE_TABLE_ENTRY_FRONTIER,
EXTRA_SAVE_TABLE_ENTRY_MY_RECORDINGS,
EXTRA_SAVE_TABLE_ENTRY_DL_RECORDINGS_0,
EXTRA_SAVE_TABLE_ENTRY_DL_RECORDINGS_1,
EXTRA_SAVE_TABLE_ENTRY_DL_RECORDINGS_2,
EXTRA_SAVE_TABLE_ENTRY_MAX
};
extern const SaveTableEntry gSaveTable[];
extern const int gSaveTableSize;
extern const SaveTableEntry gExtraSaveTable[];

View File

@ -1,6 +0,0 @@
#ifndef POKEPLATINUM_STRUCT_021C0794_DECL_H
#define POKEPLATINUM_STRUCT_021C0794_DECL_H
typedef struct SaveData SaveData;
#endif // POKEPLATINUM_STRUCT_021C0794_DECL_H

View File

@ -1,7 +1,7 @@
#ifndef POKEPLATINUM_STRUCT_0203CC84_H
#define POKEPLATINUM_STRUCT_0203CC84_H
#include "struct_decls/struct_021C0794_decl.h"
#include "savedata.h"
typedef struct {
int unk_00;

View File

@ -25,7 +25,7 @@
#include "struct_decls/struct_0209ACBC_decl.h"
#include "struct_defs/struct_0209C370.h"
#include "struct_defs/struct_020EC3A8.h"
#include "struct_decls/struct_021C0794_decl.h"
#include "savedata.h"
#include "overlay005/struct_ov5_021D1A68_decl.h"
#include "overlay005/struct_ov5_021D3CAC_decl.h"
#include "overlay005/struct_ov5_021D41B4_decl.h"

View File

@ -5,7 +5,7 @@
#include "struct_decls/struct_0202B628_decl.h"
#include "struct_decls/struct_0202CD88_decl.h"
#include "struct_decls/struct_0205C22C_decl.h"
#include "struct_decls/struct_021C0794_decl.h"
#include "savedata.h"
typedef struct {
SaveData * unk_00;

View File

@ -13,7 +13,7 @@
#include "struct_decls/struct_020797DC_decl.h"
#include "struct_decls/struct_party_decl.h"
#include "struct_decls/struct_0207D3C0_decl.h"
#include "struct_decls/struct_021C0794_decl.h"
#include "savedata.h"
typedef struct {
UnkStruct_0202DA40 * unk_00;

View File

@ -1,7 +1,7 @@
#ifndef POKEPLATINUM_STRUCT_0203E53C_H
#define POKEPLATINUM_STRUCT_0203E53C_H
#include "struct_decls/struct_021C0794_decl.h"
#include "savedata.h"
typedef struct {
SaveData * unk_00;

View File

@ -1,7 +1,7 @@
#ifndef POKEPLATINUM_STRUCT_0203E564_H
#define POKEPLATINUM_STRUCT_0203E564_H
#include "struct_decls/struct_021C0794_decl.h"
#include "savedata.h"
typedef struct {
SaveData * unk_00;

View File

@ -1,7 +1,7 @@
#ifndef POKEPLATINUM_STRUCT_0203E608_H
#define POKEPLATINUM_STRUCT_0203E608_H
#include "struct_decls/struct_021C0794_decl.h"
#include "savedata.h"
typedef struct {
SaveData * unk_00;

View File

@ -2,7 +2,7 @@
#define POKEPLATINUM_STRUCT_0203E6C0_H
#include "struct_decls/struct_0203CDB0_decl.h"
#include "struct_decls/struct_021C0794_decl.h"
#include "savedata.h"
typedef struct {
UnkStruct_0203CDB0 * unk_00;

View File

@ -1,7 +1,7 @@
#ifndef POKEPLATINUM_STRUCT_02042434_H
#define POKEPLATINUM_STRUCT_02042434_H
#include "struct_decls/struct_021C0794_decl.h"
#include "savedata.h"
typedef struct {
SaveData * unk_00;

View File

@ -5,7 +5,7 @@
#include "struct_defs/options.h"
#include "struct_decls/struct_0202D750_decl.h"
#include "struct_decls/struct_0202D764_decl.h"
#include "struct_decls/struct_021C0794_decl.h"
#include "savedata.h"
#include <dwc.h>

View File

@ -1,7 +1,7 @@
#ifndef POKEPLATINUM_STRUCT_0207CB08_H
#define POKEPLATINUM_STRUCT_0207CB08_H
#include "struct_decls/struct_021C0794_decl.h"
#include "savedata.h"
#include "overlay084/struct_ov84_0223BE5C.h"
typedef struct UnkStruct_0207CB08_t {

View File

@ -1,7 +1,7 @@
#ifndef POKEPLATINUM_STRUCT_0207DE04_H
#define POKEPLATINUM_STRUCT_0207DE04_H
#include "struct_decls/struct_021C0794_decl.h"
#include "savedata.h"
typedef struct {
u8 unk_00;

View File

@ -10,7 +10,7 @@
#include "struct_defs/struct_0208C06C_sub1.h"
#include "struct_defs/struct_0208C06C_sub2.h"
#include "struct_defs/struct_020F3DCC.h"
#include "struct_decls/struct_021C0794_decl.h"
#include "savedata.h"
#include "overlay062/struct_ov62_022307C0.h"
#include "overlay062/struct_ov62_02230C28.h"
#include "overlay062/struct_ov62_0223118C.h"

View File

@ -6,7 +6,7 @@
#include "struct_defs/options.h"
#include "struct_decls/struct_0202A750_decl.h"
#include "pokemon.h"
#include "struct_decls/struct_021C0794_decl.h"
#include "savedata.h"
typedef struct {
u8 unk_00;

View File

@ -10,7 +10,7 @@
#include "struct_defs/struct_02094A58.h"
#include "struct_defs/struct_02095C48_sub1.h"
#include "struct_defs/struct_02095C60.h"
#include "struct_decls/struct_021C0794_decl.h"
#include "savedata.h"
typedef struct {
UnkStruct_02095C48_sub1 unk_00;

View File

@ -26,7 +26,7 @@
#include "struct_decls/struct_02095E80_decl.h"
#include "struct_defs/struct_02095E80_sub1.h"
#include "struct_defs/pokemon_summary.h"
#include "struct_decls/struct_021C0794_decl.h"
#include "savedata.h"
#include "overlay019/struct_ov19_021DA864.h"
#include "overlay088/struct_ov88_0223C370.h"
#include "overlay088/struct_ov88_0223C8AC.h"

View File

@ -16,7 +16,7 @@
#include "struct_defs/struct_0203DE34.h"
#include "struct_defs/struct_0205AA50.h"
#include "struct_defs/struct_020961E8_sub1.h"
#include "struct_decls/struct_021C0794_decl.h"
#include "savedata.h"
#include "overlay019/struct_ov19_021DA864.h"
#include "overlay059/struct_ov59_021D109C.h"
#include "overlay059/struct_ov59_021D30E0.h"

View File

@ -3,7 +3,7 @@
#include "struct_defs/struct_0202818C.h"
#include "struct_decls/struct_02028430_decl.h"
#include "struct_decls/struct_021C0794_decl.h"
#include "savedata.h"
typedef struct {
u16 unk_00;

View File

@ -5,7 +5,7 @@
#include "struct_decls/struct_0202CA1C_decl.h"
#include "pokemon.h"
#include "struct_decls/struct_party_decl.h"
#include "struct_decls/struct_021C0794_decl.h"
#include "savedata.h"
typedef struct {
int unk_00;

View File

@ -4,7 +4,7 @@
#include "struct_decls/struct_0203CDB0_decl.h"
#include "struct_defs/struct_02098C44.h"
#include "struct_defs/pokemon_summary.h"
#include "struct_decls/struct_021C0794_decl.h"
#include "savedata.h"
typedef struct {
SaveData * unk_00;

View File

@ -6,7 +6,7 @@
#include "struct_decls/struct_0202CD88_decl.h"
#include "struct_decls/struct_0203CDB0_decl.h"
#include "struct_decls/struct_0205C22C_decl.h"
#include "struct_decls/struct_021C0794_decl.h"
#include "savedata.h"
typedef struct {
int unk_00;

View File

@ -5,7 +5,7 @@
#include "strbuf.h"
#include "struct_defs/trainer_data.h"
#include "struct_decls/struct_021C0794_decl.h"
#include "savedata.h"
#include "overlay006/battle_params.h"
enum TrainerDataParam {

View File

@ -7,7 +7,7 @@
#include "pokemon.h"
#include "struct_decls/struct_020797DC_decl.h"
#include "struct_defs/trainer_data.h"
#include "struct_decls/struct_021C0794_decl.h"
#include "savedata.h"
#include "enums.h"

View File

@ -5,7 +5,7 @@
#include "struct_decls/struct_02014EC4_decl.h"
#include "struct_decls/struct_02014FB0_decl.h"
#include "strbuf.h"
#include "struct_decls/struct_021C0794_decl.h"
#include "savedata.h"
UnkStruct_02014D38 * sub_02014D38(u32 param0);
void sub_02014D70(UnkStruct_02014D38 * param0);

View File

@ -1,39 +0,0 @@
#ifndef POKEPLATINUM_UNK_020244AC_H
#define POKEPLATINUM_UNK_020244AC_H
#include "struct_decls/struct_021C0794_decl.h"
SaveData * sub_020244AC(void);
SaveData * sub_020245A4(void);
void * SaveData_Get(SaveData * param0, int param1);
const void * sub_020245E0(const SaveData * param0, int param1);
BOOL sub_020245E8(SaveData * param0);
BOOL sub_020246A8(SaveData * param0);
int sub_020246E0(SaveData * param0);
int sub_02024760(SaveData * param0, int param1);
void sub_0202479C(SaveData * param0);
BOOL sub_020247B8(const SaveData * param0);
u32 sub_020247BC(const SaveData * param0);
BOOL sub_020247C0(const SaveData * param0);
BOOL sub_020247C4(const SaveData * param0);
BOOL sub_020247C8(SaveData * param0);
BOOL sub_020247E0(const SaveData * param0);
BOOL sub_02024800(const SaveData * param0);
void sub_02024804(void);
void sub_02024814(SaveData * param0, int param1);
int sub_02024828(SaveData * param0);
void sub_02024850(SaveData * param0);
u16 sub_0202486C(const SaveData * param0, const void * param1, u32 param2);
int sub_020251A4(int param0);
void sub_02025340(SaveData * param0);
int SaveDataExtra_Save(const SaveData * param0, int param1, void * param2);
int SaveDataExtra_SaveMirror(SaveData * param0, int param1, void * param2);
void * SaveDataExtra_Get(SaveData * param0, int param1, int param2, int * param3);
void * SaveDataExtra_Mirror(SaveData * param0, int param1, int param2, int * param3, BOOL * param4);
BOOL sub_02025A3C(void);
BOOL sub_02025A9C(u32 param0, void * param1, u32 param2);
BOOL sub_02025AC0(u32 param0, void * param1, u32 param2);
BOOL SaveData_CRC(int param0);
void sub_02025C84(int param0);
#endif // POKEPLATINUM_UNK_020244AC_H

View File

@ -3,7 +3,7 @@
#include "struct_decls/struct_02025CCC_decl.h"
#include "struct_defs/struct_02055BA8.h"
#include "struct_decls/struct_021C0794_decl.h"
#include "savedata.h"
int SystemData_SaveSize(void);
void SystemData_Init(UnkStruct_02025CCC * param0);

View File

@ -5,7 +5,7 @@
#include "struct_decls/struct_02025E5C_decl.h"
#include "trainer_info.h"
#include "struct_defs/options.h"
#include "struct_decls/struct_021C0794_decl.h"
#include "savedata.h"
int Player_SaveSize(void);
void Player_Init(UnkStruct_02025E0C * param0);

View File

@ -4,7 +4,7 @@
#include "strbuf.h"
#include "struct_decls/struct_02026030_decl.h"
#include "struct_defs/struct_0202610C.h"
#include "struct_decls/struct_021C0794_decl.h"
#include "savedata.h"
int sub_0202602C(void);
int RegulationBattles_SaveSize(void);

Some files were not shown because too many files have changed in this diff Show More