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); }
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; }
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]) ); } }