Move GFtgtGname out of librfu.h

This commit is contained in:
PikalaxALT
2020-01-14 12:41:43 -05:00
parent b76b38c257
commit 246e3461c7
7 changed files with 55 additions and 58 deletions
-28
View File
@@ -275,34 +275,6 @@
// Status data for UNI-type communication (refer to gRfuSlotStatusUNI[x]->send.state) // Status data for UNI-type communication (refer to gRfuSlotStatusUNI[x]->send.state)
#define SLOT_STATE_SEND_UNI (SLOT_BUSY_FLAG | SLOT_SEND_FLAG | LCOM_UNI) // Transmitting #define SLOT_STATE_SEND_UNI (SLOT_BUSY_FLAG | SLOT_SEND_FLAG | LCOM_UNI) // Transmitting
// TODO: move the 2 structs to some other header as they're declared by GF
struct UnkLinkRfuStruct_02022B14Substruct
{
u16 unk_00_0:4;
u16 unk_00_4:1;
u16 unk_00_5:1;
u16 unk_00_6:1;
u16 isChampion:1;
u16 hasNationalDex:1;
u16 gameClear:1;
u16 unk_01_2:4;
u16 unk_01_6:2;
u8 playerTrainerId[2];
};
struct __attribute__((packed, aligned(2))) UnkLinkRfuStruct_02022B14
{
struct UnkLinkRfuStruct_02022B14Substruct unk_00;
u8 unk_04[4];
u16 species:10;
u16 type:6;
u8 unk_0a_0:7;
u8 unk_0a_7:1;
u8 playerGender:1;
u8 level:7;
u8 unk_0c;
};
// the following structs are not documented in SDK // the following structs are not documented in SDK
struct RfuPacket8 struct RfuPacket8
{ {
+31 -3
View File
@@ -4,6 +4,34 @@
#include "global.h" #include "global.h"
#include "librfu.h" #include "librfu.h"
// RfuTgtData.gname is read as these structs.
struct GFtgtGnameSub
{
u16 unk_00_0:4;
u16 unk_00_4:1;
u16 unk_00_5:1;
u16 unk_00_6:1;
u16 isChampion:1;
u16 hasNationalDex:1;
u16 gameClear:1;
u16 unk_01_2:4;
u16 unk_01_6:2;
u8 playerTrainerId[2];
};
struct __attribute__((packed, aligned(2))) GFtgtGname
{
struct GFtgtGnameSub unk_00;
u8 unk_04[4];
u16 species:10;
u16 type:6;
u8 unk_0a_0:7;
u8 unk_0a_7:1;
u8 playerGender:1;
u8 level:7;
u8 unk_0c;
};
struct Padded_U8 struct Padded_U8
{ {
u8 value; u8 value;
@@ -16,7 +44,7 @@ struct UnkLinkRfuStruct_02022B2C
u16 unk_02; u16 unk_02;
u8 unk_04; u8 unk_04;
u16 unk_06; u16 unk_06;
struct UnkLinkRfuStruct_02022B14 *unk_08; struct GFtgtGname *unk_08;
u8 *unk_0c; u8 *unk_0c;
u8 unk_10; u8 unk_10;
u8 unk_11; u8 unk_11;
@@ -143,7 +171,7 @@ void sub_80F8DC0(void);
void sub_80FBB20(void); void sub_80FBB20(void);
bool8 sub_80FA484(bool32 a0); bool8 sub_80FA484(bool32 a0);
void var_800D_set_xB(void); void var_800D_set_xB(void);
struct UnkLinkRfuStruct_02022B14 *sub_80F9800(void); struct GFtgtGname *sub_80F9800(void);
void sub_80FCF34(void); void sub_80FCF34(void);
void InitRFU(void); void InitRFU(void);
void sub_80FEB14(void); void sub_80FEB14(void);
@@ -169,7 +197,7 @@ bool8 sub_80FC6E8(struct UnkRfuStruct_2_Sub_124 * a0, u8 *a1);
bool8 sub_80FC63C(struct UnkRfuStruct_2_Sub_9e8 * a0, u8 *a1); bool8 sub_80FC63C(struct UnkRfuStruct_2_Sub_9e8 * a0, u8 *a1);
u8 sub_80FEA34(u8 a0, u16 a1); u8 sub_80FEA34(u8 a0, u16 a1);
void sub_80FDA30(u32 a0); void sub_80FDA30(u32 a0);
void sub_80FCB54(struct UnkLinkRfuStruct_02022B14 *data, u8 r9, bool32 r2, s32 r3); void sub_80FCB54(struct GFtgtGname *data, u8 r9, bool32 r2, s32 r3);
void rfu_syncVBlank_(void); void rfu_syncVBlank_(void);
s32 sub_80FD430(void (*func1)(u8, u8), void (*func2)(u16)); s32 sub_80FD430(void (*func1)(u8, u8), void (*func2)(u16));
void sub_80FEB3C(void); void sub_80FEB3C(void);
+3 -3
View File
@@ -2,7 +2,7 @@
#define GUARD_TRADE_H #define GUARD_TRADE_H
#include "global.h" #include "global.h"
#include "librfu.h" #include "link_rfu.h"
#include "constants/trade.h" #include "constants/trade.h"
extern struct MailStruct gLinkPartnerMail[6]; extern struct MailStruct gLinkPartnerMail[6];
@@ -11,7 +11,7 @@ extern u8 gSelectedTradeMonPositions[2];
extern const u16 gUnknown_826601C[]; extern const u16 gUnknown_826601C[];
void CB2_ReturnFromLinkTrade(void); void CB2_ReturnFromLinkTrade(void);
s32 sub_804FB34(void); s32 sub_804FB34(void);
s32 CanRegisterMonForTradingBoard(struct UnkLinkRfuStruct_02022B14Substruct rfuPlayer, u16 species2, u16 species, u8 isObedientBitSet); s32 CanRegisterMonForTradingBoard(struct GFtgtGnameSub rfuPlayer, u16 species2, u16 species, u8 isObedientBitSet);
s32 GetUnionRoomTradeMessageId(struct UnkLinkRfuStruct_02022B14Substruct rfuPlayer, struct UnkLinkRfuStruct_02022B14Substruct rfuPartner, u16 playerSpecies2, u16 partnerSpecies, u8 requestedType, u16 playerSpecies, u8 isObedientBitSet); s32 GetUnionRoomTradeMessageId(struct GFtgtGnameSub rfuPlayer, struct GFtgtGnameSub rfuPartner, u16 playerSpecies2, u16 partnerSpecies, u8 requestedType, u16 playerSpecies, u8 isObedientBitSet);
#endif //GUARD_TRADE_H #endif //GUARD_TRADE_H
+2 -2
View File
@@ -6,7 +6,7 @@
struct UnkStruct_Shared struct UnkStruct_Shared
{ {
struct UnkLinkRfuStruct_02022B14 field_0; struct GFtgtGname field_0;
u8 ALIGNED(4) playerName[PLAYER_NAME_LENGTH]; u8 ALIGNED(4) playerName[PLAYER_NAME_LENGTH];
}; };
@@ -149,7 +149,7 @@ struct TradeUnkStruct
u32 personality; u32 personality;
}; };
extern struct UnkLinkRfuStruct_02022B14Substruct gUnknown_203B064; extern struct GFtgtGnameSub gUnknown_203B064;
extern u16 gUnionRoomOfferedSpecies; extern u16 gUnionRoomOfferedSpecies;
extern u8 gUnionRoomRequestedMonType; extern u8 gUnionRoomRequestedMonType;
+15 -18
View File
@@ -58,10 +58,7 @@ struct UnkRfuStruct_2
/* 0x0fe */ u16 unk_fe; /* 0x0fe */ u16 unk_fe;
/* 0x100 */ u16 unk_100; /* 0x100 */ u16 unk_100;
/* 0x102 */ u8 unk_102; /* 0x102 */ u8 unk_102;
/* 0x103 */ u8 filler_103[0x10A - 0x103]; /* 0x104 */ struct RfuTgtData unk_104;
/* 0x10A */ struct UnkLinkRfuStruct_02022B14 unk_10A;
/* 0x11B */ u8 filler_;
/* 0x11C */ u8 playerName[PLAYER_NAME_LENGTH];
/* 0x124 */ struct UnkRfuStruct_2_Sub_124 unk_124; /* 0x124 */ struct UnkRfuStruct_2_Sub_124 unk_124;
/* 0x6a0 */ struct UnkRfuStruct_2_Sub_9e8 unk_9e8; /* 0x6a0 */ struct UnkRfuStruct_2_Sub_9e8 unk_9e8;
/* 0x8d4 */ struct UnkRfuStruct_2_Sub_c1c unk_c1c; /* 0x8d4 */ struct UnkRfuStruct_2_Sub_c1c unk_c1c;
@@ -112,7 +109,7 @@ static struct RfuAPIBuffer gRfuAPIBuffer;
static u8 gUnknown_3001FF8[14]; static u8 gUnknown_3001FF8[14];
static u16 gUnknown_3002008[7]; static u16 gUnknown_3002008[7];
struct UnkLinkRfuStruct_02022B14 gUnknown_3005440; struct GFtgtGname gUnknown_3005440;
struct UnkRfuStruct_2 Rfu; struct UnkRfuStruct_2 Rfu;
u8 gUnknown_3005E00[PLAYER_NAME_LENGTH]; u8 gUnknown_3005E00[PLAYER_NAME_LENGTH];
@@ -1033,7 +1030,7 @@ static void rfu_func_080F97B8(void)
} }
} }
struct UnkLinkRfuStruct_02022B14 *sub_80F9800(void) struct GFtgtGname *sub_80F9800(void)
{ {
return &gUnknown_3005440; return &gUnknown_3005440;
} }
@@ -1994,7 +1991,7 @@ static void sub_80FAF1C(void)
void sub_80FAF34(void) void sub_80FAF34(void)
{ {
memset(&gUnknown_3005440, 0, 0xD); memset(&gUnknown_3005440, 0, RFU_GAME_NAME_LENGTH);
sub_80FCB54(&gUnknown_3005440, 0, 0, 0); sub_80FCB54(&gUnknown_3005440, 0, 0, 0);
} }
@@ -2107,7 +2104,7 @@ static void sub_80FB184(u8 a0, u8 unused1)
{ {
if ((gUnknown_3005E10.unk_14 >> i) & 1) if ((gUnknown_3005E10.unk_14 >> i) & 1)
{ {
struct UnkLinkRfuStruct_02022B14 *structPtr = (void *)&gRfuLinkStatus->partner[i].gname; struct GFtgtGname *structPtr = (void *)&gRfuLinkStatus->partner[i].gname;
if (structPtr->unk_0a_0 == sub_80F9800()->unk_0a_0) if (structPtr->unk_0a_0 == sub_80F9800()->unk_0a_0)
{ {
Rfu.unk_cd1[i] = 0; Rfu.unk_cd1[i] = 0;
@@ -2267,7 +2264,7 @@ static u8 sub_80FB5A0(s32 a0)
{ {
if ((a0 >> i) & 1) if ((a0 >> i) & 1)
{ {
struct UnkLinkRfuStruct_02022B14 *structPtr = (void *)&gRfuLinkStatus->partner[i].gname; struct GFtgtGname *structPtr = (void *)&gRfuLinkStatus->partner[i].gname;
if (structPtr->unk_0a_0 == 0x45) if (structPtr->unk_0a_0 == 0x45)
ret |= (1 << i); ret |= (1 << i);
} }
@@ -2565,7 +2562,7 @@ static u8 sub_80FBC70(const u8 *a0, u16 a1)
for (i = 0; i < 4; i++) for (i = 0; i < 4; i++)
{ {
u16 trainerId = ReadU16(((struct UnkLinkRfuStruct_02022B14 *)gRfuLinkStatus->partner[i].gname)->unk_00.playerTrainerId); u16 trainerId = ReadU16(((struct GFtgtGname *)gRfuLinkStatus->partner[i].gname)->unk_00.playerTrainerId);
if (sub_80FA44C(gRfuLinkStatus->partner[i].serialNo) if (sub_80FA44C(gRfuLinkStatus->partner[i].serialNo)
&& !StringCompare(a0, gRfuLinkStatus->partner[i].uname) && !StringCompare(a0, gRfuLinkStatus->partner[i].uname)
&& a1 == trainerId) && a1 == trainerId)
@@ -2697,7 +2694,7 @@ void sub_80FBF54(const u8 *src, u16 trainerId)
data[8] = trainerId; data[8] = trainerId;
} }
static bool32 sub_80FBF98(s16 a1, struct UnkLinkRfuStruct_02022B14 *structPtr) static bool32 sub_80FBF98(s16 a1, struct GFtgtGname *structPtr)
{ {
if (sub_80F9800()->unk_0a_0 == 0x45) if (sub_80F9800()->unk_0a_0 == 0x45)
{ {
@@ -2710,7 +2707,7 @@ static bool32 sub_80FBF98(s16 a1, struct UnkLinkRfuStruct_02022B14 *structPtr)
} }
else if (a1 == 0x44) else if (a1 == 0x44)
{ {
struct UnkLinkRfuStruct_02022B14 *structPtr2 = &Rfu.unk_10A; struct GFtgtGname *structPtr2 = (struct GFtgtGname *)&Rfu.unk_104.gname;
if (structPtr2->species == SPECIES_EGG) if (structPtr2->species == SPECIES_EGG)
{ {
if (structPtr->species == structPtr2->species) if (structPtr->species == structPtr2->species)
@@ -2742,11 +2739,11 @@ static void sub_80FC028(u8 taskId)
if (Rfu.unk_ccd != 0 && gUnknown_3005E10.unk_06 == 0) if (Rfu.unk_ccd != 0 && gUnknown_3005E10.unk_06 == 0)
{ {
u16 trainerId = ReadU16(Rfu.unk_10A.unk_00.playerTrainerId); u16 trainerId = ReadU16(((struct GFtgtGname *)&Rfu.unk_104.gname)->unk_00.playerTrainerId);
u8 id = sub_80FBC70(Rfu.playerName, trainerId); u8 id = sub_80FBC70(Rfu.unk_104.uname, trainerId);
if (id != 0xFF) if (id != 0xFF)
{ {
if (!sub_80FBF98(gTasks[taskId].data[1], (struct UnkLinkRfuStruct_02022B14 *)&gRfuLinkStatus->partner[id].gname)) if (!sub_80FBF98(gTasks[taskId].data[1], (struct GFtgtGname *)&gRfuLinkStatus->partner[id].gname))
{ {
if (gRfuLinkStatus->partner[id].slot != 0xFF && !sub_80FD610(gRfuLinkStatus->partner[id].id, 0x5A)) if (gRfuLinkStatus->partner[id].slot != 0xFF && !sub_80FD610(gRfuLinkStatus->partner[id].id, 0x5A))
{ {
@@ -2763,14 +2760,14 @@ static void sub_80FC028(u8 taskId)
} }
} }
void sub_80FC114(const u8 *name, struct UnkLinkRfuStruct_02022B14 *structPtr, u8 a2) void sub_80FC114(const u8 *name, struct GFtgtGname *structPtr, u8 a2)
{ {
u8 taskId, taskId2; u8 taskId, taskId2;
Rfu.unk_ccf = 0; Rfu.unk_ccf = 0;
Rfu.unk_f1 = 0; Rfu.unk_f1 = 0;
StringCopy(Rfu.playerName, name); StringCopy(Rfu.unk_104.uname, name);
memcpy(&Rfu.unk_10A, structPtr, 0xD); memcpy(Rfu.unk_104.gname, structPtr, RFU_GAME_NAME_LENGTH);
sub_80FEB3C(); sub_80FEB3C();
taskId = CreateTask(sub_80FC028, 2); taskId = CreateTask(sub_80FC028, 2);
gTasks[taskId].data[1] = a2; gTasks[taskId].data[1] = a2;
+2 -2
View File
@@ -3881,7 +3881,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 obedience = GetMonData(&gPlayerParty[gPartyMenu.slotId], MON_DATA_OBEDIENCE); u8 obedience = GetMonData(&gPlayerParty[gPartyMenu.slotId], MON_DATA_OBEDIENCE);
switch (CanRegisterMonForTradingBoard(*(struct UnkLinkRfuStruct_02022B14Substruct *)sub_80F9800(), species2, species, obedience)) switch (CanRegisterMonForTradingBoard(*(struct GFtgtGnameSub *)sub_80F9800(), species2, species, obedience))
{ {
case CANT_REGISTER_MON: case CANT_REGISTER_MON:
StringExpandPlaceholders(gStringVar4, gText_PkmnCantBeTradedNow); StringExpandPlaceholders(gStringVar4, gText_PkmnCantBeTradedNow);
@@ -3907,7 +3907,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 obedience = GetMonData(&gPlayerParty[gPartyMenu.slotId], MON_DATA_OBEDIENCE); u8 obedience = GetMonData(&gPlayerParty[gPartyMenu.slotId], MON_DATA_OBEDIENCE);
u32 stringId = GetUnionRoomTradeMessageId(*(struct UnkLinkRfuStruct_02022B14Substruct *)sub_80F9800(), gUnknown_203B064, species2, gUnionRoomOfferedSpecies, gUnionRoomRequestedMonType, species, obedience); u32 stringId = GetUnionRoomTradeMessageId(*(struct GFtgtGnameSub *)sub_80F9800(), gUnknown_203B064, species2, gUnionRoomOfferedSpecies, gUnionRoomRequestedMonType, species, obedience);
if (stringId != UR_TRADE_MSG_NONE) if (stringId != UR_TRADE_MSG_NONE)
{ {
+2 -2
View File
@@ -2763,7 +2763,7 @@ static bool32 IsDeoxysOrMewUntradable(u16 species, bool8 isObedientBitSet)
return FALSE; return FALSE;
} }
int GetUnionRoomTradeMessageId(struct UnkLinkRfuStruct_02022B14Substruct a0, struct UnkLinkRfuStruct_02022B14Substruct a1, u16 species1, u16 species2, u8 type, u16 species3, u8 isObedientBitSet) int GetUnionRoomTradeMessageId(struct GFtgtGnameSub a0, struct GFtgtGnameSub a1, u16 species1, u16 species2, u8 type, u16 species3, u8 isObedientBitSet)
{ {
u8 r9 = a0.hasNationalDex; u8 r9 = a0.hasNationalDex;
u8 r4 = a0.isChampion; u8 r4 = a0.isChampion;
@@ -2843,7 +2843,7 @@ int GetUnionRoomTradeMessageId(struct UnkLinkRfuStruct_02022B14Substruct a0, str
return 0; return 0;
} }
int CanRegisterMonForTradingBoard(struct UnkLinkRfuStruct_02022B14Substruct a0, u16 species, u16 a2, u8 a3) int CanRegisterMonForTradingBoard(struct GFtgtGnameSub a0, u16 species, u16 a2, u8 a3)
{ {
u8 canTradeEggAndNational = a0.hasNationalDex; u8 canTradeEggAndNational = a0.hasNationalDex;