Exemplo n.º 1
0
void tratarSolicitudUbicacionCaja(char* data) {

	char rId = data[0];
	char pId = data[1];
	coordenada_t* coord;
	header_t h;
	int16_t length;
	char* coordSerialized;
	h.type = UBICACION_CAJA;
	h.length = sizeof(char);

	log_info(logFile, "Atendiendo pedido de posicion de caja %c para %c", rId,
			pId);
	coord = obtenerCoordenadas(listaRecursos, rId, logFile);
	coordSerialized = coordenadas_serializer(coord, &length);

	char* dataSend = malloc(h.length + length);
	memcpy(dataSend, &pId, h.length);
	memcpy(dataSend + h.length, coordSerialized, length);
	h.length += length;
	sockets_send(plataformaSockfd, &h, dataSend);

//	if (h.length == 9)
//		log_info(logFile, "type=%d length=%d idPersonaje=%c.", h.type, h.length,
//				pId);
	free(coordSerialized);
	coordenadas_destroy(coord);
}
Exemplo n.º 2
0
int personajeEnCaja(char pId, char rId) {

	int enCaja = 0;
	coordenada_t* posCaja = obtenerCoordenadas(listaRecursos, rId, logFile);
	coordenada_t* posPersonaje = obtenerCoordenadas(listaPersonajes, pId,
			logFile);

	if (posPersonaje != NULL )
		enCaja = coordenadasIguales(posCaja, posPersonaje);
	else
		enCaja = 1;

	coordenadas_destroy(posCaja);
	coordenadas_destroy(posPersonaje);

	return enCaja;
}
Exemplo n.º 3
0
void DrawPanel::actualizarNodos()
{
    wxPoint* coordenadas = obtenerCoordenadas();
    char* nodos = grafo->getNodos();

    circulos->clear();
    for (int i=0; i<8; i++){
        circulos->append( new Circulo(coordenadas[i], 25, nodos[i]) );
    }

}