void update_all(int * trace, Graph * graph, tuple * base, int * popularity, int depth, int start_point, int * satur_degree) { // Actualizamos todos los vértices desde el nivel // de más profundo del árbol (depth) donde se detuvo // el procedimiento forwards. int i = depth; while(i >= start_point) { // Actualizamos color_around de vértices adyacentes // al decolorear vértice que está en trace[i] uncolor(graph, trace[i], graph[trace[i]].color); //Actualización de tabla de popularidad popularity[graph[trace[i]].color]--; // Decoloreamos el vértice graph[trace[i]].color = -1; // Bajamos grado de saturación a los vecinos // y restablecemos el grado de saturación a 0 // para el vértice decoloreado. uncolor_satur(satur_degree, graph, trace[i]); // Se actualiza la base que apunta al arreglo de // vértice-grado (deg_vert) // update_base(trace, trace[i], base); i--; } }
static void cmd_mirror() { char *text = trap->cmd_argv(1); if (partial_match("made a new MGX record", text)) { int c = trap->cmd_client(); cs_t *cs = trap->client_cs(c); sprintf(message, "[%s @ %s] %s", trap->get_level(c), cs_get(cs, CS_HOSTNAME), text); trap->irc_say(NULL, "%s\n", uncolor(message)); } if (query) { if (partial_match("No highscores found yet!", text)) { trap->irc_say(target, "%s\n", uncolor(text)); query = 0; } if (partial_match("Top 3 players on", text)) { char *result = uncolor(text); result = strchr(result, '\n') + 1; char *end = strchr(result, '\n'); if (end) *end = '\0'; trap->irc_say(target, "%s\n", result); query = 0; } } }