information should be correct. Remove (hopefully) unnecessary ASSERT that was causing problems with Tiles. Clean up makeitem.cc. (Spacing changes, and renaming static methods.)
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@4546 c06c8d41-db1a-0410-9941-cceddc491573
TZ2SH2SPO5TFSFL2OCV5A32P2X4CRHEKEK7ENUFCBVF3RKUWAD4AC
EPR4MQUMXA4US62JU6FYSGMQFMLA5UGLVO4FE633IAEOJHLLTUWQC
NZT22G5HOL4OQUUGRGLZXTHLO543UVAFZJ2BWL434YNITJ4OMTQAC
BNAEOYK7QYPZ5Y2LCDLW4E6VHUJDX7CR7HNE44NUHVPHAE2BXR4QC
MLOT5KS4ULKR2PZMASX3JDTWNRX6JVPIDHS5NLJQ4JYU66VMK2AAC
IQQ2LG3BPMGGJJZSMPUF65YATUYEIK3JB7PRO5MIHC6NVLIWWEVQC
I46SXTM3KJ53E34L35Q6XPBCTA3DH7FWIOUREY4FZDAGZYBLTZYAC
TC4L2BKHTL4WTEVXMXBSNBXPDFMDHDWZZYTUD4KZ7UBKHMLQMGSAC
MCBXXIV6GICTZB56APSXMJEI63FVQWVZR3H2DRNMMFDH2XCGK4JAC
7YUGK5Q64KG5O7GJGTUBRRLHAHBCJ5YOE23YUPT6UBKUSB67CYAQC
EWQGJP5TFKCVYA4Z2HIDFAY4BMS2MKSUPI6WVI7LPPJXXZD36FJQC
RKFHYYANUZQHOWOE6YHVFFJNCZU7X67FWUQPQFF6KJKMNIKXFWEAC
XR2332MJV6ZC6GWBRRWV4IZAYXMK7WLXGSNLGZHHAKN65HS26IVAC
RKROW7KCH7MJL4PYI5RRWEPNFAWTZU6GIZVHLUWP34NDU63HELUAC
LS5XCCGKQHSJQGWLWLGTP2F5OYWK4ND5AQQAGRN6H2HVBSXNCCZAC
7NDXS36TE7QVXTXJWMYSVG5UHCCLPIO4VL6NXFGTDK3ZNKE3A2IAC
77H4BWWPPGLM3PLZH4QTAJRXIZTSDVNCOKZE223I437FN2UJ34RQC
DTO3EUKWHZ5RJNGNCFYXSOVTIPVXPP637F2W7WFGYKJ7JK7VNKNQC
TX3LTXGB7TJ2QHLW2TEW6XTCTOW5A3KTZGBPBRTDTUYOZFFT3NLAC
L6SQXI6VUPDACCYYJAOHBRDPXMIBLLVVDSRADTEIEPJSZMYRBNRQC
Q3DNEB5OOJ34P5ML4CMK3L6SCP7RLW7DDOZEG24KZBX3C7BJRQDAC
FA2V3G4NYTWJWUT7EWH75L3YOUX6YVOZ5LNRSFLO2XF273JKSUTAC
EH4VJW3I5Y4V6DT3YMLNDA3NW2DEAV4LRE4T5IEXAVB4WB3JJMGAC
RKU2FIDSJCR4GZYBI7CLCFEYXVV5KRKI2CJFDNQT7YMWXUTUG7TAC
GDRQMRZTPLRZYBEIJ5AXH3NVKKOQEB5HNG6VFBVZF6JWO7XCOBKQC
2SNCC2NXKFVBYTWH7THU2QELHONTOBRNCWH6FWYORKKCWZAXTTVAC
NJYEH3GBN6OXEMHKOTHVJNIPHXIVW3ZFCLIHYV7I5NFNJZACOYEQC
6BCD3B7SZ4T2VPOGO562767LMFCVMKBAUMF4PQ7T5XNKSXVY7F6QC
MNYDF64QY6NHYKOAFOGBQJFYU7TZDILXRV23EXJPN4IZOCLSJ2AQC
LBIXGRQC64MEHG7L74PCGU3EXD3WVUCDR7DHEHCI5OCOJAXSA7PQC
P2ZCF3BBG523ZEOD6XQA4X5YEHBTWH3IM33YVHXP2SQ5POXZIH4QC
M2HMYLYYXSP5XGX6MCI77IT6UW5K4YSEUJWHPQPYXVSW5L36BJ2AC
Q3XHNSHW6FI4JCXSEABATRFBJPMCF7PXNG2K6ZQTRRPVMIZFHUBQC
KX6HOBTF5OBZLH2VNEFHH6YAX66FSE6JGBY5I2WIAW5IEJUGNL6AC
6ZZO2QBB46RZM6OXVS7OIKC5M3SEAULSSJFXW5PJG556JDKKUHWAC
UZTLX4J6HKEAPFLUWL4WVUXZKSUONPOEJVLG5Q5MC4HEYBYERRIQC
VI32CAU6TQE4OCAU6ABHRBAFY2WPGOB5P3BOTHPQXLQ4NVM3OX5AC
KPGP7LS5LTKH5ITAZFYAM5ZV54BZ2PB5PWBAPAUEOLYAADUMHDPQC
QS3ZRS3E6KL3YJHPKYEWCWJYRBJSXD5OOYF6Y25HZVECGPJRDB5QC
KBNY5FWKTEAKABFCLPC3QFKFSVZKAGXINPCIFV6WDSWFO4VCKNTAC
SFT2ECCWJJWIMK7V3POVHXECNQIGTIOPA7BEIKHBLWLJMUJ4FFTAC
YX2LDGNQNB6AQRKAVXNYQ473X6EVPQEBT5AJKBIIWFIMS3U2BNQQC
5V47S4NNTHWTSAHV3YLO2VGH7JTUIYJ3GBPDN5ZM4UQALT2ZEXDQC
57MGLFVRSI6MCEZT6NTWWW2LK4DKHFETEMXRHYNB4DPEMVBU64ZAC
LJK4ZQATLSB4MKZG3ARZX5V6RFGTN3NLCN6GTCUGJQKU26SOXMUAC
2QMDACGXJJYBL2CQIXJLNJ65GL3WJMW4ZRE3BTKK4HRWCBLST5UQC
6XJP54KUBUB46BX7ANY5DHMN24Q7EHJSQKS7U2BHCAUQUKNJD7DQC
X76YXE6RFL7QY5WL6MSSS44WHVA5FQMDQY3XTYP2UL6UZB4E6XMQC
7V4DCKFJCNBXFODMKJ6H3MCDUTSD4XVQ7D4D6XFCD4JNF4HCE4KAC
IVO7SJLJ2OA4NHZOSFB7A2OMMQX5EX3Z24KJGQR6J6IB6QNBCWUAC
KFULGQQOHWUTXOM3BXCCYPGGVGGY4Z6265XUFRCBPNLTZAEHJZSQC
NPCTY7SLKPF6POZZDNAIJ4RZPWOH6R65APHPZ7IPRGCOR77CSVFAC
25CH7HH4LKXFIZ75YNMXS3TSXO6O27DYSOPLOD45K4OCNFWLS4LQC
static void generate_weapon_item(item_def& item, bool allow_uniques,
int force_type, int item_level,
int item_race)
static void _generate_weapon_item(item_def& item, bool allow_uniques,
int force_type, int item_level,
int item_race)
if ((get_equip_race(item) == ISFLAG_ELVEN && item.sub_type == MI_ARROW) ||
(get_equip_race(item) == ISFLAG_DWARVEN && item.sub_type == MI_BOLT))
if (get_equip_race(item) == ISFLAG_ELVEN && item.sub_type == MI_ARROW
|| get_equip_race(item) == ISFLAG_DWARVEN && item.sub_type == MI_BOLT)
if (!no_ego && (30 + item_level >= random2(350))
&& (force_good || forced_ego
|| (get_equip_race(item) != ISFLAG_ORCISH
|| (item.sub_type <= ARM_PLATE_MAIL && coinflip()))))
if (!no_ego
&& (30 + item_level >= random2(350))
&& (force_good
|| forced_ego
|| get_equip_race(item) != ISFLAG_ORCISH
|| item.sub_type <= ARM_PLATE_MAIL && coinflip()))
if ((rc == WAND_INVISIBILITY || rc == WAND_HASTING || rc == WAND_HEALING)
|| ((rc == WAND_FIREBALL || rc == WAND_TELEPORTATION) && coinflip()))
if (rc == WAND_INVISIBILITY || rc == WAND_HASTING || rc == WAND_HEALING
|| (rc == WAND_FIREBALL || rc == WAND_TELEPORTATION) && coinflip())
if ( stype == POT_GAIN_STRENGTH || stype == POT_GAIN_DEXTERITY ||
stype == POT_GAIN_INTELLIGENCE || stype == POT_EXPERIENCE ||
stype == POT_MAGIC || stype == POT_RESTORE_ABILITIES )
if ( stype == POT_GAIN_STRENGTH || stype == POT_GAIN_DEXTERITY
|| stype == POT_GAIN_INTELLIGENCE || stype == POT_EXPERIENCE
|| stype == POT_MAGIC || stype == POT_RESTORE_ABILITIES )
if ( item.sub_type == SCR_VORPALISE_WEAPON ||
item.sub_type == SCR_ENCHANT_WEAPON_III ||
item.sub_type == SCR_ACQUIREMENT ||
item.sub_type == SCR_TORMENT ||
item.sub_type == SCR_HOLY_WORD )
if ( item.sub_type == SCR_VORPALISE_WEAPON
|| item.sub_type == SCR_ENCHANT_WEAPON_III
|| item.sub_type == SCR_ACQUIREMENT
|| item.sub_type == SCR_TORMENT
|| item.sub_type == SCR_HOLY_WORD )
{
if (item.sub_type != BOOK_DESTRUCTION &&
item.sub_type != BOOK_MANUAL &&
book_rarity(item.sub_type) != 100 &&
one_chance_in(10))
if (item.sub_type != BOOK_DESTRUCTION
&& item.sub_type != BOOK_MANUAL
&& book_rarity(item.sub_type) != 100
&& one_chance_in(10))
|| ((item.sub_type == MISC_DECK_OF_ESCAPE ||
item.sub_type == MISC_DECK_OF_DESTRUCTION ||
item.sub_type == MISC_DECK_OF_DUNGEONS ||
item.sub_type == MISC_DECK_OF_SUMMONING ||
item.sub_type == MISC_DECK_OF_WONDERS ||
item.sub_type == MISC_DECK_OF_PUNISHMENT) &&
!one_chance_in(5)));
|| (item.sub_type == MISC_DECK_OF_ESCAPE
|| item.sub_type == MISC_DECK_OF_DESTRUCTION
|| item.sub_type == MISC_DECK_OF_DUNGEONS
|| item.sub_type == MISC_DECK_OF_SUMMONING
|| item.sub_type == MISC_DECK_OF_WONDERS
|| item.sub_type == MISC_DECK_OF_PUNISHMENT)
&& !one_chance_in(5));
ASSERT(force_ego <= 0 ||
((force_class == OBJ_WEAPONS || force_class == OBJ_ARMOUR
|| force_class == OBJ_MISSILES)
&& force_type != OBJ_RANDOM));
ASSERT(force_ego <= 0
|| (force_class == OBJ_WEAPONS || force_class == OBJ_ARMOUR
|| force_class == OBJ_MISSILES)
&& force_type != OBJ_RANDOM);
const bool visibly_branded = brand != SPWPN_NORMAL;
const bool visibly_branded = (brand != SPWPN_NORMAL);
// nobody would bother enchanting a mundane club
if (item.sub_type == WPN_CLUB || item.sub_type == WPN_GIANT_CLUB
|| item.sub_type == WPN_GIANT_SPIKED_CLUB)
{
return false;
}
if (get_equip_desc(item) != ISFLAG_NO_DESC)
return false;
if (visibly_branded || is_random_artefact(item))
return true;
if ((item.plus || item.plus2)
&& (one_chance_in(3)
|| get_equip_race(item) && one_chance_in(7)))
{
return true;
}
return (is_random_artefact(item) || visibly_branded
|| ((item.plus || item.plus2)
&& (get_equip_race(item)? one_chance_in(7)
: one_chance_in(3))))
// nobody would bother enchanting a mundane club
&& item.sub_type != WPN_CLUB
&& item.sub_type != WPN_GIANT_CLUB
&& item.sub_type != WPN_GIANT_SPIKED_CLUB
&& get_equip_desc(item) == ISFLAG_NO_DESC;
return false;
static void give_monster_item(monsters *mon, int thing,
bool force_item = false,
bool (monsters::*pickupfn)(item_def&, int) = NULL)
static void _give_monster_item(monsters *mon, int thing,
bool force_item = false,
bool (monsters::*pickupfn)(item_def&, int) = NULL)
(temp_rand > 179) ? WPN_CLUB : //12.50%
(temp_rand > 152) ? WPN_FLAIL : //11.25%
(temp_rand > 128) ? WPN_HAND_AXE : //10.00%
(temp_rand > 108) ? WPN_HAMMER : // 8.33%
(temp_rand > 88) ? WPN_HALBERD : // 8.33%
(temp_rand > 68) ? WPN_SHORT_SWORD : // 8.33%
(temp_rand > 48) ? WPN_MACE : // 8.33%
(temp_rand > 38) ? WPN_WHIP : // 4.17%
(temp_rand > 28) ? WPN_TRIDENT : // 4.17%
(temp_rand > 18) ? WPN_FALCHION : // 4.17%
(temp_rand > 8) ? WPN_MORNINGSTAR : // 4.17%
(temp_rand > 2) ? WPN_WAR_AXE // 2.50%
: WPN_SPIKED_FLAIL);// 1.25%
(temp_rand > 179) ? WPN_CLUB : //12.50%
(temp_rand > 152) ? WPN_FLAIL : //11.25%
(temp_rand > 128) ? WPN_HAND_AXE : //10.00%
(temp_rand > 108) ? WPN_HAMMER : // 8.33%
(temp_rand > 88) ? WPN_HALBERD : // 8.33%
(temp_rand > 68) ? WPN_SHORT_SWORD : // 8.33%
(temp_rand > 48) ? WPN_MACE : // 8.33%
(temp_rand > 38) ? WPN_WHIP : // 4.17%
(temp_rand > 28) ? WPN_TRIDENT : // 4.17%
(temp_rand > 18) ? WPN_FALCHION : // 4.17%
(temp_rand > 8) ? WPN_MORNINGSTAR : // 4.17%
(temp_rand > 2) ? WPN_WAR_AXE // 2.50%
: WPN_SPIKED_FLAIL);// 1.25%
(temp_rand > 2) ? WPN_SHORT_SWORD :// 1 in 6
(temp_rand > 1) ? WPN_SABRE : // 1 in 6
(temp_rand > 0) ? WPN_DAGGER // 1 in 6
: WPN_WHIP); // 1 in 6
(temp_rand > 2) ? WPN_SHORT_SWORD :// 1 in 6
(temp_rand > 1) ? WPN_SABRE : // 1 in 6
(temp_rand > 0) ? WPN_DAGGER // 1 in 6
: WPN_WHIP); // 1 in 6
(temp_rand > 99) ? WPN_SHORT_SWORD : // 8.33%
(temp_rand > 89) ? WPN_SCIMITAR : // 8.33%
(temp_rand > 79) ? WPN_BATTLEAXE : // 8.33%
(temp_rand > 69) ? WPN_HAND_AXE : // 8.33%
(temp_rand > 59) ? WPN_HALBERD : // 8.33%
(temp_rand > 49) ? WPN_GLAIVE : // 8.33%
(temp_rand > 39) ? WPN_MORNINGSTAR : // 8.33%
(temp_rand > 29) ? WPN_GREAT_MACE : // 8.33%
(temp_rand > 19) ? WPN_TRIDENT : // 8.33%
(temp_rand > 10) ? WPN_WAR_AXE : // 7.50%
(temp_rand > 1) ? WPN_FLAIL : // 7.50%
(temp_rand > 0) ? WPN_BROAD_AXE // 0.83%
: WPN_SPIKED_FLAIL); // 0.83%
(temp_rand > 99) ? WPN_SHORT_SWORD : // 8.33%
(temp_rand > 89) ? WPN_SCIMITAR : // 8.33%
(temp_rand > 79) ? WPN_BATTLEAXE : // 8.33%
(temp_rand > 69) ? WPN_HAND_AXE : // 8.33%
(temp_rand > 59) ? WPN_HALBERD : // 8.33%
(temp_rand > 49) ? WPN_GLAIVE : // 8.33%
(temp_rand > 39) ? WPN_MORNINGSTAR : // 8.33%
(temp_rand > 29) ? WPN_GREAT_MACE : // 8.33%
(temp_rand > 19) ? WPN_TRIDENT : // 8.33%
(temp_rand > 10) ? WPN_WAR_AXE : // 7.50%
(temp_rand > 1) ? WPN_FLAIL : // 7.50%
(temp_rand > 0) ? WPN_BROAD_AXE // 0.83%
: WPN_SPIKED_FLAIL); // 0.83%
(temp_rand > 16) ? WPN_LONG_SWORD : // 16%
(temp_rand > 12) ? WPN_BATTLEAXE : // 16%
(temp_rand > 8) ? WPN_WAR_AXE : // 16%
(temp_rand > 5) ? WPN_GREAT_MACE : // 12%
(temp_rand > 3) ? WPN_DIRE_FLAIL : // 8%
(temp_rand > 2) ? WPN_BARDICHE : // 4%
(temp_rand > 1) ? WPN_GLAIVE : // 4%
(temp_rand > 0) ? WPN_BROAD_AXE // 4%
: WPN_HALBERD); // 4%
(temp_rand > 16) ? WPN_LONG_SWORD : // 16%
(temp_rand > 12) ? WPN_BATTLEAXE : // 16%
(temp_rand > 8) ? WPN_WAR_AXE : // 16%
(temp_rand > 5) ? WPN_GREAT_MACE : // 12%
(temp_rand > 3) ? WPN_DIRE_FLAIL : // 8%
(temp_rand > 2) ? WPN_BARDICHE : // 4%
(temp_rand > 1) ? WPN_GLAIVE : // 4%
(temp_rand > 0) ? WPN_BROAD_AXE // 4%
: WPN_HALBERD); // 4%
(temp_rand == 4) ? WPN_TRIDENT :
(temp_rand == 3) ? WPN_SPEAR :
(temp_rand == 2) ? WPN_GLAIVE :
(temp_rand == 1) ? WPN_BOW
: WPN_HALBERD);
(temp_rand == 4) ? WPN_TRIDENT :
(temp_rand == 3) ? WPN_SPEAR :
(temp_rand == 2) ? WPN_GLAIVE :
(temp_rand == 1) ? WPN_BOW
: WPN_HALBERD);
At inscription prompt:
left mouseclick Autoinscribe artefact (where applicable).
right mouseclick Escape (quit menu).