Fix exploding landmine and boulders next to lava

Same issue as with breaking a wand of digging in commit 7ce0751a
This commit is contained in:
Pasi Kallinen
2025-01-20 19:26:12 +02:00
parent 0c18792916
commit 991a1dbe43
3 changed files with 4 additions and 2 deletions
+1
View File
@@ -128,6 +128,7 @@ extern void reset_trapset(void);
extern int use_whip(struct obj *) NONNULLPTRS; extern int use_whip(struct obj *) NONNULLPTRS;
extern boolean could_pole_mon(void); extern boolean could_pole_mon(void);
extern int use_pole(struct obj *, boolean) NONNULLPTRS; extern int use_pole(struct obj *, boolean) NONNULLPTRS;
extern void maybe_dunk_boulders(coordxy, coordxy);
extern void fig_transform(union any *, long) NONNULLARG1; extern void fig_transform(union any *, long) NONNULLARG1;
extern int unfixable_trouble_count(boolean); extern int unfixable_trouble_count(boolean);
+1 -2
View File
@@ -42,7 +42,6 @@ staticfn void display_grapple_positions(boolean);
staticfn int use_grapple(struct obj *); staticfn int use_grapple(struct obj *);
staticfn void discard_broken_wand(void); staticfn void discard_broken_wand(void);
staticfn void broken_wand_explode(struct obj *, int, int); staticfn void broken_wand_explode(struct obj *, int, int);
staticfn void maybe_dunk_boulders(coordxy, coordxy);
staticfn int do_break_wand(struct obj *); staticfn int do_break_wand(struct obj *);
staticfn int apply_ok(struct obj *); staticfn int apply_ok(struct obj *);
staticfn int flip_through_book(struct obj *); staticfn int flip_through_book(struct obj *);
@@ -3856,7 +3855,7 @@ broken_wand_explode(struct obj *obj, int dmg, int expltype)
} }
/* if x,y has lava or water, dunk any boulders at that location into it */ /* if x,y has lava or water, dunk any boulders at that location into it */
staticfn void void
maybe_dunk_boulders(coordxy x, coordxy y) maybe_dunk_boulders(coordxy x, coordxy y)
{ {
struct obj *otmp; struct obj *otmp;
+2
View File
@@ -3133,6 +3133,8 @@ blow_up_landmine(struct trap *trap)
} }
} }
fill_pit(x, y); fill_pit(x, y);
maybe_dunk_boulders(x, y);
recalc_block_point(x, y);
spot_checks(x, y, old_typ); spot_checks(x, y, old_typ);
} }