aboutsummaryrefslogtreecommitdiff
path: root/src/reader.hh
diff options
context:
space:
mode:
Diffstat (limited to 'src/reader.hh')
-rw-r--r--src/reader.hh47
1 files changed, 47 insertions, 0 deletions
diff --git a/src/reader.hh b/src/reader.hh
index 2dbf02f..7db1ca7 100644
--- a/src/reader.hh
+++ b/src/reader.hh
@@ -3,6 +3,12 @@
#include "common.hh"
+struct TPlayerData;
+
+typedef void TRefreshSectorFunction(int SectorX, int SectorY, int SectorZ,
+ const uint8 *Data, int Size);
+typedef void TSendMailsFunction(TPlayerData *PlayerData);
+
enum TReaderThreadOrderType: int {
READER_ORDER_TERMINATE = 0,
READER_ORDER_LOADSECTOR = 1,
@@ -14,4 +20,45 @@ enum TReaderThreadReplyType: int {
READER_REPLY_CHARACTERDATA = 1,
};
+struct TReaderThreadOrder {
+ TReaderThreadOrderType OrderType;
+ int SectorX;
+ int SectorY;
+ int SectorZ;
+ uint32 CharacterID;
+};
+
+struct TReaderThreadReply {
+ TReaderThreadReplyType ReplyType;
+ int SectorX;
+ int SectorY;
+ int SectorZ;
+ uint8 *Data;
+ int Size;
+};
+
+void InitReaderBuffers(void);
+void InsertOrder(TReaderThreadOrderType OrderType,
+ int SectorX, int SectorY, int SectorZ, uint32 CharacterID);
+void GetOrder(TReaderThreadOrder *Order);
+void TerminateReaderOrder(void);
+void LoadSectorOrder(int SectorX, int SectorY, int SectorZ);
+void LoadCharacterOrder(uint32 CharacterID);
+void ProcessLoadSectorOrder(int SectorX, int SectorY, int SectorZ);
+void ProcessLoadCharacterOrder(uint32 CharacterID);
+int ReaderThreadLoop(void *Unused);
+
+void InsertReply(TReaderThreadReplyType ReplyType,
+ int SectorX, int SectorY, int SectorZ, uint8 *Data, int Size);
+bool GetReply(TReaderThreadReply *Reply);
+void SectorReply(int SectorX, int SectorY, int SectorZ, uint8 *Data, int Size);
+void CharacterReply(uint32 CharacterID);
+void ProcessSectorReply(TRefreshSectorFunction *RefreshSector,
+ int SectorX, int SectorY, int SectorZ, uint8 *Data, int Size);
+void ProcessCharacterReply(TSendMailsFunction *SendMails, uint32 CharacterID);
+void ProcessReaderThreadReplies(TRefreshSectorFunction *RefreshSector, TSendMailsFunction *SendMails);
+
+void InitReader(void);
+void ExitReader(void);
+
#endif //TIBIA_READER_HH