Example #1
0
File: pronto2.c Project: msart/ep5
/*Dado uma posicao, checa se para alguma direcao
existe um projectile, e retorna qual direcao esta
o mais perto, contando giradas necessarias*/
int searchNearestProjectile (Grid *g, Position p, Robot *r) {
	int i, min = 500, best_dir = 0, cont;
	Position s;

	for (i = 0; i < 6; i++) {
		/*Conta para chegar o numero de viradas necessarias
		ja que elas gastam um turno*/
		cont = 1 + quickTurn (r->dir, i);
		s = getNeighbor (p, i);
		while (limiteDoMapa (s, g->m, g->n)) {
			if (isProjectile (g, s)) {
				if(cont < min) {
					min = cont;
					best_dir = i;
					break;
				}
			}
			s = getNeighbor (s, i);
		}
	}
	/*Nao existe robos nas direções ao redor do jogador*/
	if (min == 500)
		return -1;
	else
		return best_dir;
}
Example #2
0
bool audio_ObjectDead(SIMPLE_OBJECT *psSimpleObj)
{
	/* check is valid simple object pointer */
	if (psSimpleObj == nullptr)
	{
		debug(LOG_NEVER, "audio_ObjectDead: simple object pointer invalid");
		return true;
	}

	/* check projectiles */
	if (isProjectile(psSimpleObj))
	{
		return castProjectile(psSimpleObj)->state == PROJ_POSTIMPACT;
	}
	else
	{
		/* check base object */
		return psSimpleObj->died;
	}
}