1
0
Fork 0
mirror of https://github.com/OpenMW/openmw.git synced 2025-02-04 22:45:37 +00:00

added framework for character creation

This commit is contained in:
Marc Zinnschlag 2010-09-15 13:31:26 +02:00
parent 9dffa75a15
commit c0b9424bcf
2 changed files with 41 additions and 1 deletions

View file

@ -11,10 +11,40 @@
namespace MWMechanics namespace MWMechanics
{ {
void MechanicsManager::buildPlayer()
{
MWWorld::Ptr ptr = mEnvironment.mWorld->getPlayerPos().getPlayer();
MWMechanics::CreatureStats& creatureStats = MWWorld::Class::get (ptr).getCreatureStats (ptr);
// MWMechanics::NpcStats& npcStats = MWWorld::Class::get (ptr).getNpcStats (ptr);
const ESM::NPC *player = ptr.get<ESM::NPC>()->base;
// reset
creatureStats.mAttributes[0].setBase (player->npdt52.strength);
creatureStats.mAttributes[1].setBase (player->npdt52.intelligence);
creatureStats.mAttributes[2].setBase (player->npdt52.willpower);
creatureStats.mAttributes[3].setBase (player->npdt52.agility);
creatureStats.mAttributes[4].setBase (player->npdt52.speed);
creatureStats.mAttributes[5].setBase (player->npdt52.endurance);
creatureStats.mAttributes[6].setBase (player->npdt52.personality);
creatureStats.mAttributes[7].setBase (player->npdt52.luck);
// race
// birthsign
// class
// calculate dynamic stats
}
MechanicsManager::MechanicsManager (MWWorld::Environment& environment) MechanicsManager::MechanicsManager (MWWorld::Environment& environment)
: mEnvironment (environment), mSetName (true) : mEnvironment (environment), mSetName (true)
{ {
buildPlayer();
} }
void MechanicsManager::addActor (const MWWorld::Ptr& ptr) void MechanicsManager::addActor (const MWWorld::Ptr& ptr)
@ -100,20 +130,26 @@ namespace MWMechanics
void MechanicsManager::setPlayerRace (const std::string& race, bool male) void MechanicsManager::setPlayerRace (const std::string& race, bool male)
{ {
buildPlayer();
} }
void MechanicsManager::setPlayerBirthsign (const std::string& id) void MechanicsManager::setPlayerBirthsign (const std::string& id)
{ {
buildPlayer();
} }
void MechanicsManager::setPlayerClass (const std::string& id) void MechanicsManager::setPlayerClass (const std::string& id)
{ {
buildPlayer();
} }
void MechanicsManager::setPlayerClass (const ESM::Class& class_) void MechanicsManager::setPlayerClass (const ESM::Class& class_)
{ {
buildPlayer();
} }
} }

View file

@ -22,6 +22,10 @@ namespace MWMechanics
CreatureStats mWatchedCreature; CreatureStats mWatchedCreature;
bool mSetName; bool mSetName;
void buildPlayer();
///< build player according to stored class/race/birthsign information. Will
/// default to the values of the ESM::NPC object, if no explicit information is given.
public: public:
MechanicsManager (MWWorld::Environment& environment); MechanicsManager (MWWorld::Environment& environment);