mirror of
https://github.com/OpenMW/openmw.git
synced 2025-02-05 08:15:33 +00:00
implemented skill value handling during character creation (untested)
This commit is contained in:
parent
bd983717de
commit
be8f852663
3 changed files with 22 additions and 1 deletions
|
@ -119,6 +119,9 @@ namespace MWClass
|
||||||
stats->mFactionRank[ref->base->faction] = 0;
|
stats->mFactionRank[ref->base->faction] = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
for (int i=0; i<27; ++i)
|
||||||
|
stats->mSkill[i].setBase (ref->base->npdt52.skills[i]);
|
||||||
|
|
||||||
ptr.getRefData().getNpcStats() = stats;
|
ptr.getRefData().getNpcStats() = stats;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -16,13 +16,16 @@ namespace MWMechanics
|
||||||
MWWorld::Ptr ptr = mEnvironment.mWorld->getPlayerPos().getPlayer();
|
MWWorld::Ptr ptr = mEnvironment.mWorld->getPlayerPos().getPlayer();
|
||||||
|
|
||||||
MWMechanics::CreatureStats& creatureStats = MWWorld::Class::get (ptr).getCreatureStats (ptr);
|
MWMechanics::CreatureStats& creatureStats = MWWorld::Class::get (ptr).getCreatureStats (ptr);
|
||||||
// MWMechanics::NpcStats& npcStats = MWWorld::Class::get (ptr).getNpcStats (ptr);
|
MWMechanics::NpcStats& npcStats = MWWorld::Class::get (ptr).getNpcStats (ptr);
|
||||||
|
|
||||||
const ESM::NPC *player = ptr.get<ESM::NPC>()->base;
|
const ESM::NPC *player = ptr.get<ESM::NPC>()->base;
|
||||||
|
|
||||||
// reset
|
// reset
|
||||||
creatureStats.mLevel = player->npdt52.level;
|
creatureStats.mLevel = player->npdt52.level;
|
||||||
|
|
||||||
|
for (int i=0; i<27; ++i)
|
||||||
|
npcStats.mSkill[i].setBase (player->npdt52.skills[i]);
|
||||||
|
|
||||||
// race
|
// race
|
||||||
const ESM::Race *race =
|
const ESM::Race *race =
|
||||||
mEnvironment.mWorld->getStore().races.find (mEnvironment.mWorld->getPlayerPos().getRace());
|
mEnvironment.mWorld->getStore().races.find (mEnvironment.mWorld->getPlayerPos().getRace());
|
||||||
|
@ -48,6 +51,16 @@ namespace MWMechanics
|
||||||
static_cast<int> (male ? attribute->male : attribute->female));
|
static_cast<int> (male ? attribute->male : attribute->female));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
for (int i=0; i<7; ++i)
|
||||||
|
{
|
||||||
|
int index = race->data.bonus[i].skill;
|
||||||
|
|
||||||
|
if (index>=0 && index<27)
|
||||||
|
{
|
||||||
|
npcStats.mSkill[i].setBase (
|
||||||
|
npcStats.mSkill[i].getBase() + race->data.bonus[i].bonus);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// birthsign
|
// birthsign
|
||||||
|
@ -66,6 +79,7 @@ namespace MWMechanics
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// calculate dynamic stats
|
// calculate dynamic stats
|
||||||
int strength = creatureStats.mAttributes[0].getBase();
|
int strength = creatureStats.mAttributes[0].getBase();
|
||||||
int intelligence = creatureStats.mAttributes[1].getBase();
|
int intelligence = creatureStats.mAttributes[1].getBase();
|
||||||
|
|
|
@ -3,6 +3,8 @@
|
||||||
|
|
||||||
#include <map>
|
#include <map>
|
||||||
|
|
||||||
|
#include "stat.hpp"
|
||||||
|
|
||||||
namespace MWMechanics
|
namespace MWMechanics
|
||||||
{
|
{
|
||||||
/// \brief Additional stats for NPCs
|
/// \brief Additional stats for NPCs
|
||||||
|
@ -14,6 +16,8 @@ namespace MWMechanics
|
||||||
// NPCs other than the player can only have one faction. But for the sake of consistency
|
// NPCs other than the player can only have one faction. But for the sake of consistency
|
||||||
// we use the same data structure for the PC and the NPCs.
|
// we use the same data structure for the PC and the NPCs.
|
||||||
std::map<std::string, int> mFactionRank;
|
std::map<std::string, int> mFactionRank;
|
||||||
|
|
||||||
|
Stat<float> mSkill[27];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue