pokeemerald/include/union_room.h
2020-06-01 10:23:12 -04:00

174 lines
3.5 KiB
C

#ifndef GUARD_UNION_ROOM_H
#define GUARD_UNION_ROOM_H
#include "link_rfu.h"
#include "constants/union_room.h"
// Exported type declarations
struct WirelessGnameUnamePair
{
struct GFtgtGname gname;
u8 ALIGNED(4) playerName[PLAYER_NAME_LENGTH + 1];
};
struct UnkStruct_x1C // WirelessLink_Member?
{
struct WirelessGnameUnamePair gname_uname;
u8 active:1;
};
struct UnkStruct_x20 // WirelessLink_Member?
{
struct WirelessGnameUnamePair gname_uname;
u16 field_18;
u8 groupScheduledAnim:2;
u8 field_1A_1:1;
u8 field_1B;
u8 field_1D;
u8 field_1E;
u8 field_1F;
};
struct UnkStruct_Main0
{
struct UnkStruct_x20 arr[MAX_UNION_ROOM_PLAYERS];
};
struct UnkStruct_Main4
{
struct UnkStruct_x1C arr[5];
};
struct UnkStruct_Main8
{
struct UnkStruct_x20 arr[5];
};
struct WirelessLink_Leader
{
struct UnkStruct_Main0 *field_0;
struct UnkStruct_Main4 *field_4;
struct UnkStruct_Main8 *field_8;
u8 state;
u8 textState;
u8 delayTimerAfterOk;
u8 listWindowId;
u8 bButtonCancelWindowId;
u8 nPlayerModeWindowId;
u8 listTaskId;
u8 playerCount;
u16 field_14;
u8 field_16;
u8 listenTaskId;
u8 activity;
u8 field_19;
u16 field_1A;
};
struct WirelessLink_Group
{
struct UnkStruct_Main0 *field_0;
struct UnkStruct_Main4 *field_4;
u8 state;
u8 textState;
u8 field_A;
u8 listWindowId;
u8 bButtonCancelWindowId;
u8 playerNameAndIdWindowId;
u8 listTaskId;
u8 leaderId;
u8 field_10;
u8 listenTaskId;
u8 isWonderNews;
u8 field_13;
u8 refreshTimer;
u8 delayBeforePrint;
};
struct UnionRoomObject
{
u8 state;
u8 gfxId;
s8 animState;
u8 schedAnim;
};
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 field_12;
u8 state;
u8 stateAfterPrint;
u8 textState;
u8 field_17;
u8 field_18;
u8 field_19;
u8 field_1A;
u8 topListMenuWindowId;
u8 topListMenuId;
u8 tradeBoardSelectWindowId;
u8 tradeBoardDetailsWindowId;
u8 field_1F;
u8 field_20;
u8 spriteIds[40];
u8 field_49;
u8 field_4A;
u16 playerSendBuffer[6];
u8 activityRequestStrbufs[4][16];
u16 partnerYesNoResponse;
u16 recvActivityRequest[3];
struct UnionRoomObject objects[MAX_UNION_ROOM_PLAYERS];
u8 field_C0[12][15];
u8 field_174[48];
u8 field_1A4[200];
};
union WirelessLink_Main
{
struct WirelessLink_Leader *leader;
struct WirelessLink_Group *group;
struct WirelessLink_URoom *uRoom;
};
struct UnionRoomTrade
{
u16 field_0;
u16 type;
u32 playerPersonality;
u8 field_8;
u8 field_9;
u16 playerSpecies;
u16 playerLevel;
u16 species;
u16 level;
u16 field_12;
u32 personality;
};
// Exported RAM declarations
extern u8 gPlayerCurrActivity;
extern union WirelessLink_Main gUnknown_02022C30;
extern struct GFtgtGnameSub gPartnerTgtGnameSub;
extern u16 gUnionRoomOfferedSpecies;
extern u8 gUnionRoomRequestedMonType;
// Exported ROM declarations
u8 CreateTask_ReturnFromLinkTrade(void);
void nullsub_89(u8 taskId);
void var_800D_set_xB(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