luojunhui_branch
luojunhui 11 months ago
parent 085033b62a
commit f99d8669a4

@ -83,8 +83,7 @@ static const struct victual_info zero_victual = { 0 };
static int getobj_else = 0; static int getobj_else = 0;
/* /*
* Decide whether a particular object can be eaten by the possibly *
* polymorphed character. Not used for monster checks.
*/ */
boolean boolean
is_edible(register struct obj *obj) is_edible(register struct obj *obj)
@ -174,7 +173,7 @@ eatmdone(void)
return 0; return 0;
} }
/* called when hallucination is toggled */ /* 处理角色进食结束后的某些更新操作 */
void void
eatmupdate(void) eatmupdate(void)
{ {
@ -210,7 +209,7 @@ eatmupdate(void)
} }
} }
/* ``[the(] singular(food, xname) [)]'' */ /* 这个函数的主要目的是根据给定的食物对象和布尔值来生成一个特定的名字。 */
static const char * static const char *
food_xname(struct obj *food, boolean the_pfx) food_xname(struct obj *food, boolean the_pfx)
{ {
@ -239,7 +238,7 @@ food_xname(struct obj *food, boolean the_pfx)
* *
* To a full belly all food is bad. (It.) * To a full belly all food is bad. (It.)
*/ */
static void static void//述玩家角色吃东西时发生的情况的函数
choke(struct obj *food) choke(struct obj *food)
{ {
/* only happens if you were satiated */ /* only happens if you were satiated */
@ -285,7 +284,7 @@ choke(struct obj *food)
} }
} }
/* modify object wt. depending on time spent consuming it */ /*重新计算一个对象的重量 */
static void static void
recalc_wt(void) recalc_wt(void)
{ {
@ -302,7 +301,7 @@ recalc_wt(void)
debugpline1("New weight = %d", piece->owt); debugpline1("New weight = %d", piece->owt);
} }
/* called when eating interrupted by an event */ /* 指示在进食回合结束后进行重置操作 */
void void
reset_eat(void) reset_eat(void)
{ {
@ -316,7 +315,7 @@ reset_eat(void)
return; return;
} }
/* base nutrition of a food-class object */ /* 计算并返回一个对象的营养值 */
unsigned unsigned
obj_nutrition(struct obj *otmp) obj_nutrition(struct obj *otmp)
{ {
@ -375,7 +374,7 @@ touchfood(struct obj *otmp)
* do_reset_eat() at the beginning of eatfood()) and check for null pointers * do_reset_eat() at the beginning of eatfood()) and check for null pointers
* in do_reset_eat(). * in do_reset_eat().
*/ */
void void//处理食物消失
food_disappears(struct obj *obj) food_disappears(struct obj *obj)
{ {
if (obj == gc.context.victual.piece) if (obj == gc.context.victual.piece)
@ -388,7 +387,7 @@ food_disappears(struct obj *obj)
/* renaming an object used to result in it having a different address, /* renaming an object used to result in it having a different address,
so the sequence start eating/opening, get interrupted, name the food, so the sequence start eating/opening, get interrupted, name the food,
resume eating/opening would restart from scratch */ resume eating/opening would restart from scratch */
void void//替换特定的食物对象。
food_substitution(struct obj *old_obj, struct obj *new_obj) food_substitution(struct obj *old_obj, struct obj *new_obj)
{ {
if (old_obj == gc.context.victual.piece) { if (old_obj == gc.context.victual.piece) {
@ -401,7 +400,7 @@ food_substitution(struct obj *old_obj, struct obj *new_obj)
} }
} }
static void static void//重置与食物相关的某些属性
do_reset_eat(void) do_reset_eat(void)
{ {
debugpline0("do_reset_eat..."); debugpline0("do_reset_eat...");
@ -428,7 +427,7 @@ do_reset_eat(void)
attribute or because of polymorph shape or worn or carried gear), return attribute or because of polymorph shape or worn or carried gear), return
its timeout, otherwise return 0 */ its timeout, otherwise return 0 */
long long
temp_resist(int prop) temp_resist(int prop)//检查某个属性由prop指定是否具有临时抗性
{ {
struct prop *p = &u.uprops[prop]; struct prop *p = &u.uprops[prop];
long timeout = p->intrinsic & TIMEOUT; long timeout = p->intrinsic & TIMEOUT;
@ -447,7 +446,7 @@ temp_resist(int prop)
} }
/* if temp resist against 'prop' is about to timeout, extend it slightly */ /* if temp resist against 'prop' is about to timeout, extend it slightly */
static void static void//判断当前属性通过prop参数指定是否具有临时抗性
maybe_extend_timed_resist(int prop) maybe_extend_timed_resist(int prop)
{ {
long timeout = temp_resist(prop); long timeout = temp_resist(prop);
@ -466,7 +465,7 @@ maybe_extend_timed_resist(int prop)
/* called each move during eating process */ /* called each move during eating process */
static int static int
eatfood(void) eatfood(void)//处理角色进食的逻辑。
{ {
struct obj *food = gc.context.victual.piece; struct obj *food = gc.context.victual.piece;
@ -510,7 +509,7 @@ eatfood(void)
} }
static void static void
done_eating(boolean message) done_eating(boolean message)//处理角色完成进食后的逻辑。
{ {
struct obj *piece = gc.context.victual.piece; struct obj *piece = gc.context.victual.piece;
@ -542,7 +541,7 @@ done_eating(boolean message)
} }
void void
eating_conducts(struct permonst *pd) eating_conducts(struct permonst *pd)//处理与角色进食相关的行为和记录。
{ {
int ll_conduct = 0; int ll_conduct = 0;
@ -569,7 +568,7 @@ eating_conducts(struct permonst *pd)
/* handle side-effects of mind flayer's tentacle attack */ /* handle side-effects of mind flayer's tentacle attack */
int int
eat_brains( eat_brains(//处理角色吃怪物的脑子的行为
struct monst *magr, struct monst *magr,
struct monst *mdef, struct monst *mdef,
boolean visflag, boolean visflag,
@ -718,7 +717,7 @@ eat_brains(
/* eating a corpse or egg of one's own species is usually naughty */ /* eating a corpse or egg of one's own species is usually naughty */
static boolean static boolean
maybe_cannibal(int pm, boolean allowmsg) maybe_cannibal(int pm, boolean allowmsg)//判断角色是否可能成为食人族。
{ {
static NEARDATA long ate_brains = 0L; static NEARDATA long ate_brains = 0L;
struct permonst *fptr = &mons[pm]; /* food type */ struct permonst *fptr = &mons[pm]; /* food type */
@ -750,7 +749,7 @@ maybe_cannibal(int pm, boolean allowmsg)
return FALSE; return FALSE;
} }
static void static void//它处理玩家尝试吃怪物肉的情况
cprefx(register int pm) cprefx(register int pm)
{ {
(void) maybe_cannibal(pm, TRUE); (void) maybe_cannibal(pm, TRUE);
@ -845,7 +844,7 @@ fix_petrification(void)
/* intrinsic_possible() returns TRUE iff a monster can give an intrinsic. */ /* intrinsic_possible() returns TRUE iff a monster can give an intrinsic. */
int int
intrinsic_possible(int type, struct permonst *ptr) intrinsic_possible(int type, struct permonst *ptr)//判断给定的怪物类型是否具有某些特性
{ {
int res = 0; int res = 0;
@ -916,7 +915,7 @@ intrinsic_possible(int type, struct permonst *ptr)
* intrinsic it is trying to give you. * intrinsic it is trying to give you.
*/ */
boolean boolean
should_givit(int type, struct permonst *ptr) should_givit(int type, struct permonst *ptr)//是否应该给予某种特性或能力。
{ {
int chance; int chance;
@ -958,7 +957,7 @@ temp_givit(int type, struct permonst *ptr)
* and what type of intrinsic it is trying to give you. * and what type of intrinsic it is trying to give you.
*/ */
static void static void
givit(int type, register struct permonst *ptr) givit(int type, register struct permonst *ptr)//是否给予怪物某种特性或能力。
{ {
debugpline1("Attempting to give intrinsic %d", type); debugpline1("Attempting to give intrinsic %d", type);
@ -1058,7 +1057,7 @@ givit(int type, register struct permonst *ptr)
} }
static void static void
eye_of_newt_buzz(void) eye_of_newt_buzz(void)//加角色的某种魔法能量值
{ {
/* MRKR: "eye of newt" may give small magical energy boost */ /* MRKR: "eye of newt" may give small magical energy boost */
if (rn2(3) || 3 * u.uen <= 2 * u.uenmax) { if (rn2(3) || 3 * u.uen <= 2 * u.uenmax) {
@ -1083,7 +1082,7 @@ eye_of_newt_buzz(void)
DISABLE_WARNING_FORMAT_NONLITERAL DISABLE_WARNING_FORMAT_NONLITERAL
/* called after completely consuming a corpse */ /* called after completely consuming a corpse */
static void static void//处理角色变身或模仿其他生物的功能
cpostfx(int pm) cpostfx(int pm)
{ {
int tmp = 0; int tmp = 0;
@ -1280,7 +1279,7 @@ RESTORE_WARNING_FORMAT_NONLITERAL
* Non-deterministic; should only be called once per corpse. * Non-deterministic; should only be called once per corpse.
*/ */
int int
corpse_intrinsic(struct permonst *ptr) corpse_intrinsic(struct permonst *ptr)//检查一个怪物是否具有某种内在属性
{ {
/* Check the monster for all of the intrinsics. If this /* Check the monster for all of the intrinsics. If this
* monster can give more than one, pick one to try to give * monster can give more than one, pick one to try to give
@ -1317,7 +1316,7 @@ corpse_intrinsic(struct permonst *ptr)
} }
void void
violated_vegetarian(void) violated_vegetarian(void)//角色违反了素食主义的情节
{ {
u.uconduct.unvegetarian++; u.uconduct.unvegetarian++;
if (Role_if(PM_MONK)) { if (Role_if(PM_MONK)) {

Loading…
Cancel
Save