git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@10011 c06c8d41-db1a-0410-9941-cceddc491573
HPV2KABLOLNNUC3L2E5XQOWDOAOVLIGASQ2Z7SVS33QKON34OT4QC
XCWJ4K2XFD5CZP2APTH2GDSJ2IITBEN5MXM2LIJF5WQDBATHLLLQC
BWH4C6ZVGZV37Y3ILA6Q22IBZKEYY35TJTT2YULSRIYI6SQNLPQQC
25CH7HH4LKXFIZ75YNMXS3TSXO6O27DYSOPLOD45K4OCNFWLS4LQC
IAAPG4VMQN6O4CZYNR5QA7MXWVII5USVV2HRX2MDAF2GLDGRUZGAC
HVSBRVFZODK4R7P6EJ7Y7AHZDVRSNSFDHIH3M3DDGG5E26Z4KD5AC
Q3B3UVMYEVC4YJUPYVSNTR4DJH4E6J4JJDHZNT5LNOCHCPPMEMXAC
DK76MINM4TMQKZ6HKMJZMZM7QPGQUO3YY3I226G7JDUYJJLWKWAQC
HBPUTW5HDHUEPB62DMJ6GGP2D2GLZB53O5VRTWDLQ4Z53NWB3MKQC
YKUVKAIE3IVK377PRJKAXPM45POXYW3ATAKNI3XWKXVFBDRU5LSQC
O6ZMFKDI3XO2SWPNEYHIPYFDWJR4TVDP5BAATK6LVCVETQID6E7AC
ZQ55TG7UDO6QYKNZGYLETDPGZ7TEWMCCT5S4IU4XMQOLTM6DZYHQC
LDBTCT5WIPLJPZWXS2RUQ26QKISCUUTLO77M464WOE6VSYSNPKYAC
U6ILMKBXTQZYT62IGD2CALYNU4VQGRSTHN6QBFBU7BVUBHWYOEQQC
PUQVSISR5TQFRV6UKOFREN45ZM4YSCST5QSJ2J5CHIHOSYK62MOQC
EGCEFY2RR5K3DMJR7WP4KQRBXX2ENCO6YML32TWXXQO5HXJELMOQC
3XRTONH32W5DNI2V2SGAHXN3EHOZQ26ZXMVYL5TRP6HLQN7P4HNAC
void tilep_race_default(int race, int gender, int level, int *parts);
int get_gender_from_tile(int parts[]);
int tilep_species_to_base_tile(int sp = you.species,
int level = you.experience_level);
void tilep_race_default(int sp, int gender, int level, int *parts);
void tilep_race_default(int race, int gender, int level, int *parts)
int get_gender_from_tile(int parts[])
{
return ((parts[TILEP_PART_BASE]
- tile_player_part_start[TILEP_PART_BASE]) % 2);
}
int tilep_species_to_base_tile(int sp, int level)
{
switch (sp)
{
case SP_HUMAN:
return TILEP_BASE_HUMAN;
case SP_ELF:
case SP_HIGH_ELF:
case SP_SLUDGE_ELF:
return TILEP_BASE_ELF;
case SP_DEEP_ELF:
return TILEP_BASE_DEEP_ELF;
case SP_MOUNTAIN_DWARF:
return TILEP_BASE_DWARF;
case SP_HALFLING:
return TILEP_BASE_HALFLING;
case SP_HILL_ORC:
return TILEP_BASE_ORC;
case SP_KOBOLD:
return TILEP_BASE_KOBOLD;
case SP_MUMMY:
return TILEP_BASE_MUMMY;
case SP_NAGA:
return TILEP_BASE_NAGA;
case SP_OGRE:
return TILEP_BASE_OGRE;
case SP_TROLL:
return TILEP_BASE_TROLL;
case SP_BASE_DRACONIAN:
case SP_RED_DRACONIAN:
case SP_WHITE_DRACONIAN:
case SP_GREEN_DRACONIAN:
case SP_YELLOW_DRACONIAN:
case SP_GREY_DRACONIAN:
case SP_BLACK_DRACONIAN:
case SP_PURPLE_DRACONIAN:
case SP_MOTTLED_DRACONIAN:
case SP_PALE_DRACONIAN:
{
const int colour_offset = _draconian_colour(sp, level);
return (TILEP_BASE_DRACONIAN + colour_offset * 2);
}
case SP_CENTAUR:
return TILEP_BASE_CENTAUR;
case SP_DEMIGOD:
return TILEP_BASE_DEMIGOD;
case SP_SPRIGGAN:
return TILEP_BASE_SPRIGGAN;
case SP_MINOTAUR:
return TILEP_BASE_MINOTAUR;
case SP_DEMONSPAWN:
return TILEP_BASE_DEMONSPAWN;
case SP_GHOUL:
return TILEP_BASE_GHOUL;
case SP_KENKU:
return TILEP_BASE_KENKU;
case SP_MERFOLK:
return TILEP_BASE_MERFOLK;
case SP_VAMPIRE:
return TILEP_BASE_VAMPIRE;
case SP_DEEP_DWARF:
return TILEP_BASE_DEEP_DWARF;
default:
return TILEP_BASE_HUMAN;
}
}
void tilep_race_default(int sp, int gender, int level, int *parts)
int result;
int hair;
int beard = 0;
if (gender == -1)
gender = get_gender_from_tile(parts);
ASSERT(gender == TILEP_GENDER_MALE || gender == TILEP_GENDER_FEMALE);
int result = tilep_species_to_base_tile(sp, level) + gender;
int hair = 0;
int beard = 0;
if (parts[TILEP_PART_HAIR] == TILEP_SHOW_EQUIP)
parts[TILEP_PART_HAIR] = hair;
if (parts[TILEP_PART_BEARD] == TILEP_SHOW_EQUIP)
if (hair == 0 || parts[TILEP_PART_HAIR] == TILEP_SHOW_EQUIP)
parts[TILEP_PART_HAIR] = hair;
if (beard == 0 || parts[TILEP_PART_BEARD] == TILEP_SHOW_EQUIP)
parts[TILEP_PART_CLOAK] = 0;
parts[TILEP_PART_BOOTS] = 0;
parts[TILEP_PART_LEG] = 0;
parts[TILEP_PART_BODY] = 0;
parts[TILEP_PART_ARM] = 0;
parts[TILEP_PART_HAND1] = 0;
parts[TILEP_PART_HAND2] = 0;
parts[TILEP_PART_HELM] = 0;
parts[TILEP_PART_CLOAK] = TILEP_SHOW_EQUIP;
parts[TILEP_PART_BOOTS] = TILEP_SHOW_EQUIP;
parts[TILEP_PART_LEG] = TILEP_SHOW_EQUIP;
parts[TILEP_PART_BODY] = TILEP_SHOW_EQUIP;
parts[TILEP_PART_ARM] = TILEP_SHOW_EQUIP;
parts[TILEP_PART_HAND1] = TILEP_SHOW_EQUIP;
parts[TILEP_PART_HAND2] = TILEP_SHOW_EQUIP;
parts[TILEP_PART_HELM] = TILEP_SHOW_EQUIP;