| 947 | } |
| 948 | |
| 949 | void HoverVehicle::updateEmitter(bool active,F32 dt,ParticleEmitterData *emitter,S32 idx,S32 count) |
| 950 | { |
| 951 | if (!emitter) |
| 952 | return; |
| 953 | for (S32 j = idx; j < idx + count; j++) |
| 954 | if (active) { |
| 955 | if (mDataBlock->jetNode[j] != -1) { |
| 956 | if (!bool(mJetEmitter[j])) { |
| 957 | mJetEmitter[j] = new ParticleEmitter; |
| 958 | mJetEmitter[j]->onNewDataBlock( emitter, false ); |
| 959 | mJetEmitter[j]->registerObject(); |
| 960 | } |
| 961 | MatrixF mat; |
| 962 | Point3F pos,axis; |
| 963 | mat.mul(getRenderTransform(), |
| 964 | mShapeInstance->mNodeTransforms[mDataBlock->jetNode[j]]); |
| 965 | mat.getColumn(1,&axis); |
| 966 | mat.getColumn(3,&pos); |
| 967 | mJetEmitter[j]->emitParticles(pos,true,axis,getVelocity(),(U32)(dt * 1000.0f)); |
| 968 | } |
| 969 | } |
| 970 | else { |
| 971 | for (S32 k = idx; k < idx + count; k++) |
| 972 | if (bool(mJetEmitter[k])) { |
| 973 | mJetEmitter[k]->deleteWhenEmpty(); |
| 974 | mJetEmitter[k] = 0; |
| 975 | } |
| 976 | } |
| 977 | } |
nothing calls this directly
no test coverage detected