/* * Create a spoiler file for items */ static void spoil_obj_desc(const char *fname) { int i, k, s, t, n = 0; u16b who[200]; char buf[1024]; char wgt[80]; char dam[80]; const char *format = "%-51s %7s%6s%4s%9s\n"; /* We use either ascii or system-specific encoding */ int encoding = (OPT(xchars_to_file)) ? SYSTEM_SPECIFIC : ASCII; /* Open the file */ path_build(buf, sizeof(buf), ANGBAND_DIR_USER, fname); fh = file_open(buf, MODE_WRITE, FTYPE_TEXT); /* Oops */ if (!fh) { msg("Cannot create spoiler file."); return; } /* Header */ file_putf(fh, "Spoiler File -- Basic Items (%s)\n\n\n", buildid); /* More Header */ file_putf(fh, format, "Description", "Dam/AC", "Wgt", "Lev", "Cost"); file_putf(fh, format, "----------------------------------------", "------", "---", "---", "----"); /* List the groups */ for (i = 0; TRUE; i++) { /* Write out the group title */ if (group_item[i].name) { /* Hack -- bubble-sort by cost and then level */ for (s = 0; s < n - 1; s++) { for (t = 0; t < n - 1; t++) { int i1 = t; int i2 = t + 1; int e1; int e2; s32b t1; s32b t2; kind_info(NULL, 0, NULL, 0, NULL, 0, &e1, &t1, who[i1]); kind_info(NULL, 0, NULL, 0, NULL, 0, &e2, &t2, who[i2]); if ((t1 > t2) || ((t1 == t2) && (e1 > e2))) { int tmp = who[i1]; who[i1] = who[i2]; who[i2] = tmp; } } } /* Spoil each item */ for (s = 0; s < n; s++) { int e; s32b v; /* Describe the kind */ kind_info(buf, sizeof(buf), dam, sizeof(dam), wgt, sizeof(wgt), &e, &v, who[s]); /* Dump it */ x_file_putf(fh, encoding, " %-51s%7s%6s%4d%9ld\n", buf, dam, wgt, e, (long)(v)); } /* Start a new set */ n = 0; /* Notice the end */ if (!group_item[i].tval) break; /* Start a new set */ x_file_putf(fh, encoding, "\n\n%s\n\n", group_item[i].name); } /* Get legal item types */ for (k = 1; k < z_info->k_max; k++) { object_kind *k_ptr = &k_info[k]; /* Skip wrong tval's */ if (k_ptr->tval != group_item[i].tval) continue; /* Hack -- Skip instant-artifacts */ if (of_has(k_ptr->flags, OF_INSTA_ART)) continue; /* Save the index */ who[n++] = k; } } /* Check for errors */ if (!file_close(fh)) { msg("Cannot close spoiler file."); return; } /* Message */ msg("Successfully created a spoiler file."); }
/* * Create a spoiler file for items */ void spoil_obj_desc(cptr fname) { int i, k, s, t, n = 0; u16b who[256]; char buf[1024]; char wgt[DESC_LEN]; char dam[DESC_LEN]; /* We use either ascii or system-specific encoding */ int encoding = (xchars_to_file) ? SYSTEM_SPECIFIC : ASCII; /* Build the filename */ (void)path_build(buf, sizeof(buf), ANGBAND_DIR_INFO, fname); /* File type is "TEXT" */ FILE_TYPE(FILE_TYPE_TEXT); /* Open the file */ fff = my_fopen(buf, "w"); /* Oops */ if (!fff) { msg_print("Cannot create spoiler file."); return; } /* Dump to the spoiler file */ text_out_hook = text_out_to_file; text_out_file = fff; /* Print header */ print_header("Object"); /* More Header */ x_fprintf(fff, encoding, "%-45s %8s%7s%5s%9s\n", "Description", "Dam/AC", "Wgt", "Lev", "Cost"); x_fprintf(fff, encoding, "%-45s %8s%7s%5s%9s\n", "----------------------------------------", "------", "---", "---", "----"); /* List the groups */ for (i = 0; TRUE; i++) { /* Write out the group title */ if (group_item[i].name) { /* Hack -- bubble-sort by cost and then level */ for (s = 0; s < n - 1; s++) { for (t = 0; t < n - 1; t++) { int i1 = t; int i2 = t + 1; int e1; int e2; s32b t1; s32b t2; kind_info(NULL, NULL, NULL, &e1, &t1, who[i1]); kind_info(NULL, NULL, NULL, &e2, &t2, who[i2]); if ((t1 > t2) || ((t1 == t2) && (e1 > e2))) { int tmp = who[i1]; who[i1] = who[i2]; who[i2] = tmp; } } } /* Spoil each item */ for (s = 0; s < n; s++) { int e; s32b v; /* Describe the kind */ kind_info(buf, dam, wgt, &e, &v, who[s]); /* Dump it */ if (!strlen(dam)) x_fprintf(fff, encoding, " %-53s%7s%5d%9ld\n", buf, wgt, e, (long)(v)); else x_fprintf(fff, encoding, " %-45s%8s%7s%5d%9ld\n", buf, dam, wgt, e, (long)(v)); } /* Start a new set */ n = 0; /* Notice the end */ if (!group_item[i].tval) break; /* Start a new set */ x_fprintf(fff, encoding, "\n\n%s\n\n", group_item[i].name); } /* Acquire legal item types */ for (k = 1; k < z_info->k_max; k++) { object_kind *k_ptr = &k_info[k]; /* Skip objects not of this tval */ if (k_ptr->tval != group_item[i].tval) continue; /* Hack -- Skip instant-artifacts */ if (k_ptr->flags3 & (TR3_INSTA_ART)) continue; /* Save the index */ who[n++] = k; } } /* Check for errors */ if (ferror(fff) || my_fclose(fff)) { msg_print("Cannot close spoiler file."); return; } /* Message */ msg_print("Successfully created a spoiler file."); }
/* * Create a spoiler file for items */ static void spoil_obj_desc(void) { int i, k, s, t, n = 0; u16b who[200]; C_TNEW(o_name, ONAME_MAX, char); char wgt[80]; char dam[80]; /* Header */ fprintf(fff, "Spoiler File -- Basic Items (2.?.?)\n\n\n"); /* More Header */ fprintf(fff, "%-45s %8s%7s%5s%9s\n", "Description", "Dam/AC", "Wgt", "Lev", "Cost"); fprintf(fff, "%-45s %8s%7s%5s%9s\n", "----------------------------------------", "------", "---", "---", "----"); /* List the groups */ for (i = 0; TRUE; i++) { /* Write out the group title */ if (group_item[i].str) { /* Hack -- bubble-sort by cost and then level */ for (s = 0; s < n - 1; s++) { for (t = 0; t < n - 1; t++) { int i1 = t; int i2 = t + 1; int e1; int e2; s32b t1; s32b t2; kind_info(NULL, NULL, NULL, &e1, &t1, who[i1]); kind_info(NULL, NULL, NULL, &e2, &t2, who[i2]); if ((t1 > t2) || ((t1 == t2) && (e1 > e2))) { int tmp = who[i1]; who[i1] = who[i2]; who[i2] = tmp; } } } /* Spoil each item */ for (s = 0; s < n; s++) { int e; s32b v; /* Describe the kind */ kind_info(o_name, dam, wgt, &e, &v, who[s]); /* Dump it */ fprintf(fff, " %-45s%8s%7s%5d%9ld\n", o_name, dam, wgt, e, (long)(v)); } /* Start a new set */ n = 0; /* Notice the end */ if (!group_item[i].idx) break; /* Start a new set */ fprintf(fff, "\n\n%s\n\n", group_item[i].str); } /* Acquire legal item types */ for (k = 1; k < MAX_K_IDX; k++) { object_kind *k_ptr = &k_info[k]; /* Skip wrong tval's */ if (k_ptr->tval != group_item[i].idx) continue; /* Hack -- skip items which only have special generation methods. */ if (!kind_created_p(k_ptr)) continue; /* Save the index */ who[n++] = k; } } TFREE(o_name); }
/* * Create a spoiler file for items */ static void spoil_obj_desc(cptr fname) { int i, k, s, t, n = 0, group_start = 0; u16b who[200]; char buf[1024]; char wgt[80]; char dam[80]; /* Build the filename */ path_build(buf, sizeof(buf), ANGBAND_DIR_USER, fname); /* File type is "TEXT" */ FILE_TYPE(FILE_TYPE_TEXT); /* Open the file */ fff = my_fopen(buf, "w"); /* Oops */ if (!fff) { msg_print("Cannot create spoiler file."); return; } /* Header */ fprintf(fff, "Spoiler File -- Basic Items (PosChengband %d.%d.%d)\n\n\n", VER_MAJOR, VER_MINOR, VER_PATCH); /* More Header */ fprintf(fff, "%-45s %8s%7s%5s%9s\n", "Description", "Dam/AC", "Wgt", "Lev", "Cost"); fprintf(fff, "%-45s %8s%7s%5s%9s\n", "----------------------------------------", "------", "---", "---", "----"); /* List the groups */ for (i = 0; TRUE; i++) { /* Write out the group title */ if (group_item[i].name) { if (n) { /* Hack -- bubble-sort by cost and then level */ for (s = 0; s < n - 1; s++) { for (t = 0; t < n - 1; t++) { int i1 = t; int i2 = t + 1; int e1; int e2; s32b t1; s32b t2; kind_info(NULL, NULL, NULL, &e1, &t1, who[i1]); kind_info(NULL, NULL, NULL, &e2, &t2, who[i2]); if ((t1 > t2) || ((t1 == t2) && (e1 > e2))) { int tmp = who[i1]; who[i1] = who[i2]; who[i2] = tmp; } } } fprintf(fff, "\n\n%s\n\n", group_item[group_start].name); /* Spoil each item */ for (s = 0; s < n; s++) { int e; s32b v; /* Describe the kind */ kind_info(buf, dam, wgt, &e, &v, who[s]); /* Dump it */ fprintf(fff, " %-45s%8s%7s%5d%9d\n", buf, dam, wgt, e, v); } /* Start a new set */ n = 0; } /* Notice the end */ if (!group_item[i].tval) break; /* Start a new set */ group_start = i; } /* Acquire legal item types */ for (k = 1; k < max_k_idx; k++) { object_kind *k_ptr = &k_info[k]; /* Skip wrong tval's */ if (k_ptr->tval != group_item[i].tval) continue; /* Hack -- Skip instant-artifacts */ if (k_ptr->gen_flags & (OFG_INSTA_ART)) continue; /* Save the index */ who[n++] = k; } } /* Check for errors */ if (ferror(fff) || my_fclose(fff)) { msg_print("Cannot close spoiler file."); return; } /* Message */ msg_print("Successfully created a spoiler file."); }