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