From 6be49f6bbc97b009200844fd8f3d6f8f07dacacf Mon Sep 17 00:00:00 2001 From: haranp Date: Fri, 13 Apr 2007 08:03:10 +0000 Subject: More naming fixes. We should integrate helmets somehow. git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@1292 c06c8d41-db1a-0410-9941-cceddc491573 --- crawl-ref/source/itemname.cc | 5 +- crawl-ref/source/itemprop.cc | 58 ++++++++++--- crawl-ref/source/itemprop.h | 4 +- crawl-ref/source/newgame.cc | 4 +- crawl-ref/source/randart.cc | 198 ++----------------------------------------- crawl-ref/source/randart.h | 7 -- crawl-ref/source/skills2.cc | 2 +- 7 files changed, 60 insertions(+), 218 deletions(-) (limited to 'crawl-ref') diff --git a/crawl-ref/source/itemname.cc b/crawl-ref/source/itemname.cc index 187e0dd6e5..2332515fad 100644 --- a/crawl-ref/source/itemname.cc +++ b/crawl-ref/source/itemname.cc @@ -481,7 +481,7 @@ static const char *item_name_2( strncat(buff, "vampiric ", ITEMNAME_SIZE ); } // end if - strncat(buff, item_base_name(item), ITEMNAME_SIZE); + strncat(buff, item_base_name(item).c_str(), ITEMNAME_SIZE); if (item_type_known( item )) { @@ -718,8 +718,7 @@ static const char *item_name_2( break; } // end switch - standard_name_armour( item, tmp_buff ); // in randart.cc - strncat( buff, tmp_buff, ITEMNAME_SIZE ); + strncat( buff, item_base_name(item).c_str(), ITEMNAME_SIZE ); sparm = get_armour_ego_type( item ); diff --git a/crawl-ref/source/itemprop.cc b/crawl-ref/source/itemprop.cc index 7980a564f4..00bef2feaa 100644 --- a/crawl-ref/source/itemprop.cc +++ b/crawl-ref/source/itemprop.cc @@ -2086,23 +2086,57 @@ bool is_shield_incompatible(const item_def &weapon, const item_def *shield) && !is_range_weapon(weapon); } -const char* item_base_name(const item_def &item) +std::string item_base_name(const item_def &item) { - return item_base_name(static_cast(item.base_type), - item.sub_type); -} - -const char* item_base_name(object_class_type basetype, unsigned char subtype) -{ - switch (basetype) + switch ( item.base_type ) { case OBJ_WEAPONS: - return Weapon_prop[Weapon_index[subtype]].name; - case OBJ_ARMOUR: - return Armour_prop[Armour_index[subtype]].name; + return Weapon_prop[Weapon_index[item.sub_type]].name; case OBJ_MISSILES: - return Missile_prop[Missile_index[subtype]].name; + return Missile_prop[Missile_index[item.sub_type]].name; + case OBJ_ARMOUR: + if ( item.sub_type != ARM_HELMET ) + { + return Armour_prop[Armour_index[item.sub_type]].name; + } + else + { + std::string result; + if (get_helmet_type(item) == THELM_HELM || + get_helmet_type(item) == THELM_HELMET) + { + const short dhelm = get_helmet_desc( item ); + + result += + (dhelm == THELM_DESC_PLAIN) ? "" : + (dhelm == THELM_DESC_WINGED) ? "winged " : + (dhelm == THELM_DESC_HORNED) ? "horned " : + (dhelm == THELM_DESC_CRESTED) ? "crested " : + (dhelm == THELM_DESC_PLUMED) ? "plumed " : + (dhelm == THELM_DESC_SPIKED) ? "spiked " : + (dhelm == THELM_DESC_VISORED) ? "visored " : + (dhelm == THELM_DESC_JEWELLED) ? "jeweled " + : "buggy "; + } + + const short helm_type = get_helmet_type( item ); + if (helm_type == THELM_HELM) + result += "helm"; + else if (helm_type == THELM_CAP) + result += "cap"; + else if (helm_type == THELM_WIZARD_HAT) + result += "wizard's hat"; + else + result += "helmet"; + + return result; + } default: return ""; } } + +const char* weapon_base_name(unsigned char subtype) +{ + return Weapon_prop[Weapon_index[subtype]].name; +} diff --git a/crawl-ref/source/itemprop.h b/crawl-ref/source/itemprop.h index 897eb3ef28..5536355779 100644 --- a/crawl-ref/source/itemprop.h +++ b/crawl-ref/source/itemprop.h @@ -146,7 +146,7 @@ bool is_shield_incompatible(const item_def &weapon, const item_def *shield = NULL); // Only works for armour/weapons/missiles -const char* item_base_name(const item_def &item); -const char* item_base_name(object_class_type basetype, unsigned char subtype); +std::string item_base_name(const item_def &item); +const char* weapon_base_name(unsigned char subtype); #endif diff --git a/crawl-ref/source/newgame.cc b/crawl-ref/source/newgame.cc index 40c49276f5..c1e9b284f8 100644 --- a/crawl-ref/source/newgame.cc +++ b/crawl-ref/source/newgame.cc @@ -1543,7 +1543,7 @@ static void choose_weapon( void ) { int x = effective_stat_bonus(startwep[i]); cprintf("%c - %s%s" EOL, 'a' + i, - item_base_name(OBJ_WEAPONS, startwep[i]), + weapon_base_name(startwep[i]), (x <= -4) ? " (not ideal)" : "" ); if (Options.prev_weapon == startwep[i]) @@ -1558,7 +1558,7 @@ static void choose_weapon( void ) { cprintf("; Enter - %s", Options.prev_weapon == WPN_RANDOM ? "Random" : - item_base_name(OBJ_WEAPONS, Options.prev_weapon)); + weapon_base_name(Options.prev_weapon)); } cprintf(EOL); diff --git a/crawl-ref/source/randart.cc b/crawl-ref/source/randart.cc index afb90c5c26..e9982e07dd 100644 --- a/crawl-ref/source/randart.cc +++ b/crawl-ref/source/randart.cc @@ -1265,14 +1265,14 @@ const char *randart_name( const item_def &item ) case 20: strcat(art_n, "shiny "); break; } - strcat(art_n, item_base_name(item)); + strcat(art_n, item_base_name(item).c_str()); pop_rng_state(); return (art_n); } if (coinflip()) { - strcat(art_n, item_base_name(item)); + strcat(art_n, item_base_name(item).c_str()); strcat(art_n, rand_wpn_names[random2(390)]); } else @@ -1280,7 +1280,7 @@ const char *randart_name( const item_def &item ) char st_p[ITEMNAME_SIZE]; make_name(random_int(), false, st_p); - strcat(art_n, item_base_name(item)); + strcat(art_n, item_base_name(item).c_str()); if (one_chance_in(3)) { @@ -1344,29 +1344,22 @@ const char *randart_armour_name( const item_def &item ) case 19: strcat(art_n, "steaming "); break; case 20: strcat(art_n, "shiny "); break; } - char st_p3[ITEMNAME_SIZE]; - - standard_name_armour(item, st_p3); - strcat(art_n, st_p3); + strcat(art_n, item_base_name(item).c_str()); pop_rng_state(); return (art_n); } - char st_p[ITEMNAME_SIZE]; - if (coinflip()) { - standard_name_armour(item, st_p); - strcat(art_n, st_p); + strcat(art_n, item_base_name(item).c_str()); strcat(art_n, rand_armour_names[random2(71)]); } else { - char st_p2[ITEMNAME_SIZE]; + char st_p[ITEMNAME_SIZE]; make_name(random_int(), false, st_p); - standard_name_armour(item, st_p2); - strcat(art_n, st_p2); + strcat(art_n, item_base_name(item).c_str()); if (one_chance_in(3)) { strcat(art_n, " of "); @@ -1729,180 +1722,3 @@ const char *unrandart_descrip( char which_descrip, const item_def &item ) (which_descrip == 2) ? unrand->spec_descrip3 : "Unknown."); } // end unrandart_descrip() - -void standard_name_armour( const item_def &item, char glorg[ITEMNAME_SIZE] ) -{ - short helm_type; - - glorg[0] = 0; - - switch (item.sub_type) - { - case ARM_ROBE: - strcat(glorg, "robe"); - break; - - case ARM_LEATHER_ARMOUR: - strcat(glorg, "leather armour"); - break; - - case ARM_RING_MAIL: - strcat(glorg, "ring mail"); - break; - - case ARM_SCALE_MAIL: - strcat(glorg, "scale mail"); - break; - - case ARM_CHAIN_MAIL: - strcat(glorg, "chain mail"); - break; - - case ARM_SPLINT_MAIL: - strcat(glorg, "splint mail"); - break; - - case ARM_BANDED_MAIL: - strcat(glorg, "banded mail"); - break; - - case ARM_PLATE_MAIL: - strcat(glorg, "plate mail"); - break; - - case ARM_SHIELD: - strcat(glorg, "shield"); - break; - - case ARM_CLOAK: - strcat(glorg, "cloak"); - break; - - case ARM_HELMET: - if (get_helmet_type(item) == THELM_HELM - || get_helmet_type(item) == THELM_HELMET) - { - short dhelm = get_helmet_desc( item ); - - if (dhelm != THELM_DESC_PLAIN) - { - strcat( glorg, - (dhelm == THELM_DESC_WINGED) ? "winged " : - (dhelm == THELM_DESC_HORNED) ? "horned " : - (dhelm == THELM_DESC_CRESTED) ? "crested " : - (dhelm == THELM_DESC_PLUMED) ? "plumed " : - (dhelm == THELM_DESC_SPIKED) ? "spiked " : - (dhelm == THELM_DESC_VISORED) ? "visored " : - (dhelm == THELM_DESC_JEWELLED) ? "jeweled " - : "buggy " ); - } - } - - helm_type = get_helmet_type( item ); - if (helm_type == THELM_HELM) - strcat(glorg, "helm"); - else if (helm_type == THELM_CAP) - strcat(glorg, "cap"); - else if (helm_type == THELM_WIZARD_HAT) - strcat(glorg, "wizard's hat"); - else - strcat(glorg, "helmet"); - break; - - case ARM_GLOVES: - strcat(glorg, "gloves"); - break; - - case ARM_NAGA_BARDING: - strcat(glorg, "naga barding"); - break; - - case ARM_CENTAUR_BARDING: - strcat(glorg, "centaur barding"); - break; - - case ARM_BOOTS: - strcat(glorg, "boots"); - break; - - case ARM_BUCKLER: - strcat(glorg, "buckler"); - break; - - case ARM_LARGE_SHIELD: - strcat(glorg, "large shield"); - break; - - case ARM_DRAGON_HIDE: - strcat(glorg, "dragon hide"); - break; - - case ARM_TROLL_HIDE: - strcat(glorg, "troll hide"); - break; - - case ARM_CRYSTAL_PLATE_MAIL: - strcat(glorg, "crystal plate mail"); - break; - - case ARM_DRAGON_ARMOUR: - strcat(glorg, "dragon armour"); - break; - - case ARM_TROLL_LEATHER_ARMOUR: - strcat(glorg, "troll leather armour"); - break; - - case ARM_ICE_DRAGON_HIDE: - strcat(glorg, "ice dragon hide"); - break; - - case ARM_ICE_DRAGON_ARMOUR: - strcat(glorg, "ice dragon armour"); - break; - - case ARM_STEAM_DRAGON_HIDE: - strcat(glorg, "steam dragon hide"); - break; - - case ARM_STEAM_DRAGON_ARMOUR: - strcat(glorg, "steam dragon armour"); - break; - - case ARM_MOTTLED_DRAGON_HIDE: - strcat(glorg, "mottled dragon hide"); - break; - - case ARM_MOTTLED_DRAGON_ARMOUR: - strcat(glorg, "mottled dragon armour"); - break; - - case ARM_STORM_DRAGON_HIDE: - strcat(glorg, "storm dragon hide"); - break; - - case ARM_STORM_DRAGON_ARMOUR: - strcat(glorg, "storm dragon armour"); - break; - - case ARM_GOLD_DRAGON_HIDE: - strcat(glorg, "gold dragon hide"); - break; - - case ARM_GOLD_DRAGON_ARMOUR: - strcat(glorg, "gold dragon armour"); - break; - - case ARM_ANIMAL_SKIN: - strcat(glorg, "animal skin"); - break; - - case ARM_SWAMP_DRAGON_HIDE: - strcat(glorg, "swamp dragon hide"); - break; - - case ARM_SWAMP_DRAGON_ARMOUR: - strcat(glorg, "swamp dragon armour"); - break; - } -} // end standard_name_armour() diff --git a/crawl-ref/source/randart.h b/crawl-ref/source/randart.h index 5ea7eabe67..48dc10ef84 100644 --- a/crawl-ref/source/randart.h +++ b/crawl-ref/source/randart.h @@ -77,18 +77,11 @@ bool make_item_fixed_artefact( item_def &item, bool in_abyss, int which = 0 ); bool make_item_randart( item_def &item ); bool make_item_unrandart( item_def &item, int unrand_index ); - /* *********************************************************************** * called from: files - newgame * *********************************************************************** */ void set_unrandart_exist(int whun, bool is_exist); - -/* *********************************************************************** - * called from: itemname - * *********************************************************************** */ -void standard_name_armour( const item_def &item, char glorg[ITEMNAME_SIZE] ); - /* *********************************************************************** * called from: items * *********************************************************************** */ diff --git a/crawl-ref/source/skills2.cc b/crawl-ref/source/skills2.cc index 7564251801..60041b08d7 100644 --- a/crawl-ref/source/skills2.cc +++ b/crawl-ref/source/skills2.cc @@ -2337,7 +2337,7 @@ void wield_warning(bool newWeapon) return; // put the standard wep name in. - strcat(wepstr, item_base_name(wep)); + strcat(wepstr, item_base_name(wep).c_str()); // only warn about str/dex for non-launcher weapons if (!is_range_weapon( wep )) -- cgit v1.2.3-54-g00ecf