V-Gears 0
Free Final Fantasy VII engine.
VGearsPFileSerializer.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 "VGearsPFile.h"
20#include "VGearsSerializer.h"
21
22namespace VGears{
23
28
29 public:
30
35
39 virtual ~PFileSerializer();
40
47 virtual void ImportPFile(Ogre::DataStreamPtr &stream, PFile* dest);
48
52 struct Header{
53
58
63
68
73
78
83
88
93
98
103
108
113
118
123
128
133
138 };
139
141
143
145
147
149
151
152 protected:
153
159 virtual void ReadFileHeader(Ogre::DataStreamPtr &stream);
160
167 virtual void readObject(Ogre::DataStreamPtr &stream, Colour &dest);
168
175 virtual void readObject(Ogre::DataStreamPtr &stream, Edge &dest);
176
183 virtual void readObject(
184 Ogre::DataStreamPtr &stream, PolygonDefinition &dest
185 );
186
193 virtual void readObject(Ogre::DataStreamPtr &stream, Group &dest);
194
201 virtual void readObject(
202 Ogre::DataStreamPtr &stream, BBoxEntry &dest
203 );
204
206
214 template<typename ValueType> void ReadVector(
215 Ogre::DataStreamPtr &stream, std::vector<ValueType> &dest,
216 size_t count
217 );
218
219 private:
220
225 };
226}
Handles the serialization of P files.
Definition: VGearsPFileSerializer.h:27
Header header_
The file header.
Definition: VGearsPFileSerializer.h:224
PFile::MaterialInformation MaterialInformation
Definition: VGearsPFileSerializer.h:146
virtual ~PFileSerializer()
Destructor.
Definition: VGearsPFileSerializer.cpp:23
virtual void ReadFileHeader(Ogre::DataStreamPtr &stream)
Reads a file header and sets the instance data.
Definition: VGearsPFileSerializer.cpp:37
PFile::PolygonDefinition PolygonDefinition
Definition: VGearsPFileSerializer.h:148
PFile::Colour Colour
Definition: VGearsPFileSerializer.h:150
PFile::Group Group
Definition: VGearsPFileSerializer.h:144
virtual void ImportPFile(Ogre::DataStreamPtr &stream, PFile *dest)
Imports a P file.
Definition: VGearsPFileSerializer.cpp:77
PFile::Edge Edge
Definition: VGearsPFileSerializer.h:142
void ReadVector(Ogre::DataStreamPtr &stream, std::vector< ValueType > &dest, size_t count)
Reads a stream as a vector.
Definition: VGearsPFileSerializer.cpp:25
PFile::BBoxEntry BBoxEntry
Definition: VGearsPFileSerializer.h:140
PFileSerializer()
Constructor.
Definition: VGearsPFileSerializer.cpp:21
virtual void readObject(Ogre::DataStreamPtr &stream, Colour &dest)
Reads an object as a colour.
Definition: VGearsPFileSerializer.cpp:50
Handles P files.
Definition: VGearsPFile.h:38
Ogre::ColourValue Colour
Definition: VGearsPFile.h:247
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
The header of a P file.
Definition: VGearsPFileSerializer.h:52
uint32 num_edges
Number of edges.
Definition: VGearsPFileSerializer.h:97
uint32 num_groups
Number of groups.
Definition: VGearsPFileSerializer.h:122
uint32 unknown_04
Unknown data.
Definition: VGearsPFileSerializer.h:62
uint32 runtime_data[0x10]
Definition: VGearsPFileSerializer.h:137
uint32 num_vertex_colors
Number of vertex colours.
Definition: VGearsPFileSerializer.h:92
uint32 num_unknown2
Number of unknown data blocks.
Definition: VGearsPFileSerializer.h:107
uint32 vertex_type
Type of vertices.
Definition: VGearsPFileSerializer.h:67
uint32 version
The file format version.
Definition: VGearsPFileSerializer.h:57
uint32 num_vertices
The number of vertices.
Definition: VGearsPFileSerializer.h:72
uint32 num_bboxes
Number of bounding boxes.
Definition: VGearsPFileSerializer.h:127
uint32 num_unknown3
Number of unknown data blocks.
Definition: VGearsPFileSerializer.h:112
uint32 num_texture_coordinates
Number of texture coordinates.
Definition: VGearsPFileSerializer.h:87
uint32 num_normals
The number of normals.
Definition: VGearsPFileSerializer.h:77
uint32 num_materials
Number of materials.
Definition: VGearsPFileSerializer.h:117
uint32 num_polygons
Number of polygons.
Definition: VGearsPFileSerializer.h:102
uint32 norm_index_table_flag
Definition: VGearsPFileSerializer.h:132
uint32 num_unknown1
Number of unknown data blocks.
Definition: VGearsPFileSerializer.h:82
A bounding box entry in a P file.
Definition: VGearsPFile.h:234
An edge.
Definition: VGearsPFile.h:98
Group data in a P file.
Definition: VGearsPFile.h:156
Material information in a P file.
Definition: VGearsPFile.h:145
A polygon definition in the P file.
Definition: VGearsPFile.h:109