diff options
Diffstat (limited to 'include/union_room.h')
-rw-r--r-- | include/union_room.h | 82 |
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 |