summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorDeokishisu <6993375+Deokishisu@users.noreply.github.com>2021-02-16 16:43:31 -0500
committerDeokishisu <6993375+Deokishisu@users.noreply.github.com>2021-02-16 16:43:31 -0500
commita1138223e9a88d68666cf361a1adfa7cb3776929 (patch)
tree63a6a57d8bc1e4dc2e40322385da1742f5766203 /src
parentc7bbd485c3103c6a51d15f6e0081922d3c14d42d (diff)
Mirror pokeemerald PR#1329 & PR#1335 to pokeruby
The `externalReservedData` field has been split up into `externalEventData` and `externalEventFlags`, which have their own structs. The new structs deal with interconnectivity between external games/peripherals and RS. US & JP Colosseum Bonus Discs', Colosseum and XD's, Pokémon Channel's, and PokémonBox: Ruby & Sapphire's interactions with these fields has been documented. The `giftRibbon#` fields in `PokemonSubstruct3` have also been renamed to their appropriate ribbons, and commented with distribution info if applicable. All relevant constants and functions dealing with the Pokémon data structure were renamed with these changes in mind.
Diffstat (limited to 'src')
-rw-r--r--src/debug/taya_debug_window.c28
-rw-r--r--src/egg_hatch.c1
-rw-r--r--src/evolution_scene.c2
-rw-r--r--src/pokemon_2.c92
-rw-r--r--src/pokemon_size_record.c16
-rw-r--r--src/pokemon_summary_screen.c14
-rw-r--r--src/pokenav.c2
-rw-r--r--src/pokenav_before.c14
-rw-r--r--src/trade.c6
9 files changed, 88 insertions, 87 deletions
diff --git a/src/debug/taya_debug_window.c b/src/debug/taya_debug_window.c
index b76e5f794..ca66ca01a 100644
--- a/src/debug/taya_debug_window.c
+++ b/src/debug/taya_debug_window.c
@@ -182,15 +182,15 @@ const struct {
{gUnknown_Debug_083C50A7, MON_DATA_ARTIST_RIBBON}
}, {
{gUnknown_Debug_083C50AF, MON_DATA_EFFORT_RIBBON},
- {gUnknown_Debug_083C50B8, MON_DATA_GIFT_RIBBON_1},
- {gUnknown_Debug_083C50BF, MON_DATA_GIFT_RIBBON_2}
+ {gUnknown_Debug_083C50B8, MON_DATA_MARINE_RIBBON},
+ {gUnknown_Debug_083C50BF, MON_DATA_LAND_RIBBON}
}, {
- {gUnknown_Debug_083C50C4, MON_DATA_GIFT_RIBBON_3},
- {gUnknown_Debug_083C50C8, MON_DATA_GIFT_RIBBON_4},
- {gUnknown_Debug_083C50D0, MON_DATA_GIFT_RIBBON_5}
+ {gUnknown_Debug_083C50C4, MON_DATA_SKY_RIBBON},
+ {gUnknown_Debug_083C50C8, MON_DATA_COUNTRY_RIBBON},
+ {gUnknown_Debug_083C50D0, MON_DATA_NATIONAL_RIBBON}
}, {
- {gUnknown_Debug_083C50D9, MON_DATA_GIFT_RIBBON_6},
- {gUnknown_Debug_083C50DF, MON_DATA_GIFT_RIBBON_7},
+ {gUnknown_Debug_083C50D9, MON_DATA_EARTH_RIBBON},
+ {gUnknown_Debug_083C50DF, MON_DATA_WORLD_RIBBON},
{gUnknown_Debug_083C50E5, 0 /* sentinel */}
}
};
@@ -619,25 +619,25 @@ bool8 TayaDebugMenu_PokenavD(void)
SetBoxMonData(boxPokemon, MON_DATA_EFFORT_RIBBON, &otId);
otId = Random() & 1;
- SetBoxMonData(boxPokemon, MON_DATA_GIFT_RIBBON_1, &otId);
+ SetBoxMonData(boxPokemon, MON_DATA_MARINE_RIBBON, &otId);
otId = Random() & 1;
- SetBoxMonData(boxPokemon, MON_DATA_GIFT_RIBBON_2, &otId);
+ SetBoxMonData(boxPokemon, MON_DATA_LAND_RIBBON, &otId);
otId = Random() & 1;
- SetBoxMonData(boxPokemon, MON_DATA_GIFT_RIBBON_3, &otId);
+ SetBoxMonData(boxPokemon, MON_DATA_SKY_RIBBON, &otId);
otId = Random() & 1;
- SetBoxMonData(boxPokemon, MON_DATA_GIFT_RIBBON_4, &otId);
+ SetBoxMonData(boxPokemon, MON_DATA_COUNTRY_RIBBON, &otId);
otId = Random() & 1;
- SetBoxMonData(boxPokemon, MON_DATA_GIFT_RIBBON_5, &otId);
+ SetBoxMonData(boxPokemon, MON_DATA_NATIONAL_RIBBON, &otId);
otId = Random() & 1;
- SetBoxMonData(boxPokemon, MON_DATA_GIFT_RIBBON_6, &otId);
+ SetBoxMonData(boxPokemon, MON_DATA_EARTH_RIBBON, &otId);
otId = Random() & 1;
- SetBoxMonData(boxPokemon, MON_DATA_GIFT_RIBBON_7, &otId);
+ SetBoxMonData(boxPokemon, MON_DATA_WORLD_RIBBON, &otId);
}
}
TayaDebugMenu_TownFlags();
diff --git a/src/egg_hatch.c b/src/egg_hatch.c
index 24c2340ac..fdc12129e 100644
--- a/src/egg_hatch.c
+++ b/src/egg_hatch.c
@@ -241,6 +241,7 @@ static void CreatedHatchedMon(struct Pokemon *egg, struct Pokemon *temp)
gameMet = GetMonData(egg, MON_DATA_MET_GAME);
markings = GetMonData(egg, MON_DATA_MARKINGS);
pokerus = GetMonData(egg, MON_DATA_POKERUS);
+ //FRLGE also copy the eventLegal field to the hatched Pokemon. PCNY Wish Eggs traded to RS and hatched will not have their eventLegal bit set and will not be Fateful Encounters in future games.
CreateMon(temp, species, EGG_HATCH_LEVEL, 32, TRUE, personality, 0, 0);
diff --git a/src/evolution_scene.c b/src/evolution_scene.c
index ea7fde015..47a453693 100644
--- a/src/evolution_scene.c
+++ b/src/evolution_scene.c
@@ -507,7 +507,7 @@ static void CreateShedinja(u16 preEvoSpecies, struct Pokemon* mon)
SetMonData(Shedinja, MON_DATA_10, (void*)&data);
for (i = MON_DATA_COOL_RIBBON; i < MON_DATA_COOL_RIBBON + 5; i++)
SetMonData(Shedinja, i, (void*)&data);
- for (i = MON_DATA_CHAMPION_RIBBON; i <= MON_DATA_FATEFUL_ENCOUNTER; i++)
+ for (i = MON_DATA_CHAMPION_RIBBON; i <= MON_DATA_EVENT_LEGAL; i++)
SetMonData(Shedinja, i, (void*)&data);
SetMonData(Shedinja, MON_DATA_STATUS, (void*)&data);
data = 0xFF;
diff --git a/src/pokemon_2.c b/src/pokemon_2.c
index 9fd145b80..17f0aa768 100644
--- a/src/pokemon_2.c
+++ b/src/pokemon_2.c
@@ -532,29 +532,29 @@ u32 GetBoxMonData(struct BoxPokemon *boxMon, s32 field, u8 *data)
case MON_DATA_EFFORT_RIBBON:
retVal = substruct3->effortRibbon;
break;
- case MON_DATA_GIFT_RIBBON_1:
- retVal = substruct3->giftRibbon1;
+ case MON_DATA_MARINE_RIBBON:
+ retVal = substruct3->marineRibbon;
break;
- case MON_DATA_GIFT_RIBBON_2:
- retVal = substruct3->giftRibbon2;
+ case MON_DATA_LAND_RIBBON:
+ retVal = substruct3->landRibbon;
break;
- case MON_DATA_GIFT_RIBBON_3:
- retVal = substruct3->giftRibbon3;
+ case MON_DATA_SKY_RIBBON:
+ retVal = substruct3->skyRibbon;
break;
- case MON_DATA_GIFT_RIBBON_4:
- retVal = substruct3->giftRibbon4;
+ case MON_DATA_COUNTRY_RIBBON:
+ retVal = substruct3->countryRibbon;
break;
- case MON_DATA_GIFT_RIBBON_5:
- retVal = substruct3->giftRibbon5;
+ case MON_DATA_NATIONAL_RIBBON:
+ retVal = substruct3->nationalRibbon;
break;
- case MON_DATA_GIFT_RIBBON_6:
- retVal = substruct3->giftRibbon6;
+ case MON_DATA_EARTH_RIBBON:
+ retVal = substruct3->earthRibbon;
break;
- case MON_DATA_GIFT_RIBBON_7:
- retVal = substruct3->giftRibbon7;
+ case MON_DATA_WORLD_RIBBON:
+ retVal = substruct3->worldRibbon;
break;
- case MON_DATA_FATEFUL_ENCOUNTER:
- retVal = substruct3->fatefulEncounter;
+ case MON_DATA_EVENT_LEGAL:
+ retVal = substruct3->eventLegal;
break;
case MON_DATA_SPECIES2:
retVal = substruct0->species;
@@ -596,13 +596,13 @@ u32 GetBoxMonData(struct BoxPokemon *boxMon, s32 field, u8 *data)
retVal += substruct3->victoryRibbon;
retVal += substruct3->artistRibbon;
retVal += substruct3->effortRibbon;
- retVal += substruct3->giftRibbon1;
- retVal += substruct3->giftRibbon2;
- retVal += substruct3->giftRibbon3;
- retVal += substruct3->giftRibbon4;
- retVal += substruct3->giftRibbon5;
- retVal += substruct3->giftRibbon6;
- retVal += substruct3->giftRibbon7;
+ retVal += substruct3->marineRibbon;
+ retVal += substruct3->landRibbon;
+ retVal += substruct3->skyRibbon;
+ retVal += substruct3->countryRibbon;
+ retVal += substruct3->nationalRibbon;
+ retVal += substruct3->earthRibbon;
+ retVal += substruct3->worldRibbon;
}
break;
case MON_DATA_RIBBONS:
@@ -619,13 +619,13 @@ u32 GetBoxMonData(struct BoxPokemon *boxMon, s32 field, u8 *data)
| (substruct3->victoryRibbon << 17)
| (substruct3->artistRibbon << 18)
| (substruct3->effortRibbon << 19)
- | (substruct3->giftRibbon1 << 20)
- | (substruct3->giftRibbon2 << 21)
- | (substruct3->giftRibbon3 << 22)
- | (substruct3->giftRibbon4 << 23)
- | (substruct3->giftRibbon5 << 24)
- | (substruct3->giftRibbon6 << 25)
- | (substruct3->giftRibbon7 << 26);
+ | (substruct3->marineRibbon << 20)
+ | (substruct3->landRibbon << 21)
+ | (substruct3->skyRibbon << 22)
+ | (substruct3->countryRibbon << 23)
+ | (substruct3->nationalRibbon << 24)
+ | (substruct3->earthRibbon << 25)
+ | (substruct3->worldRibbon << 26);
}
break;
default:
@@ -904,29 +904,29 @@ void SetBoxMonData(struct BoxPokemon *boxMon, s32 field, const u8 *data)
case MON_DATA_EFFORT_RIBBON:
SET8(substruct3->effortRibbon);
break;
- case MON_DATA_GIFT_RIBBON_1:
- SET8(substruct3->giftRibbon1);
+ case MON_DATA_MARINE_RIBBON:
+ SET8(substruct3->marineRibbon);
break;
- case MON_DATA_GIFT_RIBBON_2:
- SET8(substruct3->giftRibbon2);
+ case MON_DATA_LAND_RIBBON:
+ SET8(substruct3->landRibbon);
break;
- case MON_DATA_GIFT_RIBBON_3:
- SET8(substruct3->giftRibbon3);
+ case MON_DATA_SKY_RIBBON:
+ SET8(substruct3->skyRibbon);
break;
- case MON_DATA_GIFT_RIBBON_4:
- SET8(substruct3->giftRibbon4);
+ case MON_DATA_COUNTRY_RIBBON:
+ SET8(substruct3->countryRibbon);
break;
- case MON_DATA_GIFT_RIBBON_5:
- SET8(substruct3->giftRibbon5);
+ case MON_DATA_NATIONAL_RIBBON:
+ SET8(substruct3->nationalRibbon);
break;
- case MON_DATA_GIFT_RIBBON_6:
- SET8(substruct3->giftRibbon6);
+ case MON_DATA_EARTH_RIBBON:
+ SET8(substruct3->earthRibbon);
break;
- case MON_DATA_GIFT_RIBBON_7:
- SET8(substruct3->giftRibbon7);
+ case MON_DATA_WORLD_RIBBON:
+ SET8(substruct3->worldRibbon);
break;
- case MON_DATA_FATEFUL_ENCOUNTER:
- SET8(substruct3->fatefulEncounter);
+ case MON_DATA_EVENT_LEGAL:
+ SET8(substruct3->eventLegal);
break;
case MON_DATA_IVS:
{
diff --git a/src/pokemon_size_record.c b/src/pokemon_size_record.c
index 31b879c2d..a679ab4c1 100644
--- a/src/pokemon_size_record.c
+++ b/src/pokemon_size_record.c
@@ -199,18 +199,18 @@ void GiveGiftRibbonToParty(u8 index, u8 ribbonId)
bool32 gotRibbon = FALSE;
u8 data = 1;
u8 arr[] = {
- MON_DATA_GIFT_RIBBON_1,
- MON_DATA_GIFT_RIBBON_2,
- MON_DATA_GIFT_RIBBON_3,
- MON_DATA_GIFT_RIBBON_4,
- MON_DATA_GIFT_RIBBON_5,
- MON_DATA_GIFT_RIBBON_6,
- MON_DATA_GIFT_RIBBON_7,
+ MON_DATA_MARINE_RIBBON,
+ MON_DATA_LAND_RIBBON,
+ MON_DATA_SKY_RIBBON,
+ MON_DATA_COUNTRY_RIBBON,
+ MON_DATA_NATIONAL_RIBBON,
+ MON_DATA_EARTH_RIBBON,
+ MON_DATA_WORLD_RIBBON,
};
if (index < 11 && ribbonId < 65)
{
- gSaveBlock1.externalReservedData.giftRibbons[index] = ribbonId;
+ gSaveBlock1.giftRibbons[index] = ribbonId;
for (i = 0; i < 6; i++)
{
struct Pokemon *pkmn = &gPlayerParty[i];
diff --git a/src/pokemon_summary_screen.c b/src/pokemon_summary_screen.c
index 63a65a6f0..9d1aa99db 100644
--- a/src/pokemon_summary_screen.c
+++ b/src/pokemon_summary_screen.c
@@ -2724,13 +2724,13 @@ u8 GetNumRibbons(struct Pokemon *mon)
numRibbons += GetMonData(mon, MON_DATA_VICTORY_RIBBON);
numRibbons += GetMonData(mon, MON_DATA_ARTIST_RIBBON);
numRibbons += GetMonData(mon, MON_DATA_EFFORT_RIBBON);
- numRibbons += GetMonData(mon, MON_DATA_GIFT_RIBBON_1);
- numRibbons += GetMonData(mon, MON_DATA_GIFT_RIBBON_2);
- numRibbons += GetMonData(mon, MON_DATA_GIFT_RIBBON_3);
- numRibbons += GetMonData(mon, MON_DATA_GIFT_RIBBON_4);
- numRibbons += GetMonData(mon, MON_DATA_GIFT_RIBBON_5);
- numRibbons += GetMonData(mon, MON_DATA_GIFT_RIBBON_6);
- numRibbons += GetMonData(mon, MON_DATA_GIFT_RIBBON_7);
+ numRibbons += GetMonData(mon, MON_DATA_MARINE_RIBBON);
+ numRibbons += GetMonData(mon, MON_DATA_LAND_RIBBON);
+ numRibbons += GetMonData(mon, MON_DATA_SKY_RIBBON);
+ numRibbons += GetMonData(mon, MON_DATA_COUNTRY_RIBBON);
+ numRibbons += GetMonData(mon, MON_DATA_NATIONAL_RIBBON);
+ numRibbons += GetMonData(mon, MON_DATA_EARTH_RIBBON);
+ numRibbons += GetMonData(mon, MON_DATA_WORLD_RIBBON);
return numRibbons;
}
diff --git a/src/pokenav.c b/src/pokenav.c
index 1db1ec6cc..ee2a4e676 100644
--- a/src/pokenav.c
+++ b/src/pokenav.c
@@ -2071,7 +2071,7 @@ void sub_80F1494(void)
add r0, r0, r1");
gUnknown_020388B4 = arr[0x30F7];
// The bug fix for this code is the following:
- // gUnknown_020388B4 = gSaveBlock1.externalReservedData.giftRibbons[gUnknown_020388B4];
+ // gUnknown_020388B4 = gSaveBlock1.giftRibbons[gUnknown_020388B4];
if (gUnknown_020388B4)
{
gUnknown_020388B4--;
diff --git a/src/pokenav_before.c b/src/pokenav_before.c
index 4f29681ac..34230c727 100644
--- a/src/pokenav_before.c
+++ b/src/pokenav_before.c
@@ -1106,13 +1106,13 @@ const u16 gUnknown_083E499C[] =
MON_DATA_VICTORY_RIBBON,
MON_DATA_ARTIST_RIBBON,
MON_DATA_EFFORT_RIBBON,
- MON_DATA_GIFT_RIBBON_1,
- MON_DATA_GIFT_RIBBON_2,
- MON_DATA_GIFT_RIBBON_3,
- MON_DATA_GIFT_RIBBON_4,
- MON_DATA_GIFT_RIBBON_5,
- MON_DATA_GIFT_RIBBON_6,
- MON_DATA_GIFT_RIBBON_7,
+ MON_DATA_MARINE_RIBBON,
+ MON_DATA_LAND_RIBBON,
+ MON_DATA_SKY_RIBBON,
+ MON_DATA_COUNTRY_RIBBON,
+ MON_DATA_NATIONAL_RIBBON,
+ MON_DATA_EARTH_RIBBON,
+ MON_DATA_WORLD_RIBBON,
};
void sub_80EBA5C()
diff --git a/src/trade.c b/src/trade.c
index 41c63e929..aeb77dd58 100644
--- a/src/trade.c
+++ b/src/trade.c
@@ -1612,7 +1612,7 @@ static bool8 sub_8048D44(void)
}
break;
case 13:
- Trade_Memcpy(gBlockSendBuffer, gSaveBlock1.externalReservedData.giftRibbons, 11);
+ Trade_Memcpy(gBlockSendBuffer, gSaveBlock1.giftRibbons, 11);
gUnknown_03004824->unk_0075 ++;
break;
case 14:
@@ -3355,8 +3355,8 @@ static void sub_804AF84(void)
{
int i;
for (i = 0; i < 11; i ++)
- if (gSaveBlock1.externalReservedData.giftRibbons[i] == 0 && gUnknown_03004824->unk_00b5[i] != 0)
- gSaveBlock1.externalReservedData.giftRibbons[i] = gUnknown_03004824->unk_00b5[i];
+ if (gSaveBlock1.giftRibbons[i] == 0 && gUnknown_03004824->unk_00b5[i] != 0)
+ gSaveBlock1.giftRibbons[i] = gUnknown_03004824->unk_00b5[i];
}
static void sub_804AFB8(const struct WindowTemplate *windowConfig, u8 *dest, const u8 *src, u8 size)