long descriptions of features. For example, "An ice covered rock wall" instead of "A rock wall". See dat/icecave.des function ice_cave_feat_descs() for examples.
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@7992 c06c8d41-db1a-0410-9941-cceddc491573
LJPUO3NNFABVOQOBA5LUDNT2R5H4LMP6TPJBNVJ7VJBERCBYZIXQC J7VTRSN2BLWL7QJMHG73LBUOUL6WNNT2ZAVEDMGYB6SDX3L5GGYQC 55PFDYPVE6JVGDYPCFUE4XS2523PVSV4CSIFRW6A2GGX4I6VWRWQC K2GMFKXUWN5R3KCW6OYVXHN47MIQZKEEIOSAU6LFFKBNKF6JBVWAC ZLQAAP55CJ77XIJN3DZVPT4GTTVLIBFJLIJJKI6L5UBSHX7VUK6AC QEEJFAETO6B2J4IWDIDCJ5UNIFNNHHG22IWF2CUJRTJJBNE47CWQC AUXHSGS4EFOPZ6TVZYWNVOUDO7NYKUKE3HBKGQQWTALSVFOE3HAAC 7Y5HSDFKA5TPLS2TWTRFMQVX6UXUDHXU5MUMXQSDFAIY4THQ3BIQC TLO257LZSB6ZO36STDUEWJBO2LETXFKTFGXELA6Y4BZBVAEIIINAC ED62QWGKBPORWVKDFOQRKJXEIWZVNGR3O4KWQBDSRNPT36AYOQYAC K2CS6TCX2NDVL2ASEHGP4J4K4IJ6FP3ANNKTSIWVG43HPYSBX6ZQC GQL5SIGBHLU3FMCE54XVGLRY5AZHRM6DUEB722REA2DPLGJSN6EQC O7S3ILRELHICJXXTDGMF7KPPZWYHPYCNDPV2I77FZXXH4I454B4QC AYYQVALBAAKFK5U52WGHWE2N7LCVZM3BGRADPVJQWOFLS2TXK6QAC SDLKLUNFGVKDS55DDJZCBAVIB7NL3RRYPTACAY65SCUQKV6APFSAC 23I5KJ245D43B6QYWS4TDQYJO2W2PKTDCLFBWPVAFDWS6L7NMGKQC RPOZZWKG5GLPHVZZ7ZKMKS64ZMV2LDCQSARBJFJ6FZOTOKCQO7FAC UEI5JAVCMN7Y2SACTEZPZSNFJWOJTC55G24Q6LKQCT4XNDH5ZQIAC TGJZXTUIAKCFZQJ54ZQEBGFBVZSJCAX6AWDRSH3TP7UJRLGUM5SAC CK7CT5TUFUL2AQY7FUHB5JI3FC2KSPWUWHXC6VEUJJ7G4OWUQFTAC 5BJPWUPLJFS34FUTFJVKA4A52YMIGV6EWDXLNSDCWBJWBGVSQFGQC CRX4RG35C3DH57NIXCW4CG4X7SBMSX7TAJR2BAFQ4LQKCLYUNANQC 4RFKVDJKTCRBZU6WPJ2E5OVI5IRPY3UTRPOBLC5QHY4CQJJTLZKQC YFIVTYI7PMVAXV23DUPXPAQNEY3YSFIXQGSN32I3WVHMMD5XS5DQC DI5OZPCY3TZSSYQSVB54IIES42RYAHMCW2S7CEXRN6WGAJ32IZUQC }static int dgn_set_feature_desc_short(lua_State *ls){const std::string base_name = luaL_checkstring(ls, 1);const std::string desc = luaL_checkstring(ls, 2);if (base_name.empty()){luaL_argerror(ls, 1, "Base name can't be empty");return (0);}set_feature_desc_short(base_name, desc);return (0);
static int dgn_set_feature_desc_long(lua_State *ls){const std::string raw_name = luaL_checkstring(ls, 1);const std::string desc = luaL_checkstring(ls, 2);if (raw_name.empty()){luaL_argerror(ls, 1, "Raw name can't be empty");return (0);}set_feature_desc_long(raw_name, desc);return (0);}
std::string raw_feature_description(dungeon_feature_type grid,trap_type trap, bool base_desc){std::string base_str = _base_feature_desc(grid, trap);if (base_desc)return (base_str);desc_map::iterator i = base_desc_to_short.find(base_str);if (i != base_desc_to_short.end())return (i->second);return (base_str);}void set_feature_desc_short(dungeon_feature_type grid,const std::string &desc){set_feature_desc_short(_base_feature_desc(grid, NUM_TRAPS), desc);}void set_feature_desc_short(const std::string &base_name,const std::string &_desc){ASSERT(!base_name.empty());CrawlHashTable &props = env.properties;if (!props.exists(SHORT_DESC_KEY))props[SHORT_DESC_KEY].new_table(SV_STR);CrawlHashTable &desc_table = props[SHORT_DESC_KEY];if (_desc.empty()){base_desc_to_short.erase(base_name);desc_table.erase(base_name);}else{std::string desc = replace_all(_desc, "$BASE", base_name);base_desc_to_short[base_name] = desc;desc_table[base_name] = desc;}}void setup_feature_descs_short(){base_desc_to_short.clear();const CrawlHashTable &props = env.properties;if (!props.exists(SHORT_DESC_KEY))return;const CrawlHashTable &desc_table = props[SHORT_DESC_KEY].get_table();CrawlHashTable::const_iterator i;for (i = desc_table.begin(); i != desc_table.end(); ++i)base_desc_to_short[i->first] = i->second.get_string();}
grd[x][y] == DNGN_ENTER_SHOP ? "A shop": desc.substr(0, desc.length() - 3);
grd[x][y] == DNGN_ENTER_SHOP ? "A shop" : desc;std::string long_desc = getLongDescription(db_name);desc += ".$$";// If we couldn't find a description in the database then see if// the feature's base name is different.if (long_desc.empty()){db_name = feature_description(pos, false, DESC_CAP_A, false, true);long_desc = getLongDescription(db_name);}bool custom_desc = false;const CrawlHashTable &props = env.properties;if (props.exists(LONG_DESC_KEY)){const CrawlHashTable &desc_table = props[LONG_DESC_KEY].get_table();// First try the modified name, then the base name.std::string key = raw_feature_description(feat);if (!desc_table.exists(key))key = raw_feature_description(feat, NUM_TRAPS, true);if (desc_table.exists(key)){long_desc = desc_table[key].get_string();custom_desc = true;}std::string quote = getQuoteString(key);if (!quote.empty())db_name = key;}desc += long_desc;
}void set_feature_desc_long(const std::string &raw_name,const std::string &desc){ASSERT(!raw_name.empty());CrawlHashTable &props = env.properties;if (!props.exists(LONG_DESC_KEY))props[LONG_DESC_KEY].new_table(SV_STR);CrawlHashTable &desc_table = props[LONG_DESC_KEY];if (desc.empty())desc_table.erase(raw_name);elsedesc_table[raw_name] = desc;
end}}{{-- Alter short feature descriptions for all ice cave destination vaults.function ice_cave_feat_descs()dgn.set_feature_desc_short("rock wall", "ice covered $BASE")dgn.set_feature_desc_short("gate leading back to the Dungeon","ice covered $BASE")dgn.set_feature_desc_short("empty arch of ancient stone","ice choked $BASE")dgn.set_feature_desc_short("Some shallow water","Some ice crusted shallow water")dgn.set_feature_desc_short("Some deep water","Some ice crusted deep water")dgn.set_feature_desc_long("Some deep water","It looks freezing!");