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

The aggregate of every game-data database – the single entry point that boots the whole db layer. More...

#include <db.h>

Inheritance diagram for DB:
Collaboration diagram for DB:

Public Member Functions

GameDatajson () const
 The GameData JSON source (backs json).
CreditsDBcredits () const
 The credits database (backs credits).
EventPokemonDBeventPokemon () const
 The event-Pokemon database (backs eventPokemon).
EventsDBevents () const
 The events database (backs events).
Examplesexamples () const
 The examples database (backs examples).
Namesnames () const
 The names database (backs names).
FlyDBfly () const
 The fly-destinations database (backs fly).
FontsDBfonts () const
 The fonts database (backs fonts).
GameCornerDBgameCorner () const
 The Game Corner database (backs gameCorner).
HiddenCoinsDBhiddenCoins () const
 The hidden-coins database (backs hiddenCoins).
HiddenItemsDBhiddenItems () const
 The hidden-items database (backs hiddenItems).
ItemsDBitems () const
 The items database (backs items).
MapsDBmaps () const
 The maps database (backs maps).
MissablesDBmissables () const
 The missables database (backs missables).
MovesDBmoves () const
 The moves database (backs moves).
MusicDBmusic () const
 The music database (backs music).
PokemonDBpokemon () const
 The Pokemon database (backs pokemon).
ScriptsDBscripts () const
 The scripts database (backs scripts).
SpriteSetDBspriteSets () const
 The sprite-sets database (backs spriteSets).
SpritesDBsprites () const
 The sprites database (backs sprites).
StarterPokemonDBstarters () const
 The starters database (backs starters).
TilesetDBtilesets () const
 The tilesets database (backs tilesets).
TmHmsDBtmHms () const
 The TM/HM database (backs tmHms).
TradesDBtrades () const
 The trades database (backs trades).
TrainersDBtrainers () const
 The trainers database (backs trainers).
TypesDBtypes () const
 The types database (backs types).
void qmlProtect (const QQmlEngine *const engine) const
 Pin the DB aggregate (and every sub-DB) to C++ ownership so QML never GCs them.
void qmlHook (QQmlContext *const context) const
 Install this DB into a QML context (exposes the db root).

Static Public Member Functions

static DBinst ()
 < Raw parsed JSON assets behind every DB.

Detailed Description

The aggregate of every game-data database – the single entry point that boots the whole db layer.

db holds the game's static reference data (every Pokemon, move, item, map, font glyph, trainer, ...), loaded from JSON assets, independent of any save file. This class gathers all 26 sub-databases under one QObject and exposes each as a Q_PROPERTY, so QML reaches them as db.pokemon, db.moves, etc.

Bootstrap (the critical sequence)
Calling DB::inst() bootstraps the entire database module: all sub-databases are created, then loadAll() -> indexAll() -> deepLinkAll() run in order (deep-linking resolves cross-references, e.g. a move's type, an evolution's target). No DB class should be accessed before DB::inst() is called.
Note
The constructors of the sub-DBs must NOT call load() themselves – that caused a Qt 6 static-init deadlock; loading is centralised here. See decisions/architecture.md.
See also
the db system map, GameData (the JSON source).

Definition at line 74 of file db.h.

Member Function Documentation

◆ credits()

CreditsDB * DB::credits ( ) const
nodiscard

The credits database (backs credits).

Definition at line 42 of file db.cpp.

References CreditsDB::inst().

◆ eventPokemon()

EventPokemonDB * DB::eventPokemon ( ) const
nodiscard

The event-Pokemon database (backs eventPokemon).

Definition at line 43 of file db.cpp.

References EventPokemonDB::inst().

◆ events()

EventsDB * DB::events ( ) const
nodiscard

The events database (backs events).

Definition at line 44 of file db.cpp.

References EventsDB::inst().

◆ examples()

Examples * DB::examples ( ) const
nodiscard

The examples database (backs examples).

Definition at line 45 of file db.cpp.

References Examples::inst().

◆ fly()

FlyDB * DB::fly ( ) const
nodiscard

The fly-destinations database (backs fly).

Definition at line 47 of file db.cpp.

References FlyDB::inst().

◆ fonts()

FontsDB * DB::fonts ( ) const
nodiscard

The fonts database (backs fonts).

Definition at line 48 of file db.cpp.

References FontsDB::inst().

◆ gameCorner()

GameCornerDB * DB::gameCorner ( ) const
nodiscard

The Game Corner database (backs gameCorner).

Definition at line 49 of file db.cpp.

References GameCornerDB::inst().

◆ hiddenCoins()

HiddenCoinsDB * DB::hiddenCoins ( ) const
nodiscard

The hidden-coins database (backs hiddenCoins).

Definition at line 50 of file db.cpp.

References HiddenCoinsDB::inst().

◆ hiddenItems()

HiddenItemsDB * DB::hiddenItems ( ) const
nodiscard

The hidden-items database (backs hiddenItems).

Definition at line 51 of file db.cpp.

References HiddenItemsDB::inst().

◆ inst()

DB * DB::inst ( )
staticnodiscard

< Raw parsed JSON assets behind every DB.

Credits/attribution entries. Event/gift Pokemon definitions. Story-event metadata. Example player/pokemon/rival presets. Default player/pokemon name lists. Fly destinations. In-game font glyphs / text encoding. Game Corner prize data. Hidden-coin definitions. Hidden-item definitions. All items (with prices). Every map and its layout/connections. Missable-sprite definitions. All moves (type, PP, ...). Music tracks. All 151 species and their data. Map script metadata. Sprite-set definitions. Individual sprite definitions. Valid starter species. Tileset definitions. TM/HM mappings. In-game trade definitions. Trainer rosters. Type chart / type names. Bootstraps and returns the process-wide DB (creates + loads + indexes + deep-links).

Definition at line 33 of file db.cpp.

Referenced by bootDatabase().

◆ items()

ItemsDB * DB::items ( ) const
nodiscard

The items database (backs items).

Definition at line 52 of file db.cpp.

References ItemsDB::inst().

◆ json()

GameData * DB::json ( ) const
nodiscard

The GameData JSON source (backs json).

Definition at line 41 of file db.cpp.

References GameData::inst().

◆ maps()

MapsDB * DB::maps ( ) const
nodiscard

The maps database (backs maps).

Definition at line 53 of file db.cpp.

References MapsDB::inst().

◆ missables()

MissablesDB * DB::missables ( ) const
nodiscard

The missables database (backs missables).

Definition at line 54 of file db.cpp.

References MissablesDB::inst().

◆ moves()

MovesDB * DB::moves ( ) const
nodiscard

The moves database (backs moves).

Definition at line 55 of file db.cpp.

References MovesDB::inst().

◆ music()

MusicDB * DB::music ( ) const
nodiscard

The music database (backs music).

Definition at line 56 of file db.cpp.

References MusicDB::inst().

◆ names()

Names * DB::names ( ) const
nodiscard

The names database (backs names).

Definition at line 46 of file db.cpp.

References Names::inst().

◆ pokemon()

PokemonDB * DB::pokemon ( ) const
nodiscard

The Pokemon database (backs pokemon).

Definition at line 57 of file db.cpp.

References PokemonDB::inst().

◆ qmlHook()

void DB::qmlHook ( QQmlContext *const context) const

Install this DB into a QML context (exposes the db root).

Definition at line 224 of file db.cpp.

◆ qmlProtect()

◆ scripts()

ScriptsDB * DB::scripts ( ) const
nodiscard

The scripts database (backs scripts).

Definition at line 58 of file db.cpp.

References ScriptsDB::inst().

◆ sprites()

SpritesDB * DB::sprites ( ) const
nodiscard

The sprites database (backs sprites).

Definition at line 60 of file db.cpp.

References SpritesDB::inst().

◆ spriteSets()

SpriteSetDB * DB::spriteSets ( ) const
nodiscard

The sprite-sets database (backs spriteSets).

Definition at line 59 of file db.cpp.

References SpriteSetDB::inst().

◆ starters()

StarterPokemonDB * DB::starters ( ) const
nodiscard

The starters database (backs starters).

Definition at line 61 of file db.cpp.

References StarterPokemonDB::inst().

◆ tilesets()

TilesetDB * DB::tilesets ( ) const
nodiscard

The tilesets database (backs tilesets).

Definition at line 62 of file db.cpp.

References TilesetDB::inst().

◆ tmHms()

TmHmsDB * DB::tmHms ( ) const
nodiscard

The TM/HM database (backs tmHms).

Definition at line 63 of file db.cpp.

References TmHmsDB::inst().

◆ trades()

TradesDB * DB::trades ( ) const
nodiscard

The trades database (backs trades).

Definition at line 64 of file db.cpp.

References TradesDB::inst().

◆ trainers()

TrainersDB * DB::trainers ( ) const
nodiscard

The trainers database (backs trainers).

Definition at line 65 of file db.cpp.

References TrainersDB::inst().

◆ types()

TypesDB * DB::types ( ) const
nodiscard

The types database (backs types).

Definition at line 66 of file db.cpp.

References TypesDB::inst().


The documentation for this class was generated from the following files:
  • projects/db/src/pse-db/db.h
  • projects/db/src/pse-db/db.cpp