Label GCN link flags field

This commit is contained in:
GriffinR 2020-04-13 08:42:31 -04:00
parent 8a31778733
commit dde4a0416c
6 changed files with 15 additions and 15 deletions

View File

@ -584,7 +584,7 @@ LittlerootTown_ProfessorBirchsLab_EventScript_ReceivePokedex:: @ 81FA3AC
message LittlerootTown_ProfessorBirchsLab_Text_ReceivedPokedex message LittlerootTown_ProfessorBirchsLab_Text_ReceivedPokedex
waitfanfare waitfanfare
setflag FLAG_SYS_POKEDEX_GET setflag FLAG_SYS_POKEDEX_GET
special sub_81AFDA0 @ sets flags that are never read special SetUnlockedPokedexFlags
setflag FLAG_RECEIVED_POKEDEX_FROM_BIRCH setflag FLAG_RECEIVED_POKEDEX_FROM_BIRCH
setvar VAR_CABLE_CLUB_TUTORIAL_STATE, 1 setvar VAR_CABLE_CLUB_TUTORIAL_STATE, 1
return return

View File

@ -504,7 +504,7 @@ gSpecials:: @ 81DBA64
def_special GetMartEmployeeObjectEventId def_special GetMartEmployeeObjectEventId
def_special sub_80A08CC def_special sub_80A08CC
def_special Unused_SetWeatherSunny def_special Unused_SetWeatherSunny
def_special sub_81AFDA0 def_special SetUnlockedPokedexFlags
def_special IsTrainerRegistered def_special IsTrainerRegistered
def_special ShouldDoBrailleRegicePuzzle def_special ShouldDoBrailleRegicePuzzle
def_special EnableNationalPokedex def_special EnableNationalPokedex

View File

@ -465,7 +465,7 @@ struct SaveBlock2
/*0x90*/ u8 filler_90[0x8]; /*0x90*/ u8 filler_90[0x8];
/*0x98*/ struct Time localTimeOffset; /*0x98*/ struct Time localTimeOffset;
/*0xA0*/ struct Time lastBerryTreeUpdate; /*0xA0*/ struct Time lastBerryTreeUpdate;
/*0xA8*/ u32 field_A8; // Written to, but never read. /*0xA8*/ u32 gcnLinkFlags; // Read by Pokemon Colosseum/XD
/*0xAC*/ u32 encryptionKey; /*0xAC*/ u32 encryptionKey;
/*0xB0*/ struct PlayersApprentice playerApprentice; /*0xB0*/ struct PlayersApprentice playerApprentice;
/*0xDC*/ struct Apprentice apprentices[APPRENTICE_COUNT]; /*0xDC*/ struct Apprentice apprentices[APPRENTICE_COUNT];

View File

@ -13,7 +13,6 @@
#define CHAMPION_SAVEWARP (1 << 7) #define CHAMPION_SAVEWARP (1 << 7)
void TrySetMapSaveWarpStatus(void); void TrySetMapSaveWarpStatus(void);
void sub_81AFDA0(void);
void SetChampionSaveWarp(void); void SetChampionSaveWarp(void);
#endif // GUARD_SAVE_LOCATION_H #endif // GUARD_SAVE_LOCATION_H

View File

@ -162,7 +162,7 @@ void NewGameInitData(void)
ClearSav1(); ClearSav1();
ClearMailData(); ClearMailData();
gSaveBlock2Ptr->specialSaveWarpFlags = 0; gSaveBlock2Ptr->specialSaveWarpFlags = 0;
gSaveBlock2Ptr->field_A8 = 0; gSaveBlock2Ptr->gcnLinkFlags = 0;
InitPlayerTrainerId(); InitPlayerTrainerId();
PlayTimeCounter_Reset(); PlayTimeCounter_Reset();
ClearPokedexFlags(); ClearPokedexFlags();

View File

@ -118,17 +118,18 @@ void TrySetMapSaveWarpStatus(void)
sub_81AFD5C(); sub_81AFD5C();
} }
// Called when receiving the Pokedex // In FRLG, only 0x1, 0x10, and 0x20 are set when the pokedex is received
// Only place field_A8 is written (aside from clearing on new game), never read // 0x2, 0x4, 0x8, and 0x8000 are instead set by SetPostgameFlags
void sub_81AFDA0(void) // These flags are read by Pokemon Colosseum/XD for linking. XD Additionally requires FLAG_SYS_GAME_CLEAR
void SetUnlockedPokedexFlags(void)
{ {
gSaveBlock2Ptr->field_A8 |= 0x8000; gSaveBlock2Ptr->gcnLinkFlags |= 0x8000;
gSaveBlock2Ptr->field_A8 |= 0x1; gSaveBlock2Ptr->gcnLinkFlags |= 0x1;
gSaveBlock2Ptr->field_A8 |= 0x2; gSaveBlock2Ptr->gcnLinkFlags |= 0x2;
gSaveBlock2Ptr->field_A8 |= 0x4; gSaveBlock2Ptr->gcnLinkFlags |= 0x4;
gSaveBlock2Ptr->field_A8 |= 0x10; gSaveBlock2Ptr->gcnLinkFlags |= 0x10;
gSaveBlock2Ptr->field_A8 |= 0x20; gSaveBlock2Ptr->gcnLinkFlags |= 0x20;
gSaveBlock2Ptr->field_A8 |= 0x8; gSaveBlock2Ptr->gcnLinkFlags |= 0x8;
} }
void SetChampionSaveWarp(void) void SetChampionSaveWarp(void)