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.h82
1 files changed, 45 insertions, 37 deletions
diff --git a/include/union_room.h b/include/union_room.h
index 3cb8eb84a..e24bcd480 100644
--- a/include/union_room.h
+++ b/include/union_room.h
@@ -4,28 +4,34 @@
#include "global.h"
#include "link_rfu.h"
-struct UnkStruct_Shared
+// Return value of IsRequestedTypeAndSpeciesInPlayerParty
+#define UR_TRADE_MATCH 0
+#define UR_TRADE_NOTYPE 1
+#define UR_TRADE_NOEGG 2
+
+#define UROOM_MAX_GROUP_COUNT 8
+#define UROOM_MAX_PARTY_SIZE 5
+
+struct UnionGnameUnamePair
{
struct GFtgtGname gname;
- u8 ALIGNED(4) playerName[PLAYER_NAME_LENGTH];
+ u8 ALIGNED(4) uname[PLAYER_NAME_LENGTH + 1];
};
struct UnkStruct_x1C
{
- struct UnkStruct_Shared unk0;
- u8 unk18:1;
+ struct UnionGnameUnamePair gname_uname;
+ u8 active:1;
};
struct UnkStruct_x20
{
- struct UnkStruct_Shared unk;
+ struct UnionGnameUnamePair gname_uname;
u16 field_18;
- u8 field_1A_0:2;
- u8 field_1A_1:1;
+ u8 groupScheduledAnim:2;
+ bool8 field_1A_1:1;
u8 field_1B;
- u8 field_1D;
- u8 field_1E;
- u8 field_1F;
+ u32 field_1C; // unused
};
// These arrays are dynamically allocated but must be
@@ -51,17 +57,17 @@ struct UnkStruct_Leader
struct UnkStruct_Main0 * 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 playerCount;
+ u8 messageWindowId;
u8 field_15;
u8 field_16;
- u8 field_17;
- u8 field_18;
+ u8 listenTaskId;
+ u8 activity;
u8 field_19;
u16 field_1A;
};
@@ -72,18 +78,18 @@ struct UnkStruct_Group
struct UnkStruct_Main4 * field_4;
u8 state;
u8 textState;
- u8 field_A;
+ u8 field_A; // unused
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 field_13;
- u8 field_14;
- u8 field_15;
+ u8 listenTaskId;
+ u8 cardOrNews;
+ u8 field_13; // referenced but never set
+ u8 refreshTimer;
+ u8 delayBeforePrint;
};
struct UnionObj
@@ -109,19 +115,21 @@ struct UnkStruct_URoom
/* 0x018 */ u8 field_18;
/* 0x019 */ u8 field_19;
/* 0x01A */ u8 field_1A;
- /* 0x01B */ u8 field_1B;
- /* 0x01C */ u8 field_1C;
- /* 0x01D */ u8 field_1D;
- /* 0x01E */ u8 field_1E;
+ /* 0x01B */ u8 topListMenuWindowId;
+ /* 0x01C */ u8 topListMenuListMenuId;
+ /* 0x01D */ u8 tradeBoardSelectWindowId;
+ /* 0x01E */ u8 tradeBoardDetailsWindowId;
/* 0x01F */ u8 field_1F;
/* 0x020 */ u8 field_20;
/* 0x021 */ u8 spriteIds[40];
/* 0x049 */ u8 field_49;
- /* 0x04A */ u8 field_4A;
- /* 0x04C */ u16 field_4C[6];
- /* 0x058 */ u8 field_58[4][11];
- /* 0x084 */ u16 field_98;
- /* 0x086 */ u16 field_9A[3];
+ /* 0x04A */ u8 tradeBoardListMenuId;
+
+ // For communication with potential link partners
+ /* 0x04C */ u16 playerSendBuffer[6];
+ /* 0x058 */ u8 activityRequestStrbufs[4][11];
+ /* 0x084 */ u16 partnerYesNoResponse;
+ /* 0x086 */ u16 recvActivityRequest[3]; // activity[, species, level]
/* 0x08C */ struct UnionObj unionObjs[8];
/* 0x0AC */ u8 trainerCardStrbufs[12][15];
/* 0x160 */ u8 field_174[48];
@@ -150,10 +158,10 @@ struct UnionRoomTrade
u32 personality;
};
-extern struct GFtgtGnameSub gUnknown_203B064;
+extern struct GFtgtGnameSub gPartnerTgtGnameSub;
extern u16 gUnionRoomOfferedSpecies;
extern u8 gUnionRoomRequestedMonType;
-void sub_81173C0(u16 battleFlags);
+void StartUnionRoomBattle(u16 battleFlags);
#endif //GUARD_UNION_ROOM_H