Sync global
This commit is contained in:
@@ -33,9 +33,6 @@
|
||||
#define TAG_HEALTHBOX_PALS_1 55049
|
||||
#define TAG_HEALTHBOX_PALS_2 55050
|
||||
|
||||
#define HIHALF(n) (((n) & 0xFFFF0000) >> 16)
|
||||
#define LOHALF(n) ((n) & 0xFFFF)
|
||||
|
||||
// RAM
|
||||
UNUSED u32 gMonShrinkDuration;
|
||||
UNUSED u16 gMonShrinkDelta;
|
||||
|
||||
@@ -303,7 +303,7 @@ static s32 IndexOfOpponentLinkBattleRecord(struct LinkBattleRecords * records, c
|
||||
|
||||
for (i = 0; i < LINK_B_RECORDS_COUNT; i++)
|
||||
{
|
||||
if (StringCompareN(records->entries[i].name, name, OT_NAME_LENGTH) == 0 && records->entries[i].trainerId == trainerId)
|
||||
if (StringCompareN(records->entries[i].name, name, PLAYER_NAME_LENGTH) == 0 && records->entries[i].trainerId == trainerId)
|
||||
return i;
|
||||
}
|
||||
|
||||
@@ -377,7 +377,7 @@ static void UpdateLinkBattleGameStats(s32 outcome)
|
||||
|
||||
static void AddOpponentLinkBattleRecord(struct LinkBattleRecords * records, const u8 * name, u16 trainerId, s32 outcome, u32 language)
|
||||
{
|
||||
u8 namebuf[OT_NAME_LENGTH + 1];
|
||||
u8 namebuf[PLAYER_NAME_LENGTH + 1];
|
||||
s32 i;
|
||||
struct LinkBattleRecord * record;
|
||||
|
||||
@@ -397,7 +397,7 @@ static void AddOpponentLinkBattleRecord(struct LinkBattleRecords * records, cons
|
||||
i = LINK_B_RECORDS_COUNT - 1;
|
||||
record = &records->entries[LINK_B_RECORDS_COUNT - 1];
|
||||
ClearLinkBattleRecord(record);
|
||||
StringCopyN(record->name, namebuf, OT_NAME_LENGTH);
|
||||
StringCopyN(record->name, namebuf, PLAYER_NAME_LENGTH);
|
||||
record->trainerId = trainerId;
|
||||
}
|
||||
UpdateLinkBattleRecord(&records->entries[i], outcome);
|
||||
@@ -515,8 +515,8 @@ static void PrintOpponentBattleRecord(struct LinkBattleRecord * record, u8 y)
|
||||
if (i == 0)
|
||||
{
|
||||
x = 0;
|
||||
StringFillWithTerminator(gStringVar1, OT_NAME_LENGTH + 1);
|
||||
StringCopyN(gStringVar1, record->name, OT_NAME_LENGTH);
|
||||
StringFillWithTerminator(gStringVar1, PLAYER_NAME_LENGTH + 1);
|
||||
StringCopyN(gStringVar1, record->name, PLAYER_NAME_LENGTH);
|
||||
}
|
||||
else if (i == 1)
|
||||
{
|
||||
|
||||
+3
-1
@@ -921,6 +921,8 @@ const struct BerryTree gBlankBerryTree = {};
|
||||
berries[ITEM_ENIGMA_BERRY - FIRST_BERRY_INDEX]; \
|
||||
})
|
||||
|
||||
static u32 GetEnigmaBerryChecksum(struct EnigmaBerry *);
|
||||
|
||||
void InitEnigmaBerry(void)
|
||||
{
|
||||
s32 i;
|
||||
@@ -967,7 +969,7 @@ void SetEnigmaBerry(u8 * berry)
|
||||
enigmaBerry->checksum = GetEnigmaBerryChecksum(enigmaBerry);
|
||||
}
|
||||
|
||||
u32 GetEnigmaBerryChecksum(struct EnigmaBerry * enigmaBerry)
|
||||
static u32 GetEnigmaBerryChecksum(struct EnigmaBerry * enigmaBerry)
|
||||
{
|
||||
const u8 * src = (const u8 *)enigmaBerry;
|
||||
u32 result = 0;
|
||||
|
||||
+12
-12
@@ -1061,31 +1061,31 @@ static void SaveResults(void)
|
||||
switch (sGame->playerCount)
|
||||
{
|
||||
case 2:
|
||||
if (sGame->pressingSpeed > gSaveBlock2Ptr->berryCrush.berryCrushResults[0])
|
||||
if (sGame->pressingSpeed > gSaveBlock2Ptr->berryCrush.pressingSpeeds[0])
|
||||
{
|
||||
sGame->newRecord = TRUE;
|
||||
gSaveBlock2Ptr->berryCrush.berryCrushResults[0] = sGame->pressingSpeed;
|
||||
gSaveBlock2Ptr->berryCrush.pressingSpeeds[0] = sGame->pressingSpeed;
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
if (sGame->pressingSpeed > gSaveBlock2Ptr->berryCrush.berryCrushResults[1])
|
||||
if (sGame->pressingSpeed > gSaveBlock2Ptr->berryCrush.pressingSpeeds[1])
|
||||
{
|
||||
sGame->newRecord = TRUE;
|
||||
gSaveBlock2Ptr->berryCrush.berryCrushResults[1] = sGame->pressingSpeed;
|
||||
gSaveBlock2Ptr->berryCrush.pressingSpeeds[1] = sGame->pressingSpeed;
|
||||
}
|
||||
break;
|
||||
case 4:
|
||||
if (sGame->pressingSpeed > gSaveBlock2Ptr->berryCrush.berryCrushResults[2])
|
||||
if (sGame->pressingSpeed > gSaveBlock2Ptr->berryCrush.pressingSpeeds[2])
|
||||
{
|
||||
sGame->newRecord = TRUE;
|
||||
gSaveBlock2Ptr->berryCrush.berryCrushResults[2] = sGame->pressingSpeed;
|
||||
gSaveBlock2Ptr->berryCrush.pressingSpeeds[2] = sGame->pressingSpeed;
|
||||
}
|
||||
break;
|
||||
case 5:
|
||||
if (sGame->pressingSpeed > gSaveBlock2Ptr->berryCrush.berryCrushResults[3])
|
||||
if (sGame->pressingSpeed > gSaveBlock2Ptr->berryCrush.pressingSpeeds[3])
|
||||
{
|
||||
sGame->newRecord = TRUE;
|
||||
gSaveBlock2Ptr->berryCrush.berryCrushResults[3] = sGame->pressingSpeed;
|
||||
gSaveBlock2Ptr->berryCrush.pressingSpeeds[3] = sGame->pressingSpeed;
|
||||
}
|
||||
break;
|
||||
}
|
||||
@@ -3192,10 +3192,10 @@ void ShowBerryCrushRankings(void)
|
||||
|
||||
ScriptContext2_Enable();
|
||||
taskId = CreateTask(Task_ShowBerryCrushRankings, 0);
|
||||
gTasks[taskId].tPressingSpeeds(0) = gSaveBlock2Ptr->berryCrush.berryCrushResults[0];
|
||||
gTasks[taskId].tPressingSpeeds(1) = gSaveBlock2Ptr->berryCrush.berryCrushResults[1];
|
||||
gTasks[taskId].tPressingSpeeds(2) = gSaveBlock2Ptr->berryCrush.berryCrushResults[2];
|
||||
gTasks[taskId].tPressingSpeeds(3) = gSaveBlock2Ptr->berryCrush.berryCrushResults[3];
|
||||
gTasks[taskId].tPressingSpeeds(0) = gSaveBlock2Ptr->berryCrush.pressingSpeeds[0];
|
||||
gTasks[taskId].tPressingSpeeds(1) = gSaveBlock2Ptr->berryCrush.pressingSpeeds[1];
|
||||
gTasks[taskId].tPressingSpeeds(2) = gSaveBlock2Ptr->berryCrush.pressingSpeeds[2];
|
||||
gTasks[taskId].tPressingSpeeds(3) = gSaveBlock2Ptr->berryCrush.pressingSpeeds[3];
|
||||
}
|
||||
|
||||
static void PrintTimer(struct BerryCrushGame_Gfx * gfx, u16 frames)
|
||||
|
||||
+5
-2
@@ -177,7 +177,10 @@ static void BikeTransition_MoveDirection(u8 direction)
|
||||
{
|
||||
if (collision == COLLISION_LEDGE_JUMP)
|
||||
PlayerJumpLedge(direction);
|
||||
else if (collision != COLLISION_STOP_SURFING && collision != COLLISION_LEDGE_JUMP && collision != COLLISION_PUSHED_BOULDER && collision != COLLISION_UNKNOWN_WARP_6C_6D_6E_6F)
|
||||
else if (collision != COLLISION_STOP_SURFING
|
||||
&& collision != COLLISION_LEDGE_JUMP
|
||||
&& collision != COLLISION_PUSHED_BOULDER
|
||||
&& collision != COLLISION_ROTATING_GATE)
|
||||
PlayerOnBikeCollide(direction);
|
||||
}
|
||||
else
|
||||
@@ -249,7 +252,7 @@ bool8 RS_IsRunningDisallowed(u8 r0)
|
||||
|
||||
bool32 IsRunningDisallowed(u8 metatileBehavior)
|
||||
{
|
||||
if (!(gMapHeader.flags & MAP_ALLOW_RUN))
|
||||
if (!gMapHeader.allowRunning)
|
||||
return TRUE;
|
||||
if (MetatileBehaviorForbidsBiking(metatileBehavior) != TRUE)
|
||||
return FALSE;
|
||||
|
||||
@@ -491,11 +491,14 @@ static void PlayerNotOnBikeMoving(u8 direction, u16 heldKeys)
|
||||
{
|
||||
PlayerJumpLedge(direction);
|
||||
}
|
||||
else if (collision == COLLISION_UNKNOWN_WARP_6C_6D_6E_6F)
|
||||
else if (collision == COLLISION_ROTATING_GATE)
|
||||
{
|
||||
PlayerFaceDirection(direction);
|
||||
}
|
||||
else if (collision != COLLISION_STOP_SURFING && collision != COLLISION_LEDGE_JUMP && collision != COLLISION_PUSHED_BOULDER && collision != COLLISION_UNKNOWN_WARP_6C_6D_6E_6F)
|
||||
else if (collision != COLLISION_STOP_SURFING
|
||||
&& collision != COLLISION_LEDGE_JUMP
|
||||
&& collision != COLLISION_PUSHED_BOULDER
|
||||
&& collision != COLLISION_ROTATING_GATE)
|
||||
{
|
||||
PlayerNotOnBikeCollide(direction);
|
||||
}
|
||||
|
||||
+2
-2
@@ -243,7 +243,7 @@ void FieldUseFunc_OrangeMail(u8 taskId)
|
||||
|
||||
static void sub_80A1208(void)
|
||||
{
|
||||
struct MailStruct mail;
|
||||
struct Mail mail;
|
||||
|
||||
mail.itemId = gSpecialVar_ItemId;
|
||||
ReadMail(&mail, CB2_BagMenuFromStartMenu, 0);
|
||||
@@ -613,7 +613,7 @@ static void sub_80A1B48(u8 taskId)
|
||||
|
||||
bool8 CanUseEscapeRopeOnCurrMap(void)
|
||||
{
|
||||
if (gMapHeader.flags & MAP_ALLOW_ESCAPE_ROPE)
|
||||
if (gMapHeader.allowEscaping)
|
||||
return TRUE;
|
||||
else
|
||||
return FALSE;
|
||||
|
||||
+1
-1
@@ -19,7 +19,7 @@ struct LoadedSaveData
|
||||
/*0x00F0*/ struct ItemSlot pokeBalls[BAG_POKEBALLS_COUNT];
|
||||
/*0x0130*/ struct ItemSlot TMsHMs[BAG_TMHM_COUNT];
|
||||
/*0x0230*/ struct ItemSlot berries[BAG_BERRIES_COUNT];
|
||||
/*0x02E8*/ struct MailStruct mail[MAIL_COUNT];
|
||||
/*0x02E8*/ struct Mail mail[MAIL_COUNT];
|
||||
};
|
||||
|
||||
// EWRAM DATA
|
||||
|
||||
+2
-2
@@ -57,7 +57,7 @@ struct MailViewResources {
|
||||
u8 authorNameBuffer[12];
|
||||
void (*savedCallback)(void);
|
||||
void (*showMailCallback)(void);
|
||||
struct MailStruct * mail;
|
||||
struct Mail * mail;
|
||||
bool8 messageExists;
|
||||
u8 nameX;
|
||||
u8 mailType;
|
||||
@@ -437,7 +437,7 @@ static const struct MailAttrStruct sMessageLayouts_5x2[] = {
|
||||
},
|
||||
};
|
||||
|
||||
void ReadMail(struct MailStruct * mail, void (*savedCallback)(void), bool8 messageExists)
|
||||
void ReadMail(struct Mail * mail, void (*savedCallback)(void), bool8 messageExists)
|
||||
{
|
||||
u16 sp0;
|
||||
u16 species;
|
||||
|
||||
+3
-3
@@ -13,7 +13,7 @@ void ClearMailData(void)
|
||||
ClearMailStruct(&gSaveBlock1Ptr->mail[i]);
|
||||
}
|
||||
|
||||
void ClearMailStruct(struct MailStruct *mail)
|
||||
void ClearMailStruct(struct Mail *mail)
|
||||
{
|
||||
s32 i;
|
||||
|
||||
@@ -95,7 +95,7 @@ u16 MailSpeciesToSpecies(u16 mailSpecies, u16 *unownLetter)
|
||||
return result;
|
||||
}
|
||||
|
||||
u8 GiveMailToMon2(struct Pokemon *mon, struct MailStruct *mail)
|
||||
u8 GiveMailToMon2(struct Pokemon *mon, struct Mail *mail)
|
||||
{
|
||||
u8 heldItem[2];
|
||||
u16 itemId = mail->itemId;
|
||||
@@ -152,7 +152,7 @@ u8 TakeMailFromMon2(struct Pokemon *mon)
|
||||
{
|
||||
if (gSaveBlock1Ptr->mail[i].itemId == ITEM_NONE)
|
||||
{
|
||||
memcpy(&gSaveBlock1Ptr->mail[i], &gSaveBlock1Ptr->mail[GetMonData(mon, MON_DATA_MAIL)], sizeof(struct MailStruct));
|
||||
memcpy(&gSaveBlock1Ptr->mail[i], &gSaveBlock1Ptr->mail[GetMonData(mon, MON_DATA_MAIL)], sizeof(struct Mail));
|
||||
gSaveBlock1Ptr->mail[GetMonData(mon, MON_DATA_MAIL)].itemId = ITEM_NONE;
|
||||
SetMonData(mon, MON_DATA_MAIL, &newMailId);
|
||||
SetMonData(mon, MON_DATA_HELD_ITEM, newHeldItem);
|
||||
|
||||
+2
-2
@@ -618,11 +618,11 @@ static void PrintContinueStats(void)
|
||||
static void PrintPlayerName(void)
|
||||
{
|
||||
s32 i;
|
||||
u8 name[OT_NAME_LENGTH + 1];
|
||||
u8 name[PLAYER_NAME_LENGTH + 1];
|
||||
u8 *ptr;
|
||||
AddTextPrinterParameterized3(MAIN_MENU_WINDOW_CONTINUE, 2, 2, 18, sTextColor2, -1, gText_Player);
|
||||
ptr = name;
|
||||
for (i = 0; i < OT_NAME_LENGTH; i++)
|
||||
for (i = 0; i < PLAYER_NAME_LENGTH; i++)
|
||||
*ptr++ = gSaveBlock2Ptr->playerName[i];
|
||||
*ptr = EOS;
|
||||
AddTextPrinterParameterized3(MAIN_MENU_WINDOW_CONTINUE, 2, 62, 18, sTextColor2, -1, name);
|
||||
|
||||
+16
-16
@@ -5,15 +5,15 @@
|
||||
#include "menews_jisan.h"
|
||||
#include "constants/items.h"
|
||||
|
||||
static u32 GetMENewsJisanRewardItem(struct MENewsJisanStruct *);
|
||||
static void MENewsJisanIncrementCounterUnk0_5(struct MENewsJisanStruct *);
|
||||
static u32 GetMENewsJisanState(struct MENewsJisanStruct *);
|
||||
static void MENewsJisanIncrementCounterUnk0_2(struct MENewsJisanStruct *);
|
||||
static void MENewsJisanResetCounterUnk0_2(struct MENewsJisanStruct *);
|
||||
static u32 GetMENewsJisanRewardItem(struct WonderNewsMetadata *);
|
||||
static void MENewsJisanIncrementCounterUnk0_5(struct WonderNewsMetadata *);
|
||||
static u32 GetMENewsJisanState(struct WonderNewsMetadata *);
|
||||
static void MENewsJisanIncrementCounterUnk0_2(struct WonderNewsMetadata *);
|
||||
static void MENewsJisanResetCounterUnk0_2(struct WonderNewsMetadata *);
|
||||
|
||||
void MENewsJisan_SetRandomReward(u32 a0)
|
||||
{
|
||||
struct MENewsJisanStruct *r5 = GetMENewsJisanStructPtr();
|
||||
struct WonderNewsMetadata *r5 = GetMENewsJisanStructPtr();
|
||||
|
||||
r5->unk_0_0 = a0;
|
||||
switch (a0)
|
||||
@@ -32,7 +32,7 @@ void MENewsJisan_SetRandomReward(u32 a0)
|
||||
|
||||
void MENewsJisanReset(void)
|
||||
{
|
||||
struct MENewsJisanStruct *r5 = GetMENewsJisanStructPtr();
|
||||
struct WonderNewsMetadata *r5 = GetMENewsJisanStructPtr();
|
||||
|
||||
r5->unk_0_0 = 0;
|
||||
r5->unk_0_2 = 0;
|
||||
@@ -44,8 +44,8 @@ void MENewsJisanReset(void)
|
||||
void MENewsJisanStepCounter(void)
|
||||
{
|
||||
u16 *r4 = GetVarPointer(VAR_MENEWS_JISAN_STEP_COUNTER);
|
||||
struct MENewsJisanStruct *r2 = GetMENewsJisanStructPtr();
|
||||
struct MENewsJisanStruct r0 = *r2;
|
||||
struct WonderNewsMetadata *r2 = GetMENewsJisanStructPtr();
|
||||
struct WonderNewsMetadata r0 = *r2;
|
||||
|
||||
if ((u8)r0.unk_0_5 > 4 && ++(*r4) >= 500)
|
||||
{
|
||||
@@ -57,7 +57,7 @@ void MENewsJisanStepCounter(void)
|
||||
u16 GetMENewsJisanItemAndState(void)
|
||||
{
|
||||
u16 *r6 = &gSpecialVar_Result;
|
||||
struct MENewsJisanStruct *r4 = GetMENewsJisanStructPtr();
|
||||
struct WonderNewsMetadata *r4 = GetMENewsJisanStructPtr();
|
||||
u16 r5;
|
||||
|
||||
if (!IsMysteryGiftEnabled() || !ValidateReceivedWonderNews())
|
||||
@@ -92,7 +92,7 @@ u16 GetMENewsJisanItemAndState(void)
|
||||
return r5;
|
||||
}
|
||||
|
||||
static u32 GetMENewsJisanRewardItem(struct MENewsJisanStruct *a0)
|
||||
static u32 GetMENewsJisanRewardItem(struct WonderNewsMetadata *a0)
|
||||
{
|
||||
u32 r4;
|
||||
|
||||
@@ -103,28 +103,28 @@ static u32 GetMENewsJisanRewardItem(struct MENewsJisanStruct *a0)
|
||||
return r4;
|
||||
}
|
||||
|
||||
static void MENewsJisanResetCounterUnk0_2(struct MENewsJisanStruct *a0)
|
||||
static void MENewsJisanResetCounterUnk0_2(struct WonderNewsMetadata *a0)
|
||||
{
|
||||
a0->unk_0_2 = 0;
|
||||
}
|
||||
|
||||
static void MENewsJisanIncrementCounterUnk0_2(struct MENewsJisanStruct *a0)
|
||||
static void MENewsJisanIncrementCounterUnk0_2(struct WonderNewsMetadata *a0)
|
||||
{
|
||||
a0->unk_0_2++;
|
||||
if ((u8)a0->unk_0_2 > 4)
|
||||
a0->unk_0_2 = 4;
|
||||
}
|
||||
|
||||
static void MENewsJisanIncrementCounterUnk0_5(struct MENewsJisanStruct *a0)
|
||||
static void MENewsJisanIncrementCounterUnk0_5(struct WonderNewsMetadata *a0)
|
||||
{
|
||||
a0->unk_0_5++;
|
||||
if ((u8)a0->unk_0_5 > 5)
|
||||
a0->unk_0_5 = 5;
|
||||
}
|
||||
|
||||
static u32 GetMENewsJisanState(struct MENewsJisanStruct *a0)
|
||||
static u32 GetMENewsJisanState(struct WonderNewsMetadata *a0)
|
||||
{
|
||||
struct MENewsJisanStruct r0;
|
||||
struct WonderNewsMetadata r0;
|
||||
if ((u8)a0->unk_0_5 == 5)
|
||||
return 6;
|
||||
|
||||
|
||||
+100
-100
@@ -36,10 +36,10 @@ struct MEventTaskData1
|
||||
};
|
||||
|
||||
static void Task_EReaderComm(u8 taskId);
|
||||
static bool32 IsReceivedWonderNewsHeaderValid(const struct MEWonderNewsData * src);
|
||||
static bool32 IsReceivedWonderNewsHeaderValid(const struct WonderNews * src);
|
||||
static void BlankWonderNews(void);
|
||||
static void BlankMENewsJisan(void);
|
||||
static bool32 IsReceivedWonderCardHeaderValid(const struct MEWonderCardData * src);
|
||||
static bool32 IsReceivedWonderCardHeaderValid(const struct WonderCard * src);
|
||||
static void BlankSavedWonderCard(void);
|
||||
static void BlankMEventBuffer2(void);
|
||||
static void RecordIdOfWonderCardSender(u32 eventId, u32 trainerId, u32 *idsList, s32 count);
|
||||
@@ -477,34 +477,34 @@ static void Task_EReaderComm(u8 taskId)
|
||||
|
||||
void InitMEventData(void)
|
||||
{
|
||||
CpuFill32(0, &gSaveBlock1Ptr->mysteryEventBuffers, sizeof(gSaveBlock1Ptr->mysteryEventBuffers));
|
||||
CpuFill32(0, &gSaveBlock1Ptr->mysteryGift, sizeof(gSaveBlock1Ptr->mysteryGift));
|
||||
BlankMENewsJisan();
|
||||
EC_ResetMEventProfileMaybe();
|
||||
}
|
||||
|
||||
struct MEWonderNewsData * GetSavedWonderNews(void)
|
||||
struct WonderNews * GetSavedWonderNews(void)
|
||||
{
|
||||
return &gSaveBlock1Ptr->mysteryEventBuffers.menews.data;
|
||||
return &gSaveBlock1Ptr->mysteryGift.news;
|
||||
}
|
||||
|
||||
struct MEWonderCardData * GetSavedWonderCard(void)
|
||||
struct WonderCard * GetSavedWonderCard(void)
|
||||
{
|
||||
return &gSaveBlock1Ptr->mysteryEventBuffers.mecard.data;
|
||||
return &gSaveBlock1Ptr->mysteryGift.card;
|
||||
}
|
||||
|
||||
struct MEventBuffer_3430_Sub * sav1_get_mevent_buffer_2(void)
|
||||
struct WonderCardMetadata * sav1_get_mevent_buffer_2(void)
|
||||
{
|
||||
return &gSaveBlock1Ptr->mysteryEventBuffers.buffer_310.data;
|
||||
return &gSaveBlock1Ptr->mysteryGift.cardMetadata;
|
||||
}
|
||||
|
||||
struct MENewsJisanStruct * GetMENewsJisanStructPtr(void)
|
||||
struct WonderNewsMetadata * GetMENewsJisanStructPtr(void)
|
||||
{
|
||||
return &gSaveBlock1Ptr->mysteryEventBuffers.me_jisan;
|
||||
return &gSaveBlock1Ptr->mysteryGift.newsMetadata;
|
||||
}
|
||||
|
||||
u16 * GetMEventProfileECWordsMaybe(void)
|
||||
{
|
||||
return gSaveBlock1Ptr->mysteryEventBuffers.ec_profile_maybe;
|
||||
return gSaveBlock1Ptr->mysteryGift.questionnaireWords;
|
||||
}
|
||||
|
||||
void DestroyWonderNews(void)
|
||||
@@ -512,26 +512,26 @@ void DestroyWonderNews(void)
|
||||
BlankWonderNews();
|
||||
}
|
||||
|
||||
bool32 OverwriteSavedWonderNewsWithReceivedNews(const struct MEWonderNewsData * src)
|
||||
bool32 OverwriteSavedWonderNewsWithReceivedNews(const struct WonderNews * src)
|
||||
{
|
||||
if (!IsReceivedWonderNewsHeaderValid(src))
|
||||
return FALSE;
|
||||
BlankWonderNews();
|
||||
gSaveBlock1Ptr->mysteryEventBuffers.menews.data = *src;
|
||||
gSaveBlock1Ptr->mysteryEventBuffers.menews.crc = CalcCRC16WithTable((void *)&gSaveBlock1Ptr->mysteryEventBuffers.menews.data, sizeof(struct MEWonderNewsData));
|
||||
gSaveBlock1Ptr->mysteryGift.news = *src;
|
||||
gSaveBlock1Ptr->mysteryGift.newsCrc = CalcCRC16WithTable((void *)&gSaveBlock1Ptr->mysteryGift.news, sizeof(struct WonderNews));
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool32 ValidateReceivedWonderNews(void)
|
||||
{
|
||||
if (CalcCRC16WithTable((void *)&gSaveBlock1Ptr->mysteryEventBuffers.menews.data, sizeof(struct MEWonderNewsData)) != gSaveBlock1Ptr->mysteryEventBuffers.menews.crc)
|
||||
if (CalcCRC16WithTable((void *)&gSaveBlock1Ptr->mysteryGift.news, sizeof(struct WonderNews)) != gSaveBlock1Ptr->mysteryGift.newsCrc)
|
||||
return FALSE;
|
||||
if (!IsReceivedWonderNewsHeaderValid(&gSaveBlock1Ptr->mysteryEventBuffers.menews.data))
|
||||
if (!IsReceivedWonderNewsHeaderValid(&gSaveBlock1Ptr->mysteryGift.news))
|
||||
return FALSE;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
static bool32 IsReceivedWonderNewsHeaderValid(const struct MEWonderNewsData * data)
|
||||
static bool32 IsReceivedWonderNewsHeaderValid(const struct WonderNews * data)
|
||||
{
|
||||
if (data->newsId == 0)
|
||||
return FALSE;
|
||||
@@ -540,31 +540,31 @@ static bool32 IsReceivedWonderNewsHeaderValid(const struct MEWonderNewsData * da
|
||||
|
||||
bool32 WonderNews_Test_Unk_02(void)
|
||||
{
|
||||
const struct MEWonderNewsData * data = &gSaveBlock1Ptr->mysteryEventBuffers.menews.data;
|
||||
if (data->shareState == 0)
|
||||
const struct WonderNews * data = &gSaveBlock1Ptr->mysteryGift.news;
|
||||
if (data->sendType == 0)
|
||||
return FALSE;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
static void BlankWonderNews(void)
|
||||
{
|
||||
CpuFill32(0, GetSavedWonderNews(), sizeof(gSaveBlock1Ptr->mysteryEventBuffers.menews.data));
|
||||
gSaveBlock1Ptr->mysteryEventBuffers.menews.crc = 0;
|
||||
CpuFill32(0, GetSavedWonderNews(), sizeof(gSaveBlock1Ptr->mysteryGift.news));
|
||||
gSaveBlock1Ptr->mysteryGift.newsCrc = 0;
|
||||
}
|
||||
|
||||
static void BlankMENewsJisan(void)
|
||||
{
|
||||
CpuFill32(0, GetMENewsJisanStructPtr(), sizeof(struct MENewsJisanStruct));
|
||||
CpuFill32(0, GetMENewsJisanStructPtr(), sizeof(struct WonderNewsMetadata));
|
||||
MENewsJisanReset();
|
||||
}
|
||||
|
||||
bool32 MEvent_HaveAlreadyReceivedWonderNews(const u8 * src)
|
||||
{
|
||||
const u8 * r5 = (const u8 *)&gSaveBlock1Ptr->mysteryEventBuffers.menews.data;
|
||||
const u8 * r5 = (const u8 *)&gSaveBlock1Ptr->mysteryGift.news;
|
||||
u32 i;
|
||||
if (!ValidateReceivedWonderNews())
|
||||
return FALSE;
|
||||
for (i = 0; i < sizeof(struct MEWonderNewsData); i++)
|
||||
for (i = 0; i < sizeof(struct WonderNews); i++)
|
||||
{
|
||||
if (r5[i] != src[i])
|
||||
return FALSE;
|
||||
@@ -583,79 +583,79 @@ void DestroyWonderCard(void)
|
||||
ClearEReaderTrainer(&gSaveBlock2Ptr->battleTower.ereaderTrainer);
|
||||
}
|
||||
|
||||
bool32 OverwriteSavedWonderCardWithReceivedCard(const struct MEWonderCardData * data)
|
||||
bool32 OverwriteSavedWonderCardWithReceivedCard(const struct WonderCard * data)
|
||||
{
|
||||
struct MEventBuffer_3430_Sub * r2;
|
||||
struct MEWonderCardData * r1;
|
||||
struct WonderCardMetadata * r2;
|
||||
struct WonderCard * r1;
|
||||
if (!IsReceivedWonderCardHeaderValid(data))
|
||||
return FALSE;
|
||||
DestroyWonderCard();
|
||||
memcpy(&gSaveBlock1Ptr->mysteryEventBuffers.mecard.data, data, sizeof(struct MEWonderCardData));
|
||||
gSaveBlock1Ptr->mysteryEventBuffers.mecard.crc = CalcCRC16WithTable((void *)&gSaveBlock1Ptr->mysteryEventBuffers.mecard.data, sizeof(struct MEWonderCardData));
|
||||
memcpy(&gSaveBlock1Ptr->mysteryGift.card, data, sizeof(struct WonderCard));
|
||||
gSaveBlock1Ptr->mysteryGift.cardCrc = CalcCRC16WithTable((void *)&gSaveBlock1Ptr->mysteryGift.card, sizeof(struct WonderCard));
|
||||
// Annoying hack to match
|
||||
r2 = &gSaveBlock1Ptr->mysteryEventBuffers.buffer_310.data;
|
||||
r1 = &gSaveBlock1Ptr->mysteryEventBuffers.mecard.data;
|
||||
r2->unk_06 = r1->unk_02;
|
||||
r2 = &gSaveBlock1Ptr->mysteryGift.cardMetadata;
|
||||
r1 = &gSaveBlock1Ptr->mysteryGift.card;
|
||||
r2->iconSpecies = r1->iconSpecies;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool32 ValidateReceivedWonderCard(void)
|
||||
{
|
||||
if (gSaveBlock1Ptr->mysteryEventBuffers.mecard.crc != CalcCRC16WithTable((void *)&gSaveBlock1Ptr->mysteryEventBuffers.mecard.data, sizeof(struct MEWonderCardData)))
|
||||
if (gSaveBlock1Ptr->mysteryGift.cardCrc != CalcCRC16WithTable((void *)&gSaveBlock1Ptr->mysteryGift.card, sizeof(struct WonderCard)))
|
||||
return FALSE;
|
||||
if (!IsReceivedWonderCardHeaderValid(&gSaveBlock1Ptr->mysteryEventBuffers.mecard.data))
|
||||
if (!IsReceivedWonderCardHeaderValid(&gSaveBlock1Ptr->mysteryGift.card))
|
||||
return FALSE;
|
||||
if (!ValidateRamScript())
|
||||
return FALSE;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
static bool32 IsReceivedWonderCardHeaderValid(const struct MEWonderCardData * data)
|
||||
static bool32 IsReceivedWonderCardHeaderValid(const struct WonderCard * data)
|
||||
{
|
||||
if (data->cardId == 0)
|
||||
if (data->flagId == 0)
|
||||
return FALSE;
|
||||
if (data->unk_08_0 > 2)
|
||||
if (data->type > 2)
|
||||
return FALSE;
|
||||
if (!(data->shareState == 0 || data->shareState == 1 || data->shareState == 2))
|
||||
if (!(data->sendType == 0 || data->sendType == 1 || data->sendType == 2))
|
||||
return FALSE;
|
||||
if (data->unk_08_2 > 7)
|
||||
if (data->bgType > 7)
|
||||
return FALSE;
|
||||
if (data->recvMonCapacity > 7)
|
||||
if (data->maxStamps > 7)
|
||||
return FALSE;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool32 WonderCard_Test_Unk_08_6(void)
|
||||
{
|
||||
const struct MEWonderCardData * data = &gSaveBlock1Ptr->mysteryEventBuffers.mecard.data;
|
||||
if (data->shareState == 0)
|
||||
const struct WonderCard * data = &gSaveBlock1Ptr->mysteryGift.card;
|
||||
if (data->sendType == 0)
|
||||
return FALSE;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
static void BlankSavedWonderCard(void)
|
||||
{
|
||||
CpuFill32(0, &gSaveBlock1Ptr->mysteryEventBuffers.mecard.data, sizeof(struct MEWonderCardData));
|
||||
gSaveBlock1Ptr->mysteryEventBuffers.mecard.crc = 0;
|
||||
CpuFill32(0, &gSaveBlock1Ptr->mysteryGift.card, sizeof(struct WonderCard));
|
||||
gSaveBlock1Ptr->mysteryGift.cardCrc = 0;
|
||||
}
|
||||
|
||||
static void BlankMEventBuffer2(void)
|
||||
{
|
||||
CpuFill32(0, sav1_get_mevent_buffer_2(), 18 * sizeof(u16));
|
||||
gSaveBlock1Ptr->mysteryEventBuffers.buffer_310.crc = 0;
|
||||
gSaveBlock1Ptr->mysteryGift.cardMetadataCrc = 0;
|
||||
}
|
||||
|
||||
u16 GetWonderCardFlagId(void)
|
||||
{
|
||||
if (ValidateReceivedWonderCard())
|
||||
return gSaveBlock1Ptr->mysteryEventBuffers.mecard.data.cardId;
|
||||
return gSaveBlock1Ptr->mysteryGift.card.flagId;
|
||||
return 0;
|
||||
}
|
||||
|
||||
void MEvent_WonderCardResetUnk08_6(struct MEWonderCardData * buffer)
|
||||
void MEvent_WonderCardResetUnk08_6(struct WonderCard * buffer)
|
||||
{
|
||||
if (buffer->shareState == 1)
|
||||
buffer->shareState = 0;
|
||||
if (buffer->sendType == 1)
|
||||
buffer->sendType = 0;
|
||||
}
|
||||
|
||||
static bool32 IsCardIdInValidRange(u16 a0)
|
||||
@@ -675,26 +675,26 @@ bool32 CheckReceivedGiftFromWonderCard(void)
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
static s32 CountReceivedDistributionMons(const struct MEventBuffer_3430_Sub * data, s32 size)
|
||||
static s32 CountReceivedDistributionMons(const struct WonderCardMetadata * data, s32 size)
|
||||
{
|
||||
s32 r3 = 0;
|
||||
s32 i;
|
||||
for (i = 0; i < size; i++)
|
||||
{
|
||||
if (data->distributedMons[1][i] && data->distributedMons[0][i])
|
||||
if (data->stampData[1][i] && data->stampData[0][i])
|
||||
r3++;
|
||||
}
|
||||
return r3;
|
||||
}
|
||||
|
||||
static bool32 HasPlayerAlreadyReceivedDistributedMon(const struct MEventBuffer_3430_Sub * data1, const u16 * data2, s32 size)
|
||||
static bool32 HasPlayerAlreadyReceivedDistributedMon(const struct WonderCardMetadata * data1, const u16 * data2, s32 size)
|
||||
{
|
||||
s32 i;
|
||||
for (i = 0; i < size; i++)
|
||||
{
|
||||
if (data1->distributedMons[1][i] == data2[1])
|
||||
if (data1->stampData[1][i] == data2[1])
|
||||
return TRUE;
|
||||
if (data1->distributedMons[0][i] == data2[0])
|
||||
if (data1->stampData[0][i] == data2[0])
|
||||
return TRUE;
|
||||
}
|
||||
return FALSE;
|
||||
@@ -713,30 +713,30 @@ static bool32 IsWonderCardSpeciesValid(const u16 * data)
|
||||
|
||||
static s32 ValidateCardAndCountMonsReceived(void)
|
||||
{
|
||||
struct MEWonderCardData * data;
|
||||
struct WonderCard * data;
|
||||
if (!ValidateReceivedWonderCard())
|
||||
return 0;
|
||||
data = &gSaveBlock1Ptr->mysteryEventBuffers.mecard.data;
|
||||
if (data->unk_08_0 != 1)
|
||||
data = &gSaveBlock1Ptr->mysteryGift.card;
|
||||
if (data->type != 1)
|
||||
return 0;
|
||||
return CountReceivedDistributionMons(&gSaveBlock1Ptr->mysteryEventBuffers.buffer_310.data, data->recvMonCapacity);
|
||||
return CountReceivedDistributionMons(&gSaveBlock1Ptr->mysteryGift.cardMetadata, data->maxStamps);
|
||||
}
|
||||
|
||||
bool32 MEvent_ReceiveDistributionMon(const u16 * data)
|
||||
{
|
||||
struct MEWonderCardData * buffer = &gSaveBlock1Ptr->mysteryEventBuffers.mecard.data;
|
||||
s32 capacity = buffer->recvMonCapacity;
|
||||
struct WonderCard * buffer = &gSaveBlock1Ptr->mysteryGift.card;
|
||||
s32 capacity = buffer->maxStamps;
|
||||
s32 i;
|
||||
if (!IsWonderCardSpeciesValid(data))
|
||||
return FALSE;
|
||||
if (HasPlayerAlreadyReceivedDistributedMon(&gSaveBlock1Ptr->mysteryEventBuffers.buffer_310.data, data, capacity))
|
||||
if (HasPlayerAlreadyReceivedDistributedMon(&gSaveBlock1Ptr->mysteryGift.cardMetadata, data, capacity))
|
||||
return FALSE;
|
||||
for (i = 0; i < capacity; i++)
|
||||
{
|
||||
if (gSaveBlock1Ptr->mysteryEventBuffers.buffer_310.data.distributedMons[1][i] == 0 && gSaveBlock1Ptr->mysteryEventBuffers.buffer_310.data.distributedMons[0][i] == 0)
|
||||
if (gSaveBlock1Ptr->mysteryGift.cardMetadata.stampData[1][i] == 0 && gSaveBlock1Ptr->mysteryGift.cardMetadata.stampData[0][i] == 0)
|
||||
{
|
||||
gSaveBlock1Ptr->mysteryEventBuffers.buffer_310.data.distributedMons[1][i] = data[1];
|
||||
gSaveBlock1Ptr->mysteryEventBuffers.buffer_310.data.distributedMons[0][i] = data[0];
|
||||
gSaveBlock1Ptr->mysteryGift.cardMetadata.stampData[1][i] = data[1];
|
||||
gSaveBlock1Ptr->mysteryGift.cardMetadata.stampData[0][i] = data[0];
|
||||
return TRUE;
|
||||
}
|
||||
}
|
||||
@@ -764,16 +764,16 @@ void BuildMEventClientHeader(struct MEventClientHeaderStruct * data)
|
||||
if (ValidateReceivedWonderCard())
|
||||
{
|
||||
// Populate fields
|
||||
data->id = GetSavedWonderCard()->cardId;
|
||||
data->id = GetSavedWonderCard()->flagId;
|
||||
data->unk_20 = *sav1_get_mevent_buffer_2();
|
||||
data->maxDistributionMons = GetSavedWonderCard()->recvMonCapacity;
|
||||
data->maxDistributionMons = GetSavedWonderCard()->maxStamps;
|
||||
}
|
||||
else
|
||||
data->id = 0;
|
||||
|
||||
// Get something
|
||||
for (i = 0; i < 4; i++)
|
||||
data->unk_16[i] = gSaveBlock1Ptr->mysteryEventBuffers.ec_profile_maybe[i];
|
||||
data->unk_16[i] = gSaveBlock1Ptr->mysteryGift.questionnaireWords[i];
|
||||
|
||||
// Get player ID
|
||||
CopyTrainerId(data->playerTrainerId, gSaveBlock2Ptr->playerTrainerId);
|
||||
@@ -841,11 +841,11 @@ u16 sub_81444B0(const struct MEventClientHeaderStruct * a0, u32 command)
|
||||
switch (command)
|
||||
{
|
||||
case 0:
|
||||
return a0->unk_20.linkWins;
|
||||
return a0->unk_20.battlesWon;
|
||||
case 1:
|
||||
return a0->unk_20.linkLosses;
|
||||
return a0->unk_20.battlesLost;
|
||||
case 2:
|
||||
return a0->unk_20.linkTrades;
|
||||
return a0->unk_20.numTrades;
|
||||
case 3:
|
||||
return GetNumReceivedDistributionMons(a0);
|
||||
case 4:
|
||||
@@ -859,20 +859,20 @@ u16 sub_81444B0(const struct MEventClientHeaderStruct * a0, u32 command)
|
||||
// Increments an interaction count in the save block
|
||||
static void IncrementBattleCardCount(u32 command)
|
||||
{
|
||||
struct MEWonderCardData * data = &gSaveBlock1Ptr->mysteryEventBuffers.mecard.data;
|
||||
if (data->unk_08_0 == 2)
|
||||
struct WonderCard * data = &gSaveBlock1Ptr->mysteryGift.card;
|
||||
if (data->type == 2)
|
||||
{
|
||||
u16 * dest = NULL;
|
||||
switch (command)
|
||||
{
|
||||
case 0:
|
||||
dest = &gSaveBlock1Ptr->mysteryEventBuffers.buffer_310.data.linkWins;
|
||||
dest = &gSaveBlock1Ptr->mysteryGift.cardMetadata.battlesWon;
|
||||
break;
|
||||
case 1:
|
||||
dest = &gSaveBlock1Ptr->mysteryEventBuffers.buffer_310.data.linkLosses;
|
||||
dest = &gSaveBlock1Ptr->mysteryGift.cardMetadata.battlesLost;
|
||||
break;
|
||||
case 2:
|
||||
dest = &gSaveBlock1Ptr->mysteryEventBuffers.buffer_310.data.linkTrades;
|
||||
dest = &gSaveBlock1Ptr->mysteryGift.cardMetadata.numTrades;
|
||||
break;
|
||||
case 3:
|
||||
break;
|
||||
@@ -896,46 +896,46 @@ u16 MEvent_GetBattleCardCount(u32 command)
|
||||
{
|
||||
case 0:
|
||||
{
|
||||
struct MEWonderCardData * data = &gSaveBlock1Ptr->mysteryEventBuffers.mecard.data;
|
||||
if (data->unk_08_0 == 2)
|
||||
struct WonderCard * data = &gSaveBlock1Ptr->mysteryGift.card;
|
||||
if (data->type == 2)
|
||||
{
|
||||
struct MEventBuffer_3430_Sub * buffer = &gSaveBlock1Ptr->mysteryEventBuffers.buffer_310.data;
|
||||
return buffer->linkWins;
|
||||
struct WonderCardMetadata * buffer = &gSaveBlock1Ptr->mysteryGift.cardMetadata;
|
||||
return buffer->battlesWon;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case 1:
|
||||
{
|
||||
struct MEWonderCardData * data = &gSaveBlock1Ptr->mysteryEventBuffers.mecard.data;
|
||||
if (data->unk_08_0 == 2)
|
||||
struct WonderCard * data = &gSaveBlock1Ptr->mysteryGift.card;
|
||||
if (data->type == 2)
|
||||
{
|
||||
struct MEventBuffer_3430_Sub * buffer = &gSaveBlock1Ptr->mysteryEventBuffers.buffer_310.data;
|
||||
return buffer->linkLosses;
|
||||
struct WonderCardMetadata * buffer = &gSaveBlock1Ptr->mysteryGift.cardMetadata;
|
||||
return buffer->battlesLost;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case 2:
|
||||
{
|
||||
struct MEWonderCardData * data = &gSaveBlock1Ptr->mysteryEventBuffers.mecard.data;
|
||||
if (data->unk_08_0 == 2)
|
||||
struct WonderCard * data = &gSaveBlock1Ptr->mysteryGift.card;
|
||||
if (data->type == 2)
|
||||
{
|
||||
struct MEventBuffer_3430_Sub * buffer = &gSaveBlock1Ptr->mysteryEventBuffers.buffer_310.data;
|
||||
return buffer->linkTrades;
|
||||
struct WonderCardMetadata * buffer = &gSaveBlock1Ptr->mysteryGift.cardMetadata;
|
||||
return buffer->numTrades;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case 3:
|
||||
{
|
||||
struct MEWonderCardData * data = &gSaveBlock1Ptr->mysteryEventBuffers.mecard.data;
|
||||
if (data->unk_08_0 == 1)
|
||||
struct WonderCard * data = &gSaveBlock1Ptr->mysteryGift.card;
|
||||
if (data->type == 1)
|
||||
return ValidateCardAndCountMonsReceived();
|
||||
break;
|
||||
}
|
||||
case 4:
|
||||
{
|
||||
struct MEWonderCardData * data = &gSaveBlock1Ptr->mysteryEventBuffers.mecard.data;
|
||||
if (data->unk_08_0 == 1)
|
||||
return data->recvMonCapacity;
|
||||
struct WonderCard * data = &gSaveBlock1Ptr->mysteryGift.card;
|
||||
if (data->type == 1)
|
||||
return data->maxStamps;
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -948,14 +948,14 @@ void ResetReceivedWonderCardFlag(void)
|
||||
sReceivedWonderCardIsValid = FALSE;
|
||||
}
|
||||
|
||||
bool32 MEventHandleReceivedWonderCard(u16 cardId)
|
||||
bool32 MEventHandleReceivedWonderCard(u16 flagId)
|
||||
{
|
||||
sReceivedWonderCardIsValid = FALSE;
|
||||
if (cardId == 0)
|
||||
if (flagId == 0)
|
||||
return FALSE;
|
||||
if (!ValidateReceivedWonderCard())
|
||||
return FALSE;
|
||||
if (gSaveBlock1Ptr->mysteryEventBuffers.mecard.data.cardId != cardId)
|
||||
if (gSaveBlock1Ptr->mysteryGift.card.flagId != flagId)
|
||||
return FALSE;
|
||||
sReceivedWonderCardIsValid = TRUE;
|
||||
return TRUE;
|
||||
@@ -968,13 +968,13 @@ void MEvent_RecordIdOfWonderCardSenderByEventType(u32 eventId, u32 trainerId)
|
||||
switch (eventId)
|
||||
{
|
||||
case 2: // trade
|
||||
RecordIdOfWonderCardSender(2, trainerId, gSaveBlock1Ptr->mysteryEventBuffers.unk_344[1], 5);
|
||||
RecordIdOfWonderCardSender(2, trainerId, gSaveBlock1Ptr->mysteryGift.trainerIds[1], 5);
|
||||
break;
|
||||
case 0: // link win
|
||||
RecordIdOfWonderCardSender(0, trainerId, gSaveBlock1Ptr->mysteryEventBuffers.unk_344[0], 5);
|
||||
RecordIdOfWonderCardSender(0, trainerId, gSaveBlock1Ptr->mysteryGift.trainerIds[0], 5);
|
||||
break;
|
||||
case 1: // link loss
|
||||
RecordIdOfWonderCardSender(1, trainerId, gSaveBlock1Ptr->mysteryEventBuffers.unk_344[0], 5);
|
||||
RecordIdOfWonderCardSender(1, trainerId, gSaveBlock1Ptr->mysteryGift.trainerIds[0], 5);
|
||||
break;
|
||||
default:
|
||||
AGB_ASSERT_EX(0, ABSPATH("mevent.c"), 988);
|
||||
@@ -984,7 +984,7 @@ void MEvent_RecordIdOfWonderCardSenderByEventType(u32 eventId, u32 trainerId)
|
||||
|
||||
static void BlankBuffer344(void)
|
||||
{
|
||||
CpuFill32(0, gSaveBlock1Ptr->mysteryEventBuffers.unk_344, sizeof(gSaveBlock1Ptr->mysteryEventBuffers.unk_344));
|
||||
CpuFill32(0, gSaveBlock1Ptr->mysteryGift.trainerIds, sizeof(gSaveBlock1Ptr->mysteryGift.trainerIds));
|
||||
}
|
||||
|
||||
// Looks up trainerId in an array idsList with count elements.
|
||||
|
||||
+4
-4
@@ -45,8 +45,8 @@ static void mevent_srv_init_common(struct mevent_srv_common * svr, const void *
|
||||
{
|
||||
svr->unk_00 = 0;
|
||||
svr->mainseqno = 0;
|
||||
svr->card = AllocZeroed(sizeof(struct MEWonderCardData));
|
||||
svr->news = AllocZeroed(sizeof(struct MEWonderNewsData));
|
||||
svr->card = AllocZeroed(sizeof(struct WonderCard));
|
||||
svr->news = AllocZeroed(sizeof(struct WonderNews));
|
||||
svr->recvBuffer = AllocZeroed(ME_SEND_BUF_SIZE);
|
||||
svr->mevent_unk1442cc = AllocZeroed(sizeof(struct MEventClientHeaderStruct));
|
||||
svr->cmdBuffer = cmdBuffer;
|
||||
@@ -188,11 +188,11 @@ static u32 common_mainseq_4(struct mevent_srv_common * svr)
|
||||
break;
|
||||
case 14:
|
||||
AGB_ASSERT_EX(cmd->flag == FALSE, ABSPATH("mevent_server.c"), 432);
|
||||
mevent_srv_common_init_send(svr, 0x17, mevent_first_if_not_null_else_second(cmd->parameter, svr->news), sizeof(struct MEWonderNewsData));
|
||||
mevent_srv_common_init_send(svr, 0x17, mevent_first_if_not_null_else_second(cmd->parameter, svr->news), sizeof(struct WonderNews));
|
||||
break;
|
||||
case 13:
|
||||
AGB_ASSERT_EX(cmd->flag == FALSE, ABSPATH("mevent_server.c"), 438);
|
||||
mevent_srv_common_init_send(svr, 0x16, mevent_first_if_not_null_else_second(cmd->parameter, svr->card), sizeof(struct MEWonderCardData));
|
||||
mevent_srv_common_init_send(svr, 0x16, mevent_first_if_not_null_else_second(cmd->parameter, svr->card), sizeof(struct WonderCard));
|
||||
break;
|
||||
case 16:
|
||||
AGB_ASSERT_EX(cmd->flag == FALSE, ABSPATH("mevent_server.c"), 444);
|
||||
|
||||
+39
-39
@@ -17,8 +17,8 @@ struct MEventScreenMgr_02DC
|
||||
|
||||
struct MEventScreenMgr
|
||||
{
|
||||
/*0000*/ struct MEWonderCardData wonderCard;
|
||||
/*014c*/ struct MEventBuffer_3430_Sub buff3430Sub;
|
||||
/*0000*/ struct WonderCard wonderCard;
|
||||
/*014c*/ struct WonderCardMetadata buff3430Sub;
|
||||
/*0170*/ const struct UnkStruct_8467FB8 * bgSpec;
|
||||
/*0174*/ u8 state;
|
||||
/*0175*/ u8 recordIdx;
|
||||
@@ -134,7 +134,7 @@ static const struct UnkStruct_8467FB8 sCardGfxPtrs[8] = {
|
||||
{1, 0, 0, 7, sCard7Gfx, sCard7Map, sCard7Pal}
|
||||
};
|
||||
|
||||
bool32 InitWonderCardResources(struct MEWonderCardData * card, struct MEventBuffer_3430_Sub * b3430sub)
|
||||
bool32 InitWonderCardResources(struct WonderCard * card, struct WonderCardMetadata * b3430sub)
|
||||
{
|
||||
if (card == NULL || b3430sub == NULL)
|
||||
return FALSE;
|
||||
@@ -143,13 +143,13 @@ bool32 InitWonderCardResources(struct MEWonderCardData * card, struct MEventBuff
|
||||
return FALSE;
|
||||
sMEventScreenData->wonderCard = *card;
|
||||
sMEventScreenData->buff3430Sub = *b3430sub;
|
||||
if (sMEventScreenData->wonderCard.unk_08_2 >= NELEMS(sCardGfxPtrs))
|
||||
sMEventScreenData->wonderCard.unk_08_2 = 0;
|
||||
if (sMEventScreenData->wonderCard.unk_08_0 >= NELEMS(sTextYCoords))
|
||||
sMEventScreenData->wonderCard.unk_08_0 = 0;
|
||||
if (sMEventScreenData->wonderCard.recvMonCapacity > NELEMS(sMEventScreenData->cardIconAndShadowSprites))
|
||||
sMEventScreenData->wonderCard.recvMonCapacity = 0;
|
||||
sMEventScreenData->bgSpec = &sCardGfxPtrs[sMEventScreenData->wonderCard.unk_08_2];
|
||||
if (sMEventScreenData->wonderCard.bgType >= NELEMS(sCardGfxPtrs))
|
||||
sMEventScreenData->wonderCard.bgType = 0;
|
||||
if (sMEventScreenData->wonderCard.type >= NELEMS(sTextYCoords))
|
||||
sMEventScreenData->wonderCard.type = 0;
|
||||
if (sMEventScreenData->wonderCard.maxStamps > NELEMS(sMEventScreenData->cardIconAndShadowSprites))
|
||||
sMEventScreenData->wonderCard.maxStamps = 0;
|
||||
sMEventScreenData->bgSpec = &sCardGfxPtrs[sMEventScreenData->wonderCard.bgType];
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
@@ -282,24 +282,24 @@ static void sub_8145A98(void)
|
||||
u16 r6;
|
||||
u16 sp0[3] = {0, 0, 0};
|
||||
|
||||
memcpy(sMEventScreenData->title, sMEventScreenData->wonderCard.unk_0A, 40);
|
||||
memcpy(sMEventScreenData->title, sMEventScreenData->wonderCard.titleText, 40);
|
||||
sMEventScreenData->title[40] = EOS;
|
||||
memcpy(sMEventScreenData->subtitle, sMEventScreenData->wonderCard.unk_32, 40);
|
||||
memcpy(sMEventScreenData->subtitle, sMEventScreenData->wonderCard.subtitleText, 40);
|
||||
sMEventScreenData->subtitle[40] = EOS;
|
||||
if (sMEventScreenData->wonderCard.unk_04 > 999999)
|
||||
sMEventScreenData->wonderCard.unk_04 = 999999;
|
||||
ConvertIntToDecimalStringN(sMEventScreenData->unk_01DD, sMEventScreenData->wonderCard.unk_04, STR_CONV_MODE_LEFT_ALIGN, 6);
|
||||
if (sMEventScreenData->wonderCard.idNumber > 999999)
|
||||
sMEventScreenData->wonderCard.idNumber = 999999;
|
||||
ConvertIntToDecimalStringN(sMEventScreenData->unk_01DD, sMEventScreenData->wonderCard.idNumber, STR_CONV_MODE_LEFT_ALIGN, 6);
|
||||
for (i = 0; i < 4; i++)
|
||||
{
|
||||
memcpy(sMEventScreenData->mainMessageLines[i], sMEventScreenData->wonderCard.unk_5A[i], 40);
|
||||
memcpy(sMEventScreenData->mainMessageLines[i], sMEventScreenData->wonderCard.bodyText[i], 40);
|
||||
sMEventScreenData->mainMessageLines[i][40] = EOS;
|
||||
}
|
||||
memcpy(sMEventScreenData->instructionsLine1, sMEventScreenData->wonderCard.unk_FA, 40);
|
||||
memcpy(sMEventScreenData->instructionsLine1, sMEventScreenData->wonderCard.footerLine1Text, 40);
|
||||
sMEventScreenData->instructionsLine1[40] = EOS;
|
||||
switch (sMEventScreenData->wonderCard.unk_08_0)
|
||||
switch (sMEventScreenData->wonderCard.type)
|
||||
{
|
||||
case 0:
|
||||
memcpy(sMEventScreenData->instructionsLine2, sMEventScreenData->wonderCard.unk_122, 40);
|
||||
memcpy(sMEventScreenData->instructionsLine2, sMEventScreenData->wonderCard.footerLine2Text, 40);
|
||||
sMEventScreenData->instructionsLine2[40] = EOS;
|
||||
break;
|
||||
case 1:
|
||||
@@ -307,9 +307,9 @@ static void sub_8145A98(void)
|
||||
break;
|
||||
case 2:
|
||||
sMEventScreenData->instructionsLine2[00] = EOS;
|
||||
sp0[0] = sMEventScreenData->buff3430Sub.linkWins < 999 ? sMEventScreenData->buff3430Sub.linkWins : 999;
|
||||
sp0[1] = sMEventScreenData->buff3430Sub.linkLosses < 999 ? sMEventScreenData->buff3430Sub.linkLosses : 999;
|
||||
sp0[2] = sMEventScreenData->buff3430Sub.linkTrades < 999 ? sMEventScreenData->buff3430Sub.linkTrades : 999;
|
||||
sp0[0] = sMEventScreenData->buff3430Sub.battlesWon < 999 ? sMEventScreenData->buff3430Sub.battlesWon : 999;
|
||||
sp0[1] = sMEventScreenData->buff3430Sub.battlesLost < 999 ? sMEventScreenData->buff3430Sub.battlesLost : 999;
|
||||
sp0[2] = sMEventScreenData->buff3430Sub.numTrades < 999 ? sMEventScreenData->buff3430Sub.numTrades : 999;
|
||||
for (i = 0; i < 8; i++)
|
||||
{
|
||||
memset(sMEventScreenData->recordStrings[i].numberTxt, EOS, 4);
|
||||
@@ -317,14 +317,14 @@ static void sub_8145A98(void)
|
||||
}
|
||||
for (i = 0, r6 = 0; i < 40; i++)
|
||||
{
|
||||
if (sMEventScreenData->wonderCard.unk_122[i] != CHAR_DYNAMIC_PLACEHOLDER)
|
||||
if (sMEventScreenData->wonderCard.footerLine2Text[i] != CHAR_DYNAMIC_PLACEHOLDER)
|
||||
{
|
||||
sMEventScreenData->recordStrings[sMEventScreenData->recordIdx].nameTxt[r6] = sMEventScreenData->wonderCard.unk_122[i];
|
||||
sMEventScreenData->recordStrings[sMEventScreenData->recordIdx].nameTxt[r6] = sMEventScreenData->wonderCard.footerLine2Text[i];
|
||||
r6++;
|
||||
}
|
||||
else
|
||||
{
|
||||
u8 r3 = sMEventScreenData->wonderCard.unk_122[i + 1];
|
||||
u8 r3 = sMEventScreenData->wonderCard.footerLine2Text[i + 1];
|
||||
if (r3 > 2)
|
||||
{
|
||||
i += 2;
|
||||
@@ -332,7 +332,7 @@ static void sub_8145A98(void)
|
||||
else
|
||||
{
|
||||
ConvertIntToDecimalStringN(sMEventScreenData->recordStrings[sMEventScreenData->recordIdx].numberTxt, sp0[r3], STR_CONV_MODE_LEADING_ZEROS, 3);
|
||||
sMEventScreenData->recordStrings[sMEventScreenData->recordIdx].nDigits = sMEventScreenData->wonderCard.unk_122[i + 2];
|
||||
sMEventScreenData->recordStrings[sMEventScreenData->recordIdx].nDigits = sMEventScreenData->wonderCard.footerLine2Text[i + 2];
|
||||
sMEventScreenData->recordIdx++;
|
||||
if (sMEventScreenData->recordIdx > 7)
|
||||
break;
|
||||
@@ -360,7 +360,7 @@ static void sub_8145D18(u8 whichWindow)
|
||||
if (x < 0)
|
||||
x = 0;
|
||||
AddTextPrinterParameterized3(windowId, 3, x, 17, gUnknown_8467068[sMEventScreenData->bgSpec->textPal1], 0, sMEventScreenData->subtitle);
|
||||
if (sMEventScreenData->wonderCard.unk_04 != 0)
|
||||
if (sMEventScreenData->wonderCard.idNumber != 0)
|
||||
{
|
||||
AddTextPrinterParameterized3(windowId, 2, 166, 17, gUnknown_8467068[sMEventScreenData->bgSpec->textPal1], 0, sMEventScreenData->unk_01DD);
|
||||
}
|
||||
@@ -373,15 +373,15 @@ static void sub_8145D18(u8 whichWindow)
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
AddTextPrinterParameterized3(windowId, 3, 0, sTextYCoords[sMEventScreenData->wonderCard.unk_08_0], gUnknown_8467068[sMEventScreenData->bgSpec->textPal3], 0, sMEventScreenData->instructionsLine1);
|
||||
if (sMEventScreenData->wonderCard.unk_08_0 != 2)
|
||||
AddTextPrinterParameterized3(windowId, 3, 0, sTextYCoords[sMEventScreenData->wonderCard.type], gUnknown_8467068[sMEventScreenData->bgSpec->textPal3], 0, sMEventScreenData->instructionsLine1);
|
||||
if (sMEventScreenData->wonderCard.type != 2)
|
||||
{
|
||||
AddTextPrinterParameterized3(windowId, 3, 0, 16 + sTextYCoords[sMEventScreenData->wonderCard.unk_08_0], gUnknown_8467068[sMEventScreenData->bgSpec->textPal3], 0, sMEventScreenData->instructionsLine2);
|
||||
AddTextPrinterParameterized3(windowId, 3, 0, 16 + sTextYCoords[sMEventScreenData->wonderCard.type], gUnknown_8467068[sMEventScreenData->bgSpec->textPal3], 0, sMEventScreenData->instructionsLine2);
|
||||
}
|
||||
else
|
||||
{
|
||||
s32 x = 0;
|
||||
s32 y = sTextYCoords[sMEventScreenData->wonderCard.unk_08_0] + 16;
|
||||
s32 y = sTextYCoords[sMEventScreenData->wonderCard.type] + 16;
|
||||
s32 spacing = GetFontAttribute(3, 2);
|
||||
for (; sp0C < sMEventScreenData->recordIdx; sp0C++)
|
||||
{
|
||||
@@ -403,23 +403,23 @@ static void sub_8146060(void)
|
||||
{
|
||||
u8 r7 = 0;
|
||||
sMEventScreenData->monIconId = 0xFF;
|
||||
if (sMEventScreenData->buff3430Sub.unk_06 != SPECIES_NONE)
|
||||
if (sMEventScreenData->buff3430Sub.iconSpecies != SPECIES_NONE)
|
||||
{
|
||||
sMEventScreenData->monIconId = CreateMonIcon_HandleDeoxys(MailSpeciesToIconSpecies(sMEventScreenData->buff3430Sub.unk_06), SpriteCallbackDummy, 0xDC, 0x14, 0, FALSE);
|
||||
sMEventScreenData->monIconId = CreateMonIcon_HandleDeoxys(MailSpeciesToIconSpecies(sMEventScreenData->buff3430Sub.iconSpecies), SpriteCallbackDummy, 0xDC, 0x14, 0, FALSE);
|
||||
gSprites[sMEventScreenData->monIconId].oam.priority = 2;
|
||||
}
|
||||
if (sMEventScreenData->wonderCard.recvMonCapacity != 0 && sMEventScreenData->wonderCard.unk_08_0 == 1)
|
||||
if (sMEventScreenData->wonderCard.maxStamps != 0 && sMEventScreenData->wonderCard.type == 1)
|
||||
{
|
||||
LoadCompressedSpriteSheetUsingHeap(&sShadowSpriteSheet);
|
||||
LoadSpritePalette(&sShadowSpritePalettes[sMEventScreenData->bgSpec->index]);
|
||||
for (; r7 < sMEventScreenData->wonderCard.recvMonCapacity; r7++)
|
||||
for (; r7 < sMEventScreenData->wonderCard.maxStamps; r7++)
|
||||
{
|
||||
sMEventScreenData->cardIconAndShadowSprites[r7][0] = 0xFF;
|
||||
sMEventScreenData->cardIconAndShadowSprites[r7][1] = 0xFF;
|
||||
sMEventScreenData->cardIconAndShadowSprites[r7][0] = CreateSprite(&sShadowSpriteTemplate, 0xd8 - 32 * r7, 0x90, 8);
|
||||
if (sMEventScreenData->buff3430Sub.distributedMons[0][r7] != 0)
|
||||
if (sMEventScreenData->buff3430Sub.stampData[0][r7] != 0)
|
||||
{
|
||||
sMEventScreenData->cardIconAndShadowSprites[r7][1] = CreateMonIcon_HandleDeoxys(MailSpeciesToIconSpecies(sMEventScreenData->buff3430Sub.distributedMons[0][r7]), SpriteCallbackDummy, 0xd8 - 32 * r7, 0x88, 0, 0);
|
||||
sMEventScreenData->cardIconAndShadowSprites[r7][1] = CreateMonIcon_HandleDeoxys(MailSpeciesToIconSpecies(sMEventScreenData->buff3430Sub.stampData[0][r7]), SpriteCallbackDummy, 0xd8 - 32 * r7, 0x88, 0, 0);
|
||||
gSprites[sMEventScreenData->cardIconAndShadowSprites[r7][1]].oam.priority = 2;
|
||||
}
|
||||
}
|
||||
@@ -431,9 +431,9 @@ static void sub_81461D8(void)
|
||||
u8 r6 = 0;
|
||||
if (sMEventScreenData->monIconId != 0xFF)
|
||||
DestroyMonIcon(&gSprites[sMEventScreenData->monIconId]);
|
||||
if (sMEventScreenData->wonderCard.recvMonCapacity != 0 && sMEventScreenData->wonderCard.unk_08_0 == 1)
|
||||
if (sMEventScreenData->wonderCard.maxStamps != 0 && sMEventScreenData->wonderCard.type == 1)
|
||||
{
|
||||
for (; r6 < sMEventScreenData->wonderCard.recvMonCapacity; r6++)
|
||||
for (; r6 < sMEventScreenData->wonderCard.maxStamps; r6++)
|
||||
{
|
||||
if (sMEventScreenData->cardIconAndShadowSprites[r6][0] != 0xFF)
|
||||
{
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
|
||||
struct UnkStruct_203F3CC
|
||||
{
|
||||
/*0000*/ struct MEWonderNewsData wonderNews;
|
||||
/*0000*/ struct WonderNews wonderNews;
|
||||
/*01bc*/ const struct UnkStruct_8467FB8 * bgSpec;
|
||||
/*01c0*/ u8 verticalScrollDisabled:1;
|
||||
u8 state:7;
|
||||
@@ -72,7 +72,7 @@ static const struct UnkStruct_8467FB8 sBgSpecs[] = {
|
||||
{1, 0, 0, 0, sNews7Gfx, sNews7Map, sNews7Pal}
|
||||
};
|
||||
|
||||
bool32 InitWonderNewsResources(const struct MEWonderNewsData * news)
|
||||
bool32 InitWonderNewsResources(const struct WonderNews * news)
|
||||
{
|
||||
if (news == NULL)
|
||||
return FALSE;
|
||||
@@ -80,9 +80,9 @@ bool32 InitWonderNewsResources(const struct MEWonderNewsData * news)
|
||||
if (sWork == NULL)
|
||||
return FALSE;
|
||||
sWork->wonderNews = *news;
|
||||
if (sWork->wonderNews.unk_03 >= NELEMS(sBgSpecs))
|
||||
sWork->wonderNews.unk_03 = 0;
|
||||
sWork->bgSpec = &sBgSpecs[sWork->wonderNews.unk_03];
|
||||
if (sWork->wonderNews.bgType >= NELEMS(sBgSpecs))
|
||||
sWork->wonderNews.bgType = 0;
|
||||
sWork->bgSpec = &sBgSpecs[sWork->wonderNews.bgType];
|
||||
sWork->menuIndicatorsId = 0xFF;
|
||||
return TRUE;
|
||||
}
|
||||
@@ -297,11 +297,11 @@ u32 MENews_GetInput(u16 input)
|
||||
static void sub_8146980(void)
|
||||
{
|
||||
u8 i = 0;
|
||||
memcpy(sWork->title, sWork->wonderNews.unk_04, 40);
|
||||
memcpy(sWork->title, sWork->wonderNews.titleText, 40);
|
||||
sWork->title[40] = EOS;
|
||||
for (; i < 10; ++i)
|
||||
{
|
||||
memcpy(sWork->messages[i], sWork->wonderNews.unk_2C[i], 40);
|
||||
memcpy(sWork->messages[i], sWork->wonderNews.bodyText[i], 40);
|
||||
sWork->messages[i][40] = EOS;
|
||||
if (i > 7 && sWork->messages[i][0] != EOS)
|
||||
++sWork->numMails;
|
||||
|
||||
@@ -233,7 +233,7 @@ bool8 MEScrCmd_setrecordmixinggift(struct ScriptContext *ctx)
|
||||
|
||||
bool8 MEScrCmd_givepokemon(struct ScriptContext *ctx)
|
||||
{
|
||||
struct MailStruct mail;
|
||||
struct Mail mail;
|
||||
struct Pokemon pokemon;
|
||||
u16 species;
|
||||
u16 heldItem;
|
||||
@@ -257,7 +257,7 @@ bool8 MEScrCmd_givepokemon(struct ScriptContext *ctx)
|
||||
else
|
||||
{
|
||||
memcpy(&gPlayerParty[5], pokemonPtr, sizeof(struct Pokemon));
|
||||
memcpy(&mail, mailPtr, sizeof(struct MailStruct));
|
||||
memcpy(&mail, mailPtr, sizeof(struct Mail));
|
||||
|
||||
if (species != SPECIES_EGG)
|
||||
{
|
||||
|
||||
+1
-1
@@ -2003,7 +2003,7 @@ static const struct NamingScreenTemplate sMonNamingScreenTemplate = {
|
||||
|
||||
static const struct NamingScreenTemplate sRivalNamingScreenTemplate = {
|
||||
.copyExistingString = FALSE,
|
||||
.maxChars = OT_NAME_LENGTH,
|
||||
.maxChars = PLAYER_NAME_LENGTH,
|
||||
.iconFunction = 4,
|
||||
.addGenderIcon = 0,
|
||||
.initialPage = KBPAGE_LETTERS_UPPER,
|
||||
|
||||
+2
-2
@@ -118,8 +118,8 @@ void NewGameInitData(void)
|
||||
ClearMailData();
|
||||
gSaveBlock2Ptr->specialSaveWarpFlags = 0;
|
||||
gSaveBlock2Ptr->gcnLinkFlags = 0;
|
||||
gSaveBlock2Ptr->field_AC = 1;
|
||||
gSaveBlock2Ptr->field_AD = 0;
|
||||
gSaveBlock2Ptr->unkFlag1 = TRUE;
|
||||
gSaveBlock2Ptr->unkFlag2 = FALSE;
|
||||
InitPlayerTrainerId();
|
||||
PlayTimeCounter_Reset();
|
||||
ClearPokedexFlags();
|
||||
|
||||
+2
-2
@@ -1675,7 +1675,7 @@ void CB2_ReturnToFieldFromDiploma(void)
|
||||
|
||||
static void FieldCB_ShowMapNameOnContinue(void)
|
||||
{
|
||||
if (SHOW_MAP_NAME_ENABLED)
|
||||
if (gMapHeader.showMapName == TRUE)
|
||||
ShowMapNamePopup(FALSE);
|
||||
FieldCB_WarpExitFadeFromBlack();
|
||||
}
|
||||
@@ -1909,7 +1909,7 @@ static bool32 load_map_stuff(u8 *state, bool32 a1)
|
||||
MapPreview_LoadGfx(gMapHeader.regionMapSectionId);
|
||||
MapPreview_StartForestTransition(gMapHeader.regionMapSectionId);
|
||||
}
|
||||
else if (SHOW_MAP_NAME_ENABLED)
|
||||
else if (gMapHeader.showMapName == TRUE)
|
||||
{
|
||||
ShowMapNamePopup(FALSE);
|
||||
}
|
||||
|
||||
+1
-1
@@ -5662,7 +5662,7 @@ void ChooseMonToGiveMailFromMailbox(void)
|
||||
static void TryGiveMailToSelectedMon(u8 taskId)
|
||||
{
|
||||
struct Pokemon *mon = &gPlayerParty[gPartyMenu.slotId];
|
||||
struct MailStruct *mail;
|
||||
struct Mail *mail;
|
||||
|
||||
gPartyMenuUseExitCallback = FALSE;
|
||||
mail = &gSaveBlock1Ptr->mail[gPlayerPcMenuManager.cursorPos + 6 + gPlayerPcMenuManager.itemsAbove];
|
||||
|
||||
+2
-2
@@ -442,7 +442,7 @@ static void PCMailCompaction(void)
|
||||
{
|
||||
if (gSaveBlock1Ptr->mail[i].itemId == ITEM_NONE)
|
||||
{
|
||||
struct MailStruct mail = gSaveBlock1Ptr->mail[i];
|
||||
struct Mail mail = gSaveBlock1Ptr->mail[i];
|
||||
gSaveBlock1Ptr->mail[i] = gSaveBlock1Ptr->mail[j];
|
||||
gSaveBlock1Ptr->mail[j] = mail;
|
||||
}
|
||||
@@ -629,7 +629,7 @@ static void Task_MoveToBagYesNoMenuHandleInput(u8 taskId)
|
||||
|
||||
static void Task_TryPutMailInBag_DestroyMsgIfSuccessful(u8 taskId)
|
||||
{
|
||||
struct MailStruct * mail = &SELECTED_MAIL;
|
||||
struct Mail * mail = &SELECTED_MAIL;
|
||||
if (!AddBagItem(mail->itemId, 1))
|
||||
{
|
||||
DisplayItemMessageOnField(taskId, 2, gText_BagIsFull, Task_PlayerPcExitMailSubmenu);
|
||||
|
||||
@@ -36,12 +36,6 @@
|
||||
#include "constants/hold_effects.h"
|
||||
#include "constants/battle_move_effects.h"
|
||||
|
||||
// Extracts the upper 16 bits of a 32-bit number
|
||||
#define HIHALF(n) (((n) & 0xFFFF0000) >> 16)
|
||||
|
||||
// Extracts the lower 16 bits of a 32-bit number
|
||||
#define LOHALF(n) ((n) & 0xFFFF)
|
||||
|
||||
#define SPECIES_TO_HOENN(name) [SPECIES_##name - 1] = HOENN_DEX_##name
|
||||
#define SPECIES_TO_NATIONAL(name) [SPECIES_##name - 1] = NATIONAL_DEX_##name
|
||||
#define HOENN_TO_NATIONAL(name) [HOENN_DEX_##name - 1] = NATIONAL_DEX_##name
|
||||
|
||||
+10
-10
@@ -10,25 +10,25 @@ static void Task_ShowPokemonJumpRecords(u8 taskId);
|
||||
static void TruncateToFirstWordOnly(u8 *str);
|
||||
static void sub_814B5C4(u16 windowId);
|
||||
|
||||
static struct PokemonJumpResults *sub_814B46C(void)
|
||||
static struct PokemonJumpRecords *sub_814B46C(void)
|
||||
{
|
||||
return &gSaveBlock2Ptr->pokeJump;
|
||||
}
|
||||
|
||||
void ResetPokeJumpResults(void)
|
||||
{
|
||||
struct PokemonJumpResults *pokeJump = sub_814B46C();
|
||||
struct PokemonJumpRecords *pokeJump = sub_814B46C();
|
||||
pokeJump->jumpsInRow = 0;
|
||||
pokeJump->bestJumpScore = 0;
|
||||
pokeJump->excellentsInRow = 0;
|
||||
pokeJump->field6 = 0;
|
||||
pokeJump->field8 = 0;
|
||||
pokeJump->field2 = 0;
|
||||
pokeJump->gamesWithMaxPlayers = 0;
|
||||
pokeJump->unused2 = 0;
|
||||
pokeJump->unused1 = 0;
|
||||
}
|
||||
|
||||
bool32 sub_814B494(u32 jumpScore, u16 jumpsInRow, u16 excellentsInRow)
|
||||
{
|
||||
struct PokemonJumpResults *pokeJump = sub_814B46C();
|
||||
struct PokemonJumpRecords *pokeJump = sub_814B46C();
|
||||
bool32 ret = FALSE;
|
||||
|
||||
if (pokeJump->bestJumpScore < jumpScore && jumpScore <= 99990)
|
||||
@@ -43,9 +43,9 @@ bool32 sub_814B494(u32 jumpScore, u16 jumpsInRow, u16 excellentsInRow)
|
||||
|
||||
void sub_814B4E8(void)
|
||||
{
|
||||
struct PokemonJumpResults *pokeJump = sub_814B46C();
|
||||
if (pokeJump->field6 < 9999)
|
||||
pokeJump->field6++;
|
||||
struct PokemonJumpRecords *pokeJump = sub_814B46C();
|
||||
if (pokeJump->gamesWithMaxPlayers < 9999)
|
||||
pokeJump->gamesWithMaxPlayers++;
|
||||
}
|
||||
|
||||
void ShowPokemonJumpRecords(void)
|
||||
@@ -106,7 +106,7 @@ static void sub_814B5C4(u16 windowId)
|
||||
{
|
||||
int i, x;
|
||||
int results[3];
|
||||
struct PokemonJumpResults *pokeJump = sub_814B46C();
|
||||
struct PokemonJumpRecords *pokeJump = sub_814B46C();
|
||||
u8 strbuf[8];
|
||||
results[0] = pokeJump->jumpsInRow;
|
||||
results[1] = pokeJump->bestJumpScore;
|
||||
|
||||
@@ -2126,7 +2126,7 @@ static void BufferMonInfo(void)
|
||||
StringCopy(sMonSummaryScreen->summary.genderSymbolStrBuf, gString_Dummy);
|
||||
|
||||
GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_OT_NAME, tempStr);
|
||||
StringCopyN_Multibyte(sMonSummaryScreen->summary.otNameStrBuf, tempStr, OT_NAME_LENGTH);
|
||||
StringCopyN_Multibyte(sMonSummaryScreen->summary.otNameStrBuf, tempStr, PLAYER_NAME_LENGTH);
|
||||
|
||||
ConvertInternationalString(sMonSummaryScreen->summary.otNameStrBuf, GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_LANGUAGE));
|
||||
|
||||
|
||||
+4
-4
@@ -79,7 +79,7 @@ enum TradeStatusMsg
|
||||
|
||||
static EWRAM_DATA u8 *sSpriteTextTileBuffer = NULL;
|
||||
static EWRAM_DATA u8 *sSpriteTextTilePtrs[14] = {};
|
||||
EWRAM_DATA struct MailStruct gLinkPartnerMail[6] = {};
|
||||
EWRAM_DATA struct Mail gLinkPartnerMail[6] = {};
|
||||
EWRAM_DATA u8 gSelectedTradeMonPositions[2] = {0};
|
||||
static EWRAM_DATA struct TradeMenuResources * sTradeMenuResourcesPtr = NULL;
|
||||
|
||||
@@ -119,7 +119,7 @@ static const size_t sSizesAndOffsets[] = {
|
||||
sizeof(struct MapLayout),
|
||||
0x530, // unk
|
||||
0x34, // unk
|
||||
sizeof(struct MailStruct),
|
||||
sizeof(struct Mail),
|
||||
sizeof(struct Pokemon),
|
||||
0x528 // unk
|
||||
};
|
||||
@@ -1398,7 +1398,7 @@ static bool8 shedinja_maker_maybe(void)
|
||||
}
|
||||
break;
|
||||
case 13:
|
||||
Trade_Memcpy(gBlockSendBuffer, gSaveBlock1Ptr->mail, PARTY_SIZE * sizeof(struct MailStruct) + 4); // why the extra 4 bytes?
|
||||
Trade_Memcpy(gBlockSendBuffer, gSaveBlock1Ptr->mail, PARTY_SIZE * sizeof(struct Mail) + 4); // why the extra 4 bytes?
|
||||
sTradeMenuResourcesPtr->state++;
|
||||
break;
|
||||
case 15:
|
||||
@@ -1411,7 +1411,7 @@ static bool8 shedinja_maker_maybe(void)
|
||||
case 16:
|
||||
if (GetBlockReceivedStatus() == 3)
|
||||
{
|
||||
Trade_Memcpy(gLinkPartnerMail, gBlockRecvBuffer[id ^ 1], PARTY_SIZE * sizeof(struct MailStruct));
|
||||
Trade_Memcpy(gLinkPartnerMail, gBlockRecvBuffer[id ^ 1], PARTY_SIZE * sizeof(struct Mail));
|
||||
ResetBlockReceivedFlags();
|
||||
sTradeMenuResourcesPtr->state++;
|
||||
}
|
||||
|
||||
+3
-3
@@ -131,7 +131,7 @@ static void SpriteCB_TradePokeball_Outbound(struct Sprite * sprite);
|
||||
static void SpriteCB_TradePokeball_Outbound2(struct Sprite * sprite);
|
||||
static void SpriteCB_TradePokeball_Inbound(struct Sprite * sprite);
|
||||
static void BufferInGameTradeMonName(void);
|
||||
static void GetInGameTradeMail(struct MailStruct * mail, const struct InGameTrade * inGameTrade);
|
||||
static void GetInGameTradeMail(struct Mail * mail, const struct InGameTrade * inGameTrade);
|
||||
static void CB2_RunTradeAnim_LinkTrade(void);
|
||||
static void CB2_WaitAndAckTradeComplete(void);
|
||||
static void CB2_HandleTradeEnded(void);
|
||||
@@ -2432,7 +2432,7 @@ static void CreateInGameTradePokemonInternal(u8 playerSlot, u8 inGameTradeIdx)
|
||||
{
|
||||
const struct InGameTrade * inGameTrade = &sInGameTrades[inGameTradeIdx];
|
||||
u8 level = GetMonData(&gPlayerParty[playerSlot], MON_DATA_LEVEL);
|
||||
struct MailStruct mail;
|
||||
struct Mail mail;
|
||||
u8 metLocation = METLOC_IN_GAME_TRADE;
|
||||
struct Pokemon * tradeMon = &gEnemyParty[0];
|
||||
u8 mailNum;
|
||||
@@ -2472,7 +2472,7 @@ static void CreateInGameTradePokemonInternal(u8 playerSlot, u8 inGameTradeIdx)
|
||||
CalculateMonStats(&gEnemyParty[0]);
|
||||
}
|
||||
|
||||
static void GetInGameTradeMail(struct MailStruct * mail, const struct InGameTrade * inGameTrade)
|
||||
static void GetInGameTradeMail(struct Mail * mail, const struct InGameTrade * inGameTrade)
|
||||
{
|
||||
int i;
|
||||
for (i = 0; i < MAIL_WORDS_COUNT; i++)
|
||||
|
||||
+3
-3
@@ -1768,14 +1768,14 @@ static void Task_StartUnionRoomTrade(u8 taskId)
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
memcpy(gBlockSendBuffer, gSaveBlock1Ptr->mail, sizeof(struct MailStruct) * PARTY_SIZE + 4);
|
||||
if (SendBlock(0, gBlockSendBuffer, sizeof(struct MailStruct) * PARTY_SIZE + 4))
|
||||
memcpy(gBlockSendBuffer, gSaveBlock1Ptr->mail, sizeof(struct Mail) * PARTY_SIZE + 4);
|
||||
if (SendBlock(0, gBlockSendBuffer, sizeof(struct Mail) * PARTY_SIZE + 4))
|
||||
gTasks[taskId].data[0]++;
|
||||
break;
|
||||
case 3:
|
||||
if (GetBlockReceivedStatus() == 3)
|
||||
{
|
||||
memcpy(gLinkPartnerMail, gBlockRecvBuffer[GetMultiplayerId() ^ 1], sizeof(struct MailStruct) * PARTY_SIZE);
|
||||
memcpy(gLinkPartnerMail, gBlockRecvBuffer[GetMultiplayerId() ^ 1], sizeof(struct Mail) * PARTY_SIZE);
|
||||
ResetBlockReceivedFlags();
|
||||
gSelectedTradeMonPositions[TRADE_PLAYER] = monId;
|
||||
gSelectedTradeMonPositions[TRADE_PARTNER] = PARTY_SIZE;
|
||||
|
||||
Reference in New Issue
Block a user