V-Gears 0
Free Final Fantasy VII engine.
BattleSceneFile.h
Go to the documentation of this file.
1/*
2 * V-Gears
3 * Copyright (C) 2022 V-Gears Team
4 *
5 * This program is free software: you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation, either version 3 of the License, or
8 * (at your option) any later version.
9 *
10 * This program 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 * You should have received a copy of the GNU General Public License
16 * along with this program. If not, see <http://www.gnu.org/licenses/>.
17 */
18
19#include <string>
20#include <common/File.h>
21#include <data/Attack.h>
22#include <data/Enemy.h>
23#include <data/Formation.h>
24
26
27 public:
28
37 BattleSceneFile(const unsigned int id, File file);
38
43
49 std::vector<Attack> GetAttacks();
50
56 std::vector<Enemy> GetEnemies();
57
63 std::vector<Formation> GetFormations();
64
65 private:
66
70 struct Scene{
71
75 struct Setup{
76
81
89
94
99
104
111
126
131 };
132
136 struct Camera{
137
141 struct Position{
142
146 int x;
147
151 int y;
152
156 int z;
157
161 int d_x;
162
166 int d_y;
167
171 int d_z;
172 };
173
180
185 };
186
190 struct Formation{
191
196
200 int x;
201
205 int y;
206
210 int z;
211
216
231
241 };
242
243 struct EnemyData{
244
248 u8 name[32];
249
254
259
264
269
274
279
284
289
294
299
304
309
316
327
334
341
346
351
356
363
370
375
380
385
390
397
402 };
403
408
413
420
425
430
437
444
451
459
464
471
482
489
494
499
507
515
524
529
537
538 };
539
544
549
554
559
564
569
574
579
584
585 // TOOD: AI
586 };
587
594 static std::string LocationToString(const int id);
595
601 void Read(File file);
602
606 unsigned int id_;
607
612
616 std::vector<Attack> attacks_;
617
621 std::vector<Enemy> enemies_;
622
626 std::vector<Formation> formations_;
627
628};
Ogre::uint16 u16
Definition: TypeDefine.h:22
Ogre::uint32 u32
Definition: TypeDefine.h:23
Ogre::uint8 u8
Definition: TypeDefine.h:21
Definition: BattleSceneFile.h:25
std::vector< Formation > GetFormations()
Retrieves the formations found in the scene.
Definition: BattleSceneFile.cpp:32
void Read(File file)
Reads data from a file.
Definition: BattleSceneFile.cpp:34
unsigned int id_
The file ID.
Definition: BattleSceneFile.h:606
std::vector< Formation > formations_
Formations found in the scene.
Definition: BattleSceneFile.h:626
std::vector< Enemy > enemies_
Enemies found in the scene.
Definition: BattleSceneFile.h:621
std::vector< Attack > attacks_
Attacks found in the scene.
Definition: BattleSceneFile.h:616
Scene scene_
The scene data.
Definition: BattleSceneFile.h:611
BattleSceneFile(const unsigned int id, File file)
Constructor.
Definition: BattleSceneFile.cpp:24
~BattleSceneFile()
Destructor.
Definition: BattleSceneFile.cpp:26
static std::string LocationToString(const int id)
Retrieves a location name from it's ID.
Definition: BattleSceneFile.cpp:856
std::vector< Enemy > GetEnemies()
Retrieves the enemies found in the scene.
Definition: BattleSceneFile.cpp:30
std::vector< Attack > GetAttacks()
Retrieves the attacks found in the scene.
Definition: BattleSceneFile.cpp:28
Represents a file.
Definition: File.h:24
A battle scene attack data structure.
Definition: BattleSceneFile.h:407
u8 effect
Atack effect ID.
Definition: BattleSceneFile.h:470
u16 special
Special flags.
Definition: BattleSceneFile.h:536
u32 status
Information about what status can be inflicted or cured.
Definition: BattleSceneFile.h:523
u16 element
Information about the item elements.
Definition: BattleSceneFile.h:528
u16 sound
Impact sound.
Definition: BattleSceneFile.h:443
u8 damage
Damage formula.
Definition: BattleSceneFile.h:481
u8 unknown
Unknown data.
Definition: BattleSceneFile.h:429
u8 hurt_anim
Index of the animation played by the target when hit.
Definition: BattleSceneFile.h:424
u8 additional_effects_mod
Special flags.
Definition: BattleSceneFile.h:514
u8 target
Targeting mode.
Definition: BattleSceneFile.h:463
u8 status_change
Information about status change mode and chance.
Definition: BattleSceneFile.h:498
u8 accuracy
Probability of the attack to land.
Definition: BattleSceneFile.h:412
u8 power
The attack power.
Definition: BattleSceneFile.h:488
u16 camera_single
Camera movement ID for single target.
Definition: BattleSceneFile.h:450
u16 camera_multiple
Camera movement ID for multiple target.
Definition: BattleSceneFile.h:458
u8 impact_effect
Impact effect.
Definition: BattleSceneFile.h:419
u8 additional_effects
Special flags.
Definition: BattleSceneFile.h:506
u8 condition
The restore type.
Definition: BattleSceneFile.h:493
u16 mp
MP cost.
Definition: BattleSceneFile.h:436
Position for a camera scene.
Definition: BattleSceneFile.h:141
int z
z position.
Definition: BattleSceneFile.h:156
int d_z
z direction.
Definition: BattleSceneFile.h:171
int x
X position.
Definition: BattleSceneFile.h:146
int d_y
Y direction.
Definition: BattleSceneFile.h:166
int y
Y position.
Definition: BattleSceneFile.h:151
int d_x
X direction.
Definition: BattleSceneFile.h:161
Scene camera placement data.
Definition: BattleSceneFile.h:136
Position camera[3]
Camera positions.
Definition: BattleSceneFile.h:179
u8 unused[12]
Unused data.
Definition: BattleSceneFile.h:184
Definition: BattleSceneFile.h:243
u32 money
Money given upon defeat.
Definition: BattleSceneFile.h:389
u8 back_damage
Back damage multiplier.
Definition: BattleSceneFile.h:369
u16 mp
Enemy's MP.
Definition: BattleSceneFile.h:350
u8 spd
Enemy's speed.
Definition: BattleSceneFile.h:258
u16 unknown_0
Unknown data.
Definition: BattleSceneFile.h:345
u8 def
Enemy's defense.
Definition: BattleSceneFile.h:278
u8 item[4]
IDs of items dropped/stolen from the enemy.
Definition: BattleSceneFile.h:333
u8 eva
Enemy's evade stat.
Definition: BattleSceneFile.h:268
u8 unused
Unused data (align).
Definition: BattleSceneFile.h:374
u16 ap
AP given upon enemy defeat.
Definition: BattleSceneFile.h:355
u8 item_rate[4]
Item drop/steal rates.
Definition: BattleSceneFile.h:326
u32 unknown_1
Unknown data.
Definition: BattleSceneFile.h:401
u32 immunities
Status immunities.
Definition: BattleSceneFile.h:396
u16 morph
ID of the item the enemy can be morphed into.
Definition: BattleSceneFile.h:362
u8 mdef
Enemy's magic defense.
Definition: BattleSceneFile.h:288
u8 element_rates[8]
Element rates forsee elements}, respectively.
Definition: BattleSceneFile.h:298
u8 animation_index[16]
Animation index for eachsee attacks}.
Definition: BattleSceneFile.h:303
u8 str
Enemy's strength.
Definition: BattleSceneFile.h:273
u8 name[32]
Enemy's name (completed by FFh bytes).
Definition: BattleSceneFile.h:248
u32 hp
Enemy's HP.
Definition: BattleSceneFile.h:379
u16 maniputale_attacks[3]
IDs of attacks that can be performed while manipulated.
Definition: BattleSceneFile.h:340
u16 attacks[16]
Enemy attack IDs.
Definition: BattleSceneFile.h:308
u8 level
Enemy's level.
Definition: BattleSceneFile.h:253
u8 elements[8]
Elements of the enemy.
Definition: BattleSceneFile.h:293
u16 attack_camera[16]
Enemy Attacks Camera Movement Id for single and multiple targets (2 bytes each).
Definition: BattleSceneFile.h:315
u8 lck
Enemy's luck.
Definition: BattleSceneFile.h:263
u8 mag
Enemy's magic.
Definition: BattleSceneFile.h:283
u32 exp
Experience points given upon defeat.
Definition: BattleSceneFile.h:384
A scene formation structure.
Definition: BattleSceneFile.h:190
u32 flags
Initial condition flags.
Definition: BattleSceneFile.h:240
int x
Enemy X position.
Definition: BattleSceneFile.h:200
u16 id
Enemy ID.
Definition: BattleSceneFile.h:195
u16 cover_flags
Binary "Cover Flags".
Definition: BattleSceneFile.h:230
u16 row
Enemy row.
Definition: BattleSceneFile.h:215
int y
Enemy Y position.
Definition: BattleSceneFile.h:205
int z
Enemy Z position.
Definition: BattleSceneFile.h:210
Scene battle setup data (20 bytes).
Definition: BattleSceneFile.h:75
u16 next_arena_candidates[4]
In arena battles, candidate enemy formation IDs for next round.
Definition: BattleSceneFile.h:103
u8 camera
Indexed Pre-Battle Camera position .
Definition: BattleSceneFile.h:130
u16 unused
Unused data.
Definition: BattleSceneFile.h:98
u16 next_battle
ID of the battle that start upon defeating all enemies.
Definition: BattleSceneFile.h:88
u16 escape_counter
Definition: BattleSceneFile.h:93
u16 location
Battle location.
Definition: BattleSceneFile.h:80
u8 layout
Battle layout.
Definition: BattleSceneFile.h:125
u16 flags
Battle flags.
Definition: BattleSceneFile.h:110
A battle scene structure.
Definition: BattleSceneFile.h:70
u16 unused
Unused data (padding).
Definition: BattleSceneFile.h:548
u16 enemy[3]
Enemy IDs.
Definition: BattleSceneFile.h:543
AttackData attack_data[32]
Attack data.
Definition: BattleSceneFile.h:573
Camera camera[4]
Camera placement data.
Definition: BattleSceneFile.h:558
Setup setup[4]
Battle scene set-ups.
Definition: BattleSceneFile.h:553
Formation formation[4][6]
Battle formation data.
Definition: BattleSceneFile.h:563
u8 attack_names[32][32]
Attack names.
Definition: BattleSceneFile.h:583
u16 attack_ids[32]
Attack IDs.
Definition: BattleSceneFile.h:578
EnemyData enemy_data[3]
Enemy data.
Definition: BattleSceneFile.h:568