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

The trainer's headline values: name, ID, money, coins, badges, starter. More...

#include <playerbasics.h>

Inheritance diagram for PlayerBasics:
Collaboration diagram for PlayerBasics:

Public Member Functions

 PlayerBasics (SaveFile *saveFile=nullptr)
 < Trainer name; writing it full-sets non-trade mons (see note above).
virtual ~PlayerBasics ()
void load (SaveFile *saveFile=nullptr)
 Expand the trainer basics from the save.
void save (SaveFile *saveFile)
 Flatten the trainer basics back to the save.
void setBadges (SaveFile *saveFile, var16 offset)
 Write the badge bits at offset.
PokemonDBEntrytoStarter ()
 Resolve playerStarter to its DB entry.
int badgeCount ()
 How many badges are set.
bool badgeAt (int ind)
 Is badge ind set?
void badgeSet (int ind, bool val)
 Set/clear badge ind.
QString getPlayerName ()
 Current trainer name (backs the property READ).
int getPlayerId ()
 Current trainer ID (backs the property READ).
QVector< PokemonBox * > getNonTradeMons ()
 All party/box mons whose OT is this trainer (not traded in).
void fixNonTradeMons (QVector< PokemonBox * > mons)
 Rewrite those mons' OT name/ID to match this trainer.
protected::void playerNameChanged ()
void playerIDChanged ()
void moneyChanged ()
void coinsChanged ()
void badgesChanged ()
void playerStarterChanged ()
void reset ()
 Blank the trainer basics.
void randomize ()
 Randomize the trainer basics (constrained).
void fullSetPlayerName (QString val)
 Set name AND fix non-trade mons' OT name.
void fullSetPlayerId (int id)
 Set ID AND fix non-trade mons' OT ID.
void randomizeStarter ()
 Randomize just the starter.
void randomizeCoins ()
 Randomize just the coin count.
void randomizeMoney ()
 Randomize just the money.
void randomizeID ()
 Randomize just the trainer ID.

Public Attributes

QString playerName
 Trainer name (backs the property).
int playerID
 Trainer ID (backs the property).
unsigned int money
 Money value.
int coins
 Casino coins.
bool badges [maxBadges]
 Per-badge owned flags, indexed by Badges::Badges_.
int playerStarter
 Chosen starter species.
SaveFilefile = nullptr
 Owning save (used by the full-set helpers to reach the mons).

Detailed Description

The trainer's headline values: name, ID, money, coins, badges, starter.

A leaf-heavy expanded node (see SaveFileExpanded for the load/save/reset/ randomize convention). Beyond the simple money/coins values it carries two pieces of cross-cutting logic:

  • Full-set name/ID (see the property note below): editing the trainer's name or ID also rewrites every non-traded Pokemon's OT name/ID so they stay "owned by you".
  • Badges as a bool[8], with QML-facing count/at/set helpers.
See also
Player (owns this), PokemonBox (the non-trade mons it keeps in sync).

Definition at line 66 of file playerbasics.h.

Constructor & Destructor Documentation

◆ PlayerBasics()

PlayerBasics::PlayerBasics ( SaveFile * saveFile = nullptr)

< Trainer name; writing it full-sets non-trade mons (see note above).

Trainer ID; writing it full-sets non-trade mons. Money (24-bit BCD on disk, max 999,999). Casino coins (16-bit BCD on disk, max 9,999). Chosen starter (drives rival logic).

Definition at line 41 of file playerbasics.cpp.

References load().

◆ ~PlayerBasics()

PlayerBasics::~PlayerBasics ( )
virtual

Definition at line 46 of file playerbasics.cpp.

Member Function Documentation

◆ badgeAt()

bool PlayerBasics::badgeAt ( int ind)

Is badge ind set?

Definition at line 246 of file playerbasics.cpp.

References badges.

◆ badgeCount()

int PlayerBasics::badgeCount ( )

How many badges are set.

Definition at line 233 of file playerbasics.cpp.

References badges, and maxBadges.

◆ badgesChanged()

void PlayerBasics::badgesChanged ( )

Referenced by badgeSet(), load(), randomize(), and reset().

◆ badgeSet()

void PlayerBasics::badgeSet ( int ind,
bool val )

Set/clear badge ind.

Definition at line 251 of file playerbasics.cpp.

References badges, and badgesChanged().

◆ coinsChanged()

void PlayerBasics::coinsChanged ( )

Referenced by load(), randomize(), randomizeCoins(), and reset().

◆ fixNonTradeMons()

void PlayerBasics::fixNonTradeMons ( QVector< PokemonBox * > mons)

Rewrite those mons' OT name/ID to match this trainer.

Definition at line 347 of file playerbasics.cpp.

Referenced by fullSetPlayerId(), and fullSetPlayerName().

◆ fullSetPlayerId()

void PlayerBasics::fullSetPlayerId ( int id)

Set ID AND fix non-trade mons' OT ID.

Definition at line 285 of file playerbasics.cpp.

References fixNonTradeMons(), getNonTradeMons(), playerID, and playerIDChanged().

Referenced by playerStarterChanged().

◆ fullSetPlayerName()

void PlayerBasics::fullSetPlayerName ( QString val)

Set name AND fix non-trade mons' OT name.

Definition at line 257 of file playerbasics.cpp.

References fixNonTradeMons(), getNonTradeMons(), playerName, and playerNameChanged().

Referenced by playerStarterChanged().

◆ getNonTradeMons()

QVector< PokemonBox * > PlayerBasics::getNonTradeMons ( )

All party/box mons whose OT is this trainer (not traded in).

Definition at line 314 of file playerbasics.cpp.

References file, and maxPokemonBoxes.

Referenced by fullSetPlayerId(), and fullSetPlayerName().

◆ getPlayerId()

int PlayerBasics::getPlayerId ( )

Current trainer ID (backs the property READ).

Definition at line 309 of file playerbasics.cpp.

References playerID.

◆ getPlayerName()

QString PlayerBasics::getPlayerName ( )

Current trainer name (backs the property READ).

Definition at line 304 of file playerbasics.cpp.

References playerName.

◆ load()

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

◆ moneyChanged()

void PlayerBasics::moneyChanged ( )

Referenced by load(), randomize(), randomizeMoney(), and reset().

◆ playerIDChanged()

void PlayerBasics::playerIDChanged ( )

◆ playerNameChanged()

protected::void PlayerBasics::playerNameChanged ( )

◆ playerStarterChanged()

void PlayerBasics::playerStarterChanged ( )

◆ randomize()

◆ randomizeCoins()

void PlayerBasics::randomizeCoins ( )

Randomize just the coin count.

Definition at line 192 of file playerbasics.cpp.

References coins, coinsChanged(), Random::inst(), and Random::rangeExclusive().

Referenced by playerStarterChanged().

◆ randomizeID()

void PlayerBasics::randomizeID ( )

Randomize just the trainer ID.

Definition at line 204 of file playerbasics.cpp.

References Random::inst(), playerID, playerIDChanged(), and Random::rangeExclusive().

Referenced by playerStarterChanged().

◆ randomizeMoney()

void PlayerBasics::randomizeMoney ( )

Randomize just the money.

Definition at line 198 of file playerbasics.cpp.

References Random::inst(), money, moneyChanged(), and Random::rangeExclusive().

Referenced by playerStarterChanged().

◆ randomizeStarter()

void PlayerBasics::randomizeStarter ( )

◆ reset()

void PlayerBasics::reset ( )

◆ save()

void PlayerBasics::save ( SaveFile * saveFile)

Flatten the trainer basics back to the save.

Definition at line 100 of file playerbasics.cpp.

References coins, money, playerID, playerName, playerStarter, setBadges(), SaveFileToolset::setStr(), and SaveFile::toolset.

◆ setBadges()

void PlayerBasics::setBadges ( SaveFile * saveFile,
var16 offset )

Write the badge bits at offset.

Definition at line 210 of file playerbasics.cpp.

References badges, SaveFile::iterator(), SaveFileIterator::offsetTo(), and SaveFileIterator::setBit().

Referenced by save().

◆ toStarter()

PokemonDBEntry * PlayerBasics::toStarter ( )

Resolve playerStarter to its DB entry.

Definition at line 228 of file playerbasics.cpp.

References PokemonDB::getIndAt(), PokemonDB::inst(), and playerStarter.

Member Data Documentation

◆ badges

bool PlayerBasics::badges[maxBadges]
Initial value:
= {
false,
false,
false,
false,
false,
false,
false,
false
}

Per-badge owned flags, indexed by Badges::Badges_.

Definition at line 127 of file playerbasics.h.

Referenced by badgeAt(), badgeCount(), badgeSet(), load(), randomize(), reset(), and setBadges().

◆ coins

int PlayerBasics::coins

Casino coins.

Definition at line 126 of file playerbasics.h.

Referenced by load(), randomize(), randomizeCoins(), reset(), and save().

◆ file

SaveFile* PlayerBasics::file = nullptr

Owning save (used by the full-set helpers to reach the mons).

Definition at line 139 of file playerbasics.h.

Referenced by getNonTradeMons(), load(), and reset().

◆ money

unsigned int PlayerBasics::money

Money value.

Definition at line 125 of file playerbasics.h.

Referenced by load(), randomize(), randomizeMoney(), reset(), and save().

◆ playerID

int PlayerBasics::playerID

Trainer ID (backs the property).

Definition at line 124 of file playerbasics.h.

Referenced by PokemonBox::changeOtData(), fullSetPlayerId(), getPlayerId(), PokemonBox::hasTradeStatus(), load(), randomize(), randomizeID(), reset(), and save().

◆ playerName

QString PlayerBasics::playerName

Trainer name (backs the property).

Definition at line 123 of file playerbasics.h.

Referenced by PokemonBox::changeOtData(), fullSetPlayerName(), getPlayerName(), PokemonBox::hasTradeStatus(), load(), randomize(), reset(), and save().

◆ playerStarter

int PlayerBasics::playerStarter

Chosen starter species.

Definition at line 137 of file playerbasics.h.

Referenced by load(), randomizeStarter(), reset(), save(), and toStarter().


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