diff options
| author | fusion32 <marcopuzziello@gmail.com> | 2025-05-22 17:09:26 -0300 |
|---|---|---|
| committer | fusion32 <marcopuzziello@gmail.com> | 2025-05-22 17:09:26 -0300 |
| commit | c595a2c2935b5bfcb2c08cc9ec4a22db55bd1ff7 (patch) | |
| tree | 71cfc1618994dcfce80a2d9d31412992eaf8eaa4 /src/common.hh | |
| parent | 74f12f3f2bb6cafc25ba1e943d01583b1ac0d766 (diff) | |
| download | game-c595a2c2935b5bfcb2c08cc9ec4a22db55bd1ff7.tar.gz game-c595a2c2935b5bfcb2c08cc9ec4a22db55bd1ff7.zip | |
implement TReadStream, TReadBuffer, and TReadBinaryFile
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_ |
