summaryrefslogtreecommitdiff
path: root/include/mystery_gift_link.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/mystery_gift_link.h')
-rw-r--r--include/mystery_gift_link.h49
1 files changed, 49 insertions, 0 deletions
diff --git a/include/mystery_gift_link.h b/include/mystery_gift_link.h
new file mode 100644
index 000000000..32100db5f
--- /dev/null
+++ b/include/mystery_gift_link.h
@@ -0,0 +1,49 @@
+#ifndef GUARD_MYSTERY_GIFT_LINK_H
+#define GUARD_MYSTERY_GIFT_LINK_H
+
+#define MG_LINK_BUFFER_SIZE 0x400
+
+// Send/receive ids for the Client/Server to make sure
+// they're sending/receiving the same thing
+enum {
+ MG_LINKID_CLIENT_SCRIPT = 16,
+ MG_LINKID_GAME_DATA,
+ MG_LINKID_GAME_STAT,
+ MG_LINKID_RESPONSE,
+ MG_LINKID_READY_END,
+ MG_LINKID_DYNAMIC_MSG,
+ MG_LINKID_CARD,
+ MG_LINKID_NEWS,
+ MG_LINKID_STAMP,
+ MG_LINKID_RAM_SCRIPT,
+ MG_LINKID_EREADER_TRAINER,
+ MG_LINKID_UNK_1,
+ MG_LINKID_UNK_2,
+};
+
+struct MysteryGiftLink
+{
+ s32 state;
+ u8 sendPlayerId;
+ u8 recvPlayerId;
+ u16 recvIdent;
+ u16 recvCounter;
+ u16 recvCRC;
+ u16 recvSize;
+ u16 sendIdent;
+ u16 sendCounter;
+ u16 sendCRC;
+ u16 sendSize;
+ void * recvBuffer;
+ const void * sendBuffer;
+ u32 (*recvFunc)(struct MysteryGiftLink *);
+ u32 (*sendFunc)(struct MysteryGiftLink *);
+};
+
+void MysteryGiftLink_Init(struct MysteryGiftLink * link, u32 sendPlayerId, u32 recvPlayerId);
+void MysteryGiftLink_InitSend(struct MysteryGiftLink * link, u32 ident, const void * src, u32 size);
+bool32 MysteryGiftLink_Recv(struct MysteryGiftLink * link);
+bool32 MysteryGiftLink_Send(struct MysteryGiftLink * link);
+void MysteryGiftLink_InitRecv(struct MysteryGiftLink * link, u32 ident, void * dest);
+
+#endif //GUARD_MYSTERY_GIFT_LINK_H