mirror of
https://codeberg.org/noisytoot/notnotdnethack.git
synced 2025-07-31 01:42:24 +01:00
SCOPECREEP: rewrite mkobj (et al) to take an int
of flags.
This sets up the next step: adding a new flag to mkobj (et al) to ask for *summoned* objects.
This commit is contained in:
parent
1536b52abf
commit
5bca5f1822
49 changed files with 1465 additions and 1473 deletions
include
src
allmain.capply.cartifact.cbones.ccrown.cdig.cdo.cdog.cdokick.ceat.cend.cextralev.cfountain.cinvent.cmail.cmakemon.cmcastu.cmklev.cmkmaze.cmkobj.cmkroom.cmon.cmonmove.cmplayer.cmuse.cobjnam.cpager.cpotion.cpray.cpriest.cprojectile.cquest.cread.cseduce.cshk.cshknam.csit.csounds.csp_lev.cspell.cteleport.ctrap.cu_init.cwizard.cwrite.cxhity.czap.c
|
@ -1414,14 +1414,14 @@ E const char *FDECL(waterbody_name, (XCHAR_P,XCHAR_P));
|
|||
|
||||
/* ### mkobj.c ### */
|
||||
|
||||
E struct obj *FDECL(mkobj_at, (CHAR_P,int,int,BOOLEAN_P));
|
||||
E struct obj *FDECL(mksobj_at, (int,int,int,BOOLEAN_P,BOOLEAN_P));
|
||||
E struct obj *FDECL(mkobj, (CHAR_P,BOOLEAN_P));
|
||||
E struct obj *FDECL(mkobj_at, (CHAR_P,int,int,int));
|
||||
E struct obj *FDECL(mksobj_at, (int,int,int,int));
|
||||
E struct obj *FDECL(mkobj, (CHAR_P,int));
|
||||
E int NDECL(rndmonnum);
|
||||
E struct obj *FDECL(splitobj, (struct obj *,long));
|
||||
E void FDECL(replace_object, (struct obj *,struct obj *));
|
||||
E void FDECL(bill_dummy_object, (struct obj *));
|
||||
E struct obj *FDECL(mksobj, (int,BOOLEAN_P,BOOLEAN_P));
|
||||
E struct obj *FDECL(mksobj, (int,int));
|
||||
E int FDECL(bcsign, (struct obj *));
|
||||
E void FDECL(set_obj_size, (struct obj *, int));
|
||||
E void FDECL(set_obj_quan, (struct obj *, int));
|
||||
|
|
|
@ -210,6 +210,11 @@ NEARDATA extern coord bhitpos; /* place where throw or zap hits or stops */
|
|||
#define MM_ADJACENTOK 0x100 /* it is acceptable to use adjacent coordinates */
|
||||
#define MM_ADJACENTSTRICT 0x200 /* ...but only ONE removed.*/
|
||||
|
||||
/* flags to control mksobj() et al */
|
||||
#define NO_MKOBJ_FLAGS 0x00 /* use this rather than plain 0 */
|
||||
#define MKOBJ_ARTIF 0x01 /* allow to become a random artifact at standard generation rates */
|
||||
#define MKOBJ_NOINIT 0x02 /* skip standard initialization of the object, like randomized enchantment and material */
|
||||
|
||||
/* special mhpmax value when loading bones monster to flag as extinct or genocided */
|
||||
#define DEFUNCT_MONSTER (-100)
|
||||
|
||||
|
|
|
@ -2626,7 +2626,7 @@ newgame()
|
|||
int inherited;
|
||||
struct obj *otmp;
|
||||
do{inherited = do_inheritor_menu();}while(!inherited);
|
||||
otmp = mksobj((int)artilist[inherited].otyp, FALSE, FALSE);
|
||||
otmp = mksobj((int)artilist[inherited].otyp, MKOBJ_NOINIT);
|
||||
otmp = oname(otmp, artilist[inherited].name);
|
||||
expert_weapon_skill(weapon_type(otmp));
|
||||
discover_artifact(inherited);
|
||||
|
|
16
src/apply.c
16
src/apply.c
|
@ -2130,7 +2130,7 @@ register struct obj *obj;
|
|||
if(!otyp)
|
||||
return;
|
||||
|
||||
glyph = mksobj(otyp, FALSE, FALSE);
|
||||
glyph = mksobj(otyp, MKOBJ_NOINIT);
|
||||
|
||||
if(glyph){
|
||||
remove_thought(otyp_to_thought(otyp));
|
||||
|
@ -2218,7 +2218,7 @@ register struct obj *obj;
|
|||
umechanoid)
|
||||
|| yn("This corpse does not have blood. Tin it?") == 'y'
|
||||
){
|
||||
if ((can = mksobj(TIN, FALSE, FALSE)) != 0) {
|
||||
if ((can = mksobj(TIN, MKOBJ_NOINIT)) != 0) {
|
||||
static const char you_buy_it[] = "You tin it, you bought it!";
|
||||
|
||||
can->corpsenm = corpse->corpsenm;
|
||||
|
@ -2228,7 +2228,7 @@ register struct obj *obj;
|
|||
can->known = 1;
|
||||
can->spe = -1; /* Mark tinned tins. No spinach allowed... */
|
||||
if(has_blood(&mons[corpse->corpsenm])){
|
||||
if ((bld = mksobj(POT_BLOOD, FALSE, FALSE)) != 0) {
|
||||
if ((bld = mksobj(POT_BLOOD, MKOBJ_NOINIT)) != 0) {
|
||||
bld->corpsenm = corpse->corpsenm;
|
||||
bld->cursed = obj->cursed;
|
||||
bld->blessed = obj->blessed;
|
||||
|
@ -3876,7 +3876,7 @@ use_pole (obj)
|
|||
}
|
||||
} else if(levl[cc.x][cc.y].typ == GRASS){
|
||||
levl[cc.x][cc.y].typ = SOIL;
|
||||
if(!rn2(3)) mksobj_at(SHEAF_OF_HAY,cc.x,cc.y,TRUE,FALSE);
|
||||
if(!rn2(3)) mksobj_at(SHEAF_OF_HAY,cc.x,cc.y,NO_MKOBJ_FLAGS);
|
||||
You("cut away the grass!");
|
||||
newsym(cc.x,cc.y);
|
||||
} else {
|
||||
|
@ -4468,7 +4468,7 @@ use_doll(obj)
|
|||
}
|
||||
#ifndef GOLDOBJ
|
||||
if (mtmp->mgold){
|
||||
struct obj *mongold = mksobj(GOLD_PIECE, FALSE, FALSE);
|
||||
struct obj *mongold = mksobj(GOLD_PIECE, MKOBJ_NOINIT);
|
||||
mongold->quan = mtmp->mgold;
|
||||
mongold->owt = weight(mongold);
|
||||
mtmp->mgold = 0;
|
||||
|
@ -6292,7 +6292,7 @@ doapply()
|
|||
case SILVER_BULLET:
|
||||
if(otmp->quan >= 10){
|
||||
struct obj *rocket;
|
||||
rocket = mksobj(ROCKET, FALSE, FALSE);
|
||||
rocket = mksobj(ROCKET, MKOBJ_NOINIT);
|
||||
rocket->blessed = otmp->blessed;
|
||||
rocket->cursed = otmp->cursed;
|
||||
rocket->quan = (otmp->quan)/10;
|
||||
|
@ -6318,7 +6318,7 @@ doapply()
|
|||
}break;
|
||||
case ROCKET:{
|
||||
struct obj *bullets;
|
||||
bullets = mksobj(SILVER_BULLET, FALSE, FALSE);
|
||||
bullets = mksobj(SILVER_BULLET, MKOBJ_NOINIT);
|
||||
bullets->blessed = otmp->blessed;
|
||||
bullets->cursed = otmp->cursed;
|
||||
bullets->quan = (otmp->quan)*10;
|
||||
|
@ -6462,7 +6462,7 @@ doapply()
|
|||
int i = rnd(u.umorgul);
|
||||
struct obj *frags;
|
||||
u.umorgul -= i;
|
||||
frags = mksobj(SHURIKEN, FALSE, FALSE);
|
||||
frags = mksobj(SHURIKEN, MKOBJ_NOINIT);
|
||||
if(frags){
|
||||
frags->quan = i;
|
||||
add_oprop(frags, OPROP_LESSER_MORGW);
|
||||
|
|
|
@ -460,7 +460,7 @@ aligntyp alignment; /* target alignment, or A_NONE */
|
|||
!rn2(2) ? SHORT_SWORD :
|
||||
ATHAME;
|
||||
}
|
||||
otmp = mksobj(otyp, TRUE, FALSE);
|
||||
otmp = mksobj(otyp, NO_MKOBJ_FLAGS);
|
||||
}
|
||||
/* christen the artifact */
|
||||
otmp = oname(otmp, a->name);
|
||||
|
@ -2596,7 +2596,7 @@ char *hittee; /* target's name: "you" or mon_nam(mdef) */
|
|||
} // nvPh - !cancelled
|
||||
if (pen->ovar1&SEAL_SHIRO){
|
||||
struct obj *otmp;
|
||||
otmp = mksobj((mvitals[PM_ACERERAK].died > 0) ? BOULDER : ROCK, FALSE, FALSE);
|
||||
otmp = mksobj((mvitals[PM_ACERERAK].died > 0) ? BOULDER : ROCK, MKOBJ_NOINIT);
|
||||
projectile(magr, otmp, (void *)0, HMON_FIRED, mdef->mx, mdef->my, 0, 0, 0, 0, TRUE, FALSE, FALSE);
|
||||
if(mdef->mhp <= 0) return vis;//Monster was killed by throw and we should stop.
|
||||
} // nvPh potential - invisible?
|
||||
|
@ -5150,8 +5150,8 @@ arti_invoke(obj)
|
|||
break;
|
||||
case CREATE_AMMO: {
|
||||
struct obj *otmp;
|
||||
if(obj->oartifact == ART_LONGBOW_OF_DIANA) otmp = mksobj(ARROW, TRUE, FALSE);
|
||||
else if(obj->oartifact == ART_FUMA_ITTO_NO_KEN) otmp = mksobj(SHURIKEN, TRUE, FALSE);
|
||||
if(obj->oartifact == ART_LONGBOW_OF_DIANA) otmp = mksobj(ARROW, NO_MKOBJ_FLAGS);
|
||||
else if(obj->oartifact == ART_FUMA_ITTO_NO_KEN) otmp = mksobj(SHURIKEN, NO_MKOBJ_FLAGS);
|
||||
else if(obj->oartifact == ART_SILVER_STARLIGHT){
|
||||
if(cansee(u.ux, u.uy)) pline("Silver starlight shines upon your blade!");
|
||||
obj->cursed = 0;
|
||||
|
@ -5160,12 +5160,12 @@ arti_invoke(obj)
|
|||
obj->oeroded2= 0;
|
||||
obj->oerodeproof = 1;
|
||||
if(obj->spe < 3) obj->spe = 3;
|
||||
otmp = mksobj(SHURIKEN, TRUE, FALSE);
|
||||
} else if(obj->oartifact == ART_YOICHI_NO_YUMI) otmp = mksobj(YA, TRUE, FALSE);
|
||||
else if(obj->oartifact == ART_WRATHFUL_SPIDER) otmp = mksobj(DROVEN_BOLT, TRUE, FALSE);
|
||||
else if(obj->oartifact == ART_LIECLEAVER) otmp = mksobj(DROVEN_BOLT, TRUE, FALSE);
|
||||
else if(obj->oartifact == ART_BELTHRONDING) otmp = mksobj(ELVEN_ARROW, TRUE, FALSE);
|
||||
else otmp = mksobj(ROCK, TRUE, FALSE);
|
||||
otmp = mksobj(SHURIKEN, NO_MKOBJ_FLAGS);
|
||||
} else if(obj->oartifact == ART_YOICHI_NO_YUMI) otmp = mksobj(YA, NO_MKOBJ_FLAGS);
|
||||
else if(obj->oartifact == ART_WRATHFUL_SPIDER) otmp = mksobj(DROVEN_BOLT, NO_MKOBJ_FLAGS);
|
||||
else if(obj->oartifact == ART_LIECLEAVER) otmp = mksobj(DROVEN_BOLT, NO_MKOBJ_FLAGS);
|
||||
else if(obj->oartifact == ART_BELTHRONDING) otmp = mksobj(ELVEN_ARROW, NO_MKOBJ_FLAGS);
|
||||
else otmp = mksobj(ROCK, NO_MKOBJ_FLAGS);
|
||||
|
||||
if (!otmp) goto nothing_special;
|
||||
otmp->blessed = obj->blessed;
|
||||
|
@ -5268,7 +5268,7 @@ arti_invoke(obj)
|
|||
}
|
||||
else if(u.dx || u.dy) {
|
||||
pline("Death Reborn Revolution!");
|
||||
pseudo = mksobj(SPE_MAGIC_MISSILE, FALSE, FALSE);
|
||||
pseudo = mksobj(SPE_MAGIC_MISSILE, MKOBJ_NOINIT);
|
||||
pseudo->blessed = pseudo->cursed = 0;
|
||||
pseudo->quan = 20L; /* do not let useup get it */
|
||||
weffects(pseudo);
|
||||
|
@ -5340,7 +5340,7 @@ arti_invoke(obj)
|
|||
}
|
||||
else if(u.dx || u.dy) {
|
||||
pline("Dead Scream.");
|
||||
pseudo = mksobj(SPE_MAGIC_MISSILE, FALSE, FALSE);
|
||||
pseudo = mksobj(SPE_MAGIC_MISSILE, MKOBJ_NOINIT);
|
||||
pseudo->blessed = pseudo->cursed = 0;
|
||||
pseudo->quan = 20L; /* do not let useup get it */
|
||||
weffects(pseudo);
|
||||
|
@ -5466,7 +5466,7 @@ arti_invoke(obj)
|
|||
bhitpos.x = u.ux;
|
||||
bhitpos.y = u.uy;
|
||||
pline("Getsuga Tensho!");
|
||||
pseudo = mksobj(SPE_FORCE_BOLT, FALSE, FALSE);
|
||||
pseudo = mksobj(SPE_FORCE_BOLT, MKOBJ_NOINIT);
|
||||
pseudo->blessed = pseudo->cursed = 0;
|
||||
pseudo->quan = 20L;
|
||||
while(range-- > 0) {
|
||||
|
@ -5618,7 +5618,7 @@ arti_invoke(obj)
|
|||
coord cc;
|
||||
|
||||
energy = toosoon ? 25 : 15;
|
||||
pseudo = mksobj(SPE_FIREBALL, FALSE, FALSE);
|
||||
pseudo = mksobj(SPE_FIREBALL, MKOBJ_NOINIT);
|
||||
pseudo->blessed = pseudo->cursed = 0;
|
||||
pseudo->quan = 20L; /* do not let useup get it */
|
||||
role_skill = max(P_SKILL(uwep_skill_type()), P_SKILL(spell_skilltype(pseudo->otyp)) );
|
||||
|
@ -5793,7 +5793,7 @@ arti_invoke(obj)
|
|||
for(i = 12; i > 0; i--){
|
||||
int xadj=0;
|
||||
int yadj=0;
|
||||
otmp = mksobj(HEAVY_IRON_BALL, TRUE, FALSE);
|
||||
otmp = mksobj(HEAVY_IRON_BALL, NO_MKOBJ_FLAGS);
|
||||
otmp->blessed = 0;
|
||||
otmp->cursed = 0;
|
||||
if(u.dy == 0) yadj = d(1,3)-2;
|
||||
|
@ -6105,7 +6105,7 @@ arti_invoke(obj)
|
|||
strcmp(buf, "Fiat!") == 0 ){//Fiat: Let it be. Creates food. One charge.
|
||||
if( (obj->spe > -7)){
|
||||
exercise(A_WIS, TRUE);
|
||||
otmp = mksobj(FOOD_RATION, TRUE, FALSE);
|
||||
otmp = mksobj(FOOD_RATION, NO_MKOBJ_FLAGS);
|
||||
hold_another_object(otmp, "Suddenly %s out.",
|
||||
aobjnam(otmp, "fall"), (const char *)0);
|
||||
obj->spe--; // lose charge
|
||||
|
@ -6118,7 +6118,7 @@ arti_invoke(obj)
|
|||
if( (obj->spe > -7) ){
|
||||
exercise(A_WIS, TRUE);
|
||||
exercise(A_WIS, TRUE);
|
||||
pseudo = mksobj(SPE_LIGHT, FALSE, FALSE);
|
||||
pseudo = mksobj(SPE_LIGHT, MKOBJ_NOINIT);
|
||||
pseudo->blessed = pseudo->cursed = 0;
|
||||
pseudo->quan = 20L; /* do not let useup get it */
|
||||
litroom(TRUE,pseudo);
|
||||
|
@ -6132,13 +6132,13 @@ arti_invoke(obj)
|
|||
strcmp(buf, "Ecce!") == 0 ){//Ecce: See. Casts detect monsters and detect unseen. Two charges.
|
||||
if( (obj->spe > -6) ){
|
||||
exercise(A_WIS, TRUE);
|
||||
pseudo = mksobj(SPE_DETECT_MONSTERS, FALSE, FALSE);
|
||||
pseudo = mksobj(SPE_DETECT_MONSTERS, MKOBJ_NOINIT);
|
||||
pseudo->blessed = pseudo->cursed = 0;
|
||||
pseudo->blessed = TRUE;
|
||||
pseudo->quan = 20L; /* do not let useup get it */
|
||||
(void) peffects(pseudo);
|
||||
obfree(pseudo, (struct obj *)0); /* now, get rid of it */
|
||||
pseudo = mksobj(SPE_DETECT_UNSEEN, FALSE, FALSE);
|
||||
pseudo = mksobj(SPE_DETECT_UNSEEN, MKOBJ_NOINIT);
|
||||
pseudo->blessed = pseudo->cursed = 0;
|
||||
pseudo->blessed = TRUE;
|
||||
pseudo->quan = 20L; /* do not let useup get it */
|
||||
|
@ -6166,7 +6166,7 @@ arti_invoke(obj)
|
|||
}
|
||||
else if(strcmp(buf, "Rex") == 0){//Rex: King. Grants Levitation. Three charges.
|
||||
if( (artinstance[ART_ROD_OF_SEVEN_PARTS].RoSPflights > 0) ){
|
||||
pseudo = mksobj(SPE_LEVITATION, FALSE, FALSE);
|
||||
pseudo = mksobj(SPE_LEVITATION, MKOBJ_NOINIT);
|
||||
pseudo->blessed = pseudo->cursed = 0;
|
||||
pseudo->blessed = TRUE;
|
||||
pseudo->quan = 23L; /* do not let useup get it */
|
||||
|
@ -6179,7 +6179,7 @@ arti_invoke(obj)
|
|||
else if( (obj->spe > -5) ){
|
||||
exercise(A_WIS, TRUE);
|
||||
exercise(A_DEX, TRUE);
|
||||
pseudo = mksobj(SPE_LEVITATION, FALSE, FALSE);
|
||||
pseudo = mksobj(SPE_LEVITATION, MKOBJ_NOINIT);
|
||||
pseudo->blessed = pseudo->cursed = 0;
|
||||
pseudo->blessed = TRUE;
|
||||
pseudo->quan = 23L; /* do not let useup get it */
|
||||
|
@ -6226,13 +6226,13 @@ arti_invoke(obj)
|
|||
strcmp(buf, "Fiat Justitia!") == 0 ){//Fiat Justitia: Let justice be done. Slows, fears and damages target. Two charges.
|
||||
if( (obj->spe > 1) ){
|
||||
exercise(A_WIS, TRUE);
|
||||
pseudo = mksobj(SPE_SLOW_MONSTER, FALSE, FALSE);
|
||||
pseudo = mksobj(SPE_SLOW_MONSTER, MKOBJ_NOINIT);
|
||||
pseudo->blessed = pseudo->cursed = 0;
|
||||
pseudo->quan = 20L; /* do not let useup get it */
|
||||
pseudo2 = mksobj(SPE_FORCE_BOLT, FALSE, FALSE);
|
||||
pseudo2 = mksobj(SPE_FORCE_BOLT, MKOBJ_NOINIT);
|
||||
pseudo2->blessed = pseudo2->cursed = 0;
|
||||
pseudo2->quan = 20L; /* do not let useup get it */
|
||||
pseudo3 = mksobj(SPE_CAUSE_FEAR, FALSE, FALSE);
|
||||
pseudo3 = mksobj(SPE_CAUSE_FEAR, MKOBJ_NOINIT);
|
||||
pseudo3->blessed = pseudo3->cursed = 0;
|
||||
pseudo3->quan = 20L; /* do not let useup get it */
|
||||
if(u.ulevel > 13) pseudo3->blessed = TRUE;
|
||||
|
@ -6266,7 +6266,7 @@ arti_invoke(obj)
|
|||
strcmp(buf, "Lex Rex!") == 0 ){//Lex Rex: Law is King. Heals aflictions, removes curses. Three charges.
|
||||
if( (obj->spe > 2) ){
|
||||
exercise(A_WIS, TRUE);
|
||||
pseudo = mksobj(SPE_REMOVE_CURSE, FALSE, FALSE);
|
||||
pseudo = mksobj(SPE_REMOVE_CURSE, MKOBJ_NOINIT);
|
||||
pseudo->blessed = pseudo->cursed = 0;
|
||||
pseudo->quan = 20L; /* do not let useup get it */
|
||||
if(u.ulevel > 13) pseudo->blessed = TRUE;
|
||||
|
@ -6290,7 +6290,7 @@ arti_invoke(obj)
|
|||
strcmp(buf, "Ecce! Lex Rex.") == 0 ||
|
||||
strcmp(buf, "Ecce! Lex Rex!") == 0){//Ecce! Lex Rex: See! Law is King. Charms monsters. Five charges.
|
||||
if( (obj->spe > 4) ){
|
||||
pseudo = mksobj(SPE_CHARM_MONSTER, FALSE, FALSE);
|
||||
pseudo = mksobj(SPE_CHARM_MONSTER, MKOBJ_NOINIT);
|
||||
pseudo->blessed = pseudo->cursed = 0;
|
||||
pseudo->quan = 20L; /* do not let useup get it */
|
||||
if(u.ulevel > 13) pseudo->blessed = TRUE;
|
||||
|
@ -6348,7 +6348,7 @@ arti_invoke(obj)
|
|||
mtmp->mhp = mtmp->mhpmax;
|
||||
}
|
||||
}
|
||||
pseudo = mksobj(SPE_CHARM_MONSTER, FALSE, FALSE);
|
||||
pseudo = mksobj(SPE_CHARM_MONSTER, MKOBJ_NOINIT);
|
||||
pseudo->blessed = pseudo->cursed = 0;
|
||||
pseudo->quan = 20L; /* do not let useup get it */
|
||||
if(u.ulevel > 13) pseudo->blessed = TRUE;
|
||||
|
@ -6505,7 +6505,7 @@ arti_invoke(obj)
|
|||
case 0:
|
||||
break;
|
||||
case SELECT_WHISTLE:
|
||||
otmp = mksobj(MAGIC_WHISTLE, TRUE, FALSE);
|
||||
otmp = mksobj(MAGIC_WHISTLE, NO_MKOBJ_FLAGS);
|
||||
otmp->blessed = obj->blessed;
|
||||
otmp->cursed = obj->cursed;
|
||||
otmp->bknown = obj->bknown;
|
||||
|
@ -6513,7 +6513,7 @@ arti_invoke(obj)
|
|||
aobjnam(otmp, "fall"), (const char *)0);
|
||||
break;
|
||||
case SELECT_LEASH:
|
||||
otmp = mksobj(LEASH, TRUE, FALSE);
|
||||
otmp = mksobj(LEASH, NO_MKOBJ_FLAGS);
|
||||
otmp->blessed = obj->blessed;
|
||||
otmp->cursed = obj->cursed;
|
||||
otmp->bknown = obj->bknown;
|
||||
|
@ -6521,7 +6521,7 @@ arti_invoke(obj)
|
|||
aobjnam(otmp, "fall"), (const char *)0);
|
||||
break;
|
||||
case SELECT_SADDLE:
|
||||
otmp = mksobj(SADDLE, TRUE, FALSE);
|
||||
otmp = mksobj(SADDLE, NO_MKOBJ_FLAGS);
|
||||
otmp->blessed = obj->blessed;
|
||||
otmp->cursed = obj->cursed;
|
||||
otmp->bknown = obj->bknown;
|
||||
|
@ -6529,7 +6529,7 @@ arti_invoke(obj)
|
|||
aobjnam(otmp, "fall"), (const char *)0);
|
||||
break;
|
||||
case SELECT_TRIPE:
|
||||
otmp = mksobj(TRIPE_RATION, TRUE, FALSE);
|
||||
otmp = mksobj(TRIPE_RATION, NO_MKOBJ_FLAGS);
|
||||
otmp->blessed = obj->blessed;
|
||||
otmp->cursed = obj->cursed;
|
||||
otmp->bknown = obj->bknown;
|
||||
|
@ -6537,7 +6537,7 @@ arti_invoke(obj)
|
|||
aobjnam(otmp, "fall"), (const char *)0);
|
||||
break;
|
||||
case SELECT_APPLE:
|
||||
otmp = mksobj(APPLE, TRUE, FALSE);
|
||||
otmp = mksobj(APPLE, NO_MKOBJ_FLAGS);
|
||||
otmp->blessed = obj->blessed;
|
||||
otmp->cursed = obj->cursed;
|
||||
otmp->bknown = obj->bknown;
|
||||
|
@ -6545,7 +6545,7 @@ arti_invoke(obj)
|
|||
aobjnam(otmp, "fall"), (const char *)0);
|
||||
break;
|
||||
case SELECT_BANANA:
|
||||
otmp = mksobj(BANANA, TRUE, FALSE);
|
||||
otmp = mksobj(BANANA, NO_MKOBJ_FLAGS);
|
||||
otmp->blessed = obj->blessed;
|
||||
otmp->cursed = obj->cursed;
|
||||
otmp->bknown = obj->bknown;
|
||||
|
@ -6996,7 +6996,7 @@ arti_invoke(obj)
|
|||
}
|
||||
break;
|
||||
case COMMAND_AMMO:
|
||||
otmp = mksobj(JAVELIN, TRUE, FALSE);
|
||||
otmp = mksobj(JAVELIN, NO_MKOBJ_FLAGS);
|
||||
if (!otmp) break;
|
||||
otmp->blessed = obj->blessed;
|
||||
otmp->cursed = obj->cursed;
|
||||
|
@ -7123,7 +7123,7 @@ arti_invoke(obj)
|
|||
/* charged BofO */
|
||||
}break;
|
||||
case COMMAND_BULLETS:{
|
||||
otmp = mksobj(SILVER_BULLET, TRUE, FALSE);
|
||||
otmp = mksobj(SILVER_BULLET, NO_MKOBJ_FLAGS);
|
||||
otmp->blessed = obj->blessed;
|
||||
otmp->cursed = obj->cursed;
|
||||
otmp->bknown = obj->bknown;
|
||||
|
@ -7140,7 +7140,7 @@ arti_invoke(obj)
|
|||
aobjnam(otmp, "fall"), (const char *)0);
|
||||
}break;
|
||||
case COMMAND_ROCKETS:{
|
||||
otmp = mksobj(ROCKET, TRUE, FALSE);
|
||||
otmp = mksobj(ROCKET, NO_MKOBJ_FLAGS);
|
||||
otmp->blessed = obj->blessed;
|
||||
otmp->cursed = obj->cursed;
|
||||
otmp->bknown = obj->bknown;
|
||||
|
@ -7159,7 +7159,7 @@ arti_invoke(obj)
|
|||
annulusFunc = 0;
|
||||
break;
|
||||
}
|
||||
otmp = mksobj(RAYGUN, TRUE, FALSE);
|
||||
otmp = mksobj(RAYGUN, NO_MKOBJ_FLAGS);
|
||||
otmp->blessed = obj->blessed;
|
||||
otmp->cursed = obj->cursed;
|
||||
otmp->bknown = obj->bknown;
|
||||
|
@ -7374,7 +7374,7 @@ arti_invoke(obj)
|
|||
case BURN_WARD: {
|
||||
if(uarms && uarms == obj){
|
||||
struct obj *scroll;
|
||||
scroll = mksobj(SCR_WARDING, TRUE, FALSE);
|
||||
scroll = mksobj(SCR_WARDING, NO_MKOBJ_FLAGS);
|
||||
scroll->blessed = obj->blessed;
|
||||
scroll->cursed = obj->cursed;
|
||||
seffects(scroll);
|
||||
|
@ -7387,7 +7387,7 @@ arti_invoke(obj)
|
|||
if(!getdir((char *)0))
|
||||
break;
|
||||
struct obj *wand;
|
||||
wand = mksobj(WAN_UNDEAD_TURNING, TRUE, FALSE);
|
||||
wand = mksobj(WAN_UNDEAD_TURNING, NO_MKOBJ_FLAGS);
|
||||
wand->blessed = obj->blessed;
|
||||
wand->cursed = obj->cursed;
|
||||
wand->ovar1 = 1;
|
||||
|
@ -7413,7 +7413,7 @@ arti_invoke(obj)
|
|||
break;
|
||||
}
|
||||
struct obj *wand;
|
||||
wand = mksobj(WAN_FIRE, TRUE, FALSE);
|
||||
wand = mksobj(WAN_FIRE, NO_MKOBJ_FLAGS);
|
||||
wand->blessed = obj->blessed;
|
||||
wand->cursed= obj->cursed;
|
||||
wand->ovar1 = 1;
|
||||
|
@ -7463,20 +7463,20 @@ arti_invoke(obj)
|
|||
struct obj *otmp;
|
||||
switch(rn2(5)){
|
||||
case 0:
|
||||
otmp = mksobj(TIN, TRUE, FALSE);
|
||||
otmp = mksobj(TIN, NO_MKOBJ_FLAGS);
|
||||
otmp->corpsenm = PM_LICHEN;
|
||||
break;
|
||||
case 1:
|
||||
otmp = mksobj(POT_BOOZE, TRUE, FALSE);
|
||||
otmp = mksobj(POT_BOOZE, NO_MKOBJ_FLAGS);
|
||||
break;
|
||||
case 2:
|
||||
otmp = mksobj(SCR_MAGIC_MAPPING, TRUE, FALSE);
|
||||
otmp = mksobj(SCR_MAGIC_MAPPING, NO_MKOBJ_FLAGS);
|
||||
break;
|
||||
case 3:
|
||||
otmp = mksobj(OILSKIN_CLOAK, TRUE, FALSE);
|
||||
otmp = mksobj(OILSKIN_CLOAK, NO_MKOBJ_FLAGS);
|
||||
break;
|
||||
case 4:
|
||||
otmp = mksobj(CRYSTAL_HELM, TRUE, FALSE);
|
||||
otmp = mksobj(CRYSTAL_HELM, NO_MKOBJ_FLAGS);
|
||||
break;
|
||||
}
|
||||
otmp->blessed = obj->blessed;
|
||||
|
@ -7497,10 +7497,10 @@ arti_invoke(obj)
|
|||
case 0:
|
||||
break;
|
||||
case COMMAND_IMPROVE_WEP:
|
||||
scroll = mksobj(SCR_ENCHANT_WEAPON, TRUE, FALSE);
|
||||
scroll = mksobj(SCR_ENCHANT_WEAPON, NO_MKOBJ_FLAGS);
|
||||
break;
|
||||
case COMMAND_IMPROVE_ARM:
|
||||
scroll = mksobj(SCR_ENCHANT_ARMOR, TRUE, FALSE);
|
||||
scroll = mksobj(SCR_ENCHANT_ARMOR, NO_MKOBJ_FLAGS);
|
||||
break;
|
||||
}
|
||||
scroll->blessed = obj->blessed;
|
||||
|
@ -7813,7 +7813,7 @@ arti_invoke(obj)
|
|||
break;
|
||||
case INVOKE_DARK:{
|
||||
struct obj *wand;
|
||||
wand = mksobj(WAN_DARKNESS, FALSE, FALSE);
|
||||
wand = mksobj(WAN_DARKNESS, MKOBJ_NOINIT);
|
||||
wand->spe = 1;
|
||||
wand->blessed = 1;
|
||||
wand->ovar1 = 1;
|
||||
|
|
40
src/bones.c
40
src/bones.c
|
@ -235,64 +235,64 @@ int y;
|
|||
/* it's not necessary to properly remove the thoughts; the player is dead */
|
||||
if(u.thoughts & ANTI_CLOCKWISE_METAMORPHOSIS){
|
||||
u.thoughts &= ~ANTI_CLOCKWISE_METAMORPHOSIS;
|
||||
otmp = mksobj(ANTI_CLOCKWISE_METAMORPHOSIS_G, FALSE, FALSE);
|
||||
otmp = mksobj(ANTI_CLOCKWISE_METAMORPHOSIS_G, MKOBJ_NOINIT);
|
||||
} else if(u.thoughts & CLOCKWISE_METAMORPHOSIS){
|
||||
u.thoughts &= ~CLOCKWISE_METAMORPHOSIS;
|
||||
otmp = mksobj(CLOCKWISE_METAMORPHOSIS_GLYPH, FALSE, FALSE);
|
||||
otmp = mksobj(CLOCKWISE_METAMORPHOSIS_GLYPH, MKOBJ_NOINIT);
|
||||
} else if(u.thoughts & ARCANE_BULWARK){
|
||||
u.thoughts &= ~ARCANE_BULWARK;
|
||||
otmp = mksobj(SPARKLING_LAKE_GLYPH, FALSE, FALSE);
|
||||
otmp = mksobj(SPARKLING_LAKE_GLYPH, MKOBJ_NOINIT);
|
||||
} else if(u.thoughts & DISSIPATING_BULWARK){
|
||||
u.thoughts &= ~DISSIPATING_BULWARK;
|
||||
otmp = mksobj(FADING_LAKE_GLYPH, FALSE, FALSE);
|
||||
otmp = mksobj(FADING_LAKE_GLYPH, MKOBJ_NOINIT);
|
||||
} else if(u.thoughts & SMOLDERING_BULWARK){
|
||||
u.thoughts &= ~SMOLDERING_BULWARK;
|
||||
otmp = mksobj(SMOKING_LAKE_GLYPH, FALSE, FALSE);
|
||||
otmp = mksobj(SMOKING_LAKE_GLYPH, MKOBJ_NOINIT);
|
||||
} else if(u.thoughts & FROSTED_BULWARK){
|
||||
u.thoughts &= ~FROSTED_BULWARK;
|
||||
otmp = mksobj(FROSTED_LAKE_GLYPH, FALSE, FALSE);
|
||||
otmp = mksobj(FROSTED_LAKE_GLYPH, MKOBJ_NOINIT);
|
||||
} else if(u.thoughts & BLOOD_RAPTURE){
|
||||
u.thoughts &= ~BLOOD_RAPTURE;
|
||||
otmp = mksobj(RAPTUROUS_EYE_GLYPH, FALSE, FALSE);
|
||||
otmp = mksobj(RAPTUROUS_EYE_GLYPH, MKOBJ_NOINIT);
|
||||
} else if(u.thoughts & CLAWMARK){
|
||||
u.thoughts &= ~CLAWMARK;
|
||||
otmp = mksobj(CLAWMARK_GLYPH, FALSE, FALSE);
|
||||
otmp = mksobj(CLAWMARK_GLYPH, MKOBJ_NOINIT);
|
||||
} else if(u.thoughts & CLEAR_DEEPS){
|
||||
u.thoughts &= ~CLEAR_DEEPS;
|
||||
otmp = mksobj(CLEAR_SEA_GLYPH, FALSE, FALSE);
|
||||
otmp = mksobj(CLEAR_SEA_GLYPH, MKOBJ_NOINIT);
|
||||
} else if(u.thoughts & DEEP_SEA){
|
||||
u.thoughts &= ~DEEP_SEA;
|
||||
otmp = mksobj(DEEP_SEA_GLYPH, FALSE, FALSE);
|
||||
otmp = mksobj(DEEP_SEA_GLYPH, MKOBJ_NOINIT);
|
||||
} else if(u.thoughts & COMMUNION){
|
||||
u.thoughts &= ~COMMUNION;
|
||||
otmp = mksobj(COMMUNION_GLYPH, FALSE, FALSE);
|
||||
otmp = mksobj(COMMUNION_GLYPH, MKOBJ_NOINIT);
|
||||
} else if(u.thoughts & CORRUPTION){
|
||||
u.thoughts &= ~CORRUPTION;
|
||||
otmp = mksobj(CORRUPTION_GLYPH, FALSE, FALSE);
|
||||
otmp = mksobj(CORRUPTION_GLYPH, MKOBJ_NOINIT);
|
||||
} else if(u.thoughts & EYE_THOUGHT){
|
||||
u.thoughts &= ~EYE_THOUGHT;
|
||||
otmp = mksobj(EYE_GLYPH, FALSE, FALSE);
|
||||
otmp = mksobj(EYE_GLYPH, MKOBJ_NOINIT);
|
||||
} else if(u.thoughts & FORMLESS_VOICE){
|
||||
u.thoughts &= ~FORMLESS_VOICE;
|
||||
otmp = mksobj(FORMLESS_VOICE_GLYPH, FALSE, FALSE);
|
||||
otmp = mksobj(FORMLESS_VOICE_GLYPH, MKOBJ_NOINIT);
|
||||
} else if(u.thoughts & GUIDANCE){
|
||||
u.thoughts &= ~GUIDANCE;
|
||||
otmp = mksobj(GUIDANCE_GLYPH, FALSE, FALSE);
|
||||
otmp = mksobj(GUIDANCE_GLYPH, MKOBJ_NOINIT);
|
||||
} else if(u.thoughts & IMPURITY){
|
||||
u.thoughts &= ~IMPURITY;
|
||||
otmp = mksobj(IMPURITY_GLYPH, FALSE, FALSE);
|
||||
otmp = mksobj(IMPURITY_GLYPH, MKOBJ_NOINIT);
|
||||
} else if(u.thoughts & MOON){
|
||||
u.thoughts &= ~MOON;
|
||||
otmp = mksobj(MOON_GLYPH, FALSE, FALSE);
|
||||
otmp = mksobj(MOON_GLYPH, MKOBJ_NOINIT);
|
||||
} else if(u.thoughts & WRITHE){
|
||||
u.thoughts &= ~WRITHE;
|
||||
otmp = mksobj(WRITHE_GLYPH, FALSE, FALSE);
|
||||
otmp = mksobj(WRITHE_GLYPH, MKOBJ_NOINIT);
|
||||
} else if(u.thoughts & RADIANCE){
|
||||
u.thoughts &= ~RADIANCE;
|
||||
otmp = mksobj(RADIANCE_GLYPH, FALSE, FALSE);
|
||||
otmp = mksobj(RADIANCE_GLYPH, MKOBJ_NOINIT);
|
||||
} else if(u.thoughts & BEASTS_EMBRACE){
|
||||
u.thoughts &= ~BEASTS_EMBRACE;
|
||||
otmp = mksobj(BEAST_S_EMBRACE_GLYPH, FALSE, FALSE);
|
||||
otmp = mksobj(BEAST_S_EMBRACE_GLYPH, MKOBJ_NOINIT);
|
||||
} else {
|
||||
pline("Can't find glyph!");
|
||||
}
|
||||
|
|
|
@ -330,7 +330,7 @@ gcrownu()
|
|||
obj = oname(uwep, artiname(arti));
|
||||
}
|
||||
else {
|
||||
obj = oname(mksobj(artilist[arti].otyp, FALSE, FALSE), artiname(arti));
|
||||
obj = oname(mksobj(artilist[arti].otyp, MKOBJ_NOINIT), artiname(arti));
|
||||
}
|
||||
|
||||
/* enchant, if allowable */
|
||||
|
|
28
src/dig.c
28
src/dig.c
|
@ -434,7 +434,7 @@ dig()
|
|||
) (void) rnd_treefruit_at(dpx, dpy);
|
||||
}
|
||||
for(numsticks = d(2,4)-1; numsticks > 0; numsticks--){
|
||||
staff = mksobj_at(rn2(2) ? QUARTERSTAFF : CLUB, dpx, dpy, FALSE, FALSE);
|
||||
staff = mksobj_at(rn2(2) ? QUARTERSTAFF : CLUB, dpx, dpy, MKOBJ_NOINIT);
|
||||
set_material_gm(staff, WOOD);
|
||||
staff->spe = 0;
|
||||
staff->cursed = staff->blessed = FALSE;
|
||||
|
@ -450,14 +450,14 @@ dig()
|
|||
struct obj *otmp;
|
||||
if(!is_lightsaber(digitem)){
|
||||
if(!Is_belial_level(&u.uz) && !rn2(20)){
|
||||
otmp = mksobj_at(BOULDER, dpx, dpy, FALSE, FALSE);
|
||||
otmp = mksobj_at(BOULDER, dpx, dpy, MKOBJ_NOINIT);
|
||||
otmp->owt = weight(otmp);
|
||||
} else {
|
||||
if(Is_belial_level(&u.uz)){
|
||||
otmp = mksobj_at(DROVEN_DAGGER, dpx, dpy, FALSE, FALSE);
|
||||
otmp = mksobj_at(DROVEN_DAGGER, dpx, dpy, MKOBJ_NOINIT);
|
||||
set_material_gm(otmp, OBSIDIAN_MT);
|
||||
} else {
|
||||
otmp = mksobj_at(ROCK, dpx, dpy, FALSE, FALSE);
|
||||
otmp = mksobj_at(ROCK, dpx, dpy, MKOBJ_NOINIT);
|
||||
}
|
||||
set_obj_quan(otmp, rn1(20, 20));
|
||||
}
|
||||
|
@ -486,10 +486,10 @@ dig()
|
|||
}
|
||||
if(!is_lightsaber(digitem)){
|
||||
if(Is_belial_level(&u.uz)){
|
||||
otmp = mksobj_at(DROVEN_DAGGER, dpx, dpy, FALSE, FALSE);
|
||||
otmp = mksobj_at(DROVEN_DAGGER, dpx, dpy, MKOBJ_NOINIT);
|
||||
set_material_gm(otmp, OBSIDIAN_MT);
|
||||
} else {
|
||||
otmp = mksobj_at(ROCK, dpx, dpy, FALSE, FALSE);
|
||||
otmp = mksobj_at(ROCK, dpx, dpy, MKOBJ_NOINIT);
|
||||
}
|
||||
set_obj_quan(otmp, rn1(20, 20));
|
||||
}
|
||||
|
@ -1347,7 +1347,7 @@ fakerocktrap()
|
|||
int dmg = d(2,6); /* should be std ROCK dmg? */
|
||||
struct obj *otmp;
|
||||
|
||||
otmp = mksobj_at(ROCK, u.ux, u.uy, TRUE, FALSE);
|
||||
otmp = mksobj_at(ROCK, u.ux, u.uy, NO_MKOBJ_FLAGS);
|
||||
set_obj_quan(otmp, 1);
|
||||
|
||||
pline("A trap door in %s opens and %s falls on your %s!",
|
||||
|
@ -1889,30 +1889,30 @@ register struct monst *mtmp;
|
|||
}
|
||||
}
|
||||
if(Is_belial_level(&u.uz)){
|
||||
otmp = mksobj_at(DROVEN_DAGGER, mtmp->mx, mtmp->my, FALSE, FALSE);
|
||||
otmp = mksobj_at(DROVEN_DAGGER, mtmp->mx, mtmp->my, MKOBJ_NOINIT);
|
||||
set_material_gm(otmp, OBSIDIAN_MT);
|
||||
} else {
|
||||
otmp = mksobj_at(ROCK, mtmp->mx, mtmp->my, FALSE, FALSE);
|
||||
otmp = mksobj_at(ROCK, mtmp->mx, mtmp->my, MKOBJ_NOINIT);
|
||||
}
|
||||
set_obj_quan(otmp, rn1(20, 20));
|
||||
} else if (IS_TREE(here->typ)) {
|
||||
int numsticks;
|
||||
here->typ = ROOM;
|
||||
for(numsticks = d(2,4)-1; numsticks > 0; numsticks--){
|
||||
otmp = mksobj_at(rn2(2) ? QUARTERSTAFF : CLUB, mtmp->mx, mtmp->my, FALSE, FALSE);
|
||||
otmp = mksobj_at(rn2(2) ? QUARTERSTAFF : CLUB, mtmp->mx, mtmp->my, MKOBJ_NOINIT);
|
||||
set_material_gm(otmp, WOOD);
|
||||
otmp->spe = 0;
|
||||
otmp->cursed = otmp->blessed = FALSE;
|
||||
}
|
||||
} else {
|
||||
here->typ = CORR;
|
||||
if (!Is_belial_level(&u.uz) && !rn2(20)) mksobj_at(BOULDER, mtmp->mx, mtmp->my, TRUE, FALSE);
|
||||
if (!Is_belial_level(&u.uz) && !rn2(20)) mksobj_at(BOULDER, mtmp->mx, mtmp->my, NO_MKOBJ_FLAGS);
|
||||
else {
|
||||
if(Is_belial_level(&u.uz)){
|
||||
otmp = mksobj_at(DROVEN_DAGGER, mtmp->mx, mtmp->my, FALSE, FALSE);
|
||||
otmp = mksobj_at(DROVEN_DAGGER, mtmp->mx, mtmp->my, MKOBJ_NOINIT);
|
||||
set_material_gm(otmp, OBSIDIAN_MT);
|
||||
} else {
|
||||
otmp = mksobj_at(ROCK, mtmp->mx, mtmp->my, FALSE, FALSE);
|
||||
otmp = mksobj_at(ROCK, mtmp->mx, mtmp->my, MKOBJ_NOINIT);
|
||||
}
|
||||
set_obj_quan(otmp, rn1(20, 20));
|
||||
}
|
||||
|
@ -1974,7 +1974,7 @@ register int zx, zy, digdepth;
|
|||
pline("It falls on your %s!", body_part(HEAD));
|
||||
losehp(rnd((uarmh && is_hard(uarmh)) ? 2 : 6),
|
||||
"falling rock", KILLED_BY_AN);
|
||||
otmp = mksobj_at(ROCK, u.ux, u.uy, FALSE, FALSE);
|
||||
otmp = mksobj_at(ROCK, u.ux, u.uy, MKOBJ_NOINIT);
|
||||
if (otmp) {
|
||||
(void)xname(otmp); /* set dknown, maybe bknown */
|
||||
stackobj(otmp);
|
||||
|
|
4
src/do.c
4
src/do.c
|
@ -968,7 +968,7 @@ doup()
|
|||
) {
|
||||
if(uwep && uwep->oartifact == ART_ROD_OF_SEVEN_PARTS && artinstance[ART_ROD_OF_SEVEN_PARTS].RoSPflights > 0){
|
||||
struct obj *pseudo;
|
||||
pseudo = mksobj(SPE_LEVITATION, FALSE, FALSE);
|
||||
pseudo = mksobj(SPE_LEVITATION, MKOBJ_NOINIT);
|
||||
pseudo->blessed = pseudo->cursed = 0;
|
||||
pseudo->blessed = TRUE;
|
||||
pseudo->quan = 23L; /* do not let useup get it */
|
||||
|
@ -1690,7 +1690,7 @@ final_level()
|
|||
mtmp->m_lev = rn1(8,15);
|
||||
mtmp->mhp = mtmp->mhpmax = 8*mtmp->m_lev - rnd(7);
|
||||
if ((otmp = select_hwep(mtmp)) == 0) {
|
||||
otmp = mksobj(SABER, FALSE, FALSE);
|
||||
otmp = mksobj(SABER, MKOBJ_NOINIT);
|
||||
if (mpickobj(mtmp, otmp))
|
||||
panic("merged weapon?");
|
||||
}
|
||||
|
|
|
@ -247,7 +247,7 @@ makedog()
|
|||
#ifdef STEED
|
||||
/* Horses already wear a saddle */
|
||||
if ((pettype == PM_PONY || pettype == PM_GIANT_SPIDER || pettype == PM_SMALL_CAVE_LIZARD || pettype == PM_RIDING_PSEUDODRAGON)
|
||||
&& !!(otmp = mksobj(SADDLE, TRUE, FALSE))
|
||||
&& !!(otmp = mksobj(SADDLE, 0))
|
||||
) {
|
||||
if (mpickobj(mtmp, otmp))
|
||||
panic("merged saddle?");
|
||||
|
|
15
src/dokick.c
15
src/dokick.c
|
@ -785,8 +785,7 @@ dokick()
|
|||
i = Luck + 1;
|
||||
if(i > 6) i = 6;
|
||||
while(i--)
|
||||
(void) mksobj_at(rnd_class(DILITHIUM_CRYSTAL,
|
||||
LUCKSTONE-1), x, y, FALSE, TRUE);
|
||||
(void) mksobj_at(rnd_class(DILITHIUM_CRYSTAL,LUCKSTONE-1), x, y, MKOBJ_NOINIT|MKOBJ_ARTIF);
|
||||
if (Blind)
|
||||
You("kick %s loose!", something);
|
||||
else {
|
||||
|
@ -875,7 +874,7 @@ dokick()
|
|||
if (nfall != nfruit) {
|
||||
/* scatter left some in the tree, but treefruit
|
||||
* may not refer to the correct object */
|
||||
treefruit = mksobj(frtype, TRUE, FALSE);
|
||||
treefruit = mksobj(frtype, NO_MKOBJ_FLAGS);
|
||||
treefruit->quan = nfruit-nfall;
|
||||
treefruit->spe = frtspe;
|
||||
pline("%ld %s got caught in the branches.",
|
||||
|
@ -929,7 +928,7 @@ dokick()
|
|||
if (nfall != nfruit) {
|
||||
/* scatter left some in the tree, but treefruit
|
||||
* may not refer to the correct object */
|
||||
treefruit = mksobj(frtype, TRUE, FALSE);
|
||||
treefruit = mksobj(frtype, NO_MKOBJ_FLAGS);
|
||||
treefruit->quan = nfruit-nfall;
|
||||
treefruit->spe = frtspe;
|
||||
pline("%ld %s got caught in the branches.",
|
||||
|
@ -1017,7 +1016,7 @@ dokick()
|
|||
if (nfall != nfruit) {
|
||||
/* scatter left some in the tree, but treefruit
|
||||
* may not refer to the correct object */
|
||||
treefruit = mksobj(frtype, TRUE, FALSE);
|
||||
treefruit = mksobj(frtype, NO_MKOBJ_FLAGS);
|
||||
treefruit->quan = nfruit-nfall;
|
||||
pline("%ld %s got caught in the branches.",
|
||||
nfruit-nfall, xname(treefruit));
|
||||
|
@ -1072,7 +1071,7 @@ dokick()
|
|||
if (nfall != nfruit) {
|
||||
/* scatter left some in the tree, but treefruit
|
||||
* may not refer to the correct object */
|
||||
treefruit = mksobj(frtype, TRUE, FALSE);
|
||||
treefruit = mksobj(frtype, NO_MKOBJ_FLAGS);
|
||||
treefruit->quan = nfruit-nfall;
|
||||
pline("%ld %s got caught in the branches.",
|
||||
nfruit-nfall, xname(treefruit));
|
||||
|
@ -1123,7 +1122,7 @@ dokick()
|
|||
maploc->typ = ROOM;
|
||||
maploc->looted = 0; /* don't leave loose ends.. */
|
||||
for(numsticks = d(1,4); numsticks > 0; numsticks--){
|
||||
staff = mksobj_at(rn2(2) ? QUARTERSTAFF : CLUB, x, y, FALSE, FALSE);
|
||||
staff = mksobj_at(rn2(2) ? QUARTERSTAFF : CLUB, x, y, MKOBJ_NOINIT);
|
||||
staff->spe = 0;
|
||||
staff->oeroded2 = 1;
|
||||
staff->blessed = FALSE;
|
||||
|
@ -1194,7 +1193,7 @@ dokick()
|
|||
if(!(maploc->looted & S_LRING)) { /* once per sink */
|
||||
if (!Blind)
|
||||
You("see a ring shining in its midst.");
|
||||
(void) mkobj_at(RING_CLASS, x, y, TRUE);
|
||||
(void) mkobj_at(RING_CLASS, x, y, MKOBJ_ARTIF);
|
||||
newsym(x, y);
|
||||
exercise(A_DEX, TRUE);
|
||||
exercise(A_WIS, TRUE); /* a discovery! */
|
||||
|
|
|
@ -527,7 +527,7 @@ register struct obj *otmp;
|
|||
|| otmp->unpaid)) {
|
||||
/* create a dummy duplicate to put on bill */
|
||||
verbalize("Hey, that was really rare!");
|
||||
pseudo = mksobj(POT_GAIN_LEVEL, FALSE, FALSE);
|
||||
pseudo = mksobj(POT_GAIN_LEVEL, MKOBJ_NOINIT);
|
||||
pseudo->blessed = pseudo->cursed = 0;
|
||||
bill_dummy_object(pseudo);
|
||||
obfree(pseudo, (struct obj *)0); /* now, get rid of it */
|
||||
|
@ -4448,7 +4448,7 @@ floorfood(verb,corpsecheck) /* get food from floor or pack */
|
|||
if ((c = yn_function(qbuf, ynqchars, 'n')) == 'y') {
|
||||
u.utrap = u.utraptype = 0;
|
||||
deltrap(ttmp);
|
||||
return mksobj(BEARTRAP, TRUE, FALSE);
|
||||
return mksobj(BEARTRAP, NO_MKOBJ_FLAGS);
|
||||
} else if (c == 'q') {
|
||||
return (struct obj *)0;
|
||||
}
|
||||
|
|
|
@ -829,7 +829,7 @@ int how;
|
|||
if (!rn2(10)) {
|
||||
struct obj *potion = mksobj((u.ulycn > LOW_PM && !rn2(3))
|
||||
? POT_WATER : POT_RESTORE_ABILITY,
|
||||
TRUE, FALSE);
|
||||
NO_MKOBJ_FLAGS);
|
||||
|
||||
bless(potion);
|
||||
(void) peffects(potion); /* always -1 for restore ability */
|
||||
|
@ -1320,7 +1320,7 @@ die:
|
|||
|
||||
if (count == 0L) continue;
|
||||
if (objects[typ].oc_class != GEM_CLASS || typ <= LAST_GEM) {
|
||||
otmp = mksobj(typ, FALSE, FALSE);
|
||||
otmp = mksobj(typ, MKOBJ_NOINIT);
|
||||
makeknown(otmp->otyp);
|
||||
otmp->known = 1; /* for fake amulets */
|
||||
otmp->dknown = 1; /* seen it (blindness fix) */
|
||||
|
|
|
@ -302,42 +302,42 @@ makerogueghost()
|
|||
ghost = christen_monst(ghost, roguename());
|
||||
|
||||
if (rn2(4)) {
|
||||
ghostobj = mksobj_at(FOOD_RATION, x, y, FALSE, FALSE);
|
||||
ghostobj = mksobj_at(FOOD_RATION, x, y, MKOBJ_NOINIT);
|
||||
ghostobj->quan = (long) rnd(7);
|
||||
ghostobj->owt = weight(ghostobj);
|
||||
}
|
||||
if (rn2(2)) {
|
||||
ghostobj = mksobj_at(MACE, x, y, FALSE, FALSE);
|
||||
ghostobj = mksobj_at(MACE, x, y, MKOBJ_NOINIT);
|
||||
ghostobj->spe = rnd(3);
|
||||
if (rn2(4)) curse(ghostobj);
|
||||
} else {
|
||||
ghostobj = mksobj_at(TWO_HANDED_SWORD, x, y, FALSE, FALSE);
|
||||
ghostobj = mksobj_at(TWO_HANDED_SWORD, x, y, MKOBJ_NOINIT);
|
||||
ghostobj->spe = rnd(5) - 2;
|
||||
if (rn2(4)) curse(ghostobj);
|
||||
}
|
||||
ghostobj = mksobj_at(BOW, x, y, FALSE, FALSE);
|
||||
ghostobj = mksobj_at(BOW, x, y, MKOBJ_NOINIT);
|
||||
ghostobj->spe = 1;
|
||||
if (rn2(4)) curse(ghostobj);
|
||||
|
||||
ghostobj = mksobj_at(ARROW, x, y, FALSE, FALSE);
|
||||
ghostobj = mksobj_at(ARROW, x, y, MKOBJ_NOINIT);
|
||||
ghostobj->spe = 0;
|
||||
ghostobj->quan = (long) rn1(10,25);
|
||||
ghostobj->owt = weight(ghostobj);
|
||||
if (rn2(4)) curse(ghostobj);
|
||||
|
||||
if (rn2(2)) {
|
||||
ghostobj = mksobj_at(RING_MAIL, x, y, FALSE, FALSE);
|
||||
ghostobj = mksobj_at(RING_MAIL, x, y, MKOBJ_NOINIT);
|
||||
ghostobj->spe = rn2(3);
|
||||
if (!rn2(3)) ghostobj->oerodeproof = TRUE;
|
||||
if (rn2(4)) curse(ghostobj);
|
||||
} else {
|
||||
ghostobj = mksobj_at(PLATE_MAIL, x, y, FALSE, FALSE);
|
||||
ghostobj = mksobj_at(PLATE_MAIL, x, y, MKOBJ_NOINIT);
|
||||
ghostobj->spe = rnd(5) - 2;
|
||||
if (!rn2(3)) ghostobj->oerodeproof = TRUE;
|
||||
if (rn2(4)) curse(ghostobj);
|
||||
}
|
||||
if (rn2(2)) {
|
||||
ghostobj = mksobj_at(FAKE_AMULET_OF_YENDOR, x, y, TRUE, FALSE);
|
||||
ghostobj = mksobj_at(FAKE_AMULET_OF_YENDOR, x, y, NO_MKOBJ_FLAGS);
|
||||
ghostobj->known = TRUE;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -138,7 +138,7 @@ dofindgem() /* Find a gem in the sparkling waters. */
|
|||
if (!Blind) You("spot a gem in the sparkling waters!");
|
||||
else You_feel("a gem here!");
|
||||
(void) mksobj_at(rnd_class(DILITHIUM_CRYSTAL, LUCKSTONE-1),
|
||||
u.ux, u.uy, FALSE, FALSE);
|
||||
u.ux, u.uy, MKOBJ_NOINIT);
|
||||
SET_FOUNTAIN_LOOTED(u.ux,u.uy);
|
||||
newsym(u.ux, u.uy);
|
||||
exercise(A_WIS, TRUE); /* a discovery! */
|
||||
|
@ -548,9 +548,9 @@ drinksink()
|
|||
/* use Luck here instead of u.uluck */
|
||||
if (!rn2(13) && ((Luck >= 0 && is_vampire(youracedata)) ||
|
||||
(Luck <= 0 && !is_vampire(youracedata)))) {
|
||||
otmp = mksobj(POT_BLOOD,FALSE,FALSE);
|
||||
otmp = mksobj(POT_BLOOD, MKOBJ_NOINIT);
|
||||
} else {
|
||||
otmp = mkobj(POTION_CLASS,FALSE);
|
||||
otmp = mkobj(POTION_CLASS, NO_MKOBJ_FLAGS);
|
||||
if (otmp->otyp == POT_WATER) {
|
||||
obfree(otmp, (struct obj *)0);
|
||||
otmp = (struct obj *) 0;
|
||||
|
@ -569,7 +569,7 @@ drinksink()
|
|||
break;
|
||||
case 5: if (!(levl[u.ux][u.uy].looted & S_LRING)) {
|
||||
You("find a ring in the sink!");
|
||||
(void) mkobj_at(RING_CLASS, u.ux, u.uy, TRUE);
|
||||
(void) mkobj_at(RING_CLASS, u.ux, u.uy, MKOBJ_ARTIF);
|
||||
levl[u.ux][u.uy].looted |= S_LRING;
|
||||
exercise(A_WIS, TRUE);
|
||||
newsym(u.ux,u.uy);
|
||||
|
|
|
@ -938,7 +938,7 @@ register long q;
|
|||
{
|
||||
register struct obj *otmp;
|
||||
|
||||
otmp = mksobj(GOLD_PIECE, FALSE, FALSE);
|
||||
otmp = mksobj(GOLD_PIECE, MKOBJ_NOINIT);
|
||||
u.ugold -= q;
|
||||
otmp->quan = q;
|
||||
otmp->owt = weight(otmp);
|
||||
|
|
|
@ -389,7 +389,7 @@ struct mail_info *info;
|
|||
verbalize("%s, %s! %s.", Hello(md), plname, info->display_txt);
|
||||
|
||||
if (info->message_typ) {
|
||||
struct obj *obj = mksobj(SCR_MAIL, FALSE, FALSE);
|
||||
struct obj *obj = mksobj(SCR_MAIL, MKOBJ_NOINIT);
|
||||
if (distu(md->mx,md->my) > 2)
|
||||
verbalize("Catch!");
|
||||
display_nhwindow(WIN_MESSAGE, FALSE);
|
||||
|
|
1554
src/makemon.c
1554
src/makemon.c
File diff suppressed because it is too large
Load diff
|
@ -2477,7 +2477,7 @@ int tary;
|
|||
if (weap == TRIDENT) weap = JAVELIN;
|
||||
}
|
||||
/* make them */
|
||||
otmp = mksobj(weap, TRUE, FALSE);
|
||||
otmp = mksobj(weap, NO_MKOBJ_FLAGS);
|
||||
otmp->quan = min(dmn, 16);
|
||||
otmp->owt = weight(otmp);
|
||||
otmp->spe = 0;
|
||||
|
@ -3063,7 +3063,7 @@ int tary;
|
|||
verbalize(rn2(2) ? "Thou desirest the amulet? I'll give thee the amulet!" :
|
||||
"Here is the only amulet you'll need!");
|
||||
}
|
||||
otmp = mksobj(AMULET_OF_STRANGULATION, FALSE, FALSE);
|
||||
otmp = mksobj(AMULET_OF_STRANGULATION, MKOBJ_NOINIT);
|
||||
curse(otmp);
|
||||
(void)addinv(otmp);
|
||||
pline("%s appears around your %s!", An(xname(otmp)), body_part(NECK));
|
||||
|
@ -3320,8 +3320,7 @@ int tary;
|
|||
Is_rogue_level(&u.uz) ||
|
||||
#endif
|
||||
(In_endgame(&u.uz) && !Is_earthlevel(&u.uz)));
|
||||
otmp = mksobj(iron ? HEAVY_IRON_BALL : BOULDER,
|
||||
FALSE, FALSE);
|
||||
otmp = mksobj(iron ? HEAVY_IRON_BALL : BOULDER, MKOBJ_NOINIT);
|
||||
otmp->quan = 1;
|
||||
otmp->owt = weight(otmp);
|
||||
if (iron) otmp->owt += 160 * rn2(2);
|
||||
|
|
34
src/mklev.c
34
src/mklev.c
|
@ -745,16 +745,15 @@ int trap_type;
|
|||
dosdoor(xx, yy, aroom, rn2(5) ? SDOOR : DOOR);
|
||||
else {
|
||||
if (!level.flags.noteleport)
|
||||
(void) mksobj_at(SCR_TELEPORTATION,
|
||||
xx, yy+dy, TRUE, FALSE);
|
||||
if (!rn2(3)) (void) mkobj_at(0, xx, yy+dy, TRUE);
|
||||
(void) mksobj_at(SCR_TELEPORTATION, xx, yy+dy, NO_MKOBJ_FLAGS);
|
||||
if (!rn2(3)) (void) mkobj_at(0, xx, yy+dy, MKOBJ_ARTIF);
|
||||
}
|
||||
}
|
||||
if(In_mithardir_catacombs(&u.uz)){
|
||||
if(!rn2(2))
|
||||
makemon(&mons[PM_ALABASTER_MUMMY], xx, yy+dy,NO_MM_FLAGS);
|
||||
else
|
||||
mkobj_at(TILE_CLASS, xx, yy+dy, TRUE);
|
||||
mkobj_at(TILE_CLASS, xx, yy+dy, MKOBJ_ARTIF);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
@ -1121,11 +1120,9 @@ makelevel()
|
|||
tmonst = makemon(rn2(2) ? &mons[PM_ALABASTER_MUMMY] : 0, x,y,NO_MM_FLAGS);
|
||||
}
|
||||
if(!rn2(nroom * 5 / 2))
|
||||
(void) mksobj_at((rn2(3)) ? BOX : CHEST,
|
||||
somex(croom), somey(croom), TRUE, FALSE);
|
||||
(void) mksobj_at((rn2(3)) ? BOX : CHEST, somex(croom), somey(croom), NO_MKOBJ_FLAGS);
|
||||
if(!rn2(9))
|
||||
(void) mkobj_at(TILE_CLASS,
|
||||
somex(croom), somey(croom), TRUE);
|
||||
(void) mkobj_at(TILE_CLASS, somex(croom), somey(croom), MKOBJ_ARTIF);
|
||||
}
|
||||
goto mithardir_end;
|
||||
}
|
||||
|
@ -1290,8 +1287,7 @@ skip0:
|
|||
* when few rooms; chance for 3 or more is neglible.
|
||||
*/
|
||||
if(!rn2(nroom * 5 / 2))
|
||||
(void) mksobj_at((rn2(3)) ? BOX : CHEST,
|
||||
somex(croom), somey(croom), TRUE, FALSE);
|
||||
(void) mksobj_at((rn2(3)) ? BOX : CHEST, somex(croom), somey(croom), NO_MKOBJ_FLAGS);
|
||||
|
||||
/* maybe make some graffiti */
|
||||
if(!rn2(27 + 3 * abs(depth(&u.uz)))) {
|
||||
|
@ -1311,14 +1307,14 @@ skip0:
|
|||
skip_nonrogue:
|
||||
#endif
|
||||
if(!rn2(3)) {
|
||||
(void) mkobj_at(0, somex(croom), somey(croom), TRUE);
|
||||
(void) mkobj_at(0, somex(croom), somey(croom), MKOBJ_ARTIF);
|
||||
tryct = 0;
|
||||
while(!rn2(5)) {
|
||||
if(++tryct > 100) {
|
||||
impossible("tryct overflow4");
|
||||
break;
|
||||
}
|
||||
(void) mkobj_at(0, somex(croom), somey(croom), TRUE);
|
||||
(void) mkobj_at(0, somex(croom), somey(croom), MKOBJ_ARTIF);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1365,7 +1361,7 @@ mineralize()
|
|||
for (y = 1; y < (ROWNO - 1); y++)
|
||||
if ((levl[x][y].typ == POOL && !rn2(10)) ||
|
||||
(levl[x][y].typ == MOAT && !rn2(30)))
|
||||
(void) mksobj_at(KELP_FROND, x, y, TRUE, FALSE);
|
||||
(void) mksobj_at(KELP_FROND, x, y, NO_MKOBJ_FLAGS);
|
||||
|
||||
/* determine if it is even allowed;
|
||||
almost all special levels are excluded */
|
||||
|
@ -1413,7 +1409,7 @@ mineralize()
|
|||
levl[x+1][y].typ == STONE && levl[x-1][y].typ == STONE &&
|
||||
levl[x+1][y+1].typ == STONE && levl[x-1][y+1].typ == STONE) {
|
||||
if (rn2(1000) < goldprob) {
|
||||
if ((otmp = mksobj(GOLD_PIECE, FALSE, FALSE)) != 0) {
|
||||
if ((otmp = mksobj(GOLD_PIECE, MKOBJ_NOINIT)) != 0) {
|
||||
otmp->ox = x, otmp->oy = y;
|
||||
otmp->quan = 1L + rnd(goldprob * 3);
|
||||
u.spawnedGold += otmp->quan;
|
||||
|
@ -1435,7 +1431,7 @@ mineralize()
|
|||
}
|
||||
}
|
||||
if (rn2(1000) < silverprob) {
|
||||
if ((otmp = mksobj(SILVER_SLINGSTONE, FALSE, FALSE)) != 0) {
|
||||
if ((otmp = mksobj(SILVER_SLINGSTONE, MKOBJ_NOINIT)) != 0) {
|
||||
otmp->quan = 1L + rn2(dunlev(&u.uz));
|
||||
otmp->owt = weight(otmp);
|
||||
otmp->ox = x, otmp->oy = y;
|
||||
|
@ -1444,7 +1440,7 @@ mineralize()
|
|||
}
|
||||
}
|
||||
if (depth(&u.uz) > 14 && rn2(1000) < darkprob) {
|
||||
if ((otmp = mksobj(CHUNK_OF_FOSSIL_DARK, FALSE, FALSE)) != 0) {
|
||||
if ((otmp = mksobj(CHUNK_OF_FOSSIL_DARK, MKOBJ_NOINIT)) != 0) {
|
||||
otmp->quan = 1L;
|
||||
otmp->owt = weight(otmp);
|
||||
otmp->ox = x, otmp->oy = y;
|
||||
|
@ -1453,7 +1449,7 @@ mineralize()
|
|||
}
|
||||
}
|
||||
if (depth(&u.uz) > 14 && rn2(1000) < fossilprob) {
|
||||
if ((otmp = mksobj(FOSSIL, TRUE, FALSE)) != 0) {
|
||||
if ((otmp = mksobj(FOSSIL, 0)) != 0) {
|
||||
otmp->quan = 1L;
|
||||
otmp->owt = weight(otmp);
|
||||
otmp->ox = x, otmp->oy = y;
|
||||
|
@ -1700,7 +1696,7 @@ xchar x, y; /* location */
|
|||
//The branch level has an artifact instead of a portal
|
||||
if(dest->dnum == quest_dnum){
|
||||
struct obj *obj;
|
||||
obj = mksobj_at(SCR_BLANK_PAPER, x, y, FALSE, FALSE);
|
||||
obj = mksobj_at(SCR_BLANK_PAPER, x, y, MKOBJ_NOINIT);
|
||||
if(obj) obj = oname(obj, artiname(ART_PAINTING_FRAGMENT));
|
||||
return;
|
||||
}
|
||||
|
@ -2036,7 +2032,7 @@ struct mkroom *croom;
|
|||
add_to_buried(otmp);
|
||||
}
|
||||
/* Leave a bell, in case we accidentally buried someone alive */
|
||||
if (tmp) (void)mksobj_at(BELL, m.x, m.y, TRUE, FALSE);
|
||||
if (tmp) (void)mksobj_at(BELL, m.x, m.y, NO_MKOBJ_FLAGS);
|
||||
break;
|
||||
}
|
||||
return TRUE;
|
||||
|
|
30
src/mkmaze.c
30
src/mkmaze.c
|
@ -678,17 +678,17 @@ fixup_special()
|
|||
if (y < croom->ly + disty * 1 / 3 && x > croom->lx + distx * 1 / 5 && x < croom->lx + distx * 4 / 5) piled++;
|
||||
if (y < croom->ly + disty * 2 / 3 && x > croom->lx + distx * 2 / 5 && x < croom->lx + distx * 3 / 5) piled++;
|
||||
for (; piled > 0; piled--){
|
||||
if (rn2(2)) mkobj_at(WEAPON_CLASS, x, y, FALSE);
|
||||
if (rn2(2)) mkobj_at(ARMOR_CLASS, x, y, FALSE);
|
||||
if (rn2(6)) mkobj_at(RING_CLASS, x, y, FALSE);
|
||||
if (!rn2(3))mkobj_at(TOOL_CLASS, x, y, FALSE);
|
||||
if (rn2(6)) mkobj_at(SCROLL_CLASS, x, y, FALSE);
|
||||
if (!rn2(4))mkobj_at(GEM_CLASS, x, y, FALSE);
|
||||
if (!rn2(3))mkobj_at(GEM_CLASS, x, y, FALSE);
|
||||
if (!rn2(2))mkobj_at(GEM_CLASS, x, y, FALSE);
|
||||
if (!rn2(4))mksobj_at(SILVER_SLINGSTONE, x, y, TRUE, FALSE);
|
||||
if (rn2(3)) mkobj_at(GEM_CLASS, x, y, FALSE);
|
||||
if (rn2(4)) mkobj_at(GEM_CLASS, x, y, FALSE);
|
||||
if (rn2(2)) mkobj_at(WEAPON_CLASS, x, y, NO_MKOBJ_FLAGS);
|
||||
if (rn2(2)) mkobj_at(ARMOR_CLASS, x, y, NO_MKOBJ_FLAGS);
|
||||
if (rn2(6)) mkobj_at(RING_CLASS, x, y, NO_MKOBJ_FLAGS);
|
||||
if (!rn2(3))mkobj_at(TOOL_CLASS, x, y, NO_MKOBJ_FLAGS);
|
||||
if (rn2(6)) mkobj_at(SCROLL_CLASS, x, y, NO_MKOBJ_FLAGS);
|
||||
if (!rn2(4))mkobj_at(GEM_CLASS, x, y, NO_MKOBJ_FLAGS);
|
||||
if (!rn2(3))mkobj_at(GEM_CLASS, x, y, NO_MKOBJ_FLAGS);
|
||||
if (!rn2(2))mkobj_at(GEM_CLASS, x, y, NO_MKOBJ_FLAGS);
|
||||
if (!rn2(4))mksobj_at(SILVER_SLINGSTONE, x, y, NO_MKOBJ_FLAGS);
|
||||
if (rn2(3)) mkobj_at(GEM_CLASS, x, y, NO_MKOBJ_FLAGS);
|
||||
if (rn2(4)) mkobj_at(GEM_CLASS, x, y, NO_MKOBJ_FLAGS);
|
||||
}
|
||||
(void)mkgold((long)rn1(1000, 100), x, y);
|
||||
}
|
||||
|
@ -738,7 +738,7 @@ fixup_special()
|
|||
for(x = 0; x<COLNO; x++){
|
||||
for(y = 0; y<ROWNO; y++){
|
||||
if(isok(x,y) && levl[x][y].typ == ALTAR){
|
||||
mksobj_at(CANDLE_OF_INVOCATION, x, y, FALSE, FALSE);
|
||||
mksobj_at(CANDLE_OF_INVOCATION, x, y, MKOBJ_NOINIT);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1304,7 +1304,7 @@ create_maze()
|
|||
maze_remove_deadends(ROOM, FALSE);
|
||||
|
||||
/* put a boulder at the maze center */
|
||||
(void)mksobj_at(BOULDER, (int)mm.x, (int)mm.y, TRUE, FALSE);
|
||||
(void)mksobj_at(BOULDER, (int)mm.x, (int)mm.y, NO_MKOBJ_FLAGS);
|
||||
|
||||
wallification(2, 2, x_maze_max, y_maze_max);
|
||||
|
||||
|
@ -1473,11 +1473,11 @@ register const char *s;
|
|||
|
||||
for(x = rn1(8,11); x; x--) {
|
||||
mazexy(&mm);
|
||||
(void) mkobj_at(rn2(2) ? GEM_CLASS : 0, mm.x, mm.y, TRUE);
|
||||
(void) mkobj_at(rn2(2) ? GEM_CLASS : 0, mm.x, mm.y, MKOBJ_ARTIF);
|
||||
}
|
||||
for(x = rn1(10,2); x; x--) {
|
||||
mazexy(&mm);
|
||||
(void) mksobj_at(BOULDER, mm.x, mm.y, TRUE, FALSE);
|
||||
(void) mksobj_at(BOULDER, mm.x, mm.y, NO_MKOBJ_FLAGS);
|
||||
}
|
||||
for (x = rn2(3); x; x--) {
|
||||
mazexy(&mm);
|
||||
|
|
70
src/mkobj.c
70
src/mkobj.c
|
@ -228,14 +228,14 @@ static const struct icp bow_materials[] = {
|
|||
|
||||
|
||||
struct obj *
|
||||
mkobj_at(let, x, y, artif)
|
||||
mkobj_at(let, x, y, mkflags)
|
||||
char let;
|
||||
int x, y;
|
||||
boolean artif;
|
||||
int mkflags;
|
||||
{
|
||||
struct obj *otmp;
|
||||
|
||||
otmp = mkobj(let, artif);
|
||||
otmp = mkobj(let, mkflags);
|
||||
|
||||
place_object(otmp, x, y);
|
||||
|
||||
|
@ -243,13 +243,13 @@ boolean artif;
|
|||
}
|
||||
|
||||
struct obj *
|
||||
mksobj_at(otyp, x, y, init, artif)
|
||||
mksobj_at(otyp, x, y, mkflags)
|
||||
int otyp, x, y;
|
||||
boolean init, artif;
|
||||
int mkflags;
|
||||
{
|
||||
struct obj *otmp;
|
||||
|
||||
otmp = mksobj(otyp, init, artif);
|
||||
otmp = mksobj(otyp, mkflags);
|
||||
|
||||
place_object(otmp, x, y);
|
||||
|
||||
|
@ -257,9 +257,9 @@ boolean init, artif;
|
|||
}
|
||||
|
||||
struct obj *
|
||||
mkobj(oclass, artif)
|
||||
mkobj(oclass, mkflags)
|
||||
char oclass;
|
||||
boolean artif;
|
||||
int mkflags;
|
||||
{
|
||||
int tprob, i, prob = rnd(1000);
|
||||
|
||||
|
@ -284,7 +284,7 @@ boolean artif;
|
|||
if(objects[i].oc_class != oclass || !OBJ_NAME(objects[i]))
|
||||
panic("probtype error, oclass=%d i=%d", (int) oclass, i);
|
||||
|
||||
return(mksobj(i, TRUE, artif));
|
||||
return(mksobj(i, mkflags));
|
||||
}
|
||||
|
||||
STATIC_OVL void
|
||||
|
@ -313,7 +313,7 @@ struct obj *box;
|
|||
|
||||
for (n = max_ints(rn2(n+1),min); n > 0; n--) {
|
||||
if (box->otyp == ICE_BOX) {
|
||||
if (!(otmp = mksobj(CORPSE, TRUE, TRUE))) continue;
|
||||
if (!(otmp = mksobj(CORPSE, MKOBJ_ARTIF))) continue;
|
||||
/* Note: setting age to 0 is correct. Age has a different
|
||||
* from usual meaning for objects stored in ice boxes. -KAA
|
||||
*/
|
||||
|
@ -521,15 +521,17 @@ register struct obj *otmp;
|
|||
#ifdef OVLB
|
||||
|
||||
struct obj *
|
||||
mksobj(otyp, init, artif)
|
||||
mksobj(otyp, mkflags)
|
||||
int otyp;
|
||||
boolean init;
|
||||
boolean artif;
|
||||
int mkflags;
|
||||
{
|
||||
int mndx, tryct;
|
||||
struct obj *otmp;
|
||||
char let = objects[otyp].oc_class;
|
||||
|
||||
boolean init = ((mkflags & MKOBJ_NOINIT) == 0);
|
||||
boolean artif = ((mkflags & MKOBJ_ARTIF) != 0);
|
||||
|
||||
otmp = newobj(0);
|
||||
*otmp = zeroobj;
|
||||
otmp->age = monstermoves;
|
||||
|
@ -605,7 +607,7 @@ boolean artif;
|
|||
otmp->altmode = AD_SLEE;
|
||||
}
|
||||
else if (otmp->otyp == MASS_SHADOW_PISTOL){
|
||||
struct obj *stone = mksobj(ROCK, TRUE, FALSE);
|
||||
struct obj *stone = mksobj(ROCK, NO_MKOBJ_FLAGS);
|
||||
otmp->ovar1 = 800L + rnd(200);
|
||||
stone->quan = 1;
|
||||
stone->owt = weight(stone);
|
||||
|
@ -776,7 +778,7 @@ boolean artif;
|
|||
otmp->age = (long)rn1(50000, 100000);
|
||||
blessorcurse(otmp, 2);
|
||||
{
|
||||
struct obj *gem = mksobj(rn2(6) ? BLUE_FLUORITE : GREEN_FLUORITE, TRUE, FALSE);
|
||||
struct obj *gem = mksobj(rn2(6) ? BLUE_FLUORITE : GREEN_FLUORITE, NO_MKOBJ_FLAGS);
|
||||
gem->quan = 1;
|
||||
gem->owt = weight(gem);
|
||||
add_to_container(otmp, gem);
|
||||
|
@ -2324,49 +2326,49 @@ int x, y;
|
|||
{
|
||||
struct obj *otmp;
|
||||
if(Is_zuggtmoy_level(&u.uz)){
|
||||
otmp = mksobj_at(SLIME_MOLD, x, y,TRUE,FALSE);
|
||||
otmp = mksobj_at(SLIME_MOLD, x, y,NO_MKOBJ_FLAGS);
|
||||
otmp->spe = fruitadd("slime mold");
|
||||
return otmp;
|
||||
} else if(In_quest(&u.uz) && (Race_if(PM_DROW) || (Race_if(PM_DWARF) && Role_if(PM_NOBLEMAN)))){
|
||||
int chance = rn2(50);
|
||||
if(chance < 20){
|
||||
otmp = mksobj_at(EGG, x, y,TRUE,FALSE);
|
||||
otmp = mksobj_at(EGG, x, y,NO_MKOBJ_FLAGS);
|
||||
otmp->corpsenm = PM_CAVE_SPIDER;
|
||||
return otmp;
|
||||
} else if(chance < 45){
|
||||
return mksobj_at(EUCALYPTUS_LEAF, x, y, TRUE, FALSE);
|
||||
return mksobj_at(EUCALYPTUS_LEAF, x, y, NO_MKOBJ_FLAGS);
|
||||
} else {
|
||||
otmp = mksobj_at(SLIME_MOLD, x, y,TRUE,FALSE);
|
||||
otmp = mksobj_at(SLIME_MOLD, x, y,NO_MKOBJ_FLAGS);
|
||||
otmp->spe = fruitadd("moldy remains");
|
||||
return otmp;
|
||||
}
|
||||
} else if((In_quest(&u.uz) && Role_if(PM_PIRATE)) || Is_paradise(&u.uz)){
|
||||
int chance = rn2(100);
|
||||
if(chance < 10){
|
||||
otmp = mksobj_at(SLIME_MOLD, x, y,TRUE,FALSE);
|
||||
otmp = mksobj_at(SLIME_MOLD, x, y,NO_MKOBJ_FLAGS);
|
||||
otmp->spe = fruitadd("coconut");
|
||||
return otmp;
|
||||
} else if(chance < 25){
|
||||
return mksobj_at(BANANA, x, y, TRUE, FALSE);
|
||||
return mksobj_at(BANANA, x, y, NO_MKOBJ_FLAGS);
|
||||
} else if(chance < 50){
|
||||
otmp = mksobj_at(SLIME_MOLD, x, y,TRUE,FALSE);
|
||||
otmp = mksobj_at(SLIME_MOLD, x, y,NO_MKOBJ_FLAGS);
|
||||
otmp->spe = fruitadd("mango");
|
||||
return otmp;
|
||||
} else if(chance < 75){
|
||||
return mksobj_at(ORANGE, x, y, TRUE, FALSE);
|
||||
return mksobj_at(ORANGE, x, y, NO_MKOBJ_FLAGS);
|
||||
} else if(chance < 99){
|
||||
otmp = mksobj_at(EGG, x, y,TRUE,FALSE);
|
||||
otmp = mksobj_at(EGG, x, y,NO_MKOBJ_FLAGS);
|
||||
otmp->corpsenm = PM_PARROT;
|
||||
return otmp;
|
||||
} else{
|
||||
otmp = mksobj_at(SLIME_MOLD, x, y,TRUE,FALSE);
|
||||
otmp = mksobj_at(SLIME_MOLD, x, y,NO_MKOBJ_FLAGS);
|
||||
otmp->spe = fruitadd("tree squid");
|
||||
return otmp;
|
||||
}
|
||||
} else if(In_quest(&u.uz) && Role_if(PM_KNIGHT)){
|
||||
return mksobj_at(APPLE, x, y, TRUE, FALSE);
|
||||
return mksobj_at(APPLE, x, y, NO_MKOBJ_FLAGS);
|
||||
}
|
||||
return mksobj_at(treefruits[rn2(SIZE(treefruits))], x, y, TRUE, FALSE);
|
||||
return mksobj_at(treefruits[rn2(SIZE(treefruits))], x, y, NO_MKOBJ_FLAGS);
|
||||
}
|
||||
#endif /* OVL0 */
|
||||
#ifdef OVLB
|
||||
|
@ -2384,7 +2386,7 @@ boolean new;
|
|||
if (gold) {
|
||||
gold->quan += amount;
|
||||
} else {
|
||||
gold = mksobj_at(GOLD_PIECE, x, y, TRUE, FALSE);
|
||||
gold = mksobj_at(GOLD_PIECE, x, y, NO_MKOBJ_FLAGS);
|
||||
gold->quan = amount;
|
||||
}
|
||||
gold->owt = weight(gold);
|
||||
|
@ -2430,14 +2432,15 @@ int x, y;
|
|||
boolean init;
|
||||
{
|
||||
register struct obj *otmp;
|
||||
int mkobjflags = (init ? NO_MKOBJ_FLAGS : MKOBJ_NOINIT);
|
||||
|
||||
if (objtype != CORPSE && objtype != STATUE && objtype != BROKEN_ANDROID && objtype != BROKEN_GYNOID && objtype != LIFELESS_DOLL)
|
||||
impossible("making corpstat type %d", objtype);
|
||||
if (x == 0 && y == 0) { /* special case - random placement */
|
||||
otmp = mksobj(objtype, init, FALSE);
|
||||
otmp = mksobj(objtype, mkobjflags);
|
||||
if (otmp) rloco(otmp);
|
||||
} else
|
||||
otmp = mksobj_at(objtype, x, y, init, FALSE);
|
||||
otmp = mksobj_at(objtype, x, y, mkobjflags);
|
||||
if (otmp) {
|
||||
if (mtmp) {
|
||||
struct obj *otmp2;
|
||||
|
@ -2574,11 +2577,12 @@ int objtype; /* CORPSE or STATUE */
|
|||
register int x, y;
|
||||
{
|
||||
register struct obj *otmp, *otmp2;
|
||||
boolean initialize_it;
|
||||
int mkobjflags = NO_MKOBJ_FLAGS;
|
||||
|
||||
/* player statues never contain books */
|
||||
initialize_it = (objtype != STATUE);
|
||||
if ((otmp = mksobj_at(objtype, x, y, initialize_it, FALSE)) != 0) {
|
||||
if (objtype == STATUE)
|
||||
mkobjflags |= MKOBJ_NOINIT;
|
||||
if ((otmp = mksobj_at(objtype, x, y, mkobjflags)) != 0) {
|
||||
/* tt_oname will return null if the scoreboard is empty */
|
||||
if ((otmp2 = tt_oname(otmp)) != 0) otmp = otmp2;
|
||||
}
|
||||
|
|
397
src/mkroom.c
397
src/mkroom.c
File diff suppressed because it is too large
Load diff
242
src/mon.c
242
src/mon.c
|
@ -292,7 +292,7 @@ register struct monst *mtmp;
|
|||
}
|
||||
|
||||
if(u.specialSealsActive&SEAL_NUDZIRATH && !rn2(4)){
|
||||
(void) mksobj_at(MIRROR, x, y, TRUE, FALSE);
|
||||
(void) mksobj_at(MIRROR, x, y, NO_MKOBJ_FLAGS);
|
||||
}
|
||||
|
||||
if(has_template(mtmp, CRYSTALFIED)){
|
||||
|
@ -305,7 +305,7 @@ register struct monst *mtmp;
|
|||
} else switch(mndx) {
|
||||
case PM_LICH__THE_FIEND_OF_EARTH:
|
||||
// if(mvitals[PM_GARLAND].died){
|
||||
// otmp = mksobj_at(CRYSTAL_BALL, x, y, FALSE, FALSE);
|
||||
// otmp = mksobj_at(CRYSTAL_BALL, x, y, MKOBJ_NOINIT);
|
||||
// otmp = oname(otmp, artiname(ART_EARTH_CRYSTAL));
|
||||
// curse(otmp);
|
||||
// otmp->oerodeproof = TRUE;
|
||||
|
@ -314,7 +314,7 @@ register struct monst *mtmp;
|
|||
break;
|
||||
case PM_KARY__THE_FIEND_OF_FIRE:
|
||||
// if(mvitals[PM_GARLAND].died){
|
||||
// otmp = mksobj_at(CRYSTAL_BALL, x, y, FALSE, FALSE);
|
||||
// otmp = mksobj_at(CRYSTAL_BALL, x, y, MKOBJ_NOINIT);
|
||||
// otmp = oname(otmp, artiname(ART_FIRE_CRYSTAL));
|
||||
// curse(otmp);
|
||||
// otmp->oerodeproof = TRUE;
|
||||
|
@ -323,7 +323,7 @@ register struct monst *mtmp;
|
|||
break;
|
||||
case PM_KRAKEN__THE_FIEND_OF_WATER:
|
||||
// if(mvitals[PM_GARLAND].died){
|
||||
// otmp = mksobj_at(CRYSTAL_BALL, x, y, FALSE, FALSE);
|
||||
// otmp = mksobj_at(CRYSTAL_BALL, x, y, MKOBJ_NOINIT);
|
||||
// otmp = oname(otmp, artiname(ART_WATER_CRYSTAL));
|
||||
// curse(otmp);
|
||||
// otmp->oerodeproof = TRUE;
|
||||
|
@ -332,7 +332,7 @@ register struct monst *mtmp;
|
|||
break;
|
||||
case PM_TIAMAT__THE_FIEND_OF_WIND:
|
||||
// if(mvitals[PM_GARLAND].died){
|
||||
// otmp = mksobj_at(CRYSTAL_BALL, x, y, FALSE, FALSE);
|
||||
// otmp = mksobj_at(CRYSTAL_BALL, x, y, MKOBJ_NOINIT);
|
||||
// otmp = oname(otmp, artiname(ART_AIR_CRYSTAL));
|
||||
// curse(otmp);
|
||||
// otmp->oerodeproof = TRUE;
|
||||
|
@ -340,7 +340,7 @@ register struct monst *mtmp;
|
|||
goto default_1;
|
||||
break;
|
||||
case PM_CHAOS:
|
||||
// otmp = mksobj_at(CRYSTAL_BALL, x, y, FALSE, FALSE);
|
||||
// otmp = mksobj_at(CRYSTAL_BALL, x, y, MKOBJ_NOINIT);
|
||||
// otmp = oname(otmp, artiname(ART_BLACK_CRYSTAL));
|
||||
// curse(otmp);
|
||||
// otmp->oerodeproof = TRUE;
|
||||
|
@ -360,22 +360,22 @@ register struct monst *mtmp;
|
|||
/* dragons is the same as the order of the scales. */
|
||||
if (!rn2(mtmp->mrevived ? 20 : 3)) {
|
||||
num = GRAY_DRAGON_SCALES + monsndx(mdat) - PM_GRAY_DRAGON;
|
||||
obj = mksobj_at(num, x, y, FALSE, FALSE);
|
||||
obj = mksobj_at(num, x, y, MKOBJ_NOINIT);
|
||||
obj->spe = 0;
|
||||
obj->cursed = obj->blessed = FALSE;
|
||||
}
|
||||
goto default_1;
|
||||
case PM_CHROMATIC_DRAGON:
|
||||
obj = mksobj_at(BLACK_DRAGON_SCALES, x, y, FALSE, FALSE);
|
||||
obj = mksobj_at(BLACK_DRAGON_SCALES, x, y, MKOBJ_NOINIT);
|
||||
obj = oname(obj, artiname(ART_CHROMATIC_DRAGON_SCALES));
|
||||
goto default_1;
|
||||
case PM_PLATINUM_DRAGON:
|
||||
obj = mksobj_at(SILVER_DRAGON_SCALE_MAIL, x, y, FALSE, FALSE);
|
||||
obj = mksobj_at(SILVER_DRAGON_SCALE_MAIL, x, y, MKOBJ_NOINIT);
|
||||
obj = oname(obj, artiname(ART_DRAGON_PLATE));
|
||||
goto default_1;
|
||||
case PM_MANTICORE:
|
||||
if (mtmp->mrevived ? !rn2(6) : TRUE) {
|
||||
obj = mksobj_at(SPIKE, x, y, TRUE, FALSE);
|
||||
obj = mksobj_at(SPIKE, x, y, NO_MKOBJ_FLAGS);
|
||||
set_material_gm(obj, BONE);
|
||||
obj->blessed = 0;
|
||||
obj->cursed = 0;
|
||||
|
@ -386,7 +386,7 @@ register struct monst *mtmp;
|
|||
goto default_1;
|
||||
case PM_SON_OF_TYPHON:
|
||||
if (!rn2(mtmp->mrevived ? 20 : 3)) {
|
||||
obj = mksobj_at(LEO_NEMAEUS_HIDE, x, y, FALSE, FALSE);
|
||||
obj = mksobj_at(LEO_NEMAEUS_HIDE, x, y, MKOBJ_NOINIT);
|
||||
obj->spe = 0;
|
||||
obj->cursed = obj->blessed = FALSE;
|
||||
}
|
||||
|
@ -423,7 +423,7 @@ register struct monst *mtmp;
|
|||
goto default_1;
|
||||
case PM_DIRE_SHEEP:
|
||||
if (!mtmp->mrevived && find_pcloth() > 0 && !rn2(20)) {
|
||||
obj = mksobj_at(find_pcloth(), x, y, FALSE, FALSE);
|
||||
obj = mksobj_at(find_pcloth(), x, y, MKOBJ_NOINIT);
|
||||
obj->spe = 0;
|
||||
obj->cursed = obj->blessed = FALSE;
|
||||
add_oprop(obj, OPROP_WOOL);
|
||||
|
@ -438,12 +438,12 @@ register struct monst *mtmp;
|
|||
pline("%s recently regrown horn crumbles to dust.",
|
||||
s_suffix(Monnam(mtmp)));
|
||||
} else
|
||||
(void) mksobj_at(UNICORN_HORN, x, y, TRUE, FALSE);
|
||||
(void) mksobj_at(UNICORN_HORN, x, y, NO_MKOBJ_FLAGS);
|
||||
goto default_1;
|
||||
// case PM_UNICORN_OF_AMBER:{
|
||||
// int spe2;
|
||||
/* create special stuff; can't use mongets */
|
||||
// otmp = mksobj(UNICORN_HORN, TRUE, FALSE);
|
||||
// otmp = mksobj(UNICORN_HORN, NO_MKOBJ_FLAGS);
|
||||
// otmp = oname(otmp, artiname(ART_AMBER_HORN));
|
||||
// curse(otmp);
|
||||
// otmp->oerodeproof = TRUE;
|
||||
|
@ -455,7 +455,7 @@ register struct monst *mtmp;
|
|||
// case PM_PINK_UNICORN:{
|
||||
// int spe2;
|
||||
/* create special stuff; can't use mongets */
|
||||
// otmp = mksobj(UNICORN_HORN, TRUE, FALSE);
|
||||
// otmp = mksobj(UNICORN_HORN, NO_MKOBJ_FLAGS);
|
||||
// otmp = oname(otmp, artiname(ART_WHITE_PINK_HORN));
|
||||
//
|
||||
// curse(otmp);
|
||||
|
@ -469,7 +469,7 @@ register struct monst *mtmp;
|
|||
{
|
||||
int spe2;
|
||||
/* create special stuff; can't use mongets */
|
||||
otmp = mksobj(UNICORN_HORN, TRUE, FALSE);
|
||||
otmp = mksobj(UNICORN_HORN, NO_MKOBJ_FLAGS);
|
||||
otmp = oname(otmp, artiname(ART_NIGHTHORN));
|
||||
|
||||
curse(otmp);
|
||||
|
@ -483,11 +483,11 @@ register struct monst *mtmp;
|
|||
{
|
||||
if(!rn2(2)){
|
||||
pline("All that remains is a hand...");
|
||||
otmp = oname(mksobj(SEVERED_HAND, TRUE, FALSE),
|
||||
otmp = oname(mksobj(SEVERED_HAND, 0),
|
||||
artiname(ART_HAND_OF_VECNA));
|
||||
} else {
|
||||
pline("All that remains is a single eye...");
|
||||
otmp = oname(mksobj(EYEBALL, TRUE, FALSE),
|
||||
otmp = oname(mksobj(EYEBALL, 0),
|
||||
artiname(ART_EYE_OF_VECNA));
|
||||
}
|
||||
/* create special stuff; can't use mongets */
|
||||
|
@ -503,12 +503,12 @@ register struct monst *mtmp;
|
|||
(art_already_exists(ART_SCORPION_CARAPACE)) ||
|
||||
(mtmp->mrevived && rn2(20))
|
||||
)) {
|
||||
otmp = oname(mksobj(SCALE_MAIL, TRUE, FALSE), artiname(ART_SCORPION_CARAPACE));
|
||||
otmp = oname(mksobj(SCALE_MAIL, 0), artiname(ART_SCORPION_CARAPACE));
|
||||
place_object(otmp, x, y);
|
||||
}
|
||||
goto default_1;
|
||||
case PM_LONG_WORM:
|
||||
(void) mksobj_at(WORM_TOOTH, x, y, TRUE, FALSE);
|
||||
(void) mksobj_at(WORM_TOOTH, x, y, NO_MKOBJ_FLAGS);
|
||||
goto default_1;
|
||||
case PM_VAMPIRE:
|
||||
case PM_VAMPIRE_LORD:
|
||||
|
@ -545,7 +545,7 @@ register struct monst *mtmp;
|
|||
// case PM_ETTIN_ZOMBIE:
|
||||
case PM_ALABASTER_MUMMY:
|
||||
if(is_alabaster_mummy(mtmp->data) && mtmp->mvar_syllable >= SYLLABLE_OF_STRENGTH__AESH && mtmp->mvar_syllable <= SYLLABLE_OF_SPIRIT__VAUL){
|
||||
mksobj_at(mtmp->mvar_syllable, x, y, TRUE, FALSE);
|
||||
mksobj_at(mtmp->mvar_syllable, x, y, NO_MKOBJ_FLAGS);
|
||||
if(mtmp->mvar_syllable == SYLLABLE_OF_SPIRIT__VAUL)
|
||||
mtmp->mintrinsics[(DISPLACED-1)/32] &= ~(1 << (DISPLACED-1)%32);
|
||||
mtmp->mvar_syllable = 0; //Lose the bonus if resurrected
|
||||
|
@ -561,140 +561,140 @@ register struct monst *mtmp;
|
|||
case PM_ARSENAL:
|
||||
num = d(3,6);
|
||||
while(num--){
|
||||
obj = mksobj_at(PLATE_MAIL, x, y, TRUE, FALSE);
|
||||
obj = mksobj_at(PLATE_MAIL, x, y, NO_MKOBJ_FLAGS);
|
||||
set_material_gm(obj, COPPER);
|
||||
obj->spe = 3;
|
||||
}
|
||||
num = d(2,4);
|
||||
while(num--)
|
||||
obj = mksobj_at(HEAVY_IRON_BALL, x, y, TRUE, FALSE);
|
||||
obj = mksobj_at(HEAVY_IRON_BALL, x, y, NO_MKOBJ_FLAGS);
|
||||
rem_mx(mtmp, MX_ENAM);
|
||||
otmp = mksobj(MACE, TRUE, FALSE);
|
||||
otmp = mksobj(MACE, NO_MKOBJ_FLAGS);
|
||||
otmp = oname(otmp, artiname(ART_FIELD_MARSHAL_S_BATON));
|
||||
otmp->oerodeproof = TRUE;
|
||||
otmp->spe = -3;
|
||||
place_object(otmp, x, y);
|
||||
break;
|
||||
case PM_TINKER_GNOME:
|
||||
obj = mksobj_at(CLOCKWORK_COMPONENT, x, y, TRUE, FALSE);
|
||||
obj = mksobj_at(CLOCKWORK_COMPONENT, x, y, NO_MKOBJ_FLAGS);
|
||||
obj->quan = d(1,4);
|
||||
obj->owt = weight(obj);
|
||||
if(!mtmp->mrevived && !rn2(20)){
|
||||
obj = mksobj_at(UPGRADE_KIT, x, y, TRUE, FALSE);
|
||||
obj = mksobj_at(UPGRADE_KIT, x, y, NO_MKOBJ_FLAGS);
|
||||
} else if(!mtmp->mrevived && !rn2(19)){
|
||||
obj = mksobj_at(TINNING_KIT, x, y, TRUE, FALSE);
|
||||
obj = mksobj_at(TINNING_KIT, x, y, NO_MKOBJ_FLAGS);
|
||||
} else if(!mtmp->mrevived && !rn2(10)){
|
||||
obj = mksobj_at(CAN_OF_GREASE, x, y, TRUE, FALSE);
|
||||
obj = mksobj_at(CAN_OF_GREASE, x, y, NO_MKOBJ_FLAGS);
|
||||
}
|
||||
rem_mx(mtmp, MX_ENAM);
|
||||
goto default_1;
|
||||
case PM_CLOCKWORK_DWARF:
|
||||
obj = mksobj_at(CLOCKWORK_COMPONENT, x, y, TRUE, FALSE);
|
||||
obj = mksobj_at(CLOCKWORK_COMPONENT, x, y, NO_MKOBJ_FLAGS);
|
||||
obj->quan = d(1,4);
|
||||
obj->owt = weight(obj);
|
||||
rem_mx(mtmp, MX_ENAM);
|
||||
break;
|
||||
case PM_FABERGE_SPHERE:
|
||||
obj = mksobj_at(CLOCKWORK_COMPONENT, x, y, TRUE, FALSE);
|
||||
obj = mksobj_at(CLOCKWORK_COMPONENT, x, y, NO_MKOBJ_FLAGS);
|
||||
obj->quan = d(1,3);
|
||||
obj->owt = weight(obj);
|
||||
rem_mx(mtmp, MX_ENAM);
|
||||
break;
|
||||
case PM_FIREWORK_CART:
|
||||
obj = mksobj_at(CLOCKWORK_COMPONENT, x, y, TRUE, FALSE);
|
||||
obj = mksobj_at(CLOCKWORK_COMPONENT, x, y, NO_MKOBJ_FLAGS);
|
||||
obj->quan = d(1,4);
|
||||
obj->owt = weight(obj);
|
||||
rem_mx(mtmp, MX_ENAM);
|
||||
break;
|
||||
case PM_CLOCKWORK_SOLDIER:
|
||||
obj = mksobj_at(CLOCKWORK_COMPONENT, x, y, TRUE, FALSE);
|
||||
obj = mksobj_at(CLOCKWORK_COMPONENT, x, y, NO_MKOBJ_FLAGS);
|
||||
obj->quan = d(1,3);
|
||||
obj->owt = weight(obj);
|
||||
rem_mx(mtmp, MX_ENAM);
|
||||
break;
|
||||
case PM_GOLDEN_HEART:
|
||||
obj = mksobj_at(CLOCKWORK_COMPONENT, x, y, TRUE, FALSE);
|
||||
obj = mksobj_at(CLOCKWORK_COMPONENT, x, y, NO_MKOBJ_FLAGS);
|
||||
obj->quan = d(1,4);
|
||||
obj->owt = weight(obj);
|
||||
obj = mksobj_at(SUBETHAIC_COMPONENT, x, y, TRUE, FALSE);
|
||||
obj = mksobj_at(SUBETHAIC_COMPONENT, x, y, NO_MKOBJ_FLAGS);
|
||||
obj->quan = 1;
|
||||
obj->owt = weight(obj);
|
||||
rem_mx(mtmp, MX_ENAM);
|
||||
break;
|
||||
case PM_JUGGERNAUT:
|
||||
obj = mksobj_at(CLOCKWORK_COMPONENT, x, y, TRUE, FALSE);
|
||||
obj = mksobj_at(CLOCKWORK_COMPONENT, x, y, NO_MKOBJ_FLAGS);
|
||||
obj->quan = d(3,4);
|
||||
obj->owt = weight(obj);
|
||||
if(!rn2(20)){
|
||||
obj = mksobj_at(TINNING_KIT, x, y, TRUE, FALSE);
|
||||
obj = mksobj_at(TINNING_KIT, x, y, NO_MKOBJ_FLAGS);
|
||||
} else if(!rn2(10)){
|
||||
obj = mksobj_at(CAN_OF_GREASE, x, y, TRUE, FALSE);
|
||||
obj = mksobj_at(CAN_OF_GREASE, x, y, NO_MKOBJ_FLAGS);
|
||||
}
|
||||
rem_mx(mtmp, MX_ENAM);
|
||||
break;
|
||||
case PM_CLOCKWORK_FACTORY:
|
||||
obj = mksobj_at(CLOCKWORK_COMPONENT, x, y, TRUE, FALSE);
|
||||
obj = mksobj_at(CLOCKWORK_COMPONENT, x, y, NO_MKOBJ_FLAGS);
|
||||
obj->quan = d(3,4);
|
||||
obj->owt = weight(obj);
|
||||
if(!rn2(20)){
|
||||
obj = mksobj_at(UPGRADE_KIT, x, y, TRUE, FALSE);
|
||||
obj = mksobj_at(UPGRADE_KIT, x, y, NO_MKOBJ_FLAGS);
|
||||
} else if(!rn2(19)){
|
||||
obj = mksobj_at(TINNING_KIT, x, y, TRUE, FALSE);
|
||||
obj = mksobj_at(TINNING_KIT, x, y, NO_MKOBJ_FLAGS);
|
||||
} else if(!rn2(10)){
|
||||
obj = mksobj_at(CAN_OF_GREASE, x, y, TRUE, FALSE);
|
||||
obj = mksobj_at(CAN_OF_GREASE, x, y, NO_MKOBJ_FLAGS);
|
||||
}
|
||||
rem_mx(mtmp, MX_ENAM);
|
||||
break;
|
||||
case PM_ID_JUGGERNAUT:
|
||||
obj = mksobj_at(CLOCKWORK_COMPONENT, x, y, TRUE, FALSE);
|
||||
obj = mksobj_at(CLOCKWORK_COMPONENT, x, y, NO_MKOBJ_FLAGS);
|
||||
obj->quan = d(4,4);
|
||||
obj->owt = weight(obj);
|
||||
obj = mksobj_at(SUBETHAIC_COMPONENT, x, y, TRUE, FALSE);
|
||||
obj = mksobj_at(SUBETHAIC_COMPONENT, x, y, NO_MKOBJ_FLAGS);
|
||||
obj->quan = d(1,4);
|
||||
obj->owt = weight(obj);
|
||||
rem_mx(mtmp, MX_ENAM);
|
||||
break;
|
||||
case PM_SCRAP_TITAN:
|
||||
obj = mksobj_at(CLOCKWORK_COMPONENT, x, y, TRUE, FALSE);
|
||||
obj = mksobj_at(CLOCKWORK_COMPONENT, x, y, NO_MKOBJ_FLAGS);
|
||||
obj->quan = d(4,4);
|
||||
obj->owt = weight(obj);
|
||||
rem_mx(mtmp, MX_ENAM);
|
||||
num = d(2,4);
|
||||
while (num--){
|
||||
obj = mksobj_at(CHAIN, x, y, TRUE, FALSE);
|
||||
obj = mksobj_at(CHAIN, x, y, NO_MKOBJ_FLAGS);
|
||||
set_material_gm(obj, IRON);
|
||||
obj->oeroded = 3;
|
||||
obj = mksobj_at(CHAIN, x, y, TRUE, FALSE);
|
||||
obj = mksobj_at(CHAIN, x, y, NO_MKOBJ_FLAGS);
|
||||
set_material_gm(obj, IRON);
|
||||
obj->oeroded = 3;
|
||||
obj = mksobj_at(BAR, x, y, TRUE, FALSE);
|
||||
obj = mksobj_at(BAR, x, y, NO_MKOBJ_FLAGS);
|
||||
set_material_gm(obj, IRON);
|
||||
obj->oeroded = 3;
|
||||
obj = mksobj_at(SCRAP, x, y, TRUE, FALSE);
|
||||
obj = mksobj_at(SCRAP, x, y, NO_MKOBJ_FLAGS);
|
||||
set_material_gm(obj, IRON);
|
||||
obj->oeroded = 3;
|
||||
obj = mksobj_at(SCRAP, x, y, TRUE, FALSE);
|
||||
obj = mksobj_at(SCRAP, x, y, NO_MKOBJ_FLAGS);
|
||||
set_material_gm(obj, IRON);
|
||||
obj->oeroded = 3;
|
||||
obj = mksobj_at(SCRAP, x, y, TRUE, FALSE);
|
||||
obj = mksobj_at(SCRAP, x, y, NO_MKOBJ_FLAGS);
|
||||
set_material_gm(obj, IRON);
|
||||
obj->oeroded = 3;
|
||||
}
|
||||
break;
|
||||
case PM_HELLFIRE_COLOSSUS:
|
||||
obj = mksobj_at(CLOCKWORK_COMPONENT, x, y, TRUE, FALSE);
|
||||
obj = mksobj_at(CLOCKWORK_COMPONENT, x, y, NO_MKOBJ_FLAGS);
|
||||
obj->quan = d(4,4);
|
||||
obj->owt = weight(obj);
|
||||
obj = mksobj_at(HELLFIRE_COMPONENT, x, y, TRUE, FALSE);
|
||||
obj = mksobj_at(HELLFIRE_COMPONENT, x, y, NO_MKOBJ_FLAGS);
|
||||
obj->quan = d(4,4);
|
||||
obj->owt = weight(obj);
|
||||
num = d(2,6);
|
||||
while (num--){
|
||||
obj = mksobj_at(CHAIN, x, y, TRUE, FALSE);
|
||||
obj = mksobj_at(CHAIN, x, y, NO_MKOBJ_FLAGS);
|
||||
set_material_gm(obj, IRON);
|
||||
obj = mksobj_at(CHAIN, x, y, TRUE, FALSE);
|
||||
obj = mksobj_at(CHAIN, x, y, NO_MKOBJ_FLAGS);
|
||||
set_material_gm(obj, IRON);
|
||||
obj = mksobj_at(BAR, x, y, TRUE, FALSE);
|
||||
obj = mksobj_at(BAR, x, y, NO_MKOBJ_FLAGS);
|
||||
set_material_gm(obj, IRON);
|
||||
}
|
||||
rem_mx(mtmp, MX_ENAM);
|
||||
|
@ -702,7 +702,7 @@ register struct monst *mtmp;
|
|||
case PM_PARASITIZED_DOLL:
|
||||
num = d(2,4);
|
||||
while (num--){
|
||||
obj = mksobj_at(EYEBALL, x, y, FALSE, FALSE);
|
||||
obj = mksobj_at(EYEBALL, x, y, MKOBJ_NOINIT);
|
||||
obj->corpsenm = PM_PARASITIZED_DOLL;
|
||||
}
|
||||
|
||||
|
@ -729,10 +729,10 @@ register struct monst *mtmp;
|
|||
obj->ovar1 = mtmp->m_insight_level;
|
||||
break;
|
||||
case PM_CRUCIFIED_ANDROID:
|
||||
obj = mksobj_at(BAR, x, y, FALSE, FALSE);
|
||||
obj = mksobj_at(BAR, x, y, MKOBJ_NOINIT);
|
||||
set_material_gm(obj, IRON);
|
||||
obj->oeroded = 1;
|
||||
obj = mksobj_at(BAR, x, y, FALSE, FALSE);
|
||||
obj = mksobj_at(BAR, x, y, MKOBJ_NOINIT);
|
||||
set_material_gm(obj, IRON);
|
||||
obj->oeroded = 1;
|
||||
mon = makemon(&mons[PM_ANDROID], x, y, MM_EDOG | MM_ADJACENTOK | NO_MINVENT | MM_NOCOUNTBIRTH);
|
||||
|
@ -745,7 +745,7 @@ register struct monst *mtmp;
|
|||
obj = mkcorpstat(BROKEN_ANDROID, mon, (struct permonst *)0, x, y, FALSE);
|
||||
mongone(mon);
|
||||
} else {
|
||||
obj = mksobj_at(BROKEN_ANDROID, x, y, FALSE, FALSE);
|
||||
obj = mksobj_at(BROKEN_ANDROID, x, y, MKOBJ_NOINIT);
|
||||
}
|
||||
break;
|
||||
case PM_MUMMIFIED_ANDROID:
|
||||
|
@ -759,7 +759,7 @@ register struct monst *mtmp;
|
|||
obj = mkcorpstat(BROKEN_ANDROID, mon, (struct permonst *)0, x, y, FALSE);
|
||||
mongone(mon);
|
||||
} else {
|
||||
obj = mksobj_at(BROKEN_ANDROID, x, y, FALSE, FALSE);
|
||||
obj = mksobj_at(BROKEN_ANDROID, x, y, MKOBJ_NOINIT);
|
||||
}
|
||||
break;
|
||||
case PM_FLAYED_ANDROID:
|
||||
|
@ -773,7 +773,7 @@ register struct monst *mtmp;
|
|||
obj = mkcorpstat(BROKEN_ANDROID, mon, (struct permonst *)0, x, y, FALSE);
|
||||
mongone(mon);
|
||||
} else {
|
||||
obj = mksobj_at(BROKEN_ANDROID, x, y, FALSE, FALSE);
|
||||
obj = mksobj_at(BROKEN_ANDROID, x, y, MKOBJ_NOINIT);
|
||||
}
|
||||
break;
|
||||
case PM_PARASITIZED_ANDROID:
|
||||
|
@ -787,13 +787,13 @@ register struct monst *mtmp;
|
|||
mkcorpstat(BROKEN_ANDROID, mon, (struct permonst *)0, x, y, FALSE);
|
||||
mongone(mon);
|
||||
} else {
|
||||
obj = mksobj_at(BROKEN_ANDROID, x, y, FALSE, FALSE);
|
||||
obj = mksobj_at(BROKEN_ANDROID, x, y, MKOBJ_NOINIT);
|
||||
}
|
||||
if(mtmp->mpetitioner
|
||||
&& !is_rider(mtmp->data)
|
||||
) //u.uevent.invoked ||
|
||||
break;
|
||||
obj = mksobj_at(CORPSE, x, y, FALSE, FALSE);
|
||||
obj = mksobj_at(CORPSE, x, y, MKOBJ_NOINIT);
|
||||
obj->corpsenm = PM_PARASITIC_MIND_FLAYER;
|
||||
fix_object(obj);
|
||||
break;
|
||||
|
@ -804,10 +804,10 @@ register struct monst *mtmp;
|
|||
obj->ovar1 = mtmp->m_insight_level;
|
||||
break;
|
||||
case PM_CRUCIFIED_GYNOID:
|
||||
obj = mksobj_at(BAR, x, y, FALSE, FALSE);
|
||||
obj = mksobj_at(BAR, x, y, MKOBJ_NOINIT);
|
||||
set_material_gm(obj, IRON);
|
||||
obj->oeroded = 1;
|
||||
obj = mksobj_at(BAR, x, y, FALSE, FALSE);
|
||||
obj = mksobj_at(BAR, x, y, MKOBJ_NOINIT);
|
||||
set_material_gm(obj, IRON);
|
||||
obj->oeroded = 1;
|
||||
mon = makemon(&mons[PM_GYNOID], x, y, MM_EDOG | MM_ADJACENTOK | NO_MINVENT | MM_NOCOUNTBIRTH);
|
||||
|
@ -820,7 +820,7 @@ register struct monst *mtmp;
|
|||
obj = mkcorpstat(BROKEN_GYNOID, mon, (struct permonst *)0, x, y, FALSE);
|
||||
mongone(mon);
|
||||
} else {
|
||||
obj = mksobj_at(BROKEN_GYNOID, x, y, FALSE, FALSE);
|
||||
obj = mksobj_at(BROKEN_GYNOID, x, y, MKOBJ_NOINIT);
|
||||
}
|
||||
break;
|
||||
case PM_MUMMIFIED_GYNOID:
|
||||
|
@ -834,7 +834,7 @@ register struct monst *mtmp;
|
|||
obj = mkcorpstat(BROKEN_GYNOID, mon, (struct permonst *)0, x, y, FALSE);
|
||||
mongone(mon);
|
||||
} else {
|
||||
obj = mksobj_at(BROKEN_GYNOID, x, y, FALSE, FALSE);
|
||||
obj = mksobj_at(BROKEN_GYNOID, x, y, MKOBJ_NOINIT);
|
||||
}
|
||||
break;
|
||||
case PM_FLAYED_GYNOID:
|
||||
|
@ -848,7 +848,7 @@ register struct monst *mtmp;
|
|||
obj = mkcorpstat(BROKEN_GYNOID, mon, (struct permonst *)0, x, y, FALSE);
|
||||
mongone(mon);
|
||||
} else {
|
||||
obj = mksobj_at(BROKEN_GYNOID, x, y, FALSE, FALSE);
|
||||
obj = mksobj_at(BROKEN_GYNOID, x, y, MKOBJ_NOINIT);
|
||||
}
|
||||
break;
|
||||
case PM_PARASITIZED_GYNOID:
|
||||
|
@ -862,13 +862,13 @@ register struct monst *mtmp;
|
|||
obj = mkcorpstat(BROKEN_GYNOID, mon, (struct permonst *)0, x, y, FALSE);
|
||||
mongone(mon);
|
||||
} else {
|
||||
obj = mksobj_at(BROKEN_GYNOID, x, y, FALSE, FALSE);
|
||||
obj = mksobj_at(BROKEN_GYNOID, x, y, MKOBJ_NOINIT);
|
||||
}
|
||||
if(mtmp->mpetitioner
|
||||
&& !is_rider(mtmp->data)
|
||||
) //u.uevent.invoked ||
|
||||
break;
|
||||
obj = mksobj_at(CORPSE, x, y, FALSE, FALSE);
|
||||
obj = mksobj_at(CORPSE, x, y, MKOBJ_NOINIT);
|
||||
obj->corpsenm = PM_PARASITIC_MIND_FLAYER;
|
||||
fix_object(obj);
|
||||
break;
|
||||
|
@ -888,13 +888,13 @@ register struct monst *mtmp;
|
|||
obj = mkcorpstat(BROKEN_GYNOID, mon, (struct permonst *)0, x, y, FALSE);
|
||||
mongone(mon);
|
||||
} else {
|
||||
obj = mksobj_at(BROKEN_GYNOID, x, y, FALSE, FALSE);
|
||||
obj = mksobj_at(BROKEN_GYNOID, x, y, MKOBJ_NOINIT);
|
||||
}
|
||||
if(mtmp->mpetitioner
|
||||
&& !is_rider(mtmp->data)
|
||||
) //u.uevent.invoked ||
|
||||
break;
|
||||
obj = mksobj_at(CORPSE, x, y, FALSE, FALSE);
|
||||
obj = mksobj_at(CORPSE, x, y, MKOBJ_NOINIT);
|
||||
obj->corpsenm = PM_PARASITIC_MIND_FLAYER;
|
||||
fix_object(obj);
|
||||
break;
|
||||
|
@ -904,7 +904,7 @@ register struct monst *mtmp;
|
|||
obj->ovar1 = mtmp->m_insight_level;
|
||||
break;
|
||||
case PM_PARASITIZED_COMMANDER:
|
||||
obj = mksobj_at(SHACKLES, x, y, FALSE, FALSE);
|
||||
obj = mksobj_at(SHACKLES, x, y, MKOBJ_NOINIT);
|
||||
set_material_gm(obj, IRON);
|
||||
add_oprop(obj, OPROP_ELECW);
|
||||
obj->oeroded = 1;
|
||||
|
@ -919,17 +919,17 @@ register struct monst *mtmp;
|
|||
obj = mkcorpstat(BROKEN_GYNOID, mon, (struct permonst *)0, x, y, FALSE);
|
||||
mongone(mon);
|
||||
} else {
|
||||
obj = mksobj_at(BROKEN_GYNOID, x, y, FALSE, FALSE);
|
||||
obj = mksobj_at(BROKEN_GYNOID, x, y, MKOBJ_NOINIT);
|
||||
}
|
||||
if(mtmp->mpetitioner
|
||||
&& !is_rider(mtmp->data)
|
||||
) //u.uevent.invoked ||
|
||||
break;
|
||||
obj = mksobj_at(CORPSE, x, y, FALSE, FALSE);
|
||||
obj = mksobj_at(CORPSE, x, y, MKOBJ_NOINIT);
|
||||
obj->corpsenm = PM_PARASITIC_MIND_FLAYER;
|
||||
fix_object(obj); break;
|
||||
case PM_DANCING_BLADE:
|
||||
obj = mksobj_at(TWO_HANDED_SWORD, x, y, FALSE, FALSE);
|
||||
obj = mksobj_at(TWO_HANDED_SWORD, x, y, MKOBJ_NOINIT);
|
||||
obj->blessed = TRUE;
|
||||
obj->cursed = FALSE;
|
||||
obj->spe = 7;
|
||||
|
@ -939,11 +939,11 @@ register struct monst *mtmp;
|
|||
case PM_IRON_GOLEM:
|
||||
num = d(2,6);
|
||||
while (num--){
|
||||
obj = mksobj_at(CHAIN, x, y, TRUE, FALSE);
|
||||
obj = mksobj_at(CHAIN, x, y, NO_MKOBJ_FLAGS);
|
||||
set_material_gm(obj, IRON);
|
||||
obj = mksobj_at(KITE_SHIELD, x, y, TRUE, FALSE);
|
||||
obj = mksobj_at(KITE_SHIELD, x, y, NO_MKOBJ_FLAGS);
|
||||
set_material_gm(obj, IRON);
|
||||
obj = mksobj_at(BAR, x, y, TRUE, FALSE);
|
||||
obj = mksobj_at(BAR, x, y, NO_MKOBJ_FLAGS);
|
||||
set_material_gm(obj, IRON);
|
||||
}
|
||||
rem_mx(mtmp, MX_ENAM);
|
||||
|
@ -951,7 +951,7 @@ register struct monst *mtmp;
|
|||
case PM_CHAIN_GOLEM:
|
||||
num = d(6,6);
|
||||
while (num--){
|
||||
obj = mksobj_at(CHAIN, x, y, TRUE, FALSE);
|
||||
obj = mksobj_at(CHAIN, x, y, NO_MKOBJ_FLAGS);
|
||||
set_material_gm(obj, IRON);
|
||||
}
|
||||
rem_mx(mtmp, MX_ENAM);
|
||||
|
@ -959,7 +959,7 @@ register struct monst *mtmp;
|
|||
case PM_ARGENTUM_GOLEM:
|
||||
num = d(1,3);
|
||||
while (num--){
|
||||
obj = mksobj_at(SILVER_SLINGSTONE, x, y, TRUE, FALSE);
|
||||
obj = mksobj_at(SILVER_SLINGSTONE, x, y, NO_MKOBJ_FLAGS);
|
||||
set_obj_quan(obj, d(10, 5));
|
||||
}
|
||||
rem_mx(mtmp, MX_ENAM);
|
||||
|
@ -967,11 +967,11 @@ register struct monst *mtmp;
|
|||
case PM_GLASS_GOLEM:
|
||||
num = d(2,4); /* very low chance of creating all glass gems */
|
||||
while (num--)
|
||||
obj = mksobj_at((LAST_GEM + rnd(9)), x, y, TRUE, FALSE);
|
||||
obj = mksobj_at((LAST_GEM + rnd(9)), x, y, NO_MKOBJ_FLAGS);
|
||||
rem_mx(mtmp, MX_ENAM);
|
||||
break;
|
||||
case PM_CLAY_GOLEM:
|
||||
obj = mksobj_at(ROCK, x, y, FALSE, FALSE);
|
||||
obj = mksobj_at(ROCK, x, y, MKOBJ_NOINIT);
|
||||
set_obj_quan(obj, (rn2(20) + 50));
|
||||
rem_mx(mtmp, MX_ENAM);
|
||||
break;
|
||||
|
@ -990,7 +990,7 @@ register struct monst *mtmp;
|
|||
case PM_WOOD_GOLEM:
|
||||
num = d(2,4);
|
||||
while(num--) {
|
||||
obj = mksobj_at(QUARTERSTAFF, x, y, TRUE, FALSE);
|
||||
obj = mksobj_at(QUARTERSTAFF, x, y, NO_MKOBJ_FLAGS);
|
||||
set_material_gm(obj, WOOD);
|
||||
}
|
||||
rem_mx(mtmp, MX_ENAM);
|
||||
|
@ -998,7 +998,7 @@ register struct monst *mtmp;
|
|||
case PM_GROVE_GUARDIAN:
|
||||
num = d(3,4);
|
||||
while(num--) {
|
||||
obj = mksobj_at(QUARTERSTAFF, x, y, TRUE, FALSE);
|
||||
obj = mksobj_at(QUARTERSTAFF, x, y, NO_MKOBJ_FLAGS);
|
||||
set_material_gm(obj, WOOD);
|
||||
obj->spe = rnd(3);
|
||||
}
|
||||
|
@ -1007,16 +1007,16 @@ register struct monst *mtmp;
|
|||
case PM_LIVING_LECTERN:
|
||||
num = d(2,3);
|
||||
while(num--) {
|
||||
obj = mksobj_at(CLUB, x, y, TRUE, FALSE);
|
||||
obj = mksobj_at(CLUB, x, y, NO_MKOBJ_FLAGS);
|
||||
set_material_gm(obj, WOOD);
|
||||
}
|
||||
obj = mkobj_at(SPBOOK_CLASS, x, y, FALSE);
|
||||
obj = mkobj_at(SPBOOK_CLASS, x, y, NO_MKOBJ_FLAGS);
|
||||
rem_mx(mtmp, MX_ENAM);
|
||||
break;
|
||||
case PM_LEATHER_GOLEM:
|
||||
num = d(2,4);
|
||||
while(num--)
|
||||
obj = mksobj_at(LEATHER_ARMOR, x, y, TRUE, FALSE);
|
||||
obj = mksobj_at(LEATHER_ARMOR, x, y, NO_MKOBJ_FLAGS);
|
||||
rem_mx(mtmp, MX_ENAM);
|
||||
break;
|
||||
case PM_GOLD_GOLEM:
|
||||
|
@ -1032,7 +1032,7 @@ register struct monst *mtmp;
|
|||
case PM_TREASURY_GOLEM:
|
||||
num = d(2,4);
|
||||
while (num--)
|
||||
obj = mksobj_at((LAST_GEM - rnd(9)), x, y, TRUE, FALSE);
|
||||
obj = mksobj_at((LAST_GEM - rnd(9)), x, y, NO_MKOBJ_FLAGS);
|
||||
rem_mx(mtmp, MX_ENAM);
|
||||
/* Good luck gives more coins */
|
||||
obj = mkgold((long)(400 - rnl(101)), x, y);
|
||||
|
@ -1041,12 +1041,12 @@ register struct monst *mtmp;
|
|||
case PM_PAPER_GOLEM:
|
||||
num = rnd(4);
|
||||
while (num--)
|
||||
obj = mksobj_at(SCR_BLANK_PAPER, x, y, TRUE, FALSE);
|
||||
obj = mksobj_at(SCR_BLANK_PAPER, x, y, NO_MKOBJ_FLAGS);
|
||||
rem_mx(mtmp, MX_ENAM);
|
||||
break;
|
||||
case PM_STRAW_GOLEM:
|
||||
if(!rn2(10)) mksobj_at(SEDGE_HAT, x, y, FALSE, FALSE);
|
||||
obj = mksobj_at(SHEAF_OF_HAY, x, y, FALSE, FALSE);
|
||||
if(!rn2(10)) mksobj_at(SEDGE_HAT, x, y, MKOBJ_NOINIT);
|
||||
obj = mksobj_at(SHEAF_OF_HAY, x, y, MKOBJ_NOINIT);
|
||||
obj->quan = (long)(d(2,4));
|
||||
obj->owt = weight(obj);
|
||||
rem_mx(mtmp, MX_ENAM);
|
||||
|
@ -1057,26 +1057,26 @@ register struct monst *mtmp;
|
|||
num = rnd(8);
|
||||
while (num--){
|
||||
scrnum = d(1, scrrng)-1;
|
||||
obj = mksobj_at(scrnum+SCR_ENCHANT_ARMOR, x, y, TRUE, FALSE);
|
||||
obj = mksobj_at(scrnum+SCR_ENCHANT_ARMOR, x, y, NO_MKOBJ_FLAGS);
|
||||
}
|
||||
rem_mx(mtmp, MX_ENAM);
|
||||
}
|
||||
break;
|
||||
case PM_GARO:
|
||||
if(!rn2(100)){
|
||||
obj = mksobj_at(MASK, x, y, TRUE, FALSE);
|
||||
obj = mksobj_at(MASK, x, y, NO_MKOBJ_FLAGS);
|
||||
obj->corpsenm = PM_GARO;
|
||||
}
|
||||
goto default_1;
|
||||
break;
|
||||
case PM_GARO_MASTER:
|
||||
obj = mksobj_at(MASK, x, y, TRUE, FALSE);
|
||||
obj = mksobj_at(MASK, x, y, NO_MKOBJ_FLAGS);
|
||||
obj->corpsenm = PM_GARO_MASTER;
|
||||
goto default_1;
|
||||
break;
|
||||
case PM_CHANGED:
|
||||
create_gas_cloud(x, y, 4, rnd(3)+1, FALSE);
|
||||
obj = mksobj_at(EYEBALL, x, y, FALSE, FALSE);
|
||||
obj = mksobj_at(EYEBALL, x, y, MKOBJ_NOINIT);
|
||||
obj->corpsenm = humanoid_eyes[rn2(SIZE(humanoid_eyes))];
|
||||
obj->quan = 2;
|
||||
obj->owt = weight(obj);
|
||||
|
@ -1086,43 +1086,43 @@ register struct monst *mtmp;
|
|||
create_gas_cloud(x, y, 5, rnd(3)+1, FALSE);
|
||||
num = rn1(10,10);
|
||||
while (num--){
|
||||
obj = mksobj_at(EYEBALL, x, y, FALSE, FALSE);
|
||||
obj = mksobj_at(EYEBALL, x, y, MKOBJ_NOINIT);
|
||||
obj->corpsenm = humanoid_eyes[rn2(SIZE(humanoid_eyes))];
|
||||
}
|
||||
goto default_1;
|
||||
break;
|
||||
case PM_TWITCHING_FOUR_ARMED_CHANGED:
|
||||
create_gas_cloud(x, y, 4, rnd(3)+1, FALSE);
|
||||
obj = mksobj_at(EYEBALL, x, y, FALSE, FALSE);
|
||||
obj = mksobj_at(EYEBALL, x, y, MKOBJ_NOINIT);
|
||||
obj->corpsenm = PM_MYRKALFR;
|
||||
obj->quan = 2;
|
||||
obj = mksobj_at(EYEBALL, x, y, FALSE, FALSE);
|
||||
obj = mksobj_at(EYEBALL, x, y, MKOBJ_NOINIT);
|
||||
obj->corpsenm = PM_ELF;
|
||||
obj->quan = 2;
|
||||
num = rn1(10,10);
|
||||
while (num--){
|
||||
obj = mksobj_at(EYEBALL, x, y, FALSE, FALSE);
|
||||
obj = mksobj_at(EYEBALL, x, y, MKOBJ_NOINIT);
|
||||
obj->corpsenm = humanoid_eyes[rn2(SIZE(humanoid_eyes))];
|
||||
}
|
||||
num = rn1(10,10);
|
||||
while (num--){
|
||||
obj = mksobj_at(WORM_TOOTH, x, y, FALSE, FALSE);
|
||||
obj = mksobj_at(WORM_TOOTH, x, y, MKOBJ_NOINIT);
|
||||
add_oprop(obj, OPROP_LESSER_FLAYW);
|
||||
}
|
||||
goto default_1;
|
||||
break;
|
||||
case PM_CLAIRVOYANT_CHANGED:
|
||||
create_gas_cloud(x, y, 4, rnd(3)+1, FALSE);
|
||||
obj = mksobj_at(EYEBALL, x, y, FALSE, FALSE);
|
||||
obj = mksobj_at(EYEBALL, x, y, MKOBJ_NOINIT);
|
||||
obj->corpsenm = PM_HUMAN;
|
||||
obj->quan = 2;
|
||||
obj->owt = weight(obj);
|
||||
obj->oartifact = ART_EYE_OF_THE_ORACLE;
|
||||
obj = mksobj_at(EYEBALL, x, y, FALSE, FALSE);
|
||||
obj = mksobj_at(EYEBALL, x, y, MKOBJ_NOINIT);
|
||||
obj->corpsenm = PM_HUMAN;
|
||||
obj->quan = 14;
|
||||
obj->owt = weight(obj);
|
||||
obj = mksobj_at(EYEBALL, x, y, FALSE, FALSE);
|
||||
obj = mksobj_at(EYEBALL, x, y, MKOBJ_NOINIT);
|
||||
obj->corpsenm = PM_HUMAN;
|
||||
obj->quan = 4;
|
||||
obj->owt = weight(obj);
|
||||
|
@ -1170,7 +1170,7 @@ register struct monst *mtmp;
|
|||
&& !is_rider(mtmp->data)
|
||||
) //u.uevent.invoked ||
|
||||
break;
|
||||
obj = mksobj_at(CORPSE, x, y, FALSE, FALSE);
|
||||
obj = mksobj_at(CORPSE, x, y, MKOBJ_NOINIT);
|
||||
obj->corpsenm = PM_PARASITIC_MASTER_MIND_FLAYER;
|
||||
fix_object(obj);
|
||||
break;
|
||||
|
@ -2272,7 +2272,7 @@ movemon()
|
|||
}
|
||||
if(!rn2(100)){
|
||||
struct obj *egg;
|
||||
egg = mksobj(EGG, FALSE, FALSE);
|
||||
egg = mksobj(EGG, MKOBJ_NOINIT);
|
||||
egg->spe = 0; //not yours
|
||||
egg->quan = 1;
|
||||
egg->owt = weight(egg);
|
||||
|
@ -2479,7 +2479,7 @@ meatmetal(mtmp)
|
|||
}
|
||||
/* Left behind a pile? */
|
||||
if (rnd(25) < 3)
|
||||
(void)mksobj_at(ROCK, mtmp->mx, mtmp->my, TRUE, FALSE);
|
||||
(void)mksobj_at(ROCK, mtmp->mx, mtmp->my, NO_MKOBJ_FLAGS);
|
||||
newsym(mtmp->mx, mtmp->my);
|
||||
return 1;
|
||||
}
|
||||
|
@ -4050,7 +4050,7 @@ struct monst *mtmp;
|
|||
/* alabaster-specific effects */
|
||||
mtmp->mspec_used = 0;
|
||||
if(is_alabaster_mummy(mtmp->data) && mtmp->mvar_syllable >= SYLLABLE_OF_STRENGTH__AESH && mtmp->mvar_syllable <= SYLLABLE_OF_SPIRIT__VAUL){
|
||||
mksobj_at(mtmp->mvar_syllable, mtmp->mx, mtmp->my, TRUE, FALSE);
|
||||
mksobj_at(mtmp->mvar_syllable, mtmp->mx, mtmp->my, NO_MKOBJ_FLAGS);
|
||||
if(mtmp->mvar_syllable == SYLLABLE_OF_SPIRIT__VAUL)
|
||||
mtmp->mintrinsics[(DISPLACED - 1) / 32] &= ~(1 << (DISPLACED - 1) % 32);
|
||||
mtmp->mvar_syllable = 0; //Lose the bonus if resurrected
|
||||
|
@ -4304,12 +4304,12 @@ register struct monst *mtmp;
|
|||
if(mtmp->data->msound == MS_NEMESIS) nemdead();
|
||||
//Asc items and crucial bookkeeping
|
||||
if(Race_if(PM_DROW) && !Role_if(PM_NOBLEMAN) && mtmp->mtyp == urole.neminum && !flags.made_bell){
|
||||
(void) mksobj_at(BELL_OF_OPENING, mtmp->mx, mtmp->my, TRUE, FALSE);
|
||||
(void) mksobj_at(BELL_OF_OPENING, mtmp->mx, mtmp->my, NO_MKOBJ_FLAGS);
|
||||
flags.made_bell = TRUE;
|
||||
}
|
||||
if(mtmp->mtyp == PM_OONA){
|
||||
struct obj *obj;
|
||||
obj = mksobj_at(SKELETON_KEY, mtmp->mx, mtmp->my, FALSE, FALSE);
|
||||
obj = mksobj_at(SKELETON_KEY, mtmp->mx, mtmp->my, MKOBJ_NOINIT);
|
||||
obj = oname(obj, artiname(ART_THIRD_KEY_OF_LAW));
|
||||
obj->spe = 0;
|
||||
obj->cursed = obj->blessed = FALSE;
|
||||
|
@ -4325,11 +4325,11 @@ register struct monst *mtmp;
|
|||
if(remaining){
|
||||
remaining = rnd(remaining);
|
||||
if(!flags.made_first && !(--remaining))
|
||||
mksobj_at(FIRST_WORD, mtmp->mx, mtmp->my, TRUE, FALSE);
|
||||
mksobj_at(FIRST_WORD, mtmp->mx, mtmp->my, NO_MKOBJ_FLAGS);
|
||||
else if(!flags.made_divide && !(--remaining))
|
||||
mksobj_at(DIVIDING_WORD, mtmp->mx, mtmp->my, TRUE, FALSE);
|
||||
mksobj_at(DIVIDING_WORD, mtmp->mx, mtmp->my, NO_MKOBJ_FLAGS);
|
||||
else if(!flags.made_life && !(--remaining))
|
||||
mksobj_at(NURTURING_WORD, mtmp->mx, mtmp->my, TRUE, FALSE);
|
||||
mksobj_at(NURTURING_WORD, mtmp->mx, mtmp->my, NO_MKOBJ_FLAGS);
|
||||
}
|
||||
}
|
||||
if(mtmp->mtyp == PM_GARLAND){
|
||||
|
@ -5156,7 +5156,7 @@ register struct monst *mdef;
|
|||
#ifndef GOLDOBJ
|
||||
if (mdef->mgold) {
|
||||
struct obj *au;
|
||||
au = mksobj(GOLD_PIECE, FALSE, FALSE);
|
||||
au = mksobj(GOLD_PIECE, MKOBJ_NOINIT);
|
||||
au->quan = mdef->mgold;
|
||||
au->owt = weight(au);
|
||||
(void) add_to_container(otmp, au);
|
||||
|
@ -5170,7 +5170,7 @@ register struct monst *mdef;
|
|||
otmp->spe |= STATUE_FACELESS;
|
||||
otmp->owt = weight(otmp);
|
||||
} else
|
||||
otmp = mksobj_at(ROCK, x, y, TRUE, FALSE);
|
||||
otmp = mksobj_at(ROCK, x, y, NO_MKOBJ_FLAGS);
|
||||
|
||||
stackobj(otmp);
|
||||
/* mondead() already does this, but we must do it before the newsym */
|
||||
|
@ -5252,7 +5252,7 @@ register struct monst *mdef;
|
|||
#ifndef GOLDOBJ
|
||||
if (mdef->mgold) {
|
||||
struct obj *au;
|
||||
au = mksobj(GOLD_PIECE, FALSE, FALSE);
|
||||
au = mksobj(GOLD_PIECE, MKOBJ_NOINIT);
|
||||
au->quan = mdef->mgold;
|
||||
au->owt = weight(au);
|
||||
(void) add_to_container(otmp, au);
|
||||
|
@ -5301,7 +5301,7 @@ register struct monst *mdef;
|
|||
place_object(obj, x, y);
|
||||
stackobj(obj);
|
||||
}
|
||||
otmp = mksobj_at(ROCK, x, y, TRUE, FALSE);
|
||||
otmp = mksobj_at(ROCK, x, y, NO_MKOBJ_FLAGS);
|
||||
set_material(otmp, GOLD);
|
||||
if (M_HAS_NAME(mdef)) otmp = oname(otmp, MNAME(mdef));
|
||||
}
|
||||
|
@ -5385,7 +5385,7 @@ register struct monst *mdef;
|
|||
#ifndef GOLDOBJ
|
||||
if (mdef->mgold) {
|
||||
struct obj *au;
|
||||
au = mksobj(GOLD_PIECE, FALSE, FALSE);
|
||||
au = mksobj(GOLD_PIECE, MKOBJ_NOINIT);
|
||||
au->quan = mdef->mgold;
|
||||
au->owt = weight(au);
|
||||
(void) add_to_container(otmp, au);
|
||||
|
@ -5433,7 +5433,7 @@ register struct monst *mdef;
|
|||
place_object(obj, x, y);
|
||||
stackobj(obj);
|
||||
}
|
||||
otmp = mksobj_at(ROCK, x, y, TRUE, FALSE);
|
||||
otmp = mksobj_at(ROCK, x, y, NO_MKOBJ_FLAGS);
|
||||
set_material(otmp, GLASS);
|
||||
if (M_HAS_NAME(mdef)) otmp = oname(otmp, MNAME(mdef));
|
||||
}
|
||||
|
@ -5656,7 +5656,7 @@ xkilled(mtmp, dest)
|
|||
|
||||
#ifdef MAIL
|
||||
if(mdat->mtyp == PM_MAIL_DAEMON) {
|
||||
stackobj(mksobj_at(SCR_MAIL, x, y, FALSE, FALSE));
|
||||
stackobj(mksobj_at(SCR_MAIL, x, y, MKOBJ_NOINIT));
|
||||
redisp = TRUE;
|
||||
}
|
||||
#endif
|
||||
|
@ -5678,7 +5678,7 @@ xkilled(mtmp, dest)
|
|||
int typ;
|
||||
|
||||
/*Death Drop*/
|
||||
otmp = mkobj_at(RANDOM_CLASS, x, y, TRUE);
|
||||
otmp = mkobj_at(RANDOM_CLASS, x, y, MKOBJ_ARTIF);
|
||||
if(In_quest(&u.uz) && !Role_if(PM_CONVICT)){
|
||||
if(otmp->oclass == WEAPON_CLASS || otmp->oclass == ARMOR_CLASS) otmp->objsize = (&mons[urace.malenum])->msize;
|
||||
if(otmp->oclass == ARMOR_CLASS){
|
||||
|
|
|
@ -1099,23 +1099,23 @@ register struct monst *mtmp;
|
|||
mtmp = makemon(&mons[type], ox, oy, NO_MINVENT);
|
||||
if(mtmp){
|
||||
struct obj *otmp;
|
||||
otmp = mksobj(LONG_SWORD, FALSE, FALSE);
|
||||
otmp = mksobj(LONG_SWORD, MKOBJ_NOINIT);
|
||||
set_material_gm(otmp, DRAGON_HIDE);
|
||||
otmp->objsize = mtmp->data->msize;
|
||||
add_oprop(otmp, OPROP_ACIDW);
|
||||
fix_object(otmp);
|
||||
(void) mpickobj(mtmp, otmp);
|
||||
otmp = mksobj(PLATE_MAIL, TRUE, FALSE);
|
||||
otmp = mksobj(PLATE_MAIL, NO_MKOBJ_FLAGS);
|
||||
set_material_gm(otmp, SHELL_MAT);
|
||||
otmp->objsize = mtmp->data->msize;
|
||||
fix_object(otmp);
|
||||
(void) mpickobj(mtmp, otmp);
|
||||
otmp = mksobj(GAUNTLETS, TRUE, FALSE);
|
||||
otmp = mksobj(GAUNTLETS, NO_MKOBJ_FLAGS);
|
||||
set_material_gm(otmp, SHELL_MAT);
|
||||
otmp->objsize = mtmp->data->msize;
|
||||
fix_object(otmp);
|
||||
(void) mpickobj(mtmp, otmp);
|
||||
otmp = mksobj(ARMORED_BOOTS, TRUE, FALSE);
|
||||
otmp = mksobj(ARMORED_BOOTS, NO_MKOBJ_FLAGS);
|
||||
set_material_gm(otmp, SHELL_MAT);
|
||||
otmp->objsize = mtmp->data->msize;
|
||||
fix_object(otmp);
|
||||
|
@ -1147,23 +1147,23 @@ register struct monst *mtmp;
|
|||
else return 0;
|
||||
if(mtmp){
|
||||
struct obj *otmp;
|
||||
otmp = mksobj(LONG_SWORD, FALSE, FALSE);
|
||||
otmp = mksobj(LONG_SWORD, MKOBJ_NOINIT);
|
||||
set_material_gm(otmp, DRAGON_HIDE);
|
||||
otmp->objsize = mons[type].msize;
|
||||
add_oprop(otmp, OPROP_ACIDW);
|
||||
fix_object(otmp);
|
||||
(void) mpickobj(mtmp, otmp);
|
||||
otmp = mksobj(PLATE_MAIL, TRUE, FALSE);
|
||||
otmp = mksobj(PLATE_MAIL, NO_MKOBJ_FLAGS);
|
||||
set_material_gm(otmp, SHELL_MAT);
|
||||
otmp->objsize = mons[type].msize;
|
||||
fix_object(otmp);
|
||||
(void) mpickobj(mtmp, otmp);
|
||||
otmp = mksobj(GAUNTLETS, TRUE, FALSE);
|
||||
otmp = mksobj(GAUNTLETS, NO_MKOBJ_FLAGS);
|
||||
set_material_gm(otmp, SHELL_MAT);
|
||||
otmp->objsize = mons[type].msize;
|
||||
fix_object(otmp);
|
||||
(void) mpickobj(mtmp, otmp);
|
||||
otmp = mksobj(ARMORED_BOOTS, TRUE, FALSE);
|
||||
otmp = mksobj(ARMORED_BOOTS, NO_MKOBJ_FLAGS);
|
||||
set_material_gm(otmp, SHELL_MAT);
|
||||
otmp->objsize = mons[type].msize;
|
||||
fix_object(otmp);
|
||||
|
@ -2220,7 +2220,7 @@ not_special:
|
|||
for(i = -1; i < 2; i++) for(j = -1; j < 2; j++){
|
||||
if(isok(mtmp->mx+i, mtmp->my+j) && IS_WALL(levl[mtmp->mx+i][mtmp->my+j].typ)){
|
||||
if(count-- == 0){
|
||||
breacher = mksobj(STICK_OF_DYNAMITE, FALSE, FALSE);
|
||||
breacher = mksobj(STICK_OF_DYNAMITE, MKOBJ_NOINIT);
|
||||
breacher->quan = 1L;
|
||||
breacher->cursed = 0;
|
||||
breacher->blessed = 0;
|
||||
|
@ -2622,7 +2622,7 @@ boolean heard; /* print You_hear() message? */
|
|||
levl[x][y].typ = (Is_special(&u.uz) || *in_rooms(x, y, 0)) ? ROOM : CORR;
|
||||
|
||||
for (numbars = d(2, 4) - 1; numbars > 0; numbars--){
|
||||
obj = mksobj_at(BAR, x, y, FALSE, FALSE);
|
||||
obj = mksobj_at(BAR, x, y, MKOBJ_NOINIT);
|
||||
set_material_gm(obj, Is_illregrd(&u.uz) ? METAL : IRON);
|
||||
obj->spe = 0;
|
||||
obj->cursed = obj->blessed = FALSE;
|
||||
|
|
|
@ -98,7 +98,7 @@ int typ;
|
|||
struct obj *obj;
|
||||
|
||||
if (typ == STRANGE_OBJECT) return;
|
||||
obj = mksobj(typ, FALSE, FALSE);
|
||||
obj = mksobj(typ, MKOBJ_NOINIT);
|
||||
if (!rn2(3)) obj->oerodeproof = 1;
|
||||
else if (!rn2(2)) obj->greased = 1;
|
||||
if (!rn2(3)) curse(obj);
|
||||
|
@ -435,7 +435,7 @@ register boolean special;
|
|||
set_malign(mtmp); /* peaceful may have changed again */
|
||||
|
||||
if (weapon != STRANGE_OBJECT) {
|
||||
otmp = mksobj(weapon, TRUE, FALSE);
|
||||
otmp = mksobj(weapon, NO_MKOBJ_FLAGS);
|
||||
otmp->spe = (special ? rn1(5,4) : rn2(4));
|
||||
if(otmp->otyp == RAKUYO && special)
|
||||
otmp->spe = 10;
|
||||
|
@ -456,7 +456,7 @@ register boolean special;
|
|||
}
|
||||
|
||||
if (secweapon != STRANGE_OBJECT) {
|
||||
otmp = mksobj(secweapon, TRUE, FALSE);
|
||||
otmp = mksobj(secweapon, NO_MKOBJ_FLAGS);
|
||||
otmp->spe = (special ? rn1(5,4) : rn2(4));
|
||||
if(otmp->otyp == RAKUYO && special)
|
||||
otmp->spe = 10;
|
||||
|
@ -477,7 +477,7 @@ register boolean special;
|
|||
}
|
||||
|
||||
if (rweapon != STRANGE_OBJECT) {
|
||||
otmp = mksobj(rweapon, TRUE, FALSE);
|
||||
otmp = mksobj(rweapon, NO_MKOBJ_FLAGS);
|
||||
otmp->spe = (special ? rn1(5,4) : rn2(4));
|
||||
if (!rn2(3)) otmp->oerodeproof = 1;
|
||||
else if (!rn2(2)) otmp->greased = 1;
|
||||
|
@ -487,7 +487,7 @@ register boolean special;
|
|||
}
|
||||
|
||||
if (rwammo != STRANGE_OBJECT) {
|
||||
otmp = mksobj(rwammo, TRUE, FALSE);
|
||||
otmp = mksobj(rwammo, NO_MKOBJ_FLAGS);
|
||||
otmp->spe = (special ? rn1(5,4) : rn2(4));
|
||||
if (!rn2(3)) otmp->oerodeproof = 1;
|
||||
otmp->quan += special ? 20 : 10;
|
||||
|
@ -495,7 +495,7 @@ register boolean special;
|
|||
}
|
||||
|
||||
if (tool != STRANGE_OBJECT) {
|
||||
otmp = mksobj(tool, TRUE, FALSE);
|
||||
otmp = mksobj(tool, NO_MKOBJ_FLAGS);
|
||||
(void) mpickobj(mtmp, otmp);
|
||||
}
|
||||
|
||||
|
|
|
@ -1502,8 +1502,7 @@ struct monst *mtmp;
|
|||
register struct monst *mtmp2;
|
||||
|
||||
/* Make the object(s) */
|
||||
otmp2 = mksobj(confused ? ROCK : BOULDER,
|
||||
FALSE, FALSE);
|
||||
otmp2 = mksobj(confused ? ROCK : BOULDER, MKOBJ_NOINIT);
|
||||
if (!otmp2) continue; /* Shouldn't happen */
|
||||
otmp2->quan = confused ? rn1(5,2) : 1;
|
||||
otmp2->owt = weight(otmp2);
|
||||
|
@ -1563,8 +1562,7 @@ struct monst *mtmp;
|
|||
struct obj *otmp2;
|
||||
|
||||
/* Okay, _you_ write this without repeating the code */
|
||||
otmp2 = mksobj(confused ? ROCK : BOULDER,
|
||||
FALSE, FALSE);
|
||||
otmp2 = mksobj(confused ? ROCK : BOULDER, MKOBJ_NOINIT);
|
||||
if (!otmp2) goto xxx_noobj; /* Shouldn't happen */
|
||||
otmp2->quan = confused ? rn1(5,2) : 1;
|
||||
otmp2->owt = weight(otmp2);
|
||||
|
|
|
@ -4360,7 +4360,7 @@ int wishflags;
|
|||
*wishreturn = WISH_SUCCESS;
|
||||
return (&zeroobj);
|
||||
#else
|
||||
otmp = mksobj(GOLD_PIECE, FALSE, FALSE);
|
||||
otmp = mksobj(GOLD_PIECE, MKOBJ_NOINIT);
|
||||
otmp->quan = cnt;
|
||||
otmp->owt = weight(otmp);
|
||||
flags.botl=1;
|
||||
|
@ -4919,7 +4919,7 @@ typfnd:
|
|||
}
|
||||
|
||||
if(typ) {
|
||||
otmp = mksobj(typ, TRUE, FALSE);
|
||||
otmp = mksobj(typ, NO_MKOBJ_FLAGS);
|
||||
} else {
|
||||
otmp = mkobj(oclass, FALSE);
|
||||
if (otmp) typ = otmp->otyp;
|
||||
|
|
|
@ -411,7 +411,7 @@ lookat(x, y, buf, monbuf, shapebuff)
|
|||
|
||||
if (!otmp || otmp->otyp != glyph_to_obj(glyph)) {
|
||||
if (glyph_to_obj(glyph) != STRANGE_OBJECT) {
|
||||
otmp = mksobj(glyph_to_obj(glyph), FALSE, FALSE);
|
||||
otmp = mksobj(glyph_to_obj(glyph), MKOBJ_NOINIT);
|
||||
if (otmp->oclass == COIN_CLASS)
|
||||
otmp->quan = 2L; /* to force pluralization */
|
||||
else if (otmp->otyp == SLIME_MOLD)
|
||||
|
|
|
@ -3252,7 +3252,7 @@ dodip()
|
|||
if(!objects[old_otyp].oc_uname &&
|
||||
!objects[old_otyp].oc_name_known && old_dknown) {
|
||||
struct obj * fakeobj;
|
||||
fakeobj = mksobj(old_otyp, FALSE, FALSE);
|
||||
fakeobj = mksobj(old_otyp, MKOBJ_NOINIT);
|
||||
fakeobj->dknown = 1;
|
||||
docall(fakeobj);
|
||||
delobj(fakeobj);
|
||||
|
|
10
src/pray.c
10
src/pray.c
|
@ -2398,7 +2398,7 @@ dosacrifice()
|
|||
u.umartial = TRUE;
|
||||
} else if(otmp->oartifact == ART_RHONGOMYNIAD){
|
||||
unrestrict_weapon_skill(P_RIDING);
|
||||
mksobj_at(SADDLE, u.ux, u.uy, FALSE, FALSE);
|
||||
mksobj_at(SADDLE, u.ux, u.uy, MKOBJ_NOINIT);
|
||||
u.umartial = TRUE;
|
||||
} else if(otmp->oartifact == ART_GOLDEN_SWORD_OF_Y_HA_TALLA){
|
||||
unrestrict_weapon_skill(P_WHIP);
|
||||
|
@ -3455,7 +3455,7 @@ goat_gives_benefit()
|
|||
case 5:
|
||||
case 6:
|
||||
case 7:
|
||||
optr = mksobj(POT_GOAT_S_MILK, FALSE, FALSE);
|
||||
optr = mksobj(POT_GOAT_S_MILK, MKOBJ_NOINIT);
|
||||
optr->quan = rnd(8);
|
||||
optr->owt = weight(optr);
|
||||
dropy(optr);
|
||||
|
@ -3632,7 +3632,7 @@ int eatflag;
|
|||
if(!has_object_type(invent, HOLY_SYMBOL_OF_THE_BLACK_MOTHE)){
|
||||
struct obj *otmp;
|
||||
if(!rn2(10+u.ugifts)){
|
||||
otmp = mksobj(HOLY_SYMBOL_OF_THE_BLACK_MOTHE, FALSE, FALSE);
|
||||
otmp = mksobj(HOLY_SYMBOL_OF_THE_BLACK_MOTHE, MKOBJ_NOINIT);
|
||||
dropy(otmp);
|
||||
at_your_feet("An object");
|
||||
//event: only increment this once.
|
||||
|
@ -3670,7 +3670,7 @@ int eatflag;
|
|||
u.uartisval += TIER_S;
|
||||
}
|
||||
else if(!flags.made_know){
|
||||
otmp = mksobj(WORD_OF_KNOWLEDGE, FALSE, FALSE);
|
||||
otmp = mksobj(WORD_OF_KNOWLEDGE, MKOBJ_NOINIT);
|
||||
dropy(otmp);
|
||||
at_your_feet("An object");
|
||||
u.ugifts++;
|
||||
|
@ -3698,7 +3698,7 @@ int eatflag;
|
|||
u.reconciled = REC_REC;
|
||||
} else { //Off floor
|
||||
if(isok(x,y) && rnl((30 + u.ulevel)*10) < 10){
|
||||
mksobj_at(POT_GOAT_S_MILK, x, y, FALSE, FALSE);
|
||||
mksobj_at(POT_GOAT_S_MILK, x, y, MKOBJ_NOINIT);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -237,7 +237,7 @@ int sanctum; /* is it the seat of the high priest? */
|
|||
if(In_mordor_depths(&u.uz)){
|
||||
priest->ispriest = 1;
|
||||
priest->msleeping = 0;
|
||||
(void) mpickobj(priest, mksobj(SPE_FIREBALL, FALSE, FALSE));
|
||||
(void) mpickobj(priest, mksobj(SPE_FIREBALL, MKOBJ_NOINIT));
|
||||
} else if(Is_bridge_temple(&u.uz)){
|
||||
priest->ispriest = 1;
|
||||
priest->msleeping = 0;
|
||||
|
|
|
@ -625,7 +625,7 @@ int dy; /* */
|
|||
room->doormask = D_NODOOR;
|
||||
}
|
||||
/* create rocks */
|
||||
otmp = mksobj_at(ROCK, newx, newy, TRUE, FALSE);
|
||||
otmp = mksobj_at(ROCK, newx, newy, NO_MKOBJ_FLAGS);
|
||||
otmp->quan = 20L + rnd(20);
|
||||
otmp->owt = weight(otmp);
|
||||
/* update vision */
|
||||
|
@ -652,7 +652,7 @@ int dy; /* */
|
|||
/* create opening */
|
||||
room->typ = CORR;
|
||||
/* create rocks */
|
||||
otmp = mksobj_at(ROCK, newx, newy, TRUE, FALSE);
|
||||
otmp = mksobj_at(ROCK, newx, newy, NO_MKOBJ_FLAGS);
|
||||
otmp->quan = 20L + rnd(20);
|
||||
otmp->owt = weight(otmp);
|
||||
/* update vision */
|
||||
|
@ -673,7 +673,7 @@ int dy; /* */
|
|||
room->typ = CORR;
|
||||
/* create iron bars */
|
||||
for (numbars = d(2, 4) - 1; numbars > 0; numbars--){
|
||||
otmp = mksobj_at(BAR, newx, newy, FALSE, FALSE);
|
||||
otmp = mksobj_at(BAR, newx, newy, MKOBJ_NOINIT);
|
||||
set_material_gm(otmp, IRON);
|
||||
otmp->spe = 0;
|
||||
otmp->cursed = otmp->blessed = FALSE;
|
||||
|
@ -1389,7 +1389,7 @@ struct monst * mon;
|
|||
){
|
||||
obfree(obj, (struct obj *)0);
|
||||
*obj_p = NULL;
|
||||
obj = mksobj(ELVEN_BOW, TRUE, FALSE);
|
||||
obj = mksobj(ELVEN_BOW, NO_MKOBJ_FLAGS);
|
||||
obj = oname(obj, artiname(ART_BELTHRONDING));
|
||||
obj->oerodeproof = TRUE;
|
||||
obj->blessed = TRUE;
|
||||
|
@ -1417,7 +1417,7 @@ struct monst * mon;
|
|||
){
|
||||
obfree(obj, (struct obj *)0);
|
||||
*obj_p = NULL;
|
||||
obj = mksobj(DROVEN_CROSSBOW, TRUE, FALSE);
|
||||
obj = mksobj(DROVEN_CROSSBOW, NO_MKOBJ_FLAGS);
|
||||
obj = oname(obj, artiname(ART_WRATHFUL_SPIDER));
|
||||
obj->oerodeproof = TRUE;
|
||||
obj->blessed = TRUE;
|
||||
|
@ -1435,7 +1435,7 @@ struct monst * mon;
|
|||
){
|
||||
obfree(obj, (struct obj *)0);
|
||||
*obj_p = NULL;
|
||||
obj = mksobj(SABER, TRUE, FALSE);
|
||||
obj = mksobj(SABER, NO_MKOBJ_FLAGS);
|
||||
obj = oname(obj, artiname(ART_CRESCENT_BLADE));
|
||||
obj->oerodeproof = TRUE;
|
||||
obj->blessed = TRUE;
|
||||
|
@ -1453,7 +1453,7 @@ struct monst * mon;
|
|||
){
|
||||
obfree(obj, (struct obj *)0);
|
||||
*obj_p = NULL;
|
||||
obj = mksobj(DROVEN_CHAIN_MAIL, TRUE, FALSE);
|
||||
obj = mksobj(DROVEN_CHAIN_MAIL, NO_MKOBJ_FLAGS);
|
||||
obj = oname(obj, artiname(ART_SPIDERSILK));
|
||||
obj->oerodeproof = TRUE;
|
||||
obj->blessed = TRUE;
|
||||
|
@ -1471,7 +1471,7 @@ struct monst * mon;
|
|||
){
|
||||
obfree(obj, (struct obj *)0);
|
||||
*obj_p = NULL;
|
||||
obj = mksobj(FAUCHARD, TRUE, FALSE);
|
||||
obj = mksobj(FAUCHARD, NO_MKOBJ_FLAGS);
|
||||
obj = oname(obj, artiname(ART_WEBWEAVER_S_CROOK));
|
||||
obj->oerodeproof = TRUE;
|
||||
obj->blessed = TRUE;
|
||||
|
@ -2150,7 +2150,7 @@ dofire()
|
|||
|
||||
/* Rogue Gear Spirits' auto-generated ammo -- mainhand only */
|
||||
if (uwep && (!uquiver || (is_ammo(uquiver) && !ammo_and_launcher(uquiver, uwep))) && uwep->oartifact == ART_ROGUE_GEAR_SPIRITS){
|
||||
struct obj *bolt = mksobj(CROSSBOW_BOLT, FALSE, FALSE);
|
||||
struct obj *bolt = mksobj(CROSSBOW_BOLT, MKOBJ_NOINIT);
|
||||
bolt->spe = min(0, uwep->spe);
|
||||
bolt->blessed = uwep->blessed;
|
||||
bolt->cursed = uwep->cursed;
|
||||
|
@ -2270,25 +2270,25 @@ struct obj * blaster;
|
|||
|
||||
switch (blaster->otyp) {
|
||||
case CUTTING_LASER:
|
||||
ammo = mksobj(LASER_BEAM, FALSE, FALSE);
|
||||
ammo = mksobj(LASER_BEAM, MKOBJ_NOINIT);
|
||||
break;
|
||||
case HAND_BLASTER:
|
||||
ammo = mksobj(BLASTER_BOLT, FALSE, FALSE);
|
||||
ammo = mksobj(BLASTER_BOLT, MKOBJ_NOINIT);
|
||||
break;
|
||||
case ARM_BLASTER:
|
||||
ammo = mksobj(HEAVY_BLASTER_BOLT, FALSE, FALSE);
|
||||
ammo = mksobj(HEAVY_BLASTER_BOLT, MKOBJ_NOINIT);
|
||||
break;
|
||||
case MASS_SHADOW_PISTOL:
|
||||
if (blaster->cobj) {
|
||||
ammo = mksobj(blaster->cobj->otyp, FALSE, FALSE);
|
||||
ammo = mksobj(blaster->cobj->otyp, MKOBJ_NOINIT);
|
||||
ammo->oartifact = blaster->cobj->oartifact;
|
||||
}
|
||||
else
|
||||
ammo = mksobj(ROCK, FALSE, FALSE);
|
||||
ammo = mksobj(ROCK, MKOBJ_NOINIT);
|
||||
break;
|
||||
case RAYGUN:
|
||||
/* create fake ammo in order to calculate multishot correctly */
|
||||
ammo = mksobj(LASER_BEAM, FALSE, FALSE);
|
||||
ammo = mksobj(LASER_BEAM, MKOBJ_NOINIT);
|
||||
break;
|
||||
default:
|
||||
impossible("Unhandled blaster %d!", blaster->otyp);
|
||||
|
@ -2809,17 +2809,17 @@ int tary;
|
|||
case AD_WEBS:
|
||||
if (!youagr)
|
||||
magr->mspec_used = d(2, 6);
|
||||
otmp = mksobj(BALL_OF_WEBBING, TRUE, FALSE);
|
||||
otmp = mksobj(BALL_OF_WEBBING, NO_MKOBJ_FLAGS);
|
||||
break;
|
||||
case AD_BLND:
|
||||
case AD_DRST:
|
||||
otmp = mksobj(BLINDING_VENOM, TRUE, FALSE);
|
||||
otmp = mksobj(BLINDING_VENOM, NO_MKOBJ_FLAGS);
|
||||
break;
|
||||
default:
|
||||
impossible("bad attack type in xspity (%d)", typ);
|
||||
/* fall through to acid venom */
|
||||
case AD_ACID:
|
||||
otmp = mksobj(ACID_VENOM, TRUE, FALSE);
|
||||
otmp = mksobj(ACID_VENOM, NO_MKOBJ_FLAGS);
|
||||
if (attk->damn && attk->damd)
|
||||
otmp->ovar1 = d(attk->damn, attk->damd);
|
||||
break;
|
||||
|
@ -2891,7 +2891,7 @@ int n; /* number to try to fire */
|
|||
/* special: do not fire at warded squares */
|
||||
if (!youagr && onscary(tarx, tary, magr)) return FALSE; //Warded; did not fire
|
||||
ammo_type = SPIKE;
|
||||
qvr = mksobj(ammo_type, FALSE, FALSE);
|
||||
qvr = mksobj(ammo_type, MKOBJ_NOINIT);
|
||||
set_material_gm(qvr, SHADOWSTEEL);
|
||||
qvr->quan = 1;
|
||||
qvr->spe = 8;
|
||||
|
@ -2902,7 +2902,7 @@ int n; /* number to try to fire */
|
|||
break;
|
||||
case AD_PEST:
|
||||
ammo_type = ARROW;
|
||||
qvr = mksobj(ammo_type, FALSE, FALSE);
|
||||
qvr = mksobj(ammo_type, MKOBJ_NOINIT);
|
||||
qvr->quan = 1;
|
||||
qvr->spe = d(7, 8) + 1; //same as touch
|
||||
qvr->opoisoned = OPOISON_FILTH;
|
||||
|
@ -2911,14 +2911,14 @@ int n; /* number to try to fire */
|
|||
break;
|
||||
case AD_PLYS:
|
||||
ammo_type = SPIKE;
|
||||
qvr = mksobj(ammo_type, FALSE, FALSE);
|
||||
qvr = mksobj(ammo_type, MKOBJ_NOINIT);
|
||||
set_material_gm(qvr, BONE);
|
||||
qvr->quan = 1;
|
||||
qvr->opoisoned = (OPOISON_PARAL);
|
||||
break;
|
||||
case AD_SOLR:
|
||||
ammo_type = SILVER_ARROW;
|
||||
qvr = mksobj(ammo_type, TRUE, FALSE);
|
||||
qvr = mksobj(ammo_type, NO_MKOBJ_FLAGS);
|
||||
qvr->blessed = 1;
|
||||
qvr->quan = 1;
|
||||
qvr->spe = 7;
|
||||
|
@ -2928,7 +2928,7 @@ int n; /* number to try to fire */
|
|||
break;
|
||||
case AD_SURY:
|
||||
ammo_type = SILVER_ARROW;
|
||||
qvr = mksobj(ammo_type, TRUE, FALSE);
|
||||
qvr = mksobj(ammo_type, NO_MKOBJ_FLAGS);
|
||||
// qvr->oartifact = ART_ARROW_OF_SLAYING;
|
||||
qvr->blessed = 1;
|
||||
qvr->quan = 1;
|
||||
|
@ -2942,23 +2942,23 @@ int n; /* number to try to fire */
|
|||
break;
|
||||
case AD_BALL:
|
||||
ammo_type = HEAVY_IRON_BALL;
|
||||
qvr = mksobj(ammo_type, FALSE, FALSE);
|
||||
qvr = mksobj(ammo_type, MKOBJ_NOINIT);
|
||||
rngmod = 8;
|
||||
break;
|
||||
case AD_LOAD:
|
||||
ammo_type = LOADSTONE;
|
||||
qvr = mksobj(ammo_type, FALSE, FALSE);
|
||||
qvr = mksobj(ammo_type, MKOBJ_NOINIT);
|
||||
qvr->cursed = 1;
|
||||
rngmod = 8;
|
||||
break;
|
||||
case AD_BLDR:
|
||||
ammo_type = BOULDER;
|
||||
qvr = mksobj(ammo_type, FALSE, FALSE);
|
||||
qvr = mksobj(ammo_type, MKOBJ_NOINIT);
|
||||
rngmod = 8;
|
||||
break;
|
||||
case AD_VBLD:
|
||||
ammo_type = HEAVY_IRON_BALL;
|
||||
qvr = mksobj(ammo_type, FALSE, FALSE);
|
||||
qvr = mksobj(ammo_type, MKOBJ_NOINIT);
|
||||
rngmod = 8;
|
||||
volley = TRUE;
|
||||
break;
|
||||
|
|
|
@ -350,7 +350,7 @@ chat_with_leader()
|
|||
urole.lgod = getAnachrononautLgod();
|
||||
} else if(Role_if(PM_CONVICT)){
|
||||
struct obj *obj;
|
||||
obj = mksobj(HEAVY_IRON_BALL, TRUE, FALSE);
|
||||
obj = mksobj(HEAVY_IRON_BALL, NO_MKOBJ_FLAGS);
|
||||
obj = oname(obj, artiname(ART_IRON_BALL_OF_LEVITATION));
|
||||
obj->oerodeproof = TRUE;
|
||||
obj->blessed = TRUE;
|
||||
|
@ -749,7 +749,7 @@ turn_stag()
|
|||
/*Give you an appropriate signet ring*/
|
||||
{
|
||||
struct obj *otmp;
|
||||
otmp = mksobj(find_signet_ring(), TRUE, FALSE);
|
||||
otmp = mksobj(find_signet_ring(), NO_MKOBJ_FLAGS);
|
||||
otmp->ohaluengr = TRUE;
|
||||
otmp->oward = flags.initgend ? EILISTRAEE_SYMBOL : EDDER_SYMBOL;
|
||||
pline("\"Take this, to identify you as one of ours! You should take off any armor with another faction's crest, though.\"");
|
||||
|
|
|
@ -2200,8 +2200,7 @@ struct obj *sobj;
|
|||
register struct monst *mtmp;
|
||||
|
||||
/* Make the object(s) */
|
||||
otmp2 = mksobj(confused ? ROCK : BOULDER,
|
||||
FALSE, FALSE);
|
||||
otmp2 = mksobj(confused ? ROCK : BOULDER, MKOBJ_NOINIT);
|
||||
if (!otmp2) continue; /* Shouldn't happen */
|
||||
otmp2->quan = confused ? rn1(5,2) : 1;
|
||||
otmp2->owt = weight(otmp2);
|
||||
|
@ -2255,8 +2254,7 @@ struct obj *sobj;
|
|||
struct obj *otmp2;
|
||||
|
||||
/* Okay, _you_ write this without repeating the code */
|
||||
otmp2 = mksobj(confused ? ROCK : BOULDER,
|
||||
FALSE, FALSE);
|
||||
otmp2 = mksobj(confused ? ROCK : BOULDER, MKOBJ_NOINIT);
|
||||
if (!otmp2) break;
|
||||
otmp2->quan = confused ? rn1(5,2) : 1;
|
||||
otmp2->owt = weight(otmp2);
|
||||
|
@ -2715,7 +2713,7 @@ int x, y;
|
|||
genericptr_t val;
|
||||
{
|
||||
if (val) {
|
||||
struct obj *ispe = mksobj(SPE_LIGHT, TRUE, FALSE);
|
||||
struct obj *ispe = mksobj(SPE_LIGHT, NO_MKOBJ_FLAGS);
|
||||
bhitpile(ispe, bhito, x, y);
|
||||
}
|
||||
else {
|
||||
|
|
14
src/seduce.c
14
src/seduce.c
|
@ -2024,7 +2024,7 @@ int effect_num;
|
|||
if (!uwep){
|
||||
buf[0] = '\0';
|
||||
steal(mon, buf, FALSE, FALSE);
|
||||
optr = mksobj(BAR, TRUE, FALSE);
|
||||
optr = mksobj(BAR, NO_MKOBJ_FLAGS);
|
||||
curse(optr);
|
||||
optr->spe = -6;
|
||||
verbalize("This will keep you out of trouble.");
|
||||
|
@ -2052,7 +2052,7 @@ int effect_num;
|
|||
verbalize("This should greatly improve your intellect.");
|
||||
buf[0] = '\0';
|
||||
steal(mon, buf, FALSE, FALSE);
|
||||
optr = mksobj(DUNCE_CAP, TRUE, FALSE);
|
||||
optr = mksobj(DUNCE_CAP, NO_MKOBJ_FLAGS);
|
||||
curse(optr);
|
||||
optr->spe = -6;
|
||||
(void)hold_another_object(optr, u.uswallow ?
|
||||
|
@ -2081,7 +2081,7 @@ int effect_num;
|
|||
verbalize("These boots will improve your looks.");
|
||||
buf[0] = '\0';
|
||||
steal(mon, buf, FALSE, FALSE);
|
||||
optr = mksobj(FUMBLE_BOOTS, TRUE, FALSE);
|
||||
optr = mksobj(FUMBLE_BOOTS, NO_MKOBJ_FLAGS);
|
||||
curse(optr);
|
||||
optr->spe = -6;
|
||||
(void)hold_another_object(optr, u.uswallow ?
|
||||
|
@ -2109,7 +2109,7 @@ int effect_num;
|
|||
verbalize("You need to take things more slowly.");
|
||||
buf[0] = '\0';
|
||||
steal(mon, buf, FALSE, FALSE);
|
||||
optr = mksobj(AMULET_OF_RESTFUL_SLEEP, TRUE, FALSE);
|
||||
optr = mksobj(AMULET_OF_RESTFUL_SLEEP, NO_MKOBJ_FLAGS);
|
||||
curse(optr);
|
||||
(void)hold_another_object(optr, u.uswallow ?
|
||||
"Fortunately, you're out of reach! %s away." :
|
||||
|
@ -2332,7 +2332,7 @@ int effect_num;
|
|||
case SEDU_SIXTRUTHS:
|
||||
verbalize("I grant you six truths!");
|
||||
for (tmp = 0; tmp < 6; tmp++) {
|
||||
optr = mksobj(POT_ENLIGHTENMENT, TRUE, FALSE);
|
||||
optr = mksobj(POT_ENLIGHTENMENT, NO_MKOBJ_FLAGS);
|
||||
bless(optr);
|
||||
hold_another_object(optr, u.uswallow ?
|
||||
"Oops! %s out of your reach!" :
|
||||
|
@ -2352,7 +2352,7 @@ int effect_num;
|
|||
case SEDU_SIXFOLLOWERS:
|
||||
verbalize("I grant you six followers!");
|
||||
for (tmp = 0; tmp < 6; tmp++) {
|
||||
optr = mksobj(FIGURINE, TRUE, FALSE);
|
||||
optr = mksobj(FIGURINE, NO_MKOBJ_FLAGS);
|
||||
bless(optr);
|
||||
hold_another_object(optr, u.uswallow ?
|
||||
"Oops! %s out of your reach!" :
|
||||
|
@ -2371,7 +2371,7 @@ int effect_num;
|
|||
|
||||
case SEDU_LIFESAVING:
|
||||
verbalize("I grant you life!");
|
||||
optr = mksobj(AMULET_OF_LIFE_SAVING, TRUE, FALSE);
|
||||
optr = mksobj(AMULET_OF_LIFE_SAVING, NO_MKOBJ_FLAGS);
|
||||
bless(optr);
|
||||
(void)hold_another_object(optr, u.uswallow ?
|
||||
"Oops! %s out of your reach!" :
|
||||
|
|
|
@ -3696,8 +3696,7 @@ boolean catchup; /* restoring a level */
|
|||
return(0);
|
||||
if (ttmp->ttyp == LANDMINE || ttmp->ttyp == BEAR_TRAP) {
|
||||
/* convert to an object */
|
||||
otmp = mksobj((ttmp->ttyp == LANDMINE) ? LAND_MINE :
|
||||
BEARTRAP, TRUE, FALSE);
|
||||
otmp = mksobj((ttmp->ttyp == LANDMINE) ? LAND_MINE : BEARTRAP, NO_MKOBJ_FLAGS);
|
||||
otmp->quan= 1;
|
||||
otmp->owt = weight(otmp);
|
||||
(void) mpickobj(shkp, otmp);
|
||||
|
|
16
src/shknam.c
16
src/shknam.c
|
@ -480,10 +480,10 @@ int sx, sy;
|
|||
else {
|
||||
atype = get_shop_item(shp - shtypes);
|
||||
if (atype < 0){
|
||||
curobj = mksobj_at(-atype, sx, sy, TRUE, TRUE);
|
||||
curobj = mksobj_at(-atype, sx, sy, MKOBJ_ARTIF);
|
||||
}
|
||||
else {
|
||||
curobj = mkobj_at(atype, sx, sy, TRUE);
|
||||
curobj = mkobj_at(atype, sx, sy, MKOBJ_ARTIF);
|
||||
}
|
||||
|
||||
if (curobj){
|
||||
|
@ -501,7 +501,7 @@ int sx, sy;
|
|||
if (shp->shoptype == CERAMICSHOP) {
|
||||
if (curobj->oclass == ARMOR_CLASS && !curobj->oartifact) {
|
||||
/* we actually want to completely replace that object. */
|
||||
struct obj * newobj = mksobj_at(valavi_armors[rn2(SIZE(valavi_armors))], sx, sy, TRUE, TRUE);
|
||||
struct obj * newobj = mksobj_at(valavi_armors[rn2(SIZE(valavi_armors))], sx, sy, MKOBJ_ARTIF);
|
||||
newobj->shopOwned = TRUE;
|
||||
if (newobj) {
|
||||
if (is_metallic(newobj) && !newobj->oartifact)
|
||||
|
@ -530,7 +530,7 @@ int sx, sy;
|
|||
if (shp->shoptype == SEAGARDEN) {
|
||||
if (curobj->oclass == ARMOR_CLASS && !curobj->oartifact) {
|
||||
/* we actually want to completely replace that object. */
|
||||
struct obj * newobj = mksobj_at(garden_armors[rn2(SIZE(garden_armors))], sx, sy, TRUE, TRUE);
|
||||
struct obj * newobj = mksobj_at(garden_armors[rn2(SIZE(garden_armors))], sx, sy, MKOBJ_ARTIF);
|
||||
if (newobj) {
|
||||
newobj->shopOwned = TRUE;
|
||||
if (is_metallic(newobj) && !newobj->oartifact)
|
||||
|
@ -544,7 +544,7 @@ int sx, sy;
|
|||
}
|
||||
else if (curobj->oclass == WEAPON_CLASS && !curobj->oartifact){
|
||||
/* we actually want to completely replace that object. */
|
||||
struct obj * newobj = mksobj_at(garden_weapons[rn2(SIZE(garden_weapons))], sx, sy, TRUE, TRUE);
|
||||
struct obj * newobj = mksobj_at(garden_weapons[rn2(SIZE(garden_weapons))], sx, sy, MKOBJ_ARTIF);
|
||||
if (newobj) {
|
||||
newobj->shopOwned = TRUE;
|
||||
set_material_gm(newobj, SHELL_MAT);
|
||||
|
@ -579,7 +579,7 @@ int sx, sy;
|
|||
if (shp->shoptype == SANDWALKER) {
|
||||
if (curobj->oclass == ARMOR_CLASS && !curobj->oartifact) {
|
||||
/* we actually want to completely replace that object. */
|
||||
struct obj * newobj = mksobj_at(sand_armors[rn2(SIZE(sand_armors))], sx, sy, TRUE, TRUE);
|
||||
struct obj * newobj = mksobj_at(sand_armors[rn2(SIZE(sand_armors))], sx, sy, MKOBJ_ARTIF);
|
||||
if (newobj) {
|
||||
newobj->shopOwned = TRUE;
|
||||
/* replace curobj with newobj */
|
||||
|
@ -590,7 +590,7 @@ int sx, sy;
|
|||
}
|
||||
else if (curobj->oclass == WEAPON_CLASS && !curobj->oartifact){
|
||||
/* we actually want to completely replace that object. */
|
||||
struct obj * newobj = mksobj_at(sand_weapons[rn2(SIZE(sand_weapons))], sx, sy, TRUE, TRUE);
|
||||
struct obj * newobj = mksobj_at(sand_weapons[rn2(SIZE(sand_weapons))], sx, sy, MKOBJ_ARTIF);
|
||||
if (newobj) {
|
||||
newobj->shopOwned = TRUE;
|
||||
if(!newobj->oartifact && newobj->otyp != CRYSTAL_SWORD)
|
||||
|
@ -611,7 +611,7 @@ int sx, sy;
|
|||
if (shp->shoptype == NAIADSHOP) {
|
||||
if (curobj->oclass == ARMOR_CLASS && !curobj->oartifact) {
|
||||
/* we actually want to completely replace that object. */
|
||||
struct obj * newobj = mksobj_at(fancy_clothes[rn2(SIZE(fancy_clothes))], sx, sy, TRUE, TRUE);
|
||||
struct obj * newobj = mksobj_at(fancy_clothes[rn2(SIZE(fancy_clothes))], sx, sy, MKOBJ_ARTIF);
|
||||
if (newobj) {
|
||||
newobj->shopOwned = TRUE;
|
||||
/* replace curobj with newobj */
|
||||
|
|
|
@ -444,7 +444,7 @@ dosit()
|
|||
return 0;
|
||||
}
|
||||
|
||||
uegg = mksobj(EGG, FALSE, FALSE);
|
||||
uegg = mksobj(EGG, MKOBJ_NOINIT);
|
||||
uegg->spe = 1;
|
||||
uegg->quan = 1;
|
||||
uegg->owt = weight(uegg);
|
||||
|
|
42
src/sounds.c
42
src/sounds.c
|
@ -1091,7 +1091,7 @@ asGuardian:
|
|||
}break;
|
||||
case 2:{
|
||||
// pline("unturn dead\n");
|
||||
struct obj *ispe = mksobj(SPE_TURN_UNDEAD,TRUE,FALSE);
|
||||
struct obj *ispe = mksobj(SPE_TURN_UNDEAD, MKOBJ_NOINIT);
|
||||
for(ix = 0; ix < COLNO; ix++){
|
||||
for(iy = 0; iy < ROWNO; iy++){
|
||||
bhitpile(ispe, bhito, ix, iy);
|
||||
|
@ -1136,7 +1136,7 @@ asGuardian:
|
|||
break;
|
||||
case 5:{
|
||||
// pline("locking\n");
|
||||
struct obj *ispe = mksobj(SPE_WIZARD_LOCK,TRUE,FALSE);
|
||||
struct obj *ispe = mksobj(SPE_WIZARD_LOCK, MKOBJ_NOINIT);
|
||||
struct trap *ttmp;
|
||||
struct rm *door;
|
||||
boolean res = TRUE, vis;
|
||||
|
@ -1282,7 +1282,7 @@ asGuardian:
|
|||
doredraw();
|
||||
break;
|
||||
case 3:{
|
||||
struct obj *ispe = mksobj(SPE_TURN_UNDEAD,TRUE,FALSE);
|
||||
struct obj *ispe = mksobj(SPE_TURN_UNDEAD, MKOBJ_NOINIT);
|
||||
if(ptr->mtyp == PM_INTONER && u.uinsight > Insanity) pline("%s wails deafeningly.", Monnam(mtmp));
|
||||
else pline("%s sings the song of the day of repentance.", Monnam(mtmp));
|
||||
//Rapture invisible creatures
|
||||
|
@ -1846,7 +1846,7 @@ humanoid_sound:
|
|||
break;
|
||||
}
|
||||
// start_clockwinding(key, mtmp, turns);
|
||||
comp = mksobj(CLOCKWORK_COMPONENT, TRUE, FALSE);
|
||||
comp = mksobj(CLOCKWORK_COMPONENT, NO_MKOBJ_FLAGS);
|
||||
comp->blessed = FALSE;
|
||||
comp->cursed = FALSE;
|
||||
comp->quan = howmany;
|
||||
|
@ -1865,7 +1865,7 @@ humanoid_sound:
|
|||
break;
|
||||
}
|
||||
// start_clockwinding(key, mtmp, turns);
|
||||
comp = mksobj(SUBETHAIC_COMPONENT, TRUE, FALSE);
|
||||
comp = mksobj(SUBETHAIC_COMPONENT, NO_MKOBJ_FLAGS);
|
||||
comp->blessed = FALSE;
|
||||
comp->cursed = FALSE;
|
||||
comp->quan = howmany;
|
||||
|
@ -3073,21 +3073,21 @@ int tx,ty;
|
|||
/*make object here*/
|
||||
switch(i3){
|
||||
case 0:
|
||||
otmp = mksobj(SACK, TRUE, FALSE);
|
||||
otmp = mksobj(SACK, NO_MKOBJ_FLAGS);
|
||||
otmp->blessed = FALSE;
|
||||
otmp->cursed = FALSE;
|
||||
hold_another_object(otmp, "You drop %s!",
|
||||
doname(otmp), (const char *)0);
|
||||
break;
|
||||
case 1:
|
||||
otmp = mksobj(UNIVERSAL_KEY, TRUE, FALSE);
|
||||
otmp = mksobj(UNIVERSAL_KEY, NO_MKOBJ_FLAGS);
|
||||
otmp->blessed = FALSE;
|
||||
otmp->cursed = FALSE;
|
||||
hold_another_object(otmp, "You drop %s!",
|
||||
doname(otmp), (const char *)0);
|
||||
break;
|
||||
case 2:
|
||||
otmp = mksobj(find_gold_ring(), TRUE, FALSE);
|
||||
otmp = mksobj(find_gold_ring(), NO_MKOBJ_FLAGS);
|
||||
otmp->blessed = FALSE;
|
||||
otmp->cursed = TRUE;
|
||||
hold_another_object(otmp, "You drop %s!",
|
||||
|
@ -3101,14 +3101,14 @@ int tx,ty;
|
|||
doname(otmp), (const char *)0);
|
||||
break;
|
||||
case 4:
|
||||
otmp = mksobj(DAGGER, TRUE, FALSE);
|
||||
otmp = mksobj(DAGGER, NO_MKOBJ_FLAGS);
|
||||
otmp->blessed = FALSE;
|
||||
otmp->cursed = FALSE;
|
||||
hold_another_object(otmp, "You drop %s!",
|
||||
doname(otmp), (const char *)0);
|
||||
break;
|
||||
case 5:
|
||||
otmp = mksobj(APPLE, TRUE, FALSE);
|
||||
otmp = mksobj(APPLE, NO_MKOBJ_FLAGS);
|
||||
otmp->blessed = FALSE;
|
||||
otmp->cursed = FALSE;
|
||||
hold_another_object(otmp, "You drop %s!",
|
||||
|
@ -3122,21 +3122,21 @@ int tx,ty;
|
|||
doname(otmp), (const char *)0);
|
||||
break;
|
||||
case 7:
|
||||
otmp = mksobj(WHISTLE, TRUE, FALSE);
|
||||
otmp = mksobj(WHISTLE, NO_MKOBJ_FLAGS);
|
||||
otmp->blessed = FALSE;
|
||||
otmp->cursed = FALSE;
|
||||
hold_another_object(otmp, "You drop %s!",
|
||||
doname(otmp), (const char *)0);
|
||||
break;
|
||||
case 8:
|
||||
otmp = mksobj(MIRROR, TRUE, FALSE);
|
||||
otmp = mksobj(MIRROR, NO_MKOBJ_FLAGS);
|
||||
otmp->blessed = FALSE;
|
||||
otmp->cursed = FALSE;
|
||||
hold_another_object(otmp, "You drop %s!",
|
||||
doname(otmp), (const char *)0);
|
||||
break;
|
||||
case 9:
|
||||
otmp = mksobj(EGG, TRUE, FALSE);
|
||||
otmp = mksobj(EGG, NO_MKOBJ_FLAGS);
|
||||
otmp->blessed = FALSE;
|
||||
otmp->cursed = FALSE;
|
||||
hold_another_object(otmp, "You drop %s!",
|
||||
|
@ -3150,14 +3150,14 @@ int tx,ty;
|
|||
doname(otmp), (const char *)0);
|
||||
break;
|
||||
case 11:
|
||||
otmp = mksobj(CORPSE, TRUE, FALSE);
|
||||
otmp = mksobj(CORPSE, NO_MKOBJ_FLAGS);
|
||||
otmp->corpsenm = PM_CAVE_SPIDER;
|
||||
otmp->owt = weight(otmp);
|
||||
hold_another_object(otmp, "You drop %s!",
|
||||
doname(otmp), (const char *)0);
|
||||
break;
|
||||
case 12:
|
||||
otmp = mksobj(CORPSE, TRUE, FALSE);
|
||||
otmp = mksobj(CORPSE, NO_MKOBJ_FLAGS);
|
||||
otmp->corpsenm = urace.malenum;
|
||||
otmp->oeaten = mons[otmp->corpsenm].cnutrit;
|
||||
consume_oeaten(otmp, 1);
|
||||
|
@ -3166,7 +3166,7 @@ int tx,ty;
|
|||
doname(otmp), (const char *)0);
|
||||
break;
|
||||
case 13:
|
||||
otmp = mksobj(CORPSE, TRUE, FALSE);
|
||||
otmp = mksobj(CORPSE, NO_MKOBJ_FLAGS);
|
||||
otmp->corpsenm = androCorpses[rn2(SIZE(androCorpses))];
|
||||
otmp->oeaten = mons[otmp->corpsenm].cnutrit;
|
||||
consume_oeaten(otmp, 1);
|
||||
|
@ -3182,14 +3182,14 @@ int tx,ty;
|
|||
doname(otmp), (const char *)0);
|
||||
break;
|
||||
case 15:
|
||||
otmp = mksobj(BELL, TRUE, FALSE);
|
||||
otmp = mksobj(BELL, NO_MKOBJ_FLAGS);
|
||||
otmp->blessed = FALSE;
|
||||
otmp->cursed = FALSE;
|
||||
hold_another_object(otmp, "You drop %s!",
|
||||
doname(otmp), (const char *)0);
|
||||
break;
|
||||
case 16:
|
||||
otmp = mksobj(LOCK_PICK, TRUE, FALSE);
|
||||
otmp = mksobj(LOCK_PICK, NO_MKOBJ_FLAGS);
|
||||
otmp->blessed = FALSE;
|
||||
otmp->cursed = FALSE;
|
||||
hold_another_object(otmp, "You drop %s!",
|
||||
|
@ -5909,7 +5909,7 @@ struct monst *nurse;
|
|||
int i = u.umorgul;
|
||||
struct obj *frags;
|
||||
u.umorgul = 0;
|
||||
frags = mksobj(SHURIKEN, FALSE, FALSE);
|
||||
frags = mksobj(SHURIKEN, MKOBJ_NOINIT);
|
||||
pline("%s performs surgery, removing %d metallic shard%s from your body.", Monnam(nurse), i, (i>1) ? "s" : "");
|
||||
if(frags){
|
||||
frags->quan = i;
|
||||
|
@ -5940,7 +5940,7 @@ struct monst *nurse;
|
|||
if(!otyp)
|
||||
break;
|
||||
|
||||
glyph = mksobj(otyp, FALSE, FALSE);
|
||||
glyph = mksobj(otyp, MKOBJ_NOINIT);
|
||||
|
||||
if(glyph){
|
||||
remove_thought(otyp_to_thought(otyp));
|
||||
|
@ -6080,7 +6080,7 @@ struct monst *dollmaker;
|
|||
return FALSE;
|
||||
}
|
||||
|
||||
doll = mksobj(dollnum,FALSE,FALSE);
|
||||
doll = mksobj(dollnum, MKOBJ_NOINIT);
|
||||
if(!doll){
|
||||
impossible("doll creation failed?");
|
||||
return FALSE;
|
||||
|
|
11
src/sp_lev.c
11
src/sp_lev.c
|
@ -997,6 +997,7 @@ struct mkroom *croom;
|
|||
char c;
|
||||
boolean named; /* has a name been supplied in level description? */
|
||||
boolean parsed = o->class=='#';
|
||||
int mkobjflags = NO_MKOBJ_FLAGS;
|
||||
if (rn2(100) < o->chance) {
|
||||
named = o->name.str ? TRUE : FALSE;
|
||||
|
||||
|
@ -1027,10 +1028,12 @@ struct mkroom *croom;
|
|||
else
|
||||
c = 0;
|
||||
|
||||
if (!named)
|
||||
mkobjflags |= MKOBJ_ARTIF;
|
||||
if (!c)
|
||||
otmp = mkobj_at(RANDOM_CLASS, x, y, !named);
|
||||
otmp = mkobj_at(RANDOM_CLASS, x, y, mkobjflags);
|
||||
else if (o->id != -1)
|
||||
otmp = mksobj_at(o->id, x, y, TRUE, !named);
|
||||
otmp = mksobj_at(o->id, x, y, mkobjflags);
|
||||
else {
|
||||
/*
|
||||
* The special levels are compiled with the default "text" object
|
||||
|
@ -1511,7 +1514,7 @@ schar ftyp, btyp;
|
|||
if(ftyp != CORR || rn2(100)) {
|
||||
crm->typ = ftyp;
|
||||
if(nxcor && !rn2(50))
|
||||
(void) mksobj_at(BOULDER, xx, yy, TRUE, FALSE);
|
||||
(void) mksobj_at(BOULDER, xx, yy, NO_MKOBJ_FLAGS);
|
||||
} else {
|
||||
crm->typ = SCORR;
|
||||
}
|
||||
|
@ -2952,7 +2955,7 @@ dlb *fd;
|
|||
}
|
||||
for(x = rnd((int) (12 * mapfact) / 100); x; x--) {
|
||||
maze1xy(&mm, DRY);
|
||||
(void) mksobj_at(BOULDER, mm.x, mm.y, TRUE, FALSE);
|
||||
(void) mksobj_at(BOULDER, mm.x, mm.y, NO_MKOBJ_FLAGS);
|
||||
}
|
||||
if(Inhell){
|
||||
for (x = rn2(2); x; x--) {
|
||||
|
|
46
src/spell.c
46
src/spell.c
|
@ -480,7 +480,7 @@ learn()
|
|||
break;
|
||||
case 5:{
|
||||
struct obj *otmp;
|
||||
otmp = mksobj(rnd(4) ? ELVEN_DAGGER : DAGGER, TRUE, FALSE);
|
||||
otmp = mksobj(rnd(4) ? ELVEN_DAGGER : DAGGER, NO_MKOBJ_FLAGS);
|
||||
otmp->spe = d(1,4)+1;
|
||||
otmp->quan += d(2,3);
|
||||
if(otmp->otyp == DAGGER) set_material_gm(otmp, SILVER);
|
||||
|
@ -2210,7 +2210,7 @@ spiriteffects(power, atme)
|
|||
if(rn2(5)) i++;
|
||||
continue;
|
||||
}
|
||||
otmp = mksobj(SHURIKEN, FALSE, FALSE);
|
||||
otmp = mksobj(SHURIKEN, MKOBJ_NOINIT);
|
||||
otmp->blessed = 0;
|
||||
otmp->cursed = 0;
|
||||
projectile(&youmonst, otmp, (void *)0, HMON_FIRED, u.ux+xadj, u.uy+yadj, u.dx, u.dy, 0, rn1(5,5), TRUE, FALSE, FALSE);
|
||||
|
@ -2522,7 +2522,7 @@ spiriteffects(power, atme)
|
|||
if (getdir((char *)0) || !(u.dx || u.dy)){
|
||||
struct obj *otmp;
|
||||
You("throw a ball of webbing.");
|
||||
otmp = mksobj(BALL_OF_WEBBING, TRUE, FALSE);
|
||||
otmp = mksobj(BALL_OF_WEBBING, NO_MKOBJ_FLAGS);
|
||||
otmp->blessed = 0;
|
||||
otmp->cursed = 0;
|
||||
otmp->spe = 1; /* to indicate it's yours */
|
||||
|
@ -2570,7 +2570,7 @@ spiriteffects(power, atme)
|
|||
struct obj *otmp;
|
||||
You("ask the earth to open.");
|
||||
digfarhole(TRUE, u.ux+u.dx, u.uy+u.dy);
|
||||
otmp = mksobj(BOULDER, FALSE, FALSE);
|
||||
otmp = mksobj(BOULDER, MKOBJ_NOINIT);
|
||||
projectile(&youmonst, otmp, (void *)0, HMON_FIRED, u.ux, u.uy, u.dx, u.dy, 0, 1, FALSE, FALSE, FALSE);
|
||||
nomul(0, NULL);
|
||||
} else break;
|
||||
|
@ -2578,7 +2578,7 @@ spiriteffects(power, atme)
|
|||
case PWR_ECHIDNA_S_VENOM:{
|
||||
struct obj *otmp;
|
||||
if (!getdir((char *)0) || !(u.dx || u.dy)) return(0);
|
||||
otmp = mksobj(ACID_VENOM, TRUE, FALSE);
|
||||
otmp = mksobj(ACID_VENOM, NO_MKOBJ_FLAGS);
|
||||
otmp->spe = 1; /* to indicate it's yours */
|
||||
otmp->ovar1 = d(5,dsize); /* save the damge this should do */
|
||||
You("spit venom.");
|
||||
|
@ -2748,52 +2748,52 @@ spiriteffects(power, atme)
|
|||
if(uwep){
|
||||
switch(uwep->otyp){
|
||||
case BOW:
|
||||
otmp = mksobj(ARROW, TRUE, FALSE);
|
||||
otmp = mksobj(ARROW, NO_MKOBJ_FLAGS);
|
||||
otmp->objsize = uwep->objsize;
|
||||
break;
|
||||
case ELVEN_BOW:
|
||||
otmp = mksobj(ELVEN_ARROW, TRUE, FALSE);
|
||||
otmp = mksobj(ELVEN_ARROW, NO_MKOBJ_FLAGS);
|
||||
otmp->objsize = uwep->objsize;
|
||||
break;
|
||||
case ORCISH_BOW:
|
||||
otmp = mksobj(ORCISH_ARROW, TRUE, FALSE);
|
||||
otmp = mksobj(ORCISH_ARROW, NO_MKOBJ_FLAGS);
|
||||
otmp->objsize = uwep->objsize;
|
||||
break;
|
||||
case YUMI:
|
||||
otmp = mksobj(YA, TRUE, FALSE);
|
||||
otmp = mksobj(YA, NO_MKOBJ_FLAGS);
|
||||
otmp->objsize = uwep->objsize;
|
||||
break;
|
||||
case SLING:
|
||||
otmp = mksobj(FLINT, TRUE, FALSE);
|
||||
otmp = mksobj(FLINT, NO_MKOBJ_FLAGS);
|
||||
break;
|
||||
case CROSSBOW:
|
||||
otmp = mksobj(CROSSBOW_BOLT, TRUE, FALSE);
|
||||
otmp = mksobj(CROSSBOW_BOLT, NO_MKOBJ_FLAGS);
|
||||
otmp->objsize = uwep->objsize;
|
||||
break;
|
||||
case DROVEN_CROSSBOW:
|
||||
otmp = mksobj(DROVEN_BOLT, TRUE, FALSE);
|
||||
otmp = mksobj(DROVEN_BOLT, NO_MKOBJ_FLAGS);
|
||||
otmp->objsize = uwep->objsize;
|
||||
break;
|
||||
default:
|
||||
if(!rn2(3)){
|
||||
otmp = mksobj(FLINT, TRUE, FALSE);
|
||||
otmp = mksobj(FLINT, NO_MKOBJ_FLAGS);
|
||||
} else if(!rn2(2)){
|
||||
otmp = mksobj(ARROW, TRUE, FALSE);
|
||||
otmp = mksobj(ARROW, NO_MKOBJ_FLAGS);
|
||||
otmp->objsize = uwep->objsize;
|
||||
} else {
|
||||
otmp = mksobj(CROSSBOW_BOLT, TRUE, FALSE);
|
||||
otmp = mksobj(CROSSBOW_BOLT, NO_MKOBJ_FLAGS);
|
||||
otmp->objsize = uwep->objsize;
|
||||
}
|
||||
break;
|
||||
}
|
||||
} else{
|
||||
if(!rn2(3)){
|
||||
otmp = mksobj(FLINT, TRUE, FALSE);
|
||||
otmp = mksobj(FLINT, NO_MKOBJ_FLAGS);
|
||||
} else if(!rn2(2)){
|
||||
otmp = mksobj(ARROW, TRUE, FALSE);
|
||||
otmp = mksobj(ARROW, NO_MKOBJ_FLAGS);
|
||||
otmp->objsize = youracedata->msize;
|
||||
} else {
|
||||
otmp = mksobj(CROSSBOW_BOLT, TRUE, FALSE);
|
||||
otmp = mksobj(CROSSBOW_BOLT, NO_MKOBJ_FLAGS);
|
||||
otmp->objsize = youracedata->msize;
|
||||
}
|
||||
}
|
||||
|
@ -3479,7 +3479,7 @@ spiriteffects(power, atme)
|
|||
struct monst *mon = m_at(u.ux+u.dx, u.uy+u.dy);
|
||||
if(t && (t->ttyp == PIT || t->ttyp == SPIKED_PIT)){
|
||||
pline("Water rains down from above and fills the pit.");
|
||||
mksobj_at(KELP_FROND,u.ux,u.uy,FALSE,FALSE);
|
||||
mksobj_at(KELP_FROND,u.ux,u.uy,MKOBJ_NOINIT);
|
||||
deltrap(t);
|
||||
levl[u.ux+u.dx][u.uy+u.dy].typ = POOL;
|
||||
newsym(u.ux+u.dx, u.uy+u.dy);
|
||||
|
@ -3910,7 +3910,7 @@ spiriteffects(power, atme)
|
|||
} else break;
|
||||
}
|
||||
if(!mon) return 0;
|
||||
qvr = mksobj(SPIKE, TRUE, FALSE);
|
||||
qvr = mksobj(SPIKE, NO_MKOBJ_FLAGS);
|
||||
qvr->blessed = 0;
|
||||
qvr->cursed = 0;
|
||||
qvr->quan = 1;
|
||||
|
@ -4442,7 +4442,7 @@ spelleffects(int spell, boolean atme, int spelltyp)
|
|||
change_usanity(-rnd(spellev(spell)), FALSE);
|
||||
}
|
||||
/* pseudo is a temporary "false" object containing the spell stats */
|
||||
pseudo = mksobj(spellid(spell), FALSE, FALSE);
|
||||
pseudo = mksobj(spellid(spell), MKOBJ_NOINIT);
|
||||
pseudo->blessed = pseudo->cursed = 0;
|
||||
pseudo->quan = 20L; /* do not let useup get it */
|
||||
|
||||
|
@ -4451,7 +4451,7 @@ spelleffects(int spell, boolean atme, int spelltyp)
|
|||
}
|
||||
|
||||
} else {
|
||||
pseudo = mksobj(spelltyp, FALSE, FALSE);
|
||||
pseudo = mksobj(spelltyp, MKOBJ_NOINIT);
|
||||
pseudo->blessed = pseudo->cursed = 0;
|
||||
pseudo->quan = 20L; /* do not let useup get it */
|
||||
|
||||
|
@ -5154,7 +5154,7 @@ int spellID;
|
|||
char desc3[80] = " ";
|
||||
char desc4[80] = " ";
|
||||
|
||||
pseudo = mksobj(spellid(spellID), FALSE, FALSE);
|
||||
pseudo = mksobj(spellid(spellID), MKOBJ_NOINIT);
|
||||
pseudo->blessed = pseudo->cursed = 0;
|
||||
sprintf(name, " %s", spellname(spellID));
|
||||
name[1] = name[1] - 32;
|
||||
|
|
|
@ -863,8 +863,7 @@ level_tele()
|
|||
"Destination is earth level");
|
||||
if (!u.uhave.amulet) {
|
||||
struct obj *obj;
|
||||
obj = mksobj(AMULET_OF_YENDOR,
|
||||
TRUE, FALSE);
|
||||
obj = mksobj(AMULET_OF_YENDOR, NO_MKOBJ_FLAGS);
|
||||
if (obj) {
|
||||
obj = addinv(obj);
|
||||
Strcat(buf, " with the amulet");
|
||||
|
|
12
src/trap.c
12
src/trap.c
|
@ -299,7 +299,7 @@ register int x, y, typ;
|
|||
|
||||
case DART_TRAP:
|
||||
case ARROW_TRAP:
|
||||
otmp = mksobj((typ == ARROW_TRAP ? ARROW : DART), TRUE, FALSE);
|
||||
otmp = mksobj((typ == ARROW_TRAP ? ARROW : DART), NO_MKOBJ_FLAGS);
|
||||
otmp->quan = 15 + rnd(20);
|
||||
// material special cases: role quests
|
||||
if (In_quest(&u.uz))
|
||||
|
@ -349,18 +349,18 @@ register int x, y, typ;
|
|||
set_trap_ammo(ttmp, otmp);
|
||||
break;
|
||||
case BEAR_TRAP:
|
||||
set_trap_ammo(ttmp, mksobj(BEARTRAP, TRUE, FALSE));
|
||||
set_trap_ammo(ttmp, mksobj(BEARTRAP, 0));
|
||||
break;
|
||||
case LANDMINE:
|
||||
set_trap_ammo(ttmp, mksobj(LAND_MINE, TRUE, FALSE));
|
||||
set_trap_ammo(ttmp, mksobj(LAND_MINE, 0));
|
||||
break;
|
||||
case FIRE_TRAP:
|
||||
otmp = mksobj(POT_OIL, TRUE, FALSE);
|
||||
otmp = mksobj(POT_OIL, NO_MKOBJ_FLAGS);
|
||||
otmp->quan = rnd(3);
|
||||
set_trap_ammo(ttmp, otmp);
|
||||
break;
|
||||
case ROCKTRAP:
|
||||
otmp = mksobj(ROCK, TRUE, FALSE);
|
||||
otmp = mksobj(ROCK, NO_MKOBJ_FLAGS);
|
||||
otmp->quan = 5 + rnd(10);
|
||||
set_trap_ammo(ttmp, otmp);
|
||||
break;
|
||||
|
@ -1882,7 +1882,7 @@ long ocount;
|
|||
cc.x = bcc.x = x;
|
||||
cc.y = bcc.y = y;
|
||||
} else {
|
||||
otmp = mksobj(otyp, TRUE, FALSE);
|
||||
otmp = mksobj(otyp, NO_MKOBJ_FLAGS);
|
||||
otmp->quan = ocount;
|
||||
otmp->owt = weight(otmp);
|
||||
place_object(otmp, cc.x, cc.y);
|
||||
|
|
48
src/u_init.c
48
src/u_init.c
|
@ -2060,7 +2060,7 @@ u_init()
|
|||
ini_inv(Pirate);
|
||||
if(Race_if(PM_DROW)){
|
||||
struct obj *otmp;
|
||||
otmp = mksobj(CROSSBOW_BOLT, TRUE, FALSE);
|
||||
otmp = mksobj(CROSSBOW_BOLT, NO_MKOBJ_FLAGS);
|
||||
otmp->quan = rn1(12, 16);
|
||||
otmp->spe = otmp->cursed = otmp->blessed = 0;
|
||||
otmp->known = otmp->dknown = otmp->bknown = otmp->rknown = otmp->sknown = 1;
|
||||
|
@ -2605,7 +2605,7 @@ register struct trobj *trop;
|
|||
break;
|
||||
}
|
||||
}
|
||||
obj = mksobj(otyp, TRUE, FALSE);
|
||||
obj = mksobj(otyp, NO_MKOBJ_FLAGS);
|
||||
set_material_gm(obj, objects[otyp].oc_material);
|
||||
|
||||
if(obj->otyp == POT_BLOOD)
|
||||
|
@ -2675,7 +2675,7 @@ register struct trobj *trop;
|
|||
* one will immediately read it and use the iron ball as a
|
||||
* weapon.)
|
||||
*/
|
||||
if((Race_if(PM_DROW) || Race_if(PM_MYRKALFR)) && trop->trclass == RING_CLASS) obj = mksobj(find_signet_ring(),TRUE,FALSE);
|
||||
if((Race_if(PM_DROW) || Race_if(PM_MYRKALFR)) && trop->trclass == RING_CLASS) obj = mksobj(find_signet_ring(), NO_MKOBJ_FLAGS);
|
||||
else obj = mkobj(trop->trclass, FALSE);
|
||||
otyp = obj->otyp;
|
||||
set_material_gm(obj, objects[otyp].oc_material);
|
||||
|
@ -2970,7 +2970,7 @@ scatter_weapons(){
|
|||
struct obj *obj;
|
||||
struct monst *mtmp;
|
||||
if(flags.initgend){
|
||||
// obj = mksobj(GOLD_BLADED_VIBROSWORD, TRUE, FALSE);
|
||||
// obj = mksobj(GOLD_BLADED_VIBROSWORD, NO_MKOBJ_FLAGS);
|
||||
// add_to_migration(obj);
|
||||
// obj->ox = stronghold_level.dnum;
|
||||
// obj->oy = rnd(stronghold_level.dlevel-1)+1; //2->castle
|
||||
|
@ -2992,7 +2992,7 @@ scatter_weapons(){
|
|||
migrate_to_level(mtmp, ledger_no(&flev), MIGR_RANDOM,
|
||||
(coord *)0);
|
||||
} else {
|
||||
// obj = mksobj(WHITE_VIBROSWORD, TRUE, FALSE);
|
||||
// obj = mksobj(WHITE_VIBROSWORD, NO_MKOBJ_FLAGS);
|
||||
// add_to_migration(obj);
|
||||
// obj->ox = stronghold_level.dnum;
|
||||
// obj->oy = rnd(stronghold_level.dlevel-1)+1; //2->castle
|
||||
|
@ -3014,35 +3014,35 @@ scatter_weapons(){
|
|||
(coord *)0);
|
||||
}
|
||||
|
||||
obj = mksobj(WHITE_VIBROSPEAR, TRUE, FALSE);
|
||||
obj = mksobj(WHITE_VIBROSPEAR, NO_MKOBJ_FLAGS);
|
||||
fully_identify_obj(obj);
|
||||
obj->spe = abs(obj->spe);
|
||||
add_to_migration(obj);
|
||||
obj->ox = stronghold_level.dnum;
|
||||
obj->oy = rnd(stronghold_level.dlevel-1)+1; //2->castle
|
||||
|
||||
obj = mksobj(WHITE_VIBROZANBATO, TRUE, FALSE);
|
||||
obj = mksobj(WHITE_VIBROZANBATO, NO_MKOBJ_FLAGS);
|
||||
fully_identify_obj(obj);
|
||||
obj->spe = abs(obj->spe);
|
||||
add_to_migration(obj);
|
||||
obj->ox = stronghold_level.dnum;
|
||||
obj->oy = rnd(stronghold_level.dlevel-1)+1; //2->castle
|
||||
|
||||
obj = mksobj(GOLD_BLADED_VIBROSPEAR, TRUE, FALSE);
|
||||
obj = mksobj(GOLD_BLADED_VIBROSPEAR, NO_MKOBJ_FLAGS);
|
||||
fully_identify_obj(obj);
|
||||
obj->spe = abs(obj->spe);
|
||||
add_to_migration(obj);
|
||||
obj->ox = stronghold_level.dnum;
|
||||
obj->oy = rnd(stronghold_level.dlevel-1)+1; //2->castle
|
||||
|
||||
obj = mksobj(GOLD_BLADED_VIBROZANBATO, TRUE, FALSE);
|
||||
obj = mksobj(GOLD_BLADED_VIBROZANBATO, NO_MKOBJ_FLAGS);
|
||||
fully_identify_obj(obj);
|
||||
obj->spe = abs(obj->spe);
|
||||
add_to_migration(obj);
|
||||
obj->ox = stronghold_level.dnum;
|
||||
obj->oy = rnd(stronghold_level.dlevel-1)+1; //2->castle
|
||||
|
||||
obj = mksobj(TWO_HANDED_SWORD, TRUE, FALSE);
|
||||
obj = mksobj(TWO_HANDED_SWORD, NO_MKOBJ_FLAGS);
|
||||
fully_identify_obj(obj);
|
||||
obj->spe = abs(obj->spe);
|
||||
obj->oeroded = 1;
|
||||
|
@ -3052,7 +3052,7 @@ scatter_weapons(){
|
|||
obj->ox = stronghold_level.dnum;
|
||||
obj->oy = rnd(stronghold_level.dlevel-1)+1; //2->castle
|
||||
|
||||
obj = mksobj(SHORT_SWORD, TRUE, FALSE);
|
||||
obj = mksobj(SHORT_SWORD, NO_MKOBJ_FLAGS);
|
||||
fully_identify_obj(obj);
|
||||
obj->spe = abs(obj->spe);
|
||||
obj->objsize = MZ_LARGE;
|
||||
|
@ -3062,7 +3062,7 @@ scatter_weapons(){
|
|||
obj->ox = stronghold_level.dnum;
|
||||
obj->oy = rnd(stronghold_level.dlevel-1)+1; //2->castle
|
||||
|
||||
obj = mksobj(TWO_HANDED_SWORD, TRUE, FALSE);
|
||||
obj = mksobj(TWO_HANDED_SWORD, NO_MKOBJ_FLAGS);
|
||||
fully_identify_obj(obj);
|
||||
obj->spe = abs(obj->spe);
|
||||
obj->objsize = MZ_LARGE;
|
||||
|
@ -3072,7 +3072,7 @@ scatter_weapons(){
|
|||
obj->ox = stronghold_level.dnum;
|
||||
obj->oy = rnd(stronghold_level.dlevel-1)+1; //2->castle
|
||||
|
||||
obj = mksobj(SPEAR, TRUE, FALSE);
|
||||
obj = mksobj(SPEAR, NO_MKOBJ_FLAGS);
|
||||
fully_identify_obj(obj);
|
||||
obj->spe = abs(obj->spe);
|
||||
obj->objsize = MZ_LARGE;
|
||||
|
@ -3082,35 +3082,35 @@ scatter_weapons(){
|
|||
obj->ox = stronghold_level.dnum;
|
||||
obj->oy = rnd(stronghold_level.dlevel-1)+1; //2->castle
|
||||
|
||||
obj = mksobj(RED_EYED_VIBROSWORD, TRUE, FALSE);
|
||||
obj = mksobj(RED_EYED_VIBROSWORD, NO_MKOBJ_FLAGS);
|
||||
fully_identify_obj(obj);
|
||||
obj->spe = abs(obj->spe);
|
||||
add_to_migration(obj);
|
||||
obj->ox = stronghold_level.dnum;
|
||||
obj->oy = rnd(stronghold_level.dlevel-1)+1; //2->castle
|
||||
|
||||
obj = mksobj(FORCE_PIKE, TRUE, FALSE);
|
||||
obj = mksobj(FORCE_PIKE, NO_MKOBJ_FLAGS);
|
||||
fully_identify_obj(obj);
|
||||
obj->spe = abs(obj->spe);
|
||||
add_to_migration(obj);
|
||||
obj->ox = stronghold_level.dnum;
|
||||
obj->oy = rnd(stronghold_level.dlevel-1)+1; //2->castle
|
||||
|
||||
obj = mksobj(DOUBLE_FORCE_BLADE, TRUE, FALSE);
|
||||
obj = mksobj(DOUBLE_FORCE_BLADE, NO_MKOBJ_FLAGS);
|
||||
fully_identify_obj(obj);
|
||||
obj->spe = abs(obj->spe);
|
||||
add_to_migration(obj);
|
||||
obj->ox = stronghold_level.dnum;
|
||||
obj->oy = rnd(stronghold_level.dlevel-1)+1; //2->castle
|
||||
|
||||
obj = mksobj(FORCE_SWORD, TRUE, FALSE);
|
||||
obj = mksobj(FORCE_SWORD, NO_MKOBJ_FLAGS);
|
||||
fully_identify_obj(obj);
|
||||
obj->spe = abs(obj->spe);
|
||||
add_to_migration(obj);
|
||||
obj->ox = stronghold_level.dnum;
|
||||
obj->oy = rnd(stronghold_level.dlevel-1)+1; //2->castle
|
||||
|
||||
obj = mksobj(TWO_HANDED_SWORD, TRUE, FALSE);
|
||||
obj = mksobj(TWO_HANDED_SWORD, NO_MKOBJ_FLAGS);
|
||||
fully_identify_obj(obj);
|
||||
obj->spe = abs(obj->spe);
|
||||
obj->objsize = MZ_LARGE;
|
||||
|
@ -3121,7 +3121,7 @@ scatter_weapons(){
|
|||
obj->ox = stronghold_level.dnum;
|
||||
obj->oy = rnd(stronghold_level.dlevel-1)+1; //2->castle
|
||||
|
||||
obj = mksobj(SPEAR, TRUE, FALSE);
|
||||
obj = mksobj(SPEAR, NO_MKOBJ_FLAGS);
|
||||
fully_identify_obj(obj);
|
||||
obj->spe = abs(obj->spe);
|
||||
set_material_gm(obj, METAL);
|
||||
|
@ -3131,7 +3131,7 @@ scatter_weapons(){
|
|||
obj->ox = stronghold_level.dnum;
|
||||
obj->oy = rnd(stronghold_level.dlevel-1)+1; //2->castle
|
||||
|
||||
obj = mksobj(LONG_SWORD, TRUE, FALSE);
|
||||
obj = mksobj(LONG_SWORD, NO_MKOBJ_FLAGS);
|
||||
fully_identify_obj(obj);
|
||||
obj->spe = abs(obj->spe);
|
||||
set_material_gm(obj, METAL);
|
||||
|
@ -3140,7 +3140,7 @@ scatter_weapons(){
|
|||
obj->ox = stronghold_level.dnum;
|
||||
obj->oy = rnd(stronghold_level.dlevel-1)+1; //2->castle
|
||||
|
||||
obj = mksobj(SABER, TRUE, FALSE);
|
||||
obj = mksobj(SABER, NO_MKOBJ_FLAGS);
|
||||
fully_identify_obj(obj);
|
||||
obj->spe = abs(obj->spe);
|
||||
set_material_gm(obj, METAL);
|
||||
|
@ -3149,7 +3149,7 @@ scatter_weapons(){
|
|||
obj->ox = stronghold_level.dnum;
|
||||
obj->oy = rnd(stronghold_level.dlevel-1)+1; //2->castle
|
||||
|
||||
obj = mksobj(KATANA, TRUE, FALSE);
|
||||
obj = mksobj(KATANA, NO_MKOBJ_FLAGS);
|
||||
fully_identify_obj(obj);
|
||||
obj->spe = abs(obj->spe);
|
||||
set_material_gm(obj, METAL);
|
||||
|
@ -3159,7 +3159,7 @@ scatter_weapons(){
|
|||
obj->ox = stronghold_level.dnum;
|
||||
obj->oy = rnd(stronghold_level.dlevel-1)+1; //2->castle
|
||||
|
||||
obj = mksobj(RAPIER, TRUE, FALSE);
|
||||
obj = mksobj(RAPIER, NO_MKOBJ_FLAGS);
|
||||
fully_identify_obj(obj);
|
||||
obj->spe = abs(obj->spe);
|
||||
add_oprop(obj, OPROP_FLAYW);
|
||||
|
@ -3167,7 +3167,7 @@ scatter_weapons(){
|
|||
obj->ox = stronghold_level.dnum;
|
||||
obj->oy = rnd(stronghold_level.dlevel-1)+1; //2->castle
|
||||
|
||||
obj = mksobj(GLAIVE, TRUE, FALSE);
|
||||
obj = mksobj(GLAIVE, NO_MKOBJ_FLAGS);
|
||||
fully_identify_obj(obj);
|
||||
obj->spe = abs(obj->spe);
|
||||
add_oprop(obj, OPROP_FLAYW);
|
||||
|
|
|
@ -496,8 +496,7 @@ clonewiz()
|
|||
u.ux, u.uy, NO_MM_FLAGS)) != 0) {
|
||||
mtmp2->msleeping = mtmp2->mtame = mtmp2->mpeaceful = 0;
|
||||
if (!u.uhave.amulet && rn2(2)) { /* give clone a fake */
|
||||
(void) add_to_minv(mtmp2, mksobj(FAKE_AMULET_OF_YENDOR,
|
||||
TRUE, FALSE));
|
||||
(void) add_to_minv(mtmp2, mksobj(FAKE_AMULET_OF_YENDOR, NO_MKOBJ_FLAGS));
|
||||
}
|
||||
mtmp2->m_ap_type = M_AP_MONSTER;
|
||||
mtmp2->mappearance = wizapp[rn2(SIZE(wizapp))];
|
||||
|
|
|
@ -275,7 +275,7 @@ found_ward:
|
|||
/* KMH, conduct */
|
||||
u.uconduct.literate++;
|
||||
|
||||
new_obj = mksobj(i, FALSE, FALSE);
|
||||
new_obj = mksobj(i, MKOBJ_NOINIT);
|
||||
new_obj->bknown = (paper->bknown && pen->bknown);
|
||||
if(i==SCR_WARD){
|
||||
new_obj->oward = theward;
|
||||
|
|
|
@ -225,7 +225,7 @@ struct monst * mdef;
|
|||
for (i = rnd(8); i>0; i--){
|
||||
dx = rn2(3) - 1;
|
||||
dy = rn2(3) - 1;
|
||||
otmp = mksobj(ROCK, TRUE, FALSE);
|
||||
otmp = mksobj(ROCK, NO_MKOBJ_FLAGS);
|
||||
otmp->blessed = 0;
|
||||
otmp->cursed = 0;
|
||||
if ((dx || dy) && !DEADMONSTER(mdef)){
|
||||
|
@ -8640,7 +8640,7 @@ int vis;
|
|||
int num = monsndx(mdef->data);
|
||||
if (magr->mtame && !magr->isminion &&
|
||||
!((mvitals[num].mvflags & G_NOCORPSE) || get_mx(mdef, MX_ESUM))) {
|
||||
struct obj *virtualcorpse = mksobj(CORPSE, FALSE, FALSE);
|
||||
struct obj *virtualcorpse = mksobj(CORPSE, MKOBJ_NOINIT);
|
||||
int nutrit;
|
||||
|
||||
virtualcorpse->corpsenm = num;
|
||||
|
@ -10595,7 +10595,7 @@ int vis;
|
|||
|
||||
/* cancellation */
|
||||
case AD_CNCL:
|
||||
if (cancel_monst(mdef, mksobj(SPE_CANCELLATION, FALSE, FALSE), FALSE, TRUE, FALSE, !rn2(4) ? rnd(mlev(magr)) : 0)) {
|
||||
if (cancel_monst(mdef, mksobj(SPE_CANCELLATION, MKOBJ_NOINIT), FALSE, TRUE, FALSE, !rn2(4) ? rnd(mlev(magr)) : 0)) {
|
||||
if (youdef) {
|
||||
if (vis&VIS_MAGR)
|
||||
{
|
||||
|
|
18
src/zap.c
18
src/zap.c
|
@ -1522,9 +1522,9 @@ poly_obj(obj, id)
|
|||
change_luck(-1); /* Sokoban guilt, boulders only */
|
||||
if (id == STRANGE_OBJECT) { /* preserve symbol */
|
||||
if(obj->otyp == SPE_BLANK_PAPER || obj->otyp == SCR_BLANK_PAPER || obj->otyp == SCR_AMNESIA){
|
||||
otmp = mksobj(rn2(2) ? SPE_BLANK_PAPER : SCR_BLANK_PAPER, FALSE, FALSE);
|
||||
otmp = mksobj(rn2(2) ? SPE_BLANK_PAPER : SCR_BLANK_PAPER, MKOBJ_NOINIT);
|
||||
} else if(obj->otyp == POT_BLOOD){
|
||||
otmp = mksobj(POT_BLOOD, FALSE, FALSE);
|
||||
otmp = mksobj(POT_BLOOD, MKOBJ_NOINIT);
|
||||
} else if(obj->otyp == POT_WATER || obj->otyp == POT_AMNESIA){
|
||||
if(obj->otyp == POT_AMNESIA){
|
||||
obj->otyp = POT_WATER;
|
||||
|
@ -1543,7 +1543,7 @@ poly_obj(obj, id)
|
|||
return obj;
|
||||
} else if(obj->otyp == HYPOSPRAY_AMPULE){
|
||||
int pick;
|
||||
otmp = mksobj(HYPOSPRAY_AMPULE, FALSE, FALSE);
|
||||
otmp = mksobj(HYPOSPRAY_AMPULE, MKOBJ_NOINIT);
|
||||
do{
|
||||
switch(rn2(14)){
|
||||
case 0:
|
||||
|
@ -1605,7 +1605,7 @@ poly_obj(obj, id)
|
|||
}
|
||||
} else {
|
||||
/* literally replace obj with this new thing */
|
||||
otmp = mksobj(id, FALSE, FALSE);
|
||||
otmp = mksobj(id, MKOBJ_NOINIT);
|
||||
/* Actually more things use corpsenm but they polymorph differently */
|
||||
#define USES_CORPSENM(typ) ((typ)==CORPSE || (typ)==STATUE || (typ)==FIGURINE)
|
||||
if (USES_CORPSENM(obj->otyp) && USES_CORPSENM(id))
|
||||
|
@ -1766,7 +1766,7 @@ poly_obj(obj, id)
|
|||
|
||||
/* add focusing gems to lightsabers */
|
||||
if (is_lightsaber(otmp)) {
|
||||
struct obj *gem = mksobj(rn2(6) ? BLUE_FLUORITE : GREEN_FLUORITE, TRUE, FALSE);
|
||||
struct obj *gem = mksobj(rn2(6) ? BLUE_FLUORITE : GREEN_FLUORITE, NO_MKOBJ_FLAGS);
|
||||
gem->quan = 1;
|
||||
gem->owt = weight(gem);
|
||||
add_to_container(otmp, gem);
|
||||
|
@ -2953,7 +2953,7 @@ struct obj *obj; /* wand or spell */
|
|||
ceiling(x, y), body_part(HEAD));
|
||||
losehp(rnd((uarmh && is_hard(uarmh)) ? 2 : 6),
|
||||
"falling rock", KILLED_BY_AN);
|
||||
if ((otmp = mksobj_at(ROCK, x, y, FALSE, FALSE)) != 0) {
|
||||
if ((otmp = mksobj_at(ROCK, x, y, MKOBJ_NOINIT)) != 0) {
|
||||
(void)xname(otmp); /* set dknown, maybe bknown */
|
||||
stackobj(otmp);
|
||||
}
|
||||
|
@ -4626,7 +4626,7 @@ int type;
|
|||
{
|
||||
struct obj *otmp;
|
||||
if(type == AD_STON){
|
||||
otmp = mksobj(STATUE, FALSE, FALSE);
|
||||
otmp = mksobj(STATUE, MKOBJ_NOINIT);
|
||||
otmp->corpsenm = mon->mtyp==PM_PARASITIZED_COMMANDER ? PM_PARASITIC_MASTER_MIND_FLAYER : PM_PARASITIC_MIND_FLAYER;
|
||||
fix_object(otmp);
|
||||
mpickobj(mon, otmp);
|
||||
|
@ -4640,7 +4640,7 @@ int type;
|
|||
update_mon_intrinsics(mon, otmp, TRUE, TRUE);
|
||||
}
|
||||
else if(type != AD_DGST){
|
||||
otmp = mksobj_at(CORPSE, mon->mx, mon->my, FALSE, FALSE);
|
||||
otmp = mksobj_at(CORPSE, mon->mx, mon->my, MKOBJ_NOINIT);
|
||||
otmp->corpsenm = mon->mtyp==PM_PARASITIZED_COMMANDER ? PM_PARASITIC_MASTER_MIND_FLAYER : PM_PARASITIC_MIND_FLAYER;
|
||||
fix_object(otmp);
|
||||
}
|
||||
|
@ -4668,7 +4668,7 @@ int type;
|
|||
mon->m_lev = 3;
|
||||
mon->mhpmax = 20+rn2(4);
|
||||
mon->mhp = min(mon->mhp, mon->mhpmax);
|
||||
otmp = mksobj(SHACKLES, FALSE, FALSE);
|
||||
otmp = mksobj(SHACKLES, MKOBJ_NOINIT);
|
||||
set_material_gm(otmp, IRON);
|
||||
add_oprop(otmp, OPROP_ELECW);
|
||||
otmp->oeroded = 1;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue