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

The player's Pokedex: a seen flag and an owned flag per species. More...

#include <playerpokedex.h>

Inheritance diagram for PlayerPokedex:
Collaboration diagram for PlayerPokedex:

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).

Detailed Description

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).

Note
Indices are 0-based here; dex number N is index N-1.

Definition at line 36 of file playerpokedex.h.

Member Enumeration Documentation

◆ DexEntryState

< 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.

Constructor & Destructor Documentation

◆ PlayerPokedex()

PlayerPokedex::PlayerPokedex ( SaveFile * saveFile = nullptr)

Definition at line 30 of file playerpokedex.cpp.

References load().

◆ ~PlayerPokedex()

PlayerPokedex::~PlayerPokedex ( )
virtual

Definition at line 35 of file playerpokedex.cpp.

Member Function Documentation

◆ dexChanged()

protected::void PlayerPokedex::dexChanged ( )

Any dex change (refreshes counts).

Referenced by load(), markAll(), ownedSet(), randomize(), seenSet(), and toggleOne().

◆ dexItemChanged()

void PlayerPokedex::dexItemChanged ( int ind)

◆ getState()

int PlayerPokedex::getState ( int ind)

Combined DexEntryState for ind.

Definition at line 278 of file playerpokedex.cpp.

References DexNone, DexOwned, DexSeen, owned, and seen.

◆ load()

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().

◆ loadPokedex()

void PlayerPokedex::loadPokedex ( SaveFile * saveFile,
QVector< bool > * toArr,
var16 fromOffset )

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().

◆ markAll()

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().

◆ ownedAt()

bool PlayerPokedex::ownedAt ( int ind)

Is species ind owned?

Definition at line 249 of file playerpokedex.cpp.

References owned.

◆ ownedCount()

int PlayerPokedex::ownedCount ( )

Count of set owned flags (backs the property).

Definition at line 220 of file playerpokedex.cpp.

References maxPokedex, and owned.

◆ ownedMax()

int PlayerPokedex::ownedMax ( )

Max owned index (maxPokedex).

Definition at line 244 of file playerpokedex.cpp.

References maxPokedex.

◆ ownedSet()

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.

◆ randomize()

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().

◆ reset()

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().

◆ save()

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.

◆ savePokedex()

void PlayerPokedex::savePokedex ( SaveFile * saveFile,
QVector< bool > * fromArr,
var16 toOffset )

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().

◆ seenAt()

bool PlayerPokedex::seenAt ( int ind)

Is species ind seen?

Definition at line 266 of file playerpokedex.cpp.

References seen.

◆ seenCount()

int PlayerPokedex::seenCount ( )

Count of set seen flags (backs the property).

Definition at line 232 of file playerpokedex.cpp.

References maxPokedex, and seen.

◆ seenMax()

int PlayerPokedex::seenMax ( )

Max seen index (maxPokedex).

Definition at line 261 of file playerpokedex.cpp.

References maxPokedex.

◆ seenSet()

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.

◆ toggleAll()

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().

◆ toggleOne()

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().

Member Data Documentation

◆ owned

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().

◆ seen

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().


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