mirror of
https://github.com/TES3MP/openmw-tes3mp.git
synced 2025-01-19 23:53:52 +00:00
Skill progress bar changed to match MW
This commit is contained in:
parent
5096e5dc0c
commit
55cd9b526c
2 changed files with 9 additions and 5 deletions
|
@ -61,7 +61,7 @@ namespace ESSImport
|
||||||
bool mHasACSC;
|
bool mHasACSC;
|
||||||
ACSC mACSC;
|
ACSC mACSC;
|
||||||
|
|
||||||
int mSkills[27][2];
|
int mSkills[27][2]; // skills, base and modified
|
||||||
|
|
||||||
// creature combat stats, base and modified
|
// creature combat stats, base and modified
|
||||||
// I think these can be ignored in the conversion, because it is not possible
|
// I think these can be ignored in the conversion, because it is not possible
|
||||||
|
|
|
@ -376,9 +376,8 @@ namespace MWGui
|
||||||
for (SkillList::const_iterator it = skills.begin(); it != end; ++it)
|
for (SkillList::const_iterator it = skills.begin(); it != end; ++it)
|
||||||
{
|
{
|
||||||
int skillId = *it;
|
int skillId = *it;
|
||||||
if (skillId < 0 || skillId > ESM::Skill::Length) // Skip unknown skill indexes
|
if (skillId < 0 || skillId >= ESM::Skill::Length) // Skip unknown skill indexes
|
||||||
continue;
|
continue;
|
||||||
assert(skillId >= 0 && skillId < ESM::Skill::Length);
|
|
||||||
const std::string &skillNameId = ESM::Skill::sSkillNameIds[skillId];
|
const std::string &skillNameId = ESM::Skill::sSkillNameIds[skillId];
|
||||||
const MWMechanics::SkillValue &stat = mSkillValues.find(skillId)->second;
|
const MWMechanics::SkillValue &stat = mSkillValues.find(skillId)->second;
|
||||||
int base = stat.getBase();
|
int base = stat.getBase();
|
||||||
|
@ -388,9 +387,14 @@ namespace MWGui
|
||||||
const MWWorld::ESMStore &esmStore =
|
const MWWorld::ESMStore &esmStore =
|
||||||
MWBase::Environment::get().getWorld()->getStore();
|
MWBase::Environment::get().getWorld()->getStore();
|
||||||
|
|
||||||
int progressRequirement = player.getClass().getNpcStats(player).getSkillProgressRequirement(skillId,
|
float progressRequirement = player.getClass().getNpcStats(player).getSkillProgressRequirement(skillId,
|
||||||
*esmStore.get<ESM::Class>().find(player.get<ESM::NPC>()->mBase->mClass));
|
*esmStore.get<ESM::Class>().find(player.get<ESM::NPC>()->mBase->mClass));
|
||||||
int progressPercent = int(int(stat.getProgress()) / float(progressRequirement) * 100.f);
|
|
||||||
|
// This is how vanilla MW displays the progress bar (I think). Note it's slightly inaccurate,
|
||||||
|
// due to the int casting in the skill levelup logic. Also the progress label could in rare cases
|
||||||
|
// reach 100% without the skill levelling up.
|
||||||
|
// Leaving the original display logic for now, for consistency with ess-imported savegames.
|
||||||
|
int progressPercent = int(float(stat.getProgress()) / float(progressRequirement) * 100.f + 0.5f);
|
||||||
|
|
||||||
const ESM::Skill* skill = esmStore.get<ESM::Skill>().find(skillId);
|
const ESM::Skill* skill = esmStore.get<ESM::Skill>().find(skillId);
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue