V-Gears 0
Free Final Fantasy VII engine.
VGearsAFileSerializer.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 "common/TypeDefine.h"
19#include "VGearsAFile.h"
20#include "VGearsSerializer.h"
21
22namespace VGears{
23
28
29 public:
30
35
39 virtual ~AFileSerializer();
40
47 void ImportAFile(Ogre::DataStreamPtr &stream, AFile* dest);
48
52 struct Header{
53
58
63
68
73
78 };
79
80 protected:
81
87 virtual void ReadFileHeader(Ogre::DataStreamPtr &stream) final;
88
95 void readObject(Ogre::DataStreamPtr &stream, AFile::Frame &dest);
96
98
106 template<typename ValueType> void ReadVector(
107 Ogre::DataStreamPtr &stream, std::vector<ValueType> &dest,
108 size_t count
109 );
110
111 private:
112
117 };
118}
Handles the serialization of A files.
Definition: VGearsAFileSerializer.h:27
void readObject(Ogre::DataStreamPtr &stream, AFile::Frame &dest)
Reads an object as an A file.
Definition: VGearsAFileSerializer.cpp:46
Header header_
The file header.
Definition: VGearsAFileSerializer.h:116
virtual void ReadFileHeader(Ogre::DataStreamPtr &stream) final
Reads a file header and sets the instance data.
Definition: VGearsAFileSerializer.cpp:40
virtual ~AFileSerializer()
Destructor.
Definition: VGearsAFileSerializer.cpp:26
AFileSerializer()
Constructor.
Definition: VGearsAFileSerializer.cpp:24
void ImportAFile(Ogre::DataStreamPtr &stream, AFile *dest)
Imports an A file.
Definition: VGearsAFileSerializer.cpp:53
void ReadVector(Ogre::DataStreamPtr &stream, std::vector< ValueType > &dest, size_t count)
Reads a stream as a vector.
Definition: VGearsAFileSerializer.cpp:28
Handles A files.
Definition: VGearsAFile.h:30
Handles file serialization.
Definition: VGearsSerializer.h:30
void readObject(Ogre::DataStreamPtr &stream, Ogre::Vector2 &dest)
Reads an object as a 2 dimensional vector.
Definition: VGearsSerializer.cpp:32
Definition: FF7NameLookup.h:24
Ogre::uint32 uint32
Definition: TypeDefine.h:33
An A file header.
Definition: VGearsAFileSerializer.h:52
uint32 rotation_order
The axis rotation order.
Definition: VGearsAFileSerializer.h:72
uint32 runtime_data[5]
Definition: VGearsAFileSerializer.h:77
uint32 bone_count
The number of bones.
Definition: VGearsAFileSerializer.h:67
uint32 version
The file type version.
Definition: VGearsAFileSerializer.h:57
uint32 frame_count
The frame count.
Definition: VGearsAFileSerializer.h:62
A frame in an animation.
Definition: VGearsAFile.h:85