Pokered Save Editor 2
Pokemon Red & Blue save file editor - Qt 6 C++/QML
Toggle main menu visibility
Loading...
Searching...
No Matches
mapdbentryspritetrainer.cpp
Go to the documentation of this file.
1
/*
2
* Copyright 2020 Twilight
3
*
4
* Licensed under the Apache License, Version 2.0 (the "License");
5
* you may not use this file except in compliance with the License.
6
* You may obtain a copy of the License at
7
*
8
* http://www.apache.org/licenses/LICENSE-2.0
9
*
10
* Unless required by applicable law or agreed to in writing, software
11
* distributed under the License is distributed on an "AS IS" BASIS,
12
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
* See the License for the specific language governing permissions and
14
* limitations under the License.
15
*/
16
21
22
#include <QDebug>
23
#include <QJsonValue>
24
#include <QQmlEngine>
25
#include <
pse-common/utility.h
>
26
#include "
mapdbentryspritetrainer.h
"
27
28
#include "
../trainers.h
"
29
30
MapDBEntrySpriteTrainer::MapDBEntrySpriteTrainer
(
const
QJsonValue& data,
31
MapDBEntry
*
const
parent
) :
32
MapDBEntrySprite
(data,
parent
)
33
{
34
qmlRegister
();
35
36
trainerClass
= data[
"class"
].toString();
37
team
= data[
"team"
].toDouble();
38
}
39
40
void
MapDBEntrySpriteTrainer::deepLink
()
41
{
42
MapDBEntrySprite::deepLink
();
43
toTrainer
=
TrainersDB::inst
()->
getIndAt
(
"Opp"
+
trainerClass
);
44
45
#ifdef QT_DEBUG
46
if
(
toTrainer
==
nullptr
)
47
qCritical() <<
"MapDBEntrySpriteTrainer: Unable to deep link "
+
trainerClass
+
" to trainer"
;
48
#endif
49
50
if
(
toTrainer
!=
nullptr
)
51
toTrainer
->tpMapSpriteTrainers.append(
this
);
52
}
53
54
void
MapDBEntrySpriteTrainer::qmlRegister
()
const
55
{
56
static
bool
once =
false
;
57
if
(once)
58
return
;
59
60
qmlRegisterUncreatableType<MapDBEntrySpriteTrainer>(
61
"PSE.DB.MapDBEntrySpriteTrainer"
, 1, 0,
"MapDBEntrySpriteTrainer"
,
"Can't instantiate in QML"
);
62
once =
true
;
63
}
64
65
TrainerDBEntry
*
MapDBEntrySpriteTrainer::getToTrainer
()
const
66
{
67
return
toTrainer
;
68
}
69
70
int
MapDBEntrySpriteTrainer::getTeam
()
const
71
{
72
return
team
;
73
}
74
75
const
QString
MapDBEntrySpriteTrainer::getTrainerClass
()
const
76
{
77
return
trainerClass
;
78
}
79
80
MapDBEntrySpriteTrainer::SpriteType
MapDBEntrySpriteTrainer::type
()
const
81
{
82
return
SpriteType::TRAINER
;
83
}
TrainersDB::getIndAt
TrainerDBEntry * getIndAt(const QString &key) const
Trainer by name key (for QML).
Definition
trainers.cpp:54
TrainersDB::inst
static TrainersDB * inst()
< Number of trainer classes.
Definition
trainers.cpp:38
mapdbentryspritetrainer.h
MapDBEntrySpriteTrainer::trainerClass
QString trainerClass
Trainer class name (read via getTrainerClass()).
Definition
mapdbentryspritetrainer.h:51
MapDBEntrySpriteTrainer::MapDBEntry
friend class MapDBEntry
Definition
mapdbentryspritetrainer.h:57
MapDBEntrySpriteTrainer::type
virtual SpriteType type() const
< Trainer class name.
Definition
mapdbentryspritetrainer.cpp:80
MapDBEntrySpriteTrainer::toTrainer
TrainerDBEntry * toTrainer
Resolved trainer class (deepLink).
Definition
mapdbentryspritetrainer.h:54
MapDBEntrySpriteTrainer::MapDBEntrySpriteTrainer
MapDBEntrySpriteTrainer(const QJsonValue &data, MapDBEntry *const parent)
Build from JSON under parent.
Definition
mapdbentryspritetrainer.cpp:30
MapDBEntrySpriteTrainer::qmlRegister
virtual void qmlRegister() const
Register with QML.
Definition
mapdbentryspritetrainer.cpp:54
MapDBEntrySpriteTrainer::getTrainerClass
const QString getTrainerClass() const
Definition
mapdbentryspritetrainer.cpp:75
MapDBEntrySpriteTrainer::team
int team
Roster/team index.
Definition
mapdbentryspritetrainer.h:52
MapDBEntrySpriteTrainer::getToTrainer
TrainerDBEntry * getToTrainer() const
Definition
mapdbentryspritetrainer.cpp:65
MapDBEntrySpriteTrainer::deepLink
virtual void deepLink()
Resolve the trainer-class link.
Definition
mapdbentryspritetrainer.cpp:40
MapDBEntrySpriteTrainer::getTeam
int getTeam() const
Definition
mapdbentryspritetrainer.cpp:70
MapDBEntrySprite::MapDBEntrySprite
MapDBEntrySprite()
Empty entry.
Definition
mapdbentrysprite.cpp:31
MapDBEntrySprite::deepLink
virtual void deepLink()
Resolve sprite/missable links.
Definition
mapdbentrysprite.cpp:55
MapDBEntrySprite::parent
MapDBEntry * parent
Owning map.
Definition
mapdbentrysprite.h:140
MapDBEntrySprite::SpriteType
SpriteType
< X adjusted for Gen 1 placement.
Definition
mapdbentrysprite.h:66
MapDBEntrySprite::TRAINER
@ TRAINER
Definition
mapdbentrysprite.h:77
TrainerDBEntry
One trainer-class definition (its name/index and flags).
Definition
trainers.h:38
trainers.h
utility.h
projects
db
src
pse-db
entries
mapdbentryspritetrainer.cpp
Generated by
1.17.0