|
|
|
@ -144,8 +144,8 @@ namespace MWWorld
|
|
|
|
|
state.mNode->setNodeMask(MWRender::Mask_Effect);
|
|
|
|
|
state.mNode->setPosition(pos);
|
|
|
|
|
state.mNode->setAttitude(orient);
|
|
|
|
|
|
|
|
|
|
osg::Group* attachTo = state.mNode;
|
|
|
|
|
|
|
|
|
|
osg::Group* attachTo = state.mNode;
|
|
|
|
|
|
|
|
|
|
if (rotate)
|
|
|
|
|
{
|
|
|
|
@ -169,27 +169,26 @@ namespace MWWorld
|
|
|
|
|
mResourceSystem->getSceneManager()->getInstance("meshes\\" + weapon->mModel, findVisitor.mFoundNode);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (isMagic)
|
|
|
|
|
{
|
|
|
|
|
// Add magic bolt light
|
|
|
|
|
osg::ref_ptr<osg::Light> projectileLight(new osg::Light);
|
|
|
|
|
projectileLight->setDiffuse(osg::Vec4(0.95f, 0.71f, 0.25f, 1.0f));
|
|
|
|
|
projectileLight->setAmbient(osg::Vec4(0.32f, 0.08f, 0.01f, 1.0f));
|
|
|
|
|
projectileLight->setSpecular(osg::Vec4(0, 0, 0, 0));
|
|
|
|
|
projectileLight->setLinearAttenuation(0.5f / 15);
|
|
|
|
|
projectileLight->setPosition(osg::Vec4(pos, 1.0));
|
|
|
|
|
|
|
|
|
|
// Add magic bolt light source
|
|
|
|
|
SceneUtil::LightSource* projectileLightSource = new SceneUtil::LightSource;
|
|
|
|
|
projectileLightSource->setNodeMask(MWRender::Mask_Lighting);
|
|
|
|
|
projectileLightSource->setRadius(66.f);
|
|
|
|
|
|
|
|
|
|
// Attach to scene node
|
|
|
|
|
state.mNode->addChild(projectileLightSource);
|
|
|
|
|
projectileLightSource->setLight(projectileLight);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (isMagic)
|
|
|
|
|
{
|
|
|
|
|
// Add magic bolt light
|
|
|
|
|
osg::ref_ptr<osg::Light> projectileLight(new osg::Light);
|
|
|
|
|
projectileLight->setDiffuse(osg::Vec4(0.95f, 0.71f, 0.25f, 1.0f));
|
|
|
|
|
projectileLight->setAmbient(osg::Vec4(0.32f, 0.08f, 0.01f, 1.0f));
|
|
|
|
|
projectileLight->setSpecular(osg::Vec4(0, 0, 0, 0));
|
|
|
|
|
projectileLight->setLinearAttenuation(0.5f / 15);
|
|
|
|
|
projectileLight->setPosition(osg::Vec4(pos, 1.0));
|
|
|
|
|
|
|
|
|
|
// Add magic bolt light source
|
|
|
|
|
SceneUtil::LightSource* projectileLightSource = new SceneUtil::LightSource;
|
|
|
|
|
projectileLightSource->setNodeMask(MWRender::Mask_Lighting);
|
|
|
|
|
projectileLightSource->setRadius(66.f);
|
|
|
|
|
|
|
|
|
|
// Attach to scene node
|
|
|
|
|
state.mNode->addChild(projectileLightSource);
|
|
|
|
|
projectileLightSource->setLight(projectileLight);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
SceneUtil::DisableFreezeOnCullVisitor disableFreezeOnCullVisitor;
|
|
|
|
|
state.mNode->accept(disableFreezeOnCullVisitor);
|
|
|
|
|
|
|
|
|
@ -482,9 +481,9 @@ namespace MWWorld
|
|
|
|
|
|
|
|
|
|
bool ProjectileManager::readRecord(ESM::ESMReader &reader, uint32_t type)
|
|
|
|
|
{
|
|
|
|
|
if (type == ESM::REC_PROJ)
|
|
|
|
|
if (type == ESM::REC_PROJ)
|
|
|
|
|
{
|
|
|
|
|
ESM::ProjectileState esm;
|
|
|
|
|
ESM::ProjectileState esm;
|
|
|
|
|
esm.load(reader);
|
|
|
|
|
|
|
|
|
|
ProjectileState state;
|
|
|
|
@ -513,7 +512,7 @@ namespace MWWorld
|
|
|
|
|
}
|
|
|
|
|
else if (type == ESM::REC_MPRJ)
|
|
|
|
|
{
|
|
|
|
|
ESM::MagicBoltState esm;
|
|
|
|
|
ESM::MagicBoltState esm;
|
|
|
|
|
esm.load(reader);
|
|
|
|
|
|
|
|
|
|
MagicBoltState state;
|
|
|
|
|