void spoil_spells_aux(FILE *fff, spell_info *table) { int i; variant vn, vd; var_init(&vn); var_init(&vd); fprintf(fff, "\n== Spells ==\n"); fprintf(fff, "|| || *Lvl* || *Cost* || *Fail* || *Description* ||\n"); for (i = 0; ; i++) { spell_info *base = &table[i]; if (!base->fn) break; base->fn(SPELL_SPOIL_NAME, &vn); if (var_is_null(&vn)) base->fn(SPELL_NAME, &vn); base->fn(SPELL_SPOIL_DESC, &vd); if (var_is_null(&vd)) base->fn(SPELL_DESC, &vd); fprintf(fff, "||%s||%d||%d||%d||`%s`||\n", var_get_string(&vn), base->level, base->cost, base->fail, var_get_string(&vd)); } var_clear(&vn); var_clear(&vd); }
void spoil_powers_aux(FILE *fff, power_info *table) { int i; variant vn, vd; var_init(&vn); var_init(&vd); fprintf(fff, "\n== Powers ==\n"); fprintf(fff, "|| || *Stat* || *Lvl* || *Cost* || *Fail* || *Description* ||\n"); for (i = 0; ; i++) { power_info *base = &table[i]; if (!base->spell.fn) break; base->spell.fn(SPELL_SPOIL_NAME, &vn); if (var_is_null(&vn)) base->spell.fn(SPELL_NAME, &vn); base->spell.fn(SPELL_SPOIL_DESC, &vd); if (var_is_null(&vd)) base->spell.fn(SPELL_DESC, &vd); fprintf(fff, "||%s||%s||%d||%d||%d||`%s`||\n", var_get_string(&vn), stat_abbrev_true[base->stat], base->spell.level, base->spell.cost, base->spell.fail, var_get_string(&vd) ); } var_clear(&vn); var_clear(&vd); }
static void _list(menu_ptr menu, char *keys) { char temp[255]; int i; int y = 1; int x = 13; Term_erase(x, y, 255); if (menu->heading) put_str(format(" %s", menu->heading), y++, x); for (i = 0; i < menu->count; i++) { byte attr = TERM_WHITE; variant key, text, color; var_init(&key); var_init(&text); var_init(&color); menu->fn(MENU_KEY, i, menu->cookie, &key); if (var_is_null(&key)) keys[i] = I2A(i); else keys[i] = (char)var_get_int(&key); if (menu->count <= 26) keys[i] = tolower(keys[i]); menu->fn(MENU_TEXT, i, menu->cookie, &text); if (var_is_null(&text)) var_set_string(&text, ""); menu->fn(MENU_COLOR, i, menu->cookie, &color); if (!var_is_null(&color)) attr = var_get_int(&color); if (attr == TERM_DARK) keys[i] = '\0'; sprintf(temp, " %c) %s", keys[i], var_get_string(&text)); c_prt(attr, temp, y + i, x); var_clear(&key); var_clear(&text); var_clear(&color); } Term_erase(x, y + menu->count, 255); }
cptr get_spell_spoiler_name(ang_spell spell) { static char buf[255]; variant v; var_init(&v); spell(SPELL_SPOIL_NAME, &v); if (var_is_null(&v)) spell(SPELL_NAME, &v); sprintf(buf, "%s", var_get_string(&v)); var_clear(&v); return buf; }
static void _describe(menu_ptr menu, int which) { variant v; var_init(&v); menu->fn(MENU_HELP, which, menu->cookie, &v); if (!var_is_null(&v)) { char tmp[255*10]; int i, line; for (i = 0; i < 2+10; i++) Term_erase(13, menu->count + i + 1 + (menu->heading ? 1 : 0), 255); roff_to_buf(var_get_string(&v), 80-15, tmp, sizeof(tmp)); for(i = 0, line = menu->count + 2 + (menu->heading ? 1 : 0); tmp[i]; i += 1+strlen(&tmp[i])) { prt(&tmp[i], line, 15); line++; } } var_clear(&v); }