void RomeSoldier::load(const VariantMap& stream)
{
  Soldier::load( stream );

  VARIANT_LOAD_ANY_D( _d, strikeForce, stream );
  VARIANT_LOAD_ANY_D( _d, resistance, stream );
  VARIANT_LOAD_ANY_D( _d, patrolPosition, stream );
  VARIANT_LOAD_ANY_D( _d, basePos, stream );

  FortPtr fort = ptr_cast<Fort>( _city()->getOverlay( _d->basePos ) );

  if( fort.isValid() )
  {
    fort->addWalker( this );
  }
  else
  {
    die();
  }
}
Beispiel #2
0
void RomeSoldier::load(const VariantMap& stream)
{
  Soldier::load( stream );

  VARIANT_LOAD_ANY_D( _d, strikeForce, stream );
  VARIANT_LOAD_ANY_D( _d, resistance, stream );
  VARIANT_LOAD_ANY_D( _d, patrolPosition, stream );
  VARIANT_LOAD_ANY_D( _d, basePos, stream );

  FortPtr fort = _city()->getOverlay( _d->basePos ).as<Fort>();
  if( fort.isValid() )
  {
    fort->addWalker( this );
  }
  else
  {
    Logger::warning( "!!! WARNING: RomeSoldier cant find base for himself at [%d,%d]", _d->basePos.i(), _d->basePos.j() );
    die();
  }
}