diff options
Diffstat (limited to 'src/reader.hh')
| -rw-r--r-- | src/reader.hh | 47 |
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 |
