Difference between revisions of "Source:NetHack 1.4f/do wear.c"

From NetHackWiki
Jump to navigation Jump to search
m (Automated source code upload)
 
m (Semi-redirect to 1.3d versions)
Line 1: Line 1:
Below is the full text to '''do_wear.c''' from the [[NetHack 1.4f source code|source code]] of [[NetHack 1.4f]]. To link to a particular line, write [[NetHack 1.4f/do_wear.c#line123|<nowiki>[[NetHack 1.4f/do_wear.c#line123]]</nowiki>]], for example.
+
The source code file '''do_wear.c''' in [[NetHack 1.4f source code|NetHack 1.4f]] is unchanged from [[NetHack 1.3d/do_wear.c]].
 
+
[[Category:NetHack 1.4f source code]]
'''Warning!''' This is the source code from an old release. For the latest release, see [[Source code]]
 
 
 
{{CWI}}
 
<span id="line1">1.   /* SCCS Id: @(#)do_wear.c 1.3 87/07/14</span>
 
<span id="line2">2.    /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */</span>
 
<span id="line3">3.    /* do_wear.c - version 1.0.3 */</span>
 
<span id="line4">4.    </span>
 
<span id="line5">5.    #include <stdio.h></span>
 
<span id="line6">6.    #include "hack.h"</span>
 
<span id="line7">7.    extern char *nomovemsg;</span>
 
<span id="line8">8.    extern char quitchars[];</span>
 
<span id="line9">9.    extern char *Doname();</span>
 
<span id="line10">10.  </span>
 
<span id="line11">11.  off_msg(otmp) register struct obj *otmp; {</span>
 
<span id="line12">12.  pline("You were wearing %s.", doname(otmp));</span>
 
<span id="line13">13.  }</span>
 
<span id="line14">14.  </span>
 
<span id="line15">15.  doremarm() {</span>
 
<span id="line16">16.  register struct obj *otmp;</span>
 
<span id="line17">17.  if(!uarm && !uarmh && !uarms && !uarmg) {</span>
 
<span id="line18">18.  pline("Not wearing any armor.");</span>
 
<span id="line19">19.  return(0);</span>
 
<span id="line20">20.  }</span>
 
<span id="line21">21.  otmp = (!uarmh && !uarms && !uarmg) ? uarm :</span>
 
<span id="line22">22.  (!uarms && !uarm && !uarmg) ? uarmh :</span>
 
<span id="line23">23.  (!uarmh && !uarm && !uarmg) ? uarms :</span>
 
<span id="line24">24.  (!uarmh && !uarm && !uarms) ? uarmg :</span>
 
<span id="line25">25.  getobj("[", "take off");</span>
 
<span id="line26">26.  if(!otmp) return(0);</span>
 
<span id="line27">27.  if(!(otmp->owornmask & (W_ARMOR - W_ARM2))) {</span>
 
<span id="line28">28.  pline("You can't take that off.");</span>
 
<span id="line29">29.  return(0);</span>
 
<span id="line30">30.  }</span>
 
<span id="line31">31.  if( otmp == uarmg && uwep && uwep->cursed ) { /* myers@uwmacc */</span>
 
<span id="line32">32.    pline("You seem not able to take off the gloves while holding your weapon.");</span>
 
<span id="line33">33.  return(0);</span>
 
<span id="line34">34.  }</span>
 
<span id="line35">35.  (void) armoroff(otmp);</span>
 
<span id="line36">36.  return(1);</span>
 
<span id="line37">37.  }</span>
 
<span id="line38">38.  </span>
 
<span id="line39">39.  doremring() {</span>
 
<span id="line40">40.  if(!uleft && !uright){</span>
 
<span id="line41">41.  pline("Not wearing any ring.");</span>
 
<span id="line42">42.  return(0);</span>
 
<span id="line43">43.  }</span>
 
<span id="line44">44.  if(!uleft)</span>
 
<span id="line45">45.  return(dorr(uright));</span>
 
<span id="line46">46.  if(!uright)</span>
 
<span id="line47">47.  return(dorr(uleft));</span>
 
<span id="line48">48.  if(uleft && uright) while(1) {</span>
 
<span id="line49">49.  char answer;</span>
 
<span id="line50">50.  </span>
 
<span id="line51">51.  pline("What ring, Right or Left? [ rl?]");</span>
 
<span id="line52">52.  if(index(quitchars, (answer = readchar())))</span>
 
<span id="line53">53.  return(0);</span>
 
<span id="line54">54.  switch(answer) {</span>
 
<span id="line55">55.  case 'l':</span>
 
<span id="line56">56.  case 'L':</span>
 
<span id="line57">57.  return(dorr(uleft));</span>
 
<span id="line58">58.  case 'r':</span>
 
<span id="line59">59.  case 'R':</span>
 
<span id="line60">60.  return(dorr(uright));</span>
 
<span id="line61">61.  case '?':</span>
 
<span id="line62">62.  (void) doprring();</span>
 
<span id="line63">63.  /* might look at morc here %% */</span>
 
<span id="line64">64.  }</span>
 
<span id="line65">65.  }</span>
 
<span id="line66">66.  /* NOTREACHED */</span>
 
<span id="line67">67.  #ifdef lint</span>
 
<span id="line68">68.  return(0);</span>
 
<span id="line69">69.  #endif</span>
 
<span id="line70">70.  }</span>
 
<span id="line71">71.  </span>
 
<span id="line72">72.  dorr(otmp) register struct obj *otmp; {</span>
 
<span id="line73">73.  if(cursed(otmp)) return(0);</span>
 
<span id="line74">74.  ringoff(otmp);</span>
 
<span id="line75">75.  off_msg(otmp);</span>
 
<span id="line76">76.  return(1);</span>
 
<span id="line77">77.  }</span>
 
<span id="line78">78.  </span>
 
<span id="line79">79.  cursed(otmp) register struct obj *otmp; {</span>
 
<span id="line80">80.  if(otmp->cursed){</span>
 
<span id="line81">81.  pline("You can't. It appears to be cursed.");</span>
 
<span id="line82">82.  return(1);</span>
 
<span id="line83">83.  }</span>
 
<span id="line84">84.  return(0);</span>
 
<span id="line85">85.  }</span>
 
<span id="line86">86.  </span>
 
<span id="line87">87.  armoroff(otmp) register struct obj *otmp; {</span>
 
<span id="line88">88.  register int delay = -objects[otmp->otyp].oc_delay;</span>
 
<span id="line89">89.  if(cursed(otmp)) return(0);</span>
 
<span id="line90">90.  setworn((struct obj *) 0, otmp->owornmask & W_ARMOR);</span>
 
<span id="line91">91.  if(delay) {</span>
 
<span id="line92">92.  nomul(delay);</span>
 
<span id="line93">93.  switch(otmp->otyp) {</span>
 
<span id="line94">94.  case HELMET:</span>
 
<span id="line95">95.  nomovemsg = "You finished taking off your helmet.";</span>
 
<span id="line96">96.  break;</span>
 
<span id="line97">97.  case PAIR_OF_GLOVES:</span>
 
<span id="line98">98.  nomovemsg = "You finished taking off your gloves";</span>
 
<span id="line99">99.  break;</span>
 
<span id="line100">100.  default:</span>
 
<span id="line101">101.  nomovemsg = "You finished taking off your suit.";</span>
 
<span id="line102">102.  }</span>
 
<span id="line103">103.  } else {</span>
 
<span id="line104">104.  off_msg(otmp);</span>
 
<span id="line105">105.  }</span>
 
<span id="line106">106.  return(1);</span>
 
<span id="line107">107.  }</span>
 
<span id="line108">108.  </span>
 
<span id="line109">109.  doweararm() {</span>
 
<span id="line110">110.  register struct obj *otmp;</span>
 
<span id="line111">111.  register int delay;</span>
 
<span id="line112">112.  register int err = 0;</span>
 
<span id="line113">113.  long mask = 0;</span>
 
<span id="line114">114.  </span>
 
<span id="line115">115.  #ifdef KAA</span>
 
<span id="line116">116.  if(!index("@enozCGHIKLNOTUVWXYZ&",u.usym)) {</span>
 
<span id="line117">117.  pline("Don't even bother.");</span>
 
<span id="line118">118.  return(0);</span>
 
<span id="line119">119.  }</span>
 
<span id="line120">120.  #endif</span>
 
<span id="line121">121.  otmp = getobj("[", "wear");</span>
 
<span id="line122">122.  if(!otmp) return(0);</span>
 
<span id="line123">123.  if(otmp->owornmask & W_ARMOR) {</span>
 
<span id="line124">124.  pline("You are already wearing that!");</span>
 
<span id="line125">125.  return(0);</span>
 
<span id="line126">126.  }</span>
 
<span id="line127">127.  if(otmp->otyp == HELMET){</span>
 
<span id="line128">128.  if(uarmh) {</span>
 
<span id="line129">129.  pline("You are already wearing a helmet.");</span>
 
<span id="line130">130.  err++;</span>
 
<span id="line131">131.  } else</span>
 
<span id="line132">132.  mask = W_ARMH;</span>
 
<span id="line133">133.  } else if(otmp->otyp == SHIELD){</span>
 
<span id="line134">134.  if(uarms) pline("You are already wearing a shield."), err++;</span>
 
<span id="line135">135.  if(uwep && uwep->otyp == TWO_HANDED_SWORD)</span>
 
<span id="line136">136.  pline("You cannot wear a shield and wield a two handed sword."), err++;</span>
 
<span id="line137">137.  if(!err) mask = W_ARMS;</span>
 
<span id="line138">138.  } else if(otmp->otyp == PAIR_OF_GLOVES) {</span>
 
<span id="line139">139.  if(uarmg) {</span>
 
<span id="line140">140.  pline("You are already wearing gloves.");</span>
 
<span id="line141">141.  err++;</span>
 
<span id="line142">142.  } else</span>
 
<span id="line143">143.  if(uwep && uwep->cursed) {</span>
 
<span id="line144">144.  pline("You cannot wear gloves over your weapon.");</span>
 
<span id="line145">145.  err++;</span>
 
<span id="line146">146.  } else</span>
 
<span id="line147">147.  mask = W_ARMG;</span>
 
<span id="line148">148.  } else {</span>
 
<span id="line149">149.  #ifdef KAA</span>
 
<span id="line150">150.  if(cantweararm(u.usym)) {</span>
 
<span id="line151">151.  pline("You can't wear armor!");</span>
 
<span id="line152">152.  return(0);</span>
 
<span id="line153">153.  }</span>
 
<span id="line154">154.  #endif</span>
 
<span id="line155">155.  if(uarm) {</span>
 
<span id="line156">156.  if(otmp->otyp != ELVEN_CLOAK || uarm2) {</span>
 
<span id="line157">157.  pline("You are already wearing some armor.");</span>
 
<span id="line158">158.  err++;</span>
 
<span id="line159">159.  }</span>
 
<span id="line160">160.  }</span>
 
<span id="line161">161.  if(!err) mask = W_ARM;</span>
 
<span id="line162">162.  }</span>
 
<span id="line163">163.  if(welded(otmp)) {</span>
 
<span id="line164">164.  if(!err++)</span>
 
<span id="line165">165.  pline("%s is welded to your hand.", Doname(uwep));</span>
 
<span id="line166">166.  }</span>
 
<span id="line167">167.  if(err) return(0);</span>
 
<span id="line168">168.  setworn(otmp, mask);</span>
 
<span id="line169">169.  if(otmp == uwep)</span>
 
<span id="line170">170.  setuwep((struct obj *) 0);</span>
 
<span id="line171">171.  delay = -objects[otmp->otyp].oc_delay;</span>
 
<span id="line172">172.  if(delay){</span>
 
<span id="line173">173.  nomul(delay);</span>
 
<span id="line174">174.  nomovemsg = "You finished your dressing manoeuvre.";</span>
 
<span id="line175">175.  }</span>
 
<span id="line176">176.  otmp->known = 1;</span>
 
<span id="line177">177.  return(1);</span>
 
<span id="line178">178.  }</span>
 
<span id="line179">179.  </span>
 
<span id="line180">180.  dowearring() {</span>
 
<span id="line181">181.  register struct obj *otmp;</span>
 
<span id="line182">182.  long mask = 0;</span>
 
<span id="line183">183.  long oldprop;</span>
 
<span id="line184">184.  </span>
 
<span id="line185">185.  if(uleft && uright){</span>
 
<span id="line186">186.  pline("There are no more ring-fingers to fill.");</span>
 
<span id="line187">187.  return(0);</span>
 
<span id="line188">188.  }</span>
 
<span id="line189">189.  otmp = getobj("=", "wear");</span>
 
<span id="line190">190.  if(!otmp) return(0);</span>
 
<span id="line191">191.  if(otmp->owornmask & W_RING) {</span>
 
<span id="line192">192.  pline("You are already wearing that!");</span>
 
<span id="line193">193.  return(0);</span>
 
<span id="line194">194.  }</span>
 
<span id="line195">195.  if(otmp == uleft || otmp == uright) {</span>
 
<span id="line196">196.  pline("You are already wearing that.");</span>
 
<span id="line197">197.  return(0);</span>
 
<span id="line198">198.  }</span>
 
<span id="line199">199.  if(welded(otmp)) {</span>
 
<span id="line200">200.  pline("%s is welded to your hand.", Doname(uwep));</span>
 
<span id="line201">201.  return(0);</span>
 
<span id="line202">202.  }</span>
 
<span id="line203">203.  if(uleft) mask = RIGHT_RING;</span>
 
<span id="line204">204.  else if(uright) mask = LEFT_RING;</span>
 
<span id="line205">205.  else do {</span>
 
<span id="line206">206.  char answer;</span>
 
<span id="line207">207.  </span>
 
<span id="line208">208.  pline("What ring-finger, Right or Left? ");</span>
 
<span id="line209">209.  if(index(quitchars, (answer = readchar())))</span>
 
<span id="line210">210.  return(0);</span>
 
<span id="line211">211.  switch(answer){</span>
 
<span id="line212">212.  case 'l':</span>
 
<span id="line213">213.  case 'L':</span>
 
<span id="line214">214.  mask = LEFT_RING;</span>
 
<span id="line215">215.  break;</span>
 
<span id="line216">216.  case 'r':</span>
 
<span id="line217">217.  case 'R':</span>
 
<span id="line218">218.  mask = RIGHT_RING;</span>
 
<span id="line219">219.  break;</span>
 
<span id="line220">220.  }</span>
 
<span id="line221">221.  } while(!mask);</span>
 
<span id="line222">222.  setworn(otmp, mask);</span>
 
<span id="line223">223.  if(otmp == uwep)</span>
 
<span id="line224">224.  setuwep((struct obj *) 0);</span>
 
<span id="line225">225.  oldprop = u.uprops[PROP(otmp->otyp)].p_flgs;</span>
 
<span id="line226">226.  u.uprops[PROP(otmp->otyp)].p_flgs |= mask;</span>
 
<span id="line227">227.  switch(otmp->otyp){</span>
 
<span id="line228">228.  case RIN_LEVITATION:</span>
 
<span id="line229">229.  if(!oldprop) float_up();</span>
 
<span id="line230">230.  break;</span>
 
<span id="line231">231.  case RIN_GAIN_STRENGTH:</span>
 
<span id="line232">232.  u.ustr += otmp->spe;</span>
 
<span id="line233">233.  u.ustrmax += otmp->spe;</span>
 
<span id="line234">234.  if(u.ustr > 118) u.ustr = 118;</span>
 
<span id="line235">235.  if(u.ustrmax > 118) u.ustrmax = 118;</span>
 
<span id="line236">236.  flags.botl = 1;</span>
 
<span id="line237">237.  break;</span>
 
<span id="line238">238.  case RIN_INCREASE_DAMAGE:</span>
 
<span id="line239">239.  u.udaminc += otmp->spe;</span>
 
<span id="line240">240.  break;</span>
 
<span id="line241">241.  case RIN_PROTECTION_FROM_SHAPE_CHAN:</span>
 
<span id="line242">242.  #ifdef DGKMOD</span>
 
<span id="line243">243.  /* If you're no longer protected, let the chameleons</span>
 
<span id="line244">244.  * change shape again -dgk</span>
 
<span id="line245">245.  */</span>
 
<span id="line246">246.  restartcham();</span>
 
<span id="line247">247.  #else</span>
 
<span id="line248">248.  rescham();</span>
 
<span id="line249">249.  #endif /* DGKMOD /**/</span>
 
<span id="line250">250.  break;</span>
 
<span id="line251">251.  }</span>
 
<span id="line252">252.  prinv(otmp);</span>
 
<span id="line253">253.  return(1);</span>
 
<span id="line254">254.  }</span>
 
<span id="line255">255.  </span>
 
<span id="line256">256.  ringoff(obj)</span>
 
<span id="line257">257.  register struct obj *obj;</span>
 
<span id="line258">258.  {</span>
 
<span id="line259">259.  register long mask;</span>
 
<span id="line260">260.  mask = obj->owornmask & W_RING;</span>
 
<span id="line261">261.  setworn((struct obj *) 0, obj->owornmask);</span>
 
<span id="line262">262.  if(!(u.uprops[PROP(obj->otyp)].p_flgs & mask))</span>
 
<span id="line263">263.  impossible("Strange... I didnt know you had that ring.");</span>
 
<span id="line264">264.  u.uprops[PROP(obj->otyp)].p_flgs &= ~mask;</span>
 
<span id="line265">265.  switch(obj->otyp) {</span>
 
<span id="line266">266.  case RIN_FIRE_RESISTANCE:</span>
 
<span id="line267">267.  /* Bad luck if the player is in hell... --jgm */</span>
 
<span id="line268">268.  if (!Fire_resistance && dlevel >= 30) {</span>
 
<span id="line269">269.  pline("The flames of Hell burn you to a crisp.");</span>
 
<span id="line270">270.  killer = "stupidity in hell";</span>
 
<span id="line271">271.  done("burned");</span>
 
<span id="line272">272.  }</span>
 
<span id="line273">273.  break;</span>
 
<span id="line274">274.  case RIN_LEVITATION:</span>
 
<span id="line275">275.  if(!Levitation) { /* no longer floating */</span>
 
<span id="line276">276.  float_down();</span>
 
<span id="line277">277.  }</span>
 
<span id="line278">278.  break;</span>
 
<span id="line279">279.  case RIN_GAIN_STRENGTH:</span>
 
<span id="line280">280.  u.ustr -= obj->spe;</span>
 
<span id="line281">281.  u.ustrmax -= obj->spe;</span>
 
<span id="line282">282.  if(u.ustr > 118) u.ustr = 118;</span>
 
<span id="line283">283.  if(u.ustrmax > 118) u.ustrmax = 118;</span>
 
<span id="line284">284.  flags.botl = 1;</span>
 
<span id="line285">285.  break;</span>
 
<span id="line286">286.  case RIN_INCREASE_DAMAGE:</span>
 
<span id="line287">287.  u.udaminc -= obj->spe;</span>
 
<span id="line288">288.  break;</span>
 
<span id="line289">289.  }</span>
 
<span id="line290">290.  }</span>
 
<span id="line291">291.  </span>
 
<span id="line292">292.  find_ac(){</span>
 
<span id="line293">293.  register int uac = 10;</span>
 
<span id="line294">294.  #ifdef KAA</span>
 
<span id="line295">295.  if (u.mtimedone) uac = mons[u.umonnum].ac;</span>
 
<span id="line296">296.  #endif</span>
 
<span id="line297">297.  if(uarm) uac -= ARM_BONUS(uarm);</span>
 
<span id="line298">298.  if(uarm2) uac -= ARM_BONUS(uarm2);</span>
 
<span id="line299">299.  if(uarmh) uac -= ARM_BONUS(uarmh);</span>
 
<span id="line300">300.  if(uarms) uac -= ARM_BONUS(uarms);</span>
 
<span id="line301">301.  if(uarmg) uac -= ARM_BONUS(uarmg);</span>
 
<span id="line302">302.  if(uleft && uleft->otyp == RIN_PROTECTION) uac -= uleft->spe;</span>
 
<span id="line303">303.  if(uright && uright->otyp == RIN_PROTECTION) uac -= uright->spe;</span>
 
<span id="line304">304.  #ifdef PRAYERS</span>
 
<span id="line305">305.  if (Protection & INTRINSIC) uac -= u.ublessed;</span>
 
<span id="line306">306.  #endif</span>
 
<span id="line307">307.  if(uac != u.uac){</span>
 
<span id="line308">308.  u.uac = uac;</span>
 
<span id="line309">309.  flags.botl = 1;</span>
 
<span id="line310">310.  }</span>
 
<span id="line311">311.  }</span>
 
<span id="line312">312.  </span>
 
<span id="line313">313.  glibr(){</span>
 
<span id="line314">314.  register struct obj *otmp;</span>
 
<span id="line315">315.  int xfl = 0;</span>
 
<span id="line316">316.  if(!uarmg) if(uleft || uright) {</span>
 
<span id="line317">317.  /* Note: at present also cursed rings fall off */</span>
 
<span id="line318">318.  /* changed 10/30/86 by GAN */</span>
 
<span id="line319">319.  pline("Your %s off your fingers.",</span>
 
<span id="line320">320.  #ifdef HARD</span>
 
<span id="line321">321.  ((uleft && !uleft->cursed) && (uright && !uright->cursed)) ? "rings slip" : "ring slips");</span>
 
<span id="line322">322.  #else</span>
 
<span id="line323">323.  (uleft && uright) ? "rings slip" : "ring slips");</span>
 
<span id="line324">324.  #endif</span>
 
<span id="line325">325.  xfl++;</span>
 
<span id="line326">326.  if((otmp = uleft) != Null(obj)){</span>
 
<span id="line327">327.  ringoff(uleft);</span>
 
<span id="line328">328.  dropx(otmp);</span>
 
<span id="line329">329.  }</span>
 
<span id="line330">330.  if((otmp = uright) != Null(obj)){</span>
 
<span id="line331">331.  ringoff(uright);</span>
 
<span id="line332">332.  dropx(otmp);</span>
 
<span id="line333">333.  }</span>
 
<span id="line334">334.  }</span>
 
<span id="line335">335.  if(((otmp = uwep) != Null(obj))</span>
 
<span id="line336">336.  #ifdef HARD</span>
 
<span id="line337">337.    && !otmp->cursed</span>
 
<span id="line338">338.  #endif</span>
 
<span id="line339">339.  ) {</span>
 
<span id="line340">340.  /* Note: at present also cursed weapons fall */</span>
 
<span id="line341">341.  /* changed 10/30/86 by GAN */</span>
 
<span id="line342">342.  setuwep((struct obj *) 0);</span>
 
<span id="line343">343.  dropx(otmp);</span>
 
<span id="line344">344.  pline("Your weapon %sslips from your hands.",</span>
 
<span id="line345">345.  xfl ? "also " : "");</span>
 
<span id="line346">346.  }</span>
 
<span id="line347">347.  }</span>
 
<span id="line348">348.  </span>
 
<span id="line349">349.  struct obj *</span>
 
<span id="line350">350.  some_armor(){</span>
 
<span id="line351">351.  register struct obj *otmph = uarm;</span>
 
<span id="line352">352.  if(uarmh && (!otmph || !rn2(4))) otmph = uarmh;</span>
 
<span id="line353">353.  if(uarmg && (!otmph || !rn2(4))) otmph = uarmg;</span>
 
<span id="line354">354.  if(uarms && (!otmph || !rn2(4))) otmph = uarms;</span>
 
<span id="line355">355.  return(otmph);</span>
 
<span id="line356">356.  }</span>
 
<span id="line357">357.  </span>
 
<span id="line358">358.  corrode_armor(){</span>
 
<span id="line359">359.  register struct obj *otmph = some_armor();</span>
 
<span id="line360">360.  if(otmph){</span>
 
<span id="line361">361.  if(otmph->rustfree ||</span>
 
<span id="line362">362.    otmph->otyp == CRYSTAL_PLATE_MAIL ||</span>
 
<span id="line363">363.    otmph->otyp == ELVEN_CLOAK ||</span>
 
<span id="line364">364.    otmph->otyp == LEATHER_ARMOR ||</span>
 
<span id="line365">365.    otmph->otyp == STUDDED_LEATHER_ARMOR) {</span>
 
<span id="line366">366.  pline("Your %s not affected!",</span>
 
<span id="line367">367.  aobjnam(otmph, "are"));</span>
 
<span id="line368">368.  return;</span>
 
<span id="line369">369.  }</span>
 
<span id="line370">370.  pline("Your %s!", aobjnam(otmph, "corrode"));</span>
 
<span id="line371">371.  otmph->spe--;</span>
 
<span id="line372">372.  }</span>
 
<span id="line373">373.  }</span>
 
<span id="line374">374.  </span>
 
<span id="line375">375.  static</span>
 
<span id="line376">376.  remarm(obj) register struct obj *obj; {</span>
 
<span id="line377">377.  if(!obj || obj->olet != '[')</span>
 
<span id="line378">378.  return(0);</span>
 
<span id="line379">379.  (void) marmoroff(obj);</span>
 
<span id="line380">380.  return(1);</span>
 
<span id="line381">381.  }</span>
 
<span id="line382">382.  </span>
 
<span id="line383">383.  static</span>
 
<span id="line384">384.  marmoroff(otmp) register struct obj *otmp; {</span>
 
<span id="line385">385.  register int delay = -objects[otmp->otyp].oc_delay;</span>
 
<span id="line386">386.  if(cursed(otmp)) return(0);</span>
 
<span id="line387">387.  setworn((struct obj *) 0, otmp->owornmask & W_ARMOR);</span>
 
<span id="line388">388.  if(delay)</span>
 
<span id="line389">389.  nomul(delay);</span>
 
<span id="line390">390.  off_msg(otmp);</span>
 
<span id="line391">391.  nomovemsg = "You finished taking off your armor.";</span>
 
<span id="line392">392.  return(1);</span>
 
<span id="line393">393.  }</span>
 
<span id="line394">394.  </span>
 
<span id="line395">395.  doddoremarm() {</span>
 
<span id="line396">396.  return(ggetobj("take off",remarm,0));</span>
 
<span id="line397">397.  }</span>
 
[[Category:NetHack 1.4f source code|do_wear.c]]
 

Revision as of 20:44, 3 September 2006

The source code file do_wear.c in NetHack 1.4f is unchanged from NetHack 1.3d/do_wear.c.