From 12a15e3fb7bc06eca85ba0ccc7d748c24ae40b1f Mon Sep 17 00:00:00 2001 From: Marc Zinnschlag Date: Sun, 26 Sep 2010 09:55:00 +0200 Subject: [PATCH] implemented class effects on player skills --- apps/openmw/mwmechanics/mechanicsmanager.cpp | 31 ++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/apps/openmw/mwmechanics/mechanicsmanager.cpp b/apps/openmw/mwmechanics/mechanicsmanager.cpp index d3b6667003..1ff51b3258 100644 --- a/apps/openmw/mwmechanics/mechanicsmanager.cpp +++ b/apps/openmw/mwmechanics/mechanicsmanager.cpp @@ -77,7 +77,38 @@ namespace MWMechanics } } + for (int i=0; i<2; ++i) + { + int bonus = i==0 ? 10 : 25; + for (int i2=0; i2<5; ++i2) + { + int index = class_.data.skills[i2][i]; + + if (index>=0 && index<27) + { + npcStats.mSkill[index].setBase ( + npcStats.mSkill[index].getBase() + bonus); + } + } + } + + typedef ESMS::IndexListT::MapType ContainerType; + const ContainerType& skills = mEnvironment.mWorld->getStore().skills.list; + + for (ContainerType::const_iterator iter (skills.begin()); iter!=skills.end(); ++iter) + { + if (iter->second.data.specialization==class_.data.specialization) + { + int index = iter->first; + + if (index>=0 && index<27) + { + npcStats.mSkill[index].setBase ( + npcStats.mSkill[index].getBase() + 5); + } + } + } // calculate dynamic stats int strength = creatureStats.mAttributes[0].getBase();