ff7tk  1.0.0.16
Work with Final Fantasy 7 game data
FF7Save_Types.h
Go to the documentation of this file.
1 // SPDX-FileCopyrightText: 2012 - 2020 Chris Rizzitello <sithlord48@gmail.com>
2 // SPDX-License-Identifier: LGPL-3.0-or-later
3 
4 #pragma once
5 
6 #ifdef _MSC_VER
7 # define PACK(structure) \
8  __pragma(pack(push, 1)) \
9  structure \
10  __pragma(pack(pop))
11 #elif defined(__MINGW32__)
12 #define PACK(structure) structure __attribute__ ((gcc_struct, __packed__))
13 #else
14 #define PACK(structure) structure Q_PACKED
15 #endif
16 
17 #include <QVector>
18 #include <ff7tkdata_export.h>
19 #include <Type_FF7CHAR>
20 #include <Type_FF7CHOCOBO>
21 //Materia Type is included as part of FF7Char
22 /*~~~~~~~~~~~~~~~~~~~~~~~~STRUCT TYPES AND SAVE STRUCT~~~~~~~~~~~~~~~~*/
23 PACK(
24 struct FF7TKDATA_EXPORT LOVE {
25  qint8 aeris;
26  qint8 tifa;
27  qint8 yuffie;
28  qint8 barret;
29 });
30 
36 PACK(
37 struct FF7TKDATA_EXPORT FF7DESC {
38  quint8 level;
39  qint8 party[3];
40  quint8 name[16];
41  quint16 curHP;
42  quint16 maxHP;
43  quint16 curMP;
44  quint16 maxMP;
45  quint32 gil;
46  quint32 time;
47  quint8 location[32];
48 });
49 PACK(
50 struct FF7TKDATA_EXPORT FF7XYT {// size of 7. used for coords
51  qint16 x;
52  qint16 y;
53  quint16 t;
54  quint8 d;
55 });
56 
64 PACK(
65 struct FF7TKDATA_EXPORT FF7SLOT {
66  quint16 checksum;
67  quint8 z_1[2];
68  FF7DESC desc;
69  quint8 colors[4][3];
70  FF7CHAR chars[9];
71  qint8 party[3];
72  quint8 z_2[1];
73  quint16 items[320];
74  materia materias[200];
75  materia stolen[48];
76  quint8 z_3[32];
77  quint32 gil;
78  quint32 time;
79  quint8 timer[3];
80  quint8 z_4[13];
81  quint16 mapid;
82  quint16 locationid;
83  quint8 z_5[2];
84  FF7XYT coord;
85  quint8 z_6[3];
86  quint16 mprogress;
87  quint8 z_7[1];
88  LOVE love;
89  quint8 z_8[17];
90  quint16 battles;
91  quint16 runs;
92  quint16 menu_visible;
93  quint16 menu_locked;
94  quint8 z_9[16];
95  quint8 itemsmask_1;
96  quint8 materiacaves;
97  quint8 z_10[14];
98  quint8 keyitems[8];
99  quint8 z_11[8];
100  LOVE b_love;
101  quint8 z_12[1];
102  qint8 pennedchocos[4];
103  quint8 z_13[2];
104  quint8 u_weapon_hp[3];
105  quint8 seenpandora;
106  quint8 z_14[27];
107  quint8 tut_sub;
108  quint8 ruby_emerald;
109  quint8 z_15[2];
110  quint8 world_map_chocobos;
111  quint8 world_map_vehicles;
112  quint8 z_16[38];
113  quint8 condorlosses;
114  quint8 condorwins;
115  quint8 z_17[12];
116  quint16 condorfunds;
117  quint8 z_18[43];
118  quint8 bm_progress1;
119  quint8 bm_progress2;
120  quint8 z_19[38];
121  quint8 f_party[3];
122  quint8 z_20[4];
123  quint8 aeris_church;
124  quint8 z_21[49];
125  quint8 bm_progress3;
126  quint8 z_22[7];
127  quint16 gp;
128  quint8 z_23[4];
129  quint16 battlepoints;
130  quint8 z_24[6];
131  qint8 stables;
132  qint8 stablesoccupied;
133  quint8 z_25[1];
134  qint8 chocobomask;
135  quint8 chocomated;
136  quint8 z_26[40];
137  quint8 yuffieforest;
138  quint8 z_27[28];
139  quint8 donprogress;
140  quint8 z_28[31];
141  quint8 turtleflyers;
142  quint8 z_29[12];
143  quint8 reg_yuffie;
144  quint8 z_30[15];
145  quint8 midgartrainflags;
146  quint8 z_31[64];
147  FF7CHOCOBO chocobos[4];
148  quint8 z_32[13];
149  quint16 BikeHighScore;
150  quint8 SnowUnused;
151  quint32 SnowBegFastTime;
152  quint32 SnowExpFastTime;
153  quint32 SnowCrazyFastTime;
154  quint8 SnowBegScore;
155  quint8 SnowExpScore;
156  quint8 SnowCrazyScore;
157  quint8 Snowtempvar;
158  quint16 coster_2;
159  quint16 coster_3;
160  quint8 z_33[17];
161  quint16 coster_1;
162  quint8 z_34[1];
163  quint8 battleArenaSpecialWins;
164  quint8 z_35[1];
165  quint8 stablechocorating[6];
166  quint8 z_36[24];
167  qint16 cratersaveMapId;
168  qint16 cratersaveX;
169  qint16 cratersaveY;
170  qint16 cratersaveZ;
171  quint8 z_37[64];
172  qint8 disc;
173  quint8 z_38[1];
174  quint8 intbombing;
175  quint8 z_39[3];
176  quint16 steps;
177  quint8 z_40[22];
178  quint8 field_help;
179  quint8 z_41[1];
180  quint8 chocobonames[6][6];
181  quint16 chocostaminas[6];
182  quint8 reg_vinny;
183  quint8 z_42[23];
184  quint8 location[24];
185  quint8 z_43[5];
186  quint8 tut_save;
187  quint8 z_44[14];
188  quint8 wonsubgame;
189  quint8 z_45[35];
190  quint32 l_world;
191  quint32 l_world2;
192  quint32 wc_world;
193  quint32 wc_world2;
194  quint32 tc_world;
195  quint32 tc_world2;
196  quint32 bh_world;
197  quint32 bh_world2;
198  quint32 sub_world;
199  quint32 sub_world2;
200  quint32 durw_world;
201  quint32 durw_world2;
202  quint16 pole1_x;
203  quint16 pole1_y;
204  quint16 pole2_x;
205  quint16 pole2_y;
206  quint16 pole3_x;
207  quint16 pole3_y;
208  quint8 z_46[236];
209  FF7CHOCOBO choco56[2];
210  quint16 phsallowed;
211  quint16 phsvisible;
212  quint8 z_47[48];
213  quint8 battlespeed;
214  quint8 battlemspeed;
215  quint16 options;
216  quint8 controller_map[16];
217  quint8 fieldmspeed;
218  quint8 z_48[8];
219 });
220 
221 PACK(
222  /* FF7HEADFOOT FORMAT COMPATIBILITY (Vegeta_Ss4) v0.8.3*/
223 struct FF7TKDATA_EXPORT FF7HEADFOOT {
224  quint8 sl_header[0x0200]; // [0x0000] Slot Header
225  quint8 sl_footer[0x0D0C]; // [0x0000] Slot Footer
226 });
227 
228 typedef QVector< QString > SubContainer;
FF7SLOT
Main FF7 Save Data Structure.
FF7DESC
Description of savegame used for previews.
SubContainer
QVector< QString > SubContainer
Definition: FF7Save_Types.h:228
PACK
#define PACK(structure)
Definition: FF7Save_Types.h:14
materia
materia format saved in materia list or on a character
FF7CHAR
Character Info in the save game.
FF7CHOCOBO
a chocobo in save game