From de5ee3b24f035efe3da8260687200109302f350a Mon Sep 17 00:00:00 2001 From: Bardur Arantsson Date: Mon, 23 Feb 2015 09:11:58 +0100 Subject: Remove d_head, d_name, d_text --- src/cmd1.cc | 2 +- src/cmd2.cc | 3 +-- src/cmd4.cc | 4 ++-- src/cmd6.cc | 2 +- src/externs.h | 3 --- src/files.cc | 10 ++++++++-- src/init1.cc | 39 ++++++++------------------------------- src/init2.cc | 14 +------------- src/object1.cc | 12 +++++++++++- src/spells1.cc | 3 +-- src/spells2.cc | 8 ++++---- src/types.h | 4 ++-- src/variable.cc | 3 --- src/wizard2.cc | 2 +- src/xtra2.cc | 2 +- 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(d_head->info_num); - - /* Hack -- make "fake" arrays */ - d_name = make_array(FAKE_NAME_SIZE); - d_text = make_array(FAKE_TEXT_SIZE); - + d_info = make_array(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 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)) -- cgit v1.2.3