summaryrefslogtreecommitdiff
path: root/include/link.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/link.h')
-rw-r--r--include/link.h151
1 files changed, 79 insertions, 72 deletions
diff --git a/include/link.h b/include/link.h
index f41161d23..086bf787b 100644
--- a/include/link.h
+++ b/include/link.h
@@ -48,52 +48,60 @@
#define EXTRACT_LINK_ERRORS(status) \
(((status) & LINK_STAT_ERRORS) >> LINK_STAT_ERRORS_SHIFT)
-#define LINKCMD_SEND_LINK_TYPE 0x2222
-#define LINKCMD_0x2FFE 0x2FFE
-#define LINKCMD_SEND_HELD_KEYS 0x4444
-#define LINKCMD_0x5555 0x5555
-#define LINKCMD_0x5566 0x5566
-#define LINKCMD_0x5FFF 0x5FFF
-#define LINKCMD_0x6666 0x6666
-#define LINKCMD_0x7777 0x7777
-#define LINKCMD_CONT_BLOCK 0x8888
-#define LINKCMD_0xAAAA 0xAAAA
-#define LINKCMD_0xAAAB 0xAAAB
-#define LINKCMD_READY_TO_TRADE 0xAABB
-#define LINKCMD_READY_FINISH_TRADE 0xABCD
-#define LINKCMD_INIT_BLOCK 0xBBBB
-#define LINKCMD_READY_CANCEL_TRADE 0xBBCC
-#define LINKCMD_SEND_HELD_KEYS_2 0xCAFE
-#define LINKCMD_0xCCCC 0xCCCC
-#define LINKCMD_START_TRADE 0xCCDD
-#define LINKCMD_CONFIRM_FINISH_TRADE 0xDCBA
-#define LINKCMD_SET_MONS_TO_TRADE 0xDDDD
-#define LINKCMD_0xDDEE 0xDDEE
-#define LINKCMD_REQUEST_CANCEL 0xEEAA
-#define LINKCMD_CANCEL_TRADE 0xEEBB
-#define LINKCMD_0xEECC 0xEECC
-
-#define LINKTYPE_0x1111 0x1111 // trade
-#define LINKTYPE_0x1122 0x1122 // trade
-#define LINKTYPE_0x1133 0x1133 // trade
-#define LINKTYPE_0x1144 0x1144 // trade
-#define LINKTYPE_BATTLE 0x2211
-#define LINKTYPE_0x2222 0x2222 // unused battle?
-#define LINKTYPE_SINGLE_BATTLE 0x2233
-#define LINKTYPE_DOUBLE_BATTLE 0x2244
-#define LINKTYPE_MULTI_BATTLE 0x2255
-#define LINKTYPE_BATTLE_TOWER_50 0x2266
-#define LINKTYPE_BATTLE_TOWER_OPEN 0x2277
-#define LINKTYPE_BATTLE_TOWER 0x2288
-#define LINKTYPE_0x3311 0x3311
-#define LINKTYPE_0x3322 0x3322
-#define LINKTYPE_BERRY_BLENDER_SETUP 0x4411
-#define LINKTYPE_BERRY_BLENDER 0x4422
-#define LINKTYPE_0x5501 0x5501 // mystery event
-#define LINKTYPE_0x5502 0x5502 // unused?
-#define LINKTYPE_0x5503 0x5503 // eReader
-#define LINKTYPE_CONTEST_GMODE 0x6601
-#define LINKTYPE_CONTEST_EMODE 0x6602
+#define LINKCMD_BLENDER_STOP 0x1111
+#define LINKCMD_SEND_LINK_TYPE 0x2222
+#define LINKCMD_BLENDER_SCORE_MISS 0x2345
+#define LINKCMD_READY_EXIT_STANDBY 0x2FFE
+#define LINKCMD_SEND_PACKET 0x2FFF
+#define LINKCMD_BLENDER_SEND_KEYS 0x4444
+#define LINKCMD_BLENDER_SCORE_BEST 0x4523
+#define LINKCMD_BLENDER_SCORE_GOOD 0x5432
+#define LINKCMD_0x5555 0x5555
+#define LINKCMD_0x5566 0x5566
+#define LINKCMD_READY_CLOSE_LINK 0x5FFF
+#define LINKCMD_0x6666 0x6666
+#define LINKCMD_0x7777 0x7777
+#define LINKCMD_BLENDER_PLAY_AGAIN 0x7779
+#define LINKCMD_0x7FFF 0x7FFF
+#define LINKCMD_CONT_BLOCK 0x8888
+#define LINKCMD_BLENDER_NO_BERRIES 0x9999
+#define LINKCMD_BLENDER_NO_PBLOCK_SPACE 0xAAAA
+#define LINKCMD_0xAAAB 0xAAAB
+#define LINKCMD_READY_TO_TRADE 0xAABB
+#define LINKCMD_READY_FINISH_TRADE 0xABCD
+#define LINKCMD_INIT_BLOCK 0xBBBB
+#define LINKCMD_READY_CANCEL_TRADE 0xBBCC
+#define LINKCMD_SEND_HELD_KEYS 0xCAFE
+#define LINKCMD_SEND_BLOCK_REQ 0xCCCC
+#define LINKCMD_START_TRADE 0xCCDD
+#define LINKCMD_CONFIRM_FINISH_TRADE 0xDCBA
+#define LINKCMD_SET_MONS_TO_TRADE 0xDDDD
+#define LINKCMD_0xDDEE 0xDDEE
+#define LINKCMD_REQUEST_CANCEL 0xEEAA
+#define LINKCMD_CANCEL_TRADE 0xEEBB
+#define LINKCMD_0xEECC 0xEECC
+
+#define LINKTYPE_TRADE 0x1111
+#define LINKTYPE_TRADE_CONNECTING 0x1122
+#define LINKTYPE_TRADE_SETUP 0x1133
+#define LINKTYPE_TRADE_DISCONNECTED 0x1144
+#define LINKTYPE_BATTLE 0x2211
+#define LINKTYPE_0x2222 0x2222 // unused battle?
+#define LINKTYPE_SINGLE_BATTLE 0x2233
+#define LINKTYPE_DOUBLE_BATTLE 0x2244
+#define LINKTYPE_MULTI_BATTLE 0x2255
+#define LINKTYPE_BATTLE_TOWER_50 0x2266
+#define LINKTYPE_BATTLE_TOWER_OPEN 0x2277
+#define LINKTYPE_BATTLE_TOWER 0x2288
+#define LINKTYPE_RECORD_MIX_BEFORE 0x3311
+#define LINKTYPE_RECORD_MIX_AFTER 0x3322
+#define LINKTYPE_BERRY_BLENDER_SETUP 0x4411
+#define LINKTYPE_BERRY_BLENDER 0x4422
+#define LINKTYPE_MYSTERY_EVENT 0x5501
+#define LINKTYPE_0x5502 0x5502 // unused?
+#define LINKTYPE_EREADER 0x5503
+#define LINKTYPE_CONTEST_GMODE 0x6601
+#define LINKTYPE_CONTEST_EMODE 0x6602
struct LinkStatus
{
@@ -126,10 +134,10 @@ enum
EXCHANGE_NOT_STARTED,
EXCHANGE_COMPLETE,
EXCHANGE_TIMED_OUT,
- EXCHANGE_IN_PROGRESS,
+ EXCHANGE_DIFF_SELECTIONS,
EXCHANGE_PLAYER_NOT_READY,
EXCHANGE_PARTNER_NOT_READY,
- EXCHANGE_STAT_6,
+ EXCHANGE_WRONG_NUM_PLAYERS,
EXCHANGE_STAT_7
};
@@ -230,7 +238,7 @@ extern u16 gSendCmd[CMD_LENGTH];
extern struct LinkPlayer gLinkPlayers[5];
extern u16 word_3002910[];
extern bool8 gReceivedRemoteLinkPlayers;
-extern u32 gUnknown_020223C0;
+extern u32 gBerryBlenderKeySendAttempts;
extern bool8 gLinkVSyncDisabled;
extern u32 gLinkStatus;
@@ -273,26 +281,25 @@ bool32 InUnionRoom(void);
void LoadWirelessStatusIndicatorSpriteGfx(void);
bool8 IsLinkTaskFinished(void);
void CreateWirelessStatusIndicatorSprite(u8, u8);
-void sub_800ADF8(void);
-void sub_800B488(void);
+void SetLinkStandbyCallback(void);
+void SetWirelessCommType1(void);
void CheckShouldAdvanceLinkState(void);
-void sub_8011BD0(void);
u8 IsLinkMaster(void);
-void sub_800AC34(void);
+void SetCloseLinkCallback(void);
bool8 HandleLinkConnection(void);
void SetLinkDebugValues(u32 seed, u32 flags);
-void sub_800A418(void);
+void SetBerryBlenderLinkCallback(void);
void SetSuppressLinkErrorMessage(bool8 flag);
void sub_800B524(struct LinkPlayer *linkPlayer);
u8 GetSioMultiSI(void);
-void sub_800AAF4(void);
-void sub_800AF18(u32 status, u8 lastSendQueueCount, u8 lastRecvQueueCount, u8 unk_06);
+void ClearSavedLinkPlayers(void);
+void BufferLinkErrorInfo(u32 status, u8 lastSendQueueCount, u8 lastRecvQueueCount, u8 unk_06);
void sub_800B348(void);
-void sub_800B3A4(u32 who);
-bool32 sub_800A07C(void);
+void LinkPlayerFromBlock(u32 who);
+bool32 Link_AnyPartnersPlayingFRLG_JP(void);
void ResetLinkPlayerCount(void);
-void sub_800AA04(u8 a0);
-void sub_800B4C0(void);
+void SaveLinkPlayers(u8 a0);
+void SetWirelessCommType0(void);
bool32 sub_800B504(void);
extern u16 gLinkPartnersHeldKeys[6];
@@ -306,9 +313,9 @@ extern u16 gLinkHeldKeys;
extern u32 gLinkStatus;
extern u8 gUnknown_030030E4;
extern u8 gUnknown_030030E8;
-extern u8 gUnknown_030030EC[MAX_LINK_PLAYERS];
-extern u8 gUnknown_030030F0[MAX_LINK_PLAYERS];
-extern u16 gUnknown_030030F4;
+extern bool8 gReadyToExitStandby[MAX_LINK_PLAYERS];
+extern bool8 gReadyToCloseLink[MAX_LINK_PLAYERS];
+extern u16 gReadyCloseLinkType;
extern u8 gSuppressLinkErrorMessage;
extern u8 gWirelessCommType;
extern bool8 gSavedLinkPlayerCount;
@@ -331,19 +338,19 @@ extern u32 gFiller_03003080;
extern struct LinkPlayer gLocalLinkPlayer;
bool32 Link_AnyPartnersPlayingRubyOrSapphire(void);
-bool32 sub_800A03C(void);
+bool32 LinkDummy_Return2(void);
void SetLocalLinkPlayerId(u8);
u8 GetSavedPlayerCount(void);
void sub_8009FAC(void);
-bool8 sub_800A4D8(u8 a0);
-u8 sub_800A9D8(void);
+bool8 SendBlockRequest(u8 type);
+u8 GetLinkPlayerCountAsBitFlags(void);
u8 sub_800A0C8(s32, s32);
-u8 sub_800A9A8(void);
-void sub_800AD10(void);
-void sub_800AB18(void);
-void sub_8009F18(void);
-bool8 sub_800AA60(void);
-void sub_800ABF4(u16 a0);
+u8 GetSavedLinkPlayerCountAsBitFlags(void);
+void SetCloseLinkCallbackHandleJP(void);
+void CheckLinkPlayersMatchSaved(void);
+void StartSendingKeysToLink(void);
+bool8 DoesLinkPlayerCountMatchSaved(void);
+void SetCloseLinkCallbackAndType(u16 type);
bool32 IsSendingKeysToLink(void);
u32 GetLinkRecvQueueLength(void);