void init_table_aux(int table[MAX_SKILLS][2], int *idx, int father, int lev, bool full) { int j, i; for (j = 1; j < max_s_idx; j++) { i = get_idx(j); if (s_info[i].father != father) continue; if (s_info[i].hidden) continue; if (!is_known(i)) continue; table[*idx][0] = i; table[*idx][1] = lev; (*idx)++; if (s_info[i].dev || full) init_table_aux(table, idx, i, lev + 1, full); } }
void init_table_aux(s32b **table, s32b *idx, s32b father, s32b lev, bool full) { s32b j, i; for (j = 1; j < max_s_idx; j++) { i = get_idx(j); if (s_info[i].father != father) continue; if (s_info[i].hidden) continue; if (!is_known(i)) continue; table[*idx][0] = i; table[*idx][1] = lev; (*idx)++; if (s_info[i].dev || full) init_table_aux(table, idx, i, lev + 1, full); } }
void init_table(int table[MAX_SKILLS][2], int *max, bool full) { *max = 0; init_table_aux(table, max, -1, 0, full); }
void init_table(s32b **table, s32b *max, bool full) { *max = 0; init_table_aux(table, max, -1, 0, full); }