Пример #1
0
SimFire::SimFire( const SimFireRecord * record, float _fireOut )
{
   type |= SimExplosion::defaultFxObjectType;

   shapeTag = record->shapeTag;
   translucentShapeTag = record->shapeTagT;
   soundID = record->soundID;

   producesSmoke = record->smokeTag > 0;
   setSmoke(record->smokeTag,record->smokeTagT,record->ISI,record->smokeDuration);
   smokeOffset.x = record->smokeXoffset;
   smokeOffset.y = record->smokeYoffset;
   smokeOffset.z = record->smokeZoffset;
   
   lightRange = record->lightRange;
   lightColor.set(record->r, record->g, record->b);
   
   faceCam = record->faceCam==1;
   followCam = record->faceCam==2;

   renderedYet = false;
   useLight = true;

   fireOut = _fireOut;
   pos.set(0, 0, 0);
   onObj = 0;
   hSound  = SFX_INVALID_HANDLE;
}
Пример #2
0
//------------------------------------------------------------------------------
// playerState2Nib() -- Sets this NIB's player data
//------------------------------------------------------------------------------
void Nib::playerState2Nib()
{
   const models::Player* player = getPlayer();
   if (player != nullptr) {
      // Player name
      const char* cname = nullptr;
      const base::String* sname = player->getName();
      if (sname != nullptr) cname = *sname;
      if (cname != nullptr) setPlayerName(cname);
      else setPlayerName("OPENEAAGLES");

      freeze( player->isFrozen() );
      if (!isMode(models::Player::DELETE_REQUEST)) setMode( player->getMode() );
      setDamage( player->getDamage() );
      setSmoke( player->getSmoke() );
      setFlames( player->getFlames() );
      setCamouflageType( player->getCamouflageType() );
      setSide( player->getSide() );

      // Reset our dead reckoning with the current state data from the player
      //resetDeadReckoning(
      //   RVW_DRM,
      //   player->getGeocPosition(),
      //   player->getGeocVelocity(),
      //   player->getGeocAcceleration(),
      //   player->getGeocEulerAngles(),
      //   player->getGeocAngularVelocities()
      //);

      resetDeadReckoning(
         RVW_DRM,
         player->getSynchronizedState().getGeocPosition(),
         player->getSynchronizedState().getGeocVelocity(),
         player->getSynchronizedState().getGeocAcceleration(),
         player->getSynchronizedState().getGeocEulerAngles(),
         player->getSynchronizedState().getAngularVelocities()
      );

      // mark the current times
      //Simulation* sim = getNetIO()->getSimulation();
      //setTimeExec( static_cast<double>(sim->getExecTimeSec()) );
      setTimeExec( static_cast<double>(player->getSynchronizedState().getTimeExec()) );
      //setTimeUtc( static_cast<double>(sim->getSysTimeOfDay()) );
      setTimeUtc( static_cast<double>(player->getSynchronizedState().getTimeUtc()) );

      {
         //base::Vec3d pos = player->getGeocPosition();
         //base::Vec3d vec = player->getGeocVelocity();

         //std::cout << "playerState2Nib(): geoc pos: (";
         //std::cout << pos[0] << ", ";
         //std::cout << pos[1] << ", ";
         //std::cout << pos[2] << ") ";
         //std::cout << "geoc vel: (";
         //std::cout << vec[0] << ", ";
         //std::cout << vec[1] << ", ";
         //std::cout << vec[2] << ") ";
         //std::cout << std::endl;
      }
   }
}