summaryrefslogtreecommitdiff
path: root/include/union_room.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/union_room.h')
-rw-r--r--include/union_room.h145
1 files changed, 71 insertions, 74 deletions
diff --git a/include/union_room.h b/include/union_room.h
index 4c4cb5a62..563a048d3 100644
--- a/include/union_room.h
+++ b/include/union_room.h
@@ -2,71 +2,70 @@
#define GUARD_UNION_ROOM_H
#include "link_rfu.h"
+#include "link.h"
+#include "constants/union_room.h"
// Exported type declarations
-struct UnkStruct_Shared
+struct WirelessGnameUnamePair
{
- struct GFtgtGname field_0;
+ struct GFtgtGname gname;
u8 ALIGNED(4) playerName[PLAYER_NAME_LENGTH + 1];
};
struct UnkStruct_x1C
{
- struct UnkStruct_Shared unk0;
- u8 unk18:1;
+ struct WirelessGnameUnamePair gname_uname;
+ u8 active:1;
};
struct UnkStruct_x20
{
- struct UnkStruct_Shared unk;
- u16 field_18;
- u8 field_1A_0:2;
- u8 field_1A_1:1;
+ struct WirelessGnameUnamePair gname_uname;
+ u16 timeoutCounter;
+ u8 groupScheduledAnim:2;
+ bool8 useRedText:1; // Never set
u8 field_1B;
- u8 field_1D;
- u8 field_1E;
- u8 field_1F;
+ u8 filler[3];
};
struct UnkStruct_Main0
{
- struct UnkStruct_x20 arr[8];
+ struct UnkStruct_x20 arr[MAX_UNION_ROOM_PLAYERS];
};
struct UnkStruct_Main4
{
- struct UnkStruct_x1C arr[5];
+ struct UnkStruct_x1C arr[MAX_RFU_PLAYERS];
};
struct UnkStruct_Main8
{
- struct UnkStruct_x20 arr[5];
+ struct UnkStruct_x20 arr[MAX_RFU_PLAYERS];
};
-struct UnkStruct_Leader
+struct WirelessLink_Leader
{
struct UnkStruct_Main0 *field_0;
struct UnkStruct_Main4 *field_4;
struct UnkStruct_Main8 *field_8;
u8 state;
u8 textState;
- u8 field_E;
+ u8 delayTimerAfterOk;
u8 listWindowId;
- u8 field_10;
- u8 field_11;
+ u8 bButtonCancelWindowId;
+ u8 nPlayerModeWindowId;
u8 listTaskId;
- u8 field_13;
- u8 field_14;
- u8 field_15;
+ u8 playerCount;
+ u16 field_14;
u8 field_16;
- u8 field_17;
- u8 field_18;
- u8 field_19;
- u16 field_1A;
+ u8 listenTaskId;
+ u8 activity;
+ u8 joinRequestAnswer;
+ u16 memberConfirmTimeout;
};
-struct UnkStruct_Group
+struct WirelessLink_Group
{
struct UnkStruct_Main0 *field_0;
struct UnkStruct_Main4 *field_4;
@@ -74,98 +73,96 @@ struct UnkStruct_Group
u8 textState;
u8 field_A;
u8 listWindowId;
- u8 field_C;
- u8 field_D;
+ u8 bButtonCancelWindowId;
+ u8 playerNameAndIdWindowId;
u8 listTaskId;
- u8 field_F;
+ u8 leaderId;
u8 field_10;
- u8 field_11;
- u8 field_12;
+ u8 listenTaskId;
+ u8 isWonderNews;
u8 field_13;
- u8 field_14;
- u8 field_15;
+ u8 refreshTimer;
+ u8 delayBeforePrint;
};
-struct UnkStruct_8019BA8
+struct UnionRoomObject
{
- u8 field_0;
- u8 field_1;
- s8 field_2;
- u8 field_3;
+ u8 state;
+ u8 gfxId;
+ s8 animState;
+ u8 schedAnim;
};
-struct UnkStruct_URoom
+struct WirelessLink_URoom
{
struct UnkStruct_Main0 *field_0;
struct UnkStruct_Main4 *field_4;
struct UnkStruct_Main0 *field_8;
struct UnkStruct_Main4 *field_C;
- u16 field_10;
+ u16 unknown; // Never read
u16 field_12;
u8 state;
u8 stateAfterPrint;
u8 textState;
- u8 field_17;
- u8 field_18;
- u8 field_19;
- u8 field_1A;
- u8 field_1B;
- u8 field_1C;
- u8 field_1D;
- u8 field_1E;
- u8 field_1F;
- u8 field_20;
+ u8 filler[4];
+ u8 topListMenuWindowId;
+ u8 topListMenuId;
+ u8 tradeBoardSelectWindowId;
+ u8 tradeBoardDetailsWindowId;
+ u8 unused1;
+ u8 searchTaskId;
u8 spriteIds[40];
- u8 field_49;
- u8 field_4A;
- u16 field_4C[6];
- u8 field_58[0x98 - 0x58];
- u16 field_98;
- u16 field_9A[3];
- struct UnkStruct_8019BA8 field_A0[8];
- u8 field_C0[12][15];
- u8 field_174[48];
- u8 field_1A4[200];
+ u8 unused2;
+ u8 tradeBoardListMenuId;
+ u16 playerSendBuffer[6];
+ u8 activityRequestStrbufs[4][16];
+ u16 partnerYesNoResponse;
+ u16 recvActivityRequest[3];
+ struct UnionRoomObject objects[MAX_UNION_ROOM_PLAYERS];
+ u8 trainerCardStrBuffer[12][15];
+ u8 trainerCardColorStrBuffer[48];
+ u8 trainerCardMsgStrBuffer[200];
};
-union UnkUnion_Main
+union WirelessLink_Main
{
- struct UnkStruct_Leader *leader;
- struct UnkStruct_Group *group;
- struct UnkStruct_URoom *uRoom;
+ struct WirelessLink_Leader *leader;
+ struct WirelessLink_Group *group;
+ struct WirelessLink_URoom *uRoom;
};
struct UnionRoomTrade
{
- u16 field_0;
+ u16 state;
u16 type;
u32 playerPersonality;
- u8 field_8;
- u8 field_9;
+ u8 offerPlayerId;
+ u8 filler1;
u16 playerSpecies;
u16 playerLevel;
u16 species;
u16 level;
- u16 field_12;
+ u16 filler2;
u32 personality;
};
// Exported RAM declarations
-extern u8 gUnknown_02022C2C;
-extern union UnkUnion_Main gUnknown_02022C30;
-extern struct GFtgtGnameSub gUnknown_02022C38;
+extern u8 gPlayerCurrActivity;
+extern union WirelessLink_Main gUnknown_02022C30;
+extern struct GFtgtGnameSub gPartnerTgtGnameSub;
extern u16 gUnionRoomOfferedSpecies;
extern u8 gUnionRoomRequestedMonType;
// Exported ROM declarations
-u8 sub_8013F78(void);
-void nullsub_89(u8 taskId);
-void var_800D_set_xB(void);
+u8 CreateTask_CreateTradeMenu(void);
+void SetUsingUnionRoomStartMenu(void);
void MEvent_CreateTask_CardOrNewsWithFriend(u32 arg0);
void MEvent_CreateTask_CardOrNewsOverWireless(u32 arg0);
void MEvent_CreateTask_Leader(u32 arg0);
+u8 CreateTask_ListenToWireless(void);
+void StartUnionRoomBattle(u16 battleFlags);
#endif //GUARD_UNION_ROOM_H