the wizard command &+, since there's no logic to how the random set of spells are selected and there's no valuation code in shopping.cc. No randart manuals or books of destruction, since I have no clue what they'd be like.
The code allows for any book or spell to have its normal set of spells overridden by an arbitrary/customized set of spells, but this is only used by randart spellbooks as of now.
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@7722 c06c8d41-db1a-0410-9941-cceddc491573
46MRRHVYJ3BS74R2BEVUWEWJCI4FCRBSLZ3NWMQCE6FUCNE5P73QC OOF5OILRBVJKULW3LKRCC7HZY2I2RKZ6QZMRIDFBUGGDFGJFBCHAC KNO4TZR76DMOYJCF24PSVQW7FUZOTMOJTL7I7J74SM4IHOGDX6TAC LY7DLLD7IKL6ZQPVROLDJ46XRM5CMAAEBRFDKJ4M53CPC5GFCGSQC DDU4A3JGN5IUIPP5IASOODKPR2WBHSDSV4FITZ6HNXNSXXQACWAQC K2CS6TCX2NDVL2ASEHGP4J4K4IJ6FP3ANNKTSIWVG43HPYSBX6ZQC CHO4U5JC3RNTLXVIDXXJYZMOBZJ4VXW2GVJWDOTBRKK3AJ36LDLQC 7BREK7U6OWZ6YU3JDSJSH4CMNNULDYABCKCAUHGZIUJZBIRJS5WQC SVY2PTCLXR3KNPQAWXVXTTGCC5DR334HOAKHYO3VDDRWM2BWMALAC 5OFUF2JHXEX5AF5CDY4KATIAFKIHDKTV463PIJZN3IXEIJWDNVYAC BK6MGPSEAEMU4URBAPKY3VTKK6JC6IZVN5CNOSN2UPTIOWQYEWLQC KOSAQXB3KF6VAYTG2TOTHGJBB3F7AL6O32EMCXPVZJ5WHQX6XR5AC 25VJTGR3AWZJ7OHKYWS53VJ6TVMMU6UT7BA6V3QVVWDGI6FYKD7QC JVSCP4FTW2G57C6YD5HZOZXTODGZH7TR75JQGFJBEPX3LCZH236QC BSI5DB3LVY42ZHOS46X2CAPPVOSOTTQWFGLTMAKRFTROI5BQWFDQC Z6XF4AIERIW4U4AR3HU2ILYFZ54IK4K4ORQ6JKCEWRO5LZODWDDAC S34LKQDIQJLIWVIPASOJBBZ6ZCXDHP5KPS7TRBZJSCDRVNCLK6UAC RPOZZWKG5GLPHVZZ7ZKMKS64ZMV2LDCQSARBJFJ6FZOTOKCQO7FAC E6JXIMRH2TX5WHZ6BT2QZ3EANM3PWCHCVYC4XWRJGRBDSP42X2RAC EJKHYV2Z6UPRVYUAL4WRW33GBNHYBFPMPA57HMBX2LQKXHIUO5VQC F42F3QNVICCXWPMNYL2QQJZNOVBVF4MXZUXNUC7KKYIRZ7R5HGPAC ZMYKMHWEU26FOUTD26Q4GTAZMI6RNO3K6NHQ2VGTESE3E73GQVCQC KU5FY6KSLTGH44KEZT4SFANRKCTWCQC7VABCMNYJRZNJSYSOXAKQC XI7X6SNTHG67D4NQWM75HWB6TVRXVFDPGNSQLTXN6JAZBZIVZXIQC C3O4BWRMGGRM6CUQITUHOKYPLE2ZIIW6I7PTNKA4ZTCDJNWH7WOAC 7AWYHENXBDI4OLKU7JD56YAKT5RO6UZ67HEBNPOILXCIFW6BONRAC VCG3BRIYRTNNWYC3LOXD6KFGXOX37HAFW2HNV7WXVG2V7EUHLDZQC SDLKLUNFGVKDS55DDJZCBAVIB7NL3RRYPTACAY65SCUQKV6APFSAC G6WNKWA4GNUGNOH63AKXJQMQS2V4FGJ55CB4P2Z3MPSX3UPMVF6AC YFIVTYI7PMVAXV23DUPXPAQNEY3YSFIXQGSN32I3WVHMMD5XS5DQC A7JEFZOEUX436TOZQX4IKYNOGBAOOUBAPA7JRZGEMLGLOGSTM5AAC Y2NYY7HWFZ2LQDK3ACSLGS37F2J2IJ5LRGCIMZYXLEOSVPD3A4DAC spell_type which_spell_in_book(const item_def &book, int spl){ASSERT(book.base_type == OBJ_BOOKS || book.base_type == OBJ_STAVES);const CrawlHashTable &props = book.props;if (!props.exists( SPELL_LIST_KEY ))return which_spell_in_book(book.book_number(), spl);const CrawlVector &spells = props[SPELL_LIST_KEY].get_vector();
// converting sub_type into book index typeconst int type = istaff.book_number();if ((idx >= SPELLBOOK_SIZE) || !is_valid_spell_in_book(type, idx))
if ((idx >= SPELLBOOK_SIZE) || !is_valid_spell_in_book(istaff, idx))
}}static bool _compare_spell_dificulties(spell_type a, spell_type b){return (spell_difficulty(a) < spell_difficulty(b));}static void _init_randart_book(item_def &book){spell_type spells[SPELLBOOK_SIZE];int spell_count = 0;while(spell_count < SPELLBOOK_SIZE){spell_type spl = static_cast<spell_type>(random2(NUM_SPELLS));if (!is_valid_spell(spl))continue;// Skip monster only spells.if (get_spell_flags(spl) & SPFLAG_MONSTER)continue;// Holy spells don't show up in books.if (spell_typematch(spl, SPTYP_HOLY))continue;// Don't include schoolless spells, like Smiting.if (get_spell_disciplines(spl) == 0)continue;// This spell passes all of the other checks.if (spl == SPELL_DEBUGGING_RAY)continue;// No duplicate spells.bool present = false;for (int i = 0; i < spell_count; i++)if (spells[i] == spl){present = true;break;}if (present)continue;spells[spell_count++] = spl;
std::sort(spells, spells + SPELLBOOK_SIZE, _compare_spell_dificulties);CrawlHashTable &props = book.props;if (!props.exists( SPELL_LIST_KEY ))props[SPELL_LIST_KEY].new_vector(SV_LONG).resize(SPELLBOOK_SIZE);CrawlVector &spell_vec = props[SPELL_LIST_KEY];spell_vec.set_max_size(SPELLBOOK_SIZE);for (int i = 0; i < SPELLBOOK_SIZE; i++)spell_vec[i] = (long) spells[i];
####################################################### Books (NOTE: just a placeholder for now)######################################################book@armour@%%%%book appearance@armour appearance@%%%%