starting book types.
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@7424 c06c8d41-db1a-0410-9941-cceddc491573
QWIGHBYDCRD4VSUAY4GAPS66VM2JGMYMLPHWK6A6BCVPUXU7W5WQC
6C6NQCTGRI7CG4OURJ5KFHV5C6LI7AD36GPIECL7KY2IWREYDQXAC
ES6J64POV7ONJRA4GVMPMVS7JKZZEXHE64BQAOOASMJDUPM7OKWAC
CNKDOV5ALP5J6ZFDZW2UULUXDNTIOT6E3OIICXL22TSEQU7MQLEQC
C2PRXJYHDRF2642VDAUY76HJKCPQFGWDI6AM3SMCMYCHGWYDQXQQC
K2CS6TCX2NDVL2ASEHGP4J4K4IJ6FP3ANNKTSIWVG43HPYSBX6ZQC
3FRPKD2JSN7RA2HKWAO3XV7MMKCIAMWIMU6JNJ452VZEUSXM6PWQC
RPOZZWKG5GLPHVZZ7ZKMKS64ZMV2LDCQSARBJFJ6FZOTOKCQO7FAC
77H4BWWPPGLM3PLZH4QTAJRXIZTSDVNCOKZE223I437FN2UJ34RQC
JDM5R3HYGXKQKZWY35QZ2KOB24TFZ3FW2PCNXCRCMWG72AZC5ZXQC
JPGW2YFZDRPAWPG4VAKOOB5SCJA2QSSLR5JJP7ULRBX3LLGI7PUAC
}
static startup_book_type _book_to_start(int book)
{
switch (book)
{
case BOOK_MINOR_MAGIC_I:
case BOOK_CONJURATIONS_I:
return (SBT_FIRE);
case BOOK_MINOR_MAGIC_II:
case BOOK_CONJURATIONS_II:
return (SBT_COLD);
case BOOK_MINOR_MAGIC_III:
return (SBT_SUMM);
default:
return (SBT_NO_SELECTION);
}
}
static int _start_to_book(int firstbook, int booktype)
{
switch (firstbook)
{
case BOOK_MINOR_MAGIC_I:
switch (booktype)
{
case SBT_FIRE:
return (BOOK_MINOR_MAGIC_I);
case SBT_COLD:
return (BOOK_MINOR_MAGIC_II);
case SBT_SUMM:
return (BOOK_MINOR_MAGIC_III);
default:
return (NUM_BOOKS);
}
case BOOK_CONJURATIONS_I:
switch (booktype)
{
case SBT_FIRE:
return (BOOK_CONJURATIONS_I);
case SBT_COLD:
return (BOOK_CONJURATIONS_II);
default:
return (NUM_BOOKS);
}
default:
return (NUM_BOOKS);
}
// book 0 = fire (CONJ_I, MINOR_MAGIC_I), 1 = ice (CONJ_II, MINOR_MAGIC_II),
// 2 = summoning (MINOR_MAGIC_III)
static char_choice_restriction _book_restriction(int booktype,
bool summon_too = false)
static char_choice_restriction _book_restriction(startup_book_type booktype)
book.sub_type = firstbook + Options.book - 1;
ng_book = Options.book;
return (true);
const int opt_book = _start_to_book(firstbook, Options.book);
if (opt_book != NUM_BOOKS)
{
book.sub_type = opt_book;
ng_book = Options.book;
return (true);
}
if (Options.prev_book > numbooks && Options.prev_book != SBT_RANDOM)
Options.prev_book = SBT_NO_SELECTION;
if (Options.prev_book)
{
const int opt_prev_book = _start_to_book(firstbook, Options.prev_book);
if (opt_prev_book == NUM_BOOKS && Options.prev_book != SBT_RANDOM)
Options.prev_book = SBT_NO_SELECTION;
}