add glob merging for obvious cases
flooreffects() covers most dropped/thrown/etc. cases, and the hooks in invent and mon handle "deathdrops" along with picking up items. still need to check putting into/removing from containers
This commit is contained in:
@@ -1212,6 +1212,9 @@ E void FDECL(obj_ice_effects, (int, int, BOOLEAN_P));
|
||||
E long FDECL(peek_at_iced_corpse_age, (struct obj *));
|
||||
E int FDECL(hornoplenty, (struct obj *,BOOLEAN_P));
|
||||
E void NDECL(obj_sanity_check);
|
||||
E struct obj* FDECL(obj_nexto, (struct obj*));
|
||||
E struct obj* FDECL(obj_nexto_xy, (int, int, int, int));
|
||||
E struct obj* FDECL(obj_meld, (struct obj**, struct obj**));
|
||||
|
||||
/* ### mkroom.c ### */
|
||||
|
||||
|
||||
@@ -94,7 +94,7 @@ struct obj {
|
||||
Bitfield(recharged,3); /* number of times it's been recharged */
|
||||
#define on_ice recharged /* corpse on ice */
|
||||
Bitfield(lamplit,1); /* a light-source -- can be lit */
|
||||
Bitfield(oglobby,1); /* globby; will combine with like types on adjacent squares */
|
||||
Bitfield(globby,1); /* globby; will combine with like types on adjacent squares */
|
||||
Bitfield(greased,1); /* covered with grease */
|
||||
Bitfield(nomerge,1); /* set temporarily to prevent merging */
|
||||
Bitfield(was_thrown,1); /* thrown by hero since last picked up */
|
||||
|
||||
3844
src/hack.c
3844
src/hack.c
File diff suppressed because it is too large
Load Diff
4080
src/invent.c
4080
src/invent.c
File diff suppressed because it is too large
Load Diff
2297
src/mkobj.c
2297
src/mkobj.c
File diff suppressed because it is too large
Load Diff
@@ -1820,7 +1820,7 @@ struct permonst _mons2[] = {
|
||||
* Puddings
|
||||
*/
|
||||
MON("gray ooze", S_PUDDING,
|
||||
LVL(3, 1, 8, 0, 0), (G_GENO|2),
|
||||
LVL(3, 1, 8, 0, 0), (G_GENO|G_NOCORPSE|2),
|
||||
A(ATTK(AT_BITE, AD_RUST, 2, 8),
|
||||
NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
|
||||
SIZ(500, 250, MS_SILENT, MZ_MEDIUM),
|
||||
@@ -1829,7 +1829,7 @@ struct permonst _mons2[] = {
|
||||
M1_MINDLESS|M1_OMNIVORE|M1_ACID,
|
||||
M2_HOSTILE|M2_NEUTER, 0, CLR_GRAY),
|
||||
MON("brown pudding", S_PUDDING,
|
||||
LVL(5, 3, 8, 0, 0), (G_GENO|1),
|
||||
LVL(5, 3, 8, 0, 0), (G_GENO|G_NOCORPSE|1),
|
||||
A(ATTK(AT_BITE, AD_DCAY, 0, 0),
|
||||
NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
|
||||
SIZ(500, 250, MS_SILENT, MZ_MEDIUM),
|
||||
@@ -1838,7 +1838,7 @@ struct permonst _mons2[] = {
|
||||
M1_MINDLESS|M1_OMNIVORE|M1_ACID,
|
||||
M2_HOSTILE|M2_NEUTER, 0, CLR_BROWN),
|
||||
MON("green slime", S_PUDDING,
|
||||
LVL(6, 6, 6, 0, 0), (G_HELL|G_GENO|1),
|
||||
LVL(6, 6, 6, 0, 0), (G_HELL|G_GENO|G_NOCORPSE|1),
|
||||
A(ATTK(AT_TUCH, AD_SLIM, 1, 4), ATTK(AT_NONE, AD_SLIM, 0, 0),
|
||||
NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
|
||||
SIZ(400, 150, MS_SILENT, MZ_LARGE),
|
||||
@@ -1847,7 +1847,7 @@ struct permonst _mons2[] = {
|
||||
M1_MINDLESS|M1_OMNIVORE|M1_ACID|M1_POIS,
|
||||
M2_HOSTILE|M2_NEUTER, 0, CLR_GREEN),
|
||||
MON("black pudding", S_PUDDING,
|
||||
LVL(10, 6, 6, 0, 0), (G_GENO|1),
|
||||
LVL(10, 6, 6, 0, 0), (G_GENO|G_NOCORPSE|1),
|
||||
A(ATTK(AT_BITE, AD_CORR, 3, 8), ATTK(AT_NONE, AD_CORR, 0, 0),
|
||||
NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
|
||||
SIZ(900, 250, MS_SILENT, MZ_LARGE),
|
||||
|
||||
4885
src/objnam.c
4885
src/objnam.c
File diff suppressed because it is too large
Load Diff
@@ -2031,7 +2031,7 @@ create_particular()
|
||||
{
|
||||
char buf[BUFSZ], *bufp, monclass;
|
||||
int which, tryct, i, firstchoice = NON_PM;
|
||||
struct permonst *whichpm;
|
||||
struct permonst *whichpm = NULL;
|
||||
struct monst *mtmp;
|
||||
boolean madeany = FALSE;
|
||||
boolean maketame, makepeaceful, makehostile;
|
||||
|
||||
Reference in New Issue
Block a user