Unify iron ball unwielding
This commit is contained in:
@@ -119,6 +119,7 @@ E void FDECL(uchangealign, (int,int));
|
|||||||
|
|
||||||
/* ### ball.c ### */
|
/* ### ball.c ### */
|
||||||
|
|
||||||
|
E void FDECL(ballrelease, (boolean));
|
||||||
E void NDECL(ballfall);
|
E void NDECL(ballfall);
|
||||||
E void NDECL(placebc);
|
E void NDECL(placebc);
|
||||||
E void NDECL(unplacebc);
|
E void NDECL(unplacebc);
|
||||||
|
|||||||
29
src/ball.c
29
src/ball.c
@@ -10,6 +10,23 @@
|
|||||||
STATIC_DCL int NDECL(bc_order);
|
STATIC_DCL int NDECL(bc_order);
|
||||||
STATIC_DCL void NDECL(litter);
|
STATIC_DCL void NDECL(litter);
|
||||||
|
|
||||||
|
void
|
||||||
|
ballrelease(showmsg)
|
||||||
|
boolean showmsg;
|
||||||
|
{
|
||||||
|
if (carried(uball)) {
|
||||||
|
if (showmsg) pline("Startled, you drop the iron ball.");
|
||||||
|
if (uwep == uball)
|
||||||
|
setuwep((struct obj *)0);
|
||||||
|
if (uswapwep == uball)
|
||||||
|
setuswapwep((struct obj *)0);
|
||||||
|
if (uquiver == uball)
|
||||||
|
setuqwep((struct obj *)0);;
|
||||||
|
if (uwep != uball)
|
||||||
|
freeinv(uball);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
ballfall()
|
ballfall()
|
||||||
{
|
{
|
||||||
@@ -17,17 +34,7 @@ ballfall()
|
|||||||
|
|
||||||
gets_hit = (((uball->ox != u.ux) || (uball->oy != u.uy)) &&
|
gets_hit = (((uball->ox != u.ux) || (uball->oy != u.uy)) &&
|
||||||
((uwep == uball)? FALSE : (boolean)rn2(5)));
|
((uwep == uball)? FALSE : (boolean)rn2(5)));
|
||||||
if (carried(uball)) {
|
ballrelease(TRUE);
|
||||||
pline("Startled, you drop the iron ball.");
|
|
||||||
if (uwep == uball)
|
|
||||||
setuwep((struct obj *)0);
|
|
||||||
if (uswapwep == uball)
|
|
||||||
setuswapwep((struct obj *)0);
|
|
||||||
if (uquiver == uball)
|
|
||||||
setuqwep((struct obj *)0);;
|
|
||||||
if (uwep != uball)
|
|
||||||
freeinv(uball);
|
|
||||||
}
|
|
||||||
if(gets_hit){
|
if(gets_hit){
|
||||||
int dmg = rn1(7,25);
|
int dmg = rn1(7,25);
|
||||||
pline_The("iron ball falls on your %s.",
|
pline_The("iron ball falls on your %s.",
|
||||||
|
|||||||
12
src/do.c
12
src/do.c
@@ -1282,16 +1282,8 @@ boolean at_stairs, falling, portal;
|
|||||||
Punished || Fumbling) {
|
Punished || Fumbling) {
|
||||||
You("fall down the %s.", at_ladder ? "ladder" : "stairs");
|
You("fall down the %s.", at_ladder ? "ladder" : "stairs");
|
||||||
if (Punished) {
|
if (Punished) {
|
||||||
drag_down();
|
drag_down();
|
||||||
if (carried(uball)) {
|
ballrelease(FALSE);
|
||||||
if (uwep == uball)
|
|
||||||
setuwep((struct obj *)0);
|
|
||||||
if (uswapwep == uball)
|
|
||||||
setuswapwep((struct obj *)0);
|
|
||||||
if (uquiver == uball)
|
|
||||||
setuqwep((struct obj *)0);
|
|
||||||
freeinv(uball);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
/* falling off steed has its own losehp() call */
|
/* falling off steed has its own losehp() call */
|
||||||
if (u.usteed)
|
if (u.usteed)
|
||||||
|
|||||||
Reference in New Issue
Block a user