suggested by dolorous in BR 1977925, and turn coloured draconian corpses into plain draconian skeletons. Same when the game attempts to create coloured draconian skeletons or simulacrums.
Added autoinscription to the single inscription command ('{') - this is necessary for items with long descriptions that can't autoinscribed otherwise.
Added a small hack to make death cobs (%) appear correctly in the monster list.
The rest is cleanup, I believe.
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@5376 c06c8d41-db1a-0410-9941-cceddc491573
RX6575DZOHRUXQUZH34YZGPZJF4STUPLBQDIVTINA2L6LVCKRIGQC SYK4BXITMR2PELPHDAPTOLLHYMTBVDY7NZHBSKOR5ACB7VJUUUHAC G7Y4WKHR2FHMKCBFZXKZNT37S7YVNHTDI7CZPXEKD4QXXCR6HQWQC C7RRWT4OPLL3MLBTFYI2Z4PJX2DMS2QHKDLTLQBGR3LD6UCO6XEAC MKI4RE5PG2PMI5XJ4QQNCKMX67E3XL3LTNPRMSCBP4RZFJTBO74QC FSQYBDXMZTRQE4THPQYVTJART53KUR6SCS66X4AT6HQS2C2MOOZAC T7CUIVICB74342RA32BR37T36FOX4RBSQIB5PNOHTGTGUYGDKSTQC QXD3HX6QQ37PW6HVKIIKGFLO2ACROLUGKK66KFX7ED6SO4FDXB2AC 25CH7HH4LKXFIZ75YNMXS3TSXO6O27DYSOPLOD45K4OCNFWLS4LQC U6ILMKBXTQZYT62IGD2CALYNU4VQGRSTHN6QBFBU7BVUBHWYOEQQC K2CS6TCX2NDVL2ASEHGP4J4K4IJ6FP3ANNKTSIWVG43HPYSBX6ZQC 7MDPXLMPCFLZS6CLZBN4FN4RDNBW4Z6Q2NNPWD2N3LOW5LQISM3AC SDLKLUNFGVKDS55DDJZCBAVIB7NL3RRYPTACAY65SCUQKV6APFSAC NO2HRD7RZS42S55UG4FQ5EFQDY6WYWKGIXHUKYLWF36HHE3VZ7WAC HT2Z5ZWY5G2QVHXCKFDQT62FRNGPRRD3HHJ2UULBWRTMAJICUDGAC UZ6N6HOUPGVSPC5NQROEEDWMEGJA5XUWUY2AKH5QG65AZ25PVXDAC IE3INS4WUXZOBVXB5VWRBYPVPXADD2U2W5H3TBTOYNWJ3EGRSGQQC GPEJOT73KMACP33IPAKFR5ROGHCOIP22VXZMQNYTGLEA2OSZUM2AC 22MF6OUN62WDBJR5QFNJTKU7Q5TIQ76XWCEIRBFWAZDMZUSKJGCAC BSAKBTGIAD3JFZPNLMEI6SOJ2XPT4EJNETZYBW2555ASJTZ2GEGQC YZXHBEKWQPY4BTKG5FFGLP3AIRBQSTKQVLJJHWKQEA3HTN4UHDYQC RPOZZWKG5GLPHVZZ7ZKMKS64ZMV2LDCQSARBJFJ6FZOTOKCQO7FAC ISSEUTHG7EH3QTFLS23GXFIOQXCI5HJPJMK6GWNFMC6NDRD2H34QC 6RJVKSL7RVZIZIZIC4TWIYJQ24RUSB346ODS3NYGDHUIRTC4Z5FQC UWI3ZNJDRQRL7CXFNFEG46TA6SAK24XUFY5YOKVOTJA3VG3OBNFAC E5DMZFW6WCFAKTKKOQPYTQXZ2CGLWMVH64LRXDUI2UIG4VYUHIVQC CGYTZT5QWIEGYKUOLOK7MFXSLJKLYRZONER5ZCDZO5XYWSLG475QC CG4TL4AKSN4J7CMATZFJ5N7PSDCQXLS3QYX7PZ3K67KMMBT675OQC RBAGQ2PB7V5YAM5KSHSZR2E3MLKDSRVM5XYGI2TIXP5QMVBOQHDQC SJDOBXECX7F3ZPPVR7FPURE53D47PP2TFIF4SB6XPS456PZV3DQAC J6APXOT4QOGQFONWB7G546VTVF6QG42HVOROMHF7YBDJPR4K26OAC TZ55IZNANEJO2WDTKYWVLY2W2VV6BR7WKIN7XLNISAMMFT6LG2WQC Q3XHNSHW6FI4JCXSEABATRFBJPMCF7PXNG2K6ZQTRRPVMIZFHUBQC TM35IHKZZNBCMR3ERBS4EYHGUK5IVCPUT2JUITMT74AYAIUZSYFQC ASLW3Z5PAVZSWJEMMMVZT226P44EKSAD47QS72JIFJESAI3RPN3AC O6ZMFKDI3XO2SWPNEYHIPYFDWJR4TVDP5BAATK6LVCVETQID6E7AC K2GMFKXUWN5R3KCW6OYVXHN47MIQZKEEIOSAU6LFFKBNKF6JBVWAC HL6BR2XEXRPWBU4MQNI52H65OSJB46KOLC4R3KWNQYDEPPXBAH3AC 4UXFU3FZOCBSLDQ4S7MJKAE2H7VUHCNRDQMIY6NJ3PHYXWNGISDQC WL5WZXFJ6TONUQRSHUY4GQ5USU47ILWNN5X2JDQZO4CRJJZSRQIAC VNIAJEGE3PYE6F6EAMCQDWMAS52EQTKJUPAFXK7ARCITZ326WTTQC SGR2P5BGJIJHVSSQYQHWS4ORLVHQBZTDES3D4BFC6SVAQXSKENNQC LFBNFE3PZBXTR2ROPKYPARUWLJAYWAKGTS7VBWADZWVVSJ5CLX6AC TR4NPGNO5QNNRJNVMNSUEO5QLT37HCXXDOBKXCB5XWXRQNAJ5SHAC TV3ZC6WOZKSQQJQN26JIVKCHK6UK7WMDBYZDUYRWEAZ4JB4YVNAAC 34RCM6RXIWHZMYXNGFQKLKQIAJ6QISIQ3D5HMK4HZNLVX66BSUBAC IVVTHLTTLOP5TSULXJWUSSXHOKYWVU3OWKYVK45A7RIB6V34MYQAC Y2ZJISJRUNYX23QPPLIKKUIM7XJFNSDE5GHUE6DCGZ4RCGFNZBJAC HZK3YN3SAISTDS5JI4COBYFG7YB4ABDVENXWZZEYLFA2LDI232VAC JUNF2JNFSVAITA6XQU3CEOMP5PG4PVSHKIGFTSUCYCN4ICPEXEKAC 7YUGK5Q64KG5O7GJGTUBRRLHAHBCJ5YOE23YUPT6UBKUSB67CYAQC ITXXL3C3XOWESEDE4TXCPJSDUSITZXBKIFM52XIC3ZRDMS4ZB43AC BDFIS53HAIHOCXQ5BE7WCO2MEOFCUQPFY4JGUWVLWY6JO3IFMEKQC SSCG2FLJMUTTIRXBFSPLAUUBUIN375ZGL5UOAF3SC62ZIILSMMKAC RREJL4WZKWFEMA62AC5G5UDTOXMW4UULIQXVA5RPFASPODMHQZ7AC 547JREUJXTZNYVGHNNAET5F5O5JYYGNTDQB6ABZNT7YX5EY64OHAC KX23OEQBBLMQHTFCA4TYYEGLHCETXVZCXALYR5U5RELKJMMB66SAC 5CNYJQGEILRX2TAYBWMVECJ6D4OPV2CD6YPDIERS2SR77Z4LTZPAC 34C4U6EQWERY75GZJKUCM5KVGU2OUICETS5LGZF6RMKMZT4R5SQAC 5KJCHLIUFKRPMIVWUAYT6EOF7SW4PTQF6Y5OPEFWXGLE7DUGYLZAC 4ZAYR6K7SNJ45QYS5KLZOJ2T7OKYL4M2RY5UIIMOWRQGZLTME6UQC TX3LTXGB7TJ2QHLW2TEW6XTCTOW5A3KTZGBPBRTDTUYOZFFT3NLAC CIPVRZGLOZHCERK6YPOBV3P2E4IAB4H6D5EHLRQE2O5E4P4VCBUAC ZVRH264FGAMRHW3YAHKAZVMZ66TAZNOQQOOTPXPQXUULLM32Q4WQC SEQIMAWXQYBD6UWTK5HYN4KGLLV53HFM3LLQRSG4N5ZVZTLPR22QC Z6XF4AIERIW4U4AR3HU2ILYFZ54IK4K4ORQ6JKCEWRO5LZODWDDAC 4MPLCIJZL4YNUWK2RTKNE6N4UWNBMO5WDRKW737ENVE3RKV5LCRAC GKA3ZGZ2P6F22FDNSYNQDMCS3N7HNZD5QCOSQ6VJRAU2K5U4YYTQC UET576SVCGS2TXEDRTO7BUTOTLJ77MYHIVZJCDWGH2BAXYMKG6DAC JCWJWGMQIKQGSSFJUQRKNIWW3HBOJSHYDTOPPE5BWOJTIJTDYUTAC 74LQ7JXVLAFSHLI7LCBKFX47CNTYSKGUQSXNX5FCIUIGCC2JTR3QC U6Q43EFKHJIDBBWN6RUTOYRHHX4IT73OPBR4CWIOKUDGTCYQE5PAC HIRKGUMNJPWKSVTR6TVBPD3MWNA63CEHCLCIPWEMGDFHVB3NPLDQC JGTKZP6HCXDHEJLAONL3FNLNIZ7MUBYKXZ4CRTL46YC53TW7CBEAC LZBHBSCXDX2JKU2BSO5QP3WDHFIGHPXK4CKUZV6FWYDRFWLQK26QC JVSCP4FTW2G57C6YD5HZOZXTODGZH7TR75JQGFJBEPX3LCZH236QC 23PFLB2E4QHL5SF3Q2YV5FXRH6MFHENEU2ACVC572ZCYDXCBZVQAC LC2XZTUD56PLARIGBTDXDPJIYJNMJU446GFDGLRIFD2I4F66L6TAC E3STDXDY3HJCQBPDCGEQAXKHF2R4CQYQKINUGSS6IYPLEGJBEIKAC RQR4PTMGQLTRWLYRU3KXIIDGND7FBORESJWMWFVD3WYU5SISZXAAC P2YNOE2TUTZFAOBTHJOIVD6TCV7J7D2UKUX67LHZUL6QY44ZMENQC // case MONS_VAMPIRE:// case MONS_VAMPIRE_KNIGHT:// case MONS_VAMPIRE_MAGE:// case MONS_WIGHT:// case MONS_WRAITH:// case MONS_SHADOW_WRAITH:// case MONS_FREEZING_WRAITH:// case MONS_SPECTRAL_WARRIOR:// case MONS_SPECTRAL_THING:// case MONS_ABOMINATION_LARGE:// case MONS_TENTACLED_MONSTROSITY:// case MONS_ORB_GUARDIAN:
// case MONS_ZOMBIE_LARGE:// case MONS_SKELETON_LARGE:// case MONS_SIMULACRUM_LARGE:// case MONS_BIG_FISH:// case MONS_GIANT_GOLDFISH:// case MONS_ELECTRICAL_EEL:// case MONS_JELLYFISH:// case MONS_SWAMP_WORM:// case MONS_LAVA_WORM:// case MONS_LAVA_FISH:// case MONS_LAVA_SNAKE:// case MONS_SALAMANDER:// case MONS_ROCK_WORM:
// case MONS_KILLER_KLOWN:// case MONS_GOLD_MIMIC:// case MONS_WEAPON_MIMIC:// case MONS_ARMOUR_MIMIC:// case MONS_SCROLL_MIMIC:// case MONS_POTION_MIMIC:// case MONS_DANCING_WEAPON:// case MONS_IMP:// case MONS_QUASIT:// case MONS_WHITE_IMP:// case MONS_LEMURE:// case MONS_UFETUBUS:// case MONS_MANES:// case MONS_MIDGE:// case MONS_SHADOW_IMP:// case MONS_RED_DEVIL:// case MONS_ROTTING_DEVIL:// case MONS_HAIRY_DEVIL:// case MONS_BEAST:// case MONS_SMOKE_DEMON:// case MONS_HELLION:// case MONS_TORMENTOR:// case MONS_BLUE_DEVIL:// case MONS_IRON_DEVIL:// case MONS_NEQOXEC:// case MONS_ORANGE_DEMON:// case MONS_HELLWING:// case MONS_YNOXINUL:// case MONS_DEMONIC_CRAWLER:// case MONS_SHADOW_DEMON:// case MONS_SUN_DEMON:// case MONS_REAPER:// case MONS_SOUL_EATER:// case MONS_ICE_DEVIL:// case MONS_LOROCYPROCA:// case MONS_FIEND:// case MONS_ICE_FIEND:// case MONS_SHADOW_FIEND:// case MONS_PIT_FIEND:// case MONS_EXECUTIONER:// case MONS_GREEN_DEATH:// case MONS_BLUE_DEATH:// case MONS_BALRUG:// case MONS_CACODEMON:// case MONS_CLAY_GOLEM:// case MONS_WOOD_GOLEM:// case MONS_STONE_GOLEM:// case MONS_IRON_GOLEM:// case MONS_CRYSTAL_GOLEM:// case MONS_TOENAIL_GOLEM:// case MONS_ELECTRIC_GOLEM:// case MONS_ICE_STATUE:// case MONS_SILVER_STATUE:// case MONS_ORANGE_STATUE:// case MONS_GARGOYLE:// case MONS_METAL_GARGOYLE:// case MONS_MOLTEN_GARGOYLE:// case MONS_PANDEMONIUM_DEMON:// case MONS_BALL_LIGHTNING:// case MONS_ORB_OF_FIRE:// case MONS_VAPOUR:// case MONS_SHADOW:// case MONS_DEATH_COB:// case MONS_IJYB:// case MONS_BLORK_THE_ORC:// case MONS_URUG:// case MONS_EROLCHA:// case MONS_SNORG:
// case MONS_ANTAEUS:// case MONS_XTAHUA:// case MONS_TIAMAT:// case MONS_BORIS:// case MONS_MURRAY:// case MONS_TERENCE:// case MONS_JESSICA:// case MONS_SIGMUND:// case MONS_EDMUND:// case MONS_PSYCHE:// case MONS_DONALD:// case MONS_MICHAEL:// case MONS_JOSEPH:// case MONS_ERICA:// case MONS_JOSEPHINE:// case MONS_HAROLD:// case MONS_NORBERT:// case MONS_JOZEF:// case MONS_AGNES:// case MONS_MAUD:// case MONS_LOUISE:// case MONS_FRANCIS:// case MONS_FRANCES:// case MONS_RUPERT:// case MONS_WAYNE:// case MONS_DUANE:// case MONS_NORRIS:// case MONS_FREDERICK:// case MONS_MARGERY:// case MONS_MNOLEG:// case MONS_LOM_LOBON:// case MONS_CEREBOV:// case MONS_GLOORX_VLOQ:// case MONS_GERYON:// case MONS_DISPATER:// case MONS_ASMODEUS:// case MONS_ERESHKIGAL:
// hack -- non-dungeon zombies are always made out of nastier// monsters
// Skeletal or icy draconians shouldn't be coloured.// How could you tell?if ((cs == MONS_SKELETON_SMALL || cs == MONS_SIMULACRUM_SMALL)&& mons_genus(cls) == MONS_DRACONIAN&& cls != MONS_DRACONIAN){cls = MONS_DRACONIAN;}// Hack -- non-dungeon zombies are always made out of nastier// monsters.
case MONS_ZOMBIE_SMALL: case MONS_ZOMBIE_LARGE:result += " zombie"; break;case MONS_SKELETON_SMALL: case MONS_SKELETON_LARGE:result += " skeleton"; break;case MONS_SIMULACRUM_SMALL: case MONS_SIMULACRUM_LARGE:result += " simulacrum"; break;default: break;
case MONS_ZOMBIE_SMALL:case MONS_ZOMBIE_LARGE:result += " zombie";break;case MONS_SKELETON_SMALL:case MONS_SKELETON_LARGE:result += " skeleton";break;case MONS_SIMULACRUM_SMALL:case MONS_SIMULACRUM_LARGE:result += " simulacrum";break;default:break;
}// Vampire draining corpses currently leaves them a time of 90, while the// default time is 200. I'm not sure whether this is for balancing reasons// or just an arbitrary difference. (jpeg)void turn_corpse_into_skeleton(item_def &corpse, int time){ASSERT(corpse.base_type == OBJ_CORPSES && corpse.sub_type == CORPSE_BODY);// Some monsters' corpses lack the structure to leave skeletons behind.if (!mons_skeleton( corpse.plus ))return;// While it is possible to distinguish draconian corpses by colour, their// skeletons are indistinguishable.if (mons_genus(corpse.plus) == MONS_DRACONIAN&& corpse.plus != MONS_DRACONIAN){corpse.plus = MONS_DRACONIAN;}corpse.sub_type = CORPSE_SKELETON;corpse.special = time;corpse.colour = LIGHTGREY;
// you can't unwield/fire a wielded cursed weapon/staff// but cursed armour and rings can be unwielded without problems
// You can't unwield/fire a wielded cursed weapon/staff// but cursed armour and rings can be unwielded without problems.
/* Fill items with the items on a square.Squelched items (marked with =k) are ignored, unlessthe square contains *only* squelched items, in which case theyare included. If force_squelch is true, squelched items arenever displayed.*/
// Fill items with the items on a square.// Squelched items (marked with =k) are ignored, unless// the square contains *only* squelched items, in which case they// are included. If force_squelch is true, squelched items are// never displayed.
// Actually, it would be easy to add the monster type to a corpse// (or to another item) by setting orig_monnum when the monster dies// (already done for unique monsters to get named zombies), but// personally, I rather like the way the player can't tell where an// item came from if he just finds it lying on the floor. (jpeg)
static bool find_subtype_by_name(item_def &item,object_class_type base_type, int ntypes,const std::string &name)
static bool _find_subtype_by_name(item_def &item,object_class_type base_type, int ntypes,const std::string &name)
mpr( you.inv[item_slot].name(DESC_INVENTORY).c_str(), MSGCH_EQUIPMENT );mpr( "Inscribe with what? ", MSGCH_PROMPT );if (!cancelable_get_line(buf, sizeof buf)){// strip spaces from the endfor (int i = strlen(buf) - 1; i >= 0; i--){if (isspace( buf[i] ))buf[i] = 0;elsebreak;}
you.inv[item_slot].inscription = std::string(buf);you.wield_change = true;}else{canned_msg(MSG_OK);}
inscribe_item(you.inv[item_slot]);
void inscribe_item(item_def &item){mpr(item.name(DESC_INVENTORY).c_str(), MSGCH_EQUIPMENT);std::string ainscrip;if (is_random_artefact(item))ainscrip = _randart_auto_inscription(item);// Only allow autoinscription if we don't have all the text// already.const bool autoinscribe =is_random_artefact(item)&& !ainscrip.empty()&& item.inscription.find(ainscrip) == std::string::npos;
char buf[79];if (!cancelable_get_line(buf, sizeof buf)){// Strip spaces from the end.for (int i = strlen(buf) - 1; i >= 0; i--){if (isspace( buf[i] ))buf[i] = 0;elsebreak;}if (autoinscribe && buf[1] == 0 && (buf[0] == 'a' || buf[0] == 'A')){// Remove previous randart inscription_trim_randart_inscrip(item);if (!item.inscription.empty())item.inscription += ", ";item.inscription += ainscrip;}elseitem.inscription = std::string(buf);mpr(item.name(DESC_INVENTORY).c_str(), MSGCH_EQUIPMENT);you.wield_change = true;}else{canned_msg(MSG_OK);}}
// monster cannot be affected in these states// (all results of Recite, plus friendly + stupid;// note that berserk monsters are also hasted)
// Monsters cannot be affected in these states.// (All results of Recite, plus friendly + stupid;// note that berserk monsters are also hasted.)