1
0
Fork 0
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:
NeroOneTrueKing 2021-01-17 18:16:27 -06:00
parent 1536b52abf
commit 5bca5f1822
49 changed files with 1465 additions and 1473 deletions

View file

@ -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));

View file

@ -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)

View file

@ -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);

View file

@ -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);

View file

@ -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;

View file

@ -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!");
}

View file

@ -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 */

View file

@ -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);

View file

@ -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?");
}

View file

@ -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?");

View file

@ -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! */

View file

@ -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;
}

View file

@ -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) */

View file

@ -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;
}
}

View file

@ -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);

View file

@ -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);

View file

@ -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);

File diff suppressed because it is too large Load diff

View file

@ -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);

View file

@ -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;

View file

@ -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);

View file

@ -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;
}

File diff suppressed because it is too large Load diff

242
src/mon.c
View file

@ -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){

View file

@ -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;

View file

@ -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);
}

View file

@ -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);

View file

@ -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;

View file

@ -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)

View file

@ -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);

View file

@ -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);
}
}
}

View file

@ -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;

View file

@ -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;

View file

@ -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.\"");

View file

@ -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 {

View file

@ -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!" :

View file

@ -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);

View file

@ -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 */

View file

@ -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);

View file

@ -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;

View file

@ -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--) {

View file

@ -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;

View file

@ -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");

View file

@ -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);

View file

@ -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);

View file

@ -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))];

View file

@ -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;

View file

@ -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)
{

View file

@ -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;