mirror of
https://github.com/redstrate/Novus.git
synced 2025-04-25 13:17:46 +00:00
Add subrace combo to FMV
This commit is contained in:
parent
d67a63710d
commit
8fb0b26c18
4 changed files with 38 additions and 13 deletions
|
@ -25,6 +25,7 @@ private:
|
|||
void updateHeightScaling(float scale);
|
||||
void updateBustScaling(float scale);
|
||||
void updateCharacterParameters();
|
||||
void updateSupportedSubraces();
|
||||
|
||||
std::optional<GearInfo> topSlot;
|
||||
std::optional<GearInfo> bottomSlot;
|
||||
|
|
|
@ -56,23 +56,33 @@ FullModelViewer::FullModelViewer(GameData* data) : data(data) {
|
|||
layout->addLayout(controlLayout);
|
||||
|
||||
raceCombo = new QComboBox();
|
||||
connect(raceCombo, qOverload<int>(&QComboBox::currentIndexChanged), [this](int index) {
|
||||
gearView->setRace((Race)index);
|
||||
});
|
||||
controlLayout->addWidget(raceCombo);
|
||||
|
||||
for (auto [race, race_name] : magic_enum::enum_entries<Race>()) {
|
||||
raceCombo->addItem(race_name.data());
|
||||
raceCombo->addItem(race_name.data(), (int)race);
|
||||
}
|
||||
|
||||
subraceCombo = new QComboBox();
|
||||
connect(subraceCombo, qOverload<int>(&QComboBox::currentIndexChanged), [this](int index) {
|
||||
gearView->setSubrace((Subrace)subraceCombo->itemData(index).toInt());
|
||||
});
|
||||
controlLayout->addWidget(subraceCombo);
|
||||
|
||||
connect(raceCombo, qOverload<int>(&QComboBox::currentIndexChanged), [this](int index) {
|
||||
gearView->setRace((Race)raceCombo->itemData(index).toInt());
|
||||
|
||||
updateSupportedSubraces();
|
||||
});
|
||||
updateSupportedSubraces();
|
||||
|
||||
genderCombo = new QComboBox();
|
||||
connect(genderCombo, qOverload<int>(&QComboBox::currentIndexChanged), [this](int index) {
|
||||
gearView->setGender((Gender)index);
|
||||
gearView->setGender((Gender)genderCombo->itemData(index).toInt());
|
||||
});
|
||||
controlLayout->addWidget(genderCombo);
|
||||
|
||||
for (auto [gender, gender_name] : magic_enum::enum_entries<Gender>()) {
|
||||
genderCombo->addItem(gender_name.data());
|
||||
genderCombo->addItem(gender_name.data(), (int)gender);
|
||||
}
|
||||
|
||||
connect(this, &FullModelViewer::gearChanged, this, &FullModelViewer::reloadGear);
|
||||
|
@ -182,4 +192,11 @@ void FullModelViewer::updateCharacterParameters() {
|
|||
updateBustScaling(bustScale);
|
||||
}
|
||||
|
||||
void FullModelViewer::updateSupportedSubraces() {
|
||||
subraceCombo->clear();
|
||||
for (auto subrace : physis_get_supported_subraces(gearView->currentRace).subraces) {
|
||||
subraceCombo->addItem(magic_enum::enum_name(subrace).data(), (int)subrace);
|
||||
}
|
||||
}
|
||||
|
||||
#include "moc_fullmodelviewer.cpp"
|
|
@ -16,11 +16,14 @@ GearView::GearView(GameData* data) : data(data) {
|
|||
connect(this, &GearView::gearChanged, this, [=] {
|
||||
reloadModel();
|
||||
});
|
||||
|
||||
connect(this, &GearView::raceChanged, this, [=] {
|
||||
reloadRaceDeforms();
|
||||
reloadModel();
|
||||
});
|
||||
connect(this, &GearView::subraceChanged, this, [=] {
|
||||
reloadRaceDeforms();
|
||||
reloadModel();
|
||||
});
|
||||
connect(this, &GearView::genderChanged, this, [=] {
|
||||
reloadRaceDeforms();
|
||||
reloadModel();
|
||||
|
|
|
@ -21,7 +21,7 @@ SingleGearView::SingleGearView(GameData* data) : data(data) {
|
|||
if (loadingComboData)
|
||||
return;
|
||||
|
||||
setRace((Race)index);
|
||||
setRace((Race)raceCombo->itemData(index).toInt());
|
||||
});
|
||||
controlLayout->addWidget(raceCombo);
|
||||
|
||||
|
@ -30,7 +30,7 @@ SingleGearView::SingleGearView(GameData* data) : data(data) {
|
|||
if (loadingComboData)
|
||||
return;
|
||||
|
||||
setSubrace((Subrace)index);
|
||||
setSubrace((Subrace)raceCombo->itemData(index).toInt());
|
||||
});
|
||||
controlLayout->addWidget(subraceCombo);
|
||||
|
||||
|
@ -39,7 +39,7 @@ SingleGearView::SingleGearView(GameData* data) : data(data) {
|
|||
if (loadingComboData)
|
||||
return;
|
||||
|
||||
setGender((Gender)index);
|
||||
setGender((Gender)genderCombo->itemData(index).toInt());
|
||||
});
|
||||
controlLayout->addWidget(genderCombo);
|
||||
|
||||
|
@ -72,6 +72,9 @@ SingleGearView::SingleGearView(GameData* data) : data(data) {
|
|||
connect(this, &SingleGearView::raceChanged, this, [=] {
|
||||
gearView->setRace(currentRace);
|
||||
});
|
||||
connect(this, &SingleGearView::subraceChanged, this, [=] {
|
||||
gearView->setSubrace(currentSubrace);
|
||||
});
|
||||
connect(this, &SingleGearView::genderChanged, this, [=] {
|
||||
gearView->setGender(currentGender);
|
||||
});
|
||||
|
@ -134,6 +137,7 @@ void SingleGearView::reloadGear() {
|
|||
gearView->clear();
|
||||
|
||||
raceCombo->setEnabled(currentGear.has_value());
|
||||
subraceCombo->setEnabled(currentGear.has_value());
|
||||
genderCombo->setEnabled(currentGear.has_value());
|
||||
lodCombo->setEnabled(currentGear.has_value());
|
||||
addToFMVButton->setEnabled(currentGear.has_value());
|
||||
|
@ -147,13 +151,13 @@ void SingleGearView::reloadGear() {
|
|||
raceCombo->clear();
|
||||
subraceCombo->clear();
|
||||
for (auto [race, subrace] : gearView->supportedRaces()) {
|
||||
raceCombo->addItem(magic_enum::enum_name(race).data());
|
||||
subraceCombo->addItem(magic_enum::enum_name(subrace).data());
|
||||
raceCombo->addItem(magic_enum::enum_name(race).data(), (int)race);
|
||||
subraceCombo->addItem(magic_enum::enum_name(subrace).data(), (int)subrace);
|
||||
}
|
||||
|
||||
genderCombo->clear();
|
||||
for (auto gender : gearView->supportedGenders()) {
|
||||
genderCombo->addItem(magic_enum::enum_name(gender).data());
|
||||
genderCombo->addItem(magic_enum::enum_name(gender).data(), (int)gender);
|
||||
}
|
||||
|
||||
lodCombo->clear();
|
||||
|
|
Loading…
Add table
Reference in a new issue