V-Gears 0
Free Final Fantasy VII engine.
SaveMap.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
23struct SaveMap{
24
29
33 struct Corner{
34
39
44
49 };
50
55
60
65
70 };
71
77 struct Materia{
78
83
91
92 };
93
97 enum class INVENTORY_TYPE{
98
102 ITEM = 0,
103
107 WEAPON,
108
112 ARMOR,
113
117 ACCESSORY
118 };
119
125 struct Item{
126
135
139 int item;
140
145 };
146
151
156
161
166
171 };
172
176 struct Character{
177
185
190
195
200
205
210
215
220
225
230
235
240
245
250
255
260
265
270
275
280
289
297
304
318
323
332
337
344
349
356
361
368
375
380
385
390
395
401 std::string name;
402
408 bool fury;
409
416
421
425 bool limits_learned[4][2];
426
427 };
428
433
437 u8 byte[256];
438 };
439
444
451
455 bool character[9];
456 };
457
462
467
472
477
482
487
492
497
502
507
512
517
522
527
532
537
542
547 };
548
553
558
568
582
587
592 };
593
594 // TODO: Maybe the header needs to be skipped.
595 // PSX: 512 bytes.
596 // PC: 9 bytes.
597
604
611
616
630
635
640
647
652
657
662
667
672
677
682
689
696
703
711
718
723
728
733
740
747
752
757
764
771
776
781
786};
Ogre::uint16 u16
Definition: TypeDefine.h:22
Ogre::uint32 u32
Definition: TypeDefine.h:23
Ogre::uint8 u8
Definition: TypeDefine.h:21
Character record.
Definition: SaveMap.h:176
u8 dex_bonus
Character dexterity bonus from sources.
Definition: SaveMap.h:244
u32 unknown
Unknown data.
Definition: SaveMap.h:360
u16 learned_limits_raw
Learned limits.
Definition: SaveMap.h:317
bool sadness
Indicates if the character is in saddness state.
Definition: SaveMap.h:415
u8 mag_bonus
Character magic bonus from sources.
Definition: SaveMap.h:234
u8 status_raw
Fury/sadness flags.
Definition: SaveMap.h:288
u8 identifier
Character identifier 1 byte.
Definition: SaveMap.h:184
u16 base_mp
Base MP.
Definition: SaveMap.h:355
u8 str_bonus
Character strength bonus from sources.
Definition: SaveMap.h:224
u16 limit_uses[3]
Number of times the limit 1-1 has been used.
Definition: SaveMap.h:331
u8 limit_level
Current limit level (1-4).
Definition: SaveMap.h:254
u8 vit_bonus
Character vitality bonus from sources.
Definition: SaveMap.h:229
std::string name
Character name.
Definition: SaveMap.h:401
u16 max_mp
Max MP.
Definition: SaveMap.h:374
bool back_row
Indicates if the character is in the back row.
Definition: SaveMap.h:420
bool limits_learned[4][2]
Indicates which limits the character have learned.
Definition: SaveMap.h:425
u8 spr_bonus
Character spirit bonus from sources.
Definition: SaveMap.h:239
u32 exp
Total gained experience.
Definition: SaveMap.h:379
u8 dex
Character dexterity stat.
Definition: SaveMap.h:214
u8 lck_bonus
Character luck bonus from sources.
Definition: SaveMap.h:249
u8 str
Character strength stat.
Definition: SaveMap.h:194
u16 hp
Current HP.
Definition: SaveMap.h:336
u8 weapon
Equipped weapon ID.
Definition: SaveMap.h:269
u8 level
Character level.
Definition: SaveMap.h:189
u8 limit_bar
Limit bar fill status (0x00: empty, 0xFF, full)
Definition: SaveMap.h:259
u8 armor
Equipped armor ID.
Definition: SaveMap.h:274
u8 lck
Character luck stat.
Definition: SaveMap.h:219
u8 level_progress
Progress of the level bar.
Definition: SaveMap.h:303
bool fury
Indicates if the character is in fury state.
Definition: SaveMap.h:408
Materia armor_materia[8]
Materia equipped in the armor.
Definition: SaveMap.h:389
u8 row_raw
Character row.
Definition: SaveMap.h:296
u16 kills
Number of monster kills.
Definition: SaveMap.h:322
Materia weapon_materia[8]
Materia equipped in the weapon.
Definition: SaveMap.h:384
u8 name_raw[12]
Character name.
Definition: SaveMap.h:264
u8 accessory
Equipped accessory ID.
Definition: SaveMap.h:279
u16 base_hp
Base HP.
Definition: SaveMap.h:343
u16 mp
Current MP.
Definition: SaveMap.h:348
u8 mag
Character magic stat.
Definition: SaveMap.h:204
u8 spr
Character spirit stat.
Definition: SaveMap.h:209
u8 vit
Character vitality stat.
Definition: SaveMap.h:199
u32 exp_to_next
Remaining experience to reach next level.
Definition: SaveMap.h:394
u16 max_hp
Max HP.
Definition: SaveMap.h:367
Information about the player location in a field map.
Definition: SaveMap.h:150
u16 y
Y coordinate on the map.
Definition: SaveMap.h:160
u16 x
X coordinate on the map.
Definition: SaveMap.h:155
u16 triangle
Triangle of the walkmesh.
Definition: SaveMap.h:165
u8 orientation
Player orientation.
Definition: SaveMap.h:170
Items, weapons, armors and accessories in inventory.
Definition: SaveMap.h:125
u16 item_raw
The item bytes, as read from KERNEL.BIN in the save map.
Definition: SaveMap.h:134
int item
Item index.
Definition: SaveMap.h:139
int quantity
Item quantity.
Definition: SaveMap.h:144
A materia.
Definition: SaveMap.h:77
u32 ap
Materia AP.
Definition: SaveMap.h:90
u8 id
Materia index.
Definition: SaveMap.h:82
Each of the memory banks dumped to the savemap.
Definition: SaveMap.h:432
Selections related to the PHS.
Definition: SaveMap.h:443
bool character[9]
Character seelction with the mask applied.
Definition: SaveMap.h:455
u16 mask
The mask, as in the savemap.
Definition: SaveMap.h:450
Key mappings.
Definition: SaveMap.h:466
u8 up
Up key mapping.
Definition: SaveMap.h:531
u8 triangle
Triangle key mapping.
Definition: SaveMap.h:491
u8 r2
R2 key mapping.
Definition: SaveMap.h:476
u8 start
Start key mapping.
Definition: SaveMap.h:526
u8 cross
Cross key mapping.
Definition: SaveMap.h:501
u8 unknown_0
Unknown key mapping.
Definition: SaveMap.h:516
u8 right
Right key mapping.
Definition: SaveMap.h:536
u8 down
Down key mapping.
Definition: SaveMap.h:541
u8 square
Square key mapping.
Definition: SaveMap.h:506
u8 select
Select key mapping.
Definition: SaveMap.h:511
u8 circle
Circle key mapping.
Definition: SaveMap.h:496
u8 unknown_1
Unknown key mapping.
Definition: SaveMap.h:521
u8 l2
L2 key mapping.
Definition: SaveMap.h:471
u8 l1
L1 key mapping.
Definition: SaveMap.h:481
u8 r1
R1 key mapping.
Definition: SaveMap.h:486
u8 left
Left key mapping.
Definition: SaveMap.h:546
User defined settings.
Definition: SaveMap.h:461
KeyMapping mapping
Key mapping.
Definition: SaveMap.h:586
u8 battle_message_speed
Battle message speed, 0x00: Fast, 0xFF: Slow.
Definition: SaveMap.h:557
u8 message_speed
Message speed, 0x00: Fast, 0xFF: Slow.
Definition: SaveMap.h:591
u8 mask_2
Several XORed settings.
Definition: SaveMap.h:581
u8 mask_1
Several XORed settings.
Definition: SaveMap.h:567
u8 battle_speed
Battle ATB speed, 0x00: Fast, 0xFF: Slow.
Definition: SaveMap.h:552
Each corner of the window.
Definition: SaveMap.h:33
u8 blue
BLue component of the window.
Definition: SaveMap.h:48
u8 green
Green component of the window.
Definition: SaveMap.h:43
u8 red
Red component of the corner.
Definition: SaveMap.h:38
Contains the window colours, grouped by corner.
Definition: SaveMap.h:28
Corner bottom_left
Bottom left corner.
Definition: SaveMap.h:64
Corner top_left
Top left corner.
Definition: SaveMap.h:54
Corner bottom_right
Bottom right corner.
Definition: SaveMap.h:69
Corner top_right
Top right corner.
Definition: SaveMap.h:59
The structure of a savemap.
Definition: SaveMap.h:23
Character characters[9]
Character records.
Definition: SaveMap.h:629
u8 unused_2
Unused data.
Definition: SaveMap.h:751
UserSettings user_settings
UserSettings.
Definition: SaveMap.h:780
u32 unknown_0
Unknown data.
Definition: SaveMap.h:661
u8 party[3]
IDs of characters in the party.
Definition: SaveMap.h:634
u8 unused_0
Unused data.
Definition: SaveMap.h:639
u8 unknown_1[3]
Unknown data.
Definition: SaveMap.h:681
u32 gil
Current Gil.
Definition: SaveMap.h:666
u32 module_redundant
Current game module, redundant.
Definition: SaveMap.h:702
MemoryBank bank[5]
Memory banks dumped in the savemap.
Definition: SaveMap.h:756
u8 unknown_4[8]
Unknown data.
Definition: SaveMap.h:785
u32 time_fractions
Total played time, fractions of seconds.
Definition: SaveMap.h:688
u32 time
Total played time, in seconds.
Definition: SaveMap.h:671
u8 encounter_step
Information to seed encounter data.
Definition: SaveMap.h:739
PhsSelection phs_available
Characters available in the PHS.
Definition: SaveMap.h:770
u16 module
Current game module.
Definition: SaveMap.h:710
u8 encounter_offset
Information to seed encounter data.
Definition: SaveMap.h:746
u32 checksum
Savemap checksum.
Definition: SaveMap.h:603
u8 unused_1
Unused data.
Definition: SaveMap.h:722
u8 unknown_2[3]
Unknown data.
Definition: SaveMap.h:732
Materia stolen_materia[48]
Materia stolen by Yuffie.
Definition: SaveMap.h:656
FieldPosition field_position
Position information on a field map.
Definition: SaveMap.h:727
PhsSelection phs_lock
Characters locked in the PHS.
Definition: SaveMap.h:763
u8 preview[68]
Bytes used for the save preview.
Definition: SaveMap.h:610
Item inventory[320]
Inventory list.
Definition: SaveMap.h:646
u8 unknown_3[48]
Unknown data.
Definition: SaveMap.h:775
Materia materia[200]
Unequipped materia list.
Definition: SaveMap.h:651
u32 countdown
Countdown time, in seconds.
Definition: SaveMap.h:676
u16 location
Saving location.
Definition: SaveMap.h:717
INVENTORY_TYPE
Type of inventory item record.
Definition: SaveMap.h:97
u32 countdown_fractions
Countdown time, fractions of seconds.
Definition: SaveMap.h:695
WindowColor window_colour
Bytes for window color.
Definition: SaveMap.h:615