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 long FDECL(peek_at_iced_corpse_age, (struct obj *));
|
||||||
E int FDECL(hornoplenty, (struct obj *,BOOLEAN_P));
|
E int FDECL(hornoplenty, (struct obj *,BOOLEAN_P));
|
||||||
E void NDECL(obj_sanity_check);
|
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 ### */
|
/* ### mkroom.c ### */
|
||||||
|
|
||||||
|
|||||||
@@ -94,7 +94,7 @@ struct obj {
|
|||||||
Bitfield(recharged,3); /* number of times it's been recharged */
|
Bitfield(recharged,3); /* number of times it's been recharged */
|
||||||
#define on_ice recharged /* corpse on ice */
|
#define on_ice recharged /* corpse on ice */
|
||||||
Bitfield(lamplit,1); /* a light-source -- can be lit */
|
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(greased,1); /* covered with grease */
|
||||||
Bitfield(nomerge,1); /* set temporarily to prevent merging */
|
Bitfield(nomerge,1); /* set temporarily to prevent merging */
|
||||||
Bitfield(was_thrown,1); /* thrown by hero since last picked up */
|
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
|
* Puddings
|
||||||
*/
|
*/
|
||||||
MON("gray ooze", S_PUDDING,
|
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),
|
A(ATTK(AT_BITE, AD_RUST, 2, 8),
|
||||||
NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
|
NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
|
||||||
SIZ(500, 250, MS_SILENT, MZ_MEDIUM),
|
SIZ(500, 250, MS_SILENT, MZ_MEDIUM),
|
||||||
@@ -1829,7 +1829,7 @@ struct permonst _mons2[] = {
|
|||||||
M1_MINDLESS|M1_OMNIVORE|M1_ACID,
|
M1_MINDLESS|M1_OMNIVORE|M1_ACID,
|
||||||
M2_HOSTILE|M2_NEUTER, 0, CLR_GRAY),
|
M2_HOSTILE|M2_NEUTER, 0, CLR_GRAY),
|
||||||
MON("brown pudding", S_PUDDING,
|
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),
|
A(ATTK(AT_BITE, AD_DCAY, 0, 0),
|
||||||
NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
|
NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
|
||||||
SIZ(500, 250, MS_SILENT, MZ_MEDIUM),
|
SIZ(500, 250, MS_SILENT, MZ_MEDIUM),
|
||||||
@@ -1838,7 +1838,7 @@ struct permonst _mons2[] = {
|
|||||||
M1_MINDLESS|M1_OMNIVORE|M1_ACID,
|
M1_MINDLESS|M1_OMNIVORE|M1_ACID,
|
||||||
M2_HOSTILE|M2_NEUTER, 0, CLR_BROWN),
|
M2_HOSTILE|M2_NEUTER, 0, CLR_BROWN),
|
||||||
MON("green slime", S_PUDDING,
|
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),
|
A(ATTK(AT_TUCH, AD_SLIM, 1, 4), ATTK(AT_NONE, AD_SLIM, 0, 0),
|
||||||
NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
|
NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
|
||||||
SIZ(400, 150, MS_SILENT, MZ_LARGE),
|
SIZ(400, 150, MS_SILENT, MZ_LARGE),
|
||||||
@@ -1847,7 +1847,7 @@ struct permonst _mons2[] = {
|
|||||||
M1_MINDLESS|M1_OMNIVORE|M1_ACID|M1_POIS,
|
M1_MINDLESS|M1_OMNIVORE|M1_ACID|M1_POIS,
|
||||||
M2_HOSTILE|M2_NEUTER, 0, CLR_GREEN),
|
M2_HOSTILE|M2_NEUTER, 0, CLR_GREEN),
|
||||||
MON("black pudding", S_PUDDING,
|
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),
|
A(ATTK(AT_BITE, AD_CORR, 3, 8), ATTK(AT_NONE, AD_CORR, 0, 0),
|
||||||
NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
|
NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
|
||||||
SIZ(900, 250, MS_SILENT, MZ_LARGE),
|
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;
|
char buf[BUFSZ], *bufp, monclass;
|
||||||
int which, tryct, i, firstchoice = NON_PM;
|
int which, tryct, i, firstchoice = NON_PM;
|
||||||
struct permonst *whichpm;
|
struct permonst *whichpm = NULL;
|
||||||
struct monst *mtmp;
|
struct monst *mtmp;
|
||||||
boolean madeany = FALSE;
|
boolean madeany = FALSE;
|
||||||
boolean maketame, makepeaceful, makehostile;
|
boolean maketame, makepeaceful, makehostile;
|
||||||
|
|||||||
Reference in New Issue
Block a user