Skip to content

Commit cf30ce0

Browse files
committed
feat: Allow editing of mod materia ids
1 parent 9ac9bce commit cf30ce0

File tree

3 files changed

+40
-35
lines changed

3 files changed

+40
-35
lines changed

src/data/FF7Materia.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -380,6 +380,8 @@ class FF7TKDATA_EXPORT FF7Materia : public QObject
380380
if(m.name.startsWith(get()->d->_placeHolderFilter))
381381
phList.append(m.id);
382382
}
383+
for (int i = 91; i < FF7Materia::EmptyId; i++)
384+
phList.append(i);
383385
return phList;
384386
}
385387

src/widgets/data/CharEditor.cpp

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ void CharEditor::changeEvent(QEvent *e)
5050
weapon_selection->setStyleSheet(comboStyle);
5151
armor_selection->setStyleSheet(comboStyle);
5252
accessory_selection->setStyleSheet(comboStyle);
53-
for(auto m : materiaSlotFrames) {
53+
for(auto m : std::as_const(materiaSlotFrames)) {
5454
m->setStyleSheet(transparentBackgroundStyle);
5555
}
5656
}
@@ -2081,11 +2081,7 @@ void CharEditor::update_materia_slots()
20812081
}
20822082
void CharEditor::matId_changed(qint8 id)
20832083
{
2084-
if (id >= 0 && id < 91)
2085-
data.materias[mslotsel].id = quint8(id);
2086-
else
2087-
data.materias[mslotsel].id = FF7Materia::EmptyId;
2088-
2084+
data.materias[mslotsel].id = quint8(id);
20892085
if (!load) {
20902086
Q_EMIT materiaChanged(data.materias[mslotsel]);
20912087
/* Remove for 2.0 */Q_EMIT Materias_changed(data.materias[mslotsel]);

src/widgets/data/MateriaEditor.cpp

Lines changed: 36 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -52,43 +52,42 @@ void MateriaEditor::init_display()
5252

5353
void MateriaEditor::setMateria(quint8 materia_id, qint32 materia_ap)
5454
{
55-
if (materia_id < 91) {
56-
//valid Materia..
57-
if (_id != materia_id) {
58-
_id = materia_id;
59-
sb_ap->setEnabled(1);
60-
Q_EMIT idChanged(qint8(_id));
61-
}
62-
} else {
63-
//Invalid Data Reset Materia.
64-
if (_id != FF7Materia::EmptyId)
65-
Q_EMIT idChanged(qint8(FF7Materia::EmptyId));
66-
_id = FF7Materia::EmptyId;
67-
sb_ap->setEnabled(false);
68-
sb_ap->setValue(FF7Materia::MaxMateriaAp);
69-
_current_ap = FF7Materia::MaxMateriaAp;//set since setAp ingores the 0xFF id.
55+
if(_id == materia_id)
56+
return;
57+
_id = materia_id;
58+
Q_EMIT idChanged(qint8(_id));
59+
sb_ap->setEnabled(_id != FF7Materia::EmptyId);
60+
61+
if (FF7Materia::isModID(_id) && _showPlaceHolders == false) {
62+
setShowPlaceHolderMateria(true);
63+
}
64+
65+
if (_id > FF7Materia::TotalMateria) {
7066
box_status_effects->setHidden(true);
7167
box_stats->setHidden(true);
7268
}
69+
70+
if (_id == FF7Materia::EmptyId) {
71+
sb_ap->setValue(FF7Materia::MaxMateriaAp);
72+
_current_ap = FF7Materia::MaxMateriaAp;//set since setAp ingores the 0xFF id.
73+
}
7374
setName();
7475
setAP(materia_ap);
7576
setStats();
7677
}
7778

7879
void MateriaEditor::setAP(qint32 ap)
7980
{
80-
if (FF7Materia::levels(_id) == 1) {
81+
if (_id == FF7Materia::EnemySkill) {
8182
if (_current_ap != ap) {
8283
_current_ap = ap;
8384
Q_EMIT apChanged(_current_ap);
8485
}
85-
if (_id == FF7Materia::EnemySkill) {
86-
for (int i = 0; i < 24; i++) {
87-
if (_current_ap & (1 << i))
88-
eskill_list->item(i)->setCheckState(Qt::Checked);
89-
else
90-
eskill_list->item(i)->setCheckState(Qt::Unchecked);
91-
}
86+
for (int i = 0; i < 24; i++) {
87+
if (_current_ap & (1 << i))
88+
eskill_list->item(i)->setCheckState(Qt::Checked);
89+
else
90+
eskill_list->item(i)->setCheckState(Qt::Unchecked);
9291
}
9392
} else {
9493
//All Other Materia
@@ -121,7 +120,7 @@ void MateriaEditor::setName()
121120
if (combo_type->currentIndex() != FF7Materia::AllMaterias)
122121
combo_type->setCurrentIndex(FF7Materia::type(_id));
123122
combo_materia->setCurrentIndex(combo_materia->findText(FF7Materia::name(_id)));
124-
if(FF7Materia::levels(_id) != 1)
123+
if(FF7Materia::levels(_id) != 1 || FF7Materia::isModID(_id))
125124
frm_ap_stars->setHidden(false);
126125
}
127126
}
@@ -130,6 +129,11 @@ void MateriaEditor::setStats()
130129
{
131130
list_status->clear();
132131
lbl_stats->clear();
132+
if (FF7Materia::isModID(_id)) {
133+
box_skills->setHidden(true);
134+
box_status_effects->setHidden(true);
135+
return;
136+
}
133137
QString title = tr("Skills");
134138
if (_id != FF7Materia::EmptyId) {
135139
if (!FF7Materia::element(_id).isEmpty()) {
@@ -183,11 +187,14 @@ void MateriaEditor::setStars()
183187
void MateriaEditor::setSkills()
184188
{
185189
list_skills->clear();
186-
box_skills->setHidden(false);
190+
box_skills->setHidden(true);
187191
eskill_group->setHidden(true);
188192
list_skills->setHidden(false);
189-
frm_skill_status->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Maximum);
193+
if(FF7Materia::isModID(_id))
194+
return;
195+
box_skills->setHidden(false);
190196

197+
frm_skill_status->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Maximum);
191198
if (_id == FF7Materia::EmptyId) {
192199
box_skills->setHidden(true);
193200
list_skills->setHidden(true);
@@ -205,13 +212,13 @@ void MateriaEditor::typeChanged(int new_type)
205212
combo_materia->clear();
206213
combo_materia->blockSignals(true);
207214
if (new_type == 0) {
208-
for (int i = 0; i < 91; i++) {
215+
for (int i = 0; i < FF7Materia::EmptyId; i++) {
209216
if (!_showPlaceHolders && FF7Materia::placeHolderIdList().contains(i))
210217
continue;
211218
combo_materia->addItem(FF7Materia::icon(i), FF7Materia::name(i));
212219
}
213220
} else {
214-
for (int i = 0; i < 91; i++) {
221+
for (int i = 0; i < FF7Materia::EmptyId; i++) {
215222
if (FF7Materia::type(i) == new_type)
216223
combo_materia->addItem(FF7Materia::icon(i), FF7Materia::name(i));
217224
}
@@ -225,7 +232,7 @@ void MateriaEditor::typeChanged(int new_type)
225232

226233
void MateriaEditor::materia_changed(const QString &new_name)
227234
{
228-
for (quint8 i = 0; i < 91; i++) {
235+
for (quint8 i = 0; i < FF7Materia::EmptyId; i++) {
229236
if (!_showPlaceHolders && FF7Materia::placeHolderIdList().contains(i))
230237
continue;
231238
if (FF7Materia::name(i) == new_name) {

0 commit comments

Comments
 (0)