summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/constants/pokemon.h16
-rw-r--r--include/global.h58
-rw-r--r--include/pokemon.h16
-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
12 files changed, 152 insertions, 113 deletions
diff --git a/include/constants/pokemon.h b/include/constants/pokemon.h
index 5d1539179..f5a9f4a6e 100644
--- a/include/constants/pokemon.h
+++ b/include/constants/pokemon.h
@@ -73,14 +73,14 @@
#define MON_DATA_VICTORY_RIBBON 69
#define MON_DATA_ARTIST_RIBBON 70
#define MON_DATA_EFFORT_RIBBON 71
-#define MON_DATA_GIFT_RIBBON_1 72
-#define MON_DATA_GIFT_RIBBON_2 73
-#define MON_DATA_GIFT_RIBBON_3 74
-#define MON_DATA_GIFT_RIBBON_4 75
-#define MON_DATA_GIFT_RIBBON_5 76
-#define MON_DATA_GIFT_RIBBON_6 77
-#define MON_DATA_GIFT_RIBBON_7 78
-#define MON_DATA_FATEFUL_ENCOUNTER 79
+#define MON_DATA_MARINE_RIBBON 72
+#define MON_DATA_LAND_RIBBON 73
+#define MON_DATA_SKY_RIBBON 74
+#define MON_DATA_COUNTRY_RIBBON 75
+#define MON_DATA_NATIONAL_RIBBON 76
+#define MON_DATA_EARTH_RIBBON 77
+#define MON_DATA_WORLD_RIBBON 78
+#define MON_DATA_EVENT_LEGAL 79
#define MON_DATA_KNOWN_MOVES 80
#define MON_DATA_RIBBON_COUNT 81
#define MON_DATA_RIBBONS 82
diff --git a/include/global.h b/include/global.h
index d207f1cd4..e5114c396 100644
--- a/include/global.h
+++ b/include/global.h
@@ -585,6 +585,50 @@ struct ContestWinner
/*0x16*/ u8 trainerName[8];
};
+// For external event data storage. The majority of these may have never been used.
+struct ExternalEventData
+{
+ u8 unknownExternalDataFields1[7]; // if actually used, may be broken up into different fields.
+ u32 unknownExternalDataFields2:8;
+ u32 currentPokeCoupons:24; // PokéCoupons stored by Pokémon Colosseum and XD from Mt. Battle runs. Earned PokéCoupons are also added to totalEarnedPokeCoupons. Colosseum/XD caps this at 9,999,999, but will read up to 16,777,215.
+ u32 gotGoldPokeCouponTitleReward:1; // Master Ball from Jp Colosseum Bonus Disc; for reaching 30,000 totalEarnedPokeCoupons
+ u32 gotSilverPokeCouponTitleReward:1; // Light Ball Pikachu from JP Colosseum Bonus Disc; for reaching 5000 totalEarnedPokeCoupons
+ u32 gotBronzePokeCouponTitleReward:1; // PP Max from JP Colosseum Bonus Disc; for reaching 2500 totalEarnedPokeCoupons
+ u32 receivedAgetoCelebi:1; // from JP Colosseum Bonus Disc
+ u32 unknownExternalDataFields3:4;
+ u32 totalEarnedPokeCoupons:24; // Used by the JP Colosseum bonus disc. Determines PokéCoupon rank to distribute rewards. Unread in International games. Colosseum/XD caps this at 9,999,999.
+ u8 unknownExternalDataFields4[5]; // if actually used, may be broken up into different fields.
+} __attribute__((packed)); /*size = 0x14*/
+
+// For external event flags. The majority of these may have never been used.
+struct ExternalEventFlags
+{
+ u8 usedBoxRS:1; // Set by Pokémon Box: Ruby & Sapphire; denotes whether this save has connected to it and triggered the free False Swipe Swablu Egg giveaway.
+ u8 boxRSEggsUnlocked:2; // Set by Pokémon Box: Ruby & Sapphire; denotes the number of Eggs unlocked from deposits; 1 for ExtremeSpeed Zigzagoon (at 100 deposited), 2 for Pay Day Skitty (at 500 deposited), 3 for Surf Pichu (at 1500 deposited)
+ u8 padding:5;
+ u8 unknownFlag1;
+ u8 receivedGCNJirachi; // Both the US Colosseum Bonus Disc and PAL/AUS Pokémon Channel use this field. One cannot receive a WISHMKR Jirachi and CHANNEL Jirachi with the same savefile.
+ u8 unknownFlag3;
+ u8 unknownFlag4;
+ u8 unknownFlag5;
+ u8 unknownFlag6;
+ u8 unknownFlag7;
+ u8 unknownFlag8;
+ u8 unknownFlag9;
+ u8 unknownFlag10;
+ u8 unknownFlag11;
+ u8 unknownFlag12;
+ u8 unknownFlag13;
+ u8 unknownFlag14;
+ u8 unknownFlag15;
+ u8 unknownFlag16;
+ u8 unknownFlag17;
+ u8 unknownFlag18;
+ u8 unknownFlag19;
+ u8 unknownFlag20;
+
+} __attribute__((packed));/*size = 0x15*/
+
// there should be enough flags for all 412 slots
// each slot takes up 8 flags
// if the value is not divisible by 8, we need to account for the reminder as well
@@ -667,16 +711,10 @@ struct SaveBlock1 /* 0x02025734 */
/*0x2EFC*/ struct ContestWinner museumPortraits[5];
/*0x2F9C*/ struct DayCare daycare;
/*0x30B8*/ struct LinkBattleRecord linkBattleRecords[5];
- struct {
- /*0x3108*/ u8 unknown1[8];
- /*0x3110*/ u8 giftRibbons[11];
- /*0x311B*/ u8 unknown2[8];
- /*0x3123*/ u32 currentPokeCoupons;
- /*0x3127*/ u32 totalEarnedPokeCoupons;
- /*0x312B*/ u8 unknown3[6];
- /*0x3131*/ u8 receivedWishmakerJirachi;
- /*0x3132*/ u8 unknown4[18];
- } __attribute__((packed)) externalReservedData;
+ /*0x3108*/ u8 filler_3108[8];
+ /*0x3110*/ u8 giftRibbons[11];
+ /*0x311B*/ struct ExternalEventData externalEventData;
+ /*0x312F*/ struct ExternalEventFlags externalEventFlags;
/*0x3144*/ struct Roamer roamer;
/*0x3160*/ struct EnigmaBerry enigmaBerry;
/*0x3690*/ struct RamScript ramScript;
diff --git a/include/pokemon.h b/include/pokemon.h
index c8e7ce719..d2ab1335c 100644
--- a/include/pokemon.h
+++ b/include/pokemon.h
@@ -111,14 +111,14 @@ struct PokemonSubstruct3
/*0x0A*/ u32 victoryRibbon:1;
/*0x0A*/ u32 artistRibbon:1;
/*0x0A*/ u32 effortRibbon:1;
- /*0x0A*/ u32 giftRibbon1:1;
- /*0x0A*/ u32 giftRibbon2:1;
- /*0x0A*/ u32 giftRibbon3:1;
- /*0x0A*/ u32 giftRibbon4:1;
- /*0x0B*/ u32 giftRibbon5:1;
- /*0x0B*/ u32 giftRibbon6:1;
- /*0x0B*/ u32 giftRibbon7:1;
- /*0x0B*/ u32 fatefulEncounter:5; // unused in Ruby/Sapphire, but the high bit must be set for Mew/Deoxys to obey in FR/LG/Emerald
+ /*0x0A*/ u32 marineRibbon:1; // never distributed
+ /*0x0A*/ u32 landRibbon:1; // never distributed
+ /*0x0A*/ u32 skyRibbon:1; // never distributed
+ /*0x0A*/ u32 countryRibbon:1; // distributed during Pokémon Festa '04 and '05 to tournament winners
+ /*0x0B*/ u32 nationalRibbon:1;
+ /*0x0B*/ u32 earthRibbon:1;
+ /*0x0B*/ u32 worldRibbon:1; // distributed during Pokémon Festa '04 and '05 to tournament winners
+ /*0x0B*/ u32 eventLegal:5; // high bit controls Mew & Deoxys obedience in FRLGE; if set, Pokémon is a fateful encounter in FRLG & Gen 4+ summary screens; set for in-game event island legendaries, some distributed events, and Pokémon from XD: Gale of Darkness.
};
union PokemonSubstruct
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)