Sync link_rfu_2

This commit is contained in:
GriffinR
2022-08-19 15:22:32 -04:00
parent 56f8b1a47c
commit 8a793e73a5
10 changed files with 91 additions and 91 deletions
+2 -2
View File
@@ -1,3 +1,3 @@
gHostRFUtgtGnameBuffer gHostRfuGameData
Rfu Rfu
gHostRFUtgtUnameBuffer gHostRfuUsername
+14 -14
View File
@@ -57,7 +57,7 @@
#define RFU_RECV_FINISHED 2 #define RFU_RECV_FINISHED 2
// RfuTgtData.gname is read as these structs. // RfuTgtData.gname is read as these structs.
struct GFtgtGnameSub struct RfuGameCompatibilityData
{ {
u16 language:4; u16 language:4;
u16 hasNews:1; u16 hasNews:1;
@@ -71,9 +71,9 @@ struct GFtgtGnameSub
u8 playerTrainerId[2]; u8 playerTrainerId[2];
}; };
struct __attribute__((packed, aligned(2))) GFtgtGname struct __attribute__((packed, aligned(2))) RfuGameData
{ {
struct GFtgtGnameSub unk_00; struct RfuGameCompatibilityData unk_00;
u8 child_sprite_gender[RFU_CHILD_MAX]; // u8 sprite_idx:3; u8 child_sprite_gender[RFU_CHILD_MAX]; // u8 sprite_idx:3;
// u8 gender:1; // u8 gender:1;
// u8 unk_4:3 // u8 unk_4:3
@@ -139,7 +139,7 @@ struct RfuUnusedQueue
/* 0x203 */ vu8 full; /* 0x203 */ vu8 full;
}; };
typedef struct UnkRfuStruct_2 struct RfuManager
{ {
/* 0x000 */ void (*RfuFunc)(void); /* 0x000 */ void (*RfuFunc)(void);
/* 0x004 */ u16 state; /* 0x004 */ u16 state;
@@ -204,11 +204,11 @@ typedef struct UnkRfuStruct_2
/* 0x9a1 */ u8 unk_ce9; /* 0x9a1 */ u8 unk_ce9;
/* 0x9a2 */ u8 unk_cea[RFU_CHILD_MAX]; /* 0x9a2 */ u8 unk_cea[RFU_CHILD_MAX];
/* 0x9a6 */ u8 unk_cee[RFU_CHILD_MAX]; /* 0x9a6 */ u8 unk_cee[RFU_CHILD_MAX];
} GF_RFU_MANAGER; // size: 0x9AC }; // size: 0x9AC
extern struct GFtgtGname gHostRFUtgtGnameBuffer; extern struct RfuGameData gHostRfuGameData;
extern u8 gHostRFUtgtUnameBuffer[]; extern u8 gHostRfuUsername[];
extern GF_RFU_MANAGER Rfu; extern struct RfuManager Rfu;
// GameFreak signatures // GameFreak signatures
void AddTextPrinterToWindow1(const u8 *str); void AddTextPrinterToWindow1(const u8 *str);
@@ -246,7 +246,7 @@ void LinkRfu_Shutdown(void);
void LinkRfu_CreateIdleTask(void); void LinkRfu_CreateIdleTask(void);
bool8 ToggleLMANlinkRecovery(bool32 enable); bool8 ToggleLMANlinkRecovery(bool32 enable);
void var_800D_set_xB(void); void var_800D_set_xB(void);
struct GFtgtGname *GetHostRFUtgtGname(void); struct RfuGameData *GetHostRFUtgtGname(void);
void UpdateWirelessStatusIndicatorSprite(void); void UpdateWirelessStatusIndicatorSprite(void);
void InitRFU(void); void InitRFU(void);
bool32 RfuHasErrored(void); bool32 RfuHasErrored(void);
@@ -262,7 +262,7 @@ bool8 RfuBackupQueue_Dequeue(struct RfuBackupQueue *queue, u8 *dest);
void RfuBackupQueue_Enqueue(struct RfuBackupQueue *queue, const u8 *dest); void RfuBackupQueue_Enqueue(struct RfuBackupQueue *queue, const u8 *dest);
bool8 RfuRecvQueue_Dequeue(struct RfuRecvQueue * queue, u8 *dest); bool8 RfuRecvQueue_Dequeue(struct RfuRecvQueue * queue, u8 *dest);
void RfuSendQueue_Enqueue(struct RfuSendQueue * queue, u8 *src); void RfuSendQueue_Enqueue(struct RfuSendQueue * queue, u8 *src);
void InitHostRFUtgtGname(struct GFtgtGname *data, u8 activity, bool32 started, s32 child_sprite_genders); void InitHostRFUtgtGname(struct RfuGameData *data, u8 activity, bool32 started, s32 child_sprite_genders);
void UpdateGameData_GroupLockedIn(bool8 started); void UpdateGameData_GroupLockedIn(bool8 started);
bool32 IsRfuSerialNumberValid(u32 serialNo); bool32 IsRfuSerialNumberValid(u32 serialNo);
bool8 IsRfuRecoveringFromLinkLoss(void); bool8 IsRfuRecoveringFromLinkLoss(void);
@@ -277,7 +277,7 @@ u32 WaitSendByteToPartnerByIdAndName(u16 a0, const u8 *a1);
void SetHostRFUtgtGname(u8 activity, u32 child_sprite_genders, u32 a2); void SetHostRFUtgtGname(u8 activity, u32 child_sprite_genders, u32 a2);
void InitializeRfuLinkManager_LinkLeader(u32 availSlots); void InitializeRfuLinkManager_LinkLeader(u32 availSlots);
void RequestDisconnectSlotByTrainerNameAndId(const u8 *trainerName, u16 trainerId); void RequestDisconnectSlotByTrainerNameAndId(const u8 *trainerName, u16 trainerId);
void LinkRfu3_SetGnameUnameFromStaticBuffers(struct GFtgtGname *gname, u8 *uname); void LinkRfu3_SetGnameUnameFromStaticBuffers(struct RfuGameData *gname, u8 *uname);
void InitializeRfuLinkManager_JoinGroup(void); void InitializeRfuLinkManager_JoinGroup(void);
void SendLeaveGroupNotice(void); void SendLeaveGroupNotice(void);
void CreateTask_RfuReconnectWithParent(const u8 *src, u16 trainerId); void CreateTask_RfuReconnectWithParent(const u8 *src, u16 trainerId);
@@ -292,10 +292,10 @@ void RfuUpdatePlayerGnameStateAndSend(u32 type, u32 species, u32 level);
bool32 IsUnionRoomListenTaskActive(void); bool32 IsUnionRoomListenTaskActive(void);
void InitializeRfuLinkManager_EnterUnionRoom(void); void InitializeRfuLinkManager_EnterUnionRoom(void);
void sub_80FBD6C(u32 a0); void sub_80FBD6C(u32 a0);
void sub_80FC114(const u8 *name, struct GFtgtGname *structPtr, u8 a2); void sub_80FC114(const u8 *name, struct RfuGameData *structPtr, u8 a2);
bool32 PlayerHasMetTrainerBefore(u16 id, u8 *name); bool32 PlayerHasMetTrainerBefore(u16 id, u8 *name);
bool8 LinkRfu_GetNameIfCompatible(struct GFtgtGname *gname, u8 *uname, u8 idx); bool8 LinkRfu_GetNameIfCompatible(struct RfuGameData *gname, u8 *uname, u8 idx);
bool8 LinkRfu_GetNameIfSerial7F7D(struct GFtgtGname *gname, u8 *uname, u8 idx); bool8 LinkRfu_GetNameIfSerial7F7D(struct RfuGameData *gname, u8 *uname, u8 idx);
bool32 RfuHasFoundNewLeader(void); bool32 RfuHasFoundNewLeader(void);
void Rfu_UnionRoomChat_StopLinkManager(void); void Rfu_UnionRoomChat_StopLinkManager(void);
void sub_80FB9D0(void); void sub_80FB9D0(void);
+2 -2
View File
@@ -15,8 +15,8 @@ extern const u8 gText_GenderlessSymbol[];
extern const u16 gTradeOrHatchMonShadowTilemap[]; extern const u16 gTradeOrHatchMonShadowTilemap[];
void CB2_ReturnFromLinkTrade(void); void CB2_ReturnFromLinkTrade(void);
s32 Trade_CalcLinkPlayerCompatibilityParam(void); s32 Trade_CalcLinkPlayerCompatibilityParam(void);
s32 CanRegisterMonForTradingBoard(struct GFtgtGnameSub rfuPlayer, u16 species2, u16 species, u8 isEventLegal); s32 CanRegisterMonForTradingBoard(struct RfuGameCompatibilityData rfuPlayer, u16 species2, u16 species, u8 isEventLegal);
s32 GetUnionRoomTradeMessageId(struct GFtgtGnameSub rfuPlayer, struct GFtgtGnameSub rfuPartner, u16 playerSpecies2, u16 partnerSpecies, u8 requestedType, u16 playerSpecies, u8 isEventLegal); s32 GetUnionRoomTradeMessageId(struct RfuGameCompatibilityData rfuPlayer, struct RfuGameCompatibilityData rfuPartner, u16 playerSpecies2, u16 partnerSpecies, u8 requestedType, u16 playerSpecies, u8 isEventLegal);
void CB2_ReturnToTradeMenuFromSummary(void); void CB2_ReturnToTradeMenuFromSummary(void);
#endif //GUARD_TRADE_H #endif //GUARD_TRADE_H
+2 -2
View File
@@ -14,7 +14,7 @@
struct UnionGnameUnamePair struct UnionGnameUnamePair
{ {
struct GFtgtGname gname; struct RfuGameData gname;
u8 ALIGNED(4) uname[PLAYER_NAME_LENGTH + 1]; u8 ALIGNED(4) uname[PLAYER_NAME_LENGTH + 1];
}; };
@@ -158,7 +158,7 @@ struct UnionRoomTrade
u32 personality; u32 personality;
}; };
extern struct GFtgtGnameSub gPartnerTgtGnameSub; extern struct RfuGameCompatibilityData gPartnerTgtGnameSub;
extern u16 gUnionRoomOfferedSpecies; extern u16 gUnionRoomOfferedSpecies;
extern u8 gUnionRoomRequestedMonType; extern u8 gUnionRoomRequestedMonType;
+51 -51
View File
@@ -13,37 +13,37 @@
struct SioInfo struct SioInfo
{ {
char magic[15]; // PokemonSioInfo char magic[sizeof("PokemonSioInfo")];
u8 playerCount; u8 playerCount;
u8 linkPlayerIdx[RFU_CHILD_MAX]; u8 linkPlayerIdx[RFU_CHILD_MAX];
struct LinkPlayer linkPlayers[MAX_RFU_PLAYERS]; struct LinkPlayer linkPlayers[MAX_RFU_PLAYERS];
u8 fill_a0[0x5c]; u8 filler[92];
}; };
struct RfuDebug struct RfuDebug
{ {
u8 fill_00[6]; u8 unused0[6];
u16 unk_06; u16 recvCount;
u8 fill_08[6]; u8 unused1[6];
vu8 unk_0e; vu8 unkFlag;
u8 unk_0f; bool8 childJoined;
u8 fill_10[0x54]; u8 unused2[84];
u16 unk_64; u16 blockSendFailures;
u8 fill_66[0x1d]; u8 unused3[29];
u8 unk_83; u8 blockSendTime;
u8 fill_84[0x58]; u8 unused4[88];
}; };
static EWRAM_DATA INIT_PARAM sRfuReqConfig = {}; static EWRAM_DATA INIT_PARAM sRfuReqConfig = {};
static EWRAM_DATA struct RfuDebug sRfuDebug = {}; static EWRAM_DATA struct RfuDebug sRfuDebug = {};
static u32 gf_rfu_REQ_api[RFU_API_BUFF_SIZE_RAM / 4]; static u32 sRfuAPIBuffer[RFU_API_BUFF_SIZE_RAM / 4];
static u8 sResendBlock8[14]; static u8 sResendBlock8[CMD_LENGTH * 2];
static u16 sResendBlock16[7]; static u16 sResendBlock16[CMD_LENGTH];
struct GFtgtGname gHostRFUtgtGnameBuffer; struct RfuGameData gHostRfuGameData;
GF_RFU_MANAGER Rfu; struct RfuManager Rfu;
u8 gHostRFUtgtUnameBuffer[PLAYER_NAME_LENGTH + 1]; u8 gHostRfuUsername[PLAYER_NAME_LENGTH + 1];
static void sub_80F8AA4(void); static void sub_80F8AA4(void);
static void sub_80F8AEC(void); static void sub_80F8AEC(void);
@@ -80,8 +80,8 @@ static const INIT_PARAM sRfuReqConfigTemplate = {
.availSlot_flag = 0, .availSlot_flag = 0,
.mboot_flag = 0, .mboot_flag = 0,
.serialNo = 0x0002, .serialNo = 0x0002,
.gameName = (void *)&gHostRFUtgtGnameBuffer, .gameName = (void *)&gHostRfuGameData,
.userName = gHostRFUtgtUnameBuffer, .userName = gHostRfuUsername,
.fastSearchParent_flag = TRUE, .fastSearchParent_flag = TRUE,
.linkRecovery_enable = FALSE, .linkRecovery_enable = FALSE,
.linkRecovery_period = 600, .linkRecovery_period = 600,
@@ -257,7 +257,7 @@ void InitRFU(void)
void InitRFUAPI(void) void InitRFUAPI(void)
{ {
if (!rfu_initializeAPI(gf_rfu_REQ_api, RFU_API_BUFF_SIZE_RAM, gIntrTable + 1, TRUE)) if (!rfu_initializeAPI(sRfuAPIBuffer, RFU_API_BUFF_SIZE_RAM, gIntrTable + 1, TRUE))
{ {
gLinkType = 0; gLinkType = 0;
// ClearSavedLinkPlayers(); // Em fix // ClearSavedLinkPlayers(); // Em fix
@@ -402,10 +402,10 @@ static void Task_JoinGroupSearchForParent(u8 taskId)
rfu_UNI_setSendData(bmChildSlot, Rfu.lastCmdBeforeCommInterrupt, sizeof(Rfu.lastCmdBeforeCommInterrupt)); rfu_UNI_setSendData(bmChildSlot, Rfu.lastCmdBeforeCommInterrupt, sizeof(Rfu.lastCmdBeforeCommInterrupt));
gTasks[taskId].data[1] = 8; gTasks[taskId].data[1] = 8;
DestroyTask(taskId); DestroyTask(taskId);
if (sRfuDebug.unk_0f == 0) if (!sRfuDebug.childJoined)
{ {
Debug_PrintEmpty(); Debug_PrintEmpty();
sRfuDebug.unk_0f++; sRfuDebug.childJoined++;
} }
CreateTask(sub_80FA834, 5); CreateTask(sub_80FA834, 5);
break; break;
@@ -523,7 +523,7 @@ static void MscCallback_Child(u16 unused)
{ {
Rfu.sem_UNI_SendRecv++; Rfu.sem_UNI_SendRecv++;
RfuRecvQueue_Enqueue(&Rfu.recvQueue, Rfu.unk_c3f); RfuRecvQueue_Enqueue(&Rfu.recvQueue, Rfu.unk_c3f);
sRfuDebug.unk_06++; sRfuDebug.recvCount++;
UpdateBackupQueue(); UpdateBackupQueue();
rfu_UNI_readySendData(Rfu.child_slot); rfu_UNI_readySendData(Rfu.child_slot);
rfu_UNI_clearRecvNewDataFlag(Rfu.child_slot); rfu_UNI_clearRecvNewDataFlag(Rfu.child_slot);
@@ -662,7 +662,7 @@ static void MoveRecvCmdsToRfuBuffer(void)
for (i = 0; i < MAX_RFU_PLAYERS; i++) for (i = 0; i < MAX_RFU_PLAYERS; i++)
{ {
GF_RFU_MANAGER *ptr = &Rfu; struct RfuManager *ptr = &Rfu;
for (j = 0; j < CMD_LENGTH - 1; j++) for (j = 0; j < CMD_LENGTH - 1; j++)
{ {
ptr->recvCmds[i][j][1] = gRecvCmds[i][j] >> 8; ptr->recvCmds[i][j][1] = gRecvCmds[i][j] >> 8;
@@ -797,7 +797,7 @@ static bool32 sub_80F9204(void)
if ((lman.parentAck_flag & Rfu.bm_PartnerFlags) == Rfu.bm_PartnerFlags) if ((lman.parentAck_flag & Rfu.bm_PartnerFlags) == Rfu.bm_PartnerFlags)
{ {
Rfu.unk_cdc = 0; Rfu.unk_cdc = 0;
sRfuDebug.unk_06++; sRfuDebug.recvCount++;
flags = lman.acceptSlot_flag; flags = lman.acceptSlot_flag;
for (i = 0; i < RFU_CHILD_MAX; i++) for (i = 0; i < RFU_CHILD_MAX; i++)
{ {
@@ -833,7 +833,7 @@ static bool32 sub_80F9204(void)
CallRfuFunc(); CallRfuFunc();
if (Rfu.bmChatLeaderMaybe && !Rfu.linkClosing) if (Rfu.bmChatLeaderMaybe && !Rfu.linkClosing)
{ {
sRfuDebug.unk_0e = FALSE; sRfuDebug.unkFlag = FALSE;
rfu_clearSlot(TYPE_UNI_SEND | TYPE_UNI_RECV, Rfu.unk_cda); rfu_clearSlot(TYPE_UNI_SEND | TYPE_UNI_RECV, Rfu.unk_cda);
for (i = 0; i < RFU_CHILD_MAX; i++) for (i = 0; i < RFU_CHILD_MAX; i++)
{ {
@@ -1000,9 +1000,9 @@ static void RfuFunc_SendKeysToRfu(void)
} }
} }
struct GFtgtGname *GetHostRFUtgtGname(void) struct RfuGameData *GetHostRFUtgtGname(void)
{ {
return &gHostRFUtgtGnameBuffer; return &gHostRfuGameData;
} }
bool32 IsSendingKeysToRfu(void) bool32 IsSendingKeysToRfu(void)
@@ -1239,7 +1239,7 @@ bool32 Rfu_InitBlockSend(const u8 *src, size_t size)
return FALSE; return FALSE;
if (Rfu.sendBlock.sending != 0) if (Rfu.sendBlock.sending != 0)
{ {
sRfuDebug.unk_83++; sRfuDebug.blockSendTime++;
return FALSE; return FALSE;
} }
sizeHasModulo = (size % 12) != 0; sizeHasModulo = (size % 12) != 0;
@@ -1308,7 +1308,7 @@ static void SendLastBlock(void)
if (Rfu.recvBlock[mpId].receivedFlags != sAllBlocksReceived[Rfu.recvBlock[mpId].count]) if (Rfu.recvBlock[mpId].receivedFlags != sAllBlocksReceived[Rfu.recvBlock[mpId].count])
{ {
HandleSendFailure(mpId, Rfu.recvBlock[mpId].receivedFlags); HandleSendFailure(mpId, Rfu.recvBlock[mpId].receivedFlags);
sRfuDebug.unk_64++; sRfuDebug.blockSendFailures++;
} }
else else
Rfu.RfuFunc = NULL; Rfu.RfuFunc = NULL;
@@ -1965,44 +1965,44 @@ bool32 LinkRfuMain2(void)
static void CopyPlayerNameToUnameBuffer(void) static void CopyPlayerNameToUnameBuffer(void)
{ {
StringCopy(gHostRFUtgtUnameBuffer, gSaveBlock2Ptr->playerName); StringCopy(gHostRfuUsername, gSaveBlock2Ptr->playerName);
} }
void ClearAndInitHostRFUtgtGname(void) void ClearAndInitHostRFUtgtGname(void)
{ {
memset(&gHostRFUtgtGnameBuffer, 0, RFU_GAME_NAME_LENGTH); memset(&gHostRfuGameData, 0, RFU_GAME_NAME_LENGTH);
InitHostRFUtgtGname(&gHostRFUtgtGnameBuffer, ACTIVITY_NONE, FALSE, 0); InitHostRFUtgtGname(&gHostRfuGameData, ACTIVITY_NONE, FALSE, 0);
} }
void SetHostRFUtgtGname(u8 activity, u32 child_sprite_genders, u32 started) void SetHostRFUtgtGname(u8 activity, u32 child_sprite_genders, u32 started)
{ {
InitHostRFUtgtGname(&gHostRFUtgtGnameBuffer, activity, started, child_sprite_genders); InitHostRFUtgtGname(&gHostRfuGameData, activity, started, child_sprite_genders);
} }
void SetGnameBufferWonderFlags(bool32 hasNews, bool32 hasCard) void SetGnameBufferWonderFlags(bool32 hasNews, bool32 hasCard)
{ {
gHostRFUtgtGnameBuffer.unk_00.hasNews = hasNews; gHostRfuGameData.unk_00.hasNews = hasNews;
gHostRFUtgtGnameBuffer.unk_00.hasCard = hasCard; gHostRfuGameData.unk_00.hasCard = hasCard;
} }
void RfuUpdatePlayerGnameStateAndSend(u32 type, u32 species, u32 level) void RfuUpdatePlayerGnameStateAndSend(u32 type, u32 species, u32 level)
{ {
gHostRFUtgtGnameBuffer.type = type; gHostRfuGameData.type = type;
gHostRFUtgtGnameBuffer.species = species; gHostRfuGameData.species = species;
gHostRFUtgtGnameBuffer.level = level; gHostRfuGameData.level = level;
} }
void UpdateGameData_GroupLockedIn(bool8 started) void UpdateGameData_GroupLockedIn(bool8 started)
{ {
gHostRFUtgtGnameBuffer.started = started; gHostRfuGameData.started = started;
rfu_REQ_configGameData(0, 0x0002, (void *)&gHostRFUtgtGnameBuffer, gHostRFUtgtUnameBuffer); rfu_REQ_configGameData(0, 0x0002, (void *)&gHostRfuGameData, gHostRfuUsername);
} }
void UpdateGameDataWithActivitySpriteGendersFlag(u8 activity, u32 child_sprite_genders, u32 started) void UpdateGameDataWithActivitySpriteGendersFlag(u8 activity, u32 child_sprite_genders, u32 started)
{ {
if (activity) if (activity)
SetHostRFUtgtGname(activity, child_sprite_genders, started); SetHostRFUtgtGname(activity, child_sprite_genders, started);
rfu_REQ_configGameData(0, 0x0002, (void *)&gHostRFUtgtGnameBuffer, gHostRFUtgtUnameBuffer); rfu_REQ_configGameData(0, 0x0002, (void *)&gHostRfuGameData, gHostRfuUsername);
} }
void sub_80FB030(u32 linkPlayerCount) void sub_80FB030(u32 linkPlayerCount)
@@ -2086,7 +2086,7 @@ static void LmanCallback_Parent2(u8 msg, u8 param_count)
{ {
if ((lman.param[0] >> i) & 1) if ((lman.param[0] >> i) & 1)
{ {
struct GFtgtGname *structPtr = (void *)&gRfuLinkStatus->partner[i].gname; struct RfuGameData *structPtr = (void *)&gRfuLinkStatus->partner[i].gname;
if (structPtr->activity == GetHostRFUtgtGname()->activity) if (structPtr->activity == GetHostRFUtgtGname()->activity)
{ {
Rfu.partnerSendStatuses[i] = RFU_STATUS_OK; Rfu.partnerSendStatuses[i] = RFU_STATUS_OK;
@@ -2254,7 +2254,7 @@ static u8 GetNewChildrenInUnionRoomChat(s32 bmNewChildSlot)
{ {
if ((bmNewChildSlot >> i) & 1) if ((bmNewChildSlot >> i) & 1)
{ {
struct GFtgtGname *structPtr = (void *)&gRfuLinkStatus->partner[i].gname; struct RfuGameData *structPtr = (void *)&gRfuLinkStatus->partner[i].gname;
if (structPtr->activity == (ACTIVITY_CHAT | IN_UNION_ROOM)) if (structPtr->activity == (ACTIVITY_CHAT | IN_UNION_ROOM))
ret |= (1 << i); ret |= (1 << i);
} }
@@ -2564,7 +2564,7 @@ static u8 GetPartnerIndexByNameAndTrainerID(const u8 *trainerName, u16 trainerId
for (i = 0; i < RFU_CHILD_MAX; i++) for (i = 0; i < RFU_CHILD_MAX; i++)
{ {
u16 partnerTrainerId = ReadU16(((struct GFtgtGname *)gRfuLinkStatus->partner[i].gname)->unk_00.playerTrainerId); u16 partnerTrainerId = ReadU16(((struct RfuGameData *)gRfuLinkStatus->partner[i].gname)->unk_00.playerTrainerId);
if (IsRfuSerialNumberValid(gRfuLinkStatus->partner[i].serialNo) if (IsRfuSerialNumberValid(gRfuLinkStatus->partner[i].serialNo)
&& !StringCompare(trainerName, gRfuLinkStatus->partner[i].uname) && !StringCompare(trainerName, gRfuLinkStatus->partner[i].uname)
&& trainerId == partnerTrainerId) && trainerId == partnerTrainerId)
@@ -2696,7 +2696,7 @@ void CreateTask_RfuReconnectWithParent(const u8 *trainerName, u16 trainerId)
data[8] = trainerId; data[8] = trainerId;
} }
static bool32 ShouldRejectPartnerConnectionBasedOnActivity(s16 activity, struct GFtgtGname *partnerGname) static bool32 ShouldRejectPartnerConnectionBasedOnActivity(s16 activity, struct RfuGameData *partnerGname)
{ {
if (GetHostRFUtgtGname()->activity == (ACTIVITY_CHAT | IN_UNION_ROOM)) if (GetHostRFUtgtGname()->activity == (ACTIVITY_CHAT | IN_UNION_ROOM))
{ {
@@ -2709,7 +2709,7 @@ static bool32 ShouldRejectPartnerConnectionBasedOnActivity(s16 activity, struct
} }
else if (activity == (ACTIVITY_TRADE | IN_UNION_ROOM)) else if (activity == (ACTIVITY_TRADE | IN_UNION_ROOM))
{ {
struct GFtgtGname *myTradeGname = (struct GFtgtGname *)&Rfu.tgtData.gname; struct RfuGameData *myTradeGname = (struct RfuGameData *)&Rfu.tgtData.gname;
if (myTradeGname->species == SPECIES_EGG) if (myTradeGname->species == SPECIES_EGG)
{ {
if (partnerGname->species == myTradeGname->species) if (partnerGname->species == myTradeGname->species)
@@ -2741,11 +2741,11 @@ static void sub_80FC028(u8 taskId)
if (Rfu.parentId != 0 && lman.parent_child == MODE_CHILD) if (Rfu.parentId != 0 && lman.parent_child == MODE_CHILD)
{ {
u16 trainerId = ReadU16(((struct GFtgtGname *)&Rfu.tgtData.gname)->unk_00.playerTrainerId); u16 trainerId = ReadU16(((struct RfuGameData *)&Rfu.tgtData.gname)->unk_00.playerTrainerId);
u8 id = GetPartnerIndexByNameAndTrainerID(Rfu.tgtData.uname, trainerId); u8 id = GetPartnerIndexByNameAndTrainerID(Rfu.tgtData.uname, trainerId);
if (id != 0xFF) if (id != 0xFF)
{ {
if (!ShouldRejectPartnerConnectionBasedOnActivity(gTasks[taskId].data[1], (struct GFtgtGname *)&gRfuLinkStatus->partner[id].gname)) if (!ShouldRejectPartnerConnectionBasedOnActivity(gTasks[taskId].data[1], (struct RfuGameData *)&gRfuLinkStatus->partner[id].gname))
{ {
if (gRfuLinkStatus->partner[id].slot != 0xFF && !rfu_LMAN_CHILD_connectParent(gRfuLinkStatus->partner[id].id, 90)) if (gRfuLinkStatus->partner[id].slot != 0xFF && !rfu_LMAN_CHILD_connectParent(gRfuLinkStatus->partner[id].id, 90))
{ {
@@ -2762,7 +2762,7 @@ static void sub_80FC028(u8 taskId)
} }
} }
void sub_80FC114(const u8 *name, struct GFtgtGname *structPtr, u8 activity) void sub_80FC114(const u8 *name, struct RfuGameData *structPtr, u8 activity)
{ {
u8 taskId, taskId2; u8 taskId, taskId2;
+6 -6
View File
@@ -661,7 +661,7 @@ static u8 GetConnectedChildStrength(u8 maxFlags)
return 0; return 0;
} }
void InitHostRFUtgtGname(struct GFtgtGname *data, u8 activity, bool32 started, s32 child_sprite_genders) void InitHostRFUtgtGname(struct RfuGameData *data, u8 activity, bool32 started, s32 child_sprite_genders)
{ {
s32 i; s32 i;
@@ -694,7 +694,7 @@ void InitHostRFUtgtGname(struct GFtgtGname *data, u8 activity, bool32 started, s
* Otherwise, blanks these. * Otherwise, blanks these.
* ========================================================== * ==========================================================
*/ */
bool8 LinkRfu_GetNameIfCompatible(struct GFtgtGname *gname, u8 *uname, u8 idx) bool8 LinkRfu_GetNameIfCompatible(struct RfuGameData *gname, u8 *uname, u8 idx)
{ {
bool8 retVal; bool8 retVal;
@@ -735,7 +735,7 @@ bool8 LinkRfu_GetNameIfCompatible(struct GFtgtGname *gname, u8 *uname, u8 idx)
* which comes from ??? * which comes from ???
* ========================================================== * ==========================================================
*/ */
bool8 LinkRfu_GetNameIfSerial7F7D(struct GFtgtGname *gname, u8 *uname, u8 idx) bool8 LinkRfu_GetNameIfSerial7F7D(struct RfuGameData *gname, u8 *uname, u8 idx)
{ {
bool8 retVal = FALSE; bool8 retVal = FALSE;
if (gRfuLinkStatus->partner[idx].serialNo == RFU_SERIAL_7F7D) if (gRfuLinkStatus->partner[idx].serialNo == RFU_SERIAL_7F7D)
@@ -752,10 +752,10 @@ bool8 LinkRfu_GetNameIfSerial7F7D(struct GFtgtGname *gname, u8 *uname, u8 idx)
return retVal; return retVal;
} }
void LinkRfu3_SetGnameUnameFromStaticBuffers(struct GFtgtGname *gname, u8 *uname) void LinkRfu3_SetGnameUnameFromStaticBuffers(struct RfuGameData *gname, u8 *uname)
{ {
memcpy(gname, &gHostRFUtgtGnameBuffer, RFU_GAME_NAME_LENGTH); memcpy(gname, &gHostRfuGameData, RFU_GAME_NAME_LENGTH);
memcpy(uname, gHostRFUtgtUnameBuffer, RFU_USER_NAME_LENGTH); memcpy(uname, gHostRfuUsername, RFU_USER_NAME_LENGTH);
} }
#define sNextAnimNum data[0] #define sNextAnimNum data[0]
+2 -2
View File
@@ -3874,7 +3874,7 @@ static void CursorCB_Register(u8 taskId)
u16 species = GetMonData(&gPlayerParty[gPartyMenu.slotId], MON_DATA_SPECIES); u16 species = GetMonData(&gPlayerParty[gPartyMenu.slotId], MON_DATA_SPECIES);
u8 isEventLegal = GetMonData(&gPlayerParty[gPartyMenu.slotId], MON_DATA_EVENT_LEGAL); u8 isEventLegal = GetMonData(&gPlayerParty[gPartyMenu.slotId], MON_DATA_EVENT_LEGAL);
switch (CanRegisterMonForTradingBoard(*(struct GFtgtGnameSub *)GetHostRFUtgtGname(), species2, species, isEventLegal)) switch (CanRegisterMonForTradingBoard(*(struct RfuGameCompatibilityData *)GetHostRFUtgtGname(), species2, species, isEventLegal))
{ {
case CANT_REGISTER_MON: case CANT_REGISTER_MON:
StringExpandPlaceholders(gStringVar4, gText_PkmnCantBeTradedNow); StringExpandPlaceholders(gStringVar4, gText_PkmnCantBeTradedNow);
@@ -3900,7 +3900,7 @@ static void CursorCB_Trade1(u8 taskId)
u16 species2 = GetMonData(&gPlayerParty[gPartyMenu.slotId], MON_DATA_SPECIES2); u16 species2 = GetMonData(&gPlayerParty[gPartyMenu.slotId], MON_DATA_SPECIES2);
u16 species = GetMonData(&gPlayerParty[gPartyMenu.slotId], MON_DATA_SPECIES); u16 species = GetMonData(&gPlayerParty[gPartyMenu.slotId], MON_DATA_SPECIES);
u8 isEventLegal = GetMonData(&gPlayerParty[gPartyMenu.slotId], MON_DATA_EVENT_LEGAL); u8 isEventLegal = GetMonData(&gPlayerParty[gPartyMenu.slotId], MON_DATA_EVENT_LEGAL);
u32 stringId = GetUnionRoomTradeMessageId(*(struct GFtgtGnameSub *)GetHostRFUtgtGname(), gPartnerTgtGnameSub, species2, gUnionRoomOfferedSpecies, gUnionRoomRequestedMonType, species, isEventLegal); u32 stringId = GetUnionRoomTradeMessageId(*(struct RfuGameCompatibilityData *)GetHostRFUtgtGname(), gPartnerTgtGnameSub, species2, gUnionRoomOfferedSpecies, gUnionRoomRequestedMonType, species, isEventLegal);
if (stringId != UR_TRADE_MSG_NONE) if (stringId != UR_TRADE_MSG_NONE)
{ {
+5 -5
View File
@@ -466,7 +466,7 @@ void MakeGroupAssemblyAreasPassable(void)
} }
} }
static u8 UnionPartnerObjectGetFacing(u32 member, u32 group, struct GFtgtGname * gname) static u8 UnionPartnerObjectGetFacing(u32 member, u32 group, struct RfuGameData * gname)
{ {
if (member != 0) if (member != 0)
{ {
@@ -487,7 +487,7 @@ static u32 RfuUnionGroupMemberIsInvisible(u32 group, u32 member)
return RfuUnionObjectIsInvisible(5 * group + member - 0x38); return RfuUnionObjectIsInvisible(5 * group + member - 0x38);
} }
static void SpawnGroupMember(u32 groupNo, u32 memberNo, u8 direction, struct GFtgtGname * gname) static void SpawnGroupMember(u32 groupNo, u32 memberNo, u8 direction, struct RfuGameData * gname)
{ {
s32 x, y; s32 x, y;
s32 objId = 5 * groupNo + memberNo; s32 objId = 5 * groupNo + memberNo;
@@ -510,7 +510,7 @@ static void DespawnGroupMember(u32 group, u32 member)
MapGridSetMetatileImpassabilityAt(x, y, FALSE); MapGridSetMetatileImpassabilityAt(x, y, FALSE);
} }
static void AssembleGroup(u32 group, struct GFtgtGname * gname) static void AssembleGroup(u32 group, struct RfuGameData * gname)
{ {
s16 x, y, x2, y2; s16 x, y, x2, y2;
s32 i; s32 i;
@@ -538,7 +538,7 @@ static void AssembleGroup(u32 group, struct GFtgtGname * gname)
} }
} }
static void SpawnGroupLeaderAndMembers(u32 group, struct GFtgtGname * gname) static void SpawnGroupLeaderAndMembers(u32 group, struct RfuGameData * gname)
{ {
u32 i; u32 i;
switch (gname->activity) switch (gname->activity)
@@ -566,7 +566,7 @@ static void SpawnGroupLeaderAndMembers(u32 group, struct GFtgtGname * gname)
} }
} }
static void DespawnGroupLeaderAndMembers(u32 group, struct GFtgtGname * gname) static void DespawnGroupLeaderAndMembers(u32 group, struct RfuGameData * gname)
{ {
s32 i; s32 i;
DespawnGroupLeader(group); DespawnGroupLeader(group);
+2 -2
View File
@@ -2730,7 +2730,7 @@ static bool32 IsDeoxysOrMewUntradable(u16 species, bool8 isEventLegal)
return FALSE; return FALSE;
} }
int GetUnionRoomTradeMessageId(struct GFtgtGnameSub playerSub, struct GFtgtGnameSub partnerSub, u16 species1, u16 species2, u8 type, u16 species3, u8 isEventLegal) int GetUnionRoomTradeMessageId(struct RfuGameCompatibilityData playerSub, struct RfuGameCompatibilityData partnerSub, u16 species1, u16 species2, u8 type, u16 species3, u8 isEventLegal)
{ {
u8 playerHasNationalDex = playerSub.hasNationalDex; u8 playerHasNationalDex = playerSub.hasNationalDex;
u8 playerIsChampion = playerSub.isChampion; u8 playerIsChampion = playerSub.isChampion;
@@ -2810,7 +2810,7 @@ int GetUnionRoomTradeMessageId(struct GFtgtGnameSub playerSub, struct GFtgtGname
return 0; return 0;
} }
int CanRegisterMonForTradingBoard(struct GFtgtGnameSub playerSub, u16 species2, u16 species, u8 isEventLegal) int CanRegisterMonForTradingBoard(struct RfuGameCompatibilityData playerSub, u16 species2, u16 species, u8 isEventLegal)
{ {
u8 canTradeEggAndNational = playerSub.hasNationalDex; u8 canTradeEggAndNational = playerSub.hasNationalDex;
+5 -5
View File
@@ -53,7 +53,7 @@ static EWRAM_DATA u8 sPlayerCurrActivity = 0;
static EWRAM_DATA u8 sPlayerActivityGroupSize = 0; static EWRAM_DATA u8 sPlayerActivityGroupSize = 0;
static EWRAM_DATA union UnkUnion_Main sUnionRoomMain = {}; static EWRAM_DATA union UnkUnion_Main sUnionRoomMain = {};
static EWRAM_DATA u32 sUnref_203B060 = 0; static EWRAM_DATA u32 sUnref_203B060 = 0;
EWRAM_DATA struct GFtgtGnameSub gPartnerTgtGnameSub = {}; EWRAM_DATA struct RfuGameCompatibilityData gPartnerTgtGnameSub = {};
EWRAM_DATA u16 gUnionRoomOfferedSpecies = SPECIES_NONE; EWRAM_DATA u16 gUnionRoomOfferedSpecies = SPECIES_NONE;
EWRAM_DATA u8 gUnionRoomRequestedMonType = TYPE_NORMAL; EWRAM_DATA u8 gUnionRoomRequestedMonType = TYPE_NORMAL;
static EWRAM_DATA struct UnionRoomTrade sUnionRoomTrade = {}; static EWRAM_DATA struct UnionRoomTrade sUnionRoomTrade = {};
@@ -86,7 +86,7 @@ static bool32 UnionRoom_HandleContactFromOtherPlayer(struct UnkStruct_URoom * uR
static void Task_InitUnionRoom(u8 taskId); static void Task_InitUnionRoom(u8 taskId);
static u8 HandlePlayerListUpdate(void); static u8 HandlePlayerListUpdate(void);
static u8 CreateTask_SearchForChildOrParent(struct UnkStruct_Main4 * main4, struct UnkStruct_Main4 * arg1, u32 arg2); static u8 CreateTask_SearchForChildOrParent(struct UnkStruct_Main4 * main4, struct UnkStruct_Main4 * arg1, u32 arg2);
static bool32 GetGnameWonderFlagByLinkGroup(struct GFtgtGname * gname, s16 linkGroup); static bool32 GetGnameWonderFlagByLinkGroup(struct RfuGameData * gname, s16 linkGroup);
static u8 CreateTask_ListenForPartnersWithCompatibleSerialNos(struct UnkStruct_Main4 * main4, u32 linkGroup); static u8 CreateTask_ListenForPartnersWithCompatibleSerialNos(struct UnkStruct_Main4 * main4, u32 linkGroup);
static u8 CreateTask_ListenForPartnersWithSerial7F7D(struct UnkStruct_Main4 * main4, u32 linkGroup); static u8 CreateTask_ListenForPartnersWithSerial7F7D(struct UnkStruct_Main4 * main4, u32 linkGroup);
static bool32 UR_PrintFieldMessage(const u8 * str); static bool32 UR_PrintFieldMessage(const u8 * str);
@@ -3719,7 +3719,7 @@ static void Task_ListenForPartnersWithCompatibleSerialNos(u8 taskId)
} }
} }
static bool32 GetGnameWonderFlagByLinkGroup(struct GFtgtGname * gname, s16 linkGroup) static bool32 GetGnameWonderFlagByLinkGroup(struct RfuGameData * gname, s16 linkGroup)
{ {
if (linkGroup == LINK_GROUP_WONDER_CARD) if (linkGroup == LINK_GROUP_WONDER_CARD)
{ {
@@ -4315,7 +4315,7 @@ static void nullsub_92(u8 windowId, u32 itemId, u8 y)
{ {
} }
static void TradeBoardPrintItemInfo(u8 windowId, u8 y, struct GFtgtGname * gname, const u8 * uname, u8 colorIdx) static void TradeBoardPrintItemInfo(u8 windowId, u8 y, struct RfuGameData * gname, const u8 * uname, u8 colorIdx)
{ {
u8 level_t[4]; u8 level_t[4];
u16 species = gname->species; u16 species = gname->species;
@@ -4339,7 +4339,7 @@ static void TradeBoardPrintItemInfo(u8 windowId, u8 y, struct GFtgtGname * gname
static void TradeBoardListMenuItemPrintFunc(u8 windowId, u32 itemId, u8 y) static void TradeBoardListMenuItemPrintFunc(u8 windowId, u32 itemId, u8 y)
{ {
struct UnkStruct_Leader * leader = sUnionRoomMain.leader; struct UnkStruct_Leader * leader = sUnionRoomMain.leader;
struct GFtgtGname * rfu; struct RfuGameData * rfu;
s32 i, j; s32 i, j;
u8 uname[RFU_USER_NAME_LENGTH]; u8 uname[RFU_USER_NAME_LENGTH];