mirror of
https://github.com/Ninjdai1/pokeemerald.git
synced 2024-11-16 11:37:40 +01:00
174 lines
3.5 KiB
C
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
|