Split u_init race specific stuff
This commit is contained in:
+75
-69
@@ -17,6 +17,7 @@ static void ini_inv(struct trobj *) NONNULLARG1;
|
|||||||
static void knows_object(int);
|
static void knows_object(int);
|
||||||
static void knows_class(char);
|
static void knows_class(char);
|
||||||
static void u_init_role(void);
|
static void u_init_role(void);
|
||||||
|
static void u_init_race(void);
|
||||||
static boolean restricted_spell_discipline(int);
|
static boolean restricted_spell_discipline(int);
|
||||||
|
|
||||||
#define UNDEF_TYP 0
|
#define UNDEF_TYP 0
|
||||||
@@ -757,6 +758,79 @@ u_init_role(void)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* race-specific initializations */
|
||||||
|
static void
|
||||||
|
u_init_race(void)
|
||||||
|
{
|
||||||
|
switch (Race_switch) {
|
||||||
|
case PM_HUMAN:
|
||||||
|
/* Nothing special */
|
||||||
|
break;
|
||||||
|
|
||||||
|
case PM_ELF:
|
||||||
|
/*
|
||||||
|
* Elves are people of music and song, or they are warriors.
|
||||||
|
* Non-warriors get an instrument. We use a kludge to
|
||||||
|
* get only non-magic instruments.
|
||||||
|
*/
|
||||||
|
if (Role_if(PM_CLERIC) || Role_if(PM_WIZARD)) {
|
||||||
|
static int trotyp[] = { WOODEN_FLUTE, TOOLED_HORN, WOODEN_HARP,
|
||||||
|
BELL, BUGLE, LEATHER_DRUM };
|
||||||
|
Instrument[0].trotyp = ROLL_FROM(trotyp);
|
||||||
|
ini_inv(Instrument);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Elves can recognize all elvish objects */
|
||||||
|
knows_object(ELVEN_SHORT_SWORD);
|
||||||
|
knows_object(ELVEN_ARROW);
|
||||||
|
knows_object(ELVEN_BOW);
|
||||||
|
knows_object(ELVEN_SPEAR);
|
||||||
|
knows_object(ELVEN_DAGGER);
|
||||||
|
knows_object(ELVEN_BROADSWORD);
|
||||||
|
knows_object(ELVEN_MITHRIL_COAT);
|
||||||
|
knows_object(ELVEN_LEATHER_HELM);
|
||||||
|
knows_object(ELVEN_SHIELD);
|
||||||
|
knows_object(ELVEN_BOOTS);
|
||||||
|
knows_object(ELVEN_CLOAK);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case PM_DWARF:
|
||||||
|
/* Dwarves can recognize all dwarvish objects */
|
||||||
|
knows_object(DWARVISH_SPEAR);
|
||||||
|
knows_object(DWARVISH_SHORT_SWORD);
|
||||||
|
knows_object(DWARVISH_MATTOCK);
|
||||||
|
knows_object(DWARVISH_IRON_HELM);
|
||||||
|
knows_object(DWARVISH_MITHRIL_COAT);
|
||||||
|
knows_object(DWARVISH_CLOAK);
|
||||||
|
knows_object(DWARVISH_ROUNDSHIELD);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case PM_GNOME:
|
||||||
|
break;
|
||||||
|
|
||||||
|
case PM_ORC:
|
||||||
|
/* compensate for generally inferior equipment */
|
||||||
|
if (!Role_if(PM_WIZARD))
|
||||||
|
ini_inv(Xtra_food);
|
||||||
|
/* Orcs can recognize all orcish objects */
|
||||||
|
knows_object(ORCISH_SHORT_SWORD);
|
||||||
|
knows_object(ORCISH_ARROW);
|
||||||
|
knows_object(ORCISH_BOW);
|
||||||
|
knows_object(ORCISH_SPEAR);
|
||||||
|
knows_object(ORCISH_DAGGER);
|
||||||
|
knows_object(ORCISH_CHAIN_MAIL);
|
||||||
|
knows_object(ORCISH_RING_MAIL);
|
||||||
|
knows_object(ORCISH_HELM);
|
||||||
|
knows_object(ORCISH_SHIELD);
|
||||||
|
knows_object(URUK_HAI_SHIELD);
|
||||||
|
knows_object(ORCISH_CLOAK);
|
||||||
|
break;
|
||||||
|
|
||||||
|
default: /* impossible */
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
u_init(void)
|
u_init(void)
|
||||||
{
|
{
|
||||||
@@ -842,75 +916,7 @@ u_init(void)
|
|||||||
HBlinded |= FROMOUTSIDE; /* set PermaBlind */
|
HBlinded |= FROMOUTSIDE; /* set PermaBlind */
|
||||||
|
|
||||||
u_init_role();
|
u_init_role();
|
||||||
|
u_init_race();
|
||||||
/*** Race-specific initializations ***/
|
|
||||||
switch (Race_switch) {
|
|
||||||
case PM_HUMAN:
|
|
||||||
/* Nothing special */
|
|
||||||
break;
|
|
||||||
|
|
||||||
case PM_ELF:
|
|
||||||
/*
|
|
||||||
* Elves are people of music and song, or they are warriors.
|
|
||||||
* Non-warriors get an instrument. We use a kludge to
|
|
||||||
* get only non-magic instruments.
|
|
||||||
*/
|
|
||||||
if (Role_if(PM_CLERIC) || Role_if(PM_WIZARD)) {
|
|
||||||
static int trotyp[] = { WOODEN_FLUTE, TOOLED_HORN, WOODEN_HARP,
|
|
||||||
BELL, BUGLE, LEATHER_DRUM };
|
|
||||||
Instrument[0].trotyp = ROLL_FROM(trotyp);
|
|
||||||
ini_inv(Instrument);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Elves can recognize all elvish objects */
|
|
||||||
knows_object(ELVEN_SHORT_SWORD);
|
|
||||||
knows_object(ELVEN_ARROW);
|
|
||||||
knows_object(ELVEN_BOW);
|
|
||||||
knows_object(ELVEN_SPEAR);
|
|
||||||
knows_object(ELVEN_DAGGER);
|
|
||||||
knows_object(ELVEN_BROADSWORD);
|
|
||||||
knows_object(ELVEN_MITHRIL_COAT);
|
|
||||||
knows_object(ELVEN_LEATHER_HELM);
|
|
||||||
knows_object(ELVEN_SHIELD);
|
|
||||||
knows_object(ELVEN_BOOTS);
|
|
||||||
knows_object(ELVEN_CLOAK);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case PM_DWARF:
|
|
||||||
/* Dwarves can recognize all dwarvish objects */
|
|
||||||
knows_object(DWARVISH_SPEAR);
|
|
||||||
knows_object(DWARVISH_SHORT_SWORD);
|
|
||||||
knows_object(DWARVISH_MATTOCK);
|
|
||||||
knows_object(DWARVISH_IRON_HELM);
|
|
||||||
knows_object(DWARVISH_MITHRIL_COAT);
|
|
||||||
knows_object(DWARVISH_CLOAK);
|
|
||||||
knows_object(DWARVISH_ROUNDSHIELD);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case PM_GNOME:
|
|
||||||
break;
|
|
||||||
|
|
||||||
case PM_ORC:
|
|
||||||
/* compensate for generally inferior equipment */
|
|
||||||
if (!Role_if(PM_WIZARD))
|
|
||||||
ini_inv(Xtra_food);
|
|
||||||
/* Orcs can recognize all orcish objects */
|
|
||||||
knows_object(ORCISH_SHORT_SWORD);
|
|
||||||
knows_object(ORCISH_ARROW);
|
|
||||||
knows_object(ORCISH_BOW);
|
|
||||||
knows_object(ORCISH_SPEAR);
|
|
||||||
knows_object(ORCISH_DAGGER);
|
|
||||||
knows_object(ORCISH_CHAIN_MAIL);
|
|
||||||
knows_object(ORCISH_RING_MAIL);
|
|
||||||
knows_object(ORCISH_HELM);
|
|
||||||
knows_object(ORCISH_SHIELD);
|
|
||||||
knows_object(URUK_HAI_SHIELD);
|
|
||||||
knows_object(ORCISH_CLOAK);
|
|
||||||
break;
|
|
||||||
|
|
||||||
default: /* impossible */
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* roughly based on distribution in human population */
|
/* roughly based on distribution in human population */
|
||||||
u.uhandedness = rn2(10) ? RIGHT_HANDED : LEFT_HANDED;
|
u.uhandedness = rn2(10) ? RIGHT_HANDED : LEFT_HANDED;
|
||||||
|
|||||||
Reference in New Issue
Block a user