diff options
Diffstat (limited to 'src/common.hh')
| -rw-r--r-- | src/common.hh | 34 |
1 files changed, 33 insertions, 1 deletions
diff --git a/src/common.hh b/src/common.hh index b057465..204cf2a 100644 --- a/src/common.hh +++ b/src/common.hh @@ -137,6 +137,38 @@ void SetPrintFunction(TPrintFunction *Function); void error(char *Text, ...) ATTR_PRINTF(1, 2); void print(int Level, char *Text, ...) ATTR_PRINTF(1, 2); -// +struct TReadStream { + // VIRTUAL FUNCTIONS + // ========================================================================= + virtual bool readFlag(void); // VTABLE[0] + virtual uint8 readByte(void) = 0; // VTABLE[1] + virtual uint16 readWord(void); // VTABLE[2] + virtual uint32 readQuad(void); // VTABLE[3] + virtual void readString(char *Buffer, int MaxLength); // VTABLE[4] + virtual void readBytes(uint8 *Buffer, int Count); // VTABLE[5] + virtual bool eof(void) = 0; // VTABLE[6] + virtual void skip(int Count) = 0; // VTABLE[7] +}; + +struct TReadBuffer: TReadStream { + // REGULAR FUNCTIONS + // ========================================================================= + TReadBuffer(uint8 *Data, int Size); + + // VIRTUAL FUNCTIONS + // ========================================================================= + uint8 readByte(void) override; + uint16 readWord(void) override; + uint32 readQuad(void) override; + void readBytes(uint8 *Buffer, int Count) override; + bool eof(void) override; + void skip(int Count) override; + + // DATA + // ========================================================================= + uint8 *Data; + int Size; + int Position; +}; #endif //TIBIA_COMMON_HH_ |
