mirror of
https://gitlab.com/OpenMW/openmw.git
synced 2025-01-26 09:35:28 +00:00
Gloves, Gauntlets, Boots, Shoes
This commit is contained in:
parent
940a90e3ba
commit
5e1ac0cca1
@ -16,6 +16,9 @@ NpcAnimation::NpcAnimation(const MWWorld::Ptr& ptr, MWWorld::Environment& _env,O
|
|||||||
robe(inv.getSlot(MWWorld::InventoryStore::Slot_Robe)), helmet(inv.getSlot(MWWorld::InventoryStore::Slot_Helmet)), shirt(inv.getSlot(MWWorld::InventoryStore::Slot_Shirt)),
|
robe(inv.getSlot(MWWorld::InventoryStore::Slot_Robe)), helmet(inv.getSlot(MWWorld::InventoryStore::Slot_Helmet)), shirt(inv.getSlot(MWWorld::InventoryStore::Slot_Shirt)),
|
||||||
cuirass(inv.getSlot(MWWorld::InventoryStore::Slot_Cuirass)), greaves(inv.getSlot(MWWorld::InventoryStore::Slot_Greaves)),
|
cuirass(inv.getSlot(MWWorld::InventoryStore::Slot_Cuirass)), greaves(inv.getSlot(MWWorld::InventoryStore::Slot_Greaves)),
|
||||||
leftpauldron(inv.getSlot(MWWorld::InventoryStore::Slot_LeftPauldron)), rightpauldron(inv.getSlot(MWWorld::InventoryStore::Slot_RightPauldron)),
|
leftpauldron(inv.getSlot(MWWorld::InventoryStore::Slot_LeftPauldron)), rightpauldron(inv.getSlot(MWWorld::InventoryStore::Slot_RightPauldron)),
|
||||||
|
boots(inv.getSlot(MWWorld::InventoryStore::Slot_Boots)),
|
||||||
|
leftglove(inv.getSlot(MWWorld::InventoryStore::Slot_LeftGauntlet)), rightglove(inv.getSlot(MWWorld::InventoryStore::Slot_RightGauntlet)),
|
||||||
|
pants(inv.getSlot(MWWorld::InventoryStore::Slot_Pants)),
|
||||||
lclavicle(0),
|
lclavicle(0),
|
||||||
rclavicle(0),
|
rclavicle(0),
|
||||||
rupperArm(0),
|
rupperArm(0),
|
||||||
@ -197,10 +200,28 @@ void NpcAnimation::updateParts(){
|
|||||||
|
|
||||||
}
|
}
|
||||||
if(rightpauldron != inv.getSlot(MWWorld::InventoryStore::Slot_RightPauldron)){
|
if(rightpauldron != inv.getSlot(MWWorld::InventoryStore::Slot_RightPauldron)){
|
||||||
leftpauldron = inv.getSlot(MWWorld::InventoryStore::Slot_RightPauldron);
|
rightpauldron = inv.getSlot(MWWorld::InventoryStore::Slot_RightPauldron);
|
||||||
removePartGroup(MWWorld::InventoryStore::Slot_RightPauldron);
|
removePartGroup(MWWorld::InventoryStore::Slot_RightPauldron);
|
||||||
apparelChanged = true;
|
apparelChanged = true;
|
||||||
|
|
||||||
|
}
|
||||||
|
if(boots != inv.getSlot(MWWorld::InventoryStore::Slot_Boots)){
|
||||||
|
boots = inv.getSlot(MWWorld::InventoryStore::Slot_Boots);
|
||||||
|
removePartGroup(MWWorld::InventoryStore::Slot_Boots);
|
||||||
|
apparelChanged = true;
|
||||||
|
|
||||||
|
}
|
||||||
|
if(leftglove != inv.getSlot(MWWorld::InventoryStore::Slot_LeftGauntlet)){
|
||||||
|
leftglove = inv.getSlot(MWWorld::InventoryStore::Slot_LeftGauntlet);
|
||||||
|
removePartGroup(MWWorld::InventoryStore::Slot_LeftGauntlet);
|
||||||
|
apparelChanged = true;
|
||||||
|
|
||||||
|
}
|
||||||
|
if(rightglove != inv.getSlot(MWWorld::InventoryStore::Slot_RightGauntlet)){
|
||||||
|
rightglove = inv.getSlot(MWWorld::InventoryStore::Slot_RightGauntlet);
|
||||||
|
removePartGroup(MWWorld::InventoryStore::Slot_RightGauntlet);
|
||||||
|
apparelChanged = true;
|
||||||
|
|
||||||
}
|
}
|
||||||
if(shirt != inv.getSlot(MWWorld::InventoryStore::Slot_Shirt)){
|
if(shirt != inv.getSlot(MWWorld::InventoryStore::Slot_Shirt)){
|
||||||
shirt = inv.getSlot(MWWorld::InventoryStore::Slot_Shirt);
|
shirt = inv.getSlot(MWWorld::InventoryStore::Slot_Shirt);
|
||||||
@ -210,6 +231,7 @@ void NpcAnimation::updateParts(){
|
|||||||
}
|
}
|
||||||
|
|
||||||
if(apparelChanged){
|
if(apparelChanged){
|
||||||
|
std::cout << "Modifying stuff\n";
|
||||||
if(robe != inv.end())
|
if(robe != inv.end())
|
||||||
{
|
{
|
||||||
MWWorld::Ptr ptr = *robe;
|
MWWorld::Ptr ptr = *robe;
|
||||||
@ -238,6 +260,7 @@ void NpcAnimation::updateParts(){
|
|||||||
addPartGroup(MWWorld::InventoryStore::Slot_Greaves, 3, parts);
|
addPartGroup(MWWorld::InventoryStore::Slot_Greaves, 3, parts);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if(leftpauldron != inv.end()){
|
if(leftpauldron != inv.end()){
|
||||||
const ESM::Armor *armor = (leftpauldron->get<ESM::Armor>())->base;
|
const ESM::Armor *armor = (leftpauldron->get<ESM::Armor>())->base;
|
||||||
std::vector<ESM::PartReference> parts = armor->parts.parts;
|
std::vector<ESM::PartReference> parts = armor->parts.parts;
|
||||||
@ -250,6 +273,52 @@ void NpcAnimation::updateParts(){
|
|||||||
addPartGroup(MWWorld::InventoryStore::Slot_RightPauldron, 3, parts);
|
addPartGroup(MWWorld::InventoryStore::Slot_RightPauldron, 3, parts);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
if(boots != inv.end()){
|
||||||
|
|
||||||
|
if(boots->getTypeName() == "struct ESM::Clothing"){
|
||||||
|
const ESM::Clothing *clothes = (boots->get<ESM::Clothing>())->base;
|
||||||
|
std::vector<ESM::PartReference> parts = clothes->parts.parts;
|
||||||
|
addPartGroup(MWWorld::InventoryStore::Slot_Boots, 2, parts);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
const ESM::Armor *armor = (boots->get<ESM::Armor>())->base;
|
||||||
|
std::vector<ESM::PartReference> parts = armor->parts.parts;
|
||||||
|
addPartGroup(MWWorld::InventoryStore::Slot_Boots, 3, parts);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
if(leftglove != inv.end()){
|
||||||
|
|
||||||
|
if(leftglove->getTypeName() == "struct ESM::Clothing"){
|
||||||
|
const ESM::Clothing *clothes = (leftglove->get<ESM::Clothing>())->base;
|
||||||
|
std::vector<ESM::PartReference> parts = clothes->parts.parts;
|
||||||
|
addPartGroup(MWWorld::InventoryStore::Slot_LeftGauntlet, 2, parts);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
const ESM::Armor *armor = (leftglove->get<ESM::Armor>())->base;
|
||||||
|
std::vector<ESM::PartReference> parts = armor->parts.parts;
|
||||||
|
addPartGroup(MWWorld::InventoryStore::Slot_LeftGauntlet, 3, parts);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
if(rightglove != inv.end()){
|
||||||
|
|
||||||
|
if(rightglove->getTypeName() == "struct ESM::Clothing"){
|
||||||
|
const ESM::Clothing *clothes = (rightglove->get<ESM::Clothing>())->base;
|
||||||
|
std::vector<ESM::PartReference> parts = clothes->parts.parts;
|
||||||
|
addPartGroup(MWWorld::InventoryStore::Slot_RightGauntlet, 2, parts);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
const ESM::Armor *armor = (rightglove->get<ESM::Armor>())->base;
|
||||||
|
std::vector<ESM::PartReference> parts = armor->parts.parts;
|
||||||
|
addPartGroup(MWWorld::InventoryStore::Slot_RightGauntlet, 3, parts);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
if(shirt != inv.end()){
|
if(shirt != inv.end()){
|
||||||
const ESM::Clothing *clothes = (shirt->get<ESM::Clothing>())->base;
|
const ESM::Clothing *clothes = (shirt->get<ESM::Clothing>())->base;
|
||||||
std::vector<ESM::PartReference> parts = clothes->parts.parts;
|
std::vector<ESM::PartReference> parts = clothes->parts.parts;
|
||||||
|
@ -75,6 +75,10 @@ private:
|
|||||||
MWWorld::ContainerStoreIterator greaves;
|
MWWorld::ContainerStoreIterator greaves;
|
||||||
MWWorld::ContainerStoreIterator leftpauldron;
|
MWWorld::ContainerStoreIterator leftpauldron;
|
||||||
MWWorld::ContainerStoreIterator rightpauldron;
|
MWWorld::ContainerStoreIterator rightpauldron;
|
||||||
|
MWWorld::ContainerStoreIterator boots;
|
||||||
|
MWWorld::ContainerStoreIterator pants;
|
||||||
|
MWWorld::ContainerStoreIterator leftglove;
|
||||||
|
MWWorld::ContainerStoreIterator rightglove;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
NpcAnimation(const MWWorld::Ptr& ptr, MWWorld::Environment& _env, OEngine::Render::OgreRenderer& _rend, MWWorld::InventoryStore& _inv);
|
NpcAnimation(const MWWorld::Ptr& ptr, MWWorld::Environment& _env, OEngine::Render::OgreRenderer& _rend, MWWorld::InventoryStore& _inv);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user