git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@1650 c06c8d41-db1a-0410-9941-cceddc491573
NJ66DHOK2SWT6MWW5FIWHKZE3HHMFNCBBUYLDJGZGCH3B752OBYQC 355HO2F6CLJGKAPTBSGTDZK4YTCDKBS57B2TBUWIXQJ5A4UYRPAQC LABXKXWWQY2V4FUDLGVTDYHXINAP6KRHZDHBQ2FE22FFOEIZPL6QC K2CS6TCX2NDVL2ASEHGP4J4K4IJ6FP3ANNKTSIWVG43HPYSBX6ZQC RPOZZWKG5GLPHVZZ7ZKMKS64ZMV2LDCQSARBJFJ6FZOTOKCQO7FAC QDTVLBRGHDTRUVT7I3O72K6TMOYAUSAJBZUHGOEFU2RKJNUPWZSQC 6LT6USGJOTDMRJGXLAN2NSZXK2GKWEXDKKUV6SVV7ZC6WI6EKMDQC SDLKLUNFGVKDS55DDJZCBAVIB7NL3RRYPTACAY65SCUQKV6APFSAC { // SP_ELF (2)120, // SK_FIGHTING80, // SK_SHORT_BLADES80, // SK_LONG_SWORDS110, // SK_UNUSED_1120, // SK_AXES130, // SK_MACES_FLAILS130, // SK_POLEARMS100, // SK_STAVES120, // SK_SLINGS60, // SK_BOWS100, // SK_CROSSBOWS90, // SK_DARTS80, // SK_RANGED_COMBAT120, // SK_ARMOUR80, // SK_DODGING80, // SK_STEALTH100, // SK_STABBING120, // SK_SHIELDS100, // SK_TRAPS_DOORS110, // SK_UNARMED_COMBAT100, // undefined100, // undefined100, // undefined100, // undefined100, // undefined(80 * 130) / 100, // SK_SPELLCASTING105, // SK_CONJURATIONS70, // SK_ENCHANTMENTS100, // SK_SUMMONINGS120, // SK_NECROMANCY100, // SK_TRANSLOCATIONS100, // SK_TRANSMIGRATION100, // SK_DIVINATIONS100, // SK_FIRE_MAGIC100, // SK_ICE_MAGIC70, // SK_AIR_MAGIC130, // SK_EARTH_MAGIC110, // SK_POISON_MAGIC(100 * 75) / 100, // SK_INVOCATIONS(80 * 75) / 100, // SK_EVOCATIONS},
switch (keyn){case 'a':return SP_HUMAN;case 'b':return SP_ELF;case 'c':return SP_HIGH_ELF;case 'd':return SP_GREY_ELF;case 'e':return SP_DEEP_ELF;case 'f':return SP_SLUDGE_ELF;case 'g':return SP_HILL_DWARF;case 'h':return SP_MOUNTAIN_DWARF;case 'i':return SP_HALFLING;case 'j':return SP_HILL_ORC;case 'k':return SP_KOBOLD;case 'l':return SP_MUMMY;case 'm':return SP_NAGA;case 'n':return SP_GNOME;case 'o':return SP_OGRE;case 'p':return SP_TROLL;case 'q':return SP_OGRE_MAGE;case 'r': // draconianreturn static_cast<species_type>(SP_RED_DRACONIAN + random2(9));case 's':return SP_CENTAUR;case 't':return SP_DEMIGOD;case 'u':return SP_SPRIGGAN;case 'v':return SP_MINOTAUR;case 'w':return SP_DEMONSPAWN;case 'x':return SP_GHOUL;case 'y':return SP_KENKU;case 'z':return SP_MERFOLK;default:
if ( keyn < 'a' || keyn > 'z' )
}
const int offset = keyn - 'a';int rc;if ( offset + SP_HUMAN < SP_RED_DRACONIAN )rc = offset + SP_HUMAN;else if ( offset + SP_HUMAN == SP_RED_DRACONIAN ) // random dracorc = SP_RED_DRACONIAN + random2(9);else // skip over draconian speciesrc = offset + (SP_BASE_DRACONIAN - SP_RED_DRACONIAN) + 1;return static_cast<species_type>(rc);