V-Gears 0
Free Final Fantasy VII engine.
VGearsSerializer.h
Go to the documentation of this file.
1/*
2 * Copyright (C) 2022 The V-Gears Team
3 *
4 * This file is part of V-Gears
5 *
6 * V-Gears is free software: you can redistribute it and/or modify it under
7 * terms of the GNU General Public License as published by the Free Software
8 * Foundation, version 3.0 (GPLv3) of the License.
9 *
10 * V-Gears is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
14 */
15
16#pragma once
17
18#include <OgreAxisAlignedBox.h>
19#include <OgreColourValue.h>
20#include <OgreDataStream.h>
21#include <OgreSerializer.h>
22#include <Ogre.h>
23#include "common/TypeDefine.h"
24
25namespace VGears{
26
30 class Serializer : public Ogre::Serializer{
31
32 public:
33
39 Serializer();
40
44 virtual ~Serializer();
45
46 // TODO implement some more serialization!?
47 // ISerializeable readObject(serializer)
48 // virtual void readObject(ISerializable o) { o.readObject(this); }
49 // template<T> readObject(T)
50
51 protected:
52
59 void readObject(Ogre::DataStreamPtr &stream, Ogre::Vector2 &dest);
60
67 void readObject(Ogre::DataStreamPtr &stream, Ogre::Vector3 &dest);
68
77 void readObject(
78 Ogre::DataStreamPtr &stream, Ogre::AxisAlignedBox &dest
79 );
80
87 void readObject(Ogre::DataStreamPtr &stream, Pixel &dest);
88
96 void ReadChars(
97 Ogre::DataStreamPtr& stream, char* dest, size_t count
98 );
99
107 void Read1ByteBool(Ogre::DataStreamPtr &stream, bool &dest);
108
116 void Read2ByteBool(Ogre::DataStreamPtr &stream, bool &dest);
117
124 void ReadShort(Ogre::DataStreamPtr &stream, uint16 &dest);
125
132 void ReadInt16(Ogre::DataStream &stream, sint16 &dest);
133
140 void ReadUInt16(Ogre::DataStream &stream, uint16 &dest);
141
148 void ReadInt16(Ogre::DataStreamPtr &stream, sint16 &dest);
149
156 void ReadUInt16(Ogre::DataStreamPtr &stream, uint16 &dest);
157
164 void ReadUInt32(Ogre::DataStreamPtr &stream, uint32 &dest);
165
172 void ReadSInt32(Ogre::DataStreamPtr &stream, sint32 &dest);
173
180 void ReadUInt32(Ogre::DataStream &stream, uint32 &dest);
181
188 void ReadUInt8(Ogre::DataStream& stream, uint8 &dest);
189
196 void ReadUInt8(Ogre::DataStreamPtr &stream, uint8 &dest);
197
204 void ReadFloat(Ogre::DataStreamPtr &stream, float &dest);
205
209 void ReadEndString(
210 Ogre::DataStreamPtr &stream, const String &end_text
211 );
212
216 String GetLine(Ogre::DataStreamPtr &stream) const;
217
221 static const String TAG_COMMENT;
222
223 };
224}
225
Handles file serialization.
Definition: VGearsSerializer.h:30
void Read1ByteBool(Ogre::DataStreamPtr &stream, bool &dest)
Reads one byte from a stream and evaluates it as a boolean.
Definition: VGearsSerializer.cpp:70
void ReadEndString(Ogre::DataStreamPtr &stream, const String &end_text)
Definition: VGearsSerializer.cpp:134
void ReadShort(Ogre::DataStreamPtr &stream, uint16 &dest)
Reads 16 bytes from a stream and evaluates as an unsigned short.
Definition: VGearsSerializer.cpp:82
String GetLine(Ogre::DataStreamPtr &stream) const
Definition: VGearsSerializer.cpp:126
void ReadUInt8(Ogre::DataStream &stream, uint8 &dest)
Reads 8 bytes from a stream and evaluates as an unsigned int.
Definition: VGearsSerializer.cpp:114
void readObject(Ogre::DataStreamPtr &stream, Ogre::Vector2 &dest)
Reads an object as a 2 dimensional vector.
Definition: VGearsSerializer.cpp:32
virtual ~Serializer()
Destructor.
Definition: VGearsSerializer.cpp:30
void ReadChars(Ogre::DataStreamPtr &stream, char *dest, size_t count)
Reads a stream as text.
Definition: VGearsSerializer.cpp:66
Serializer()
Constructor.
Definition: VGearsSerializer.cpp:26
static const String TAG_COMMENT
A comment tag.
Definition: VGearsSerializer.h:221
void ReadInt16(Ogre::DataStream &stream, sint16 &dest)
Reads 16 bytes from a stream and evaluates as a signed integer.
Definition: VGearsSerializer.cpp:86
void ReadSInt32(Ogre::DataStreamPtr &stream, sint32 &dest)
Reads 32 bytes from a stream and evaluates as a signed int.
Definition: VGearsSerializer.cpp:106
void ReadUInt32(Ogre::DataStreamPtr &stream, uint32 &dest)
Reads 32 bytes from a stream and evaluates as an unsigned int.
Definition: VGearsSerializer.cpp:102
void Read2ByteBool(Ogre::DataStreamPtr &stream, bool &dest)
Reads two bytes from a stream and evaluates them as a boolean.
Definition: VGearsSerializer.cpp:76
void ReadUInt16(Ogre::DataStream &stream, uint16 &dest)
Reads 16 bytes from a stream and evaluates as an unsigned int.
Definition: VGearsSerializer.cpp:90
void ReadFloat(Ogre::DataStreamPtr &stream, float &dest)
Reads bytes from a stream and evaluates them as a float.
Definition: VGearsSerializer.cpp:122
Definition: FF7NameLookup.h:24
Ogre::int32 sint32
Definition: TypeDefine.h:36
Ogre::uint16 uint16
Definition: TypeDefine.h:32
Ogre::String String
Definition: TypeDefine.h:37
Ogre::int16 sint16
Definition: TypeDefine.h:35
Ogre::uint32 uint32
Definition: TypeDefine.h:33
Ogre::uint8 uint8
Definition: TypeDefine.h:31
Pixel coordinates.
Definition: TypeDefine.h:76