summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBardur Arantsson <bardur@scientician.net>2015-02-23 09:11:58 +0100
committerBardur Arantsson <bardur@scientician.net>2015-02-23 09:11:58 +0100
commitde5ee3b24f035efe3da8260687200109302f350a (patch)
tree26885e50701ec8a119f4f25ff98ad69fc2ca0ed6
parent8e89f38f28fd5c7dff91732807a591eaefbc36c0 (diff)
Remove d_head, d_name, d_text
-rw-r--r--src/cmd1.cc2
-rw-r--r--src/cmd2.cc3
-rw-r--r--src/cmd4.cc4
-rw-r--r--src/cmd6.cc2
-rw-r--r--src/externs.h3
-rw-r--r--src/files.cc10
-rw-r--r--src/init1.cc39
-rw-r--r--src/init2.cc14
-rw-r--r--src/object1.cc12
-rw-r--r--src/spells1.cc3
-rw-r--r--src/spells2.cc8
-rw-r--r--src/types.h4
-rw-r--r--src/variable.cc3
-rw-r--r--src/wizard2.cc2
-rw-r--r--src/xtra2.cc2
15 files changed, 42 insertions, 69 deletions
diff --git a/src/cmd1.cc b/src/cmd1.cc
index b4c2d8e5..da3529ee 100644
--- a/src/cmd1.cc
+++ b/src/cmd1.cc
@@ -3425,7 +3425,7 @@ void move_player_aux(int dir, int do_pickup, int run, bool_ disarm)
/* Mega-hack for dungeon branches */
if ((feat == FEAT_MORE) && c_ptr->special)
{
- msg_format("There is %s", d_text + d_info[c_ptr->special].text);
+ msg_format("There is %s", d_info[c_ptr->special].text);
}
else
{
diff --git a/src/cmd2.cc b/src/cmd2.cc
index 5aa6d233..0cbf73df 100644
--- a/src/cmd2.cc
+++ b/src/cmd2.cc
@@ -507,8 +507,7 @@ void do_cmd_go_down(void)
dun_level = d_ptr->mindepth;
}
- msg_format("You go into %s",
- d_text + d_info[dungeon_type].text);
+ msg_format("You go into %s", d_info[dungeon_type].text);
}
else
{
diff --git a/src/cmd4.cc b/src/cmd4.cc
index 771c9f8d..dc437272 100644
--- a/src/cmd4.cc
+++ b/src/cmd4.cc
@@ -3856,7 +3856,7 @@ static void do_cmd_knowledge_dungeons(void)
/* Describe the recall depth */
fprintf(fff, " %c%s: Level %d (%d')\n",
(p_ptr->recall_dungeon == y) ? '*' : ' ',
- d_name + d_info[y].name,
+ d_info[y].name,
max_dlv[y], 50 * (max_dlv[y]));
}
}
@@ -3908,7 +3908,7 @@ void do_cmd_knowledge_towns(void)
/* Describe the dungeon town */
fprintf(fff, " %s: Level %d (%d')\n",
- d_name + d_ptr->name,
+ d_ptr->name,
d_ptr->t_level[j],
50 * d_ptr->t_level[j]);
}
diff --git a/src/cmd6.cc b/src/cmd6.cc
index 9818cf33..12e8d53d 100644
--- a/src/cmd6.cc
+++ b/src/cmd6.cc
@@ -2978,7 +2978,7 @@ void do_cmd_read_scroll(void)
}
msg_format("Recall reset to %s at level %d.",
- d_info[p_ptr->recall_dungeon].name + d_name,
+ d_info[p_ptr->recall_dungeon].name,
max_dlv[p_ptr->recall_dungeon]);
ident = TRUE;
diff --git a/src/externs.h b/src/externs.h
index 60a7b650..a9230759 100644
--- a/src/externs.h
+++ b/src/externs.h
@@ -334,10 +334,7 @@ extern randart_part_type *ra_info;
extern randart_gen_type ra_gen[30];
extern monster_race *r_info;
extern monster_ego *re_info;
-extern header *d_head;
extern dungeon_info_type *d_info;
-extern char *d_name;
-extern char *d_text;
extern header *c_head;
extern player_class *class_info;
extern char *c_name;
diff --git a/src/files.cc b/src/files.cc
index f9d83539..396883f5 100644
--- a/src/files.cc
+++ b/src/files.cc
@@ -2288,11 +2288,17 @@ cptr describe_player_location()
int feat = wild_map[pwy][pwx].feat;
if (dungeon_type != DUNGEON_WILDERNESS && dun_level > 0)
- sprintf(desc, "on level %d of %s", dun_level, d_info[dungeon_type].name + d_name);
+ {
+ sprintf(desc, "on level %d of %s", dun_level, d_info[dungeon_type].name);
+ }
else if (wf_info[feat].terrain_idx == TERRAIN_TOWN)
+ {
sprintf(desc, "in the town of %s", wf_info[feat].name + wf_name);
+ }
else if (wf_info[feat].entrance)
+ {
sprintf(desc, "near %s", wf_info[feat].name + wf_name);
+ }
else
{
/*
@@ -2642,7 +2648,7 @@ errr file_character(cptr name, bool_ full)
{
if (max_dlv[y])
fprintf(fff, "\n %s: Level %d (%d')",
- d_name + d_info[y].name,
+ d_info[y].name,
max_dlv[y], 50 * (max_dlv[y]));
}
fprintf(fff, "\n");
diff --git a/src/init1.cc b/src/init1.cc
index ad1cda4c..5dc7358a 100644
--- a/src/init1.cc
+++ b/src/init1.cc
@@ -8943,11 +8943,6 @@ errr init_d_info_txt(FILE *fp, char *buf)
/* Just before the first line */
error_line = -1;
-
- /* Start the "fake" stuff */
- d_head->name_size = 0;
- d_head->text_size = 0;
-
/* Parse */
fp_stack_init(fp);
while (0 == my_fgets_dostack(buf, 1024))
@@ -9009,7 +9004,7 @@ errr init_d_info_txt(FILE *fp, char *buf)
if (i < error_idx) return (4);
/* Verify information */
- if (i >= d_head->info_num) return (2);
+ if (i >= max_d_idx) return (2);
/* Save the index */
error_idx = i;
@@ -9017,17 +9012,12 @@ errr init_d_info_txt(FILE *fp, char *buf)
/* Point at the "info" */
d_ptr = &d_info[i];
- /* Hack -- Verify space */
- if (d_head->name_size + strlen(s) + 8 > FAKE_NAME_SIZE) return (7);
-
- /* Advance and Save the name index */
- if (!d_ptr->name) d_ptr->name = ++d_head->name_size;
-
- /* Append chars to the name */
- strcpy(d_name + d_head->name_size, s);
+ /* Copy name */
+ assert(!d_ptr->name);
+ d_ptr->name = my_strdup(s);
- /* Advance the index */
- d_head->name_size += strlen(s);
+ /* Initialize description */
+ d_ptr->text = my_strdup("");
/* HACK -- Those ones HAVE to have a set default value */
d_ptr->size_x = -1;
@@ -9076,17 +9066,8 @@ errr init_d_info_txt(FILE *fp, char *buf)
/* Acquire the text */
s = buf + 6;
- /* Hack -- Verify space */
- if (d_head->text_size + strlen(s) + 8 > FAKE_TEXT_SIZE) return (7);
-
- /* Advance and Save the text index */
- if (!d_ptr->text) d_ptr->text = ++d_head->text_size;
-
- /* Append chars to the name */
- strcpy(d_text + d_head->text_size, s);
-
- /* Advance the index */
- d_head->text_size += strlen(s);
+ /* Append to description */
+ strappend(&d_ptr->text, s);
/* Next... */
continue;
@@ -9500,10 +9481,6 @@ errr init_d_info_txt(FILE *fp, char *buf)
}
- /* Complete the "name" and "text" sizes */
- ++d_head->name_size;
- ++d_head->text_size;
-
/* No version yet */
if (!okay) return (2);
diff --git a/src/init2.cc b/src/init2.cc
index 88ef7822..009a88d7 100644
--- a/src/init2.cc
+++ b/src/init2.cc
@@ -923,20 +923,8 @@ static errr init_d_info(void)
/* General buffer */
char buf[1024];
-
- /*** Make the header ***/
- d_head = make_header(max_d_idx);
-
-
- /*** Make the fake arrays ***/
-
/* Allocate the "d_info" array */
- d_info = make_array<dungeon_info_type>(d_head->info_num);
-
- /* Hack -- make "fake" arrays */
- d_name = make_array<char>(FAKE_NAME_SIZE);
- d_text = make_array<char>(FAKE_TEXT_SIZE);
-
+ d_info = make_array<dungeon_info_type>(max_d_idx);
/*** Load the ascii template file ***/
diff --git a/src/object1.cc b/src/object1.cc
index 6346a492..85328bfe 100644
--- a/src/object1.cc
+++ b/src/object1.cc
@@ -2763,15 +2763,25 @@ static cptr object_out_desc_where_found(s16b level, s16b dungeon)
static char str[80];
if (dungeon == DUNGEON_WILDERNESS)
+ {
/* Taking care of older objects */
if (level == 0)
+ {
sprintf(str, "in the wilderness or in a town");
+ }
else if (wf_info[level].terrain_idx == TERRAIN_TOWN)
+ {
sprintf(str, "in the town of %s", wf_info[level].name + wf_name);
+ }
else
+ {
sprintf(str, "in %s", wf_info[level].text + wf_text);
+ }
+ }
else
- sprintf(str, "on level %d of %s", level, d_info[dungeon].name + d_name);
+ {
+ sprintf(str, "on level %d of %s", level, d_info[dungeon].name);
+ }
return str;
}
diff --git a/src/spells1.cc b/src/spells1.cc
index c38da910..dd69dfc8 100644
--- a/src/spells1.cc
+++ b/src/spells1.cc
@@ -7253,8 +7253,7 @@ static bool_ project_p(int who, int r, int y, int x, int dam, int typ, int a_rad
/* Did the dungeon do it? */
if (who == -100)
{
- sprintf(killer, "%s",
- d_name + d_info[dungeon_type].name);
+ sprintf(killer, "%s", d_info[dungeon_type].name);
}
if (who == -101)
{
diff --git a/src/spells2.cc b/src/spells2.cc
index fe2e90a5..2c402ffc 100644
--- a/src/spells2.cc
+++ b/src/spells2.cc
@@ -7847,7 +7847,7 @@ static void print_dungeon_batch(std::vector<int> const &dungeon_idxs,
{
dungeon_info_type *d_ptr = &d_info[dungeon_idxs[j]];
- strnfmt(buf, 80, " %c) %-30s", I2A(i), d_name + d_ptr->name);
+ strnfmt(buf, 80, " %c) %-30s", I2A(i), d_ptr->name);
if (mode)
{
if (d_ptr->min_plev > p_ptr->lev)
@@ -7934,14 +7934,14 @@ int reset_recall_aux()
{
char buf[80], buf2[80];
- strcpy(buf, (d_info[p_ptr->recall_dungeon].name + d_name));
+ strcpy(buf, d_info[p_ptr->recall_dungeon].name);
if (!get_string("Which dungeon? ", buf, 79)) continue;
/* Find the index corresponding to the name */
int i;
for (i = 1; i < max_d_idx; i++)
{
- sprintf(buf2, "%s", d_info[i].name + d_name);
+ sprintf(buf2, "%s", d_info[i].name);
/* Lowercase the name */
strlower(buf);
@@ -8019,7 +8019,7 @@ bool_ reset_recall(bool_ no_trepas_max_depth)
else
max = max_dlv[dun];
depth = get_quantity(format("Which level in %s(%d-%d)? ",
- d_info[dun].name + d_name,
+ d_info[dun].name,
d_info[dun].mindepth, max),
max);
diff --git a/src/types.h b/src/types.h
index 548aa6b8..d475d879 100644
--- a/src/types.h
+++ b/src/types.h
@@ -2021,8 +2021,8 @@ struct rule_type
typedef struct dungeon_info_type dungeon_info_type;
struct dungeon_info_type
{
- u32b name; /* Name */
- u32b text; /* Description */
+ const char *name; /* Name */
+ char *text; /* Description */
char short_name[3]; /* Short name */
char generator[30]; /* Name of the level generator */
diff --git a/src/variable.cc b/src/variable.cc
index cbd160cb..0da55623 100644
--- a/src/variable.cc
+++ b/src/variable.cc
@@ -657,10 +657,7 @@ monster_ego *re_info;
/*
* The dungeon types arrays
*/
-header *d_head;
dungeon_info_type *d_info;
-char *d_name;
-char *d_text;
/*
* Player abilities arrays
diff --git a/src/wizard2.cc b/src/wizard2.cc
index fa223ffe..5adcd26a 100644
--- a/src/wizard2.cc
+++ b/src/wizard2.cc
@@ -1661,7 +1661,7 @@ void do_cmd_debug()
{
dungeon_type = command_arg;
dun_level = d_info[dungeon_type].mindepth;
- msg_format("You go into %s", d_text + d_info[dungeon_type].text);
+ msg_format("You go into %s", d_info[dungeon_type].text);
/* Leaving */
p_ptr->leaving = TRUE;
diff --git a/src/xtra2.cc b/src/xtra2.cc
index 7bd8c0bf..d3a6cc63 100644
--- a/src/xtra2.cc
+++ b/src/xtra2.cc
@@ -4492,7 +4492,7 @@ static int target_set_aux(int y, int x, int mode, cptr info)
if ((feat == FEAT_MORE) && c_ptr->special)
{
s3 = "";
- name = d_text + d_info[c_ptr->special].text;
+ name = d_info[c_ptr->special].text;
}
if (p_ptr->wild_mode && (feat == FEAT_TOWN))