V-Gears 0
Free Final Fantasy VII engine.
SavemapHandler.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 <vector>
19#include <OgreSingleton.h>
20#include <OgreColourValue.h>
21#include "core/Savemap.h"
22
26class SavemapHandler : public Ogre::Singleton<SavemapHandler>{
27
28 public:
29
33 static int MAX_SAVE_SLOTS;
34
39
43 virtual ~SavemapHandler();
44
51
59 Savemap* GetSavemap(unsigned int slot);
60
64 std::vector<Savemap*> GetSavemaps();
65
76 bool Save(unsigned int slot, bool force);
77
89 bool Save(Savemap savemap, unsigned int slot, bool force);
90
96 void Release();
97
105 void SetData(const unsigned int bank, const unsigned int address, const int value);
106
112 void SetControlKey(const char* control);
113
130 void SetWindowColours(
131 const unsigned int t_l_r, const unsigned int t_l_g, const unsigned int t_l_b,
132 const unsigned int t_r_r, const unsigned int t_r_g, const unsigned int t_r_b,
133 const unsigned int b_r_r, const unsigned int b_r_g, const unsigned int b_r_b,
134 const unsigned int b_l_r, const unsigned int b_l_g, const unsigned int b_l_b
135 );
136
142 void SetMoney(const unsigned int money);
143
149 void SetGameTime(const unsigned int seconds);
150
156 void SetCountdownTime(const unsigned int seconds);
157
164 void SetKeyItem(const unsigned int item, const bool owned);
165
173 void SetParty(const int member_1, const int member_2, const int member_3);
174
182 void SetItem(const unsigned int slot, const unsigned int id, const unsigned int quantity);
183
193 void SetMateria(const unsigned int slot, const int id, const unsigned int ap);
194
205 void SetESkillMateria(const unsigned slot, const unsigned int skill, const bool learned);
206
216 void SetMateriaStash(const unsigned int slot, const int id, const unsigned int ap);
217
229 const unsigned slot, const unsigned int skill, const bool learned
230 );
231
243 void SetLocation(
244 const float x, const float y, const float z,
245 const unsigned int triangle, const int angle, const char* field, const char* name
246 );
247
255 void SetSetting(const unsigned int key, const unsigned int value);
256
276 void SetCharacterInfo(
277 const unsigned int id, const int char_id, const char* name,
278 const bool enabled, const bool locked,
279 const unsigned int level, const unsigned int kills,
280 const bool back_row, const unsigned int exp, const unsigned int exp_to_next,
281 const unsigned int limit_level, const unsigned int limit_bar,
282 const unsigned int weapon, const unsigned int armor, const int accessory
283 );
284
294 void SetCharacterStat(
295 const unsigned int id, const unsigned int stat,
296 const unsigned int base, const unsigned int extra
297 );
298
309 const unsigned int id, const unsigned int level,
310 const unsigned int technique, const bool learned, const unsigned int uses
311 );
312
325 const unsigned int id, const bool weapon, const unsigned int slot,
326 const int materia, const unsigned int ap
327 );
328
343 const unsigned int id, const bool weapon, const unsigned int slot,
344 const unsigned int skill, const bool learned
345 );
346
355 const unsigned int id, const unsigned int status, const bool inflicted
356 );
357
364 bool IsSlotEmpty(const unsigned int slot);
365
373 std::string GetSlotControlKey(const unsigned int slot);
374
385 const unsigned int slot, const unsigned int corner, const unsigned int comp
386 );
387
395 unsigned int GetSlotMoney(const unsigned int slot);
396
404 unsigned int GetSlotGameTime(const unsigned int slot);
405
413 unsigned int GetSlotCountdownTime(const unsigned int slot);
414
424 int GetSlotPartyMember(const unsigned int slot, const unsigned int pos);
425
435 unsigned int GetSlotItemAtPosId(const unsigned int slot, const unsigned int pos);
436
446 unsigned int GetSlotItemAtPosQty(const unsigned int slot, const unsigned int pos);
447
456 bool GetSlotKeyItem(const unsigned int slot, const unsigned int id);
457
467 int GetSlotMateriaAtPosId(const unsigned int slot, const unsigned int pos);
468
478 unsigned int GetSlotMateriaAtPosAp(const unsigned int slot, const unsigned int pos);
479
489 bool IsSlotMateriaAtPosESkill(const unsigned int slot, const unsigned int pos);
490
501 const unsigned int slot, const unsigned int pos, const unsigned int skill
502 );
503
513 int GetSlotStashAtPosId(const unsigned int slot, const unsigned int pos);
514
524 unsigned int GetSlotStashAtPosAp(const unsigned int slot, const unsigned int pos);
525
535 bool IsSlotStashAtPosESkill(const unsigned int slot, const unsigned int pos);
536
547 const unsigned int slot, const unsigned int pos, const unsigned int skill
548 );
549
556 float GetSlotLocationX(const unsigned int slot);
557
564 float GetSlotLocationY(const unsigned int slot);
565
573 float GetSlotLocationZ(const unsigned int slot);
574
581 unsigned int GetSlotLocationTriangle(const unsigned int slot);
582
589 int GetSlotLocationAngle(const unsigned int slot);
590
598 std::string GetSlotLocationField(const unsigned int slot);
599
608 std::string GetSlotLocationName(const unsigned int slot);
609
618 int GetSlotSetting(const unsigned int slot, const unsigned int key);
619
628 int GetSlotCharacterCharId(const unsigned int slot, const unsigned int id);
629
638 std::string GetSlotCharacterName(const unsigned int slot, const unsigned int id);
639
648 unsigned int GetSlotCharacterLevel(const unsigned int slot, const unsigned int id);
649
658 unsigned int GetSlotCharacterKills(const unsigned int slot, const unsigned int id);
659
668 bool IsSlotCharacterEnabled(const unsigned int slot, const unsigned int id);
669
678 bool IsSlotCharacterLocked(const unsigned int slot, const unsigned int id);
679
688 bool IsSlotCharacterBackRow(const unsigned int slot, const unsigned int id);
689
698 unsigned int GetSlotCharacterExp(const unsigned int slot, const unsigned int id);
699
708 unsigned int GetSlotCharacterExpToNext(const unsigned int slot, const unsigned int id);
709
718 unsigned int GetSlotCharacterLimitLevel(const unsigned int slot, const unsigned int id);
719
728 unsigned int GetSlotCharacterLimitBar(const unsigned int slot, const unsigned int id);
729
738 unsigned int GetSlotCharacterWeaponId(const unsigned int slot, const unsigned int id);
739
748 unsigned int GetSlotCharacterArmorId(const unsigned int slot, const unsigned int id);
749
758 int GetSlotCharacterAccessoryId(const unsigned int slot, const unsigned int id);
759
769 unsigned int GetSlotCharacterStatBase(
770 const unsigned int slot, const unsigned int id, const unsigned int stat
771 );
772
785 unsigned int GetSlotCharacterStatExtra(
786 const unsigned int slot, const unsigned int id, const unsigned int stat
787 );
788
799 unsigned int GetSlotCharacterLimitUses(
800 const unsigned int slot, const unsigned int id, const unsigned int level
801 );
802
815 const unsigned int slot, const unsigned int id,
816 const unsigned int level, const unsigned int tech
817 );
818
832 const unsigned int slot, const unsigned int id, const bool weapon, const unsigned int pos
833 );
834
847 unsigned int GetSlotCharacterMateriaAp(
848 const unsigned int slot, const unsigned int id, const bool weapon, const unsigned int pos
849 );
850
864 const unsigned int slot, const unsigned int id, const bool weapon, const unsigned int pos
865 );
866
880 const unsigned int slot, const unsigned int id, const bool weapon,
881 const unsigned int pos, const unsigned int skill
882 );
883
893 int GetSlotData(
894 const unsigned int slot, const unsigned int bank, const unsigned int address
895 );
896
897 private:
898
902 static std::string SAVE_PATH;
903
907 void ReadSavemaps();
908
913
917 std::vector<Savemap*> saved_savemaps_;
918
923
924};
925
926
A handler for savemaps.
Definition: SavemapHandler.h:26
int GetSlotCharacterCharId(const unsigned int slot, const unsigned int id)
Retrieves the char ID of a character from a saved savemap.
Definition: SavemapHandler.cpp:402
void SetParty(const int member_1, const int member_2, const int member_3)
Sets the current party in the current savemap.
Definition: SavemapHandler.cpp:138
void SetMateriaStash(const unsigned int slot, const int id, const unsigned int ap)
Sets a materia in a materia inventory slot in the current savemap.
Definition: SavemapHandler.cpp:162
bool IsSlotCharacterEnabled(const unsigned int slot, const unsigned int id)
Checks the enabled status of a character from a saved savemap.
Definition: SavemapHandler.cpp:426
void SetESkillMateria(const unsigned slot, const unsigned int skill, const bool learned)
Sets a skill as learned in an Enemy Skill materia inventory slot in the current savemap.
Definition: SavemapHandler.cpp:155
bool IsSlotEmpty(const unsigned int slot)
Checks if a slot is empty.
Definition: SavemapHandler.cpp:240
SavemapHandler()
Constructor.
Definition: SavemapHandler.cpp:31
unsigned int GetSlotCharacterMateriaAp(const unsigned int slot, const unsigned int id, const bool weapon, const unsigned int pos)
Retrieves the AP of an equipped materia from a saved savemap.
Definition: SavemapHandler.cpp:536
void Release()
Releases savemaps from memory.
Definition: SavemapHandler.cpp:81
unsigned int GetSlotStashAtPosAp(const unsigned int slot, const unsigned int pos)
Retrieves the AP of a materia in the stash from a saved savemap.
Definition: SavemapHandler.cpp:334
unsigned int GetSlotItemAtPosId(const unsigned int slot, const unsigned int pos)
Retrieves the ID of an item in the inventory from a saved savemap.
Definition: SavemapHandler.cpp:284
int GetSlotStashAtPosId(const unsigned int slot, const unsigned int pos)
Retrieves the ID of a materia in the stash from a saved savemap.
Definition: SavemapHandler.cpp:328
unsigned int GetSlotMateriaAtPosAp(const unsigned int slot, const unsigned int pos)
Retrieves the AP of a materia in the inventory from a saved savemap.
Definition: SavemapHandler.cpp:308
bool IsSlotCharacterLimitLearned(const unsigned int slot, const unsigned int id, const unsigned int level, const unsigned int tech)
Checks if a limit technique is learned by a character from a savemap.
Definition: SavemapHandler.cpp:520
virtual ~SavemapHandler()
Destructor.
Definition: SavemapHandler.cpp:33
Savemap * current_savemap_
The current savemap.
Definition: SavemapHandler.h:912
bool IsSlotStashAtPosESkillLearned(const unsigned int slot, const unsigned int pos, const unsigned int skill)
Checks if a a enemy skill is learned by a mat.
Definition: SavemapHandler.cpp:346
void SetMoney(const unsigned int money)
Sets the money of the current savemap.
Definition: SavemapHandler.cpp:119
static std::string SAVE_PATH
Path for the save files.
Definition: SavemapHandler.h:902
bool savemaps_read_
Indicates if the saved savemaps have been read from files.
Definition: SavemapHandler.h:922
void SetCharacterInfo(const unsigned int id, const int char_id, const char *name, const bool enabled, const bool locked, const unsigned int level, const unsigned int kills, const bool back_row, const unsigned int exp, const unsigned int exp_to_next, const unsigned int limit_level, const unsigned int limit_bar, const unsigned int weapon, const unsigned int armor, const int accessory)
Sets a character basic information in the current savemap.
Definition: SavemapHandler.cpp:187
void SetCountdownTime(const unsigned int seconds)
Sets the time of the curent timer in the default savemap.
Definition: SavemapHandler.cpp:128
void SetData(const unsigned int bank, const unsigned int address, const int value)
Pushes data to the current savemap memory banks.
Definition: SavemapHandler.cpp:97
void SetCharacterMateria(const unsigned int id, const bool weapon, const unsigned int slot, const int materia, const unsigned int ap)
Sets a materia in a character weapon or armor slot in the current savemap.
Definition: SavemapHandler.cpp:217
std::string GetSlotLocationField(const unsigned int slot)
Retrieves the field ID from a saved savemap.
Definition: SavemapHandler.cpp:384
static int MAX_SAVE_SLOTS
The maximum number of save slots.
Definition: SavemapHandler.h:33
unsigned int GetSlotLocationTriangle(const unsigned int slot)
Retrieves the walkmesh triangle of the player from a saved savemap.
Definition: SavemapHandler.cpp:372
unsigned int GetSlotCharacterWeaponId(const unsigned int slot, const unsigned int id)
Retrieves the ID of the weapon of a character from a saved savemap.
Definition: SavemapHandler.cpp:474
unsigned int GetSlotCharacterKills(const unsigned int slot, const unsigned int id)
Retrieves the total kills of a character from a saved savemap.
Definition: SavemapHandler.cpp:420
unsigned int GetSlotGameTime(const unsigned int slot)
Retrieves the total playtime from a saved savemap.
Definition: SavemapHandler.cpp:266
std::string GetSlotLocationName(const unsigned int slot)
Retrieves the location name from a saved savemap.
Definition: SavemapHandler.cpp:390
bool IsSlotCharacterBackRow(const unsigned int slot, const unsigned int id)
Checks the row of a character from a saved savemap.
Definition: SavemapHandler.cpp:438
int GetSlotPartyMember(const unsigned int slot, const unsigned int pos)
Retrieves the ID of a party member from a saved savemap.
Definition: SavemapHandler.cpp:278
bool Save(unsigned int slot, bool force)
Copies the current savemap to a slot and writes the file.
Definition: SavemapHandler.cpp:51
unsigned int GetSlotItemAtPosQty(const unsigned int slot, const unsigned int pos)
Retrieves the quantity of an item in the inventory from a saved savemap.
Definition: SavemapHandler.cpp:290
std::string GetSlotControlKey(const unsigned int slot)
Retrieves the control key from a saved savemap.
Definition: SavemapHandler.cpp:246
unsigned int GetSlotCharacterLevel(const unsigned int slot, const unsigned int id)
Retrieves the level of a character from a saved savemap.
Definition: SavemapHandler.cpp:414
int GetSlotLocationAngle(const unsigned int slot)
Retrieves the facing angle of the player from a saved savemap.
Definition: SavemapHandler.cpp:378
void SetSetting(const unsigned int key, const unsigned int value)
Sets a setting value in the current savemap.
Definition: SavemapHandler.cpp:182
unsigned int GetSlotCharacterLimitLevel(const unsigned int slot, const unsigned int id)
Retrieves the current limit level of a character from a saved savemap.
Definition: SavemapHandler.cpp:458
void SetWindowColours(const unsigned int t_l_r, const unsigned int t_l_g, const unsigned int t_l_b, const unsigned int t_r_r, const unsigned int t_r_g, const unsigned int t_r_b, const unsigned int b_r_r, const unsigned int b_r_g, const unsigned int b_r_b, const unsigned int b_l_r, const unsigned int b_l_g, const unsigned int b_l_b)
Sets the window colours in the current savemap.
Definition: SavemapHandler.cpp:107
std::vector< Savemap * > saved_savemaps_
List of saved savemaps.
Definition: SavemapHandler.h:917
bool IsSlotCharacterMateriaESkill(const unsigned int slot, const unsigned int id, const bool weapon, const unsigned int pos)
Checks if an equipped materia is Enemy Skill from a saved savemap.
Definition: SavemapHandler.cpp:544
void SetESkillMateriaStash(const unsigned slot, const unsigned int skill, const bool learned)
Sets a skill as learned in an Enemy Skill materia stash slot in the current savemap.
Definition: SavemapHandler.cpp:167
int GetSlotMateriaAtPosId(const unsigned int slot, const unsigned int pos)
Retrieves the ID of a materia in the inventory from a saved savemap.
Definition: SavemapHandler.cpp:302
int GetSlotSetting(const unsigned int slot, const unsigned int key)
Retrieves a setting from a saved savemap.
Definition: SavemapHandler.cpp:396
unsigned int GetSlotMoney(const unsigned int slot)
Retrieves the money from a saved savemap.
Definition: SavemapHandler.cpp:260
void SetControlKey(const char *control)
Sets the control string of the current savemap.
Definition: SavemapHandler.cpp:102
void SetCharacterStat(const unsigned int id, const unsigned int stat, const unsigned int base, const unsigned int extra)
Sets a character stat values in the current savemap.
Definition: SavemapHandler.cpp:202
float GetSlotLocationX(const unsigned int slot)
Retrieves the X coordinate of the player from a saved savemap.
Definition: SavemapHandler.cpp:354
unsigned int GetSlotCharacterLimitUses(const unsigned int slot, const unsigned int id, const unsigned int level)
Retrieves the uses of a character's limit level from a saved savemap.
Definition: SavemapHandler.cpp:512
std::vector< Savemap * > GetSavemaps()
Retrieves a list of the saved maps.
Definition: SavemapHandler.cpp:46
void SetCharacterLimitLearned(const unsigned int id, const unsigned int level, const unsigned int technique, const bool learned, const unsigned int uses)
Sets a character limit learned status in the current savemap.
Definition: SavemapHandler.cpp:209
bool IsSlotMateriaAtPosESkillLearned(const unsigned int slot, const unsigned int pos, const unsigned int skill)
Checks if a a enemy skill is learned by a materia at a position from a saved savemap.
Definition: SavemapHandler.cpp:320
unsigned int GetSlotCharacterExpToNext(const unsigned int slot, const unsigned int id)
Retrieves the experience for next level of a character from a saved savemap.
Definition: SavemapHandler.cpp:450
std::string GetSlotCharacterName(const unsigned int slot, const unsigned int id)
Retrieves the name of a character from a saved savemap.
Definition: SavemapHandler.cpp:408
bool IsSlotCharacterMateriaESkillLearned(const unsigned int slot, const unsigned int id, const bool weapon, const unsigned int pos, const unsigned int skill)
Checks if a a enemy skill is learned by a equipped materia from a saved savemap.
Definition: SavemapHandler.cpp:552
int GetSlotCharacterAccessoryId(const unsigned int slot, const unsigned int id)
Retrieves the ID of the accessory of a character from a saved savemap.
Definition: SavemapHandler.cpp:490
Savemap GetCurrentSavemap()
Retrieves the current savemap.
Definition: SavemapHandler.cpp:38
void SetMateria(const unsigned int slot, const int id, const unsigned int ap)
Sets a materia in a materia inventory slot in the current savemap.
Definition: SavemapHandler.cpp:150
unsigned int GetSlotCountdownTime(const unsigned int slot)
Retrieves the time in the timer from a saved savemap.
Definition: SavemapHandler.cpp:272
float GetSlotLocationY(const unsigned int slot)
Retrieves the Y coordinate of the player from a saved savemap.
Definition: SavemapHandler.cpp:360
bool IsSlotMateriaAtPosESkill(const unsigned int slot, const unsigned int pos)
Checks if there is an Enemy Skill materia at a inventory position from a saved savemap.
Definition: SavemapHandler.cpp:314
int GetSlotData(const unsigned int slot, const unsigned int bank, const unsigned int address)
Retrieves the value of a bank address from a saved savemap.
Definition: SavemapHandler.cpp:561
unsigned int GetSlotWindowCornerColourComponent(const unsigned int slot, const unsigned int corner, const unsigned int comp)
Retrieves a colour component from a window corner from a saved savemap.
Definition: SavemapHandler.cpp:252
float GetSlotLocationZ(const unsigned int slot)
Retrieves the Z coordinate of the player from a saved savemap.
Definition: SavemapHandler.cpp:366
void SetCharacterStatus(const unsigned int id, const unsigned int status, const bool inflicted)
Adds or removes a status to a character in the current savemap.
Definition: SavemapHandler.cpp:233
unsigned int GetSlotCharacterLimitBar(const unsigned int slot, const unsigned int id)
Retrieves the current limit bar status level of a character from a saved savemap.
Definition: SavemapHandler.cpp:466
unsigned int GetSlotCharacterStatBase(const unsigned int slot, const unsigned int id, const unsigned int stat)
Retrieves the base value of a stat of a character from a saved savemap.
Definition: SavemapHandler.cpp:496
void SetItem(const unsigned int slot, const unsigned int id, const unsigned int quantity)
Sets an item in a inventory slot in the current savemap.
Definition: SavemapHandler.cpp:143
void SetCharacterESkillMateria(const unsigned int id, const bool weapon, const unsigned int slot, const unsigned int skill, const bool learned)
Sets a skill as learned in a character's Enemy Skill materia in the current savemap.
Definition: SavemapHandler.cpp:225
unsigned int GetSlotCharacterExp(const unsigned int slot, const unsigned int id)
Retrieves the total experience of a character from a saved savemap.
Definition: SavemapHandler.cpp:444
Savemap * GetSavemap(unsigned int slot)
Retrieves a savemap saved in a slot.
Definition: SavemapHandler.cpp:40
int GetSlotCharacterMateriaId(const unsigned int slot, const unsigned int id, const bool weapon, const unsigned int pos)
Retrieves the ID of an equipped materia from a saved savemap.
Definition: SavemapHandler.cpp:528
void ReadSavemaps()
Reads every saved savemap from it's file.
Definition: SavemapHandler.cpp:87
unsigned int GetSlotCharacterArmorId(const unsigned int slot, const unsigned int id)
Retrieves the ID of the armor of a character from a saved savemap.
Definition: SavemapHandler.cpp:482
void SetLocation(const float x, const float y, const float z, const unsigned int triangle, const int angle, const char *field, const char *name)
Sets the current location in the current savemap.
Definition: SavemapHandler.cpp:174
unsigned int GetSlotCharacterStatExtra(const unsigned int slot, const unsigned int id, const unsigned int stat)
Retrieves the extra value of a stat of a character from a saved savemap.
Definition: SavemapHandler.cpp:504
void SetGameTime(const unsigned int seconds)
Sets the total playtime of the current savemap.
Definition: SavemapHandler.cpp:124
void SetKeyItem(const unsigned int item, const bool owned)
Marks a key item as owned or non-owned in the current savemap.
Definition: SavemapHandler.cpp:133
bool IsSlotStashAtPosESkill(const unsigned int slot, const unsigned int pos)
Checks if there is an Enemy Skill materia at a stash position from a saved savemap.
Definition: SavemapHandler.cpp:340
bool IsSlotCharacterLocked(const unsigned int slot, const unsigned int id)
Checks the lock status of a character from a saved savemap.
Definition: SavemapHandler.cpp:432
bool GetSlotKeyItem(const unsigned int slot, const unsigned int id)
Checks the status of a key item from a saved savemap.
Definition: SavemapHandler.cpp:296
A savemap.
Definition: Savemap.h:24