aboutsummaryrefslogtreecommitdiff
path: root/src/common.hh
diff options
context:
space:
mode:
authorfusion32 <marcopuzziello@gmail.com>2025-05-22 17:09:26 -0300
committerfusion32 <marcopuzziello@gmail.com>2025-05-22 17:09:26 -0300
commitc595a2c2935b5bfcb2c08cc9ec4a22db55bd1ff7 (patch)
tree71cfc1618994dcfce80a2d9d31412992eaf8eaa4 /src/common.hh
parent74f12f3f2bb6cafc25ba1e943d01583b1ac0d766 (diff)
downloadgame-c595a2c2935b5bfcb2c08cc9ec4a22db55bd1ff7.tar.gz
game-c595a2c2935b5bfcb2c08cc9ec4a22db55bd1ff7.zip
implement TReadStream, TReadBuffer, and TReadBinaryFile
Diffstat (limited to 'src/common.hh')
-rw-r--r--src/common.hh34
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_