summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--data/maps/LittlerootTown_ProfessorBirchsLab/scripts.inc2
-rw-r--r--data/specials.inc2
-rw-r--r--include/global.h2
-rw-r--r--include/save_location.h1
-rw-r--r--src/new_game.c2
-rw-r--r--src/save_location.c21
6 files changed, 15 insertions, 15 deletions
diff --git a/data/maps/LittlerootTown_ProfessorBirchsLab/scripts.inc b/data/maps/LittlerootTown_ProfessorBirchsLab/scripts.inc
index 4ebc03c8c..b9ce0c809 100644
--- a/data/maps/LittlerootTown_ProfessorBirchsLab/scripts.inc
+++ b/data/maps/LittlerootTown_ProfessorBirchsLab/scripts.inc
@@ -584,7 +584,7 @@ LittlerootTown_ProfessorBirchsLab_EventScript_ReceivePokedex:: @ 81FA3AC
message LittlerootTown_ProfessorBirchsLab_Text_ReceivedPokedex
waitfanfare
setflag FLAG_SYS_POKEDEX_GET
- special sub_81AFDA0 @ sets flags that are never read
+ special SetUnlockedPokedexFlags
setflag FLAG_RECEIVED_POKEDEX_FROM_BIRCH
setvar VAR_CABLE_CLUB_TUTORIAL_STATE, 1
return
diff --git a/data/specials.inc b/data/specials.inc
index fb2e8fe75..97cc3c782 100644
--- a/data/specials.inc
+++ b/data/specials.inc
@@ -504,7 +504,7 @@ gSpecials:: @ 81DBA64
def_special GetMartEmployeeObjectEventId
def_special sub_80A08CC
def_special Unused_SetWeatherSunny
- def_special sub_81AFDA0
+ def_special SetUnlockedPokedexFlags
def_special IsTrainerRegistered
def_special ShouldDoBrailleRegicePuzzle
def_special EnableNationalPokedex
diff --git a/include/global.h b/include/global.h
index e3c8fee55..bcf3e6486 100644
--- a/include/global.h
+++ b/include/global.h
@@ -465,7 +465,7 @@ struct SaveBlock2
/*0x90*/ u8 filler_90[0x8];
/*0x98*/ struct Time localTimeOffset;
/*0xA0*/ struct Time lastBerryTreeUpdate;
- /*0xA8*/ u32 field_A8; // Written to, but never read.
+ /*0xA8*/ u32 gcnLinkFlags; // Read by Pokemon Colosseum/XD
/*0xAC*/ u32 encryptionKey;
/*0xB0*/ struct PlayersApprentice playerApprentice;
/*0xDC*/ struct Apprentice apprentices[APPRENTICE_COUNT];
diff --git a/include/save_location.h b/include/save_location.h
index 6c2ae0e6b..53f317c57 100644
--- a/include/save_location.h
+++ b/include/save_location.h
@@ -13,7 +13,6 @@
#define CHAMPION_SAVEWARP (1 << 7)
void TrySetMapSaveWarpStatus(void);
-void sub_81AFDA0(void);
void SetChampionSaveWarp(void);
#endif // GUARD_SAVE_LOCATION_H
diff --git a/src/new_game.c b/src/new_game.c
index 464da6414..290c0c2bb 100644
--- a/src/new_game.c
+++ b/src/new_game.c
@@ -162,7 +162,7 @@ void NewGameInitData(void)
ClearSav1();
ClearMailData();
gSaveBlock2Ptr->specialSaveWarpFlags = 0;
- gSaveBlock2Ptr->field_A8 = 0;
+ gSaveBlock2Ptr->gcnLinkFlags = 0;
InitPlayerTrainerId();
PlayTimeCounter_Reset();
ClearPokedexFlags();
diff --git a/src/save_location.c b/src/save_location.c
index 6bf5eceb0..aa56d7b16 100644
--- a/src/save_location.c
+++ b/src/save_location.c
@@ -118,17 +118,18 @@ void TrySetMapSaveWarpStatus(void)
sub_81AFD5C();
}
-// Called when receiving the Pokedex
-// Only place field_A8 is written (aside from clearing on new game), never read
-void sub_81AFDA0(void)
+// In FRLG, only 0x1, 0x10, and 0x20 are set when the pokedex is received
+// 0x2, 0x4, 0x8, and 0x8000 are instead set by SetPostgameFlags
+// 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->field_A8 |= 0x1;
- gSaveBlock2Ptr->field_A8 |= 0x2;
- gSaveBlock2Ptr->field_A8 |= 0x4;
- gSaveBlock2Ptr->field_A8 |= 0x10;
- gSaveBlock2Ptr->field_A8 |= 0x20;
- gSaveBlock2Ptr->field_A8 |= 0x8;
+ gSaveBlock2Ptr->gcnLinkFlags |= 0x8000;
+ gSaveBlock2Ptr->gcnLinkFlags |= 0x1;
+ gSaveBlock2Ptr->gcnLinkFlags |= 0x2;
+ gSaveBlock2Ptr->gcnLinkFlags |= 0x4;
+ gSaveBlock2Ptr->gcnLinkFlags |= 0x10;
+ gSaveBlock2Ptr->gcnLinkFlags |= 0x20;
+ gSaveBlock2Ptr->gcnLinkFlags |= 0x8;
}
void SetChampionSaveWarp(void)