Esempio n. 1
0
static t_player	*choose_target(void)
{
	t_player	*to_return;
	t_player	*p;
	float		min_dist;
	float		player_dist;
	size_t		i;

	i = 0;
	min_dist = 10000;
	while (i < get_shmem()->nb_user)
	{
		p = get_player(i);
		if (p->pid != getpid() && p->team != get_current_player()->team)
		{
			player_dist = dist_players(p, get_current_player());
			if (player_dist < min_dist)
			{
				to_return = p;
				min_dist = player_dist;
			}
		}
		++i;
	}
	return (to_return);
}
Esempio n. 2
0
static t_player	*target_from_msg(void)
{
	t_msg		qbuf;
	int			read_ret;
	t_player	*target;

	read_ret = read_message(&qbuf, get_current_player()->team);
	if (read_ret < 0)
		return (NULL);
	target = get_player(qbuf.target);
	if (!target->is_active ||
			target->team == get_current_player()->team)
		return (NULL);
	return (target);
}
Esempio n. 3
0
t_player		*designate_target(void)
{
	t_player	*to_return;

	to_return = target_from_msg();
	if (to_return == NULL)
		to_return = choose_target();
	if (to_return != NULL)
		send_message(get_current_player()->team, get_player_id(to_return));
	return (to_return);
}
Esempio n. 4
0
void rand_wall(void)
{
	int imPlayer;
	int l,c,d;

	imPlayer = get_current_player(bglobal);

	if (remaining_bridges(bglobal, imPlayer))
	{
		l=randomWall();
		c=randomWall();
		d=randomdir()%2;
		place_wall(bglobal,c+'a', l+'1',d+'1');
	}
}