diff options
author | Bardur Arantsson <bardur@scientician.net> | 2015-02-23 09:11:57 +0100 |
---|---|---|
committer | Bardur Arantsson <bardur@scientician.net> | 2015-02-23 09:11:57 +0100 |
commit | 4b6f8d810f5ad513bea8fada09be01dde0fd643c (patch) | |
tree | 380e3b41ad48424ecf48d1af7bbd11f17cbdd6db | |
parent | c4746c0f6d328baa429c96e54d86d2d7f97ccbcc (diff) |
Remove k_name, k_text, k_head in favor of simple strings
-rw-r--r-- | src/cmd4.cc | 4 | ||||
-rw-r--r-- | src/cmd7.cc | 14 | ||||
-rw-r--r-- | src/externs.h | 3 | ||||
-rw-r--r-- | src/init1.cc | 46 | ||||
-rw-r--r-- | src/init2.cc | 14 | ||||
-rw-r--r-- | src/object1.cc | 33 | ||||
-rw-r--r-- | src/types.h | 4 | ||||
-rw-r--r-- | src/util.cc | 3 | ||||
-rw-r--r-- | src/wizard1.cc | 4 | ||||
-rw-r--r-- | src/wizard2.cc | 2 | ||||
-rw-r--r-- | src/xtra2.cc | 4 |
11 files changed, 44 insertions, 87 deletions
diff --git a/src/cmd4.cc b/src/cmd4.cc index 5aff3358..771c9f8d 100644 --- a/src/cmd4.cc +++ b/src/cmd4.cc @@ -2234,7 +2234,7 @@ void do_cmd_visuals(void) if (!k_ptr->name) continue; /* Dump a comment */ - fprintf(fff, "# %s\n", (k_name + k_ptr->name)); + fprintf(fff, "# %s\n", k_ptr->name); /* Dump the object attr/char info */ fprintf(fff, "K:%d:0x%02X:0x%02X\n\n", i, @@ -2381,7 +2381,7 @@ void do_cmd_visuals(void) /* Label the object */ Term_putstr(5, 17, -1, TERM_WHITE, format("Object = %d, Name = %-40.40s", - k, (k_name + k_ptr->name))); + k, k_ptr->name)); /* Label the Default values */ Term_putstr(10, 19, -1, TERM_WHITE, diff --git a/src/cmd7.cc b/src/cmd7.cc index c750104f..fabf8c7a 100644 --- a/src/cmd7.cc +++ b/src/cmd7.cc @@ -1680,12 +1680,12 @@ bool_ artifact_display_or_use(int pval, int oldpval, bool_ use) if ( missing ) c_prt(TERM_RED, format("%d of the required %d essences of %s", missing, essence[i], - k_name + k_info[lookup_kind(TV_BATERIE, i + 1)].name ), + k_info[lookup_kind(TV_BATERIE, i + 1)].name ), row++, col); else c_prt(TERM_GREEN, format("you have the needed %d essences of %s", essence[i], - k_name + k_info[lookup_kind(TV_BATERIE, i + 1)].name ), + k_info[lookup_kind(TV_BATERIE, i + 1)].name ), row++, col); } @@ -2737,7 +2737,7 @@ void alchemist_display_recipe(int tval, int sval, int ego) c_prt(TERM_GREEN, format(" %d essence%s %s ", qty, qty > 1 ? "s" : "", - k_name + k_info[lookup_kind(TV_BATERIE, alchemist_recipes[al_idx].sval_essence)].name ), + k_info[lookup_kind(TV_BATERIE, alchemist_recipes[al_idx].sval_essence)].name), row++, col); } @@ -2910,8 +2910,10 @@ void alchemist_recipe_book(void) } } else + { /* add this essence to the list*/ - strip_and_print(k_name + k_info[kidx].name, TERM_WHITE, num); + strip_and_print(k_info[kidx].name, TERM_WHITE, num); + } choice[num++] = i; } @@ -3040,7 +3042,7 @@ void alchemist_recipe_book(void) break; } strcat(names, " of "); - strcat(names, k_name + k_info[kidx].name); + strcat(names, k_info[kidx].name); } @@ -3228,7 +3230,7 @@ int alchemist_recipe_select(int *tval, int sval, int ego, bool_ recipe) /* Acquire the "name" of object "i" */ /* and print it in it's place */ - strip_and_print(k_name + k_ptr->name, color, num); + strip_and_print(k_ptr->name, color, num); /* Remember the object index */ validc[num] = color; diff --git a/src/externs.h b/src/externs.h index d8297277..eaf23419 100644 --- a/src/externs.h +++ b/src/externs.h @@ -348,10 +348,7 @@ extern header *f_head; extern feature_type *f_info; extern char *f_name; extern char *f_text; -extern header *k_head; extern object_kind *k_info; -extern char *k_name; -extern char *k_text; extern header *a_head; extern artifact_type *a_info; extern char *a_name; diff --git a/src/init1.cc b/src/init1.cc index 4fc3513d..f00e5a54 100644 --- a/src/init1.cc +++ b/src/init1.cc @@ -4155,10 +4155,6 @@ errr init_k_info_txt(FILE *fp, char *buf) error_line = -1; - /* Prepare the "fake" stuff */ - k_head->name_size = 0; - k_head->text_size = 0; - /* Parse */ fp_stack_init(fp); while (0 == my_fgets_dostack(buf, 1024)) @@ -4220,7 +4216,7 @@ errr init_k_info_txt(FILE *fp, char *buf) if (i <= error_idx) return (4); /* Verify information */ - if (i >= k_head->info_num) return (2); + if (i >= max_k_idx) return (2); /* Save the index */ error_idx = i; @@ -4228,17 +4224,9 @@ errr init_k_info_txt(FILE *fp, char *buf) /* Point at the "info" */ k_ptr = &k_info[i]; - /* Hack -- Verify space */ - if (k_head->name_size + strlen(s) + 8 > FAKE_NAME_SIZE) return (7); - /* Advance and Save the name index */ - if (!k_ptr->name) k_ptr->name = ++k_head->name_size; - - /* Append chars to the name */ - strcpy(k_name + k_head->name_size, s); - - /* Advance the index */ - k_head->name_size += strlen(s); + assert(!k_ptr->name); + k_ptr->name = strdup(s); /* Needed hack */ k_ptr->esp = 0; @@ -4257,27 +4245,8 @@ errr init_k_info_txt(FILE *fp, char *buf) /* Acquire the text */ s = buf + 2; - /* Hack -- Verify space */ - if (k_head->text_size + strlen(s) + 8 > FAKE_TEXT_SIZE) return (7); - - /* Advance and Save the text index */ - if (!k_ptr->text) k_ptr->text = ++k_head->text_size; - - /* Append a space if needed */ - else if (k_text[k_head->text_size - 1] != ' ') - { - /* Append chars to the name */ - strcpy(k_text + k_head->text_size, " "); - - /* Advance the index */ - k_head->text_size += 1; - } - - /* Append chars to the name */ - strcpy(k_text + k_head->text_size, s); - - /* Advance the index */ - k_head->text_size += strlen(s); + /* Append description */ + strappend(&k_ptr->text, s); /* Next... */ continue; @@ -4538,11 +4507,6 @@ errr init_k_info_txt(FILE *fp, char *buf) } - /* Complete the "name" and "text" sizes */ - ++k_head->name_size; - ++k_head->text_size; - - /* No version yet */ if (!okay) return (2); diff --git a/src/init2.cc b/src/init2.cc index deb33324..446c6412 100644 --- a/src/init2.cc +++ b/src/init2.cc @@ -355,20 +355,8 @@ static errr init_k_info(void) /* General buffer */ char buf[1024]; - - /*** Make the header ***/ - k_head = make_header(max_k_idx); - - - /*** Make the fake arrays ***/ - /* Allocate the "k_info" array */ - k_info = make_array<object_kind>(k_head->info_num); - - /* Hack -- make "fake" arrays */ - k_name = make_array<char>(FAKE_NAME_SIZE); - k_text = make_array<char>(FAKE_TEXT_SIZE); - + k_info = make_array<object_kind>(max_k_idx); /*** Load the ascii template file ***/ diff --git a/src/object1.cc b/src/object1.cc index fe38d081..34eb8ade 100644 --- a/src/object1.cc +++ b/src/object1.cc @@ -1234,7 +1234,7 @@ void object_desc(char *buf, object_type *o_ptr, int pref, int mode) indexx = o_ptr->sval; /* Extract default "base" string */ - basenm = (k_name + k_ptr->name); + basenm = k_ptr->name; /* Assume no "modifier" string */ modstr = ""; @@ -1314,7 +1314,10 @@ void object_desc(char *buf, object_type *o_ptr, int pref, int mode) else basenm = aware ? "& # Amulet~" : "& # Amulet~"; - if (known && !o_ptr->art_name && artifact_p(o_ptr)) basenm = k_ptr->name + k_name; + if (known && !o_ptr->art_name && artifact_p(o_ptr)) + { + basenm = k_ptr->name; + } break; } @@ -1334,7 +1337,10 @@ void object_desc(char *buf, object_type *o_ptr, int pref, int mode) /* Hack -- The One Ring */ if (!aware && (o_ptr->sval == SV_RING_POWER)) modstr = "Plain Gold"; - if (known && !o_ptr->art_name && artifact_p(o_ptr)) basenm = k_ptr->name + k_name; + if (known && !o_ptr->art_name && artifact_p(o_ptr)) + { + basenm = k_ptr->name; + } break; } @@ -1382,9 +1388,7 @@ void object_desc(char *buf, object_type *o_ptr, int pref, int mode) case TV_ROD_MAIN: { - object_kind *tip_ptr = &k_info[lookup_kind(TV_ROD, o_ptr->pval)]; - - modstr = k_name + tip_ptr->name; + modstr = k_info[lookup_kind(TV_ROD, o_ptr->pval)].name; break; } @@ -1573,7 +1577,7 @@ void object_desc(char *buf, object_type *o_ptr, int pref, int mode) case TV_DAEMON_BOOK: case TV_BOOK: { - basenm = k_name + k_ptr->name; + basenm = k_ptr->name; if (o_ptr->sval == 255) { modstr = spell_type_name(spell_at(o_ptr->pval)); @@ -1590,7 +1594,10 @@ void object_desc(char *buf, object_type *o_ptr, int pref, int mode) } /* Mega Hack */ - if ((!hack_name) && known && (k_ptr->flags5 & TR5_FULL_NAME)) basenm = (k_name + k_ptr->name); + if ((!hack_name) && known && (k_ptr->flags5 & TR5_FULL_NAME)) + { + basenm = k_ptr->name; + } /* Start dumping the result */ @@ -1860,7 +1867,9 @@ void object_desc(char *buf, object_type *o_ptr, int pref, int mode) } } else - t = object_desc_str(t, (k_name + k_ptr->name)); + { + t = object_desc_str(t, k_ptr->name); + } } /* Hack -- Append "Artifact" or "Special" names */ @@ -2457,8 +2466,8 @@ cptr item_activation(object_type *o_ptr, byte num) mana = o_ptr->pval2 >> 8; } sprintf(rspell[num], "runespell(%s, %s, %d) every %d turns", - k_info[lookup_kind(TV_RUNE1, gf)].name + k_name, - k_info[lookup_kind(TV_RUNE2, mod)].name + k_name, + k_info[lookup_kind(TV_RUNE1, gf)].name, + k_info[lookup_kind(TV_RUNE2, mod)].name, mana, mana * 5); return rspell[num]; } @@ -2827,7 +2836,7 @@ bool_ object_out_desc(object_type *o_ptr, FILE *fff, bool_ trim_down, bool_ wait { object_kind *k_ptr = &k_info[o_ptr->k_idx]; - text_out_c(TERM_ORANGE, k_text + k_ptr->text); + text_out_c(TERM_ORANGE, k_ptr->text); text_out("\n"); } diff --git a/src/types.h b/src/types.h index b6ddbf36..c207614b 100644 --- a/src/types.h +++ b/src/types.h @@ -128,8 +128,8 @@ typedef struct object_kind object_kind; struct object_kind { - u32b name; /* Name (offset) */ - u32b text; /* Text (offset) */ + const char *name; /* Name */ + char *text; /* Text */ byte tval; /* Object type */ byte sval; /* Object sub type */ diff --git a/src/util.cc b/src/util.cc index f4f03d0c..d2388c4f 100644 --- a/src/util.cc +++ b/src/util.cc @@ -3405,9 +3405,8 @@ int test_item_name(cptr name) for (i = 1; i < max_k_idx; i++) { object_kind *k_ptr = &k_info[i]; - cptr obj_name = k_name + k_ptr->name; /* If name matches, give us the number */ - if (iequals(name, obj_name)) return (i); + if (k_ptr->name && iequals(name, k_ptr->name)) return (i); } return (0); } diff --git a/src/wizard1.cc b/src/wizard1.cc index 3f68a5ea..a21b4d5b 100644 --- a/src/wizard1.cc +++ b/src/wizard1.cc @@ -2486,7 +2486,7 @@ static void spoil_bateries(cptr fname) ) { spoil_out(format(" %d essences of %s\n", alchemist_recipes[j].qty, - k_name + k_info[lookup_kind(TV_BATERIE, alchemist_recipes[j].sval_essence)].name)); + k_info[lookup_kind(TV_BATERIE, alchemist_recipes[j].sval_essence)].name)); } } } @@ -2531,7 +2531,7 @@ static void spoil_bateries(cptr fname) } /* print essence required*/ spoil_out(format(" %d %s", ar_ptr->qty, - k_name + k_info[lookup_kind(TV_BATERIE, ar_ptr->sval_essence)].name)); + k_info[lookup_kind(TV_BATERIE, ar_ptr->sval_essence)].name)); } spoil_out(NULL); diff --git a/src/wizard2.cc b/src/wizard2.cc index a052fb5d..acfefd0c 100644 --- a/src/wizard2.cc +++ b/src/wizard2.cc @@ -541,7 +541,7 @@ static void strip_name(char *buf, int k_idx) object_kind *k_ptr = &k_info[k_idx]; - cptr str = (k_name + k_ptr->name); + cptr str = k_ptr->name; /* Skip past leading characters */ diff --git a/src/xtra2.cc b/src/xtra2.cc index f972299f..bd8e3736 100644 --- a/src/xtra2.cc +++ b/src/xtra2.cc @@ -4633,7 +4633,6 @@ static int target_set_aux(int y, int x, int mode, cptr info) if ((feat == FEAT_FOUNTAIN) && (c_ptr->info & CAVE_IDNT)) { - object_kind *k_ptr; int tv, sv; if (c_ptr->special <= SV_POTION_LAST) @@ -4647,8 +4646,7 @@ static int target_set_aux(int y, int x, int mode, cptr info) sv = c_ptr->special - SV_POTION_LAST; } - k_ptr = &k_info[lookup_kind(tv, sv)]; - info = k_name + k_ptr->name; + info = k_info[lookup_kind(tv, sv)].name; } /* Display a message */ |