|
Pokered Save Editor 2
Pokemon Red & Blue save file editor - Qt 6 C++/QML
|
The player's Pokedex: a seen flag and an owned flag per species. More...
#include <playerpokedex.h>
Public Types | |
| enum | DexEntryState { DexNone = 0 , DexSeen = 1 , DexOwned = 2 } |
| < Live count of owned species. More... | |
Public Member Functions | |
| PlayerPokedex (SaveFile *saveFile=nullptr) | |
| virtual | ~PlayerPokedex () |
| void | load (SaveFile *saveFile=nullptr) |
| Expand both dex bit-fields from the save. | |
| void | save (SaveFile *saveFile) |
| Flatten both dex bit-fields back to the save. | |
| void | loadPokedex (SaveFile *saveFile, QVector< bool > *toArr, var16 fromOffset) |
Expand one dex bit-field (fromOffset) into a bool array. | |
| void | savePokedex (SaveFile *saveFile, QVector< bool > *fromArr, var16 toOffset) |
Flatten one bool array back into a dex bit-field (toOffset). | |
| int | ownedCount () |
| Count of set owned flags (backs the property). | |
| int | seenCount () |
| Count of set seen flags (backs the property). | |
| int | ownedMax () |
| Max owned index (maxPokedex). | |
| bool | ownedAt (int ind) |
Is species ind owned? | |
| void | ownedSet (int ind, bool val) |
Set/clear owned for ind. | |
| int | seenMax () |
| Max seen index (maxPokedex). | |
| bool | seenAt (int ind) |
Is species ind seen? | |
| void | seenSet (int ind, bool val) |
Set/clear seen for ind. | |
| int | getState (int ind) |
Combined DexEntryState for ind. | |
| protected::void | dexChanged () |
| Any dex change (refreshes counts). | |
| void | dexItemChanged (int ind) |
A single entry ind changed. | |
| void | reset () |
| Blank the whole dex. | |
| void | randomize () |
| Randomize the dex (constrained). | |
| void | toggleAll () |
| Flip every entry. | |
| void | toggleOne (int val) |
Flip a single entry val. | |
| void | markAll (int val) |
| Mark every entry to a state (e.g. all owned/seen/none). | |
Public Attributes | |
| bool | owned [maxPokedex] |
| Owned flag per species (0-based). | |
| bool | seen [maxPokedex] |
| Seen flag per species (0-based). | |
The player's Pokedex: a seen flag and an owned flag per species.
Two parallel 151-entry bool arrays (seen, owned), expanded from / flattened to the save's two dex bit-fields. Exposes live counts to QML and a full set of QML-callable toggles. Follows the standard expanded-node convention (see SaveFileExpanded).
Definition at line 36 of file playerpokedex.h.
< Live count of owned species.
Live count of seen species. Tri-state of a single dex entry (derived from the seen/owned bits).
| Enumerator | |
|---|---|
| DexNone | Neither seen nor owned. |
| DexSeen | Seen but not owned. |
| DexOwned | Owned (implies seen). |
Definition at line 44 of file playerpokedex.h.
| PlayerPokedex::PlayerPokedex | ( | SaveFile * | saveFile = nullptr | ) |
Definition at line 30 of file playerpokedex.cpp.
References load().
|
virtual |
Definition at line 35 of file playerpokedex.cpp.
| protected::void PlayerPokedex::dexChanged | ( | ) |
Any dex change (refreshes counts).
Referenced by load(), markAll(), ownedSet(), randomize(), seenSet(), and toggleOne().
| void PlayerPokedex::dexItemChanged | ( | int | ind | ) |
A single entry ind changed.
References markAll(), randomize(), reset(), toggleAll(), and toggleOne().
Referenced by load(), markAll(), ownedSet(), PokedexModel::PokedexModel(), randomize(), seenSet(), and toggleOne().
| int PlayerPokedex::getState | ( | int | ind | ) |
Combined DexEntryState for ind.
Definition at line 278 of file playerpokedex.cpp.
| void PlayerPokedex::load | ( | SaveFile * | saveFile = nullptr | ) |
Expand both dex bit-fields from the save.
Definition at line 37 of file playerpokedex.cpp.
References dexChanged(), dexItemChanged(), loadPokedex(), maxPokedex, owned, reset(), and seen.
Referenced by PlayerPokedex().
Expand one dex bit-field (fromOffset) into a bool array.
Definition at line 188 of file playerpokedex.cpp.
References SaveFileToolset::getBitField(), and SaveFile::toolset.
Referenced by load().
| void PlayerPokedex::markAll | ( | int | val | ) |
Mark every entry to a state (e.g. all owned/seen/none).
Definition at line 161 of file playerpokedex.cpp.
References dexChanged(), dexItemChanged(), DexOwned, DexSeen, maxPokedex, owned, and seen.
Referenced by dexItemChanged(), and toggleAll().
| bool PlayerPokedex::ownedAt | ( | int | ind | ) |
| int PlayerPokedex::ownedCount | ( | ) |
Count of set owned flags (backs the property).
Definition at line 220 of file playerpokedex.cpp.
References maxPokedex, and owned.
| int PlayerPokedex::ownedMax | ( | ) |
Max owned index (maxPokedex).
Definition at line 244 of file playerpokedex.cpp.
References maxPokedex.
| void PlayerPokedex::ownedSet | ( | int | ind, |
| bool | val ) |
Set/clear owned for ind.
Definition at line 254 of file playerpokedex.cpp.
References dexChanged(), dexItemChanged(), and owned.
| void PlayerPokedex::randomize | ( | ) |
Randomize the dex (constrained).
Definition at line 101 of file playerpokedex.cpp.
References Random::chanceSuccess(), dexChanged(), dexItemChanged(), Random::inst(), owned, reset(), and seen.
Referenced by dexItemChanged().
| void PlayerPokedex::reset | ( | ) |
Blank the whole dex.
Definition at line 88 of file playerpokedex.cpp.
References maxPokedex, owned, and seen.
Referenced by dexItemChanged(), load(), and randomize().
| void PlayerPokedex::save | ( | SaveFile * | saveFile | ) |
Flatten both dex bit-fields back to the save.
Definition at line 69 of file playerpokedex.cpp.
References maxPokedex, owned, savePokedex(), and seen.
Flatten one bool array back into a dex bit-field (toOffset).
Definition at line 209 of file playerpokedex.cpp.
References SaveFileToolset::setBitField(), and SaveFile::toolset.
Referenced by save().
| bool PlayerPokedex::seenAt | ( | int | ind | ) |
| int PlayerPokedex::seenCount | ( | ) |
Count of set seen flags (backs the property).
Definition at line 232 of file playerpokedex.cpp.
References maxPokedex, and seen.
| int PlayerPokedex::seenMax | ( | ) |
Max seen index (maxPokedex).
Definition at line 261 of file playerpokedex.cpp.
References maxPokedex.
| void PlayerPokedex::seenSet | ( | int | ind, |
| bool | val ) |
Set/clear seen for ind.
Definition at line 271 of file playerpokedex.cpp.
References dexChanged(), dexItemChanged(), and seen.
| void PlayerPokedex::toggleAll | ( | ) |
Flip every entry.
Definition at line 120 of file playerpokedex.cpp.
References DexNone, DexOwned, DexSeen, markAll(), owned, and seen.
Referenced by dexItemChanged().
| void PlayerPokedex::toggleOne | ( | int | val | ) |
Flip a single entry val.
Definition at line 138 of file playerpokedex.cpp.
References dexChanged(), dexItemChanged(), owned, and seen.
Referenced by dexItemChanged().
| bool PlayerPokedex::owned[maxPokedex] |
Owned flag per species (0-based).
Definition at line 86 of file playerpokedex.h.
Referenced by getState(), load(), markAll(), ownedAt(), ownedCount(), ownedSet(), randomize(), reset(), save(), toggleAll(), and toggleOne().
| bool PlayerPokedex::seen[maxPokedex] |
Seen flag per species (0-based).
Definition at line 87 of file playerpokedex.h.
Referenced by getState(), load(), markAll(), randomize(), reset(), save(), seenAt(), seenCount(), seenSet(), toggleAll(), and toggleOne().