Also apply my two previous commits to trunk.
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@9995 c06c8d41-db1a-0410-9941-cceddc491573
HBPUTW5HDHUEPB62DMJ6GGP2D2GLZB53O5VRTWDLQ4Z53NWB3MKQC
SYBQRPI3TYXKKLXEK33NLF4CISR2FXHMD423YLL4TRAVLG3MFWBQC
QMERW36HNA2YGUCBLJ3DWRKGLVQQMSMF6XGRRNBG2CUNOI4EVR2QC
2U7MKFVTHEPKDLBYR4X6GINIEIBG5B3YR3INX36ITGP7MEPTR3VQC
P46EVQ3PML6ZLW6VCXROJSWWTV3SZ3JSWA3VGQ7LADRBSPATOYGQC
V2XKNBSMA7QYPRZ4IXI2MBD6D63WJY5VQSMSISF7G4XYBITNN7IQC
OONYLF4DAPLIYLBNNRW74IVT5BBTWI4XHQBXSNSPVRX3FTKJBTRAC
K2CS6TCX2NDVL2ASEHGP4J4K4IJ6FP3ANNKTSIWVG43HPYSBX6ZQC
3SQQ4MM6YO4I37CQ6GIBIX6BXAEVHNVNHPVMR3PPBBNO454D6XWQC
MV5USMLTBKVRWBAD67UFJ2BS4Y5HEOMYASRSB44DS24BBMRP75RQC
25CH7HH4LKXFIZ75YNMXS3TSXO6O27DYSOPLOD45K4OCNFWLS4LQC
Q3B3UVMYEVC4YJUPYVSNTR4DJH4E6J4JJDHZNT5LNOCHCPPMEMXAC
D5EMJEEIJSSULF236DUM26QHHNDLH7FXAOBHFDAYI65KCKTDTDYQC
HBHQQDULNVWISJ75XIL6R6BFEDYRNY22NX3ZTFVNP5ZWJGJSKOEQC
BYSGVGW655QV7SRUP73ZW4UOSFFRA6BV2MYLAIM6QK5CAXSJKGEQC
LG6R5CQGJY6FYJC4F7NY7MJYJMVXDZ4BFZZ6N4P5JA5EOK72JWZQC
RNRDGY5JBFBHF7IDQ6LDV2GULR4ILNJ7UHYNGIWZIPLN6IJYX2PQC
5FA5IEAXTMXYS2VUBVDKBKHPKAIOY4GN5SXYJORBYWQIGHVW3FFQC
TUF6IG4NNHW5YD5AVRYE7GILPSFJLUV6442F5LSP436MFEIIGVUAC
EQNA77UM24FFYQ2N44FG53KQGLS43ZGEX7XS5UWR6MM2HE3JBKAAC
QXJZCH66QBMFHOBQAFP2C5XNTMCUYGLUSOKXQUS5O7TODSVQ6GHAC
EZLGE274NEOKEADYMRFN62DFMLCKJT7ADPOA2WYLZODI34CK24NQC
PUQVSISR5TQFRV6UKOFREN45ZM4YSCST5QSJ2J5CHIHOSYK62MOQC
O746OUDNQBNZJ5YAHONNORFKWHV2EGDJWNAWGBALCYL3FGDZOOHQC
U6ILMKBXTQZYT62IGD2CALYNU4VQGRSTHN6QBFBU7BVUBHWYOEQQC
4EOIRJBTEWVOK4EXA4XAWWS5CHAWZHAYRO6BRZWZ2SU2CGKV6VQAC
JM7UAK777RAVDAVLQLEOBRTGNW2B47S5G55XITJXO243IUNZHVYQC
TW7QOMTSLYPGUUWHGHLY5G5LV6QQRQIKK4BSE64RY7RDGKVDHCEAC
EPRT5LWIQULNZW5XP3ZMAGMEZ5KC4PQTW2BDTEXNH367LDL5NE5QC
ZNMT5CZHP2FC4HTLNA7KYEDGFBXSCUE5QHJOALVPE6RDPHSEDXRQC
AA5RRYINGLYJHZNRSQUHI6K4GIT4KZBFRFZ43EJJPOMJAMXWULMAC
UWMN4HLG6YA2YFQEVIVMDISD6APKEPIZXMMPMNUYCBQDSAUYSXPQC
NS3KXJXQSN33UQSOBDK3WXXKA3KY5YOUJL67NBZKGQAJYDYZ2COQC
AVCMVFA3MKCXHO6H44UK5KJNIHTGQV7UA7GYXM26VI6TXXU5ZN6QC
RPOZZWKG5GLPHVZZ7ZKMKS64ZMV2LDCQSARBJFJ6FZOTOKCQO7FAC
3AHBZKKPY2442S3VT5GLGGYWEK4LHJ52XKVD4TQXE7ULO3EB2G5QC
GTXKQTORYHZ7XB2VIH6372UM5GMWAN7IVRXWY5FGBCHFGBV6D6NAC
2U7VFZ3242P22EPRQKCIHFZRRWHHBZGOEEN2WJNMCXV5BEI67NNAC
TFYLN3PQEKFQNOYRVJRCXFJ4J6VSKC7QQFOHNWTDPSVYWAPAJABAC
I7QLYOTE6DLQZM7YWUWYLKHRJRB2A3STQ42ALSRGQICEWKD2QTEQC
Y56C5OMUQ5XF2G6DKDV4R5MED44UOIUPTBBQVWQBUHYIXYA5MOZAC
ZP6ZASBEQOZACRTVZVP6SEMXLSNAJ2RFMCJNMHASNGHPHUEC2L5AC
LO4P742HGLQC2E2VQRRYRIKR5MVS5GOFNDT2IXCPAWKGZ4AMT7AAC
EJKHYV2Z6UPRVYUAL4WRW33GBNHYBFPMPA57HMBX2LQKXHIUO5VQC
UEI5JAVCMN7Y2SACTEZPZSNFJWOJTC55G24Q6LKQCT4XNDH5ZQIAC
XRZPPYWPWUOM4SFNI6BHKH2UKJQNLKOV6Y7XIEPEZXE5QYRT26PAC
3D6NWJ44UYHLZMD3BOQIWXJUEGITAVCHK6Z2WWDQONVQC4HSBRXQC
SDLKLUNFGVKDS55DDJZCBAVIB7NL3RRYPTACAY65SCUQKV6APFSAC
34LSODHJVOGATMHLJN67YGGWOV2PYDGAY3OAZGCU6J2ESULN6S3QC
TRZAZJJA5VQBJ65SO5H5DNSILIZEJHIZCBYEBHEATCT6ZSMWIFKQC
77H4BWWPPGLM3PLZH4QTAJRXIZTSDVNCOKZE223I437FN2UJ34RQC
monster->seen_context = "bursts forth shouting";
if (monster->type == MONS_AIR_ELEMENTAL)
monster->seen_context = "thin air";
else if (monster->type == MONS_TRAPDOOR_SPIDER)
monster->seen_context = "leaps out";
else if (!monster_habitable_grid(monster, DNGN_FLOOR))
monster->seen_context = "bursts forth shouting";
else
monster->seen_context = "surfaces";
TILE_FLAG_S_UNDER = 0x00000800,
TILE_FLAG_FLYING = 0x00001000,
TILE_FLAG_PET = 0x00002000,
TILE_FLAG_NEUTRAL = 0x00004000,
TILE_FLAG_STAB = 0x00008000,
TILE_FLAG_MAY_STAB = 0x0000C000,
TILE_FLAG_NET = 0x00010000,
TILE_FLAG_POISON = 0x00020000,
TILE_FLAG_FLAME = 0x00040000,
TILE_FLAG_ANIM_WEP = 0x00080000,
TILE_FLAG_S_UNDER = 0x00000800,
TILE_FLAG_FLYING = 0x00001000,
TILE_FLAG_PET = 0x00002000,
TILE_FLAG_NEUTRAL = 0x00004000,
TILE_FLAG_STAB = 0x00008000,
TILE_FLAG_MAY_STAB = 0x0000C000,
TILE_FLAG_NET = 0x00010000,
TILE_FLAG_POISON = 0x00020000,
TILE_FLAG_FLAME = 0x00040000,
TILE_FLAG_ANIM_WEP = 0x00080000,
TILE_FLAG_MDAM_MASK = 0x03800000,
TILE_FLAG_MDAM_LIGHT= 0x00800000,
TILE_FLAG_MDAM_MOD = 0x01000000,
TILE_FLAG_MDAM_HEAVY= 0x01800000,
TILE_FLAG_MDAM_SEV = 0x02000000,
TILE_FLAG_MDAM_ADEAD= 0x02800000,
TILE_FLAG_MDAM_MASK = 0x03800000,
TILE_FLAG_MDAM_LIGHT = 0x00800000,
TILE_FLAG_MDAM_MOD = 0x01000000,
TILE_FLAG_MDAM_HEAVY = 0x01800000,
TILE_FLAG_MDAM_SEV = 0x02000000,
TILE_FLAG_MDAM_ADEAD = 0x02800000,
TILE_FLAG_RAY = 0x00000800,
TILE_FLAG_MM_UNSEEN = 0x00001000,
TILE_FLAG_UNSEEN = 0x00002000,
TILE_FLAG_CURSOR1 = 0x00004000,
TILE_FLAG_CURSOR2 = 0x00008000,
TILE_FLAG_CURSOR3 = 0x0000C000,
TILE_FLAG_CURSOR = 0x0000C000,
TILE_FLAG_BLOOD = 0x00010000,
TILE_FLAG_HALO = 0x00020000,
TILE_FLAG_NEW_STAIR = 0x00040000,
TILE_FLAG_TRAV_EXCL = 0x00080000,
TILE_FLAG_EXCL_CTR = 0x00100000,
TILE_FLAG_SANCTUARY = 0x00200000,
TILE_FLAG_TUT_CURSOR= 0x00400000,
TILE_FLAG_RAY_OOR = 0x00800000,
TILE_FLAG_OOR = 0x01000000,
TILE_FLAG_RAY = 0x00000800,
TILE_FLAG_MM_UNSEEN = 0x00001000,
TILE_FLAG_UNSEEN = 0x00002000,
TILE_FLAG_CURSOR1 = 0x00004000,
TILE_FLAG_CURSOR2 = 0x00008000,
TILE_FLAG_CURSOR3 = 0x0000C000,
TILE_FLAG_CURSOR = 0x0000C000,
TILE_FLAG_BLOOD = 0x00010000,
TILE_FLAG_HALO = 0x00020000,
TILE_FLAG_NEW_STAIR = 0x00040000,
TILE_FLAG_TRAV_EXCL = 0x00080000,
TILE_FLAG_EXCL_CTR = 0x00100000,
TILE_FLAG_SANCTUARY = 0x00200000,
TILE_FLAG_TUT_CURSOR = 0x00400000,
TILE_FLAG_RAY_OOR = 0x00800000,
TILE_FLAG_OOR = 0x01000000,
void TilePlayerEdit()
{
// TODO: Prompt for (D)efault job, or 0-9 for specific dolls,
// alternatively (C)reate dolls.txt (if missing).
// * Read content from dolls.txt.
// * If (D) and MODE=DEFAULT, nothing to be done.
// * If (#) and NUM=#, nothing to be done.
// * If MODE != DEFAULT or NUM != #, save file back to disk with
// MODE/NUM modified, then call _load_doll_data().
// * If dolls.txt missing, possibly (C)reate the file with
// dummy values (MODE=DEFAULT, 10 variable dolls).
mpr("Sorry, this command has not yet been implemented.");
// TODO 2: Allow saving back of customized dolls.
// * Use pack_player (split into 2 methods) to fill the (C)urrent equipment.
// * Create (R)andom equipment for player doll.
// * (S)ave current doll to slot 0-9, prompt to overwrite non-empty slots?
// With empty == consisting only of *** or 000 after the first two
// colons.
// TODO 3: Change to proper menu.
}
parts[TILEP_PART_BASE] = result;
parts[TILEP_PART_HAIR] = hair;
parts[TILEP_PART_BEARD] = beard;
parts[TILEP_PART_BASE] = result;
//Don't overwrite doll parts defined elsewhere.
if (parts[TILEP_PART_HAIR] == TILEP_SHOW_EQUIP)
parts[TILEP_PART_HAIR] = hair;
if (parts[TILEP_PART_BEARD] == TILEP_SHOW_EQUIP)
parts[TILEP_PART_BEARD] = beard;
if (need_auto_exclude(monster) && !is_exclude_root(monster->pos()))
{
toggle_exclude(monster->pos());
learned_something_new(TUT_AUTO_EXCLUSION, monster->pos());
}
set_auto_exclude(monster);
// If the monster is in the auto_exclude list, automatically set an
// exclusion.
void set_auto_exclude(const monsters *mon)
{
if (need_auto_exclude(mon) && !is_exclude_root(mon->pos()))
{
toggle_exclude(mon->pos());
#ifdef USE_TILE
viewwindow(true, false);
#endif
learned_something_new(TUT_AUTO_EXCLUSION, mon->pos());
}
}
"But he had not been long in his hiding-hole, before the awful Ettin came in; and no sooner was he in, than he was heard crying:
'Snouk but and snouk ben,
I find the smell of an earthly man,
Be he living, or be he dead,
His heart this night shall kitchen my bread.'"
-Joseph Jacobs, _The Red Ettin_
A two-headed giant.
mpr( wstring.c_str(), MSGCH_EQUIPMENT, colour );
} // end list_weapons()
mpr(wstring.c_str(), MSGCH_EQUIPMENT, colour);
}