Pokered Save Editor 2
Pokemon Red & Blue save file editor - Qt 6 C++/QML
Loading...
Searching...
No Matches
SaveFileExpanded Class Reference

Root of the editable object tree – the friendly mirror of a raw save. More...

#include <savefileexpanded.h>

Inheritance diagram for SaveFileExpanded:
Collaboration diagram for SaveFileExpanded:

Public Member Functions

 SaveFileExpanded (SaveFile *saveFile=nullptr)
 < The trainer: basics, items, pokedex, party.
virtual ~SaveFileExpanded ()
void load (SaveFile *saveFile=nullptr)
 Expand: build the whole tree from saveFile's raw bytes.
void save (SaveFile *saveFile)
 Flatten: write the whole tree back into saveFile.
void reset ()
 Blank every region (acts like a fresh save's expansion).
void randomize ()
 Constrained full randomization across the whole tree.

Public Attributes

Playerplayer = nullptr
Areaarea = nullptr
Worldworld = nullptr
Daycaredaycare = nullptr
HallOfFamehof = nullptr
Rivalrival = nullptr
Storagestorage = nullptr

Protected Member Functions

void areaChanged ()
void worldChanged ()
void daycareChanged ()
void hofChanged ()
void rivalChanged ()
void storageChanged ()

Protected Attributes

 : void playerChanged()

Detailed Description

Root of the editable object tree – the friendly mirror of a raw save.

SaveFileExpanded is the top of the expanded/ tree that the QML UI binds to (reached as brg.file.data.dataExpanded). It owns the seven top-level regions of a Gen 1 save: the player, current area, world state, the daycare, hof (Hall of Fame), rival, and PC storage.

The "expanded node" convention (used by every object in this tree)
Each node in the tree shares one shape, so once you've read one you've read them all:
  • Q_PROPERTY members expose child objects and editable leaf values to QML.
  • load(saveFile) = expand: read this node's bytes out of the raw save into the object (recursing into children).
  • save(saveFile) = flatten: write the object back into the raw save, only the strictly-necessary bytes (the byte-fidelity rule).
  • reset() blanks the node; randomize() fills it with constrained, still-playable random data.
  • The ...Changed() signals exist only because Q_PROPERTY requires a NOTIFY; the tree isn't actually re-emitted on edit (see the in-code note below).
See also
SaveFile (owns this), and the system map.

Definition at line 57 of file savefileexpanded.h.

Constructor & Destructor Documentation

◆ SaveFileExpanded()

SaveFileExpanded::SaveFileExpanded ( SaveFile * saveFile = nullptr)

< The trainer: basics, items, pokedex, party.

The current map/area state. Global world state (events, scripts, trades, ...). The day-care Pokemon, if any. Hall of Fame records. Rival name/data. PC item/Pokemon storage.

Definition at line 33 of file savefileexpanded.cpp.

References area, daycare, hof, load(), player, rival, storage, and world.

◆ ~SaveFileExpanded()

SaveFileExpanded::~SaveFileExpanded ( )
virtual

Definition at line 46 of file savefileexpanded.cpp.

References area, daycare, hof, player, rival, storage, and world.

Member Function Documentation

◆ areaChanged()

void SaveFileExpanded::areaChanged ( )
protected

◆ daycareChanged()

void SaveFileExpanded::daycareChanged ( )
protected

◆ hofChanged()

void SaveFileExpanded::hofChanged ( )
protected

◆ load()

void SaveFileExpanded::load ( SaveFile * saveFile = nullptr)

Expand: build the whole tree from saveFile's raw bytes.

Definition at line 57 of file savefileexpanded.cpp.

References area, daycare, hof, player, reset(), rival, storage, and world.

Referenced by SaveFileExpanded().

◆ randomize()

void SaveFileExpanded::randomize ( )

Constrained full randomization across the whole tree.

Definition at line 93 of file savefileexpanded.cpp.

References daycare, player, rival, storage, and world.

Referenced by storageChanged().

◆ reset()

void SaveFileExpanded::reset ( )

Blank every region (acts like a fresh save's expansion).

Definition at line 82 of file savefileexpanded.cpp.

References area, daycare, hof, player, rival, storage, and world.

Referenced by load(), and storageChanged().

◆ rivalChanged()

void SaveFileExpanded::rivalChanged ( )
protected

◆ save()

void SaveFileExpanded::save ( SaveFile * saveFile)

Flatten: write the whole tree back into saveFile.

Definition at line 71 of file savefileexpanded.cpp.

References area, daycare, hof, player, rival, storage, and world.

◆ storageChanged()

void SaveFileExpanded::storageChanged ( )
protected

References randomize(), and reset().

◆ worldChanged()

void SaveFileExpanded::worldChanged ( )
protected

Member Data Documentation

◆ __pad0__

SaveFileExpanded::__pad0__
protected

Definition at line 74 of file savefileexpanded.h.

◆ area

Area* SaveFileExpanded::area = nullptr
See also
area property.

Definition at line 92 of file savefileexpanded.h.

Referenced by load(), reset(), save(), SaveFileExpanded(), and ~SaveFileExpanded().

◆ daycare

Daycare* SaveFileExpanded::daycare = nullptr
See also
daycare property.

Definition at line 94 of file savefileexpanded.h.

Referenced by load(), randomize(), reset(), save(), SaveFileExpanded(), and ~SaveFileExpanded().

◆ hof

HallOfFame* SaveFileExpanded::hof = nullptr
See also
hof property.

Definition at line 95 of file savefileexpanded.h.

Referenced by load(), reset(), save(), SaveFileExpanded(), and ~SaveFileExpanded().

◆ player

Player* SaveFileExpanded::player = nullptr
See also
player property.

Definition at line 91 of file savefileexpanded.h.

Referenced by load(), randomize(), reset(), save(), SaveFileExpanded(), and ~SaveFileExpanded().

◆ rival

Rival* SaveFileExpanded::rival = nullptr
See also
rival property.

Definition at line 96 of file savefileexpanded.h.

Referenced by load(), randomize(), reset(), save(), SaveFileExpanded(), and ~SaveFileExpanded().

◆ storage

Storage* SaveFileExpanded::storage = nullptr
See also
storage property.

Definition at line 97 of file savefileexpanded.h.

Referenced by load(), randomize(), reset(), save(), SaveFileExpanded(), and ~SaveFileExpanded().

◆ world

World* SaveFileExpanded::world = nullptr
See also
world property.

Definition at line 93 of file savefileexpanded.h.

Referenced by load(), randomize(), reset(), save(), SaveFileExpanded(), and ~SaveFileExpanded().


The documentation for this class was generated from the following files: