summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBardur Arantsson <bardur@scientician.net>2015-02-23 09:11:57 +0100
committerBardur Arantsson <bardur@scientician.net>2015-02-23 09:11:57 +0100
commit4b6f8d810f5ad513bea8fada09be01dde0fd643c (patch)
tree380e3b41ad48424ecf48d1af7bbd11f17cbdd6db
parentc4746c0f6d328baa429c96e54d86d2d7f97ccbcc (diff)
Remove k_name, k_text, k_head in favor of simple strings
-rw-r--r--src/cmd4.cc4
-rw-r--r--src/cmd7.cc14
-rw-r--r--src/externs.h3
-rw-r--r--src/init1.cc46
-rw-r--r--src/init2.cc14
-rw-r--r--src/object1.cc33
-rw-r--r--src/types.h4
-rw-r--r--src/util.cc3
-rw-r--r--src/wizard1.cc4
-rw-r--r--src/wizard2.cc2
-rw-r--r--src/xtra2.cc4
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 */