class.
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@8630 c06c8d41-db1a-0410-9941-cceddc491573
WUCXHWMF2FL5KCC6E6KNKMYL2NBXXC3WVRY2AUPWSBAPWJFGS34QC
UN7NUWN47XRMCYGMWTTOUSLYRASZOFZ5VHEWWCKVVX6WXPE35FCAC
JLBRBH4ACMNFDZSIQYLMEFYCQJMUF4AOMJ2JZEZTFNTQRLRT2WTAC
YOOCDUQ654NJGF7MXX3NOSZRKRA6TCBLG22PLWZJS7CNVAY3WRFQC
JJULXW764V5C2HJKZNWQAEWB6QM5YZADD7ZCE35LYTBFEM6PMYCAC
YATODO2EN3AW7IXW5PL25HHK34YHF6Y32QBMOUZXEATZZ4YQQWZQC
K2CS6TCX2NDVL2ASEHGP4J4K4IJ6FP3ANNKTSIWVG43HPYSBX6ZQC
UKYGZDI6PYZPXDACCQGVPHANUP5ADCSNROOZIE7LYIZQWSNFHJZAC
SDLKLUNFGVKDS55DDJZCBAVIB7NL3RRYPTACAY65SCUQKV6APFSAC
RPOZZWKG5GLPHVZZ7ZKMKS64ZMV2LDCQSARBJFJ6FZOTOKCQO7FAC
QHABWX5UYQAREZC4B6JGSRXSUH6DQLRD7WB4YGV4HHUHMTXY3ERAC
QWIGHBYDCRD4VSUAY4GAPS66VM2JGMYMLPHWK6A6BCVPUXU7W5WQC
WMFU65IAJ3LX2YSFXXRS7ZFNDCZYQC3ZQ3QDHHK3DU3UMLJMAP4QC
RUGNJUKFHD36CQCJO4XODEUS5P6XRI5CGEU5JJA6FYPSJ5YRAJGQC
HHTFZV7UCVSE332T2FMAS2UHWSP6OZ2PSLEJ7D47QTSBTFTUFTNAC
74LQ7JXVLAFSHLI7LCBKFX47CNTYSKGUQSXNX5FCIUIGCC2JTR3QC
O6ZMFKDI3XO2SWPNEYHIPYFDWJR4TVDP5BAATK6LVCVETQID6E7AC
VIHJ3Z75JN7BXWNOPWV3CWQZEA7K5DK36EKHCYMZC7SOSJYH2XHQC
CYAVI4PYWMMKTPYT5N2B3MI4OSHZFLPKOZFSLFJUXRYAACYXWW3AC
3KAINFIXO7WNWGUGZB43EUNFRS2ZPBLQZDTY456QACMRHYIJ7WDAC
case WAND_MAGIC_DARTS:
return (SWT_MAGIC_DARTS);
case WAND_FROST:
return (SWT_FROST);
case WAND_FLAME:
return (SWT_FLAME);
default:
return (SWT_NO_SELECTION);
}
}
else
{
switch (wand)
{
case STAFF_STRIKING:
return (SWT_STRIKING);
default:
return (SWT_NO_SELECTION);
}
}
}
static int _start_to_wand(int wandtype, bool& is_rod)
{
is_rod = false;
switch (wandtype)
{
case SWT_ENSLAVEMENT:
return (WAND_ENSLAVEMENT);
case SWT_CONFUSION:
return (WAND_CONFUSION);
case SWT_MAGIC_DARTS:
return (WAND_MAGIC_DARTS);
case SWT_FROST:
return (WAND_FROST);
case SWT_FLAME:
return (WAND_FLAME);
case SWT_STRIKING:
is_rod = true;
return (STAFF_STRIKING);
default:
return (-1);
}
}
if (!Options.random_pick)
int wandtype;
bool is_rod;
if (Options.wand)
{
if (_start_to_wand(Options.wand, is_rod) != -1)
{
keyin = 'a' + Options.wand;
ng_wand = Options.wand;
goto wand_done;
}
}
if (Options.prev_wand)
{
if (_start_to_wand(Options.prev_wand, is_rod) == -1
&& Options.prev_wand != SWT_RANDOM)
{
Options.prev_wand = SWT_NO_SELECTION;
}
}
if (!Options.random_pick && Options.wand != SWT_RANDOM)
if (prevmatch || Options.prev_wand == SWT_RANDOM)
{
cprintf("; Enter - %s",
Options.prev_wand == SWT_ENSLAVEMENT ? "Enslavement" :
Options.prev_wand == SWT_CONFUSION ? "Confusion" :
Options.prev_wand == SWT_MAGIC_DARTS ? "Magic Darts" :
Options.prev_wand == SWT_FROST ? "Frost" :
Options.prev_wand == SWT_FLAME ? "Flame" :
Options.prev_wand == SWT_STRIKING ? "Striking" :
Options.prev_wand == SWT_RANDOM ? "Random"
: "Buggy Tool");
}
if (Options.prev_wand != SWT_NO_SELECTION)
{
if (Options.prev_wand == SWT_RANDOM)
keyin = '*';
else
{
for (int i = 0; i < num_choices; ++i)
{
if (i == num_choices - 1)
{
wandtype = you.inv[2].sub_type;
is_rod = true;
}
else
{
wandtype = startwand[i];
is_rod = false;
}
if (Options.prev_wand ==
_wand_to_start(wandtype, is_rod))
{
keyin = 'a' + i;
}
}
}
}
}
static int _str_to_wand( const std::string& str )
{
if (str == "enslavement")
return (SWT_ENSLAVEMENT);
if (str == "confusion")
return (SWT_CONFUSION);
if (str == "magic darts" || str == "magicdarts")
return (SWT_MAGIC_DARTS);
if (str == "frost" || str == "cold" || str == "ice")
return (SWT_FROST);
if (str == "flame" || str == "fire")
return (SWT_FLAME);
if (str == "striking")
return (SWT_STRIKING);
if (str == "random")
return (SWT_RANDOM);
return (SWT_NO_SELECTION);
static std::string _wand_to_str( int weapon )
{
switch (weapon)
{
case SWT_ENSLAVEMENT:
return "enslavement";
case SWT_CONFUSION:
return "confusion";
case SWT_MAGIC_DARTS:
return "magic darts";
case SWT_FROST:
return "frost";
case SWT_FLAME:
return "flame";
case SWT_STRIKING:
return "striking";
case SWT_RANDOM:
default:
return "random";
}
}