mirror of
https://github.com/edubart/otclient.git
synced 2025-10-16 20:43:26 +02:00
More work on OTBM/OTB/XML
This commit is contained in:
@@ -181,32 +181,3 @@ Point BinaryTree::getPoint()
|
||||
ret.y = getU8();
|
||||
return ret;
|
||||
}
|
||||
|
||||
/// BinaryWriteTree
|
||||
BinaryWriteTree::BinaryWriteTree(const FileStreamPtr& fin) :
|
||||
m_fin(fin)
|
||||
{
|
||||
}
|
||||
|
||||
BinaryWriteTree::~BinaryWriteTree()
|
||||
{
|
||||
m_fin->close();
|
||||
m_fin = nullptr;
|
||||
}
|
||||
|
||||
void BinaryWriteTree::startNode(uint8 type)
|
||||
{
|
||||
writeU8(BINARYTREE_NODE_START);
|
||||
writeU8(type);
|
||||
}
|
||||
|
||||
void BinaryWriteTree::endNode()
|
||||
{
|
||||
writeU8(BINARYTREE_NODE_END);
|
||||
}
|
||||
|
||||
void BinaryWriteTree::writeU8(uint8 u8) { m_fin->addU8(u8); }
|
||||
void BinaryWriteTree::writeU16(uint16 u16) { m_fin->addU16(u16); }
|
||||
void BinaryWriteTree::writeU32(uint32 u32) { m_fin->addU32(u32); }
|
||||
void BinaryWriteTree::writeString(const std::string& str) { m_fin->addString(str); }
|
||||
|
||||
|
@@ -66,25 +66,4 @@ private:
|
||||
uint m_startPos;
|
||||
};
|
||||
|
||||
class BinaryWriteTree : public stdext::shared_object
|
||||
{
|
||||
public:
|
||||
BinaryWriteTree(const FileStreamPtr& fin);
|
||||
~BinaryWriteTree();
|
||||
|
||||
void startNode(uint8 type);
|
||||
void endNode();
|
||||
|
||||
void writeU8(uint8 u8);
|
||||
void writeU16(uint16 u16);
|
||||
void writeU32(uint32 u32);
|
||||
void writeString(const std::string& str);
|
||||
|
||||
void writePoint(const Point& p) { writeU8(p.x); writeU8(p.y); }
|
||||
void writePos(const Position& p) { writeU16(p.x); writeU16(p.y); writeU8(p.z); }
|
||||
|
||||
private:
|
||||
FileStreamPtr m_fin;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
@@ -267,6 +267,17 @@ BinaryTreePtr FileStream::getBinaryTree()
|
||||
return BinaryTreePtr(new BinaryTree(asFileStream()));
|
||||
}
|
||||
|
||||
void FileStream::startNode(uint8 n)
|
||||
{
|
||||
addU8(BINARYTREE_NODE_START);
|
||||
addU8(n);
|
||||
}
|
||||
|
||||
void FileStream::endNode()
|
||||
{
|
||||
addU8(BINARYTREE_NODE_END);
|
||||
}
|
||||
|
||||
void FileStream::addU8(uint8 v)
|
||||
{
|
||||
if(!m_caching) {
|
||||
|
@@ -26,6 +26,8 @@
|
||||
#include "declarations.h"
|
||||
#include <framework/luaengine/luaobject.h>
|
||||
#include <framework/util/databuffer.h>
|
||||
#include <otclient/position.h>
|
||||
#include <framework/util/point.h>
|
||||
|
||||
struct PHYSFS_File;
|
||||
|
||||
@@ -55,11 +57,15 @@ public:
|
||||
std::string getString();
|
||||
BinaryTreePtr getBinaryTree();
|
||||
|
||||
void startNode(uint8 n);
|
||||
void endNode();
|
||||
void addU8(uint8 v);
|
||||
void addU16(uint16 v);
|
||||
void addU32(uint32 v);
|
||||
void addU64(uint64 v);
|
||||
void addString(const std::string& v);
|
||||
void addPos(const Position& pos) { addU16(pos.x); addU16(pos.y); addU8(pos.z); }
|
||||
void addPoint(const Point& p) { addU8(p.x); addU8(p.y); }
|
||||
|
||||
FileStreamPtr asFileStream() { return static_self_cast<FileStream>(); }
|
||||
|
||||
|
Reference in New Issue
Block a user