Beispiel #1
0
sanguis::server::weapons::states::castpoint::castpoint(
    my_context _ctx
)
    :
    my_base(
       _ctx
    ),
    attack_time_(
       sanguis::diff_timer::parameters(
           this->context<
           sanguis::server::weapons::weapon
           >().diff_clock(),
           this->context<
           sanguis::server::weapons::weapon
           >().cast_point().get()
           /
           this->context<
           sanguis::server::weapons::weapon
           >().owner().ias().get()
       )
    ),
    cancelled_(
       false
    )
{
    this->context<
    sanguis::server::weapons::weapon
    >().weapon_status(
        sanguis::weapon_status::attacking
    );

    FCPPT_LOG_VERBOSE(
        this->context<
        sanguis::server::weapons::weapon
        >().log().main_log(),
        fcppt::log::_
        << FCPPT_TEXT("castpoint: ")
        << this
    );
}
Beispiel #2
0
void
alda::net::client::detail::object_impl::write_handler(
	boost::system::error_code const &_error,
	std::size_t const _bytes
)
{
	if(
		_error
	)
	{
		this->handle_error(
			FCPPT_TEXT("write "),
			_error
		);

		return;
	}

	FCPPT_LOG_VERBOSE(
		log_,
		fcppt::log::_
			<< FCPPT_TEXT("wrote ")
			<< _bytes
			<< FCPPT_TEXT(" bytes")
	);

	send_buffer_.bytes_sent(
		_bytes
	);

	if(
		!send_buffer_.empty()
	)
		this->send_data();
	else
		sending_ =
			false;
}
Beispiel #3
0
void
alda::net::client::detail::object_impl::read_handler(
	boost::system::error_code const &_error,
	std::size_t const _bytes
)
{
	if(
		_error
	)
	{
		this->handle_error(
			FCPPT_TEXT("read"),
			_error
		);

		return;
	}

	receive_buffer_.bytes_received(
		_bytes
	);

	FCPPT_LOG_VERBOSE(
		log_,
		fcppt::log::_
			<< FCPPT_TEXT("read ")
			<< _bytes
			<< FCPPT_TEXT(" bytes.")
	);

	data_signal_(
		receive_buffer_
	);

	this->receive_data();
}
Beispiel #4
0
sge::projectile::shape::detail::scalar_container
sge::projectile::impl::shape::triangle_scalars(
	fcppt::log::object &_log,
	sge::projectile::shape::triangle_sequence const &_triangles
)
{
	sge::projectile::shape::detail::scalar_container scalars(
		_triangles.size() * 8u * 3u * 3u
	);

	FCPPT_LOG_DEBUG(
		_log,
		fcppt::log::_
			<< FCPPT_TEXT("constructing triangle mesh with ")
			<< _triangles.size()
			<< FCPPT_TEXT(" triangles"));

	sge::projectile::shape::detail::scalar_container::iterator current_scalar =
		scalars.begin();

	// TODO: Find a better way to express this
	for(
		sge::projectile::triangle const &triangle
		:
		_triangles
	)
	{
		typedef std::array<
			btScalar,
			2
		> extrusion_array;

		extrusion_array const extrusion_depth{{
			static_cast<btScalar>(-sge::projectile::impl::object_extrusion_depth()/2),
			static_cast<btScalar>(sge::projectile::impl::object_extrusion_depth()/2)
		}};

		for(
			btScalar const current_z
			:
			extrusion_depth
		)
		{
			FCPPT_LOG_VERBOSE(
				_log,
				fcppt::log::_
					<< FCPPT_TEXT("triangle begin"));

			for(
				auto const &current_triangle_point
				:
				triangle
			)
			{
				FCPPT_LOG_VERBOSE(
					_log,
					fcppt::log::_
						<< FCPPT_TEXT("adding point ")
						<< current_triangle_point[0]
						<< FCPPT_TEXT(',')
						<< current_triangle_point[1]
						<< FCPPT_TEXT(',')
						<< current_z);

				*current_scalar++ = current_triangle_point[0];
				*current_scalar++ = current_triangle_point[1];
				*current_scalar++ = current_z;
			}

			FCPPT_LOG_VERBOSE(
				_log,
				fcppt::log::_
					<< FCPPT_TEXT("triangle end"));
		}
	}

	return
		scalars;
}