towel adjustments
Consolidate a small amount of duplicate code from wet_a_towel() and dry_a_towel().
This commit is contained in:
+26
-16
@@ -1,4 +1,4 @@
|
|||||||
/* NetHack 3.7 weapon.c $NHDT-Date: 1596498226 2020/08/03 23:43:46 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.87 $ */
|
/* NetHack 3.7 weapon.c $NHDT-Date: 1607811730 2020/12/12 22:22:10 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.89 $ */
|
||||||
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
|
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
|
||||||
/*-Copyright (c) Robert Patrick Rankin, 2011. */
|
/*-Copyright (c) Robert Patrick Rankin, 2011. */
|
||||||
/* NetHack may be freely redistributed. See license for details. */
|
/* NetHack may be freely redistributed. See license for details. */
|
||||||
@@ -11,6 +11,7 @@
|
|||||||
#include "hack.h"
|
#include "hack.h"
|
||||||
|
|
||||||
static void FDECL(give_may_advance_msg, (int));
|
static void FDECL(give_may_advance_msg, (int));
|
||||||
|
static void FDECL(finish_towel_change, (struct obj *obj, int));
|
||||||
static boolean FDECL(could_advance, (int));
|
static boolean FDECL(could_advance, (int));
|
||||||
static boolean FDECL(peaked_skill, (int));
|
static boolean FDECL(peaked_skill, (int));
|
||||||
static int FDECL(slots_required, (int));
|
static int FDECL(slots_required, (int));
|
||||||
@@ -954,6 +955,26 @@ dbon()
|
|||||||
return 6;
|
return 6;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* called when wet_a_towel() or dry_a_towel() is changing a towel's wetness */
|
||||||
|
static void
|
||||||
|
finish_towel_change(obj, newspe)
|
||||||
|
struct obj *obj;
|
||||||
|
int newspe;
|
||||||
|
{
|
||||||
|
/* towel wetness is always between 0 (dry) and 7, inclusive */
|
||||||
|
newspe = min(newspe, 7);
|
||||||
|
obj->spe = max(newspe, 0);
|
||||||
|
|
||||||
|
/* if hero is wielding this towel, don't give "you begin bashing with
|
||||||
|
your [wet] towel" message if it's wet, do give one if it's dry */
|
||||||
|
if (obj == uwep)
|
||||||
|
g.unweapon = !is_wet_towel(obj);
|
||||||
|
|
||||||
|
/* description might change: "towel" vs "moist towel" vs "wet towel" */
|
||||||
|
if (carried(obj))
|
||||||
|
update_inventory();
|
||||||
|
}
|
||||||
|
|
||||||
/* increase a towel's wetness */
|
/* increase a towel's wetness */
|
||||||
void
|
void
|
||||||
wet_a_towel(obj, amt, verbose)
|
wet_a_towel(obj, amt, verbose)
|
||||||
@@ -978,14 +999,9 @@ boolean verbose;
|
|||||||
xname(obj), wetness);
|
xname(obj), wetness);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
obj->spe = min(newspe, 7);
|
|
||||||
|
|
||||||
/* if hero is wielding this towel, don't give "you begin bashing
|
if (newspe != obj->spe)
|
||||||
with your wet towel" message on next attack with it */
|
finish_towel_change(obj, newspe);
|
||||||
if (obj == uwep)
|
|
||||||
g.unweapon = !is_wet_towel(obj);
|
|
||||||
if (carried(obj))
|
|
||||||
update_inventory();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* decrease a towel's wetness; unlike when wetting, 0 is not a no-op */
|
/* decrease a towel's wetness; unlike when wetting, 0 is not a no-op */
|
||||||
@@ -1008,15 +1024,9 @@ boolean verbose;
|
|||||||
xname(obj), !newspe ? " out" : "");
|
xname(obj), !newspe ? " out" : "");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
newspe = min(newspe, 7);
|
|
||||||
obj->spe = max(newspe, 0);
|
|
||||||
|
|
||||||
/* if hero is wielding this towel and it is now dry, give "you begin
|
if (newspe != obj->spe)
|
||||||
bashing with your towel" message on next attack with it */
|
finish_towel_change(obj, newspe);
|
||||||
if (obj == uwep)
|
|
||||||
g.unweapon = !is_wet_towel(obj);
|
|
||||||
if (carried(obj))
|
|
||||||
update_inventory();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* copy the skill level name into the given buffer */
|
/* copy the skill level name into the given buffer */
|
||||||
|
|||||||
Reference in New Issue
Block a user