diff -Nru blackchocobo-1.9.910/Black_Chocobo.pro blackchocobo-1.9.910/Black_Chocobo.pro --- blackchocobo-1.9.910/Black_Chocobo.pro 2019-07-19 23:46:31.000000000 +0000 +++ blackchocobo-1.9.910/Black_Chocobo.pro 2019-07-23 23:47:31.000000000 +0000 @@ -77,6 +77,7 @@ ff7tk/data/SaveIcon.h \ ff7tk/data/FF7Text.h \ ff7tk/data/FF7SaveInfo.h \ + ff7tk/data/FF7Save_Types.h \ ff7tk/data/FF7Save.h \ ff7tk/data/FF7Materia.h \ ff7tk/data/FF7Location.h \ diff -Nru blackchocobo-1.9.910/debian/changelog blackchocobo-1.9.910/debian/changelog --- blackchocobo-1.9.910/debian/changelog 2019-07-19 23:46:32.000000000 +0000 +++ blackchocobo-1.9.910/debian/changelog 2019-07-23 23:47:31.000000000 +0000 @@ -1,8 +1,8 @@ -blackchocobo (1.9.910-0~201907191940~ubuntu18.10.1) cosmic; urgency=low +blackchocobo (1.9.910-0~201907232153~ubuntu18.10.1) cosmic; urgency=low * Auto build. - -- sithlord48 Fri, 19 Jul 2019 23:46:32 +0000 + -- sithlord48 Tue, 23 Jul 2019 23:47:31 +0000 blackchocobo (1.9.910) trusty; urgency=low *New: More HiDpi Adjustments diff -Nru blackchocobo-1.9.910/debian/git-build-recipe.manifest blackchocobo-1.9.910/debian/git-build-recipe.manifest --- blackchocobo-1.9.910/debian/git-build-recipe.manifest 2019-07-19 23:46:32.000000000 +0000 +++ blackchocobo-1.9.910/debian/git-build-recipe.manifest 2019-07-23 23:47:31.000000000 +0000 @@ -1,2 +1,2 @@ -# git-build-recipe format 0.4 deb-version {debupstream}-0~201907191940 -lp:blackchocobo git-commit:679be6ee213c273c665053d56c82a9c52942a304 +# git-build-recipe format 0.4 deb-version {debupstream}-0~201907232153 +lp:blackchocobo git-commit:294664de97e6dbf6edd9cd8100cb6db0cac24ab6 diff -Nru blackchocobo-1.9.910/ff7tk/data/FF7Materia.h blackchocobo-1.9.910/ff7tk/data/FF7Materia.h --- blackchocobo-1.9.910/ff7tk/data/FF7Materia.h 2019-07-19 23:46:31.000000000 +0000 +++ blackchocobo-1.9.910/ff7tk/data/FF7Materia.h 2019-07-23 23:47:31.000000000 +0000 @@ -92,9 +92,9 @@ { return Materias(id).type; } - Q_INVOKABLE inline quint32 ap2num(quint8 ap[3]) + Q_INVOKABLE inline qint32 ap2num(quint8 ap[3]) { - return quint32(ap[0] | (ap[1] << 8) | (ap[2] << 16)); + return qint32(ap[0] | (ap[1] << 8) | (ap[2] << 16)); } Q_INVOKABLE inline const QString &imageAllResource() const { diff -Nru blackchocobo-1.9.910/ff7tk/widgets/CharEditor.cpp blackchocobo-1.9.910/ff7tk/widgets/CharEditor.cpp --- blackchocobo-1.9.910/ff7tk/widgets/CharEditor.cpp 2019-07-19 23:46:31.000000000 +0000 +++ blackchocobo-1.9.910/ff7tk/widgets/CharEditor.cpp 2019-07-23 23:47:31.000000000 +0000 @@ -16,93 +16,11 @@ #include "CharEditor.h" CharEditor::CharEditor(qreal Scale, QWidget *parent) : QWidget(parent) - , load(false) - , autolevel(true) - , autostatcalc(true) - , editable(true) - , advancedMode(false) - , mslotsel(-1) + , data(FF7CHAR()) , scale(Scale) , lblAvatar(new QLabel) - , lineName(new QLineEdit) - , sbLevel(new QSpinBox) - , sbCurmp(new QSpinBox) - , sbCurhp(new QSpinBox) - , lblBaseHp(new QLabel) - , sbBaseHp(new QSpinBox) - , lblBaseHpBonus(new QLabel) - , lblBaseMp(new QLabel) - , sbBaseMp(new QSpinBox) - , lblBaseMpBonus(new QLabel) - , sbKills(new QSpinBox) - , lblHp(new QLabel) - , lblMaxHp(new QLabel) - , lblMp(new QLabel) - , lblMaxMp(new QLabel) - , cbFury(new QCheckBox) - , cbSadness(new QCheckBox) - , cbFrontRow(new QCheckBox) - , comboId(new QComboBox) - , sbTotalExp(new QSpinBox) - , lbl_level_progress(new QLabel) - , lbl_level_next(new QLabel) - , bar_tnl(new QProgressBar) - , lbl_limit_bar(new QLabel) - , slider_limit(new QSlider) - , lcdLimitValue(new QLCDNumber(3)) - , lblStr(new QLabel) - , sbStr(new QSpinBox) - , sbStrSourceUse(new QSpinBox) - , lblStrMateriaBonus(new QLabel) - , lblStrTotal(new QLabel) - , lblVit(new QLabel) - , sbVit(new QSpinBox) - , sbVitSourceUse(new QSpinBox) - , lblVitMateriaBonus(new QLabel) - , lblVitTotal(new QLabel) - , lblMag(new QLabel) - , sbMag(new QSpinBox) - , sbMagSourceUse(new QSpinBox) - , lblMagMateriaBonus(new QLabel) - , lblMagTotal(new QLabel) - , lblSpi(new QLabel) - , sbSpi(new QSpinBox) - , sbSpiSourceUse(new QSpinBox) - , lblSpiMateriaBonus(new QLabel) - , lblSpiTotal(new QLabel) - , lblDex(new QLabel) - , sbDex(new QSpinBox) - , sbDexSourceUse(new QSpinBox) - , lblDexMateriaBonus(new QLabel) - , lblDexTotal(new QLabel) - , lblLck(new QLabel) - , sbLck(new QSpinBox) - , sbLckSourceUse(new QSpinBox) - , lblLckMateriaBonus(new QLabel) - , lblLckTotal(new QLabel) - , lbl_limit_level(new QLabel) - , sb_limit_level(new QSpinBox) - , list_limits(new QListWidget) - , lbl_uses(new QLabel) - , lbl_1_1(new QLabel) - , lbl_2_1(new QLabel) - , lbl_3_1(new QLabel) - , lbl_0x34(new QLabel) - , lbl_0x35(new QLabel) - , lbl_0x36(new QLabel) - , lbl_0x37(new QLabel) - , lblWeaponStats(new QLabel) - , lblArmorStats(new QLabel) - , weapon_selection(new QComboBox) - , armor_selection(new QComboBox) - , accessory_selection(new QComboBox) - , elemental_box(new QGroupBox) - , status_box(new QGroupBox) , elemental_effects(new QListWidget) , status_effects(new QListWidget) - , weapon_box(new QGroupBox) - , armor_box(new QGroupBox) - , accessory_box(new QGroupBox) , weapon_m_link_1(new QLabel) , weapon_m_link_2(new QLabel) , weapon_m_link_3(new QLabel) @@ -111,21 +29,12 @@ , armor_m_link_2(new QLabel) , armor_m_link_3(new QLabel) , armor_m_link_4(new QLabel) - , toolbox(new QToolBox) , lcd_0x34(new QLCDNumber(2)) , lcd_0x35(new QLCDNumber(2)) , lcd_0x36(new QLCDNumber(2)) , lcd_0x37(new QLCDNumber(2)) , cb_idChanger(new QCheckBox) { - for(int i = 0; i< 16; i++) { - materiaSlots.append(new QPushButton); - } - - for(int i = 0; i< 16; i++) { - materiaSlotFrames.append(new QFrame); - } - updateText(); init_display(); init_connections(); @@ -141,138 +50,363 @@ void CharEditor::updateText() { + if (!lineName) { + lineName = new QLineEdit(this); + lineName->setMaxLength(11); + lineName->setMaximumWidth(fontMetrics().horizontalAdvance(QChar('W')) * lineName->maxLength()); + } lineName->setPlaceholderText(tr("Name")); - lblHp->setText(tr("Current HP")); - lblMp->setText(tr("Current MP")); - sbCurhp->setToolTip(tr("Current HP")); + if (!lblCurrentHp) + lblCurrentHp = new QLabel(this); + lblCurrentHp->setText(tr("Current HP")); + + if (!sbCurrentHp) { + sbCurrentHp = new QSpinBox(this); + sbCurrentHp->setMaximum(qint16Max); + sbCurrentHp->setWrapping(true); + } + sbCurrentHp->setToolTip(tr("Current HP")); + + if (!sbBaseHp) + sbBaseHp = new QSpinBox(this); sbBaseHp->setToolTip(tr("Base HP")); + + if (!lblBaseHp) + lblBaseHp = new QLabel(this); lblBaseHp->setText(tr("HP")); - lblMaxHp->setToolTip(tr("Maximum HP")); + if (!lblBaseHpBonus) + lblBaseHpBonus = new QLabel(this); lblBaseHpBonus->setToolTip(tr("Materia and Equipment Bonus")); - sbCurmp->setToolTip(tr("Current MP")); - lblBaseMp->setText(tr("MP")); + if (!lblMaxHp) + lblMaxHp = new QLabel(this); + lblMaxHp->setToolTip(tr("Maximum HP")); + + if (!lblCurrentMp) + lblCurrentMp = new QLabel(this); + lblCurrentMp->setText(tr("Current MP")); + + if (!sbCurrentMp) { + sbCurrentMp = new QSpinBox(this); + sbCurrentMp->setMaximum(qint16Max); + sbCurrentMp->setWrapping(true); + } + sbCurrentMp->setToolTip(tr("Current MP")); + + if (!sbBaseMp) + sbBaseMp = new QSpinBox(this); sbBaseMp->setToolTip(tr("Base MP")); - lblMaxMp->setToolTip(tr("Maximum MP")); + + if (!lblBaseMp) + lblBaseMp = new QLabel(this); + lblBaseMp->setText(tr("MP")); + + if (!lblBaseMpBonus) + lblBaseMpBonus = new QLabel(this); lblBaseMpBonus->setToolTip(tr("Materia and Equipment Bonus")); + if (!lblMaxMp) + lblMaxMp = new QLabel(this); + lblMaxMp->setToolTip(tr("Maximum MP")); + + if (!sbLevel) { + sbLevel = new QSpinBox(this); + sbLevel->setMaximum(99); + } sbLevel->setPrefix(tr("Level").append(": ")); + + if (!sbKills) { + sbKills = new QSpinBox(this); + sbKills->setMaximum(quint16Max); + sbKills->setWrapping(true); + } sbKills->setPrefix(tr("Kills").append(": ")); + + if (!cbFury) + cbFury = new QCheckBox(this); cbFury->setText(tr("Fury")); + + if (!cbSadness) + cbSadness = new QCheckBox(this); cbSadness->setText(tr("Sadness")); + + if (!cbFrontRow) + cbFrontRow = new QCheckBox(this); cbFrontRow->setText(tr("Front Row")); - lbl_level_progress->setText(tr("Level Progress")); + + if (!lbl_level_next) + lbl_level_next = new QLabel(this); lbl_level_next->setText(tr("Next")); + + if (!sbTotalExp) { + sbTotalExp = new QSpinBox(this); + sbTotalExp->setMaximumWidth(fontMetrics().horizontalAdvance(QChar('9')) * 16); + sbTotalExp->setMaximum(2147483647); + sbTotalExp->setWrapping(true); + } sbTotalExp->setPrefix(tr("Exp: ")); - lbl_limit_bar->setText(tr("Limit Bar")); - lbl_uses->setText(tr("Limit Uses")); - lbl_1_1->setText(tr("1-1")); - lbl_2_1->setText(tr("2-1")); - lbl_3_1->setText(tr("3-1")); - lbl_limit_level->setText(tr("Limit Level")); + + if (!lbl_0x34) + lbl_0x34 = new QLabel(this); lbl_0x34->setText(tr("0x34")); + + if (!lbl_0x35) + lbl_0x35 = new QLabel(this); lbl_0x35->setText(tr("0x35")); + + if (!lbl_0x36) + lbl_0x36 = new QLabel(this); lbl_0x36->setText(tr("0x36")); + + if (!lbl_0x37) + lbl_0x37 = new QLabel(this); lbl_0x37->setText(tr("0x37")); + if (!lblStr) + lblStr = new QLabel(this); lblStr->setText(tr("Str")); + + if (!sbStr) + sbStr = new QSpinBox(this); sbStr->setToolTip(tr("Base Strength")); + + if (!sbStrSourceUse) + sbStrSourceUse = new QSpinBox(this); sbStrSourceUse->setToolTip(tr("Power Sources Used")); + + if (!lblStrMateriaBonus) + lblStrMateriaBonus = new QLabel(this); lblStrMateriaBonus->setToolTip(tr("Materia and Equipment Bonus")); + + if (!lblStrTotal) + lblStrTotal = new QLabel(this); lblStrTotal->setToolTip(tr("Strength Stat Total")); + if (!lblVit) + lblVit = new QLabel(this); lblVit->setText(tr("Vit")); + + if (!sbVit) + sbVit = new QSpinBox(this); sbVit->setToolTip(tr("Base Vitality")); + + if (!sbVitSourceUse) + sbVitSourceUse = new QSpinBox(this); sbVitSourceUse->setToolTip(tr("Guard Sources Used")); + + if (!lblVitMateriaBonus) + lblVitMateriaBonus = new QLabel(this); lblVitMateriaBonus->setToolTip(tr("Materia and Equipment Bonus")); + + if (!lblVitTotal) + lblVitTotal = new QLabel(this); lblVitTotal->setToolTip(tr("Vitality Stat Total")); + if (!lblMag) + lblMag = new QLabel(this); lblMag->setText(tr("Mag")); + + if (!sbMag) + sbMag = new QSpinBox(this); sbMag->setToolTip(tr("Base Magic")); + + if (!sbMagSourceUse) + sbMagSourceUse = new QSpinBox(this); sbMagSourceUse->setToolTip(tr("Magic Sources Used")); + + if (!lblMagMateriaBonus) + lblMagMateriaBonus = new QLabel(this); lblMagMateriaBonus->setToolTip(tr("Materia and Equipment Bonus")); + + if (!lblMagTotal) + lblMagTotal = new QLabel(this); lblMagTotal->setToolTip(tr("Magic Stat Total")); + if (!lblSpi) + lblSpi = new QLabel(this); lblSpi->setText(tr("Spi")); + + if (!sbSpi) + sbSpi = new QSpinBox(this); sbSpi->setToolTip(tr("Base Spirit")); + + if (!sbSpiSourceUse) + sbSpiSourceUse = new QSpinBox(this); sbSpiSourceUse->setToolTip(tr("Mind Sources Used")); + + if (!lblSpiMateriaBonus) + lblSpiMateriaBonus = new QLabel(this); lblSpiMateriaBonus->setToolTip(tr("Materia and Equipment Bonus")); + + if (!lblSpiTotal) + lblSpiTotal = new QLabel(this); lblSpiTotal->setToolTip(tr("Spirit Stat Total")); + if (!lblDex) + lblDex = new QLabel(this); lblDex->setText(tr("Dex")); + + if (!sbDex) + sbDex = new QSpinBox(this); sbDex->setToolTip(tr("Base Dexterity")); + + if (!sbDexSourceUse) + sbDexSourceUse = new QSpinBox(this); sbDexSourceUse->setToolTip(tr("Speed Sources Used")); + + if (!lblDexMateriaBonus) + lblDexMateriaBonus = new QLabel(this); lblDexMateriaBonus->setToolTip(tr("Materia and Equipment Bonus")); + + if (!lblDexTotal) + lblDexTotal = new QLabel(this); lblDexTotal->setToolTip(tr("Dexterity Stat Total")); + if (!lblLck) + lblLck = new QLabel(this); lblLck->setText(tr("Lck")); + + if (!sbLck) + sbLck = new QSpinBox(this); sbLck->setToolTip(tr("Base Luck")); + + if (!sbLckSourceUse) + sbLckSourceUse = new QSpinBox(this); sbLckSourceUse->setToolTip(tr("Luck Sources Used")); + + if (!lblLckMateriaBonus) + lblLckMateriaBonus = new QLabel(this); lblLckMateriaBonus->setToolTip(tr("Materia and Equipment Bonus")); + + if (!lblLckTotal) + lblLckTotal = new QLabel(this); lblLckTotal->setToolTip(tr("Luck Stat Total")); + if (!toolbox) { + toolbox = new QToolBox(this); + } toolbox->setItemText(0, tr("Status Info")); toolbox->setItemText(1, tr("Equipment")); + if (!elemental_box) + elemental_box = new QGroupBox(this); elemental_box->setTitle(tr("Elemental Effects")); + + if (!status_box) + status_box = new QGroupBox(this); status_box->setTitle(tr("Status Effects")); + + if (!weapon_box) + weapon_box = new QGroupBox(this); weapon_box->setTitle(tr("Weapon")); + + if (!armor_box) + armor_box = new QGroupBox(this); armor_box->setTitle(tr("Armor")); + + if (!accessory_box) + accessory_box = new QGroupBox(this); accessory_box->setTitle(tr("Accessory")); + if (!lblWeaponStats) + lblWeaponStats = new QLabel(this); lblWeaponStats->setText(tr("AP:x%1").arg(Items.materiaGrowthRate(data.weapon + 128))); + + if (!lblArmorStats) + lblArmorStats = new QLabel(this); lblArmorStats->setText(tr("AP:x%1").arg(Items.materiaGrowthRate(data.armor + 256))); - if (list_limits->count() != 0) { - for (int i = 0; i < list_limits->count(); i++) { - list_limits->item(i)->setText(Chars.limits(data.id).at(i)); - } - } else { - list_limits->addItems(Chars.limits(data.id)); - } - if (comboId->count() != 0) { - for (int i = 0; i < 11; i++) { + if(!comboId) { + comboId = new QComboBox(this); + comboId->setSizePolicy(QSizePolicy::Maximum, QSizePolicy::Fixed); + comboId->setHidden(true); + for (int i = 0; i < 11; i++) comboId->setItemText(i, Chars.defaultName(i)); - } } else { - for (int i = 0; i < 11; i++) { + for (int i = 0; i < 11; i++) comboId->addItem(Chars.icon(i), Chars.defaultName(i)); - } } - if (armor_selection->count() != 0) { - for (int i = 0; i < armor_selection->count(); i++) { - armor_selection->setItemText(i, Items.name(i + 256)); - } + QSize iconSize(fontMetrics().height(), fontMetrics().height()); + if (!accessory_selection) { + accessory_selection = new QComboBox(this); + accessory_selection->setInsertPolicy(QComboBox::NoInsert); + accessory_selection->setIconSize(iconSize); + for (int i = 288; i < 320; i++) + accessory_selection->addItem(QPixmap::fromImage(Items.image(i)), Items.name(i)); + accessory_selection->addItem(QPixmap::fromImage(Items.image(288)), tr("-NONE-")); } else { - for (int i = 256; i < 288; i++) { - armor_selection->addItem(QPixmap::fromImage(Items.image(i)), Items.name(i)); - } - } - - if (accessory_selection->count() != 0) { - for (int i = 0; i < accessory_selection->count() - 1; i++) { + for (int i = 0; i < accessory_selection->count() - 1; i++) accessory_selection->setItemText(i, Items.name(i + 288)); - } accessory_selection->setItemText(accessory_selection->count() - 1, tr("-NONE-")); + } + + if (!armor_selection) { + armor_selection = new QComboBox(this); + armor_selection->setInsertPolicy(QComboBox::NoInsert); + armor_selection->setIconSize(iconSize); + for (int i = 256; i < 288; i++) + armor_selection->addItem(QPixmap::fromImage(Items.image(i)), Items.name(i)); } else { - for (int i = 288; i < 320; i++) { - accessory_selection->addItem(QPixmap::fromImage(Items.image(i)), Items.name(i)); - } - accessory_selection->addItem(QPixmap::fromImage(Items.image(288)), tr("-NONE-")); + for (int i = 0; i < armor_selection->count(); i++) + armor_selection->setItemText(i, Items.name(i + 256)); } - if (weapon_selection->count() != 0) { - for (int i = 0; i < weapon_selection->count(); i++) { + if (!weapon_selection) { + weapon_selection = new QComboBox(this); + weapon_selection->setInsertPolicy(QComboBox::NoInsert); + weapon_selection->setIconSize(iconSize); + } else { + for (int i = 0; i < weapon_selection->count(); i++) weapon_selection->setItemText(i, Items.name(Chars.weaponStartingId(data.id) + i)); - } + } + + if (!lbl_limit_bar) + lbl_limit_bar = new QLabel(this); + lbl_limit_bar->setText(tr("Limit Bar")); + + if (!lbl_uses) { + lbl_uses = new QLabel(this); + lbl_uses->setAlignment(Qt::AlignHCenter); + } + lbl_uses->setText(tr("Limit Uses")); + + if (!lbl_1_1) { + lbl_1_1 = new QLabel(this); + lbl_1_1->setFixedWidth(fontMetrics().horizontalAdvance(QStringLiteral("WWW"))); + lbl_1_1->setAlignment(Qt::AlignHCenter); + } + lbl_1_1->setText(tr("1-1")); + + if (!lbl_2_1) { + lbl_2_1 = new QLabel(this); + lbl_2_1->setFixedWidth(fontMetrics().horizontalAdvance(QStringLiteral("WWW"))); + lbl_2_1->setAlignment(Qt::AlignHCenter); + } + lbl_2_1->setText(tr("2-1")); + + if (!lbl_3_1) { + lbl_3_1 = new QLabel(this); + lbl_3_1->setFixedWidth(fontMetrics().horizontalAdvance(QStringLiteral("WWW"))); + lbl_3_1->setAlignment(Qt::AlignHCenter); + } + lbl_3_1->setText(tr("3-1")); + + if (!lbl_limit_level) + lbl_limit_level = new QLabel(); + lbl_limit_level->setText(tr("Limit Level")); + + if (!list_limits) { + list_limits = new QListWidget(); + list_limits->addItems(Chars.limits(0)); + list_limits->setFixedHeight( (list_limits->sizeHintForRow(0) * 7) + list_limits->contentsMargins().top() + list_limits->contentsMargins().bottom()); } else { - for (int i = Chars.weaponStartingId(data.id); i < Chars.numberOfWeapons(data.id) + Chars.weaponStartingId(data.id); i++) { - weapon_selection->addItem(QPixmap::fromImage(Items.image(i)), Items.name(i)); - } + for (int i = 0; i < list_limits->count(); i++) + list_limits->item(i)->setText(Chars.limits(data.id).at(i)); } + updateMateriaToolTips(); status_info(); elemental_info(); @@ -299,136 +433,55 @@ lblAvatar->setFixedSize(int(86 * scale), int(98 * scale)); cb_idChanger->setHidden(true); - comboId->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Fixed); - comboId->setHidden(true); - + bar_tnl = new QProgressBar(); bar_tnl->setMaximum(61);//strange indeed.. bar_tnl->setTextVisible(false); bar_tnl->setFixedHeight(int(10 * scale)); bar_tnl->setFixedWidth(int(61 * scale)); - sbTotalExp->setMaximumWidth(fontMetrics().horizontalAdvance(QChar('9')) * 16); - sbTotalExp->setMaximum(2147483647); - sbTotalExp->setWrapping(true); - - slider_limit->setMaximumHeight(int(20 * scale)); - slider_limit->setMaximum(255); - slider_limit->setOrientation(Qt::Horizontal); - lcdLimitValue->setSegmentStyle(QLCDNumber::Flat); - - //Spin Boxes for limit uses. - sb_uses_limit_1_1 = new QSpinBox; - sb_uses_limit_2_1 = new QSpinBox; - sb_uses_limit_3_1 = new QSpinBox; - sb_uses_limit_1_1->setFixedWidth(fontMetrics().horizontalAdvance(QChar('W')) * 5); - sb_uses_limit_2_1->setFixedWidth(fontMetrics().horizontalAdvance(QChar('W')) * 5); - sb_uses_limit_3_1->setFixedWidth(fontMetrics().horizontalAdvance(QChar('W')) * 5); - sb_uses_limit_1_1->setAlignment(Qt::AlignCenter); - sb_uses_limit_2_1->setAlignment(Qt::AlignCenter); - sb_uses_limit_3_1->setAlignment(Qt::AlignCenter); - - lbl_uses->setAlignment(Qt::AlignHCenter); - lbl_1_1->setFixedWidth(fontMetrics().horizontalAdvance(QChar('W')) * 3); - lbl_2_1->setFixedWidth(fontMetrics().horizontalAdvance(QChar('W')) * 3); - lbl_3_1->setFixedWidth(fontMetrics().horizontalAdvance(QChar('W')) * 3); - lbl_1_1->setAlignment(Qt::AlignHCenter); - lbl_2_1->setAlignment(Qt::AlignHCenter); - lbl_3_1->setAlignment(Qt::AlignHCenter); - - QHBoxLayout *layout_1_1 = new QHBoxLayout; - layout_1_1->setContentsMargins(0, 0, 0, 0); - layout_1_1->addWidget(lbl_1_1); - layout_1_1->addWidget(sb_uses_limit_1_1); - - QHBoxLayout *layout_2_1 = new QHBoxLayout; - layout_2_1->setContentsMargins(0, 0, 0, 0); - layout_2_1->addWidget(lbl_2_1); - layout_2_1->addWidget(sb_uses_limit_2_1); - - QHBoxLayout *layout_3_1 = new QHBoxLayout; - layout_3_1->setContentsMargins(0, 0, 0, 0); - layout_3_1->addWidget(lbl_3_1); - layout_3_1->addWidget(sb_uses_limit_3_1); - - QVBoxLayout *used_limits_layout = new QVBoxLayout; - used_limits_layout->setContentsMargins(0, 0, 0, 0); - used_limits_layout->addSpacerItem(new QSpacerItem(0, 0, QSizePolicy::Minimum, QSizePolicy::MinimumExpanding)); - used_limits_layout->addWidget(lbl_uses); - used_limits_layout->addLayout(layout_1_1); - used_limits_layout->addLayout(layout_2_1); - used_limits_layout->addLayout(layout_3_1); - used_limits_layout->addSpacerItem(new QSpacerItem(0, 0, QSizePolicy::Minimum, QSizePolicy::MinimumExpanding)); - - sb_limit_level->setFixedWidth(fontMetrics().horizontalAdvance(QChar('W')) * 4); - - QHBoxLayout *limit_level_layout = new QHBoxLayout; - limit_level_layout->setContentsMargins(0, 0, 0, 0); - limit_level_layout->addWidget(lbl_limit_level); - limit_level_layout->addWidget(sb_limit_level); - - sbLevel->setMaximum(99); - sbCurmp->setMaximum(32767); - sbCurhp->setMaximum(32767); - sbKills->setMaximum(65535); - sb_limit_level->setMaximum(4); - sb_uses_limit_1_1->setMaximum(32767); - sb_uses_limit_2_1->setMaximum(32767); - sb_uses_limit_3_1->setMaximum(32767); - - sbCurmp->setWrapping(true); - sbCurhp->setWrapping(true); - sbKills->setWrapping(true); - sb_limit_level->setWrapping(true); - sb_uses_limit_1_1->setWrapping(true); - sb_uses_limit_2_1->setWrapping(true); - sb_uses_limit_3_1->setWrapping(true); - - lineName->setMaxLength(11); - lineName->setMaximumWidth(fontMetrics().horizontalAdvance(QChar('W')) * 11); - - QHBoxLayout *name_level_layout = new QHBoxLayout; + auto name_level_layout = new QHBoxLayout; name_level_layout->addWidget(lineName); name_level_layout->addSpacerItem(new QSpacerItem(20, 0, QSizePolicy::Fixed, QSizePolicy::Fixed)); name_level_layout->addWidget(sbLevel); - QHBoxLayout *hp_layout = new QHBoxLayout; - hp_layout->addWidget(lblHp); - hp_layout->addWidget(sbCurhp); + auto hp_layout = new QHBoxLayout; + hp_layout->addWidget(lblCurrentHp); + hp_layout->addWidget(sbCurrentHp); hp_layout->addSpacerItem(new QSpacerItem(20, 0, QSizePolicy::Expanding, QSizePolicy::Fixed)); - QHBoxLayout *mp_layout = new QHBoxLayout; - mp_layout->addWidget(lblMp); - mp_layout->addWidget(sbCurmp); + auto mp_layout = new QHBoxLayout; + mp_layout->addWidget(lblCurrentMp); + mp_layout->addWidget(sbCurrentMp); mp_layout->addSpacerItem(new QSpacerItem(20, 0, QSizePolicy::Expanding, QSizePolicy::Fixed)); - QHBoxLayout *barNextLayout = new QHBoxLayout(); + auto barNextLayout = new QHBoxLayout(); barNextLayout->setContentsMargins(0, 0, 0, 0); barNextLayout->addWidget(bar_tnl); barNextLayout->addWidget(lbl_level_next); barNextLayout->addSpacerItem(new QSpacerItem(0, 0, QSizePolicy::MinimumExpanding, QSizePolicy::Fixed)); - QVBoxLayout *exp_layout = new QVBoxLayout; + auto exp_layout = new QVBoxLayout; exp_layout->setContentsMargins(0, 0, 0, 0); exp_layout->addWidget(sbTotalExp); exp_layout->addLayout(barNextLayout); - QHBoxLayout *kills_layout = new QHBoxLayout; + auto kills_layout = new QHBoxLayout; kills_layout->setContentsMargins(0, 0, 0, 0); kills_layout->addWidget(sbKills); kills_layout->addLayout(exp_layout); - QVBoxLayout *name_hp_mp_kills_layout = new QVBoxLayout; + auto name_hp_mp_kills_layout = new QVBoxLayout; name_hp_mp_kills_layout->addLayout(name_level_layout); name_hp_mp_kills_layout->addLayout(hp_layout); name_hp_mp_kills_layout->addLayout(mp_layout); name_hp_mp_kills_layout->addLayout(kills_layout); - QVBoxLayout *fury_sadness_layout = new QVBoxLayout; + auto fury_sadness_layout = new QVBoxLayout; fury_sadness_layout->setContentsMargins(0, 0, 0, 0); fury_sadness_layout->addWidget(cbFury); fury_sadness_layout->addWidget(cbSadness); - QVBoxLayout *sadness_row_id_layout = new QVBoxLayout; + auto sadness_row_id_layout = new QVBoxLayout; sadness_row_id_layout->addLayout(fury_sadness_layout); sadness_row_id_layout->addSpacerItem(new QSpacerItem(0, 6, QSizePolicy::Preferred, QSizePolicy::Preferred)); sadness_row_id_layout->addWidget(cbFrontRow); @@ -436,25 +489,16 @@ sadness_row_id_layout->addSpacerItem(new QSpacerItem(0, 6, QSizePolicy::Preferred, QSizePolicy::Preferred)); sadness_row_id_layout->addWidget(comboId); - QHBoxLayout *avatar_name_layout = new QHBoxLayout; + auto avatar_name_layout = new QHBoxLayout; avatar_name_layout->setContentsMargins(0, 0, 0, 0); avatar_name_layout->addWidget(lblAvatar); avatar_name_layout->addLayout(name_hp_mp_kills_layout); avatar_name_layout->addLayout(sadness_row_id_layout); - QHBoxLayout *limit_bar_layout = new QHBoxLayout; - limit_bar_layout->setContentsMargins(0, 0, 0, 0); - limit_bar_layout->addLayout(limit_level_layout); - - limit_bar_layout->addSpacerItem(new QSpacerItem(10, 0, QSizePolicy::Fixed, QSizePolicy::Fixed)); - limit_bar_layout->addWidget(lbl_limit_bar); - limit_bar_layout->addWidget(slider_limit); - limit_bar_layout->addWidget(lcdLimitValue); - lcd_0x34->setFixedSize(int(32 * scale), int(20 * scale)); lcd_0x34->setHexMode(); lcd_0x34->setSegmentStyle(QLCDNumber::Flat); - QVBoxLayout *_0x34_layout = new QVBoxLayout; + auto _0x34_layout = new QVBoxLayout; _0x34_layout->setContentsMargins(0, 0, 0, 0); _0x34_layout->setSpacing(0); _0x34_layout->addWidget(lbl_0x34); @@ -463,7 +507,7 @@ lcd_0x35->setFixedSize(int (32 * scale), int(20 * scale)); lcd_0x35->setHexMode(); lcd_0x35->setSegmentStyle(QLCDNumber::Flat); - QVBoxLayout *_0x35_layout = new QVBoxLayout; + auto _0x35_layout = new QVBoxLayout; _0x35_layout->setContentsMargins(0, 0, 0, 0); _0x35_layout->setSpacing(0); _0x35_layout->addWidget(lbl_0x35); @@ -472,7 +516,7 @@ lcd_0x36->setFixedSize(int(32 * scale), int(20 * scale)); lcd_0x36->setHexMode(); lcd_0x36->setSegmentStyle(QLCDNumber::Flat); - QVBoxLayout *_0x36_layout = new QVBoxLayout; + auto _0x36_layout = new QVBoxLayout; _0x36_layout->setContentsMargins(0, 0, 0, 0); _0x36_layout->setSpacing(0); _0x36_layout->addWidget(lbl_0x36); @@ -481,13 +525,13 @@ lcd_0x37->setFixedSize(int(32 * scale), int(20 * scale)); lcd_0x37->setHexMode(); lcd_0x37->setSegmentStyle(QLCDNumber::Flat); - QVBoxLayout *_0x37_layout = new QVBoxLayout; + auto _0x37_layout = new QVBoxLayout; _0x37_layout->setContentsMargins(0, 0, 0, 0); _0x37_layout->setSpacing(0); _0x37_layout->addWidget(lbl_0x37); _0x37_layout->addWidget(lcd_0x37); - QVBoxLayout *unknown_layout = new QVBoxLayout; + auto unknown_layout = new QVBoxLayout; unknown_layout->setContentsMargins(0, 0, 0, 0); unknown_layout->setSpacing(0); unknown_layout->addLayout(_0x34_layout); @@ -499,75 +543,66 @@ unknown_box->setLayout(unknown_layout); unknown_box->setVisible(false); - QHBoxLayout *stat_layout_2 = new QHBoxLayout; + auto stat_layout_2 = new QHBoxLayout; stat_layout_2->setContentsMargins(0, 0, 0, 0); stat_layout_2->addWidget(makeStatFrame()); stat_layout_2->addWidget(unknown_box); - QHBoxLayout *limit_use_list = new QHBoxLayout; - limit_use_list->addLayout(used_limits_layout); - limit_use_list->addWidget(list_limits); - - QVBoxLayout *limit_box = new QVBoxLayout; - limit_box->setContentsMargins(0, 0, 0, 0); - limit_box->addLayout(limit_bar_layout); - limit_box->addLayout(limit_use_list); - - QVBoxLayout *lower_section = new QVBoxLayout; + auto lower_section = new QVBoxLayout; lower_section->setContentsMargins(0, 0, 0, 0); lower_section->setSpacing(0); lower_section->addLayout(stat_layout_2); - lower_section->addLayout(limit_box); + lower_section->addLayout(makeLimitLayout()); - QVBoxLayout *left_Final = new QVBoxLayout; + auto left_Final = new QVBoxLayout; left_Final->setContentsMargins(0, 0, 0, 0); left_Final->addLayout(avatar_name_layout); left_Final->addLayout(lower_section); left_Final->addSpacerItem(new QSpacerItem(0, 0, QSizePolicy::Preferred, QSizePolicy::MinimumExpanding)); - QSize iconSize = QSize(fontMetrics().height(), fontMetrics().height()); - - weapon_selection->setIconSize(iconSize); - armor_selection->setIconSize(iconSize); - accessory_selection->setIconSize(iconSize); - materia_edit = new MateriaEditor(this); materia_edit->setStarsSize(int(32 * scale)); - QHBoxLayout *elemental = new QHBoxLayout(); + auto elemental = new QHBoxLayout(); elemental->setContentsMargins(0, 0, 0, 0); elemental->addWidget(elemental_effects); elemental_box->setContentsMargins(3, 3, 3, 3); elemental_box->setLayout(elemental); - elemental_box->setHidden(1); + elemental_box->setHidden(true); - QVBoxLayout *elemental_layout = new QVBoxLayout(); + auto elemental_layout = new QVBoxLayout(); elemental_layout->setContentsMargins(0, 0, 0, 0); elemental_layout->addWidget(elemental_box); elemental_layout->addSpacerItem(new QSpacerItem(0, 0, QSizePolicy::MinimumExpanding, QSizePolicy::MinimumExpanding)); - QHBoxLayout *status = new QHBoxLayout(); + auto status = new QHBoxLayout(); status->setContentsMargins(0, 0, 0, 0); status->addWidget(status_effects); status_box->setContentsMargins(3, 3, 3, 3); status_box->setLayout(status); - status_box->setHidden(1); + status_box->setHidden(true); - QVBoxLayout *status_layout = new QVBoxLayout(); + auto status_layout = new QVBoxLayout(); status_layout->setContentsMargins(0, 0, 0, 0); status_layout->addWidget(status_box); status_layout->addSpacerItem(new QSpacerItem(0, 0, QSizePolicy::MinimumExpanding, QSizePolicy::MinimumExpanding)); - QHBoxLayout *effects_layout = new QHBoxLayout(); + auto effects_layout = new QHBoxLayout(); effects_layout->setContentsMargins(0, 0, 0, 0); effects_layout->addLayout(elemental_layout); effects_layout->addLayout(status_layout); effects_layout->addSpacerItem(new QSpacerItem(-1, -1, QSizePolicy::Expanding, QSizePolicy::Minimum)); effects_layout->setSpacing(0); - QHBoxLayout *weapon_materia_slots = new QHBoxLayout; + for(int i = 0; i< 16; i++) + materiaSlots.append(new QPushButton); + + for(int i = 0; i< 16; i++) + materiaSlotFrames.append(new QFrame); + + auto weapon_materia_slots = new QHBoxLayout; weapon_materia_slots->setContentsMargins(0, 0, 0, 0); weapon_materia_slots->addLayout(makeMateriaSlotPair(materiaSlots.at(0), materiaSlots.at(1), materiaSlotFrames.at(0), materiaSlotFrames.at(1), weapon_m_link_1)); weapon_materia_slots->addLayout(makeMateriaSlotPair(materiaSlots.at(2), materiaSlots.at(3), materiaSlotFrames.at(2), materiaSlotFrames.at(3), weapon_m_link_2)); @@ -580,7 +615,7 @@ weapon_materia_box->setLayout(weapon_materia_slots); weapon_materia_box->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Fixed); - QVBoxLayout *weapon_layout = new QVBoxLayout; + auto weapon_layout = new QVBoxLayout; weapon_layout->setContentsMargins(0, 0, 0, 0); weapon_layout->addWidget(weapon_selection); weapon_layout->addWidget(lblWeaponStats); @@ -590,7 +625,7 @@ weapon_box->adjustSize(); //set up materia slots and box for armor. - QHBoxLayout *armor_materia_slots = new QHBoxLayout(); + auto armor_materia_slots = new QHBoxLayout(); armor_materia_slots->setContentsMargins(0, 0, 0, 0); armor_materia_slots->addLayout(makeMateriaSlotPair(materiaSlots.at(8), materiaSlots.at(9), materiaSlotFrames.at(8), materiaSlotFrames.at(9), armor_m_link_1)); armor_materia_slots->addLayout(makeMateriaSlotPair(materiaSlots.at(10), materiaSlots.at(11), materiaSlotFrames.at(10), materiaSlotFrames.at(11), armor_m_link_2)); @@ -603,7 +638,7 @@ armor_materia_box->setLayout(armor_materia_slots); armor_materia_box->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Fixed); - QVBoxLayout *armor_layout = new QVBoxLayout; + auto armor_layout = new QVBoxLayout; armor_layout->setContentsMargins(0, 0, 0, 0); armor_layout->addWidget(armor_selection); armor_layout->addWidget(lblArmorStats); @@ -611,56 +646,56 @@ armor_box->setLayout(armor_layout); - QVBoxLayout *accessory_layout = new QVBoxLayout; + auto accessory_layout = new QVBoxLayout; accessory_layout->setContentsMargins(0, 0, 0, 0); accessory_layout->addWidget(accessory_selection); accessory_box->setLayout(accessory_layout); - QVBoxLayout *right_Top = new QVBoxLayout; + auto right_Top = new QVBoxLayout; right_Top->setContentsMargins(0, 0, 0, 0); right_Top->addWidget(weapon_box); right_Top->addWidget(armor_box); right_Top->addWidget(accessory_box); - QWidget *right_top = new QWidget; + auto right_top = new QWidget; right_top->setContentsMargins(0, 0, 0, 0); right_top->setLayout(right_Top); - QVBoxLayout *right_bottom = new QVBoxLayout; + auto right_bottom = new QVBoxLayout; right_bottom->setContentsMargins(0, 0, 0, 0); right_bottom->addWidget(materia_edit); right_bottom->addLayout(effects_layout); - QVBoxLayout *right_Final = new QVBoxLayout; + auto right_Final = new QVBoxLayout; right_Final->setContentsMargins(3, 0, 3, 0); right_Final->addWidget(right_top); right_Final->setSpacing(3); right_Final->addLayout(right_bottom); - QFrame *tabStatus = new QFrame; + auto tabStatus = new QFrame; tabStatus->setLayout(left_Final); tabStatus->adjustSize(); toolbox->addItem(tabStatus, Chars.icon(0), tr("Status Info")); - QFrame *tabEquipment = new QFrame; + auto tabEquipment = new QFrame; tabEquipment->setLayout(right_Final); tabEquipment->adjustSize(); toolbox->addItem(tabEquipment, QIcon(QPixmap::fromImage(Items.image(256))), tr("Equipment")); - QVBoxLayout *toolbox_layout = new QVBoxLayout; + auto toolbox_layout = new QVBoxLayout; toolbox_layout->setContentsMargins(0, 0, 0, 0); toolbox_layout->addWidget(toolbox); - this->setLayout(toolbox_layout); + setLayout(toolbox_layout); } -void CharEditor::setToolBoxStyle(QString stylesheet) +void CharEditor::setToolBoxStyle(const QString &stylesheet) { toolbox->setStyleSheet(stylesheet); } -void CharEditor::setSliderStyle(QString style) +void CharEditor::setSliderStyle(const QString &style) { slider_limit->setStyleSheet(style); } @@ -669,8 +704,8 @@ { connect(cb_idChanger, &QCheckBox::toggled, this, &CharEditor::cb_idChanger_toggled); connect(sbLevel, QOverload::of(&QSpinBox::valueChanged), this, &CharEditor::Level_Changed); - connect(sbCurmp, QOverload::of(&QSpinBox::valueChanged), this, &CharEditor::setCurMp); - connect(sbCurhp, QOverload::of(&QSpinBox::valueChanged), this, &CharEditor::setCurHp); + connect(sbCurrentMp, QOverload::of(&QSpinBox::valueChanged), this, &CharEditor::setCurMp); + connect(sbCurrentHp, QOverload::of(&QSpinBox::valueChanged), this, &CharEditor::setCurHp); connect(sbBaseHp, QOverload::of(&QSpinBox::valueChanged), this, &CharEditor::setBaseHp); connect(sbBaseMp, QOverload::of(&QSpinBox::valueChanged), this, &CharEditor::setBaseMp); connect(sbKills, QOverload::of(&QSpinBox::valueChanged), this, &CharEditor::setKills); @@ -722,12 +757,12 @@ connect(materia_edit, &MateriaEditor::idChanged, this, &CharEditor::matId_changed); } -void CharEditor::disconnectAll(void) +void CharEditor::disconnectAll() { disconnect(cb_idChanger, &QCheckBox::toggled, this, &CharEditor::cb_idChanger_toggled); disconnect(sbLevel, QOverload::of(&QSpinBox::valueChanged), this, &CharEditor::Level_Changed); - disconnect(sbCurmp, QOverload::of(&QSpinBox::valueChanged), this, &CharEditor::setCurMp); - disconnect(sbCurhp, QOverload::of(&QSpinBox::valueChanged), this, &CharEditor::setCurHp); + disconnect(sbCurrentMp, QOverload::of(&QSpinBox::valueChanged), this, &CharEditor::setCurMp); + disconnect(sbCurrentHp, QOverload::of(&QSpinBox::valueChanged), this, &CharEditor::setCurHp); disconnect(sbBaseHp, QOverload::of(&QSpinBox::valueChanged), this, &CharEditor::setBaseHp); disconnect(sbBaseMp, QOverload::of(&QSpinBox::valueChanged), this, &CharEditor::setBaseMp); disconnect(sbKills, QOverload::of(&QSpinBox::valueChanged), this, &CharEditor::setKills); @@ -954,27 +989,26 @@ void CharEditor::Level_Changed(int level) { - //if(level != data.level) - // { - if (autolevel) { - int prev_level = data.level; - setLevel(level); - if (level <= 0) { - setExp(0); + if (level != data.level) { + if (autolevel) { + int prev_level = data.level; + setLevel(level); + if (level <= 0) { + setExp(0); + } else { + setExp(int(Chars.totalExpForLevel(data.id, level - 1))); + } + sbTotalExp->blockSignals(true); + sbTotalExp->setValue(int(data.exp)); + sbTotalExp->blockSignals(false); + level_up(prev_level); + update_tnl_bar(); } else { - setExp(Chars.totalExpForLevel(data.id, level - 1)); + setLevel(level); } - sbTotalExp->blockSignals(true); - sbTotalExp->setValue(data.exp); - sbTotalExp->blockSignals(false); - level_up(prev_level); - update_tnl_bar(); - } else { - setLevel(level); } - // } } -void CharEditor::setChar(FF7CHAR Chardata, QString Processed_Name) +void CharEditor::setChar(const FF7CHAR &Chardata, const QString &Processed_Name) { disconnectAll();// remove all connections. safer signal blocking! data = Chardata; @@ -983,28 +1017,16 @@ lblAvatar->setPixmap(Chars.pixmap(data.id).scaled(lblAvatar->width(), lblAvatar->height(), Qt::KeepAspectRatio, Qt::SmoothTransformation)); lineName->setText(_name); sbLevel->setValue(data.level); - sbCurmp->setValue(data.curMP); - sbCurhp->setValue(data.curHP); + sbCurrentMp->setValue(data.curMP); + sbCurrentHp->setValue(data.curHP); lblMaxHp->setNum(data.maxHP); lblMaxMp->setNum(data.maxMP); sbKills->setValue(data.kills); comboId->setCurrentIndex(data.id); - if (data.flags[0] == FF7Char::Fury) { - cbFury->setChecked(Qt::Checked); - } else { - cbFury->setChecked(Qt::Unchecked); - } - if (data.flags[0] == FF7Char::Sadness) { - cbSadness->setChecked(Qt::Checked); - } else { - cbSadness->setChecked(Qt::Unchecked); - } - if (data.flags[1] == FF7Char::FrontRow) { - cbFrontRow->setChecked(Qt::Checked); - } else { - cbFrontRow->setChecked(Qt::Unchecked); - } - sbTotalExp->setValue(data.exp); + cbFury->setChecked(data.flags[0] == FF7Char::Fury); + cbSadness->setChecked(data.flags[0] == FF7Char::Sadness); + cbFrontRow->setChecked(data.flags[1] == FF7Char::FrontRow); + sbTotalExp->setValue(int(data.exp)); lbl_level_next->setText(tr("Next: %1").arg(QString::number(data.expNext))); slider_limit->setValue(data.limitbar); lcdLimitValue->display(int(data.limitbar)); @@ -1025,666 +1047,563 @@ sbBaseMp->setValue(data.baseMP); if (data.id == FF7Char::CaitSith || data.id == FF7Char::Vincent || data.id == FF7Char::YoungCloud || data.id == FF7Char::Sephiroth) { - if (!advancedMode) { - cb_idChanger->setHidden(false); - } else { - cb_idChanger->setHidden(true); - } + cb_idChanger->setHidden(advancedMode); if (data.id == FF7Char::CaitSith || data.id == FF7Char::YoungCloud) { cb_idChanger->setText(tr("Young Cloud")); + cb_idChanger->setCheckState((data.id == FF7Char::CaitSith) ? Qt::Unchecked : Qt::Checked); } if (data.id == FF7Char::Vincent || data.id == FF7Char::Sephiroth) { cb_idChanger->setText(tr("Sephiroth")); - } - if (data.id == FF7Char::CaitSith || data.id == FF7Char::Vincent) { - cb_idChanger->setCheckState(Qt::Unchecked); - } - if (data.id == FF7Char::YoungCloud || data.id == FF7Char::Sephiroth) { - cb_idChanger->setCheckState(Qt::Checked); + cb_idChanger->setCheckState((data.id == FF7Char::Vincent) ? Qt::Unchecked : Qt::Checked); } } else { cb_idChanger->setHidden(true); } - //Process the limits. - list_limits->clear(); - list_limits->addItems(Chars.limits(data.id)); - for (int i = 0; i < 7; i++) { - //Process the List. Hide "" entries, and Check Limts Learned. - if (list_limits->item(i)->text() == "") { - list_limits->item(i)->setHidden(true); - } else { - list_limits->item(i)->setHidden(false); - } - - if (data.limits & (1 << Chars.limitBitConvert(i))) { - list_limits->item(i)->setCheckState(Qt::Checked); - } else { - list_limits->item(i)->setCheckState(Qt::Unchecked); - } + for(int i =0; i< list_limits->count(); i++) { + list_limits->item(i)->setText(Chars.limits(data.id).at(i)); + list_limits->item(i)->setHidden((list_limits->item(i)->text().isEmpty())); + list_limits->item(i)->setCheckState((data.limits & (1 << Chars.limitBitConvert(i)))? Qt::Checked : Qt::Unchecked ); } - list_limits->setFixedHeight(list_limits->sizeHintForRow(0)*list_limits->count() + list_limits->contentsMargins().top() + list_limits->contentsMargins().bottom()); - sb_uses_limit_1_1->setValue(data.timesused1); //Vegeta_Ss4: Fixed limit timeused GUI - sb_uses_limit_2_1->setValue(data.timesused2); //Vegeta_Ss4: Fixed limit timeused GUI - sb_uses_limit_3_1->setValue(data.timesused3); //Vegeta_Ss4: Fixed limit timeused GUI - sb_limit_level->setValue(data.limitlevel); //Vegeta_Ss4: Fixed limitlevel GUI - quint8 weapon = data.weapon; - weapon_selection->clear(); + sb_uses_limit_1_1->setValue(data.timesused1); + sb_uses_limit_2_1->setValue(data.timesused2); + sb_uses_limit_3_1->setValue(data.timesused3); + sb_limit_level->setValue(data.limitlevel); - for (int i = Chars.weaponStartingId(data.id); i < Chars.numberOfWeapons(data.id) + Chars.weaponStartingId(data.id); i++) { + weapon_selection->clear(); + for (int i = Chars.weaponStartingId(data.id); i < Chars.numberOfWeapons(data.id) + Chars.weaponStartingId(data.id); i++) weapon_selection->addItem(QPixmap::fromImage(Items.image(i)), Items.name(i)); - } + weapon_selection->setCurrentIndex(data.weapon - Chars.weaponOffset(data.id)); - data.weapon = weapon; - if (data.id != FF7Char::Sephiroth) { + if (weapon_selection->currentText().isEmpty()) { + data.weapon = quint8(Chars.weaponOffset(data.id)); weapon_selection->setCurrentIndex(data.weapon - Chars.weaponOffset(data.id)); - } else { - weapon_selection->blockSignals(true); - weapon_selection->setCurrentIndex(0); - weapon_selection->blockSignals(false); } armor_selection->setCurrentIndex(data.armor); - if (data.accessory != FF7Char::EmptyAccessory) { + if (data.accessory != FF7Char::EmptyAccessory) accessory_selection->setCurrentIndex(data.accessory); - } else { + else accessory_selection->setCurrentIndex(32); - } + //set the unknowns lcd_0x34->display(data.z_4[0]); lcd_0x35->display(data.z_4[1]); lcd_0x36->display(data.z_4[2]); lcd_0x37->display(data.z_4[3]); - update_materia_slots(); elemental_info(); status_info(); mButtonPress(mslotsel); + update_materia_slots(); init_connections();//reconnect all } void CharEditor::setLevel(int level) { - if (data.level == level) { + if (data.level == level) return; - } else { - if (level < 0) { - data.level = 0; - } else if (level > 99) { - data.level = 99; - } else { - data.level = level; - } - emit level_changed(data.level); - } + if (level < 0) + data.level = 0; + else if (level > 99) + data.level = 99; + else + data.level = quint8(level); + emit level_changed(qint8(data.level)); } + void CharEditor::cb_sadness_toggled(bool sad) { if (sad) { setSadnessFury(FF7Char::Sadness); cbFury->blockSignals(true); - cbFury->setChecked(Qt::Unchecked); + cbFury->setChecked(false); cbFury->blockSignals(false); } else { setSadnessFury(0); } } + void CharEditor::cb_fury_toggled(bool fury) { if (fury) { setSadnessFury(FF7Char::Fury); cbSadness->blockSignals(true); - cbSadness->setChecked(Qt::Unchecked); + cbSadness->setChecked(false); cbSadness->blockSignals(false); } else { setSadnessFury(0); } } + void CharEditor::setMaxHp(int maxHp) { - if (data.maxHP == maxHp) { + if (data.maxHP == maxHp) return; - } else { - if (maxHp < 0) { - data.maxHP = 0; - } else if (maxHp > 32767) { - data.maxHP = 32767; - } else { - data.maxHP = maxHp; - } - emit maxHp_changed(data.maxHP); - } + if (maxHp < 0) + data.maxHP = 0; + else if (maxHp > qint16Max) + data.maxHP = qint16Max; + else + data.maxHP = quint16(maxHp); + emit maxHp_changed(data.maxHP); } + void CharEditor::setCurHp(int curHp) { - if (data.curHP == curHp) { + if (data.curHP == curHp) return; - } else { - if (curHp < 0) { - data.curHP = 0; - } else if (curHp > 32767) { - data.curHP = 32767; - } else { - data.curHP = curHp; - } - emit curHp_changed(data.curHP); - } + if (curHp < 0) + data.curHP = 0; + else if (curHp > qint16Max) + data.curHP = qint16Max; + else + data.curHP = quint16(curHp); + emit curHp_changed(data.curHP); } + void CharEditor::setMaxMp(int maxMp) { - if (data.maxMP == maxMp) { + if (data.maxMP == maxMp) return; - } else { - if (maxMp < 0) { - data.maxMP = 0; - } else if (maxMp > 32767) { - data.maxMP = 32767; - } else { - data.maxMP = maxMp; - } - emit maxMp_changed(data.maxMP); - } + std::clamp(maxMp, 0, qint16Max); + data.maxMP = quint16(maxMp); + emit maxMp_changed(data.maxMP); } + void CharEditor::setCurMp(int curMp) { - if (data.curMP == curMp) { + if (data.curMP == curMp) return; - } else { - if (curMp < 0) { - data.curMP = 0; - } else if (curMp > 32767) { - data.curMP = 32767; - } else { - data.curMP = curMp; - } - emit curMp_changed(data.curMP); - } + if (curMp < 0) + data.curMP = 0; + else if (curMp > qint16Max) + data.curMP = qint16Max; + else + data.curMP = quint16(curMp); + emit curMp_changed(data.curMP); } + void CharEditor::setKills(int kills) { - if (data.kills == kills) { + if (data.kills == kills) return; - } else { - if (kills < 0) { - data.kills = 0; - } else if (kills > 65535) { - data.kills = 65535; - } else { - data.kills = kills; - } - emit kills_changed(data.kills); - } + if (kills < 0) + data.kills = 0; + else if (kills > quint16Max) + data.kills = quint16Max; + else + data.kills = quint16(kills); + emit kills_changed(data.kills); } -void CharEditor::setName(QString name) + +void CharEditor::setName(const QString &name) { - if (_name == name) { + if (_name == name) return; - } else { - _name = name; - emit name_changed(_name); - } + _name = name; + emit name_changed(_name); } + void CharEditor::setId(int id) { - if (data.id == id) { + if (data.id == id) return; - } else { - if (id < 0) { - data.id = 0; - } else if (id > 0x0B) { - data.id = FF7Char::Empty; - } else { - data.id = id; - } - setChar(data, lineName->text()); - emit id_changed(data.id); - } + if (id < 0) + data.id = 0; + else if (id > 0x0B) + data.id = FF7Char::Empty; + else + data.id = quint8(id); + setChar(data, lineName->text()); + emit id_changed(qint8(data.id)); } + void CharEditor::setStr(int strength) { - if (data.strength == strength) { + if (data.strength == strength) return; - } else { - if (strength < 0) { - data.strength = 0; - } else if (strength > 0xFF) { - data.strength = 0xFF; - } else { - data.strength = strength; - } - emit str_changed(data.strength); - calc_stats(); - } + if (strength < 0) + data.strength = 0; + else if (strength > quint8Max) + data.strength = quint8Max; + else + data.strength = quint8(strength); + emit str_changed(data.strength); + calc_stats(); } + void CharEditor::setVit(int vitality) { - if (data.vitality == vitality) { + if (data.vitality == vitality) return; - } else { - if (vitality < 0) { - data.vitality = 0; - } else if (vitality > 0xFF) { - data.vitality = 0xFF; - } else { - data.vitality = vitality; - } - emit vit_changed(data.vitality); - calc_stats(); - } + if (vitality < 0) + data.vitality = 0; + else if (vitality > quint8Max) + data.vitality = quint8Max; + else + data.vitality = quint8(vitality); + emit vit_changed(data.vitality); + calc_stats(); } + void CharEditor::setMag(int magic) { - if (data.magic == magic) { + if (data.magic == magic) return; - } else { - if (magic < 0) { - data.magic = 0; - } else if (magic > 0xFF) { - data.magic = 0xFF; - } else { - data.magic = magic; - } - emit mag_changed(data.magic); - calc_stats(); - } + if (magic < 0) + data.magic = 0; + else if (magic > quint8Max) + data.magic = quint8Max; + else + data.magic = quint8(magic); + emit mag_changed(data.magic); + calc_stats(); } -void CharEditor::setSpi(int spirit) + + void CharEditor::setSpi(int spirit) { - if (data.spirit == spirit) { + if (data.spirit == spirit) return; - } else { - if (spirit < 0) { - data.spirit = 0; - } else if (spirit > 0xFF) { - data.spirit = 0xFF; - } else { - data.spirit = spirit; - } - emit spi_changed(data.spirit); - calc_stats(); - } + if (spirit < 0) + data.spirit = 0; + else if (spirit > quint8Max) + data.spirit = quint8Max; + else + data.spirit = quint8(spirit); + emit spi_changed(data.spirit); + calc_stats(); } + void CharEditor::setDex(int dexterity) { - if (data.dexterity == dexterity) { + if (data.dexterity == dexterity) return; - } else { - if (dexterity < 0) { - data.dexterity = 0; - } else if (dexterity > 0xFF) { - data.dexterity = 0xFF; - } else { - data.dexterity = dexterity; - } - emit dex_changed(data.dexterity); - calc_stats(); - } + if (dexterity < 0) + data.dexterity = 0; + else if (dexterity > quint8Max) + data.dexterity = quint8Max; + else + data.dexterity = quint8(dexterity); + emit dex_changed(data.dexterity); + calc_stats(); } + void CharEditor::setLck(int luck) { - if (data.luck == luck) { + if (data.luck == luck) return; - } else { - if (luck < 0) { - data.luck = 0; - } else if (luck > 0xFF) { - data.luck = 0xFF; - } else { - data.luck = luck; - } - emit lck_changed(data.luck); - calc_stats(); - } + if (luck < 0) + data.luck = 0; + else if (luck > quint8Max) + data.luck = quint8Max; + else + data.luck = quint8(luck); + emit lck_changed(data.luck); + calc_stats(); } + void CharEditor::setStrBonus(int strength_bonus) { - if (data.strength_bonus == strength_bonus) { + if (data.strength_bonus == strength_bonus) return; - } else { - if (strength_bonus < 0) { - data.strength_bonus = 0; - } else if (strength_bonus > 0xFF) { - data.strength_bonus = 0xFF; - } else { - data.strength_bonus = strength_bonus; - } - emit strBonus_changed(data.strength_bonus); - calc_stats(); - } + if (strength_bonus < 0) + data.strength_bonus = 0; + else if (strength_bonus > quint8Max) + data.strength_bonus = quint8Max; + else + data.strength_bonus = quint8(strength_bonus); + emit strBonus_changed(data.strength_bonus); + calc_stats(); } + void CharEditor::setVitBonus(int vitality_bonus) { - if (data.vitality_bonus == vitality_bonus) { + if (data.vitality_bonus == vitality_bonus) return; - } else { - if (vitality_bonus < 0) { - data.vitality_bonus = 0; - } else if (vitality_bonus > 0xFF) { - data.vitality_bonus = 0xFF; - } else { - data.vitality_bonus = vitality_bonus; - } - emit vitBonus_changed(data.vitality_bonus); - calc_stats(); - } + if (vitality_bonus < 0) + data.vitality_bonus = 0; + else if (vitality_bonus > quint8Max) + data.vitality_bonus = quint8Max; + else + data.vitality_bonus = quint8(vitality_bonus); + emit vitBonus_changed(data.vitality_bonus); + calc_stats(); } + void CharEditor::setMagBonus(int magic_bonus) { - if (data.magic_bonus == magic_bonus) { + if (data.magic_bonus == magic_bonus) return; - } else { - if (magic_bonus < 0) { - data.magic_bonus = 0; - } else if (magic_bonus > 0xFF) { - data.magic_bonus = 0xFF; - } else { - data.magic_bonus = magic_bonus; - } - emit magBonus_changed(data.magic_bonus); - calc_stats(); - } + if (magic_bonus < 0) + data.magic_bonus = 0; + else if (magic_bonus > quint8Max) + data.magic_bonus = quint8Max; + else + data.magic_bonus = quint8(magic_bonus); + emit magBonus_changed(data.magic_bonus); + calc_stats(); } + void CharEditor::setSpiBonus(int spirit_bonus) { - if (data.spirit_bonus == spirit_bonus) { + if (data.spirit_bonus == spirit_bonus) return; - } else { - if (spirit_bonus < 0) { - data.spirit_bonus = 0; - } else if (spirit_bonus > 0xFF) { - data.spirit_bonus = 0xFF; - } else { - data.spirit_bonus = spirit_bonus; - } - emit spiBonus_changed(data.spirit_bonus); - calc_stats(); - } + if (spirit_bonus < 0) + data.spirit_bonus = 0; + else if (spirit_bonus > quint8Max) + data.spirit_bonus = quint8Max; + else + data.spirit_bonus = quint8(spirit_bonus); + emit spiBonus_changed(data.spirit_bonus); + calc_stats(); } + void CharEditor::setDexBonus(int dexterity_bonus) { - if (data.dexterity_bonus == dexterity_bonus) { + if (data.dexterity_bonus == dexterity_bonus) return; - } else { - if (dexterity_bonus < 0) { - data.dexterity_bonus = 0; - } else if (dexterity_bonus > 0xFF) { - data.dexterity_bonus = 0xFF; - } else { - data.dexterity_bonus = dexterity_bonus; - } - emit dexBonus_changed(data.dexterity_bonus); - calc_stats(); - } + if (dexterity_bonus < 0) + data.dexterity_bonus = 0; + else if (dexterity_bonus > quint8Max) + data.dexterity_bonus = quint8Max; + else + data.dexterity_bonus = quint8(dexterity_bonus); + emit dexBonus_changed(data.dexterity_bonus); + calc_stats(); } + void CharEditor::setLckBonus(int luck_bonus) { - if (data.luck_bonus == luck_bonus) { + if (data.luck_bonus == luck_bonus) return; - } else { - if (luck_bonus < 0) { - data.luck_bonus = 0; - } else if (luck_bonus > 0xFF) { - data.luck_bonus = 0xFF; - } else { - data.luck_bonus = luck_bonus; - } - emit lckBonus_changed(data.luck_bonus); - calc_stats(); - } + if (luck_bonus < 0) + data.luck_bonus = 0; + else if (luck_bonus > quint8Max) + data.luck_bonus = quint8Max; + else + data.luck_bonus = quint8(luck_bonus); + emit lckBonus_changed(data.luck_bonus); + calc_stats(); } + void CharEditor::setLimitLevel(int limitlevel) { - if (data.limitlevel == limitlevel) { + if (data.limitlevel == limitlevel) return; - } else { - if (limitlevel < 0) { - data.limitlevel = 0; - } else if (limitlevel > 4) { - data.limitlevel = 4; - } else { - data.limitlevel = limitlevel; - } - emit limitLevel_changed(data.limitlevel); - } + if (limitlevel < 0) + data.limitlevel = 0; + else if (limitlevel > 4) + data.limitlevel = 4; + else + data.limitlevel = qint8(limitlevel); + emit limitLevel_changed(data.limitlevel); } + void CharEditor::setLimitBar(int limitbar) { - if (data.limitbar == limitbar) { + if (data.limitbar == limitbar) return; - } else { - if (limitbar < 0) { - data.limitbar = 0; - } else if (limitbar > 0xFF) { - data.limitbar = 0xFF; - } else { - data.limitbar = limitbar; - } - emit limitBar_changed(data.limitbar); - } + if (limitbar < 0) + data.limitbar = 0; + else if (limitbar > quint8Max) + data.limitbar = quint8Max; + else + data.limitbar = quint8(limitbar); + emit limitBar_changed(data.limitbar); } + void CharEditor::setWeapon(int weapon) { - if (weapon == (data.weapon - Chars.weaponOffset(data.id))) { + if (weapon == (data.weapon - Chars.weaponOffset(data.id))) return; - } else { - if (weapon < 0) { - data.weapon = Chars.weaponOffset(data.id); - } else if (weapon > Chars.numberOfWeapons(data.id)) { - data.weapon = Chars.numberOfWeapons(data.id) + Chars.weaponOffset(data.id); - } else { - data.weapon = weapon + Chars.weaponOffset(data.id); - } - emit weapon_changed(data.weapon); - //Update the Widget. - elemental_info(); - status_info(); - update_materia_slots(); - } + if (weapon < 0) + data.weapon = quint8(Chars.weaponOffset(data.id)); + else if (weapon > Chars.numberOfWeapons(data.id)) + data.weapon = quint8(Chars.numberOfWeapons(data.id) + Chars.weaponOffset(data.id)); + else + data.weapon = quint8(weapon + Chars.weaponOffset(data.id)); + emit weapon_changed(data.weapon); + + elemental_info(); + status_info(); + update_materia_slots(); } + void CharEditor::setArmor(int armor) { - if (armor == data.armor) { + if (armor == data.armor) return; - } else { - if (armor < 0) { - data.armor = 0; - } else if (armor > 32) { - data.armor = FF7Char::EmptyArmor; - } else { - data.armor = armor; - } - emit armor_changed(data.armor); - elemental_info(); - status_info(); - update_materia_slots(); - } + if (armor < 0) + data.armor = 0; + else if (armor > 32) + data.armor = FF7Char::EmptyArmor; + else + data.armor = quint8(armor); + emit armor_changed(data.armor); + elemental_info(); + status_info(); + update_materia_slots(); } + void CharEditor::setAccessory(int accessory) { - if (accessory == data.accessory) { + if (accessory == data.accessory) return; - } else { - if (accessory < 0) { - data.accessory = 0; - } else if (accessory > 32) { - data.accessory = FF7Char::EmptyAccessory; - } else { - data.accessory = accessory; - } - emit accessory_changed(data.accessory); - elemental_info(); - status_info(); - calc_stats(); - } + if (accessory < 0) + data.accessory = 0; + else if (accessory > 32) + data.accessory = FF7Char::EmptyAccessory; + else + data.accessory = quint8(accessory); + emit accessory_changed(data.accessory); + elemental_info(); + status_info(); + calc_stats(); } + void CharEditor::setSadnessFury(int sad_fury) { - if (sad_fury == data.flags[0]) { + if (sad_fury == data.flags[0]) return; - } else { - if (sad_fury == FF7Char::Fury) { - data.flags[0] = FF7Char::Fury; - } else if (sad_fury == FF7Char::Sadness) { - data.flags[0] = FF7Char::Sadness; - } else { - data.flags[0] = 0; - } - emit sadnessfury_changed(data.flags[0]); - } - + if (sad_fury == FF7Char::Fury) + data.flags[0] = FF7Char::Fury; + else if (sad_fury == FF7Char::Sadness) + data.flags[0] = FF7Char::Sadness; + else + data.flags[0] = 0; + emit sadnessfury_changed(data.flags[0]); } + void CharEditor::setRow(bool front_row) { - if ((front_row) && (data.flags[1] == FF7Char::FrontRow)) { + if ((front_row) && (data.flags[1] == FF7Char::FrontRow)) return; - } else if ((!front_row) && (data.flags[1] == FF7Char::BackRow)) { + if ((!front_row) && (data.flags[1] == FF7Char::BackRow)) return; - } else { - if (front_row) { - data.flags[1] = FF7Char::FrontRow; - } else { - data.flags[1] = FF7Char::BackRow; - } - emit row_changed(data.flags[1]); - } + if (front_row) + data.flags[1] = FF7Char::FrontRow; + else + data.flags[1] = FF7Char::BackRow; + emit row_changed(data.flags[1]); } void CharEditor::setLevelProgress(int level_progress) { //Level progress bar (0-63) game ingores values <4 4-63 are visible as "progress" - if (level_progress == data.flags[2]) { + if (level_progress == data.flags[2]) return; - } else { - if (level_progress < 0) { - data.flags[2] = 0; - } else if (level_progress > 63) { - data.flags[2] = 63; - } else { - data.flags[2] = level_progress; - } - emit levelProgress_changed(data.flags[2]); - } + if (level_progress < 0) + data.flags[2] = 0; + else if (level_progress > 63) + data.flags[2] = 63; + else + data.flags[2] = quint8(level_progress); + emit levelProgress_changed(data.flags[2]); } void CharEditor::setLimits(int limits) { - if (limits == data.limits) { + if (limits == data.limits) return; - } else { - if (limits < 0) { - data.limits = 0; - } else if (limits > 32767) { - data.limits = 32767; - } else { - data.limits = limits; - } - emit limits_changed(data.limits); - } + if (limits < 0) + data.limits = 0; + else if (limits > qint16Max) + data.limits = qint16Max; + else + data.limits = quint16(limits); + emit limits_changed(data.limits); } + void CharEditor::setTimesused1(int timesused) { - if (timesused == data.timesused1) { + if (timesused == data.timesused1) return; - } else { - if (timesused < 0) { - data.timesused1 = 0; - } else if (timesused > 65535) { - data.timesused1 = 65535; - } else { - data.timesused1 = timesused; - } - emit(timesused1_changed(data.timesused1)); - } + if (timesused < 0) + data.timesused1 = 0; + else if (timesused > quint16Max) + data.timesused1 = quint16Max; + else + data.timesused1 = quint16(timesused); + emit(timesused1_changed(data.timesused1)); } void CharEditor::setTimesused2(int timesused) { - if (timesused == data.timesused2) { + if (timesused == data.timesused2) return; - } else { - if (timesused < 0) { - data.timesused2 = 0; - } else if (timesused > 65535) { - data.timesused2 = 65535; - } else { - data.timesused2 = timesused; - } - emit(timesused2_changed(data.timesused2)); - } + if (timesused < 0) + data.timesused2 = 0; + else if (timesused > quint16Max) + data.timesused2 = quint16Max; + else + data.timesused2 = quint16(timesused); + emit(timesused2_changed(data.timesused2)); } + void CharEditor::setTimesused3(int timesused) { - if (timesused == data.timesused3) { + if (timesused == data.timesused3) return; - } else { - if (timesused < 0) { - data.timesused3 = 0; - } else if (timesused > 65535) { - data.timesused3 = 65535; - } else { - data.timesused3 = timesused; - } - emit(timesused3_changed(data.timesused3)); - } + if (timesused < 0) + data.timesused3 = 0; + else if (timesused > quint16Max) + data.timesused3 = quint16Max; + else + data.timesused3 = quint16(timesused); + emit(timesused3_changed(data.timesused3)); } + void CharEditor::setBaseHp(int baseHp) { - if (data.baseHP == baseHp) { + if (data.baseHP == baseHp) return; - } else { - if (baseHp < 0) { - data.baseHP = 0; - } else if (baseHp > 32767) { - data.baseHP = 32767; - } else { - data.baseHP = baseHp; - } - emit baseHp_changed(data.baseHP); - calc_stats(); - } + + if (baseHp < 0) + data.baseHP = 0; + else if (baseHp > qint16Max) + data.baseHP = qint16Max; + else + data.baseHP = quint16(baseHp); + emit baseHp_changed(data.baseHP); + calc_stats(); } + void CharEditor::setBaseMp(int baseMp) { - if (data.baseMP == baseMp) { + if (data.baseMP == baseMp) return; - } else { - if (baseMp < 0) { - data.baseMP = 0; - } else if (baseMp > 32767) { - data.baseMP = 32767; - } else { - data.baseMP = baseMp; - } - emit baseMp_changed(data.baseMP); - calc_stats(); - } + if (baseMp < 0) + data.baseMP = 0; + else if (baseMp > qint16Max) + data.baseMP = qint16Max; + else + data.baseMP = quint16(baseMp); + emit baseMp_changed(data.baseMP); + calc_stats(); } + void CharEditor::setExp(int exp) { - if (data.exp == quint32(exp)) { + if (data.exp == quint32(exp)) return; - } else { - if (exp < 0) { - data.exp = 0; - } else { - data.exp = exp; - } - emit exp_changed(data.exp); - } + if (exp < 0) + data.exp = 0; + else + data.exp = quint32(exp); + emit exp_changed(data.exp); } + void CharEditor::setExpNext(int expNext) { - if (data.expNext == quint32(expNext)) { + if (data.expNext == quint32(expNext)) return; - } else { - if (expNext < 0) { - data.expNext = 0; - } else { - data.expNext = expNext; - } - emit expNext_changed(data.expNext); - } + if (expNext < 0) + data.expNext = 0; + else + data.expNext = quint32(expNext); + emit expNext_changed(data.expNext); } void CharEditor::calc_limit_value(QModelIndex item) @@ -1705,7 +1624,7 @@ Level_Changed(data.level); } } -bool CharEditor::AutoLevel(void) +bool CharEditor::AutoLevel() { return autolevel; } @@ -1714,11 +1633,11 @@ autostatcalc = ans; //Toggle stat calculation calc_stats(); } -bool CharEditor::AutoStatCalc(void) +bool CharEditor::AutoStatCalc() { return autostatcalc; } -bool CharEditor::AdvancedMode(void) +bool CharEditor::AdvancedMode() { return advancedMode; } @@ -1733,23 +1652,23 @@ cb_idChanger->setHidden(advancedMode); } } + void CharEditor::setEditable(bool edit) { editable = edit; if (editable) { - // unlock all items, do this better later on. setEnabled(true); } else { - //lock all items setEnabled(false); } } -bool CharEditor::Editable(void) + +bool CharEditor::Editable() { return editable; } -void CharEditor::calc_stats(void) +void CharEditor::calc_stats() { int str_total = 0; int vit_total = 0; @@ -1895,7 +1814,7 @@ for (int i = 0; i < 16; i++) { if (data.materias[i].id != FF7Materia::EmptyId) { int level = 0; - int aptemp = Materias.ap2num(data.materias[i].ap); + qint32 aptemp = (Materias.ap2num(data.materias[i].ap)); for (int m = 0; m < Materias.levels(data.materias[i].id); m++) { if (aptemp >= Materias.ap(data.materias[i].id, m)) { level++; @@ -1959,12 +1878,12 @@ mag_total += mag_bonus; lck_total += lck_bonus; - lblStrTotal->setText(QString::number(std::min(str_total, 255))); - lblVitTotal->setText(QString::number(std::min(vit_total, 255))); - lblMagTotal->setText(QString::number(std::min(mag_total, 255))); - lblSpiTotal->setText(QString::number(std::min(spi_total, 255))); - lblDexTotal->setText(QString::number(std::min(dex_total, 255))); - lblLckTotal->setText(QString::number(std::min(lck_total, 255))); + lblStrTotal->setText(QString::number(std::min(str_total, quint8Max))); + lblVitTotal->setText(QString::number(std::min(vit_total, quint8Max))); + lblMagTotal->setText(QString::number(std::min(mag_total, quint8Max))); + lblSpiTotal->setText(QString::number(std::min(spi_total, quint8Max))); + lblDexTotal->setText(QString::number(std::min(dex_total, quint8Max))); + lblLckTotal->setText(QString::number(std::min(lck_total, quint8Max))); if (hp_bonus >= 0) { lblBaseHpBonus->setText(QStringLiteral(" +%1%").arg(QString::number(hp_bonus))); @@ -1978,8 +1897,8 @@ lblBaseMpBonus->setText(QString(" %1%").arg(QString::number(mp_bonus))); } - lblMaxHp->setNum(std::min(int(data.baseHP + (data.baseHP * (hp_bonus * .01))), 32767)); - lblMaxMp->setNum(std::min(int(data.baseMP + (data.baseMP * (mp_bonus * .01))), 32767)); + lblMaxHp->setNum(std::min(int(data.baseHP + (data.baseHP * (hp_bonus * .01))), qint16Max)); + lblMaxMp->setNum(std::min(int(data.baseMP + (data.baseMP * (mp_bonus * .01))), qint16Max)); } void CharEditor::level_up(int pre_level) @@ -2013,12 +1932,12 @@ } calc_stats(); } -void CharEditor::update_tnl_bar(void) +void CharEditor::update_tnl_bar() { if (data.level != 99) { - setExpNext(Chars.totalExpForLevel(data.id, data.level) - data.exp); + setExpNext(int(Chars.totalExpForLevel(data.id, data.level) - data.exp)); if (data.level > 0) { - setLevelProgress(((Chars.tnlForLevel(data.id, data.level) - data.expNext) * 62) / Chars.tnlForLevel(data.id, data.level)); + setLevelProgress(int(((Chars.tnlForLevel(data.id, data.level) - data.expNext) * 62) / Chars.tnlForLevel(data.id, data.level))); } } else { setExpNext(0); @@ -2031,7 +1950,7 @@ lbl_level_next->setText(tr("Next: %1").arg(QString::number(data.expNext))); } -void CharEditor::elemental_info(void) +void CharEditor::elemental_info() { int y = elemental_effects->contentsMargins().top() + elemental_effects->contentsMargins().bottom(); bool show = false; @@ -2079,14 +1998,14 @@ } }//end of for Loop elemental_effects->setFixedHeight(y); - elemental_box->setFixedSize(205 * scale, y + elemental_box->contentsMargins().top() + elemental_box->contentsMargins().bottom()); + elemental_box->setFixedSize(int(205 * scale), y + elemental_box->contentsMargins().top() + elemental_box->contentsMargins().bottom()); }//end of else. }//end of other loop. elemental_box->setVisible(show); elemental_box->adjustSize(); }//end of function -void CharEditor::status_info(void) +void CharEditor::status_info() { int y = status_effects->contentsMargins().top() + status_effects->contentsMargins().bottom(); bool show = false; @@ -2145,12 +2064,13 @@ } }//end of for Loop status_effects->setFixedHeight(y); - status_box->setFixedSize(205 * scale, y + status_box->contentsMargins().top() + status_box->contentsMargins().bottom()); + status_box->setFixedSize(int(205 * scale), y + status_box->contentsMargins().top() + status_box->contentsMargins().bottom()); }//end of else. }//end of loop status_box->setVisible(show); status_box->adjustSize(); }//end of function + void CharEditor::update_materia_slots() { QSize isize = QSize(int(24 * scale), int(24 * scale)); @@ -2158,8 +2078,7 @@ QList buttons = weapon_box->findChildren(); int i = 0; for(auto button : qAsConst(buttons)) { - button->setVisible( (i+1) <= Items.materiaSlots(data.weapon + 128)); - + button->setVisible((i+1) <= Items.materiaSlots(data.weapon + 128)); if (data.materias[i].id != FF7Materia::EmptyId) { button->setIcon(QIcon(Materias.pixmap(data.materias[i].id).scaled(isize, Qt::KeepAspectRatio, Qt::SmoothTransformation))); } else { @@ -2170,8 +2089,7 @@ buttons = armor_box->findChildren(); for(auto button : qAsConst(buttons)) { - button->setVisible( (i-7) <= Items.materiaSlots(data.armor + 256)); - + button->setVisible((i-7) <= Items.materiaSlots(data.armor + 256)); if (data.materias[i].id != FF7Materia::EmptyId) { button->setIcon(QIcon(Materias.pixmap(data.materias[i].id).scaled(isize, Qt::KeepAspectRatio, Qt::SmoothTransformation))); } else { @@ -2183,15 +2101,13 @@ //reset style sheet for the outer slot frames and links to ensure they are not visible reguardless of hosts stylesheet. QList frames = weapon_box->findChildren(); frames.append(armor_box->findChildren()); - for(auto frame : qAsConst(frames)) { + for(auto frame : qAsConst(frames)) frame->setStyleSheet(QString("QFrame{background-color:rgba(0,0,0,0);}")); - } QList labels = weapon_box->findChildren(); labels.append(armor_box->findChildren()); - for(auto label : qAsConst(labels)) { + for(auto label : qAsConst(labels)) label->setStyleSheet(QString("background-color:rgba(0,0,0,0);")); - } updateMateriaToolTips(); //set up weapon @@ -2219,14 +2135,13 @@ } void CharEditor::matId_changed(qint8 id) { - if (id >= 0 && id < 91) { + if (id >= 0 && id < 91) data.materias[mslotsel].id = quint8(id); - } else { + else data.materias[mslotsel].id = FF7Materia::EmptyId; - } - if (!load) { + + if (!load) emit(Materias_changed(data.materias[mslotsel])); - } update_materia_slots(); } void CharEditor::matAp_changed(qint32 ap) @@ -2239,76 +2154,76 @@ data.materias[mslotsel].ap[1] = quint8(b); data.materias[mslotsel].ap[2] = quint8(c); } else { - data.materias[mslotsel].ap[0] = 0xFF; - data.materias[mslotsel].ap[1] = 0xFF; - data.materias[mslotsel].ap[2] = 0xFF; + data.materias[mslotsel].ap[0] = quint8Max; + data.materias[mslotsel].ap[1] = quint8Max; + data.materias[mslotsel].ap[2] = quint8Max; } if (!load) { emit(Materias_changed(data.materias[mslotsel])); } update_materia_slots(); } -void CharEditor::weapon_slot_1_clicked(void) +void CharEditor::weapon_slot_1_clicked() { mButtonPress(0); } -void CharEditor::weapon_slot_2_clicked(void) +void CharEditor::weapon_slot_2_clicked() { mButtonPress(1); } -void CharEditor::weapon_slot_3_clicked(void) +void CharEditor::weapon_slot_3_clicked() { mButtonPress(2); } -void CharEditor::weapon_slot_4_clicked(void) +void CharEditor::weapon_slot_4_clicked() { mButtonPress(3); } -void CharEditor::weapon_slot_5_clicked(void) +void CharEditor::weapon_slot_5_clicked() { mButtonPress(4); } -void CharEditor::weapon_slot_6_clicked(void) +void CharEditor::weapon_slot_6_clicked() { mButtonPress(5); } -void CharEditor::weapon_slot_7_clicked(void) +void CharEditor::weapon_slot_7_clicked() { mButtonPress(6); } -void CharEditor::weapon_slot_8_clicked(void) +void CharEditor::weapon_slot_8_clicked() { mButtonPress(7); } -void CharEditor::armor_slot_1_clicked(void) +void CharEditor::armor_slot_1_clicked() { mButtonPress(8); } -void CharEditor::armor_slot_2_clicked(void) +void CharEditor::armor_slot_2_clicked() { mButtonPress(9); } -void CharEditor::armor_slot_3_clicked(void) +void CharEditor::armor_slot_3_clicked() { mButtonPress(10); } -void CharEditor::armor_slot_4_clicked(void) +void CharEditor::armor_slot_4_clicked() { mButtonPress(11); } -void CharEditor::armor_slot_5_clicked(void) +void CharEditor::armor_slot_5_clicked() { mButtonPress(12); } -void CharEditor::armor_slot_6_clicked(void) +void CharEditor::armor_slot_6_clicked() { mButtonPress(13); } -void CharEditor::armor_slot_7_clicked(void) +void CharEditor::armor_slot_7_clicked() { mButtonPress(14); } -void CharEditor::armor_slot_8_clicked(void) +void CharEditor::armor_slot_8_clicked() { mButtonPress(15); } @@ -2330,7 +2245,7 @@ load = false; } -void CharEditor::setSlotFrame(void) +void CharEditor::setSlotFrame() { for(auto frame : qAsConst(materiaSlotFrames)) { frame->setFrameShape(QFrame::NoFrame); @@ -2340,94 +2255,84 @@ void CharEditor::cb_idChanger_toggled(bool checked) { - if (checked && data.id == FF7Char::CaitSith) { + if (checked && data.id == FF7Char::CaitSith) comboId->setCurrentIndex(FF7Char::YoungCloud); - } - if (checked && data.id == FF7Char::Vincent) { + if (checked && data.id == FF7Char::Vincent) comboId->setCurrentIndex(FF7Char::Sephiroth); - } - if (!checked && data.id == FF7Char::YoungCloud) { + if (!checked && data.id == FF7Char::YoungCloud) comboId->setCurrentIndex(FF7Char::CaitSith); - } - if (!checked && data.id == FF7Char::Sephiroth) { + if (!checked && data.id == FF7Char::Sephiroth) comboId->setCurrentIndex(FF7Char::Vincent); - } } + void CharEditor::MaxStats() { - if (data.id == FF7Char::YoungCloud || data.id == FF7Char::Sephiroth) { + if (data.id == FF7Char::YoungCloud || data.id == FF7Char::Sephiroth) return; + + sbLevel->setValue(99); + sbBaseHp->setValue(10000); //set to 10k to prevent overflow + sbBaseMp->setValue(10000); //set to 10k to prevent overflow + sbStrSourceUse->setValue(quint8Max); + sbDexSourceUse->setValue(quint8Max); + sbSpiSourceUse->setValue(quint8Max); + sbVitSourceUse->setValue(quint8Max); + sbMagSourceUse->setValue(quint8Max); + sbLckSourceUse->setValue(quint8Max); + sbCurrentHp->setValue(data.maxHP); + sbCurrentMp->setValue(data.maxMP); + + if (data.id == FF7Char::CaitSith) { + sb_limit_level->setValue(2); + setLimits(0x09); + } else if (data.id == FF7Char::Vincent) { + sb_limit_level->setValue(4); + setLimits(0x249); } else { - sbLevel->setValue(99); - sbBaseHp->setValue(10000); //set to 10k to prevent overflow - sbBaseMp->setValue(10000); //set to 10k to prevent overflow - sbStrSourceUse->setValue(255); - sbDexSourceUse->setValue(255); - sbSpiSourceUse->setValue(255); - sbVitSourceUse->setValue(255); - sbMagSourceUse->setValue(255); - sbLckSourceUse->setValue(255); - sbCurhp->setValue(data.maxHP); - sbCurmp->setValue(data.maxMP); - - //do limits. - if (data.id == FF7Char::CaitSith) { - sb_limit_level->setValue(2); - this->setLimits(0x09); - } else if (data.id == FF7Char::Vincent) { - sb_limit_level->setValue(4); - this->setLimits(0x249); - } else { - sb_limit_level->setValue(4); - this->setLimits(0x2DB); - } + sb_limit_level->setValue(4); + setLimits(0x2DB); } } + void CharEditor::MaxEquip() { - if (data.id == FF7Char::YoungCloud || data.id == FF7Char::Sephiroth) { + if (data.id == FF7Char::YoungCloud || data.id == FF7Char::Sephiroth) return; - } else { - //set up weapons/ armor - weapon_selection->setCurrentIndex(Chars.numberOfWeapons(data.id) - 1); - armor_selection->setCurrentIndex(29); - accessory_selection->setCurrentIndex(18); - for (int i = 15; i >= 0; i--) { - mslotsel = i; - quint8 new_id = FF7Materia::EmptyId; - switch (mslotsel) { - case 6: new_id = FF7Materia::MegaAll; break; - case 5: new_id = FF7Materia::LongRange; break; - case 4: new_id = FF7Materia::PreEmptive; break; - case 3: new_id = FF7Materia::MasterSummon; break; - case 2: new_id = FF7Materia::EnemySkill; break; - case 1: new_id = FF7Materia::MasterCommand; break; - case 0: weapon_slot_1_clicked(); new_id = FF7Materia::MasterMagic; break; - } - data.materias[mslotsel].id = new_id; - data.materias[mslotsel].ap[0] = 0xFF; - data.materias[mslotsel].ap[1] = 0xFF; - data.materias[mslotsel].ap[2] = 0xFF; + //set up weapons/ armor + weapon_selection->setCurrentIndex(Chars.numberOfWeapons(data.id) - 1); + armor_selection->setCurrentIndex(29); + accessory_selection->setCurrentIndex(18); + for (int i = 15; i >= 0; i--) { + mslotsel = i; + quint8 new_id = FF7Materia::EmptyId; + switch (mslotsel) { + case 6: new_id = FF7Materia::MegaAll; break; + case 5: new_id = FF7Materia::LongRange; break; + case 4: new_id = FF7Materia::PreEmptive; break; + case 3: new_id = FF7Materia::MasterSummon; break; + case 2: new_id = FF7Materia::EnemySkill; break; + case 1: new_id = FF7Materia::MasterCommand; break; + case 0: weapon_slot_1_clicked(); new_id = FF7Materia::MasterMagic; break; + } + + data.materias[mslotsel].id = new_id; + data.materias[mslotsel].ap[0] = quint8Max; + data.materias[mslotsel].ap[1] = quint8Max; + data.materias[mslotsel].ap[2] = quint8Max; - emit(mslotChanged(mslotsel)); - emit(Materias_changed(data.materias[mslotsel])); - } - update_materia_slots(); - setSlotFrame(); - cbFrontRow->setCheckState(Qt::Unchecked); + emit(mslotChanged(mslotsel)); + emit(Materias_changed(data.materias[mslotsel])); } + update_materia_slots(); + setSlotFrame(); + cbFrontRow->setCheckState(Qt::Unchecked); } void CharEditor::setEditableComboBoxes(bool editable) { weapon_selection->setEditable(editable); - weapon_selection->setInsertPolicy(QComboBox::NoInsert); - armor_selection->setEditable(editable); - armor_selection->setInsertPolicy(QComboBox::NoInsert); - accessory_selection->setEditable(editable); - accessory_selection->setInsertPolicy(QComboBox::NoInsert); materia_edit->setEditableMateriaCombo(editable); } @@ -2436,12 +2341,12 @@ QSizePolicy policy(QSizePolicy::Maximum, QSizePolicy::Fixed); int width = fontMetrics().horizontalAdvance(QStringLiteral("WWW")); - statBaseSpinBox->setMaximum(255); + statBaseSpinBox->setMaximum(quint8Max); statBaseSpinBox->setWrapping(true); statBaseSpinBox->setAlignment(Qt::AlignCenter); - if(statSourceSpinBox) { - statSourceSpinBox->setMaximum(255); + if (statSourceSpinBox) { + statSourceSpinBox->setMaximum(quint8Max); statSourceSpinBox->setWrapping(true); statSourceSpinBox->setAlignment(Qt::AlignCenter); } @@ -2488,14 +2393,13 @@ QFrame * CharEditor::makeStatFrame() { - auto statLeftLayout = new QVBoxLayout; statLeftLayout->addWidget(makeStatWidget(sbBaseHp, nullptr, lblBaseHp, lblBaseHpBonus, lblMaxHp), 0); statLeftLayout->addWidget(makeStatWidget(sbStr, sbStrSourceUse, lblStr, lblStrMateriaBonus, lblStrTotal), 0); statLeftLayout->addWidget(makeStatWidget(sbVit, sbVitSourceUse, lblVit, lblVitMateriaBonus, lblVitTotal), 0); statLeftLayout->addWidget(makeStatWidget(sbMag, sbMagSourceUse, lblMag, lblMagMateriaBonus, lblMagTotal), 0); - sbBaseHp->setMaximum(32767); + sbBaseHp->setMaximum(qint16Max); sbBaseHp->setFixedWidth(fontMetrics().horizontalAdvance(QStringLiteral("WWWWW"))); lblBaseHpBonus->setFixedWidth(fontMetrics().horizontalAdvance(QStringLiteral("WWWW"))); @@ -2505,11 +2409,11 @@ statRightLayout->addWidget(makeStatWidget(sbDex, sbDexSourceUse, lblDex, lblDexMateriaBonus, lblDexTotal), 0); statRightLayout->addWidget(makeStatWidget(sbLck, sbLckSourceUse, lblLck, lblLckMateriaBonus, lblLckTotal), 0); - sbBaseMp->setMaximum(32767); + sbBaseMp->setMaximum(qint16Max); sbBaseMp->setFixedWidth(fontMetrics().horizontalAdvance(QStringLiteral("WWWWW"))); lblBaseMpBonus->setFixedWidth(fontMetrics().horizontalAdvance(QStringLiteral("WWWW"))); - auto statBox = new QFrame; + auto statBox = new QFrame(this); auto statLayout = new QHBoxLayout(statBox); statLayout->addLayout(statLeftLayout, 0); statLayout->addLayout(statRightLayout, 0); @@ -2520,7 +2424,6 @@ QHBoxLayout * CharEditor::makeMateriaSlotPair(QPushButton* button1, QPushButton* button2, QFrame *frame1, QFrame *frame2, QLabel* linkLabel) { - QSize slotSize = QSize(int(32 * scale), int(32 * scale)); QSize linkSize = QSize(int(12 * scale), int(16 * scale)); button1->setFixedSize(slotSize); @@ -2528,7 +2431,7 @@ button1->setStyleSheet(Items.styleMateriaSlotNoGrowth()); button1->setHidden(1); - QHBoxLayout *slotLayout = new QHBoxLayout; + auto slotLayout = new QHBoxLayout; slotLayout->setContentsMargins(0, 0, 0, 0); slotLayout->addWidget(button1); @@ -2544,7 +2447,7 @@ button2->setStyleSheet(Items.styleMateriaSlotNoGrowth()); button2->setHidden(1); - QHBoxLayout *slotLayout2 = new QHBoxLayout; + auto slotLayout2 = new QHBoxLayout; slotLayout2->setContentsMargins(0, 0, 0, 0); slotLayout2->addWidget(button2); @@ -2553,7 +2456,7 @@ frame2->setFrameShadow(QFrame::Plain); frame2->setLayout(slotLayout2); - QHBoxLayout *finalLayout = new QHBoxLayout; + auto finalLayout = new QHBoxLayout; finalLayout->setContentsMargins(0, 0, 0, 0); finalLayout->addWidget(frame1); finalLayout->addWidget(linkLabel); @@ -2562,3 +2465,85 @@ return finalLayout; } + +QVBoxLayout * CharEditor::makeLimitLayout() +{ + int charWidth = fontMetrics().horizontalAdvance((QChar('W'))); + + sb_uses_limit_1_1 = new QSpinBox; + sb_uses_limit_1_1->setMaximum(qint16Max); + sb_uses_limit_1_1->setWrapping(true); + sb_uses_limit_1_1->setFixedWidth(charWidth * 5); + sb_uses_limit_1_1->setAlignment(Qt::AlignCenter); + + auto layout_1_1 = new QHBoxLayout; + layout_1_1->setContentsMargins(0, 0, 0, 0); + layout_1_1->addWidget(lbl_1_1); + layout_1_1->addWidget(sb_uses_limit_1_1); + + sb_uses_limit_2_1 = new QSpinBox; + sb_uses_limit_2_1->setWrapping(true); + sb_uses_limit_2_1->setMaximum(qint16Max); + sb_uses_limit_2_1->setFixedWidth(charWidth * 5); + sb_uses_limit_2_1->setAlignment(Qt::AlignCenter); + + auto layout_2_1 = new QHBoxLayout; + layout_2_1->setContentsMargins(0, 0, 0, 0); + layout_2_1->addWidget(lbl_2_1); + layout_2_1->addWidget(sb_uses_limit_2_1); + + sb_uses_limit_3_1 = new QSpinBox; + sb_uses_limit_3_1->setMaximum(qint16Max); + sb_uses_limit_3_1->setWrapping(true); + sb_uses_limit_3_1->setFixedWidth(charWidth * 5); + sb_uses_limit_3_1->setAlignment(Qt::AlignCenter); + + auto layout_3_1 = new QHBoxLayout; + layout_3_1->setContentsMargins(0, 0, 0, 0); + layout_3_1->addWidget(lbl_3_1); + layout_3_1->addWidget(sb_uses_limit_3_1); + + auto used_limits_layout = new QVBoxLayout; + used_limits_layout->setContentsMargins(0, 6, 0, 0); + used_limits_layout->addWidget(lbl_uses); + used_limits_layout->addLayout(layout_1_1); + used_limits_layout->addLayout(layout_2_1); + used_limits_layout->addLayout(layout_3_1); + used_limits_layout->addSpacerItem(new QSpacerItem(0, 0, QSizePolicy::Preferred, QSizePolicy::Expanding)); + + sb_limit_level = new QSpinBox; + sb_limit_level->setMaximum(4); + sb_limit_level->setWrapping(true); + sb_limit_level->setFixedWidth(charWidth * 4); + + auto limit_level_layout = new QHBoxLayout; + limit_level_layout->setContentsMargins(0, 0, 0, 0); + limit_level_layout->addWidget(lbl_limit_level); + limit_level_layout->addWidget(sb_limit_level); + + slider_limit = new QSlider(Qt::Horizontal); + slider_limit->setMaximum(quint8Max); + slider_limit->setMaximumHeight(int(20 * scale)); + + lcdLimitValue = new QLCDNumber(3); + lcdLimitValue->setSegmentStyle(QLCDNumber::Flat); + + auto limit_bar_layout = new QHBoxLayout; + limit_bar_layout->setContentsMargins(0, 0, 0, 0); + limit_bar_layout->addLayout(limit_level_layout); + limit_bar_layout->addSpacerItem(new QSpacerItem(10, 0, QSizePolicy::Fixed, QSizePolicy::Fixed)); + limit_bar_layout->addWidget(lbl_limit_bar); + limit_bar_layout->addWidget(slider_limit); + limit_bar_layout->addWidget(lcdLimitValue); + + auto limit_use_list = new QHBoxLayout; + limit_use_list->addLayout(used_limits_layout); + limit_use_list->addWidget(list_limits); + + auto finalLayout = new QVBoxLayout; + finalLayout->setContentsMargins(0, 0, 0, 0); + finalLayout->addLayout(limit_bar_layout); + finalLayout->addLayout(limit_use_list); + + return finalLayout; +} diff -Nru blackchocobo-1.9.910/ff7tk/widgets/CharEditor.h blackchocobo-1.9.910/ff7tk/widgets/CharEditor.h --- blackchocobo-1.9.910/ff7tk/widgets/CharEditor.h 2019-07-19 23:46:31.000000000 +0000 +++ blackchocobo-1.9.910/ff7tk/widgets/CharEditor.h 2019-07-23 23:47:31.000000000 +0000 @@ -31,13 +31,12 @@ { Q_OBJECT public: - explicit CharEditor(qreal Scale = 1, QWidget *parent = 0); - void setChar(FF7CHAR Chardata, QString Processed_Name = ""); + explicit CharEditor(qreal Scale = 1, QWidget *parent = nullptr); + void setChar(const FF7CHAR &Chardata, const QString &Processed_Name = ""); bool AutoLevel(); bool AutoStatCalc(); bool Editable(); bool AdvancedMode(); - void setSliderStyle(QString style); void MaxStats(); void MaxEquip(); quint8 id(); @@ -79,7 +78,7 @@ materia char_materia(int mat); protected: - void changeEvent(QEvent *e); + void changeEvent(QEvent *e) override; signals: void id_changed(qint8); @@ -126,7 +125,8 @@ void setAutoStatCalc(bool); void setEditable(bool); void setAdvancedMode(bool); - void setToolBoxStyle(QString); + void setToolBoxStyle(const QString &styleSheet); + void setSliderStyle(const QString &style); void setEditableComboBoxes(bool); private: @@ -146,7 +146,7 @@ void setLckBonus(int); void setLimitLevel(int); void setLimitBar(int); - void setName(QString); + void setName(const QString &name); void setWeapon(int); void setArmor(int); void setAccessory(int); @@ -191,156 +191,161 @@ void matAp_changed(qint32); void matId_changed(qint8); void mButtonPress(int Mslot); - void init_display(void); - void init_connections(void); - void disconnectAll(void); - void calc_stats(void);//calc stat changes if autostatcalc == true; + void init_display(); + void init_connections(); + void disconnectAll(); + void calc_stats();//calc stat changes if autostatcalc == true; void level_up(int); void update_tnl_bar(); void elemental_info(); void status_info(); void update_materia_slots(); void updateMateriaToolTips(); - void setSlotFrame(void); + void setSlotFrame(); /** * @brief updates All the Text on the widget. This is called for languageChangeEvents to retranslate the text. */ void updateText(); + QWidget* makeStatWidget(QSpinBox* statBaseSpinBox = nullptr, QSpinBox* statSourceSpinBox = nullptr , QLabel* statLabel = nullptr, QLabel* statMateriaBonusLabel = nullptr, QLabel* statTotalLabel = nullptr); QFrame* makeStatFrame(); QHBoxLayout * makeMateriaSlotPair(QPushButton* button1 = nullptr, QPushButton* button2 = nullptr, QFrame *frame1 = nullptr, QFrame *frame2 = nullptr, QLabel* linkLabel = nullptr); - + QVBoxLayout * makeLimitLayout(); //Data - bool load; + bool load{false}; + bool autolevel{true}; + bool autostatcalc{true}; + bool editable{true}; + bool advancedMode{false}; + int mslotsel{-1}; + qint32 ap{0}; FF7Char Chars; FF7Item Items; FF7Materia Materias; FF7CHAR data; QString _name; - bool autolevel; - bool autostatcalc; - bool editable; - bool advancedMode; - int mslotsel;//select materia slot - qint32 ap; qreal scale; //GUI PARTS - QLabel *lblAvatar = nullptr; - QLineEdit *lineName = nullptr; - QSpinBox *sbLevel = nullptr; - QSpinBox *sbCurmp = nullptr; - QSpinBox *sbCurhp = nullptr; - - QLabel *lblBaseHp = nullptr; - QSpinBox *sbBaseHp = nullptr; - QLabel *lblBaseHpBonus = nullptr; - - QLabel *lblBaseMp = nullptr; - QSpinBox *sbBaseMp = nullptr; - QLabel *lblBaseMpBonus = nullptr; - - QSpinBox *sbKills = nullptr; - QLabel *lblHp = nullptr; - QLabel *lblMaxHp = nullptr; - QLabel *lblMp = nullptr; - QLabel *lblMaxMp = nullptr; - QCheckBox *cbFury = nullptr; - QCheckBox *cbSadness = nullptr; - QCheckBox *cbFrontRow = nullptr; - QComboBox *comboId = nullptr; - - QSpinBox *sbTotalExp = nullptr; - QLabel *lbl_level_progress = nullptr; - QLabel *lbl_level_next = nullptr; - QProgressBar *bar_tnl = nullptr; - QLabel *lbl_limit_bar = nullptr; - QSlider *slider_limit = nullptr; - QLCDNumber *lcdLimitValue = nullptr; - - QLabel *lblStr = nullptr; - QSpinBox *sbStr = nullptr; - QSpinBox *sbStrSourceUse = nullptr; - QLabel *lblStrMateriaBonus = nullptr; - QLabel *lblStrTotal = nullptr; - - QLabel *lblVit = nullptr; - QSpinBox *sbVit = nullptr; - QSpinBox *sbVitSourceUse = nullptr; - QLabel *lblVitMateriaBonus = nullptr; - QLabel *lblVitTotal = nullptr; - - QLabel *lblMag = nullptr; - QSpinBox *sbMag = nullptr; - QSpinBox *sbMagSourceUse = nullptr; - QLabel *lblMagMateriaBonus = nullptr; - QLabel *lblMagTotal = nullptr; - - QLabel *lblSpi = nullptr; - QSpinBox *sbSpi = nullptr; - QSpinBox *sbSpiSourceUse = nullptr; - QLabel *lblSpiMateriaBonus = nullptr; - QLabel *lblSpiTotal = nullptr; - - QLabel *lblDex = nullptr; - QSpinBox *sbDex = nullptr; - QSpinBox *sbDexSourceUse = nullptr; - QLabel *lblDexMateriaBonus = nullptr; - QLabel *lblDexTotal = nullptr; - - QLabel *lblLck = nullptr; - QSpinBox *sbLck = nullptr; - QSpinBox *sbLckSourceUse = nullptr; - QLabel *lblLckMateriaBonus = nullptr; - QLabel *lblLckTotal = nullptr; - - QLabel *lbl_limit_level = nullptr; - QSpinBox *sb_limit_level = nullptr; - QSpinBox *sb_uses_limit_1_1 = nullptr; - QSpinBox *sb_uses_limit_2_1 = nullptr; - QSpinBox *sb_uses_limit_3_1 = nullptr; - QListWidget *list_limits = nullptr; - QLabel *lbl_uses = nullptr; - QLabel *lbl_1_1 = nullptr; - QLabel *lbl_2_1 = nullptr; - QLabel *lbl_3_1 = nullptr; - QLabel *lbl_0x34 = nullptr; - QLabel *lbl_0x35 = nullptr; - QLabel *lbl_0x36 = nullptr; - QLabel *lbl_0x37 = nullptr; - QLabel *lblWeaponStats = nullptr; - QLabel *lblArmorStats = nullptr; - QComboBox *weapon_selection = nullptr; - QComboBox *armor_selection = nullptr; - QComboBox *accessory_selection = nullptr; - MateriaEditor *materia_edit = nullptr; - QGroupBox *elemental_box = nullptr; - QGroupBox *status_box = nullptr; - QListWidget *elemental_effects = nullptr; - QListWidget *status_effects = nullptr; - QFrame *weapon_materia_box = nullptr; - QFrame *armor_materia_box = nullptr; - QGroupBox *weapon_box = nullptr; - QGroupBox *armor_box = nullptr; - QGroupBox *accessory_box = nullptr; - QList materiaSlotFrames; - QList materiaSlots; - QLabel *weapon_m_link_1 = nullptr; - QLabel *weapon_m_link_2 = nullptr; - QLabel *weapon_m_link_3 = nullptr; - QLabel *weapon_m_link_4 = nullptr; - QLabel *armor_m_link_1 = nullptr; - QLabel *armor_m_link_2 = nullptr; - QLabel *armor_m_link_3 = nullptr; - QLabel *armor_m_link_4 = nullptr; - QToolBox *toolbox = nullptr; - QFrame *unknown_box = nullptr; - QLCDNumber *lcd_0x34 = nullptr; - QLCDNumber *lcd_0x35 = nullptr; - QLCDNumber *lcd_0x36 = nullptr; - QLCDNumber *lcd_0x37 = nullptr; - QCheckBox *cb_idChanger = nullptr; + QLabel *lblAvatar{nullptr}; + QLineEdit *lineName{nullptr}; + QSpinBox *sbLevel{nullptr}; + QSpinBox *sbCurrentMp{nullptr}; + QSpinBox *sbCurrentHp{nullptr}; + + QLabel *lblBaseHp{nullptr}; + QSpinBox *sbBaseHp{nullptr}; + QLabel *lblBaseHpBonus{nullptr}; + + QLabel *lblBaseMp{nullptr}; + QSpinBox *sbBaseMp{nullptr}; + QLabel *lblBaseMpBonus{nullptr}; + + QSpinBox *sbKills{nullptr}; + QLabel *lblCurrentHp{nullptr}; + QLabel *lblMaxHp{nullptr}; + QLabel *lblCurrentMp{nullptr}; + QLabel *lblMaxMp{nullptr}; + QCheckBox *cbFury{nullptr}; + QCheckBox *cbSadness{nullptr}; + QCheckBox *cbFrontRow{nullptr}; + QComboBox *comboId{nullptr}; + + QSpinBox *sbTotalExp{nullptr}; + QLabel *lbl_level_next{nullptr}; + QProgressBar *bar_tnl{nullptr}; + QLabel *lbl_limit_bar{nullptr}; + QSlider *slider_limit{nullptr}; + QLCDNumber *lcdLimitValue{nullptr}; + + QLabel *lblStr{nullptr}; + QSpinBox *sbStr{nullptr}; + QSpinBox *sbStrSourceUse{nullptr}; + QLabel *lblStrMateriaBonus{nullptr}; + QLabel *lblStrTotal{nullptr}; + + QLabel *lblVit{nullptr}; + QSpinBox *sbVit{nullptr}; + QSpinBox *sbVitSourceUse{nullptr}; + QLabel *lblVitMateriaBonus{nullptr}; + QLabel *lblVitTotal{nullptr}; + + QLabel *lblMag{nullptr}; + QSpinBox *sbMag{nullptr}; + QSpinBox *sbMagSourceUse{nullptr}; + QLabel *lblMagMateriaBonus{nullptr}; + QLabel *lblMagTotal{nullptr}; + + QLabel *lblSpi{nullptr}; + QSpinBox *sbSpi{nullptr}; + QSpinBox *sbSpiSourceUse{nullptr}; + QLabel *lblSpiMateriaBonus{nullptr}; + QLabel *lblSpiTotal{nullptr}; + + QLabel *lblDex{nullptr}; + QSpinBox *sbDex{nullptr}; + QSpinBox *sbDexSourceUse{nullptr}; + QLabel *lblDexMateriaBonus{nullptr}; + QLabel *lblDexTotal{nullptr}; + + QLabel *lblLck{nullptr}; + QSpinBox *sbLck{nullptr}; + QSpinBox *sbLckSourceUse{nullptr}; + QLabel *lblLckMateriaBonus{nullptr}; + QLabel *lblLckTotal{nullptr}; + + QLabel *lbl_limit_level{nullptr}; + QSpinBox *sb_limit_level{nullptr}; + QSpinBox *sb_uses_limit_1_1{nullptr}; + QSpinBox *sb_uses_limit_2_1{nullptr}; + QSpinBox *sb_uses_limit_3_1{nullptr}; + QListWidget *list_limits{nullptr}; + QLabel *lbl_uses{nullptr}; + QLabel *lbl_1_1{nullptr}; + QLabel *lbl_2_1{nullptr}; + QLabel *lbl_3_1{nullptr}; + QLabel *lbl_0x34{nullptr}; + QLabel *lbl_0x35{nullptr}; + QLabel *lbl_0x36{nullptr}; + QLabel *lbl_0x37{nullptr}; + QLabel *lblWeaponStats{nullptr}; + QLabel *lblArmorStats{nullptr}; + QComboBox *weapon_selection{nullptr}; + QComboBox *armor_selection{nullptr}; + QComboBox *accessory_selection{nullptr}; + MateriaEditor *materia_edit{nullptr}; + QGroupBox *elemental_box{nullptr}; + QGroupBox *status_box{nullptr}; + QListWidget *elemental_effects{nullptr}; + QListWidget *status_effects{nullptr}; + QFrame *weapon_materia_box{nullptr}; + QFrame *armor_materia_box{nullptr}; + QGroupBox *weapon_box{nullptr}; + QGroupBox *armor_box{nullptr}; + QGroupBox *accessory_box{nullptr}; + QList materiaSlotFrames{nullptr}; + QList materiaSlots{nullptr}; + QLabel *weapon_m_link_1{nullptr}; + QLabel *weapon_m_link_2{nullptr}; + QLabel *weapon_m_link_3{nullptr}; + QLabel *weapon_m_link_4{nullptr}; + QLabel *armor_m_link_1{nullptr}; + QLabel *armor_m_link_2{nullptr}; + QLabel *armor_m_link_3{nullptr}; + QLabel *armor_m_link_4{nullptr}; + QToolBox *toolbox{nullptr}; + QFrame *unknown_box{nullptr}; + QLCDNumber *lcd_0x34{nullptr}; + QLCDNumber *lcd_0x35{nullptr}; + QLCDNumber *lcd_0x36{nullptr}; + QLCDNumber *lcd_0x37{nullptr}; + QCheckBox *cb_idChanger{nullptr}; + //Static Limits + inline static const int quint8Max = 255; + inline static const int qint16Max = 32767; + inline static const int quint16Max = 65535; + }; #endif // CHAREDITOR_H diff -Nru blackchocobo-1.9.910/mainwindow.cpp blackchocobo-1.9.910/mainwindow.cpp --- blackchocobo-1.9.910/mainwindow.cpp 2019-07-19 23:46:32.000000000 +0000 +++ blackchocobo-1.9.910/mainwindow.cpp 2019-07-23 23:47:31.000000000 +0000 @@ -38,9 +38,8 @@ { //Initilze Remaining Data buffer_materia.id = FF7Materia::EmptyId; - for (int i = 0; i < 3; i++) { + for (int i = 0; i < 3; i++) buffer_materia.ap[i] = 0xFF; //empty buffer incase - } setAcceptDrops(true); ui->setupUi(this); @@ -133,7 +132,31 @@ ui->statusBar->addWidget(ui->frame_status, 1); ui->frame_status->setFixedHeight(fontMetrics().height() + 2); ui->tbl_materia->setIconSize(QSize(fontMetrics().height(), fontMetrics().height())); + ui->tbl_unknown->setColumnWidth(0, fontMetrics().horizontalAdvance(QStringLiteral("WW"))); + ui->tbl_unknown->setColumnWidth(1, fontMetrics().horizontalAdvance(QStringLiteral("W"))); + ui->tbl_unknown->setColumnWidth(2, fontMetrics().horizontalAdvance(QStringLiteral("W"))); + ui->tbl_unknown->setColumnWidth(3, fontMetrics().horizontalAdvance(QStringLiteral("WWWWWW"))); + ui->tbl_unknown->setColumnWidth(4, fontMetrics().horizontalAdvance(QStringLiteral("W"))); + + ui->tbl_compare_unknown->setColumnWidth(0, fontMetrics().horizontalAdvance(QStringLiteral("WW"))); + ui->tbl_compare_unknown->setColumnWidth(1, fontMetrics().horizontalAdvance(QStringLiteral("W"))); + ui->tbl_compare_unknown->setColumnWidth(2, fontMetrics().horizontalAdvance(QStringLiteral("W"))); + ui->tbl_compare_unknown->setColumnWidth(3, fontMetrics().horizontalAdvance(QStringLiteral("WWWWWW"))); + ui->tbl_compare_unknown->setColumnWidth(4, fontMetrics().horizontalAdvance(QStringLiteral("W"))); + + int width = 0; + for(int i = 0; i < 5; i++) + width += ui->tbl_unknown->columnWidth(i); + + width +=ui->tbl_unknown->verticalScrollBar()->width(); + ui->table_unknown->setFixedWidth(width); + ui->tbl_unknown->setFixedWidth(width); + + width -=ui->tbl_unknown->verticalScrollBar()->width(); + ui->compare_table->setFixedWidth(width); + ui->tbl_compare_unknown->setFixedWidth(width); } + void MainWindow::setScale(double scale) { scale = std::max(scale, 1.0); @@ -172,9 +195,6 @@ ui->combo_map_controls->setFixedHeight(32); ui->slide_world_x->setGeometry(-1, int(369 * scale), int(443 * scale), int(10 * scale)); ui->slide_world_y->setGeometry(int(437 * scale), int(26 * scale), int(10 * scale), int(347 * scale)); - ui->table_unknown->setFixedWidth(int(234 * scale)); - ui->compare_table->setFixedWidth(int(234 * scale)); - ui->compare_table->setEnabled(false); ui->lbl_love_aeris->setFixedSize(int(50 * scale), int(68 * scale)); ui->lbl_love_aeris->setPixmap(Chars.pixmap(FF7Char::Aerith).scaled(ui->lbl_love_aeris->size(), Qt::KeepAspectRatio, Qt::SmoothTransformation)); ui->lbl_love_barret->setFixedSize(int(50 * scale), int(68 * scale)); @@ -1086,9 +1106,9 @@ load = true; /*~~Disable All Items that are dependent on File Type~~*/ ui->actionClear_Slot->setEnabled(0); - ui->action_Region_USA->setChecked(Qt::Unchecked); ui->action_Region_PAL_Generic->setChecked(Qt::Unchecked); ui->action_Region_PAL_German->setChecked(Qt::Unchecked); - ui->action_Region_PAL_French->setChecked(Qt::Unchecked); ui->action_Region_PAL_Spanish->setChecked(Qt::Unchecked); ui->action_Region_JPN->setChecked(Qt::Unchecked); - ui->action_Region_JPN_International->setChecked(Qt::Unchecked); ui->actionNext_Slot->setEnabled(0); ui->actionPrevious_Slot->setEnabled(0); + ui->action_Region_USA->setChecked(false); ui->action_Region_PAL_Generic->setChecked(false); ui->action_Region_PAL_German->setChecked(false); + ui->action_Region_PAL_French->setChecked(false); ui->action_Region_PAL_Spanish->setChecked(false); ui->action_Region_JPN->setChecked(false); + ui->action_Region_JPN_International->setChecked(false); ui->actionNext_Slot->setEnabled(0); ui->actionPrevious_Slot->setEnabled(0); ui->actionShow_Selection_Dialog->setEnabled(0); ui->actionNew_Game->setEnabled(0); ui->compare_table->setEnabled(0); ui->lbl_current_slot_txt->clear(); ui->actionImport_char->setEnabled(1); ui->actionExport_char->setEnabled(1); /*~~End Clear Menu Items~~*/ @@ -1140,19 +1160,19 @@ /*~~~End Set Actions By Type~~~*/ /*~~Set Detected Region ~~*/ if (ff7->region(s).contains("94163")) { - ui->action_Region_USA->setChecked(Qt::Checked); + ui->action_Region_USA->setChecked(true); } else if (ff7->region(s).contains("00867")) { - ui->action_Region_PAL_Generic->setChecked(Qt::Checked); + ui->action_Region_PAL_Generic->setChecked(true); } else if (ff7->region(s).contains("00868")) { - ui->action_Region_PAL_French->setChecked(Qt::Checked); + ui->action_Region_PAL_French->setChecked(true); } else if (ff7->region(s).contains("00869")) { - ui->action_Region_PAL_German->setChecked(Qt::Checked); + ui->action_Region_PAL_German->setChecked(true); } else if (ff7->region(s).contains("00900")) { - ui->action_Region_PAL_Spanish->setChecked(Qt::Checked); + ui->action_Region_PAL_Spanish->setChecked(true); } else if (ff7->region(s).contains("00700")) { - ui->action_Region_JPN->setChecked(Qt::Checked); + ui->action_Region_JPN->setChecked(true); } else if (ff7->region(s).contains("01057")) { - ui->action_Region_JPN_International->setChecked(Qt::Checked); + ui->action_Region_JPN_International->setChecked(true); } else if (ff7->region(s).isEmpty()) {/*do nothing*/} /*~~End Detected Region~~*/ else { @@ -2014,25 +2034,25 @@ void MainWindow::on_sb_love_barret_valueChanged(int value) { if (!load) { - ff7->setLove(s, false, FF7Save::LOVE_BARRET, qint8(value)); + ff7->setLove(s, false, FF7Save::LOVE_BARRET, quint8(value)); } } void MainWindow::on_sb_love_aeris_valueChanged(int value) { if (!load) { - ff7->setLove(s, false, FF7Save::LOVE_AERIS, qint8(value)); + ff7->setLove(s, false, FF7Save::LOVE_AERIS, quint8(value)); } } void MainWindow::on_sb_love_tifa_valueChanged(int value) { if (!load) { - ff7->setLove(s, false, FF7Save::LOVE_TIFA, qint8(value)); + ff7->setLove(s, false, FF7Save::LOVE_TIFA, quint8(value)); } } void MainWindow::on_sb_love_yuffie_valueChanged(int value) { if (!load) { - ff7->setLove(s, false, FF7Save::LOVE_YUFFIE, qint8(value)); + ff7->setLove(s, false, FF7Save::LOVE_YUFFIE, quint8(value)); } } @@ -2759,7 +2779,7 @@ ff7->setBmProgress2(s, 0); ff7->setBmProgress3(s, 0); ff7->setMidgarTrainFlags(s, 0); - ui->cb_bombing_int->setChecked(Qt::Checked); + ui->cb_bombing_int->setChecked(true); ui->combo_s7_slums->setCurrentIndex(1); ui->sb_turkschurch->setValue(0); // reset turks. locationViewer->setMapId(1); @@ -2777,7 +2797,7 @@ ff7->setBmProgress1(s, 120); ff7->setBmProgress2(s, 198); ff7->setBmProgress3(s, 3); - ui->cb_bombing_int->setChecked(Qt::Unchecked); + ui->cb_bombing_int->setChecked(false); locationViewer->setMapId(1); locationViewer->setLocationId(183); if (!locationViewer->locationChangesSaved()) { @@ -2795,7 +2815,7 @@ ff7->setBmProgress1(s, 120); ff7->setBmProgress2(s, 198); ff7->setBmProgress3(s, 3); - ui->cb_bombing_int->setChecked(Qt::Unchecked); + ui->cb_bombing_int->setChecked(false); locationViewer->setMapId(1); locationViewer->setLocationId(332); if (!locationViewer->locationChangesSaved()) { @@ -2831,7 +2851,7 @@ ff7->setBmProgress1(s, 120); ff7->setBmProgress2(s, 198); ff7->setBmProgress3(s, 3); - ui->cb_bombing_int->setChecked(Qt::Unchecked); + ui->cb_bombing_int->setChecked(false); locationViewer->setMapId(1); locationViewer->setLocationId(496); if (!locationViewer->locationChangesSaved()) { @@ -2848,7 +2868,7 @@ ff7->setBmProgress1(s, 120); ff7->setBmProgress2(s, 198); ff7->setBmProgress3(s, 3); - ui->cb_bombing_int->setChecked(Qt::Unchecked); + ui->cb_bombing_int->setChecked(false); locationViewer->setMapId(1); locationViewer->setLocationId(646); if (!locationViewer->locationChangesSaved()) { @@ -2895,25 +2915,25 @@ void MainWindow::on_sb_b_love_aeris_valueChanged(int value) { if (!load) { - ff7->setLove(s, true, FF7Save::LOVE_AERIS, qint8(value)); + ff7->setLove(s, true, FF7Save::LOVE_AERIS, quint8(value)); } } void MainWindow::on_sb_b_love_tifa_valueChanged(int value) { if (!load) { - ff7->setLove(s, true, FF7Save::LOVE_TIFA, qint8(value)); + ff7->setLove(s, true, FF7Save::LOVE_TIFA, quint8(value)); } } void MainWindow::on_sb_b_love_yuffie_valueChanged(int value) { if (!load) { - ff7->setLove(s, true, FF7Save::LOVE_YUFFIE, qint8(value)); + ff7->setLove(s, true, FF7Save::LOVE_YUFFIE, quint8(value)); } } void MainWindow::on_sb_b_love_barret_valueChanged(int value) { if (!load) { - ff7->setLove(s, true, FF7Save::LOVE_BARRET, qint8(value)); + ff7->setLove(s, true, FF7Save::LOVE_BARRET, quint8(value)); } } void MainWindow::on_sb_coster_1_valueChanged(int value) @@ -3077,9 +3097,9 @@ { if (!load) { switch (index) { - case 0: ui->bh_id->setValue(0x00); ui->cb_visible_buggy->setChecked(Qt::Unchecked); ui->cb_visible_highwind->setChecked(Qt::Unchecked); break; - case 1: ui->bh_id->setValue(0x06); ui->cb_visible_buggy->setChecked(Qt::Checked); break; //buggy - case 2: ui->bh_id->setValue(0x03); ui->cb_visible_highwind->setChecked(Qt::Checked); break; //highwind + case 0: ui->bh_id->setValue(0x00); ui->cb_visible_buggy->setChecked(false); ui->cb_visible_highwind->setChecked(false); break; + case 1: ui->bh_id->setValue(0x06); ui->cb_visible_buggy->setChecked(true); break; //buggy + case 2: ui->bh_id->setValue(0x03); ui->cb_visible_highwind->setChecked(true); break; //highwind default: break; } } @@ -3090,7 +3110,7 @@ ff7->setWorldVehicle(s, FF7Save::WVEHCILE_BUGGY, checked); if (checked) { if (ui->cb_visible_highwind->isChecked()) { - ui->cb_visible_highwind->setChecked(Qt::Unchecked); + ui->cb_visible_highwind->setChecked(false); } load = true; ui->combo_highwind_buggy->setCurrentIndex(1); @@ -3119,7 +3139,7 @@ ff7->setWorldVehicle(s, FF7Save::WVEHCILE_HIGHWIND, checked); if (checked) { if (ui->cb_visible_buggy->isChecked()) { - ui->cb_visible_buggy->setChecked(Qt::Unchecked); + ui->cb_visible_buggy->setChecked(false); } load = true; ui->combo_highwind_buggy->setCurrentIndex(2); @@ -3142,11 +3162,11 @@ } if (!checked) { - ui->cb_visible_yellow_chocobo->setChecked(Qt::Unchecked); - ui->cb_visible_green_chocobo->setChecked(Qt::Unchecked); - ui->cb_visible_blue_chocobo->setChecked(Qt::Unchecked); - ui->cb_visible_black_chocobo->setChecked(Qt::Unchecked); - ui->cb_visible_gold_chocobo->setChecked(Qt::Unchecked); + ui->cb_visible_yellow_chocobo->setChecked(false); + ui->cb_visible_green_chocobo->setChecked(false); + ui->cb_visible_blue_chocobo->setChecked(false); + ui->cb_visible_black_chocobo->setChecked(false); + ui->cb_visible_gold_chocobo->setChecked(false); } ui->cb_visible_yellow_chocobo->setEnabled(checked); ui->cb_visible_green_chocobo->setEnabled(checked); @@ -3160,10 +3180,10 @@ if (!load) { ff7->setWorldChocobo(s, FF7Save::WCHOCO_YELLOW, checked); if (checked) { - ui->cb_visible_green_chocobo->setChecked(Qt::Unchecked); - ui->cb_visible_blue_chocobo->setChecked(Qt::Unchecked); - ui->cb_visible_black_chocobo->setChecked(Qt::Unchecked); - ui->cb_visible_gold_chocobo->setChecked(Qt::Unchecked); + ui->cb_visible_green_chocobo->setChecked(false); + ui->cb_visible_blue_chocobo->setChecked(false); + ui->cb_visible_black_chocobo->setChecked(false); + ui->cb_visible_gold_chocobo->setChecked(false); } } } @@ -3172,10 +3192,10 @@ if (!load) { ff7->setWorldChocobo(s, FF7Save::WCHOCO_GREEN, checked); if (checked) { - ui->cb_visible_yellow_chocobo->setChecked(Qt::Unchecked); - ui->cb_visible_blue_chocobo->setChecked(Qt::Unchecked); - ui->cb_visible_black_chocobo->setChecked(Qt::Unchecked); - ui->cb_visible_gold_chocobo->setChecked(Qt::Unchecked); + ui->cb_visible_yellow_chocobo->setChecked(false); + ui->cb_visible_blue_chocobo->setChecked(false); + ui->cb_visible_black_chocobo->setChecked(false); + ui->cb_visible_gold_chocobo->setChecked(false); } } } @@ -3184,10 +3204,10 @@ if (!load) { ff7->setWorldChocobo(s, FF7Save::WCHOCO_BLUE, checked); if (checked) { - ui->cb_visible_yellow_chocobo->setChecked(Qt::Unchecked); - ui->cb_visible_green_chocobo->setChecked(Qt::Unchecked); - ui->cb_visible_black_chocobo->setChecked(Qt::Unchecked); - ui->cb_visible_gold_chocobo->setChecked(Qt::Unchecked); + ui->cb_visible_yellow_chocobo->setChecked(false); + ui->cb_visible_green_chocobo->setChecked(false); + ui->cb_visible_black_chocobo->setChecked(false); + ui->cb_visible_gold_chocobo->setChecked(false); } } } @@ -3197,10 +3217,10 @@ if (!load) { ff7->setWorldChocobo(s, FF7Save::WCHOCO_BLACK, checked); if (checked) { - ui->cb_visible_yellow_chocobo->setChecked(Qt::Unchecked); - ui->cb_visible_green_chocobo->setChecked(Qt::Unchecked); - ui->cb_visible_blue_chocobo->setChecked(Qt::Unchecked); - ui->cb_visible_gold_chocobo->setChecked(Qt::Unchecked); + ui->cb_visible_yellow_chocobo->setChecked(false); + ui->cb_visible_green_chocobo->setChecked(false); + ui->cb_visible_blue_chocobo->setChecked(false); + ui->cb_visible_gold_chocobo->setChecked(false); } } } @@ -3210,10 +3230,10 @@ if (!load) { ff7->setWorldChocobo(s, FF7Save::WCHOCO_GOLD, checked); if (checked) { - ui->cb_visible_yellow_chocobo->setChecked(Qt::Unchecked); - ui->cb_visible_green_chocobo->setChecked(Qt::Unchecked); - ui->cb_visible_blue_chocobo->setChecked(Qt::Unchecked); - ui->cb_visible_black_chocobo->setChecked(Qt::Unchecked); + ui->cb_visible_yellow_chocobo->setChecked(false); + ui->cb_visible_green_chocobo->setChecked(false); + ui->cb_visible_blue_chocobo->setChecked(false); + ui->cb_visible_black_chocobo->setChecked(false); } } } @@ -3578,68 +3598,57 @@ void MainWindow::unknown_refresh(int z)//remember to add/remove case statments in all 3 switches when number of z vars changes. { - //for updating the unknown table(s) load = true; - QString text; int rows = 0; QTableWidgetItem *newItem; QByteArray temp, temp2; int s2; ui->tbl_unknown->reset(); - ui->tbl_unknown->setColumnWidth(0, fontMetrics().width("DDDD", 4)); - ui->tbl_unknown->setColumnWidth(1, fontMetrics().width("HEXX", 4)); - ui->tbl_unknown->setColumnWidth(2, fontMetrics().width("DECX", 4)); - ui->tbl_unknown->setColumnWidth(3, fontMetrics().width("QQQQQQQQQ", 9)); - ui->tbl_unknown->setColumnWidth(4, fontMetrics().width("WW", 2)); - ui->tbl_compare_unknown->reset(); - ui->tbl_compare_unknown->setColumnWidth(0, fontMetrics().width("DDDD", 4)); - ui->tbl_compare_unknown->setColumnWidth(1, fontMetrics().width("HEXX", 4)); - ui->tbl_compare_unknown->setColumnWidth(2, fontMetrics().width("DECX", 4)); - ui->tbl_compare_unknown->setColumnWidth(3, fontMetrics().width("QQQQQQQQQ", 9)); - ui->tbl_compare_unknown->setColumnWidth(4, fontMetrics().width("WW", 2)); - if (z <= ff7->unknown_zmax()) { + if (z <= ff7->unknown_zmax()) temp = ff7->unknown(s, z); - } else if (z == ff7->unknown_zmax() + 1) { + else if (z == ff7->unknown_zmax() + 1) temp = ff7->slotFF7Data(s); - } rows = temp.size(); ui->tbl_unknown->setRowCount(rows); - if (ui->combo_compare_slot->currentIndex() != 0) { + if (ui->combo_compare_slot->currentIndex() != 0) ui->tbl_compare_unknown->setRowCount(rows); - } + for (int i = 0; i < rows; i++) { if (ui->combo_z_var->currentText() == "SLOT") { QString hex_str = QString("%1").arg(i, 4, 16, QChar('0')).toUpper(); //format ex: 000C newItem = new QTableWidgetItem(hex_str, 0); ui->tbl_unknown->setItem(i, 0, newItem); } else { - text.setNum(i); - newItem = new QTableWidgetItem(text, 0); + newItem = new QTableWidgetItem(QString::number(i), 0); ui->tbl_unknown->setItem(i, 0, newItem); } - char value = temp.at(i); + quint8 value = quint8(temp.at(i)); //Write Hex newItem = new QTableWidgetItem(QString("%1").arg(value, 2, 16, QChar('0')).toUpper(), 0); + newItem->setTextAlignment(Qt::AlignHCenter); ui->tbl_unknown->setItem(i, 1, newItem); //Write Dec - newItem = new QTableWidgetItem(text.number(value, 10), 0); + newItem = new QTableWidgetItem(QString("%1").arg(value, 3, 10, QChar('0')), 0); + newItem->setTextAlignment(Qt::AlignHCenter); ui->tbl_unknown->setItem(i, 2, newItem); //Write Bin newItem = new QTableWidgetItem(QString("%1").arg(value, 8, 2, QChar('0')), 0); + newItem->setTextAlignment(Qt::AlignHCenter); ui->tbl_unknown->setItem(i, 3, newItem); //Write Char - newItem = new QTableWidgetItem(QChar(value), 0); + newItem = new QTableWidgetItem(QString("%1").arg(QChar(value)), 0); + newItem->setTextAlignment(Qt::AlignHCenter); ui->tbl_unknown->setItem(i, 4, newItem); //Set Height - ui->tbl_unknown->setRowHeight(i, fontMetrics().height() + 9); + ui->tbl_unknown->setRowHeight(i, fontMetrics().height() + 6); if (ui->combo_compare_slot->currentIndex() != 0) { //do the same for the compare slot if one has been selected. @@ -3647,7 +3656,8 @@ newItem = new QTableWidgetItem(QString("%1").arg(i, 4, 16, QChar('0')).toUpper(), 0); ui->tbl_compare_unknown->setItem(i, 0, newItem); } else { - newItem = new QTableWidgetItem(text, 0); + newItem = new QTableWidgetItem(QString::number(i), 0); + newItem->setTextAlignment(Qt::AlignHCenter); ui->tbl_compare_unknown->setItem(i, 0, newItem); } @@ -3657,28 +3667,33 @@ } else if (z == ff7->unknown_zmax() + 1) { temp2 = ff7->slotFF7Data(s2); } - value = temp2.at(i); + value = quint8(temp2.at(i)); //Write Hex newItem = new QTableWidgetItem(QString("%1").arg(value, 2, 16, QChar('0')).toUpper(), 0); + newItem->setTextAlignment(Qt::AlignHCenter); ui->tbl_compare_unknown->setItem(i, 1, newItem); //Write Dec - newItem = new QTableWidgetItem(text.number(value, 10), 0); + newItem = new QTableWidgetItem(QString("%1").arg(value, 3, 10, QChar('0')), 0); + newItem->setTextAlignment(Qt::AlignHCenter); ui->tbl_compare_unknown->setItem(i, 2, newItem); //Write Bin newItem = new QTableWidgetItem(QString("%1").arg(value, 8, 2, QChar('0')), 0); + newItem->setTextAlignment(Qt::AlignHCenter); ui->tbl_compare_unknown->setItem(i, 3, newItem); //Write Char newItem = new QTableWidgetItem(QChar(value), 0); + newItem->setTextAlignment(Qt::AlignHCenter); ui->tbl_compare_unknown->setItem(i, 4, newItem); - ui->tbl_compare_unknown->setRowHeight(i, fontMetrics().height() + 9); + + ui->tbl_compare_unknown->setRowHeight(i, fontMetrics().height() +6); if (ui->tbl_compare_unknown->item(i, 1)->text() != ui->tbl_unknown->item(i, 1)->text()) { for (int c = 0; c < 5; c++) { //color the diffs ;) - ui->tbl_compare_unknown->item(i, c)->setBackgroundColor(Qt::yellow); - ui->tbl_compare_unknown->item(i, c)->setTextColor(Qt::red); - ui->tbl_unknown->item(i, c)->setBackgroundColor(Qt::yellow); - ui->tbl_unknown->item(i, c)->setTextColor(Qt::red); + ui->tbl_compare_unknown->item(i, c)->setBackground(Qt::yellow); + ui->tbl_compare_unknown->item(i, c)->setForeground(Qt::red); + ui->tbl_unknown->item(i, c)->setBackground(Qt::yellow); + ui->tbl_unknown->item(i, c)->setForeground(Qt::red); } } } @@ -3700,30 +3715,31 @@ } load = false; } + void MainWindow::on_combo_z_var_currentIndexChanged(int z) { unknown_refresh(z); } + void MainWindow::on_combo_compare_slot_currentIndexChanged(int index) { if (index == 0) { ui->tbl_compare_unknown->clearContents(); ui->tbl_compare_unknown->setRowCount(0); - } else { + } else unknown_refresh(ui->combo_z_var->currentIndex()); - } } + void MainWindow::on_tbl_unknown_itemChanged(QTableWidgetItem *item) { if (!load) { QByteArray temp; int z = ui->combo_z_var->currentIndex(); - if (z <= ff7->unknown_zmax()) { + if (z <= ff7->unknown_zmax()) temp = ff7->unknown(s, z); - } else if (z == ff7->unknown_zmax() + 1) { + else if (z == ff7->unknown_zmax() + 1) temp = ff7->slotFF7Data(s); - } switch (item->column()) { case 1: temp[item->row()] = char(item->text().toInt(nullptr, 16)); break; @@ -3731,11 +3747,10 @@ case 3: temp[item->row()] = char(item->text().toInt(nullptr, 2)); break; } - if (z <= ff7->unknown_zmax()) { + if (z <= ff7->unknown_zmax()) ff7->setUnknown(s, z, temp); - } else if (z == ff7->unknown_zmax() + 1) { + else if (z == ff7->unknown_zmax() + 1) ff7->setSlotFF7Data(s, temp); - } unknown_refresh(z); } diff -Nru blackchocobo-1.9.910/mainwindow.ui blackchocobo-1.9.910/mainwindow.ui --- blackchocobo-1.9.910/mainwindow.ui 2019-07-19 23:46:32.000000000 +0000 +++ blackchocobo-1.9.910/mainwindow.ui 2019-07-23 23:47:31.000000000 +0000 @@ -6399,24 +6399,6 @@ - - - 0 - 0 - - - - - 234 - 0 - - - - - 234 - 16777215 - - QFrame::StyledPanel @@ -6657,32 +6639,32 @@ - z_41 + z_41 - z_42 + z_42 - z_43 + z_43 - z_44 + z_44 - z_45 + z_45 - z_46 + z_46 @@ -6742,7 +6724,7 @@ - +