V-Gears 0
Free Final Fantasy VII engine.
DataInstaller.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 <string>
19#include <vector>
20#include <iostream>
22#include "FieldDataInstaller.h"
23#include "KernelDataInstaller.h"
24#include "MediaDataInstaller.h"
25#include "BattleDataInstaller.h"
27
32
33 public:
34
39
44
49
54
59
64
69
74
79
84
89
94 };
95
102 static float LINE_SCALE_FACTOR;
103
113 const std::string input_dir, const std::string output_dir, AdvancedOptions options,
114 std::function<void(std::string, int, bool)> write_output_line
115 );
116
121
127 float Progress();
128
129 private:
130
136 const float CalcProgress();
137
144 void CreateDir(const std::string& dir);
145
151 void CreateDirectories();
152
156 void CleanInstall();
157
162
166 IDLE = 0,
167
172
177
182
187
192
197
202
207
212
217
222
227
232
237
242
247
252
257
262
267
272
277
282
287
292
297
302
307
312
317
322
327
332
337
342
347
352
357
362
367
372
377
382
387
391 DONE = 100,
392 };
393
398
403
408
415
419 std::vector<std::string> field_model_names_;
420
424 std::string input_dir_;
425
429 std::string output_dir_;
430
435
443
447 std::unique_ptr<ScopedLgp> fields_lgp_;
448
452 std::unique_ptr<FieldDataInstaller> field_installer_;
453
457 std::unique_ptr<KernelDataInstaller> kernel_installer_;
458
462 std::unique_ptr<MediaDataInstaller> media_installer_;
463
467 std::unique_ptr<BattleDataInstaller> battle_installer_;
468
477 std::function<void(std::string msg, int level, bool progress)> write_output_line_;
478
479};
The data installer.
Definition: DataInstaller.h:31
std::unique_ptr< MediaDataInstaller > media_installer_
The installer for media files.
Definition: DataInstaller.h:462
InstallationSteps installation_state_
Current installation status.
Definition: DataInstaller.h:397
std::unique_ptr< FieldDataInstaller > field_installer_
The installer for fiel maps data.
Definition: DataInstaller.h:452
std::function< void(std::string msg, int level, bool progress)> write_output_line_
Function used to print text to the log output, line by line.
Definition: DataInstaller.h:477
int step_weight_[STATE_COUNT]
Weight of each installation step.
Definition: DataInstaller.h:414
std::unique_ptr< KernelDataInstaller > kernel_installer_
The installer for kernel data.
Definition: DataInstaller.h:457
AdvancedOptions options_
Advanced options.
Definition: DataInstaller.h:434
int substeps_
Substeps in the current installation step.
Definition: DataInstaller.h:402
std::string input_dir_
The path to the directory from which to read the PC game data.
Definition: DataInstaller.h:424
~DataInstaller()
Installer destructor.
Definition: DataInstaller.cpp:52
static float LINE_SCALE_FACTOR
The scale factor for line point coordinates.
Definition: DataInstaller.h:102
std::string output_dir_
The path to the directory where to save the V-Gears data.
Definition: DataInstaller.h:429
const float CalcProgress()
Calculates the installation progress.
Definition: DataInstaller.cpp:373
int cur_substep_
Current substep in the current installation step.
Definition: DataInstaller.h:407
DataInstaller(const std::string input_dir, const std::string output_dir, AdvancedOptions options, std::function< void(std::string, int, bool)> write_output_line)
Installer constructor.
Definition: DataInstaller.cpp:22
std::unique_ptr< ScopedLgp > fields_lgp_
LGP archive with field data.
Definition: DataInstaller.h:447
std::unique_ptr< BattleDataInstaller > battle_installer_
The installer for battle data.
Definition: DataInstaller.h:467
InstallationSteps
Installation steps.
Definition: DataInstaller.h:161
@ FIELD_SPAWN_POINTS_AND_SCALE_FACTORS
Step that collects spawn points and sclae factors.
Definition: DataInstaller.h:346
@ CREATE_DIRECTORIES
Create all directories required for the installation.
Definition: DataInstaller.h:171
@ KERNEL_ARMORS
Parses armor data from KERNEL.BIN.
Definition: DataInstaller.h:271
@ KERNEL_ACCESSORIES
Parses accessory data from KERNEL.BIN.
Definition: DataInstaller.h:276
@ BATTLE_MODELS_PROCESS
Extracts 3D battle models.
Definition: DataInstaller.h:211
@ DONE
Installation finished.
Definition: DataInstaller.h:391
@ MEDIA_MUSICS_INDEX
Build the music index.
Definition: DataInstaller.h:336
@ BATTLE_SCENES_WRITE_ENEMIES
Writes enemy data.
Definition: DataInstaller.h:196
@ MEDIA_MUSICS_HQ
Extracts the game high quality music.
Definition: DataInstaller.h:331
@ KERNEL_GROWTH
Parses growth data from KERNEL.BIN.
Definition: DataInstaller.h:261
@ FIELD_WRITE
Step that writes XML maps.
Definition: DataInstaller.h:361
@ FIELD_WRITE_END
Clean up after {.
Definition: DataInstaller.h:366
@ STATE_COUNT
Number of installation steps.
Definition: DataInstaller.h:386
@ KERNEL_ITEMS
Parses item data from KERNEL.BIN.
Definition: DataInstaller.h:256
@ CLEAN
Cleans up after the installation.
Definition: DataInstaller.h:381
@ KERNEL_SAVEMAP
Parses the initial savemap from KERNEL.BIN.
Definition: DataInstaller.h:296
@ MEDIA_MUSICS
Extracts the game music.
Definition: DataInstaller.h:326
@ KERNEL_PRICES
Parses item and materia prices from ff7.exe.
Definition: DataInstaller.h:236
@ IDLE
Installation not started.
Definition: DataInstaller.h:166
@ BATTLE_SCENES_WRITE_ATTACKS
Writes attack data.
Definition: DataInstaller.h:191
@ KERNEL_MATERIA
Parses materia data from KERNEL.BIN.
Definition: DataInstaller.h:281
@ MEDIA_SOUNDS_INDEX
Build sounds index.
Definition: DataInstaller.h:316
@ FIELD_CONVERT
Step that convets fields to V-Gears format.
Definition: DataInstaller.h:351
@ BATTLE_MODELS_INIT
Initializes the battle installer for 3D model processing.
Definition: DataInstaller.h:206
@ BATTLE_MODELS_WRITE_CHARACTERS
Writes playable character model info.
Definition: DataInstaller.h:226
@ BATTLE_SCENES_PROCESS
Extracts battle scenes.
Definition: DataInstaller.h:186
@ KERNEL_CHARACTERS
Parses characters data from KERNEL.BIN.
Definition: DataInstaller.h:251
@ BATTLE_SCENES_WRITE_FORMATIONS
Writes enemy formation data.
Definition: DataInstaller.h:201
@ MEDIA_MUSICS_INIT
Prepares the installer for music extraction.
Definition: DataInstaller.h:321
@ FIELD_CONVERT_MODELS_INIT
Initializer for {.
Definition: DataInstaller.h:371
@ FIELD_CONVERT_MODELS
Step that converts field models.
Definition: DataInstaller.h:376
@ KERNEL_WEAPONS
Parses weapon data from KERNEL.BIN.
Definition: DataInstaller.h:266
@ KERNEL_SUMMON_NAMES
Parses summon names data from KERNEL.BIN.
Definition: DataInstaller.h:291
@ BATTLE_MODELS_CONVERT_INIT
Prepares for 3D battle model conversion.
Definition: DataInstaller.h:216
@ BATTLE_MODELS_CONVERT
Converts 3D battle models.
Definition: DataInstaller.h:221
@ INITIALIZE
Initialize data for installation.
Definition: DataInstaller.h:176
@ BATTLE_MODELS_WRITE_SCENES
Writtes battle scene model info.
Definition: DataInstaller.h:231
@ KERNEL_COMMANDS
Parses command data from KERNEL.BIN.
Definition: DataInstaller.h:241
@ KERNEL_KEY_ITEMS
Parses key item data data from KERNEL.BIN.
Definition: DataInstaller.h:286
@ BATTLE_SCENES_INIT
Initializes the battle installer for scene processing.
Definition: DataInstaller.h:181
@ MEDIA_IMAGES
Extract game images and icons from menu.lgp.
Definition: DataInstaller.h:301
@ FIELD_SPAWN_POINTS_AND_SCALE_FACTORS_INIT
Initializer for {.
Definition: DataInstaller.h:341
@ MEDIA_SOUNDS
Extract game sounds.
Definition: DataInstaller.h:311
@ FIELD_WRITE_INIT
Initializer for {.
Definition: DataInstaller.h:356
@ KERNEL_ATTACKS
Parses attack data from KERNEL.BIN.
Definition: DataInstaller.h:246
@ MEDIA_SOUNDS_INIT
Prepares the installer for sound extraction.
Definition: DataInstaller.h:306
void CreateDirectories()
Creates all directories required for the installation.
Definition: DataInstaller.cpp:393
VGears::Application application_
The installer application.
Definition: DataInstaller.h:442
void CleanInstall()
Cleans up after the installation is complete.
Definition: DataInstaller.cpp:447
float Progress()
Handle the installation progress.
Definition: DataInstaller.cpp:54
std::vector< std::string > field_model_names_
List of field model names.
Definition: DataInstaller.h:419
void CreateDir(const std::string &dir)
Creates a directory in the outputh path.
Definition: DataInstaller.cpp:449
The V-Gears main applicacion.
Definition: VGearsApplication.h:28
Advanced options available in the installer.
Definition: DataInstaller.h:38
bool keep_originals
Option to keep original data after installation.
Definition: DataInstaller.h:83
bool skip_field_models
Option to skip field models installation.
Definition: DataInstaller.h:78
bool skip_battle_data
Option to skip battle scenes installation.
Definition: DataInstaller.h:43
bool skip_images
Option to skip image installation.
Definition: DataInstaller.h:58
bool skip_music
Option to skip music tracks installation.
Definition: DataInstaller.h:68
bool no_ffmpeg
Option to avoid calls to the ffmpeg executable.
Definition: DataInstaller.h:88
bool skip_kernel
Option to skip kernel data installation.
Definition: DataInstaller.h:53
bool no_timidity
Option to avoid calls to the timidity executable.
Definition: DataInstaller.h:93
bool skip_battle_models
Option to skip battle models installation.
Definition: DataInstaller.h:48
bool skip_sounds
Option to skip sound effects installation.
Definition: DataInstaller.h:63
bool skip_fields
Option to skip field maps installation.
Definition: DataInstaller.h:73